<?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>221594</bug_id>
          
          <creation_ts>2021-02-08 22:03:20 -0800</creation_ts>
          <short_desc>[iOS] Add support for the language/subtitle tracks button using `UIMenu`</short_desc>
          <delta_ts>2021-03-15 22:00:09 -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>Media</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=223239</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>annulen</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1726950</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-02-08 22:03:20 -0800</bug_when>
    <thetext>instead of `TracksPanel` like on macOS (which would be possible but difficult to match the exact behavior/style of UIKit) just use a native `UIContextMenuInteraction` and `UIMenu`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726951</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-08 22:03:32 -0800</bug_when>
    <thetext>&lt;rdar://problem/74129129&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726953</commentid>
    <comment_count>2</comment_count>
      <attachid>419678</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-02-08 22:29:12 -0800</bug_when>
    <thetext>Created attachment 419678
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726960</commentid>
    <comment_count>3</comment_count>
      <attachid>419680</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-02-08 23:18:53 -0800</bug_when>
    <thetext>Created attachment 419680
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727110</commentid>
    <comment_count>4</comment_count>
      <attachid>419680</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-02-09 10:05:20 -0800</bug_when>
    <thetext>Comment on attachment 419680
Patch

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

The WebCore changes look good to me modulo my minor comments, but someone that knows more about WKActionSheetAssistant than I do should review those changes.

&gt; Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp:327
&gt; +
&gt; +    HashMap&lt;MediaControlsContextMenuItem::ID, Variant&lt;RefPtr&lt;AudioTrack&gt;, RefPtr&lt;TextTrack&gt;&gt;&gt; idMap;

Nit: something like `using MenuTrackItem = Variant&lt;RefPtr&lt;AudioTrack&gt;, RefPtr&lt;TextTrack&gt;&gt;` would make this easier to parse.

&gt; Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp:407
&gt; +        auto selectedItem = idMap.get(selectedItemID);

Might be worth adding something like `ASSERT(selectedItem != HashTraits&lt;MediaControlsContextMenuItem::ID&gt;::emptyValue())`

&gt; Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp:419
&gt; +                for (auto&amp; track : idMap.values()) {
&gt; +                    if (auto* textTrack = WTF::get_if&lt;RefPtr&lt;TextTrack&gt;&gt;(track))
&gt; +                        (*textTrack)-&gt;setMode(TextTrack::Mode::Disabled);
&gt; +                }

Doesn&apos;t HTMLMediaElement::setSelectedTextTrack already take care of this?

&gt; Source/WebCore/Modules/mediacontrols/MediaControlsHost.idl:68
&gt; +    [Conditional=MEDIA_CONTROLS_CONTEXT_MENUS, EnabledBySetting=MediaControlsContextMenus] undefined showMediaControlsContextMenu(HTMLElement target, ContextMenuOptions options);

Does this need `EnabledAtRuntime=ModernMediaControls`, or is that obsolete (and so should be removed everywhere)?

&gt; Source/WebCore/page/MediaControlsContextMenuItem.h:48
&gt; +struct MediaControlsContextMenuItem {
&gt; +    using ID = uint64_t;
&gt; +    static constexpr ID invalidID = 0;
&gt; +
&gt; +    ID id { invalidID };
&gt; +    String title;
&gt; +    String icon;
&gt; +    bool isChecked { false };
&gt; +    Vector&lt;MediaControlsContextMenuItem&gt; children;
&gt; +
&gt; +    template&lt;class Encoder&gt; void encode(Encoder&amp;) const;
&gt; +    template&lt;class Decoder&gt; static Optional&lt;MediaControlsContextMenuItem&gt; decode(Decoder&amp;);
&gt; +};

Isn&apos;t `children` always empty except for the last entry? It should either be Optional&lt;&gt; or you could define one struct for the menu and another for the items?

&gt; Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm:1077
&gt; +- (NSArray *)currentAvailableMediaControlsContextMenuItems

s/currentAvailableMediaControlsContextMenuItems/currentlyAvailableMediaControlsContextMenuItems/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727146</commentid>
    <comment_count>5</comment_count>
      <attachid>419680</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-02-09 11:27:28 -0800</bug_when>
    <thetext>Comment on attachment 419680
Patch

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

&gt;&gt; Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp:327
&gt;&gt; +    HashMap&lt;MediaControlsContextMenuItem::ID, Variant&lt;RefPtr&lt;AudioTrack&gt;, RefPtr&lt;TextTrack&gt;&gt;&gt; idMap;
&gt; 
&gt; Nit: something like `using MenuTrackItem = Variant&lt;RefPtr&lt;AudioTrack&gt;, RefPtr&lt;TextTrack&gt;&gt;` would make this easier to parse.

ooo good idea =D

&gt;&gt; Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp:407
&gt;&gt; +        auto selectedItem = idMap.get(selectedItemID);
&gt; 
&gt; Might be worth adding something like `ASSERT(selectedItem != HashTraits&lt;MediaControlsContextMenuItem::ID&gt;::emptyValue())`

I think `HashTable::checkKey` already does this

&gt;&gt; Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp:419
&gt;&gt; +                }
&gt; 
&gt; Doesn&apos;t HTMLMediaElement::setSelectedTextTrack already take care of this?

I was emulating the code inside `TrackSupport.prototype.tracksPanelSelectionDidChange`.  AFAICT `HTMLMediaElement::setSelectedTextTrack` doesn&apos;t do this if the given `trackToSelect` is the special &quot;automatic&quot; or &quot;off&quot; track.

&gt;&gt; Source/WebCore/Modules/mediacontrols/MediaControlsHost.idl:68
&gt;&gt; +    [Conditional=MEDIA_CONTROLS_CONTEXT_MENUS, EnabledBySetting=MediaControlsContextMenus] undefined showMediaControlsContextMenu(HTMLElement target, ContextMenuOptions options);
&gt; 
&gt; Does this need `EnabledAtRuntime=ModernMediaControls`, or is that obsolete (and so should be removed everywhere)?

Oh yeah good call.  I&apos;ll add that as well :)

&gt;&gt; Source/WebCore/page/MediaControlsContextMenuItem.h:48
&gt;&gt; +};
&gt; 
&gt; Isn&apos;t `children` always empty except for the last entry? It should either be Optional&lt;&gt; or you could define one struct for the menu and another for the items?

The idea here is to be able to build a tree.  If a video has both audio and text tracks, this would be used to create two submenus that each have children.  A couple of the LayoutTests I wrote dump this structure so you can see it.

IMO `Optional&lt;Vector&lt;...&gt;&gt;` is kinda redundant in this case because if a menu item has children it&apos;s not selectable (at the very least I think this is the case for macOS/iOS menus).  Yes I could add distinct subclasses for menu vs action, but I think `children.isEmpty()` is indicator enough as to whether or not it&apos;s a menu or an action and distinct subclasses would just make this code more complicated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727159</commentid>
    <comment_count>6</comment_count>
      <attachid>419680</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-09 11:56:50 -0800</bug_when>
    <thetext>Comment on attachment 419680
Patch

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

&gt;&gt;&gt; Source/WebCore/Modules/mediacontrols/MediaControlsHost.idl:68
&gt;&gt;&gt; +    [Conditional=MEDIA_CONTROLS_CONTEXT_MENUS, EnabledBySetting=MediaControlsContextMenus] undefined showMediaControlsContextMenu(HTMLElement target, ContextMenuOptions options);
&gt;&gt; 
&gt;&gt; Does this need `EnabledAtRuntime=ModernMediaControls`, or is that obsolete (and so should be removed everywhere)?
&gt; 
&gt; Oh yeah good call.  I&apos;ll add that as well :)

IIRC, `EnabledAtRuntime` is for runtime-enabled features (`WebCore::RuntimeEnabledFeatures`), and allows the bindings generator guards the IDL with a runtime enabled feature check:

```
    if ($context-&gt;extendedAttributes-&gt;{EnabledAtRuntime}) {
        assert(&quot;Must specify value for EnabledAtRuntime.&quot;) if $context-&gt;extendedAttributes-&gt;{EnabledAtRuntime} eq &quot;VALUE_IS_MISSING&quot;;

        AddToImplIncludes(&quot;RuntimeEnabledFeatures.h&quot;);

        my @flags = split(/&amp;/, $context-&gt;extendedAttributes-&gt;{EnabledAtRuntime});
        foreach my $flag (@flags) {
            push(@conjuncts, &quot;RuntimeEnabledFeatures::sharedFeatures().&quot; . ToMethodName($flag) . &quot;Enabled()&quot;);
        }
    }
```

&gt; Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm:1041
&gt; +    NSMutableArray *array = [NSMutableArray array];

Nit - `-arrayWithCapacity:`?

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:7170
&gt; +        completionHandler(selectedItemID);

Nit - does it work if you just pass in `WTFMove(completionHandler)` here, or is the outer completion handler needed?

&gt; Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm:1040
&gt; +    if (UIView *calloutBar = UICalloutBar.activeCalloutBar) {

Nit - I need to double check, but I suspect `UICalloutBar.activeCalloutBar` is non-nil even if the callout bar is not currently shown. (The point of `activeCalloutBar`, `+[UIKeyboardImpl activeInstance]`, and the like are to avoid the cost of instantiating these singleton objects too early, usually during app launch).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727174</commentid>
    <comment_count>7</comment_count>
      <attachid>419680</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-02-09 12:12:25 -0800</bug_when>
    <thetext>Comment on attachment 419680
Patch

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

&gt;&gt; Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm:1041
&gt;&gt; +    NSMutableArray *array = [NSMutableArray array];
&gt; 
&gt; Nit - `-arrayWithCapacity:`?

This was just copypasta from above, but I&apos;m happy to change it :)

&gt;&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:7170
&gt;&gt; +        completionHandler(selectedItemID);
&gt; 
&gt; Nit - does it work if you just pass in `WTFMove(completionHandler)` here, or is the outer completion handler needed?

:extreme facepalm:

&gt;&gt; Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm:1040
&gt;&gt; +    if (UIView *calloutBar = UICalloutBar.activeCalloutBar) {
&gt; 
&gt; Nit - I need to double check, but I suspect `UICalloutBar.activeCalloutBar` is non-nil even if the callout bar is not currently shown. (The point of `activeCalloutBar`, `+[UIKeyboardImpl activeInstance]`, and the like are to avoid the cost of instantiating these singleton objects too early, usually during app launch).

Oh wow I completely missed that it was checking for `calloutBar.window`.  Will change.  Great catch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727176</commentid>
    <comment_count>8</comment_count>
      <attachid>419751</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-02-09 12:20:38 -0800</bug_when>
    <thetext>Created attachment 419751
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727244</commentid>
    <comment_count>9</comment_count>
      <attachid>419751</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-02-09 14:08:57 -0800</bug_when>
    <thetext>Comment on attachment 419751
Patch

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

The test harness and context menu changes look good to me. I&apos;m not familiar with the media and media-controls side of things though, so perhaps one of the media folks could take a closer look!

&gt; Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm:685
&gt;  - (void)ensureContextMenuInteraction

Nit - should this become `ensureContextMenuInteractions`? (Or perhaps split this into two ensure methods, since there&apos;s no need to create and add `_dataDetectorContextMenuInteraction` when showing the media context menu).

If you do decide to split this into two ensures, you could also just return the interaction from them, and then do `[self.ensureMediaControlsContextMenuInteraction _presentMenuAtLocation:_mediaControlsContextMenuTargetFrame.center()];` below.

&gt; Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm:1071
&gt; +            result[@&quot;checked&quot;] = [NSNumber numberWithBool:YES];

Nit - this can just be @YES.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727279</commentid>
    <comment_count>10</comment_count>
      <attachid>419751</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-02-09 14:54:42 -0800</bug_when>
    <thetext>Comment on attachment 419751
Patch

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

&gt;&gt; Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm:685
&gt;&gt;  - (void)ensureContextMenuInteraction
&gt; 
&gt; Nit - should this become `ensureContextMenuInteractions`? (Or perhaps split this into two ensure methods, since there&apos;s no need to create and add `_dataDetectorContextMenuInteraction` when showing the media context menu).
&gt; 
&gt; If you do decide to split this into two ensures, you could also just return the interaction from them, and then do `[self.ensureMediaControlsContextMenuInteraction _presentMenuAtLocation:_mediaControlsContextMenuTargetFrame.center()];` below.

oh yeah good idea</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727306</commentid>
    <comment_count>11</comment_count>
      <attachid>419777</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-02-09 15:42:16 -0800</bug_when>
    <thetext>Created attachment 419777
Patch

also split `removeContextMenuInteraction` and move it outside of the lambda so that if a second request to show the contextmenu comes in while the first one is dismissing then it&apos;s not removed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727376</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-09 18:06:08 -0800</bug_when>
    <thetext>Committed r272630: &lt;https://commits.webkit.org/r272630&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 419777.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727380</commentid>
    <comment_count>13</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-02-09 18:25:16 -0800</bug_when>
    <thetext>unreviewed build fix r272631: &lt;https://commits.webkit.org/r272631&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419678</attachid>
            <date>2021-02-08 22:29:12 -0800</date>
            <delta_ts>2021-02-08 23:18:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221594-20210208232911.patch</filename>
            <type>text/plain</type>
            <size>172454</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggNWNjY2ZkYmI4MmY1NjkyYjViOTJkMzNjMTg0YTRiOGQ4YTk5NTUwYy4uZjI0MjVlOWVk
MGVkOGMzMDg1NzZmNmMxMjMzMGM5NjMwYWY1ZjM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAy
MS0wMi0wOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lP
U10gQWRkIHN1cHBvcnQgZm9yIHRoZSBsYW5ndWFnZS9zdWJ0aXRsZSB0cmFja3MgYnV0dG9uIHVz
aW5nIGBVSU1lbnVgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjE1OTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc0MTI5MTI5PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJl
bmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sOgorICAgICAgICBDcmVhdGUgYSBgTWVkaWFDb250cm9s
c0NvbnRleHRNZW51c0VuYWJsZWRgIHNldHRpbmcgZm9yIGd1YXJkaW5nIGFuIElETCBob29rIHRv
IFdLMiBvbmx5LgorCiAyMDIxLTAyLTA0ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5j
b20+CiAKICAgICAgICAgV1RGOjpkeW5hbWljX2NmX2Nhc3Q8PiBzaG91bGQgbm90IGFzc2VydCBp
biBEZWJ1ZyBidWlsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1ODcwOTJiNjhjZjk2MTkxYzg0MTRkYzRmODlm
MWU4Mzk3ZDEzNTc3Li4yODA1ZmYxZTBlZjk2YWYxZDhjMDRiYWE5YTUxZWYzMDExMGNkMzIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMjEtMDItMDggIERldmluIFJvdXNzbyAgPGRy
b3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFkZCBzdXBwb3J0IGZvciB0aGUgbGFu
Z3VhZ2Uvc3VidGl0bGUgdHJhY2tzIGJ1dHRvbiB1c2luZyBgVUlNZW51YAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNTk0CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS83NDEyOTEyOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0czogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1z
dXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2suaHRtbAorICAgICAgICAg
ICAgICAgbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFj
a3Mtc3VwcG9ydC1jbGljay10cmFjay1pbi1jb250ZXh0bWVudS5odG1sCisgICAgICAgICAgICAg
ICBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1z
dXBwb3J0LWhpZGRlbi10cmFja3MuaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10
cmFjay5odG1sCisgICAgICAgICAgICAgICBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXNob3ctY29udGV4dG1lbnUtdGhlbi1kb3Vi
bGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi5odG1sCisgICAgICAgICAgICAgICBtZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXRleHQt
dHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS5odG1sCisgICAgICAgICAgICAgICBtZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWF1
dG8tdGV4dC10cmFjay5odG1sCisgICAgICAgICAgICAgICBtZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNrLWluLXBh
bmVsLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy5odG1sCisgICAgICAg
ICAgICAgICBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3Ry
YWNrcy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNrLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hv
dy1hbmQtcG9wdWxhdGUtcGFuZWwuaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVs
LWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xzLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1w
YW5lbC1mdWxsc2NyZWVuLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC10aGVu
LWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQt
dGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLmh0bWwKKworICAgICAgICAqIHBhZ2Uv
TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpkZWNvZGUpOgorICAgICAgICBT
aW1wbGUgUE9EIG9iamVjdCBmb3Igc2VuZGluZyBkYXRhIGZyb20gdGhlIFdlYlByb2Nlc3MgdG8g
dGhlIFVJUHJvY2VzcyBmb3IgdGhlIGBVSU1lbnVgLgorCisgICAgICAgICogTW9kdWxlcy9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvbWVkaWEvdHJhY2tzLXN1cHBvcnQuanM6CisgICAgICAgIChUcmFj
a3NTdXBwb3J0LnByb3RvdHlwZS5idXR0b25XYXNQcmVzc2VkKToKKyAgICAgICAgKFRyYWNrc1N1
cHBvcnQucHJvdG90eXBlLnN5bmNDb250cm9sKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29u
dHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFjb250
cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFjb250cm9s
cy9NZWRpYUNvbnRyb2xzSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xz
SG9zdDo6c2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudSk6IEFkZGVkLgorICAgICAgICAqIHBh
Z2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnNob3dN
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUpOgorICAgICAgICBQcm92aWRlIGEgaG9zdCBob29rIGZv
ciBnZW5lcmF0aW5nIGFuZCBzZW5kaW5nIHRoZSBgVUlNZW51YCBkYXRhLiBXaGVuIGEgYFVJQWN0
aW9uYCBpcworICAgICAgICBzZWxlY3RlZCBvciB0aGUgbWVudSBpcyBkaXNtaXNzZWQsIHRoZSBy
ZWxldmFudCBgTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6SURgIGlzIHNlbnQKKyAgICAg
ICAgYmFjayBhcyB0aGUgcmVzcG9uc2UgdG8gdGhlIGFzeW5jIG1lc3NhZ2UgYW5kIGlzIHVzZWQg
dG8gcGVyZm9ybSB0aGUgYWN0aW9uIHJlbGF0ZWQgdG8gdGhlCisgICAgICAgIHR5cGUgb2YgdGhl
IG9iamVjdCAoZS5nLiBgQXVkaW9UcmFja2AsIGBUZXh0VHJhY2tgLCBldGMuKSB0aGF0IHdhcyBw
cmV2aW91c2x5IGFzc29jaWF0ZWQKKyAgICAgICAgd2l0aCB0aGF0IGBNZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnVJdGVtOjpJRGAuCisKKyAgICAgICAgKiBlbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJp
bmdzOgorICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRleHRUcmFj
a1N1YnRpdGxlc1RleHQpOiBEZWxldGVkLgorICAgICAgICBBZGQgbG9jYWxpemFibGUgc3RyaW5n
cyBmb3IgIkxhbmd1YWdlcyIgYW5kICJTdWJ0aXRsZXMiIGhlYWRlcnMvc3VibWVudXMuCisKKyAg
ICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKwogMjAyMS0wMi0wNSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5j
b20+CiAKICAgICAgICAgW0xGQ11bSW50ZWdyYXRpb25dIEhpdCB0ZXN0aW5nIGJyb2tlbiBmb3Ig
ZGVzY2VuZGFudHMgb2YgcG9pbnRlci1ldmVudHM6bm9uZSBib3hlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1OGU3
OWU3Y2Y1NTQ3N2Q5MmZiNTE3ZTk2NzYyNzRlMTdkYmE1NzlhLi5kMGNiMWRhNDVjMGIyZWEwODVm
MGRhMTJlNTVhMjAwNmUxOWI3ZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTAy
LTA4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBB
ZGQgc3VwcG9ydCBmb3IgdGhlIGxhbmd1YWdlL3N1YnRpdGxlIHRyYWNrcyBidXR0b24gdXNpbmcg
YFVJTWVudWAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMTU5NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQxMjkxMjk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50OjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KTogQWRkZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNob3dNZWRpYUNvbnRyb2xz
Q29udGV4dE1lbnUpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KTogQWRkZWQuCisgICAgICAgIFNlbmQg
dGhlIGdpdmVuIGBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtYHMgdG8gdGhlIFVJUHJvY2Vz
cyBmb3IgdGhlIGBVSU1lbnVgLgorCisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoK
KyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudDo6c2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVu
dSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudSk6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06Cisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgYWN0aW9uU2hlZXRBc3Npc3RhbnREaWRTaG93Q29udGV4
dE1lbnU6XSk6IEFkZGVkLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGFjdGlvblNoZWV0QXNz
aXN0YW50RGlkRGlzbWlzc0NvbnRleHRNZW51Ol0pOiBBZGRlZC4KKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBfc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudTppdGVtczpjb21wbGV0aW9uSGFu
ZGxlcjpdKTogQWRkZWQuCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2NvbnRlbnRzT2ZVc2Vy
SW50ZXJmYWNlSXRlbTpdKToKKyAgICAgICAgUGFzcyB0aGUgZ2l2ZW4gYE1lZGlhQ29udHJvbHND
b250ZXh0TWVudUl0ZW1gcyB0byB0aGUgYFdLQWN0aW9uU2hlZXRBc3Npc3RhbnRgLgorCisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tOgorICAgICAgICAoLVtXS0Fj
dGlvblNoZWV0QXNzaXN0YW50IHJlbW92ZUNvbnRleHRNZW51SW50ZXJhY3Rpb25dKToKKyAgICAg
ICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBlbnN1cmVDb250ZXh0TWVudUludGVyYWN0aW9u
XSk6CisgICAgICAgICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgaGFzQ29udGV4dE1lbnVJbnRl
cmFjdGlvbl0pOgorICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IF91aU1lbnVFbGVt
ZW50c0Zvck1lZGlhQ29udHJvbENvbnRleHRNZW51SXRlbXM6XSk6IEFkZGVkLgorICAgICAgICAo
LVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IHNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnU6aXRl
bXM6Y29tcGxldGlvbkhhbmRsZXI6XSk6IEFkZGVkLgorICAgICAgICAoLVtXS0FjdGlvblNoZWV0
QXNzaXN0YW50IGNvbnRleHRNZW51SW50ZXJhY3Rpb246Y29uZmlndXJhdGlvbkZvck1lbnVBdExv
Y2F0aW9uOl0pOgorICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IGNvbnRleHRNZW51
SW50ZXJhY3Rpb246cHJldmlld0ZvckhpZ2hsaWdodGluZ01lbnVXaXRoQ29uZmlndXJhdGlvbjpd
KToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBjb250ZXh0TWVudUludGVyYWN0
aW9uOndpbGxEaXNwbGF5TWVudUZvckNvbmZpZ3VyYXRpb246YW5pbWF0b3I6XSk6IEFkZGVkLgor
ICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IGNvbnRleHRNZW51SW50ZXJhY3Rpb246
d2lsbEVuZEZvckNvbmZpZ3VyYXRpb246YW5pbWF0b3I6XSk6CisgICAgICAgICgtW1dLQWN0aW9u
U2hlZXRBc3Npc3RhbnQgX2NvbnRleHRNZW51SW50ZXJhY3Rpb246b3ZlcnJpZGVTdWdnZXN0ZWRB
Y3Rpb25zRm9yQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lz
dGFudCBfY29udGVudHNPZkNvbnRleHRNZW51SXRlbTpdKTogQWRkZWQuCisgICAgICAgICgtW1dL
QWN0aW9uU2hlZXRBc3Npc3RhbnQgY3VycmVudEF2YWlsYWJsZU1lZGlhQ29udHJvbHNDb250ZXh0
TWVudUl0ZW1zXSk6IEFkZGVkLgorICAgICAgICBJbnN0ZWFkIG9mIGFzc3VtaW5nIHRoYXQgdGhl
IG9ubHkgYFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbmAgaXMgZm9yIGRhdGEgZGV0ZWN0b3JzLCBj
aGVjaworICAgICAgICB0aGUgZ2l2ZW4gYGludGVyYWN0aW9uYCB0byBzZWUgaWYgaXQncyB0aGUg
ZGF0YSBkZXRlY3RvciBpbnRlcmFjdGlvbiBiZWZvcmUgZG9pbmcgYW55IHdvcmsuCisgICAgICAg
IFRoaXMgYWxsb3dzIHRoZSBtZWRpYSBjb250cm9scyBgVUlDb250ZXh0TWVudUludGVyYWN0aW9u
YCB0byBleGlzdCBzaWRlLWJ5LXNpZGUgYW5kIHVzZSB0aGUKKyAgICAgICAgYFdLQWN0aW9uU2hl
ZXRBc3Npc3RhbnRgIGFzIGl0cyBkZWxlZ2F0ZSB0b28gKGVzcGVjaWFsbHkgc2luY2UgaXQncyBu
b3QgcG9zc2libGUgZm9yIGJvdGgKKyAgICAgICAgY29udGV4dG1lbnVzIHRvIGJlIGFjdGl2ZSBh
dCB0aGUgc2FtZSB0aW1lKS4gUHJlc2VudCB0aGUgbWVkaWEgY29udHJvbHMgY29udGV4dG1lbnUg
d2l0aG91dAorICAgICAgICBhIHByZXZpZXcgKGl0IHVzZXMgYW4gZW1wdHkgYFVJVmlld2AgZm9y
IHByb3BlciBzaXppbmcpIGF0IHRoZSBsb2NhdGlvbiBwcm92aWRlZC4gU2VsZWN0aW5nCisgICAg
ICAgIGEgYFVJQWN0aW9uYCB3aWxsIHNlbmQgdGhlIGBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJ
dGVtOjpJRGAgYmFjayB0byB0aGUgV2ViUHJvY2Vzcy4KKyAgICAgICAgQWxzbyBhZGQgc3VwcG9y
dCBmb3IKKyAgICAgICAgIC0gYFVJU2NyaXB0Q29udHJvbGxlci5wcm90b3R5cGUuY29udGVudHNP
ZlVzZXJJbnRlcmZhY2VJdGVtYAorICAgICAgICAgLSBgVUlTY3JpcHRDb250cm9sbGVyLnByb3Rv
dHlwZS5kaWRTaG93Q29udGV4dE1lbnVDYWxsYmFja2AKKyAgICAgICAgIC0gYFVJU2NyaXB0Q29u
dHJvbGxlci5wcm90b3R5cGUuZGlkRGlzbWlzc0NvbnRleHRNZW51Q2FsbGJhY2tgCisgICAgICAg
IGZvciB1c2FnZSBpbiB0aGUgYWRkZWQgYExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvYCB0ZXN0cy4KKwogMjAyMS0wMi0wNSAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxlIGF1ZGlvIGNhcHR1
cmUgZm9yIHNwZWVjaCByZWNvZ25pdGlvbiBpbiBHUFVQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9X
VEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IDA1MjBjNmM5
ZDkzZTZmNTY2ZmFjZjIwZTA4NzQ1Y2ZiN2MwYzc1MDcuLjVlM2QyNWQ4ODQxMzNiNTM2MTAyNGYw
ZWVmM2ZiNmVkYzQ1ZmYwYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJl
bmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJl
bmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0xMzQwLDYgKzEzNDAsMTcgQEAgTWVkaWFDb250
ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRl
ZmF1bHQ6ICciIicKIAorTWVkaWFDb250cm9sc0NvbnRleHRNZW51c0VuYWJsZWQ6CisgIHR5cGU6
IGJvb2wKKyAgY29uZGl0aW9uOiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykK
KyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNl
CisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogdHJ1ZQorICAgIFdlYkNvcmU6CisgICAgICBk
ZWZhdWx0OiBmYWxzZQorCiBNZWRpYUNvbnRyb2xzU2NhbGVXaXRoUGFnZVpvb206CiAgIHR5cGU6
IGJvb2wKICAgZGVmYXVsdFZhbHVlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggYWE1NWYwZmFhN2Qw
MjlhMjhiYmI4NWExYTQzZTA1M2FkMzYzYjgxYy4uZjhmMGY4N2NmZDNhNTA4MGFlOTliNmMwNjdm
YmVlZTY5NDRmYTE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC04ODAsNiArODgwLDcgQEAgc2V0
KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvR2xvYmFsV2luZG93
SWRlbnRpZmllci5oCiAgICAgcGFnZS9MYXlvdXRNaWxlc3RvbmUuaAogICAgIHBhZ2UvTWVkaWFD
YW5TdGFydExpc3RlbmVyLmgKKyAgICBwYWdlL01lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0u
aAogICAgIHBhZ2UvTWVkaWFQcm9kdWNlci5oCiAgICAgcGFnZS9NZW1vcnlSZWxlYXNlLmgKICAg
ICBwYWdlL05hdmlnYXRvcklzTG9nZ2VkSW4uaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKaW5kZXggZTM4
N2VlZjgyZGFmZTAyNzIyYTA2NGYzMzZhMDBiYTBhYTU3ZGFkMi4uZmEzZmY3Y2M0N2VhOTYyM2Zi
ZjEyNzZkZjFlMGJhY2RlMjlmNTY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCkBAIC0yOSwxMCAr
MjksMTYgQEAKIAogI2luY2x1ZGUgIk1lZGlhQ29udHJvbHNIb3N0LmgiCiAKKyNpbmNsdWRlICJB
dWRpb1RyYWNrTGlzdC5oIgorI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNs
aWVudC5oIgogI2luY2x1ZGUgIkNhcHRpb25Vc2VyUHJlZmVyZW5jZXMuaCIKKyNpbmNsdWRlICJG
bG9hdFJlY3QuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCisjaW5jbHVkZSAiTG9j
YWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYUNv
bnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmgiCisjaW5jbHVkZSAiTWVkaWFDb250cm9s
c0NvbnRleHRNZW51SXRlbS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlR3Jv
dXAuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgpAQCAtNDAsNiArNDYsNyBAQAogI2luY2x1
ZGUgIlRleHRUcmFja0xpc3QuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NKU1ZhbHVl
SW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9VVUlELmg+CisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zMDQsNiArMzExLDEyMCBAQCBTdHJpbmcg
TWVkaWFDb250cm9sc0hvc3Q6OmZvcm1hdHRlZFN0cmluZ0ZvckR1cmF0aW9uKGRvdWJsZSBkdXJh
dGlvbkluU2Vjb25kcykKICAgICByZXR1cm4gUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigpLm1lZGlh
Q29udHJvbHNGb3JtYXR0ZWRTdHJpbmdGb3JEdXJhdGlvbihkdXJhdGlvbkluU2Vjb25kcyk7CiB9
CiAKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKwordm9pZCBNZWRp
YUNvbnRyb2xzSG9zdDo6c2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShIVE1MRWxlbWVudCYg
dGFyZ2V0LCBDb250ZXh0TWVudU9wdGlvbnMmJiBvcHRpb25zKQoreworICAgIGlmICghbV9tZWRp
YUVsZW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIG1lZGlhRWxlbWVudCA9ICpt
X21lZGlhRWxlbWVudDsKKworICAgIGF1dG8qIHBhZ2UgPSBtZWRpYUVsZW1lbnQuZG9jdW1lbnQo
KS5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBIYXNoTWFw
PE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklELCBWYXJpYW50PFJlZlB0cjxBdWRpb1Ry
YWNrPiwgUmVmUHRyPFRleHRUcmFjaz4+PiBpZE1hcDsKKyAgICBWZWN0b3I8TWVkaWFDb250cm9s
c0NvbnRleHRNZW51SXRlbT4gaXRlbXM7CisKKyAgICBpZiAob3B0aW9ucy5pbmNsdWRlQXVkaW9U
cmFja3MpIHsKKyAgICAgICAgaWYgKGF1dG8qIGF1ZGlvVHJhY2tzID0gbWVkaWFFbGVtZW50LmF1
ZGlvVHJhY2tzKCk7IGF1ZGlvVHJhY2tzICYmIGF1ZGlvVHJhY2tzLT5sZW5ndGgoKSA+IDEpIHsK
KyAgICAgICAgICAgIE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0gYXVkaW9UcmFja3NJdGVt
OworICAgICAgICAgICAgYXVkaW9UcmFja3NJdGVtLnRpdGxlID0gV0VCX1VJX1NUUklOR19LRVko
Ikxhbmd1YWdlcyIsICJMYW5ndWFnZXMgKE1lZGlhIENvbnRyb2xzIE1lbnUpIiwgIkxhbmd1YWdl
cyBtZWRpYSBjb250cm9scyBjb250ZXh0IG1lbnUgdGl0bGUiKTsKKyAgICAgICAgICAgIGF1ZGlv
VHJhY2tzSXRlbS5pY29uID0gImdsb2JlIl9zOworICAgICAgICAgICAgYXVkaW9UcmFja3NJdGVt
LmNoaWxkcmVuLnJlc2VydmVDYXBhY2l0eShhdWRpb1RyYWNrcy0+bGVuZ3RoKCkpOworCisgICAg
ICAgICAgICBhdXRvJiBjYXB0aW9uUHJlZmVyZW5jZXMgPSBwYWdlLT5ncm91cCgpLmNhcHRpb25Q
cmVmZXJlbmNlcygpOworCisgICAgICAgICAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2sgOiBjYXB0
aW9uUHJlZmVyZW5jZXMuc29ydGVkVHJhY2tMaXN0Rm9yTWVudShhdWRpb1RyYWNrcykpIHsKKyAg
ICAgICAgICAgICAgICBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtIGF1ZGlvVHJhY2tJdGVt
OworICAgICAgICAgICAgICAgIGF1ZGlvVHJhY2tJdGVtLmlkID0gaWRNYXAuc2l6ZSgpICsgMTsK
KyAgICAgICAgICAgICAgICBhdWRpb1RyYWNrSXRlbS50aXRsZSA9IGNhcHRpb25QcmVmZXJlbmNl
cy5kaXNwbGF5TmFtZUZvclRyYWNrKGF1ZGlvVHJhY2suZ2V0KCkpOworICAgICAgICAgICAgICAg
IGF1ZGlvVHJhY2tJdGVtLmlzQ2hlY2tlZCA9IGF1ZGlvVHJhY2stPmVuYWJsZWQoKTsKKworICAg
ICAgICAgICAgICAgIGlkTWFwLmFkZChhdWRpb1RyYWNrSXRlbS5pZCwgYXVkaW9UcmFjayk7CisK
KyAgICAgICAgICAgICAgICBhdWRpb1RyYWNrc0l0ZW0uY2hpbGRyZW4uYXBwZW5kKFdURk1vdmUo
YXVkaW9UcmFja0l0ZW0pKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFhdWRp
b1RyYWNrc0l0ZW0uY2hpbGRyZW4uaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGl0ZW1zLmFw
cGVuZChXVEZNb3ZlKGF1ZGlvVHJhY2tzSXRlbSkpOworICAgICAgICB9CisgICAgfQorCisgICAg
aWYgKG9wdGlvbnMuaW5jbHVkZVRleHRUcmFja3MpIHsKKyAgICAgICAgaWYgKGF1dG8qIHRleHRU
cmFja3MgPSBtZWRpYUVsZW1lbnQudGV4dFRyYWNrcygpOyB0ZXh0VHJhY2tzICYmIHRleHRUcmFj
a3MtPmxlbmd0aCgpKSB7CisgICAgICAgICAgICBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVt
IHRleHRUcmFja3NJdGVtOworICAgICAgICAgICAgdGV4dFRyYWNrc0l0ZW0udGl0bGUgPSBXRUJf
VUlfU1RSSU5HX0tFWSgiU3VidGl0bGVzIiwgIlN1YnRpdGxlcyAoTWVkaWEgQ29udHJvbHMgTWVu
dSkiLCAiU3VidGl0bGVzIG1lZGlhIGNvbnRyb2xzIGNvbnRleHQgbWVudSB0aXRsZSIpOworICAg
ICAgICAgICAgdGV4dFRyYWNrc0l0ZW0uaWNvbiA9ICJjYXB0aW9ucy5idWJibGUiX3M7CisgICAg
ICAgICAgICB0ZXh0VHJhY2tzSXRlbS5jaGlsZHJlbi5yZXNlcnZlQ2FwYWNpdHkodGV4dFRyYWNr
cy0+bGVuZ3RoKCkpOworCisgICAgICAgICAgICBhdXRvJiBjYXB0aW9uUHJlZmVyZW5jZXMgPSBw
YWdlLT5ncm91cCgpLmNhcHRpb25QcmVmZXJlbmNlcygpOworICAgICAgICAgICAgYXV0byBzb3J0
ZWRUZXh0VHJhY2tzID0gY2FwdGlvblByZWZlcmVuY2VzLnNvcnRlZFRyYWNrTGlzdEZvck1lbnUo
dGV4dFRyYWNrcyk7CisgICAgICAgICAgICBib29sIGFsbFRyYWNrc0Rpc2FibGVkID0gbm90Rm91
bmQgPT0gc29ydGVkVGV4dFRyYWNrcy5maW5kTWF0Y2hpbmcoW10gKGNvbnN0IGF1dG8mIHRleHRU
cmFjaykgeworICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0VHJhY2stPm1vZGUoKSA9PSBUZXh0
VHJhY2s6Ok1vZGU6OlNob3dpbmc7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGJvb2wg
dXNlc0F1dG9tYXRpY1RyYWNrID0gY2FwdGlvblByZWZlcmVuY2VzLmNhcHRpb25EaXNwbGF5TW9k
ZSgpID09IENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OkF1dG9tYXRpYyAmJiBhbGxUcmFja3NEaXNh
YmxlZDsKKworICAgICAgICAgICAgZm9yIChhdXRvJiB0ZXh0VHJhY2sgOiBzb3J0ZWRUZXh0VHJh
Y2tzKSB7CisgICAgICAgICAgICAgICAgTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbSB0ZXh0
VHJhY2tJdGVtOworICAgICAgICAgICAgICAgIHRleHRUcmFja0l0ZW0uaWQgPSBpZE1hcC5zaXpl
KCkgKyAxOworICAgICAgICAgICAgICAgIHRleHRUcmFja0l0ZW0udGl0bGUgPSBjYXB0aW9uUHJl
ZmVyZW5jZXMuZGlzcGxheU5hbWVGb3JUcmFjayh0ZXh0VHJhY2suZ2V0KCkpOworICAgICAgICAg
ICAgICAgIGlmIChhbGxUcmFja3NEaXNhYmxlZCAmJiB0ZXh0VHJhY2sgPT0gJlRleHRUcmFjazo6
Y2FwdGlvbk1lbnVPZmZJdGVtKCkgJiYgKGNhcHRpb25QcmVmZXJlbmNlcy5jYXB0aW9uRGlzcGxh
eU1vZGUoKSA9PSBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpGb3JjZWRPbmx5IHx8IGNhcHRpb25Q
cmVmZXJlbmNlcy5jYXB0aW9uRGlzcGxheU1vZGUoKSA9PSBDYXB0aW9uVXNlclByZWZlcmVuY2Vz
OjpNYW51YWwpKQorICAgICAgICAgICAgICAgICAgICB0ZXh0VHJhY2tJdGVtLmlzQ2hlY2tlZCA9
IHRydWU7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAodXNlc0F1dG9tYXRpY1RyYWNrICYmIHRl
eHRUcmFjayA9PSAmVGV4dFRyYWNrOjpjYXB0aW9uTWVudUF1dG9tYXRpY0l0ZW0oKSkKKyAgICAg
ICAgICAgICAgICAgICAgdGV4dFRyYWNrSXRlbS5pc0NoZWNrZWQgPSB0cnVlOworICAgICAgICAg
ICAgICAgIGVsc2UgaWYgKCF1c2VzQXV0b21hdGljVHJhY2sgJiYgdGV4dFRyYWNrLT5tb2RlKCkg
PT0gVGV4dFRyYWNrOjpNb2RlOjpTaG93aW5nKQorICAgICAgICAgICAgICAgICAgICB0ZXh0VHJh
Y2tJdGVtLmlzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICB0ZXh0VHJhY2tJdGVtLmlzQ2hlY2tlZCA9IGZhbHNlOworCisgICAgICAgICAg
ICAgICAgaWRNYXAuYWRkKHRleHRUcmFja0l0ZW0uaWQsIHRleHRUcmFjayk7CisKKyAgICAgICAg
ICAgICAgICB0ZXh0VHJhY2tzSXRlbS5jaGlsZHJlbi5hcHBlbmQoV1RGTW92ZSh0ZXh0VHJhY2tJ
dGVtKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghdGV4dFRyYWNrc0l0ZW0u
Y2hpbGRyZW4uaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGl0ZW1zLmFwcGVuZChXVEZNb3Zl
KHRleHRUcmFja3NJdGVtKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoaXRlbXMuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQoIWlkTWFwLmlzRW1wdHkoKSk7
CisKKyAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5zaG93TWVkaWFDb250cm9sc0NvbnRleHRN
ZW51KHRhcmdldC5ib3VuZHNJblJvb3RWaWV3U3BhY2UoKSwgV1RGTW92ZShpdGVtcyksIFt3ZWFr
TWVkaWFFbGVtZW50ID0gbWFrZVdlYWtQdHIobWVkaWFFbGVtZW50KSwgaWRNYXAgPSBXVEZNb3Zl
KGlkTWFwKV0gKE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEIHNlbGVjdGVkSXRlbUlE
KSB7CisKKyAgICAgICAgaWYgKHNlbGVjdGVkSXRlbUlEID09IE1lZGlhQ29udHJvbHNDb250ZXh0
TWVudUl0ZW06OmludmFsaWRJRCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAo
IXdlYWtNZWRpYUVsZW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYXV0byYg
bWVkaWFFbGVtZW50ID0gKndlYWtNZWRpYUVsZW1lbnQ7CisKKyAgICAgICAgYXV0byBzZWxlY3Rl
ZEl0ZW0gPSBpZE1hcC5nZXQoc2VsZWN0ZWRJdGVtSUQpOworICAgICAgICBXVEY6OnN3aXRjaE9u
KHNlbGVjdGVkSXRlbSwKKyAgICAgICAgICAgIFsmXSAoUmVmUHRyPEF1ZGlvVHJhY2s+JiBzZWxl
Y3RlZEF1ZGlvVHJhY2spIHsKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIHRyYWNrIDogaWRN
YXAudmFsdWVzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8qIGF1ZGlvVHJhY2sg
PSBXVEY6OmdldF9pZjxSZWZQdHI8QXVkaW9UcmFjaz4+KHRyYWNrKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICgqYXVkaW9UcmFjayktPnNldEVuYWJsZWQoKmF1ZGlvVHJhY2sgPT0gc2VsZWN0
ZWRBdWRpb1RyYWNrKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgWyZdIChSZWZQdHI8VGV4dFRyYWNrPiYgc2VsZWN0ZWRUZXh0VHJhY2spIHsKKyAgICAg
ICAgICAgICAgICBmb3IgKGF1dG8mIHRyYWNrIDogaWRNYXAudmFsdWVzKCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKGF1dG8qIHRleHRUcmFjayA9IFdURjo6Z2V0X2lmPFJlZlB0cjxUZXh0
VHJhY2s+Pih0cmFjaykpCisgICAgICAgICAgICAgICAgICAgICAgICAoKnRleHRUcmFjayktPnNl
dE1vZGUoVGV4dFRyYWNrOjpNb2RlOjpEaXNhYmxlZCk7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIG1lZGlhRWxlbWVudC5zZXRTZWxlY3RlZFRleHRUcmFjayhzZWxlY3RlZFRl
eHRUcmFjay5nZXQoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfSk7Cit9CisK
KyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKwogYm9vbCBN
ZWRpYUNvbnRyb2xzSG9zdDo6Y29tcGFjdE1vZGUoKSBjb25zdAogewogI2lmIFBMQVRGT1JNKFdB
VENIT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMv
TWVkaWFDb250cm9sc0hvc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9s
cy9NZWRpYUNvbnRyb2xzSG9zdC5oCmluZGV4IDZlODQ1ZjdhN2M1YjBkOWJiNGMyMTVjYmNlMjgw
ZWRmZTVlZTMzYjguLjJlNzNkY2U2N2RjMmY3NzQwOTFkMzQwODU3YjE4MzM4YzdiYmY1OTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRy
b2xzSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRp
YUNvbnRyb2xzSG9zdC5oCkBAIC05MSw2ICs5MSwxNCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFN0
cmluZyBiYXNlNjRTdHJpbmdGb3JJY29uTmFtZUFuZFR5cGUoY29uc3QgU3RyaW5nJiBpY29uTmFt
ZSwgY29uc3QgU3RyaW5nJiBpY29uVHlwZSk7CiAgICAgc3RhdGljIFN0cmluZyBmb3JtYXR0ZWRT
dHJpbmdGb3JEdXJhdGlvbihkb3VibGUpOwogCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NP
TlRFWFRfTUVOVVMpCisgICAgc3RydWN0IENvbnRleHRNZW51T3B0aW9ucyB7CisgICAgICAgIGJv
b2wgaW5jbHVkZUF1ZGlvVHJhY2tzIHsgZmFsc2UgfTsKKyAgICAgICAgYm9vbCBpbmNsdWRlVGV4
dFRyYWNrcyB7IGZhbHNlIH07CisgICAgfTsKKyAgICB2b2lkIHNob3dNZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnUoSFRNTEVsZW1lbnQmLCBDb250ZXh0TWVudU9wdGlvbnMmJik7CisjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisKIHByaXZhdGU6CiAgICAgZXhw
bGljaXQgTWVkaWFDb250cm9sc0hvc3QoSFRNTE1lZGlhRWxlbWVudCYpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3Qu
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNI
b3N0LmlkbAppbmRleCBjMmM3ZDA1ZDg2MTcwMmUzMWIzZGI2NGVhMjBjNzJmOGZhODRlOTA2Li4w
NDFhY2RiNDYxYjhjNGYxODRlNjdlOGNhOTQzY2E3ZGI5NGU0ZDRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9z
dC5pZGwKQEAgLTY0LDQgKzY0LDEzIEBAIGVudW0gRGV2aWNlVHlwZSB7CiAgICAgW0VuYWJsZWRB
dFJ1bnRpbWU9TW9kZXJuTWVkaWFDb250cm9sc10gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyBzaGFkb3dSb290Q1NTVGV4dDsKICAgICBbRW5hYmxlZEF0UnVudGltZT1Nb2Rlcm5NZWRpYUNv
bnRyb2xzXSBET01TdHJpbmcgYmFzZTY0U3RyaW5nRm9ySWNvbk5hbWVBbmRUeXBlKERPTVN0cmlu
ZyBpY29uTmFtZSwgRE9NU3RyaW5nIGljb25UeXBlKTsKICAgICBbRW5hYmxlZEF0UnVudGltZT1N
b2Rlcm5NZWRpYUNvbnRyb2xzXSBET01TdHJpbmcgZm9ybWF0dGVkU3RyaW5nRm9yRHVyYXRpb24o
dW5yZXN0cmljdGVkIGRvdWJsZSBkdXJhdGlvbkluU2Vjb25kcyk7CisKKyAgICBbQ29uZGl0aW9u
YWw9TUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUywgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYUNv
bnRyb2xzQ29udGV4dE1lbnVzXSB1bmRlZmluZWQgc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVu
dShIVE1MRWxlbWVudCB0YXJnZXQsIENvbnRleHRNZW51T3B0aW9ucyBvcHRpb25zKTsKK307CisK
K1sKKyAgICBDb25kaXRpb25hbD1NRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTLAorXSBkaWN0
aW9uYXJ5IENvbnRleHRNZW51T3B0aW9ucyB7CisgICAgYm9vbGVhbiBpbmNsdWRlQXVkaW9UcmFj
a3M7CisgICAgYm9vbGVhbiBpbmNsdWRlVGV4dFRyYWNrczsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS90cmFja3Mtc3Vw
cG9ydC5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21l
ZGlhL3RyYWNrcy1zdXBwb3J0LmpzCmluZGV4IGE4NTkwODRiNjg5NmRlZDg2YTJlOWNlZTE0MDJl
ZTI2M2Q2ODlhMmMuLjg1OWUyZGE5ODFiNTQyOTY3N2M2YTgzNmJkNjNlNDc4YTZhYTViZTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21l
ZGlhL3RyYWNrcy1zdXBwb3J0LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL21lZGlhL3RyYWNrcy1zdXBwb3J0LmpzCkBAIC01Niw3ICs1NiwxMCBA
QCBjbGFzcyBUcmFja3NTdXBwb3J0IGV4dGVuZHMgTWVkaWFDb250cm9sbGVyU3VwcG9ydAogCiAg
ICAgYnV0dG9uV2FzUHJlc3NlZChjb250cm9sKQogICAgIHsKLSAgICAgICAgdGhpcy5tZWRpYUNv
bnRyb2xsZXIuY29udHJvbHMuc2hvd1RyYWNrc1BhbmVsKCk7CisgICAgICAgIGlmICh0aGlzLm1l
ZGlhQ29udHJvbGxlci5ob3N0Py5zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KQorICAgICAg
ICAgICAgdGhpcy5tZWRpYUNvbnRyb2xsZXIuaG9zdC5zaG93TWVkaWFDb250cm9sc0NvbnRleHRN
ZW51KGNvbnRyb2wuZWxlbWVudCwge2luY2x1ZGVBdWRpb1RyYWNrczogdHJ1ZSwgaW5jbHVkZVRl
eHRUcmFja3M6IHRydWV9KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5tZWRpYUNv
bnRyb2xsZXIuY29udHJvbHMuc2hvd1RyYWNrc1BhbmVsKCk7CiAgICAgfQogCiAgICAgdHJhY2tz
UGFuZWxOdW1iZXJPZlNlY3Rpb25zKCkKQEAgLTEzMCw3ICsxMzMsNyBAQCBjbGFzcyBUcmFja3NT
dXBwb3J0IGV4dGVuZHMgTWVkaWFDb250cm9sbGVyU3VwcG9ydAogCiAgICAgc3luY0NvbnRyb2wo
KQogICAgIHsKLSAgICAgICAgdGhpcy5jb250cm9sLmVuYWJsZWQgPSAodGhpcy5tZWRpYUNvbnRy
b2xsZXIubGF5b3V0VHJhaXRzICYgTGF5b3V0VHJhaXRzLm1hY09TKSAmJiAodGhpcy5fY2FuUGlj
a0F1ZGlvVHJhY2tzKCkgfHwgdGhpcy5fY2FuUGlja1RleHRUcmFja3MoKSk7CisgICAgICAgIHRo
aXMuY29udHJvbC5lbmFibGVkID0gKHRoaXMubWVkaWFDb250cm9sbGVyLmxheW91dFRyYWl0cyAm
IExheW91dFRyYWl0cy5tYWNPUyB8fCB0aGlzLm1lZGlhQ29udHJvbGxlci5ob3N0Py5zaG93TWVk
aWFDb250cm9sc0NvbnRleHRNZW51KSAmJiAodGhpcy5fY2FuUGlja0F1ZGlvVHJhY2tzKCkgfHwg
dGhpcy5fY2FuUGlja1RleHRUcmFja3MoKSk7CiAgICAgfQogCiAgICAgLy8gUHJpdmF0ZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGZhNmMyOWY0YjRiYWZmNDFiNzA4ZjIyMGI3NjBmYzkyZWU0MmQwYTEuLjRmN2JkMGE2Mjk5NDFj
MGY1NTAyOGEyODUwODRhNzg1YzNhMThiMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI5MjgsNiArMjkyOCw3IEBACiAJCTk0
RTgzOTU2MURGQjJCQzQwMDdCQzZBNyAvKiBKU0NTU05hbWVzcGFjZVJ1bGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0RTgzOTU0MURGQjJCQTYwMDdC
QzZBNyAvKiBKU0NTU05hbWVzcGFjZVJ1bGUuaCAqLzsgfTsKIAkJOTUyMDc2MDUxRjI2NzVGRTAw
N0QyQUFCIC8qIENhbGxUcmFjZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk1MjA3NjAxMUYyNjc1RjkwMDdEMkFBQiAvKiBDYWxsVHJhY2VyLmggKi87
IH07CiAJCTk1MjA3NjA2MUYyNjc1RkUwMDdEMkFBQiAvKiBDYWxsVHJhY2VyVHlwZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MjA3NjAyMUYyNjc1
RjkwMDdEMkFBQiAvKiBDYWxsVHJhY2VyVHlwZXMuaCAqLzsgfTsKKwkJOTVBMUUyRTkyNUNDNzVB
OTAwMjY4QzhFIC8qIE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QTFFMkU3MjVDQzc1QTgwMDI2OEM4
RSAvKiBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTVERjlEMjUyNTJCRURCMjAwMEQ3RjQ2IC8q
IFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk1REY5RDIzMjUyQkVEOTkwMDBEN0Y0NiAvKiBQb2ludGVyQ2hhcmFj
dGVyaXN0aWNzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJOTcwNTk5N0ExMDdEOTc1MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MDU5OTc2MTA3RDk3NTIw
MEE1MEE3QyAvKiBQb2xpY3lDaGVja2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTcwQjcyOEExNDRGRkFDNjAwRjAwQTM3IC8qIEV2ZW50SW50
ZXJmYWNlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTcwQjcyODkxNDRGRkFDNjAwRjAwQTM3IC8qIEV2ZW50SW50ZXJmYWNlcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMTc0NSw2ICsxMTc0Niw3
IEBACiAJCTk1MjA3NjAwMUYyNjc1RjkwMDdEMkFBQiAvKiBDYWxsVHJhY2VyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENhbGxUcmFjZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5NTIwNzYwMTFGMjY3NUY5MDA3RDJBQUIgLyogQ2FsbFRyYWNlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDYWxsVHJhY2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MjA3NjAyMUYy
Njc1RjkwMDdEMkFBQiAvKiBDYWxsVHJhY2VyVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FsbFRy
YWNlclR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1QTFFMkU3MjVDQzc1
QTgwMDI2OEM4RSAvKiBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVERjlEMjMyNTJCRUQ5OTAwMEQ3RjQ2IC8qIFBv
aW50ZXJDaGFyYWN0ZXJpc3RpY3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9pbnRlckNoYXJhY3Rlcmlz
dGljcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzA1OTk3NTEwN0Q5NzUyMDBB
NTBBN0MgLyogUG9saWN5Q2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBQb2xpY3lDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTcwNTk5NzYxMDdEOTc1MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUG9saWN5Q2hlY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjIxMDEsNiArMjIxMDMsNyBAQAogCQkJCTZCNEQ0MTJDMjM5ODNGODgwMDI0
OTRDMiAvKiBMb2dnZWRJblN0YXR1cy5jcHAgKi8sCiAJCQkJNkI0RDQxMkIyMzk4M0Y4ODAwMjQ5
NEMyIC8qIExvZ2dlZEluU3RhdHVzLmggKi8sCiAJCQkJOTMxQkNDNjAxMTI0REZDQjAwQkU3MERE
IC8qIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lci5oICovLAorCQkJCTk1QTFFMkU3MjVDQzc1QTgwMDI2
OEM4RSAvKiBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmggKi8sCiAJCQkJNTJFMkNBRkIx
OUZGMDIwNzAwMUVFQjRGIC8qIE1lZGlhUHJvZHVjZXIuaCAqLywKIAkJCQk0MTNFMDA3NzFEQjBF
NERFMDAyMzQxRDIgLyogTWVtb3J5UmVsZWFzZS5jcHAgKi8sCiAJCQkJNDEzRTAwNzgxREIwRTRE
RTAwMjM0MUQyIC8qIE1lbW9yeVJlbGVhc2UuaCAqLywKQEAgLTMzNjgxLDYgKzMzNjg0LDcgQEAK
IAkJCQkwNzhFMDkzQTE3RDE2RTFDMDA0MjBBQTEgLyogTWVkaWFDb25zdHJhaW50cy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQ0RGNjVDQzgxNDVCMUU3NTAwQzRDN0FBIC8qIE1lZGlhQ29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RGNjVDQ0ExNDVCNDQ4ODAwQzRDN0FBIC8qIE1lZGlh
Q29udHJvbGxlckludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTVBMUUyRTkyNUNDNzVB
OTAwMjY4QzhFIC8qIE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaCBpbiBIZWFkZXJzICov
LAogCQkJCUNEQUI2RDI5MTdDN0RFNkMwMEM2MEIzNCAvKiBNZWRpYUNvbnRyb2xzSG9zdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDE3MjUzQUIxMzU0QkJCQzAwMzYwRjJBIC8qIE1lZGlhQ29udHJv
bFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEM0VFRjM4
MjU3OTlGNzMwMDY1NjNCQiAvKiBNZWRpYURlY29kaW5nQ29uZmlndXJhdGlvbi5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5z
dHJpbmdzIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwppbmRl
eCA2ZmM4MzA2NGU3ZGZiMjY0MjA0OGEzZTU3ODNlYWJkZGQzNDhjMzcxLi43Mzk2MTIyNzY5MDJl
MzBmMDc4MDRjZGY3OGVkNTY3ZWI0NzNjNjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
bi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9q
L0xvY2FsaXphYmxlLnN0cmluZ3MKQEAgLTQ3OCw2ICs0NzgsOSBAQAogLyogTmFtZSBvZiBrZXlj
aGFpbiBrZXkgZ2VuZXJhdGVkIGJ5IHRoZSBLRVlHRU4gdGFnICovCiAiS2V5IGZyb20gJUAiID0g
IktleSBmcm9tICVAIjsKIAorLyogTGFuZ3VhZ2VzIG1lZGlhIGNvbnRyb2xzIGNvbnRleHQgbWVu
dSB0aXRsZSAqLworIkxhbmd1YWdlcyAoTWVkaWEgQ29udHJvbHMgTWVudSkiID0gIkxhbmd1YWdl
cyI7CisKIC8qIExlYXJuIFNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVtICovCiAiTGVhcm4gU3Bl
bGxpbmciID0gIkxlYXJuIFNwZWxsaW5nIjsKIApAQCAtODQxLDggKzg0NCw4IEBACiAvKiBTdWJz
dGl0dXRpb25zIGNvbnRleHQgc3ViLW1lbnUgaXRlbSAqLwogIlN1YnN0aXR1dGlvbnMiID0gIlN1
YnN0aXR1dGlvbnMiOwogCi0vKiBNZW51IHNlY3Rpb24gaGVhZGluZyBmb3Igc3VidGl0bGVzICov
Ci0iU3VidGl0bGVzIiA9ICJTdWJ0aXRsZXMiOworLyogU3VidGl0bGVzIG1lZGlhIGNvbnRyb2xz
IGNvbnRleHQgbWVudSB0aXRsZSAqLworIlN1YnRpdGxlcyAoTWVkaWEgQ29udHJvbHMgTWVudSki
ID0gIlN1YnRpdGxlcyI7CiAKIC8qIEFjY2Vzc2liaWxpdHkgYW5ub3VuY2VtZW50IGZvciB0aGUg
ZGF0YSBsaXN0IHN1Z2dlc3Rpb25zIGRyb3Bkb3duIGdvaW5nIGF3YXkuICovCiAiU3VnZ2VzdGlv
bnMgbGlzdCBoaWRkZW4uIiA9ICJTdWdnZXN0aW9ucyBsaXN0IGhpZGRlbi4iOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNjcwMWEyZGUwNzQwMjg0MzVhNGJmNzM2YmZiNmZmMjlh
MDQ4ZmRiNS4uODFmNDNlODEyZTBkNzViMWUxMmJiODRiMmZiNjlmNGQwOTE0ZGQ5OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiSWNv
bi5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW5wdXRNb2RlLmgiCisj
aW5jbHVkZSAiTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5oIgogI2luY2x1ZGUgIk1lZGlh
UHJvZHVjZXIuaCIKICNpbmNsdWRlICJQb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmgiCiAjaW5jbHVk
ZSAiUG9wdXBNZW51LmgiCkBAIC01NTgsNiArNTU5LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgcmVxdWVzdEltYWdlRXh0cmFjdGlvbihFbGVtZW50JikgeyB9CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorICAgIHZpcnR1YWwgdm9pZCBz
aG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KEZsb2F0UmVjdCYmLCBWZWN0b3I8TWVkaWFDb250
cm9sc0NvbnRleHRNZW51SXRlbT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlv
bkhhbmRsZXIoTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6aW52YWxpZElEKTsgfQorI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorCiBwcm90ZWN0ZWQ6
CiAgICAgdmlydHVhbCB+Q2hyb21lQ2xpZW50KCkgPSBkZWZhdWx0OwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9NZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMWEyMTNmM2VjMTM4NDU3NjMzMmIxYmRjNTg0NzExNjBjOTA0ZmY1MAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5o
CkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhU
X01FTlVTKQorCisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3N0cnVjdCBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtIHsKKyAgICB1c2luZyBJ
RCA9IHVpbnQ2NF90OworICAgIHN0YXRpYyBjb25zdGV4cHIgSUQgaW52YWxpZElEID0gMDsKKwor
ICAgIElEIGlkIHsgaW52YWxpZElEIH07CisgICAgU3RyaW5nIHRpdGxlOworICAgIFN0cmluZyBp
Y29uOworICAgIGJvb2wgaXNDaGVja2VkIHsgZmFsc2UgfTsKKyAgICBWZWN0b3I8TWVkaWFDb250
cm9sc0NvbnRleHRNZW51SXRlbT4gY2hpbGRyZW47CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIE9wdGlvbmFsPE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+IGRlY29k
ZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBNZWRpYUNv
bnRyb2xzQ29udGV4dE1lbnVJdGVtOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sK
KyAgICBlbmNvZGVyIDw8IGlkOworICAgIGVuY29kZXIgPDwgdGl0bGU7CisgICAgZW5jb2RlciA8
PCBpY29uOworICAgIGVuY29kZXIgPDwgaXNDaGVja2VkOworICAgIGVuY29kZXIgPDwgY2hpbGRy
ZW47Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxNZWRpYUNvbnRyb2xz
Q29udGV4dE1lbnVJdGVtPiBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKK3sKKyNkZWZpbmUgREVDT0RFKG5hbWUsIHR5cGUpIFwKKyAgICBPcHRp
b25hbDx0eXBlPiBuYW1lOyBcCisgICAgZGVjb2RlciA+PiBuYW1lOyBcCisgICAgaWYgKCFuYW1l
KSBcCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7IFwKKworICAgIERFQ09ERShpZCwgSUQp
OworICAgIERFQ09ERSh0aXRsZSwgU3RyaW5nKTsKKyAgICBERUNPREUoaWNvbiwgU3RyaW5nKTsK
KyAgICBERUNPREUoaXNDaGVja2VkLCBib29sKTsKKyAgICBERUNPREUoY2hpbGRyZW4sIFZlY3Rv
cjxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPik7CisKKyN1bmRlZiBERUNPREUKKworICAg
IHJldHVybiB7eyBXVEZNb3ZlKCppZCksIFdURk1vdmUoKnRpdGxlKSwgV1RGTW92ZSgqaWNvbiks
IFdURk1vdmUoKmlzQ2hlY2tlZCksIFdURk1vdmUoKmNoaWxkcmVuKSB9fTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRF
WFRfTUVOVVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRT
dHJpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3Bw
CmluZGV4IGZmNDNlOThlNjFmYTNkZDhlYTNkYzViODY0ZmQ4Y2I4ZTdhYTAxM2UuLjRjY2QxMWI2
NTI1MzAzOGJkMGNiNDZmYzQxNDc1ODA4MGJjMWNhZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCkBAIC0xMDc4LDExICsxMDc4LDYgQEAgU3RyaW5n
IGNsaWNrVG9FeGl0RnVsbFNjcmVlblRleHQoKQogICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJD
bGljayB0byBFeGl0IEZ1bGwgU2NyZWVuIiwgIk1lc3NhZ2UgdG8gZGlzcGxheSBpbiBicm93c2Vy
IHdpbmRvdyB3aGVuIGluIHdlYmtpdCBmdWxsIHNjcmVlbiBtb2RlLiIpOwogfQogCi1TdHJpbmcg
dGV4dFRyYWNrU3VidGl0bGVzVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlN1
YnRpdGxlcyIsICJNZW51IHNlY3Rpb24gaGVhZGluZyBmb3Igc3VidGl0bGVzIik7Ci19Ci0KIFN0
cmluZyB0ZXh0VHJhY2tPZmZNZW51SXRlbVRleHQoKQogewogICAgIHJldHVybiBXRUJfVUlfU1RS
SU5HKCJPZmYiLCAiTWVudSBpdGVtIGxhYmVsIGZvciB0aGUgdHJhY2sgdGhhdCByZXByZXNlbnRz
IGRpc2FibGluZyBjbG9zZWQgY2FwdGlvbnMiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xv
Y2FsaXplZFN0cmluZ3MuaAppbmRleCA2OTE3NjI4MWNjMzJjYzNiMmI2OWRmMTViNDg1MTdiYjBh
MmEyMDc1Li44NDUxZjUxNzAxM2Y1MjNlMWEyOGQwYmNiMDdlNjg1ZDI4MjYxNGFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCkBAIC0yOTgsNyArMjk4LDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgU3RyaW5nIGNsaWNrVG9FeGl0RnVsbFNjcmVl
blRleHQoKTsKIAotICAgIFN0cmluZyB0ZXh0VHJhY2tTdWJ0aXRsZXNUZXh0KCk7CiAgICAgU3Ry
aW5nIHRleHRUcmFja09mZk1lbnVJdGVtVGV4dCgpOwogICAgIFN0cmluZyB0ZXh0VHJhY2tBdXRv
bWF0aWNNZW51SXRlbVRleHQoKTsKICAgICBTdHJpbmcgdGV4dFRyYWNrTm9MYWJlbFRleHQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCA2NDJiYTA5Nzc1YjBlZGY3MmEz
MzQwYjU0MDY2YzQ4Y2U5ODE2YjU4Li5mNTkwMDU3MWQzZjcwMDc2ZGI2ZTdkMzM3M2EzMjNhOGQ5
MDdmMWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC00Miw2ICs0Miw3
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9FZGl0b3JDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0ZvY3VzRGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnB1dE1vZGUuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL01lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24uaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1ZhbGlkYXRpb25CdWJibGUuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4K
QEAgLTkxLDYgKzkyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ29sb3I7CiBjbGFz
cyBDdXJzb3I7CiBjbGFzcyBGbG9hdFF1YWQ7CitjbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBSZWdp
b247CiBjbGFzcyBUZXh0SW5kaWNhdG9yOwogY2xhc3MgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjsK
QEAgLTUxNSw2ICs1MTcsMTAgQEAgcHVibGljOgogI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9O
KQogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGNvbnN0IFNoYXJlYWJs
ZUJpdG1hcDo6SGFuZGxlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpJbWFnZUV4
dHJhY3Rpb25SZXN1bHQmJik+JiYgY29tcGxldGlvbikgeyBjb21wbGV0aW9uKHsgfSk7IH0KICNl
bmRpZgorCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisgICAgdmly
dHVhbCB2b2lkIHNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoV2ViQ29yZTo6RmxvYXRSZWN0
JiYsIFZlY3RvcjxXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiYmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06
OklEKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjppbnZhbGlkSUQpOyB9CisjZW5kaWYgLy8gRU5B
QkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCiAgICAgCiAjaWYgUExBVEZPUk0oTUFD
KQogICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJmb3JtSW1tZWRpYXRlQWN0aW9uSGl0VGVzdChjb25z
dCBXZWJIaXRUZXN0UmVzdWx0RGF0YSYsIGJvb2wgY29udGVudFByZXZlbnRzRGVmYXVsdCwgQVBJ
OjpPYmplY3QqKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApp
bmRleCBhZWY0ODVlM2IwYjdhNDg5YTUxZDk0ODc5NTllYWYzZTg4NDdlYjQwLi5mNmZjNzc4YjNm
Mzc5YjBmMmUzNjA1OTU2YzFjODZkN2NlNTY4ZWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTgzMTAsNiArODMxMCwxNiBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbihjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYg
aW1hZ2VEYQogCiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01F
TlVTKQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShG
bG9hdFJlY3QmJiB0YXJnZXRGcmFtZSwgVmVjdG9yPE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0
ZW0+JiYgaXRlbXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTWVkaWFDb250cm9sc0NvbnRleHRN
ZW51SXRlbTo6SUQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHBhZ2VDbGllbnQoKS5z
aG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KFdURk1vdmUodGFyZ2V0RnJhbWUpLCBXVEZNb3Zl
KGl0ZW1zKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCisjZW5kaWYgLy8gRU5B
QkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisKKwogdm9pZCBXZWJQYWdlUHJveHk6
OnJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3Qg
U3RyaW5nJiBvcmlnaW5TdHJpbmcpCiB7CiAgICAgaWYgKCFpc1JlcXVlc3RJRFZhbGlkKHJlcXVl
c3RJRCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDliYTlhNDM5
MzczNTQ2MmMxZjRmMmJlMDc3NzgyZThlYjY0MWVhYjcuLjk5MmQyZDNlMTY2NzI1NjI0ZGVmNjU0
YjY1MjgzMjZlMmFiZjdiZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CkBAIC05Miw2ICs5Miw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JbnB1dE1vZGUuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0xheW91dFBvaW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MYXlvdXRTaXpl
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvTWVkaWFQcm9kdWNlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZp
ZXIuaD4KQEAgLTE2MjAsNiArMTYyMSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXF1ZXN0SW1h
Z2VFeHRyYWN0aW9uKGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJik+JiYpOwogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyAgICB2b2lkIHNo
b3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoV2ViQ29yZTo6RmxvYXRSZWN0JiYsIFZlY3RvcjxX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiYmLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJik7Cisj
ZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisKICAgICBzdGF0
aWMgV2ViUGFnZVByb3h5KiBub25FcGhlbWVyYWxXZWJQYWdlUHJveHkoKTsKIAogI2lmIEVOQUJM
RShBVFRBQ0hNRU5UX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMjU4Nzg3OGQwMjI4MDVhMmRjNTRmMzYxZjc4ZWE1
MGY4YTMxNTJlOS4uMGM1ZDdhYzU1Y2U2NTJmMDU3YWNlZGJhM2ZhYmIyNGE4MDcyMjgyMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpA
QCAtMjQzLDYgKzI0MywxMCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIFJlcXVl
c3RJbWFnZUV4dHJhY3Rpb24oV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBpbWFnZURh
dGEpIC0+IChzdHJ1Y3QgV2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uUmVzdWx0IHJlc3VsdCkgQXN5
bmMKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisg
ICAgU2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0
RnJhbWUsIFZlY3RvcjxXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiBpdGVt
cykgLT4gKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEIHNlbGVjdGVk
SXRlbUlEKSBBc3luYworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01F
TlVTKQorCiAjaWYgSEFWRShUT1VDSF9CQVIpCiAgICAgU2V0SXNUb3VjaEJhclVwZGF0ZVN1cHJl
c3NlZEZvckhpZGRlbkNvbnRlbnRFZGl0YWJsZShib29sIGlzVG91Y2hCYXJVcGRhdGVTdXByZXNz
ZWQpCiAgICAgU2V0SXNOZXZlclJpY2hseUVkaXRhYmxlRm9yVG91Y2hCYXIoYm9vbCBpc05ldmVy
UmljaGx5RWRpdGFibGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5oCmluZGV4IDM4MDFiNTJjNmM1YWE5ZTQ3NjYyNDExOTZkMTEwNzNjMDA2ZTEz
ZmMuLjZkYTBiZmI4YWFiNzkwMGQxNzA1YTQ3NWE3NmE3N2EyMWQ4OTg1YzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC0yNjMsNiAr
MjYzLDEwIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNldE1vdXNlRXZlbnRQb2xpY3koV2ViQ29y
ZTo6TW91c2VFdmVudFBvbGljeSkgZmluYWw7CiAKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNf
Q09OVEVYVF9NRU5VUykKKyAgICB2b2lkIHNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoV2Vi
Q29yZTo6RmxvYXRSZWN0JiYsIFZlY3RvcjxXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnVJdGVtPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHND
b250ZXh0TWVudUl0ZW06OklEKT4mJikgZmluYWw7CisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NP
TlRST0xTX0NPTlRFWFRfTUVOVVMpCisKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQog
ICAgIHZvaWQgd3JpdGVQcm9taXNlZEF0dGFjaG1lbnRUb1Bhc3RlYm9hcmQoV2ViQ29yZTo6UHJv
bWlzZWRBdHRhY2htZW50SW5mbyYmKSBmaW5hbDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IDJlNDQ3YzYwZjJjYmNi
OTRhMjRjOWNmMTA3NWI3Yzc3ODhmNGVlMmUuLjAwY2RmMTNiYTkyYmQwNmMwYzI5MTc1ZjQxYzJj
ZDYxYzk1NWUxMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MubW0KQEAgLTk2Niw2ICs5NjYsMTMgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6
c2V0TW91c2VFdmVudFBvbGljeShXZWJDb3JlOjpNb3VzZUV2ZW50UG9saWN5IHBvbGljeSkKICNl
bmRpZgogfQogCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCit2b2lk
IFBhZ2VDbGllbnRJbXBsOjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KEZsb2F0UmVjdCYm
IHRhcmdldEZyYW1lLCBWZWN0b3I8TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4mJiBpdGVt
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJ
RCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgW21fY29udGVudFZpZXcgX3Nob3dNZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnU6V1RGTW92ZSh0YXJnZXRGcmFtZSkgaXRlbXM6V1RGTW92ZShp
dGVtcykgY29tcGxldGlvbkhhbmRsZXI6V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildOworfQor
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorCiAjaWYgSEFW
RShVSVNDUk9MTFZJRVdfQVNZTkNIUk9OT1VTX1NDUk9MTF9FVkVOVF9IQU5ETElORykKIHZvaWQg
UGFnZUNsaWVudEltcGw6OmhhbmRsZUFzeW5jaHJvbm91c0NhbmNlbGFibGVTY3JvbGxFdmVudChV
SVNjcm9sbFZpZXcgKnNjcm9sbFZpZXcsIFVJU2Nyb2xsRXZlbnQgKnNjcm9sbEV2ZW50LCB2b2lk
ICheY29tcGxldGlvbikoQk9PTCBoYW5kbGVkKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCmluZGV4IGQ3MzA1ZmE1YTcz
YjkxNGU0NThhNzNlZGM0MjFkMzY1ZDdiMWUyNDguLjg2MTE0MjJhOTRhOTAyNzk0NTc1ZmJhNzgw
YzZiYThiMDU1MzFlMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0FjdGlvblNoZWV0QXNzaXN0YW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaApAQCAtMjgsOCArMjgsMTMgQEAKICNpbXBvcnQgIkdl
c3R1cmVUeXBlcy5oIgogI2ltcG9ydCAiV0tBY3Rpb25TaGVldC5oIgogI2ltcG9ydCA8VUlLaXQv
VUlQb3BvdmVyQ29udHJvbGxlci5oPgorI2ltcG9ydCA8V2ViQ29yZS9NZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnVJdGVtLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2lvcy9EYXRhRGV0ZWN0b3JzVUlTUEku
aD4KLSNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9Gb3J3YXJkLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEZsb2F0UmVjdDsKK30KIAogbmFtZXNwYWNlIFdl
YktpdCB7CiBjbGFzcyBXZWJQYWdlUHJveHk7CkBAIC02OSw2ICs3NCw4IEBAIHR5cGVkZWYgTlNf
RU5VTShOU0ludGVnZXIsIF9XS0VsZW1lbnRBY3Rpb25UeXBlKTsKICNpZiBVU0UoVUlDT05URVhU
TUVOVSkKIC0gKFVJVGFyZ2V0ZWRQcmV2aWV3ICopY3JlYXRlVGFyZ2V0ZWRDb250ZXh0TWVudUhp
bnRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lz
dGFudDsKIC0gKHZvaWQpcmVtb3ZlQ29udGV4dE1lbnVWaWV3SWZQb3NzaWJsZUZvckFjdGlvblNo
ZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50OworLSAodm9p
ZClhY3Rpb25TaGVldEFzc2lzdGFudERpZFNob3dDb250ZXh0TWVudTooV0tBY3Rpb25TaGVldEFz
c2lzdGFudCAqKWFzc2lzdGFudDsKKy0gKHZvaWQpYWN0aW9uU2hlZXRBc3Npc3RhbnREaWREaXNt
aXNzQ29udGV4dE1lbnU6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQ7CiAjZW5k
aWYKIC0gKHZvaWQpYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQg
Kilhc3Npc3RhbnQgc2hhcmVFbGVtZW50V2l0aEltYWdlOihVSUltYWdlICopaW1hZ2UgcmVjdDoo
Q0dSZWN0KWJvdW5kaW5nUmVjdDsKICNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKQEAgLTc3
LDExICs4NCwxNCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tFbGVtZW50QWN0aW9u
VHlwZSk7CiAtIChCT09MKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0
YW50ICopYXNzaXN0YW50IHNob3VsZEluY2x1ZGVSZXZlYWxJbWFnZUFjdGlvbkZvckVsZW1lbnQ6
KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudDsKIC0gKHZvaWQpYWN0aW9uU2hlZXRB
c3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgaGFuZGxlUmV2ZWFs
SW1hZ2U6KFVJSW1hZ2UgKilpbWFnZSB0aXRsZTooTlNTdHJpbmcgKil0aXRsZTsKICNlbmRpZgot
CiBAZW5kCiAKLSNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pICYmIFVTRShVSUNPTlRFWFRNRU5V
KQotQGludGVyZmFjZSBXS0FjdGlvblNoZWV0QXNzaXN0YW50IDogTlNPYmplY3QgPFdLQWN0aW9u
U2hlZXREZWxlZ2F0ZSwgREREZXRlY3Rpb25Db250cm9sbGVySW50ZXJhY3Rpb25EZWxlZ2F0ZSwg
VUlDb250ZXh0TWVudUludGVyYWN0aW9uRGVsZWdhdGU+CisjaWYgVVNFKFVJQ09OVEVYVE1FTlUp
CitAaW50ZXJmYWNlIFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgOiBOU09iamVjdCA8V0tBY3Rpb25T
aGVldERlbGVnYXRlLAorI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKK0RERGV0ZWN0aW9uQ29u
dHJvbGxlckludGVyYWN0aW9uRGVsZWdhdGUsCisjZW5kaWYKK1VJQ29udGV4dE1lbnVJbnRlcmFj
dGlvbkRlbGVnYXRlPgogLSAoQk9PTCloYXNDb250ZXh0TWVudUludGVyYWN0aW9uOwogI2Vsc2UK
IEBpbnRlcmZhY2UgV0tBY3Rpb25TaGVldEFzc2lzdGFudCA6IE5TT2JqZWN0IDxXS0FjdGlvblNo
ZWV0RGVsZWdhdGU+CkBAIC05MiwxNyArMTAyLDI1IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVn
ZXIsIF9XS0VsZW1lbnRBY3Rpb25UeXBlKTsKIC0gKHZvaWQpc2hvd0xpbmtTaGVldDsKIC0gKHZv
aWQpc2hvd0ltYWdlU2hlZXQ7CiAtICh2b2lkKXNob3dEYXRhRGV0ZWN0b3JzVUlGb3JQb3NpdGlv
bkluZm9ybWF0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0
aW9uJilwb3NpdGlvbkluZm9ybWF0aW9uOworI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05U
RVhUX01FTlVTKQorLSAodm9pZClzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51OihXZWJDb3Jl
OjpGbG9hdFJlY3QmJil0YXJnZXRGcmFtZSBpdGVtczooVmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29u
dHJvbHNDb250ZXh0TWVudUl0ZW0+JiYpaXRlbXMgY29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6SUQp
PiYmKWNvbXBsZXRpb25IYW5kbGVyOworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19D
T05URVhUX01FTlVTKQogLSAodm9pZCljbGVhbnVwU2hlZXQ7CiAtICh2b2lkKXVwZGF0ZVNoZWV0
UG9zaXRpb247CiAtIChSZXRhaW5QdHI8TlNBcnJheTxfV0tFbGVtZW50QWN0aW9uICo+PilkZWZh
dWx0QWN0aW9uc0ZvckxpbmtTaGVldDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50
SW5mbzsKIC0gKFJldGFpblB0cjxOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4+KWRlZmF1bHRB
Y3Rpb25zRm9ySW1hZ2VTaGVldDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50SW5m
bzsKIC0gKEJPT0wpaXNTaG93aW5nU2hlZXQ7CiAtICh2b2lkKWludGVyYWN0aW9uRGlkU3RhcnRX
aXRoUG9zaXRpb25JbmZvcm1hdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0
aW9uQXRQb3NpdGlvbiYpaW5mb3JtYXRpb247Ci0tIChOU0FycmF5ICopY3VycmVudEF2YWlsYWJs
ZUFjdGlvblRpdGxlczsKIC0gKHZvaWQpaGFuZGxlRWxlbWVudEFjdGlvbldpdGhUeXBlOihfV0tF
bGVtZW50QWN0aW9uVHlwZSl0eXBlIGVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICop
ZWxlbWVudCBuZWVkc0ludGVyYWN0aW9uOihCT09MKW5lZWRzSW50ZXJhY3Rpb247CiAjaWYgVVNF
KFVJQ09OVEVYVE1FTlUpCiAtIChOU0FycmF5PFVJTWVudUVsZW1lbnQgKj4gKilzdWdnZXN0ZWRB
Y3Rpb25zRm9yQ29udGV4dE1lbnVXaXRoUG9zaXRpb25JbmZvcm1hdGlvbjooY29uc3QgV2ViS2l0
OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpcG9zaXRpb25JbmZvcm1hdGlvbjsK
ICNlbmRpZgogQGVuZAogCitAaW50ZXJmYWNlIFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKFdLVGVz
dGluZykKKy0gKE5TQXJyYXkgKiljdXJyZW50QXZhaWxhYmxlQWN0aW9uVGl0bGVzOworI2lmIEVO
QUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorLSAoTlNBcnJheSAqKWN1cnJlbnRB
dmFpbGFibGVNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtczsKK0BlbmQKKyNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKICNlbmRpZiAvLyBQTEFURk9STShJ
T1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0
aW9uU2hlZXRBc3Npc3RhbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rp
b25TaGVldEFzc2lzdGFudC5tbQppbmRleCBkZDQ3ZDY3ZGQ2Y2MxNDI2MzM0M2IzY2IyMjk3N2Zl
NzMzNzEyOTY0Li44YmMxYzc3NzgwZTM5MTAwZmFkMTlkY2Y2NGI5NWRlY2M1NjAxMGIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFu
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lz
dGFudC5tbQpAQCAtMzksMTIgKzM5LDE3IEBACiAjaW1wb3J0ICJfV0tFbGVtZW50QWN0aW9uSW50
ZXJuYWwuaCIKICNpbXBvcnQgPFVJS2l0L1VJVmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9EYXRh
RGV0ZWN0aW9uLmg+CisjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhdGhVdGlsaXRpZXMu
aD4KKyNpbXBvcnQgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2ltcG9ydCA8d3RmL1JldGFp
blB0ci5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CisjaW1wb3J0IDx3dGYvVmVjdG9y
Lmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KICNpbXBvcnQgPHd0Zi9jb2NvYS9FbnRp
dGxlbWVudHMuaD4KICNpbXBvcnQgPHd0Zi9jb2NvYS9OU1VSTEV4dHJhcy5oPgorI2ltcG9ydCA8
d3RmL2NvY29hL1ZlY3RvckNvY29hLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
ICNpbXBvcnQgPHd0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oPgogCkBAIC0xMDAsNiArMTA1
LDEyIEBAIEBpbXBsZW1lbnRhdGlvbiBXS0FjdGlvblNoZWV0QXNzaXN0YW50IHsKICNpZiBVU0Uo
VUlDT05URVhUTUVOVSkKICAgICBSZXRhaW5QdHI8VUlDb250ZXh0TWVudUludGVyYWN0aW9uPiBf
ZGF0YURldGVjdG9yQ29udGV4dE1lbnVJbnRlcmFjdGlvbjsKICNlbmRpZgorI2lmIEVOQUJMRShN
RURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorICAgIFJldGFpblB0cjxVSUNvbnRleHRNZW51
SW50ZXJhY3Rpb24+IF9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJbnRlcmFjdGlvbjsKKyAgICBS
ZXRhaW5QdHI8VUlNZW51PiBfbWVkaWFDb250cm9sc0NvbnRleHRNZW51OworICAgIFdlYkNvcmU6
OkZsb2F0UmVjdCBfbWVkaWFDb250cm9sc0NvbnRleHRNZW51VGFyZ2V0RnJhbWU7CisgICAgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVt
OjpJRCk+IF9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVDYWxsYmFjazsKKyNlbmRpZiAvLyBFTkFC
TEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKICAgICBXZWFrT2JqQ1B0cjxVSVZpZXc+
IF92aWV3OwogICAgIEJPT0wgX25lZWRzTGlua0luZGljYXRvcjsKICAgICBCT09MIF9pc1ByZXNl
bnRpbmdERFVzZXJJbnRlcmZhY2U7CkBAIC0zMTUsMTkgKzMyNiw2IEBAIC0gKHZvaWQpaW50ZXJh
Y3Rpb25EaWRTdGFydFdpdGhQb3NpdGlvbkluZm9ybWF0aW9uOihjb25zdCBXZWJLaXQ6OkludGVy
YWN0aW9uSW5mCiAjZW5kaWYKIH0KIAotLSAoTlNBcnJheSAqKWN1cnJlbnRBdmFpbGFibGVBY3Rp
b25UaXRsZXMKLXsKLSAgICBpZiAoIV9pbnRlcmFjdGlvblNoZWV0KQotICAgICAgICByZXR1cm4g
QFtdOwotICAgIAotICAgIE5TTXV0YWJsZUFycmF5ICphcnJheSA9IFtOU011dGFibGVBcnJheSBh
cnJheV07Ci0gICAgCi0gICAgZm9yIChVSUFsZXJ0QWN0aW9uICphY3Rpb24gaW4gX2ludGVyYWN0
aW9uU2hlZXQuZ2V0KCkuYWN0aW9ucykKLSAgICAgICAgW2FycmF5IGFkZE9iamVjdDphY3Rpb24u
dGl0bGVdOwotICAgIAotICAgIHJldHVybiBhcnJheTsKLX0KLQogLSAoT3B0aW9uYWw8V2ViS2l0
OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbj4pY3VycmVudFBvc2l0aW9uSW5mb3Jt
YXRpb24KIHsKICAgICByZXR1cm4gX3Bvc2l0aW9uSW5mb3JtYXRpb247CkBAIC02NTMsMzAgKzY1
MSw3MCBAQCAtICh2b2lkKXNob3dMaW5rU2hlZXQKICAgICAgICAgW3NlbGYgY2xlYW51cFNoZWV0
XTsKIH0KIAotI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikgJiYgVVNFKFVJQ09OVEVYVE1FTlUp
CisjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCisKIC0gKHZvaWQpcmVtb3ZlQ29udGV4dE1lbnVJbnRl
cmFjdGlvbgogeworICAgIEJPT0wgZGlkUmVtb3ZlID0gTk87CisKKyNpZiBFTkFCTEUoREFUQV9E
RVRFQ1RJT04pCiAgICAgaWYgKF9kYXRhRGV0ZWN0b3JDb250ZXh0TWVudUludGVyYWN0aW9uKSB7
CiAgICAgICAgIFtfdmlldyByZW1vdmVJbnRlcmFjdGlvbjpfZGF0YURldGVjdG9yQ29udGV4dE1l
bnVJbnRlcmFjdGlvbi5nZXQoKV07CiAgICAgICAgIF9kYXRhRGV0ZWN0b3JDb250ZXh0TWVudUlu
dGVyYWN0aW9uID0gbmlsOwotICAgICAgICBpZiAoW19kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKHJlbW92ZUNvbnRleHRNZW51Vmlld0lmUG9zc2libGVGb3JBY3Rpb25TaGVl
dEFzc2lzdGFudDopXSkKLSAgICAgICAgICAgIHJldHVybiBbX2RlbGVnYXRlIHJlbW92ZUNvbnRl
eHRNZW51Vmlld0lmUG9zc2libGVGb3JBY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmXTsKKyAgICAg
ICAgZGlkUmVtb3ZlID0gWUVTOwogICAgIH0KKyNlbmRpZiAvLyBFTkFCTEUoREFUQV9ERVRFQ1RJ
T04pCisKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyAgICBpZiAo
X21lZGlhQ29udHJvbHNDb250ZXh0TWVudUludGVyYWN0aW9uKSB7CisgICAgICAgIFtfdmlldyBy
ZW1vdmVJbnRlcmFjdGlvbjpfbWVkaWFDb250cm9sc0NvbnRleHRNZW51SW50ZXJhY3Rpb24uZ2V0
KCldOworICAgICAgICBfbWVkaWFDb250cm9sc0NvbnRleHRNZW51SW50ZXJhY3Rpb24gPSBuaWw7
CisgICAgICAgIGRpZFJlbW92ZSA9IFlFUzsKKworICAgICAgICBfbWVkaWFDb250cm9sc0NvbnRl
eHRNZW51LmNsZWFyKCk7CisgICAgICAgIF9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVUYXJnZXRG
cmFtZSA9IHsgfTsKKyAgICAgICAgaWYgKGF1dG8gbWVkaWFDb250cm9sc0NvbnRleHRNZW51Q2Fs
bGJhY2sgPSBzdGQ6OmV4Y2hhbmdlKF9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVDYWxsYmFjaywg
eyB9KSkKKyAgICAgICAgICAgIG1lZGlhQ29udHJvbHNDb250ZXh0TWVudUNhbGxiYWNrKFdlYkNv
cmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OmludmFsaWRJRCk7CisgICAgfQorI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorCisgICAgaWYgKGRp
ZFJlbW92ZSAmJiBbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocmVtb3Zl
Q29udGV4dE1lbnVWaWV3SWZQb3NzaWJsZUZvckFjdGlvblNoZWV0QXNzaXN0YW50OildKQorICAg
ICAgICBbX2RlbGVnYXRlIHJlbW92ZUNvbnRleHRNZW51Vmlld0lmUG9zc2libGVGb3JBY3Rpb25T
aGVldEFzc2lzdGFudDpzZWxmXTsKIH0KIAogLSAodm9pZCllbnN1cmVDb250ZXh0TWVudUludGVy
YWN0aW9uCiB7CisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQogICAgIGlmICghX2RhdGFEZXRl
Y3RvckNvbnRleHRNZW51SW50ZXJhY3Rpb24pIHsKICAgICAgICAgX2RhdGFEZXRlY3RvckNvbnRl
eHRNZW51SW50ZXJhY3Rpb24gPSBhZG9wdE5TKFtbVUlDb250ZXh0TWVudUludGVyYWN0aW9uIGFs
bG9jXSBpbml0V2l0aERlbGVnYXRlOnNlbGZdKTsKICAgICAgICAgW192aWV3IGFkZEludGVyYWN0
aW9uOl9kYXRhRGV0ZWN0b3JDb250ZXh0TWVudUludGVyYWN0aW9uLmdldCgpXTsKICAgICB9Cisj
ZW5kaWYgLy8gRU5BQkxFKERBVEFfREVURUNUSU9OKQorCisjaWYgRU5BQkxFKE1FRElBX0NPTlRS
T0xTX0NPTlRFWFRfTUVOVVMpCisgICAgaWYgKCFfbWVkaWFDb250cm9sc0NvbnRleHRNZW51SW50
ZXJhY3Rpb24pIHsKKyAgICAgICAgX21lZGlhQ29udHJvbHNDb250ZXh0TWVudUludGVyYWN0aW9u
ID0gYWRvcHROUyhbW1VJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiBhbGxvY10gaW5pdFdpdGhEZWxl
Z2F0ZTpzZWxmXSk7CisgICAgICAgIFtfdmlldyBhZGRJbnRlcmFjdGlvbjpfbWVkaWFDb250cm9s
c0NvbnRleHRNZW51SW50ZXJhY3Rpb24uZ2V0KCldOworICAgIH0KKyNlbmRpZiAvLyBFTkFCTEUo
TUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKIH0KIAogLSAoQk9PTCloYXNDb250ZXh0TWVu
dUludGVyYWN0aW9uCiB7Ci0gICAgcmV0dXJuICEhX2RhdGFEZXRlY3RvckNvbnRleHRNZW51SW50
ZXJhY3Rpb247CisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorICAgIGlmIChfZGF0YURldGVj
dG9yQ29udGV4dE1lbnVJbnRlcmFjdGlvbikKKyAgICAgICAgcmV0dXJuIFlFUzsKKyNlbmRpZiAv
LyBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09O
VEVYVF9NRU5VUykKKyAgICBpZiAoX21lZGlhQ29udHJvbHNDb250ZXh0TWVudUludGVyYWN0aW9u
KQorICAgICAgICByZXR1cm4gWUVTOworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19D
T05URVhUX01FTlVTKQorCisgICAgcmV0dXJuIE5POwogfQotI2VuZGlmCisKKyNlbmRpZiAvLyBV
U0UoVUlDT05URVhUTUVOVSkKIAogLSAodm9pZClzaG93RGF0YURldGVjdG9yc1VJRm9yUG9zaXRp
b25JbmZvcm1hdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3Np
dGlvbiYpcG9zaXRpb25JbmZvcm1hdGlvbgogewpAQCAtNzM4LDYgKzc3Niw1NyBAQCAtICh2b2lk
KXNob3dEYXRhRGV0ZWN0b3JzVUlGb3JQb3NpdGlvbkluZm9ybWF0aW9uOihjb25zdCBXZWJLaXQ6
OkludGVyYWN0aW9uSW5mbwogI2VuZGlmIC8vIEVOQUJMRShEQVRBX0RFVEVDVElPTikKIH0KIAor
I2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorCistIChOU0FycmF5PFVJ
TWVudUVsZW1lbnQgKj4gKilfdWlNZW51RWxlbWVudHNGb3JNZWRpYUNvbnRyb2xDb250ZXh0TWVu
dUl0ZW1zOihWZWN0b3I8V2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4mJikg
aXRlbXMKK3sKKyAgICByZXR1cm4gY3JlYXRlTlNBcnJheShpdGVtcywgWyZdIChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtJiBpdGVtKSAtPiBVSU1lbnVFbGVtZW50ICogewor
ICAgICAgICBVSUltYWdlICppbWFnZSA9ICFpdGVtLmljb24uaXNFbXB0eSgpID8gW1VJSW1hZ2Ug
c3lzdGVtSW1hZ2VOYW1lZDpXVEZNb3ZlKGl0ZW0uaWNvbildIDogbmlsOworCisgICAgICAgIGlm
ICghaXRlbS5jaGlsZHJlbi5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gW1VJTWVudSBt
ZW51V2l0aFRpdGxlOldURk1vdmUoaXRlbS50aXRsZSkgaW1hZ2U6aW1hZ2UgaWRlbnRpZmllcjpu
aWwgb3B0aW9uczowIGNoaWxkcmVuOltzZWxmIF91aU1lbnVFbGVtZW50c0Zvck1lZGlhQ29udHJv
bENvbnRleHRNZW51SXRlbXM6V1RGTW92ZShpdGVtLmNoaWxkcmVuKV1dOworCisgICAgICAgIGF1
dG8gc2VsZWN0ZWRJdGVtSUQgPSBpdGVtLmlkOworICAgICAgICBVSUFjdGlvbiAqYWN0aW9uID0g
W1VJQWN0aW9uIGFjdGlvbldpdGhUaXRsZTpXVEZNb3ZlKGl0ZW0udGl0bGUpIGltYWdlOmltYWdl
IGlkZW50aWZpZXI6bmlsIGhhbmRsZXI6W3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tBY3Rpb25T
aGVldEFzc2lzdGFudD4oc2VsZiksIHNlbGVjdGVkSXRlbUlEXSAoVUlBY3Rpb24gKikgeworICAg
ICAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CisgICAgICAgICAgICBp
ZiAoIXN0cm9uZ1NlbGYpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBz
dHJvbmdTZWxmLT5fbWVkaWFDb250cm9sc0NvbnRleHRNZW51Q2FsbGJhY2soc2VsZWN0ZWRJdGVt
SUQpOworICAgICAgICB9XTsKKyAgICAgICAgaWYgKGl0ZW0uaXNDaGVja2VkKQorICAgICAgICAg
ICAgYWN0aW9uLnN0YXRlID0gVUlNZW51RWxlbWVudFN0YXRlT247CisgICAgICAgIHJldHVybiBh
Y3Rpb247CisgICAgfSkuYXV0b3JlbGVhc2UoKTsKK30KKworLSAodm9pZClzaG93TWVkaWFDb250
cm9sc0NvbnRleHRNZW51OihXZWJDb3JlOjpGbG9hdFJlY3QmJil0YXJnZXRGcmFtZSBpdGVtczoo
VmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+JiYpaXRlbXMgY29t
cGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFDb250
cm9sc0NvbnRleHRNZW51SXRlbTo6SUQpPiYmKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgQVNT
RVJUKCFfbWVkaWFDb250cm9sc0NvbnRleHRNZW51SW50ZXJhY3Rpb24pOworICAgIEFTU0VSVCgh
X21lZGlhQ29udHJvbHNDb250ZXh0TWVudSk7CisgICAgQVNTRVJUKCFfbWVkaWFDb250cm9sc0Nv
bnRleHRNZW51Q2FsbGJhY2spOworCisgICAgU3RyaW5nIG1lbnVUaXRsZTsKKyAgICBpZiAoaXRl
bXMuc2l6ZSgpID09IDEpIHsKKyAgICAgICAgbWVudVRpdGxlID0gV1RGTW92ZShpdGVtc1swXS50
aXRsZSk7CisgICAgICAgIGl0ZW1zID0gV1RGTW92ZShpdGVtc1swXS5jaGlsZHJlbik7CisgICAg
fQorCisgICAgaWYgKGl0ZW1zLmlzRW1wdHkoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjppbnZhbGlkSUQpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgX21lZGlhQ29udHJvbHNDb250ZXh0TWVudSA9IFtV
SU1lbnUgbWVudVdpdGhUaXRsZTpXVEZNb3ZlKG1lbnVUaXRsZSkgaW1hZ2U6bmlsIGlkZW50aWZp
ZXI6bmlsIG9wdGlvbnM6MCBjaGlsZHJlbjpbc2VsZiBfdWlNZW51RWxlbWVudHNGb3JNZWRpYUNv
bnRyb2xDb250ZXh0TWVudUl0ZW1zOldURk1vdmUoaXRlbXMpXV07CisgICAgX21lZGlhQ29udHJv
bHNDb250ZXh0TWVudVRhcmdldEZyYW1lID0gV1RGTW92ZSh0YXJnZXRGcmFtZSk7CisgICAgX21l
ZGlhQ29udHJvbHNDb250ZXh0TWVudUNhbGxiYWNrID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cik7CisKKyAgICBbc2VsZiBlbnN1cmVDb250ZXh0TWVudUludGVyYWN0aW9uXTsKKyAgICBbX21l
ZGlhQ29udHJvbHNDb250ZXh0TWVudUludGVyYWN0aW9uIF9wcmVzZW50TWVudUF0TG9jYXRpb246
X21lZGlhQ29udHJvbHNDb250ZXh0TWVudVRhcmdldEZyYW1lLmNlbnRlcigpXTsKK30KKworI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorCiAjaWYgVVNFKFVJ
Q09OVEVYVE1FTlUpCiAKIHN0YXRpYyBOU0FycmF5PFVJTWVudUVsZW1lbnQgKj4gKm1lbnVFbGVt
ZW50c0Zyb21EZWZhdWx0QWN0aW9ucyhSZXRhaW5QdHI8TlNBcnJheT4gZGVmYXVsdEVsZW1lbnRB
Y3Rpb25zLCBSZXRhaW5QdHI8X1dLQWN0aXZhdGVkRWxlbWVudEluZm8+IGVsZW1lbnRJbmZvKQpA
QCAtNzU5LDQ4ICs4NDgsODEgQEAgLSAoTlNBcnJheTxVSU1lbnVFbGVtZW50ICo+ICopc3VnZ2Vz
dGVkQWN0aW9uc0ZvckNvbnRleHRNZW51V2l0aFBvc2l0aW9uSW5mb3JtYXQKICAgICByZXR1cm4g
bWVudUVsZW1lbnRzRnJvbURlZmF1bHRBY3Rpb25zKGRlZmF1bHRBY3Rpb25zRnJvbUFzc2lzdGFu
dCwgZWxlbWVudEluZm8pOwogfQogCi0jaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQogCiAtIChV
SUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAqKWNvbnRleHRNZW51SW50ZXJhY3Rpb246KFVJQ29u
dGV4dE1lbnVJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIGNvbmZpZ3VyYXRpb25Gb3JNZW51QXRM
b2NhdGlvbjooQ0dQb2ludClsb2NhdGlvbgogewotICAgIERERGV0ZWN0aW9uQ29udHJvbGxlciAq
Y29udHJvbGxlciA9IFtnZXRERERldGVjdGlvbkNvbnRyb2xsZXJDbGFzcygpIHNoYXJlZENvbnRy
b2xsZXJdOwotICAgIE5TRGljdGlvbmFyeSAqY29udGV4dCA9IG5pbDsKLSAgICBOU1N0cmluZyAq
dGV4dEF0U2VsZWN0aW9uID0gbmlsOworI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyAgICBp
ZiAoaW50ZXJhY3Rpb24gPT0gX2RhdGFEZXRlY3RvckNvbnRleHRNZW51SW50ZXJhY3Rpb24pIHsK
KyAgICAgICAgREREZXRlY3Rpb25Db250cm9sbGVyICpjb250cm9sbGVyID0gW2dldERERGV0ZWN0
aW9uQ29udHJvbGxlckNsYXNzKCkgc2hhcmVkQ29udHJvbGxlcl07CisgICAgICAgIE5TRGljdGlv
bmFyeSAqY29udGV4dCA9IG5pbDsKKyAgICAgICAgTlNTdHJpbmcgKnRleHRBdFNlbGVjdGlvbiA9
IG5pbDsKIAotICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
ZGF0YURldGVjdGlvbkNvbnRleHRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDpwb3NpdGlvbkluZm9y
bWF0aW9uOildKQotICAgICAgICBjb250ZXh0ID0gW19kZWxlZ2F0ZSBkYXRhRGV0ZWN0aW9uQ29u
dGV4dEZvckFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGYgcG9zaXRpb25JbmZvcm1hdGlvbjoqX3Bv
c2l0aW9uSW5mb3JtYXRpb25dOwotICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3Ioc2VsZWN0ZWRUZXh0Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6KV0pCi0gICAg
ICAgIHRleHRBdFNlbGVjdGlvbiA9IFtfZGVsZWdhdGUgc2VsZWN0ZWRUZXh0Rm9yQWN0aW9uU2hl
ZXRBc3Npc3RhbnQ6c2VsZl07CisgICAgICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoZGF0YURldGVjdGlvbkNvbnRleHRGb3JBY3Rpb25TaGVldEFzc2lzdGFu
dDpwb3NpdGlvbkluZm9ybWF0aW9uOildKQorICAgICAgICAgICAgY29udGV4dCA9IFtfZGVsZWdh
dGUgZGF0YURldGVjdGlvbkNvbnRleHRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIHBvc2l0
aW9uSW5mb3JtYXRpb246Kl9wb3NpdGlvbkluZm9ybWF0aW9uXTsKKyAgICAgICAgaWYgKFtfZGVs
ZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzZWxlY3RlZFRleHRGb3JBY3Rpb25T
aGVldEFzc2lzdGFudDopXSkKKyAgICAgICAgICAgIHRleHRBdFNlbGVjdGlvbiA9IFtfZGVsZWdh
dGUgc2VsZWN0ZWRUZXh0Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZl07CiAKLSAgICBOU0Rp
Y3Rpb25hcnkgKm5ld0NvbnRleHQgPSBuaWw7Ci0gICAgRERSZXN1bHRSZWYgZGRSZXN1bHQgPSBb
Y29udHJvbGxlciByZXN1bHRGb3JVUkw6X3Bvc2l0aW9uSW5mb3JtYXRpb24tPnVybCBpZGVudGlm
aWVyOl9wb3NpdGlvbkluZm9ybWF0aW9uLT5kYXRhRGV0ZWN0b3JJZGVudGlmaWVyIHNlbGVjdGVk
VGV4dDp0ZXh0QXRTZWxlY3Rpb24gcmVzdWx0czpfcG9zaXRpb25JbmZvcm1hdGlvbi0+ZGF0YURl
dGVjdG9yUmVzdWx0cy5nZXQoKSBjb250ZXh0OmNvbnRleHQgZXh0ZW5kZWRDb250ZXh0OiZuZXdD
b250ZXh0XTsKKyAgICAgICAgTlNEaWN0aW9uYXJ5ICpuZXdDb250ZXh0ID0gbmlsOworICAgICAg
ICBERFJlc3VsdFJlZiBkZFJlc3VsdCA9IFtjb250cm9sbGVyIHJlc3VsdEZvclVSTDpfcG9zaXRp
b25JbmZvcm1hdGlvbi0+dXJsIGlkZW50aWZpZXI6X3Bvc2l0aW9uSW5mb3JtYXRpb24tPmRhdGFE
ZXRlY3RvcklkZW50aWZpZXIgc2VsZWN0ZWRUZXh0OnRleHRBdFNlbGVjdGlvbiByZXN1bHRzOl9w
b3NpdGlvbkluZm9ybWF0aW9uLT5kYXRhRGV0ZWN0b3JSZXN1bHRzLmdldCgpIGNvbnRleHQ6Y29u
dGV4dCBleHRlbmRlZENvbnRleHQ6Jm5ld0NvbnRleHRdOwogCi0gICAgQ0dSZWN0IHNvdXJjZVJl
Y3Q7Ci0gICAgaWYgKF9wb3NpdGlvbkluZm9ybWF0aW9uLT5pc0xpbmspCi0gICAgICAgIHNvdXJj
ZVJlY3QgPSBfcG9zaXRpb25JbmZvcm1hdGlvbi0+bGlua0luZGljYXRvci50ZXh0Qm91bmRpbmdS
ZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzOwotICAgIGVsc2UKLSAgICAgICAgc291cmNlUmVjdCA9
IF9wb3NpdGlvbkluZm9ybWF0aW9uLT5ib3VuZHM7CisgICAgICAgIENHUmVjdCBzb3VyY2VSZWN0
OworICAgICAgICBpZiAoX3Bvc2l0aW9uSW5mb3JtYXRpb24tPmlzTGluaykKKyAgICAgICAgICAg
IHNvdXJjZVJlY3QgPSBfcG9zaXRpb25JbmZvcm1hdGlvbi0+bGlua0luZGljYXRvci50ZXh0Qm91
bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBzb3VyY2VSZWN0ID0gX3Bvc2l0aW9uSW5mb3JtYXRpb24tPmJvdW5kczsKIAotICAgIGF1dG8g
ZGRDb250ZXh0TWVudUFjdGlvbkNsYXNzID0gZ2V0RERDb250ZXh0TWVudUFjdGlvbkNsYXNzKCk7
Ci0gICAgYXV0byBmaW5hbENvbnRleHQgPSBbZGRDb250ZXh0TWVudUFjdGlvbkNsYXNzIHVwZGF0
ZUNvbnRleHQ6bmV3Q29udGV4dCB3aXRoU291cmNlUmVjdDpzb3VyY2VSZWN0XTsKKyAgICAgICAg
YXV0byBkZENvbnRleHRNZW51QWN0aW9uQ2xhc3MgPSBnZXRERENvbnRleHRNZW51QWN0aW9uQ2xh
c3MoKTsKKyAgICAgICAgYXV0byBmaW5hbENvbnRleHQgPSBbZGRDb250ZXh0TWVudUFjdGlvbkNs
YXNzIHVwZGF0ZUNvbnRleHQ6bmV3Q29udGV4dCB3aXRoU291cmNlUmVjdDpzb3VyY2VSZWN0XTsK
IAotICAgIGlmIChkZFJlc3VsdCkKLSAgICAgICAgcmV0dXJuIFtkZENvbnRleHRNZW51QWN0aW9u
Q2xhc3MgY29udGV4dE1lbnVDb25maWd1cmF0aW9uV2l0aFJlc3VsdDpkZFJlc3VsdCBpblZpZXc6
X3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkgY29udGV4dDpmaW5hbENvbnRleHQgbWVudUlkZW50aWZp
ZXI6bmlsXTsKLSAgICByZXR1cm4gW2RkQ29udGV4dE1lbnVBY3Rpb25DbGFzcyBjb250ZXh0TWVu
dUNvbmZpZ3VyYXRpb25XaXRoVVJMOl9wb3NpdGlvbkluZm9ybWF0aW9uLT51cmwgaW5WaWV3Ol92
aWV3LmdldEF1dG9yZWxlYXNlZCgpIGNvbnRleHQ6ZmluYWxDb250ZXh0IG1lbnVJZGVudGlmaWVy
Om5pbF07CisgICAgICAgIGlmIChkZFJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBbZGRDb250
ZXh0TWVudUFjdGlvbkNsYXNzIGNvbnRleHRNZW51Q29uZmlndXJhdGlvbldpdGhSZXN1bHQ6ZGRS
ZXN1bHQgaW5WaWV3Ol92aWV3LmdldEF1dG9yZWxlYXNlZCgpIGNvbnRleHQ6ZmluYWxDb250ZXh0
IG1lbnVJZGVudGlmaWVyOm5pbF07CisgICAgICAgIHJldHVybiBbZGRDb250ZXh0TWVudUFjdGlv
bkNsYXNzIGNvbnRleHRNZW51Q29uZmlndXJhdGlvbldpdGhVUkw6X3Bvc2l0aW9uSW5mb3JtYXRp
b24tPnVybCBpblZpZXc6X3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkgY29udGV4dDpmaW5hbENvbnRl
eHQgbWVudUlkZW50aWZpZXI6bmlsXTsKKyAgICB9CisjZW5kaWYgLy8gRU5BQkxFKERBVEFfREVU
RUNUSU9OKQorCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisgICAg
aWYgKGludGVyYWN0aW9uID09IF9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJbnRlcmFjdGlvbikg
eworICAgICAgICByZXR1cm4gW1VJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRp
b25XaXRoSWRlbnRpZmllcjpuaWwgcHJldmlld1Byb3ZpZGVyOm5pbCBhY3Rpb25Qcm92aWRlcjpb
d2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0FjdGlvblNoZWV0QXNzaXN0YW50PihzZWxmKV0gKE5T
QXJyYXk8VUlNZW51RWxlbWVudCAqPiAqc3VnZ2VzdGVkQWN0aW9ucykgLT4gVUlNZW51ICogewor
ICAgICAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CisgICAgICAgICAg
ICBpZiAoIXN0cm9uZ1NlbGYpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5pbDsKKworICAgICAg
ICAgICAgcmV0dXJuIHN0cm9uZ1NlbGYtPl9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUuZ2V0KCk7
CisgICAgICAgIH1dOworICAgIH0KKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09O
VEVYVF9NRU5VUykKKworICAgIHJldHVybiBuaWw7CiB9CiAKIC0gKFVJVGFyZ2V0ZWRQcmV2aWV3
ICopY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50
ZXJhY3Rpb24gcHJldmlld0ZvckhpZ2hsaWdodGluZ01lbnVXaXRoQ29uZmlndXJhdGlvbjooVUlD
b250ZXh0TWVudUNvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uCiB7Ci0gICAgYXV0byBkZWxl
Z2F0ZSA9IF9kZWxlZ2F0ZS5nZXQoKTsKLSAgICBDR1BvaW50IGNlbnRlciA9IF9wb3NpdGlvbklu
Zm9ybWF0aW9uLT5yZXF1ZXN0LnBvaW50OwotICAgIAotICAgIGlmIChbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihjcmVhdGVUYXJnZXRlZENvbnRleHRNZW51SGludEZvckFj
dGlvblNoZWV0QXNzaXN0YW50OildKQotICAgICAgICByZXR1cm4gW2RlbGVnYXRlIGNyZWF0ZVRh
cmdldGVkQ29udGV4dE1lbnVIaW50Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZl07Ci0gICAg
Ci0gICAgUmV0YWluUHRyPFVJUHJldmlld1BhcmFtZXRlcnM+IHVudXNlZFByZXZpZXdQYXJhbWV0
ZXJzID0gYWRvcHROUyhbW1VJUHJldmlld1BhcmFtZXRlcnMgYWxsb2NdIGluaXRdKTsKLSAgICBS
ZXRhaW5QdHI8VUlQcmV2aWV3VGFyZ2V0PiBwcmV2aWV3VGFyZ2V0ID0gYWRvcHROUyhbW1VJUHJl
dmlld1RhcmdldCBhbGxvY10gaW5pdFdpdGhDb250YWluZXI6X3ZpZXcuZ2V0QXV0b3JlbGVhc2Vk
KCkgY2VudGVyOmNlbnRlcl0pOwotICAgIFJldGFpblB0cjxVSVRhcmdldGVkUHJldmlldz4gcHJl
dmlldyA9IGFkb3B0TlMoW1tVSVRhcmdldGVkUHJldmlldyBhbGxvY10gaW5pdFdpdGhWaWV3Ol92
aWV3LmdldEF1dG9yZWxlYXNlZCgpIHBhcmFtZXRlcnM6dW51c2VkUHJldmlld1BhcmFtZXRlcnMu
Z2V0KCkgdGFyZ2V0OnByZXZpZXdUYXJnZXQuZ2V0KCldKTsKLSAgICByZXR1cm4gcHJldmlldy5h
dXRvcmVsZWFzZSgpOworI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyAgICBpZiAoaW50ZXJh
Y3Rpb24gPT0gX2RhdGFEZXRlY3RvckNvbnRleHRNZW51SW50ZXJhY3Rpb24pIHsKKyAgICAgICAg
YXV0byBkZWxlZ2F0ZSA9IF9kZWxlZ2F0ZS5nZXQoKTsKKyAgICAgICAgQ0dQb2ludCBjZW50ZXIg
PSBfcG9zaXRpb25JbmZvcm1hdGlvbi0+cmVxdWVzdC5wb2ludDsKKworICAgICAgICBpZiAoW2Rl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoY3JlYXRlVGFyZ2V0ZWRDb250ZXh0
TWVudUhpbnRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDopXSkKKyAgICAgICAgICAgIHJldHVybiBb
ZGVsZWdhdGUgY3JlYXRlVGFyZ2V0ZWRDb250ZXh0TWVudUhpbnRGb3JBY3Rpb25TaGVldEFzc2lz
dGFudDpzZWxmXTsKKworICAgICAgICBSZXRhaW5QdHI8VUlQcmV2aWV3UGFyYW1ldGVycz4gdW51
c2VkUHJldmlld1BhcmFtZXRlcnMgPSBhZG9wdE5TKFtbVUlQcmV2aWV3UGFyYW1ldGVycyBhbGxv
Y10gaW5pdF0pOworICAgICAgICBSZXRhaW5QdHI8VUlQcmV2aWV3VGFyZ2V0PiBwcmV2aWV3VGFy
Z2V0ID0gYWRvcHROUyhbW1VJUHJldmlld1RhcmdldCBhbGxvY10gaW5pdFdpdGhDb250YWluZXI6
X3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkgY2VudGVyOmNlbnRlcl0pOworICAgICAgICBSZXRhaW5Q
dHI8VUlUYXJnZXRlZFByZXZpZXc+IHByZXZpZXcgPSBhZG9wdE5TKFtbVUlUYXJnZXRlZFByZXZp
ZXcgYWxsb2NdIGluaXRXaXRoVmlldzpfdmlldy5nZXRBdXRvcmVsZWFzZWQoKSBwYXJhbWV0ZXJz
OnVudXNlZFByZXZpZXdQYXJhbWV0ZXJzLmdldCgpIHRhcmdldDpwcmV2aWV3VGFyZ2V0LmdldCgp
XSk7CisgICAgICAgIHJldHVybiBwcmV2aWV3LmF1dG9yZWxlYXNlKCk7CisgICAgfQorI2VuZGlm
IC8vIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKworI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19D
T05URVhUX01FTlVTKQorICAgIGlmIChpbnRlcmFjdGlvbiA9PSBfbWVkaWFDb250cm9sc0NvbnRl
eHRNZW51SW50ZXJhY3Rpb24pIHsKKyAgICAgICAgYXV0byBlbXB0eVZpZXcgPSBhZG9wdE5TKFtb
VUlWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOl9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVUYXJn
ZXRGcmFtZV0pOworICAgICAgICBhdXRvIHByZXZpZXdQYXJhbWV0ZXJzID0gYWRvcHROUyhbW1VJ
UHJldmlld1BhcmFtZXRlcnMgYWxsb2NdIGluaXRdKTsKKyAgICAgICAgYXV0byBwcmV2aWV3VGFy
Z2V0ID0gYWRvcHROUyhbW1VJUHJldmlld1RhcmdldCBhbGxvY10gaW5pdFdpdGhDb250YWluZXI6
X3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkgY2VudGVyOl9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVU
YXJnZXRGcmFtZS5jZW50ZXIoKV0pOworICAgICAgICBhdXRvIHByZXZpZXcgPSBhZG9wdE5TKFtb
VUlUYXJnZXRlZFByZXZpZXcgYWxsb2NdIGluaXRXaXRoVmlldzplbXB0eVZpZXcuZ2V0KCkgcGFy
YW1ldGVyczpwcmV2aWV3UGFyYW1ldGVycy5nZXQoKSB0YXJnZXQ6cHJldmlld1RhcmdldC5nZXQo
KV0pOworICAgICAgICByZXR1cm4gcHJldmlldy5hdXRvcmVsZWFzZSgpOworICAgIH0KKyNlbmRp
ZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKworICAgIHJldHVybiBu
aWw7CiB9CiAKIC0gKF9VSUNvbnRleHRNZW51U3R5bGUgKilfY29udGV4dE1lbnVJbnRlcmFjdGlv
bjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gc3R5bGVGb3JNZW51V2l0
aENvbmZpZ3VyYXRpb246KFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlv
bgpAQCAtODEwLDIyICs5MzIsNDUgQEAgLSAoX1VJQ29udGV4dE1lbnVTdHlsZSAqKV9jb250ZXh0
TWVudUludGVyYWN0aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gKilpbnQKICAgICByZXR1
cm4gc3R5bGU7CiB9CiAKKy0gKHZvaWQpY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0
TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gd2lsbERpc3BsYXlNZW51Rm9yQ29uZmlndXJh
dGlvbjooVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uIGFuaW1hdG9y
OihpZCA8VUlDb250ZXh0TWVudUludGVyYWN0aW9uQW5pbWF0aW5nPilhbmltYXRvcgoreworICAg
IFthbmltYXRvciBhZGRDb21wbGV0aW9uOlt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLQWN0aW9u
U2hlZXRBc3Npc3RhbnQ+KHNlbGYpXSB7CisgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtT
ZWxmLmdldCgpOworICAgICAgICBpZiAoIXN0cm9uZ1NlbGYpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgaWYgKFtzdHJvbmdTZWxmLT5fZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3RvcihhY3Rpb25TaGVldEFzc2lzdGFudERpZFNob3dDb250ZXh0TWVudTopXSkKKyAg
ICAgICAgICAgIFtzdHJvbmdTZWxmLT5fZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnREaWRT
aG93Q29udGV4dE1lbnU6c3Ryb25nU2VsZi5nZXQoKV07CisgICAgfV07Cit9CisKIC0gKHZvaWQp
Y29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJh
Y3Rpb24gd2lsbEVuZEZvckNvbmZpZ3VyYXRpb246KFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9u
ICopY29uZmlndXJhdGlvbiBhbmltYXRvcjooaWQ8VUlDb250ZXh0TWVudUludGVyYWN0aW9uQW5p
bWF0aW5nPilhbmltYXRvcgogewotICAgIFthbmltYXRvciBhZGRDb21wbGV0aW9uOl57Ci0gICAg
ICAgIFtzZWxmIHJlbW92ZUNvbnRleHRNZW51SW50ZXJhY3Rpb25dOworICAgIFthbmltYXRvciBh
ZGRDb21wbGV0aW9uOlt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLQWN0aW9uU2hlZXRBc3Npc3Rh
bnQ+KHNlbGYpXSB7CisgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOwor
ICAgICAgICBpZiAoIXN0cm9uZ1NlbGYpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
aWYgKFtzdHJvbmdTZWxmLT5fZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihh
Y3Rpb25TaGVldEFzc2lzdGFudERpZERpc21pc3NDb250ZXh0TWVudTopXSkKKyAgICAgICAgICAg
IFtzdHJvbmdTZWxmLT5fZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnREaWREaXNtaXNzQ29u
dGV4dE1lbnU6c3Ryb25nU2VsZi5nZXQoKV07CisKKyAgICAgICAgW3N0cm9uZ1NlbGYgcmVtb3Zl
Q29udGV4dE1lbnVJbnRlcmFjdGlvbl07CiAgICAgfV07CiB9CiAKIC0gKE5TQXJyYXk8VUlNZW51
RWxlbWVudCAqPiAqKV9jb250ZXh0TWVudUludGVyYWN0aW9uOihVSUNvbnRleHRNZW51SW50ZXJh
Y3Rpb24gKilpbnRlcmFjdGlvbiBvdmVycmlkZVN1Z2dlc3RlZEFjdGlvbnNGb3JDb25maWd1cmF0
aW9uOihVSUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24KIHsKLSAgICBp
ZiAoIV9wb3NpdGlvbkluZm9ybWF0aW9uKQotICAgICAgICByZXR1cm4gbmlsOwotICAgIHJldHVy
biBbc2VsZiBzdWdnZXN0ZWRBY3Rpb25zRm9yQ29udGV4dE1lbnVXaXRoUG9zaXRpb25JbmZvcm1h
dGlvbjoqX3Bvc2l0aW9uSW5mb3JtYXRpb25dOwotfQotCisjaWYgRU5BQkxFKERBVEFfREVURUNU
SU9OKQorICAgIGlmIChpbnRlcmFjdGlvbiA9PSBfZGF0YURldGVjdG9yQ29udGV4dE1lbnVJbnRl
cmFjdGlvbikgeworICAgICAgICBpZiAoIV9wb3NpdGlvbkluZm9ybWF0aW9uKQorICAgICAgICAg
ICAgcmV0dXJuIG5pbDsKKyAgICAgICAgcmV0dXJuIFtzZWxmIHN1Z2dlc3RlZEFjdGlvbnNGb3JD
b250ZXh0TWVudVdpdGhQb3NpdGlvbkluZm9ybWF0aW9uOipfcG9zaXRpb25JbmZvcm1hdGlvbl07
CisgICAgfQogI2VuZGlmIC8vIEVOQUJMRShEQVRBX0RFVEVDVElPTikKIAorICAgIHJldHVybiBu
aWw7Cit9CisKICNlbmRpZiAvLyBVU0UoVUlDT05URVhUTUVOVSkKIAogLSAodm9pZCloYW5kbGVF
bGVtZW50QWN0aW9uV2l0aFR5cGU6KF9XS0VsZW1lbnRBY3Rpb25UeXBlKXR5cGUgZWxlbWVudDoo
X1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50IG5lZWRzSW50ZXJhY3Rpb246KEJPT0wp
bmVlZHNJbnRlcmFjdGlvbgpAQCAtODg2LDYgKzEwMzEsNTkgQEAgLSAodm9pZCljbGVhbnVwU2hl
ZXQKICAgICBfaGFzUGVuZGluZ0FjdGlvblNoZWV0ID0gTk87CiB9CiAKKyNwcmFnbWEgbWFyayAt
IFdLVGVzdGluZworCistIChOU0FycmF5ICopY3VycmVudEF2YWlsYWJsZUFjdGlvblRpdGxlcwor
eworICAgIGlmICghX2ludGVyYWN0aW9uU2hlZXQpCisgICAgICAgIHJldHVybiBAW107CisKKyAg
ICBOU011dGFibGVBcnJheSAqYXJyYXkgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOworCisgICAg
Zm9yIChVSUFsZXJ0QWN0aW9uICphY3Rpb24gaW4gX2ludGVyYWN0aW9uU2hlZXQuZ2V0KCkuYWN0
aW9ucykKKyAgICAgICAgW2FycmF5IGFkZE9iamVjdDphY3Rpb24udGl0bGVdOworCisgICAgcmV0
dXJuIGFycmF5OworfQorCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMp
CisKKy0gKE5TRGljdGlvbmFyeSAqKV9jb250ZW50c09mQ29udGV4dE1lbnVJdGVtOihVSU1lbnVF
bGVtZW50ICopaXRlbQoreworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIHJlc3VsdCA9IE5TTXV0
YWJsZURpY3Rpb25hcnkuZGljdGlvbmFyeTsKKworICAgIGlmIChpdGVtLnRpdGxlLmxlbmd0aCkK
KyAgICAgICAgcmVzdWx0W0AidGl0bGUiXSA9IGl0ZW0udGl0bGU7CisKKyAgICBpZiAoW2l0ZW0g
aXNLaW5kT2ZDbGFzczpVSU1lbnUuY2xhc3NdKSB7CisgICAgICAgIFVJTWVudSAqbWVudSA9IChV
SU1lbnUgKilpdGVtOworCisgICAgICAgIE5TTXV0YWJsZUFycmF5ICpjaGlsZHJlbiA9IFtOU011
dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0eTptZW51LmNoaWxkcmVuLmNvdW50XTsKKyAgICAg
ICAgZm9yIChVSU1lbnVFbGVtZW50ICpjaGlsZCBpbiBtZW51LmNoaWxkcmVuKQorICAgICAgICAg
ICAgW2NoaWxkcmVuIGFkZE9iamVjdDpbc2VsZiBfY29udGVudHNPZkNvbnRleHRNZW51SXRlbTpj
aGlsZF1dOworICAgICAgICByZXN1bHRbQCJjaGlsZHJlbiJdID0gY2hpbGRyZW47CisgICAgfQor
CisgICAgaWYgKFtpdGVtIGlzS2luZE9mQ2xhc3M6VUlBY3Rpb24uY2xhc3NdKSB7CisgICAgICAg
IFVJQWN0aW9uICphY3Rpb24gPSAoVUlBY3Rpb24gKilpdGVtOworCisgICAgICAgIGlmIChhY3Rp
b24uc3RhdGUgPT0gVUlNZW51RWxlbWVudFN0YXRlT24pCisgICAgICAgICAgICByZXN1bHRbQCJj
aGVja2VkIl0gPSBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVTXTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCistIChOU0FycmF5ICopY3VycmVudEF2YWlsYWJsZU1lZGlhQ29u
dHJvbHNDb250ZXh0TWVudUl0ZW1zCit7CisgICAgTlNNdXRhYmxlQXJyYXkgKnJlc3VsdCA9IE5T
TXV0YWJsZUFycmF5LmFycmF5OworICAgIGlmIChfbWVkaWFDb250cm9sc0NvbnRleHRNZW51KQor
ICAgICAgICBbcmVzdWx0IGFkZE9iamVjdDpbc2VsZiBfY29udGVudHNPZkNvbnRleHRNZW51SXRl
bTpfbWVkaWFDb250cm9sc0NvbnRleHRNZW51LmdldCgpXV07CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorCiBA
ZW5kCiAKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IDVk
NjgzMjY3YWUyNDViNGM3OWFlYThiODA2ZDU1ZmY2ZGUzYTYzMzEuLjljMmY1MWVmZmYwMTZlMmUz
YzRmYzNjY2I5Y2UxNWIxMDJiMjhlNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTU4LDYgKzU4LDcgQEAK
ICNpbXBvcnQgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db2xv
ci5oPgogI2ltcG9ydCA8V2ViQ29yZS9GbG9hdFF1YWQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTWVk
aWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Qb2ludGVySUQu
aD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogI2ltcG9ydCA8d3RmL0NvbXBsZXRpb25IYW5k
bGVyLmg+CkBAIC03OCw2ICs3OSw3IEBAIGNsYXNzIFRleHRTdHJlYW07CiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBDb2xvcjsKIGNsYXNzIEZsb2F0UXVhZDsKK2NsYXNzIEZsb2F0UmVjdDsK
IGNsYXNzIEludFNpemU7CiBjbGFzcyBTZWxlY3Rpb25SZWN0Owogc3RydWN0IENvbnRhY3RJbmZv
OwpAQCAtNjcyLDYgKzY3NCwxMCBAQCBGT1JfRUFDSF9QUklWQVRFX1dLQ09OVEVOVFZJRVdfQUNU
SU9OKERFQ0xBUkVfV0tDT05URU5UVklFV19BQ1RJT05fRk9SX1dFQl9WSUVXKQogLSAodm9pZClf
c2V0TW91c2VFdmVudFBvbGljeTooV2ViQ29yZTo6TW91c2VFdmVudFBvbGljeSlwb2xpY3k7CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorLSAodm9p
ZClfc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudTooV2ViQ29yZTo6RmxvYXRSZWN0JiYpdGFy
Z2V0RnJhbWUgaXRlbXM6KFZlY3RvcjxXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJ
dGVtPiYmKWl0ZW1zIGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJiljb21wbGV0aW9uSGFu
ZGxlcjsKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKwog
I2lmIEVOQUJMRShJT1NfRk9STV9DT05UUk9MX1JFRlJFU0gpCiAtIChCT09MKV9mb3JtQ29udHJv
bFJlZnJlc2hFbmFibGVkOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA0N2Q5NmMyZTk5YjU0
YjFlZWU1YTUxMzQyYTQxZTJiMTY5Y2UxN2RjLi43MDQxN2Y0YTIwNTQ1OTliNjQyMzI4YTZmMDJm
YjkwZjE2ODk4N2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTEwMCw2ICsxMDAsNyBAQAogI2ltcG9y
dCA8V2ViQ29yZS9ET01QYXN0ZUFjY2Vzcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9EYXRhRGV0ZWN0
aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UXVhZC5oPgorI2ltcG9ydCA8V2ViQ29yZS9G
bG9hdFJlY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvRm9udEF0dHJpYnV0ZUNoYW5nZXMuaD4KICNp
bXBvcnQgPFdlYkNvcmUvSW5wdXRNb2RlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0tleUV2ZW50Q29k
ZXNJT1MuaD4KQEAgLTcyODMsNiArNzI4NCwxNiBAQCAtICh2b2lkKXJlbW92ZUNvbnRleHRNZW51
Vmlld0lmUG9zc2libGVGb3JBY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzcwog
ICAgIFtzZWxmIF9yZW1vdmVDb250ZXh0TWVudVZpZXdJZlBvc3NpYmxlXTsKIH0KIAorLSAodm9p
ZClhY3Rpb25TaGVldEFzc2lzdGFudERpZFNob3dDb250ZXh0TWVudTooV0tBY3Rpb25TaGVldEFz
c2lzdGFudCAqKWFzc2lzdGFudAoreworICAgIFtfd2ViVmlldyBfZGlkU2hvd0NvbnRleHRNZW51
XTsKK30KKworLSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFudERpZERpc21pc3NDb250ZXh0TWVu
dTooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudAoreworICAgIFtfd2ViVmlldyBf
ZGlkRGlzbWlzc0NvbnRleHRNZW51XTsKK30KKwogI2VuZGlmIC8vIFVTRShVSUNPTlRFWFRNRU5V
KQogCiAtIChCT09MKV9zaG91bGRVc2VDb250ZXh0TWVudXMKQEAgLTg5MDEsNiArODkxMiwxNSBA
QCAtICh2b2lkKV9zZXRNb3VzZUV2ZW50UG9saWN5OihXZWJDb3JlOjpNb3VzZUV2ZW50UG9saWN5
KXBvbGljeQogCiAjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpCiAKKyNp
ZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKworLSAodm9pZClfc2hvd01l
ZGlhQ29udHJvbHNDb250ZXh0TWVudTooV2ViQ29yZTo6RmxvYXRSZWN0JiYpdGFyZ2V0RnJhbWUg
aXRlbXM6KFZlY3RvcjxXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiYmKWl0
ZW1zIGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJiljb21wbGV0aW9uSGFuZGxlcgorewor
ICAgIFtfYWN0aW9uU2hlZXRBc3Npc3RhbnQgc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudTpX
VEZNb3ZlKHRhcmdldEZyYW1lKSBpdGVtczpXVEZNb3ZlKGl0ZW1zKSBjb21wbGV0aW9uSGFuZGxl
cjpXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV07Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVE
SUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKwogI2lmIEhBVkUoVUlfUE9JTlRFUl9JTlRFUkFD
VElPTikKIAogLSAodm9pZClzZXRVcFBvaW50ZXJJbnRlcmFjdGlvbgpAQCAtOTM0OSw2ICs5MzY5
LDExIEBAIC0gKE5TRGljdGlvbmFyeSAqKV9jb250ZW50c09mVXNlckludGVyZmFjZUl0ZW06KE5T
U3RyaW5nICopdXNlckludGVyZmFjZUl0ZW0KICAgICB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShN
RURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorICAgIGlmIChbdXNlckludGVyZmFjZUl0ZW0g
aXNFcXVhbFRvU3RyaW5nOkAibWVkaWFDb250cm9sc0NvbnRleHRNZW51Il0pCisgICAgICAgIHJl
dHVybiBAeyB1c2VySW50ZXJmYWNlSXRlbTogW19hY3Rpb25TaGVldEFzc2lzdGFudCBjdXJyZW50
QXZhaWxhYmxlTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbXNdIH07CisjZW5kaWYgLy8gRU5B
QkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisKICAgICBpZiAoW3VzZXJJbnRlcmZh
Y2VJdGVtIGlzRXF1YWxUb1N0cmluZzpAImZpbGVVcGxvYWRQYW5lbE1lbnUiXSkgewogICAgICAg
ICBpZiAoIV9maWxlVXBsb2FkUGFuZWwpCiAgICAgICAgICAgICByZXR1cm4gQHsgdXNlckludGVy
ZmFjZUl0ZW06IEBbXSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAwNDRlMzFhNDA5N2Ex
N2E5YTI2MDQxMTA3ZWNmNjQzMDg2MTdiYThlLi5jOWU1YTZmYWZlZjBhYTdlNWVlZTIyYjczODY5
ODI1ZTc3ZDljYzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTQ0MCw0ICsxNDQwLDEz
IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKEVsZW1lbnQm
IGVsZW1lbnQpCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRf
TUVOVVMpCisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRN
ZW51KEZsb2F0UmVjdCYmIHRhcmdldEZyYW1lLCBWZWN0b3I8TWVkaWFDb250cm9sc0NvbnRleHRN
ZW51SXRlbT4mJiBpdGVtcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnVJdGVtOjpJRCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbV9wYWdlLnNo
b3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoV1RGTW92ZSh0YXJnZXRGcmFtZSksIFdURk1vdmUo
aXRlbXMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKKyNlbmRpZiAvLyBFTkFC
TEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggOWM0MWJiNGI1MmVjMDJmNzc0ZmM5YTQ1NTJhZGExMDAz
OWNiMGIwYy4uZjM5YmM1ODM0OWVmNmNkMTRlODAwMmRhNWFiZjVlNGVhNTRlNjU0ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaApAQCAtNDE4LDYgKzQxOCwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVx
dWVzdEltYWdlRXh0cmFjdGlvbihXZWJDb3JlOjpFbGVtZW50JikgZmluYWw7CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorICAgIHZvaWQgc2hvd01l
ZGlhQ29udHJvbHNDb250ZXh0TWVudShXZWJDb3JlOjpGbG9hdFJlY3QmJiwgVmVjdG9yPFdlYkNv
cmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6SUQpPiYmKSBmaW5hbDsK
KyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKwogICAgIG11
dGFibGUgYm9vbCBtX2NhY2hlZE1haW5GcmFtZUhhc0hvcml6b250YWxTY3JvbGxiYXIgeyBmYWxz
ZSB9OwogICAgIG11dGFibGUgYm9vbCBtX2NhY2hlZE1haW5GcmFtZUhhc1ZlcnRpY2FsU2Nyb2xs
YmFyIHsgZmFsc2UgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCBjMjlkODUwZDBkYTM1MmNkZDcwYjkxMzZlZjIwZTk0YjhmZGI3M2ZkLi41
YzFhYTM3MjQ5YTAyNWNlN2YyZmQ2OTQxOGU1Zjg2Yjk2ZGY3NDQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNzE1Nyw2ICs3MTU3LDE1IEBA
IHZvaWQgV2ViUGFnZTo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbihXZWJDb3JlOjpFbGVtZW50JiBl
bGVtZW50KQogCiAjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCiAKKyNpZiBFTkFC
TEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKK3ZvaWQgV2ViUGFnZTo6c2hvd01lZGlh
Q29udHJvbHNDb250ZXh0TWVudShGbG9hdFJlY3QmJiB0YXJnZXRGcmFtZSwgVmVjdG9yPE1lZGlh
Q29udHJvbHNDb250ZXh0TWVudUl0ZW0+JiYgaXRlbXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6SUQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
eworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93TWVk
aWFDb250cm9sc0NvbnRleHRNZW51KFdURk1vdmUodGFyZ2V0RnJhbWUpLCBXVEZNb3ZlKGl0ZW1z
KSksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoTWVk
aWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6SUQgc2VsZWN0ZWRJdGVtSUQpIG11dGFibGUgewor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzZWxlY3RlZEl0ZW1JRCk7CisgICAgfSk7Cit9Cisj
ZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisKICNpZiAhUExB
VEZPUk0oSU9TX0ZBTUlMWSkKIAogdm9pZCBXZWJQYWdlOjphbmltYXRpb25EaWRGaW5pc2hGb3JF
bGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDMwOWVkZjRiYzFiZGI3N2ExZmE3MGYyZTAyMWZmYjQ5
MzgyNjdkOTcuLjk3ODE2MjU5ODQ1ZjA1NDg2ZjQ4NjFmMDVmMTAzNDFjMzczY2M5YWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTczLDYgKzczLDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxNZW51SXRlbUVsZW1lbnQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0ludFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFNpemVIYXNoLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9NZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGFnZU92ZXJsYXkuaD4KQEAgLTEzNzEsNiArMTM3MiwxMCBAQCBwdWJs
aWM6CiAgICAgdm9pZCByZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNvcmU6OkVsZW1lbnQmKTsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisgICAg
dm9pZCBzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KFdlYkNvcmU6OkZsb2F0UmVjdCYmLCBW
ZWN0b3I8V2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4mJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+
JiYpOworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorCiAj
aWYgUExBVEZPUk0oV0lOKQogICAgIHVpbnQ2NF90IG5hdGl2ZVdpbmRvd0hhbmRsZSgpIHsgcmV0
dXJuIG1fbmF0aXZlV2luZG93SGFuZGxlOyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyNzQxZjUyNTY3ZWZhNzE4MGZkOTUzY2Qy
NmExYmZkYjkzY2IwNDZjLi41YmQ0M2M2MDJiNGIyM2ZiMWY0YTI5ZjQ5NGIyYmE0OWUxODFiZTlj
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTkgQEAKKzIwMjEtMDItMDggIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFtpT1NdIEFkZCBzdXBwb3J0IGZvciB0aGUgbGFuZ3VhZ2Uvc3VidGl0bGUg
dHJhY2tzIGJ1dHRvbiB1c2luZyBgVUlNZW51YAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNTk0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDEy
OTEyOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAg
KFdUUjo6VUlTY3JpcHRDb250cm9sbGVySU9TOjpyZWN0Rm9yTWVudUFjdGlvbiBjb25zdCk6Cisg
ICAgICAgIEluIGFkZGl0aW9uIHRvIGxvb2tpbmcgYXQgdGhlIGFjdGl2ZSBgVUlDYWxsb3V0QmFy
YCAoaWYgaXQgZXhpc3RzKSwgd2FsayB0aGUgdmlldyBoaWVyYXJjaHkKKyAgICAgICAgbG9va2lu
ZyBmb3IgYW55IGBVSUxhYmVsYCB0aGF0IGNvbnRhaW5zIHRoZSBnaXZlbiB0ZXh0IGFuZCB1c2Ug
dGhhdCBhcyB0aGUgcmVjdCB0byB0YXAuCisgICAgICAgIFdoaWxlIHRoaXMgaXNuJ3QgdGhlIG1v
c3QgY29uZmlkZW50L2NvbnNpc3RlbnQgYXBwcm9hY2gsIFVJS2l0IGRvZXNuJ3QgaGF2ZSBhbnl0
aGluZyBsaWtlCisgICAgICAgIGBVSUNhbGxvdXRCYXJgIGZvciBjb250ZXh0bWVudSBpbnRlcmFj
dGlvbnMsIGFuZCB0aGlzIGlzIG9ubHkgdXNlZCBpbnNpZGUgV0tUUiAod2hpY2ggaGFzIG5vCisg
ICAgICAgIG90aGVyIFVJIG91dHNpZGUgdGhhbiB0aGUgcGFnZSksIHNvIGl0J3MgZXhwZWN0ZWQg
dGhhdCBjYWxsZXJzIGtub3cgd2hhdCB0aGV5J3JlIGRvaW5nLgorCiAyMDIxLTAyLTA1ICBBYWth
c2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbZXdzXSBjb21taXQt
cXVldWUgc2hvdWxkIHVzZSBjb21taXRzLndlYmtpdC5vcmcgdXJsIGluc3RlYWQgb2YgdHJhYyB1
cmwKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJv
bGxlcklPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxl
cklPUy5tbQppbmRleCA1ZGQxZmU3NWU2MjI5MWFjZmE3MDNlMDBiZTgyYmE0YTNhZTlmZTJhLi5m
NzRhNzQyMDM4ZTE5ZTJlYTg3Mjg5NzY0OTEzZDQxYThhYjNmMjNjIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCkBAIC0xMDM0
LDI5ICsxMDM0LDM3IEBAIEpTT2JqZWN0UmVmIFVJU2NyaXB0Q29udHJvbGxlcklPUzo6cmVjdEZv
ck1lbnVBY3Rpb24oSlNTdHJpbmdSZWYganNBY3Rpb24pIGNvbnN0CiAKIFdlYkNvcmU6OkZsb2F0
UmVjdCBVSVNjcmlwdENvbnRyb2xsZXJJT1M6OnJlY3RGb3JNZW51QWN0aW9uKENGU3RyaW5nUmVm
IGFjdGlvbikgY29uc3QKIHsKLSAgICBVSVdpbmRvdyAqd2luZG93Rm9yQnV0dG9uID0gbmlsOwot
ICAgIFVJQnV0dG9uICpidXR0b25Gb3JBY3Rpb24gPSBuaWw7Ci0gICAgVUlWaWV3ICpjYWxsb3V0
QmFyID0gVUlDYWxsb3V0QmFyLmFjdGl2ZUNhbGxvdXRCYXI7Ci0gICAgaWYgKCFjYWxsb3V0QmFy
LndpbmRvdykKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBVSVZpZXcgKnZpZXdGb3JBY3Rpb24g
PSBuaWw7CisgICAgVUlXaW5kb3cgKndpbmRvdyA9IHdlYlZpZXcoKS53aW5kb3c7CiAKLSAgICBm
b3IgKFVJQnV0dG9uICpidXR0b24gaW4gZmluZEFsbFZpZXdzSW5IaWVyYXJjaHlPZlR5cGUoY2Fs
bG91dEJhciwgVUlCdXR0b24uY2xhc3MpKSB7Ci0gICAgICAgIE5TU3RyaW5nICpidXR0b25UaXRs
ZSA9IFtidXR0b24gdGl0bGVGb3JTdGF0ZTpVSUNvbnRyb2xTdGF0ZU5vcm1hbF07Ci0gICAgICAg
IGlmICghYnV0dG9uVGl0bGUubGVuZ3RoKQotICAgICAgICAgICAgY29udGludWU7CisgICAgaWYg
KFVJVmlldyAqY2FsbG91dEJhciA9IFVJQ2FsbG91dEJhci5hY3RpdmVDYWxsb3V0QmFyKSB7Cisg
ICAgICAgIGZvciAoVUlCdXR0b24gKmJ1dHRvbiBpbiBmaW5kQWxsVmlld3NJbkhpZXJhcmNoeU9m
VHlwZShjYWxsb3V0QmFyLCBVSUJ1dHRvbi5jbGFzcykpIHsKKyAgICAgICAgICAgIE5TU3RyaW5n
ICpidXR0b25UaXRsZSA9IFtidXR0b24gdGl0bGVGb3JTdGF0ZTpVSUNvbnRyb2xTdGF0ZU5vcm1h
bF07CisgICAgICAgICAgICBpZiAoIWJ1dHRvblRpdGxlLmxlbmd0aCkKKyAgICAgICAgICAgICAg
ICBjb250aW51ZTsKIAotICAgICAgICBpZiAoIVtidXR0b25UaXRsZSBpc0VxdWFsVG9TdHJpbmc6
KF9fYnJpZGdlIE5TU3RyaW5nICopYWN0aW9uXSkKLSAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICAgICAgaWYgKCFbYnV0dG9uVGl0bGUgaXNFcXVhbFRvU3RyaW5nOihfX2JyaWRnZSBOU1N0
cmluZyAqKWFjdGlvbl0pCisgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgYnV0
dG9uRm9yQWN0aW9uID0gYnV0dG9uOwotICAgICAgICB3aW5kb3dGb3JCdXR0b24gPSBjYWxsb3V0
QmFyLndpbmRvdzsKLSAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB2aWV3Rm9yQWN0aW9uID0g
YnV0dG9uOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAo
IWJ1dHRvbkZvckFjdGlvbikKKyAgICBpZiAoIXZpZXdGb3JBY3Rpb24pIHsKKyAgICAgICAgZm9y
IChVSUxhYmVsICpsYWJlbCBpbiBmaW5kQWxsVmlld3NJbkhpZXJhcmNoeU9mVHlwZSh3aW5kb3cs
IFVJTGFiZWwuY2xhc3MpKSB7CisgICAgICAgICAgICBpZiAoIVtsYWJlbC50ZXh0IGlzRXF1YWxU
b1N0cmluZzooX19icmlkZ2UgTlNTdHJpbmcgKilhY3Rpb25dKQorICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworCisgICAgICAgICAgICB2aWV3Rm9yQWN0aW9uID0gbGFiZWw7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghdmlld0ZvckFjdGlvbikKICAg
ICAgICAgcmV0dXJuIHsgfTsKIAotICAgIENHUmVjdCByZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVz
ID0gW2J1dHRvbkZvckFjdGlvbiBjb252ZXJ0UmVjdDpidXR0b25Gb3JBY3Rpb24uYm91bmRzIHRv
VmlldzpwbGF0Zm9ybUNvbnRlbnRWaWV3KCldOworICAgIENHUmVjdCByZWN0SW5Sb290Vmlld0Nv
b3JkaW5hdGVzID0gW3ZpZXdGb3JBY3Rpb24gY29udmVydFJlY3Q6dmlld0ZvckFjdGlvbi5ib3Vu
ZHMgdG9WaWV3OnBsYXRmb3JtQ29udGVudFZpZXcoKV07CiAgICAgcmV0dXJuIFdlYkNvcmU6OkZs
b2F0UmVjdChyZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzLm9yaWdpbi54LCByZWN0SW5Sb290Vmll
d0Nvb3JkaW5hdGVzLm9yaWdpbi55LCByZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzLnNpemUud2lk
dGgsIHJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMuc2l6ZS5oZWlnaHQpOwogfQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
YTRmZjNmZDNkNjVhMzEyMTcwZDI3ZjQwNzRhNGZhZWRhMmM3OGExNS4uZGRhNzRjMGM0MjY3MTJj
Zjk3MDY5MGQ5YmZmMGQyMDgzNTk0YWJkYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIxLTAy
LTA4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBB
ZGQgc3VwcG9ydCBmb3IgdGhlIGxhbmd1YWdlL3N1YnRpdGxlIHRyYWNrcyBidXR0b24gdXNpbmcg
YFVJTWVudWAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMTU5NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQxMjkxMjk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzOgorICAgICAgICAoZ2V0
VHJhY2tzQ29udGV4dE1lbnUpOiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFj
ay5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJhY2staW4tY29udGV4dG1lbnUuaHRt
bDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1z
dXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1jbGljay10cmFjay1pbi1jb250ZXh0bWVudS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
aW9zL3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10cmFja3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3Ry
YWNrcy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNrLmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQt
b2ZmLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXNob3ct
Y29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
aW9zL3RyYWNrcy1zdXBwb3J0LXNob3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24t
dHJhY2tzLWJ1dHRvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtdGV4dC10
cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQt
dGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgIER1cGxpY2F0ZSBleGlzdGluZyBgVHJhY2tzU3VwcG9ydGAgdGVzdHMgdG8gdGVzdCBm
b3Igc2ltaWxhciByZXN1bHRzIGJ1dCB1c2luZyB0aGUgbmV3IGlPUyBwYXRoLgorCisgICAgICAg
ICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mt
c3VwcG9ydC1hdXRvLXRleHQtdHJhY2suaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1h
dXRvLXRleHQtdHJhY2suaHRtbC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay1leHBl
Y3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtYXV0by10ZXh0LXRyYWNrLWV4cGVj
dGVkLnR4dC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNrLWluLXBhbmVsLmh0bWw6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJhY2staW4tcGFuZWwuaHRtbC4KKyAgICAgICAg
KiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1z
dXBwb3J0LWNsaWNrLXRyYWNrLWluLXBhbmVsLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFj
a3Mtc3VwcG9ydC1jbGljay10cmFjay1pbi1wYW5lbC1leHBlY3RlZC50eHQuCisgICAgICAgICog
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3Vw
cG9ydC1oaWRkZW4tdHJhY2tzLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtaGlkZGVu
LXRyYWNrcy5odG1sLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy1leHBlY3RlZC50eHQ6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy1leHBlY3RlZC50eHQuCisg
ICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90
cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBw
b3J0LW9mZi10ZXh0LXRyYWNrLmh0bWwuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay1l
eHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2stZXhw
ZWN0ZWQudHh0LgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQtcG9wdWxhdGUtcGFuZWwuaHRtbDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LWFuZC1wb3B1bGF0ZS1wYW5lbC5odG1sLgor
ICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMv
dHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQtcG9wdWxhdGUtcGFuZWwtZXhwZWN0ZWQudHh0OiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1z
dXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLWV4cGVjdGVkLnR4
dC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
bWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJvbHMuaHRt
bDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNv
bnRyb2xzLmh0bWwuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNv
bnRyb2xzLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVs
LWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xzLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBtZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNo
b3ctcGFuZWwtZnVsbHNjcmVlbi5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ct
cGFuZWwtZnVsbHNjcmVlbi5odG1sLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1mdWxsc2Ny
ZWVuLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1
bGxzY3JlZW4tZXhwZWN0ZWQudHh0LgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC10aGVuLWRv
dWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBv
cnQtc2hvdy1wYW5lbC10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWwuCisg
ICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90
cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0
b24tZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtdGhl
bi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi1leHBlY3RlZC50eHQuCisgICAgICAgICog
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3Vw
cG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRtbDogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90
cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRtbC4KKyAg
ICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3Ry
YWNrcy1zdXBwb3J0LXRleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS1leHBlY3RlZC50
eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVk
aWEtYXBpLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9uczoKKyAgICAgICAgTW92ZWQgZXhpc3RpbmcgYFRyYWNrc1N1cHBvcnRgIHRlc3RzIHRvIGEg
YG1hY2Agc3ViZm9sZGVyIHNvIHRoZXkgY2FuIGJlIHNraXBwZWQgb24gaU9TLgorCiAyMDIxLTAy
LTA1ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJ
bnRlZ3JhdGlvbl0gSGl0IHRlc3RpbmcgYnJva2VuIGZvciBkZXNjZW5kYW50cyBvZiBwb2ludGVy
LWV2ZW50czpub25lIGJveGVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzIGIvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Jlc291cmNlcy9tZWRpYS1jb250cm9s
cy11dGlscy5qcwppbmRleCAzZTcyYTg1M2RmOWE3MGI5MDg3MGQzNzgyOGI2N2M4YjBjYzU1OTM3
Li4yZGM4ZjRiNTIxYWE3MmI1NDc1YjBjMzYyMGU5NjViMjY3N2Y1NDg3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcmVzb3VyY2VzL21lZGlhLWNv
bnRyb2xzLXV0aWxzLmpzCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMKQEAgLTEwMyw2ICsxMDMsMjIg
QEAgZnVuY3Rpb24gc2hvd1RyYWNrc1BhbmVsKHNoYWRvd1Jvb3QsIGNvbnRpbnVhdGlvbikKICAg
ICB9KTsKIH0KIAorZnVuY3Rpb24gZ2V0VHJhY2tzQ29udGV4dE1lbnUoKQoreworICAgIHJldHVy
biBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2Ny
aXB0KGAKKyAgICAgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgZnVuY3Rpb24gc2NyaXB0
Q29tcGxldGVXaXRoQ29udGV4dE1lbnUoKSB7CisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVy
LnVpU2NyaXB0Q29tcGxldGUoSlNPTi5zdHJpbmdpZnkodWlDb250cm9sbGVyLmNvbnRlbnRzT2ZV
c2VySW50ZXJmYWNlSXRlbSgnbWVkaWFDb250cm9sc0NvbnRleHRNZW51JykpKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGlmICghdWlDb250cm9sbGVyLmlzU2hvd2luZ0NvbnRleHRNZW51
KQorICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5kaWRTaG93Q29udGV4dE1lbnVDYWxsYmFj
ayA9IHNjcmlwdENvbXBsZXRlV2l0aENvbnRleHRNZW51OworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIHNjcmlwdENvbXBsZXRlV2l0aENvbnRleHRNZW51KCk7CisgICAgICAgIH0p
KCk7YCwgKHJlc3VsdCkgPT4gcmVzb2x2ZShKU09OLnBhcnNlKHJlc3VsdCkubWVkaWFDb250cm9s
c0NvbnRleHRNZW51KSk7CisgICAgfSk7Cit9CisKIGZ1bmN0aW9uIGZpbmlzaE1lZGlhQ29udHJv
bHNUZXN0KCkKIHsKICAgICBpZiAoc2NoZWR1bGVyKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3Vw
cG9ydC1hdXRvLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1hdXRv
LXRleHQtdHJhY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0NDRiNjk1NDc1YWE0NDIxNzgy
NTllYjg5N2FmNDdjNjIwYWNkYTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0
LWF1dG8tdGV4dC10cmFjay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1OSBAQAorRW5zdXJlIHdl
IGhhdmUgdGhlIEF1dG8gdGV4dCB0cmFjayBzZWxlY3RlZCBieSBkZWZhdWx0LgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1
dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAorUEFTUyBzaGFkb3dSb290
LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53
aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAorU2V0dGluZyBjYXB0aW9uIGRpc3BsYXkgbW9k
ZSB0byAnYXV0b21hdGljJy4uLgorVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uCitbCisgIHsKKyAg
ICAiY2hpbGRyZW4iOiBbCisgICAgICB7CisgICAgICAgICJ0aXRsZSI6ICJMYW5ndWFnZXMiLAor
ICAgICAgICAiY2hpbGRyZW4iOiBbCisgICAgICAgICAgeworICAgICAgICAgICAgInRpdGxlIjog
IkVuZ2xpc2ggU291bmQiLAorICAgICAgICAgICAgImNoZWNrZWQiOiB0cnVlCisgICAgICAgICAg
fSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAidGl0bGUiOiAiRnJlbmNoIFNvdW5kIgorICAg
ICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgInRpdGxlIjogIlNwYW5pc2ggU291
bmQiCisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAgICAgICAi
dGl0bGUiOiAiU3VidGl0bGVzIiwKKyAgICAgICAgImNoaWxkcmVuIjogWworICAgICAgICAgIHsK
KyAgICAgICAgICAgICJ0aXRsZSI6ICJPZmYiCisgICAgICAgICAgfSwKKyAgICAgICAgICB7Cisg
ICAgICAgICAgICAidGl0bGUiOiAiQXV0byAoUmVjb21tZW5kZWQpIiwKKyAgICAgICAgICAgICJj
aGVja2VkIjogdHJ1ZQorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgInRp
dGxlIjogIkVuZ2xpc2ggU3VidGl0bGVzIgorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAg
ICAgICAgICAgInRpdGxlIjogIkZyZW5jaCBTdWJ0aXRsZXMiCisgICAgICAgICAgfSwKKyAgICAg
ICAgICB7CisgICAgICAgICAgICAidGl0bGUiOiAiR2VybWFuIFN1YnRpdGxlcyIKKyAgICAgICAg
ICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICJ0aXRsZSI6ICJTcGFuaXNoIFN1YnRpdGxl
cyIKKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdCisgIH0KK10KK1NldHRp
bmcgY2FwdGlvbiBkaXNwbGF5IG1vZGUgdG8gJ2ZvcmNlZG9ubHknLi4uCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFj
a3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2suaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtYXV0by10
ZXh0LXRyYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjViZWJjMTg1ZjQxOTEyYzIyYjVhN2E0OThlNTA3
OTAzMTU2MDU2YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtYXV0by10ZXh0
LXRyYWNrLmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPGJvZHk+Cis8dmlkZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5t
b3YiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDMw
MHB4OyIgYXV0b3BsYXkgY29udHJvbHMgbXV0ZWQgcGxheXNpbmxpbmU+PC92aWRlbz4KKzxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVl
OworCitkZXNjcmlwdGlvbigiRW5zdXJlIHdlIGhhdmUgdGhlIEF1dG8gdGV4dCB0cmFjayBzZWxl
Y3RlZCBieSBkZWZhdWx0LiIpOworCitjb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoInZpZGVvIik7Citjb25zdCBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dS
b290KG1lZGlhKTsKKworbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKKyAg
ICBtZWRpYS5wYXVzZSgpOworCisgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290
LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIsICJudWxsIiwgKCkgPT4geworICAgICAg
ICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9u
LnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIiwgIjAiLCBhc3luYyAoKSA9
PiB7CisgICAgICAgICAgICBkZWJ1ZygiU2V0dGluZyBjYXB0aW9uIGRpc3BsYXkgbW9kZSB0byAn
YXV0b21hdGljJy4uLiIpOworICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRDYXB0aW9u
RGlzcGxheU1vZGUoImF1dG9tYXRpYyIpOworCisgICAgICAgICAgICBkZWJ1ZygiVGFwcGluZyB0
cmFja3MgYnV0dG9uLi4uIik7CisgICAgICAgICAgICBsZXQgW2NvbnRleHRtZW51XSA9IGF3YWl0
IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBnZXRUcmFja3NDb250ZXh0TWVudSgpLAor
ICAgICAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcigi
YnV0dG9uLnRyYWNrcyIpKSwKKyAgICAgICAgICAgIF0pOworICAgICAgICAgICAgZGVidWcoSlNP
Ti5zdHJpbmdpZnkoY29udGV4dG1lbnUsIG51bGwsIDIpKTsKKworICAgICAgICAgICAgZGVidWco
IlNldHRpbmcgY2FwdGlvbiBkaXNwbGF5IG1vZGUgdG8gJ2ZvcmNlZG9ubHknLi4uIik7CisgICAg
ICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldENhcHRpb25EaXNwbGF5TW9kZSgiZm9yY2Vkb25s
eSIpOworCisgICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKKyAgICAgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgICAgICB9KTsKKyAgICB9KTsKK30pOworCis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJhY2staW4tY29udGV4
dG1lbnUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1jbGljay10cmFjay1pbi1jb250
ZXh0bWVudS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGJjZjA1Mjk2ZjBlNmIyM2RjZjUyYzU2
MjhkYzFlZTAzNjRjNjIxNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtY2xp
Y2stdHJhY2staW4tY29udGV4dG1lbnUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjYgQEAKK0Ns
aWNraW5nIG9uIGEgdHJhY2sgaW4gdGhlIHRyYWNrcyBjb250ZXh0bWVudS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK21lZGlhLmF1ZGlvVHJhY2tzWzBdLmVuYWJsZWQgPSB0cnVl
CittZWRpYS5hdWRpb1RyYWNrc1sxXS5lbmFibGVkID0gZmFsc2UKK21lZGlhLmF1ZGlvVHJhY2tz
WzJdLmVuYWJsZWQgPSBmYWxzZQorUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRv
bi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAorUEFTUyBzaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0
aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAorVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uCitTZWxl
Y3Rpbmcgc2Vjb25kIGF1ZGlvIHRyYWNrLi4uCitBdWRpbyB0cmFja3MgY2hhbmdlZC4KK21lZGlh
LmF1ZGlvVHJhY2tzWzBdLmVuYWJsZWQgPSBmYWxzZQorbWVkaWEuYXVkaW9UcmFja3NbMV0uZW5h
YmxlZCA9IHRydWUKK21lZGlhLmF1ZGlvVHJhY2tzWzJdLmVuYWJsZWQgPSBmYWxzZQorVGFwcGlu
ZyB0cmFja3MgYnV0dG9uLi4uCitTZWxlY3RpbmcgdGhpcmQgYXVkaW8gdHJhY2suLi4KK0F1ZGlv
IHRyYWNrcyBjaGFuZ2VkLgorbWVkaWEuYXVkaW9UcmFja3NbMF0uZW5hYmxlZCA9IGZhbHNlCitt
ZWRpYS5hdWRpb1RyYWNrc1sxXS5lbmFibGVkID0gZmFsc2UKK21lZGlhLmF1ZGlvVHJhY2tzWzJd
LmVuYWJsZWQgPSB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1jbGljay10cmFjay1pbi1j
b250ZXh0bWVudS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1jbGljay10cmFjay1pbi1jb250ZXh0
bWVudS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhMDk1M2Y0ZGM1NDI0MTdhOGNkN2NlYTMyZjQxZjQ2Njg4
YjM4ODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNrLWlu
LWNvbnRleHRtZW51Lmh0bWwKQEAgLTAsMCArMSw4NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPGJvZHk+Cis8dmlkZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50L2F1ZGlvLXRy
YWNrcy5tcDQiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lk
dGg6IDMwMHB4OyIgY29udHJvbHMgYXV0b3BsYXkgbXV0ZWQgcGxheXNpbmxpbmU+PC92aWRlbz4K
KzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKword2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOworCitkZXNjcmlwdGlvbigiQ2xpY2tpbmcgb24gYSB0cmFjayBpbiB0aGUgdHJhY2tz
IGNvbnRleHRtZW51LiIpOworCitjb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
InZpZGVvIik7Citjb25zdCBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290
KG1lZGlhKTsKKworbGV0IHByZXZpb3VzbHlTZWxlY3RlZFRyYWNrID0gMDsKKworbWVkaWEuYWRk
RXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKKyAgICBtZWRpYS5wYXVzZSgpOworCisgICAg
ZHVtcEF1ZGlvVHJhY2tzRW5hYmxlZFN0YXRlKCk7CisKKyAgICBtZWRpYS5hdWRpb1RyYWNrcy5h
ZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCBoYW5kbGVBdWRpb1RyYWNrc0NoYW5nZSk7CisKKyAg
ICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9u
LnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7CisgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVu
dCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCkud2lkdGgiLCAiMCIsICgpID0+IHsKKyAgICAgICAgICAgIGNsaWNrT25UcmFj
a3NCdXR0b24oY2xpY2tPblNlY29uZEF1ZGlvVHJhY2spOworICAgICAgICB9KTsKKyAgICB9KTsK
K30pOworCitmdW5jdGlvbiBjbGlja09uVHJhY2tzQnV0dG9uKGNvbnRpbnVhdGlvbikKK3sKKyAg
ICBkZWJ1ZygiVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uIik7CisgICAgcHJlc3NPbkVsZW1lbnQo
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIiksICgpID0+IHsKKyAgICAg
ICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShjb250aW51YXRpb24pOworICAgIH0pOwor
fQorCithc3luYyBmdW5jdGlvbiBjbGlja09uU2Vjb25kQXVkaW9UcmFjaygpCit7CisgICAgZGVi
dWcoIlNlbGVjdGluZyBzZWNvbmQgYXVkaW8gdHJhY2suLi4iKTsKKyAgICBsZXQgY29udGV4dG1l
bnUgPSBhd2FpdCBnZXRUcmFja3NDb250ZXh0TWVudSgpOworICAgIGF3YWl0IFVJSGVscGVyLmNo
b29zZU1lbnVBY3Rpb24oY29udGV4dG1lbnVbMF0uY2hpbGRyZW5bMV0udGl0bGUpOworfQorCith
c3luYyBmdW5jdGlvbiBjbGlja09uVGhpcmRBdWRpb1RyYWNrKCkKK3sKKyAgICBkZWJ1ZygiU2Vs
ZWN0aW5nIHRoaXJkIGF1ZGlvIHRyYWNrLi4uIik7CisgICAgbGV0IGNvbnRleHRtZW51ID0gYXdh
aXQgZ2V0VHJhY2tzQ29udGV4dE1lbnUoKTsKKyAgICBhd2FpdCBVSUhlbHBlci5jaG9vc2VNZW51
QWN0aW9uKGNvbnRleHRtZW51WzBdLmNoaWxkcmVuWzJdLnRpdGxlKTsKK30KKworYXN5bmMgZnVu
Y3Rpb24gaGFuZGxlQXVkaW9UcmFja3NDaGFuZ2UoKQoreworICAgIGNvbnN0IG5ld1NlbGVjdGVk
VHJhY2sgPSBBcnJheS5mcm9tKG1lZGlhLmF1ZGlvVHJhY2tzKS5maW5kSW5kZXgodHJhY2sgPT4g
dHJhY2suZW5hYmxlZCk7CisgICAgaWYgKHByZXZpb3VzbHlTZWxlY3RlZFRyYWNrID09PSBuZXdT
ZWxlY3RlZFRyYWNrKQorICAgICAgICByZXR1cm47CisKKyAgICBwcmV2aW91c2x5U2VsZWN0ZWRU
cmFjayA9IG5ld1NlbGVjdGVkVHJhY2s7CisKKyAgICBkZWJ1ZygiQXVkaW8gdHJhY2tzIGNoYW5n
ZWQuIik7CisKKyAgICBkdW1wQXVkaW9UcmFja3NFbmFibGVkU3RhdGUoKTsKKworICAgIGF3YWl0
IFVJSGVscGVyLndhaXRGb3JDb250ZXh0TWVudVRvSGlkZSgpOworCisgICAgaWYgKG1lZGlhLmF1
ZGlvVHJhY2tzWzFdLmVuYWJsZWQpCisgICAgICAgIGNsaWNrT25UcmFja3NCdXR0b24oY2xpY2tP
blRoaXJkQXVkaW9UcmFjayk7CisgICAgZWxzZSBpZiAobWVkaWEuYXVkaW9UcmFja3NbMl0uZW5h
YmxlZCkgeworICAgICAgICBtZWRpYS5yZW1vdmUoKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7
CisgICAgfQorfQorCitmdW5jdGlvbiBkdW1wQXVkaW9UcmFja3NFbmFibGVkU3RhdGUoKQorewor
ICAgIEFycmF5LmZyb20obWVkaWEuYXVkaW9UcmFja3MpLmZvckVhY2goKGF1ZGlvVHJhY2ssIGlu
ZGV4KSA9PiB7CisgICAgICAgIGRlYnVnKGBtZWRpYS5hdWRpb1RyYWNrc1ske2luZGV4fV0uZW5h
YmxlZCA9ICR7bWVkaWEuYXVkaW9UcmFja3NbaW5kZXhdLmVuYWJsZWR9YCk7CisgICAgfSk7Cit9
CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9y
dC1oaWRkZW4tdHJhY2tzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRy
YWNrcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGI4NjU2Zjg4OTg2YjVjZjBjZGY0MTE2YmY3
YzJjZjJkNGZmOTc3NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtaGlkZGVu
LXRyYWNrcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1OCBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0
aGF0IHRoZSB0cmFja3MgY29udGV4dG1lbnUgZG9lc24ndCBzaG93IGFueSB0cmFjayBhcyBzZWxl
Y3RlZCBpZiBhbGwgdGhlIHRleHQgdHJhY2tzIGZvciBhIG1lZGlhIGVsZW1lbnQgYXJlIG1hcmtl
ZCBhcyAiaGlkZGVuIi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykgYmVjYW1lIGRpZmZlcmVudCBm
cm9tIG51bGwKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJyku
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKK1Nl
dHRpbmcgbW9kZSB0byAnaGlkZGVuJyBmb3IgYWxsIHRleHQgdHJhY2tzIHZpYSBKYXZhU2NyaXB0
Li4uCitUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KK1sKKyAgeworICAgICJjaGlsZHJlbiI6IFsK
KyAgICAgIHsKKyAgICAgICAgInRpdGxlIjogIkxhbmd1YWdlcyIsCisgICAgICAgICJjaGlsZHJl
biI6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAidGl0bGUiOiAiRW5nbGlzaCBTb3VuZCIs
CisgICAgICAgICAgICAiY2hlY2tlZCI6IHRydWUKKyAgICAgICAgICB9LAorICAgICAgICAgIHsK
KyAgICAgICAgICAgICJ0aXRsZSI6ICJGcmVuY2ggU291bmQiCisgICAgICAgICAgfSwKKyAgICAg
ICAgICB7CisgICAgICAgICAgICAidGl0bGUiOiAiU3BhbmlzaCBTb3VuZCIKKyAgICAgICAgICB9
CisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJ0aXRsZSI6ICJTdWJ0aXRs
ZXMiLAorICAgICAgICAiY2hpbGRyZW4iOiBbCisgICAgICAgICAgeworICAgICAgICAgICAgInRp
dGxlIjogIk9mZiIsCisgICAgICAgICAgICAiY2hlY2tlZCI6IHRydWUKKyAgICAgICAgICB9LAor
ICAgICAgICAgIHsKKyAgICAgICAgICAgICJ0aXRsZSI6ICJBdXRvIChSZWNvbW1lbmRlZCkiCisg
ICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAidGl0bGUiOiAiRW5nbGlzaCBT
dWJ0aXRsZXMiCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAidGl0bGUi
OiAiRnJlbmNoIFN1YnRpdGxlcyIKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAg
ICAgICJ0aXRsZSI6ICJHZXJtYW4gU3VidGl0bGVzIgorICAgICAgICAgIH0sCisgICAgICAgICAg
eworICAgICAgICAgICAgInRpdGxlIjogIlNwYW5pc2ggU3VidGl0bGVzIgorICAgICAgICAgIH0K
KyAgICAgICAgXQorICAgICAgfQorICAgIF0KKyAgfQorXQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBv
cnQtaGlkZGVuLXRyYWNrcy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWRlNGY4ZDY4MzZkY2ZiZWJiMjJhMmQxNTgyOWZjMjViMjViYWNlOAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy5odG1sCkBA
IC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxib2R5Pgor
PHZpZGVvIHNyYz0iLi4vLi4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9z
aXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiAzMDBweDsiIGNvbnRyb2xz
IGF1dG9wbGF5IG11dGVkIHBsYXlzaW5saW5lPjwvdmlkZW8+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCI+CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZGVzY3JpcHRp
b24oYFRoaXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgdHJhY2tzIGNvbnRleHRtZW51IGRvZXNuJ3Qg
c2hvdyBhbnkgdHJhY2sgYXMgc2VsZWN0ZWQgaWYgYWxsIHRoZSB0ZXh0IHRyYWNrcyBmb3IgYSBt
ZWRpYSBlbGVtZW50IGFyZSBtYXJrZWQgYXMgImhpZGRlbiIuYCk7CisKK2NvbnN0IG1lZGlhID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5k
b3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOworCittZWRpYS5hZGRFdmVudExpc3RlbmVy
KCJwbGF5IiwgKCkgPT4geworICAgIG1lZGlhLnBhdXNlKCk7CisKKyAgICBzaG91bGRCZWNvbWVE
aWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51
bGwiLCAoKSA9PiB7CisgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lk
dGgiLCAiMCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGRlYnVnKCJTZXR0aW5nIG1vZGUg
dG8gJ2hpZGRlbicgZm9yIGFsbCB0ZXh0IHRyYWNrcyB2aWEgSmF2YVNjcmlwdC4uLiIpOworICAg
ICAgICAgICAgQXJyYXkuZnJvbShtZWRpYS50ZXh0VHJhY2tzKS5mb3JFYWNoKHRyYWNrID0+IHRy
YWNrLm1vZGUgPSAiaGlkZGVuIik7CisKKyAgICAgICAgICAgIGRlYnVnKCJUYXBwaW5nIHRyYWNr
cyBidXR0b24uLi4iKTsKKyAgICAgICAgICAgIGxldCBbY29udGV4dG1lbnVdID0gYXdhaXQgUHJv
bWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGdldFRyYWNrc0NvbnRleHRNZW51KCksCisgICAg
ICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0
b24udHJhY2tzIikpLAorICAgICAgICAgICAgXSk7CisgICAgICAgICAgICBkZWJ1ZyhKU09OLnN0
cmluZ2lmeShjb250ZXh0bWVudSwgbnVsbCwgMikpOworCisgICAgICAgICAgICBtZWRpYS5yZW1v
dmUoKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9KTsK
K30pOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1
cHBvcnQtb2ZmLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1vZmYt
dGV4dC10cmFjay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGFjZWNkMzEwZWUyNjJmNzU3ZjAw
MjE1NWE4OGQxOTVlZjZkOTM3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQt
b2ZmLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTcgQEAKK0Vuc3VyZSB3ZSBo
YXZlIHRoZSBPZmYgdGV4dCB0cmFjayBzZWxlY3RlZCBieSBkZWZhdWx0LgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRv
bi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAorUEFTUyBzaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0
aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAorVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uCitbCisg
IHsKKyAgICAiY2hpbGRyZW4iOiBbCisgICAgICB7CisgICAgICAgICJ0aXRsZSI6ICJMYW5ndWFn
ZXMiLAorICAgICAgICAiY2hpbGRyZW4iOiBbCisgICAgICAgICAgeworICAgICAgICAgICAgInRp
dGxlIjogIkVuZ2xpc2ggU291bmQiLAorICAgICAgICAgICAgImNoZWNrZWQiOiB0cnVlCisgICAg
ICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAidGl0bGUiOiAiRnJlbmNoIFNvdW5k
IgorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgInRpdGxlIjogIlNwYW5p
c2ggU291bmQiCisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICB9LAorICAgICAgeworICAg
ICAgICAidGl0bGUiOiAiU3VidGl0bGVzIiwKKyAgICAgICAgImNoaWxkcmVuIjogWworICAgICAg
ICAgIHsKKyAgICAgICAgICAgICJ0aXRsZSI6ICJPZmYiLAorICAgICAgICAgICAgImNoZWNrZWQi
OiB0cnVlCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAidGl0bGUiOiAi
QXV0byAoUmVjb21tZW5kZWQpIgorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAg
ICAgInRpdGxlIjogIkVuZ2xpc2ggU3VidGl0bGVzIgorICAgICAgICAgIH0sCisgICAgICAgICAg
eworICAgICAgICAgICAgInRpdGxlIjogIkZyZW5jaCBTdWJ0aXRsZXMiCisgICAgICAgICAgfSwK
KyAgICAgICAgICB7CisgICAgICAgICAgICAidGl0bGUiOiAiR2VybWFuIFN1YnRpdGxlcyIKKyAg
ICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICJ0aXRsZSI6ICJTcGFuaXNoIFN1
YnRpdGxlcyIKKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdCisgIH0KK10K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNrLmh0bWwgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1z
dXBwb3J0LW9mZi10ZXh0LXRyYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGViMzEzNDg0ZWE0ODIzOGYy
MzZjNzBlODk3MzA3OWQ2ZTNiM2VhZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBv
cnQtb2ZmLXRleHQtdHJhY2suaHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzx2aWRlbyBzcmM9Ii4uLy4uLy4uL2NvbnRlbnQvQ0Mr
U3VidGl0bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAw
OyB3aWR0aDogMzAwcHg7IiBjb250cm9scyBhdXRvcGxheSBtdXRlZCBwbGF5c2lubGluZT48L3Zp
ZGVvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit3aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCJFbnN1cmUgd2UgaGF2ZSB0aGUgT2ZmIHRleHQg
dHJhY2sgc2VsZWN0ZWQgYnkgZGVmYXVsdC4iKTsKKworY29uc3QgbWVkaWEgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCJ2aWRlbyIpOworY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5h
bHMuc2hhZG93Um9vdChtZWRpYSk7CisKK21lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAo
KSA9PiB7CisgICAgbWVkaWEucGF1c2UoKTsKKworICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgi
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAibnVsbCIsICgpID0+
IHsKKyAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCIsICIwIiwg
YXN5bmMgKCkgPT4geworICAgICAgICAgICAgZGVidWcoIlRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4u
LiIpOworICAgICAgICAgICAgbGV0IFtjb250ZXh0bWVudV0gPSBhd2FpdCBQcm9taXNlLmFsbChb
CisgICAgICAgICAgICAgICAgZ2V0VHJhY2tzQ29udGV4dE1lbnUoKSwKKyAgICAgICAgICAgICAg
ICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3Mi
KSksCisgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIGRlYnVnKEpTT04uc3RyaW5naWZ5KGNv
bnRleHRtZW51LCBudWxsLCAyKSk7CisKKyAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgpOworICAg
ICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0pOworfSk7CisKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1zaG93
LWNvbnRleHRtZW51LXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L2lvcy90cmFja3Mtc3VwcG9ydC1zaG93LWNvbnRleHRtZW51LXRoZW4tZG91YmxlLWNsaWNr
LW9uLXRyYWNrcy1idXR0b24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhZmE3NTA2OGVjMjNk
YWUwNTUwZjQ4ZjVlMGZkNDhjY2QyNzRiZWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1z
dXBwb3J0LXNob3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRv
bi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorRW5zdXJlIHRoYXQgY2xpY2tpbmcgdGhl
IHRyYWNrcyBidXR0b24gd2hlbiB0aGUgdHJhY2tzIGNvbnRleHRtZW51IGlzIHNob3duIG1ha2Vz
IHRoZSBjb250ZXh0bWVudSBoaWRlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNhbWUgZGlm
ZmVyZW50IGZyb20gbnVsbAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50
cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZy
b20gMAorVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uCitDb250ZXh0IG1lbnUgc2hvd24uCitUYXBw
aW5nIHRyYWNrcyBidXR0b24uLi4KK0NvbnRleHQgbWVudSBoaWRkZW4uCitUYXBwaW5nIHRyYWNr
cyBidXR0b24uLi4KK0NvbnRleHQgbWVudSBzaG93bi4KK1RhcHBpbmcgdHJhY2tzIGJ1dHRvbi4u
LgorQ29udGV4dCBtZW51IGhpZGRlbi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXNob3ctY29u
dGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi5odG1sIGIvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFj
a3Mtc3VwcG9ydC1zaG93LWNvbnRleHRtZW51LXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1i
dXR0b24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZGVmMmMwNzM0MTAwMjkyOWNiZTFkNmNlYzVmNjgwYmIy
MGEzZWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1zaG93LWNvbnRleHRt
ZW51LXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24uaHRtbApAQCAtMCwwICsxLDU3
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvbWVkaWEt
Y29udHJvbHMtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jl
c291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzx2aWRlbyBzcmM9
Ii4uLy4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNv
bHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDogMzAwcHg7IiBjb250cm9scyBhdXRvcGxheSBt
dXRlZCBwbGF5c2lubGluZT48L3ZpZGVvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
PgorCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCJFbnN1cmUg
dGhhdCBjbGlja2luZyB0aGUgdHJhY2tzIGJ1dHRvbiB3aGVuIHRoZSB0cmFja3MgY29udGV4dG1l
bnUgaXMgc2hvd24gbWFrZXMgdGhlIGNvbnRleHRtZW51IGhpZGUuIik7CisKK2NvbnN0IG1lZGlh
ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3
aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOworCittZWRpYS5hZGRFdmVudExpc3Rl
bmVyKCJwbGF5IiwgKCkgPT4geworICAgIG1lZGlhLnBhdXNlKCk7CisKKyAgICBzaG91bGRCZWNv
bWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwg
Im51bGwiLCAoKSA9PiB7CisgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9v
dC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCku
d2lkdGgiLCAiMCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGRlYnVnKCJUYXBwaW5nIHRy
YWNrcyBidXR0b24uLi4iKTsKKyAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAg
ICAgICAgICAgICBVSUhlbHBlci53YWl0Rm9yQ29udGV4dE1lbnVUb1Nob3coKSwKKyAgICAgICAg
ICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50
cmFja3MiKSksCisgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIGRlYnVnKCJDb250ZXh0IG1l
bnUgc2hvd24uIik7CisKKyAgICAgICAgICAgIGRlYnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0b24u
Li4iKTsKKyAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBV
SUhlbHBlci53YWl0Rm9yQ29udGV4dE1lbnVUb0hpZGUoKSwKKyAgICAgICAgICAgICAgICBwcmVz
c09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSksCisg
ICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIGRlYnVnKCJDb250ZXh0IG1lbnUgaGlkZGVuLiIp
OworCisgICAgICAgICAgICBkZWJ1ZygiVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uIik7CisgICAg
ICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgVUlIZWxwZXIud2Fp
dEZvckNvbnRleHRNZW51VG9TaG93KCksCisgICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQo
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpLAorICAgICAgICAgICAg
XSk7CisgICAgICAgICAgICBkZWJ1ZygiQ29udGV4dCBtZW51IHNob3duLiIpOworCisgICAgICAg
ICAgICBkZWJ1ZygiVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uIik7CisgICAgICAgICAgICBhd2Fp
dCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgVUlIZWxwZXIud2FpdEZvckNvbnRleHRN
ZW51VG9IaWRlKCksCisgICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpLAorICAgICAgICAgICAgXSk7CisgICAgICAg
ICAgICBkZWJ1ZygiQ29udGV4dCBtZW51IGhpZGRlbi4iKTsKKworICAgICAgICAgICAgbWVkaWEu
cmVtb3ZlKCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSk7CisgICAg
fSk7Cit9KTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNr
cy1zdXBwb3J0LXRleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
aW9zL3RyYWNrcy1zdXBwb3J0LXRleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMGE3Zjc5NTA3YTM4ZGU3ZDI1MTVkNTUyOTgxM2NmZWVkODZh
OGYyMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxl
Y3RlZC12aWEtbWVkaWEtYXBpLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU3IEBACitUaGlzIHRl
c3QgY2hlY2tzIHRoYXQgc2V0dGluZyBhbiBlbWJlZGRlZCB0ZXh0IHRyYWNrIGFzIHNlbGVjdGVk
IHZpYSB0aGUgSFRNTE1lZGlhRWxlbWVudCBKUyBBUElzIHdpbGwgY29ycmVjdGx5IHNob3cgdGhp
cyB0cmFjayBhcyBzZWxlY3RlZCwgYW5kIHRoYXQgc2VsZWN0aW5nIHRoZSAiQXV0b21hdGljIChS
ZWNvbW1lbmRlZCkiIHRyYWNrIHdpbGwgcmV2ZXJ0IGJhY2sgdG8gc2VsZWN0aW5nIHRoYXQgZW50
cnkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQ
QVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitTZXR0aW5nIG1vZGUg
dG8gJ3Nob3dpbmcnIGZvciBmaXJzdCB0ZXh0IHRyYWNrIHZpYSBKYXZhU2NyaXB0Li4uCitUYXBw
aW5nIHRyYWNrcyBidXR0b24uLi4KK1sKKyAgeworICAgICJ0aXRsZSI6ICJTdWJ0aXRsZXMiLAor
ICAgICJjaGlsZHJlbiI6IFsKKyAgICAgIHsKKyAgICAgICAgInRpdGxlIjogIk9mZiIKKyAgICAg
IH0sCisgICAgICB7CisgICAgICAgICJ0aXRsZSI6ICJBdXRvIChSZWNvbW1lbmRlZCkiCisgICAg
ICB9LAorICAgICAgeworICAgICAgICAidGl0bGUiOiAiRW5nbGlzaCIsCisgICAgICAgICJjaGVj
a2VkIjogdHJ1ZQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgInRpdGxlIjogIkZyZW5jaCIK
KyAgICAgIH0KKyAgICBdCisgIH0KK10KK1NlbGVjdGluZyBmaXJzdCB0ZXh0IHRyYWNrLi4uCitQ
QVNTIG1lZGlhLnRleHRUcmFja3NbMF0ubW9kZSBpcyAnZGlzYWJsZWQnCitQQVNTIG1lZGlhLnRl
eHRUcmFja3NbMV0ubW9kZSBpcyAnc2hvd2luZycKK1RhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgor
WworICB7CisgICAgInRpdGxlIjogIlN1YnRpdGxlcyIsCisgICAgImNoaWxkcmVuIjogWworICAg
ICAgeworICAgICAgICAidGl0bGUiOiAiT2ZmIgorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAg
InRpdGxlIjogIkF1dG8gKFJlY29tbWVuZGVkKSIsCisgICAgICAgICJjaGVja2VkIjogdHJ1ZQor
ICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgInRpdGxlIjogIkVuZ2xpc2giCisgICAgICB9LAor
ICAgICAgeworICAgICAgICAidGl0bGUiOiAiRnJlbmNoIgorICAgICAgfQorICAgIF0KKyAgfQor
XQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEt
YXBpLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXRleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlh
LWFwaS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2ODhjNzIxYzUxODQ1ZDUwM2IyOGQxMzZhODJhY2I0YjQz
MWM0NWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXRleHQtdHJhY2stc2Vs
ZWN0ZWQtdmlhLW1lZGlhLWFwaS5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBodG1s
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxib2R5PgorPHZpZGVvIHNyYz0iLi4vLi4vLi4vY29udGVudC9j
b3VudGluZy1zdWJ0aXRsZWQubTR2IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAw
OyB0b3A6IDA7IHdpZHRoOiAzMDBweDsiIGNvbnRyb2xzIGF1dG9wbGF5IG11dGVkIHBsYXlzaW5s
aW5lPjwvdmlkZW8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK3dpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZGVzY3JpcHRpb24oYFRoaXMgdGVzdCBjaGVja3MgdGhh
dCBzZXR0aW5nIGFuIGVtYmVkZGVkIHRleHQgdHJhY2sgYXMgc2VsZWN0ZWQgdmlhIHRoZSBIVE1M
TWVkaWFFbGVtZW50IEpTIEFQSXMgd2lsbCBjb3JyZWN0bHkgc2hvdyB0aGlzIHRyYWNrIGFzIHNl
bGVjdGVkLCBhbmQgdGhhdCBzZWxlY3RpbmcgdGhlIAorIkF1dG9tYXRpYyAoUmVjb21tZW5kZWQp
IiB0cmFjayB3aWxsIHJldmVydCBiYWNrIHRvIHNlbGVjdGluZyB0aGF0IGVudHJ5LmApOworCitj
b25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Citjb25zdCBzaGFk
b3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsKKworbWVkaWEuYWRk
RXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKKyAgICBtZWRpYS5wYXVzZSgpOworCisgICAg
c2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50
cmFja3MnKSIsICJudWxsIiwgKCkgPT4geworICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQo
InNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpLndpZHRoIiwgIjAiLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBkZWJ1Zygi
U2V0dGluZyBtb2RlIHRvICdzaG93aW5nJyBmb3IgZmlyc3QgdGV4dCB0cmFjayB2aWEgSmF2YVNj
cmlwdC4uLiIpOworICAgICAgICAgICAgbWVkaWEudGV4dFRyYWNrc1swXS5tb2RlID0gInNob3dp
bmciOworCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZGVidWcoIlRhcHBpbmcgdHJh
Y2tzIGJ1dHRvbi4uLiIpOworICAgICAgICAgICAgICAgIGxldCBbY29udGV4dG1lbnVdID0gYXdh
aXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgICAgICBnZXRUcmFja3NDb250ZXh0TWVu
dSgpLAorICAgICAgICAgICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5
U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSksCisgICAgICAgICAgICAgICAgXSk7CisgICAgICAg
ICAgICAgICAgZGVidWcoSlNPTi5zdHJpbmdpZnkoY29udGV4dG1lbnUsIG51bGwsIDIpKTsKKwor
ICAgICAgICAgICAgICAgIGRlYnVnKCJTZWxlY3RpbmcgZmlyc3QgdGV4dCB0cmFjay4uLiIpOwor
ICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmNob29zZU1lbnVBY3Rpb24oY29udGV4dG1l
bnVbMF0uY2hpbGRyZW5bMV0udGl0bGUpOworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVy
LndhaXRGb3JDb250ZXh0TWVudVRvSGlkZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBzaG91bGRCZSgibWVkaWEudGV4dFRyYWNrc1swXS5tb2RlIiwgIidkaXNhYmxlZCciKTsKKyAg
ICAgICAgICAgIHNob3VsZEJlKCJtZWRpYS50ZXh0VHJhY2tzWzFdLm1vZGUiLCAiJ3Nob3dpbmcn
Iik7CisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiVGFwcGluZyB0cmFj
a3MgYnV0dG9uLi4uIik7CisgICAgICAgICAgICAgICAgbGV0IFtjb250ZXh0bWVudV0gPSBhd2Fp
dCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgICAgIGdldFRyYWNrc0NvbnRleHRNZW51
KCksCisgICAgICAgICAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKSwKKyAgICAgICAgICAgICAgICBdKTsKKyAgICAgICAg
ICAgICAgICBkZWJ1ZyhKU09OLnN0cmluZ2lmeShjb250ZXh0bWVudSwgbnVsbCwgMikpOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKKyAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9KTsKK30pOworCis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtYXV0by10ZXh0LXRyYWNr
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtYXV0by10ZXh0LXRyYWNrLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hZGFjMGI3NTVjY2JhOTgwNjk4OTQzNWU0ZmJiNzg1MzUwNmFkOTdl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2stZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK0Vuc3VyZSB3ZSBoYXZlIHRoZSBBdXRvIHRleHQg
dHJhY2sgc2VsZWN0ZWQgYnkgZGVmYXVsdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykgYmVjYW1l
IGRpZmZlcmVudCBmcm9tIG51bGwKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0
b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVu
dCBmcm9tIDAKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykg
YmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
QWxsKCdsaS5zZWxlY3RlZCcpWzFdLnRleHRDb250ZW50IGlzICJBdXRvIChSZWNvbW1lbmRlZCki
CisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay5odG1sIGIvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFj
a3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hM2ZmNzc5ZjI5M2Zm
MWNjNTc4ZDU3YjY1OGJjYjQzMGZjNWZhZDMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mt
c3VwcG9ydC1hdXRvLXRleHQtdHJhY2suaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11
dGlscy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KKzxib2R5PgorPHZpZGVv
IHNyYz0iLi4vLi4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246
IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiA2NDBweDsgaGVpZ2h0OiAzNjBweDsi
IGNvbnRyb2xzIGF1dG9wbGF5PjwvdmlkZW8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCI+CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZGVzY3JpcHRpb24oIkVuc3Vy
ZSB3ZSBoYXZlIHRoZSBBdXRvIHRleHQgdHJhY2sgc2VsZWN0ZWQgYnkgZGVmYXVsdC4iKTsKKwor
Y29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOworY29uc3Qgc2hh
ZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7CisKK21lZGlhLmFk
ZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7CisgICAgbWVkaWEucGF1c2UoKTsKKworICAg
IHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24u
dHJhY2tzJykiLCAibnVsbCIsICgpID0+IHsKKyAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50
KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKS53aWR0aCIsICIwIiwgKCkgPT4geworICAgICAgICAgICAgd2luZG93LmludGVy
bmFscy5zZXRDYXB0aW9uRGlzcGxheU1vZGUoImF1dG9tYXRpYyIpOworICAgICAgICAgICAgcHJl
c3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpOwor
ICAgICAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3IoJy50cmFja3MtcGFuZWwnKSIsICJudWxsIiwgKCkgPT4geworICAgICAgICAgICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdsaS5zZWxl
Y3RlZCcpWzFdLnRleHRDb250ZW50IiwgIkF1dG8gKFJlY29tbWVuZGVkKSIpOworICAgICAgICAg
ICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldENh
cHRpb25EaXNwbGF5TW9kZSgiZm9yY2Vkb25seSIpOworICAgICAgICAgICAgICAgIG1lZGlhLnJl
bW92ZSgpOworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0pOworICAgIH0pOworfSk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1jbGljay10cmFjay1pbi1wYW5lbC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNrLWluLXBhbmVsLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41Mjk0MTEwNWJmYTljZWYyNmY3YzMwZjhiOWRjNTMyNjkzZjM1YjJmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1jbGljay10cmFjay1pbi1wYW5lbC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMiBAQAorQ2xpY2tpbmcgb24gYSB0cmFjayBpbiB0aGUg
dHJhY2tzIHBhbmVsLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworbWVkaWEuYXVk
aW9UcmFja3NbMF0uZW5hYmxlZCA9IHRydWUKK21lZGlhLmF1ZGlvVHJhY2tzWzFdLmVuYWJsZWQg
PSBmYWxzZQorbWVkaWEuYXVkaW9UcmFja3NbMl0uZW5hYmxlZCA9IGZhbHNlCisKK1BBU1Mgc2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykgYmVjYW1lIGRpZmZlcmVudCBm
cm9tIG51bGwKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJyku
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKKwor
Q2xpY2tpbmcgb24gdGhlIHRyYWNrcyBidXR0b24KK0NsaWNraW5nIG9uIHNlY29uZCBhdWRpbyB0
cmFjayBpbiB0cmFja3MgcGFuZWwKKworT2J0YWluZWQgY2hhbmdlIGV2ZW50IG9uIG1lZGlhIGF1
ZGlvIHRyYWNrcworbWVkaWEuYXVkaW9UcmFja3NbMF0uZW5hYmxlZCA9IGZhbHNlCittZWRpYS5h
dWRpb1RyYWNrc1sxXS5lbmFibGVkID0gdHJ1ZQorbWVkaWEuYXVkaW9UcmFja3NbMl0uZW5hYmxl
ZCA9IGZhbHNlCisKK0NsaWNraW5nIG9uIHRoZSB0cmFja3MgYnV0dG9uCitDbGlja2luZyBvbiB0
aGlyZCBhdWRpbyB0cmFjayBpbiB0cmFja3MgcGFuZWwKKworT2J0YWluZWQgY2hhbmdlIGV2ZW50
IG9uIG1lZGlhIGF1ZGlvIHRyYWNrcworbWVkaWEuYXVkaW9UcmFja3NbMF0uZW5hYmxlZCA9IGZh
bHNlCittZWRpYS5hdWRpb1RyYWNrc1sxXS5lbmFibGVkID0gZmFsc2UKK21lZGlhLmF1ZGlvVHJh
Y2tzWzJdLmVuYWJsZWQgPSB0cnVlCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRy
YWNrLWluLXBhbmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNrLWluLXBhbmVs
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOWZiMmNiM2MzYTMwN2MwOWUzYzljMGZmZWFlOWU2MjQ3MTUxNDk4
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJhY2staW4tcGFu
ZWwuaHRtbApAQCAtMCwwICsxLDk3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8
dmlkZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJwb3Np
dGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDY0MHB4OyBoZWlnaHQ6IDM2
MHB4OyIgY29udHJvbHMgYXV0b3BsYXk+PC92aWRlbz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0Ij4KKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitkZXNjcmlwdGlvbigi
Q2xpY2tpbmcgb24gYSB0cmFjayBpbiB0aGUgdHJhY2tzIHBhbmVsLiIpOworCitjb25zdCBtZWRp
YSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Citjb25zdCBzaGFkb3dSb290ID0g
d2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsKKworbGV0IHByZXZpb3VzbHlTZWxl
Y3RlZFRyYWNrID0gMDsKKworbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsK
KyAgICBtZWRpYS5wYXVzZSgpOworCisgICAgZHVtcEF1ZGlvVHJhY2tzRW5hYmxlZFN0YXRlKCk7
CisKKyAgICBtZWRpYS5hdWRpb1RyYWNrcy5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCBhdWRp
b1RyYWNrc0RpZENoYW5nZSk7CisKKyAgICBkZWJ1ZygiIik7CisgICAgc2hvdWxkQmVjb21lRGlm
ZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIsICJudWxs
IiwgKCkgPT4geworICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRo
IiwgIjAiLCAoKSA9PiB7CisgICAgICAgICAgICBjbGlja09uVHJhY2tzQnV0dG9uKGNsaWNrT25T
ZWNvbmRBdWRpb1RyYWNrKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9KTsKKworZnVuY3Rpb24g
Y2xpY2tPblRyYWNrc0J1dHRvbihjb250aW51YXRpb24pCit7CisgICAgd2luZG93LnJlcXVlc3RB
bmltYXRpb25GcmFtZSgoKSA9PiB7CisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZGVidWco
IkNsaWNraW5nIG9uIHRoZSB0cmFja3MgYnV0dG9uIik7CisgICAgICAgIGNsaWNrT25FbGVtZW50
KHNoYWRvd1Jvb3QubGFzdENoaWxkLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSk7Cisg
ICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY29udGludWF0aW9uKTsKKyAgICB9
KTsKK30KKworZnVuY3Rpb24gY2xpY2tPblNlY29uZEF1ZGlvVHJhY2soKQoreworICAgIGRlYnVn
KCJDbGlja2luZyBvbiBzZWNvbmQgYXVkaW8gdHJhY2sgaW4gdHJhY2tzIHBhbmVsIik7CisgICAg
Y2xpY2tPbkF1ZGlvVHJhY2tBdEluZGV4KDEpOworfQorCitmdW5jdGlvbiBjbGlja09uVGhpcmRB
dWRpb1RyYWNrKCkKK3sKKyAgICBkZWJ1ZygiQ2xpY2tpbmcgb24gdGhpcmQgYXVkaW8gdHJhY2sg
aW4gdHJhY2tzIHBhbmVsIik7CisgICAgY2xpY2tPbkF1ZGlvVHJhY2tBdEluZGV4KDIpOworfQor
CitmdW5jdGlvbiBjbGlja09uQXVkaW9UcmFja0F0SW5kZXgoaW5kZXgpCit7CisgICAgY2xpY2tP
bkVsZW1lbnQoc2hhZG93Um9vdC5sYXN0Q2hpbGQucXVlcnlTZWxlY3RvckFsbCgibGkiKVtpbmRl
eF0pOworfQorCitmdW5jdGlvbiBjbGlja09uRWxlbWVudChlbGVtZW50KQoreworICAgIGNvbnN0
IGJvdW5kcyA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VNb3ZlVG8oYm91bmRzLmxlZnQgKyAxLCBib3VuZHMudG9wICsgMSk7CisgICAgZXZl
bnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQorCitm
dW5jdGlvbiBhdWRpb1RyYWNrc0RpZENoYW5nZSgpCit7CisgICAgY29uc3QgbmV3U2VsZWN0ZWRU
cmFjayA9IEFycmF5LmZyb20obWVkaWEuYXVkaW9UcmFja3MpLmZpbmRJbmRleCh0cmFjayA9PiB0
cmFjay5lbmFibGVkKTsKKyAgICBpZiAocHJldmlvdXNseVNlbGVjdGVkVHJhY2sgPT09IG5ld1Nl
bGVjdGVkVHJhY2spCisgICAgICAgIHJldHVybjsKKworICAgIHByZXZpb3VzbHlTZWxlY3RlZFRy
YWNrID0gbmV3U2VsZWN0ZWRUcmFjazsKKworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiT2J0
YWluZWQgY2hhbmdlIGV2ZW50IG9uIG1lZGlhIGF1ZGlvIHRyYWNrcyIpOworCisgICAgZHVtcEF1
ZGlvVHJhY2tzRW5hYmxlZFN0YXRlKCk7CisKKyAgICBpZiAobWVkaWEuYXVkaW9UcmFja3NbMV0u
ZW5hYmxlZCkKKyAgICAgICAgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIudHJhY2tzLXBhbmVs
IikuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsIGV2ZW50ID0+IGNsaWNrT25UcmFj
a3NCdXR0b24oY2xpY2tPblRoaXJkQXVkaW9UcmFjaykpOworICAgIGVsc2UgaWYgKG1lZGlhLmF1
ZGlvVHJhY2tzWzJdLmVuYWJsZWQpIHsKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBtZWRp
YS5yZW1vdmUoKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQorfQorCitmdW5jdGlv
biBkdW1wQXVkaW9UcmFja3NFbmFibGVkU3RhdGUoKQoreworICAgIEFycmF5LmZyb20obWVkaWEu
YXVkaW9UcmFja3MpLmZvckVhY2goKGF1ZGlvVHJhY2ssIGluZGV4KSA9PiB7CisgICAgICAgIGRl
YnVnKGBtZWRpYS5hdWRpb1RyYWNrc1ske2luZGV4fV0uZW5hYmxlZCA9ICR7bWVkaWEuYXVkaW9U
cmFja3NbaW5kZXhdLmVuYWJsZWR9YCk7CisgICAgfSk7Cit9CisKKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uN2FkM2ZjMTk2YjY1OTk1ZjNhNzA0YzdjMjE3ODBmNTMzMjZhYjg0ZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyMSBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSB0cmFja3MgcGFuZWwg
ZG9lc24ndCBzaG93IGFueSB0cmFjayBhcyBzZWxlY3RlZCBpZiBhbGwgdGhlIHRleHQgdHJhY2tz
IGZvciBhIG1lZGlhIGVsZW1lbnQgYXJlIG1hcmtlZCBhcyAiaGlkZGVuIi4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0
b24udHJhY2tzJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKK1BBU1Mgc2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lk
dGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKKworPT09IEluaXRpYWwgc3RhdGUgPT09CisKK1t4
XSBPZmYKK1stXSBBdXRvIChSZWNvbW1lbmRlZCkKK1stXSBFbmdsaXNoIFN1YnRpdGxlcworWy1d
IEZyZW5jaCBTdWJ0aXRsZXMKK1stXSBHZXJtYW4gU3VidGl0bGVzCitbLV0gU3BhbmlzaCBTdWJ0
aXRsZXMKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy5odG1sIGIvTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90
cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzlhMmI1Mzc2NzEx
Y2ZkOTJhOGM0ZDlkOTE4MTZjYmVlZGMwZTgzZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tz
LXN1cHBvcnQtaGlkZGVuLXRyYWNrcy5odG1sCkBAIC0wLDAgKzEsNzIgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8Ym9keT4KKzx2aWRlbyBzcmM9Ii4uLy4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0
bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0
aDogNjQwcHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgorPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7CisKK2Rlc2NyaXB0aW9uKGBUaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGhlIHRyYWNrcyBwYW5l
bCBkb2Vzbid0IHNob3cgYW55IHRyYWNrIGFzIHNlbGVjdGVkIGlmIGFsbCB0aGUgdGV4dCB0cmFj
a3MgZm9yIGEgbWVkaWEgZWxlbWVudCBhcmUgbWFya2VkIGFzICJoaWRkZW4iLmApOworCitjb25z
dCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Citjb25zdCBzaGFkb3dS
b290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsKKworbWVkaWEuYWRkRXZl
bnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKKyAgICBtZWRpYS5wYXVzZSgpOworCisgICAgc2hv
dWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFj
a3MnKSIsICJudWxsIiwgKCkgPT4geworICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50
UmVjdCgpLndpZHRoIiwgIjAiLCBydW5UZXN0KTsKKyAgICB9KTsKK30pOworCithc3luYyBmdW5j
dGlvbiBydW5UZXN0KCkKK3sKKyAgICAvLyBTdGFydCBieSBtYWtpbmcgc3VyZSBhbGwgdHJhY2tz
IGFyZSBtYXJrZWQgYXMgImhpZGRlbiIuCisgICAgQXJyYXkuZnJvbShtZWRpYS50ZXh0VHJhY2tz
KS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLm1vZGUgPSAiaGlkZGVuIik7CisKKyAgICAvLyBOZXh0
LCBicmluZyB1cCB0aGUgdHJhY2tzIG1lbnUgYnkgY2xpY2tpbmcgb24gdGhlIHRyYWNrcyBidXR0
b24uCisgICAgYXdhaXQgY2xpY2tPblRyYWNrc0J1dHRvbigpOworICAgIC8vIER1bXAgdGhlIHN0
YXRlIG9mIHRoZSB0cmFja3MgbWVudSBmb3IgdGV4dCB0cmFja3MsIHdoaWNoIHNob3VsZCBzaG93
IHRoZSBmaXJzdCBlbWJlZGRlZCB0ZXh0IHRyYWNrIGFzIHNlbGVjdGVkLgorICAgIGR1bXBUZXh0
VHJhY2tzTGlzdE5vZGVzKCJJbml0aWFsIHN0YXRlIik7CisKKyAgICBmaW5pc2hUZXN0KCk7Cit9
CisKK2Z1bmN0aW9uIHRleHRUcmFja3NMaXN0Tm9kZXMoKQoreworICAgIHJldHVybiBzaGFkb3dS
b290LnF1ZXJ5U2VsZWN0b3JBbGwoIi50cmFja3MtcGFuZWwgc2VjdGlvbjpsYXN0LW9mLXR5cGUg
PiB1bCA+IGxpIik7Cit9CisKK2Z1bmN0aW9uIGR1bXBUZXh0VHJhY2tzTGlzdE5vZGVzKG1zZykK
K3sKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoYD09PSAke21zZ30gPT09YCk7CisgICAgZGVi
dWcoIiIpOworICAgIEFycmF5LmZyb20odGV4dFRyYWNrc0xpc3ROb2RlcygpKS5mb3JFYWNoKGxp
ID0+IGRlYnVnKGAke2xpLmNsYXNzTGlzdC5jb250YWlucygic2VsZWN0ZWQiKSA/ICJbeF0iIDog
IlstXSJ9ICR7bGkudGV4dENvbnRlbnR9YCkpOworfQorCithc3luYyBmdW5jdGlvbiBjbGlja09u
VHJhY2tzQnV0dG9uKCkKK3sKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXF1ZXN0QW5pbWF0aW9u
RnJhbWUpOworICAgIGNsaWNrT25FbGVtZW50KHNoYWRvd1Jvb3QubGFzdENoaWxkLnF1ZXJ5U2Vs
ZWN0b3IoImJ1dHRvbi50cmFja3MiKSk7CisgICAgYXdhaXQgbmV3IFByb21pc2UocmVxdWVzdEFu
aW1hdGlvbkZyYW1lKTsKK30KKworZnVuY3Rpb24gY2xpY2tPbkVsZW1lbnQoZWxlbWVudCkKK3sK
KyAgICBjb25zdCBib3VuZHMgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGJvdW5kcy5sZWZ0ICsgMSwgYm91bmRzLnRvcCArIDEp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAo
KTsKK30KKworZnVuY3Rpb24gZmluaXNoVGVzdCgpCit7CisgICAgZGVidWcoIiIpOworICAgIG1l
ZGlhLnJlbW92ZSgpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCis8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2stZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZmIzZTMxODA1ZGVlODI3ZjhiN2U4YWYxMWEwZmJiOTY1MDVlODE3ZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2stZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTQgQEAKK0Vuc3VyZSB3ZSBoYXZlIHRoZSBPZmYgdGV4dCB0cmFjayBz
ZWxlY3RlZCBieSBkZWZhdWx0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVy
ZW50IGZyb20gbnVsbAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFj
a3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20g
MAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKSBiZWNhbWUg
ZGlmZmVyZW50IGZyb20gbnVsbAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xp
LnNlbGVjdGVkJylbMV0udGV4dENvbnRlbnQgaXMgIk9mZiIKKworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1
cHBvcnQtb2ZmLXRleHQtdHJhY2suaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJh
Y2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mNjA4MDg3ODQ0NTUwZDk3ZTdjYWM4N2FiMjZkNTNkZDY4NDFj
ZDNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay5o
dG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzIiB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPjwvc2NyaXB0PgorPGJvZHk+Cis8dmlkZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50L0ND
K1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDog
MDsgd2lkdGg6IDY0MHB4OyBoZWlnaHQ6IDM2MHB4OyIgY29udHJvbHMgYXV0b3BsYXk+PC92aWRl
bz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKword2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworCitkZXNjcmlwdGlvbigiRW5zdXJlIHdlIGhhdmUgdGhlIE9mZiB0ZXh0IHRy
YWNrIHNlbGVjdGVkIGJ5IGRlZmF1bHQuIik7CisKK2NvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigidmlkZW8iKTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxz
LnNoYWRvd1Jvb3QobWVkaWEpOworCittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkg
PT4geworICAgIG1lZGlhLnBhdXNlKCk7CisKKyAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7
CisgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsICgp
ID0+IHsKKyAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cigiYnV0dG9uLnRyYWNrcyIpKTsKKyAgICAgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgi
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykiLCAibnVsbCIsICgpID0+
IHsKKyAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvckFsbCgnbGkuc2VsZWN0ZWQnKVsxXS50ZXh0Q29udGVudCIsICJPZmYiKTsKKyAg
ICAgICAgICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7
CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfSk7CisgICAgfSk7Cit9KTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBv
cnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQtcG9wdWxhdGUtcGFuZWwtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA1MmQ2Y2IxOTg3ODgwNTg5Y2EwZWM4YWRlMDAwNzExN2IzYWQ1MDcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVs
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIyIEBACitTaG93aW5nIGFuZCBwb3B1bGF0aW5nIHRo
ZSB0cmFja3MgcGFuZWwuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitBdWRpbwor
ICBFbmdsaXNoIFNvdW5kCisgIEZyZW5jaCBTb3VuZAorICBTcGFuaXNoIFNvdW5kCisKK1N1YnRp
dGxlcworICBPZmYKKyAgQXV0byAoUmVjb21tZW5kZWQpCisgIEVuZ2xpc2ggU3VidGl0bGVzCisg
IEZyZW5jaCBTdWJ0aXRsZXMKKyAgR2VybWFuIFN1YnRpdGxlcworICBTcGFuaXNoIFN1YnRpdGxl
cworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LWFuZC1wb3B1bGF0ZS1wYW5lbC5odG1s
IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LWFuZC1wb3B1bGF0ZS1wYW5lbC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmEzYjNhYjdiYWUzMjRiODFiZDFhZjAzYzRjOTUxODM5NmI5MmRkNDgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLmh0bWwKQEAg
LTAsMCArMSw0NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxib2R5PgorPHZpZGVvIHNyYz0i
Li4vLi4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0id2lkdGg6IDY0MHB4OyBo
ZWlnaHQ6IDM2MHB4OyIgY29udHJvbHMgYXV0b3BsYXk+PC92aWRlbz4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitkZXNj
cmlwdGlvbigiU2hvd2luZyBhbmQgcG9wdWxhdGluZyB0aGUgdHJhY2tzIHBhbmVsLiIpOworCitj
b25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Citjb25zdCBzaGFk
b3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsKKworbWVkaWEuYWRk
RXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKKyAgICBtZWRpYS5wYXVzZSgpOworICAgIHdp
bmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAgICBjbGlja09uVHJhY2tz
QnV0dG9uKCk7CisgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewor
ICAgICAgICAgICAgbGlzdENvbnRlbnRzT2ZUcmFja3NQYW5lbCgpOworICAgICAgICAgICAgbWVk
aWEucmVtb3ZlKCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSk7Cisg
ICAgfSk7Cit9KTsKKworZnVuY3Rpb24gY2xpY2tPblRyYWNrc0J1dHRvbigpCit7CisgICAgY29u
c3QgYm91bmRzID0gc2hhZG93Um9vdC5sYXN0Q2hpbGQucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRy
YWNrcyIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKGJvdW5kcy5sZWZ0ICsgMSwgYm91bmRzLnRvcCArIDEpOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworZnVuY3Rpb24gbGlz
dENvbnRlbnRzT2ZUcmFja3NQYW5lbCgpCit7CisgICAgZm9yIChsZXQgc2VjdGlvbiBvZiBzaGFk
b3dSb290Lmxhc3RDaGlsZC5xdWVyeVNlbGVjdG9yQWxsKCJzZWN0aW9uIikpIHsKKyAgICAgICAg
ZGVidWcoc2VjdGlvbi5xdWVyeVNlbGVjdG9yKCJoMyIpLnRleHRDb250ZW50KTsKKyAgICAgICAg
Zm9yIChsZXQgaXRlbSBvZiBzZWN0aW9uLnF1ZXJ5U2VsZWN0b3JBbGwoImxpIikpCisgICAgICAg
ICAgICBkZWJ1ZygiICAiICsgaXRlbS50ZXh0Q29udGVudCk7CisgICAgICAgIGRlYnVnKCIiKTsK
KyAgICB9Cit9CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFj
a3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1hZnRlci1kcmFnZ2luZy1jb250cm9scy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDk4NDMwYmYzOGYxMjY2MGI4ZWZjYzc5NjE2ZWYxODRi
NTEwODRlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1h
ZnRlci1kcmFnZ2luZy1jb250cm9scy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVz
dGluZyB0aGUgZGlzcGxheSBvZiBhIHRyYWNrcyBwYW5lbCBhZnRlciBkcmFnZ2luZyB0aGUgY29u
dHJvbHMgYmFyIGluIGZ1bGxzY3JlZW4uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLmZ1bGxzY3JlZW4nKS5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAorUEFTUyBzaGFkb3dS
b290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KSBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3Io
J2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCBpcyBzaGFkb3dS
b290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KS5yaWdodAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5z
dHlsZS5ib3R0b20gaXMgIjE1MXB4IgorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBh
bmVsLWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ct
cGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJvbHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWJhYjkwNTg1
OGZjYWVmOThiMjk4Y2U3NzBmOWIxYjY2ODY2ODE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFj
a3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xzLmh0bWwKQEAgLTAs
MCArMSw1OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9z
Y3JpcHQ+Cis8Ym9keT4KKzx2aWRlbyBzcmM9Ii4uLy4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVz
Lm1vdiIgc3R5bGU9IndpZHRoOiAzMjBweDsgaGVpZ2h0OiAyNDBweDsiIGNvbnRyb2xzIGF1dG9w
bGF5PjwvdmlkZW8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK3dpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZGVzY3JpcHRpb24oIlRlc3RpbmcgdGhlIGRpc3BsYXkg
b2YgYSB0cmFja3MgcGFuZWwgYWZ0ZXIgZHJhZ2dpbmcgdGhlIGNvbnRyb2xzIGJhciBpbiBmdWxs
c2NyZWVuLiIpOworCitjb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVv
Iik7Citjb25zdCBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1lZGlh
KTsKKworbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0YmVnaW5mdWxsc2NyZWVuIiwgKCkg
PT4geworICAgIGRlYnVnKCJ3ZWJraXRiZWdpbmZ1bGxzY3JlZW4iKTsKK30pOworCittZWRpYS5h
ZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRmdWxsc2NyZWVuY2hhbmdlIiwgKCkgPT4geworICAgIGlm
ICghbWVkaWEud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4pCisgICAgICAgIHJldHVybjsKKwor
ICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAgICBjb25zdCBi
b3VuZHMgPSBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi5jb250cm9scy1iYXIiKS5nZXRCb3Vu
ZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYm91bmRz
LmxlZnQgKyAxMTgsIGJvdW5kcy50b3AgKyAxMCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
RG93bigpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhib3VuZHMubGVmdCArIDY4
LCBib3VuZHMudG9wIC0gNDApOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisKKyAg
ICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAgICAgICAgIGNsaWNrT25C
dXR0b24oInRyYWNrcyIsICgpID0+IHsKKyAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9u
RnJhbWUoKCkgPT4geworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgic2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmln
aHQiLCAic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykuZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCkucmlnaHQiKQorICAgICAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpLnN0eWxl
LmJvdHRvbSIsICIxNTFweCIpOworCisgICAgICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsKKyAg
ICAgICAgICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0pOworICAgIH0pOworfSk7CisKK21lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAo
KSA9PiB7CisgICAgbWVkaWEucGF1c2UoKTsKKyAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZy
YW1lKCgpID0+IGNsaWNrT25CdXR0b24oImZ1bGxzY3JlZW4iKSk7Cit9KTsKKworZnVuY3Rpb24g
Y2xpY2tPbkJ1dHRvbihuYW1lLCBjb250aW51YXRpb24pCit7CisgICAgc2hvdWxkQmVjb21lRGlm
ZmVyZW50KGBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi4ke25hbWV9JykuZ2V0Qm91
bmRpbmdDbGllbnRSZWN0KClgLCAiMCIsICgpID0+IHsKKyAgICAgICAgcHJlc3NPbkVsZW1lbnQo
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGBidXR0b24uJHtuYW1lfWApLCBjb250aW51YXRpb24p
OworICAgIH0pOworfQorCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMv
dHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1mdWxsc2NyZWVuLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJh
Y2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1mdWxsc2NyZWVuLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43NTE1MjU1MDQyODA4ZGM2ZjNkMWQ5YWE3MTNlNjE2ZTUyOTc1ZWEzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxzY3JlZW4tZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTkgQEAKK1Nob3dpbmcgdGhlIHRyYWNrcyBwYW5lbCBpbiBmdWxsc2NyZWVu
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBpbnRlcm5hbHMuc2hhZG93
Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcigiYnV0dG9uLmZ1bGxzY3JlZW4iKSBiZWNhbWUgZGlm
ZmVyZW50IGZyb20gbnVsbAorUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlT
ZWxlY3RvcigiYnV0dG9uLmZ1bGxzY3JlZW4iKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0
aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAorUEFTUyBtZWRpYS53ZWJraXREaXNwbGF5aW5nRnVs
bHNjcmVlbiBiZWNhbWUgdHJ1ZQorUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVl
cnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQ
QVNTIGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJh
Y2tzIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9t
IDAKK1BBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRv
bi50cmFja3MiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCBiZWNhbWUgNTgyCitQQVNT
IGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVs
JykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKK1BBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3Qo
bWVkaWEpLnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5zdHlsZS5yaWdodCBpcyAiMjE4
cHgiCitQQVNTIGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCcudHJh
Y2tzLXBhbmVsJykuc3R5bGUuYm90dG9tIGlzICIxMDFweCIKKworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1
cHBvcnQtc2hvdy1wYW5lbC1mdWxsc2NyZWVuLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ct
cGFuZWwtZnVsbHNjcmVlbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1ZDRlNmI3M2NjNDczNzgzMWZiYzNm
MjgyY2E4Yjk2MWY2ZDlhOTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNo
b3ctcGFuZWwtZnVsbHNjcmVlbi5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzwhRE9DVFlQRSBodG1s
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxz
LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgorPGJvZHk+Cis8dmlkZW8gc3Jj
PSIuLi8uLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJ3aWR0aDogMzIwcHg7
IGhlaWdodDogMjQwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgorPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPgorCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Rl
c2NyaXB0aW9uKCJTaG93aW5nIHRoZSB0cmFja3MgcGFuZWwgaW4gZnVsbHNjcmVlbi4iKTsKKwor
c2V0VGltZW91dCgoKSA9PiB7CisgICAgZGVidWcoIkZBSUw6IGRpZCBub3QgZW5kIGZhc3QgZW5v
dWdoIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9LCAxMDAwMCk7CisKK2NvbnN0IG1lZGlhID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKKworbWVkaWEuYWRkRXZlbnRMaXN0ZW5l
cigid2Via2l0ZnVsbHNjcmVlbmNoYW5nZSIsICgpID0+IHsKKyAgICBzaG91bGRCZWNvbWVFcXVh
bCgibWVkaWEud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4iLCAidHJ1ZSIsICgpID0+IHsKKyAg
ICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KGBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSku
cXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpYCwgIm51bGwiLCAoKSA9PiB7CisgICAgICAg
ICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoYGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5x
dWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lk
dGhgLCAiMCIsICgpID0+IHsKKyAgICAgICAgICAgICAgICBzaG91bGRCZWNvbWVFcXVhbChgaW50
ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKS5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodGAsICI1ODIiLCAoKSA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIHByZXNzT25FbGVtZW50KGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVy
eVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRC
ZWNvbWVEaWZmZXJlbnQoYGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9y
KCcudHJhY2tzLXBhbmVsJylgLCAibnVsbCIsICgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1
ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5zdHlsZS5yaWdodCIsICIyMThweCIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnRlcm5hbHMuc2hh
ZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpLnN0eWxlLmJvdHRv
bSIsICIxMDFweCIpOworICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoIiIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9KTsKKworbWVk
aWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKKyAgICBtZWRpYS5wYXVzZSgpOwor
ICAgIHNob3VsZEJlY29tZURpZmZlcmVudChgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1
ZXJ5U2VsZWN0b3IoImJ1dHRvbi5mdWxsc2NyZWVuIilgLCAibnVsbCIsICgpID0+IHsKKyAgICAg
ICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KGBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVl
cnlTZWxlY3RvcigiYnV0dG9uLmZ1bGxzY3JlZW4iKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53
aWR0aGAsICIwIiwgKCkgPT4geworICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoaW50ZXJuYWxz
LnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoYGJ1dHRvbi5mdWxsc2NyZWVuYCkpOwor
ICAgICAgICB9KTsKKyAgICB9KTsKK30pOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC10aGVuLWRvdWJsZS1jbGljay1v
bi10cmFja3MtYnV0dG9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5l
bC10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45OGJkNzc4YzI4MjJmODNmNGNmZThlMTM0MTUyZjA3YTI0YzE0NmFhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1z
dXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9u
LXRyYWNrcy1idXR0b24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK0Vuc3VyZSB0aGF0
IGRvdWJsZS1jbGlja2luZyB0aGUgdHJhY2tzIGJ1dHRvbiB3aGVuIHRoZSB0cmFja3MgcGFuZWwg
bWFrZXMgdGhlIHBhbmVsIGFwcGVhciBhZ2Fpbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK01lZGlhIHN0YXJ0ZWQgcGxheWluZworUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAorUEFTUyBzaGFk
b3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJl
Y3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5
U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAorUEFT
UyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKSBpcyBub3QgbnVsbAor
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1z
dXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9u
LXRyYWNrcy1idXR0b24uaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC10aGVuLWRv
dWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzVlZDA0MmQ0N2Nk
MWFiMWJhZmEwNjZlYWY5ODRhODY2ZTdjNjNjZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tz
LXN1cHBvcnQtc2hvdy1wYW5lbC10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0
bWwKQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMiIHR5cGU9InRleHQvamF2YXNj
cmlwdCI+PC9zY3JpcHQ+Cis8Ym9keT4KKzx2aWRlbyBzcmM9Ii4uLy4uLy4uL2NvbnRlbnQvQ0Mr
U3VidGl0bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAw
OyB3aWR0aDogNjQwcHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVv
PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCJFbnN1cmUgdGhhdCBkb3VibGUtY2xpY2tpbmcgdGhl
IHRyYWNrcyBidXR0b24gd2hlbiB0aGUgdHJhY2tzIHBhbmVsIG1ha2VzIHRoZSBwYW5lbCBhcHBl
YXIgYWdhaW4uIik7CisKK2NvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigidmlk
ZW8iKTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVk
aWEpOworCittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4geworICAgIG1lZGlh
LnBhdXNlKCk7CisKKyAgICBkZWJ1ZygiTWVkaWEgc3RhcnRlZCBwbGF5aW5nIik7CisgICAgc2hv
dWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFj
a3MnKSIsICJudWxsIiwgKCkgPT4geworICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50
UmVjdCgpLndpZHRoIiwgIjAiLCAoKSA9PiB7CisgICAgICAgICAgICBwcmVzc09uRWxlbWVudChz
aGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSk7CisgICAgICAgICAgICBz
aG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1w
YW5lbCcpIiwgIm51bGwiLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQo
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpOworICAgICAgICAgICAg
ICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIHBy
ZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKTsK
KyAgICAgICAgICAgICAgICAgICAgLy8gR2l2ZSB0aGUgdHJhbnNpdGlvbmVuZCBldmVudCB0aW1l
IHRvIGZpcmUgaWYgaXQgd2VyZSB0byBoYXBwZW4sIHdoaWNoIGl0IHNob3VsZCBub3QuCisgICAg
ICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgc2hvdWxkTm90QmUoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcp
IiwgIm51bGwiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgICAgIH0sIDUwMCk7CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9KTsKKwor
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXRl
eHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1z
dXBwb3J0LXRleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNWM4YzczNDU2MGJlODg4ZTJlNDhlMTlmZTVhZDNkNjVjNTE5M2E1MwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVk
aWEtYXBpLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMwIEBACitUaGlzIHRlc3QgY2hlY2tzIHRo
YXQgc2V0dGluZyBhbiBlbWJlZGRlZCB0ZXh0IHRyYWNrIGFzIHNlbGVjdGVkIHZpYSB0aGUgSFRN
TE1lZGlhRWxlbWVudCBKUyBBUElzIHdpbGwgY29ycmVjdGx5IHNob3cgdGhpcyB0cmFjayBhcyBz
ZWxlY3RlZCwgYW5kIHRoYXQgc2VsZWN0aW5nIHRoZSAiQXV0b21hdGljIChSZWNvbW1lbmRlZCki
IHRyYWNrIHdpbGwgcmV2ZXJ0IGJhY2sgdG8gc2VsZWN0aW5nIHRoYXQgZW50cnkuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcign
YnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIHNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
LndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCisKKz09PSBJbml0aWFsIHN0YXRlID09PQor
CitbLV0gT2ZmCitbLV0gQXV0byAoUmVjb21tZW5kZWQpCitbeF0gRW5nbGlzaCBTdWJ0aXRsZXMK
K1stXSBGcmVuY2ggU3VidGl0bGVzCitbLV0gR2VybWFuIFN1YnRpdGxlcworWy1dIFNwYW5pc2gg
U3VidGl0bGVzCisKKz09PSBBZnRlciBwaWNraW5nIGF1dG8gdHJhY2sgaW50ZXJhY3RpdmVseSA9
PT0KKworWy1dIE9mZgorW3hdIEF1dG8gKFJlY29tbWVuZGVkKQorWy1dIEVuZ2xpc2ggU3VidGl0
bGVzCitbLV0gRnJlbmNoIFN1YnRpdGxlcworWy1dIEdlcm1hbiBTdWJ0aXRsZXMKK1stXSBTcGFu
aXNoIFN1YnRpdGxlcworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVj
dGVkLXZpYS1tZWRpYS1hcGkuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxl
Y3RlZC12aWEtbWVkaWEtYXBpLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDAyMmViOTZkZjk0NGVmMWE4MjNi
ZTkxZjFmOTBkZDM5YjczMDA1MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQt
dGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLmh0bWwKQEAgLTAsMCArMSw4OCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxib2R5PgorPHZpZGVvIHNyYz0iLi4vLi4vLi4vY29udGVu
dC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0
b3A6IDA7IHdpZHRoOiA2NDBweDsgaGVpZ2h0OiAzNjBweDsiIGNvbnRyb2xzIGF1dG9wbGF5Pjwv
dmlkZW8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK3dpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworZGVzY3JpcHRpb24oYFRoaXMgdGVzdCBjaGVja3MgdGhhdCBzZXR0
aW5nIGFuIGVtYmVkZGVkIHRleHQgdHJhY2sgYXMgc2VsZWN0ZWQgdmlhIHRoZSBIVE1MTWVkaWFF
bGVtZW50IEpTIEFQSXMgd2lsbCBjb3JyZWN0bHkgc2hvdyB0aGlzIHRyYWNrIGFzIHNlbGVjdGVk
LCBhbmQgdGhhdCBzZWxlY3RpbmcgdGhlIAorIkF1dG9tYXRpYyAoUmVjb21tZW5kZWQpIiB0cmFj
ayB3aWxsIHJldmVydCBiYWNrIHRvIHNlbGVjdGluZyB0aGF0IGVudHJ5LmApOworCitjb25zdCBt
ZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Citjb25zdCBzaGFkb3dSb290
ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsKKworbWVkaWEuYWRkRXZlbnRM
aXN0ZW5lcigicGxheSIsICgpID0+IHsKKyAgICBtZWRpYS5wYXVzZSgpOworCisgICAgc2hvdWxk
QmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3Mn
KSIsICJudWxsIiwgKCkgPT4geworICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRv
d1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpLndpZHRoIiwgIjAiLCBydW5UZXN0KTsKKyAgICB9KTsKK30pOworCithc3luYyBmdW5jdGlv
biBydW5UZXN0KCkKK3sKKyAgICAvLyBTdGFydCBieSBzZWxlY3Rpbmcgb25lIG9mIHRoZSB0ZXh0
IHRyYWNrcyB1c2luZyB0aGUgbWVkaWEgSlMgQVBJLgorICAgIC8vIFRoaXMgd2lsbCBjYXVzZSB0
ZXh0VHJhY2tzRGlkQ2hhbmdlIHRvIGJlIGNhbGxlZCBmb3IgdGhlIGZpcnN0IHRpbWUuCisgICAg
bWVkaWEudGV4dFRyYWNrc1swXS5tb2RlID0gInNob3dpbmciOworCisgICAgLy8gTmV4dCwgYnJp
bmcgdXAgdGhlIHRyYWNrcyBtZW51IGJ5IGNsaWNraW5nIG9uIHRoZSB0cmFja3MgYnV0dG9uLgor
ICAgIGF3YWl0IGNsaWNrT25UcmFja3NCdXR0b24oKTsKKyAgICAvLyBEdW1wIHRoZSBzdGF0ZSBv
ZiB0aGUgdHJhY2tzIG1lbnUgZm9yIHRleHQgdHJhY2tzLCB3aGljaCBzaG91bGQgc2hvdyB0aGUg
Zmlyc3QgZW1iZWRkZWQgdGV4dCB0cmFjayBhcyBzZWxlY3RlZC4KKyAgICBkdW1wVGV4dFRyYWNr
c0xpc3ROb2RlcygiSW5pdGlhbCBzdGF0ZSIpOworICAgIC8vIE5vdywgc2VsZWN0IHRoZSAiQXV0
b21hdGljIChSZWNvbW1lbmRlZCkiIHRleHQgdHJhY2suIAorICAgIGF3YWl0IGNsaWNrT25UZXh0
VHJhY2tBdEluZGV4KDEpOworICAgIC8vIFdhaXQgZm9yIHRoZSBzZWxlY3Rpb24gdG8gaGF2ZSBn
b25lIHRocm91Z2ggYW5kIHRoZSBwYW5lbCB0byBoYXZlIHRyYW5zaXRpb25lZCBvdXQgb2Ygdmll
dy4KKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNoYWRvd1Jvb3QucXVlcnlTZWxl
Y3RvcigiLnRyYWNrcy1wYW5lbCIpLmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLCBy
ZXNvbHZlLCB7IG9uY2U6IHRydWUgfSkpOworCisgICAgLy8gTm93LCBicmluZyB1cCB0aGUgdHJh
Y2tzIG1lbnUgYWdhaW4gYnkgY2xpY2tpbmcgb24gdGhlIHRyYWNrcyBidXR0b24uCisgICAgYXdh
aXQgY2xpY2tPblRyYWNrc0J1dHRvbigpOworICAgIC8vIER1bXAgdGhlIHN0YXRlIG9mIHRoZSB0
cmFja3MgbWVudSBmb3IgdGV4dCB0cmFja3MsIHdoaWNoIHNob3VsZCBub3cgc2hvdyAiQXV0b21h
dGljIChSZWNvbW1lbmRlZCkiIGFzIHNlbGVjdGVkLgorICAgIGR1bXBUZXh0VHJhY2tzTGlzdE5v
ZGVzKCJBZnRlciBwaWNraW5nIGF1dG8gdHJhY2sgaW50ZXJhY3RpdmVseSIpOworCisgICAgZmlu
aXNoVGVzdCgpOworfQorCitmdW5jdGlvbiB0ZXh0VHJhY2tzTGlzdE5vZGVzKCkKK3sKKyAgICBy
ZXR1cm4gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCIudHJhY2tzLXBhbmVsIHNlY3Rpb246
bGFzdC1vZi10eXBlID4gdWwgPiBsaSIpOworfQorCitmdW5jdGlvbiBkdW1wVGV4dFRyYWNrc0xp
c3ROb2Rlcyhtc2cpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKGA9PT0gJHttc2d9ID09
PWApOworICAgIGRlYnVnKCIiKTsKKyAgICBBcnJheS5mcm9tKHRleHRUcmFja3NMaXN0Tm9kZXMo
KSkuZm9yRWFjaChsaSA9PiBkZWJ1ZyhgJHtsaS5jbGFzc0xpc3QuY29udGFpbnMoInNlbGVjdGVk
IikgPyAiW3hdIiA6ICJbLV0ifSAke2xpLnRleHRDb250ZW50fWApKTsKK30KKworYXN5bmMgZnVu
Y3Rpb24gY2xpY2tPblRyYWNrc0J1dHRvbigpCit7CisgICAgYXdhaXQgbmV3IFByb21pc2UocmVx
dWVzdEFuaW1hdGlvbkZyYW1lKTsKKyAgICBjbGlja09uRWxlbWVudChzaGFkb3dSb290Lmxhc3RD
aGlsZC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpOworICAgIGF3YWl0IG5ldyBQcm9t
aXNlKHJlcXVlc3RBbmltYXRpb25GcmFtZSk7Cit9CisKK2Z1bmN0aW9uIGNsaWNrT25UZXh0VHJh
Y2tBdEluZGV4KGluZGV4KQoreworICAgIGNsaWNrT25FbGVtZW50KHRleHRUcmFja3NMaXN0Tm9k
ZXMoKVtpbmRleF0pOworfQorCitmdW5jdGlvbiBjbGlja09uRWxlbWVudChlbGVtZW50KQorewor
ICAgIGNvbnN0IGJvdW5kcyA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYm91bmRzLmxlZnQgKyAxLCBib3VuZHMudG9wICsgMSk7
CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgp
OworfQorCitmdW5jdGlvbiBmaW5pc2hUZXN0KCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgbWVk
aWEucmVtb3ZlKCk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvdHJhY2tzLXN1cHBvcnQtYXV0by10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWRhYzBiNzU1Y2NiYTk4MDY5ODk0MzVlNGZiYjc4NTM1
MDZhZDk3ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJh
Y2tzLXN1cHBvcnQtYXV0by10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDE0ICswLDAgQEAKLUVuc3VyZSB3ZSBoYXZlIHRoZSBBdXRvIHRleHQgdHJhY2sgc2VsZWN0
ZWQgYnkgZGVmYXVsdC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgc2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykgYmVjYW1lIGRpZmZlcmVudCBm
cm9tIG51bGwKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJyku
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKLVBB
U1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykgYmVjYW1lIGRpZmZl
cmVudCBmcm9tIG51bGwKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdsaS5zZWxl
Y3RlZCcpWzFdLnRleHRDb250ZW50IGlzICJBdXRvIChSZWNvbW1lbmRlZCkiCi0KLVBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJh
Y2tzLXN1cHBvcnQtYXV0by10ZXh0LXRyYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtYXV0by10ZXh0
LXRyYWNrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFiM2MzZTYyYzA1ZTk4
YjIwODk1M2QwOGIwNTg2YmMyMzYxOTY4ZTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMiIHR5cGU9InRleHQvamF2YXNj
cmlwdCI+PC9zY3JpcHQ+Ci08Ym9keT4KLTx2aWRlbyBzcmM9Ii4uLy4uL2NvbnRlbnQvQ0MrU3Vi
dGl0bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3
aWR0aDogNjQwcHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgot
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJFbnN1cmUgd2UgaGF2ZSB0aGUgQXV0byB0ZXh0IHRyYWNr
IHNlbGVjdGVkIGJ5IGRlZmF1bHQuIik7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNo
YWRvd1Jvb3QobWVkaWEpOwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4g
ewotICAgIG1lZGlhLnBhdXNlKCk7Ci0KLSAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRv
d1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7Ci0g
ICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdi
dXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsICgpID0+
IHsKLSAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0Q2FwdGlvbkRpc3BsYXlNb2RlKCJh
dXRvbWF0aWMiKTsKLSAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKTsKLSAgICAgICAgICAgIHNob3VsZEJlY29tZURpZmZl
cmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykiLCAibnVsbCIs
ICgpID0+IHsKLSAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvckFsbCgnbGkuc2VsZWN0ZWQnKVsxXS50ZXh0Q29udGVudCIsICJBdXRv
IChSZWNvbW1lbmRlZCkiKTsKLSAgICAgICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAg
ICAgICAgd2luZG93LmludGVybmFscy5zZXRDYXB0aW9uRGlzcGxheU1vZGUoImZvcmNlZG9ubHki
KTsKLSAgICAgICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKLSAgICAgICAgICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0pOwot
Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1jbGljay10
cmFjay1pbi1wYW5lbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJhY2staW4t
cGFuZWwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1Mjk0MTEw
NWJmYTljZWYyNmY3YzMwZjhiOWRjNTMyNjkzZjM1YjJmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1jbGljay10cmFjay1pbi1wYW5l
bC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1DbGlja2luZyBv
biBhIHRyYWNrIGluIHRoZSB0cmFja3MgcGFuZWwuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KLQotCi1tZWRpYS5hdWRpb1RyYWNrc1swXS5lbmFibGVkID0gdHJ1ZQotbWVkaWEuYXVkaW9U
cmFja3NbMV0uZW5hYmxlZCA9IGZhbHNlCi1tZWRpYS5hdWRpb1RyYWNrc1syXS5lbmFibGVkID0g
ZmFsc2UKLQotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBi
ZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3Io
J2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlm
ZmVyZW50IGZyb20gMAotCi1DbGlja2luZyBvbiB0aGUgdHJhY2tzIGJ1dHRvbgotQ2xpY2tpbmcg
b24gc2Vjb25kIGF1ZGlvIHRyYWNrIGluIHRyYWNrcyBwYW5lbAotCi1PYnRhaW5lZCBjaGFuZ2Ug
ZXZlbnQgb24gbWVkaWEgYXVkaW8gdHJhY2tzCi1tZWRpYS5hdWRpb1RyYWNrc1swXS5lbmFibGVk
ID0gZmFsc2UKLW1lZGlhLmF1ZGlvVHJhY2tzWzFdLmVuYWJsZWQgPSB0cnVlCi1tZWRpYS5hdWRp
b1RyYWNrc1syXS5lbmFibGVkID0gZmFsc2UKLQotQ2xpY2tpbmcgb24gdGhlIHRyYWNrcyBidXR0
b24KLUNsaWNraW5nIG9uIHRoaXJkIGF1ZGlvIHRyYWNrIGluIHRyYWNrcyBwYW5lbAotCi1PYnRh
aW5lZCBjaGFuZ2UgZXZlbnQgb24gbWVkaWEgYXVkaW8gdHJhY2tzCi1tZWRpYS5hdWRpb1RyYWNr
c1swXS5lbmFibGVkID0gZmFsc2UKLW1lZGlhLmF1ZGlvVHJhY2tzWzFdLmVuYWJsZWQgPSBmYWxz
ZQotbWVkaWEuYXVkaW9UcmFja3NbMl0uZW5hYmxlZCA9IHRydWUKLQotUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3Vw
cG9ydC1jbGljay10cmFjay1pbi1wYW5lbC5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNr
LWluLXBhbmVsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY1ZTFlYWM5YTcy
MTQ5YzA3ZmE3NTdlZWNlMTk3MjU1MGU2NjBlMGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNrLWluLXBhbmVsLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPGJv
ZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJw
b3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDY0MHB4OyBoZWlnaHQ6
IDM2MHB4OyIgY29udHJvbHMgYXV0b3BsYXk+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlv
bigiQ2xpY2tpbmcgb24gYSB0cmFjayBpbiB0aGUgdHJhY2tzIHBhbmVsLiIpOwotCi1jb25zdCBt
ZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Ci1jb25zdCBzaGFkb3dSb290
ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsKLQotbGV0IHByZXZpb3VzbHlT
ZWxlY3RlZFRyYWNrID0gMDsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+
IHsKLSAgICBtZWRpYS5wYXVzZSgpOwotCi0gICAgZHVtcEF1ZGlvVHJhY2tzRW5hYmxlZFN0YXRl
KCk7Ci0KLSAgICBtZWRpYS5hdWRpb1RyYWNrcy5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCBh
dWRpb1RyYWNrc0RpZENoYW5nZSk7Ci0KLSAgICBkZWJ1ZygiIik7Ci0gICAgc2hvdWxkQmVjb21l
RGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIsICJu
dWxsIiwgKCkgPT4gewotICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndp
ZHRoIiwgIjAiLCAoKSA9PiB7Ci0gICAgICAgICAgICBjbGlja09uVHJhY2tzQnV0dG9uKGNsaWNr
T25TZWNvbmRBdWRpb1RyYWNrKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19KTsKLQotZnVuY3Rp
b24gY2xpY2tPblRyYWNrc0J1dHRvbihjb250aW51YXRpb24pCi17Ci0gICAgd2luZG93LnJlcXVl
c3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgZGVi
dWcoIkNsaWNraW5nIG9uIHRoZSB0cmFja3MgYnV0dG9uIik7Ci0gICAgICAgIGNsaWNrT25FbGVt
ZW50KHNoYWRvd1Jvb3QubGFzdENoaWxkLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSk7
Ci0gICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY29udGludWF0aW9uKTsKLSAg
ICB9KTsKLX0KLQotZnVuY3Rpb24gY2xpY2tPblNlY29uZEF1ZGlvVHJhY2soKQotewotICAgIGRl
YnVnKCJDbGlja2luZyBvbiBzZWNvbmQgYXVkaW8gdHJhY2sgaW4gdHJhY2tzIHBhbmVsIik7Ci0g
ICAgY2xpY2tPbkF1ZGlvVHJhY2tBdEluZGV4KDEpOwotfQotCi1mdW5jdGlvbiBjbGlja09uVGhp
cmRBdWRpb1RyYWNrKCkKLXsKLSAgICBkZWJ1ZygiQ2xpY2tpbmcgb24gdGhpcmQgYXVkaW8gdHJh
Y2sgaW4gdHJhY2tzIHBhbmVsIik7Ci0gICAgY2xpY2tPbkF1ZGlvVHJhY2tBdEluZGV4KDIpOwot
fQotCi1mdW5jdGlvbiBjbGlja09uQXVkaW9UcmFja0F0SW5kZXgoaW5kZXgpCi17Ci0gICAgY2xp
Y2tPbkVsZW1lbnQoc2hhZG93Um9vdC5sYXN0Q2hpbGQucXVlcnlTZWxlY3RvckFsbCgibGkiKVtp
bmRleF0pOwotfQotCi1mdW5jdGlvbiBjbGlja09uRWxlbWVudChlbGVtZW50KQotewotICAgIGNv
bnN0IGJvdW5kcyA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgZXZlbnRT
ZW5kZXIubW91c2VNb3ZlVG8oYm91bmRzLmxlZnQgKyAxLCBib3VuZHMudG9wICsgMSk7Ci0gICAg
ZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotfQot
Ci1mdW5jdGlvbiBhdWRpb1RyYWNrc0RpZENoYW5nZSgpCi17Ci0gICAgY29uc3QgbmV3U2VsZWN0
ZWRUcmFjayA9IEFycmF5LmZyb20obWVkaWEuYXVkaW9UcmFja3MpLmZpbmRJbmRleCh0cmFjayA9
PiB0cmFjay5lbmFibGVkKTsKLSAgICBpZiAocHJldmlvdXNseVNlbGVjdGVkVHJhY2sgPT09IG5l
d1NlbGVjdGVkVHJhY2spCi0gICAgICAgIHJldHVybjsKLQotICAgIHByZXZpb3VzbHlTZWxlY3Rl
ZFRyYWNrID0gbmV3U2VsZWN0ZWRUcmFjazsKLQotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1Zygi
T2J0YWluZWQgY2hhbmdlIGV2ZW50IG9uIG1lZGlhIGF1ZGlvIHRyYWNrcyIpOwotCi0gICAgZHVt
cEF1ZGlvVHJhY2tzRW5hYmxlZFN0YXRlKCk7Ci0KLSAgICBpZiAobWVkaWEuYXVkaW9UcmFja3Nb
MV0uZW5hYmxlZCkKLSAgICAgICAgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIudHJhY2tzLXBh
bmVsIikuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsIGV2ZW50ID0+IGNsaWNrT25U
cmFja3NCdXR0b24oY2xpY2tPblRoaXJkQXVkaW9UcmFjaykpOwotICAgIGVsc2UgaWYgKG1lZGlh
LmF1ZGlvVHJhY2tzWzJdLmVuYWJsZWQpIHsKLSAgICAgICAgZGVidWcoIiIpOwotICAgICAgICBt
ZWRpYS5yZW1vdmUoKTsKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgfQotfQotCi1mdW5j
dGlvbiBkdW1wQXVkaW9UcmFja3NFbmFibGVkU3RhdGUoKQotewotICAgIEFycmF5LmZyb20obWVk
aWEuYXVkaW9UcmFja3MpLmZvckVhY2goKGF1ZGlvVHJhY2ssIGluZGV4KSA9PiB7Ci0gICAgICAg
IGRlYnVnKGBtZWRpYS5hdWRpb1RyYWNrc1ske2luZGV4fV0uZW5hYmxlZCA9ICR7bWVkaWEuYXVk
aW9UcmFja3NbaW5kZXhdLmVuYWJsZWR9YCk7Ci0gICAgfSk7Ci19Ci0KLTwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgot
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10cmFja3MtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10cmFja3MtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3YWQzZmMxOTZiNjU5OTVmM2E3MDRjN2MyMTc4MGY1MzMyNmFi
ODRlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mt
c3VwcG9ydC1oaWRkZW4tdHJhY2tzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIx
ICswLDAgQEAKLVRoaXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgdHJhY2tzIHBhbmVsIGRvZXNuJ3Qg
c2hvdyBhbnkgdHJhY2sgYXMgc2VsZWN0ZWQgaWYgYWxsIHRoZSB0ZXh0IHRyYWNrcyBmb3IgYSBt
ZWRpYSBlbGVtZW50IGFyZSBtYXJrZWQgYXMgImhpZGRlbiIuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KLQotCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNr
cycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxl
Y3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2Ft
ZSBkaWZmZXJlbnQgZnJvbSAwCi0KLT09PSBJbml0aWFsIHN0YXRlID09PQotCi1beF0gT2ZmCi1b
LV0gQXV0byAoUmVjb21tZW5kZWQpCi1bLV0gRW5nbGlzaCBTdWJ0aXRsZXMKLVstXSBGcmVuY2gg
U3VidGl0bGVzCi1bLV0gR2VybWFuIFN1YnRpdGxlcwotWy1dIFNwYW5pc2ggU3VidGl0bGVzCi0K
LVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy5odG1sIGIvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LWhp
ZGRlbi10cmFja3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTYyNzc4NWQ0
YjkxMGJkMTVmNjFhMmY3YzlhYjAwYTBhZDkzYjMxZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxib2R5Pgot
PHZpZGVvIHNyYz0iLi4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRp
b246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiA2NDBweDsgaGVpZ2h0OiAzNjBw
eDsiIGNvbnRyb2xzIGF1dG9wbGF5PjwvdmlkZW8+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oYFRo
aXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgdHJhY2tzIHBhbmVsIGRvZXNuJ3Qgc2hvdyBhbnkgdHJh
Y2sgYXMgc2VsZWN0ZWQgaWYgYWxsIHRoZSB0ZXh0IHRyYWNrcyBmb3IgYSBtZWRpYSBlbGVtZW50
IGFyZSBtYXJrZWQgYXMgImhpZGRlbiIuYCk7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxz
LnNoYWRvd1Jvb3QobWVkaWEpOwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkg
PT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0KLSAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7
Ci0gICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsIHJ1
blRlc3QpOwotICAgIH0pOwotfSk7Ci0KLWFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQotewotICAg
IC8vIFN0YXJ0IGJ5IG1ha2luZyBzdXJlIGFsbCB0cmFja3MgYXJlIG1hcmtlZCBhcyAiaGlkZGVu
Ii4KLSAgICBBcnJheS5mcm9tKG1lZGlhLnRleHRUcmFja3MpLmZvckVhY2godHJhY2sgPT4gdHJh
Y2subW9kZSA9ICJoaWRkZW4iKTsKLQotICAgIC8vIE5leHQsIGJyaW5nIHVwIHRoZSB0cmFja3Mg
bWVudSBieSBjbGlja2luZyBvbiB0aGUgdHJhY2tzIGJ1dHRvbi4KLSAgICBhd2FpdCBjbGlja09u
VHJhY2tzQnV0dG9uKCk7Ci0gICAgLy8gRHVtcCB0aGUgc3RhdGUgb2YgdGhlIHRyYWNrcyBtZW51
IGZvciB0ZXh0IHRyYWNrcywgd2hpY2ggc2hvdWxkIHNob3cgdGhlIGZpcnN0IGVtYmVkZGVkIHRl
eHQgdHJhY2sgYXMgc2VsZWN0ZWQuCi0gICAgZHVtcFRleHRUcmFja3NMaXN0Tm9kZXMoIkluaXRp
YWwgc3RhdGUiKTsKLQotICAgIGZpbmlzaFRlc3QoKTsKLX0KLQotZnVuY3Rpb24gdGV4dFRyYWNr
c0xpc3ROb2RlcygpCi17Ci0gICAgcmV0dXJuIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgi
LnRyYWNrcy1wYW5lbCBzZWN0aW9uOmxhc3Qtb2YtdHlwZSA+IHVsID4gbGkiKTsKLX0KLQotZnVu
Y3Rpb24gZHVtcFRleHRUcmFja3NMaXN0Tm9kZXMobXNnKQotewotICAgIGRlYnVnKCIiKTsKLSAg
ICBkZWJ1ZyhgPT09ICR7bXNnfSA9PT1gKTsKLSAgICBkZWJ1ZygiIik7Ci0gICAgQXJyYXkuZnJv
bSh0ZXh0VHJhY2tzTGlzdE5vZGVzKCkpLmZvckVhY2gobGkgPT4gZGVidWcoYCR7bGkuY2xhc3NM
aXN0LmNvbnRhaW5zKCJzZWxlY3RlZCIpID8gIlt4XSIgOiAiWy1dIn0gJHtsaS50ZXh0Q29udGVu
dH1gKSk7Ci19Ci0KLWFzeW5jIGZ1bmN0aW9uIGNsaWNrT25UcmFja3NCdXR0b24oKQotewotICAg
IGF3YWl0IG5ldyBQcm9taXNlKHJlcXVlc3RBbmltYXRpb25GcmFtZSk7Ci0gICAgY2xpY2tPbkVs
ZW1lbnQoc2hhZG93Um9vdC5sYXN0Q2hpbGQucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIp
KTsKLSAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOwotfQotCi1m
dW5jdGlvbiBjbGlja09uRWxlbWVudChlbGVtZW50KQotewotICAgIGNvbnN0IGJvdW5kcyA9IGVs
ZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8oYm91bmRzLmxlZnQgKyAxLCBib3VuZHMudG9wICsgMSk7Ci0gICAgZXZlbnRTZW5kZXIubW91
c2VEb3duKCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotfQotCi1mdW5jdGlvbiBmaW5p
c2hUZXN0KCkKLXsKLSAgICBkZWJ1ZygiIik7Ci0gICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAgZmlu
aXNoSlNUZXN0KCk7Ci19Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNr
cy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1vZmYt
dGV4dC10cmFjay1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZi
M2UzMTgwNWRlZTgyN2Y4YjdlOGFmMTFhMGZiYjk2NTA1ZTgxN2QuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNr
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLUVuc3VyZSB3ZSBo
YXZlIHRoZSBPZmYgdGV4dCB0cmFjayBzZWxlY3RlZCBieSBkZWZhdWx0LgotCi1PbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRv
bi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFTUyBzaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0
aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3Io
Jy50cmFja3MtcGFuZWwnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFTUyBzaGFkb3dS
b290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpLnNlbGVjdGVkJylbMV0udGV4dENvbnRlbnQgaXMgIk9m
ZiIKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay5odG1sIGIvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBw
b3J0LW9mZi10ZXh0LXRyYWNrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVj
YjlkNmU0ZTI4YWJlOGQ4YjhmMzUzOTdiNGVkODI4OWI4ODJlZDYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNr
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyIgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4vLi4vY29u
dGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAw
OyB0b3A6IDA7IHdpZHRoOiA2NDBweDsgaGVpZ2h0OiAzNjBweDsiIGNvbnRyb2xzIGF1dG9wbGF5
PjwvdmlkZW8+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIkVuc3VyZSB3ZSBoYXZlIHRoZSBPZmYg
dGV4dCB0cmFjayBzZWxlY3RlZCBieSBkZWZhdWx0LiIpOwotCi1jb25zdCBtZWRpYSA9IGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Ci1jb25zdCBzaGFkb3dSb290ID0gd2luZG93Lmlu
dGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxh
eSIsICgpID0+IHsKLSAgICBtZWRpYS5wYXVzZSgpOwotCi0gICAgc2hvdWxkQmVjb21lRGlmZmVy
ZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIsICJudWxsIiwg
KCkgPT4gewotICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIiwg
IjAiLCAoKSA9PiB7Ci0gICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5
U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSk7Ci0gICAgICAgICAgICBzaG91bGRCZWNvbWVEaWZm
ZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpIiwgIm51bGwi
LCAoKSA9PiB7Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzaGFkb3dS
b290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpLnNlbGVjdGVkJylbMV0udGV4dENvbnRlbnQiLCAiT2Zm
Iik7Ci0gICAgICAgICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAgICAgICAgIG1lZGlhLnJl
bW92ZSgpOwotICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICAgICAgfSk7
Ci0gICAgICAgIH0pOwotICAgIH0pOwotfSk7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1z
dXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC90cmFja3Mtc3VwcG9ydC1zaG93LWFuZC1wb3B1bGF0ZS1wYW5lbC1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA1MmQ2Y2IxOTg3ODgwNTg5Y2EwZWM4YWRlMDAw
NzExN2IzYWQ1MDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVNob3dpbmcgYW5kIHBvcHVsYXRpbmcgdGhlIHRy
YWNrcyBwYW5lbC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUF1ZGlvCi0gIEVu
Z2xpc2ggU291bmQKLSAgRnJlbmNoIFNvdW5kCi0gIFNwYW5pc2ggU291bmQKLQotU3VidGl0bGVz
Ci0gIE9mZgotICBBdXRvIChSZWNvbW1lbmRlZCkKLSAgRW5nbGlzaCBTdWJ0aXRsZXMKLSAgRnJl
bmNoIFN1YnRpdGxlcwotICBHZXJtYW4gU3VidGl0bGVzCi0gIFNwYW5pc2ggU3VidGl0bGVzCi0K
LVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvdHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQtcG9wdWxhdGUtcGFuZWwuaHRtbCBiL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mt
c3VwcG9ydC1zaG93LWFuZC1wb3B1bGF0ZS1wYW5lbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwM2IzYTJiMDIwNzZkMTE1MzViYjBiZjI1YjAyZGYwN2ZmZmY5MjE0Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1z
aG93LWFuZC1wb3B1bGF0ZS1wYW5lbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4vLi4vY29udGVudC9D
QytTdWJ0aXRsZXMubW92IiBzdHlsZT0id2lkdGg6IDY0MHB4OyBoZWlnaHQ6IDM2MHB4OyIgY29u
dHJvbHMgYXV0b3BsYXk+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
LQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigiU2hvd2luZyBh
bmQgcG9wdWxhdGluZyB0aGUgdHJhY2tzIHBhbmVsLiIpOwotCi1jb25zdCBtZWRpYSA9IGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Ci1jb25zdCBzaGFkb3dSb290ID0gd2luZG93Lmlu
dGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxh
eSIsICgpID0+IHsKLSAgICBtZWRpYS5wYXVzZSgpOwotICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0
aW9uRnJhbWUoKCkgPT4gewotICAgICAgICBjbGlja09uVHJhY2tzQnV0dG9uKCk7Ci0gICAgICAg
IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewotICAgICAgICAgICAgbGlzdENv
bnRlbnRzT2ZUcmFja3NQYW5lbCgpOwotICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19KTsKLQotZnVu
Y3Rpb24gY2xpY2tPblRyYWNrc0J1dHRvbigpCi17Ci0gICAgY29uc3QgYm91bmRzID0gc2hhZG93
Um9vdC5sYXN0Q2hpbGQucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpLmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGJvdW5kcy5sZWZ0ICsg
MSwgYm91bmRzLnRvcCArIDEpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwotICAgIGV2
ZW50U2VuZGVyLm1vdXNlVXAoKTsKLX0KLQotZnVuY3Rpb24gbGlzdENvbnRlbnRzT2ZUcmFja3NQ
YW5lbCgpCi17Ci0gICAgZm9yIChsZXQgc2VjdGlvbiBvZiBzaGFkb3dSb290Lmxhc3RDaGlsZC5x
dWVyeVNlbGVjdG9yQWxsKCJzZWN0aW9uIikpIHsKLSAgICAgICAgZGVidWcoc2VjdGlvbi5xdWVy
eVNlbGVjdG9yKCJoMyIpLnRleHRDb250ZW50KTsKLSAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBz
ZWN0aW9uLnF1ZXJ5U2VsZWN0b3JBbGwoImxpIikpCi0gICAgICAgICAgICBkZWJ1ZygiICAiICsg
aXRlbS50ZXh0Q29udGVudCk7Ci0gICAgICAgIGRlYnVnKCIiKTsKLSAgICB9Ci19Ci0KLTwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0
ZXItZHJhZ2dpbmctY29udHJvbHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFu
ZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJvbHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwOTg0MzBiZjM4ZjEyNjYwYjhlZmNjNzk2MTZlZjE4NGI1MTA4NGU5Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9y
dC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xzLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDE0ICswLDAgQEAKLVRlc3RpbmcgdGhlIGRpc3BsYXkgb2YgYSB0cmFja3Mg
cGFuZWwgYWZ0ZXIgZHJhZ2dpbmcgdGhlIGNvbnRyb2xzIGJhciBpbiBmdWxsc2NyZWVuLgotCi1P
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3IoJ2J1dHRvbi5mdWxsc2NyZWVuJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgYmVjYW1lIGRp
ZmZlcmVudCBmcm9tIDAKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJh
Y2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKLVBB
U1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCkucmlnaHQgaXMgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBh
bmVsJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQKLVBBU1Mgc2hhZG93Um9vdC5xdWVy
eVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykuc3R5bGUuYm90dG9tIGlzICIxNTFweCIKLQotUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
dHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1hZnRlci1kcmFnZ2luZy1jb250cm9scy5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYWVkYTk4NTE3MWFkNDFjYjZmNjRmODRkODM4
NDg3YjdkODI4NGYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xzLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyIgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4vLi4vY29udGVudC9D
QytTdWJ0aXRsZXMubW92IiBzdHlsZT0id2lkdGg6IDMyMHB4OyBoZWlnaHQ6IDI0MHB4OyIgY29u
dHJvbHMgYXV0b3BsYXk+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
LQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigiVGVzdGluZyB0
aGUgZGlzcGxheSBvZiBhIHRyYWNrcyBwYW5lbCBhZnRlciBkcmFnZ2luZyB0aGUgY29udHJvbHMg
YmFyIGluIGZ1bGxzY3JlZW4uIik7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRv
d1Jvb3QobWVkaWEpOwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRiZWdpbmZ1bGxz
Y3JlZW4iLCAoKSA9PiB7Ci0gICAgZGVidWcoIndlYmtpdGJlZ2luZnVsbHNjcmVlbiIpOwotfSk7
Ci0KLW1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UiLCAoKSA9
PiB7Ci0gICAgaWYgKCFtZWRpYS53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbikKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAg
ICAgIGNvbnN0IGJvdW5kcyA9IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvbnRyb2xzLWJh
ciIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgICAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbyhib3VuZHMubGVmdCArIDExOCwgYm91bmRzLnRvcCArIDEwKTsKLSAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VEb3duKCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGJvdW5k
cy5sZWZ0ICsgNjgsIGJvdW5kcy50b3AgLSA0MCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsKLQotICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewotICAgICAgICAg
ICAgY2xpY2tPbkJ1dHRvbigidHJhY2tzIiwgKCkgPT4gewotICAgICAgICAgICAgICAgIHJlcXVl
c3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJz
aGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKS5yaWdodCIsICJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwn
KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCIpCi0gICAgICAgICAgICAgICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBh
bmVsJykuc3R5bGUuYm90dG9tIiwgIjE1MXB4Iik7Ci0KLSAgICAgICAgICAgICAgICAgICAgZGVi
dWcoIiIpOwotICAgICAgICAgICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKLSAgICAgICAgICAg
ICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19KTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5l
cigicGxheSIsICgpID0+IHsKLSAgICBtZWRpYS5wYXVzZSgpOwotICAgIHdpbmRvdy5yZXF1ZXN0
QW5pbWF0aW9uRnJhbWUoKCkgPT4gY2xpY2tPbkJ1dHRvbigiZnVsbHNjcmVlbiIpKTsKLX0pOwot
Ci1mdW5jdGlvbiBjbGlja09uQnV0dG9uKG5hbWUsIGNvbnRpbnVhdGlvbikKLXsKLSAgICBzaG91
bGRCZWNvbWVEaWZmZXJlbnQoYHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLiR7bmFt
ZX0nKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKWAsICIwIiwgKCkgPT4gewotICAgICAgICBwcmVz
c09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoYGJ1dHRvbi4ke25hbWV9YCksIGNv
bnRpbnVhdGlvbik7Ci0gICAgfSk7Ci19Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtZnVsbHNjcmVlbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJh
Y2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1mdWxsc2NyZWVuLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNzUxNTI1NTA0MjgwOGRjNmYzZDFkOWFhNzEzZTYxNmU1Mjk3
NWVhMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tz
LXN1cHBvcnQtc2hvdy1wYW5lbC1mdWxsc2NyZWVuLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDE5ICswLDAgQEAKLVNob3dpbmcgdGhlIHRyYWNrcyBwYW5lbCBpbiBmdWxsc2NyZWVu
LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBpbnRlcm5hbHMuc2hhZG93
Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcigiYnV0dG9uLmZ1bGxzY3JlZW4iKSBiZWNhbWUgZGlm
ZmVyZW50IGZyb20gbnVsbAotUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlT
ZWxlY3RvcigiYnV0dG9uLmZ1bGxzY3JlZW4iKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0
aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAotUEFTUyBtZWRpYS53ZWJraXREaXNwbGF5aW5nRnVs
bHNjcmVlbiBiZWNhbWUgdHJ1ZQotUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVl
cnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1Q
QVNTIGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJh
Y2tzIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9t
IDAKLVBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRv
bi50cmFja3MiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCBiZWNhbWUgNTgyCi1QQVNT
IGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVs
JykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3Qo
bWVkaWEpLnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5zdHlsZS5yaWdodCBpcyAiMjE4
cHgiCi1QQVNTIGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCcudHJh
Y2tzLXBhbmVsJykuc3R5bGUuYm90dG9tIGlzICIxMDFweCIKLQotUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9y
dC1zaG93LXBhbmVsLWZ1bGxzY3JlZW4uaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1
bGxzY3JlZW4uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGMwMzk2NWQ5NWQz
ODZlZWNkZjc2YTk1NmI4MTkwOWU2YzY2NzRhYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1mdWxsc2NyZWVuLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyIgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4vLi4vY29udGVu
dC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0id2lkdGg6IDMyMHB4OyBoZWlnaHQ6IDI0MHB4OyIg
Y29udHJvbHMgYXV0b3BsYXk+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigiU2hvd2lu
ZyB0aGUgdHJhY2tzIHBhbmVsIGluIGZ1bGxzY3JlZW4uIik7Ci0KLXNldFRpbWVvdXQoKCkgPT4g
ewotICAgIGRlYnVnKCJGQUlMOiBkaWQgbm90IGVuZCBmYXN0IGVub3VnaCIpOwotICAgIGZpbmlz
aEpTVGVzdCgpOwotfSwgMTAwMDApOwotCi1jb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoInZpZGVvIik7Ci0KLW1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdGZ1bGxzY3Jl
ZW5jaGFuZ2UiLCAoKSA9PiB7Ci0gICAgc2hvdWxkQmVjb21lRXF1YWwoIm1lZGlhLndlYmtpdERp
c3BsYXlpbmdGdWxsc2NyZWVuIiwgInRydWUiLCAoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlY29t
ZURpZmZlcmVudChgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1
dHRvbi50cmFja3MiKWAsICJudWxsIiwgKCkgPT4gewotICAgICAgICAgICAgc2hvdWxkQmVjb21l
RGlmZmVyZW50KGBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcigiYnV0
dG9uLnRyYWNrcyIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoYCwgIjAiLCAoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgc2hvdWxkQmVjb21lRXF1YWwoYGludGVybmFscy5zaGFkb3dSb290
KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikuZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCkucmlnaHRgLCAiNTgyIiwgKCkgPT4gewotICAgICAgICAgICAgICAgICAgICBwcmVzc09u
RWxlbWVudChpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcigiYnV0dG9u
LnRyYWNrcyIpKTsKLSAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KGBp
bnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcp
YCwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCcudHJh
Y2tzLXBhbmVsJykuc3R5bGUucmlnaHQiLCAiMjE4cHgiKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1
ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5zdHlsZS5ib3R0b20iLCAiMTAxcHgiKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IG1lZGlhLnJlbW92ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7
Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAg
ICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfSk7Ci0KLW1lZGlhLmFkZEV2ZW50TGlzdGVu
ZXIoInBsYXkiLCAoKSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLSAgICBzaG91bGRCZWNvbWVE
aWZmZXJlbnQoYGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0
b24uZnVsbHNjcmVlbiIpYCwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlY29tZURp
ZmZlcmVudChgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRv
bi5mdWxsc2NyZWVuIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGhgLCAiMCIsICgpID0+
IHsKLSAgICAgICAgICAgIHByZXNzT25FbGVtZW50KGludGVybmFscy5zaGFkb3dSb290KG1lZGlh
KS5xdWVyeVNlbGVjdG9yKGBidXR0b24uZnVsbHNjcmVlbmApKTsKLSAgICAgICAgfSk7Ci0gICAg
fSk7Ci19KTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBv
cnQtc2hvdy1wYW5lbC10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNr
cy1idXR0b24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OGJk
Nzc4YzI4MjJmODNmNGNmZThlMTM0MTUyZjA3YTI0YzE0NmFhLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRoZW4t
ZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMTUgKzAsMCBAQAotRW5zdXJlIHRoYXQgZG91YmxlLWNsaWNraW5nIHRoZSB0cmFja3Mg
YnV0dG9uIHdoZW4gdGhlIHRyYWNrcyBwYW5lbCBtYWtlcyB0aGUgcGFuZWwgYXBwZWFyIGFnYWlu
LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotTWVkaWEgc3RhcnRlZCBwbGF5aW5n
Ci1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBk
aWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9u
LnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQg
ZnJvbSAwCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpIGJl
Y2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcign
LnRyYWNrcy1wYW5lbCcpIGlzIG5vdCBudWxsCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtc2hvdy1w
YW5lbC10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWwgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBv
cnQtc2hvdy1wYW5lbC10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4NTY0MTljMjliYzMyOWJlOTljYjk2MjJjZDky
YTQzNTkzODFmMjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1
dHRvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMiIHR5
cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08Ym9keT4KLTx2aWRlbyBzcmM9Ii4uLy4u
L2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVm
dDogMDsgdG9wOiAwOyB3aWR0aDogNjQwcHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBhdXRv
cGxheT48L3ZpZGVvPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJFbnN1cmUgdGhhdCBkb3VibGUt
Y2xpY2tpbmcgdGhlIHRyYWNrcyBidXR0b24gd2hlbiB0aGUgdHJhY2tzIHBhbmVsIG1ha2VzIHRo
ZSBwYW5lbCBhcHBlYXIgYWdhaW4uIik7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNo
YWRvd1Jvb3QobWVkaWEpOwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4g
ewotICAgIG1lZGlhLnBhdXNlKCk7Ci0KLSAgICBkZWJ1ZygiTWVkaWEgc3RhcnRlZCBwbGF5aW5n
Iik7Ci0gICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3Io
J2J1dHRvbi50cmFja3MnKSIsICJudWxsIiwgKCkgPT4gewotICAgICAgICBzaG91bGRCZWNvbWVE
aWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIiwgIjAiLCAoKSA9PiB7Ci0gICAgICAgICAgICBwcmVz
c09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSk7Ci0g
ICAgICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cignLnRyYWNrcy1wYW5lbCcpIiwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAgICAgICAgICAgcHJl
c3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpOwot
ICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9u
LnRyYWNrcyIpKTsKLSAgICAgICAgICAgICAgICAgICAgLy8gR2l2ZSB0aGUgdHJhbnNpdGlvbmVu
ZCBldmVudCB0aW1lIHRvIGZpcmUgaWYgaXQgd2VyZSB0byBoYXBwZW4sIHdoaWNoIGl0IHNob3Vs
ZCBub3QuCi0gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewotICAgICAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkTm90QmUoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRy
YWNrcy1wYW5lbCcpIiwgIm51bGwiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKCIi
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgICAgICAgICAgICAgIH0sIDUwMCk7
Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAg
fSk7Ci19KTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBv
cnQtdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mt
c3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGktZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YzhjNzM0NTYwYmU4ODhlMmU0OGUxOWZlNWFk
M2Q2NWM1MTkzYTUzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGktZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNrcyB0
aGF0IHNldHRpbmcgYW4gZW1iZWRkZWQgdGV4dCB0cmFjayBhcyBzZWxlY3RlZCB2aWEgdGhlIEhU
TUxNZWRpYUVsZW1lbnQgSlMgQVBJcyB3aWxsIGNvcnJlY3RseSBzaG93IHRoaXMgdHJhY2sgYXMg
c2VsZWN0ZWQsIGFuZCB0aGF0IHNlbGVjdGluZyB0aGUgIkF1dG9tYXRpYyAoUmVjb21tZW5kZWQp
IiB0cmFjayB3aWxsIHJldmVydCBiYWNrIHRvIHNlbGVjdGluZyB0aGF0IGVudHJ5LgotCi1PbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3Io
J2J1dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFTUyBzaGFkb3dS
b290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAotCi09PT0gSW5pdGlhbCBzdGF0ZSA9PT0K
LQotWy1dIE9mZgotWy1dIEF1dG8gKFJlY29tbWVuZGVkKQotW3hdIEVuZ2xpc2ggU3VidGl0bGVz
Ci1bLV0gRnJlbmNoIFN1YnRpdGxlcwotWy1dIEdlcm1hbiBTdWJ0aXRsZXMKLVstXSBTcGFuaXNo
IFN1YnRpdGxlcwotCi09PT0gQWZ0ZXIgcGlja2luZyBhdXRvIHRyYWNrIGludGVyYWN0aXZlbHkg
PT09Ci0KLVstXSBPZmYKLVt4XSBBdXRvIChSZWNvbW1lbmRlZCkKLVstXSBFbmdsaXNoIFN1YnRp
dGxlcwotWy1dIEZyZW5jaCBTdWJ0aXRsZXMKLVstXSBHZXJtYW4gU3VidGl0bGVzCi1bLV0gU3Bh
bmlzaCBTdWJ0aXRsZXMKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNU
IENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVk
LXZpYS1tZWRpYS1hcGkuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZp
YS1tZWRpYS1hcGkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTIzNGNiOTAx
NTI4NmM4ZWJlNjRkZDYyOWJlMTg5YzI2YzkzNTI3Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3RlZC12
aWEtbWVkaWEtYXBpLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4OCArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi9jb250ZW50L0NDK1N1YnRpdGxl
cy5tb3YiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6
IDY0MHB4OyBoZWlnaHQ6IDM2MHB4OyIgY29udHJvbHMgYXV0b3BsYXk+PC92aWRlbz4KLTxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVl
OwotCi1kZXNjcmlwdGlvbihgVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHNldHRpbmcgYW4gZW1iZWRk
ZWQgdGV4dCB0cmFjayBhcyBzZWxlY3RlZCB2aWEgdGhlIEhUTUxNZWRpYUVsZW1lbnQgSlMgQVBJ
cyB3aWxsIGNvcnJlY3RseSBzaG93IHRoaXMgdHJhY2sgYXMgc2VsZWN0ZWQsIGFuZCB0aGF0IHNl
bGVjdGluZyB0aGUgCi0iQXV0b21hdGljIChSZWNvbW1lbmRlZCkiIHRyYWNrIHdpbGwgcmV2ZXJ0
IGJhY2sgdG8gc2VsZWN0aW5nIHRoYXQgZW50cnkuYCk7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50
ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5
IiwgKCkgPT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0KLSAgICBzaG91bGRCZWNvbWVEaWZmZXJl
bnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAo
KSA9PiB7Ci0gICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNl
bGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAi
MCIsIHJ1blRlc3QpOwotICAgIH0pOwotfSk7Ci0KLWFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQot
ewotICAgIC8vIFN0YXJ0IGJ5IHNlbGVjdGluZyBvbmUgb2YgdGhlIHRleHQgdHJhY2tzIHVzaW5n
IHRoZSBtZWRpYSBKUyBBUEkuCi0gICAgLy8gVGhpcyB3aWxsIGNhdXNlIHRleHRUcmFja3NEaWRD
aGFuZ2UgdG8gYmUgY2FsbGVkIGZvciB0aGUgZmlyc3QgdGltZS4KLSAgICBtZWRpYS50ZXh0VHJh
Y2tzWzBdLm1vZGUgPSAic2hvd2luZyI7Ci0KLSAgICAvLyBOZXh0LCBicmluZyB1cCB0aGUgdHJh
Y2tzIG1lbnUgYnkgY2xpY2tpbmcgb24gdGhlIHRyYWNrcyBidXR0b24uCi0gICAgYXdhaXQgY2xp
Y2tPblRyYWNrc0J1dHRvbigpOwotICAgIC8vIER1bXAgdGhlIHN0YXRlIG9mIHRoZSB0cmFja3Mg
bWVudSBmb3IgdGV4dCB0cmFja3MsIHdoaWNoIHNob3VsZCBzaG93IHRoZSBmaXJzdCBlbWJlZGRl
ZCB0ZXh0IHRyYWNrIGFzIHNlbGVjdGVkLgotICAgIGR1bXBUZXh0VHJhY2tzTGlzdE5vZGVzKCJJ
bml0aWFsIHN0YXRlIik7Ci0gICAgLy8gTm93LCBzZWxlY3QgdGhlICJBdXRvbWF0aWMgKFJlY29t
bWVuZGVkKSIgdGV4dCB0cmFjay4gCi0gICAgYXdhaXQgY2xpY2tPblRleHRUcmFja0F0SW5kZXgo
MSk7Ci0gICAgLy8gV2FpdCBmb3IgdGhlIHNlbGVjdGlvbiB0byBoYXZlIGdvbmUgdGhyb3VnaCBh
bmQgdGhlIHBhbmVsIHRvIGhhdmUgdHJhbnNpdGlvbmVkIG91dCBvZiB2aWV3LgotICAgIGF3YWl0
IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIudHJhY2tz
LXBhbmVsIikuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsIHJlc29sdmUsIHsgb25j
ZTogdHJ1ZSB9KSk7Ci0KLSAgICAvLyBOb3csIGJyaW5nIHVwIHRoZSB0cmFja3MgbWVudSBhZ2Fp
biBieSBjbGlja2luZyBvbiB0aGUgdHJhY2tzIGJ1dHRvbi4KLSAgICBhd2FpdCBjbGlja09uVHJh
Y2tzQnV0dG9uKCk7Ci0gICAgLy8gRHVtcCB0aGUgc3RhdGUgb2YgdGhlIHRyYWNrcyBtZW51IGZv
ciB0ZXh0IHRyYWNrcywgd2hpY2ggc2hvdWxkIG5vdyBzaG93ICJBdXRvbWF0aWMgKFJlY29tbWVu
ZGVkKSIgYXMgc2VsZWN0ZWQuCi0gICAgZHVtcFRleHRUcmFja3NMaXN0Tm9kZXMoIkFmdGVyIHBp
Y2tpbmcgYXV0byB0cmFjayBpbnRlcmFjdGl2ZWx5Iik7Ci0KLSAgICBmaW5pc2hUZXN0KCk7Ci19
Ci0KLWZ1bmN0aW9uIHRleHRUcmFja3NMaXN0Tm9kZXMoKQotewotICAgIHJldHVybiBzaGFkb3dS
b290LnF1ZXJ5U2VsZWN0b3JBbGwoIi50cmFja3MtcGFuZWwgc2VjdGlvbjpsYXN0LW9mLXR5cGUg
PiB1bCA+IGxpIik7Ci19Ci0KLWZ1bmN0aW9uIGR1bXBUZXh0VHJhY2tzTGlzdE5vZGVzKG1zZykK
LXsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoYD09PSAke21zZ30gPT09YCk7Ci0gICAgZGVi
dWcoIiIpOwotICAgIEFycmF5LmZyb20odGV4dFRyYWNrc0xpc3ROb2RlcygpKS5mb3JFYWNoKGxp
ID0+IGRlYnVnKGAke2xpLmNsYXNzTGlzdC5jb250YWlucygic2VsZWN0ZWQiKSA/ICJbeF0iIDog
IlstXSJ9ICR7bGkudGV4dENvbnRlbnR9YCkpOwotfQotCi1hc3luYyBmdW5jdGlvbiBjbGlja09u
VHJhY2tzQnV0dG9uKCkKLXsKLSAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXF1ZXN0QW5pbWF0aW9u
RnJhbWUpOwotICAgIGNsaWNrT25FbGVtZW50KHNoYWRvd1Jvb3QubGFzdENoaWxkLnF1ZXJ5U2Vs
ZWN0b3IoImJ1dHRvbi50cmFja3MiKSk7Ci0gICAgYXdhaXQgbmV3IFByb21pc2UocmVxdWVzdEFu
aW1hdGlvbkZyYW1lKTsKLX0KLQotZnVuY3Rpb24gY2xpY2tPblRleHRUcmFja0F0SW5kZXgoaW5k
ZXgpCi17Ci0gICAgY2xpY2tPbkVsZW1lbnQodGV4dFRyYWNrc0xpc3ROb2RlcygpW2luZGV4XSk7
Ci19Ci0KLWZ1bmN0aW9uIGNsaWNrT25FbGVtZW50KGVsZW1lbnQpCi17Ci0gICAgY29uc3QgYm91
bmRzID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbyhib3VuZHMubGVmdCArIDEsIGJvdW5kcy50b3AgKyAxKTsKLSAgICBldmVudFNl
bmRlci5tb3VzZURvd24oKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci19Ci0KLWZ1bmN0
aW9uIGZpbmlzaFRlc3QoKQotewotICAgIGRlYnVnKCIiKTsKLSAgICBtZWRpYS5yZW1vdmUoKTsK
LSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDJkZmExMDRjZjFjYzY2NTI2
NDBmODE2YWYzOTA3Nzg3NmI5Y2E3OWYuLjgzZGE1ZTY1MDFjMTQ3MjZiMDAxOTc3NmM4ZWIzNTM3
NzgxZjA5ZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBA
IC0xMjYyLDYgKzEyNjIsNyBAQCBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtZG9j
dW1lbnRzL21lZGlhLWRvY3VtZW50LWF1ZGlvLWlvcy1zaXppbmcuaHRtbAogbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL21lZGlhLWRvY3VtZW50cy9tZWRpYS1kb2N1bWVudC12aWRlby1pcGhv
bmUtc2l6aW5nLmh0bWwgWyBTa2lwIF0KIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRp
YS1kb2N1bWVudHMvbWVkaWEtZG9jdW1lbnQtdmlkZW8taXBhZC1zaXppbmcuaHRtbCBbIFNraXAg
XQogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3NjcnViYmVyLXN1cHBvcnQvaXBhZCBbIFNr
aXAgXQorbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcyBbIFNr
aXAgXQogCiAjIFRoZXNlIHRlc3RzIGFyZSB0aW1pbmctcmVsYXRlZCBhbmQgY2FuIGZhaWwgZHVl
IHRvIHBlcmZvcm1hbmNlIGlzc3VlcyBvbiBib3RzCiB3ZWJraXQub3JnL2IvMTY5ODc2IG1lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRyb2xsZXIt
YXV0by1oaWRlLW1vdXNlLWVudGVyLWFuZC1tb3VzZS1sZWF2ZS5odG1sIFsgUGFzcyBUaW1lb3V0
IF0KQEAgLTEyNzcsNyArMTI3OCw3IEBAIHdlYmtpdC5vcmcvYi8xNzgxMjcgbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxlCiAjIG9uIGlP
UywgYW5kIHRoZSBidWcgaXQgd2FzIGNyZWF0ZWQgdG8gcmVncmVzc2lvbi10ZXN0IHdhcyBpT1Mt
b25seSwgc28gdGhlcmUgaXMgbm8gaHVycnkgdG8gbWFrZSBpdCB3b3JrIG9uIE1hYy4KIG1lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1kb2N1bWVudHMvYmFja2dyb3VuZC1jb2xvci1h
bmQtY2VudGVyaW5nLmh0bWwgWyBQYXNzIEltYWdlT25seUZhaWx1cmUgXQogCi13ZWJraXQub3Jn
L2IvMTY5MTU4IG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFj
a3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xzLmh0bWwgWyBTa2lw
IF0KK3dlYmtpdC5vcmcvYi8xNjkxNTggbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNv
bnRyb2xzLmh0bWwgWyBTa2lwIF0KIAogd2Via2l0Lm9yZy9iLzE3ODA4MyBtZWRpYS9tZWRpYS1z
b3VyY2UvbWVkaWEtc291cmNlLXBhaW50LXRvLWNhbnZhcy5odG1sIFsgRmFpbHVyZSBdCiAKQEAg
LTE4NDAsNyArMTg0MSw3IEBAIHdlYmtpdC5vcmcvYi8yMTAwNDYgWyBSZWxlYXNlIF0gc3RvcmFn
ZS9pbmRleGVkZGIvdmFsdWUtY3Vyc29yLWN5Y2xlLmh0bWwgWyBQYXNzCiAKIHdlYmtpdC5vcmcv
Yi8yMDcxNjAgY3NzMi4xLzIwMTEwMzIzL3JlcGxhY2VkLWludHJpbnNpYy1yYXRpby0wMDEuaHRt
IFsgUGFzcyBGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzE4MjU3MSBbIERlYnVnIF0gbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ct
cGFuZWwtZnVsbHNjcmVlbi5odG1sIFsgUGFzcyBUaW1lb3V0IF0KK3dlYmtpdC5vcmcvYi8xODI1
NzEgWyBEZWJ1ZyBdIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9t
YWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1mdWxsc2NyZWVuLmh0bWwgWyBQYXNzIFRpbWVv
dXQgXQogCiAjIENlcnRhaW4gdmVyc2lvbnMgb2YgbWFjT1MgdXNlIGRpZmZlcmVudCB0ZXh0IHNl
Y3VyaXR5IGNoYXJhY3RlcnMuCiB3ZWJraXQub3JnL2IvMjA5NjkyIFsgTW9qYXZlIENhdGFsaW5h
IF0gcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC90ZXh0LXNlY3VyaXR5LWRpc2MtYnVsbGV0LXB1YS1t
YWMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419680</attachid>
            <date>2021-02-08 23:18:53 -0800</date>
            <delta_ts>2021-02-09 12:20:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221594-20210209001852.patch</filename>
            <type>text/plain</type>
            <size>172456</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggODlmNmZjMTI4OTM5MDdjZGQ4NjRmZjY3MzhkYzU5NTQxOTA1YzJjYi4uYzhkNDU4ZDlk
OWZiOWJkYjhkNzQ0ZjYwOTg3MDYzMjdkNWU3MDkyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAy
MS0wMi0wOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lP
U10gQWRkIHN1cHBvcnQgZm9yIHRoZSBsYW5ndWFnZS9zdWJ0aXRsZSB0cmFja3MgYnV0dG9uIHVz
aW5nIGBVSU1lbnVgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjE1OTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc0MTI5MTI5PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJl
bmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sOgorICAgICAgICBDcmVhdGUgYSBgTWVkaWFDb250cm9s
c0NvbnRleHRNZW51c0VuYWJsZWRgIHNldHRpbmcgZm9yIGd1YXJkaW5nIGFuIElETCBob29rIHRv
IFdLMiBvbmx5LgorCiAyMDIxLTAyLTA2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgTm9uLXNwZWNpYWwgVVJMcyBzaG91bGQgaGF2ZSBhbiBv
cGFxdWUgb3JpZ2luCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDkwZTU0Yzk1YjhhMWYwNTI1ODYyMDI0MjVmZjc0
MDdhNTAyODUxOS4uNjRhYWJkZmE5MDVhMmE5MzcxMDFlMmZhYmY4ODMyMzkxMTI2MjEyZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTAyLTA4ICBEZXZpbiBSb3Vzc28gIDxkcm91
c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBBZGQgc3VwcG9ydCBmb3IgdGhlIGxhbmd1
YWdlL3N1YnRpdGxlIHRyYWNrcyBidXR0b24gdXNpbmcgYFVJTWVudWAKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTU5NAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNzQxMjkxMjk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdHM6IG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtYXV0by10ZXh0LXRyYWNrLmh0bWwKKyAgICAgICAgICAg
ICAgIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tz
LXN1cHBvcnQtY2xpY2stdHJhY2staW4tY29udGV4dG1lbnUuaHRtbAorICAgICAgICAgICAgICAg
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3Vw
cG9ydC1oaWRkZW4tdHJhY2tzLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJh
Y2suaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1zaG93LWNvbnRleHRtZW51LXRoZW4tZG91Ymxl
LWNsaWNrLW9uLXRyYWNrcy1idXR0b24uaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC10ZXh0LXRy
YWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1hdXRv
LXRleHQtdHJhY2suaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1jbGljay10cmFjay1pbi1wYW5l
bC5odG1sCisgICAgICAgICAgICAgICBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10cmFja3MuaHRtbAorICAgICAgICAg
ICAgICAgbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFj
a3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay5odG1sCisgICAgICAgICAgICAgICBtZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ct
YW5kLXBvcHVsYXRlLXBhbmVsLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1h
ZnRlci1kcmFnZ2luZy1jb250cm9scy5odG1sCisgICAgICAgICAgICAgICBtZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFu
ZWwtZnVsbHNjcmVlbi5odG1sCisgICAgICAgICAgICAgICBtZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtdGhlbi1k
b3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi5odG1sCisgICAgICAgICAgICAgICBtZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXRl
eHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS5odG1sCisKKyAgICAgICAgKiBwYWdlL01l
ZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6ZGVjb2RlKToKKyAgICAgICAgU2lt
cGxlIFBPRCBvYmplY3QgZm9yIHNlbmRpbmcgZGF0YSBmcm9tIHRoZSBXZWJQcm9jZXNzIHRvIHRo
ZSBVSVByb2Nlc3MgZm9yIHRoZSBgVUlNZW51YC4KKworICAgICAgICAqIE1vZHVsZXMvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL21lZGlhL3RyYWNrcy1zdXBwb3J0LmpzOgorICAgICAgICAoVHJhY2tz
U3VwcG9ydC5wcm90b3R5cGUuYnV0dG9uV2FzUHJlc3NlZCk6CisgICAgICAgIChUcmFja3NTdXBw
b3J0LnByb3RvdHlwZS5zeW5jQ29udHJvbCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYWNvbnRy
b2xzL01lZGlhQ29udHJvbHNIb3N0LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJv
bHMvTWVkaWFDb250cm9sc0hvc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMv
TWVkaWFDb250cm9sc0hvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hv
c3Q6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUpOiBBZGRlZC4KKyAgICAgICAgKiBwYWdl
L0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpzaG93TWVk
aWFDb250cm9sc0NvbnRleHRNZW51KToKKyAgICAgICAgUHJvdmlkZSBhIGhvc3QgaG9vayBmb3Ig
Z2VuZXJhdGluZyBhbmQgc2VuZGluZyB0aGUgYFVJTWVudWAgZGF0YS4gV2hlbiBhIGBVSUFjdGlv
bmAgaXMKKyAgICAgICAgc2VsZWN0ZWQgb3IgdGhlIG1lbnUgaXMgZGlzbWlzc2VkLCB0aGUgcmVs
ZXZhbnQgYE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEYCBpcyBzZW50CisgICAgICAg
IGJhY2sgYXMgdGhlIHJlc3BvbnNlIHRvIHRoZSBhc3luYyBtZXNzYWdlIGFuZCBpcyB1c2VkIHRv
IHBlcmZvcm0gdGhlIGFjdGlvbiByZWxhdGVkIHRvIHRoZQorICAgICAgICB0eXBlIG9mIHRoZSBv
YmplY3QgKGUuZy4gYEF1ZGlvVHJhY2tgLCBgVGV4dFRyYWNrYCwgZXRjLikgdGhhdCB3YXMgcHJl
dmlvdXNseSBhc3NvY2lhdGVkCisgICAgICAgIHdpdGggdGhhdCBgTWVkaWFDb250cm9sc0NvbnRl
eHRNZW51SXRlbTo6SURgLgorCisgICAgICAgICogZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5n
czoKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmg6CisgICAgICAgICogcGxh
dGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0VHJhY2tT
dWJ0aXRsZXNUZXh0KTogRGVsZXRlZC4KKyAgICAgICAgQWRkIGxvY2FsaXphYmxlIHN0cmluZ3Mg
Zm9yICJMYW5ndWFnZXMiIGFuZCAiU3VidGl0bGVzIiBoZWFkZXJzL3N1Ym1lbnVzLgorCisgICAg
ICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisKIDIwMjEtMDItMDggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2OTQ1OCk6IHlhaG9vLmNvbSBzb2NpYWwg
LyBjb21tZW50cyBiYXIgc2hvd3MgYXMgdHJhbnNwYXJlbnQgd2hlbiBzY3JvbGxpbmcgcGFnZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCBhNGZmY2VkOTUyYjRkNWFkMjk5MGUyMDkxZjRmN2QxM2FhOTU1MjNmLi41OWRm
Yjk2YjBjZjM3MzM0YWNlNDZkOTNkNmI0OWI5YmQ2MTJjMTU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDYzIEBACisyMDIxLTAyLTA4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbaU9TXSBBZGQgc3VwcG9ydCBmb3IgdGhlIGxhbmd1YWdlL3N1YnRpdGxlIHRyYWNr
cyBidXR0b24gdXNpbmcgYFVJTWVudWAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMTU5NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQxMjkxMjk+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViQ2hyb21lQ2xpZW50OjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KTogQWRkZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNo
b3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KTogQWRkZWQu
CisgICAgICAgIFNlbmQgdGhlIGdpdmVuIGBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtYHMg
dG8gdGhlIFVJUHJvY2VzcyBmb3IgdGhlIGBVSU1lbnVgLgorCisgICAgICAgICogVUlQcm9jZXNz
L1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudDo6c2hvd01lZGlhQ29u
dHJvbHNDb250ZXh0TWVudSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
Lm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2hvd01lZGlhQ29udHJvbHND
b250ZXh0TWVudSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgYWN0aW9uU2hlZXRBc3Npc3Rh
bnREaWRTaG93Q29udGV4dE1lbnU6XSk6IEFkZGVkLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3
IGFjdGlvblNoZWV0QXNzaXN0YW50RGlkRGlzbWlzc0NvbnRleHRNZW51Ol0pOiBBZGRlZC4KKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBfc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudTppdGVt
czpjb21wbGV0aW9uSGFuZGxlcjpdKTogQWRkZWQuCisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
X2NvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbTpdKToKKyAgICAgICAgUGFzcyB0aGUgZ2l2ZW4g
YE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW1gcyB0byB0aGUgYFdLQWN0aW9uU2hlZXRBc3Np
c3RhbnRgLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tOgor
ICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IHJlbW92ZUNvbnRleHRNZW51SW50ZXJh
Y3Rpb25dKToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBlbnN1cmVDb250ZXh0
TWVudUludGVyYWN0aW9uXSk6CisgICAgICAgICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgaGFz
Q29udGV4dE1lbnVJbnRlcmFjdGlvbl0pOgorICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0
YW50IF91aU1lbnVFbGVtZW50c0Zvck1lZGlhQ29udHJvbENvbnRleHRNZW51SXRlbXM6XSk6IEFk
ZGVkLgorICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IHNob3dNZWRpYUNvbnRyb2xz
Q29udGV4dE1lbnU6aXRlbXM6Y29tcGxldGlvbkhhbmRsZXI6XSk6IEFkZGVkLgorICAgICAgICAo
LVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IGNvbnRleHRNZW51SW50ZXJhY3Rpb246Y29uZmlndXJh
dGlvbkZvck1lbnVBdExvY2F0aW9uOl0pOgorICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0
YW50IGNvbnRleHRNZW51SW50ZXJhY3Rpb246cHJldmlld0ZvckhpZ2hsaWdodGluZ01lbnVXaXRo
Q29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBjb250
ZXh0TWVudUludGVyYWN0aW9uOndpbGxEaXNwbGF5TWVudUZvckNvbmZpZ3VyYXRpb246YW5pbWF0
b3I6XSk6IEFkZGVkLgorICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IGNvbnRleHRN
ZW51SW50ZXJhY3Rpb246d2lsbEVuZEZvckNvbmZpZ3VyYXRpb246YW5pbWF0b3I6XSk6CisgICAg
ICAgICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgX2NvbnRleHRNZW51SW50ZXJhY3Rpb246b3Zl
cnJpZGVTdWdnZXN0ZWRBY3Rpb25zRm9yQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tB
Y3Rpb25TaGVldEFzc2lzdGFudCBfY29udGVudHNPZkNvbnRleHRNZW51SXRlbTpdKTogQWRkZWQu
CisgICAgICAgICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgY3VycmVudEF2YWlsYWJsZU1lZGlh
Q29udHJvbHNDb250ZXh0TWVudUl0ZW1zXSk6IEFkZGVkLgorICAgICAgICBJbnN0ZWFkIG9mIGFz
c3VtaW5nIHRoYXQgdGhlIG9ubHkgYFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbmAgaXMgZm9yIGRh
dGEgZGV0ZWN0b3JzLCBjaGVjaworICAgICAgICB0aGUgZ2l2ZW4gYGludGVyYWN0aW9uYCB0byBz
ZWUgaWYgaXQncyB0aGUgZGF0YSBkZXRlY3RvciBpbnRlcmFjdGlvbiBiZWZvcmUgZG9pbmcgYW55
IHdvcmsuCisgICAgICAgIFRoaXMgYWxsb3dzIHRoZSBtZWRpYSBjb250cm9scyBgVUlDb250ZXh0
TWVudUludGVyYWN0aW9uYCB0byBleGlzdCBzaWRlLWJ5LXNpZGUgYW5kIHVzZSB0aGUKKyAgICAg
ICAgYFdLQWN0aW9uU2hlZXRBc3Npc3RhbnRgIGFzIGl0cyBkZWxlZ2F0ZSB0b28gKGVzcGVjaWFs
bHkgc2luY2UgaXQncyBub3QgcG9zc2libGUgZm9yIGJvdGgKKyAgICAgICAgY29udGV4dG1lbnVz
IHRvIGJlIGFjdGl2ZSBhdCB0aGUgc2FtZSB0aW1lKS4gUHJlc2VudCB0aGUgbWVkaWEgY29udHJv
bHMgY29udGV4dG1lbnUgd2l0aG91dAorICAgICAgICBhIHByZXZpZXcgKGl0IHVzZXMgYW4gZW1w
dHkgYFVJVmlld2AgZm9yIHByb3BlciBzaXppbmcpIGF0IHRoZSBsb2NhdGlvbiBwcm92aWRlZC4g
U2VsZWN0aW5nCisgICAgICAgIGEgYFVJQWN0aW9uYCB3aWxsIHNlbmQgdGhlIGBNZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnVJdGVtOjpJRGAgYmFjayB0byB0aGUgV2ViUHJvY2Vzcy4KKyAgICAgICAg
QWxzbyBhZGQgc3VwcG9ydCBmb3IKKyAgICAgICAgIC0gYFVJU2NyaXB0Q29udHJvbGxlci5wcm90
b3R5cGUuY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtYAorICAgICAgICAgLSBgVUlTY3JpcHRD
b250cm9sbGVyLnByb3RvdHlwZS5kaWRTaG93Q29udGV4dE1lbnVDYWxsYmFja2AKKyAgICAgICAg
IC0gYFVJU2NyaXB0Q29udHJvbGxlci5wcm90b3R5cGUuZGlkRGlzbWlzc0NvbnRleHRNZW51Q2Fs
bGJhY2tgCisgICAgICAgIGZvciB1c2FnZSBpbiB0aGUgYWRkZWQgYExheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvYCB0ZXN0cy4KKwogMjAy
MS0wMi0wOCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzI0ODUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XVEYvU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IDA1MjBjNmM5ZDkzZTZm
NTY2ZmFjZjIwZTA4NzQ1Y2ZiN2MwYzc1MDcuLjVlM2QyNWQ4ODQxMzNiNTM2MTAyNGYwZWVmM2Zi
NmVkYzQ1ZmYwYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9X
ZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9X
ZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0xMzQwLDYgKzEzNDAsMTcgQEAgTWVkaWFDb250ZW50VHlw
ZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6
ICciIicKIAorTWVkaWFDb250cm9sc0NvbnRleHRNZW51c0VuYWJsZWQ6CisgIHR5cGU6IGJvb2wK
KyAgY29uZGl0aW9uOiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyAgZGVm
YXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAg
V2ViS2l0OgorICAgICAgZGVmYXVsdDogdHJ1ZQorICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0
OiBmYWxzZQorCiBNZWRpYUNvbnRyb2xzU2NhbGVXaXRoUGFnZVpvb206CiAgIHR5cGU6IGJvb2wK
ICAgZGVmYXVsdFZhbHVlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggMzcyOGFiZTBlNmFlYmFkMGY0
NmVjNGRmNGUwYWYzNGVkMjM4MTI3Ni4uMGY0N2Y2ZWZkNjVlMGFiMzYyNTUzNWQ5MTEwZmEwZGJk
NjBiNjcyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC04ODEsNiArODgxLDcgQEAgc2V0KFdlYkNv
cmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvR2xvYmFsV2luZG93SWRlbnRp
Zmllci5oCiAgICAgcGFnZS9MYXlvdXRNaWxlc3RvbmUuaAogICAgIHBhZ2UvTWVkaWFDYW5TdGFy
dExpc3RlbmVyLmgKKyAgICBwYWdlL01lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaAogICAg
IHBhZ2UvTWVkaWFQcm9kdWNlci5oCiAgICAgcGFnZS9NZW1vcnlSZWxlYXNlLmgKICAgICBwYWdl
L05hdmlnYXRvcklzTG9nZ2VkSW4uaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKaW5kZXggZTM4N2VlZjgy
ZGFmZTAyNzIyYTA2NGYzMzZhMDBiYTBhYTU3ZGFkMi4uZmEzZmY3Y2M0N2VhOTYyM2ZiZjEyNzZk
ZjFlMGJhY2RlMjlmNTY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCkBAIC0yOSwxMCArMjksMTYg
QEAKIAogI2luY2x1ZGUgIk1lZGlhQ29udHJvbHNIb3N0LmgiCiAKKyNpbmNsdWRlICJBdWRpb1Ry
YWNrTGlzdC5oIgorI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5o
IgogI2luY2x1ZGUgIkNhcHRpb25Vc2VyUHJlZmVyZW5jZXMuaCIKKyNpbmNsdWRlICJGbG9hdFJl
Y3QuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCisjaW5jbHVkZSAiTG9jYWxpemVk
U3RyaW5ncy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xU
ZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmgiCisjaW5jbHVkZSAiTWVkaWFDb250cm9sc0NvbnRl
eHRNZW51SXRlbS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIK
ICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgpAQCAtNDAsNiArNDYsNyBAQAogI2luY2x1ZGUgIlRl
eHRUcmFja0xpc3QuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NKU1ZhbHVlSW5saW5l
cy5oPgogI2luY2x1ZGUgPHd0Zi9VVUlELmg+CisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zMDQsNiArMzExLDEyMCBAQCBTdHJpbmcgTWVkaWFD
b250cm9sc0hvc3Q6OmZvcm1hdHRlZFN0cmluZ0ZvckR1cmF0aW9uKGRvdWJsZSBkdXJhdGlvbklu
U2Vjb25kcykKICAgICByZXR1cm4gUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigpLm1lZGlhQ29udHJv
bHNGb3JtYXR0ZWRTdHJpbmdGb3JEdXJhdGlvbihkdXJhdGlvbkluU2Vjb25kcyk7CiB9CiAKKyNp
ZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKwordm9pZCBNZWRpYUNvbnRy
b2xzSG9zdDo6c2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShIVE1MRWxlbWVudCYgdGFyZ2V0
LCBDb250ZXh0TWVudU9wdGlvbnMmJiBvcHRpb25zKQoreworICAgIGlmICghbV9tZWRpYUVsZW1l
bnQpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIG1lZGlhRWxlbWVudCA9ICptX21lZGlh
RWxlbWVudDsKKworICAgIGF1dG8qIHBhZ2UgPSBtZWRpYUVsZW1lbnQuZG9jdW1lbnQoKS5wYWdl
KCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBIYXNoTWFwPE1lZGlh
Q29udHJvbHNDb250ZXh0TWVudUl0ZW06OklELCBWYXJpYW50PFJlZlB0cjxBdWRpb1RyYWNrPiwg
UmVmUHRyPFRleHRUcmFjaz4+PiBpZE1hcDsKKyAgICBWZWN0b3I8TWVkaWFDb250cm9sc0NvbnRl
eHRNZW51SXRlbT4gaXRlbXM7CisKKyAgICBpZiAob3B0aW9ucy5pbmNsdWRlQXVkaW9UcmFja3Mp
IHsKKyAgICAgICAgaWYgKGF1dG8qIGF1ZGlvVHJhY2tzID0gbWVkaWFFbGVtZW50LmF1ZGlvVHJh
Y2tzKCk7IGF1ZGlvVHJhY2tzICYmIGF1ZGlvVHJhY2tzLT5sZW5ndGgoKSA+IDEpIHsKKyAgICAg
ICAgICAgIE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0gYXVkaW9UcmFja3NJdGVtOworICAg
ICAgICAgICAgYXVkaW9UcmFja3NJdGVtLnRpdGxlID0gV0VCX1VJX1NUUklOR19LRVkoIkxhbmd1
YWdlcyIsICJMYW5ndWFnZXMgKE1lZGlhIENvbnRyb2xzIE1lbnUpIiwgIkxhbmd1YWdlcyBtZWRp
YSBjb250cm9scyBjb250ZXh0IG1lbnUgdGl0bGUiKTsKKyAgICAgICAgICAgIGF1ZGlvVHJhY2tz
SXRlbS5pY29uID0gImdsb2JlIl9zOworICAgICAgICAgICAgYXVkaW9UcmFja3NJdGVtLmNoaWxk
cmVuLnJlc2VydmVDYXBhY2l0eShhdWRpb1RyYWNrcy0+bGVuZ3RoKCkpOworCisgICAgICAgICAg
ICBhdXRvJiBjYXB0aW9uUHJlZmVyZW5jZXMgPSBwYWdlLT5ncm91cCgpLmNhcHRpb25QcmVmZXJl
bmNlcygpOworCisgICAgICAgICAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2sgOiBjYXB0aW9uUHJl
ZmVyZW5jZXMuc29ydGVkVHJhY2tMaXN0Rm9yTWVudShhdWRpb1RyYWNrcykpIHsKKyAgICAgICAg
ICAgICAgICBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtIGF1ZGlvVHJhY2tJdGVtOworICAg
ICAgICAgICAgICAgIGF1ZGlvVHJhY2tJdGVtLmlkID0gaWRNYXAuc2l6ZSgpICsgMTsKKyAgICAg
ICAgICAgICAgICBhdWRpb1RyYWNrSXRlbS50aXRsZSA9IGNhcHRpb25QcmVmZXJlbmNlcy5kaXNw
bGF5TmFtZUZvclRyYWNrKGF1ZGlvVHJhY2suZ2V0KCkpOworICAgICAgICAgICAgICAgIGF1ZGlv
VHJhY2tJdGVtLmlzQ2hlY2tlZCA9IGF1ZGlvVHJhY2stPmVuYWJsZWQoKTsKKworICAgICAgICAg
ICAgICAgIGlkTWFwLmFkZChhdWRpb1RyYWNrSXRlbS5pZCwgYXVkaW9UcmFjayk7CisKKyAgICAg
ICAgICAgICAgICBhdWRpb1RyYWNrc0l0ZW0uY2hpbGRyZW4uYXBwZW5kKFdURk1vdmUoYXVkaW9U
cmFja0l0ZW0pKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFhdWRpb1RyYWNr
c0l0ZW0uY2hpbGRyZW4uaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGl0ZW1zLmFwcGVuZChX
VEZNb3ZlKGF1ZGlvVHJhY2tzSXRlbSkpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKG9w
dGlvbnMuaW5jbHVkZVRleHRUcmFja3MpIHsKKyAgICAgICAgaWYgKGF1dG8qIHRleHRUcmFja3Mg
PSBtZWRpYUVsZW1lbnQudGV4dFRyYWNrcygpOyB0ZXh0VHJhY2tzICYmIHRleHRUcmFja3MtPmxl
bmd0aCgpKSB7CisgICAgICAgICAgICBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtIHRleHRU
cmFja3NJdGVtOworICAgICAgICAgICAgdGV4dFRyYWNrc0l0ZW0udGl0bGUgPSBXRUJfVUlfU1RS
SU5HX0tFWSgiU3VidGl0bGVzIiwgIlN1YnRpdGxlcyAoTWVkaWEgQ29udHJvbHMgTWVudSkiLCAi
U3VidGl0bGVzIG1lZGlhIGNvbnRyb2xzIGNvbnRleHQgbWVudSB0aXRsZSIpOworICAgICAgICAg
ICAgdGV4dFRyYWNrc0l0ZW0uaWNvbiA9ICJjYXB0aW9ucy5idWJibGUiX3M7CisgICAgICAgICAg
ICB0ZXh0VHJhY2tzSXRlbS5jaGlsZHJlbi5yZXNlcnZlQ2FwYWNpdHkodGV4dFRyYWNrcy0+bGVu
Z3RoKCkpOworCisgICAgICAgICAgICBhdXRvJiBjYXB0aW9uUHJlZmVyZW5jZXMgPSBwYWdlLT5n
cm91cCgpLmNhcHRpb25QcmVmZXJlbmNlcygpOworICAgICAgICAgICAgYXV0byBzb3J0ZWRUZXh0
VHJhY2tzID0gY2FwdGlvblByZWZlcmVuY2VzLnNvcnRlZFRyYWNrTGlzdEZvck1lbnUodGV4dFRy
YWNrcyk7CisgICAgICAgICAgICBib29sIGFsbFRyYWNrc0Rpc2FibGVkID0gbm90Rm91bmQgPT0g
c29ydGVkVGV4dFRyYWNrcy5maW5kTWF0Y2hpbmcoW10gKGNvbnN0IGF1dG8mIHRleHRUcmFjaykg
eworICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0VHJhY2stPm1vZGUoKSA9PSBUZXh0VHJhY2s6
Ok1vZGU6OlNob3dpbmc7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGJvb2wgdXNlc0F1
dG9tYXRpY1RyYWNrID0gY2FwdGlvblByZWZlcmVuY2VzLmNhcHRpb25EaXNwbGF5TW9kZSgpID09
IENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OkF1dG9tYXRpYyAmJiBhbGxUcmFja3NEaXNhYmxlZDsK
KworICAgICAgICAgICAgZm9yIChhdXRvJiB0ZXh0VHJhY2sgOiBzb3J0ZWRUZXh0VHJhY2tzKSB7
CisgICAgICAgICAgICAgICAgTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbSB0ZXh0VHJhY2tJ
dGVtOworICAgICAgICAgICAgICAgIHRleHRUcmFja0l0ZW0uaWQgPSBpZE1hcC5zaXplKCkgKyAx
OworICAgICAgICAgICAgICAgIHRleHRUcmFja0l0ZW0udGl0bGUgPSBjYXB0aW9uUHJlZmVyZW5j
ZXMuZGlzcGxheU5hbWVGb3JUcmFjayh0ZXh0VHJhY2suZ2V0KCkpOworICAgICAgICAgICAgICAg
IGlmIChhbGxUcmFja3NEaXNhYmxlZCAmJiB0ZXh0VHJhY2sgPT0gJlRleHRUcmFjazo6Y2FwdGlv
bk1lbnVPZmZJdGVtKCkgJiYgKGNhcHRpb25QcmVmZXJlbmNlcy5jYXB0aW9uRGlzcGxheU1vZGUo
KSA9PSBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpGb3JjZWRPbmx5IHx8IGNhcHRpb25QcmVmZXJl
bmNlcy5jYXB0aW9uRGlzcGxheU1vZGUoKSA9PSBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpNYW51
YWwpKQorICAgICAgICAgICAgICAgICAgICB0ZXh0VHJhY2tJdGVtLmlzQ2hlY2tlZCA9IHRydWU7
CisgICAgICAgICAgICAgICAgZWxzZSBpZiAodXNlc0F1dG9tYXRpY1RyYWNrICYmIHRleHRUcmFj
ayA9PSAmVGV4dFRyYWNrOjpjYXB0aW9uTWVudUF1dG9tYXRpY0l0ZW0oKSkKKyAgICAgICAgICAg
ICAgICAgICAgdGV4dFRyYWNrSXRlbS5pc0NoZWNrZWQgPSB0cnVlOworICAgICAgICAgICAgICAg
IGVsc2UgaWYgKCF1c2VzQXV0b21hdGljVHJhY2sgJiYgdGV4dFRyYWNrLT5tb2RlKCkgPT0gVGV4
dFRyYWNrOjpNb2RlOjpTaG93aW5nKQorICAgICAgICAgICAgICAgICAgICB0ZXh0VHJhY2tJdGVt
LmlzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICB0ZXh0VHJhY2tJdGVtLmlzQ2hlY2tlZCA9IGZhbHNlOworCisgICAgICAgICAgICAgICAg
aWRNYXAuYWRkKHRleHRUcmFja0l0ZW0uaWQsIHRleHRUcmFjayk7CisKKyAgICAgICAgICAgICAg
ICB0ZXh0VHJhY2tzSXRlbS5jaGlsZHJlbi5hcHBlbmQoV1RGTW92ZSh0ZXh0VHJhY2tJdGVtKSk7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghdGV4dFRyYWNrc0l0ZW0uY2hpbGRy
ZW4uaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGl0ZW1zLmFwcGVuZChXVEZNb3ZlKHRleHRU
cmFja3NJdGVtKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoaXRlbXMuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQoIWlkTWFwLmlzRW1wdHkoKSk7CisKKyAg
ICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KHRh
cmdldC5ib3VuZHNJblJvb3RWaWV3U3BhY2UoKSwgV1RGTW92ZShpdGVtcyksIFt3ZWFrTWVkaWFF
bGVtZW50ID0gbWFrZVdlYWtQdHIobWVkaWFFbGVtZW50KSwgaWRNYXAgPSBXVEZNb3ZlKGlkTWFw
KV0gKE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEIHNlbGVjdGVkSXRlbUlEKSB7CisK
KyAgICAgICAgaWYgKHNlbGVjdGVkSXRlbUlEID09IE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0
ZW06OmludmFsaWRJRCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoIXdlYWtN
ZWRpYUVsZW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYXV0byYgbWVkaWFF
bGVtZW50ID0gKndlYWtNZWRpYUVsZW1lbnQ7CisKKyAgICAgICAgYXV0byBzZWxlY3RlZEl0ZW0g
PSBpZE1hcC5nZXQoc2VsZWN0ZWRJdGVtSUQpOworICAgICAgICBXVEY6OnN3aXRjaE9uKHNlbGVj
dGVkSXRlbSwKKyAgICAgICAgICAgIFsmXSAoUmVmUHRyPEF1ZGlvVHJhY2s+JiBzZWxlY3RlZEF1
ZGlvVHJhY2spIHsKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIHRyYWNrIDogaWRNYXAudmFs
dWVzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8qIGF1ZGlvVHJhY2sgPSBXVEY6
OmdldF9pZjxSZWZQdHI8QXVkaW9UcmFjaz4+KHRyYWNrKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICgqYXVkaW9UcmFjayktPnNldEVuYWJsZWQoKmF1ZGlvVHJhY2sgPT0gc2VsZWN0ZWRBdWRp
b1RyYWNrKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAg
WyZdIChSZWZQdHI8VGV4dFRyYWNrPiYgc2VsZWN0ZWRUZXh0VHJhY2spIHsKKyAgICAgICAgICAg
ICAgICBmb3IgKGF1dG8mIHRyYWNrIDogaWRNYXAudmFsdWVzKCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKGF1dG8qIHRleHRUcmFjayA9IFdURjo6Z2V0X2lmPFJlZlB0cjxUZXh0VHJhY2s+
Pih0cmFjaykpCisgICAgICAgICAgICAgICAgICAgICAgICAoKnRleHRUcmFjayktPnNldE1vZGUo
VGV4dFRyYWNrOjpNb2RlOjpEaXNhYmxlZCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIG1lZGlhRWxlbWVudC5zZXRTZWxlY3RlZFRleHRUcmFjayhzZWxlY3RlZFRleHRUcmFj
ay5nZXQoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfSk7Cit9CisKKyNlbmRp
ZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKwogYm9vbCBNZWRpYUNv
bnRyb2xzSG9zdDo6Y29tcGFjdE1vZGUoKSBjb25zdAogewogI2lmIFBMQVRGT1JNKFdBVENIT1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFD
b250cm9sc0hvc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRp
YUNvbnRyb2xzSG9zdC5oCmluZGV4IDZlODQ1ZjdhN2M1YjBkOWJiNGMyMTVjYmNlMjgwZWRmZTVl
ZTMzYjguLjJlNzNkY2U2N2RjMmY3NzQwOTFkMzQwODU3YjE4MzM4YzdiYmY1OTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9z
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRy
b2xzSG9zdC5oCkBAIC05MSw2ICs5MSwxNCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFN0cmluZyBi
YXNlNjRTdHJpbmdGb3JJY29uTmFtZUFuZFR5cGUoY29uc3QgU3RyaW5nJiBpY29uTmFtZSwgY29u
c3QgU3RyaW5nJiBpY29uVHlwZSk7CiAgICAgc3RhdGljIFN0cmluZyBmb3JtYXR0ZWRTdHJpbmdG
b3JEdXJhdGlvbihkb3VibGUpOwogCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRf
TUVOVVMpCisgICAgc3RydWN0IENvbnRleHRNZW51T3B0aW9ucyB7CisgICAgICAgIGJvb2wgaW5j
bHVkZUF1ZGlvVHJhY2tzIHsgZmFsc2UgfTsKKyAgICAgICAgYm9vbCBpbmNsdWRlVGV4dFRyYWNr
cyB7IGZhbHNlIH07CisgICAgfTsKKyAgICB2b2lkIHNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnUoSFRNTEVsZW1lbnQmLCBDb250ZXh0TWVudU9wdGlvbnMmJik7CisjZW5kaWYgLy8gRU5BQkxF
KE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQg
TWVkaWFDb250cm9sc0hvc3QoSFRNTE1lZGlhRWxlbWVudCYpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0Lmlk
bAppbmRleCBjMmM3ZDA1ZDg2MTcwMmUzMWIzZGI2NGVhMjBjNzJmOGZhODRlOTA2Li4wNDFhY2Ri
NDYxYjhjNGYxODRlNjdlOGNhOTQzY2E3ZGI5NGU0ZDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5pZGwK
QEAgLTY0LDQgKzY0LDEzIEBAIGVudW0gRGV2aWNlVHlwZSB7CiAgICAgW0VuYWJsZWRBdFJ1bnRp
bWU9TW9kZXJuTWVkaWFDb250cm9sc10gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBzaGFk
b3dSb290Q1NTVGV4dDsKICAgICBbRW5hYmxlZEF0UnVudGltZT1Nb2Rlcm5NZWRpYUNvbnRyb2xz
XSBET01TdHJpbmcgYmFzZTY0U3RyaW5nRm9ySWNvbk5hbWVBbmRUeXBlKERPTVN0cmluZyBpY29u
TmFtZSwgRE9NU3RyaW5nIGljb25UeXBlKTsKICAgICBbRW5hYmxlZEF0UnVudGltZT1Nb2Rlcm5N
ZWRpYUNvbnRyb2xzXSBET01TdHJpbmcgZm9ybWF0dGVkU3RyaW5nRm9yRHVyYXRpb24odW5yZXN0
cmljdGVkIGRvdWJsZSBkdXJhdGlvbkluU2Vjb25kcyk7CisKKyAgICBbQ29uZGl0aW9uYWw9TUVE
SUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUywgRW5hYmxlZEJ5U2V0dGluZz1NZWRpYUNvbnRyb2xz
Q29udGV4dE1lbnVzXSB1bmRlZmluZWQgc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShIVE1M
RWxlbWVudCB0YXJnZXQsIENvbnRleHRNZW51T3B0aW9ucyBvcHRpb25zKTsKK307CisKK1sKKyAg
ICBDb25kaXRpb25hbD1NRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTLAorXSBkaWN0aW9uYXJ5
IENvbnRleHRNZW51T3B0aW9ucyB7CisgICAgYm9vbGVhbiBpbmNsdWRlQXVkaW9UcmFja3M7Cisg
ICAgYm9vbGVhbiBpbmNsdWRlVGV4dFRyYWNrczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS90cmFja3Mtc3VwcG9ydC5q
cyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhL3Ry
YWNrcy1zdXBwb3J0LmpzCmluZGV4IGE4NTkwODRiNjg5NmRlZDg2YTJlOWNlZTE0MDJlZTI2M2Q2
ODlhMmMuLjg1OWUyZGE5ODFiNTQyOTY3N2M2YTgzNmJkNjNlNDc4YTZhYTViZTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhL3Ry
YWNrcy1zdXBwb3J0LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL21lZGlhL3RyYWNrcy1zdXBwb3J0LmpzCkBAIC01Niw3ICs1NiwxMCBAQCBjbGFz
cyBUcmFja3NTdXBwb3J0IGV4dGVuZHMgTWVkaWFDb250cm9sbGVyU3VwcG9ydAogCiAgICAgYnV0
dG9uV2FzUHJlc3NlZChjb250cm9sKQogICAgIHsKLSAgICAgICAgdGhpcy5tZWRpYUNvbnRyb2xs
ZXIuY29udHJvbHMuc2hvd1RyYWNrc1BhbmVsKCk7CisgICAgICAgIGlmICh0aGlzLm1lZGlhQ29u
dHJvbGxlci5ob3N0Py5zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KQorICAgICAgICAgICAg
dGhpcy5tZWRpYUNvbnRyb2xsZXIuaG9zdC5zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KGNv
bnRyb2wuZWxlbWVudCwge2luY2x1ZGVBdWRpb1RyYWNrczogdHJ1ZSwgaW5jbHVkZVRleHRUcmFj
a3M6IHRydWV9KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5tZWRpYUNvbnRyb2xs
ZXIuY29udHJvbHMuc2hvd1RyYWNrc1BhbmVsKCk7CiAgICAgfQogCiAgICAgdHJhY2tzUGFuZWxO
dW1iZXJPZlNlY3Rpb25zKCkKQEAgLTEzMCw3ICsxMzMsNyBAQCBjbGFzcyBUcmFja3NTdXBwb3J0
IGV4dGVuZHMgTWVkaWFDb250cm9sbGVyU3VwcG9ydAogCiAgICAgc3luY0NvbnRyb2woKQogICAg
IHsKLSAgICAgICAgdGhpcy5jb250cm9sLmVuYWJsZWQgPSAodGhpcy5tZWRpYUNvbnRyb2xsZXIu
bGF5b3V0VHJhaXRzICYgTGF5b3V0VHJhaXRzLm1hY09TKSAmJiAodGhpcy5fY2FuUGlja0F1ZGlv
VHJhY2tzKCkgfHwgdGhpcy5fY2FuUGlja1RleHRUcmFja3MoKSk7CisgICAgICAgIHRoaXMuY29u
dHJvbC5lbmFibGVkID0gKHRoaXMubWVkaWFDb250cm9sbGVyLmxheW91dFRyYWl0cyAmIExheW91
dFRyYWl0cy5tYWNPUyB8fCB0aGlzLm1lZGlhQ29udHJvbGxlci5ob3N0Py5zaG93TWVkaWFDb250
cm9sc0NvbnRleHRNZW51KSAmJiAodGhpcy5fY2FuUGlja0F1ZGlvVHJhY2tzKCkgfHwgdGhpcy5f
Y2FuUGlja1RleHRUcmFja3MoKSk7CiAgICAgfQogCiAgICAgLy8gUHJpdmF0ZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGIyNTY0
YTZkN2I5NjVhNzY0NTQ3YjdiNWVkOTFlNGE1M2NkNmE0YmEuLmIxMTQ2MjQyYzhlMzBiODA2Zjhk
ODNiNDEyZGRmMWY3ZGVjM2M4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI5MzMsNiArMjkzMyw3IEBACiAJCTk0RTgzOTU2
MURGQjJCQzQwMDdCQzZBNyAvKiBKU0NTU05hbWVzcGFjZVJ1bGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0RTgzOTU0MURGQjJCQTYwMDdCQzZBNyAv
KiBKU0NTU05hbWVzcGFjZVJ1bGUuaCAqLzsgfTsKIAkJOTUyMDc2MDUxRjI2NzVGRTAwN0QyQUFC
IC8qIENhbGxUcmFjZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk1MjA3NjAxMUYyNjc1RjkwMDdEMkFBQiAvKiBDYWxsVHJhY2VyLmggKi87IH07CiAJ
CTk1MjA3NjA2MUYyNjc1RkUwMDdEMkFBQiAvKiBDYWxsVHJhY2VyVHlwZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MjA3NjAyMUYyNjc1RjkwMDdE
MkFBQiAvKiBDYWxsVHJhY2VyVHlwZXMuaCAqLzsgfTsKKwkJOTVBMUUyRTkyNUNDNzVBOTAwMjY4
QzhFIC8qIE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QTFFMkU3MjVDQzc1QTgwMDI2OEM4RSAvKiBN
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTVERjlEMjUyNTJCRURCMjAwMEQ3RjQ2IC8qIFBvaW50
ZXJDaGFyYWN0ZXJpc3RpY3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk1REY5RDIzMjUyQkVEOTkwMDBEN0Y0NiAvKiBQb2ludGVyQ2hhcmFjdGVyaXN0
aWNzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OTcwNTk5N0ExMDdEOTc1MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MDU5OTc2MTA3RDk3NTIwMEE1MEE3
QyAvKiBQb2xpY3lDaGVja2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJOTcwQjcyOEExNDRGRkFDNjAwRjAwQTM3IC8qIEV2ZW50SW50ZXJmYWNl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcwQjcy
ODkxNDRGRkFDNjAwRjAwQTM3IC8qIEV2ZW50SW50ZXJmYWNlcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMTc1MSw2ICsxMTc1Miw3IEBACiAJ
CTk1MjA3NjAwMUYyNjc1RjkwMDdEMkFBQiAvKiBDYWxsVHJhY2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IENhbGxUcmFjZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTIw
NzYwMTFGMjY3NUY5MDA3RDJBQUIgLyogQ2FsbFRyYWNlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWxs
VHJhY2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MjA3NjAyMUYyNjc1Rjkw
MDdEMkFBQiAvKiBDYWxsVHJhY2VyVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FsbFRyYWNlclR5
cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1QTFFMkU3MjVDQzc1QTgwMDI2
OEM4RSAvKiBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVERjlEMjMyNTJCRUQ5OTAwMEQ3RjQ2IC8qIFBvaW50ZXJD
aGFyYWN0ZXJpc3RpY3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9pbnRlckNoYXJhY3RlcmlzdGljcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzA1OTk3NTEwN0Q5NzUyMDBBNTBBN0Mg
LyogUG9saWN5Q2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBQb2xpY3lDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcwNTk5
NzYxMDdEOTc1MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUG9saWN5Q2hlY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjIxMTEsNiArMjIxMTMsNyBAQAogCQkJCTZCNEQ0MTJDMjM5ODNGODgwMDI0OTRDMiAv
KiBMb2dnZWRJblN0YXR1cy5jcHAgKi8sCiAJCQkJNkI0RDQxMkIyMzk4M0Y4ODAwMjQ5NEMyIC8q
IExvZ2dlZEluU3RhdHVzLmggKi8sCiAJCQkJOTMxQkNDNjAxMTI0REZDQjAwQkU3MEREIC8qIE1l
ZGlhQ2FuU3RhcnRMaXN0ZW5lci5oICovLAorCQkJCTk1QTFFMkU3MjVDQzc1QTgwMDI2OEM4RSAv
KiBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmggKi8sCiAJCQkJNTJFMkNBRkIxOUZGMDIw
NzAwMUVFQjRGIC8qIE1lZGlhUHJvZHVjZXIuaCAqLywKIAkJCQk0MTNFMDA3NzFEQjBFNERFMDAy
MzQxRDIgLyogTWVtb3J5UmVsZWFzZS5jcHAgKi8sCiAJCQkJNDEzRTAwNzgxREIwRTRERTAwMjM0
MUQyIC8qIE1lbW9yeVJlbGVhc2UuaCAqLywKQEAgLTMzNjkxLDYgKzMzNjk0LDcgQEAKIAkJCQkw
NzhFMDkzQTE3RDE2RTFDMDA0MjBBQTEgLyogTWVkaWFDb25zdHJhaW50cy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQ0RGNjVDQzgxNDVCMUU3NTAwQzRDN0FBIC8qIE1lZGlhQ29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQ0RGNjVDQ0ExNDVCNDQ4ODAwQzRDN0FBIC8qIE1lZGlhQ29udHJv
bGxlckludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTVBMUUyRTkyNUNDNzVBOTAwMjY4
QzhFIC8qIE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJ
CUNEQUI2RDI5MTdDN0RFNkMwMEM2MEIzNCAvKiBNZWRpYUNvbnRyb2xzSG9zdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDE3MjUzQUIxMzU0QkJCQzAwMzYwRjJBIC8qIE1lZGlhQ29udHJvbFRleHRU
cmFja0NvbnRhaW5lckVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEM0VFRjM4MjU3OTlG
NzMwMDY1NjNCQiAvKiBNZWRpYURlY29kaW5nQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdz
IGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwppbmRleCA2ZmM4
MzA2NGU3ZGZiMjY0MjA0OGEzZTU3ODNlYWJkZGQzNDhjMzcxLi43Mzk2MTIyNzY5MDJlMzBmMDc4
MDRjZGY3OGVkNTY3ZWI0NzNjNjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJv
ai9Mb2NhbGl6YWJsZS5zdHJpbmdzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2Fs
aXphYmxlLnN0cmluZ3MKQEAgLTQ3OCw2ICs0NzgsOSBAQAogLyogTmFtZSBvZiBrZXljaGFpbiBr
ZXkgZ2VuZXJhdGVkIGJ5IHRoZSBLRVlHRU4gdGFnICovCiAiS2V5IGZyb20gJUAiID0gIktleSBm
cm9tICVAIjsKIAorLyogTGFuZ3VhZ2VzIG1lZGlhIGNvbnRyb2xzIGNvbnRleHQgbWVudSB0aXRs
ZSAqLworIkxhbmd1YWdlcyAoTWVkaWEgQ29udHJvbHMgTWVudSkiID0gIkxhbmd1YWdlcyI7CisK
IC8qIExlYXJuIFNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVtICovCiAiTGVhcm4gU3BlbGxpbmci
ID0gIkxlYXJuIFNwZWxsaW5nIjsKIApAQCAtODQxLDggKzg0NCw4IEBACiAvKiBTdWJzdGl0dXRp
b25zIGNvbnRleHQgc3ViLW1lbnUgaXRlbSAqLwogIlN1YnN0aXR1dGlvbnMiID0gIlN1YnN0aXR1
dGlvbnMiOwogCi0vKiBNZW51IHNlY3Rpb24gaGVhZGluZyBmb3Igc3VidGl0bGVzICovCi0iU3Vi
dGl0bGVzIiA9ICJTdWJ0aXRsZXMiOworLyogU3VidGl0bGVzIG1lZGlhIGNvbnRyb2xzIGNvbnRl
eHQgbWVudSB0aXRsZSAqLworIlN1YnRpdGxlcyAoTWVkaWEgQ29udHJvbHMgTWVudSkiID0gIlN1
YnRpdGxlcyI7CiAKIC8qIEFjY2Vzc2liaWxpdHkgYW5ub3VuY2VtZW50IGZvciB0aGUgZGF0YSBs
aXN0IHN1Z2dlc3Rpb25zIGRyb3Bkb3duIGdvaW5nIGF3YXkuICovCiAiU3VnZ2VzdGlvbnMgbGlz
dCBoaWRkZW4uIiA9ICJTdWdnZXN0aW9ucyBsaXN0IGhpZGRlbi4iOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKaW5kZXggYzM5NzNlNzY1Y2FjNTdhOTZiNGNkMGMzMTc5NWMzMDdmYTZmY2Vk
MC4uODQwNTRmMjJlZjQzMWFiMTQ5ZGQ3ZThkOTEyMTQ0YzEyMTMxYTc3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiSWNvbi5oIgog
I2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW5wdXRNb2RlLmgiCisjaW5jbHVk
ZSAiTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5oIgogI2luY2x1ZGUgIk1lZGlhUHJvZHVj
ZXIuaCIKICNpbmNsdWRlICJQb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmgiCiAjaW5jbHVkZSAiUG9w
dXBNZW51LmgiCkBAIC01NTcsNiArNTU4LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdEltYWdlRXh0cmFjdGlvbihFbGVtZW50JikgeyB9CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorICAgIHZpcnR1YWwgdm9pZCBzaG93TWVk
aWFDb250cm9sc0NvbnRleHRNZW51KEZsb2F0UmVjdCYmLCBWZWN0b3I8TWVkaWFDb250cm9sc0Nv
bnRleHRNZW51SXRlbT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnVJdGVtOjpJRCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRs
ZXIoTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6aW52YWxpZElEKTsgfQorI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorCiBwcm90ZWN0ZWQ6CiAgICAg
dmlydHVhbCB+Q2hyb21lQ2xpZW50KCkgPSBkZWZhdWx0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9NZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWEy
MTNmM2VjMTM4NDU3NjMzMmIxYmRjNTg0NzExNjBjOTA0ZmY1MAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5oCkBAIC0w
LDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVT
KQorCisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K3N0cnVjdCBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtIHsKKyAgICB1c2luZyBJRCA9IHVp
bnQ2NF90OworICAgIHN0YXRpYyBjb25zdGV4cHIgSUQgaW52YWxpZElEID0gMDsKKworICAgIElE
IGlkIHsgaW52YWxpZElEIH07CisgICAgU3RyaW5nIHRpdGxlOworICAgIFN0cmluZyBpY29uOwor
ICAgIGJvb2wgaXNDaGVja2VkIHsgZmFsc2UgfTsKKyAgICBWZWN0b3I8TWVkaWFDb250cm9sc0Nv
bnRleHRNZW51SXRlbT4gY2hpbGRyZW47CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIE9wdGlvbmFsPE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+IGRlY29kZShEZWNv
ZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBNZWRpYUNvbnRyb2xz
Q29udGV4dE1lbnVJdGVtOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBl
bmNvZGVyIDw8IGlkOworICAgIGVuY29kZXIgPDwgdGl0bGU7CisgICAgZW5jb2RlciA8PCBpY29u
OworICAgIGVuY29kZXIgPDwgaXNDaGVja2VkOworICAgIGVuY29kZXIgPDwgY2hpbGRyZW47Cit9
CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxNZWRpYUNvbnRyb2xzQ29udGV4
dE1lbnVJdGVtPiBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKK3sKKyNkZWZpbmUgREVDT0RFKG5hbWUsIHR5cGUpIFwKKyAgICBPcHRpb25hbDx0
eXBlPiBuYW1lOyBcCisgICAgZGVjb2RlciA+PiBuYW1lOyBcCisgICAgaWYgKCFuYW1lKSBcCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7IFwKKworICAgIERFQ09ERShpZCwgSUQpOworICAg
IERFQ09ERSh0aXRsZSwgU3RyaW5nKTsKKyAgICBERUNPREUoaWNvbiwgU3RyaW5nKTsKKyAgICBE
RUNPREUoaXNDaGVja2VkLCBib29sKTsKKyAgICBERUNPREUoY2hpbGRyZW4sIFZlY3RvcjxNZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPik7CisKKyN1bmRlZiBERUNPREUKKworICAgIHJldHVy
biB7eyBXVEZNb3ZlKCppZCksIFdURk1vdmUoKnRpdGxlKSwgV1RGTW92ZSgqaWNvbiksIFdURk1v
dmUoKmlzQ2hlY2tlZCksIFdURk1vdmUoKmNoaWxkcmVuKSB9fTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVO
VVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCmluZGV4
IGZmNDNlOThlNjFmYTNkZDhlYTNkYzViODY0ZmQ4Y2I4ZTdhYTAxM2UuLjRjY2QxMWI2NTI1MzAz
OGJkMGNiNDZmYzQxNDc1ODA4MGJjMWNhZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0xvY2FsaXplZFN0cmluZ3MuY3BwCkBAIC0xMDc4LDExICsxMDc4LDYgQEAgU3RyaW5nIGNsaWNr
VG9FeGl0RnVsbFNjcmVlblRleHQoKQogICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJDbGljayB0
byBFeGl0IEZ1bGwgU2NyZWVuIiwgIk1lc3NhZ2UgdG8gZGlzcGxheSBpbiBicm93c2VyIHdpbmRv
dyB3aGVuIGluIHdlYmtpdCBmdWxsIHNjcmVlbiBtb2RlLiIpOwogfQogCi1TdHJpbmcgdGV4dFRy
YWNrU3VidGl0bGVzVGV4dCgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlN1YnRpdGxl
cyIsICJNZW51IHNlY3Rpb24gaGVhZGluZyBmb3Igc3VidGl0bGVzIik7Ci19Ci0KIFN0cmluZyB0
ZXh0VHJhY2tPZmZNZW51SXRlbVRleHQoKQogewogICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJP
ZmYiLCAiTWVudSBpdGVtIGxhYmVsIGZvciB0aGUgdHJhY2sgdGhhdCByZXByZXNlbnRzIGRpc2Fi
bGluZyBjbG9zZWQgY2FwdGlvbnMiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0xvY2FsaXplZFN0cmluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXpl
ZFN0cmluZ3MuaAppbmRleCA2OTE3NjI4MWNjMzJjYzNiMmI2OWRmMTViNDg1MTdiYjBhMmEyMDc1
Li44NDUxZjUxNzAxM2Y1MjNlMWEyOGQwYmNiMDdlNjg1ZDI4MjYxNGFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCkBAIC0yOTgsNyArMjk4LDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgU3RyaW5nIGNsaWNrVG9FeGl0RnVsbFNjcmVlblRleHQo
KTsKIAotICAgIFN0cmluZyB0ZXh0VHJhY2tTdWJ0aXRsZXNUZXh0KCk7CiAgICAgU3RyaW5nIHRl
eHRUcmFja09mZk1lbnVJdGVtVGV4dCgpOwogICAgIFN0cmluZyB0ZXh0VHJhY2tBdXRvbWF0aWNN
ZW51SXRlbVRleHQoKTsKICAgICBTdHJpbmcgdGV4dFRyYWNrTm9MYWJlbFRleHQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCA2NDJiYTA5Nzc1YjBlZGY3MmEzMzQwYjU0
MDY2YzQ4Y2U5ODE2YjU4Li5mNTkwMDU3MWQzZjcwMDc2ZGI2ZTdkMzM3M2EzMjNhOGQ5MDdmMWRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC00Miw2ICs0Miw3IEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9FZGl0b3JDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZvY3Vz
RGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnB1dE1vZGUuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL01lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZhbGlk
YXRpb25CdWJibGUuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KQEAgLTkx
LDYgKzkyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ29sb3I7CiBjbGFzcyBDdXJz
b3I7CiBjbGFzcyBGbG9hdFF1YWQ7CitjbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBSZWdpb247CiBj
bGFzcyBUZXh0SW5kaWNhdG9yOwogY2xhc3MgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjsKQEAgLTUx
NSw2ICs1MTcsMTAgQEAgcHVibGljOgogI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQogICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGNvbnN0IFNoYXJlYWJsZUJpdG1h
cDo6SGFuZGxlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpJbWFnZUV4dHJhY3Rp
b25SZXN1bHQmJik+JiYgY29tcGxldGlvbikgeyBjb21wbGV0aW9uKHsgfSk7IH0KICNlbmRpZgor
CisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisgICAgdmlydHVhbCB2
b2lkIHNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoV2ViQ29yZTo6RmxvYXRSZWN0JiYsIFZl
Y3RvcjxXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiYmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpNZWRpYUNv
bnRyb2xzQ29udGV4dE1lbnVJdGVtOjppbnZhbGlkSUQpOyB9CisjZW5kaWYgLy8gRU5BQkxFKE1F
RElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCiAgICAgCiAjaWYgUExBVEZPUk0oTUFDKQogICAg
IHZpcnR1YWwgdm9pZCBkaWRQZXJmb3JtSW1tZWRpYXRlQWN0aW9uSGl0VGVzdChjb25zdCBXZWJI
aXRUZXN0UmVzdWx0RGF0YSYsIGJvb2wgY29udGVudFByZXZlbnRzRGVmYXVsdCwgQVBJOjpPYmpl
Y3QqKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBm
NTJkYzQ2OWQxNjhjYjQ5NDhhN2E3YzllNmU2ODc1ODBjYjQwZmQxLi42ODU0YWFhY2I5OGZjZWQ4
YjAzZTk2NDRiNWI4MWM2NTJiNDI2MTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKQEAgLTgyOTQsNiArODI5NCwxNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVx
dWVzdEltYWdlRXh0cmFjdGlvbihjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VE
YQogCiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQor
Cit2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShGbG9hdFJl
Y3QmJiB0YXJnZXRGcmFtZSwgVmVjdG9yPE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+JiYg
aXRlbXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRl
bTo6SUQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHBhZ2VDbGllbnQoKS5zaG93TWVk
aWFDb250cm9sc0NvbnRleHRNZW51KFdURk1vdmUodGFyZ2V0RnJhbWUpLCBXVEZNb3ZlKGl0ZW1z
KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1F
RElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisKKwogdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVl
c3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RyaW5n
JiBvcmlnaW5TdHJpbmcpCiB7CiAgICAgaWYgKCFpc1JlcXVlc3RJRFZhbGlkKHJlcXVlc3RJRCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDdiMThiMTI5YzkxN2Q0
ZGI2MDdlODUyMmVkMDBmZmY3NjEwYWY4YzYuLjNjZTg2NGQ0NzlkYjUxNTliMTFiMjI4OWFiZjE3
NmI2ODM0YTNmMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC05
Miw2ICs5Miw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JbnB1dE1vZGUuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0xheW91dFBvaW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MYXlvdXRTaXplLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvTWVkaWFQcm9kdWNlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4K
QEAgLTE2MTksNiArMTYyMCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXF1ZXN0SW1hZ2VFeHRy
YWN0aW9uKGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQmJik+JiYpOwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyAgICB2b2lkIHNob3dNZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnUoV2ViQ29yZTo6RmxvYXRSZWN0JiYsIFZlY3RvcjxXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJik7CisjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisKICAgICBzdGF0aWMgV2Vi
UGFnZVByb3h5KiBub25FcGhlbWVyYWxXZWJQYWdlUHJveHkoKTsKIAogI2lmIEVOQUJMRShBVFRB
Q0hNRU5UX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KaW5kZXggNDFiNzA0ZjRlYjU5MTQxZDk4MTJjMTI4MmIwZDA1ZTFhYTc1
OTdiMS4uMTA2ZTlkZmZhNTAzNTNjNWM2MzE0ZWUzZDI3ZDQ4Y2IxZDc4NTEwMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjQy
LDYgKzI0MiwxMCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIFJlcXVlc3RJbWFn
ZUV4dHJhY3Rpb24oV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBpbWFnZURhdGEpIC0+
IChzdHJ1Y3QgV2ViQ29yZTo6SW1hZ2VFeHRyYWN0aW9uUmVzdWx0IHJlc3VsdCkgQXN5bmMKICNl
bmRpZgogCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisgICAgU2hv
d01lZGlhQ29udHJvbHNDb250ZXh0TWVudShXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0RnJhbWUs
IFZlY3RvcjxXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiBpdGVtcykgLT4g
KFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEIHNlbGVjdGVkSXRlbUlE
KSBBc3luYworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQor
CiAjaWYgSEFWRShUT1VDSF9CQVIpCiAgICAgU2V0SXNUb3VjaEJhclVwZGF0ZVN1cHJlc3NlZEZv
ckhpZGRlbkNvbnRlbnRFZGl0YWJsZShib29sIGlzVG91Y2hCYXJVcGRhdGVTdXByZXNzZWQpCiAg
ICAgU2V0SXNOZXZlclJpY2hseUVkaXRhYmxlRm9yVG91Y2hCYXIoYm9vbCBpc05ldmVyUmljaGx5
RWRpdGFibGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oCmluZGV4IDM4MDFiNTJjNmM1YWE5ZTQ3NjYyNDExOTZkMTEwNzNjMDA2ZTEzZmMuLjZk
YTBiZmI4YWFiNzkwMGQxNzA1YTQ3NWE3NmE3N2EyMWQ4OTg1YzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC0yNjMsNiArMjYzLDEw
IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNldE1vdXNlRXZlbnRQb2xpY3koV2ViQ29yZTo6TW91
c2VFdmVudFBvbGljeSkgZmluYWw7CiAKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVY
VF9NRU5VUykKKyAgICB2b2lkIHNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoV2ViQ29yZTo6
RmxvYXRSZWN0JiYsIFZlY3RvcjxXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVt
PiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0
TWVudUl0ZW06OklEKT4mJikgZmluYWw7CisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xT
X0NPTlRFWFRfTUVOVVMpCisKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAgIHZv
aWQgd3JpdGVQcm9taXNlZEF0dGFjaG1lbnRUb1Bhc3RlYm9hcmQoV2ViQ29yZTo6UHJvbWlzZWRB
dHRhY2htZW50SW5mbyYmKSBmaW5hbDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IDJlNDQ3YzYwZjJjYmNiOTRhMjRj
OWNmMTA3NWI3Yzc3ODhmNGVlMmUuLjAwY2RmMTNiYTkyYmQwNmMwYzI5MTc1ZjQxYzJjZDYxYzk1
NWUxMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50
SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudElt
cGxJT1MubW0KQEAgLTk2Niw2ICs5NjYsMTMgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0TW91
c2VFdmVudFBvbGljeShXZWJDb3JlOjpNb3VzZUV2ZW50UG9saWN5IHBvbGljeSkKICNlbmRpZgog
fQogCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCit2b2lkIFBhZ2VD
bGllbnRJbXBsOjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KEZsb2F0UmVjdCYmIHRhcmdl
dEZyYW1lLCBWZWN0b3I8TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4mJiBpdGVtcywgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgW21fY29udGVudFZpZXcgX3Nob3dNZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnU6V1RGTW92ZSh0YXJnZXRGcmFtZSkgaXRlbXM6V1RGTW92ZShpdGVtcykg
Y29tcGxldGlvbkhhbmRsZXI6V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildOworfQorI2VuZGlm
IC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorCiAjaWYgSEFWRShVSVND
Uk9MTFZJRVdfQVNZTkNIUk9OT1VTX1NDUk9MTF9FVkVOVF9IQU5ETElORykKIHZvaWQgUGFnZUNs
aWVudEltcGw6OmhhbmRsZUFzeW5jaHJvbm91c0NhbmNlbGFibGVTY3JvbGxFdmVudChVSVNjcm9s
bFZpZXcgKnNjcm9sbFZpZXcsIFVJU2Nyb2xsRXZlbnQgKnNjcm9sbEV2ZW50LCB2b2lkICheY29t
cGxldGlvbikoQk9PTCBoYW5kbGVkKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCmluZGV4IGQ3MzA1ZmE1YTczYjkxNGU0
NThhNzNlZGM0MjFkMzY1ZDdiMWUyNDguLjI5ZGUwY2YwMmJkN2E0ZWI4NjE5ZmY2YWE2M2U5NGMz
ZjRmOTZjNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlv
blNoZWV0QXNzaXN0YW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0
aW9uU2hlZXRBc3Npc3RhbnQuaApAQCAtMjgsOCArMjgsMTMgQEAKICNpbXBvcnQgIkdlc3R1cmVU
eXBlcy5oIgogI2ltcG9ydCAiV0tBY3Rpb25TaGVldC5oIgogI2ltcG9ydCA8VUlLaXQvVUlQb3Bv
dmVyQ29udHJvbGxlci5oPgorI2ltcG9ydCA8V2ViQ29yZS9NZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnVJdGVtLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2lvcy9EYXRhRGV0ZWN0b3JzVUlTUEkuaD4KLSNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK2NsYXNzIEZsb2F0UmVjdDsKK30KIAogbmFtZXNwYWNlIFdlYktpdCB7
CiBjbGFzcyBXZWJQYWdlUHJveHk7CkBAIC02OSw2ICs3NCw4IEBAIHR5cGVkZWYgTlNfRU5VTShO
U0ludGVnZXIsIF9XS0VsZW1lbnRBY3Rpb25UeXBlKTsKICNpZiBVU0UoVUlDT05URVhUTUVOVSkK
IC0gKFVJVGFyZ2V0ZWRQcmV2aWV3ICopY3JlYXRlVGFyZ2V0ZWRDb250ZXh0TWVudUhpbnRGb3JB
Y3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudDsK
IC0gKHZvaWQpcmVtb3ZlQ29udGV4dE1lbnVWaWV3SWZQb3NzaWJsZUZvckFjdGlvblNoZWV0QXNz
aXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50OworLSAodm9pZClhY3Rp
b25TaGVldEFzc2lzdGFudERpZFNob3dDb250ZXh0TWVudTooV0tBY3Rpb25TaGVldEFzc2lzdGFu
dCAqKWFzc2lzdGFudDsKKy0gKHZvaWQpYWN0aW9uU2hlZXRBc3Npc3RhbnREaWREaXNtaXNzQ29u
dGV4dE1lbnU6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQ7CiAjZW5kaWYKIC0g
KHZvaWQpYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Np
c3RhbnQgc2hhcmVFbGVtZW50V2l0aEltYWdlOihVSUltYWdlICopaW1hZ2UgcmVjdDooQ0dSZWN0
KWJvdW5kaW5nUmVjdDsKICNpZiBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKQEAgLTc3LDExICs4
NCwxNCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tFbGVtZW50QWN0aW9uVHlwZSk7
CiAtIChCT09MKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICop
YXNzaXN0YW50IHNob3VsZEluY2x1ZGVSZXZlYWxJbWFnZUFjdGlvbkZvckVsZW1lbnQ6KF9XS0Fj
dGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudDsKIC0gKHZvaWQpYWN0aW9uU2hlZXRBc3Npc3Rh
bnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgaGFuZGxlUmV2ZWFsSW1hZ2U6
KFVJSW1hZ2UgKilpbWFnZSB0aXRsZTooTlNTdHJpbmcgKil0aXRsZTsKICNlbmRpZgotCiBAZW5k
CiAKLSNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pICYmIFVTRShVSUNPTlRFWFRNRU5VKQotQGlu
dGVyZmFjZSBXS0FjdGlvblNoZWV0QXNzaXN0YW50IDogTlNPYmplY3QgPFdLQWN0aW9uU2hlZXRE
ZWxlZ2F0ZSwgREREZXRlY3Rpb25Db250cm9sbGVySW50ZXJhY3Rpb25EZWxlZ2F0ZSwgVUlDb250
ZXh0TWVudUludGVyYWN0aW9uRGVsZWdhdGU+CisjaWYgVVNFKFVJQ09OVEVYVE1FTlUpCitAaW50
ZXJmYWNlIFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgOiBOU09iamVjdCA8V0tBY3Rpb25TaGVldERl
bGVnYXRlLAorI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKK0RERGV0ZWN0aW9uQ29udHJvbGxl
ckludGVyYWN0aW9uRGVsZWdhdGUsCisjZW5kaWYKK1VJQ29udGV4dE1lbnVJbnRlcmFjdGlvbkRl
bGVnYXRlPgogLSAoQk9PTCloYXNDb250ZXh0TWVudUludGVyYWN0aW9uOwogI2Vsc2UKIEBpbnRl
cmZhY2UgV0tBY3Rpb25TaGVldEFzc2lzdGFudCA6IE5TT2JqZWN0IDxXS0FjdGlvblNoZWV0RGVs
ZWdhdGU+CkBAIC05MiwxNyArMTAyLDI2IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9X
S0VsZW1lbnRBY3Rpb25UeXBlKTsKIC0gKHZvaWQpc2hvd0xpbmtTaGVldDsKIC0gKHZvaWQpc2hv
d0ltYWdlU2hlZXQ7CiAtICh2b2lkKXNob3dEYXRhRGV0ZWN0b3JzVUlGb3JQb3NpdGlvbkluZm9y
bWF0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilw
b3NpdGlvbkluZm9ybWF0aW9uOworI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01F
TlVTKQorLSAodm9pZClzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51OihXZWJDb3JlOjpGbG9h
dFJlY3QmJil0YXJnZXRGcmFtZSBpdGVtczooVmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29udHJvbHND
b250ZXh0TWVudUl0ZW0+JiYpaXRlbXMgY29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6SUQpPiYmKWNv
bXBsZXRpb25IYW5kbGVyOworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhU
X01FTlVTKQogLSAodm9pZCljbGVhbnVwU2hlZXQ7CiAtICh2b2lkKXVwZGF0ZVNoZWV0UG9zaXRp
b247CiAtIChSZXRhaW5QdHI8TlNBcnJheTxfV0tFbGVtZW50QWN0aW9uICo+PilkZWZhdWx0QWN0
aW9uc0ZvckxpbmtTaGVldDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50SW5mbzsK
IC0gKFJldGFpblB0cjxOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4+KWRlZmF1bHRBY3Rpb25z
Rm9ySW1hZ2VTaGVldDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50SW5mbzsKIC0g
KEJPT0wpaXNTaG93aW5nU2hlZXQ7CiAtICh2b2lkKWludGVyYWN0aW9uRGlkU3RhcnRXaXRoUG9z
aXRpb25JbmZvcm1hdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQ
b3NpdGlvbiYpaW5mb3JtYXRpb247Ci0tIChOU0FycmF5ICopY3VycmVudEF2YWlsYWJsZUFjdGlv
blRpdGxlczsKIC0gKHZvaWQpaGFuZGxlRWxlbWVudEFjdGlvbldpdGhUeXBlOihfV0tFbGVtZW50
QWN0aW9uVHlwZSl0eXBlIGVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVu
dCBuZWVkc0ludGVyYWN0aW9uOihCT09MKW5lZWRzSW50ZXJhY3Rpb247CiAjaWYgVVNFKFVJQ09O
VEVYVE1FTlUpCiAtIChOU0FycmF5PFVJTWVudUVsZW1lbnQgKj4gKilzdWdnZXN0ZWRBY3Rpb25z
Rm9yQ29udGV4dE1lbnVXaXRoUG9zaXRpb25JbmZvcm1hdGlvbjooY29uc3QgV2ViS2l0OjpJbnRl
cmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpcG9zaXRpb25JbmZvcm1hdGlvbjsKICNlbmRp
ZgogQGVuZAogCitAaW50ZXJmYWNlIFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKFdLVGVzdGluZykK
Ky0gKE5TQXJyYXkgKiljdXJyZW50QXZhaWxhYmxlQWN0aW9uVGl0bGVzOworI2lmIEVOQUJMRShN
RURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorLSAoTlNBcnJheSAqKWN1cnJlbnRBdmFpbGFi
bGVNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtczsKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFf
Q09OVFJPTFNfQ09OVEVYVF9NRU5VUykKK0BlbmQKKwogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19G
QU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25T
aGVldEFzc2lzdGFudC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNo
ZWV0QXNzaXN0YW50Lm1tCmluZGV4IGRkNDdkNjdkZDZjYzE0MjYzMzQzYjNjYjIyOTc3ZmU3MzM3
MTI5NjQuLjhiYzFjNzc3ODBlMzkxMDBmYWQxOWRjZjY0Yjk1ZGVjYzU2MDEwYjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50
Lm1tCkBAIC0zOSwxMiArMzksMTcgQEAKICNpbXBvcnQgIl9XS0VsZW1lbnRBY3Rpb25JbnRlcm5h
bC5oIgogI2ltcG9ydCA8VUlLaXQvVUlWaWV3Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RhdGFEZXRl
Y3Rpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGF0aFV0aWxpdGllcy5oPgor
I2ltcG9ydCA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKyNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4K
ICNpbXBvcnQgPHd0Zi9XZWFrT2JqQ1B0ci5oPgogI2ltcG9ydCA8d3RmL2NvY29hL0VudGl0bGVt
ZW50cy5oPgogI2ltcG9ydCA8d3RmL2NvY29hL05TVVJMRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYv
Y29jb2EvVmVjdG9yQ29jb2EuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogI2lt
cG9ydCA8d3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmg+CiAKQEAgLTEwMCw2ICsxMDUsMTIg
QEAgQGltcGxlbWVudGF0aW9uIFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgewogI2lmIFVTRShVSUNP
TlRFWFRNRU5VKQogICAgIFJldGFpblB0cjxVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24+IF9kYXRh
RGV0ZWN0b3JDb250ZXh0TWVudUludGVyYWN0aW9uOwogI2VuZGlmCisjaWYgRU5BQkxFKE1FRElB
X0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisgICAgUmV0YWluUHRyPFVJQ29udGV4dE1lbnVJbnRl
cmFjdGlvbj4gX21lZGlhQ29udHJvbHNDb250ZXh0TWVudUludGVyYWN0aW9uOworICAgIFJldGFp
blB0cjxVSU1lbnU+IF9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnU7CisgICAgV2ViQ29yZTo6Rmxv
YXRSZWN0IF9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVUYXJnZXRGcmFtZTsKKyAgICBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklE
KT4gX21lZGlhQ29udHJvbHNDb250ZXh0TWVudUNhbGxiYWNrOworI2VuZGlmIC8vIEVOQUJMRShN
RURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQogICAgIFdlYWtPYmpDUHRyPFVJVmlldz4gX3Zp
ZXc7CiAgICAgQk9PTCBfbmVlZHNMaW5rSW5kaWNhdG9yOwogICAgIEJPT0wgX2lzUHJlc2VudGlu
Z0REVXNlckludGVyZmFjZTsKQEAgLTMxNSwxOSArMzI2LDYgQEAgLSAodm9pZClpbnRlcmFjdGlv
bkRpZFN0YXJ0V2l0aFBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rp
b25JbmYKICNlbmRpZgogfQogCi0tIChOU0FycmF5ICopY3VycmVudEF2YWlsYWJsZUFjdGlvblRp
dGxlcwotewotICAgIGlmICghX2ludGVyYWN0aW9uU2hlZXQpCi0gICAgICAgIHJldHVybiBAW107
Ci0gICAgCi0gICAgTlNNdXRhYmxlQXJyYXkgKmFycmF5ID0gW05TTXV0YWJsZUFycmF5IGFycmF5
XTsKLSAgICAKLSAgICBmb3IgKFVJQWxlcnRBY3Rpb24gKmFjdGlvbiBpbiBfaW50ZXJhY3Rpb25T
aGVldC5nZXQoKS5hY3Rpb25zKQotICAgICAgICBbYXJyYXkgYWRkT2JqZWN0OmFjdGlvbi50aXRs
ZV07Ci0gICAgCi0gICAgcmV0dXJuIGFycmF5OwotfQotCiAtIChPcHRpb25hbDxXZWJLaXQ6Oklu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uPiljdXJyZW50UG9zaXRpb25JbmZvcm1hdGlv
bgogewogICAgIHJldHVybiBfcG9zaXRpb25JbmZvcm1hdGlvbjsKQEAgLTY1MywzMCArNjUxLDcw
IEBAIC0gKHZvaWQpc2hvd0xpbmtTaGVldAogICAgICAgICBbc2VsZiBjbGVhbnVwU2hlZXRdOwog
fQogCi0jaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKKyNp
ZiBVU0UoVUlDT05URVhUTUVOVSkKKwogLSAodm9pZClyZW1vdmVDb250ZXh0TWVudUludGVyYWN0
aW9uCiB7CisgICAgQk9PTCBkaWRSZW1vdmUgPSBOTzsKKworI2lmIEVOQUJMRShEQVRBX0RFVEVD
VElPTikKICAgICBpZiAoX2RhdGFEZXRlY3RvckNvbnRleHRNZW51SW50ZXJhY3Rpb24pIHsKICAg
ICAgICAgW192aWV3IHJlbW92ZUludGVyYWN0aW9uOl9kYXRhRGV0ZWN0b3JDb250ZXh0TWVudUlu
dGVyYWN0aW9uLmdldCgpXTsKICAgICAgICAgX2RhdGFEZXRlY3RvckNvbnRleHRNZW51SW50ZXJh
Y3Rpb24gPSBuaWw7Ci0gICAgICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IocmVtb3ZlQ29udGV4dE1lbnVWaWV3SWZQb3NzaWJsZUZvckFjdGlvblNoZWV0QXNz
aXN0YW50OildKQotICAgICAgICAgICAgcmV0dXJuIFtfZGVsZWdhdGUgcmVtb3ZlQ29udGV4dE1l
bnVWaWV3SWZQb3NzaWJsZUZvckFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGZdOworICAgICAgICBk
aWRSZW1vdmUgPSBZRVM7CiAgICAgfQorI2VuZGlmIC8vIEVOQUJMRShEQVRBX0RFVEVDVElPTikK
KworI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorICAgIGlmIChfbWVk
aWFDb250cm9sc0NvbnRleHRNZW51SW50ZXJhY3Rpb24pIHsKKyAgICAgICAgW192aWV3IHJlbW92
ZUludGVyYWN0aW9uOl9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJbnRlcmFjdGlvbi5nZXQoKV07
CisgICAgICAgIF9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJbnRlcmFjdGlvbiA9IG5pbDsKKyAg
ICAgICAgZGlkUmVtb3ZlID0gWUVTOworCisgICAgICAgIF9tZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnUuY2xlYXIoKTsKKyAgICAgICAgX21lZGlhQ29udHJvbHNDb250ZXh0TWVudVRhcmdldEZyYW1l
ID0geyB9OworICAgICAgICBpZiAoYXV0byBtZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVDYWxsYmFj
ayA9IHN0ZDo6ZXhjaGFuZ2UoX21lZGlhQ29udHJvbHNDb250ZXh0TWVudUNhbGxiYWNrLCB7IH0p
KQorICAgICAgICAgICAgbWVkaWFDb250cm9sc0NvbnRleHRNZW51Q2FsbGJhY2soV2ViQ29yZTo6
TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6aW52YWxpZElEKTsKKyAgICB9CisjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisKKyAgICBpZiAoZGlkUmVt
b3ZlICYmIFtfZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihyZW1vdmVDb250
ZXh0TWVudVZpZXdJZlBvc3NpYmxlRm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6KV0pCisgICAgICAg
IFtfZGVsZWdhdGUgcmVtb3ZlQ29udGV4dE1lbnVWaWV3SWZQb3NzaWJsZUZvckFjdGlvblNoZWV0
QXNzaXN0YW50OnNlbGZdOwogfQogCiAtICh2b2lkKWVuc3VyZUNvbnRleHRNZW51SW50ZXJhY3Rp
b24KIHsKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAgICAgaWYgKCFfZGF0YURldGVjdG9y
Q29udGV4dE1lbnVJbnRlcmFjdGlvbikgewogICAgICAgICBfZGF0YURldGVjdG9yQ29udGV4dE1l
bnVJbnRlcmFjdGlvbiA9IGFkb3B0TlMoW1tVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gYWxsb2Nd
IGluaXRXaXRoRGVsZWdhdGU6c2VsZl0pOwogICAgICAgICBbX3ZpZXcgYWRkSW50ZXJhY3Rpb246
X2RhdGFEZXRlY3RvckNvbnRleHRNZW51SW50ZXJhY3Rpb24uZ2V0KCldOwogICAgIH0KKyNlbmRp
ZiAvLyBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNf
Q09OVEVYVF9NRU5VUykKKyAgICBpZiAoIV9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJbnRlcmFj
dGlvbikgeworICAgICAgICBfbWVkaWFDb250cm9sc0NvbnRleHRNZW51SW50ZXJhY3Rpb24gPSBh
ZG9wdE5TKFtbVUlDb250ZXh0TWVudUludGVyYWN0aW9uIGFsbG9jXSBpbml0V2l0aERlbGVnYXRl
OnNlbGZdKTsKKyAgICAgICAgW192aWV3IGFkZEludGVyYWN0aW9uOl9tZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnVJbnRlcmFjdGlvbi5nZXQoKV07CisgICAgfQorI2VuZGlmIC8vIEVOQUJMRShNRURJ
QV9DT05UUk9MU19DT05URVhUX01FTlVTKQogfQogCiAtIChCT09MKWhhc0NvbnRleHRNZW51SW50
ZXJhY3Rpb24KIHsKLSAgICByZXR1cm4gISFfZGF0YURldGVjdG9yQ29udGV4dE1lbnVJbnRlcmFj
dGlvbjsKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisgICAgaWYgKF9kYXRhRGV0ZWN0b3JD
b250ZXh0TWVudUludGVyYWN0aW9uKQorICAgICAgICByZXR1cm4gWUVTOworI2VuZGlmIC8vIEVO
QUJMRShEQVRBX0RFVEVDVElPTikKKworI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhU
X01FTlVTKQorICAgIGlmIChfbWVkaWFDb250cm9sc0NvbnRleHRNZW51SW50ZXJhY3Rpb24pCisg
ICAgICAgIHJldHVybiBZRVM7CisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRF
WFRfTUVOVVMpCisKKyAgICByZXR1cm4gTk87CiB9Ci0jZW5kaWYKKworI2VuZGlmIC8vIFVTRShV
SUNPTlRFWFRNRU5VKQogCiAtICh2b2lkKXNob3dEYXRhRGV0ZWN0b3JzVUlGb3JQb3NpdGlvbklu
Zm9ybWF0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9u
Jilwb3NpdGlvbkluZm9ybWF0aW9uCiB7CkBAIC03MzgsNiArNzc2LDU3IEBAIC0gKHZvaWQpc2hv
d0RhdGFEZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktpdDo6SW50
ZXJhY3Rpb25JbmZvCiAjZW5kaWYgLy8gRU5BQkxFKERBVEFfREVURUNUSU9OKQogfQogCisjaWYg
RU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisKKy0gKE5TQXJyYXk8VUlNZW51
RWxlbWVudCAqPiAqKV91aU1lbnVFbGVtZW50c0Zvck1lZGlhQ29udHJvbENvbnRleHRNZW51SXRl
bXM6KFZlY3RvcjxXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiYmKSBpdGVt
cworeworICAgIHJldHVybiBjcmVhdGVOU0FycmF5KGl0ZW1zLCBbJl0gKFdlYkNvcmU6Ok1lZGlh
Q29udHJvbHNDb250ZXh0TWVudUl0ZW0mIGl0ZW0pIC0+IFVJTWVudUVsZW1lbnQgKiB7CisgICAg
ICAgIFVJSW1hZ2UgKmltYWdlID0gIWl0ZW0uaWNvbi5pc0VtcHR5KCkgPyBbVUlJbWFnZSBzeXN0
ZW1JbWFnZU5hbWVkOldURk1vdmUoaXRlbS5pY29uKV0gOiBuaWw7CisKKyAgICAgICAgaWYgKCFp
dGVtLmNoaWxkcmVuLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybiBbVUlNZW51IG1lbnVX
aXRoVGl0bGU6V1RGTW92ZShpdGVtLnRpdGxlKSBpbWFnZTppbWFnZSBpZGVudGlmaWVyOm5pbCBv
cHRpb25zOjAgY2hpbGRyZW46W3NlbGYgX3VpTWVudUVsZW1lbnRzRm9yTWVkaWFDb250cm9sQ29u
dGV4dE1lbnVJdGVtczpXVEZNb3ZlKGl0ZW0uY2hpbGRyZW4pXV07CisKKyAgICAgICAgYXV0byBz
ZWxlY3RlZEl0ZW1JRCA9IGl0ZW0uaWQ7CisgICAgICAgIFVJQWN0aW9uICphY3Rpb24gPSBbVUlB
Y3Rpb24gYWN0aW9uV2l0aFRpdGxlOldURk1vdmUoaXRlbS50aXRsZSkgaW1hZ2U6aW1hZ2UgaWRl
bnRpZmllcjpuaWwgaGFuZGxlcjpbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0FjdGlvblNoZWV0
QXNzaXN0YW50PihzZWxmKSwgc2VsZWN0ZWRJdGVtSURdIChVSUFjdGlvbiAqKSB7CisgICAgICAg
ICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKKyAgICAgICAgICAgIGlmICgh
c3Ryb25nU2VsZikKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIHN0cm9u
Z1NlbGYtPl9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVDYWxsYmFjayhzZWxlY3RlZEl0ZW1JRCk7
CisgICAgICAgIH1dOworICAgICAgICBpZiAoaXRlbS5pc0NoZWNrZWQpCisgICAgICAgICAgICBh
Y3Rpb24uc3RhdGUgPSBVSU1lbnVFbGVtZW50U3RhdGVPbjsKKyAgICAgICAgcmV0dXJuIGFjdGlv
bjsKKyAgICB9KS5hdXRvcmVsZWFzZSgpOworfQorCistICh2b2lkKXNob3dNZWRpYUNvbnRyb2xz
Q29udGV4dE1lbnU6KFdlYkNvcmU6OkZsb2F0UmVjdCYmKXRhcmdldEZyYW1lIGl0ZW1zOihWZWN0
b3I8V2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4mJilpdGVtcyBjb21wbGV0
aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpNZWRpYUNvbnRyb2xz
Q29udGV4dE1lbnVJdGVtOjpJRCk+JiYpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBBU1NFUlQo
IV9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJbnRlcmFjdGlvbik7CisgICAgQVNTRVJUKCFfbWVk
aWFDb250cm9sc0NvbnRleHRNZW51KTsKKyAgICBBU1NFUlQoIV9tZWRpYUNvbnRyb2xzQ29udGV4
dE1lbnVDYWxsYmFjayk7CisKKyAgICBTdHJpbmcgbWVudVRpdGxlOworICAgIGlmIChpdGVtcy5z
aXplKCkgPT0gMSkgeworICAgICAgICBtZW51VGl0bGUgPSBXVEZNb3ZlKGl0ZW1zWzBdLnRpdGxl
KTsKKyAgICAgICAgaXRlbXMgPSBXVEZNb3ZlKGl0ZW1zWzBdLmNoaWxkcmVuKTsKKyAgICB9CisK
KyAgICBpZiAoaXRlbXMuaXNFbXB0eSgpKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OmludmFsaWRJRCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBfbWVkaWFDb250cm9sc0NvbnRleHRNZW51ID0gW1VJTWVu
dSBtZW51V2l0aFRpdGxlOldURk1vdmUobWVudVRpdGxlKSBpbWFnZTpuaWwgaWRlbnRpZmllcjpu
aWwgb3B0aW9uczowIGNoaWxkcmVuOltzZWxmIF91aU1lbnVFbGVtZW50c0Zvck1lZGlhQ29udHJv
bENvbnRleHRNZW51SXRlbXM6V1RGTW92ZShpdGVtcyldXTsKKyAgICBfbWVkaWFDb250cm9sc0Nv
bnRleHRNZW51VGFyZ2V0RnJhbWUgPSBXVEZNb3ZlKHRhcmdldEZyYW1lKTsKKyAgICBfbWVkaWFD
b250cm9sc0NvbnRleHRNZW51Q2FsbGJhY2sgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKTsK
KworICAgIFtzZWxmIGVuc3VyZUNvbnRleHRNZW51SW50ZXJhY3Rpb25dOworICAgIFtfbWVkaWFD
b250cm9sc0NvbnRleHRNZW51SW50ZXJhY3Rpb24gX3ByZXNlbnRNZW51QXRMb2NhdGlvbjpfbWVk
aWFDb250cm9sc0NvbnRleHRNZW51VGFyZ2V0RnJhbWUuY2VudGVyKCldOworfQorCisjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisKICNpZiBVU0UoVUlDT05U
RVhUTUVOVSkKIAogc3RhdGljIE5TQXJyYXk8VUlNZW51RWxlbWVudCAqPiAqbWVudUVsZW1lbnRz
RnJvbURlZmF1bHRBY3Rpb25zKFJldGFpblB0cjxOU0FycmF5PiBkZWZhdWx0RWxlbWVudEFjdGlv
bnMsIFJldGFpblB0cjxfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbz4gZWxlbWVudEluZm8pCkBAIC03
NTksNDggKzg0OCw4MSBAQCAtIChOU0FycmF5PFVJTWVudUVsZW1lbnQgKj4gKilzdWdnZXN0ZWRB
Y3Rpb25zRm9yQ29udGV4dE1lbnVXaXRoUG9zaXRpb25JbmZvcm1hdAogICAgIHJldHVybiBtZW51
RWxlbWVudHNGcm9tRGVmYXVsdEFjdGlvbnMoZGVmYXVsdEFjdGlvbnNGcm9tQXNzaXN0YW50LCBl
bGVtZW50SW5mbyk7CiB9CiAKLSNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAKIC0gKFVJQ29u
dGV4dE1lbnVDb25maWd1cmF0aW9uICopY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0
TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gY29uZmlndXJhdGlvbkZvck1lbnVBdExvY2F0
aW9uOihDR1BvaW50KWxvY2F0aW9uCiB7Ci0gICAgREREZXRlY3Rpb25Db250cm9sbGVyICpjb250
cm9sbGVyID0gW2dldERERGV0ZWN0aW9uQ29udHJvbGxlckNsYXNzKCkgc2hhcmVkQ29udHJvbGxl
cl07Ci0gICAgTlNEaWN0aW9uYXJ5ICpjb250ZXh0ID0gbmlsOwotICAgIE5TU3RyaW5nICp0ZXh0
QXRTZWxlY3Rpb24gPSBuaWw7CisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorICAgIGlmIChp
bnRlcmFjdGlvbiA9PSBfZGF0YURldGVjdG9yQ29udGV4dE1lbnVJbnRlcmFjdGlvbikgeworICAg
ICAgICBERERldGVjdGlvbkNvbnRyb2xsZXIgKmNvbnRyb2xsZXIgPSBbZ2V0REREZXRlY3Rpb25D
b250cm9sbGVyQ2xhc3MoKSBzaGFyZWRDb250cm9sbGVyXTsKKyAgICAgICAgTlNEaWN0aW9uYXJ5
ICpjb250ZXh0ID0gbmlsOworICAgICAgICBOU1N0cmluZyAqdGV4dEF0U2VsZWN0aW9uID0gbmls
OwogCi0gICAgaWYgKFtfZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihkYXRh
RGV0ZWN0aW9uQ29udGV4dEZvckFjdGlvblNoZWV0QXNzaXN0YW50OnBvc2l0aW9uSW5mb3JtYXRp
b246KV0pCi0gICAgICAgIGNvbnRleHQgPSBbX2RlbGVnYXRlIGRhdGFEZXRlY3Rpb25Db250ZXh0
Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBwb3NpdGlvbkluZm9ybWF0aW9uOipfcG9zaXRp
b25JbmZvcm1hdGlvbl07Ci0gICAgaWYgKFtfZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3RvcihzZWxlY3RlZFRleHRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDopXSkKLSAgICAgICAg
dGV4dEF0U2VsZWN0aW9uID0gW19kZWxlZ2F0ZSBzZWxlY3RlZFRleHRGb3JBY3Rpb25TaGVldEFz
c2lzdGFudDpzZWxmXTsKKyAgICAgICAgaWYgKFtfZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3RvcihkYXRhRGV0ZWN0aW9uQ29udGV4dEZvckFjdGlvblNoZWV0QXNzaXN0YW50OnBv
c2l0aW9uSW5mb3JtYXRpb246KV0pCisgICAgICAgICAgICBjb250ZXh0ID0gW19kZWxlZ2F0ZSBk
YXRhRGV0ZWN0aW9uQ29udGV4dEZvckFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGYgcG9zaXRpb25J
bmZvcm1hdGlvbjoqX3Bvc2l0aW9uSW5mb3JtYXRpb25dOworICAgICAgICBpZiAoW19kZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNlbGVjdGVkVGV4dEZvckFjdGlvblNoZWV0
QXNzaXN0YW50OildKQorICAgICAgICAgICAgdGV4dEF0U2VsZWN0aW9uID0gW19kZWxlZ2F0ZSBz
ZWxlY3RlZFRleHRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmXTsKIAotICAgIE5TRGljdGlv
bmFyeSAqbmV3Q29udGV4dCA9IG5pbDsKLSAgICBERFJlc3VsdFJlZiBkZFJlc3VsdCA9IFtjb250
cm9sbGVyIHJlc3VsdEZvclVSTDpfcG9zaXRpb25JbmZvcm1hdGlvbi0+dXJsIGlkZW50aWZpZXI6
X3Bvc2l0aW9uSW5mb3JtYXRpb24tPmRhdGFEZXRlY3RvcklkZW50aWZpZXIgc2VsZWN0ZWRUZXh0
OnRleHRBdFNlbGVjdGlvbiByZXN1bHRzOl9wb3NpdGlvbkluZm9ybWF0aW9uLT5kYXRhRGV0ZWN0
b3JSZXN1bHRzLmdldCgpIGNvbnRleHQ6Y29udGV4dCBleHRlbmRlZENvbnRleHQ6Jm5ld0NvbnRl
eHRdOworICAgICAgICBOU0RpY3Rpb25hcnkgKm5ld0NvbnRleHQgPSBuaWw7CisgICAgICAgIERE
UmVzdWx0UmVmIGRkUmVzdWx0ID0gW2NvbnRyb2xsZXIgcmVzdWx0Rm9yVVJMOl9wb3NpdGlvbklu
Zm9ybWF0aW9uLT51cmwgaWRlbnRpZmllcjpfcG9zaXRpb25JbmZvcm1hdGlvbi0+ZGF0YURldGVj
dG9ySWRlbnRpZmllciBzZWxlY3RlZFRleHQ6dGV4dEF0U2VsZWN0aW9uIHJlc3VsdHM6X3Bvc2l0
aW9uSW5mb3JtYXRpb24tPmRhdGFEZXRlY3RvclJlc3VsdHMuZ2V0KCkgY29udGV4dDpjb250ZXh0
IGV4dGVuZGVkQ29udGV4dDombmV3Q29udGV4dF07CiAKLSAgICBDR1JlY3Qgc291cmNlUmVjdDsK
LSAgICBpZiAoX3Bvc2l0aW9uSW5mb3JtYXRpb24tPmlzTGluaykKLSAgICAgICAgc291cmNlUmVj
dCA9IF9wb3NpdGlvbkluZm9ybWF0aW9uLT5saW5rSW5kaWNhdG9yLnRleHRCb3VuZGluZ1JlY3RJ
blJvb3RWaWV3Q29vcmRpbmF0ZXM7Ci0gICAgZWxzZQotICAgICAgICBzb3VyY2VSZWN0ID0gX3Bv
c2l0aW9uSW5mb3JtYXRpb24tPmJvdW5kczsKKyAgICAgICAgQ0dSZWN0IHNvdXJjZVJlY3Q7Cisg
ICAgICAgIGlmIChfcG9zaXRpb25JbmZvcm1hdGlvbi0+aXNMaW5rKQorICAgICAgICAgICAgc291
cmNlUmVjdCA9IF9wb3NpdGlvbkluZm9ybWF0aW9uLT5saW5rSW5kaWNhdG9yLnRleHRCb3VuZGlu
Z1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXM7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNv
dXJjZVJlY3QgPSBfcG9zaXRpb25JbmZvcm1hdGlvbi0+Ym91bmRzOwogCi0gICAgYXV0byBkZENv
bnRleHRNZW51QWN0aW9uQ2xhc3MgPSBnZXRERENvbnRleHRNZW51QWN0aW9uQ2xhc3MoKTsKLSAg
ICBhdXRvIGZpbmFsQ29udGV4dCA9IFtkZENvbnRleHRNZW51QWN0aW9uQ2xhc3MgdXBkYXRlQ29u
dGV4dDpuZXdDb250ZXh0IHdpdGhTb3VyY2VSZWN0OnNvdXJjZVJlY3RdOworICAgICAgICBhdXRv
IGRkQ29udGV4dE1lbnVBY3Rpb25DbGFzcyA9IGdldEREQ29udGV4dE1lbnVBY3Rpb25DbGFzcygp
OworICAgICAgICBhdXRvIGZpbmFsQ29udGV4dCA9IFtkZENvbnRleHRNZW51QWN0aW9uQ2xhc3Mg
dXBkYXRlQ29udGV4dDpuZXdDb250ZXh0IHdpdGhTb3VyY2VSZWN0OnNvdXJjZVJlY3RdOwogCi0g
ICAgaWYgKGRkUmVzdWx0KQotICAgICAgICByZXR1cm4gW2RkQ29udGV4dE1lbnVBY3Rpb25DbGFz
cyBjb250ZXh0TWVudUNvbmZpZ3VyYXRpb25XaXRoUmVzdWx0OmRkUmVzdWx0IGluVmlldzpfdmll
dy5nZXRBdXRvcmVsZWFzZWQoKSBjb250ZXh0OmZpbmFsQ29udGV4dCBtZW51SWRlbnRpZmllcjpu
aWxdOwotICAgIHJldHVybiBbZGRDb250ZXh0TWVudUFjdGlvbkNsYXNzIGNvbnRleHRNZW51Q29u
ZmlndXJhdGlvbldpdGhVUkw6X3Bvc2l0aW9uSW5mb3JtYXRpb24tPnVybCBpblZpZXc6X3ZpZXcu
Z2V0QXV0b3JlbGVhc2VkKCkgY29udGV4dDpmaW5hbENvbnRleHQgbWVudUlkZW50aWZpZXI6bmls
XTsKKyAgICAgICAgaWYgKGRkUmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIFtkZENvbnRleHRN
ZW51QWN0aW9uQ2xhc3MgY29udGV4dE1lbnVDb25maWd1cmF0aW9uV2l0aFJlc3VsdDpkZFJlc3Vs
dCBpblZpZXc6X3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkgY29udGV4dDpmaW5hbENvbnRleHQgbWVu
dUlkZW50aWZpZXI6bmlsXTsKKyAgICAgICAgcmV0dXJuIFtkZENvbnRleHRNZW51QWN0aW9uQ2xh
c3MgY29udGV4dE1lbnVDb25maWd1cmF0aW9uV2l0aFVSTDpfcG9zaXRpb25JbmZvcm1hdGlvbi0+
dXJsIGluVmlldzpfdmlldy5nZXRBdXRvcmVsZWFzZWQoKSBjb250ZXh0OmZpbmFsQ29udGV4dCBt
ZW51SWRlbnRpZmllcjpuaWxdOworICAgIH0KKyNlbmRpZiAvLyBFTkFCTEUoREFUQV9ERVRFQ1RJ
T04pCisKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyAgICBpZiAo
aW50ZXJhY3Rpb24gPT0gX21lZGlhQ29udHJvbHNDb250ZXh0TWVudUludGVyYWN0aW9uKSB7Cisg
ICAgICAgIHJldHVybiBbVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbldp
dGhJZGVudGlmaWVyOm5pbCBwcmV2aWV3UHJvdmlkZXI6bmlsIGFjdGlvblByb3ZpZGVyOlt3ZWFr
U2VsZiA9IFdlYWtPYmpDUHRyPFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQ+KHNlbGYpXSAoTlNBcnJh
eTxVSU1lbnVFbGVtZW50ICo+ICpzdWdnZXN0ZWRBY3Rpb25zKSAtPiBVSU1lbnUgKiB7CisgICAg
ICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKKyAgICAgICAgICAgIGlm
ICghc3Ryb25nU2VsZikKKyAgICAgICAgICAgICAgICByZXR1cm4gbmlsOworCisgICAgICAgICAg
ICByZXR1cm4gc3Ryb25nU2VsZi0+X21lZGlhQ29udHJvbHNDb250ZXh0TWVudS5nZXQoKTsKKyAg
ICAgICAgfV07CisgICAgfQorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhU
X01FTlVTKQorCisgICAgcmV0dXJuIG5pbDsKIH0KIAogLSAoVUlUYXJnZXRlZFByZXZpZXcgKilj
b250ZXh0TWVudUludGVyYWN0aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gKilpbnRlcmFj
dGlvbiBwcmV2aWV3Rm9ySGlnaGxpZ2h0aW5nTWVudVdpdGhDb25maWd1cmF0aW9uOihVSUNvbnRl
eHRNZW51Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24KIHsKLSAgICBhdXRvIGRlbGVnYXRl
ID0gX2RlbGVnYXRlLmdldCgpOwotICAgIENHUG9pbnQgY2VudGVyID0gX3Bvc2l0aW9uSW5mb3Jt
YXRpb24tPnJlcXVlc3QucG9pbnQ7Ci0gICAgCi0gICAgaWYgKFtkZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKGNyZWF0ZVRhcmdldGVkQ29udGV4dE1lbnVIaW50Rm9yQWN0aW9u
U2hlZXRBc3Npc3RhbnQ6KV0pCi0gICAgICAgIHJldHVybiBbZGVsZWdhdGUgY3JlYXRlVGFyZ2V0
ZWRDb250ZXh0TWVudUhpbnRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmXTsKLSAgICAKLSAg
ICBSZXRhaW5QdHI8VUlQcmV2aWV3UGFyYW1ldGVycz4gdW51c2VkUHJldmlld1BhcmFtZXRlcnMg
PSBhZG9wdE5TKFtbVUlQcmV2aWV3UGFyYW1ldGVycyBhbGxvY10gaW5pdF0pOwotICAgIFJldGFp
blB0cjxVSVByZXZpZXdUYXJnZXQ+IHByZXZpZXdUYXJnZXQgPSBhZG9wdE5TKFtbVUlQcmV2aWV3
VGFyZ2V0IGFsbG9jXSBpbml0V2l0aENvbnRhaW5lcjpfdmlldy5nZXRBdXRvcmVsZWFzZWQoKSBj
ZW50ZXI6Y2VudGVyXSk7Ci0gICAgUmV0YWluUHRyPFVJVGFyZ2V0ZWRQcmV2aWV3PiBwcmV2aWV3
ID0gYWRvcHROUyhbW1VJVGFyZ2V0ZWRQcmV2aWV3IGFsbG9jXSBpbml0V2l0aFZpZXc6X3ZpZXcu
Z2V0QXV0b3JlbGVhc2VkKCkgcGFyYW1ldGVyczp1bnVzZWRQcmV2aWV3UGFyYW1ldGVycy5nZXQo
KSB0YXJnZXQ6cHJldmlld1RhcmdldC5nZXQoKV0pOwotICAgIHJldHVybiBwcmV2aWV3LmF1dG9y
ZWxlYXNlKCk7CisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorICAgIGlmIChpbnRlcmFjdGlv
biA9PSBfZGF0YURldGVjdG9yQ29udGV4dE1lbnVJbnRlcmFjdGlvbikgeworICAgICAgICBhdXRv
IGRlbGVnYXRlID0gX2RlbGVnYXRlLmdldCgpOworICAgICAgICBDR1BvaW50IGNlbnRlciA9IF9w
b3NpdGlvbkluZm9ybWF0aW9uLT5yZXF1ZXN0LnBvaW50OworCisgICAgICAgIGlmIChbZGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihjcmVhdGVUYXJnZXRlZENvbnRleHRNZW51
SGludEZvckFjdGlvblNoZWV0QXNzaXN0YW50OildKQorICAgICAgICAgICAgcmV0dXJuIFtkZWxl
Z2F0ZSBjcmVhdGVUYXJnZXRlZENvbnRleHRNZW51SGludEZvckFjdGlvblNoZWV0QXNzaXN0YW50
OnNlbGZdOworCisgICAgICAgIFJldGFpblB0cjxVSVByZXZpZXdQYXJhbWV0ZXJzPiB1bnVzZWRQ
cmV2aWV3UGFyYW1ldGVycyA9IGFkb3B0TlMoW1tVSVByZXZpZXdQYXJhbWV0ZXJzIGFsbG9jXSBp
bml0XSk7CisgICAgICAgIFJldGFpblB0cjxVSVByZXZpZXdUYXJnZXQ+IHByZXZpZXdUYXJnZXQg
PSBhZG9wdE5TKFtbVUlQcmV2aWV3VGFyZ2V0IGFsbG9jXSBpbml0V2l0aENvbnRhaW5lcjpfdmll
dy5nZXRBdXRvcmVsZWFzZWQoKSBjZW50ZXI6Y2VudGVyXSk7CisgICAgICAgIFJldGFpblB0cjxV
SVRhcmdldGVkUHJldmlldz4gcHJldmlldyA9IGFkb3B0TlMoW1tVSVRhcmdldGVkUHJldmlldyBh
bGxvY10gaW5pdFdpdGhWaWV3Ol92aWV3LmdldEF1dG9yZWxlYXNlZCgpIHBhcmFtZXRlcnM6dW51
c2VkUHJldmlld1BhcmFtZXRlcnMuZ2V0KCkgdGFyZ2V0OnByZXZpZXdUYXJnZXQuZ2V0KCldKTsK
KyAgICAgICAgcmV0dXJuIHByZXZpZXcuYXV0b3JlbGVhc2UoKTsKKyAgICB9CisjZW5kaWYgLy8g
RU5BQkxFKERBVEFfREVURUNUSU9OKQorCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRF
WFRfTUVOVVMpCisgICAgaWYgKGludGVyYWN0aW9uID09IF9tZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnVJbnRlcmFjdGlvbikgeworICAgICAgICBhdXRvIGVtcHR5VmlldyA9IGFkb3B0TlMoW1tVSVZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6X21lZGlhQ29udHJvbHNDb250ZXh0TWVudVRhcmdldEZy
YW1lXSk7CisgICAgICAgIGF1dG8gcHJldmlld1BhcmFtZXRlcnMgPSBhZG9wdE5TKFtbVUlQcmV2
aWV3UGFyYW1ldGVycyBhbGxvY10gaW5pdF0pOworICAgICAgICBhdXRvIHByZXZpZXdUYXJnZXQg
PSBhZG9wdE5TKFtbVUlQcmV2aWV3VGFyZ2V0IGFsbG9jXSBpbml0V2l0aENvbnRhaW5lcjpfdmll
dy5nZXRBdXRvcmVsZWFzZWQoKSBjZW50ZXI6X21lZGlhQ29udHJvbHNDb250ZXh0TWVudVRhcmdl
dEZyYW1lLmNlbnRlcigpXSk7CisgICAgICAgIGF1dG8gcHJldmlldyA9IGFkb3B0TlMoW1tVSVRh
cmdldGVkUHJldmlldyBhbGxvY10gaW5pdFdpdGhWaWV3OmVtcHR5Vmlldy5nZXQoKSBwYXJhbWV0
ZXJzOnByZXZpZXdQYXJhbWV0ZXJzLmdldCgpIHRhcmdldDpwcmV2aWV3VGFyZ2V0LmdldCgpXSk7
CisgICAgICAgIHJldHVybiBwcmV2aWV3LmF1dG9yZWxlYXNlKCk7CisgICAgfQorI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorCisgICAgcmV0dXJuIG5pbDsK
IH0KIAogLSAoX1VJQ29udGV4dE1lbnVTdHlsZSAqKV9jb250ZXh0TWVudUludGVyYWN0aW9uOihV
SUNvbnRleHRNZW51SW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBzdHlsZUZvck1lbnVXaXRoQ29u
ZmlndXJhdGlvbjooVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uCkBA
IC04MTAsMjIgKzkzMiw0NSBAQCAtIChfVUlDb250ZXh0TWVudVN0eWxlICopX2NvbnRleHRNZW51
SW50ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiAqKWludAogICAgIHJldHVybiBz
dHlsZTsKIH0KIAorLSAodm9pZCljb250ZXh0TWVudUludGVyYWN0aW9uOihVSUNvbnRleHRNZW51
SW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiB3aWxsRGlzcGxheU1lbnVGb3JDb25maWd1cmF0aW9u
OihVSUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24gYW5pbWF0b3I6KGlk
IDxVSUNvbnRleHRNZW51SW50ZXJhY3Rpb25BbmltYXRpbmc+KWFuaW1hdG9yCit7CisgICAgW2Fu
aW1hdG9yIGFkZENvbXBsZXRpb246W3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tBY3Rpb25TaGVl
dEFzc2lzdGFudD4oc2VsZildIHsKKyAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYu
Z2V0KCk7CisgICAgICAgIGlmICghc3Ryb25nU2VsZikKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBpZiAoW3N0cm9uZ1NlbGYtPl9kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKGFjdGlvblNoZWV0QXNzaXN0YW50RGlkU2hvd0NvbnRleHRNZW51OildKQorICAgICAg
ICAgICAgW3N0cm9uZ1NlbGYtPl9kZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFudERpZFNob3dD
b250ZXh0TWVudTpzdHJvbmdTZWxmLmdldCgpXTsKKyAgICB9XTsKK30KKwogLSAodm9pZCljb250
ZXh0TWVudUludGVyYWN0aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gKilpbnRlcmFjdGlv
biB3aWxsRW5kRm9yQ29uZmlndXJhdGlvbjooVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24gKilj
b25maWd1cmF0aW9uIGFuaW1hdG9yOihpZDxVSUNvbnRleHRNZW51SW50ZXJhY3Rpb25BbmltYXRp
bmc+KWFuaW1hdG9yCiB7Ci0gICAgW2FuaW1hdG9yIGFkZENvbXBsZXRpb246XnsKLSAgICAgICAg
W3NlbGYgcmVtb3ZlQ29udGV4dE1lbnVJbnRlcmFjdGlvbl07CisgICAgW2FuaW1hdG9yIGFkZENv
bXBsZXRpb246W3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tBY3Rpb25TaGVldEFzc2lzdGFudD4o
c2VsZildIHsKKyAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CisgICAg
ICAgIGlmICghc3Ryb25nU2VsZikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAo
W3N0cm9uZ1NlbGYtPl9kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGFjdGlv
blNoZWV0QXNzaXN0YW50RGlkRGlzbWlzc0NvbnRleHRNZW51OildKQorICAgICAgICAgICAgW3N0
cm9uZ1NlbGYtPl9kZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFudERpZERpc21pc3NDb250ZXh0
TWVudTpzdHJvbmdTZWxmLmdldCgpXTsKKworICAgICAgICBbc3Ryb25nU2VsZiByZW1vdmVDb250
ZXh0TWVudUludGVyYWN0aW9uXTsKICAgICB9XTsKIH0KIAogLSAoTlNBcnJheTxVSU1lbnVFbGVt
ZW50ICo+ICopX2NvbnRleHRNZW51SW50ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlv
biAqKWludGVyYWN0aW9uIG92ZXJyaWRlU3VnZ2VzdGVkQWN0aW9uc0ZvckNvbmZpZ3VyYXRpb246
KFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbgogewotICAgIGlmICgh
X3Bvc2l0aW9uSW5mb3JtYXRpb24pCi0gICAgICAgIHJldHVybiBuaWw7Ci0gICAgcmV0dXJuIFtz
ZWxmIHN1Z2dlc3RlZEFjdGlvbnNGb3JDb250ZXh0TWVudVdpdGhQb3NpdGlvbkluZm9ybWF0aW9u
OipfcG9zaXRpb25JbmZvcm1hdGlvbl07Ci19Ci0KKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04p
CisgICAgaWYgKGludGVyYWN0aW9uID09IF9kYXRhRGV0ZWN0b3JDb250ZXh0TWVudUludGVyYWN0
aW9uKSB7CisgICAgICAgIGlmICghX3Bvc2l0aW9uSW5mb3JtYXRpb24pCisgICAgICAgICAgICBy
ZXR1cm4gbmlsOworICAgICAgICByZXR1cm4gW3NlbGYgc3VnZ2VzdGVkQWN0aW9uc0ZvckNvbnRl
eHRNZW51V2l0aFBvc2l0aW9uSW5mb3JtYXRpb246Kl9wb3NpdGlvbkluZm9ybWF0aW9uXTsKKyAg
ICB9CiAjZW5kaWYgLy8gRU5BQkxFKERBVEFfREVURUNUSU9OKQogCisgICAgcmV0dXJuIG5pbDsK
K30KKwogI2VuZGlmIC8vIFVTRShVSUNPTlRFWFRNRU5VKQogCiAtICh2b2lkKWhhbmRsZUVsZW1l
bnRBY3Rpb25XaXRoVHlwZTooX1dLRWxlbWVudEFjdGlvblR5cGUpdHlwZSBlbGVtZW50OihfV0tB
Y3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgbmVlZHNJbnRlcmFjdGlvbjooQk9PTCluZWVk
c0ludGVyYWN0aW9uCkBAIC04ODYsNiArMTAzMSw1OSBAQCAtICh2b2lkKWNsZWFudXBTaGVldAog
ICAgIF9oYXNQZW5kaW5nQWN0aW9uU2hlZXQgPSBOTzsKIH0KIAorI3ByYWdtYSBtYXJrIC0gV0tU
ZXN0aW5nCisKKy0gKE5TQXJyYXkgKiljdXJyZW50QXZhaWxhYmxlQWN0aW9uVGl0bGVzCit7Cisg
ICAgaWYgKCFfaW50ZXJhY3Rpb25TaGVldCkKKyAgICAgICAgcmV0dXJuIEBbXTsKKworICAgIE5T
TXV0YWJsZUFycmF5ICphcnJheSA9IFtOU011dGFibGVBcnJheSBhcnJheV07CisKKyAgICBmb3Ig
KFVJQWxlcnRBY3Rpb24gKmFjdGlvbiBpbiBfaW50ZXJhY3Rpb25TaGVldC5nZXQoKS5hY3Rpb25z
KQorICAgICAgICBbYXJyYXkgYWRkT2JqZWN0OmFjdGlvbi50aXRsZV07CisKKyAgICByZXR1cm4g
YXJyYXk7Cit9CisKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKwor
LSAoTlNEaWN0aW9uYXJ5ICopX2NvbnRlbnRzT2ZDb250ZXh0TWVudUl0ZW06KFVJTWVudUVsZW1l
bnQgKilpdGVtCit7CisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSogcmVzdWx0ID0gTlNNdXRhYmxl
RGljdGlvbmFyeS5kaWN0aW9uYXJ5OworCisgICAgaWYgKGl0ZW0udGl0bGUubGVuZ3RoKQorICAg
ICAgICByZXN1bHRbQCJ0aXRsZSJdID0gaXRlbS50aXRsZTsKKworICAgIGlmIChbaXRlbSBpc0tp
bmRPZkNsYXNzOlVJTWVudS5jbGFzc10pIHsKKyAgICAgICAgVUlNZW51ICptZW51ID0gKFVJTWVu
dSAqKWl0ZW07CisKKyAgICAgICAgTlNNdXRhYmxlQXJyYXkgKmNoaWxkcmVuID0gW05TTXV0YWJs
ZUFycmF5IGFycmF5V2l0aENhcGFjaXR5Om1lbnUuY2hpbGRyZW4uY291bnRdOworICAgICAgICBm
b3IgKFVJTWVudUVsZW1lbnQgKmNoaWxkIGluIG1lbnUuY2hpbGRyZW4pCisgICAgICAgICAgICBb
Y2hpbGRyZW4gYWRkT2JqZWN0OltzZWxmIF9jb250ZW50c09mQ29udGV4dE1lbnVJdGVtOmNoaWxk
XV07CisgICAgICAgIHJlc3VsdFtAImNoaWxkcmVuIl0gPSBjaGlsZHJlbjsKKyAgICB9CisKKyAg
ICBpZiAoW2l0ZW0gaXNLaW5kT2ZDbGFzczpVSUFjdGlvbi5jbGFzc10pIHsKKyAgICAgICAgVUlB
Y3Rpb24gKmFjdGlvbiA9IChVSUFjdGlvbiAqKWl0ZW07CisKKyAgICAgICAgaWYgKGFjdGlvbi5z
dGF0ZSA9PSBVSU1lbnVFbGVtZW50U3RhdGVPbikKKyAgICAgICAgICAgIHJlc3VsdFtAImNoZWNr
ZWQiXSA9IFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdOworICAgIH0KKworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKKy0gKE5TQXJyYXkgKiljdXJyZW50QXZhaWxhYmxlTWVkaWFDb250cm9s
c0NvbnRleHRNZW51SXRlbXMKK3sKKyAgICBOU011dGFibGVBcnJheSAqcmVzdWx0ID0gTlNNdXRh
YmxlQXJyYXkuYXJyYXk7CisgICAgaWYgKF9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUpCisgICAg
ICAgIFtyZXN1bHQgYWRkT2JqZWN0OltzZWxmIF9jb250ZW50c09mQ29udGV4dE1lbnVJdGVtOl9t
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUuZ2V0KCldXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
CisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisKIEBlbmQK
IAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggNWQ2ODMy
NjdhZTI0NWI0Yzc5YWVhOGI4MDZkNTVmZjZkZTNhNjMzMS4uOWMyZjUxZWZmZjAxNmUyZTNjNGZj
M2NjYjljZTE1YjEwMmIyOGU2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtNTgsNiArNTgsNyBAQAogI2lt
cG9ydCA8V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UXVhZC5oPgorI2ltcG9ydCA8V2ViQ29yZS9NZWRpYUNv
bnRyb2xzQ29udGV4dE1lbnVJdGVtLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BvaW50ZXJJRC5oPgog
I2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAjaW1wb3J0IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIu
aD4KQEAgLTc4LDYgKzc5LDcgQEAgY2xhc3MgVGV4dFN0cmVhbTsKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIENvbG9yOwogY2xhc3MgRmxvYXRRdWFkOworY2xhc3MgRmxvYXRSZWN0OwogY2xh
c3MgSW50U2l6ZTsKIGNsYXNzIFNlbGVjdGlvblJlY3Q7CiBzdHJ1Y3QgQ29udGFjdEluZm87CkBA
IC02NzIsNiArNjc0LDEwIEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04o
REVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lkKV9zZXRN
b3VzZUV2ZW50UG9saWN5OihXZWJDb3JlOjpNb3VzZUV2ZW50UG9saWN5KXBvbGljeTsKICNlbmRp
ZgogCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCistICh2b2lkKV9z
aG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51OihXZWJDb3JlOjpGbG9hdFJlY3QmJil0YXJnZXRG
cmFtZSBpdGVtczooVmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+
JiYpaXRlbXMgY29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6SUQpPiYmKWNvbXBsZXRpb25IYW5kbGVy
OworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorCiAjaWYg
RU5BQkxFKElPU19GT1JNX0NPTlRST0xfUkVGUkVTSCkKIC0gKEJPT0wpX2Zvcm1Db250cm9sUmVm
cmVzaEVuYWJsZWQ7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDQ3ZDk2YzJlOTliNTRiMWVl
ZTVhNTEzNDJhNDFlMmIxNjljZTE3ZGMuLjcwNDE3ZjRhMjA1NDU5OWI2NDIzMjhhNmYwMmZiOTBm
MTY4OTg3ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtMTAwLDYgKzEwMCw3IEBACiAjaW1wb3J0IDxX
ZWJDb3JlL0RPTVBhc3RlQWNjZXNzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RhdGFEZXRlY3Rpb24u
aD4KICNpbXBvcnQgPFdlYkNvcmUvRmxvYXRRdWFkLmg+CisjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0
UmVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Gb250QXR0cmlidXRlQ2hhbmdlcy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9JbnB1dE1vZGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvS2V5RXZlbnRDb2Rlc0lP
Uy5oPgpAQCAtNzI4Myw2ICs3Mjg0LDE2IEBAIC0gKHZvaWQpcmVtb3ZlQ29udGV4dE1lbnVWaWV3
SWZQb3NzaWJsZUZvckFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzCiAgICAg
W3NlbGYgX3JlbW92ZUNvbnRleHRNZW51Vmlld0lmUG9zc2libGVdOwogfQogCistICh2b2lkKWFj
dGlvblNoZWV0QXNzaXN0YW50RGlkU2hvd0NvbnRleHRNZW51OihXS0FjdGlvblNoZWV0QXNzaXN0
YW50ICopYXNzaXN0YW50Cit7CisgICAgW193ZWJWaWV3IF9kaWRTaG93Q29udGV4dE1lbnVdOwor
fQorCistICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50RGlkRGlzbWlzc0NvbnRleHRNZW51OihX
S0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50Cit7CisgICAgW193ZWJWaWV3IF9kaWRE
aXNtaXNzQ29udGV4dE1lbnVdOworfQorCiAjZW5kaWYgLy8gVVNFKFVJQ09OVEVYVE1FTlUpCiAK
IC0gKEJPT0wpX3Nob3VsZFVzZUNvbnRleHRNZW51cwpAQCAtODkwMSw2ICs4OTEyLDE1IEBAIC0g
KHZvaWQpX3NldE1vdXNlRXZlbnRQb2xpY3k6KFdlYkNvcmU6Ok1vdXNlRXZlbnRQb2xpY3kpcG9s
aWN5CiAKICNlbmRpZiAvLyBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkKIAorI2lmIEVO
QUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorCistICh2b2lkKV9zaG93TWVkaWFD
b250cm9sc0NvbnRleHRNZW51OihXZWJDb3JlOjpGbG9hdFJlY3QmJil0YXJnZXRGcmFtZSBpdGVt
czooVmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+JiYpaXRlbXMg
Y29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFD
b250cm9sc0NvbnRleHRNZW51SXRlbTo6SUQpPiYmKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAg
W19hY3Rpb25TaGVldEFzc2lzdGFudCBzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51OldURk1v
dmUodGFyZ2V0RnJhbWUpIGl0ZW1zOldURk1vdmUoaXRlbXMpIGNvbXBsZXRpb25IYW5kbGVyOldU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9D
T05UUk9MU19DT05URVhUX01FTlVTKQorCiAjaWYgSEFWRShVSV9QT0lOVEVSX0lOVEVSQUNUSU9O
KQogCiAtICh2b2lkKXNldFVwUG9pbnRlckludGVyYWN0aW9uCkBAIC05MzQ5LDYgKzkzNjksMTEg
QEAgLSAoTlNEaWN0aW9uYXJ5ICopX2NvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbTooTlNTdHJp
bmcgKil1c2VySW50ZXJmYWNlSXRlbQogICAgIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElB
X0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisgICAgaWYgKFt1c2VySW50ZXJmYWNlSXRlbSBpc0Vx
dWFsVG9TdHJpbmc6QCJtZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUiXSkKKyAgICAgICAgcmV0dXJu
IEB7IHVzZXJJbnRlcmZhY2VJdGVtOiBbX2FjdGlvblNoZWV0QXNzaXN0YW50IGN1cnJlbnRBdmFp
bGFibGVNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtc10gfTsKKyNlbmRpZiAvLyBFTkFCTEUo
TUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKwogICAgIGlmIChbdXNlckludGVyZmFjZUl0
ZW0gaXNFcXVhbFRvU3RyaW5nOkAiZmlsZVVwbG9hZFBhbmVsTWVudSJdKSB7CiAgICAgICAgIGlm
ICghX2ZpbGVVcGxvYWRQYW5lbCkKICAgICAgICAgICAgIHJldHVybiBAeyB1c2VySW50ZXJmYWNl
SXRlbTogQFtdIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGQwMGU5ZDQ5ZmMyNDJiMzIx
YzI3OWY0YTAwNGRmM2FlMjNkOTQzNzAuLmE5NjVlNWNjNGRlYmM4ZGNmMmUzYzc1Y2RlZDEwMjRj
YjQ3MzhlODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0xNDQwLDQgKzE0NDAsMTMgQEAg
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oRWxlbWVudCYgZWxl
bWVudCkKIAogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5V
UykKKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUo
RmxvYXRSZWN0JiYgdGFyZ2V0RnJhbWUsIFZlY3RvcjxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJ
dGVtPiYmIGl0ZW1zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1lZGlhQ29udHJvbHNDb250ZXh0
TWVudUl0ZW06OklEKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBtX3BhZ2Uuc2hvd01l
ZGlhQ29udHJvbHNDb250ZXh0TWVudShXVEZNb3ZlKHRhcmdldEZyYW1lKSwgV1RGTW92ZShpdGVt
cyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShN
RURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaAppbmRleCAwYjhjNzk2ZDhiN2UwYTQ3MTlhOWFkODZlMDk2OGYwMmVmYmNi
ZjU3Li44YzEyYTVjN2MwMGU5OGI4MTY5OWY4YmQ5NjRjMmFhNGJkOGQ0ZjcxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCkBAIC00MTgsNiArNDE4LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0
SW1hZ2VFeHRyYWN0aW9uKFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKICNlbmRpZgogCisjaWYg
RU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisgICAgdm9pZCBzaG93TWVkaWFD
b250cm9sc0NvbnRleHRNZW51KFdlYkNvcmU6OkZsb2F0UmVjdCYmLCBWZWN0b3I8V2ViQ29yZTo6
TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+JiYpIGZpbmFsOworI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorCiAgICAgbXV0YWJs
ZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzSG9yaXpvbnRhbFNjcm9sbGJhciB7IGZhbHNlIH07
CiAgICAgbXV0YWJsZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzVmVydGljYWxTY3JvbGxiYXIg
eyBmYWxzZSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCmluZGV4IDI5MzBmNWMyNmIxODRiZWFkMTkyNzljN2ZlOTkyNjBmMmZmMzc2MmUuLjgzYTU2
MDY4N2Q5OGJiYzBhZjlhYTk1MzhiMmYzYmRiYTJjMWU5ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC03MTYzLDYgKzcxNjMsMTUgQEAgdm9p
ZCBXZWJQYWdlOjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1l
bnQpCiAKICNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKIAorI2lmIEVOQUJMRShN
RURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQordm9pZCBXZWJQYWdlOjpzaG93TWVkaWFDb250
cm9sc0NvbnRleHRNZW51KEZsb2F0UmVjdCYmIHRhcmdldEZyYW1lLCBWZWN0b3I8TWVkaWFDb250
cm9sc0NvbnRleHRNZW51SXRlbT4mJiBpdGVtcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7Cisg
ICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dNZWRpYUNv
bnRyb2xzQ29udGV4dE1lbnUoV1RGTW92ZSh0YXJnZXRGcmFtZSksIFdURk1vdmUoaXRlbXMpKSwg
W2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIChNZWRpYUNv
bnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCBzZWxlY3RlZEl0ZW1JRCkgbXV0YWJsZSB7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKHNlbGVjdGVkSXRlbUlEKTsKKyAgICB9KTsKK30KKyNlbmRp
ZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKwogI2lmICFQTEFURk9S
TShJT1NfRkFNSUxZKQogCiB2b2lkIFdlYlBhZ2U6OmFuaW1hdGlvbkRpZEZpbmlzaEZvckVsZW1l
bnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKaW5kZXggNzFiODdiMGEwOWIzZmU1YjkzM2ExNzUzYzg3YjcwNGVhYWNh
MzJhNC4uYmRkOWY5MTU4M2M2ZTEzNmQ4NmY2N2U3MzlhNzU1MGM5ZjY4ZDc4NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNzMsNiArNzMsNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvSFRNTE1lbnVJdGVtRWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvSW50UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6ZUhhc2guaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL01lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QYWdlT3ZlcmxheS5oPgpAQCAtMTM3MSw2ICsxMzcyLDEwIEBAIHB1YmxpYzoK
ICAgICB2b2lkIHJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oV2ViQ29yZTo6RWxlbWVudCYpOwogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyAgICB2b2lk
IHNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoV2ViQ29yZTo6RmxvYXRSZWN0JiYsIFZlY3Rv
cjxXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiYmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJik7
CisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisKICNpZiBQ
TEFURk9STShXSU4pCiAgICAgdWludDY0X3QgbmF0aXZlV2luZG93SGFuZGxlKCkgeyByZXR1cm4g
bV9uYXRpdmVXaW5kb3dIYW5kbGU7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDdhZjZmMzEzNDRlNDFjNzI2NmY1YmVhOTc0N2M0
NWYxNTJiZjU3ZGYuLmJjMDY2ZjAxMGJhNGI0YzE0ZmMxOTZmMWM2NGQxZTU4NjcxZWFmZDAgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxOSBAQAorMjAyMS0wMi0wOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisK
KyAgICAgICAgW2lPU10gQWRkIHN1cHBvcnQgZm9yIHRoZSBsYW5ndWFnZS9zdWJ0aXRsZSB0cmFj
a3MgYnV0dG9uIHVzaW5nIGBVSU1lbnVgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjE1OTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc0MTI5MTI5
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tOgorICAgICAgICAoV1RS
OjpVSVNjcmlwdENvbnRyb2xsZXJJT1M6OnJlY3RGb3JNZW51QWN0aW9uIGNvbnN0KToKKyAgICAg
ICAgSW4gYWRkaXRpb24gdG8gbG9va2luZyBhdCB0aGUgYWN0aXZlIGBVSUNhbGxvdXRCYXJgIChp
ZiBpdCBleGlzdHMpLCB3YWxrIHRoZSB2aWV3IGhpZXJhcmNoeQorICAgICAgICBsb29raW5nIGZv
ciBhbnkgYFVJTGFiZWxgIHRoYXQgY29udGFpbnMgdGhlIGdpdmVuIHRleHQgYW5kIHVzZSB0aGF0
IGFzIHRoZSByZWN0IHRvIHRhcC4KKyAgICAgICAgV2hpbGUgdGhpcyBpc24ndCB0aGUgbW9zdCBj
b25maWRlbnQvY29uc2lzdGVudCBhcHByb2FjaCwgVUlLaXQgZG9lc24ndCBoYXZlIGFueXRoaW5n
IGxpa2UKKyAgICAgICAgYFVJQ2FsbG91dEJhcmAgZm9yIGNvbnRleHRtZW51IGludGVyYWN0aW9u
cywgYW5kIHRoaXMgaXMgb25seSB1c2VkIGluc2lkZSBXS1RSICh3aGljaCBoYXMgbm8KKyAgICAg
ICAgb3RoZXIgVUkgb3V0c2lkZSB0aGFuIHRoZSBwYWdlKSwgc28gaXQncyBleHBlY3RlZCB0aGF0
IGNhbGxlcnMga25vdyB3aGF0IHRoZXkncmUgZG9pbmcuCisKIDIwMjEtMDItMDggIFN0ZXBoYW5p
ZSBMZXdpcyAgPHNsZXdpc0BhcHBsZS5jb20+CiAKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcw
NDAyNTkzPiBNb3Rpb25tYXJrIGZhaWxlZCB0byBzdGFydCB3ZWJzZXJ2ZXIKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbSBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQppbmRleCA1
ZGQxZmU3NWU2MjI5MWFjZmE3MDNlMDBiZTgyYmE0YTNhZTlmZTJhLi5mNzRhNzQyMDM4ZTE5ZTJl
YTg3Mjg5NzY0OTEzZDQxYThhYjNmMjNjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCkBAIC0xMDM0LDI5ICsxMDM0LDM3IEBA
IEpTT2JqZWN0UmVmIFVJU2NyaXB0Q29udHJvbGxlcklPUzo6cmVjdEZvck1lbnVBY3Rpb24oSlNT
dHJpbmdSZWYganNBY3Rpb24pIGNvbnN0CiAKIFdlYkNvcmU6OkZsb2F0UmVjdCBVSVNjcmlwdENv
bnRyb2xsZXJJT1M6OnJlY3RGb3JNZW51QWN0aW9uKENGU3RyaW5nUmVmIGFjdGlvbikgY29uc3QK
IHsKLSAgICBVSVdpbmRvdyAqd2luZG93Rm9yQnV0dG9uID0gbmlsOwotICAgIFVJQnV0dG9uICpi
dXR0b25Gb3JBY3Rpb24gPSBuaWw7Ci0gICAgVUlWaWV3ICpjYWxsb3V0QmFyID0gVUlDYWxsb3V0
QmFyLmFjdGl2ZUNhbGxvdXRCYXI7Ci0gICAgaWYgKCFjYWxsb3V0QmFyLndpbmRvdykKLSAgICAg
ICAgcmV0dXJuIHsgfTsKKyAgICBVSVZpZXcgKnZpZXdGb3JBY3Rpb24gPSBuaWw7CisgICAgVUlX
aW5kb3cgKndpbmRvdyA9IHdlYlZpZXcoKS53aW5kb3c7CiAKLSAgICBmb3IgKFVJQnV0dG9uICpi
dXR0b24gaW4gZmluZEFsbFZpZXdzSW5IaWVyYXJjaHlPZlR5cGUoY2FsbG91dEJhciwgVUlCdXR0
b24uY2xhc3MpKSB7Ci0gICAgICAgIE5TU3RyaW5nICpidXR0b25UaXRsZSA9IFtidXR0b24gdGl0
bGVGb3JTdGF0ZTpVSUNvbnRyb2xTdGF0ZU5vcm1hbF07Ci0gICAgICAgIGlmICghYnV0dG9uVGl0
bGUubGVuZ3RoKQotICAgICAgICAgICAgY29udGludWU7CisgICAgaWYgKFVJVmlldyAqY2FsbG91
dEJhciA9IFVJQ2FsbG91dEJhci5hY3RpdmVDYWxsb3V0QmFyKSB7CisgICAgICAgIGZvciAoVUlC
dXR0b24gKmJ1dHRvbiBpbiBmaW5kQWxsVmlld3NJbkhpZXJhcmNoeU9mVHlwZShjYWxsb3V0QmFy
LCBVSUJ1dHRvbi5jbGFzcykpIHsKKyAgICAgICAgICAgIE5TU3RyaW5nICpidXR0b25UaXRsZSA9
IFtidXR0b24gdGl0bGVGb3JTdGF0ZTpVSUNvbnRyb2xTdGF0ZU5vcm1hbF07CisgICAgICAgICAg
ICBpZiAoIWJ1dHRvblRpdGxlLmxlbmd0aCkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKIAot
ICAgICAgICBpZiAoIVtidXR0b25UaXRsZSBpc0VxdWFsVG9TdHJpbmc6KF9fYnJpZGdlIE5TU3Ry
aW5nICopYWN0aW9uXSkKLSAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKCFb
YnV0dG9uVGl0bGUgaXNFcXVhbFRvU3RyaW5nOihfX2JyaWRnZSBOU1N0cmluZyAqKWFjdGlvbl0p
CisgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgYnV0dG9uRm9yQWN0aW9uID0g
YnV0dG9uOwotICAgICAgICB3aW5kb3dGb3JCdXR0b24gPSBjYWxsb3V0QmFyLndpbmRvdzsKLSAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICB2aWV3Rm9yQWN0aW9uID0gYnV0dG9uOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIWJ1dHRvbkZvckFjdGlv
bikKKyAgICBpZiAoIXZpZXdGb3JBY3Rpb24pIHsKKyAgICAgICAgZm9yIChVSUxhYmVsICpsYWJl
bCBpbiBmaW5kQWxsVmlld3NJbkhpZXJhcmNoeU9mVHlwZSh3aW5kb3csIFVJTGFiZWwuY2xhc3Mp
KSB7CisgICAgICAgICAgICBpZiAoIVtsYWJlbC50ZXh0IGlzRXF1YWxUb1N0cmluZzooX19icmlk
Z2UgTlNTdHJpbmcgKilhY3Rpb25dKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg
ICAgICAgICB2aWV3Rm9yQWN0aW9uID0gbGFiZWw7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIGlmICghdmlld0ZvckFjdGlvbikKICAgICAgICAgcmV0dXJuIHsg
fTsKIAotICAgIENHUmVjdCByZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzID0gW2J1dHRvbkZvckFj
dGlvbiBjb252ZXJ0UmVjdDpidXR0b25Gb3JBY3Rpb24uYm91bmRzIHRvVmlldzpwbGF0Zm9ybUNv
bnRlbnRWaWV3KCldOworICAgIENHUmVjdCByZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzID0gW3Zp
ZXdGb3JBY3Rpb24gY29udmVydFJlY3Q6dmlld0ZvckFjdGlvbi5ib3VuZHMgdG9WaWV3OnBsYXRm
b3JtQ29udGVudFZpZXcoKV07CiAgICAgcmV0dXJuIFdlYkNvcmU6OkZsb2F0UmVjdChyZWN0SW5S
b290Vmlld0Nvb3JkaW5hdGVzLm9yaWdpbi54LCByZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzLm9y
aWdpbi55LCByZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzLnNpemUud2lkdGgsIHJlY3RJblJvb3RW
aWV3Q29vcmRpbmF0ZXMuc2l6ZS5oZWlnaHQpOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODk1MWNmZTAyMjExZWMx
OGViNDZjYTE1M2M2MjBhYWZkYWI0OGNlNi4uMWE4NzQ1ODU2OTI4YTUwMDRhOTFkMjNiMjY4Yjcx
MWRmYzUxNGVjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIxLTAyLTA4ICBEZXZpbiBSb3Vz
c28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBBZGQgc3VwcG9ydCBmb3Ig
dGhlIGxhbmd1YWdlL3N1YnRpdGxlIHRyYWNrcyBidXR0b24gdXNpbmcgYFVJTWVudWAKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTU5NAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNzQxMjkxMjk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcmVzb3Vy
Y2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzOgorICAgICAgICAoZ2V0VHJhY2tzQ29udGV4dE1l
bnUpOiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9z
L3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJh
Y2tzLXN1cHBvcnQtY2xpY2stdHJhY2staW4tY29udGV4dG1lbnUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFj
a3Mtc3VwcG9ydC1jbGljay10cmFjay1pbi1jb250ZXh0bWVudS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9p
b3MvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBt
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBw
b3J0LWhpZGRlbi10cmFja3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LW9m
Zi10ZXh0LXRyYWNrLmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2st
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXNob3ctY29udGV4dG1lbnUtdGhl
bi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBt
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBw
b3J0LXNob3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3RlZC12
aWEtbWVkaWEtYXBpLmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxl
Y3RlZC12aWEtbWVkaWEtYXBpLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgIER1cGxpY2F0
ZSBleGlzdGluZyBgVHJhY2tzU3VwcG9ydGAgdGVzdHMgdG8gdGVzdCBmb3Igc2ltaWxhciByZXN1
bHRzIGJ1dCB1c2luZyB0aGUgbmV3IGlPUyBwYXRoLgorCisgICAgICAgICogbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1hdXRvLXRl
eHQtdHJhY2suaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2su
aHRtbC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBv
cnQvbWFjL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay1leHBlY3RlZC50eHQ6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvdHJhY2tzLXN1cHBvcnQtYXV0by10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dC4KKyAgICAg
ICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNr
cy1zdXBwb3J0LWNsaWNrLXRyYWNrLWluLXBhbmVsLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1
cHBvcnQtY2xpY2stdHJhY2staW4tcGFuZWwuaHRtbC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRy
YWNrLWluLXBhbmVsLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1jbGlj
ay10cmFjay1pbi1wYW5lbC1leHBlY3RlZC50eHQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJh
Y2tzLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy5odG1sLgor
ICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMv
dHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJh
Y2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy1leHBlY3RlZC50eHQuCisgICAgICAgICogbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1v
ZmYtdGV4dC10cmFjay5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LW9mZi10ZXh0LXRy
YWNrLmh0bWwuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1z
dXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay1leHBlY3RlZC50eHQ6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0LgorICAg
ICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJh
Y2tzLXN1cHBvcnQtc2hvdy1hbmQtcG9wdWxhdGUtcGFuZWwuaHRtbDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFj
a3Mtc3VwcG9ydC1zaG93LWFuZC1wb3B1bGF0ZS1wYW5lbC5odG1sLgorICAgICAgICAqIG1lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQt
c2hvdy1hbmQtcG9wdWxhdGUtcGFuZWwtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1z
dXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBt
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBw
b3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJvbHMuaHRtbDogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90
cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xzLmh0bWwuCisg
ICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90
cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xzLWV4cGVjdGVk
LnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5n
LWNvbnRyb2xzLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtZnVsbHNj
cmVlbi5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtZnVsbHNjcmVl
bi5odG1sLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1mdWxsc2NyZWVuLWV4cGVjdGVkLnR4
dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxzY3JlZW4tZXhwZWN0
ZWQudHh0LgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC10aGVuLWRvdWJsZS1jbGljay1vbi10
cmFja3MtYnV0dG9uLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC10
aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWwuCisgICAgICAgICogbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1z
aG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24tZXhwZWN0ZWQudHh0
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtdGhlbi1kb3VibGUtY2xpY2st
b24tdHJhY2tzLWJ1dHRvbi1leHBlY3RlZC50eHQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNr
LXNlbGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC10
ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRtbC4KKyAgICAgICAgKiBtZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXRl
eHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
dHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLWV4cGVjdGVk
LnR4dC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAg
TW92ZWQgZXhpc3RpbmcgYFRyYWNrc1N1cHBvcnRgIHRlc3RzIHRvIGEgYG1hY2Agc3ViZm9sZGVy
IHNvIHRoZXkgY2FuIGJlIHNraXBwZWQgb24gaU9TLgorCiAyMDIxLTAyLTA4ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNjk0
NTgpOiB5YWhvby5jb20gc29jaWFsIC8gY29tbWVudHMgYmFyIHNob3dzIGFzIHRyYW5zcGFyZW50
IHdoZW4gc2Nyb2xsaW5nIHBhZ2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMgYi9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcmVzb3VyY2VzL21lZGlhLWNvbnRy
b2xzLXV0aWxzLmpzCmluZGV4IDNlNzJhODUzZGY5YTcwYjkwODcwZDM3ODI4YjY3YzhiMGNjNTU5
MzcuLjJkYzhmNGI1MjFhYTcyYjU0NzViMGMzNjIwZTk2NWIyNjc3ZjU0ODcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9yZXNvdXJjZXMvbWVkaWEt
Y29udHJvbHMtdXRpbHMuanMKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcwpAQCAtMTAzLDYgKzEwMywy
MiBAQCBmdW5jdGlvbiBzaG93VHJhY2tzUGFuZWwoc2hhZG93Um9vdCwgY29udGludWF0aW9uKQog
ICAgIH0pOwogfQogCitmdW5jdGlvbiBnZXRUcmFja3NDb250ZXh0TWVudSgpCit7CisgICAgcmV0
dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgICAgIHRlc3RSdW5uZXIucnVuVUlT
Y3JpcHQoYAorICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBmdW5jdGlvbiBzY3Jp
cHRDb21wbGV0ZVdpdGhDb250ZXh0TWVudSgpIHsKKyAgICAgICAgICAgICAgICB1aUNvbnRyb2xs
ZXIudWlTY3JpcHRDb21wbGV0ZShKU09OLnN0cmluZ2lmeSh1aUNvbnRyb2xsZXIuY29udGVudHNP
ZlVzZXJJbnRlcmZhY2VJdGVtKCdtZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUnKSkpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgaWYgKCF1aUNvbnRyb2xsZXIuaXNTaG93aW5nQ29udGV4dE1l
bnUpCisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLmRpZFNob3dDb250ZXh0TWVudUNhbGxi
YWNrID0gc2NyaXB0Q29tcGxldGVXaXRoQ29udGV4dE1lbnU7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgc2NyaXB0Q29tcGxldGVXaXRoQ29udGV4dE1lbnUoKTsKKyAgICAgICAg
fSkoKTtgLCAocmVzdWx0KSA9PiByZXNvbHZlKEpTT04ucGFyc2UocmVzdWx0KS5tZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnUpKTsKKyAgICB9KTsKK30KKwogZnVuY3Rpb24gZmluaXNoTWVkaWFDb250
cm9sc1Rlc3QoKQogewogICAgIGlmIChzY2hlZHVsZXIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1z
dXBwb3J0LWF1dG8tdGV4dC10cmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWF1
dG8tdGV4dC10cmFjay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQ0NGI2OTU0NzVhYTQ0MjE3
ODI1OWViODk3YWY0N2M2MjBhY2RhNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBv
cnQtYXV0by10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU5IEBACitFbnN1cmUg
d2UgaGF2ZSB0aGUgQXV0byB0ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5IGRlZmF1bHQuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcign
YnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIHNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
LndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitTZXR0aW5nIGNhcHRpb24gZGlzcGxheSBt
b2RlIHRvICdhdXRvbWF0aWMnLi4uCitUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KK1sKKyAgewor
ICAgICJjaGlsZHJlbiI6IFsKKyAgICAgIHsKKyAgICAgICAgInRpdGxlIjogIkxhbmd1YWdlcyIs
CisgICAgICAgICJjaGlsZHJlbiI6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAidGl0bGUi
OiAiRW5nbGlzaCBTb3VuZCIsCisgICAgICAgICAgICAiY2hlY2tlZCI6IHRydWUKKyAgICAgICAg
ICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICJ0aXRsZSI6ICJGcmVuY2ggU291bmQiCisg
ICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAidGl0bGUiOiAiU3BhbmlzaCBT
b3VuZCIKKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7CisgICAgICAg
ICJ0aXRsZSI6ICJTdWJ0aXRsZXMiLAorICAgICAgICAiY2hpbGRyZW4iOiBbCisgICAgICAgICAg
eworICAgICAgICAgICAgInRpdGxlIjogIk9mZiIKKyAgICAgICAgICB9LAorICAgICAgICAgIHsK
KyAgICAgICAgICAgICJ0aXRsZSI6ICJBdXRvIChSZWNvbW1lbmRlZCkiLAorICAgICAgICAgICAg
ImNoZWNrZWQiOiB0cnVlCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAi
dGl0bGUiOiAiRW5nbGlzaCBTdWJ0aXRsZXMiCisgICAgICAgICAgfSwKKyAgICAgICAgICB7Cisg
ICAgICAgICAgICAidGl0bGUiOiAiRnJlbmNoIFN1YnRpdGxlcyIKKyAgICAgICAgICB9LAorICAg
ICAgICAgIHsKKyAgICAgICAgICAgICJ0aXRsZSI6ICJHZXJtYW4gU3VidGl0bGVzIgorICAgICAg
ICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgInRpdGxlIjogIlNwYW5pc2ggU3VidGl0
bGVzIgorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfQorICAgIF0KKyAgfQorXQorU2V0
dGluZyBjYXB0aW9uIGRpc3BsYXkgbW9kZSB0byAnZm9yY2Vkb25seScuLi4KK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3Ry
YWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1hdXRv
LXRleHQtdHJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNWJlYmMxODVmNDE5MTJjMjJiNWE3YTQ5OGU1
MDc5MDMxNTYwNTZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1hdXRvLXRl
eHQtdHJhY2suaHRtbApAQCAtMCwwICsxLDQyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8Ym9keT4KKzx2aWRlbyBzcmM9Ii4uLy4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVz
Lm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDog
MzAwcHg7IiBhdXRvcGxheSBjb250cm9scyBtdXRlZCBwbGF5c2lubGluZT48L3ZpZGVvPgorPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7CisKK2Rlc2NyaXB0aW9uKCJFbnN1cmUgd2UgaGF2ZSB0aGUgQXV0byB0ZXh0IHRyYWNrIHNl
bGVjdGVkIGJ5IGRlZmF1bHQuIik7CisKK2NvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigidmlkZW8iKTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRv
d1Jvb3QobWVkaWEpOworCittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4gewor
ICAgIG1lZGlhLnBhdXNlKCk7CisKKyAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7CisgICAg
ICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0
b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsIGFzeW5jICgp
ID0+IHsKKyAgICAgICAgICAgIGRlYnVnKCJTZXR0aW5nIGNhcHRpb24gZGlzcGxheSBtb2RlIHRv
ICdhdXRvbWF0aWMnLi4uIik7CisgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldENhcHRp
b25EaXNwbGF5TW9kZSgiYXV0b21hdGljIik7CisKKyAgICAgICAgICAgIGRlYnVnKCJUYXBwaW5n
IHRyYWNrcyBidXR0b24uLi4iKTsKKyAgICAgICAgICAgIGxldCBbY29udGV4dG1lbnVdID0gYXdh
aXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGdldFRyYWNrc0NvbnRleHRNZW51KCks
CisgICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCJidXR0b24udHJhY2tzIikpLAorICAgICAgICAgICAgXSk7CisgICAgICAgICAgICBkZWJ1ZyhK
U09OLnN0cmluZ2lmeShjb250ZXh0bWVudSwgbnVsbCwgMikpOworCisgICAgICAgICAgICBkZWJ1
ZygiU2V0dGluZyBjYXB0aW9uIGRpc3BsYXkgbW9kZSB0byAnZm9yY2Vkb25seScuLi4iKTsKKyAg
ICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0Q2FwdGlvbkRpc3BsYXlNb2RlKCJmb3JjZWRv
bmx5Iik7CisKKyAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgpOworICAgICAgICAgICAgZmluaXNo
SlNUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0pOworfSk7CisKKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1jbGljay10cmFjay1pbi1jb250
ZXh0bWVudS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNrLWluLWNv
bnRleHRtZW51LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YmNmMDUyOTZmMGU2YjIzZGNmNTJj
NTYyOGRjMWVlMDM2NGM2MjE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1j
bGljay10cmFjay1pbi1jb250ZXh0bWVudS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNiBAQAor
Q2xpY2tpbmcgb24gYSB0cmFjayBpbiB0aGUgdHJhY2tzIGNvbnRleHRtZW51LgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworbWVkaWEuYXVkaW9UcmFja3NbMF0uZW5hYmxlZCA9IHRy
dWUKK21lZGlhLmF1ZGlvVHJhY2tzWzFdLmVuYWJsZWQgPSBmYWxzZQorbWVkaWEuYXVkaW9UcmFj
a3NbMl0uZW5hYmxlZCA9IGZhbHNlCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0
dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIHNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndp
ZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KK1Nl
bGVjdGluZyBzZWNvbmQgYXVkaW8gdHJhY2suLi4KK0F1ZGlvIHRyYWNrcyBjaGFuZ2VkLgorbWVk
aWEuYXVkaW9UcmFja3NbMF0uZW5hYmxlZCA9IGZhbHNlCittZWRpYS5hdWRpb1RyYWNrc1sxXS5l
bmFibGVkID0gdHJ1ZQorbWVkaWEuYXVkaW9UcmFja3NbMl0uZW5hYmxlZCA9IGZhbHNlCitUYXBw
aW5nIHRyYWNrcyBidXR0b24uLi4KK1NlbGVjdGluZyB0aGlyZCBhdWRpbyB0cmFjay4uLgorQXVk
aW8gdHJhY2tzIGNoYW5nZWQuCittZWRpYS5hdWRpb1RyYWNrc1swXS5lbmFibGVkID0gZmFsc2UK
K21lZGlhLmF1ZGlvVHJhY2tzWzFdLmVuYWJsZWQgPSBmYWxzZQorbWVkaWEuYXVkaW9UcmFja3Nb
Ml0uZW5hYmxlZCA9IHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNrLWlu
LWNvbnRleHRtZW51Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNrLWluLWNvbnRl
eHRtZW51Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2EwOTUzZjRkYzU0MjQxN2E4Y2Q3Y2VhMzJmNDFmNDY2
ODhiMzg4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJhY2st
aW4tY29udGV4dG1lbnUuaHRtbApAQCAtMCwwICsxLDg1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzx2aWRlbyBzcmM9Ii4uLy4uLy4uL2NvbnRlbnQvYXVkaW8t
dHJhY2tzLm1wNCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3
aWR0aDogMzAwcHg7IiBjb250cm9scyBhdXRvcGxheSBtdXRlZCBwbGF5c2lubGluZT48L3ZpZGVv
PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCJDbGlja2luZyBvbiBhIHRyYWNrIGluIHRoZSB0cmFj
a3MgY29udGV4dG1lbnUuIik7CisKK2NvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigidmlkZW8iKTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jv
b3QobWVkaWEpOworCitsZXQgcHJldmlvdXNseVNlbGVjdGVkVHJhY2sgPSAwOworCittZWRpYS5h
ZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4geworICAgIG1lZGlhLnBhdXNlKCk7CisKKyAg
ICBkdW1wQXVkaW9UcmFja3NFbmFibGVkU3RhdGUoKTsKKworICAgIG1lZGlhLmF1ZGlvVHJhY2tz
LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIGhhbmRsZUF1ZGlvVHJhY2tzQ2hhbmdlKTsKKwor
ICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0
b24udHJhY2tzJykiLCAibnVsbCIsICgpID0+IHsKKyAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVy
ZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKS53aWR0aCIsICIwIiwgKCkgPT4geworICAgICAgICAgICAgY2xpY2tPblRy
YWNrc0J1dHRvbihjbGlja09uU2Vjb25kQXVkaW9UcmFjayk7CisgICAgICAgIH0pOworICAgIH0p
OworfSk7CisKK2Z1bmN0aW9uIGNsaWNrT25UcmFja3NCdXR0b24oY29udGludWF0aW9uKQorewor
ICAgIGRlYnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4iKTsKKyAgICBwcmVzc09uRWxlbWVu
dChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSwgKCkgPT4geworICAg
ICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNvbnRpbnVhdGlvbik7CisgICAgfSk7
Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGNsaWNrT25TZWNvbmRBdWRpb1RyYWNrKCkKK3sKKyAgICBk
ZWJ1ZygiU2VsZWN0aW5nIHNlY29uZCBhdWRpbyB0cmFjay4uLiIpOworICAgIGxldCBjb250ZXh0
bWVudSA9IGF3YWl0IGdldFRyYWNrc0NvbnRleHRNZW51KCk7CisgICAgYXdhaXQgVUlIZWxwZXIu
Y2hvb3NlTWVudUFjdGlvbihjb250ZXh0bWVudVswXS5jaGlsZHJlblsxXS50aXRsZSk7Cit9CisK
K2FzeW5jIGZ1bmN0aW9uIGNsaWNrT25UaGlyZEF1ZGlvVHJhY2soKQoreworICAgIGRlYnVnKCJT
ZWxlY3RpbmcgdGhpcmQgYXVkaW8gdHJhY2suLi4iKTsKKyAgICBsZXQgY29udGV4dG1lbnUgPSBh
d2FpdCBnZXRUcmFja3NDb250ZXh0TWVudSgpOworICAgIGF3YWl0IFVJSGVscGVyLmNob29zZU1l
bnVBY3Rpb24oY29udGV4dG1lbnVbMF0uY2hpbGRyZW5bMl0udGl0bGUpOworfQorCithc3luYyBm
dW5jdGlvbiBoYW5kbGVBdWRpb1RyYWNrc0NoYW5nZSgpCit7CisgICAgY29uc3QgbmV3U2VsZWN0
ZWRUcmFjayA9IEFycmF5LmZyb20obWVkaWEuYXVkaW9UcmFja3MpLmZpbmRJbmRleCh0cmFjayA9
PiB0cmFjay5lbmFibGVkKTsKKyAgICBpZiAocHJldmlvdXNseVNlbGVjdGVkVHJhY2sgPT09IG5l
d1NlbGVjdGVkVHJhY2spCisgICAgICAgIHJldHVybjsKKworICAgIHByZXZpb3VzbHlTZWxlY3Rl
ZFRyYWNrID0gbmV3U2VsZWN0ZWRUcmFjazsKKworICAgIGRlYnVnKCJBdWRpbyB0cmFja3MgY2hh
bmdlZC4iKTsKKworICAgIGR1bXBBdWRpb1RyYWNrc0VuYWJsZWRTdGF0ZSgpOworCisgICAgYXdh
aXQgVUlIZWxwZXIud2FpdEZvckNvbnRleHRNZW51VG9IaWRlKCk7CisKKyAgICBpZiAobWVkaWEu
YXVkaW9UcmFja3NbMV0uZW5hYmxlZCkKKyAgICAgICAgY2xpY2tPblRyYWNrc0J1dHRvbihjbGlj
a09uVGhpcmRBdWRpb1RyYWNrKTsKKyAgICBlbHNlIGlmIChtZWRpYS5hdWRpb1RyYWNrc1syXS5l
bmFibGVkKSB7CisgICAgICAgIG1lZGlhLnJlbW92ZSgpOworICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGR1bXBBdWRpb1RyYWNrc0VuYWJsZWRTdGF0ZSgpCit7
CisgICAgQXJyYXkuZnJvbShtZWRpYS5hdWRpb1RyYWNrcykuZm9yRWFjaCgoYXVkaW9UcmFjaywg
aW5kZXgpID0+IHsKKyAgICAgICAgZGVidWcoYG1lZGlhLmF1ZGlvVHJhY2tzWyR7aW5kZXh9XS5l
bmFibGVkID0gJHttZWRpYS5hdWRpb1RyYWNrc1tpbmRleF0uZW5hYmxlZH1gKTsKKyAgICB9KTsK
K30KKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBw
b3J0LWhpZGRlbi10cmFja3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1oaWRkZW4t
dHJhY2tzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Yjg2NTZmODg5ODZiNWNmMGNkZjQxMTZi
ZjdjMmNmMmQ0ZmY5Nzc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1oaWRk
ZW4tdHJhY2tzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU4IEBACitUaGlzIHRlc3QgY2hlY2tz
IHRoYXQgdGhlIHRyYWNrcyBjb250ZXh0bWVudSBkb2Vzbid0IHNob3cgYW55IHRyYWNrIGFzIHNl
bGVjdGVkIGlmIGFsbCB0aGUgdGV4dCB0cmFja3MgZm9yIGEgbWVkaWEgZWxlbWVudCBhcmUgbWFy
a2VkIGFzICJoaWRkZW4iLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBz
aGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50
IGZyb20gbnVsbAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3Mn
KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAor
U2V0dGluZyBtb2RlIHRvICdoaWRkZW4nIGZvciBhbGwgdGV4dCB0cmFja3MgdmlhIEphdmFTY3Jp
cHQuLi4KK1RhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgorWworICB7CisgICAgImNoaWxkcmVuIjog
WworICAgICAgeworICAgICAgICAidGl0bGUiOiAiTGFuZ3VhZ2VzIiwKKyAgICAgICAgImNoaWxk
cmVuIjogWworICAgICAgICAgIHsKKyAgICAgICAgICAgICJ0aXRsZSI6ICJFbmdsaXNoIFNvdW5k
IiwKKyAgICAgICAgICAgICJjaGVja2VkIjogdHJ1ZQorICAgICAgICAgIH0sCisgICAgICAgICAg
eworICAgICAgICAgICAgInRpdGxlIjogIkZyZW5jaCBTb3VuZCIKKyAgICAgICAgICB9LAorICAg
ICAgICAgIHsKKyAgICAgICAgICAgICJ0aXRsZSI6ICJTcGFuaXNoIFNvdW5kIgorICAgICAgICAg
IH0KKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgInRpdGxlIjogIlN1YnRp
dGxlcyIsCisgICAgICAgICJjaGlsZHJlbiI6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAi
dGl0bGUiOiAiT2ZmIiwKKyAgICAgICAgICAgICJjaGVja2VkIjogdHJ1ZQorICAgICAgICAgIH0s
CisgICAgICAgICAgeworICAgICAgICAgICAgInRpdGxlIjogIkF1dG8gKFJlY29tbWVuZGVkKSIK
KyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICJ0aXRsZSI6ICJFbmdsaXNo
IFN1YnRpdGxlcyIKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICJ0aXRs
ZSI6ICJGcmVuY2ggU3VidGl0bGVzIgorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAg
ICAgICAgInRpdGxlIjogIkdlcm1hbiBTdWJ0aXRsZXMiCisgICAgICAgICAgfSwKKyAgICAgICAg
ICB7CisgICAgICAgICAgICAidGl0bGUiOiAiU3BhbmlzaCBTdWJ0aXRsZXMiCisgICAgICAgICAg
fQorICAgICAgICBdCisgICAgICB9CisgICAgXQorICB9CitdCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3Vw
cG9ydC1oaWRkZW4tdHJhY2tzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10cmFja3Mu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45ZGU0ZjhkNjgzNmRjZmJlYmIyMmEyZDE1ODI5ZmMyNWIyNWJhY2U4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLmh0bWwK
QEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGJvZHk+
Cis8dmlkZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJw
b3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDMwMHB4OyIgY29udHJv
bHMgYXV0b3BsYXkgbXV0ZWQgcGxheXNpbmxpbmU+PC92aWRlbz4KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitkZXNjcmlw
dGlvbihgVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSB0cmFja3MgY29udGV4dG1lbnUgZG9lc24n
dCBzaG93IGFueSB0cmFjayBhcyBzZWxlY3RlZCBpZiBhbGwgdGhlIHRleHQgdHJhY2tzIGZvciBh
IG1lZGlhIGVsZW1lbnQgYXJlIG1hcmtlZCBhcyAiaGlkZGVuIi5gKTsKKworY29uc3QgbWVkaWEg
PSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOworY29uc3Qgc2hhZG93Um9vdCA9IHdp
bmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7CisKK21lZGlhLmFkZEV2ZW50TGlzdGVu
ZXIoInBsYXkiLCAoKSA9PiB7CisgICAgbWVkaWEucGF1c2UoKTsKKworICAgIHNob3VsZEJlY29t
ZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAi
bnVsbCIsICgpID0+IHsKKyAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290
LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53
aWR0aCIsICIwIiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgZGVidWcoIlNldHRpbmcgbW9k
ZSB0byAnaGlkZGVuJyBmb3IgYWxsIHRleHQgdHJhY2tzIHZpYSBKYXZhU2NyaXB0Li4uIik7Cisg
ICAgICAgICAgICBBcnJheS5mcm9tKG1lZGlhLnRleHRUcmFja3MpLmZvckVhY2godHJhY2sgPT4g
dHJhY2subW9kZSA9ICJoaWRkZW4iKTsKKworICAgICAgICAgICAgZGVidWcoIlRhcHBpbmcgdHJh
Y2tzIGJ1dHRvbi4uLiIpOworICAgICAgICAgICAgbGV0IFtjb250ZXh0bWVudV0gPSBhd2FpdCBQ
cm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgZ2V0VHJhY2tzQ29udGV4dE1lbnUoKSwKKyAg
ICAgICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1
dHRvbi50cmFja3MiKSksCisgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIGRlYnVnKEpTT04u
c3RyaW5naWZ5KGNvbnRleHRtZW51LCBudWxsLCAyKSk7CisKKyAgICAgICAgICAgIG1lZGlhLnJl
bW92ZSgpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0p
OworfSk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mt
c3VwcG9ydC1vZmYtdGV4dC10cmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LW9m
Zi10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYWNlY2QzMTBlZTI2MmY3NTdm
MDAyMTU1YTg4ZDE5NWVmNmQ5Mzc5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9y
dC1vZmYtdGV4dC10cmFjay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1NyBAQAorRW5zdXJlIHdl
IGhhdmUgdGhlIE9mZiB0ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5IGRlZmF1bHQuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0
dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIHNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndp
ZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KK1sK
KyAgeworICAgICJjaGlsZHJlbiI6IFsKKyAgICAgIHsKKyAgICAgICAgInRpdGxlIjogIkxhbmd1
YWdlcyIsCisgICAgICAgICJjaGlsZHJlbiI6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAi
dGl0bGUiOiAiRW5nbGlzaCBTb3VuZCIsCisgICAgICAgICAgICAiY2hlY2tlZCI6IHRydWUKKyAg
ICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICJ0aXRsZSI6ICJGcmVuY2ggU291
bmQiCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAidGl0bGUiOiAiU3Bh
bmlzaCBTb3VuZCIKKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB7Cisg
ICAgICAgICJ0aXRsZSI6ICJTdWJ0aXRsZXMiLAorICAgICAgICAiY2hpbGRyZW4iOiBbCisgICAg
ICAgICAgeworICAgICAgICAgICAgInRpdGxlIjogIk9mZiIsCisgICAgICAgICAgICAiY2hlY2tl
ZCI6IHRydWUKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICJ0aXRsZSI6
ICJBdXRvIChSZWNvbW1lbmRlZCkiCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAg
ICAgICAidGl0bGUiOiAiRW5nbGlzaCBTdWJ0aXRsZXMiCisgICAgICAgICAgfSwKKyAgICAgICAg
ICB7CisgICAgICAgICAgICAidGl0bGUiOiAiRnJlbmNoIFN1YnRpdGxlcyIKKyAgICAgICAgICB9
LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICJ0aXRsZSI6ICJHZXJtYW4gU3VidGl0bGVzIgor
ICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgInRpdGxlIjogIlNwYW5pc2gg
U3VidGl0bGVzIgorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfQorICAgIF0KKyAgfQor
XQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2suaHRtbCBiL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tz
LXN1cHBvcnQtb2ZmLXRleHQtdHJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZWIzMTM0ODRlYTQ4MjM4
ZjIzNmM3MGU4OTczMDc5ZDZlM2IzZWFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3Vw
cG9ydC1vZmYtdGV4dC10cmFjay5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1s
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxib2R5PgorPHZpZGVvIHNyYz0iLi4vLi4vLi4vY29udGVudC9D
QytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6
IDA7IHdpZHRoOiAzMDBweDsiIGNvbnRyb2xzIGF1dG9wbGF5IG11dGVkIHBsYXlzaW5saW5lPjwv
dmlkZW8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK3dpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworZGVzY3JpcHRpb24oIkVuc3VyZSB3ZSBoYXZlIHRoZSBPZmYgdGV4
dCB0cmFjayBzZWxlY3RlZCBieSBkZWZhdWx0LiIpOworCitjb25zdCBtZWRpYSA9IGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Citjb25zdCBzaGFkb3dSb290ID0gd2luZG93LmludGVy
bmFscy5zaGFkb3dSb290KG1lZGlhKTsKKworbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIs
ICgpID0+IHsKKyAgICBtZWRpYS5wYXVzZSgpOworCisgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50
KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIsICJudWxsIiwgKCkg
PT4geworICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxl
Y3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIiwgIjAi
LCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBkZWJ1ZygiVGFwcGluZyB0cmFja3MgYnV0dG9u
Li4uIik7CisgICAgICAgICAgICBsZXQgW2NvbnRleHRtZW51XSA9IGF3YWl0IFByb21pc2UuYWxs
KFsKKyAgICAgICAgICAgICAgICBnZXRUcmFja3NDb250ZXh0TWVudSgpLAorICAgICAgICAgICAg
ICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNr
cyIpKSwKKyAgICAgICAgICAgIF0pOworICAgICAgICAgICAgZGVidWcoSlNPTi5zdHJpbmdpZnko
Y29udGV4dG1lbnUsIG51bGwsIDIpKTsKKworICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7Cisg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9KTsKKwor
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXNo
b3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXNob3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xp
Y2stb24tdHJhY2tzLWJ1dHRvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGFmYTc1MDY4ZWMy
M2RhZTA1NTBmNDhmNWUwZmQ0OGNjZDI3NGJlZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tz
LXN1cHBvcnQtc2hvdy1jb250ZXh0bWVudS10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0
dG9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitFbnN1cmUgdGhhdCBjbGlja2luZyB0
aGUgdHJhY2tzIGJ1dHRvbiB3aGVuIHRoZSB0cmFja3MgY29udGV4dG1lbnUgaXMgc2hvd24gbWFr
ZXMgdGhlIGNvbnRleHRtZW51IGhpZGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBk
aWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9u
LnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQg
ZnJvbSAwCitUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KK0NvbnRleHQgbWVudSBzaG93bi4KK1Rh
cHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgorQ29udGV4dCBtZW51IGhpZGRlbi4KK1RhcHBpbmcgdHJh
Y2tzIGJ1dHRvbi4uLgorQ29udGV4dCBtZW51IHNob3duLgorVGFwcGluZyB0cmFja3MgYnV0dG9u
Li4uCitDb250ZXh0IG1lbnUgaGlkZGVuLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtc2hvdy1j
b250ZXh0bWVudS10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWwgYi9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3Ry
YWNrcy1zdXBwb3J0LXNob3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tz
LWJ1dHRvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkZWYyYzA3MzQxMDAyOTI5Y2JlMWQ2Y2VjNWY2ODBi
YjIwYTNlZDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXNob3ctY29udGV4
dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi5odG1sCkBAIC0wLDAgKzEs
NTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9tZWRp
YS1jb250cm9scy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxib2R5PgorPHZpZGVvIHNy
Yz0iLi4vLi4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFi
c29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiAzMDBweDsiIGNvbnRyb2xzIGF1dG9wbGF5
IG11dGVkIHBsYXlzaW5saW5lPjwvdmlkZW8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCI+CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZGVzY3JpcHRpb24oIkVuc3Vy
ZSB0aGF0IGNsaWNraW5nIHRoZSB0cmFja3MgYnV0dG9uIHdoZW4gdGhlIHRyYWNrcyBjb250ZXh0
bWVudSBpcyBzaG93biBtYWtlcyB0aGUgY29udGV4dG1lbnUgaGlkZS4iKTsKKworY29uc3QgbWVk
aWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOworY29uc3Qgc2hhZG93Um9vdCA9
IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7CisKK21lZGlhLmFkZEV2ZW50TGlz
dGVuZXIoInBsYXkiLCAoKSA9PiB7CisgICAgbWVkaWEucGF1c2UoKTsKKworICAgIHNob3VsZEJl
Y29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJyki
LCAibnVsbCIsICgpID0+IHsKKyAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dS
b290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KS53aWR0aCIsICIwIiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgZGVidWcoIlRhcHBpbmcg
dHJhY2tzIGJ1dHRvbi4uLiIpOworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAg
ICAgICAgICAgICAgIFVJSGVscGVyLndhaXRGb3JDb250ZXh0TWVudVRvU2hvdygpLAorICAgICAg
ICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9u
LnRyYWNrcyIpKSwKKyAgICAgICAgICAgIF0pOworICAgICAgICAgICAgZGVidWcoIkNvbnRleHQg
bWVudSBzaG93bi4iKTsKKworICAgICAgICAgICAgZGVidWcoIlRhcHBpbmcgdHJhY2tzIGJ1dHRv
bi4uLiIpOworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAg
IFVJSGVscGVyLndhaXRGb3JDb250ZXh0TWVudVRvSGlkZSgpLAorICAgICAgICAgICAgICAgIHBy
ZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKSwK
KyAgICAgICAgICAgIF0pOworICAgICAgICAgICAgZGVidWcoIkNvbnRleHQgbWVudSBoaWRkZW4u
Iik7CisKKyAgICAgICAgICAgIGRlYnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4iKTsKKyAg
ICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBVSUhlbHBlci53
YWl0Rm9yQ29udGV4dE1lbnVUb1Nob3coKSwKKyAgICAgICAgICAgICAgICBwcmVzc09uRWxlbWVu
dChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSksCisgICAgICAgICAg
ICBdKTsKKyAgICAgICAgICAgIGRlYnVnKCJDb250ZXh0IG1lbnUgc2hvd24uIik7CisKKyAgICAg
ICAgICAgIGRlYnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4iKTsKKyAgICAgICAgICAgIGF3
YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBVSUhlbHBlci53YWl0Rm9yQ29udGV4
dE1lbnVUb0hpZGUoKSwKKyAgICAgICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290
LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSksCisgICAgICAgICAgICBdKTsKKyAgICAg
ICAgICAgIGRlYnVnKCJDb250ZXh0IG1lbnUgaGlkZGVuLiIpOworCisgICAgICAgICAgICBtZWRp
YS5yZW1vdmUoKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9KTsKKyAg
ICB9KTsKK30pOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJh
Y2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC9pb3MvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTdmNzk1MDdhMzhkZTdkMjUxNWQ1NTI5ODEzY2ZlZWQ4
NmE4ZjIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNl
bGVjdGVkLXZpYS1tZWRpYS1hcGktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTcgQEAKK1RoaXMg
dGVzdCBjaGVja3MgdGhhdCBzZXR0aW5nIGFuIGVtYmVkZGVkIHRleHQgdHJhY2sgYXMgc2VsZWN0
ZWQgdmlhIHRoZSBIVE1MTWVkaWFFbGVtZW50IEpTIEFQSXMgd2lsbCBjb3JyZWN0bHkgc2hvdyB0
aGlzIHRyYWNrIGFzIHNlbGVjdGVkLCBhbmQgdGhhdCBzZWxlY3RpbmcgdGhlICJBdXRvbWF0aWMg
KFJlY29tbWVuZGVkKSIgdHJhY2sgd2lsbCByZXZlcnQgYmFjayB0byBzZWxlY3RpbmcgdGhhdCBl
bnRyeS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwK
K1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKK1NldHRpbmcgbW9k
ZSB0byAnc2hvd2luZycgZm9yIGZpcnN0IHRleHQgdHJhY2sgdmlhIEphdmFTY3JpcHQuLi4KK1Rh
cHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgorWworICB7CisgICAgInRpdGxlIjogIlN1YnRpdGxlcyIs
CisgICAgImNoaWxkcmVuIjogWworICAgICAgeworICAgICAgICAidGl0bGUiOiAiT2ZmIgorICAg
ICAgfSwKKyAgICAgIHsKKyAgICAgICAgInRpdGxlIjogIkF1dG8gKFJlY29tbWVuZGVkKSIKKyAg
ICAgIH0sCisgICAgICB7CisgICAgICAgICJ0aXRsZSI6ICJFbmdsaXNoIiwKKyAgICAgICAgImNo
ZWNrZWQiOiB0cnVlCisgICAgICB9LAorICAgICAgeworICAgICAgICAidGl0bGUiOiAiRnJlbmNo
IgorICAgICAgfQorICAgIF0KKyAgfQorXQorU2VsZWN0aW5nIGZpcnN0IHRleHQgdHJhY2suLi4K
K1BBU1MgbWVkaWEudGV4dFRyYWNrc1swXS5tb2RlIGlzICdkaXNhYmxlZCcKK1BBU1MgbWVkaWEu
dGV4dFRyYWNrc1sxXS5tb2RlIGlzICdzaG93aW5nJworVGFwcGluZyB0cmFja3MgYnV0dG9uLi4u
CitbCisgIHsKKyAgICAidGl0bGUiOiAiU3VidGl0bGVzIiwKKyAgICAiY2hpbGRyZW4iOiBbCisg
ICAgICB7CisgICAgICAgICJ0aXRsZSI6ICJPZmYiCisgICAgICB9LAorICAgICAgeworICAgICAg
ICAidGl0bGUiOiAiQXV0byAoUmVjb21tZW5kZWQpIiwKKyAgICAgICAgImNoZWNrZWQiOiB0cnVl
CisgICAgICB9LAorICAgICAgeworICAgICAgICAidGl0bGUiOiAiRW5nbGlzaCIKKyAgICAgIH0s
CisgICAgICB7CisgICAgICAgICJ0aXRsZSI6ICJGcmVuY2giCisgICAgICB9CisgICAgXQorICB9
CitdCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRp
YS1hcGkuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVk
aWEtYXBpLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDY4OGM3MjFjNTE4NDVkNTAzYjI4ZDEzNmE4MmFjYjRi
NDMxYzQ1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1z
ZWxlY3RlZC12aWEtbWVkaWEtYXBpLmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVy
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8dmlkZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50
L2NvdW50aW5nLXN1YnRpdGxlZC5tNHYiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6
IDA7IHRvcDogMDsgd2lkdGg6IDMwMHB4OyIgY29udHJvbHMgYXV0b3BsYXkgbXV0ZWQgcGxheXNp
bmxpbmU+PC92aWRlbz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKword2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitkZXNjcmlwdGlvbihgVGhpcyB0ZXN0IGNoZWNrcyB0
aGF0IHNldHRpbmcgYW4gZW1iZWRkZWQgdGV4dCB0cmFjayBhcyBzZWxlY3RlZCB2aWEgdGhlIEhU
TUxNZWRpYUVsZW1lbnQgSlMgQVBJcyB3aWxsIGNvcnJlY3RseSBzaG93IHRoaXMgdHJhY2sgYXMg
c2VsZWN0ZWQsIGFuZCB0aGF0IHNlbGVjdGluZyB0aGUgCisiQXV0b21hdGljIChSZWNvbW1lbmRl
ZCkiIHRyYWNrIHdpbGwgcmV2ZXJ0IGJhY2sgdG8gc2VsZWN0aW5nIHRoYXQgZW50cnkuYCk7CisK
K2NvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKK2NvbnN0IHNo
YWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOworCittZWRpYS5h
ZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4geworICAgIG1lZGlhLnBhdXNlKCk7CisKKyAg
ICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9u
LnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7CisgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVu
dCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCkud2lkdGgiLCAiMCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGRlYnVn
KCJTZXR0aW5nIG1vZGUgdG8gJ3Nob3dpbmcnIGZvciBmaXJzdCB0ZXh0IHRyYWNrIHZpYSBKYXZh
U2NyaXB0Li4uIik7CisgICAgICAgICAgICBtZWRpYS50ZXh0VHJhY2tzWzBdLm1vZGUgPSAic2hv
d2luZyI7CisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiVGFwcGluZyB0
cmFja3MgYnV0dG9uLi4uIik7CisgICAgICAgICAgICAgICAgbGV0IFtjb250ZXh0bWVudV0gPSBh
d2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgICAgIGdldFRyYWNrc0NvbnRleHRN
ZW51KCksCisgICAgICAgICAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKSwKKyAgICAgICAgICAgICAgICBdKTsKKyAgICAg
ICAgICAgICAgICBkZWJ1ZyhKU09OLnN0cmluZ2lmeShjb250ZXh0bWVudSwgbnVsbCwgMikpOwor
CisgICAgICAgICAgICAgICAgZGVidWcoIlNlbGVjdGluZyBmaXJzdCB0ZXh0IHRyYWNrLi4uIik7
CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuY2hvb3NlTWVudUFjdGlvbihjb250ZXh0
bWVudVswXS5jaGlsZHJlblsxXS50aXRsZSk7CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxw
ZXIud2FpdEZvckNvbnRleHRNZW51VG9IaWRlKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIHNob3VsZEJlKCJtZWRpYS50ZXh0VHJhY2tzWzBdLm1vZGUiLCAiJ2Rpc2FibGVkJyIpOwor
ICAgICAgICAgICAgc2hvdWxkQmUoIm1lZGlhLnRleHRUcmFja3NbMV0ubW9kZSIsICInc2hvd2lu
ZyciKTsKKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGRlYnVnKCJUYXBwaW5nIHRy
YWNrcyBidXR0b24uLi4iKTsKKyAgICAgICAgICAgICAgICBsZXQgW2NvbnRleHRtZW51XSA9IGF3
YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICAgICAgZ2V0VHJhY2tzQ29udGV4dE1l
bnUoKSwKKyAgICAgICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVy
eVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpLAorICAgICAgICAgICAgICAgIF0pOworICAgICAg
ICAgICAgICAgIGRlYnVnKEpTT04uc3RyaW5naWZ5KGNvbnRleHRtZW51LCBudWxsLCAyKSk7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgpOworICAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0pOworfSk7CisKKzwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJh
Y2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2stZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFkYWMwYjc1NWNjYmE5ODA2OTg5NDM1ZTRmYmI3ODUzNTA2YWQ5
N2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorRW5zdXJlIHdlIGhhdmUgdGhlIEF1dG8gdGV4
dCB0cmFjayBzZWxlY3RlZCBieSBkZWZhdWx0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNh
bWUgZGlmZmVyZW50IGZyb20gbnVsbAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1
dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVy
ZW50IGZyb20gMAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwn
KSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3JBbGwoJ2xpLnNlbGVjdGVkJylbMV0udGV4dENvbnRlbnQgaXMgIkF1dG8gKFJlY29tbWVuZGVk
KSIKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtYXV0by10ZXh0LXRyYWNrLmh0bWwgYi9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3Ry
YWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzZmY3NzlmMjkz
ZmYxY2M1NzhkNTdiNjU4YmNiNDMwZmM1ZmFkMzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNr
cy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xz
LXV0aWxzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgorPGJvZHk+Cis8dmlk
ZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJwb3NpdGlv
bjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDY0MHB4OyBoZWlnaHQ6IDM2MHB4
OyIgY29udHJvbHMgYXV0b3BsYXk+PC92aWRlbz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij4KKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitkZXNjcmlwdGlvbigiRW5z
dXJlIHdlIGhhdmUgdGhlIEF1dG8gdGV4dCB0cmFjayBzZWxlY3RlZCBieSBkZWZhdWx0LiIpOwor
Citjb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Citjb25zdCBz
aGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsKKworbWVkaWEu
YWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKKyAgICBtZWRpYS5wYXVzZSgpOworCisg
ICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRv
bi50cmFja3MnKSIsICJudWxsIiwgKCkgPT4geworICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJl
bnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpLndpZHRoIiwgIjAiLCAoKSA9PiB7CisgICAgICAgICAgICB3aW5kb3cuaW50
ZXJuYWxzLnNldENhcHRpb25EaXNwbGF5TW9kZSgiYXV0b21hdGljIik7CisgICAgICAgICAgICBw
cmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSk7
CisgICAgICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxl
Y3RvcignLnRyYWNrcy1wYW5lbCcpIiwgIm51bGwiLCAoKSA9PiB7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpLnNl
bGVjdGVkJylbMV0udGV4dENvbnRlbnQiLCAiQXV0byAoUmVjb21tZW5kZWQpIik7CisgICAgICAg
ICAgICAgICAgZGVidWcoIiIpOworICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
Q2FwdGlvbkRpc3BsYXlNb2RlKCJmb3JjZWRvbmx5Iik7CisgICAgICAgICAgICAgICAgbWVkaWEu
cmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9KTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNrLWluLXBhbmVsLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJhY2staW4tcGFuZWwtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjUyOTQxMTA1YmZhOWNlZjI2ZjdjMzBmOGI5ZGM1MzI2OTNmMzViMmYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNrLWluLXBhbmVs
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMyIEBACitDbGlja2luZyBvbiBhIHRyYWNrIGluIHRo
ZSB0cmFja3MgcGFuZWwuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCittZWRpYS5h
dWRpb1RyYWNrc1swXS5lbmFibGVkID0gdHJ1ZQorbWVkaWEuYXVkaW9UcmFja3NbMV0uZW5hYmxl
ZCA9IGZhbHNlCittZWRpYS5hdWRpb1RyYWNrc1syXS5lbmFibGVkID0gZmFsc2UKKworUEFTUyBz
aGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50
IGZyb20gbnVsbAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3Mn
KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAor
CitDbGlja2luZyBvbiB0aGUgdHJhY2tzIGJ1dHRvbgorQ2xpY2tpbmcgb24gc2Vjb25kIGF1ZGlv
IHRyYWNrIGluIHRyYWNrcyBwYW5lbAorCitPYnRhaW5lZCBjaGFuZ2UgZXZlbnQgb24gbWVkaWEg
YXVkaW8gdHJhY2tzCittZWRpYS5hdWRpb1RyYWNrc1swXS5lbmFibGVkID0gZmFsc2UKK21lZGlh
LmF1ZGlvVHJhY2tzWzFdLmVuYWJsZWQgPSB0cnVlCittZWRpYS5hdWRpb1RyYWNrc1syXS5lbmFi
bGVkID0gZmFsc2UKKworQ2xpY2tpbmcgb24gdGhlIHRyYWNrcyBidXR0b24KK0NsaWNraW5nIG9u
IHRoaXJkIGF1ZGlvIHRyYWNrIGluIHRyYWNrcyBwYW5lbAorCitPYnRhaW5lZCBjaGFuZ2UgZXZl
bnQgb24gbWVkaWEgYXVkaW8gdHJhY2tzCittZWRpYS5hdWRpb1RyYWNrc1swXS5lbmFibGVkID0g
ZmFsc2UKK21lZGlhLmF1ZGlvVHJhY2tzWzFdLmVuYWJsZWQgPSBmYWxzZQorbWVkaWEuYXVkaW9U
cmFja3NbMl0uZW5hYmxlZCA9IHRydWUKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtY2xpY2st
dHJhY2staW4tcGFuZWwuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJhY2staW4tcGFu
ZWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45ZmIyY2IzYzNhMzA3YzA5ZTNjOWMwZmZlYWU5ZTYyNDcxNTE0
OTg3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1jbGljay10cmFjay1pbi1w
YW5lbC5odG1sCkBAIC0wLDAgKzEsOTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4K
Kzx2aWRlbyBzcmM9Ii4uLy4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9InBv
c2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDogNjQwcHg7IGhlaWdodDog
MzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiPgorCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9u
KCJDbGlja2luZyBvbiBhIHRyYWNrIGluIHRoZSB0cmFja3MgcGFuZWwuIik7CisKK2NvbnN0IG1l
ZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKK2NvbnN0IHNoYWRvd1Jvb3Qg
PSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOworCitsZXQgcHJldmlvdXNseVNl
bGVjdGVkVHJhY2sgPSAwOworCittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4g
eworICAgIG1lZGlhLnBhdXNlKCk7CisKKyAgICBkdW1wQXVkaW9UcmFja3NFbmFibGVkU3RhdGUo
KTsKKworICAgIG1lZGlhLmF1ZGlvVHJhY2tzLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIGF1
ZGlvVHJhY2tzRGlkQ2hhbmdlKTsKKworICAgIGRlYnVnKCIiKTsKKyAgICBzaG91bGRCZWNvbWVE
aWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51
bGwiLCAoKSA9PiB7CisgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lk
dGgiLCAiMCIsICgpID0+IHsKKyAgICAgICAgICAgIGNsaWNrT25UcmFja3NCdXR0b24oY2xpY2tP
blNlY29uZEF1ZGlvVHJhY2spOworICAgICAgICB9KTsKKyAgICB9KTsKK30pOworCitmdW5jdGlv
biBjbGlja09uVHJhY2tzQnV0dG9uKGNvbnRpbnVhdGlvbikKK3sKKyAgICB3aW5kb3cucmVxdWVz
dEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBkZWJ1
ZygiQ2xpY2tpbmcgb24gdGhlIHRyYWNrcyBidXR0b24iKTsKKyAgICAgICAgY2xpY2tPbkVsZW1l
bnQoc2hhZG93Um9vdC5sYXN0Q2hpbGQucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKTsK
KyAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShjb250aW51YXRpb24pOworICAg
IH0pOworfQorCitmdW5jdGlvbiBjbGlja09uU2Vjb25kQXVkaW9UcmFjaygpCit7CisgICAgZGVi
dWcoIkNsaWNraW5nIG9uIHNlY29uZCBhdWRpbyB0cmFjayBpbiB0cmFja3MgcGFuZWwiKTsKKyAg
ICBjbGlja09uQXVkaW9UcmFja0F0SW5kZXgoMSk7Cit9CisKK2Z1bmN0aW9uIGNsaWNrT25UaGly
ZEF1ZGlvVHJhY2soKQoreworICAgIGRlYnVnKCJDbGlja2luZyBvbiB0aGlyZCBhdWRpbyB0cmFj
ayBpbiB0cmFja3MgcGFuZWwiKTsKKyAgICBjbGlja09uQXVkaW9UcmFja0F0SW5kZXgoMik7Cit9
CisKK2Z1bmN0aW9uIGNsaWNrT25BdWRpb1RyYWNrQXRJbmRleChpbmRleCkKK3sKKyAgICBjbGlj
a09uRWxlbWVudChzaGFkb3dSb290Lmxhc3RDaGlsZC5xdWVyeVNlbGVjdG9yQWxsKCJsaSIpW2lu
ZGV4XSk7Cit9CisKK2Z1bmN0aW9uIGNsaWNrT25FbGVtZW50KGVsZW1lbnQpCit7CisgICAgY29u
c3QgYm91bmRzID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbyhib3VuZHMubGVmdCArIDEsIGJvdW5kcy50b3AgKyAxKTsKKyAgICBl
dmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9CisK
K2Z1bmN0aW9uIGF1ZGlvVHJhY2tzRGlkQ2hhbmdlKCkKK3sKKyAgICBjb25zdCBuZXdTZWxlY3Rl
ZFRyYWNrID0gQXJyYXkuZnJvbShtZWRpYS5hdWRpb1RyYWNrcykuZmluZEluZGV4KHRyYWNrID0+
IHRyYWNrLmVuYWJsZWQpOworICAgIGlmIChwcmV2aW91c2x5U2VsZWN0ZWRUcmFjayA9PT0gbmV3
U2VsZWN0ZWRUcmFjaykKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJldmlvdXNseVNlbGVjdGVk
VHJhY2sgPSBuZXdTZWxlY3RlZFRyYWNrOworCisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJP
YnRhaW5lZCBjaGFuZ2UgZXZlbnQgb24gbWVkaWEgYXVkaW8gdHJhY2tzIik7CisKKyAgICBkdW1w
QXVkaW9UcmFja3NFbmFibGVkU3RhdGUoKTsKKworICAgIGlmIChtZWRpYS5hdWRpb1RyYWNrc1sx
XS5lbmFibGVkKQorICAgICAgICBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi50cmFja3MtcGFu
ZWwiKS5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIiwgZXZlbnQgPT4gY2xpY2tPblRy
YWNrc0J1dHRvbihjbGlja09uVGhpcmRBdWRpb1RyYWNrKSk7CisgICAgZWxzZSBpZiAobWVkaWEu
YXVkaW9UcmFja3NbMl0uZW5hYmxlZCkgeworICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgIG1l
ZGlhLnJlbW92ZSgpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9Cit9CisKK2Z1bmN0
aW9uIGR1bXBBdWRpb1RyYWNrc0VuYWJsZWRTdGF0ZSgpCit7CisgICAgQXJyYXkuZnJvbShtZWRp
YS5hdWRpb1RyYWNrcykuZm9yRWFjaCgoYXVkaW9UcmFjaywgaW5kZXgpID0+IHsKKyAgICAgICAg
ZGVidWcoYG1lZGlhLmF1ZGlvVHJhY2tzWyR7aW5kZXh9XS5lbmFibGVkID0gJHttZWRpYS5hdWRp
b1RyYWNrc1tpbmRleF0uZW5hYmxlZH1gKTsKKyAgICB9KTsKK30KKworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10cmFja3MtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43YWQzZmMxOTZiNjU5OTVmM2E3MDRjN2MyMTc4MGY1MzMyNmFiODRlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDIxIEBACitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGhlIHRyYWNrcyBwYW5l
bCBkb2Vzbid0IHNob3cgYW55IHRyYWNrIGFzIHNlbGVjdGVkIGlmIGFsbCB0aGUgdGV4dCB0cmFj
a3MgZm9yIGEgbWVkaWEgZWxlbWVudCBhcmUgbWFya2VkIGFzICJoaWRkZW4iLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1
dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAorUEFTUyBzaGFkb3dSb290
LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53
aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAorCis9PT0gSW5pdGlhbCBzdGF0ZSA9PT0KKwor
W3hdIE9mZgorWy1dIEF1dG8gKFJlY29tbWVuZGVkKQorWy1dIEVuZ2xpc2ggU3VidGl0bGVzCitb
LV0gRnJlbmNoIFN1YnRpdGxlcworWy1dIEdlcm1hbiBTdWJ0aXRsZXMKK1stXSBTcGFuaXNoIFN1
YnRpdGxlcworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLmh0bWwgYi9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFj
L3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10cmFja3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOWEyYjUzNzY3
MTFjZmQ5MmE4YzRkOWQ5MTgxNmNiZWVkYzBlODNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFj
a3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLmh0bWwKQEAgLTAsMCArMSw3MiBAQAorPCFET0NUWVBF
IGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxib2R5PgorPHZpZGVvIHNyYz0iLi4vLi4vLi4vY29udGVudC9DQytTdWJ0
aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdp
ZHRoOiA2NDBweDsgaGVpZ2h0OiAzNjBweDsiIGNvbnRyb2xzIGF1dG9wbGF5PjwvdmlkZW8+Cis8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKworZGVzY3JpcHRpb24oYFRoaXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgdHJhY2tzIHBh
bmVsIGRvZXNuJ3Qgc2hvdyBhbnkgdHJhY2sgYXMgc2VsZWN0ZWQgaWYgYWxsIHRoZSB0ZXh0IHRy
YWNrcyBmb3IgYSBtZWRpYSBlbGVtZW50IGFyZSBtYXJrZWQgYXMgImhpZGRlbiIuYCk7CisKK2Nv
bnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKK2NvbnN0IHNoYWRv
d1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOworCittZWRpYS5hZGRF
dmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4geworICAgIG1lZGlhLnBhdXNlKCk7CisKKyAgICBz
aG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRy
YWNrcycpIiwgIm51bGwiLCAoKSA9PiB7CisgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgi
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCkud2lkdGgiLCAiMCIsIHJ1blRlc3QpOworICAgIH0pOworfSk7CisKK2FzeW5jIGZ1
bmN0aW9uIHJ1blRlc3QoKQoreworICAgIC8vIFN0YXJ0IGJ5IG1ha2luZyBzdXJlIGFsbCB0cmFj
a3MgYXJlIG1hcmtlZCBhcyAiaGlkZGVuIi4KKyAgICBBcnJheS5mcm9tKG1lZGlhLnRleHRUcmFj
a3MpLmZvckVhY2godHJhY2sgPT4gdHJhY2subW9kZSA9ICJoaWRkZW4iKTsKKworICAgIC8vIE5l
eHQsIGJyaW5nIHVwIHRoZSB0cmFja3MgbWVudSBieSBjbGlja2luZyBvbiB0aGUgdHJhY2tzIGJ1
dHRvbi4KKyAgICBhd2FpdCBjbGlja09uVHJhY2tzQnV0dG9uKCk7CisgICAgLy8gRHVtcCB0aGUg
c3RhdGUgb2YgdGhlIHRyYWNrcyBtZW51IGZvciB0ZXh0IHRyYWNrcywgd2hpY2ggc2hvdWxkIHNo
b3cgdGhlIGZpcnN0IGVtYmVkZGVkIHRleHQgdHJhY2sgYXMgc2VsZWN0ZWQuCisgICAgZHVtcFRl
eHRUcmFja3NMaXN0Tm9kZXMoIkluaXRpYWwgc3RhdGUiKTsKKworICAgIGZpbmlzaFRlc3QoKTsK
K30KKworZnVuY3Rpb24gdGV4dFRyYWNrc0xpc3ROb2RlcygpCit7CisgICAgcmV0dXJuIHNoYWRv
d1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLnRyYWNrcy1wYW5lbCBzZWN0aW9uOmxhc3Qtb2YtdHlw
ZSA+IHVsID4gbGkiKTsKK30KKworZnVuY3Rpb24gZHVtcFRleHRUcmFja3NMaXN0Tm9kZXMobXNn
KQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZyhgPT09ICR7bXNnfSA9PT1gKTsKKyAgICBk
ZWJ1ZygiIik7CisgICAgQXJyYXkuZnJvbSh0ZXh0VHJhY2tzTGlzdE5vZGVzKCkpLmZvckVhY2go
bGkgPT4gZGVidWcoYCR7bGkuY2xhc3NMaXN0LmNvbnRhaW5zKCJzZWxlY3RlZCIpID8gIlt4XSIg
OiAiWy1dIn0gJHtsaS50ZXh0Q29udGVudH1gKSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGNsaWNr
T25UcmFja3NCdXR0b24oKQoreworICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlcXVlc3RBbmltYXRp
b25GcmFtZSk7CisgICAgY2xpY2tPbkVsZW1lbnQoc2hhZG93Um9vdC5sYXN0Q2hpbGQucXVlcnlT
ZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXF1ZXN0
QW5pbWF0aW9uRnJhbWUpOworfQorCitmdW5jdGlvbiBjbGlja09uRWxlbWVudChlbGVtZW50KQor
eworICAgIGNvbnN0IGJvdW5kcyA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYm91bmRzLmxlZnQgKyAxLCBib3VuZHMudG9wICsg
MSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VV
cCgpOworfQorCitmdW5jdGlvbiBmaW5pc2hUZXN0KCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAg
bWVkaWEucmVtb3ZlKCk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mYjNlMzE4MDVkZWU4MjdmOGI3ZThhZjExYTBmYmI5NjUwNWU4MTdkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxNCBAQAorRW5zdXJlIHdlIGhhdmUgdGhlIE9mZiB0ZXh0IHRyYWNr
IHNlbGVjdGVkIGJ5IGRlZmF1bHQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZm
ZXJlbnQgZnJvbSBudWxsCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRy
YWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJv
bSAwCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpIGJlY2Ft
ZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgn
bGkuc2VsZWN0ZWQnKVsxXS50ZXh0Q29udGVudCBpcyAiT2ZmIgorCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mt
c3VwcG9ydC1vZmYtdGV4dC10cmFjay5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10
cmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2MDgwODc4NDQ1NTBkOTdlN2NhYzg3YWIyNmQ1M2RkNjg0
MWNkM2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNr
Lmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMiIHR5cGU9InRleHQvamF2
YXNjcmlwdCI+PC9zY3JpcHQ+Cis8Ym9keT4KKzx2aWRlbyBzcmM9Ii4uLy4uLy4uL2NvbnRlbnQv
Q0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9w
OiAwOyB3aWR0aDogNjQwcHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3Zp
ZGVvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit3aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCJFbnN1cmUgd2UgaGF2ZSB0aGUgT2ZmIHRleHQg
dHJhY2sgc2VsZWN0ZWQgYnkgZGVmYXVsdC4iKTsKKworY29uc3QgbWVkaWEgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCJ2aWRlbyIpOworY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5h
bHMuc2hhZG93Um9vdChtZWRpYSk7CisKK21lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAo
KSA9PiB7CisgICAgbWVkaWEucGF1c2UoKTsKKworICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgi
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAibnVsbCIsICgpID0+
IHsKKyAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCIsICIwIiwg
KCkgPT4geworICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVj
dG9yKCJidXR0b24udHJhY2tzIikpOworICAgICAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50
KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKSIsICJudWxsIiwgKCkg
PT4geworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yQWxsKCdsaS5zZWxlY3RlZCcpWzFdLnRleHRDb250ZW50IiwgIk9mZiIpOwor
ICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgICAgICAgICBtZWRpYS5yZW1vdmUo
KTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9KTsKKyAgICB9KTsKK30pOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQtcG9wdWxhdGUtcGFuZWwtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LWFuZC1wb3B1bGF0ZS1wYW5lbC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDUyZDZjYjE5ODc4ODA1ODljYTBlYzhhZGUwMDA3MTE3YjNhZDUwNwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQtcG9wdWxhdGUtcGFu
ZWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjIgQEAKK1Nob3dpbmcgYW5kIHBvcHVsYXRpbmcg
dGhlIHRyYWNrcyBwYW5lbC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0F1ZGlv
CisgIEVuZ2xpc2ggU291bmQKKyAgRnJlbmNoIFNvdW5kCisgIFNwYW5pc2ggU291bmQKKworU3Vi
dGl0bGVzCisgIE9mZgorICBBdXRvIChSZWNvbW1lbmRlZCkKKyAgRW5nbGlzaCBTdWJ0aXRsZXMK
KyAgRnJlbmNoIFN1YnRpdGxlcworICBHZXJtYW4gU3VidGl0bGVzCisgIFNwYW5pc2ggU3VidGl0
bGVzCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLmh0
bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBv
cnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYTNiM2FiN2JhZTMyNGI4MWJkMWFmMDNjNGM5NTE4Mzk2YjkyZGQ0OAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQtcG9wdWxhdGUtcGFuZWwuaHRtbApA
QCAtMCwwICsxLDQ2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8dmlkZW8gc3Jj
PSIuLi8uLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJ3aWR0aDogNjQwcHg7
IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgorPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPgorCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Rl
c2NyaXB0aW9uKCJTaG93aW5nIGFuZCBwb3B1bGF0aW5nIHRoZSB0cmFja3MgcGFuZWwuIik7CisK
K2NvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKK2NvbnN0IHNo
YWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOworCittZWRpYS5h
ZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4geworICAgIG1lZGlhLnBhdXNlKCk7CisgICAg
d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CisgICAgICAgIGNsaWNrT25UcmFj
a3NCdXR0b24oKTsKKyAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7
CisgICAgICAgICAgICBsaXN0Q29udGVudHNPZlRyYWNrc1BhbmVsKCk7CisgICAgICAgICAgICBt
ZWRpYS5yZW1vdmUoKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9KTsK
KyAgICB9KTsKK30pOworCitmdW5jdGlvbiBjbGlja09uVHJhY2tzQnV0dG9uKCkKK3sKKyAgICBj
b25zdCBib3VuZHMgPSBzaGFkb3dSb290Lmxhc3RDaGlsZC5xdWVyeVNlbGVjdG9yKCJidXR0b24u
dHJhY2tzIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VN
b3ZlVG8oYm91bmRzLmxlZnQgKyAxLCBib3VuZHMudG9wICsgMSk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQorCitmdW5jdGlvbiBs
aXN0Q29udGVudHNPZlRyYWNrc1BhbmVsKCkKK3sKKyAgICBmb3IgKGxldCBzZWN0aW9uIG9mIHNo
YWRvd1Jvb3QubGFzdENoaWxkLnF1ZXJ5U2VsZWN0b3JBbGwoInNlY3Rpb24iKSkgeworICAgICAg
ICBkZWJ1ZyhzZWN0aW9uLnF1ZXJ5U2VsZWN0b3IoImgzIikudGV4dENvbnRlbnQpOworICAgICAg
ICBmb3IgKGxldCBpdGVtIG9mIHNlY3Rpb24ucXVlcnlTZWxlY3RvckFsbCgibGkiKSkKKyAgICAg
ICAgICAgIGRlYnVnKCIgICIgKyBpdGVtLnRleHRDb250ZW50KTsKKyAgICAgICAgZGVidWcoIiIp
OworICAgIH0KK30KKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3Ry
YWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJvbHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTg0MzBiZjM4ZjEyNjYwYjhlZmNjNzk2MTZlZjE4
NGI1MTA4NGU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVs
LWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitU
ZXN0aW5nIHRoZSBkaXNwbGF5IG9mIGEgdHJhY2tzIHBhbmVsIGFmdGVyIGRyYWdnaW5nIHRoZSBj
b250cm9scyBiYXIgaW4gZnVsbHNjcmVlbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24uZnVsbHNjcmVlbicpLmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitQQVNTIHNoYWRv
d1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0IGlzIHNoYWRv
d1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpLmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpLnJpZ2h0CitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcp
LnN0eWxlLmJvdHRvbSBpcyAiMTUxcHgiCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ct
cGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJvbHMuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hv
dy1wYW5lbC1hZnRlci1kcmFnZ2luZy1jb250cm9scy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhYmFiOTA1
ODU4ZmNhZWY5OGIyOThjZTc3MGY5YjFiNjY4NjY4MTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3Ry
YWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJvbHMuaHRtbApAQCAt
MCwwICsxLDU5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48
L3NjcmlwdD4KKzxib2R5PgorPHZpZGVvIHNyYz0iLi4vLi4vLi4vY29udGVudC9DQytTdWJ0aXRs
ZXMubW92IiBzdHlsZT0id2lkdGg6IDMyMHB4OyBoZWlnaHQ6IDI0MHB4OyIgY29udHJvbHMgYXV0
b3BsYXk+PC92aWRlbz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKword2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitkZXNjcmlwdGlvbigiVGVzdGluZyB0aGUgZGlzcGxh
eSBvZiBhIHRyYWNrcyBwYW5lbCBhZnRlciBkcmFnZ2luZyB0aGUgY29udHJvbHMgYmFyIGluIGZ1
bGxzY3JlZW4uIik7CisKK2NvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigidmlk
ZW8iKTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVk
aWEpOworCittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRiZWdpbmZ1bGxzY3JlZW4iLCAo
KSA9PiB7CisgICAgZGVidWcoIndlYmtpdGJlZ2luZnVsbHNjcmVlbiIpOworfSk7CisKK21lZGlh
LmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UiLCAoKSA9PiB7CisgICAg
aWYgKCFtZWRpYS53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CisgICAgICAgIGNvbnN0
IGJvdW5kcyA9IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvbnRyb2xzLWJhciIpLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhib3Vu
ZHMubGVmdCArIDExOCwgYm91bmRzLnRvcCArIDEwKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VEb3duKCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGJvdW5kcy5sZWZ0ICsg
NjgsIGJvdW5kcy50b3AgLSA0MCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKwor
ICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAgICAgICAgY2xpY2tP
bkJ1dHRvbigidHJhY2tzIiwgKCkgPT4geworICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRp
b25GcmFtZSgoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJzaGFkb3dSb290
LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5y
aWdodCIsICJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5nZXRCb3Vu
ZGluZ0NsaWVudFJlY3QoKS5yaWdodCIpCisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykuc3R5
bGUuYm90dG9tIiwgIjE1MXB4Iik7CisKKyAgICAgICAgICAgICAgICAgICAgZGVidWcoIiIpOwor
ICAgICAgICAgICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfSk7CisgICAgfSk7Cit9KTsKKworbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIs
ICgpID0+IHsKKyAgICBtZWRpYS5wYXVzZSgpOworICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9u
RnJhbWUoKCkgPT4gY2xpY2tPbkJ1dHRvbigiZnVsbHNjcmVlbiIpKTsKK30pOworCitmdW5jdGlv
biBjbGlja09uQnV0dG9uKG5hbWUsIGNvbnRpbnVhdGlvbikKK3sKKyAgICBzaG91bGRCZWNvbWVE
aWZmZXJlbnQoYHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLiR7bmFtZX0nKS5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKWAsICIwIiwgKCkgPT4geworICAgICAgICBwcmVzc09uRWxlbWVu
dChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoYGJ1dHRvbi4ke25hbWV9YCksIGNvbnRpbnVhdGlv
bik7CisgICAgfSk7Cit9CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21h
Yy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxzY3JlZW4tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90
cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxzY3JlZW4tZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjc1MTUyNTUwNDI4MDhkYzZmM2QxZDlhYTcxM2U2MTZlNTI5NzVlYTMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtZnVsbHNjcmVlbi1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxOSBAQAorU2hvd2luZyB0aGUgdHJhY2tzIHBhbmVsIGluIGZ1bGxzY3Jl
ZW4uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGludGVybmFscy5zaGFk
b3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0b24uZnVsbHNjcmVlbiIpIGJlY2FtZSBk
aWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVy
eVNlbGVjdG9yKCJidXR0b24uZnVsbHNjcmVlbiIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndp
ZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitQQVNTIG1lZGlhLndlYmtpdERpc3BsYXlpbmdG
dWxsc2NyZWVuIGJlY2FtZSB0cnVlCitQQVNTIGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5x
dWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwK
K1BBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50
cmFja3MiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZy
b20gMAorUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcigiYnV0
dG9uLnRyYWNrcyIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0IGJlY2FtZSA1ODIKK1BB
U1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFu
ZWwnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAorUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9v
dChtZWRpYSkucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpLnN0eWxlLnJpZ2h0IGlzICIy
MThweCIKK1BBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoJy50
cmFja3MtcGFuZWwnKS5zdHlsZS5ib3R0b20gaXMgIjEwMXB4IgorCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mt
c3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxzY3JlZW4uaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hv
dy1wYW5lbC1mdWxsc2NyZWVuLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDVkNGU2YjczY2M0NzM3ODMxZmJj
M2YyODJjYThiOTYxZjZkOWE5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQt
c2hvdy1wYW5lbC1mdWxsc2NyZWVuLmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRp
bHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cis8Ym9keT4KKzx2aWRlbyBz
cmM9Ii4uLy4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9IndpZHRoOiAzMjBw
eDsgaGVpZ2h0OiAyNDBweDsiIGNvbnRyb2xzIGF1dG9wbGF5PjwvdmlkZW8+Cis8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
ZGVzY3JpcHRpb24oIlNob3dpbmcgdGhlIHRyYWNrcyBwYW5lbCBpbiBmdWxsc2NyZWVuLiIpOwor
CitzZXRUaW1lb3V0KCgpID0+IHsKKyAgICBkZWJ1ZygiRkFJTDogZGlkIG5vdCBlbmQgZmFzdCBl
bm91Z2giKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30sIDEwMDAwKTsKKworY29uc3QgbWVkaWEg
PSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOworCittZWRpYS5hZGRFdmVudExpc3Rl
bmVyKCJ3ZWJraXRmdWxsc2NyZWVuY2hhbmdlIiwgKCkgPT4geworICAgIHNob3VsZEJlY29tZUVx
dWFsKCJtZWRpYS53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiIsICJ0cnVlIiwgKCkgPT4gewor
ICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoYGludGVybmFscy5zaGFkb3dSb290KG1lZGlh
KS5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIilgLCAibnVsbCIsICgpID0+IHsKKyAgICAg
ICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudChgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEp
LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53
aWR0aGAsICIwIiwgKCkgPT4geworICAgICAgICAgICAgICAgIHNob3VsZEJlY29tZUVxdWFsKGBp
bnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIp
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0YCwgIjU4MiIsICgpID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1
ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSk7CisgICAgICAgICAgICAgICAgICAgIHNob3Vs
ZEJlY29tZURpZmZlcmVudChgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0
b3IoJy50cmFja3MtcGFuZWwnKWAsICJudWxsIiwgKCkgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSku
cXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpLnN0eWxlLnJpZ2h0IiwgIjIxOHB4Iik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImludGVybmFscy5z
aGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykuc3R5bGUuYm90
dG9tIiwgIjEwMXB4Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKK30pOworCitt
ZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4geworICAgIG1lZGlhLnBhdXNlKCk7
CisgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KGBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSku
cXVlcnlTZWxlY3RvcigiYnV0dG9uLmZ1bGxzY3JlZW4iKWAsICJudWxsIiwgKCkgPT4geworICAg
ICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoYGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5x
dWVyeVNlbGVjdG9yKCJidXR0b24uZnVsbHNjcmVlbiIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
LndpZHRoYCwgIjAiLCAoKSA9PiB7CisgICAgICAgICAgICBwcmVzc09uRWxlbWVudChpbnRlcm5h
bHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcihgYnV0dG9uLmZ1bGxzY3JlZW5gKSk7
CisgICAgICAgIH0pOworICAgIH0pOworfSk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNr
LW9uLXRyYWNrcy1idXR0b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBh
bmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24tZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk4YmQ3NzhjMjgyMmY4M2Y0Y2ZlOGUxMzQxNTJmMDdhMjRjMTQ2YWEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtdGhlbi1kb3VibGUtY2xpY2st
b24tdHJhY2tzLWJ1dHRvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorRW5zdXJlIHRo
YXQgZG91YmxlLWNsaWNraW5nIHRoZSB0cmFja3MgYnV0dG9uIHdoZW4gdGhlIHRyYWNrcyBwYW5l
bCBtYWtlcyB0aGUgcGFuZWwgYXBwZWFyIGFnYWluLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworTWVkaWEgc3RhcnRlZCBwbGF5aW5nCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxl
Y3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIHNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50
UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitQQVNTIHNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQ
QVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpIGlzIG5vdCBudWxs
CisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtdGhlbi1kb3VibGUtY2xpY2st
b24tdHJhY2tzLWJ1dHRvbi5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRoZW4t
ZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NWVkMDQyZDQ3
Y2QxYWIxYmFmYTA2NmVhZjk4NGE4NjZlN2M2M2NkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFj
a3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24u
aHRtbApAQCAtMCwwICsxLDQxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyIgdHlwZT0idGV4dC9qYXZh
c2NyaXB0Ij48L3NjcmlwdD4KKzxib2R5PgorPHZpZGVvIHNyYz0iLi4vLi4vLi4vY29udGVudC9D
QytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6
IDA7IHdpZHRoOiA2NDBweDsgaGVpZ2h0OiAzNjBweDsiIGNvbnRyb2xzIGF1dG9wbGF5Pjwvdmlk
ZW8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK3dpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKworZGVzY3JpcHRpb24oIkVuc3VyZSB0aGF0IGRvdWJsZS1jbGlja2luZyB0
aGUgdHJhY2tzIGJ1dHRvbiB3aGVuIHRoZSB0cmFja3MgcGFuZWwgbWFrZXMgdGhlIHBhbmVsIGFw
cGVhciBhZ2Fpbi4iKTsKKworY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2
aWRlbyIpOworY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdCht
ZWRpYSk7CisKK21lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7CisgICAgbWVk
aWEucGF1c2UoKTsKKworICAgIGRlYnVnKCJNZWRpYSBzdGFydGVkIHBsYXlpbmciKTsKKyAgICBz
aG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRy
YWNrcycpIiwgIm51bGwiLCAoKSA9PiB7CisgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgi
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCkud2lkdGgiLCAiMCIsICgpID0+IHsKKyAgICAgICAgICAgIHByZXNzT25FbGVtZW50
KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKTsKKyAgICAgICAgICAg
IHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tz
LXBhbmVsJykiLCAibnVsbCIsICgpID0+IHsKKyAgICAgICAgICAgICAgICBwcmVzc09uRWxlbWVu
dChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSk7CisgICAgICAgICAg
ICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
cHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikp
OworICAgICAgICAgICAgICAgICAgICAvLyBHaXZlIHRoZSB0cmFuc2l0aW9uZW5kIGV2ZW50IHRp
bWUgdG8gZmlyZSBpZiBpdCB3ZXJlIHRvIGhhcHBlbiwgd2hpY2ggaXQgc2hvdWxkIG5vdC4KKyAg
ICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBzaG91bGROb3RCZSgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVs
JykiLCAibnVsbCIpOworICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoIiIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgfSwgNTAwKTsKKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKK30pOwor
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQt
dGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tz
LXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41YzhjNzM0NTYwYmU4ODhlMmU0OGUxOWZlNWFkM2Q2NWM1MTkzYTUzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1t
ZWRpYS1hcGktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzAgQEAKK1RoaXMgdGVzdCBjaGVja3Mg
dGhhdCBzZXR0aW5nIGFuIGVtYmVkZGVkIHRleHQgdHJhY2sgYXMgc2VsZWN0ZWQgdmlhIHRoZSBI
VE1MTWVkaWFFbGVtZW50IEpTIEFQSXMgd2lsbCBjb3JyZWN0bHkgc2hvdyB0aGlzIHRyYWNrIGFz
IHNlbGVjdGVkLCBhbmQgdGhhdCBzZWxlY3RpbmcgdGhlICJBdXRvbWF0aWMgKFJlY29tbWVuZGVk
KSIgdHJhY2sgd2lsbCByZXZlcnQgYmFjayB0byBzZWxlY3RpbmcgdGhhdCBlbnRyeS4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCdidXR0b24udHJhY2tzJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKK1BBU1Mgc2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKKworPT09IEluaXRpYWwgc3RhdGUgPT09
CisKK1stXSBPZmYKK1stXSBBdXRvIChSZWNvbW1lbmRlZCkKK1t4XSBFbmdsaXNoIFN1YnRpdGxl
cworWy1dIEZyZW5jaCBTdWJ0aXRsZXMKK1stXSBHZXJtYW4gU3VidGl0bGVzCitbLV0gU3Bhbmlz
aCBTdWJ0aXRsZXMKKworPT09IEFmdGVyIHBpY2tpbmcgYXV0byB0cmFjayBpbnRlcmFjdGl2ZWx5
ID09PQorCitbLV0gT2ZmCitbeF0gQXV0byAoUmVjb21tZW5kZWQpCitbLV0gRW5nbGlzaCBTdWJ0
aXRsZXMKK1stXSBGcmVuY2ggU3VidGl0bGVzCitbLV0gR2VybWFuIFN1YnRpdGxlcworWy1dIFNw
YW5pc2ggU3VidGl0bGVzCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXRleHQtdHJhY2stc2Vs
ZWN0ZWQtdmlhLW1lZGlhLWFwaS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNl
bGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MDIyZWI5NmRmOTQ0ZWYxYTgy
M2JlOTFmMWY5MGRkMzliNzMwMDUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9y
dC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRtbApAQCAtMCwwICsxLDg4IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8dmlkZW8gc3JjPSIuLi8uLi8uLi9jb250
ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7
IHRvcDogMDsgd2lkdGg6IDY0MHB4OyBoZWlnaHQ6IDM2MHB4OyIgY29udHJvbHMgYXV0b3BsYXk+
PC92aWRlbz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKword2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOworCitkZXNjcmlwdGlvbihgVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHNl
dHRpbmcgYW4gZW1iZWRkZWQgdGV4dCB0cmFjayBhcyBzZWxlY3RlZCB2aWEgdGhlIEhUTUxNZWRp
YUVsZW1lbnQgSlMgQVBJcyB3aWxsIGNvcnJlY3RseSBzaG93IHRoaXMgdHJhY2sgYXMgc2VsZWN0
ZWQsIGFuZCB0aGF0IHNlbGVjdGluZyB0aGUgCisiQXV0b21hdGljIChSZWNvbW1lbmRlZCkiIHRy
YWNrIHdpbGwgcmV2ZXJ0IGJhY2sgdG8gc2VsZWN0aW5nIHRoYXQgZW50cnkuYCk7CisKK2NvbnN0
IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKK2NvbnN0IHNoYWRvd1Jv
b3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOworCittZWRpYS5hZGRFdmVu
dExpc3RlbmVyKCJwbGF5IiwgKCkgPT4geworICAgIG1lZGlhLnBhdXNlKCk7CisKKyAgICBzaG91
bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNr
cycpIiwgIm51bGwiLCAoKSA9PiB7CisgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCkud2lkdGgiLCAiMCIsIHJ1blRlc3QpOworICAgIH0pOworfSk7CisKK2FzeW5jIGZ1bmN0
aW9uIHJ1blRlc3QoKQoreworICAgIC8vIFN0YXJ0IGJ5IHNlbGVjdGluZyBvbmUgb2YgdGhlIHRl
eHQgdHJhY2tzIHVzaW5nIHRoZSBtZWRpYSBKUyBBUEkuCisgICAgLy8gVGhpcyB3aWxsIGNhdXNl
IHRleHRUcmFja3NEaWRDaGFuZ2UgdG8gYmUgY2FsbGVkIGZvciB0aGUgZmlyc3QgdGltZS4KKyAg
ICBtZWRpYS50ZXh0VHJhY2tzWzBdLm1vZGUgPSAic2hvd2luZyI7CisKKyAgICAvLyBOZXh0LCBi
cmluZyB1cCB0aGUgdHJhY2tzIG1lbnUgYnkgY2xpY2tpbmcgb24gdGhlIHRyYWNrcyBidXR0b24u
CisgICAgYXdhaXQgY2xpY2tPblRyYWNrc0J1dHRvbigpOworICAgIC8vIER1bXAgdGhlIHN0YXRl
IG9mIHRoZSB0cmFja3MgbWVudSBmb3IgdGV4dCB0cmFja3MsIHdoaWNoIHNob3VsZCBzaG93IHRo
ZSBmaXJzdCBlbWJlZGRlZCB0ZXh0IHRyYWNrIGFzIHNlbGVjdGVkLgorICAgIGR1bXBUZXh0VHJh
Y2tzTGlzdE5vZGVzKCJJbml0aWFsIHN0YXRlIik7CisgICAgLy8gTm93LCBzZWxlY3QgdGhlICJB
dXRvbWF0aWMgKFJlY29tbWVuZGVkKSIgdGV4dCB0cmFjay4gCisgICAgYXdhaXQgY2xpY2tPblRl
eHRUcmFja0F0SW5kZXgoMSk7CisgICAgLy8gV2FpdCBmb3IgdGhlIHNlbGVjdGlvbiB0byBoYXZl
IGdvbmUgdGhyb3VnaCBhbmQgdGhlIHBhbmVsIHRvIGhhdmUgdHJhbnNpdGlvbmVkIG91dCBvZiB2
aWV3LgorICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2hhZG93Um9vdC5xdWVyeVNl
bGVjdG9yKCIudHJhY2tzLXBhbmVsIikuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIs
IHJlc29sdmUsIHsgb25jZTogdHJ1ZSB9KSk7CisKKyAgICAvLyBOb3csIGJyaW5nIHVwIHRoZSB0
cmFja3MgbWVudSBhZ2FpbiBieSBjbGlja2luZyBvbiB0aGUgdHJhY2tzIGJ1dHRvbi4KKyAgICBh
d2FpdCBjbGlja09uVHJhY2tzQnV0dG9uKCk7CisgICAgLy8gRHVtcCB0aGUgc3RhdGUgb2YgdGhl
IHRyYWNrcyBtZW51IGZvciB0ZXh0IHRyYWNrcywgd2hpY2ggc2hvdWxkIG5vdyBzaG93ICJBdXRv
bWF0aWMgKFJlY29tbWVuZGVkKSIgYXMgc2VsZWN0ZWQuCisgICAgZHVtcFRleHRUcmFja3NMaXN0
Tm9kZXMoIkFmdGVyIHBpY2tpbmcgYXV0byB0cmFjayBpbnRlcmFjdGl2ZWx5Iik7CisKKyAgICBm
aW5pc2hUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHRleHRUcmFja3NMaXN0Tm9kZXMoKQoreworICAg
IHJldHVybiBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi50cmFja3MtcGFuZWwgc2VjdGlv
bjpsYXN0LW9mLXR5cGUgPiB1bCA+IGxpIik7Cit9CisKK2Z1bmN0aW9uIGR1bXBUZXh0VHJhY2tz
TGlzdE5vZGVzKG1zZykKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoYD09PSAke21zZ30g
PT09YCk7CisgICAgZGVidWcoIiIpOworICAgIEFycmF5LmZyb20odGV4dFRyYWNrc0xpc3ROb2Rl
cygpKS5mb3JFYWNoKGxpID0+IGRlYnVnKGAke2xpLmNsYXNzTGlzdC5jb250YWlucygic2VsZWN0
ZWQiKSA/ICJbeF0iIDogIlstXSJ9ICR7bGkudGV4dENvbnRlbnR9YCkpOworfQorCithc3luYyBm
dW5jdGlvbiBjbGlja09uVHJhY2tzQnV0dG9uKCkKK3sKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShy
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOworICAgIGNsaWNrT25FbGVtZW50KHNoYWRvd1Jvb3QubGFz
dENoaWxkLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSk7CisgICAgYXdhaXQgbmV3IFBy
b21pc2UocmVxdWVzdEFuaW1hdGlvbkZyYW1lKTsKK30KKworZnVuY3Rpb24gY2xpY2tPblRleHRU
cmFja0F0SW5kZXgoaW5kZXgpCit7CisgICAgY2xpY2tPbkVsZW1lbnQodGV4dFRyYWNrc0xpc3RO
b2RlcygpW2luZGV4XSk7Cit9CisKK2Z1bmN0aW9uIGNsaWNrT25FbGVtZW50KGVsZW1lbnQpCit7
CisgICAgY29uc3QgYm91bmRzID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhib3VuZHMubGVmdCArIDEsIGJvdW5kcy50b3AgKyAx
KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVw
KCk7Cit9CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBt
ZWRpYS5yZW1vdmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtYXV0by10ZXh0LXRyYWNrLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC90cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZGFjMGI3NTVjY2JhOTgwNjk4OTQzNWU0ZmJiNzg1
MzUwNmFkOTdlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90
cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMTQgKzAsMCBAQAotRW5zdXJlIHdlIGhhdmUgdGhlIEF1dG8gdGV4dCB0cmFjayBzZWxl
Y3RlZCBieSBkZWZhdWx0LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBz
aGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50
IGZyb20gbnVsbAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3Mn
KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAot
UEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKSBiZWNhbWUgZGlm
ZmVyZW50IGZyb20gbnVsbAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpLnNl
bGVjdGVkJylbMV0udGV4dENvbnRlbnQgaXMgIkF1dG8gKFJlY29tbWVuZGVkKSIKLQotUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90
cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2suaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1hdXRvLXRl
eHQtdHJhY2suaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWIzYzNlNjJjMDVl
OThiMjA4OTUzZDA4YjA1ODZiYzIzNjE5NjhlOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtYXV0by10ZXh0LXRyYWNrLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyIgdHlwZT0idGV4dC9qYXZh
c2NyaXB0Ij48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4vLi4vY29udGVudC9DQytT
dWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7
IHdpZHRoOiA2NDBweDsgaGVpZ2h0OiAzNjBweDsiIGNvbnRyb2xzIGF1dG9wbGF5PjwvdmlkZW8+
Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIkVuc3VyZSB3ZSBoYXZlIHRoZSBBdXRvIHRleHQgdHJh
Y2sgc2VsZWN0ZWQgYnkgZGVmYXVsdC4iKTsKLQotY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMu
c2hhZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9
PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLQotICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAibnVsbCIsICgpID0+IHsK
LSAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3Io
J2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCIsICIwIiwgKCkg
PT4gewotICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRDYXB0aW9uRGlzcGxheU1vZGUo
ImF1dG9tYXRpYyIpOwotICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVy
eVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpOwotICAgICAgICAgICAgc2hvdWxkQmVjb21lRGlm
ZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKSIsICJudWxs
IiwgKCkgPT4gewotICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdsaS5zZWxlY3RlZCcpWzFdLnRleHRDb250ZW50IiwgIkF1
dG8gKFJlY29tbWVuZGVkKSIpOwotICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAg
ICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldENhcHRpb25EaXNwbGF5TW9kZSgiZm9yY2Vkb25s
eSIpOwotICAgICAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgpOwotICAgICAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfSk7
Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LWNsaWNr
LXRyYWNrLWluLXBhbmVsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1jbGljay10cmFjay1p
bi1wYW5lbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUyOTQx
MTA1YmZhOWNlZjI2ZjdjMzBmOGI5ZGM1MzI2OTNmMzViMmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNrLWluLXBh
bmVsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLUNsaWNraW5n
IG9uIGEgdHJhY2sgaW4gdGhlIHRyYWNrcyBwYW5lbC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgotCi0KLW1lZGlhLmF1ZGlvVHJhY2tzWzBdLmVuYWJsZWQgPSB0cnVlCi1tZWRpYS5hdWRp
b1RyYWNrc1sxXS5lbmFibGVkID0gZmFsc2UKLW1lZGlhLmF1ZGlvVHJhY2tzWzJdLmVuYWJsZWQg
PSBmYWxzZQotCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycp
IGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBk
aWZmZXJlbnQgZnJvbSAwCi0KLUNsaWNraW5nIG9uIHRoZSB0cmFja3MgYnV0dG9uCi1DbGlja2lu
ZyBvbiBzZWNvbmQgYXVkaW8gdHJhY2sgaW4gdHJhY2tzIHBhbmVsCi0KLU9idGFpbmVkIGNoYW5n
ZSBldmVudCBvbiBtZWRpYSBhdWRpbyB0cmFja3MKLW1lZGlhLmF1ZGlvVHJhY2tzWzBdLmVuYWJs
ZWQgPSBmYWxzZQotbWVkaWEuYXVkaW9UcmFja3NbMV0uZW5hYmxlZCA9IHRydWUKLW1lZGlhLmF1
ZGlvVHJhY2tzWzJdLmVuYWJsZWQgPSBmYWxzZQotCi1DbGlja2luZyBvbiB0aGUgdHJhY2tzIGJ1
dHRvbgotQ2xpY2tpbmcgb24gdGhpcmQgYXVkaW8gdHJhY2sgaW4gdHJhY2tzIHBhbmVsCi0KLU9i
dGFpbmVkIGNoYW5nZSBldmVudCBvbiBtZWRpYSBhdWRpbyB0cmFja3MKLW1lZGlhLmF1ZGlvVHJh
Y2tzWzBdLmVuYWJsZWQgPSBmYWxzZQotbWVkaWEuYXVkaW9UcmFja3NbMV0uZW5hYmxlZCA9IGZh
bHNlCi1tZWRpYS5hdWRpb1RyYWNrc1syXS5lbmFibGVkID0gdHJ1ZQotCi1QQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1z
dXBwb3J0LWNsaWNrLXRyYWNrLWluLXBhbmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJh
Y2staW4tcGFuZWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjVlMWVhYzlh
NzIxNDljMDdmYTc1N2VlY2UxOTcyNTUwZTY2MGUwZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJhY2staW4tcGFuZWwu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDk3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08
Ym9keT4KLTx2aWRlbyBzcmM9Ii4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9
InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDogNjQwcHg7IGhlaWdo
dDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgotPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0
aW9uKCJDbGlja2luZyBvbiBhIHRyYWNrIGluIHRoZSB0cmFja3MgcGFuZWwuIik7Ci0KLWNvbnN0
IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jv
b3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOwotCi1sZXQgcHJldmlvdXNs
eVNlbGVjdGVkVHJhY2sgPSAwOwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkg
PT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0KLSAgICBkdW1wQXVkaW9UcmFja3NFbmFibGVkU3Rh
dGUoKTsKLQotICAgIG1lZGlhLmF1ZGlvVHJhY2tzLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIs
IGF1ZGlvVHJhY2tzRGlkQ2hhbmdlKTsKLQotICAgIGRlYnVnKCIiKTsKLSAgICBzaG91bGRCZWNv
bWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwg
Im51bGwiLCAoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9v
dC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCku
d2lkdGgiLCAiMCIsICgpID0+IHsKLSAgICAgICAgICAgIGNsaWNrT25UcmFja3NCdXR0b24oY2xp
Y2tPblNlY29uZEF1ZGlvVHJhY2spOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0pOwotCi1mdW5j
dGlvbiBjbGlja09uVHJhY2tzQnV0dG9uKGNvbnRpbnVhdGlvbikKLXsKLSAgICB3aW5kb3cucmVx
dWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKLSAgICAgICAgZGVidWcoIiIpOwotICAgICAgICBk
ZWJ1ZygiQ2xpY2tpbmcgb24gdGhlIHRyYWNrcyBidXR0b24iKTsKLSAgICAgICAgY2xpY2tPbkVs
ZW1lbnQoc2hhZG93Um9vdC5sYXN0Q2hpbGQucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIp
KTsKLSAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShjb250aW51YXRpb24pOwot
ICAgIH0pOwotfQotCi1mdW5jdGlvbiBjbGlja09uU2Vjb25kQXVkaW9UcmFjaygpCi17Ci0gICAg
ZGVidWcoIkNsaWNraW5nIG9uIHNlY29uZCBhdWRpbyB0cmFjayBpbiB0cmFja3MgcGFuZWwiKTsK
LSAgICBjbGlja09uQXVkaW9UcmFja0F0SW5kZXgoMSk7Ci19Ci0KLWZ1bmN0aW9uIGNsaWNrT25U
aGlyZEF1ZGlvVHJhY2soKQotewotICAgIGRlYnVnKCJDbGlja2luZyBvbiB0aGlyZCBhdWRpbyB0
cmFjayBpbiB0cmFja3MgcGFuZWwiKTsKLSAgICBjbGlja09uQXVkaW9UcmFja0F0SW5kZXgoMik7
Ci19Ci0KLWZ1bmN0aW9uIGNsaWNrT25BdWRpb1RyYWNrQXRJbmRleChpbmRleCkKLXsKLSAgICBj
bGlja09uRWxlbWVudChzaGFkb3dSb290Lmxhc3RDaGlsZC5xdWVyeVNlbGVjdG9yQWxsKCJsaSIp
W2luZGV4XSk7Ci19Ci0KLWZ1bmN0aW9uIGNsaWNrT25FbGVtZW50KGVsZW1lbnQpCi17Ci0gICAg
Y29uc3QgYm91bmRzID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyhib3VuZHMubGVmdCArIDEsIGJvdW5kcy50b3AgKyAxKTsKLSAg
ICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci19
Ci0KLWZ1bmN0aW9uIGF1ZGlvVHJhY2tzRGlkQ2hhbmdlKCkKLXsKLSAgICBjb25zdCBuZXdTZWxl
Y3RlZFRyYWNrID0gQXJyYXkuZnJvbShtZWRpYS5hdWRpb1RyYWNrcykuZmluZEluZGV4KHRyYWNr
ID0+IHRyYWNrLmVuYWJsZWQpOwotICAgIGlmIChwcmV2aW91c2x5U2VsZWN0ZWRUcmFjayA9PT0g
bmV3U2VsZWN0ZWRUcmFjaykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgcHJldmlvdXNseVNlbGVj
dGVkVHJhY2sgPSBuZXdTZWxlY3RlZFRyYWNrOwotCi0gICAgZGVidWcoIiIpOwotICAgIGRlYnVn
KCJPYnRhaW5lZCBjaGFuZ2UgZXZlbnQgb24gbWVkaWEgYXVkaW8gdHJhY2tzIik7Ci0KLSAgICBk
dW1wQXVkaW9UcmFja3NFbmFibGVkU3RhdGUoKTsKLQotICAgIGlmIChtZWRpYS5hdWRpb1RyYWNr
c1sxXS5lbmFibGVkKQotICAgICAgICBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi50cmFja3Mt
cGFuZWwiKS5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIiwgZXZlbnQgPT4gY2xpY2tP
blRyYWNrc0J1dHRvbihjbGlja09uVGhpcmRBdWRpb1RyYWNrKSk7Ci0gICAgZWxzZSBpZiAobWVk
aWEuYXVkaW9UcmFja3NbMl0uZW5hYmxlZCkgewotICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAg
IG1lZGlhLnJlbW92ZSgpOwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICB9Ci19Ci0KLWZ1
bmN0aW9uIGR1bXBBdWRpb1RyYWNrc0VuYWJsZWRTdGF0ZSgpCi17Ci0gICAgQXJyYXkuZnJvbSht
ZWRpYS5hdWRpb1RyYWNrcykuZm9yRWFjaCgoYXVkaW9UcmFjaywgaW5kZXgpID0+IHsKLSAgICAg
ICAgZGVidWcoYG1lZGlhLmF1ZGlvVHJhY2tzWyR7aW5kZXh9XS5lbmFibGVkID0gJHttZWRpYS5h
dWRpb1RyYWNrc1tpbmRleF0uZW5hYmxlZH1gKTsKLSAgICB9KTsKLX0KLQotPC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhZDNmYzE5NmI2NTk5NWYzYTcwNGM3YzIxNzgwZjUzMzI2
YWI4NGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNr
cy1zdXBwb3J0LWhpZGRlbi10cmFja3MtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MjEgKzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSB0cmFja3MgcGFuZWwgZG9lc24n
dCBzaG93IGFueSB0cmFjayBhcyBzZWxlY3RlZCBpZiBhbGwgdGhlIHRleHQgdHJhY2tzIGZvciBh
IG1lZGlhIGVsZW1lbnQgYXJlIG1hcmtlZCBhcyAiaGlkZGVuIi4KLQotT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgotCi0KLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJh
Y2tzJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNl
bGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVj
YW1lIGRpZmZlcmVudCBmcm9tIDAKLQotPT09IEluaXRpYWwgc3RhdGUgPT09Ci0KLVt4XSBPZmYK
LVstXSBBdXRvIChSZWNvbW1lbmRlZCkKLVstXSBFbmdsaXNoIFN1YnRpdGxlcwotWy1dIEZyZW5j
aCBTdWJ0aXRsZXMKLVstXSBHZXJtYW4gU3VidGl0bGVzCi1bLV0gU3BhbmlzaCBTdWJ0aXRsZXMK
LQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLmh0bWwgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQt
aGlkZGVuLXRyYWNrcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NjI3Nzg1
ZDRiOTEwYmQxNWY2MWEyZjdjOWFiMDBhMGFkOTNiMzFmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPGJvZHk+
Ci08dmlkZW8gc3JjPSIuLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJwb3Np
dGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDY0MHB4OyBoZWlnaHQ6IDM2
MHB4OyIgY29udHJvbHMgYXV0b3BsYXk+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbihg
VGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSB0cmFja3MgcGFuZWwgZG9lc24ndCBzaG93IGFueSB0
cmFjayBhcyBzZWxlY3RlZCBpZiBhbGwgdGhlIHRleHQgdHJhY2tzIGZvciBhIG1lZGlhIGVsZW1l
bnQgYXJlIG1hcmtlZCBhcyAiaGlkZGVuIi5gKTsKLQotY29uc3QgbWVkaWEgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5h
bHMuc2hhZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAo
KSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLQotICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgi
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAibnVsbCIsICgpID0+
IHsKLSAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCIsICIwIiwg
cnVuVGVzdCk7Ci0gICAgfSk7Ci19KTsKLQotYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCi17Ci0g
ICAgLy8gU3RhcnQgYnkgbWFraW5nIHN1cmUgYWxsIHRyYWNrcyBhcmUgbWFya2VkIGFzICJoaWRk
ZW4iLgotICAgIEFycmF5LmZyb20obWVkaWEudGV4dFRyYWNrcykuZm9yRWFjaCh0cmFjayA9PiB0
cmFjay5tb2RlID0gImhpZGRlbiIpOwotCi0gICAgLy8gTmV4dCwgYnJpbmcgdXAgdGhlIHRyYWNr
cyBtZW51IGJ5IGNsaWNraW5nIG9uIHRoZSB0cmFja3MgYnV0dG9uLgotICAgIGF3YWl0IGNsaWNr
T25UcmFja3NCdXR0b24oKTsKLSAgICAvLyBEdW1wIHRoZSBzdGF0ZSBvZiB0aGUgdHJhY2tzIG1l
bnUgZm9yIHRleHQgdHJhY2tzLCB3aGljaCBzaG91bGQgc2hvdyB0aGUgZmlyc3QgZW1iZWRkZWQg
dGV4dCB0cmFjayBhcyBzZWxlY3RlZC4KLSAgICBkdW1wVGV4dFRyYWNrc0xpc3ROb2RlcygiSW5p
dGlhbCBzdGF0ZSIpOwotCi0gICAgZmluaXNoVGVzdCgpOwotfQotCi1mdW5jdGlvbiB0ZXh0VHJh
Y2tzTGlzdE5vZGVzKCkKLXsKLSAgICByZXR1cm4gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxs
KCIudHJhY2tzLXBhbmVsIHNlY3Rpb246bGFzdC1vZi10eXBlID4gdWwgPiBsaSIpOwotfQotCi1m
dW5jdGlvbiBkdW1wVGV4dFRyYWNrc0xpc3ROb2Rlcyhtc2cpCi17Ci0gICAgZGVidWcoIiIpOwot
ICAgIGRlYnVnKGA9PT0gJHttc2d9ID09PWApOwotICAgIGRlYnVnKCIiKTsKLSAgICBBcnJheS5m
cm9tKHRleHRUcmFja3NMaXN0Tm9kZXMoKSkuZm9yRWFjaChsaSA9PiBkZWJ1ZyhgJHtsaS5jbGFz
c0xpc3QuY29udGFpbnMoInNlbGVjdGVkIikgPyAiW3hdIiA6ICJbLV0ifSAke2xpLnRleHRDb250
ZW50fWApKTsKLX0KLQotYXN5bmMgZnVuY3Rpb24gY2xpY2tPblRyYWNrc0J1dHRvbigpCi17Ci0g
ICAgYXdhaXQgbmV3IFByb21pc2UocmVxdWVzdEFuaW1hdGlvbkZyYW1lKTsKLSAgICBjbGlja09u
RWxlbWVudChzaGFkb3dSb290Lmxhc3RDaGlsZC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tz
IikpOwotICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlcXVlc3RBbmltYXRpb25GcmFtZSk7Ci19Ci0K
LWZ1bmN0aW9uIGNsaWNrT25FbGVtZW50KGVsZW1lbnQpCi17Ci0gICAgY29uc3QgYm91bmRzID0g
ZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbyhib3VuZHMubGVmdCArIDEsIGJvdW5kcy50b3AgKyAxKTsKLSAgICBldmVudFNlbmRlci5t
b3VzZURvd24oKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci19Ci0KLWZ1bmN0aW9uIGZp
bmlzaFRlc3QoKQotewotICAgIGRlYnVnKCIiKTsKLSAgICBtZWRpYS5yZW1vdmUoKTsKLSAgICBm
aW5pc2hKU1Rlc3QoKTsKLX0KLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJh
Y2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LW9m
Zi10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZmIzZTMxODA1ZGVlODI3ZjhiN2U4YWYxMWEwZmJiOTY1MDVlODE3ZC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJh
Y2stZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotRW5zdXJlIHdl
IGhhdmUgdGhlIE9mZiB0ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5IGRlZmF1bHQuCi0KLU9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0
dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIHNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndp
ZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cignLnRyYWNrcy1wYW5lbCcpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIHNoYWRv
d1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnbGkuc2VsZWN0ZWQnKVsxXS50ZXh0Q29udGVudCBpcyAi
T2ZmIgotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNrLmh0bWwgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1
cHBvcnQtb2ZmLXRleHQtdHJhY2suaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZWNiOWQ2ZTRlMjhhYmU4ZDhiOGYzNTM5N2I0ZWQ4Mjg5Yjg4MmVkNi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJh
Y2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzIiB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi9j
b250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6
IDA7IHRvcDogMDsgd2lkdGg6IDY0MHB4OyBoZWlnaHQ6IDM2MHB4OyIgY29udHJvbHMgYXV0b3Bs
YXk+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigiRW5zdXJlIHdlIGhhdmUgdGhlIE9m
ZiB0ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5IGRlZmF1bHQuIik7Ci0KLWNvbnN0IG1lZGlhID0gZG9j
dW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cu
aW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJw
bGF5IiwgKCkgPT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0KLSAgICBzaG91bGRCZWNvbWVEaWZm
ZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwi
LCAoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVy
eVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgi
LCAiMCIsICgpID0+IHsKLSAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKTsKLSAgICAgICAgICAgIHNob3VsZEJlY29tZURp
ZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykiLCAibnVs
bCIsICgpID0+IHsKLSAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInNoYWRv
d1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnbGkuc2VsZWN0ZWQnKVsxXS50ZXh0Q29udGVudCIsICJP
ZmYiKTsKLSAgICAgICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICAgICAgbWVkaWEu
cmVtb3ZlKCk7Ci0gICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgICAgICB9
KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19KTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQtcG9wdWxhdGUtcGFuZWwtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDUyZDZjYjE5ODc4ODA1ODljYTBlYzhhZGUw
MDA3MTE3YjNhZDUwNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBv
cnQvdHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQtcG9wdWxhdGUtcGFuZWwtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotU2hvd2luZyBhbmQgcG9wdWxhdGluZyB0aGUg
dHJhY2tzIHBhbmVsLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotQXVkaW8KLSAg
RW5nbGlzaCBTb3VuZAotICBGcmVuY2ggU291bmQKLSAgU3BhbmlzaCBTb3VuZAotCi1TdWJ0aXRs
ZXMKLSAgT2ZmCi0gIEF1dG8gKFJlY29tbWVuZGVkKQotICBFbmdsaXNoIFN1YnRpdGxlcwotICBG
cmVuY2ggU3VidGl0bGVzCi0gIEdlcm1hbiBTdWJ0aXRsZXMKLSAgU3BhbmlzaCBTdWJ0aXRsZXMK
LQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LWFuZC1wb3B1bGF0ZS1wYW5lbC5odG1sIGIvTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNr
cy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAzYjNhMmIwMjA3NmQxMTUzNWJiMGJmMjViMDJkZjA3ZmZmZjkyMTQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0
LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi9jb250ZW50
L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJ3aWR0aDogNjQwcHg7IGhlaWdodDogMzYwcHg7IiBj
b250cm9scyBhdXRvcGxheT48L3ZpZGVvPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
PgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJTaG93aW5n
IGFuZCBwb3B1bGF0aW5nIHRoZSB0cmFja3MgcGFuZWwuIik7Ci0KLWNvbnN0IG1lZGlhID0gZG9j
dW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cu
aW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJw
bGF5IiwgKCkgPT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0gICAgd2luZG93LnJlcXVlc3RBbmlt
YXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAgIGNsaWNrT25UcmFja3NCdXR0b24oKTsKLSAgICAg
ICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAgICAgICBsaXN0
Q29udGVudHNPZlRyYWNrc1BhbmVsKCk7Ci0gICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKLSAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0pOwotCi1m
dW5jdGlvbiBjbGlja09uVHJhY2tzQnV0dG9uKCkKLXsKLSAgICBjb25zdCBib3VuZHMgPSBzaGFk
b3dSb290Lmxhc3RDaGlsZC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikuZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYm91bmRzLmxlZnQg
KyAxLCBib3VuZHMudG9wICsgMSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAg
ZXZlbnRTZW5kZXIubW91c2VVcCgpOwotfQotCi1mdW5jdGlvbiBsaXN0Q29udGVudHNPZlRyYWNr
c1BhbmVsKCkKLXsKLSAgICBmb3IgKGxldCBzZWN0aW9uIG9mIHNoYWRvd1Jvb3QubGFzdENoaWxk
LnF1ZXJ5U2VsZWN0b3JBbGwoInNlY3Rpb24iKSkgewotICAgICAgICBkZWJ1ZyhzZWN0aW9uLnF1
ZXJ5U2VsZWN0b3IoImgzIikudGV4dENvbnRlbnQpOwotICAgICAgICBmb3IgKGxldCBpdGVtIG9m
IHNlY3Rpb24ucXVlcnlTZWxlY3RvckFsbCgibGkiKSkKLSAgICAgICAgICAgIGRlYnVnKCIgICIg
KyBpdGVtLnRleHRDb250ZW50KTsKLSAgICAgICAgZGVidWcoIiIpOwotICAgIH0KLX0KLQotPC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1h
ZnRlci1kcmFnZ2luZy1jb250cm9scy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtc2hvdy1w
YW5lbC1hZnRlci1kcmFnZ2luZy1jb250cm9scy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDA5ODQzMGJmMzhmMTI2NjBiOGVmY2M3OTYxNmVmMTg0YjUxMDg0ZTku
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBw
b3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJvbHMtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotVGVzdGluZyB0aGUgZGlzcGxheSBvZiBhIHRyYWNr
cyBwYW5lbCBhZnRlciBkcmFnZ2luZyB0aGUgY29udHJvbHMgYmFyIGluIGZ1bGxzY3JlZW4uCi0K
LU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxl
Y3RvcignYnV0dG9uLmZ1bGxzY3JlZW4nKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSBiZWNhbWUg
ZGlmZmVyZW50IGZyb20gMAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50
cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAot
UEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKS5yaWdodCBpcyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3Mt
cGFuZWwnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodAotUEFTUyBzaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5zdHlsZS5ib3R0b20gaXMgIjE1MXB4IgotCi1Q
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJvbHMuaHRt
bCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xzLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhZWRhOTg1MTcxYWQ0MWNiNmY2NGY4NGQ4
Mzg0ODdiN2Q4Mjg0ZjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJvbHMuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzIiB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi9jb250ZW50
L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJ3aWR0aDogMzIwcHg7IGhlaWdodDogMjQwcHg7IiBj
b250cm9scyBhdXRvcGxheT48L3ZpZGVvPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
PgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJUZXN0aW5n
IHRoZSBkaXNwbGF5IG9mIGEgdHJhY2tzIHBhbmVsIGFmdGVyIGRyYWdnaW5nIHRoZSBjb250cm9s
cyBiYXIgaW4gZnVsbHNjcmVlbi4iKTsKLQotY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hh
ZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdGJlZ2luZnVs
bHNjcmVlbiIsICgpID0+IHsKLSAgICBkZWJ1Zygid2Via2l0YmVnaW5mdWxsc2NyZWVuIik7Ci19
KTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0ZnVsbHNjcmVlbmNoYW5nZSIsICgp
ID0+IHsKLSAgICBpZiAoIW1lZGlhLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKLSAg
ICAgICAgY29uc3QgYm91bmRzID0gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIuY29udHJvbHMt
YmFyIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKGJvdW5kcy5sZWZ0ICsgMTE4LCBib3VuZHMudG9wICsgMTApOwotICAgICAgICBldmVu
dFNlbmRlci5tb3VzZURvd24oKTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYm91
bmRzLmxlZnQgKyA2OCwgYm91bmRzLnRvcCAtIDQwKTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VVcCgpOwotCi0gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAg
ICAgICBjbGlja09uQnV0dG9uKCJ0cmFja3MiLCAoKSA9PiB7Ci0gICAgICAgICAgICAgICAgcmVx
dWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpLnJpZ2h0IiwgInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5l
bCcpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0IikKLSAgICAgICAgICAgICAgICAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3Mt
cGFuZWwnKS5zdHlsZS5ib3R0b20iLCAiMTUxcHgiKTsKLQotICAgICAgICAgICAgICAgICAgICBk
ZWJ1ZygiIik7Ci0gICAgICAgICAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgpOwotICAgICAgICAg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAg
ICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0pOwotCi1tZWRpYS5hZGRFdmVudExpc3Rl
bmVyKCJwbGF5IiwgKCkgPT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0gICAgd2luZG93LnJlcXVl
c3RBbmltYXRpb25GcmFtZSgoKSA9PiBjbGlja09uQnV0dG9uKCJmdWxsc2NyZWVuIikpOwotfSk7
Ci0KLWZ1bmN0aW9uIGNsaWNrT25CdXR0b24obmFtZSwgY29udGludWF0aW9uKQotewotICAgIHNo
b3VsZEJlY29tZURpZmZlcmVudChgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24uJHtu
YW1lfScpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpYCwgIjAiLCAoKSA9PiB7Ci0gICAgICAgIHBy
ZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgYnV0dG9uLiR7bmFtZX1gKSwg
Y29udGludWF0aW9uKTsKLSAgICB9KTsKLX0KLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1mdWxsc2NyZWVuLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90
cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxzY3JlZW4tZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NTE1MjU1MDQyODA4ZGM2ZjNkMWQ5YWE3MTNlNjE2ZTUy
OTc1ZWEzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFj
a3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxzY3JlZW4tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMTkgKzAsMCBAQAotU2hvd2luZyB0aGUgdHJhY2tzIHBhbmVsIGluIGZ1bGxzY3Jl
ZW4uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGludGVybmFscy5zaGFk
b3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0b24uZnVsbHNjcmVlbiIpIGJlY2FtZSBk
aWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVy
eVNlbGVjdG9yKCJidXR0b24uZnVsbHNjcmVlbiIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndp
ZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCi1QQVNTIG1lZGlhLndlYmtpdERpc3BsYXlpbmdG
dWxsc2NyZWVuIGJlY2FtZSB0cnVlCi1QQVNTIGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5x
dWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwK
LVBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50
cmFja3MiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZy
b20gMAotUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcigiYnV0
dG9uLnRyYWNrcyIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0IGJlY2FtZSA1ODIKLVBB
U1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFu
ZWwnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9v
dChtZWRpYSkucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpLnN0eWxlLnJpZ2h0IGlzICIy
MThweCIKLVBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoJy50
cmFja3MtcGFuZWwnKS5zdHlsZS5ib3R0b20gaXMgIjEwMXB4IgotCi1QQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBw
b3J0LXNob3ctcGFuZWwtZnVsbHNjcmVlbi5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwt
ZnVsbHNjcmVlbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYzAzOTY1ZDk1
ZDM4NmVlY2RmNzZhOTU2YjgxOTA5ZTZjNjY3NGFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxzY3JlZW4u
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzIiB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi9jb250
ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJ3aWR0aDogMzIwcHg7IGhlaWdodDogMjQwcHg7
IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJTaG93
aW5nIHRoZSB0cmFja3MgcGFuZWwgaW4gZnVsbHNjcmVlbi4iKTsKLQotc2V0VGltZW91dCgoKSA9
PiB7Ci0gICAgZGVidWcoIkZBSUw6IGRpZCBub3QgZW5kIGZhc3QgZW5vdWdoIik7Ci0gICAgZmlu
aXNoSlNUZXN0KCk7Ci19LCAxMDAwMCk7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcigidmlkZW8iKTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0ZnVsbHNj
cmVlbmNoYW5nZSIsICgpID0+IHsKLSAgICBzaG91bGRCZWNvbWVFcXVhbCgibWVkaWEud2Via2l0
RGlzcGxheWluZ0Z1bGxzY3JlZW4iLCAidHJ1ZSIsICgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVj
b21lRGlmZmVyZW50KGBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3Rvcigi
YnV0dG9uLnRyYWNrcyIpYCwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAgICAgICBzaG91bGRCZWNv
bWVEaWZmZXJlbnQoYGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJi
dXR0b24udHJhY2tzIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGhgLCAiMCIsICgpID0+
IHsKLSAgICAgICAgICAgICAgICBzaG91bGRCZWNvbWVFcXVhbChgaW50ZXJuYWxzLnNoYWRvd1Jv
b3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKS5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKS5yaWdodGAsICI1ODIiLCAoKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIHByZXNz
T25FbGVtZW50KGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0
b24udHJhY2tzIikpOwotICAgICAgICAgICAgICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQo
YGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVs
JylgLCAibnVsbCIsICgpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygiaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoJy50
cmFja3MtcGFuZWwnKS5zdHlsZS5yaWdodCIsICIyMThweCIpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSku
cXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpLnN0eWxlLmJvdHRvbSIsICIxMDFweCIpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAg
ICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19KTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0
ZW5lcigicGxheSIsICgpID0+IHsKLSAgICBtZWRpYS5wYXVzZSgpOwotICAgIHNob3VsZEJlY29t
ZURpZmZlcmVudChgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1
dHRvbi5mdWxsc2NyZWVuIilgLCAibnVsbCIsICgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVjb21l
RGlmZmVyZW50KGBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcigiYnV0
dG9uLmZ1bGxzY3JlZW4iKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aGAsICIwIiwgKCkg
PT4gewotICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVk
aWEpLnF1ZXJ5U2VsZWN0b3IoYGJ1dHRvbi5mdWxsc2NyZWVuYCkpOwotICAgICAgICB9KTsKLSAg
ICB9KTsKLX0pOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3Vw
cG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1z
dXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtdGhlbi1kb3VibGUtY2xpY2stb24tdHJh
Y2tzLWJ1dHRvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk4
YmQ3NzhjMjgyMmY4M2Y0Y2ZlOGUxMzQxNTJmMDdhMjRjMTQ2YWEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtdGhl
bi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwxNSArMCwwIEBACi1FbnN1cmUgdGhhdCBkb3VibGUtY2xpY2tpbmcgdGhlIHRyYWNr
cyBidXR0b24gd2hlbiB0aGUgdHJhY2tzIHBhbmVsIG1ha2VzIHRoZSBwYW5lbCBhcHBlYXIgYWdh
aW4uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1NZWRpYSBzdGFydGVkIHBsYXlp
bmcKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykgYmVjYW1l
IGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0
b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVu
dCBmcm9tIDAKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykg
YmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCcudHJhY2tzLXBhbmVsJykgaXMgbm90IG51bGwKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93
LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24uaHRtbCBiL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3Vw
cG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24uaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDg1NjQxOWMyOWJjMzI5YmU5OWNiOTYyMmNk
OTJhNDM1OTM4MWYyMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBv
cnQvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3Mt
YnV0dG9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyIg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4v
Li4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBs
ZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiA2NDBweDsgaGVpZ2h0OiAzNjBweDsiIGNvbnRyb2xzIGF1
dG9wbGF5PjwvdmlkZW8+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIkVuc3VyZSB0aGF0IGRvdWJs
ZS1jbGlja2luZyB0aGUgdHJhY2tzIGJ1dHRvbiB3aGVuIHRoZSB0cmFja3MgcGFuZWwgbWFrZXMg
dGhlIHBhbmVsIGFwcGVhciBhZ2Fpbi4iKTsKLQotY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMu
c2hhZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9
PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLQotICAgIGRlYnVnKCJNZWRpYSBzdGFydGVkIHBsYXlp
bmciKTsKLSAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlY29t
ZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsICgpID0+IHsKLSAgICAgICAgICAgIHBy
ZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKTsK
LSAgICAgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVj
dG9yKCcudHJhY2tzLXBhbmVsJykiLCAibnVsbCIsICgpID0+IHsKLSAgICAgICAgICAgICAgICBw
cmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSk7
Ci0gICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0
b24udHJhY2tzIikpOwotICAgICAgICAgICAgICAgICAgICAvLyBHaXZlIHRoZSB0cmFuc2l0aW9u
ZW5kIGV2ZW50IHRpbWUgdG8gZmlyZSBpZiBpdCB3ZXJlIHRvIGhhcHBlbiwgd2hpY2ggaXQgc2hv
dWxkIG5vdC4KLSAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBzaG91bGROb3RCZSgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcu
dHJhY2tzLXBhbmVsJykiLCAibnVsbCIpOwotICAgICAgICAgICAgICAgICAgICAgICAgZGVidWco
IiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgICAgICAgICAgICAgfSwgNTAw
KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAg
ICB9KTsKLX0pOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3Vw
cG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGktZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNr
cy1zdXBwb3J0LXRleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjOGM3MzQ1NjBiZTg4OGUyZTQ4ZTE5ZmU1
YWQzZDY1YzUxOTNhNTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L3RyYWNrcy1zdXBwb3J0LXRleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi1UaGlzIHRlc3QgY2hlY2tz
IHRoYXQgc2V0dGluZyBhbiBlbWJlZGRlZCB0ZXh0IHRyYWNrIGFzIHNlbGVjdGVkIHZpYSB0aGUg
SFRNTE1lZGlhRWxlbWVudCBKUyBBUElzIHdpbGwgY29ycmVjdGx5IHNob3cgdGhpcyB0cmFjayBh
cyBzZWxlY3RlZCwgYW5kIHRoYXQgc2VsZWN0aW5nIHRoZSAiQXV0b21hdGljIChSZWNvbW1lbmRl
ZCkiIHRyYWNrIHdpbGwgcmV2ZXJ0IGJhY2sgdG8gc2VsZWN0aW5nIHRoYXQgZW50cnkuCi0KLU9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIHNoYWRv
d1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCi0KLT09PSBJbml0aWFsIHN0YXRlID09
PQotCi1bLV0gT2ZmCi1bLV0gQXV0byAoUmVjb21tZW5kZWQpCi1beF0gRW5nbGlzaCBTdWJ0aXRs
ZXMKLVstXSBGcmVuY2ggU3VidGl0bGVzCi1bLV0gR2VybWFuIFN1YnRpdGxlcwotWy1dIFNwYW5p
c2ggU3VidGl0bGVzCi0KLT09PSBBZnRlciBwaWNraW5nIGF1dG8gdHJhY2sgaW50ZXJhY3RpdmVs
eSA9PT0KLQotWy1dIE9mZgotW3hdIEF1dG8gKFJlY29tbWVuZGVkKQotWy1dIEVuZ2xpc2ggU3Vi
dGl0bGVzCi1bLV0gRnJlbmNoIFN1YnRpdGxlcwotWy1dIEdlcm1hbiBTdWJ0aXRsZXMKLVstXSBT
cGFuaXNoIFN1YnRpdGxlcwotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXRleHQtdHJhY2stc2VsZWN0
ZWQtdmlhLW1lZGlhLWFwaS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXRleHQtdHJhY2stc2VsZWN0ZWQt
dmlhLW1lZGlhLWFwaS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMjM0Y2I5
MDE1Mjg2YzhlYmU2NGRkNjI5YmUxODljMjZjOTM1MjdjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVk
LXZpYS1tZWRpYS1hcGkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08Ym9keT4KLTx2aWRlbyBzcmM9Ii4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0
bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0
aDogNjQwcHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgotPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7Ci0KLWRlc2NyaXB0aW9uKGBUaGlzIHRlc3QgY2hlY2tzIHRoYXQgc2V0dGluZyBhbiBlbWJl
ZGRlZCB0ZXh0IHRyYWNrIGFzIHNlbGVjdGVkIHZpYSB0aGUgSFRNTE1lZGlhRWxlbWVudCBKUyBB
UElzIHdpbGwgY29ycmVjdGx5IHNob3cgdGhpcyB0cmFjayBhcyBzZWxlY3RlZCwgYW5kIHRoYXQg
c2VsZWN0aW5nIHRoZSAKLSJBdXRvbWF0aWMgKFJlY29tbWVuZGVkKSIgdHJhY2sgd2lsbCByZXZl
cnQgYmFjayB0byBzZWxlY3RpbmcgdGhhdCBlbnRyeS5gKTsKLQotY29uc3QgbWVkaWEgPSBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5p
bnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBs
YXkiLCAoKSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLQotICAgIHNob3VsZEJlY29tZURpZmZl
cmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAibnVsbCIs
ICgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5
U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCIs
ICIwIiwgcnVuVGVzdCk7Ci0gICAgfSk7Ci19KTsKLQotYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgp
Ci17Ci0gICAgLy8gU3RhcnQgYnkgc2VsZWN0aW5nIG9uZSBvZiB0aGUgdGV4dCB0cmFja3MgdXNp
bmcgdGhlIG1lZGlhIEpTIEFQSS4KLSAgICAvLyBUaGlzIHdpbGwgY2F1c2UgdGV4dFRyYWNrc0Rp
ZENoYW5nZSB0byBiZSBjYWxsZWQgZm9yIHRoZSBmaXJzdCB0aW1lLgotICAgIG1lZGlhLnRleHRU
cmFja3NbMF0ubW9kZSA9ICJzaG93aW5nIjsKLQotICAgIC8vIE5leHQsIGJyaW5nIHVwIHRoZSB0
cmFja3MgbWVudSBieSBjbGlja2luZyBvbiB0aGUgdHJhY2tzIGJ1dHRvbi4KLSAgICBhd2FpdCBj
bGlja09uVHJhY2tzQnV0dG9uKCk7Ci0gICAgLy8gRHVtcCB0aGUgc3RhdGUgb2YgdGhlIHRyYWNr
cyBtZW51IGZvciB0ZXh0IHRyYWNrcywgd2hpY2ggc2hvdWxkIHNob3cgdGhlIGZpcnN0IGVtYmVk
ZGVkIHRleHQgdHJhY2sgYXMgc2VsZWN0ZWQuCi0gICAgZHVtcFRleHRUcmFja3NMaXN0Tm9kZXMo
IkluaXRpYWwgc3RhdGUiKTsKLSAgICAvLyBOb3csIHNlbGVjdCB0aGUgIkF1dG9tYXRpYyAoUmVj
b21tZW5kZWQpIiB0ZXh0IHRyYWNrLiAKLSAgICBhd2FpdCBjbGlja09uVGV4dFRyYWNrQXRJbmRl
eCgxKTsKLSAgICAvLyBXYWl0IGZvciB0aGUgc2VsZWN0aW9uIHRvIGhhdmUgZ29uZSB0aHJvdWdo
IGFuZCB0aGUgcGFuZWwgdG8gaGF2ZSB0cmFuc2l0aW9uZWQgb3V0IG9mIHZpZXcuCi0gICAgYXdh
aXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoIi50cmFj
a3MtcGFuZWwiKS5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIiwgcmVzb2x2ZSwgeyBv
bmNlOiB0cnVlIH0pKTsKLQotICAgIC8vIE5vdywgYnJpbmcgdXAgdGhlIHRyYWNrcyBtZW51IGFn
YWluIGJ5IGNsaWNraW5nIG9uIHRoZSB0cmFja3MgYnV0dG9uLgotICAgIGF3YWl0IGNsaWNrT25U
cmFja3NCdXR0b24oKTsKLSAgICAvLyBEdW1wIHRoZSBzdGF0ZSBvZiB0aGUgdHJhY2tzIG1lbnUg
Zm9yIHRleHQgdHJhY2tzLCB3aGljaCBzaG91bGQgbm93IHNob3cgIkF1dG9tYXRpYyAoUmVjb21t
ZW5kZWQpIiBhcyBzZWxlY3RlZC4KLSAgICBkdW1wVGV4dFRyYWNrc0xpc3ROb2RlcygiQWZ0ZXIg
cGlja2luZyBhdXRvIHRyYWNrIGludGVyYWN0aXZlbHkiKTsKLQotICAgIGZpbmlzaFRlc3QoKTsK
LX0KLQotZnVuY3Rpb24gdGV4dFRyYWNrc0xpc3ROb2RlcygpCi17Ci0gICAgcmV0dXJuIHNoYWRv
d1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLnRyYWNrcy1wYW5lbCBzZWN0aW9uOmxhc3Qtb2YtdHlw
ZSA+IHVsID4gbGkiKTsKLX0KLQotZnVuY3Rpb24gZHVtcFRleHRUcmFja3NMaXN0Tm9kZXMobXNn
KQotewotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZyhgPT09ICR7bXNnfSA9PT1gKTsKLSAgICBk
ZWJ1ZygiIik7Ci0gICAgQXJyYXkuZnJvbSh0ZXh0VHJhY2tzTGlzdE5vZGVzKCkpLmZvckVhY2go
bGkgPT4gZGVidWcoYCR7bGkuY2xhc3NMaXN0LmNvbnRhaW5zKCJzZWxlY3RlZCIpID8gIlt4XSIg
OiAiWy1dIn0gJHtsaS50ZXh0Q29udGVudH1gKSk7Ci19Ci0KLWFzeW5jIGZ1bmN0aW9uIGNsaWNr
T25UcmFja3NCdXR0b24oKQotewotICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlcXVlc3RBbmltYXRp
b25GcmFtZSk7Ci0gICAgY2xpY2tPbkVsZW1lbnQoc2hhZG93Um9vdC5sYXN0Q2hpbGQucXVlcnlT
ZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKTsKLSAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXF1ZXN0
QW5pbWF0aW9uRnJhbWUpOwotfQotCi1mdW5jdGlvbiBjbGlja09uVGV4dFRyYWNrQXRJbmRleChp
bmRleCkKLXsKLSAgICBjbGlja09uRWxlbWVudCh0ZXh0VHJhY2tzTGlzdE5vZGVzKClbaW5kZXhd
KTsKLX0KLQotZnVuY3Rpb24gY2xpY2tPbkVsZW1lbnQoZWxlbWVudCkKLXsKLSAgICBjb25zdCBi
b3VuZHMgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKGJvdW5kcy5sZWZ0ICsgMSwgYm91bmRzLnRvcCArIDEpOwotICAgIGV2ZW50
U2VuZGVyLm1vdXNlRG93bigpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKLX0KLQotZnVu
Y3Rpb24gZmluaXNoVGVzdCgpCi17Ci0gICAgZGVidWcoIiIpOwotICAgIG1lZGlhLnJlbW92ZSgp
OwotICAgIGZpbmlzaEpTVGVzdCgpOwotfQotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMWExZDFjMDg5ZTVjMjZj
MmJhMmFmNDE4ZmVkMDdlM2ZiYmY2NTFkMS4uNGUzM2U5YzliMzBmZWU1NjlhNDk5ZDhkNjNmMjE4
NmExOTVhM2RjMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTEyNjIsNiArMTI2Miw3IEBAIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1k
b2N1bWVudHMvbWVkaWEtZG9jdW1lbnQtYXVkaW8taW9zLXNpemluZy5odG1sCiBtZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvbWVkaWEtZG9jdW1lbnRzL21lZGlhLWRvY3VtZW50LXZpZGVvLWlw
aG9uZS1zaXppbmcuaHRtbCBbIFNraXAgXQogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21l
ZGlhLWRvY3VtZW50cy9tZWRpYS1kb2N1bWVudC12aWRlby1pcGFkLXNpemluZy5odG1sIFsgU2tp
cCBdCiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvc2NydWJiZXItc3VwcG9ydC9pcGFkIFsg
U2tpcCBdCittZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zIFsg
U2tpcCBdCiAKICMgVGhlc2UgdGVzdHMgYXJlIHRpbWluZy1yZWxhdGVkIGFuZCBjYW4gZmFpbCBk
dWUgdG8gcGVyZm9ybWFuY2UgaXNzdWVzIG9uIGJvdHMKIHdlYmtpdC5vcmcvYi8xNjk4NzYgbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxl
ci1hdXRvLWhpZGUtbW91c2UtZW50ZXItYW5kLW1vdXNlLWxlYXZlLmh0bWwgWyBQYXNzIFRpbWVv
dXQgXQpAQCAtMTI3Nyw3ICsxMjc4LDcgQEAgd2Via2l0Lm9yZy9iLzE3ODEyNyBtZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGUKICMgb24g
aU9TLCBhbmQgdGhlIGJ1ZyBpdCB3YXMgY3JlYXRlZCB0byByZWdyZXNzaW9uLXRlc3Qgd2FzIGlP
Uy1vbmx5LCBzbyB0aGVyZSBpcyBubyBodXJyeSB0byBtYWtlIGl0IHdvcmsgb24gTWFjLgogbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWRvY3VtZW50cy9iYWNrZ3JvdW5kLWNvbG9y
LWFuZC1jZW50ZXJpbmcuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLXdlYmtpdC5v
cmcvYi8xNjkxNTggbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3Ry
YWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJvbHMuaHRtbCBbIFNr
aXAgXQord2Via2l0Lm9yZy9iLzE2OTE1OCBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmct
Y29udHJvbHMuaHRtbCBbIFNraXAgXQogCiB3ZWJraXQub3JnL2IvMTc4MDgzIG1lZGlhL21lZGlh
LXNvdXJjZS9tZWRpYS1zb3VyY2UtcGFpbnQtdG8tY2FudmFzLmh0bWwgWyBGYWlsdXJlIF0KIApA
QCAtMTg0MCw3ICsxODQxLDcgQEAgd2Via2l0Lm9yZy9iLzIxMDA0NiBbIFJlbGVhc2UgXSBzdG9y
YWdlL2luZGV4ZWRkYi92YWx1ZS1jdXJzb3ItY3ljbGUuaHRtbCBbIFBhc3MKIAogd2Via2l0Lm9y
Zy9iLzIwNzE2MCBjc3MyLjEvMjAxMTAzMjMvcmVwbGFjZWQtaW50cmluc2ljLXJhdGlvLTAwMS5o
dG0gWyBQYXNzIEZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTgyNTcxIFsgRGVidWcgXSBtZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtc2hv
dy1wYW5lbC1mdWxsc2NyZWVuLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQord2Via2l0Lm9yZy9iLzE4
MjU3MSBbIERlYnVnIF0gbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxzY3JlZW4uaHRtbCBbIFBhc3MgVGlt
ZW91dCBdCiAKICMgQ2VydGFpbiB2ZXJzaW9ucyBvZiBtYWNPUyB1c2UgZGlmZmVyZW50IHRleHQg
c2VjdXJpdHkgY2hhcmFjdGVycy4KIHdlYmtpdC5vcmcvYi8yMDk2OTIgWyBNb2phdmUgQ2F0YWxp
bmEgXSBwbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L3RleHQtc2VjdXJpdHktZGlzYy1idWxsZXQtcHVh
LW1hYy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419751</attachid>
            <date>2021-02-09 12:20:38 -0800</date>
            <delta_ts>2021-02-09 15:42:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221594-20210209132037.patch</filename>
            <type>text/plain</type>
            <size>173104</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggODlmNmZjMTI4OTM5MDdjZGQ4NjRmZjY3MzhkYzU5NTQxOTA1YzJjYi4uZjAzOTdmZThh
YjMzN2RlNmJmM2U3ODdkMTJmZTJkMjY5MmYxNTM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAy
MS0wMi0wOSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lP
U10gQWRkIHN1cHBvcnQgZm9yIHRoZSBsYW5ndWFnZS9zdWJ0aXRsZSB0cmFja3MgYnV0dG9uIHVz
aW5nIGBVSU1lbnVgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjE1OTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc0MTI5MTI5PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJl
bmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sOgorICAgICAgICBDcmVhdGUgYSBgTWVkaWFDb250cm9s
c0NvbnRleHRNZW51c0VuYWJsZWRgIHNldHRpbmcgZm9yIGd1YXJkaW5nIGFuIElETCBob29rIHRv
IFdLMiBvbmx5LgorCiAyMDIxLTAyLTA2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgTm9uLXNwZWNpYWwgVVJMcyBzaG91bGQgaGF2ZSBhbiBv
cGFxdWUgb3JpZ2luCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDkwZTU0Yzk1YjhhMWYwNTI1ODYyMDI0MjVmZjc0
MDdhNTAyODUxOS4uNzI0MjFiOWU3N2U3Y2QxNTNkZDg1NDJiNGJmOTBhNjJlNDRkN2MyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTAyLTA5ICBEZXZpbiBSb3Vzc28gIDxkcm91
c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBBZGQgc3VwcG9ydCBmb3IgdGhlIGxhbmd1
YWdlL3N1YnRpdGxlIHRyYWNrcyBidXR0b24gdXNpbmcgYFVJTWVudWAKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTU5NAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNzQxMjkxMjk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdHM6IG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtYXV0by10ZXh0LXRyYWNrLmh0bWwKKyAgICAgICAgICAg
ICAgIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tz
LXN1cHBvcnQtY2xpY2stdHJhY2staW4tY29udGV4dG1lbnUuaHRtbAorICAgICAgICAgICAgICAg
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3Vw
cG9ydC1oaWRkZW4tdHJhY2tzLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJh
Y2suaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1zaG93LWNvbnRleHRtZW51LXRoZW4tZG91Ymxl
LWNsaWNrLW9uLXRyYWNrcy1idXR0b24uaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC10ZXh0LXRy
YWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1hdXRv
LXRleHQtdHJhY2suaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1jbGljay10cmFjay1pbi1wYW5l
bC5odG1sCisgICAgICAgICAgICAgICBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10cmFja3MuaHRtbAorICAgICAgICAg
ICAgICAgbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFj
a3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay5odG1sCisgICAgICAgICAgICAgICBtZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ct
YW5kLXBvcHVsYXRlLXBhbmVsLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1h
ZnRlci1kcmFnZ2luZy1jb250cm9scy5odG1sCisgICAgICAgICAgICAgICBtZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFu
ZWwtZnVsbHNjcmVlbi5odG1sCisgICAgICAgICAgICAgICBtZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtdGhlbi1k
b3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi5odG1sCisgICAgICAgICAgICAgICBtZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXRl
eHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS5odG1sCisKKyAgICAgICAgKiBwYWdlL01l
ZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6ZGVjb2RlKToKKyAgICAgICAgU2lt
cGxlIFBPRCBvYmplY3QgZm9yIHNlbmRpbmcgZGF0YSBmcm9tIHRoZSBXZWJQcm9jZXNzIHRvIHRo
ZSBVSVByb2Nlc3MgZm9yIHRoZSBgVUlNZW51YC4KKworICAgICAgICAqIE1vZHVsZXMvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL21lZGlhL3RyYWNrcy1zdXBwb3J0LmpzOgorICAgICAgICAoVHJhY2tz
U3VwcG9ydC5wcm90b3R5cGUuYnV0dG9uV2FzUHJlc3NlZCk6CisgICAgICAgIChUcmFja3NTdXBw
b3J0LnByb3RvdHlwZS5zeW5jQ29udHJvbCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYWNvbnRy
b2xzL01lZGlhQ29udHJvbHNIb3N0LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJv
bHMvTWVkaWFDb250cm9sc0hvc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMv
TWVkaWFDb250cm9sc0hvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hv
c3Q6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUpOiBBZGRlZC4KKyAgICAgICAgKiBwYWdl
L0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpzaG93TWVk
aWFDb250cm9sc0NvbnRleHRNZW51KToKKyAgICAgICAgUHJvdmlkZSBhIGhvc3QgaG9vayBmb3Ig
Z2VuZXJhdGluZyBhbmQgc2VuZGluZyB0aGUgYFVJTWVudWAgZGF0YS4gV2hlbiBhIGBVSUFjdGlv
bmAgaXMKKyAgICAgICAgc2VsZWN0ZWQgb3IgdGhlIG1lbnUgaXMgZGlzbWlzc2VkLCB0aGUgcmVs
ZXZhbnQgYE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEYCBpcyBzZW50CisgICAgICAg
IGJhY2sgYXMgdGhlIHJlc3BvbnNlIHRvIHRoZSBhc3luYyBtZXNzYWdlIGFuZCBpcyB1c2VkIHRv
IHBlcmZvcm0gdGhlIGFjdGlvbiByZWxhdGVkIHRvIHRoZQorICAgICAgICB0eXBlIG9mIHRoZSBv
YmplY3QgKGUuZy4gYEF1ZGlvVHJhY2tgLCBgVGV4dFRyYWNrYCwgZXRjLikgdGhhdCB3YXMgcHJl
dmlvdXNseSBhc3NvY2lhdGVkCisgICAgICAgIHdpdGggdGhhdCBgTWVkaWFDb250cm9sc0NvbnRl
eHRNZW51SXRlbTo6SURgLgorCisgICAgICAgICogZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5n
czoKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmg6CisgICAgICAgICogcGxh
dGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0VHJhY2tT
dWJ0aXRsZXNUZXh0KTogRGVsZXRlZC4KKyAgICAgICAgQWRkIGxvY2FsaXphYmxlIHN0cmluZ3Mg
Zm9yICJMYW5ndWFnZXMiIGFuZCAiU3VidGl0bGVzIiBoZWFkZXJzL3N1Ym1lbnVzLgorCisgICAg
ICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisKIDIwMjEtMDItMDggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2OTQ1OCk6IHlhaG9vLmNvbSBzb2NpYWwg
LyBjb21tZW50cyBiYXIgc2hvd3MgYXMgdHJhbnNwYXJlbnQgd2hlbiBzY3JvbGxpbmcgcGFnZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCBhNGZmY2VkOTUyYjRkNWFkMjk5MGUyMDkxZjRmN2QxM2FhOTU1MjNmLi42YmJh
M2FkMjkwN2YyYmVlMzE3MjIxZDY3MjYzNzE1MmNjZDMwZDYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDY1IEBACisyMDIxLTAyLTA5ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbaU9TXSBBZGQgc3VwcG9ydCBmb3IgdGhlIGxhbmd1YWdlL3N1YnRpdGxlIHRyYWNr
cyBidXR0b24gdXNpbmcgYFVJTWVudWAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMTU5NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQxMjkxMjk+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViQ2hyb21lQ2xpZW50OjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KTogQWRkZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNo
b3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KTogQWRkZWQu
CisgICAgICAgIFNlbmQgdGhlIGdpdmVuIGBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtYHMg
dG8gdGhlIFVJUHJvY2VzcyBmb3IgdGhlIGBVSU1lbnVgLgorCisgICAgICAgICogVUlQcm9jZXNz
L1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudDo6c2hvd01lZGlhQ29u
dHJvbHNDb250ZXh0TWVudSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
Lm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2hvd01lZGlhQ29udHJvbHND
b250ZXh0TWVudSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgYWN0aW9uU2hlZXRBc3Npc3Rh
bnREaWRTaG93Q29udGV4dE1lbnU6XSk6IEFkZGVkLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3
IGFjdGlvblNoZWV0QXNzaXN0YW50RGlkRGlzbWlzc0NvbnRleHRNZW51Ol0pOiBBZGRlZC4KKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBfc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudTppdGVt
czpjb21wbGV0aW9uSGFuZGxlcjpdKTogQWRkZWQuCisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
X2NvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbTpdKToKKyAgICAgICAgUGFzcyB0aGUgZ2l2ZW4g
YE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW1gcyB0byB0aGUgYFdLQWN0aW9uU2hlZXRBc3Np
c3RhbnRgLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tOgor
ICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IHJlbW92ZUNvbnRleHRNZW51SW50ZXJh
Y3Rpb25dKToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBlbnN1cmVDb250ZXh0
TWVudUludGVyYWN0aW9uXSk6CisgICAgICAgICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgaGFz
Q29udGV4dE1lbnVJbnRlcmFjdGlvbl0pOgorICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0
YW50IF91aU1lbnVFbGVtZW50c0Zvck1lZGlhQ29udHJvbENvbnRleHRNZW51SXRlbXM6XSk6IEFk
ZGVkLgorICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IHNob3dNZWRpYUNvbnRyb2xz
Q29udGV4dE1lbnU6aXRlbXM6Y29tcGxldGlvbkhhbmRsZXI6XSk6IEFkZGVkLgorICAgICAgICAo
LVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IGNvbnRleHRNZW51SW50ZXJhY3Rpb246Y29uZmlndXJh
dGlvbkZvck1lbnVBdExvY2F0aW9uOl0pOgorICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0
YW50IGNvbnRleHRNZW51SW50ZXJhY3Rpb246cHJldmlld0ZvckhpZ2hsaWdodGluZ01lbnVXaXRo
Q29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBjb250
ZXh0TWVudUludGVyYWN0aW9uOndpbGxEaXNwbGF5TWVudUZvckNvbmZpZ3VyYXRpb246YW5pbWF0
b3I6XSk6IEFkZGVkLgorICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IGNvbnRleHRN
ZW51SW50ZXJhY3Rpb246d2lsbEVuZEZvckNvbmZpZ3VyYXRpb246YW5pbWF0b3I6XSk6CisgICAg
ICAgICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgX2NvbnRleHRNZW51SW50ZXJhY3Rpb246b3Zl
cnJpZGVTdWdnZXN0ZWRBY3Rpb25zRm9yQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tB
Y3Rpb25TaGVldEFzc2lzdGFudCBfY29udGVudHNPZkNvbnRleHRNZW51SXRlbTpdKTogQWRkZWQu
CisgICAgICAgICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgY3VycmVudGx5QXZhaWxhYmxlQWN0
aW9uVGl0bGVzXSk6IEFkZGVkLgorICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IGN1
cnJlbnRseUF2YWlsYWJsZU1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW1zXSk6IEFkZGVkLgor
ICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IGN1cnJlbnRBdmFpbGFibGVBY3Rpb25U
aXRsZXNdKTogRGVsZXRlZC4KKyAgICAgICAgSW5zdGVhZCBvZiBhc3N1bWluZyB0aGF0IHRoZSBv
bmx5IGBVSUNvbnRleHRNZW51SW50ZXJhY3Rpb25gIGlzIGZvciBkYXRhIGRldGVjdG9ycywgY2hl
Y2sKKyAgICAgICAgdGhlIGdpdmVuIGBpbnRlcmFjdGlvbmAgdG8gc2VlIGlmIGl0J3MgdGhlIGRh
dGEgZGV0ZWN0b3IgaW50ZXJhY3Rpb24gYmVmb3JlIGRvaW5nIGFueSB3b3JrLgorICAgICAgICBU
aGlzIGFsbG93cyB0aGUgbWVkaWEgY29udHJvbHMgYFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbmAg
dG8gZXhpc3Qgc2lkZS1ieS1zaWRlIGFuZCB1c2UgdGhlCisgICAgICAgIGBXS0FjdGlvblNoZWV0
QXNzaXN0YW50YCBhcyBpdHMgZGVsZWdhdGUgdG9vIChlc3BlY2lhbGx5IHNpbmNlIGl0J3Mgbm90
IHBvc3NpYmxlIGZvciBib3RoCisgICAgICAgIGNvbnRleHRtZW51cyB0byBiZSBhY3RpdmUgYXQg
dGhlIHNhbWUgdGltZSkuIFByZXNlbnQgdGhlIG1lZGlhIGNvbnRyb2xzIGNvbnRleHRtZW51IHdp
dGhvdXQKKyAgICAgICAgYSBwcmV2aWV3IChpdCB1c2VzIGFuIGVtcHR5IGBVSVZpZXdgIGZvciBw
cm9wZXIgc2l6aW5nKSBhdCB0aGUgbG9jYXRpb24gcHJvdmlkZWQuIFNlbGVjdGluZworICAgICAg
ICBhIGBVSUFjdGlvbmAgd2lsbCBzZW5kIHRoZSBgTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRl
bTo6SURgIGJhY2sgdG8gdGhlIFdlYlByb2Nlc3MuCisgICAgICAgIEFsc28gYWRkIHN1cHBvcnQg
Zm9yCisgICAgICAgICAtIGBVSVNjcmlwdENvbnRyb2xsZXIucHJvdG90eXBlLmNvbnRlbnRzT2ZV
c2VySW50ZXJmYWNlSXRlbWAKKyAgICAgICAgIC0gYFVJU2NyaXB0Q29udHJvbGxlci5wcm90b3R5
cGUuZGlkU2hvd0NvbnRleHRNZW51Q2FsbGJhY2tgCisgICAgICAgICAtIGBVSVNjcmlwdENvbnRy
b2xsZXIucHJvdG90eXBlLmRpZERpc21pc3NDb250ZXh0TWVudUNhbGxiYWNrYAorICAgICAgICBm
b3IgdXNhZ2UgaW4gdGhlIGFkZGVkIGBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL2AgdGVzdHMuCisKIDIwMjEtMDItMDggIENvbW1pdCBR
dWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJl
dmVydGluZyByMjcyNDg1LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVu
Y2VzL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMv
V2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCAwNTIwYzZjOWQ5M2U2ZjU2NmZhY2YyMGUwODc0NWNm
YjdjMGM3NTA3Li41ZTNkMjVkODg0MTMzYjUzNjEwMjRmMGVlZjNmYjZlZGM0NWZmMGIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFt
bAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFt
bApAQCAtMTM0MCw2ICsxMzQwLDE3IEBAIE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdh
cmVTdXBwb3J0OgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiAnIiInCiAKK01lZGlhQ29u
dHJvbHNDb250ZXh0TWVudXNFbmFibGVkOgorICB0eXBlOiBib29sCisgIGNvbmRpdGlvbjogRU5B
QkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisgIGRlZmF1bHRWYWx1ZToKKyAgICBX
ZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRl
ZmF1bHQ6IHRydWUKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogZmFsc2UKKwogTWVkaWFD
b250cm9sc1NjYWxlV2l0aFBhZ2Vab29tOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCmluZGV4IDM3MjhhYmUwZTZhZWJhZDBmNDZlYzRkZjRlMGFmMzRlZDIz
ODEyNzYuLjBmNDdmNmVmZDY1ZTBhYjM2MjU1MzVkOTExMGZhMGRiZDYwYjY3MmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVh
ZGVycy5jbWFrZQpAQCAtODgxLDYgKzg4MSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVX
T1JLX0hFQURFUlMKICAgICBwYWdlL0dsb2JhbFdpbmRvd0lkZW50aWZpZXIuaAogICAgIHBhZ2Uv
TGF5b3V0TWlsZXN0b25lLmgKICAgICBwYWdlL01lZGlhQ2FuU3RhcnRMaXN0ZW5lci5oCisgICAg
cGFnZS9NZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmgKICAgICBwYWdlL01lZGlhUHJvZHVj
ZXIuaAogICAgIHBhZ2UvTWVtb3J5UmVsZWFzZS5oCiAgICAgcGFnZS9OYXZpZ2F0b3JJc0xvZ2dl
ZEluLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9N
ZWRpYUNvbnRyb2xzSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJv
bHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCmluZGV4IGUzODdlZWY4MmRhZmUwMjcyMmEwNjRmMzM2
YTAwYmEwYWE1N2RhZDIuLjBjODNhMzQ1NWRlMTZlMDZmYWNlY2M5OWE3OGZhNWU2N2QyYjVkNzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNv
bnRyb2xzSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xz
L01lZGlhQ29udHJvbHNIb3N0LmNwcApAQCAtMjksMTAgKzI5LDE2IEBACiAKICNpbmNsdWRlICJN
ZWRpYUNvbnRyb2xzSG9zdC5oIgogCisjaW5jbHVkZSAiQXVkaW9UcmFja0xpc3QuaCIKKyNpbmNs
dWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJDYXB0
aW9uVXNlclByZWZlcmVuY2VzLmgiCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAi
SFRNTE1lZGlhRWxlbWVudC5oIgorI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVy
RWxlbWVudC5oIgorI2luY2x1ZGUgIk1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaCIKICNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUmVuZGVy
VGhlbWUuaCIKQEAgLTQwLDYgKzQ2LDcgQEAKICNpbmNsdWRlICJUZXh0VHJhY2tMaXN0LmgiCiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSlNWYWx1ZUlubGluZXMuaD4KICNpbmNsdWRlIDx3
dGYvVVVJRC5oPgorI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMzA0LDYgKzMxMSwxMjIgQEAgU3RyaW5nIE1lZGlhQ29udHJvbHNIb3N0Ojpmb3Jt
YXR0ZWRTdHJpbmdGb3JEdXJhdGlvbihkb3VibGUgZHVyYXRpb25JblNlY29uZHMpCiAgICAgcmV0
dXJuIFJlbmRlclRoZW1lOjpzaW5nbGV0b24oKS5tZWRpYUNvbnRyb2xzRm9ybWF0dGVkU3RyaW5n
Rm9yRHVyYXRpb24oZHVyYXRpb25JblNlY29uZHMpOwogfQogCisjaWYgRU5BQkxFKE1FRElBX0NP
TlRST0xTX0NPTlRFWFRfTUVOVVMpCisKK3ZvaWQgTWVkaWFDb250cm9sc0hvc3Q6OnNob3dNZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnUoSFRNTEVsZW1lbnQmIHRhcmdldCwgQ29udGV4dE1lbnVPcHRp
b25zJiYgb3B0aW9ucykKK3sKKyAgICBpZiAoIW1fbWVkaWFFbGVtZW50KQorICAgICAgICByZXR1
cm47CisKKyAgICBhdXRvJiBtZWRpYUVsZW1lbnQgPSAqbV9tZWRpYUVsZW1lbnQ7CisKKyAgICBh
dXRvKiBwYWdlID0gbWVkaWFFbGVtZW50LmRvY3VtZW50KCkucGFnZSgpOworICAgIGlmICghcGFn
ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdXNpbmcgTWVudVRyYWNrSXRlbSA9IFZhcmlhbnQ8
UmVmUHRyPEF1ZGlvVHJhY2s+LCBSZWZQdHI8VGV4dFRyYWNrPj47CisgICAgSGFzaE1hcDxNZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCwgTWVudVRyYWNrSXRlbT4gaWRNYXA7CisKKyAg
ICBWZWN0b3I8TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4gaXRlbXM7CisKKyAgICBpZiAo
b3B0aW9ucy5pbmNsdWRlQXVkaW9UcmFja3MpIHsKKyAgICAgICAgaWYgKGF1dG8qIGF1ZGlvVHJh
Y2tzID0gbWVkaWFFbGVtZW50LmF1ZGlvVHJhY2tzKCk7IGF1ZGlvVHJhY2tzICYmIGF1ZGlvVHJh
Y2tzLT5sZW5ndGgoKSA+IDEpIHsKKyAgICAgICAgICAgIE1lZGlhQ29udHJvbHNDb250ZXh0TWVu
dUl0ZW0gYXVkaW9UcmFja3NJdGVtOworICAgICAgICAgICAgYXVkaW9UcmFja3NJdGVtLnRpdGxl
ID0gV0VCX1VJX1NUUklOR19LRVkoIkxhbmd1YWdlcyIsICJMYW5ndWFnZXMgKE1lZGlhIENvbnRy
b2xzIE1lbnUpIiwgIkxhbmd1YWdlcyBtZWRpYSBjb250cm9scyBjb250ZXh0IG1lbnUgdGl0bGUi
KTsKKyAgICAgICAgICAgIGF1ZGlvVHJhY2tzSXRlbS5pY29uID0gImdsb2JlIl9zOworICAgICAg
ICAgICAgYXVkaW9UcmFja3NJdGVtLmNoaWxkcmVuLnJlc2VydmVDYXBhY2l0eShhdWRpb1RyYWNr
cy0+bGVuZ3RoKCkpOworCisgICAgICAgICAgICBhdXRvJiBjYXB0aW9uUHJlZmVyZW5jZXMgPSBw
YWdlLT5ncm91cCgpLmNhcHRpb25QcmVmZXJlbmNlcygpOworCisgICAgICAgICAgICBmb3IgKGF1
dG8mIGF1ZGlvVHJhY2sgOiBjYXB0aW9uUHJlZmVyZW5jZXMuc29ydGVkVHJhY2tMaXN0Rm9yTWVu
dShhdWRpb1RyYWNrcykpIHsKKyAgICAgICAgICAgICAgICBNZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnVJdGVtIGF1ZGlvVHJhY2tJdGVtOworICAgICAgICAgICAgICAgIGF1ZGlvVHJhY2tJdGVtLmlk
ID0gaWRNYXAuc2l6ZSgpICsgMTsKKyAgICAgICAgICAgICAgICBhdWRpb1RyYWNrSXRlbS50aXRs
ZSA9IGNhcHRpb25QcmVmZXJlbmNlcy5kaXNwbGF5TmFtZUZvclRyYWNrKGF1ZGlvVHJhY2suZ2V0
KCkpOworICAgICAgICAgICAgICAgIGF1ZGlvVHJhY2tJdGVtLmlzQ2hlY2tlZCA9IGF1ZGlvVHJh
Y2stPmVuYWJsZWQoKTsKKworICAgICAgICAgICAgICAgIGlkTWFwLmFkZChhdWRpb1RyYWNrSXRl
bS5pZCwgYXVkaW9UcmFjayk7CisKKyAgICAgICAgICAgICAgICBhdWRpb1RyYWNrc0l0ZW0uY2hp
bGRyZW4uYXBwZW5kKFdURk1vdmUoYXVkaW9UcmFja0l0ZW0pKTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgaWYgKCFhdWRpb1RyYWNrc0l0ZW0uY2hpbGRyZW4uaXNFbXB0eSgpKQorICAg
ICAgICAgICAgICAgIGl0ZW1zLmFwcGVuZChXVEZNb3ZlKGF1ZGlvVHJhY2tzSXRlbSkpOworICAg
ICAgICB9CisgICAgfQorCisgICAgaWYgKG9wdGlvbnMuaW5jbHVkZVRleHRUcmFja3MpIHsKKyAg
ICAgICAgaWYgKGF1dG8qIHRleHRUcmFja3MgPSBtZWRpYUVsZW1lbnQudGV4dFRyYWNrcygpOyB0
ZXh0VHJhY2tzICYmIHRleHRUcmFja3MtPmxlbmd0aCgpKSB7CisgICAgICAgICAgICBNZWRpYUNv
bnRyb2xzQ29udGV4dE1lbnVJdGVtIHRleHRUcmFja3NJdGVtOworICAgICAgICAgICAgdGV4dFRy
YWNrc0l0ZW0udGl0bGUgPSBXRUJfVUlfU1RSSU5HX0tFWSgiU3VidGl0bGVzIiwgIlN1YnRpdGxl
cyAoTWVkaWEgQ29udHJvbHMgTWVudSkiLCAiU3VidGl0bGVzIG1lZGlhIGNvbnRyb2xzIGNvbnRl
eHQgbWVudSB0aXRsZSIpOworICAgICAgICAgICAgdGV4dFRyYWNrc0l0ZW0uaWNvbiA9ICJjYXB0
aW9ucy5idWJibGUiX3M7CisgICAgICAgICAgICB0ZXh0VHJhY2tzSXRlbS5jaGlsZHJlbi5yZXNl
cnZlQ2FwYWNpdHkodGV4dFRyYWNrcy0+bGVuZ3RoKCkpOworCisgICAgICAgICAgICBhdXRvJiBj
YXB0aW9uUHJlZmVyZW5jZXMgPSBwYWdlLT5ncm91cCgpLmNhcHRpb25QcmVmZXJlbmNlcygpOwor
ICAgICAgICAgICAgYXV0byBzb3J0ZWRUZXh0VHJhY2tzID0gY2FwdGlvblByZWZlcmVuY2VzLnNv
cnRlZFRyYWNrTGlzdEZvck1lbnUodGV4dFRyYWNrcyk7CisgICAgICAgICAgICBib29sIGFsbFRy
YWNrc0Rpc2FibGVkID0gbm90Rm91bmQgPT0gc29ydGVkVGV4dFRyYWNrcy5maW5kTWF0Y2hpbmco
W10gKGNvbnN0IGF1dG8mIHRleHRUcmFjaykgeworICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0
VHJhY2stPm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6OlNob3dpbmc7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIGJvb2wgdXNlc0F1dG9tYXRpY1RyYWNrID0gY2FwdGlvblByZWZlcmVu
Y2VzLmNhcHRpb25EaXNwbGF5TW9kZSgpID09IENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OkF1dG9t
YXRpYyAmJiBhbGxUcmFja3NEaXNhYmxlZDsKKworICAgICAgICAgICAgZm9yIChhdXRvJiB0ZXh0
VHJhY2sgOiBzb3J0ZWRUZXh0VHJhY2tzKSB7CisgICAgICAgICAgICAgICAgTWVkaWFDb250cm9s
c0NvbnRleHRNZW51SXRlbSB0ZXh0VHJhY2tJdGVtOworICAgICAgICAgICAgICAgIHRleHRUcmFj
a0l0ZW0uaWQgPSBpZE1hcC5zaXplKCkgKyAxOworICAgICAgICAgICAgICAgIHRleHRUcmFja0l0
ZW0udGl0bGUgPSBjYXB0aW9uUHJlZmVyZW5jZXMuZGlzcGxheU5hbWVGb3JUcmFjayh0ZXh0VHJh
Y2suZ2V0KCkpOworICAgICAgICAgICAgICAgIGlmIChhbGxUcmFja3NEaXNhYmxlZCAmJiB0ZXh0
VHJhY2sgPT0gJlRleHRUcmFjazo6Y2FwdGlvbk1lbnVPZmZJdGVtKCkgJiYgKGNhcHRpb25QcmVm
ZXJlbmNlcy5jYXB0aW9uRGlzcGxheU1vZGUoKSA9PSBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpG
b3JjZWRPbmx5IHx8IGNhcHRpb25QcmVmZXJlbmNlcy5jYXB0aW9uRGlzcGxheU1vZGUoKSA9PSBD
YXB0aW9uVXNlclByZWZlcmVuY2VzOjpNYW51YWwpKQorICAgICAgICAgICAgICAgICAgICB0ZXh0
VHJhY2tJdGVtLmlzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAodXNl
c0F1dG9tYXRpY1RyYWNrICYmIHRleHRUcmFjayA9PSAmVGV4dFRyYWNrOjpjYXB0aW9uTWVudUF1
dG9tYXRpY0l0ZW0oKSkKKyAgICAgICAgICAgICAgICAgICAgdGV4dFRyYWNrSXRlbS5pc0NoZWNr
ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKCF1c2VzQXV0b21hdGljVHJhY2sg
JiYgdGV4dFRyYWNrLT5tb2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpTaG93aW5nKQorICAgICAg
ICAgICAgICAgICAgICB0ZXh0VHJhY2tJdGVtLmlzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXh0VHJhY2tJdGVtLmlzQ2hlY2tlZCA9
IGZhbHNlOworCisgICAgICAgICAgICAgICAgaWRNYXAuYWRkKHRleHRUcmFja0l0ZW0uaWQsIHRl
eHRUcmFjayk7CisKKyAgICAgICAgICAgICAgICB0ZXh0VHJhY2tzSXRlbS5jaGlsZHJlbi5hcHBl
bmQoV1RGTW92ZSh0ZXh0VHJhY2tJdGVtKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGlmICghdGV4dFRyYWNrc0l0ZW0uY2hpbGRyZW4uaXNFbXB0eSgpKQorICAgICAgICAgICAgICAg
IGl0ZW1zLmFwcGVuZChXVEZNb3ZlKHRleHRUcmFja3NJdGVtKSk7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBpZiAoaXRlbXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NF
UlQoIWlkTWFwLmlzRW1wdHkoKSk7CisKKyAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5zaG93
TWVkaWFDb250cm9sc0NvbnRleHRNZW51KHRhcmdldC5ib3VuZHNJblJvb3RWaWV3U3BhY2UoKSwg
V1RGTW92ZShpdGVtcyksIFt3ZWFrTWVkaWFFbGVtZW50ID0gbWFrZVdlYWtQdHIobWVkaWFFbGVt
ZW50KSwgaWRNYXAgPSBXVEZNb3ZlKGlkTWFwKV0gKE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0
ZW06OklEIHNlbGVjdGVkSXRlbUlEKSB7CisKKyAgICAgICAgaWYgKHNlbGVjdGVkSXRlbUlEID09
IE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OmludmFsaWRJRCkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBpZiAoIXdlYWtNZWRpYUVsZW1lbnQpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgYXV0byYgbWVkaWFFbGVtZW50ID0gKndlYWtNZWRpYUVsZW1lbnQ7CisK
KyAgICAgICAgYXV0byBzZWxlY3RlZEl0ZW0gPSBpZE1hcC5nZXQoc2VsZWN0ZWRJdGVtSUQpOwor
ICAgICAgICBXVEY6OnN3aXRjaE9uKHNlbGVjdGVkSXRlbSwKKyAgICAgICAgICAgIFsmXSAoUmVm
UHRyPEF1ZGlvVHJhY2s+JiBzZWxlY3RlZEF1ZGlvVHJhY2spIHsKKyAgICAgICAgICAgICAgICBm
b3IgKGF1dG8mIHRyYWNrIDogaWRNYXAudmFsdWVzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGF1dG8qIGF1ZGlvVHJhY2sgPSBXVEY6OmdldF9pZjxSZWZQdHI8QXVkaW9UcmFjaz4+KHRy
YWNrKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICgqYXVkaW9UcmFjayktPnNldEVuYWJsZWQo
KmF1ZGlvVHJhY2sgPT0gc2VsZWN0ZWRBdWRpb1RyYWNrKTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgWyZdIChSZWZQdHI8VGV4dFRyYWNrPiYgc2VsZWN0
ZWRUZXh0VHJhY2spIHsKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIHRyYWNrIDogaWRNYXAu
dmFsdWVzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8qIHRleHRUcmFjayA9IFdU
Rjo6Z2V0X2lmPFJlZlB0cjxUZXh0VHJhY2s+Pih0cmFjaykpCisgICAgICAgICAgICAgICAgICAg
ICAgICAoKnRleHRUcmFjayktPnNldE1vZGUoVGV4dFRyYWNrOjpNb2RlOjpEaXNhYmxlZCk7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1lZGlhRWxlbWVudC5zZXRTZWxlY3Rl
ZFRleHRUcmFjayhzZWxlY3RlZFRleHRUcmFjay5nZXQoKSk7CisgICAgICAgICAgICB9CisgICAg
ICAgICk7CisgICAgfSk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09O
VEVYVF9NRU5VUykKKwogYm9vbCBNZWRpYUNvbnRyb2xzSG9zdDo6Y29tcGFjdE1vZGUoKSBjb25z
dAogewogI2lmIFBMQVRGT1JNKFdBVENIT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5oCmluZGV4IDZlODQ1Zjdh
N2M1YjBkOWJiNGMyMTVjYmNlMjgwZWRmZTVlZTMzYjguLjJlNzNkY2U2N2RjMmY3NzQwOTFkMzQw
ODU3YjE4MzM4YzdiYmY1OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5oCkBAIC05MSw2ICs5MSwxNCBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIFN0cmluZyBiYXNlNjRTdHJpbmdGb3JJY29uTmFtZUFuZFR5cGUo
Y29uc3QgU3RyaW5nJiBpY29uTmFtZSwgY29uc3QgU3RyaW5nJiBpY29uVHlwZSk7CiAgICAgc3Rh
dGljIFN0cmluZyBmb3JtYXR0ZWRTdHJpbmdGb3JEdXJhdGlvbihkb3VibGUpOwogCisjaWYgRU5B
QkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisgICAgc3RydWN0IENvbnRleHRNZW51
T3B0aW9ucyB7CisgICAgICAgIGJvb2wgaW5jbHVkZUF1ZGlvVHJhY2tzIHsgZmFsc2UgfTsKKyAg
ICAgICAgYm9vbCBpbmNsdWRlVGV4dFRyYWNrcyB7IGZhbHNlIH07CisgICAgfTsKKyAgICB2b2lk
IHNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoSFRNTEVsZW1lbnQmLCBDb250ZXh0TWVudU9w
dGlvbnMmJik7CisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMp
CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWVkaWFDb250cm9sc0hvc3QoSFRNTE1lZGlhRWxl
bWVudCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJv
bHMvTWVkaWFDb250cm9sc0hvc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNv
bnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmlkbAppbmRleCBjMmM3ZDA1ZDg2MTcwMmUzMWIzZGI2
NGVhMjBjNzJmOGZhODRlOTA2Li4xZjc0NGEwNDA2YTg1MDlkNjhkNTQ0MTRlZmUzYmQ1MzE0MjRj
ZTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVk
aWFDb250cm9sc0hvc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250
cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5pZGwKQEAgLTY0LDQgKzY0LDEzIEBAIGVudW0gRGV2aWNl
VHlwZSB7CiAgICAgW0VuYWJsZWRBdFJ1bnRpbWU9TW9kZXJuTWVkaWFDb250cm9sc10gcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyBzaGFkb3dSb290Q1NTVGV4dDsKICAgICBbRW5hYmxlZEF0
UnVudGltZT1Nb2Rlcm5NZWRpYUNvbnRyb2xzXSBET01TdHJpbmcgYmFzZTY0U3RyaW5nRm9ySWNv
bk5hbWVBbmRUeXBlKERPTVN0cmluZyBpY29uTmFtZSwgRE9NU3RyaW5nIGljb25UeXBlKTsKICAg
ICBbRW5hYmxlZEF0UnVudGltZT1Nb2Rlcm5NZWRpYUNvbnRyb2xzXSBET01TdHJpbmcgZm9ybWF0
dGVkU3RyaW5nRm9yRHVyYXRpb24odW5yZXN0cmljdGVkIGRvdWJsZSBkdXJhdGlvbkluU2Vjb25k
cyk7CisKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUywgRW5h
YmxlZEJ5U2V0dGluZz1NZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVzLCBFbmFibGVkQXRSdW50aW1l
PU1vZGVybk1lZGlhQ29udHJvbHNdIHVuZGVmaW5lZCBzaG93TWVkaWFDb250cm9sc0NvbnRleHRN
ZW51KEhUTUxFbGVtZW50IHRhcmdldCwgQ29udGV4dE1lbnVPcHRpb25zIG9wdGlvbnMpOworfTsK
KworWworICAgIENvbmRpdGlvbmFsPU1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMsCitdIGRp
Y3Rpb25hcnkgQ29udGV4dE1lbnVPcHRpb25zIHsKKyAgICBib29sZWFuIGluY2x1ZGVBdWRpb1Ry
YWNrczsKKyAgICBib29sZWFuIGluY2x1ZGVUZXh0VHJhY2tzOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhL3RyYWNrcy1z
dXBwb3J0LmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
bWVkaWEvdHJhY2tzLXN1cHBvcnQuanMKaW5kZXggYTg1OTA4NGI2ODk2ZGVkODZhMmU5Y2VlMTQw
MmVlMjYzZDY4OWEyYy4uODU5ZTJkYTk4MWI1NDI5Njc3YzZhODM2YmQ2M2U0NzhhNmFhNWJlMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
bWVkaWEvdHJhY2tzLXN1cHBvcnQuanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvbWVkaWEvdHJhY2tzLXN1cHBvcnQuanMKQEAgLTU2LDcgKzU2LDEw
IEBAIGNsYXNzIFRyYWNrc1N1cHBvcnQgZXh0ZW5kcyBNZWRpYUNvbnRyb2xsZXJTdXBwb3J0CiAK
ICAgICBidXR0b25XYXNQcmVzc2VkKGNvbnRyb2wpCiAgICAgewotICAgICAgICB0aGlzLm1lZGlh
Q29udHJvbGxlci5jb250cm9scy5zaG93VHJhY2tzUGFuZWwoKTsKKyAgICAgICAgaWYgKHRoaXMu
bWVkaWFDb250cm9sbGVyLmhvc3Q/LnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUpCisgICAg
ICAgICAgICB0aGlzLm1lZGlhQ29udHJvbGxlci5ob3N0LnNob3dNZWRpYUNvbnRyb2xzQ29udGV4
dE1lbnUoY29udHJvbC5lbGVtZW50LCB7aW5jbHVkZUF1ZGlvVHJhY2tzOiB0cnVlLCBpbmNsdWRl
VGV4dFRyYWNrczogdHJ1ZX0pOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLm1lZGlh
Q29udHJvbGxlci5jb250cm9scy5zaG93VHJhY2tzUGFuZWwoKTsKICAgICB9CiAKICAgICB0cmFj
a3NQYW5lbE51bWJlck9mU2VjdGlvbnMoKQpAQCAtMTMwLDcgKzEzMyw3IEBAIGNsYXNzIFRyYWNr
c1N1cHBvcnQgZXh0ZW5kcyBNZWRpYUNvbnRyb2xsZXJTdXBwb3J0CiAKICAgICBzeW5jQ29udHJv
bCgpCiAgICAgewotICAgICAgICB0aGlzLmNvbnRyb2wuZW5hYmxlZCA9ICh0aGlzLm1lZGlhQ29u
dHJvbGxlci5sYXlvdXRUcmFpdHMgJiBMYXlvdXRUcmFpdHMubWFjT1MpICYmICh0aGlzLl9jYW5Q
aWNrQXVkaW9UcmFja3MoKSB8fCB0aGlzLl9jYW5QaWNrVGV4dFRyYWNrcygpKTsKKyAgICAgICAg
dGhpcy5jb250cm9sLmVuYWJsZWQgPSAodGhpcy5tZWRpYUNvbnRyb2xsZXIubGF5b3V0VHJhaXRz
ICYgTGF5b3V0VHJhaXRzLm1hY09TIHx8IHRoaXMubWVkaWFDb250cm9sbGVyLmhvc3Q/LnNob3dN
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUpICYmICh0aGlzLl9jYW5QaWNrQXVkaW9UcmFja3MoKSB8
fCB0aGlzLl9jYW5QaWNrVGV4dFRyYWNrcygpKTsKICAgICB9CiAKICAgICAvLyBQcml2YXRlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggYjI1NjRhNmQ3Yjk2NWE3NjQ1NDdiN2I1ZWQ5MWU0YTUzY2Q2YTRiYS4uYjExNDYyNDJjOGUz
MGI4MDZmOGQ4M2I0MTJkZGYxZjdkZWMzYzhjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjkzMyw2ICsyOTMzLDcgQEAKIAkJ
OTRFODM5NTYxREZCMkJDNDAwN0JDNkE3IC8qIEpTQ1NTTmFtZXNwYWNlUnVsZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTRFODM5NTQxREZCMkJBNjAw
N0JDNkE3IC8qIEpTQ1NTTmFtZXNwYWNlUnVsZS5oICovOyB9OwogCQk5NTIwNzYwNTFGMjY3NUZF
MDA3RDJBQUIgLyogQ2FsbFRyYWNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTUyMDc2MDExRjI2NzVGOTAwN0QyQUFCIC8qIENhbGxUcmFjZXIuaCAq
LzsgfTsKIAkJOTUyMDc2MDYxRjI2NzVGRTAwN0QyQUFCIC8qIENhbGxUcmFjZXJUeXBlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUyMDc2MDIxRjI2
NzVGOTAwN0QyQUFCIC8qIENhbGxUcmFjZXJUeXBlcy5oICovOyB9OworCQk5NUExRTJFOTI1Q0M3
NUE5MDAyNjhDOEUgLyogTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVBMUUyRTcyNUNDNzVBODAwMjY4
QzhFIC8qIE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NURGOUQyNTI1MkJFREIyMDAwRDdGNDYg
LyogUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTVERjlEMjMyNTJCRUQ5OTAwMEQ3RjQ2IC8qIFBvaW50ZXJDaGFy
YWN0ZXJpc3RpY3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5NzA1OTk3QTEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hlY2tlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcwNTk5NzYxMDdEOTc1
MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzBCNzI4QTE0NEZGQUM2MDBGMDBBMzcgLyogRXZlbnRJ
bnRlcmZhY2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5NzBCNzI4OTE0NEZGQUM2MDBGMDBBMzcgLyogRXZlbnRJbnRlcmZhY2VzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTExNzUxLDYgKzExNzUy
LDcgQEAKIAkJOTUyMDc2MDAxRjI2NzVGOTAwN0QyQUFCIC8qIENhbGxUcmFjZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQ2FsbFRyYWNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTk1MjA3NjAxMUYyNjc1RjkwMDdEMkFBQiAvKiBDYWxsVHJhY2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENhbGxUcmFjZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUyMDc2MDIx
RjI2NzVGOTAwN0QyQUFCIC8qIENhbGxUcmFjZXJUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWxs
VHJhY2VyVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTVBMUUyRTcyNUND
NzVBODAwMjY4QzhFIC8qIE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NURGOUQyMzI1MkJFRDk5MDAwRDdGNDYgLyog
UG9pbnRlckNoYXJhY3RlcmlzdGljcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb2ludGVyQ2hhcmFjdGVy
aXN0aWNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MDU5OTc1MTA3RDk3NTIw
MEE1MEE3QyAvKiBQb2xpY3lDaGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFBvbGljeUNoZWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5NzA1OTk3NjEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hlY2tlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQb2xpY3lDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0yMjExMSw2ICsyMjExMyw3IEBACiAJCQkJNkI0RDQxMkMyMzk4M0Y4ODAw
MjQ5NEMyIC8qIExvZ2dlZEluU3RhdHVzLmNwcCAqLywKIAkJCQk2QjRENDEyQjIzOTgzRjg4MDAy
NDk0QzIgLyogTG9nZ2VkSW5TdGF0dXMuaCAqLywKIAkJCQk5MzFCQ0M2MDExMjRERkNCMDBCRTcw
REQgLyogTWVkaWFDYW5TdGFydExpc3RlbmVyLmggKi8sCisJCQkJOTVBMUUyRTcyNUNDNzVBODAw
MjY4QzhFIC8qIE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaCAqLywKIAkJCQk1MkUyQ0FG
QjE5RkYwMjA3MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNlci5oICovLAogCQkJCTQxM0UwMDc3MURC
MEU0REUwMDIzNDFEMiAvKiBNZW1vcnlSZWxlYXNlLmNwcCAqLywKIAkJCQk0MTNFMDA3ODFEQjBF
NERFMDAyMzQxRDIgLyogTWVtb3J5UmVsZWFzZS5oICovLApAQCAtMzM2OTEsNiArMzM2OTQsNyBA
QAogCQkJCTA3OEUwOTNBMTdEMTZFMUMwMDQyMEFBMSAvKiBNZWRpYUNvbnN0cmFpbnRzLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDREY2NUNDODE0NUIxRTc1MDBDNEM3QUEgLyogTWVkaWFDb250cm9s
bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREY2NUNDQTE0NUI0NDg4MDBDNEM3QUEgLyogTWVk
aWFDb250cm9sbGVySW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NUExRTJFOTI1Q0M3
NUE5MDAyNjhDOEUgLyogTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQ0RBQjZEMjkxN0M3REU2QzAwQzYwQjM0IC8qIE1lZGlhQ29udHJvbHNIb3N0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MTcyNTNBQjEzNTRCQkJDMDAzNjBGMkEgLyogTWVkaWFDb250
cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzRUVG
MzgyNTc5OUY3MzAwNjU2M0JCIC8qIE1lZGlhRGVjb2RpbmdDb25maWd1cmF0aW9uLmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxl
LnN0cmluZ3MgYi9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCmlu
ZGV4IDZmYzgzMDY0ZTdkZmIyNjQyMDQ4YTNlNTc4M2VhYmRkZDM0OGMzNzEuLjczOTYxMjI3Njkw
MmUzMGYwNzgwNGNkZjc4ZWQ1NjdlYjQ3M2M2ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKKysrIGIvU291cmNlL1dlYkNvcmUvZW4ubHBy
b2ovTG9jYWxpemFibGUuc3RyaW5ncwpAQCAtNDc4LDYgKzQ3OCw5IEBACiAvKiBOYW1lIG9mIGtl
eWNoYWluIGtleSBnZW5lcmF0ZWQgYnkgdGhlIEtFWUdFTiB0YWcgKi8KICJLZXkgZnJvbSAlQCIg
PSAiS2V5IGZyb20gJUAiOwogCisvKiBMYW5ndWFnZXMgbWVkaWEgY29udHJvbHMgY29udGV4dCBt
ZW51IHRpdGxlICovCisiTGFuZ3VhZ2VzIChNZWRpYSBDb250cm9scyBNZW51KSIgPSAiTGFuZ3Vh
Z2VzIjsKKwogLyogTGVhcm4gU3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0gKi8KICJMZWFybiBT
cGVsbGluZyIgPSAiTGVhcm4gU3BlbGxpbmciOwogCkBAIC04NDEsOCArODQ0LDggQEAKIC8qIFN1
YnN0aXR1dGlvbnMgY29udGV4dCBzdWItbWVudSBpdGVtICovCiAiU3Vic3RpdHV0aW9ucyIgPSAi
U3Vic3RpdHV0aW9ucyI7CiAKLS8qIE1lbnUgc2VjdGlvbiBoZWFkaW5nIGZvciBzdWJ0aXRsZXMg
Ki8KLSJTdWJ0aXRsZXMiID0gIlN1YnRpdGxlcyI7CisvKiBTdWJ0aXRsZXMgbWVkaWEgY29udHJv
bHMgY29udGV4dCBtZW51IHRpdGxlICovCisiU3VidGl0bGVzIChNZWRpYSBDb250cm9scyBNZW51
KSIgPSAiU3VidGl0bGVzIjsKIAogLyogQWNjZXNzaWJpbGl0eSBhbm5vdW5jZW1lbnQgZm9yIHRo
ZSBkYXRhIGxpc3Qgc3VnZ2VzdGlvbnMgZHJvcGRvd24gZ29pbmcgYXdheS4gKi8KICJTdWdnZXN0
aW9ucyBsaXN0IGhpZGRlbi4iID0gIlN1Z2dlc3Rpb25zIGxpc3QgaGlkZGVuLiI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCBjMzk3M2U3NjVjYWM1N2E5NmI0Y2QwYzMxNzk1YzMw
N2ZhNmZjZWQwLi44NDA1NGYyMmVmNDMxYWIxNDlkZDdlOGQ5MTIxNDRjMTIxMzFhNzcxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJJ
Y29uLmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJJbnB1dE1vZGUuaCIK
KyNpbmNsdWRlICJNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmgiCiAjaW5jbHVkZSAiTWVk
aWFQcm9kdWNlci5oIgogI2luY2x1ZGUgIlBvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaCIKICNpbmNs
dWRlICJQb3B1cE1lbnUuaCIKQEAgLTU1Nyw2ICs1NTgsMTAgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCByZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKEVsZW1lbnQmKSB7IH0KICNlbmRpZgogCisj
aWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisgICAgdmlydHVhbCB2b2lk
IHNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoRmxvYXRSZWN0JiYsIFZlY3RvcjxNZWRpYUNv
bnRyb2xzQ29udGV4dE1lbnVJdGVtPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1lZGlhQ29u
dHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0
aW9uSGFuZGxlcihNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjppbnZhbGlkSUQpOyB9Cisj
ZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisKIHByb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIH5DaHJvbWVDbGllbnQoKSA9IGRlZmF1bHQ7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL01lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xYTIxM2YzZWMxMzg0NTc2MzMyYjFiZGM1ODQ3MTE2MGM5MDRmZjUwCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVt
LmgKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRF
WFRfTUVOVVMpCisKKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworc3RydWN0IE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0geworICAgIHVzaW5n
IElEID0gdWludDY0X3Q7CisgICAgc3RhdGljIGNvbnN0ZXhwciBJRCBpbnZhbGlkSUQgPSAwOwor
CisgICAgSUQgaWQgeyBpbnZhbGlkSUQgfTsKKyAgICBTdHJpbmcgdGl0bGU7CisgICAgU3RyaW5n
IGljb247CisgICAgYm9vbCBpc0NoZWNrZWQgeyBmYWxzZSB9OworICAgIFZlY3RvcjxNZWRpYUNv
bnRyb2xzQ29udGV4dE1lbnVJdGVtPiBjaGlsZHJlbjsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4gZGVj
b2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIE1lZGlh
Q29udHJvbHNDb250ZXh0TWVudUl0ZW06OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
eworICAgIGVuY29kZXIgPDwgaWQ7CisgICAgZW5jb2RlciA8PCB0aXRsZTsKKyAgICBlbmNvZGVy
IDw8IGljb247CisgICAgZW5jb2RlciA8PCBpc0NoZWNrZWQ7CisgICAgZW5jb2RlciA8PCBjaGls
ZHJlbjsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPE1lZGlhQ29udHJv
bHNDb250ZXh0TWVudUl0ZW0+IE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQoreworI2RlZmluZSBERUNPREUobmFtZSwgdHlwZSkgXAorICAgIE9w
dGlvbmFsPHR5cGU+IG5hbWU7IFwKKyAgICBkZWNvZGVyID4+IG5hbWU7IFwKKyAgICBpZiAoIW5h
bWUpIFwKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsgXAorCisgICAgREVDT0RFKGlkLCBJ
RCk7CisgICAgREVDT0RFKHRpdGxlLCBTdHJpbmcpOworICAgIERFQ09ERShpY29uLCBTdHJpbmcp
OworICAgIERFQ09ERShpc0NoZWNrZWQsIGJvb2wpOworICAgIERFQ09ERShjaGlsZHJlbiwgVmVj
dG9yPE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+KTsKKworI3VuZGVmIERFQ09ERQorCisg
ICAgcmV0dXJuIHt7IFdURk1vdmUoKmlkKSwgV1RGTW92ZSgqdGl0bGUpLCBXVEZNb3ZlKCppY29u
KSwgV1RGTW92ZSgqaXNDaGVja2VkKSwgV1RGTW92ZSgqY2hpbGRyZW4pIH19OworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09O
VEVYVF9NRU5VUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXpl
ZFN0cmluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5j
cHAKaW5kZXggZmY0M2U5OGU2MWZhM2RkOGVhM2RjNWI4NjRmZDhjYjhlN2FhMDEzZS4uNGNjZDEx
YjY1MjUzMDM4YmQwY2I0NmZjNDE0NzU4MDgwYmMxY2FmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKQEAgLTEwNzgsMTEgKzEwNzgsNiBAQCBTdHJp
bmcgY2xpY2tUb0V4aXRGdWxsU2NyZWVuVGV4dCgpCiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkco
IkNsaWNrIHRvIEV4aXQgRnVsbCBTY3JlZW4iLCAiTWVzc2FnZSB0byBkaXNwbGF5IGluIGJyb3dz
ZXIgd2luZG93IHdoZW4gaW4gd2Via2l0IGZ1bGwgc2NyZWVuIG1vZGUuIik7CiB9CiAKLVN0cmlu
ZyB0ZXh0VHJhY2tTdWJ0aXRsZXNUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
U3VidGl0bGVzIiwgIk1lbnUgc2VjdGlvbiBoZWFkaW5nIGZvciBzdWJ0aXRsZXMiKTsKLX0KLQog
U3RyaW5nIHRleHRUcmFja09mZk1lbnVJdGVtVGV4dCgpCiB7CiAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoIk9mZiIsICJNZW51IGl0ZW0gbGFiZWwgZm9yIHRoZSB0cmFjayB0aGF0IHJlcHJlc2Vu
dHMgZGlzYWJsaW5nIGNsb3NlZCBjYXB0aW9ucyIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TG9jYWxpemVkU3RyaW5ncy5oCmluZGV4IDY5MTc2MjgxY2MzMmNjM2IyYjY5ZGYxNWI0ODUxN2Ji
MGEyYTIwNzUuLjg0NTFmNTE3MDEzZjUyM2UxYTI4ZDBiY2IwN2U2ODVkMjgyNjE0YWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKQEAgLTI5OCw3ICsyOTgs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBTdHJpbmcgY2xpY2tUb0V4aXRGdWxsU2Ny
ZWVuVGV4dCgpOwogCi0gICAgU3RyaW5nIHRleHRUcmFja1N1YnRpdGxlc1RleHQoKTsKICAgICBT
dHJpbmcgdGV4dFRyYWNrT2ZmTWVudUl0ZW1UZXh0KCk7CiAgICAgU3RyaW5nIHRleHRUcmFja0F1
dG9tYXRpY01lbnVJdGVtVGV4dCgpOwogICAgIFN0cmluZyB0ZXh0VHJhY2tOb0xhYmVsVGV4dCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDY0MmJhMDk3NzViMGVkZjcy
YTMzNDBiNTQwNjZjNDhjZTk4MTZiNTguLmY1OTAwNTcxZDNmNzAwNzZkYjZlN2QzMzczYTMyM2E4
ZDkwN2YxZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTQyLDYgKzQy
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0VkaXRvckNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRm9jdXNEaXJlY3Rpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lucHV0TW9kZS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvVmFsaWRhdGlvbkJ1YmJsZS5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5o
PgpAQCAtOTEsNiArOTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDb2xvcjsKIGNs
YXNzIEN1cnNvcjsKIGNsYXNzIEZsb2F0UXVhZDsKK2NsYXNzIEZsb2F0UmVjdDsKIGNsYXNzIFJl
Z2lvbjsKIGNsYXNzIFRleHRJbmRpY2F0b3I7CiBjbGFzcyBXZWJNZWRpYVNlc3Npb25NYW5hZ2Vy
OwpAQCAtNTE1LDYgKzUxNywxMCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJ
T04pCiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oY29uc3QgU2hhcmVh
YmxlQml0bWFwOjpIYW5kbGUmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkltYWdl
RXh0cmFjdGlvblJlc3VsdCYmKT4mJiBjb21wbGV0aW9uKSB7IGNvbXBsZXRpb24oeyB9KTsgfQog
I2VuZGlmCisKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyAgICB2
aXJ0dWFsIHZvaWQgc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShXZWJDb3JlOjpGbG9hdFJl
Y3QmJiwgVmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+JiYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRl
bTo6SUQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6
Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OmludmFsaWRJRCk7IH0KKyNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKICAgICAKICNpZiBQTEFURk9STShN
QUMpCiAgICAgdmlydHVhbCB2b2lkIGRpZFBlcmZvcm1JbW1lZGlhdGVBY3Rpb25IaXRUZXN0KGNv
bnN0IFdlYkhpdFRlc3RSZXN1bHREYXRhJiwgYm9vbCBjb250ZW50UHJldmVudHNEZWZhdWx0LCBB
UEk6Ok9iamVjdCopID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CmluZGV4IGY1MmRjNDY5ZDE2OGNiNDk0OGE3YTdjOWU2ZTY4NzU4MGNiNDBmZDEuLjY4NTRhYWFj
Yjk4ZmNlZDhiMDNlOTY0NGI1YjgxYzY1MmI0MjYxMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtODI5NCw2ICs4Mjk0LDE2IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxl
JiBpbWFnZURhCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRf
TUVOVVMpCisKK3ZvaWQgV2ViUGFnZVByb3h5OjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51
KEZsb2F0UmVjdCYmIHRhcmdldEZyYW1lLCBWZWN0b3I8TWVkaWFDb250cm9sc0NvbnRleHRNZW51
SXRlbT4mJiBpdGVtcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNZWRpYUNvbnRyb2xzQ29udGV4
dE1lbnVJdGVtOjpJRCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgcGFnZUNsaWVudCgp
LnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoV1RGTW92ZSh0YXJnZXRGcmFtZSksIFdURk1v
dmUoaXRlbXMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKKyNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKworCiB2b2lkIFdlYlBhZ2VQcm94
eTo6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3QgcmVxdWVzdElELCBjb25z
dCBTdHJpbmcmIG9yaWdpblN0cmluZykKIHsKICAgICBpZiAoIWlzUmVxdWVzdElEVmFsaWQocmVx
dWVzdElEKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggN2IxOGIx
MjljOTE3ZDRkYjYwN2U4NTIyZWQwMGZmZjc2MTBhZjhjNi4uM2NlODY0ZDQ3OWRiNTE1OWIxMWIy
Mjg5YWJmMTc2YjY4MzRhM2YxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKQEAgLTkyLDYgKzkyLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0lucHV0TW9kZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTGF5b3V0UG9pbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xheW91dFNp
emUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRp
Zmllci5oPgpAQCAtMTYxOSw2ICsxNjIwLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RJ
bWFnZUV4dHJhY3Rpb24oY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCYmKT4mJik7CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorICAgIHZvaWQg
c2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShXZWJDb3JlOjpGbG9hdFJlY3QmJiwgVmVjdG9y
PFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+JiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6SUQpPiYmKTsK
KyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKwogICAgIHN0
YXRpYyBXZWJQYWdlUHJveHkqIG5vbkVwaGVtZXJhbFdlYlBhZ2VQcm94eSgpOwogCiAjaWYgRU5B
QkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA0MWI3MDRmNGViNTkxNDFkOTgxMmMxMjgyYjBk
MDVlMWFhNzU5N2IxLi4xMDZlOWRmZmE1MDM1M2M1YzYzMTRlZTNkMjdkNDhjYjFkNzg1MTAxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CkBAIC0yNDIsNiArMjQyLDEwIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgUmVx
dWVzdEltYWdlRXh0cmFjdGlvbihXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGltYWdl
RGF0YSkgLT4gKHN0cnVjdCBXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQgcmVzdWx0KSBB
c3luYwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykK
KyAgICBTaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJn
ZXRGcmFtZSwgVmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+IGl0
ZW1zKSAtPiAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6SUQgc2VsZWN0
ZWRJdGVtSUQpIEFzeW5jCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRf
TUVOVVMpCisKICNpZiBIQVZFKFRPVUNIX0JBUikKICAgICBTZXRJc1RvdWNoQmFyVXBkYXRlU3Vw
cmVzc2VkRm9ySGlkZGVuQ29udGVudEVkaXRhYmxlKGJvb2wgaXNUb3VjaEJhclVwZGF0ZVN1cHJl
c3NlZCkKICAgICBTZXRJc05ldmVyUmljaGx5RWRpdGFibGVGb3JUb3VjaEJhcihib29sIGlzTmV2
ZXJSaWNobHlFZGl0YWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLmgKaW5kZXggMzgwMWI1MmM2YzVhYTllNDc2NjI0MTE5NmQxMTA3M2MwMDZl
MTNmYy4uNmRhMGJmYjhhYWI3OTAwZDE3MDVhNDc1YTc2YTc3YTIxZDg5ODVjOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTI2Myw2
ICsyNjMsMTAgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0TW91c2VFdmVudFBvbGljeShXZWJD
b3JlOjpNb3VzZUV2ZW50UG9saWN5KSBmaW5hbDsKIAorI2lmIEVOQUJMRShNRURJQV9DT05UUk9M
U19DT05URVhUX01FTlVTKQorICAgIHZvaWQgc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShX
ZWJDb3JlOjpGbG9hdFJlY3QmJiwgVmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0
TWVudUl0ZW0+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFDb250cm9s
c0NvbnRleHRNZW51SXRlbTo6SUQpPiYmKSBmaW5hbDsKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFf
Q09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKwogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQp
CiAgICAgdm9pZCB3cml0ZVByb21pc2VkQXR0YWNobWVudFRvUGFzdGVib2FyZChXZWJDb3JlOjpQ
cm9taXNlZEF0dGFjaG1lbnRJbmZvJiYpIGZpbmFsOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggMmU0NDdjNjBmMmNi
Y2I5NGEyNGM5Y2YxMDc1YjdjNzc4OGY0ZWUyZS4uMDBjZGYxM2JhOTJiZDA2YzBjMjkxNzVmNDFj
MmNkNjFjOTU1ZTEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5tbQpAQCAtOTY2LDYgKzk2NiwxMyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBs
OjpzZXRNb3VzZUV2ZW50UG9saWN5KFdlYkNvcmU6Ok1vdXNlRXZlbnRQb2xpY3kgcG9saWN5KQog
I2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKK3Zv
aWQgUGFnZUNsaWVudEltcGw6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoRmxvYXRSZWN0
JiYgdGFyZ2V0RnJhbWUsIFZlY3RvcjxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiYmIGl0
ZW1zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06
OklEKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBbbV9jb250ZW50VmlldyBfc2hvd01l
ZGlhQ29udHJvbHNDb250ZXh0TWVudTpXVEZNb3ZlKHRhcmdldEZyYW1lKSBpdGVtczpXVEZNb3Zl
KGl0ZW1zKSBjb21wbGV0aW9uSGFuZGxlcjpXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV07Cit9
CisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisKICNpZiBI
QVZFKFVJU0NST0xMVklFV19BU1lOQ0hST05PVVNfU0NST0xMX0VWRU5UX0hBTkRMSU5HKQogdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6aGFuZGxlQXN5bmNocm9ub3VzQ2FuY2VsYWJsZVNjcm9sbEV2ZW50
KFVJU2Nyb2xsVmlldyAqc2Nyb2xsVmlldywgVUlTY3JvbGxFdmVudCAqc2Nyb2xsRXZlbnQsIHZv
aWQgKF5jb21wbGV0aW9uKShCT09MIGhhbmRsZWQpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmgKaW5kZXggZDczMDVmYTVh
NzNiOTE0ZTQ1OGE3M2VkYzQyMWQzNjVkN2IxZTI0OC4uN2E1MDdjNWI4MDdlZmVjMWE3ODg0Njg1
ZGE0MGIxN2FmNjAyZTc0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCkBAIC0yOCw4ICsyOCwxMyBAQAogI2ltcG9ydCAi
R2VzdHVyZVR5cGVzLmgiCiAjaW1wb3J0ICJXS0FjdGlvblNoZWV0LmgiCiAjaW1wb3J0IDxVSUtp
dC9VSVBvcG92ZXJDb250cm9sbGVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL01lZGlhQ29udHJvbHND
b250ZXh0TWVudUl0ZW0uaD4KICNpbXBvcnQgPHBhbC9zcGkvaW9zL0RhdGFEZXRlY3RvcnNVSVNQ
SS5oPgotI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL0ZvcndhcmQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgRmxvYXRSZWN0OworfQogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKQEAgLTY5LDYgKzc0LDggQEAgdHlwZWRlZiBO
U19FTlVNKE5TSW50ZWdlciwgX1dLRWxlbWVudEFjdGlvblR5cGUpOwogI2lmIFVTRShVSUNPTlRF
WFRNRU5VKQogLSAoVUlUYXJnZXRlZFByZXZpZXcgKiljcmVhdGVUYXJnZXRlZENvbnRleHRNZW51
SGludEZvckFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNz
aXN0YW50OwogLSAodm9pZClyZW1vdmVDb250ZXh0TWVudVZpZXdJZlBvc3NpYmxlRm9yQWN0aW9u
U2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQ7CistICh2
b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50RGlkU2hvd0NvbnRleHRNZW51OihXS0FjdGlvblNoZWV0
QXNzaXN0YW50ICopYXNzaXN0YW50OworLSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFudERpZERp
c21pc3NDb250ZXh0TWVudTooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudDsKICNl
bmRpZgogLSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFu
dCAqKWFzc2lzdGFudCBzaGFyZUVsZW1lbnRXaXRoSW1hZ2U6KFVJSW1hZ2UgKilpbWFnZSByZWN0
OihDR1JlY3QpYm91bmRpbmdSZWN0OwogI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQpAQCAt
NzcsMTEgKzg0LDE0IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0VsZW1lbnRBY3Rp
b25UeXBlKTsKIC0gKEJPT0wpYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Np
c3RhbnQgKilhc3Npc3RhbnQgc2hvdWxkSW5jbHVkZVJldmVhbEltYWdlQWN0aW9uRm9yRWxlbWVu
dDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50OwogLSAodm9pZClhY3Rpb25TaGVl
dEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBoYW5kbGVSZXZl
YWxJbWFnZTooVUlJbWFnZSAqKWltYWdlIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlOwogI2VuZGlm
Ci0KIEBlbmQKIAotI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikgJiYgVVNFKFVJQ09OVEVYVE1F
TlUpCi1AaW50ZXJmYWNlIFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgOiBOU09iamVjdCA8V0tBY3Rp
b25TaGVldERlbGVnYXRlLCBERERldGVjdGlvbkNvbnRyb2xsZXJJbnRlcmFjdGlvbkRlbGVnYXRl
LCBVSUNvbnRleHRNZW51SW50ZXJhY3Rpb25EZWxlZ2F0ZT4KKyNpZiBVU0UoVUlDT05URVhUTUVO
VSkKK0BpbnRlcmZhY2UgV0tBY3Rpb25TaGVldEFzc2lzdGFudCA6IE5TT2JqZWN0IDxXS0FjdGlv
blNoZWV0RGVsZWdhdGUsCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorREREZXRlY3Rpb25D
b250cm9sbGVySW50ZXJhY3Rpb25EZWxlZ2F0ZSwKKyNlbmRpZgorVUlDb250ZXh0TWVudUludGVy
YWN0aW9uRGVsZWdhdGU+CiAtIChCT09MKWhhc0NvbnRleHRNZW51SW50ZXJhY3Rpb247CiAjZWxz
ZQogQGludGVyZmFjZSBXS0FjdGlvblNoZWV0QXNzaXN0YW50IDogTlNPYmplY3QgPFdLQWN0aW9u
U2hlZXREZWxlZ2F0ZT4KQEAgLTkyLDE3ICsxMDIsMjYgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50
ZWdlciwgX1dLRWxlbWVudEFjdGlvblR5cGUpOwogLSAodm9pZClzaG93TGlua1NoZWV0OwogLSAo
dm9pZClzaG93SW1hZ2VTaGVldDsKIC0gKHZvaWQpc2hvd0RhdGFEZXRlY3RvcnNVSUZvclBvc2l0
aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9z
aXRpb24mKXBvc2l0aW9uSW5mb3JtYXRpb247CisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NP
TlRFWFRfTUVOVVMpCistICh2b2lkKXNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnU6KFdlYkNv
cmU6OkZsb2F0UmVjdCYmKXRhcmdldEZyYW1lIGl0ZW1zOihWZWN0b3I8V2ViQ29yZTo6TWVkaWFD
b250cm9sc0NvbnRleHRNZW51SXRlbT4mJilpdGVtcyBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJ
RCk+JiYpY29tcGxldGlvbkhhbmRsZXI7CisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xT
X0NPTlRFWFRfTUVOVVMpCiAtICh2b2lkKWNsZWFudXBTaGVldDsKIC0gKHZvaWQpdXBkYXRlU2hl
ZXRQb3NpdGlvbjsKIC0gKFJldGFpblB0cjxOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4+KWRl
ZmF1bHRBY3Rpb25zRm9yTGlua1NoZWV0OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1l
bnRJbmZvOwogLSAoUmV0YWluUHRyPE5TQXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPj4pZGVmYXVs
dEFjdGlvbnNGb3JJbWFnZVNoZWV0OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJ
bmZvOwogLSAoQk9PTClpc1Nob3dpbmdTaGVldDsKIC0gKHZvaWQpaW50ZXJhY3Rpb25EaWRTdGFy
dFdpdGhQb3NpdGlvbkluZm9ybWF0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3Jt
YXRpb25BdFBvc2l0aW9uJilpbmZvcm1hdGlvbjsKLS0gKE5TQXJyYXkgKiljdXJyZW50QXZhaWxh
YmxlQWN0aW9uVGl0bGVzOwogLSAodm9pZCloYW5kbGVFbGVtZW50QWN0aW9uV2l0aFR5cGU6KF9X
S0VsZW1lbnRBY3Rpb25UeXBlKXR5cGUgZWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8g
KillbGVtZW50IG5lZWRzSW50ZXJhY3Rpb246KEJPT0wpbmVlZHNJbnRlcmFjdGlvbjsKICNpZiBV
U0UoVUlDT05URVhUTUVOVSkKIC0gKE5TQXJyYXk8VUlNZW51RWxlbWVudCAqPiAqKXN1Z2dlc3Rl
ZEFjdGlvbnNGb3JDb250ZXh0TWVudVdpdGhQb3NpdGlvbkluZm9ybWF0aW9uOihjb25zdCBXZWJL
aXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilwb3NpdGlvbkluZm9ybWF0aW9u
OwogI2VuZGlmCiBAZW5kCiAKK0BpbnRlcmZhY2UgV0tBY3Rpb25TaGVldEFzc2lzdGFudCAoV0tU
ZXN0aW5nKQorLSAoTlNBcnJheSAqKWN1cnJlbnRseUF2YWlsYWJsZUFjdGlvblRpdGxlczsKKyNp
ZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKy0gKE5TQXJyYXkgKiljdXJy
ZW50bHlBdmFpbGFibGVNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtczsKKyNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKK0BlbmQKKwogI2VuZGlmIC8vIFBM
QVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tCmluZGV4IGRkNDdkNjdkZDZjYzE0MjYzMzQzYjNj
YjIyOTc3ZmU3MzM3MTI5NjQuLmY1NGMyOWVkNDkzZjA4YzE1YjkzMDFlZDcwOTFkN2QxNGVmNjcw
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0
QXNzaXN0YW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNo
ZWV0QXNzaXN0YW50Lm1tCkBAIC0zOSwxMiArMzksMTcgQEAKICNpbXBvcnQgIl9XS0VsZW1lbnRB
Y3Rpb25JbnRlcm5hbC5oIgogI2ltcG9ydCA8VUlLaXQvVUlWaWV3Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0RhdGFEZXRlY3Rpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGF0aFV0
aWxpdGllcy5oPgorI2ltcG9ydCA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW1wb3J0IDx3
dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKyNpbXBvcnQgPHd0
Zi9WZWN0b3IuaD4KICNpbXBvcnQgPHd0Zi9XZWFrT2JqQ1B0ci5oPgogI2ltcG9ydCA8d3RmL2Nv
Y29hL0VudGl0bGVtZW50cy5oPgogI2ltcG9ydCA8d3RmL2NvY29hL05TVVJMRXh0cmFzLmg+Cisj
aW1wb3J0IDx3dGYvY29jb2EvVmVjdG9yQ29jb2EuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogI2ltcG9ydCA8d3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmg+CiAKQEAgLTEw
MCw2ICsxMDUsMTIgQEAgQGltcGxlbWVudGF0aW9uIFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgewog
I2lmIFVTRShVSUNPTlRFWFRNRU5VKQogICAgIFJldGFpblB0cjxVSUNvbnRleHRNZW51SW50ZXJh
Y3Rpb24+IF9kYXRhRGV0ZWN0b3JDb250ZXh0TWVudUludGVyYWN0aW9uOwogI2VuZGlmCisjaWYg
RU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisgICAgUmV0YWluUHRyPFVJQ29u
dGV4dE1lbnVJbnRlcmFjdGlvbj4gX21lZGlhQ29udHJvbHNDb250ZXh0TWVudUludGVyYWN0aW9u
OworICAgIFJldGFpblB0cjxVSU1lbnU+IF9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnU7CisgICAg
V2ViQ29yZTo6RmxvYXRSZWN0IF9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVUYXJnZXRGcmFtZTsK
KyAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0
TWVudUl0ZW06OklEKT4gX21lZGlhQ29udHJvbHNDb250ZXh0TWVudUNhbGxiYWNrOworI2VuZGlm
IC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQogICAgIFdlYWtPYmpDUHRy
PFVJVmlldz4gX3ZpZXc7CiAgICAgQk9PTCBfbmVlZHNMaW5rSW5kaWNhdG9yOwogICAgIEJPT0wg
X2lzUHJlc2VudGluZ0REVXNlckludGVyZmFjZTsKQEAgLTMxNSwxOSArMzI2LDYgQEAgLSAodm9p
ZClpbnRlcmFjdGlvbkRpZFN0YXJ0V2l0aFBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktp
dDo6SW50ZXJhY3Rpb25JbmYKICNlbmRpZgogfQogCi0tIChOU0FycmF5ICopY3VycmVudEF2YWls
YWJsZUFjdGlvblRpdGxlcwotewotICAgIGlmICghX2ludGVyYWN0aW9uU2hlZXQpCi0gICAgICAg
IHJldHVybiBAW107Ci0gICAgCi0gICAgTlNNdXRhYmxlQXJyYXkgKmFycmF5ID0gW05TTXV0YWJs
ZUFycmF5IGFycmF5XTsKLSAgICAKLSAgICBmb3IgKFVJQWxlcnRBY3Rpb24gKmFjdGlvbiBpbiBf
aW50ZXJhY3Rpb25TaGVldC5nZXQoKS5hY3Rpb25zKQotICAgICAgICBbYXJyYXkgYWRkT2JqZWN0
OmFjdGlvbi50aXRsZV07Ci0gICAgCi0gICAgcmV0dXJuIGFycmF5OwotfQotCiAtIChPcHRpb25h
bDxXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uPiljdXJyZW50UG9zaXRp
b25JbmZvcm1hdGlvbgogewogICAgIHJldHVybiBfcG9zaXRpb25JbmZvcm1hdGlvbjsKQEAgLTY1
MywzMCArNjUxLDcwIEBAIC0gKHZvaWQpc2hvd0xpbmtTaGVldAogICAgICAgICBbc2VsZiBjbGVh
bnVwU2hlZXRdOwogfQogCi0jaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKSAmJiBVU0UoVUlDT05U
RVhUTUVOVSkKKyNpZiBVU0UoVUlDT05URVhUTUVOVSkKKwogLSAodm9pZClyZW1vdmVDb250ZXh0
TWVudUludGVyYWN0aW9uCiB7CisgICAgQk9PTCBkaWRSZW1vdmUgPSBOTzsKKworI2lmIEVOQUJM
RShEQVRBX0RFVEVDVElPTikKICAgICBpZiAoX2RhdGFEZXRlY3RvckNvbnRleHRNZW51SW50ZXJh
Y3Rpb24pIHsKICAgICAgICAgW192aWV3IHJlbW92ZUludGVyYWN0aW9uOl9kYXRhRGV0ZWN0b3JD
b250ZXh0TWVudUludGVyYWN0aW9uLmdldCgpXTsKICAgICAgICAgX2RhdGFEZXRlY3RvckNvbnRl
eHRNZW51SW50ZXJhY3Rpb24gPSBuaWw7Ci0gICAgICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IocmVtb3ZlQ29udGV4dE1lbnVWaWV3SWZQb3NzaWJsZUZvckFj
dGlvblNoZWV0QXNzaXN0YW50OildKQotICAgICAgICAgICAgcmV0dXJuIFtfZGVsZWdhdGUgcmVt
b3ZlQ29udGV4dE1lbnVWaWV3SWZQb3NzaWJsZUZvckFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGZd
OworICAgICAgICBkaWRSZW1vdmUgPSBZRVM7CiAgICAgfQorI2VuZGlmIC8vIEVOQUJMRShEQVRB
X0RFVEVDVElPTikKKworI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQor
ICAgIGlmIChfbWVkaWFDb250cm9sc0NvbnRleHRNZW51SW50ZXJhY3Rpb24pIHsKKyAgICAgICAg
W192aWV3IHJlbW92ZUludGVyYWN0aW9uOl9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJbnRlcmFj
dGlvbi5nZXQoKV07CisgICAgICAgIF9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJbnRlcmFjdGlv
biA9IG5pbDsKKyAgICAgICAgZGlkUmVtb3ZlID0gWUVTOworCisgICAgICAgIF9tZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnUuY2xlYXIoKTsKKyAgICAgICAgX21lZGlhQ29udHJvbHNDb250ZXh0TWVu
dVRhcmdldEZyYW1lID0geyB9OworICAgICAgICBpZiAoYXV0byBtZWRpYUNvbnRyb2xzQ29udGV4
dE1lbnVDYWxsYmFjayA9IHN0ZDo6ZXhjaGFuZ2UoX21lZGlhQ29udHJvbHNDb250ZXh0TWVudUNh
bGxiYWNrLCB7IH0pKQorICAgICAgICAgICAgbWVkaWFDb250cm9sc0NvbnRleHRNZW51Q2FsbGJh
Y2soV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6aW52YWxpZElEKTsKKyAg
ICB9CisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisKKyAg
ICBpZiAoZGlkUmVtb3ZlICYmIFtfZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihyZW1vdmVDb250ZXh0TWVudVZpZXdJZlBvc3NpYmxlRm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6
KV0pCisgICAgICAgIFtfZGVsZWdhdGUgcmVtb3ZlQ29udGV4dE1lbnVWaWV3SWZQb3NzaWJsZUZv
ckFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGZdOwogfQogCiAtICh2b2lkKWVuc3VyZUNvbnRleHRN
ZW51SW50ZXJhY3Rpb24KIHsKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAgICAgaWYgKCFf
ZGF0YURldGVjdG9yQ29udGV4dE1lbnVJbnRlcmFjdGlvbikgewogICAgICAgICBfZGF0YURldGVj
dG9yQ29udGV4dE1lbnVJbnRlcmFjdGlvbiA9IGFkb3B0TlMoW1tVSUNvbnRleHRNZW51SW50ZXJh
Y3Rpb24gYWxsb2NdIGluaXRXaXRoRGVsZWdhdGU6c2VsZl0pOwogICAgICAgICBbX3ZpZXcgYWRk
SW50ZXJhY3Rpb246X2RhdGFEZXRlY3RvckNvbnRleHRNZW51SW50ZXJhY3Rpb24uZ2V0KCldOwog
ICAgIH0KKyNlbmRpZiAvLyBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisKKyNpZiBFTkFCTEUoTUVE
SUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyAgICBpZiAoIV9tZWRpYUNvbnRyb2xzQ29udGV4
dE1lbnVJbnRlcmFjdGlvbikgeworICAgICAgICBfbWVkaWFDb250cm9sc0NvbnRleHRNZW51SW50
ZXJhY3Rpb24gPSBhZG9wdE5TKFtbVUlDb250ZXh0TWVudUludGVyYWN0aW9uIGFsbG9jXSBpbml0
V2l0aERlbGVnYXRlOnNlbGZdKTsKKyAgICAgICAgW192aWV3IGFkZEludGVyYWN0aW9uOl9tZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnVJbnRlcmFjdGlvbi5nZXQoKV07CisgICAgfQorI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQogfQogCiAtIChCT09MKWhhc0Nv
bnRleHRNZW51SW50ZXJhY3Rpb24KIHsKLSAgICByZXR1cm4gISFfZGF0YURldGVjdG9yQ29udGV4
dE1lbnVJbnRlcmFjdGlvbjsKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisgICAgaWYgKF9k
YXRhRGV0ZWN0b3JDb250ZXh0TWVudUludGVyYWN0aW9uKQorICAgICAgICByZXR1cm4gWUVTOwor
I2VuZGlmIC8vIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKworI2lmIEVOQUJMRShNRURJQV9DT05U
Uk9MU19DT05URVhUX01FTlVTKQorICAgIGlmIChfbWVkaWFDb250cm9sc0NvbnRleHRNZW51SW50
ZXJhY3Rpb24pCisgICAgICAgIHJldHVybiBZRVM7CisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NP
TlRST0xTX0NPTlRFWFRfTUVOVVMpCisKKyAgICByZXR1cm4gTk87CiB9Ci0jZW5kaWYKKworI2Vu
ZGlmIC8vIFVTRShVSUNPTlRFWFRNRU5VKQogCiAtICh2b2lkKXNob3dEYXRhRGV0ZWN0b3JzVUlG
b3JQb3NpdGlvbkluZm9ybWF0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uJilwb3NpdGlvbkluZm9ybWF0aW9uCiB7CkBAIC03MzgsNiArNzc2LDU3IEBA
IC0gKHZvaWQpc2hvd0RhdGFEZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0
IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvCiAjZW5kaWYgLy8gRU5BQkxFKERBVEFfREVURUNUSU9O
KQogfQogCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisKKy0gKE5T
QXJyYXk8VUlNZW51RWxlbWVudCAqPiAqKV91aU1lbnVFbGVtZW50c0Zvck1lZGlhQ29udHJvbENv
bnRleHRNZW51SXRlbXM6KFZlY3RvcjxXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJ
dGVtPiYmKSBpdGVtcworeworICAgIHJldHVybiBjcmVhdGVOU0FycmF5KGl0ZW1zLCBbJl0gKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0mIGl0ZW0pIC0+IFVJTWVudUVsZW1l
bnQgKiB7CisgICAgICAgIFVJSW1hZ2UgKmltYWdlID0gIWl0ZW0uaWNvbi5pc0VtcHR5KCkgPyBb
VUlJbWFnZSBzeXN0ZW1JbWFnZU5hbWVkOldURk1vdmUoaXRlbS5pY29uKV0gOiBuaWw7CisKKyAg
ICAgICAgaWYgKCFpdGVtLmNoaWxkcmVuLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybiBb
VUlNZW51IG1lbnVXaXRoVGl0bGU6V1RGTW92ZShpdGVtLnRpdGxlKSBpbWFnZTppbWFnZSBpZGVu
dGlmaWVyOm5pbCBvcHRpb25zOjAgY2hpbGRyZW46W3NlbGYgX3VpTWVudUVsZW1lbnRzRm9yTWVk
aWFDb250cm9sQ29udGV4dE1lbnVJdGVtczpXVEZNb3ZlKGl0ZW0uY2hpbGRyZW4pXV07CisKKyAg
ICAgICAgYXV0byBzZWxlY3RlZEl0ZW1JRCA9IGl0ZW0uaWQ7CisgICAgICAgIFVJQWN0aW9uICph
Y3Rpb24gPSBbVUlBY3Rpb24gYWN0aW9uV2l0aFRpdGxlOldURk1vdmUoaXRlbS50aXRsZSkgaW1h
Z2U6aW1hZ2UgaWRlbnRpZmllcjpuaWwgaGFuZGxlcjpbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxX
S0FjdGlvblNoZWV0QXNzaXN0YW50PihzZWxmKSwgc2VsZWN0ZWRJdGVtSURdIChVSUFjdGlvbiAq
KSB7CisgICAgICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKKyAgICAg
ICAgICAgIGlmICghc3Ryb25nU2VsZikKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgICAgIHN0cm9uZ1NlbGYtPl9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVDYWxsYmFjayhzZWxl
Y3RlZEl0ZW1JRCk7CisgICAgICAgIH1dOworICAgICAgICBpZiAoaXRlbS5pc0NoZWNrZWQpCisg
ICAgICAgICAgICBhY3Rpb24uc3RhdGUgPSBVSU1lbnVFbGVtZW50U3RhdGVPbjsKKyAgICAgICAg
cmV0dXJuIGFjdGlvbjsKKyAgICB9KS5hdXRvcmVsZWFzZSgpOworfQorCistICh2b2lkKXNob3dN
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnU6KFdlYkNvcmU6OkZsb2F0UmVjdCYmKXRhcmdldEZyYW1l
IGl0ZW1zOihWZWN0b3I8V2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4mJilp
dGVtcyBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+JiYpY29tcGxldGlvbkhhbmRsZXIKK3sK
KyAgICBBU1NFUlQoIV9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJbnRlcmFjdGlvbik7CisgICAg
QVNTRVJUKCFfbWVkaWFDb250cm9sc0NvbnRleHRNZW51KTsKKyAgICBBU1NFUlQoIV9tZWRpYUNv
bnRyb2xzQ29udGV4dE1lbnVDYWxsYmFjayk7CisKKyAgICBTdHJpbmcgbWVudVRpdGxlOworICAg
IGlmIChpdGVtcy5zaXplKCkgPT0gMSkgeworICAgICAgICBtZW51VGl0bGUgPSBXVEZNb3ZlKGl0
ZW1zWzBdLnRpdGxlKTsKKyAgICAgICAgaXRlbXMgPSBXVEZNb3ZlKGl0ZW1zWzBdLmNoaWxkcmVu
KTsKKyAgICB9CisKKyAgICBpZiAoaXRlbXMuaXNFbXB0eSgpKSB7CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OmludmFsaWRJ
RCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBfbWVkaWFDb250cm9sc0NvbnRleHRN
ZW51ID0gW1VJTWVudSBtZW51V2l0aFRpdGxlOldURk1vdmUobWVudVRpdGxlKSBpbWFnZTpuaWwg
aWRlbnRpZmllcjpuaWwgb3B0aW9uczowIGNoaWxkcmVuOltzZWxmIF91aU1lbnVFbGVtZW50c0Zv
ck1lZGlhQ29udHJvbENvbnRleHRNZW51SXRlbXM6V1RGTW92ZShpdGVtcyldXTsKKyAgICBfbWVk
aWFDb250cm9sc0NvbnRleHRNZW51VGFyZ2V0RnJhbWUgPSBXVEZNb3ZlKHRhcmdldEZyYW1lKTsK
KyAgICBfbWVkaWFDb250cm9sc0NvbnRleHRNZW51Q2FsbGJhY2sgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKTsKKworICAgIFtzZWxmIGVuc3VyZUNvbnRleHRNZW51SW50ZXJhY3Rpb25dOwor
ICAgIFtfbWVkaWFDb250cm9sc0NvbnRleHRNZW51SW50ZXJhY3Rpb24gX3ByZXNlbnRNZW51QXRM
b2NhdGlvbjpfbWVkaWFDb250cm9sc0NvbnRleHRNZW51VGFyZ2V0RnJhbWUuY2VudGVyKCldOwor
fQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisKICNp
ZiBVU0UoVUlDT05URVhUTUVOVSkKIAogc3RhdGljIE5TQXJyYXk8VUlNZW51RWxlbWVudCAqPiAq
bWVudUVsZW1lbnRzRnJvbURlZmF1bHRBY3Rpb25zKFJldGFpblB0cjxOU0FycmF5PiBkZWZhdWx0
RWxlbWVudEFjdGlvbnMsIFJldGFpblB0cjxfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbz4gZWxlbWVu
dEluZm8pCkBAIC03NTksNDggKzg0OCw4MSBAQCAtIChOU0FycmF5PFVJTWVudUVsZW1lbnQgKj4g
KilzdWdnZXN0ZWRBY3Rpb25zRm9yQ29udGV4dE1lbnVXaXRoUG9zaXRpb25JbmZvcm1hdAogICAg
IHJldHVybiBtZW51RWxlbWVudHNGcm9tRGVmYXVsdEFjdGlvbnMoZGVmYXVsdEFjdGlvbnNGcm9t
QXNzaXN0YW50LCBlbGVtZW50SW5mbyk7CiB9CiAKLSNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04p
CiAKIC0gKFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uICopY29udGV4dE1lbnVJbnRlcmFjdGlv
bjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gY29uZmlndXJhdGlvbkZv
ck1lbnVBdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uCiB7Ci0gICAgREREZXRlY3Rpb25Db250
cm9sbGVyICpjb250cm9sbGVyID0gW2dldERERGV0ZWN0aW9uQ29udHJvbGxlckNsYXNzKCkgc2hh
cmVkQ29udHJvbGxlcl07Ci0gICAgTlNEaWN0aW9uYXJ5ICpjb250ZXh0ID0gbmlsOwotICAgIE5T
U3RyaW5nICp0ZXh0QXRTZWxlY3Rpb24gPSBuaWw7CisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9O
KQorICAgIGlmIChpbnRlcmFjdGlvbiA9PSBfZGF0YURldGVjdG9yQ29udGV4dE1lbnVJbnRlcmFj
dGlvbikgeworICAgICAgICBERERldGVjdGlvbkNvbnRyb2xsZXIgKmNvbnRyb2xsZXIgPSBbZ2V0
REREZXRlY3Rpb25Db250cm9sbGVyQ2xhc3MoKSBzaGFyZWRDb250cm9sbGVyXTsKKyAgICAgICAg
TlNEaWN0aW9uYXJ5ICpjb250ZXh0ID0gbmlsOworICAgICAgICBOU1N0cmluZyAqdGV4dEF0U2Vs
ZWN0aW9uID0gbmlsOwogCi0gICAgaWYgKFtfZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3RvcihkYXRhRGV0ZWN0aW9uQ29udGV4dEZvckFjdGlvblNoZWV0QXNzaXN0YW50OnBvc2l0
aW9uSW5mb3JtYXRpb246KV0pCi0gICAgICAgIGNvbnRleHQgPSBbX2RlbGVnYXRlIGRhdGFEZXRl
Y3Rpb25Db250ZXh0Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBwb3NpdGlvbkluZm9ybWF0
aW9uOipfcG9zaXRpb25JbmZvcm1hdGlvbl07Ci0gICAgaWYgKFtfZGVsZWdhdGUgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3RvcihzZWxlY3RlZFRleHRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDop
XSkKLSAgICAgICAgdGV4dEF0U2VsZWN0aW9uID0gW19kZWxlZ2F0ZSBzZWxlY3RlZFRleHRGb3JB
Y3Rpb25TaGVldEFzc2lzdGFudDpzZWxmXTsKKyAgICAgICAgaWYgKFtfZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihkYXRhRGV0ZWN0aW9uQ29udGV4dEZvckFjdGlvblNoZWV0
QXNzaXN0YW50OnBvc2l0aW9uSW5mb3JtYXRpb246KV0pCisgICAgICAgICAgICBjb250ZXh0ID0g
W19kZWxlZ2F0ZSBkYXRhRGV0ZWN0aW9uQ29udGV4dEZvckFjdGlvblNoZWV0QXNzaXN0YW50OnNl
bGYgcG9zaXRpb25JbmZvcm1hdGlvbjoqX3Bvc2l0aW9uSW5mb3JtYXRpb25dOworICAgICAgICBp
ZiAoW19kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNlbGVjdGVkVGV4dEZv
ckFjdGlvblNoZWV0QXNzaXN0YW50OildKQorICAgICAgICAgICAgdGV4dEF0U2VsZWN0aW9uID0g
W19kZWxlZ2F0ZSBzZWxlY3RlZFRleHRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmXTsKIAot
ICAgIE5TRGljdGlvbmFyeSAqbmV3Q29udGV4dCA9IG5pbDsKLSAgICBERFJlc3VsdFJlZiBkZFJl
c3VsdCA9IFtjb250cm9sbGVyIHJlc3VsdEZvclVSTDpfcG9zaXRpb25JbmZvcm1hdGlvbi0+dXJs
IGlkZW50aWZpZXI6X3Bvc2l0aW9uSW5mb3JtYXRpb24tPmRhdGFEZXRlY3RvcklkZW50aWZpZXIg
c2VsZWN0ZWRUZXh0OnRleHRBdFNlbGVjdGlvbiByZXN1bHRzOl9wb3NpdGlvbkluZm9ybWF0aW9u
LT5kYXRhRGV0ZWN0b3JSZXN1bHRzLmdldCgpIGNvbnRleHQ6Y29udGV4dCBleHRlbmRlZENvbnRl
eHQ6Jm5ld0NvbnRleHRdOworICAgICAgICBOU0RpY3Rpb25hcnkgKm5ld0NvbnRleHQgPSBuaWw7
CisgICAgICAgIEREUmVzdWx0UmVmIGRkUmVzdWx0ID0gW2NvbnRyb2xsZXIgcmVzdWx0Rm9yVVJM
Ol9wb3NpdGlvbkluZm9ybWF0aW9uLT51cmwgaWRlbnRpZmllcjpfcG9zaXRpb25JbmZvcm1hdGlv
bi0+ZGF0YURldGVjdG9ySWRlbnRpZmllciBzZWxlY3RlZFRleHQ6dGV4dEF0U2VsZWN0aW9uIHJl
c3VsdHM6X3Bvc2l0aW9uSW5mb3JtYXRpb24tPmRhdGFEZXRlY3RvclJlc3VsdHMuZ2V0KCkgY29u
dGV4dDpjb250ZXh0IGV4dGVuZGVkQ29udGV4dDombmV3Q29udGV4dF07CiAKLSAgICBDR1JlY3Qg
c291cmNlUmVjdDsKLSAgICBpZiAoX3Bvc2l0aW9uSW5mb3JtYXRpb24tPmlzTGluaykKLSAgICAg
ICAgc291cmNlUmVjdCA9IF9wb3NpdGlvbkluZm9ybWF0aW9uLT5saW5rSW5kaWNhdG9yLnRleHRC
b3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXM7Ci0gICAgZWxzZQotICAgICAgICBzb3Vy
Y2VSZWN0ID0gX3Bvc2l0aW9uSW5mb3JtYXRpb24tPmJvdW5kczsKKyAgICAgICAgQ0dSZWN0IHNv
dXJjZVJlY3Q7CisgICAgICAgIGlmIChfcG9zaXRpb25JbmZvcm1hdGlvbi0+aXNMaW5rKQorICAg
ICAgICAgICAgc291cmNlUmVjdCA9IF9wb3NpdGlvbkluZm9ybWF0aW9uLT5saW5rSW5kaWNhdG9y
LnRleHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXM7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIHNvdXJjZVJlY3QgPSBfcG9zaXRpb25JbmZvcm1hdGlvbi0+Ym91bmRzOwogCi0g
ICAgYXV0byBkZENvbnRleHRNZW51QWN0aW9uQ2xhc3MgPSBnZXRERENvbnRleHRNZW51QWN0aW9u
Q2xhc3MoKTsKLSAgICBhdXRvIGZpbmFsQ29udGV4dCA9IFtkZENvbnRleHRNZW51QWN0aW9uQ2xh
c3MgdXBkYXRlQ29udGV4dDpuZXdDb250ZXh0IHdpdGhTb3VyY2VSZWN0OnNvdXJjZVJlY3RdOwor
ICAgICAgICBhdXRvIGRkQ29udGV4dE1lbnVBY3Rpb25DbGFzcyA9IGdldEREQ29udGV4dE1lbnVB
Y3Rpb25DbGFzcygpOworICAgICAgICBhdXRvIGZpbmFsQ29udGV4dCA9IFtkZENvbnRleHRNZW51
QWN0aW9uQ2xhc3MgdXBkYXRlQ29udGV4dDpuZXdDb250ZXh0IHdpdGhTb3VyY2VSZWN0OnNvdXJj
ZVJlY3RdOwogCi0gICAgaWYgKGRkUmVzdWx0KQotICAgICAgICByZXR1cm4gW2RkQ29udGV4dE1l
bnVBY3Rpb25DbGFzcyBjb250ZXh0TWVudUNvbmZpZ3VyYXRpb25XaXRoUmVzdWx0OmRkUmVzdWx0
IGluVmlldzpfdmlldy5nZXRBdXRvcmVsZWFzZWQoKSBjb250ZXh0OmZpbmFsQ29udGV4dCBtZW51
SWRlbnRpZmllcjpuaWxdOwotICAgIHJldHVybiBbZGRDb250ZXh0TWVudUFjdGlvbkNsYXNzIGNv
bnRleHRNZW51Q29uZmlndXJhdGlvbldpdGhVUkw6X3Bvc2l0aW9uSW5mb3JtYXRpb24tPnVybCBp
blZpZXc6X3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkgY29udGV4dDpmaW5hbENvbnRleHQgbWVudUlk
ZW50aWZpZXI6bmlsXTsKKyAgICAgICAgaWYgKGRkUmVzdWx0KQorICAgICAgICAgICAgcmV0dXJu
IFtkZENvbnRleHRNZW51QWN0aW9uQ2xhc3MgY29udGV4dE1lbnVDb25maWd1cmF0aW9uV2l0aFJl
c3VsdDpkZFJlc3VsdCBpblZpZXc6X3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkgY29udGV4dDpmaW5h
bENvbnRleHQgbWVudUlkZW50aWZpZXI6bmlsXTsKKyAgICAgICAgcmV0dXJuIFtkZENvbnRleHRN
ZW51QWN0aW9uQ2xhc3MgY29udGV4dE1lbnVDb25maWd1cmF0aW9uV2l0aFVSTDpfcG9zaXRpb25J
bmZvcm1hdGlvbi0+dXJsIGluVmlldzpfdmlldy5nZXRBdXRvcmVsZWFzZWQoKSBjb250ZXh0OmZp
bmFsQ29udGV4dCBtZW51SWRlbnRpZmllcjpuaWxdOworICAgIH0KKyNlbmRpZiAvLyBFTkFCTEUo
REFUQV9ERVRFQ1RJT04pCisKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5V
UykKKyAgICBpZiAoaW50ZXJhY3Rpb24gPT0gX21lZGlhQ29udHJvbHNDb250ZXh0TWVudUludGVy
YWN0aW9uKSB7CisgICAgICAgIHJldHVybiBbVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24gY29u
ZmlndXJhdGlvbldpdGhJZGVudGlmaWVyOm5pbCBwcmV2aWV3UHJvdmlkZXI6bmlsIGFjdGlvblBy
b3ZpZGVyOlt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQ+KHNl
bGYpXSAoTlNBcnJheTxVSU1lbnVFbGVtZW50ICo+ICpzdWdnZXN0ZWRBY3Rpb25zKSAtPiBVSU1l
bnUgKiB7CisgICAgICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKKyAg
ICAgICAgICAgIGlmICghc3Ryb25nU2VsZikKKyAgICAgICAgICAgICAgICByZXR1cm4gbmlsOwor
CisgICAgICAgICAgICByZXR1cm4gc3Ryb25nU2VsZi0+X21lZGlhQ29udHJvbHNDb250ZXh0TWVu
dS5nZXQoKTsKKyAgICAgICAgfV07CisgICAgfQorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05U
Uk9MU19DT05URVhUX01FTlVTKQorCisgICAgcmV0dXJuIG5pbDsKIH0KIAogLSAoVUlUYXJnZXRl
ZFByZXZpZXcgKiljb250ZXh0TWVudUludGVyYWN0aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rp
b24gKilpbnRlcmFjdGlvbiBwcmV2aWV3Rm9ySGlnaGxpZ2h0aW5nTWVudVdpdGhDb25maWd1cmF0
aW9uOihVSUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24KIHsKLSAgICBh
dXRvIGRlbGVnYXRlID0gX2RlbGVnYXRlLmdldCgpOwotICAgIENHUG9pbnQgY2VudGVyID0gX3Bv
c2l0aW9uSW5mb3JtYXRpb24tPnJlcXVlc3QucG9pbnQ7Ci0gICAgCi0gICAgaWYgKFtkZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGNyZWF0ZVRhcmdldGVkQ29udGV4dE1lbnVI
aW50Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6KV0pCi0gICAgICAgIHJldHVybiBbZGVsZWdhdGUg
Y3JlYXRlVGFyZ2V0ZWRDb250ZXh0TWVudUhpbnRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDpzZWxm
XTsKLSAgICAKLSAgICBSZXRhaW5QdHI8VUlQcmV2aWV3UGFyYW1ldGVycz4gdW51c2VkUHJldmll
d1BhcmFtZXRlcnMgPSBhZG9wdE5TKFtbVUlQcmV2aWV3UGFyYW1ldGVycyBhbGxvY10gaW5pdF0p
OwotICAgIFJldGFpblB0cjxVSVByZXZpZXdUYXJnZXQ+IHByZXZpZXdUYXJnZXQgPSBhZG9wdE5T
KFtbVUlQcmV2aWV3VGFyZ2V0IGFsbG9jXSBpbml0V2l0aENvbnRhaW5lcjpfdmlldy5nZXRBdXRv
cmVsZWFzZWQoKSBjZW50ZXI6Y2VudGVyXSk7Ci0gICAgUmV0YWluUHRyPFVJVGFyZ2V0ZWRQcmV2
aWV3PiBwcmV2aWV3ID0gYWRvcHROUyhbW1VJVGFyZ2V0ZWRQcmV2aWV3IGFsbG9jXSBpbml0V2l0
aFZpZXc6X3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkgcGFyYW1ldGVyczp1bnVzZWRQcmV2aWV3UGFy
YW1ldGVycy5nZXQoKSB0YXJnZXQ6cHJldmlld1RhcmdldC5nZXQoKV0pOwotICAgIHJldHVybiBw
cmV2aWV3LmF1dG9yZWxlYXNlKCk7CisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorICAgIGlm
IChpbnRlcmFjdGlvbiA9PSBfZGF0YURldGVjdG9yQ29udGV4dE1lbnVJbnRlcmFjdGlvbikgewor
ICAgICAgICBhdXRvIGRlbGVnYXRlID0gX2RlbGVnYXRlLmdldCgpOworICAgICAgICBDR1BvaW50
IGNlbnRlciA9IF9wb3NpdGlvbkluZm9ybWF0aW9uLT5yZXF1ZXN0LnBvaW50OworCisgICAgICAg
IGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihjcmVhdGVUYXJnZXRl
ZENvbnRleHRNZW51SGludEZvckFjdGlvblNoZWV0QXNzaXN0YW50OildKQorICAgICAgICAgICAg
cmV0dXJuIFtkZWxlZ2F0ZSBjcmVhdGVUYXJnZXRlZENvbnRleHRNZW51SGludEZvckFjdGlvblNo
ZWV0QXNzaXN0YW50OnNlbGZdOworCisgICAgICAgIFJldGFpblB0cjxVSVByZXZpZXdQYXJhbWV0
ZXJzPiB1bnVzZWRQcmV2aWV3UGFyYW1ldGVycyA9IGFkb3B0TlMoW1tVSVByZXZpZXdQYXJhbWV0
ZXJzIGFsbG9jXSBpbml0XSk7CisgICAgICAgIFJldGFpblB0cjxVSVByZXZpZXdUYXJnZXQ+IHBy
ZXZpZXdUYXJnZXQgPSBhZG9wdE5TKFtbVUlQcmV2aWV3VGFyZ2V0IGFsbG9jXSBpbml0V2l0aENv
bnRhaW5lcjpfdmlldy5nZXRBdXRvcmVsZWFzZWQoKSBjZW50ZXI6Y2VudGVyXSk7CisgICAgICAg
IFJldGFpblB0cjxVSVRhcmdldGVkUHJldmlldz4gcHJldmlldyA9IGFkb3B0TlMoW1tVSVRhcmdl
dGVkUHJldmlldyBhbGxvY10gaW5pdFdpdGhWaWV3Ol92aWV3LmdldEF1dG9yZWxlYXNlZCgpIHBh
cmFtZXRlcnM6dW51c2VkUHJldmlld1BhcmFtZXRlcnMuZ2V0KCkgdGFyZ2V0OnByZXZpZXdUYXJn
ZXQuZ2V0KCldKTsKKyAgICAgICAgcmV0dXJuIHByZXZpZXcuYXV0b3JlbGVhc2UoKTsKKyAgICB9
CisjZW5kaWYgLy8gRU5BQkxFKERBVEFfREVURUNUSU9OKQorCisjaWYgRU5BQkxFKE1FRElBX0NP
TlRST0xTX0NPTlRFWFRfTUVOVVMpCisgICAgaWYgKGludGVyYWN0aW9uID09IF9tZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnVJbnRlcmFjdGlvbikgeworICAgICAgICBhdXRvIGVtcHR5VmlldyA9IGFk
b3B0TlMoW1tVSVZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6X21lZGlhQ29udHJvbHNDb250ZXh0
TWVudVRhcmdldEZyYW1lXSk7CisgICAgICAgIGF1dG8gcHJldmlld1BhcmFtZXRlcnMgPSBhZG9w
dE5TKFtbVUlQcmV2aWV3UGFyYW1ldGVycyBhbGxvY10gaW5pdF0pOworICAgICAgICBhdXRvIHBy
ZXZpZXdUYXJnZXQgPSBhZG9wdE5TKFtbVUlQcmV2aWV3VGFyZ2V0IGFsbG9jXSBpbml0V2l0aENv
bnRhaW5lcjpfdmlldy5nZXRBdXRvcmVsZWFzZWQoKSBjZW50ZXI6X21lZGlhQ29udHJvbHNDb250
ZXh0TWVudVRhcmdldEZyYW1lLmNlbnRlcigpXSk7CisgICAgICAgIGF1dG8gcHJldmlldyA9IGFk
b3B0TlMoW1tVSVRhcmdldGVkUHJldmlldyBhbGxvY10gaW5pdFdpdGhWaWV3OmVtcHR5Vmlldy5n
ZXQoKSBwYXJhbWV0ZXJzOnByZXZpZXdQYXJhbWV0ZXJzLmdldCgpIHRhcmdldDpwcmV2aWV3VGFy
Z2V0LmdldCgpXSk7CisgICAgICAgIHJldHVybiBwcmV2aWV3LmF1dG9yZWxlYXNlKCk7CisgICAg
fQorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorCisgICAg
cmV0dXJuIG5pbDsKIH0KIAogLSAoX1VJQ29udGV4dE1lbnVTdHlsZSAqKV9jb250ZXh0TWVudUlu
dGVyYWN0aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBzdHlsZUZv
ck1lbnVXaXRoQ29uZmlndXJhdGlvbjooVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24gKiljb25m
aWd1cmF0aW9uCkBAIC04MTAsMjIgKzkzMiw0NSBAQCAtIChfVUlDb250ZXh0TWVudVN0eWxlICop
X2NvbnRleHRNZW51SW50ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiAqKWludAog
ICAgIHJldHVybiBzdHlsZTsKIH0KIAorLSAodm9pZCljb250ZXh0TWVudUludGVyYWN0aW9uOihV
SUNvbnRleHRNZW51SW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiB3aWxsRGlzcGxheU1lbnVGb3JD
b25maWd1cmF0aW9uOihVSUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24g
YW5pbWF0b3I6KGlkIDxVSUNvbnRleHRNZW51SW50ZXJhY3Rpb25BbmltYXRpbmc+KWFuaW1hdG9y
Cit7CisgICAgW2FuaW1hdG9yIGFkZENvbXBsZXRpb246W3dlYWtTZWxmID0gV2Vha09iakNQdHI8
V0tBY3Rpb25TaGVldEFzc2lzdGFudD4oc2VsZildIHsKKyAgICAgICAgYXV0byBzdHJvbmdTZWxm
ID0gd2Vha1NlbGYuZ2V0KCk7CisgICAgICAgIGlmICghc3Ryb25nU2VsZikKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICBpZiAoW3N0cm9uZ1NlbGYtPl9kZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKGFjdGlvblNoZWV0QXNzaXN0YW50RGlkU2hvd0NvbnRleHRNZW51
OildKQorICAgICAgICAgICAgW3N0cm9uZ1NlbGYtPl9kZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lz
dGFudERpZFNob3dDb250ZXh0TWVudTpzdHJvbmdTZWxmLmdldCgpXTsKKyAgICB9XTsKK30KKwog
LSAodm9pZCljb250ZXh0TWVudUludGVyYWN0aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24g
KilpbnRlcmFjdGlvbiB3aWxsRW5kRm9yQ29uZmlndXJhdGlvbjooVUlDb250ZXh0TWVudUNvbmZp
Z3VyYXRpb24gKiljb25maWd1cmF0aW9uIGFuaW1hdG9yOihpZDxVSUNvbnRleHRNZW51SW50ZXJh
Y3Rpb25BbmltYXRpbmc+KWFuaW1hdG9yCiB7Ci0gICAgW2FuaW1hdG9yIGFkZENvbXBsZXRpb246
XnsKLSAgICAgICAgW3NlbGYgcmVtb3ZlQ29udGV4dE1lbnVJbnRlcmFjdGlvbl07CisgICAgW2Fu
aW1hdG9yIGFkZENvbXBsZXRpb246W3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tBY3Rpb25TaGVl
dEFzc2lzdGFudD4oc2VsZildIHsKKyAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYu
Z2V0KCk7CisgICAgICAgIGlmICghc3Ryb25nU2VsZikKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBpZiAoW3N0cm9uZ1NlbGYtPl9kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKGFjdGlvblNoZWV0QXNzaXN0YW50RGlkRGlzbWlzc0NvbnRleHRNZW51OildKQorICAg
ICAgICAgICAgW3N0cm9uZ1NlbGYtPl9kZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFudERpZERp
c21pc3NDb250ZXh0TWVudTpzdHJvbmdTZWxmLmdldCgpXTsKKworICAgICAgICBbc3Ryb25nU2Vs
ZiByZW1vdmVDb250ZXh0TWVudUludGVyYWN0aW9uXTsKICAgICB9XTsKIH0KIAogLSAoTlNBcnJh
eTxVSU1lbnVFbGVtZW50ICo+ICopX2NvbnRleHRNZW51SW50ZXJhY3Rpb246KFVJQ29udGV4dE1l
bnVJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIG92ZXJyaWRlU3VnZ2VzdGVkQWN0aW9uc0ZvckNv
bmZpZ3VyYXRpb246KFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbgog
ewotICAgIGlmICghX3Bvc2l0aW9uSW5mb3JtYXRpb24pCi0gICAgICAgIHJldHVybiBuaWw7Ci0g
ICAgcmV0dXJuIFtzZWxmIHN1Z2dlc3RlZEFjdGlvbnNGb3JDb250ZXh0TWVudVdpdGhQb3NpdGlv
bkluZm9ybWF0aW9uOipfcG9zaXRpb25JbmZvcm1hdGlvbl07Ci19Ci0KKyNpZiBFTkFCTEUoREFU
QV9ERVRFQ1RJT04pCisgICAgaWYgKGludGVyYWN0aW9uID09IF9kYXRhRGV0ZWN0b3JDb250ZXh0
TWVudUludGVyYWN0aW9uKSB7CisgICAgICAgIGlmICghX3Bvc2l0aW9uSW5mb3JtYXRpb24pCisg
ICAgICAgICAgICByZXR1cm4gbmlsOworICAgICAgICByZXR1cm4gW3NlbGYgc3VnZ2VzdGVkQWN0
aW9uc0ZvckNvbnRleHRNZW51V2l0aFBvc2l0aW9uSW5mb3JtYXRpb246Kl9wb3NpdGlvbkluZm9y
bWF0aW9uXTsKKyAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKERBVEFfREVURUNUSU9OKQogCisgICAg
cmV0dXJuIG5pbDsKK30KKwogI2VuZGlmIC8vIFVTRShVSUNPTlRFWFRNRU5VKQogCiAtICh2b2lk
KWhhbmRsZUVsZW1lbnRBY3Rpb25XaXRoVHlwZTooX1dLRWxlbWVudEFjdGlvblR5cGUpdHlwZSBl
bGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgbmVlZHNJbnRlcmFjdGlv
bjooQk9PTCluZWVkc0ludGVyYWN0aW9uCkBAIC04ODYsNiArMTAzMSw1OSBAQCAtICh2b2lkKWNs
ZWFudXBTaGVldAogICAgIF9oYXNQZW5kaW5nQWN0aW9uU2hlZXQgPSBOTzsKIH0KIAorI3ByYWdt
YSBtYXJrIC0gV0tUZXN0aW5nCisKKy0gKE5TQXJyYXkgKiljdXJyZW50bHlBdmFpbGFibGVBY3Rp
b25UaXRsZXMKK3sKKyAgICBpZiAoIV9pbnRlcmFjdGlvblNoZWV0KQorICAgICAgICByZXR1cm4g
QFtdOworCisgICAgTlNNdXRhYmxlQXJyYXkgKmFycmF5ID0gW05TTXV0YWJsZUFycmF5IGFycmF5
V2l0aENhcGFjaXR5Ol9pbnRlcmFjdGlvblNoZWV0LmdldCgpLmFjdGlvbnMuY291bnRdOworCisg
ICAgZm9yIChVSUFsZXJ0QWN0aW9uICphY3Rpb24gaW4gX2ludGVyYWN0aW9uU2hlZXQuZ2V0KCku
YWN0aW9ucykKKyAgICAgICAgW2FycmF5IGFkZE9iamVjdDphY3Rpb24udGl0bGVdOworCisgICAg
cmV0dXJuIGFycmF5OworfQorCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVO
VVMpCisKKy0gKE5TRGljdGlvbmFyeSAqKV9jb250ZW50c09mQ29udGV4dE1lbnVJdGVtOihVSU1l
bnVFbGVtZW50ICopaXRlbQoreworICAgIE5TTXV0YWJsZURpY3Rpb25hcnkqIHJlc3VsdCA9IE5T
TXV0YWJsZURpY3Rpb25hcnkuZGljdGlvbmFyeTsKKworICAgIGlmIChpdGVtLnRpdGxlLmxlbmd0
aCkKKyAgICAgICAgcmVzdWx0W0AidGl0bGUiXSA9IGl0ZW0udGl0bGU7CisKKyAgICBpZiAoW2l0
ZW0gaXNLaW5kT2ZDbGFzczpVSU1lbnUuY2xhc3NdKSB7CisgICAgICAgIFVJTWVudSAqbWVudSA9
IChVSU1lbnUgKilpdGVtOworCisgICAgICAgIE5TTXV0YWJsZUFycmF5ICpjaGlsZHJlbiA9IFtO
U011dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0eTptZW51LmNoaWxkcmVuLmNvdW50XTsKKyAg
ICAgICAgZm9yIChVSU1lbnVFbGVtZW50ICpjaGlsZCBpbiBtZW51LmNoaWxkcmVuKQorICAgICAg
ICAgICAgW2NoaWxkcmVuIGFkZE9iamVjdDpbc2VsZiBfY29udGVudHNPZkNvbnRleHRNZW51SXRl
bTpjaGlsZF1dOworICAgICAgICByZXN1bHRbQCJjaGlsZHJlbiJdID0gY2hpbGRyZW47CisgICAg
fQorCisgICAgaWYgKFtpdGVtIGlzS2luZE9mQ2xhc3M6VUlBY3Rpb24uY2xhc3NdKSB7CisgICAg
ICAgIFVJQWN0aW9uICphY3Rpb24gPSAoVUlBY3Rpb24gKilpdGVtOworCisgICAgICAgIGlmIChh
Y3Rpb24uc3RhdGUgPT0gVUlNZW51RWxlbWVudFN0YXRlT24pCisgICAgICAgICAgICByZXN1bHRb
QCJjaGVja2VkIl0gPSBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVTXTsKKyAgICB9CisKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCistIChOU0FycmF5ICopY3VycmVudGx5QXZhaWxhYmxlTWVk
aWFDb250cm9sc0NvbnRleHRNZW51SXRlbXMKK3sKKyAgICBOU011dGFibGVBcnJheSAqcmVzdWx0
ID0gTlNNdXRhYmxlQXJyYXkuYXJyYXk7CisgICAgaWYgKF9tZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnUpCisgICAgICAgIFtyZXN1bHQgYWRkT2JqZWN0OltzZWxmIF9jb250ZW50c09mQ29udGV4dE1l
bnVJdGVtOl9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUuZ2V0KCldXTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMp
CisKIEBlbmQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5k
ZXggNWQ2ODMyNjdhZTI0NWI0Yzc5YWVhOGI4MDZkNTVmZjZkZTNhNjMzMS4uOWMyZjUxZWZmZjAx
NmUyZTNjNGZjM2NjYjljZTE1YjEwMmIyOGU2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtNTgsNiArNTgs
NyBAQAogI2ltcG9ydCA8V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0NvbG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UXVhZC5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9NZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BvaW50
ZXJJRC5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAjaW1wb3J0IDx3dGYvQ29tcGxldGlv
bkhhbmRsZXIuaD4KQEAgLTc4LDYgKzc5LDcgQEAgY2xhc3MgVGV4dFN0cmVhbTsKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIENvbG9yOwogY2xhc3MgRmxvYXRRdWFkOworY2xhc3MgRmxvYXRS
ZWN0OwogY2xhc3MgSW50U2l6ZTsKIGNsYXNzIFNlbGVjdGlvblJlY3Q7CiBzdHJ1Y3QgQ29udGFj
dEluZm87CkBAIC02NzIsNiArNjc0LDEwIEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklF
V19BQ1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAtICh2
b2lkKV9zZXRNb3VzZUV2ZW50UG9saWN5OihXZWJDb3JlOjpNb3VzZUV2ZW50UG9saWN5KXBvbGlj
eTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCist
ICh2b2lkKV9zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51OihXZWJDb3JlOjpGbG9hdFJlY3Qm
Jil0YXJnZXRGcmFtZSBpdGVtczooVmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0
TWVudUl0ZW0+JiYpaXRlbXMgY29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6SUQpPiYmKWNvbXBsZXRp
b25IYW5kbGVyOworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVT
KQorCiAjaWYgRU5BQkxFKElPU19GT1JNX0NPTlRST0xfUkVGUkVTSCkKIC0gKEJPT0wpX2Zvcm1D
b250cm9sUmVmcmVzaEVuYWJsZWQ7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDQ3ZDk2YzJl
OTliNTRiMWVlZTVhNTEzNDJhNDFlMmIxNjljZTE3ZGMuLjdmOTQ1MzQyMTYwYzQxZmRhZTJkYTky
YzQ5NmY5YjI3ODEyN2MzMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtMTAwLDYgKzEwMCw3IEBACiAj
aW1wb3J0IDxXZWJDb3JlL0RPTVBhc3RlQWNjZXNzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RhdGFE
ZXRlY3Rpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvRmxvYXRRdWFkLmg+CisjaW1wb3J0IDxXZWJD
b3JlL0Zsb2F0UmVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Gb250QXR0cmlidXRlQ2hhbmdlcy5o
PgogI2ltcG9ydCA8V2ViQ29yZS9JbnB1dE1vZGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvS2V5RXZl
bnRDb2Rlc0lPUy5oPgpAQCAtNzI4Myw2ICs3Mjg0LDE2IEBAIC0gKHZvaWQpcmVtb3ZlQ29udGV4
dE1lbnVWaWV3SWZQb3NzaWJsZUZvckFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0
QXNzCiAgICAgW3NlbGYgX3JlbW92ZUNvbnRleHRNZW51Vmlld0lmUG9zc2libGVdOwogfQogCist
ICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50RGlkU2hvd0NvbnRleHRNZW51OihXS0FjdGlvblNo
ZWV0QXNzaXN0YW50ICopYXNzaXN0YW50Cit7CisgICAgW193ZWJWaWV3IF9kaWRTaG93Q29udGV4
dE1lbnVdOworfQorCistICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50RGlkRGlzbWlzc0NvbnRl
eHRNZW51OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50Cit7CisgICAgW193ZWJW
aWV3IF9kaWREaXNtaXNzQ29udGV4dE1lbnVdOworfQorCiAjZW5kaWYgLy8gVVNFKFVJQ09OVEVY
VE1FTlUpCiAKIC0gKEJPT0wpX3Nob3VsZFVzZUNvbnRleHRNZW51cwpAQCAtODkwMSw2ICs4OTEy
LDE1IEBAIC0gKHZvaWQpX3NldE1vdXNlRXZlbnRQb2xpY3k6KFdlYkNvcmU6Ok1vdXNlRXZlbnRQ
b2xpY3kpcG9saWN5CiAKICNlbmRpZiAvLyBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkK
IAorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorCistICh2b2lkKV9z
aG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51OihXZWJDb3JlOjpGbG9hdFJlY3QmJil0YXJnZXRG
cmFtZSBpdGVtczooVmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+
JiYpaXRlbXMgY29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6SUQpPiYmKWNvbXBsZXRpb25IYW5kbGVy
Cit7CisgICAgW19hY3Rpb25TaGVldEFzc2lzdGFudCBzaG93TWVkaWFDb250cm9sc0NvbnRleHRN
ZW51OldURk1vdmUodGFyZ2V0RnJhbWUpIGl0ZW1zOldURk1vdmUoaXRlbXMpIGNvbXBsZXRpb25I
YW5kbGVyOldURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXTsKK30KKworI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorCiAjaWYgSEFWRShVSV9QT0lOVEVSX0lO
VEVSQUNUSU9OKQogCiAtICh2b2lkKXNldFVwUG9pbnRlckludGVyYWN0aW9uCkBAIC05MzI4LDcg
KzkzNDgsNyBAQCAtIChkb3VibGUpdGltZVBpY2tlclZhbHVlTWludXRlCiAtIChOU0RpY3Rpb25h
cnkgKilfY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtOihOU1N0cmluZyAqKXVzZXJJbnRlcmZh
Y2VJdGVtCiB7CiAgICAgaWYgKFt1c2VySW50ZXJmYWNlSXRlbSBpc0VxdWFsVG9TdHJpbmc6QCJh
Y3Rpb25TaGVldCJdKQotICAgICAgICByZXR1cm4gQHsgdXNlckludGVyZmFjZUl0ZW06IFtfYWN0
aW9uU2hlZXRBc3Npc3RhbnQgY3VycmVudEF2YWlsYWJsZUFjdGlvblRpdGxlc10gfTsKKyAgICAg
ICAgcmV0dXJuIEB7IHVzZXJJbnRlcmZhY2VJdGVtOiBbX2FjdGlvblNoZWV0QXNzaXN0YW50IGN1
cnJlbnRseUF2YWlsYWJsZUFjdGlvblRpdGxlc10gfTsKIAogI2lmIEhBVkUoTElOS19QUkVWSUVX
KQogICAgIGlmIChbdXNlckludGVyZmFjZUl0ZW0gaXNFcXVhbFRvU3RyaW5nOkAiY29udGV4dE1l
bnUiXSkgewpAQCAtOTM0OSw2ICs5MzY5LDExIEBAIC0gKE5TRGljdGlvbmFyeSAqKV9jb250ZW50
c09mVXNlckludGVyZmFjZUl0ZW06KE5TU3RyaW5nICopdXNlckludGVyZmFjZUl0ZW0KICAgICB9
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorICAg
IGlmIChbdXNlckludGVyZmFjZUl0ZW0gaXNFcXVhbFRvU3RyaW5nOkAibWVkaWFDb250cm9sc0Nv
bnRleHRNZW51Il0pCisgICAgICAgIHJldHVybiBAeyB1c2VySW50ZXJmYWNlSXRlbTogW19hY3Rp
b25TaGVldEFzc2lzdGFudCBjdXJyZW50bHlBdmFpbGFibGVNZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnVJdGVtc10gfTsKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5V
UykKKwogICAgIGlmIChbdXNlckludGVyZmFjZUl0ZW0gaXNFcXVhbFRvU3RyaW5nOkAiZmlsZVVw
bG9hZFBhbmVsTWVudSJdKSB7CiAgICAgICAgIGlmICghX2ZpbGVVcGxvYWRQYW5lbCkKICAgICAg
ICAgICAgIHJldHVybiBAeyB1c2VySW50ZXJmYWNlSXRlbTogQFtdIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwCmluZGV4IGQwMGU5ZDQ5ZmMyNDJiMzIxYzI3OWY0YTAwNGRmM2FlMjNkOTQzNzAuLmE5
NjVlNWNjNGRlYmM4ZGNmMmUzYzc1Y2RlZDEwMjRjYjQ3MzhlODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwCkBAIC0xNDQwLDQgKzE0NDAsMTMgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVl
c3RJbWFnZUV4dHJhY3Rpb24oRWxlbWVudCYgZWxlbWVudCkKIAogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6
OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoRmxvYXRSZWN0JiYgdGFyZ2V0RnJhbWUsIFZl
Y3RvcjxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiYmIGl0ZW1zLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBtX3BhZ2Uuc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShXVEZN
b3ZlKHRhcmdldEZyYW1lKSwgV1RGTW92ZShpdGVtcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVT
KQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCAwYjhjNzk2
ZDhiN2UwYTQ3MTlhOWFkODZlMDk2OGYwMmVmYmNiZjU3Li44YzEyYTVjN2MwMGU5OGI4MTY5OWY4
YmQ5NjRjMmFhNGJkOGQ0ZjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC00MTgsNiArNDE4LDEw
IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNvcmU6OkVs
ZW1lbnQmKSBmaW5hbDsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRF
WFRfTUVOVVMpCisgICAgdm9pZCBzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KFdlYkNvcmU6
OkZsb2F0UmVjdCYmLCBWZWN0b3I8V2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRl
bT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4
dE1lbnVJdGVtOjpJRCk+JiYpIGZpbmFsOworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9M
U19DT05URVhUX01FTlVTKQorCiAgICAgbXV0YWJsZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFz
SG9yaXpvbnRhbFNjcm9sbGJhciB7IGZhbHNlIH07CiAgICAgbXV0YWJsZSBib29sIG1fY2FjaGVk
TWFpbkZyYW1lSGFzVmVydGljYWxTY3JvbGxiYXIgeyBmYWxzZSB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDI5MzBmNWMyNmIxODRiZWFk
MTkyNzljN2ZlOTkyNjBmMmZmMzc2MmUuLjM1Mjk3Nzg2ZTMxMDUyMGZlMjM1NDAwM2Y0OTgzMjBj
Y2FiYTFjNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCkBAIC03MTYzLDYgKzcxNjMsMTMgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0SW1hZ2VFeHRy
YWN0aW9uKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQpCiAKICNlbmRpZiAvLyBFTkFCTEUoSU1B
R0VfRVhUUkFDVElPTikKIAorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVT
KQordm9pZCBXZWJQYWdlOjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KEZsb2F0UmVjdCYm
IHRhcmdldEZyYW1lLCBWZWN0b3I8TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4mJiBpdGVt
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJ
RCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoV1RGTW92ZSh0
YXJnZXRGcmFtZSksIFdURk1vdmUoaXRlbXMpKSwgY29tcGxldGlvbkhhbmRsZXIpOworfQorI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorCiAjaWYgIVBMQVRG
T1JNKElPU19GQU1JTFkpCiAKIHZvaWQgV2ViUGFnZTo6YW5pbWF0aW9uRGlkRmluaXNoRm9yRWxl
bWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50JikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA3MWI4N2IwYTA5YjNmZTViOTMzYTE3NTNjODdiNzA0ZWFh
Y2EzMmE0Li5iZGQ5ZjkxNTgzYzZlMTM2ZDg2ZjY3ZTczOWE3NTUwYzlmNjhkNzg0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC03Myw2ICs3Myw3IEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MTWVudUl0ZW1FbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplSGFzaC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BhZ2VPdmVybGF5Lmg+CkBAIC0xMzcxLDYgKzEzNzIsMTAgQEAgcHVibGlj
OgogICAgIHZvaWQgcmVxdWVzdEltYWdlRXh0cmFjdGlvbihXZWJDb3JlOjpFbGVtZW50Jik7CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorICAgIHZv
aWQgc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShXZWJDb3JlOjpGbG9hdFJlY3QmJiwgVmVj
dG9yPFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+JiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6SUQpPiYm
KTsKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKwogI2lm
IFBMQVRGT1JNKFdJTikKICAgICB1aW50NjRfdCBuYXRpdmVXaW5kb3dIYW5kbGUoKSB7IHJldHVy
biBtX25hdGl2ZVdpbmRvd0hhbmRsZTsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2FmNmYzMTM0NGU0MWM3MjY2ZjViZWE5NzQ3
YzQ1ZjE1MmJmNTdkZi4uN2M1ZGExZDIyOTAxNDI3ODVhM2I3MDhiNmUxMDI0ZTkxODExMGFhYSAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE5IEBACisyMDIxLTAyLTA5ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4K
KworICAgICAgICBbaU9TXSBBZGQgc3VwcG9ydCBmb3IgdGhlIGxhbmd1YWdlL3N1YnRpdGxlIHRy
YWNrcyBidXR0b24gdXNpbmcgYFVJTWVudWAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyMTU5NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQxMjkx
Mjk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW06CisgICAgICAgIChX
VFI6OlVJU2NyaXB0Q29udHJvbGxlcklPUzo6cmVjdEZvck1lbnVBY3Rpb24gY29uc3QpOgorICAg
ICAgICBJbiBhZGRpdGlvbiB0byBsb29raW5nIGF0IHRoZSBhY3RpdmUgYFVJQ2FsbG91dEJhcmAg
KGlmIGl0IGV4aXN0cyksIHdhbGsgdGhlIHZpZXcgaGllcmFyY2h5CisgICAgICAgIGxvb2tpbmcg
Zm9yIGFueSBgVUlMYWJlbGAgdGhhdCBjb250YWlucyB0aGUgZ2l2ZW4gdGV4dCBhbmQgdXNlIHRo
YXQgYXMgdGhlIHJlY3QgdG8gdGFwLgorICAgICAgICBXaGlsZSB0aGlzIGlzbid0IHRoZSBtb3N0
IGNvbmZpZGVudC9jb25zaXN0ZW50IGFwcHJvYWNoLCBVSUtpdCBkb2Vzbid0IGhhdmUgYW55dGhp
bmcgbGlrZQorICAgICAgICBgVUlDYWxsb3V0QmFyYCBmb3IgY29udGV4dG1lbnUgaW50ZXJhY3Rp
b25zLCBhbmQgdGhpcyBpcyBvbmx5IHVzZWQgaW5zaWRlIFdLVFIgKHdoaWNoIGhhcyBubworICAg
ICAgICBvdGhlciBVSSBvdXRzaWRlIHRoYW4gdGhlIHBhZ2UpLCBzbyBpdCdzIGV4cGVjdGVkIHRo
YXQgY2FsbGVycyBrbm93IHdoYXQgdGhleSdyZSBkb2luZy4KKwogMjAyMS0wMi0wOCAgU3RlcGhh
bmllIExld2lzICA8c2xld2lzQGFwcGxlLmNvbT4KIAogICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzA0MDI1OTM+IE1vdGlvbm1hcmsgZmFpbGVkIHRvIHN0YXJ0IHdlYnNlcnZlcgpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCmluZGV4
IDVkZDFmZTc1ZTYyMjkxYWNmYTcwM2UwMGJlODJiYTRhM2FlOWZlMmEuLjdlOWQxN2FjNzVjNmE3
YzVjZGE3YTZkMzBjZDBiYzEzMjA1MjAyODMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KQEAgLTEwMzQsMjkgKzEwMzQsMzcg
QEAgSlNPYmplY3RSZWYgVUlTY3JpcHRDb250cm9sbGVySU9TOjpyZWN0Rm9yTWVudUFjdGlvbihK
U1N0cmluZ1JlZiBqc0FjdGlvbikgY29uc3QKIAogV2ViQ29yZTo6RmxvYXRSZWN0IFVJU2NyaXB0
Q29udHJvbGxlcklPUzo6cmVjdEZvck1lbnVBY3Rpb24oQ0ZTdHJpbmdSZWYgYWN0aW9uKSBjb25z
dAogewotICAgIFVJV2luZG93ICp3aW5kb3dGb3JCdXR0b24gPSBuaWw7Ci0gICAgVUlCdXR0b24g
KmJ1dHRvbkZvckFjdGlvbiA9IG5pbDsKLSAgICBVSVZpZXcgKmNhbGxvdXRCYXIgPSBVSUNhbGxv
dXRCYXIuYWN0aXZlQ2FsbG91dEJhcjsKLSAgICBpZiAoIWNhbGxvdXRCYXIud2luZG93KQotICAg
ICAgICByZXR1cm4geyB9OworICAgIFVJVmlldyAqdmlld0ZvckFjdGlvbiA9IG5pbDsKKyAgICBV
SVdpbmRvdyAqd2luZG93ID0gd2ViVmlldygpLndpbmRvdzsKIAotICAgIGZvciAoVUlCdXR0b24g
KmJ1dHRvbiBpbiBmaW5kQWxsVmlld3NJbkhpZXJhcmNoeU9mVHlwZShjYWxsb3V0QmFyLCBVSUJ1
dHRvbi5jbGFzcykpIHsKLSAgICAgICAgTlNTdHJpbmcgKmJ1dHRvblRpdGxlID0gW2J1dHRvbiB0
aXRsZUZvclN0YXRlOlVJQ29udHJvbFN0YXRlTm9ybWFsXTsKLSAgICAgICAgaWYgKCFidXR0b25U
aXRsZS5sZW5ndGgpCi0gICAgICAgICAgICBjb250aW51ZTsKKyAgICBpZiAoVUlWaWV3ICpjYWxs
b3V0QmFyID0gVUlDYWxsb3V0QmFyLmFjdGl2ZUNhbGxvdXRCYXI7IGNhbGxvdXRCYXIud2luZG93
KSB7CisgICAgICAgIGZvciAoVUlCdXR0b24gKmJ1dHRvbiBpbiBmaW5kQWxsVmlld3NJbkhpZXJh
cmNoeU9mVHlwZShjYWxsb3V0QmFyLCBVSUJ1dHRvbi5jbGFzcykpIHsKKyAgICAgICAgICAgIE5T
U3RyaW5nICpidXR0b25UaXRsZSA9IFtidXR0b24gdGl0bGVGb3JTdGF0ZTpVSUNvbnRyb2xTdGF0
ZU5vcm1hbF07CisgICAgICAgICAgICBpZiAoIWJ1dHRvblRpdGxlLmxlbmd0aCkKKyAgICAgICAg
ICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBpZiAoIVtidXR0b25UaXRsZSBpc0VxdWFsVG9T
dHJpbmc6KF9fYnJpZGdlIE5TU3RyaW5nICopYWN0aW9uXSkKLSAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICAgICAgaWYgKCFbYnV0dG9uVGl0bGUgaXNFcXVhbFRvU3RyaW5nOihfX2JyaWRn
ZSBOU1N0cmluZyAqKWFjdGlvbl0pCisgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAg
ICAgYnV0dG9uRm9yQWN0aW9uID0gYnV0dG9uOwotICAgICAgICB3aW5kb3dGb3JCdXR0b24gPSBj
YWxsb3V0QmFyLndpbmRvdzsKLSAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB2aWV3Rm9yQWN0
aW9uID0gYnV0dG9uOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICB9CiAKLSAg
ICBpZiAoIWJ1dHRvbkZvckFjdGlvbikKKyAgICBpZiAoIXZpZXdGb3JBY3Rpb24pIHsKKyAgICAg
ICAgZm9yIChVSUxhYmVsICpsYWJlbCBpbiBmaW5kQWxsVmlld3NJbkhpZXJhcmNoeU9mVHlwZSh3
aW5kb3csIFVJTGFiZWwuY2xhc3MpKSB7CisgICAgICAgICAgICBpZiAoIVtsYWJlbC50ZXh0IGlz
RXF1YWxUb1N0cmluZzooX19icmlkZ2UgTlNTdHJpbmcgKilhY3Rpb25dKQorICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICB2aWV3Rm9yQWN0aW9uID0gbGFiZWw7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghdmlld0ZvckFjdGlv
bikKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIENHUmVjdCByZWN0SW5Sb290Vmlld0Nvb3Jk
aW5hdGVzID0gW2J1dHRvbkZvckFjdGlvbiBjb252ZXJ0UmVjdDpidXR0b25Gb3JBY3Rpb24uYm91
bmRzIHRvVmlldzpwbGF0Zm9ybUNvbnRlbnRWaWV3KCldOworICAgIENHUmVjdCByZWN0SW5Sb290
Vmlld0Nvb3JkaW5hdGVzID0gW3ZpZXdGb3JBY3Rpb24gY29udmVydFJlY3Q6dmlld0ZvckFjdGlv
bi5ib3VuZHMgdG9WaWV3OnBsYXRmb3JtQ29udGVudFZpZXcoKV07CiAgICAgcmV0dXJuIFdlYkNv
cmU6OkZsb2F0UmVjdChyZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzLm9yaWdpbi54LCByZWN0SW5S
b290Vmlld0Nvb3JkaW5hdGVzLm9yaWdpbi55LCByZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzLnNp
emUud2lkdGgsIHJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMuc2l6ZS5oZWlnaHQpOwogfQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggODk1MWNmZTAyMjExZWMxOGViNDZjYTE1M2M2MjBhYWZkYWI0OGNlNi4uNzQ4YzI2ZGFh
MTE2ZDI0NWRhODkwMDg1ZWE3ZGRiMzA5ZDY4MzY5YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisy
MDIxLTAyLTA5ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBb
aU9TXSBBZGQgc3VwcG9ydCBmb3IgdGhlIGxhbmd1YWdlL3N1YnRpdGxlIHRyYWNrcyBidXR0b24g
dXNpbmcgYFVJTWVudWAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMTU5NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQxMjkxMjk+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzOgorICAgICAg
ICAoZ2V0VHJhY2tzQ29udGV4dE1lbnUpOiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4
dC10cmFjay5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJhY2staW4tY29udGV4dG1l
bnUuaHRtbDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1jbGljay10cmFjay1pbi1jb250ZXh0bWVu
dS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10cmFja3MtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
aW9zL3RyYWNrcy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNrLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1
cHBvcnQtb2ZmLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0
LXNob3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXNob3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xp
Y2stb24tdHJhY2tzLWJ1dHRvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQt
dGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1
cHBvcnQtdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgIER1cGxpY2F0ZSBleGlzdGluZyBgVHJhY2tzU3VwcG9ydGAgdGVzdHMgdG8g
dGVzdCBmb3Igc2ltaWxhciByZXN1bHRzIGJ1dCB1c2luZyB0aGUgbmV3IGlPUyBwYXRoLgorCisg
ICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90
cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2suaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3Vw
cG9ydC1hdXRvLXRleHQtdHJhY2suaHRtbC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFj
ay1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtYXV0by10ZXh0LXRyYWNr
LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNrLWluLXBhbmVsLmh0bWw6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJhY2staW4tcGFuZWwuaHRtbC4KKyAg
ICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3Ry
YWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNrLWluLXBhbmVsLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC90cmFja3Mtc3VwcG9ydC1jbGljay10cmFjay1pbi1wYW5lbC1leHBlY3RlZC50eHQuCisgICAg
ICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFj
a3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQt
aGlkZGVuLXRyYWNrcy5odG1sLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy1leHBlY3Rl
ZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy1leHBlY3RlZC50
eHQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L21hYy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay5odG1sOiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNr
cy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNrLmh0bWwuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10
cmFjay1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJh
Y2stZXhwZWN0ZWQudHh0LgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQtcG9wdWxhdGUtcGFuZWwu
aHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LWFuZC1wb3B1bGF0ZS1wYW5lbC5o
dG1sLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQtcG9wdWxhdGUtcGFuZWwtZXhwZWN0ZWQudHh0
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLWV4cGVj
dGVkLnR4dC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJv
bHMuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdn
aW5nLWNvbnRyb2xzLmh0bWwuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdn
aW5nLWNvbnRyb2xzLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93
LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xzLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBt
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBw
b3J0LXNob3ctcGFuZWwtZnVsbHNjcmVlbi5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0
LXNob3ctcGFuZWwtZnVsbHNjcmVlbi5odG1sLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1m
dWxsc2NyZWVuLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LXBh
bmVsLWZ1bGxzY3JlZW4tZXhwZWN0ZWQudHh0LgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC10
aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tz
LXN1cHBvcnQtc2hvdy1wYW5lbC10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0
bWwuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNr
cy1idXR0b24tZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFu
ZWwtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi1leHBlY3RlZC50eHQuCisgICAg
ICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFj
a3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRtbDogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRt
bC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
bWFjL3RyYWNrcy1zdXBwb3J0LXRleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS1leHBl
Y3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3RlZC12
aWEtbWVkaWEtYXBpLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4
cGVjdGF0aW9uczoKKyAgICAgICAgTW92ZWQgZXhpc3RpbmcgYFRyYWNrc1N1cHBvcnRgIHRlc3Rz
IHRvIGEgYG1hY2Agc3ViZm9sZGVyIHNvIHRoZXkgY2FuIGJlIHNraXBwZWQgb24gaU9TLgorCiAy
MDIxLTAyLTA4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJFR1JFU1NJT04gKHIyNjk0NTgpOiB5YWhvby5jb20gc29jaWFsIC8gY29tbWVudHMgYmFy
IHNob3dzIGFzIHRyYW5zcGFyZW50IHdoZW4gc2Nyb2xsaW5nIHBhZ2UKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9yZXNvdXJjZXMvbWVkaWEtY29u
dHJvbHMtdXRpbHMuanMgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
cmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzCmluZGV4IDNlNzJhODUzZGY5YTcwYjkw
ODcwZDM3ODI4YjY3YzhiMGNjNTU5MzcuLjJkYzhmNGI1MjFhYTcyYjU0NzViMGMzNjIwZTk2NWIy
Njc3ZjU0ODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMKKysrIGIvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGls
cy5qcwpAQCAtMTAzLDYgKzEwMywyMiBAQCBmdW5jdGlvbiBzaG93VHJhY2tzUGFuZWwoc2hhZG93
Um9vdCwgY29udGludWF0aW9uKQogICAgIH0pOwogfQogCitmdW5jdGlvbiBnZXRUcmFja3NDb250
ZXh0TWVudSgpCit7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAg
ICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYAorICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICBmdW5jdGlvbiBzY3JpcHRDb21wbGV0ZVdpdGhDb250ZXh0TWVudSgpIHsKKyAgICAg
ICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZShKU09OLnN0cmluZ2lmeSh1
aUNvbnRyb2xsZXIuY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtKCdtZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnUnKSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCF1aUNvbnRyb2xs
ZXIuaXNTaG93aW5nQ29udGV4dE1lbnUpCisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLmRp
ZFNob3dDb250ZXh0TWVudUNhbGxiYWNrID0gc2NyaXB0Q29tcGxldGVXaXRoQ29udGV4dE1lbnU7
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc2NyaXB0Q29tcGxldGVXaXRoQ29u
dGV4dE1lbnUoKTsKKyAgICAgICAgfSkoKTtgLCAocmVzdWx0KSA9PiByZXNvbHZlKEpTT04ucGFy
c2UocmVzdWx0KS5tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUpKTsKKyAgICB9KTsKK30KKwogZnVu
Y3Rpb24gZmluaXNoTWVkaWFDb250cm9sc1Rlc3QoKQogewogICAgIGlmIChzY2hlZHVsZXIpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
aW9zL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTQ0NGI2OTU0NzVhYTQ0MjE3ODI1OWViODk3YWY0N2M2MjBhY2RhNAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtYXV0by10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDU5IEBACitFbnN1cmUgd2UgaGF2ZSB0aGUgQXV0byB0ZXh0IHRyYWNrIHNlbGVjdGVk
IGJ5IGRlZmF1bHQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHNoYWRv
d1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJv
bSBudWxsCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitTZXR0
aW5nIGNhcHRpb24gZGlzcGxheSBtb2RlIHRvICdhdXRvbWF0aWMnLi4uCitUYXBwaW5nIHRyYWNr
cyBidXR0b24uLi4KK1sKKyAgeworICAgICJjaGlsZHJlbiI6IFsKKyAgICAgIHsKKyAgICAgICAg
InRpdGxlIjogIkxhbmd1YWdlcyIsCisgICAgICAgICJjaGlsZHJlbiI6IFsKKyAgICAgICAgICB7
CisgICAgICAgICAgICAidGl0bGUiOiAiRW5nbGlzaCBTb3VuZCIsCisgICAgICAgICAgICAiY2hl
Y2tlZCI6IHRydWUKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICJ0aXRs
ZSI6ICJGcmVuY2ggU291bmQiCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAg
ICAidGl0bGUiOiAiU3BhbmlzaCBTb3VuZCIKKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAg
IH0sCisgICAgICB7CisgICAgICAgICJ0aXRsZSI6ICJTdWJ0aXRsZXMiLAorICAgICAgICAiY2hp
bGRyZW4iOiBbCisgICAgICAgICAgeworICAgICAgICAgICAgInRpdGxlIjogIk9mZiIKKyAgICAg
ICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICJ0aXRsZSI6ICJBdXRvIChSZWNvbW1l
bmRlZCkiLAorICAgICAgICAgICAgImNoZWNrZWQiOiB0cnVlCisgICAgICAgICAgfSwKKyAgICAg
ICAgICB7CisgICAgICAgICAgICAidGl0bGUiOiAiRW5nbGlzaCBTdWJ0aXRsZXMiCisgICAgICAg
ICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAidGl0bGUiOiAiRnJlbmNoIFN1YnRpdGxl
cyIKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICJ0aXRsZSI6ICJHZXJt
YW4gU3VidGl0bGVzIgorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgInRp
dGxlIjogIlNwYW5pc2ggU3VidGl0bGVzIgorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAg
fQorICAgIF0KKyAgfQorXQorU2V0dGluZyBjYXB0aW9uIGRpc3BsYXkgbW9kZSB0byAnZm9yY2Vk
b25seScuLi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay5odG1sIGIv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lv
cy90cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNWJlYmMx
ODVmNDE5MTJjMjJiNWE3YTQ5OGU1MDc5MDMxNTYwNTZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90
cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2suaHRtbApAQCAtMCwwICsxLDQyIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMt
dXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91
aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzx2aWRlbyBzcmM9Ii4uLy4uLy4u
L2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVm
dDogMDsgdG9wOiAwOyB3aWR0aDogMzAwcHg7IiBhdXRvcGxheSBjb250cm9scyBtdXRlZCBwbGF5
c2lubGluZT48L3ZpZGVvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCJFbnN1cmUgd2UgaGF2ZSB0
aGUgQXV0byB0ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5IGRlZmF1bHQuIik7CisKK2NvbnN0IG1lZGlh
ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3
aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOworCittZWRpYS5hZGRFdmVudExpc3Rl
bmVyKCJwbGF5IiwgKCkgPT4geworICAgIG1lZGlhLnBhdXNlKCk7CisKKyAgICBzaG91bGRCZWNv
bWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwg
Im51bGwiLCAoKSA9PiB7CisgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9v
dC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCku
d2lkdGgiLCAiMCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGRlYnVnKCJTZXR0aW5nIGNh
cHRpb24gZGlzcGxheSBtb2RlIHRvICdhdXRvbWF0aWMnLi4uIik7CisgICAgICAgICAgICB3aW5k
b3cuaW50ZXJuYWxzLnNldENhcHRpb25EaXNwbGF5TW9kZSgiYXV0b21hdGljIik7CisKKyAgICAg
ICAgICAgIGRlYnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4iKTsKKyAgICAgICAgICAgIGxl
dCBbY29udGV4dG1lbnVdID0gYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGdl
dFRyYWNrc0NvbnRleHRNZW51KCksCisgICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpLAorICAgICAgICAgICAgXSk7
CisgICAgICAgICAgICBkZWJ1ZyhKU09OLnN0cmluZ2lmeShjb250ZXh0bWVudSwgbnVsbCwgMikp
OworCisgICAgICAgICAgICBkZWJ1ZygiU2V0dGluZyBjYXB0aW9uIGRpc3BsYXkgbW9kZSB0byAn
Zm9yY2Vkb25seScuLi4iKTsKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0Q2FwdGlv
bkRpc3BsYXlNb2RlKCJmb3JjZWRvbmx5Iik7CisKKyAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgp
OworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0pOworfSk7
CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9y
dC1jbGljay10cmFjay1pbi1jb250ZXh0bWVudS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBw
b3J0LWNsaWNrLXRyYWNrLWluLWNvbnRleHRtZW51LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
YmNmMDUyOTZmMGU2YjIzZGNmNTJjNTYyOGRjMWVlMDM2NGM2MjE1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L2lvcy90cmFja3Mtc3VwcG9ydC1jbGljay10cmFjay1pbi1jb250ZXh0bWVudS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwyNiBAQAorQ2xpY2tpbmcgb24gYSB0cmFjayBpbiB0aGUgdHJhY2tzIGNv
bnRleHRtZW51LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworbWVkaWEuYXVkaW9U
cmFja3NbMF0uZW5hYmxlZCA9IHRydWUKK21lZGlhLmF1ZGlvVHJhY2tzWzFdLmVuYWJsZWQgPSBm
YWxzZQorbWVkaWEuYXVkaW9UcmFja3NbMl0uZW5hYmxlZCA9IGZhbHNlCitQQVNTIHNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBu
dWxsCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitUYXBwaW5n
IHRyYWNrcyBidXR0b24uLi4KK1NlbGVjdGluZyBzZWNvbmQgYXVkaW8gdHJhY2suLi4KK0F1ZGlv
IHRyYWNrcyBjaGFuZ2VkLgorbWVkaWEuYXVkaW9UcmFja3NbMF0uZW5hYmxlZCA9IGZhbHNlCitt
ZWRpYS5hdWRpb1RyYWNrc1sxXS5lbmFibGVkID0gdHJ1ZQorbWVkaWEuYXVkaW9UcmFja3NbMl0u
ZW5hYmxlZCA9IGZhbHNlCitUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KK1NlbGVjdGluZyB0aGly
ZCBhdWRpbyB0cmFjay4uLgorQXVkaW8gdHJhY2tzIGNoYW5nZWQuCittZWRpYS5hdWRpb1RyYWNr
c1swXS5lbmFibGVkID0gZmFsc2UKK21lZGlhLmF1ZGlvVHJhY2tzWzFdLmVuYWJsZWQgPSBmYWxz
ZQorbWVkaWEuYXVkaW9UcmFja3NbMl0uZW5hYmxlZCA9IHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1z
dXBwb3J0LWNsaWNrLXRyYWNrLWluLWNvbnRleHRtZW51Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0
LWNsaWNrLXRyYWNrLWluLWNvbnRleHRtZW51Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2EwOTUzZjRkYzU0
MjQxN2E4Y2Q3Y2VhMzJmNDFmNDY2ODhiMzg4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tz
LXN1cHBvcnQtY2xpY2stdHJhY2staW4tY29udGV4dG1lbnUuaHRtbApAQCAtMCwwICsxLDg1IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvbWVkaWEtY29u
dHJvbHMtdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzx2aWRlbyBzcmM9Ii4u
Ly4uLy4uL2NvbnRlbnQvYXVkaW8tdHJhY2tzLm1wNCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0
ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDogMzAwcHg7IiBjb250cm9scyBhdXRvcGxheSBtdXRl
ZCBwbGF5c2lubGluZT48L3ZpZGVvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgor
Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCJDbGlja2luZyBv
biBhIHRyYWNrIGluIHRoZSB0cmFja3MgY29udGV4dG1lbnUuIik7CisKK2NvbnN0IG1lZGlhID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5k
b3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOworCitsZXQgcHJldmlvdXNseVNlbGVjdGVk
VHJhY2sgPSAwOworCittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4geworICAg
IG1lZGlhLnBhdXNlKCk7CisKKyAgICBkdW1wQXVkaW9UcmFja3NFbmFibGVkU3RhdGUoKTsKKwor
ICAgIG1lZGlhLmF1ZGlvVHJhY2tzLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIGhhbmRsZUF1
ZGlvVHJhY2tzQ2hhbmdlKTsKKworICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9v
dC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAibnVsbCIsICgpID0+IHsKKyAgICAg
ICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRv
bi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCIsICIwIiwgKCkgPT4gewor
ICAgICAgICAgICAgY2xpY2tPblRyYWNrc0J1dHRvbihjbGlja09uU2Vjb25kQXVkaW9UcmFjayk7
CisgICAgICAgIH0pOworICAgIH0pOworfSk7CisKK2Z1bmN0aW9uIGNsaWNrT25UcmFja3NCdXR0
b24oY29udGludWF0aW9uKQoreworICAgIGRlYnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4i
KTsKKyAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50
cmFja3MiKSwgKCkgPT4geworICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNv
bnRpbnVhdGlvbik7CisgICAgfSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGNsaWNrT25TZWNvbmRB
dWRpb1RyYWNrKCkKK3sKKyAgICBkZWJ1ZygiU2VsZWN0aW5nIHNlY29uZCBhdWRpbyB0cmFjay4u
LiIpOworICAgIGxldCBjb250ZXh0bWVudSA9IGF3YWl0IGdldFRyYWNrc0NvbnRleHRNZW51KCk7
CisgICAgYXdhaXQgVUlIZWxwZXIuY2hvb3NlTWVudUFjdGlvbihjb250ZXh0bWVudVswXS5jaGls
ZHJlblsxXS50aXRsZSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGNsaWNrT25UaGlyZEF1ZGlvVHJh
Y2soKQoreworICAgIGRlYnVnKCJTZWxlY3RpbmcgdGhpcmQgYXVkaW8gdHJhY2suLi4iKTsKKyAg
ICBsZXQgY29udGV4dG1lbnUgPSBhd2FpdCBnZXRUcmFja3NDb250ZXh0TWVudSgpOworICAgIGF3
YWl0IFVJSGVscGVyLmNob29zZU1lbnVBY3Rpb24oY29udGV4dG1lbnVbMF0uY2hpbGRyZW5bMl0u
dGl0bGUpOworfQorCithc3luYyBmdW5jdGlvbiBoYW5kbGVBdWRpb1RyYWNrc0NoYW5nZSgpCit7
CisgICAgY29uc3QgbmV3U2VsZWN0ZWRUcmFjayA9IEFycmF5LmZyb20obWVkaWEuYXVkaW9UcmFj
a3MpLmZpbmRJbmRleCh0cmFjayA9PiB0cmFjay5lbmFibGVkKTsKKyAgICBpZiAocHJldmlvdXNs
eVNlbGVjdGVkVHJhY2sgPT09IG5ld1NlbGVjdGVkVHJhY2spCisgICAgICAgIHJldHVybjsKKwor
ICAgIHByZXZpb3VzbHlTZWxlY3RlZFRyYWNrID0gbmV3U2VsZWN0ZWRUcmFjazsKKworICAgIGRl
YnVnKCJBdWRpbyB0cmFja3MgY2hhbmdlZC4iKTsKKworICAgIGR1bXBBdWRpb1RyYWNrc0VuYWJs
ZWRTdGF0ZSgpOworCisgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvckNvbnRleHRNZW51VG9IaWRl
KCk7CisKKyAgICBpZiAobWVkaWEuYXVkaW9UcmFja3NbMV0uZW5hYmxlZCkKKyAgICAgICAgY2xp
Y2tPblRyYWNrc0J1dHRvbihjbGlja09uVGhpcmRBdWRpb1RyYWNrKTsKKyAgICBlbHNlIGlmICht
ZWRpYS5hdWRpb1RyYWNrc1syXS5lbmFibGVkKSB7CisgICAgICAgIG1lZGlhLnJlbW92ZSgpOwor
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGR1bXBBdWRpb1Ry
YWNrc0VuYWJsZWRTdGF0ZSgpCit7CisgICAgQXJyYXkuZnJvbShtZWRpYS5hdWRpb1RyYWNrcyku
Zm9yRWFjaCgoYXVkaW9UcmFjaywgaW5kZXgpID0+IHsKKyAgICAgICAgZGVidWcoYG1lZGlhLmF1
ZGlvVHJhY2tzWyR7aW5kZXh9XS5lbmFibGVkID0gJHttZWRpYS5hdWRpb1RyYWNrc1tpbmRleF0u
ZW5hYmxlZH1gKTsKKyAgICB9KTsKK30KKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10cmFja3MtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90
cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Yjg2
NTZmODg5ODZiNWNmMGNkZjQxMTZiZjdjMmNmMmQ0ZmY5Nzc1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lv
cy90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU4
IEBACitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGhlIHRyYWNrcyBjb250ZXh0bWVudSBkb2Vzbid0
IHNob3cgYW55IHRyYWNrIGFzIHNlbGVjdGVkIGlmIGFsbCB0aGUgdGV4dCB0cmFja3MgZm9yIGEg
bWVkaWEgZWxlbWVudCBhcmUgbWFya2VkIGFzICJoaWRkZW4iLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFj
a3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2Vs
ZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNh
bWUgZGlmZmVyZW50IGZyb20gMAorU2V0dGluZyBtb2RlIHRvICdoaWRkZW4nIGZvciBhbGwgdGV4
dCB0cmFja3MgdmlhIEphdmFTY3JpcHQuLi4KK1RhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgorWwor
ICB7CisgICAgImNoaWxkcmVuIjogWworICAgICAgeworICAgICAgICAidGl0bGUiOiAiTGFuZ3Vh
Z2VzIiwKKyAgICAgICAgImNoaWxkcmVuIjogWworICAgICAgICAgIHsKKyAgICAgICAgICAgICJ0
aXRsZSI6ICJFbmdsaXNoIFNvdW5kIiwKKyAgICAgICAgICAgICJjaGVja2VkIjogdHJ1ZQorICAg
ICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgInRpdGxlIjogIkZyZW5jaCBTb3Vu
ZCIKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICJ0aXRsZSI6ICJTcGFu
aXNoIFNvdW5kIgorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgIHsKKyAg
ICAgICAgInRpdGxlIjogIlN1YnRpdGxlcyIsCisgICAgICAgICJjaGlsZHJlbiI6IFsKKyAgICAg
ICAgICB7CisgICAgICAgICAgICAidGl0bGUiOiAiT2ZmIiwKKyAgICAgICAgICAgICJjaGVja2Vk
IjogdHJ1ZQorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgInRpdGxlIjog
IkF1dG8gKFJlY29tbWVuZGVkKSIKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAg
ICAgICJ0aXRsZSI6ICJFbmdsaXNoIFN1YnRpdGxlcyIKKyAgICAgICAgICB9LAorICAgICAgICAg
IHsKKyAgICAgICAgICAgICJ0aXRsZSI6ICJGcmVuY2ggU3VidGl0bGVzIgorICAgICAgICAgIH0s
CisgICAgICAgICAgeworICAgICAgICAgICAgInRpdGxlIjogIkdlcm1hbiBTdWJ0aXRsZXMiCisg
ICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAidGl0bGUiOiAiU3BhbmlzaCBT
dWJ0aXRsZXMiCisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICB9CisgICAgXQorICB9Citd
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1z
dXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLmh0bWwgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1z
dXBwb3J0LWhpZGRlbi10cmFja3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZGU0ZjhkNjgzNmRjZmJlYmIy
MmEyZDE1ODI5ZmMyNWIyNWJhY2U4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9y
dC1oaWRkZW4tdHJhY2tzLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPGJvZHk+Cis8dmlkZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50L0NDK1N1
YnRpdGxlcy5tb3YiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsg
d2lkdGg6IDMwMHB4OyIgY29udHJvbHMgYXV0b3BsYXkgbXV0ZWQgcGxheXNpbmxpbmU+PC92aWRl
bz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKword2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworCitkZXNjcmlwdGlvbihgVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSB0cmFj
a3MgY29udGV4dG1lbnUgZG9lc24ndCBzaG93IGFueSB0cmFjayBhcyBzZWxlY3RlZCBpZiBhbGwg
dGhlIHRleHQgdHJhY2tzIGZvciBhIG1lZGlhIGVsZW1lbnQgYXJlIG1hcmtlZCBhcyAiaGlkZGVu
Ii5gKTsKKworY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwor
Y29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7CisK
K21lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7CisgICAgbWVkaWEucGF1c2Uo
KTsKKworICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCdidXR0b24udHJhY2tzJykiLCAibnVsbCIsICgpID0+IHsKKyAgICAgICAgc2hvdWxkQmVjb21l
RGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCIsICIwIiwgYXN5bmMgKCkgPT4geworICAgICAgICAg
ICAgZGVidWcoIlNldHRpbmcgbW9kZSB0byAnaGlkZGVuJyBmb3IgYWxsIHRleHQgdHJhY2tzIHZp
YSBKYXZhU2NyaXB0Li4uIik7CisgICAgICAgICAgICBBcnJheS5mcm9tKG1lZGlhLnRleHRUcmFj
a3MpLmZvckVhY2godHJhY2sgPT4gdHJhY2subW9kZSA9ICJoaWRkZW4iKTsKKworICAgICAgICAg
ICAgZGVidWcoIlRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLiIpOworICAgICAgICAgICAgbGV0IFtj
b250ZXh0bWVudV0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgZ2V0VHJh
Y2tzQ29udGV4dE1lbnUoKSwKKyAgICAgICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dS
b290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSksCisgICAgICAgICAgICBdKTsKKyAg
ICAgICAgICAgIGRlYnVnKEpTT04uc3RyaW5naWZ5KGNvbnRleHRtZW51LCBudWxsLCAyKSk7CisK
KyAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7
CisgICAgICAgIH0pOworICAgIH0pOworfSk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
aW9zL3RyYWNrcy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kYWNlY2QzMTBlZTI2MmY3NTdmMDAyMTU1YTg4ZDE5NWVmNmQ5Mzc5Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L2lvcy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1NyBAQAorRW5zdXJlIHdlIGhhdmUgdGhlIE9mZiB0ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5
IGRlZmF1bHQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBu
dWxsCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitUYXBwaW5n
IHRyYWNrcyBidXR0b24uLi4KK1sKKyAgeworICAgICJjaGlsZHJlbiI6IFsKKyAgICAgIHsKKyAg
ICAgICAgInRpdGxlIjogIkxhbmd1YWdlcyIsCisgICAgICAgICJjaGlsZHJlbiI6IFsKKyAgICAg
ICAgICB7CisgICAgICAgICAgICAidGl0bGUiOiAiRW5nbGlzaCBTb3VuZCIsCisgICAgICAgICAg
ICAiY2hlY2tlZCI6IHRydWUKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAg
ICJ0aXRsZSI6ICJGcmVuY2ggU291bmQiCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAg
ICAgICAgICAidGl0bGUiOiAiU3BhbmlzaCBTb3VuZCIKKyAgICAgICAgICB9CisgICAgICAgIF0K
KyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJ0aXRsZSI6ICJTdWJ0aXRsZXMiLAorICAgICAg
ICAiY2hpbGRyZW4iOiBbCisgICAgICAgICAgeworICAgICAgICAgICAgInRpdGxlIjogIk9mZiIs
CisgICAgICAgICAgICAiY2hlY2tlZCI6IHRydWUKKyAgICAgICAgICB9LAorICAgICAgICAgIHsK
KyAgICAgICAgICAgICJ0aXRsZSI6ICJBdXRvIChSZWNvbW1lbmRlZCkiCisgICAgICAgICAgfSwK
KyAgICAgICAgICB7CisgICAgICAgICAgICAidGl0bGUiOiAiRW5nbGlzaCBTdWJ0aXRsZXMiCisg
ICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAidGl0bGUiOiAiRnJlbmNoIFN1
YnRpdGxlcyIKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICJ0aXRsZSI6
ICJHZXJtYW4gU3VidGl0bGVzIgorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAg
ICAgInRpdGxlIjogIlNwYW5pc2ggU3VidGl0bGVzIgorICAgICAgICAgIH0KKyAgICAgICAgXQor
ICAgICAgfQorICAgIF0KKyAgfQorXQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQt
dHJhY2suaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2suaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wZWIzMTM0ODRlYTQ4MjM4ZjIzNmM3MGU4OTczMDc5ZDZlM2IzZWFkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1z
dXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay5odG1sCkBAIC0wLDAgKzEs
MzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9tZWRp
YS1jb250cm9scy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxib2R5PgorPHZpZGVvIHNy
Yz0iLi4vLi4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFi
c29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiAzMDBweDsiIGNvbnRyb2xzIGF1dG9wbGF5
IG11dGVkIHBsYXlzaW5saW5lPjwvdmlkZW8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCI+CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZGVzY3JpcHRpb24oIkVuc3Vy
ZSB3ZSBoYXZlIHRoZSBPZmYgdGV4dCB0cmFjayBzZWxlY3RlZCBieSBkZWZhdWx0LiIpOworCitj
b25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Citjb25zdCBzaGFk
b3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsKKworbWVkaWEuYWRk
RXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKKyAgICBtZWRpYS5wYXVzZSgpOworCisgICAg
c2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50
cmFja3MnKSIsICJudWxsIiwgKCkgPT4geworICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQo
InNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpLndpZHRoIiwgIjAiLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBkZWJ1Zygi
VGFwcGluZyB0cmFja3MgYnV0dG9uLi4uIik7CisgICAgICAgICAgICBsZXQgW2NvbnRleHRtZW51
XSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBnZXRUcmFja3NDb250ZXh0
TWVudSgpLAorICAgICAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKSwKKyAgICAgICAgICAgIF0pOworICAgICAgICAgICAg
ZGVidWcoSlNPTi5zdHJpbmdpZnkoY29udGV4dG1lbnUsIG51bGwsIDIpKTsKKworICAgICAgICAg
ICAgbWVkaWEucmVtb3ZlKCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAg
fSk7CisgICAgfSk7Cit9KTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
aW9zL3RyYWNrcy1zdXBwb3J0LXNob3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24t
dHJhY2tzLWJ1dHRvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXNob3ctY29udGV4
dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOGFmYTc1MDY4ZWMyM2RhZTA1NTBmNDhmNWUwZmQ0OGNjZDI3NGJlZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtc2hvdy1jb250ZXh0bWVudS10aGVuLWRvdWJs
ZS1jbGljay1vbi10cmFja3MtYnV0dG9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitF
bnN1cmUgdGhhdCBjbGlja2luZyB0aGUgdHJhY2tzIGJ1dHRvbiB3aGVuIHRoZSB0cmFja3MgY29u
dGV4dG1lbnUgaXMgc2hvd24gbWFrZXMgdGhlIGNvbnRleHRtZW51IGhpZGUuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0
dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIHNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndp
ZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KK0Nv
bnRleHQgbWVudSBzaG93bi4KK1RhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgorQ29udGV4dCBtZW51
IGhpZGRlbi4KK1RhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgorQ29udGV4dCBtZW51IHNob3duLgor
VGFwcGluZyB0cmFja3MgYnV0dG9uLi4uCitDb250ZXh0IG1lbnUgaGlkZGVuLgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3Mv
dHJhY2tzLXN1cHBvcnQtc2hvdy1jb250ZXh0bWVudS10aGVuLWRvdWJsZS1jbGljay1vbi10cmFj
a3MtYnV0dG9uLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXNob3ctY29udGV4dG1lbnUtdGhlbi1k
b3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkZWYyYzA3MzQx
MDAyOTI5Y2JlMWQ2Y2VjNWY2ODBiYjIwYTNlZDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNr
cy1zdXBwb3J0LXNob3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1
dHRvbi5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxib2R5PgorPHZpZGVvIHNyYz0iLi4vLi4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92
IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiAzMDBw
eDsiIGNvbnRyb2xzIGF1dG9wbGF5IG11dGVkIHBsYXlzaW5saW5lPjwvdmlkZW8+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KworZGVzY3JpcHRpb24oIkVuc3VyZSB0aGF0IGNsaWNraW5nIHRoZSB0cmFja3MgYnV0dG9uIHdo
ZW4gdGhlIHRyYWNrcyBjb250ZXh0bWVudSBpcyBzaG93biBtYWtlcyB0aGUgY29udGV4dG1lbnUg
aGlkZS4iKTsKKworY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIp
OworY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7
CisKK21lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7CisgICAgbWVkaWEucGF1
c2UoKTsKKworICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVj
dG9yKCdidXR0b24udHJhY2tzJykiLCAibnVsbCIsICgpID0+IHsKKyAgICAgICAgc2hvdWxkQmVj
b21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCIsICIwIiwgYXN5bmMgKCkgPT4geworICAgICAg
ICAgICAgZGVidWcoIlRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLiIpOworICAgICAgICAgICAgYXdh
aXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIFVJSGVscGVyLndhaXRGb3JDb250ZXh0
TWVudVRvU2hvdygpLAorICAgICAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKSwKKyAgICAgICAgICAgIF0pOworICAgICAg
ICAgICAgZGVidWcoIkNvbnRleHQgbWVudSBzaG93bi4iKTsKKworICAgICAgICAgICAgZGVidWco
IlRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLiIpOworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5h
bGwoWworICAgICAgICAgICAgICAgIFVJSGVscGVyLndhaXRGb3JDb250ZXh0TWVudVRvSGlkZSgp
LAorICAgICAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cigiYnV0dG9uLnRyYWNrcyIpKSwKKyAgICAgICAgICAgIF0pOworICAgICAgICAgICAgZGVidWco
IkNvbnRleHQgbWVudSBoaWRkZW4uIik7CisKKyAgICAgICAgICAgIGRlYnVnKCJUYXBwaW5nIHRy
YWNrcyBidXR0b24uLi4iKTsKKyAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAg
ICAgICAgICAgICBVSUhlbHBlci53YWl0Rm9yQ29udGV4dE1lbnVUb1Nob3coKSwKKyAgICAgICAg
ICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50
cmFja3MiKSksCisgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIGRlYnVnKCJDb250ZXh0IG1l
bnUgc2hvd24uIik7CisKKyAgICAgICAgICAgIGRlYnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0b24u
Li4iKTsKKyAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBV
SUhlbHBlci53YWl0Rm9yQ29udGV4dE1lbnVUb0hpZGUoKSwKKyAgICAgICAgICAgICAgICBwcmVz
c09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSksCisg
ICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIGRlYnVnKCJDb250ZXh0IG1lbnUgaGlkZGVuLiIp
OworCisgICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgICAgICB9KTsKKyAgICB9KTsKK30pOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3RlZC12aWEt
bWVkaWEtYXBpLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxl
Y3RlZC12aWEtbWVkaWEtYXBpLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTdmNzk1MDdhMzhk
ZTdkMjUxNWQ1NTI5ODEzY2ZlZWQ4NmE4ZjIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mt
c3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGktZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNTcgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCBzZXR0aW5nIGFuIGVtYmVkZGVk
IHRleHQgdHJhY2sgYXMgc2VsZWN0ZWQgdmlhIHRoZSBIVE1MTWVkaWFFbGVtZW50IEpTIEFQSXMg
d2lsbCBjb3JyZWN0bHkgc2hvdyB0aGlzIHRyYWNrIGFzIHNlbGVjdGVkLCBhbmQgdGhhdCBzZWxl
Y3RpbmcgdGhlICJBdXRvbWF0aWMgKFJlY29tbWVuZGVkKSIgdHJhY2sgd2lsbCByZXZlcnQgYmFj
ayB0byBzZWxlY3RpbmcgdGhhdCBlbnRyeS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykgYmVjYW1l
IGRpZmZlcmVudCBmcm9tIG51bGwKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0
b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVu
dCBmcm9tIDAKK1NldHRpbmcgbW9kZSB0byAnc2hvd2luZycgZm9yIGZpcnN0IHRleHQgdHJhY2sg
dmlhIEphdmFTY3JpcHQuLi4KK1RhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgorWworICB7CisgICAg
InRpdGxlIjogIlN1YnRpdGxlcyIsCisgICAgImNoaWxkcmVuIjogWworICAgICAgeworICAgICAg
ICAidGl0bGUiOiAiT2ZmIgorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgInRpdGxlIjogIkF1
dG8gKFJlY29tbWVuZGVkKSIKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJ0aXRsZSI6ICJF
bmdsaXNoIiwKKyAgICAgICAgImNoZWNrZWQiOiB0cnVlCisgICAgICB9LAorICAgICAgeworICAg
ICAgICAidGl0bGUiOiAiRnJlbmNoIgorICAgICAgfQorICAgIF0KKyAgfQorXQorU2VsZWN0aW5n
IGZpcnN0IHRleHQgdHJhY2suLi4KK1BBU1MgbWVkaWEudGV4dFRyYWNrc1swXS5tb2RlIGlzICdk
aXNhYmxlZCcKK1BBU1MgbWVkaWEudGV4dFRyYWNrc1sxXS5tb2RlIGlzICdzaG93aW5nJworVGFw
cGluZyB0cmFja3MgYnV0dG9uLi4uCitbCisgIHsKKyAgICAidGl0bGUiOiAiU3VidGl0bGVzIiwK
KyAgICAiY2hpbGRyZW4iOiBbCisgICAgICB7CisgICAgICAgICJ0aXRsZSI6ICJPZmYiCisgICAg
ICB9LAorICAgICAgeworICAgICAgICAidGl0bGUiOiAiQXV0byAoUmVjb21tZW5kZWQpIiwKKyAg
ICAgICAgImNoZWNrZWQiOiB0cnVlCisgICAgICB9LAorICAgICAgeworICAgICAgICAidGl0bGUi
OiAiRW5nbGlzaCIKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJ0aXRsZSI6ICJGcmVuY2gi
CisgICAgICB9CisgICAgXQorICB9CitdCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC10ZXh0LXRy
YWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtdGV4dC10
cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDY4OGM3MjFjNTE4
NDVkNTAzYjI4ZDEzNmE4MmFjYjRiNDMxYzQ1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tz
LXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLmh0bWwKQEAgLTAsMCAr
MSw1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL21l
ZGlhLWNvbnRyb2xzLXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8dmlkZW8g
c3JjPSIuLi8uLi8uLi9jb250ZW50L2NvdW50aW5nLXN1YnRpdGxlZC5tNHYiIHN0eWxlPSJwb3Np
dGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDMwMHB4OyIgY29udHJvbHMg
YXV0b3BsYXkgbXV0ZWQgcGxheXNpbmxpbmU+PC92aWRlbz4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij4KKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitkZXNjcmlwdGlv
bihgVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHNldHRpbmcgYW4gZW1iZWRkZWQgdGV4dCB0cmFjayBh
cyBzZWxlY3RlZCB2aWEgdGhlIEhUTUxNZWRpYUVsZW1lbnQgSlMgQVBJcyB3aWxsIGNvcnJlY3Rs
eSBzaG93IHRoaXMgdHJhY2sgYXMgc2VsZWN0ZWQsIGFuZCB0aGF0IHNlbGVjdGluZyB0aGUgCisi
QXV0b21hdGljIChSZWNvbW1lbmRlZCkiIHRyYWNrIHdpbGwgcmV2ZXJ0IGJhY2sgdG8gc2VsZWN0
aW5nIHRoYXQgZW50cnkuYCk7CisKK2NvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigidmlkZW8iKTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jv
b3QobWVkaWEpOworCittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4geworICAg
IG1lZGlhLnBhdXNlKCk7CisKKyAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7CisgICAgICAg
IHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24u
dHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsIGFzeW5jICgpID0+
IHsKKyAgICAgICAgICAgIGRlYnVnKCJTZXR0aW5nIG1vZGUgdG8gJ3Nob3dpbmcnIGZvciBmaXJz
dCB0ZXh0IHRyYWNrIHZpYSBKYXZhU2NyaXB0Li4uIik7CisgICAgICAgICAgICBtZWRpYS50ZXh0
VHJhY2tzWzBdLm1vZGUgPSAic2hvd2luZyI7CisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICBkZWJ1ZygiVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uIik7CisgICAgICAgICAgICAgICAg
bGV0IFtjb250ZXh0bWVudV0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAg
ICAgIGdldFRyYWNrc0NvbnRleHRNZW51KCksCisgICAgICAgICAgICAgICAgICAgIHByZXNzT25F
bGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKSwKKyAgICAg
ICAgICAgICAgICBdKTsKKyAgICAgICAgICAgICAgICBkZWJ1ZyhKU09OLnN0cmluZ2lmeShjb250
ZXh0bWVudSwgbnVsbCwgMikpOworCisgICAgICAgICAgICAgICAgZGVidWcoIlNlbGVjdGluZyBm
aXJzdCB0ZXh0IHRyYWNrLi4uIik7CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuY2hv
b3NlTWVudUFjdGlvbihjb250ZXh0bWVudVswXS5jaGlsZHJlblsxXS50aXRsZSk7CisgICAgICAg
ICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvckNvbnRleHRNZW51VG9IaWRlKCk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIHNob3VsZEJlKCJtZWRpYS50ZXh0VHJhY2tzWzBdLm1v
ZGUiLCAiJ2Rpc2FibGVkJyIpOworICAgICAgICAgICAgc2hvdWxkQmUoIm1lZGlhLnRleHRUcmFj
a3NbMV0ubW9kZSIsICInc2hvd2luZyciKTsKKworICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIGRlYnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4iKTsKKyAgICAgICAgICAgICAgICBs
ZXQgW2NvbnRleHRtZW51XSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICAg
ICAgZ2V0VHJhY2tzQ29udGV4dE1lbnUoKSwKKyAgICAgICAgICAgICAgICAgICAgcHJlc3NPbkVs
ZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpLAorICAgICAg
ICAgICAgICAgIF0pOworICAgICAgICAgICAgICAgIGRlYnVnKEpTT04uc3RyaW5naWZ5KGNvbnRl
eHRtZW51LCBudWxsLCAyKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1lZGlhLnJl
bW92ZSgpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0p
OworfSk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mt
c3VwcG9ydC1hdXRvLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1h
dXRvLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFkYWMwYjc1NWNjYmE5ODA2
OTg5NDM1ZTRmYmI3ODUzNTA2YWQ5N2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBw
b3J0LWF1dG8tdGV4dC10cmFjay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorRW5zdXJl
IHdlIGhhdmUgdGhlIEF1dG8gdGV4dCB0cmFjayBzZWxlY3RlZCBieSBkZWZhdWx0LgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3Io
J2J1dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAorUEFTUyBzaGFkb3dS
b290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2Vs
ZWN0b3IoJy50cmFja3MtcGFuZWwnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAorUEFTUyBz
aGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpLnNlbGVjdGVkJylbMV0udGV4dENvbnRlbnQg
aXMgIkF1dG8gKFJlY29tbWVuZGVkKSIKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtYXV0by10
ZXh0LXRyYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmEzZmY3NzlmMjkzZmYxY2M1NzhkNTdiNjU4YmNiNDMwZmM1ZmFkMzIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay5odG1sCkBAIC0w
LDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwv
c2NyaXB0PgorPGJvZHk+Cis8dmlkZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50L0NDK1N1YnRpdGxl
cy5tb3YiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6
IDY0MHB4OyBoZWlnaHQ6IDM2MHB4OyIgY29udHJvbHMgYXV0b3BsYXk+PC92aWRlbz4KKzxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVl
OworCitkZXNjcmlwdGlvbigiRW5zdXJlIHdlIGhhdmUgdGhlIEF1dG8gdGV4dCB0cmFjayBzZWxl
Y3RlZCBieSBkZWZhdWx0LiIpOworCitjb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoInZpZGVvIik7Citjb25zdCBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dS
b290KG1lZGlhKTsKKworbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKKyAg
ICBtZWRpYS5wYXVzZSgpOworCisgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290
LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIsICJudWxsIiwgKCkgPT4geworICAgICAg
ICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9u
LnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIiwgIjAiLCAoKSA9PiB7Cisg
ICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldENhcHRpb25EaXNwbGF5TW9kZSgiYXV0b21h
dGljIik7CisgICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3IoImJ1dHRvbi50cmFja3MiKSk7CisgICAgICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQo
InNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpIiwgIm51bGwiLCAoKSA9
PiB7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3JBbGwoJ2xpLnNlbGVjdGVkJylbMV0udGV4dENvbnRlbnQiLCAiQXV0byAoUmVj
b21tZW5kZWQpIik7CisgICAgICAgICAgICAgICAgZGVidWcoIiIpOworICAgICAgICAgICAgICAg
IHdpbmRvdy5pbnRlcm5hbHMuc2V0Q2FwdGlvbkRpc3BsYXlNb2RlKCJmb3JjZWRvbmx5Iik7Cisg
ICAgICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9KTsKKworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWNsaWNr
LXRyYWNrLWluLXBhbmVsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJh
Y2staW4tcGFuZWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyOTQxMTA1YmZhOWNlZjI2Zjdj
MzBmOGI5ZGM1MzI2OTNmMzViMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0
LWNsaWNrLXRyYWNrLWluLXBhbmVsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMyIEBACitDbGlj
a2luZyBvbiBhIHRyYWNrIGluIHRoZSB0cmFja3MgcGFuZWwuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCittZWRpYS5hdWRpb1RyYWNrc1swXS5lbmFibGVkID0gdHJ1ZQorbWVkaWEu
YXVkaW9UcmFja3NbMV0uZW5hYmxlZCA9IGZhbHNlCittZWRpYS5hdWRpb1RyYWNrc1syXS5lbmFi
bGVkID0gZmFsc2UKKworUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFj
a3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2Vs
ZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNh
bWUgZGlmZmVyZW50IGZyb20gMAorCitDbGlja2luZyBvbiB0aGUgdHJhY2tzIGJ1dHRvbgorQ2xp
Y2tpbmcgb24gc2Vjb25kIGF1ZGlvIHRyYWNrIGluIHRyYWNrcyBwYW5lbAorCitPYnRhaW5lZCBj
aGFuZ2UgZXZlbnQgb24gbWVkaWEgYXVkaW8gdHJhY2tzCittZWRpYS5hdWRpb1RyYWNrc1swXS5l
bmFibGVkID0gZmFsc2UKK21lZGlhLmF1ZGlvVHJhY2tzWzFdLmVuYWJsZWQgPSB0cnVlCittZWRp
YS5hdWRpb1RyYWNrc1syXS5lbmFibGVkID0gZmFsc2UKKworQ2xpY2tpbmcgb24gdGhlIHRyYWNr
cyBidXR0b24KK0NsaWNraW5nIG9uIHRoaXJkIGF1ZGlvIHRyYWNrIGluIHRyYWNrcyBwYW5lbAor
CitPYnRhaW5lZCBjaGFuZ2UgZXZlbnQgb24gbWVkaWEgYXVkaW8gdHJhY2tzCittZWRpYS5hdWRp
b1RyYWNrc1swXS5lbmFibGVkID0gZmFsc2UKK21lZGlhLmF1ZGlvVHJhY2tzWzFdLmVuYWJsZWQg
PSBmYWxzZQorbWVkaWEuYXVkaW9UcmFja3NbMl0uZW5hYmxlZCA9IHRydWUKKworUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMv
dHJhY2tzLXN1cHBvcnQtY2xpY2stdHJhY2staW4tcGFuZWwuaHRtbCBiL0xheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBv
cnQtY2xpY2stdHJhY2staW4tcGFuZWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZmIyY2IzYzNhMzA3YzA5
ZTNjOWMwZmZlYWU5ZTYyNDcxNTE0OTg3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3Vw
cG9ydC1jbGljay10cmFjay1pbi1wYW5lbC5odG1sCkBAIC0wLDAgKzEsOTcgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzx2aWRlbyBzcmM9Ii4uLy4uLy4uL2NvbnRlbnQvQ0MrU3Vi
dGl0bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3
aWR0aDogNjQwcHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgor
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit3aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7CisKK2Rlc2NyaXB0aW9uKCJDbGlja2luZyBvbiBhIHRyYWNrIGluIHRoZSB0cmFja3Mg
cGFuZWwuIik7CisKK2NvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8i
KTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEp
OworCitsZXQgcHJldmlvdXNseVNlbGVjdGVkVHJhY2sgPSAwOworCittZWRpYS5hZGRFdmVudExp
c3RlbmVyKCJwbGF5IiwgKCkgPT4geworICAgIG1lZGlhLnBhdXNlKCk7CisKKyAgICBkdW1wQXVk
aW9UcmFja3NFbmFibGVkU3RhdGUoKTsKKworICAgIG1lZGlhLmF1ZGlvVHJhY2tzLmFkZEV2ZW50
TGlzdGVuZXIoImNoYW5nZSIsIGF1ZGlvVHJhY2tzRGlkQ2hhbmdlKTsKKworICAgIGRlYnVnKCIi
KTsKKyAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcign
YnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7CisgICAgICAgIHNob3VsZEJlY29tZURp
ZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91
bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsICgpID0+IHsKKyAgICAgICAgICAgIGNsaWNr
T25UcmFja3NCdXR0b24oY2xpY2tPblNlY29uZEF1ZGlvVHJhY2spOworICAgICAgICB9KTsKKyAg
ICB9KTsKK30pOworCitmdW5jdGlvbiBjbGlja09uVHJhY2tzQnV0dG9uKGNvbnRpbnVhdGlvbikK
K3sKKyAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAgICAgZGVi
dWcoIiIpOworICAgICAgICBkZWJ1ZygiQ2xpY2tpbmcgb24gdGhlIHRyYWNrcyBidXR0b24iKTsK
KyAgICAgICAgY2xpY2tPbkVsZW1lbnQoc2hhZG93Um9vdC5sYXN0Q2hpbGQucXVlcnlTZWxlY3Rv
cigiYnV0dG9uLnRyYWNrcyIpKTsKKyAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFt
ZShjb250aW51YXRpb24pOworICAgIH0pOworfQorCitmdW5jdGlvbiBjbGlja09uU2Vjb25kQXVk
aW9UcmFjaygpCit7CisgICAgZGVidWcoIkNsaWNraW5nIG9uIHNlY29uZCBhdWRpbyB0cmFjayBp
biB0cmFja3MgcGFuZWwiKTsKKyAgICBjbGlja09uQXVkaW9UcmFja0F0SW5kZXgoMSk7Cit9CisK
K2Z1bmN0aW9uIGNsaWNrT25UaGlyZEF1ZGlvVHJhY2soKQoreworICAgIGRlYnVnKCJDbGlja2lu
ZyBvbiB0aGlyZCBhdWRpbyB0cmFjayBpbiB0cmFja3MgcGFuZWwiKTsKKyAgICBjbGlja09uQXVk
aW9UcmFja0F0SW5kZXgoMik7Cit9CisKK2Z1bmN0aW9uIGNsaWNrT25BdWRpb1RyYWNrQXRJbmRl
eChpbmRleCkKK3sKKyAgICBjbGlja09uRWxlbWVudChzaGFkb3dSb290Lmxhc3RDaGlsZC5xdWVy
eVNlbGVjdG9yQWxsKCJsaSIpW2luZGV4XSk7Cit9CisKK2Z1bmN0aW9uIGNsaWNrT25FbGVtZW50
KGVsZW1lbnQpCit7CisgICAgY29uc3QgYm91bmRzID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhib3VuZHMubGVmdCArIDEsIGJv
dW5kcy50b3AgKyAxKTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZVVwKCk7Cit9CisKK2Z1bmN0aW9uIGF1ZGlvVHJhY2tzRGlkQ2hhbmdlKCkKK3sK
KyAgICBjb25zdCBuZXdTZWxlY3RlZFRyYWNrID0gQXJyYXkuZnJvbShtZWRpYS5hdWRpb1RyYWNr
cykuZmluZEluZGV4KHRyYWNrID0+IHRyYWNrLmVuYWJsZWQpOworICAgIGlmIChwcmV2aW91c2x5
U2VsZWN0ZWRUcmFjayA9PT0gbmV3U2VsZWN0ZWRUcmFjaykKKyAgICAgICAgcmV0dXJuOworCisg
ICAgcHJldmlvdXNseVNlbGVjdGVkVHJhY2sgPSBuZXdTZWxlY3RlZFRyYWNrOworCisgICAgZGVi
dWcoIiIpOworICAgIGRlYnVnKCJPYnRhaW5lZCBjaGFuZ2UgZXZlbnQgb24gbWVkaWEgYXVkaW8g
dHJhY2tzIik7CisKKyAgICBkdW1wQXVkaW9UcmFja3NFbmFibGVkU3RhdGUoKTsKKworICAgIGlm
IChtZWRpYS5hdWRpb1RyYWNrc1sxXS5lbmFibGVkKQorICAgICAgICBzaGFkb3dSb290LnF1ZXJ5
U2VsZWN0b3IoIi50cmFja3MtcGFuZWwiKS5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5k
IiwgZXZlbnQgPT4gY2xpY2tPblRyYWNrc0J1dHRvbihjbGlja09uVGhpcmRBdWRpb1RyYWNrKSk7
CisgICAgZWxzZSBpZiAobWVkaWEuYXVkaW9UcmFja3NbMl0uZW5hYmxlZCkgeworICAgICAgICBk
ZWJ1ZygiIik7CisgICAgICAgIG1lZGlhLnJlbW92ZSgpOworICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGR1bXBBdWRpb1RyYWNrc0VuYWJsZWRTdGF0ZSgpCit7
CisgICAgQXJyYXkuZnJvbShtZWRpYS5hdWRpb1RyYWNrcykuZm9yRWFjaCgoYXVkaW9UcmFjaywg
aW5kZXgpID0+IHsKKyAgICAgICAgZGVidWcoYG1lZGlhLmF1ZGlvVHJhY2tzWyR7aW5kZXh9XS5l
bmFibGVkID0gJHttZWRpYS5hdWRpb1RyYWNrc1tpbmRleF0uZW5hYmxlZH1gKTsKKyAgICB9KTsK
K30KKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBw
b3J0LWhpZGRlbi10cmFja3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1oaWRkZW4t
dHJhY2tzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YWQzZmMxOTZiNjU5OTVmM2E3MDRjN2My
MTc4MGY1MzMyNmFiODRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1oaWRk
ZW4tdHJhY2tzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBACitUaGlzIHRlc3QgY2hlY2tz
IHRoYXQgdGhlIHRyYWNrcyBwYW5lbCBkb2Vzbid0IHNob3cgYW55IHRyYWNrIGFzIHNlbGVjdGVk
IGlmIGFsbCB0aGUgdGV4dCB0cmFja3MgZm9yIGEgbWVkaWEgZWxlbWVudCBhcmUgbWFya2VkIGFz
ICJoaWRkZW4iLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzaGFkb3dS
b290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20g
bnVsbAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAorCis9PT0g
SW5pdGlhbCBzdGF0ZSA9PT0KKworW3hdIE9mZgorWy1dIEF1dG8gKFJlY29tbWVuZGVkKQorWy1d
IEVuZ2xpc2ggU3VidGl0bGVzCitbLV0gRnJlbmNoIFN1YnRpdGxlcworWy1dIEdlcm1hbiBTdWJ0
aXRsZXMKK1stXSBTcGFuaXNoIFN1YnRpdGxlcworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1o
aWRkZW4tdHJhY2tzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10cmFja3MuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jOWEyYjUzNzY3MTFjZmQ5MmE4YzRkOWQ5MTgxNmNiZWVkYzBlODNmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLmh0bWwKQEAgLTAs
MCArMSw3MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxib2R5PgorPHZpZGVvIHNyYz0iLi4v
Li4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRl
OyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiA2NDBweDsgaGVpZ2h0OiAzNjBweDsiIGNvbnRyb2xz
IGF1dG9wbGF5PjwvdmlkZW8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK3dp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZGVzY3JpcHRpb24oYFRoaXMgdGVzdCBjaGVj
a3MgdGhhdCB0aGUgdHJhY2tzIHBhbmVsIGRvZXNuJ3Qgc2hvdyBhbnkgdHJhY2sgYXMgc2VsZWN0
ZWQgaWYgYWxsIHRoZSB0ZXh0IHRyYWNrcyBmb3IgYSBtZWRpYSBlbGVtZW50IGFyZSBtYXJrZWQg
YXMgImhpZGRlbiIuYCk7CisKK2NvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigi
dmlkZW8iKTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3Qo
bWVkaWEpOworCittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4geworICAgIG1l
ZGlhLnBhdXNlKCk7CisKKyAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7CisgICAgICAgIHNo
b3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJh
Y2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsIHJ1blRlc3QpOworICAg
IH0pOworfSk7CisKK2FzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIC8vIFN0YXJ0IGJ5
IG1ha2luZyBzdXJlIGFsbCB0cmFja3MgYXJlIG1hcmtlZCBhcyAiaGlkZGVuIi4KKyAgICBBcnJh
eS5mcm9tKG1lZGlhLnRleHRUcmFja3MpLmZvckVhY2godHJhY2sgPT4gdHJhY2subW9kZSA9ICJo
aWRkZW4iKTsKKworICAgIC8vIE5leHQsIGJyaW5nIHVwIHRoZSB0cmFja3MgbWVudSBieSBjbGlj
a2luZyBvbiB0aGUgdHJhY2tzIGJ1dHRvbi4KKyAgICBhd2FpdCBjbGlja09uVHJhY2tzQnV0dG9u
KCk7CisgICAgLy8gRHVtcCB0aGUgc3RhdGUgb2YgdGhlIHRyYWNrcyBtZW51IGZvciB0ZXh0IHRy
YWNrcywgd2hpY2ggc2hvdWxkIHNob3cgdGhlIGZpcnN0IGVtYmVkZGVkIHRleHQgdHJhY2sgYXMg
c2VsZWN0ZWQuCisgICAgZHVtcFRleHRUcmFja3NMaXN0Tm9kZXMoIkluaXRpYWwgc3RhdGUiKTsK
KworICAgIGZpbmlzaFRlc3QoKTsKK30KKworZnVuY3Rpb24gdGV4dFRyYWNrc0xpc3ROb2Rlcygp
Cit7CisgICAgcmV0dXJuIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLnRyYWNrcy1wYW5l
bCBzZWN0aW9uOmxhc3Qtb2YtdHlwZSA+IHVsID4gbGkiKTsKK30KKworZnVuY3Rpb24gZHVtcFRl
eHRUcmFja3NMaXN0Tm9kZXMobXNnKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZyhgPT09
ICR7bXNnfSA9PT1gKTsKKyAgICBkZWJ1ZygiIik7CisgICAgQXJyYXkuZnJvbSh0ZXh0VHJhY2tz
TGlzdE5vZGVzKCkpLmZvckVhY2gobGkgPT4gZGVidWcoYCR7bGkuY2xhc3NMaXN0LmNvbnRhaW5z
KCJzZWxlY3RlZCIpID8gIlt4XSIgOiAiWy1dIn0gJHtsaS50ZXh0Q29udGVudH1gKSk7Cit9CisK
K2FzeW5jIGZ1bmN0aW9uIGNsaWNrT25UcmFja3NCdXR0b24oKQoreworICAgIGF3YWl0IG5ldyBQ
cm9taXNlKHJlcXVlc3RBbmltYXRpb25GcmFtZSk7CisgICAgY2xpY2tPbkVsZW1lbnQoc2hhZG93
Um9vdC5sYXN0Q2hpbGQucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKTsKKyAgICBhd2Fp
dCBuZXcgUHJvbWlzZShyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOworfQorCitmdW5jdGlvbiBjbGlj
a09uRWxlbWVudChlbGVtZW50KQoreworICAgIGNvbnN0IGJvdW5kcyA9IGVsZW1lbnQuZ2V0Qm91
bmRpbmdDbGllbnRSZWN0KCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYm91bmRzLmxl
ZnQgKyAxLCBib3VuZHMudG9wICsgMSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQorCitmdW5jdGlvbiBmaW5pc2hUZXN0KCkKK3sK
KyAgICBkZWJ1ZygiIik7CisgICAgbWVkaWEucmVtb3ZlKCk7CisgICAgZmluaXNoSlNUZXN0KCk7
Cit9CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3Vw
cG9ydC1vZmYtdGV4dC10cmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LW9mZi10
ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjNlMzE4MDVkZWU4MjdmOGI3ZThh
ZjExYTBmYmI5NjUwNWU4MTdkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1v
ZmYtdGV4dC10cmFjay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorRW5zdXJlIHdlIGhh
dmUgdGhlIE9mZiB0ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5IGRlZmF1bHQuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9u
LnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIHNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRo
IGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcign
LnRyYWNrcy1wYW5lbCcpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIHNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvckFsbCgnbGkuc2VsZWN0ZWQnKVsxXS50ZXh0Q29udGVudCBpcyAiT2Zm
IgorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay5odG1sIGIvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFj
a3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2MDgwODc4NDQ1NTBk
OTdlN2NhYzg3YWIyNmQ1M2RkNjg0MWNkM2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1z
dXBwb3J0LW9mZi10ZXh0LXRyYWNrLmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBFIGh0
bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRp
bHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cis8Ym9keT4KKzx2aWRlbyBz
cmM9Ii4uLy4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9uOiBh
YnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDogNjQwcHg7IGhlaWdodDogMzYwcHg7IiBj
b250cm9scyBhdXRvcGxheT48L3ZpZGVvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
PgorCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCJFbnN1cmUg
d2UgaGF2ZSB0aGUgT2ZmIHRleHQgdHJhY2sgc2VsZWN0ZWQgYnkgZGVmYXVsdC4iKTsKKworY29u
c3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOworY29uc3Qgc2hhZG93
Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7CisKK21lZGlhLmFkZEV2
ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7CisgICAgbWVkaWEucGF1c2UoKTsKKworICAgIHNo
b3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJh
Y2tzJykiLCAibnVsbCIsICgpID0+IHsKKyAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJz
aGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKS53aWR0aCIsICIwIiwgKCkgPT4geworICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQo
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpOworICAgICAgICAgICAg
c2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3Mt
cGFuZWwnKSIsICJudWxsIiwgKCkgPT4geworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdsaS5zZWxlY3RlZCcpWzFdLnRl
eHRDb250ZW50IiwgIk9mZiIpOworICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAg
ICAgICAgICBtZWRpYS5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKK30pOworCis8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQtcG9w
dWxhdGUtcGFuZWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LWFuZC1wb3B1
bGF0ZS1wYW5lbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDUyZDZjYjE5ODc4ODA1ODljYTBl
YzhhZGUwMDA3MTE3YjNhZDUwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQt
c2hvdy1hbmQtcG9wdWxhdGUtcGFuZWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjIgQEAKK1No
b3dpbmcgYW5kIHBvcHVsYXRpbmcgdGhlIHRyYWNrcyBwYW5lbC4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK0F1ZGlvCisgIEVuZ2xpc2ggU291bmQKKyAgRnJlbmNoIFNvdW5kCisg
IFNwYW5pc2ggU291bmQKKworU3VidGl0bGVzCisgIE9mZgorICBBdXRvIChSZWNvbW1lbmRlZCkK
KyAgRW5nbGlzaCBTdWJ0aXRsZXMKKyAgRnJlbmNoIFN1YnRpdGxlcworICBHZXJtYW4gU3VidGl0
bGVzCisgIFNwYW5pc2ggU3VidGl0bGVzCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ct
YW5kLXBvcHVsYXRlLXBhbmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVs
YXRlLXBhbmVsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTNiM2FiN2JhZTMyNGI4MWJkMWFmMDNjNGM5NTE4
Mzk2YjkyZGQ0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQt
cG9wdWxhdGUtcGFuZWwuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPGJvZHk+Cis8dmlkZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3Yi
IHN0eWxlPSJ3aWR0aDogNjQwcHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48
L3ZpZGVvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit3aW5kb3cuanNUZXN0
SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCJTaG93aW5nIGFuZCBwb3B1bGF0aW5nIHRo
ZSB0cmFja3MgcGFuZWwuIik7CisKK2NvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigidmlkZW8iKTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jv
b3QobWVkaWEpOworCittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4geworICAg
IG1lZGlhLnBhdXNlKCk7CisgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7
CisgICAgICAgIGNsaWNrT25UcmFja3NCdXR0b24oKTsKKyAgICAgICAgd2luZG93LnJlcXVlc3RB
bmltYXRpb25GcmFtZSgoKSA9PiB7CisgICAgICAgICAgICBsaXN0Q29udGVudHNPZlRyYWNrc1Bh
bmVsKCk7CisgICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKKyAgICAgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgICAgICB9KTsKKyAgICB9KTsKK30pOworCitmdW5jdGlvbiBjbGlja09uVHJh
Y2tzQnV0dG9uKCkKK3sKKyAgICBjb25zdCBib3VuZHMgPSBzaGFkb3dSb290Lmxhc3RDaGlsZC5x
dWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYm91bmRzLmxlZnQgKyAxLCBib3VuZHMudG9wICsg
MSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VV
cCgpOworfQorCitmdW5jdGlvbiBsaXN0Q29udGVudHNPZlRyYWNrc1BhbmVsKCkKK3sKKyAgICBm
b3IgKGxldCBzZWN0aW9uIG9mIHNoYWRvd1Jvb3QubGFzdENoaWxkLnF1ZXJ5U2VsZWN0b3JBbGwo
InNlY3Rpb24iKSkgeworICAgICAgICBkZWJ1ZyhzZWN0aW9uLnF1ZXJ5U2VsZWN0b3IoImgzIiku
dGV4dENvbnRlbnQpOworICAgICAgICBmb3IgKGxldCBpdGVtIG9mIHNlY3Rpb24ucXVlcnlTZWxl
Y3RvckFsbCgibGkiKSkKKyAgICAgICAgICAgIGRlYnVnKCIgICIgKyBpdGVtLnRleHRDb250ZW50
KTsKKyAgICAgICAgZGVidWcoIiIpOworICAgIH0KK30KKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dp
bmctY29udHJvbHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFm
dGVyLWRyYWdnaW5nLWNvbnRyb2xzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTg0MzBiZjM4
ZjEyNjYwYjhlZmNjNzk2MTZlZjE4NGI1MTA4NGU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFj
a3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE0IEBACitUZXN0aW5nIHRoZSBkaXNwbGF5IG9mIGEgdHJhY2tzIHBhbmVs
IGFmdGVyIGRyYWdnaW5nIHRoZSBjb250cm9scyBiYXIgaW4gZnVsbHNjcmVlbi4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdi
dXR0b24uZnVsbHNjcmVlbicpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIGJlY2FtZSBkaWZmZXJl
bnQgZnJvbSAwCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycp
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitQQVNTIHNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50
UmVjdCgpLnJpZ2h0IGlzIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcp
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0CitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxl
Y3RvcignLnRyYWNrcy1wYW5lbCcpLnN0eWxlLmJvdHRvbSBpcyAiMTUxcHgiCisKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFj
L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJvbHMuaHRtbCBi
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9t
YWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1hZnRlci1kcmFnZ2luZy1jb250cm9scy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZhYmFiOTA1ODU4ZmNhZWY5OGIyOThjZTc3MGY5YjFiNjY4NjY4MTkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dp
bmctY29udHJvbHMuaHRtbApAQCAtMCwwICsxLDU5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KKzxib2R5PgorPHZpZGVvIHNyYz0iLi4vLi4v
Li4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0id2lkdGg6IDMyMHB4OyBoZWlnaHQ6
IDI0MHB4OyIgY29udHJvbHMgYXV0b3BsYXk+PC92aWRlbz4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij4KKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitkZXNjcmlwdGlv
bigiVGVzdGluZyB0aGUgZGlzcGxheSBvZiBhIHRyYWNrcyBwYW5lbCBhZnRlciBkcmFnZ2luZyB0
aGUgY29udHJvbHMgYmFyIGluIGZ1bGxzY3JlZW4uIik7CisKK2NvbnN0IG1lZGlhID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50
ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOworCittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJr
aXRiZWdpbmZ1bGxzY3JlZW4iLCAoKSA9PiB7CisgICAgZGVidWcoIndlYmtpdGJlZ2luZnVsbHNj
cmVlbiIpOworfSk7CisKK21lZGlhLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdGZ1bGxzY3JlZW5j
aGFuZ2UiLCAoKSA9PiB7CisgICAgaWYgKCFtZWRpYS53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVl
bikKKyAgICAgICAgcmV0dXJuOworCisgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgo
KSA9PiB7CisgICAgICAgIGNvbnN0IGJvdW5kcyA9IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcigi
LmNvbnRyb2xzLWJhciIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbyhib3VuZHMubGVmdCArIDExOCwgYm91bmRzLnRvcCArIDEwKTsKKyAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKGJvdW5kcy5sZWZ0ICsgNjgsIGJvdW5kcy50b3AgLSA0MCk7CisgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlVXAoKTsKKworICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4g
eworICAgICAgICAgICAgY2xpY2tPbkJ1dHRvbigidHJhY2tzIiwgKCkgPT4geworICAgICAgICAg
ICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CisgICAgICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCIsICJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50
cmFja3MtcGFuZWwnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCIpCisgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCcudHJhY2tzLXBhbmVsJykuc3R5bGUuYm90dG9tIiwgIjE1MXB4Iik7CisKKyAgICAgICAgICAg
ICAgICAgICAgZGVidWcoIiIpOworICAgICAgICAgICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsK
KyAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9KTsKKworbWVkaWEuYWRk
RXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKKyAgICBtZWRpYS5wYXVzZSgpOworICAgIHdp
bmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gY2xpY2tPbkJ1dHRvbigiZnVsbHNjcmVl
biIpKTsKK30pOworCitmdW5jdGlvbiBjbGlja09uQnV0dG9uKG5hbWUsIGNvbnRpbnVhdGlvbikK
K3sKKyAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoYHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcign
YnV0dG9uLiR7bmFtZX0nKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKWAsICIwIiwgKCkgPT4gewor
ICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoYGJ1dHRvbi4k
e25hbWV9YCksIGNvbnRpbnVhdGlvbik7CisgICAgfSk7Cit9CisKKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxzY3Jl
ZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxzY3JlZW4t
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1MTUyNTUwNDI4MDhkYzZmM2QxZDlhYTcxM2U2MTZl
NTI5NzVlYTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwt
ZnVsbHNjcmVlbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorU2hvd2luZyB0aGUgdHJh
Y2tzIHBhbmVsIGluIGZ1bGxzY3JlZW4uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0b24u
ZnVsbHNjcmVlbiIpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIGludGVybmFscy5z
aGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0b24uZnVsbHNjcmVlbiIpLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitQQVNTIG1l
ZGlhLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIGJlY2FtZSB0cnVlCitQQVNTIGludGVybmFs
cy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikgYmVjYW1l
IGRpZmZlcmVudCBmcm9tIG51bGwKK1BBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1
ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0
aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAorUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRp
YSkucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
LnJpZ2h0IGJlY2FtZSA1ODIKK1BBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5
U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAorUEFT
UyBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5l
bCcpLnN0eWxlLnJpZ2h0IGlzICIyMThweCIKK1BBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVk
aWEpLnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5zdHlsZS5ib3R0b20gaXMgIjEwMXB4
IgorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxzY3JlZW4uaHRtbCBi
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9t
YWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1mdWxsc2NyZWVuLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDVkNGU2YjczY2M0NzM3ODMxZmJjM2YyODJjYThiOTYxZjZkOWE5MAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1mdWxsc2NyZWVuLmh0bWwKQEAgLTAsMCAr
MSw0OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3Jp
cHQ+Cis8Ym9keT4KKzx2aWRlbyBzcmM9Ii4uLy4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1v
diIgc3R5bGU9IndpZHRoOiAzMjBweDsgaGVpZ2h0OiAyNDBweDsiIGNvbnRyb2xzIGF1dG9wbGF5
PjwvdmlkZW8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK3dpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKworZGVzY3JpcHRpb24oIlNob3dpbmcgdGhlIHRyYWNrcyBwYW5l
bCBpbiBmdWxsc2NyZWVuLiIpOworCitzZXRUaW1lb3V0KCgpID0+IHsKKyAgICBkZWJ1ZygiRkFJ
TDogZGlkIG5vdCBlbmQgZmFzdCBlbm91Z2giKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30sIDEw
MDAwKTsKKworY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwor
CittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRmdWxsc2NyZWVuY2hhbmdlIiwgKCkgPT4g
eworICAgIHNob3VsZEJlY29tZUVxdWFsKCJtZWRpYS53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVl
biIsICJ0cnVlIiwgKCkgPT4geworICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoYGludGVy
bmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIilgLCAi
bnVsbCIsICgpID0+IHsKKyAgICAgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudChgaW50ZXJu
YWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKS5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aGAsICIwIiwgKCkgPT4geworICAgICAgICAgICAgICAg
IHNob3VsZEJlY29tZUVxdWFsKGBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxl
Y3RvcigiYnV0dG9uLnRyYWNrcyIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0YCwgIjU4
MiIsICgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoaW50ZXJuYWxz
LnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSk7CisgICAg
ICAgICAgICAgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudChgaW50ZXJuYWxzLnNoYWRvd1Jv
b3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKWAsICJudWxsIiwgKCkgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnRlcm5h
bHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpLnN0eWxl
LnJpZ2h0IiwgIjIxOHB4Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCcudHJh
Y2tzLXBhbmVsJykuc3R5bGUuYm90dG9tIiwgIjEwMXB4Iik7CisgICAgICAgICAgICAgICAgICAg
ICAgICBkZWJ1ZygiIik7CisgICAgICAgICAgICAgICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
KTsKKyAgICB9KTsKK30pOworCittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4g
eworICAgIG1lZGlhLnBhdXNlKCk7CisgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KGBpbnRlcm5h
bHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcigiYnV0dG9uLmZ1bGxzY3JlZW4iKWAs
ICJudWxsIiwgKCkgPT4geworICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoYGludGVybmFs
cy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0b24uZnVsbHNjcmVlbiIpLmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoYCwgIjAiLCAoKSA9PiB7CisgICAgICAgICAgICBw
cmVzc09uRWxlbWVudChpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3Rvcihg
YnV0dG9uLmZ1bGxzY3JlZW5gKSk7CisgICAgICAgIH0pOworICAgIH0pOworfSk7CisKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBh
bmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90
cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0
b24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4YmQ3NzhjMjgyMmY4M2Y0Y2ZlOGUxMzQxNTJm
MDdhMjRjMTQ2YWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFu
ZWwtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxNSBAQAorRW5zdXJlIHRoYXQgZG91YmxlLWNsaWNraW5nIHRoZSB0cmFja3MgYnV0dG9u
IHdoZW4gdGhlIHRyYWNrcyBwYW5lbCBtYWtlcyB0aGUgcGFuZWwgYXBwZWFyIGFnYWluLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTWVkaWEgc3RhcnRlZCBwbGF5aW5nCitQQVNT
IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJl
bnQgZnJvbSBudWxsCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNr
cycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAw
CitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpIGJlY2FtZSBk
aWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNr
cy1wYW5lbCcpIGlzIG5vdCBudWxsCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFu
ZWwtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi5odG1sIGIvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3Vw
cG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24uaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43NWVkMDQyZDQ3Y2QxYWIxYmFmYTA2NmVhZjk4NGE4NjZlN2M2M2NkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNs
aWNrLW9uLXRyYWNrcy1idXR0b24uaHRtbApAQCAtMCwwICsxLDQxIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGls
cy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KKzxib2R5PgorPHZpZGVvIHNy
Yz0iLi4vLi4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFi
c29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiA2NDBweDsgaGVpZ2h0OiAzNjBweDsiIGNv
bnRyb2xzIGF1dG9wbGF5PjwvdmlkZW8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+
CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZGVzY3JpcHRpb24oIkVuc3VyZSB0
aGF0IGRvdWJsZS1jbGlja2luZyB0aGUgdHJhY2tzIGJ1dHRvbiB3aGVuIHRoZSB0cmFja3MgcGFu
ZWwgbWFrZXMgdGhlIHBhbmVsIGFwcGVhciBhZ2Fpbi4iKTsKKworY29uc3QgbWVkaWEgPSBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOworY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5p
bnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7CisKK21lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBs
YXkiLCAoKSA9PiB7CisgICAgbWVkaWEucGF1c2UoKTsKKworICAgIGRlYnVnKCJNZWRpYSBzdGFy
dGVkIHBsYXlpbmciKTsKKyAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7CisgICAgICAgIHNo
b3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJh
Y2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsICgpID0+IHsKKyAgICAg
ICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRy
YWNrcyIpKTsKKyAgICAgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykiLCAibnVsbCIsICgpID0+IHsKKyAgICAgICAg
ICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50
cmFja3MiKSk7CisgICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVj
dG9yKCJidXR0b24udHJhY2tzIikpOworICAgICAgICAgICAgICAgICAgICAvLyBHaXZlIHRoZSB0
cmFuc2l0aW9uZW5kIGV2ZW50IHRpbWUgdG8gZmlyZSBpZiBpdCB3ZXJlIHRvIGhhcHBlbiwgd2hp
Y2ggaXQgc2hvdWxkIG5vdC4KKyAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7
CisgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGROb3RCZSgic2hhZG93Um9vdC5xdWVyeVNl
bGVjdG9yKCcudHJhY2tzLXBhbmVsJykiLCAibnVsbCIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgZGVidWcoIiIpOworICAgICAgICAgICAgICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICAg
ICAgfSwgNTAwKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9KTsKKyAgICB9KTsKK30pOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC9tYWMvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVk
aWEtYXBpLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YzhjNzM0NTYwYmU4ODhlMmU0OGUxOWZl
NWFkM2Q2NWM1MTkzYTUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC10ZXh0
LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzAg
QEAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCBzZXR0aW5nIGFuIGVtYmVkZGVkIHRleHQgdHJhY2sg
YXMgc2VsZWN0ZWQgdmlhIHRoZSBIVE1MTWVkaWFFbGVtZW50IEpTIEFQSXMgd2lsbCBjb3JyZWN0
bHkgc2hvdyB0aGlzIHRyYWNrIGFzIHNlbGVjdGVkLCBhbmQgdGhhdCBzZWxlY3RpbmcgdGhlICJB
dXRvbWF0aWMgKFJlY29tbWVuZGVkKSIgdHJhY2sgd2lsbCByZXZlcnQgYmFjayB0byBzZWxlY3Rp
bmcgdGhhdCBlbnRyeS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykgYmVjYW1lIGRpZmZlcmVudCBm
cm9tIG51bGwKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJyku
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKKwor
PT09IEluaXRpYWwgc3RhdGUgPT09CisKK1stXSBPZmYKK1stXSBBdXRvIChSZWNvbW1lbmRlZCkK
K1t4XSBFbmdsaXNoIFN1YnRpdGxlcworWy1dIEZyZW5jaCBTdWJ0aXRsZXMKK1stXSBHZXJtYW4g
U3VidGl0bGVzCitbLV0gU3BhbmlzaCBTdWJ0aXRsZXMKKworPT09IEFmdGVyIHBpY2tpbmcgYXV0
byB0cmFjayBpbnRlcmFjdGl2ZWx5ID09PQorCitbLV0gT2ZmCitbeF0gQXV0byAoUmVjb21tZW5k
ZWQpCitbLV0gRW5nbGlzaCBTdWJ0aXRsZXMKK1stXSBGcmVuY2ggU3VidGl0bGVzCitbLV0gR2Vy
bWFuIFN1YnRpdGxlcworWy1dIFNwYW5pc2ggU3VidGl0bGVzCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1z
dXBwb3J0LXRleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS5odG1sIGIvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mt
c3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40MDIyZWI5NmRmOTQ0ZWYxYTgyM2JlOTFmMWY5MGRkMzliNzMwMDUyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L21hYy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGku
aHRtbApAQCAtMCwwICsxLDg4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8dmlk
ZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJwb3NpdGlv
bjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDY0MHB4OyBoZWlnaHQ6IDM2MHB4
OyIgY29udHJvbHMgYXV0b3BsYXk+PC92aWRlbz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij4KKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitkZXNjcmlwdGlvbihgVGhp
cyB0ZXN0IGNoZWNrcyB0aGF0IHNldHRpbmcgYW4gZW1iZWRkZWQgdGV4dCB0cmFjayBhcyBzZWxl
Y3RlZCB2aWEgdGhlIEhUTUxNZWRpYUVsZW1lbnQgSlMgQVBJcyB3aWxsIGNvcnJlY3RseSBzaG93
IHRoaXMgdHJhY2sgYXMgc2VsZWN0ZWQsIGFuZCB0aGF0IHNlbGVjdGluZyB0aGUgCisiQXV0b21h
dGljIChSZWNvbW1lbmRlZCkiIHRyYWNrIHdpbGwgcmV2ZXJ0IGJhY2sgdG8gc2VsZWN0aW5nIHRo
YXQgZW50cnkuYCk7CisKK2NvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigidmlk
ZW8iKTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVk
aWEpOworCittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4geworICAgIG1lZGlh
LnBhdXNlKCk7CisKKyAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7CisgICAgICAgIHNob3Vs
ZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tz
JykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsIHJ1blRlc3QpOworICAgIH0p
OworfSk7CisKK2FzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIC8vIFN0YXJ0IGJ5IHNl
bGVjdGluZyBvbmUgb2YgdGhlIHRleHQgdHJhY2tzIHVzaW5nIHRoZSBtZWRpYSBKUyBBUEkuCisg
ICAgLy8gVGhpcyB3aWxsIGNhdXNlIHRleHRUcmFja3NEaWRDaGFuZ2UgdG8gYmUgY2FsbGVkIGZv
ciB0aGUgZmlyc3QgdGltZS4KKyAgICBtZWRpYS50ZXh0VHJhY2tzWzBdLm1vZGUgPSAic2hvd2lu
ZyI7CisKKyAgICAvLyBOZXh0LCBicmluZyB1cCB0aGUgdHJhY2tzIG1lbnUgYnkgY2xpY2tpbmcg
b24gdGhlIHRyYWNrcyBidXR0b24uCisgICAgYXdhaXQgY2xpY2tPblRyYWNrc0J1dHRvbigpOwor
ICAgIC8vIER1bXAgdGhlIHN0YXRlIG9mIHRoZSB0cmFja3MgbWVudSBmb3IgdGV4dCB0cmFja3Ms
IHdoaWNoIHNob3VsZCBzaG93IHRoZSBmaXJzdCBlbWJlZGRlZCB0ZXh0IHRyYWNrIGFzIHNlbGVj
dGVkLgorICAgIGR1bXBUZXh0VHJhY2tzTGlzdE5vZGVzKCJJbml0aWFsIHN0YXRlIik7CisgICAg
Ly8gTm93LCBzZWxlY3QgdGhlICJBdXRvbWF0aWMgKFJlY29tbWVuZGVkKSIgdGV4dCB0cmFjay4g
CisgICAgYXdhaXQgY2xpY2tPblRleHRUcmFja0F0SW5kZXgoMSk7CisgICAgLy8gV2FpdCBmb3Ig
dGhlIHNlbGVjdGlvbiB0byBoYXZlIGdvbmUgdGhyb3VnaCBhbmQgdGhlIHBhbmVsIHRvIGhhdmUg
dHJhbnNpdGlvbmVkIG91dCBvZiB2aWV3LgorICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUg
PT4gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCIudHJhY2tzLXBhbmVsIikuYWRkRXZlbnRMaXN0
ZW5lcigidHJhbnNpdGlvbmVuZCIsIHJlc29sdmUsIHsgb25jZTogdHJ1ZSB9KSk7CisKKyAgICAv
LyBOb3csIGJyaW5nIHVwIHRoZSB0cmFja3MgbWVudSBhZ2FpbiBieSBjbGlja2luZyBvbiB0aGUg
dHJhY2tzIGJ1dHRvbi4KKyAgICBhd2FpdCBjbGlja09uVHJhY2tzQnV0dG9uKCk7CisgICAgLy8g
RHVtcCB0aGUgc3RhdGUgb2YgdGhlIHRyYWNrcyBtZW51IGZvciB0ZXh0IHRyYWNrcywgd2hpY2gg
c2hvdWxkIG5vdyBzaG93ICJBdXRvbWF0aWMgKFJlY29tbWVuZGVkKSIgYXMgc2VsZWN0ZWQuCisg
ICAgZHVtcFRleHRUcmFja3NMaXN0Tm9kZXMoIkFmdGVyIHBpY2tpbmcgYXV0byB0cmFjayBpbnRl
cmFjdGl2ZWx5Iik7CisKKyAgICBmaW5pc2hUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHRleHRUcmFj
a3NMaXN0Tm9kZXMoKQoreworICAgIHJldHVybiBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwo
Ii50cmFja3MtcGFuZWwgc2VjdGlvbjpsYXN0LW9mLXR5cGUgPiB1bCA+IGxpIik7Cit9CisKK2Z1
bmN0aW9uIGR1bXBUZXh0VHJhY2tzTGlzdE5vZGVzKG1zZykKK3sKKyAgICBkZWJ1ZygiIik7Cisg
ICAgZGVidWcoYD09PSAke21zZ30gPT09YCk7CisgICAgZGVidWcoIiIpOworICAgIEFycmF5LmZy
b20odGV4dFRyYWNrc0xpc3ROb2RlcygpKS5mb3JFYWNoKGxpID0+IGRlYnVnKGAke2xpLmNsYXNz
TGlzdC5jb250YWlucygic2VsZWN0ZWQiKSA/ICJbeF0iIDogIlstXSJ9ICR7bGkudGV4dENvbnRl
bnR9YCkpOworfQorCithc3luYyBmdW5jdGlvbiBjbGlja09uVHJhY2tzQnV0dG9uKCkKK3sKKyAg
ICBhd2FpdCBuZXcgUHJvbWlzZShyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOworICAgIGNsaWNrT25F
bGVtZW50KHNoYWRvd1Jvb3QubGFzdENoaWxkLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3Mi
KSk7CisgICAgYXdhaXQgbmV3IFByb21pc2UocmVxdWVzdEFuaW1hdGlvbkZyYW1lKTsKK30KKwor
ZnVuY3Rpb24gY2xpY2tPblRleHRUcmFja0F0SW5kZXgoaW5kZXgpCit7CisgICAgY2xpY2tPbkVs
ZW1lbnQodGV4dFRyYWNrc0xpc3ROb2RlcygpW2luZGV4XSk7Cit9CisKK2Z1bmN0aW9uIGNsaWNr
T25FbGVtZW50KGVsZW1lbnQpCit7CisgICAgY29uc3QgYm91bmRzID0gZWxlbWVudC5nZXRCb3Vu
ZGluZ0NsaWVudFJlY3QoKTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhib3VuZHMubGVm
dCArIDEsIGJvdW5kcy50b3AgKyAxKTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoKQorewor
ICAgIGRlYnVnKCIiKTsKKyAgICBtZWRpYS5yZW1vdmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsK
K30KKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQt
YXV0by10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJh
Y2stZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZGFjMGI3NTVj
Y2JhOTgwNjk4OTQzNWU0ZmJiNzg1MzUwNmFkOTdlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2stZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotRW5zdXJlIHdlIGhhdmUgdGhl
IEF1dG8gdGV4dCB0cmFjayBzZWxlY3RlZCBieSBkZWZhdWx0LgotCi1PbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCi0KLQotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFj
a3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2Vs
ZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNh
bWUgZGlmZmVyZW50IGZyb20gMAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFj
a3MtcGFuZWwnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFTUyBzaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3JBbGwoJ2xpLnNlbGVjdGVkJylbMV0udGV4dENvbnRlbnQgaXMgIkF1dG8gKFJl
Y29tbWVuZGVkKSIKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENP
TVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2suaHRtbCBi
L0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90
cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2suaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMWIzYzNlNjJjMDVlOThiMjA4OTUzZDA4YjA1ODZiYzIzNjE5NjhlOC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtYXV0
by10ZXh0LXRyYWNrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGls
cy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNy
Yz0iLi4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFic29s
dXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiA2NDBweDsgaGVpZ2h0OiAzNjBweDsiIGNvbnRy
b2xzIGF1dG9wbGF5PjwvdmlkZW8+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0K
LXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIkVuc3VyZSB3ZSBo
YXZlIHRoZSBBdXRvIHRleHQgdHJhY2sgc2VsZWN0ZWQgYnkgZGVmYXVsdC4iKTsKLQotY29uc3Qg
bWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hhZG93Um9v
dCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlhLmFkZEV2ZW50
TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLQotICAgIHNob3Vs
ZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tz
JykiLCAibnVsbCIsICgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFk
b3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJl
Y3QoKS53aWR0aCIsICIwIiwgKCkgPT4gewotICAgICAgICAgICAgd2luZG93LmludGVybmFscy5z
ZXRDYXB0aW9uRGlzcGxheU1vZGUoImF1dG9tYXRpYyIpOwotICAgICAgICAgICAgcHJlc3NPbkVs
ZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpOwotICAgICAg
ICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50
cmFja3MtcGFuZWwnKSIsICJudWxsIiwgKCkgPT4gewotICAgICAgICAgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdsaS5zZWxlY3RlZCcp
WzFdLnRleHRDb250ZW50IiwgIkF1dG8gKFJlY29tbWVuZGVkKSIpOwotICAgICAgICAgICAgICAg
IGRlYnVnKCIiKTsKLSAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldENhcHRpb25E
aXNwbGF5TW9kZSgiZm9yY2Vkb25seSIpOwotICAgICAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgp
OwotICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICAgICAgfSk7Ci0gICAg
ICAgIH0pOwotICAgIH0pOwotfSk7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNrLWluLXBhbmVsLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mt
c3VwcG9ydC1jbGljay10cmFjay1pbi1wYW5lbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDUyOTQxMTA1YmZhOWNlZjI2ZjdjMzBmOGI5ZGM1MzI2OTNmMzViMmYu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBw
b3J0LWNsaWNrLXRyYWNrLWluLXBhbmVsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDMyICswLDAgQEAKLUNsaWNraW5nIG9uIGEgdHJhY2sgaW4gdGhlIHRyYWNrcyBwYW5lbC4KLQot
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLW1lZGlhLmF1ZGlvVHJhY2tzWzBdLmVuYWJs
ZWQgPSB0cnVlCi1tZWRpYS5hdWRpb1RyYWNrc1sxXS5lbmFibGVkID0gZmFsc2UKLW1lZGlhLmF1
ZGlvVHJhY2tzWzJdLmVuYWJsZWQgPSBmYWxzZQotCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxl
Y3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIHNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50
UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCi0KLUNsaWNraW5nIG9uIHRoZSB0
cmFja3MgYnV0dG9uCi1DbGlja2luZyBvbiBzZWNvbmQgYXVkaW8gdHJhY2sgaW4gdHJhY2tzIHBh
bmVsCi0KLU9idGFpbmVkIGNoYW5nZSBldmVudCBvbiBtZWRpYSBhdWRpbyB0cmFja3MKLW1lZGlh
LmF1ZGlvVHJhY2tzWzBdLmVuYWJsZWQgPSBmYWxzZQotbWVkaWEuYXVkaW9UcmFja3NbMV0uZW5h
YmxlZCA9IHRydWUKLW1lZGlhLmF1ZGlvVHJhY2tzWzJdLmVuYWJsZWQgPSBmYWxzZQotCi1DbGlj
a2luZyBvbiB0aGUgdHJhY2tzIGJ1dHRvbgotQ2xpY2tpbmcgb24gdGhpcmQgYXVkaW8gdHJhY2sg
aW4gdHJhY2tzIHBhbmVsCi0KLU9idGFpbmVkIGNoYW5nZSBldmVudCBvbiBtZWRpYSBhdWRpbyB0
cmFja3MKLW1lZGlhLmF1ZGlvVHJhY2tzWzBdLmVuYWJsZWQgPSBmYWxzZQotbWVkaWEuYXVkaW9U
cmFja3NbMV0uZW5hYmxlZCA9IGZhbHNlCi1tZWRpYS5hdWRpb1RyYWNrc1syXS5lbmFibGVkID0g
dHJ1ZQotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNrLWluLXBhbmVsLmh0bWwgYi9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJh
Y2tzLXN1cHBvcnQtY2xpY2stdHJhY2staW4tcGFuZWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNjVlMWVhYzlhNzIxNDljMDdmYTc1N2VlY2UxOTcyNTUwZTY2MGUwZS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQt
Y2xpY2stdHJhY2staW4tcGFuZWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDk3ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Ci08Ym9keT4KLTx2aWRlbyBzcmM9Ii4uLy4uL2NvbnRlbnQvQ0Mr
U3VidGl0bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAw
OyB3aWR0aDogNjQwcHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVv
PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKCJDbGlja2luZyBvbiBhIHRyYWNrIGluIHRoZSB0cmFj
a3MgcGFuZWwuIik7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigidmlk
ZW8iKTsKLWNvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVk
aWEpOwotCi1sZXQgcHJldmlvdXNseVNlbGVjdGVkVHJhY2sgPSAwOwotCi1tZWRpYS5hZGRFdmVu
dExpc3RlbmVyKCJwbGF5IiwgKCkgPT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0KLSAgICBkdW1w
QXVkaW9UcmFja3NFbmFibGVkU3RhdGUoKTsKLQotICAgIG1lZGlhLmF1ZGlvVHJhY2tzLmFkZEV2
ZW50TGlzdGVuZXIoImNoYW5nZSIsIGF1ZGlvVHJhY2tzRGlkQ2hhbmdlKTsKLQotICAgIGRlYnVn
KCIiKTsKLSAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlY29t
ZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsICgpID0+IHsKLSAgICAgICAgICAgIGNs
aWNrT25UcmFja3NCdXR0b24oY2xpY2tPblNlY29uZEF1ZGlvVHJhY2spOwotICAgICAgICB9KTsK
LSAgICB9KTsKLX0pOwotCi1mdW5jdGlvbiBjbGlja09uVHJhY2tzQnV0dG9uKGNvbnRpbnVhdGlv
bikKLXsKLSAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKLSAgICAgICAg
ZGVidWcoIiIpOwotICAgICAgICBkZWJ1ZygiQ2xpY2tpbmcgb24gdGhlIHRyYWNrcyBidXR0b24i
KTsKLSAgICAgICAgY2xpY2tPbkVsZW1lbnQoc2hhZG93Um9vdC5sYXN0Q2hpbGQucXVlcnlTZWxl
Y3RvcigiYnV0dG9uLnRyYWNrcyIpKTsKLSAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25G
cmFtZShjb250aW51YXRpb24pOwotICAgIH0pOwotfQotCi1mdW5jdGlvbiBjbGlja09uU2Vjb25k
QXVkaW9UcmFjaygpCi17Ci0gICAgZGVidWcoIkNsaWNraW5nIG9uIHNlY29uZCBhdWRpbyB0cmFj
ayBpbiB0cmFja3MgcGFuZWwiKTsKLSAgICBjbGlja09uQXVkaW9UcmFja0F0SW5kZXgoMSk7Ci19
Ci0KLWZ1bmN0aW9uIGNsaWNrT25UaGlyZEF1ZGlvVHJhY2soKQotewotICAgIGRlYnVnKCJDbGlj
a2luZyBvbiB0aGlyZCBhdWRpbyB0cmFjayBpbiB0cmFja3MgcGFuZWwiKTsKLSAgICBjbGlja09u
QXVkaW9UcmFja0F0SW5kZXgoMik7Ci19Ci0KLWZ1bmN0aW9uIGNsaWNrT25BdWRpb1RyYWNrQXRJ
bmRleChpbmRleCkKLXsKLSAgICBjbGlja09uRWxlbWVudChzaGFkb3dSb290Lmxhc3RDaGlsZC5x
dWVyeVNlbGVjdG9yQWxsKCJsaSIpW2luZGV4XSk7Ci19Ci0KLWZ1bmN0aW9uIGNsaWNrT25FbGVt
ZW50KGVsZW1lbnQpCi17Ci0gICAgY29uc3QgYm91bmRzID0gZWxlbWVudC5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKTsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhib3VuZHMubGVmdCArIDEs
IGJvdW5kcy50b3AgKyAxKTsKLSAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBldmVu
dFNlbmRlci5tb3VzZVVwKCk7Ci19Ci0KLWZ1bmN0aW9uIGF1ZGlvVHJhY2tzRGlkQ2hhbmdlKCkK
LXsKLSAgICBjb25zdCBuZXdTZWxlY3RlZFRyYWNrID0gQXJyYXkuZnJvbShtZWRpYS5hdWRpb1Ry
YWNrcykuZmluZEluZGV4KHRyYWNrID0+IHRyYWNrLmVuYWJsZWQpOwotICAgIGlmIChwcmV2aW91
c2x5U2VsZWN0ZWRUcmFjayA9PT0gbmV3U2VsZWN0ZWRUcmFjaykKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgcHJldmlvdXNseVNlbGVjdGVkVHJhY2sgPSBuZXdTZWxlY3RlZFRyYWNrOwotCi0gICAg
ZGVidWcoIiIpOwotICAgIGRlYnVnKCJPYnRhaW5lZCBjaGFuZ2UgZXZlbnQgb24gbWVkaWEgYXVk
aW8gdHJhY2tzIik7Ci0KLSAgICBkdW1wQXVkaW9UcmFja3NFbmFibGVkU3RhdGUoKTsKLQotICAg
IGlmIChtZWRpYS5hdWRpb1RyYWNrc1sxXS5lbmFibGVkKQotICAgICAgICBzaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3IoIi50cmFja3MtcGFuZWwiKS5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9u
ZW5kIiwgZXZlbnQgPT4gY2xpY2tPblRyYWNrc0J1dHRvbihjbGlja09uVGhpcmRBdWRpb1RyYWNr
KSk7Ci0gICAgZWxzZSBpZiAobWVkaWEuYXVkaW9UcmFja3NbMl0uZW5hYmxlZCkgewotICAgICAg
ICBkZWJ1ZygiIik7Ci0gICAgICAgIG1lZGlhLnJlbW92ZSgpOwotICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIGR1bXBBdWRpb1RyYWNrc0VuYWJsZWRTdGF0ZSgp
Ci17Ci0gICAgQXJyYXkuZnJvbShtZWRpYS5hdWRpb1RyYWNrcykuZm9yRWFjaCgoYXVkaW9UcmFj
aywgaW5kZXgpID0+IHsKLSAgICAgICAgZGVidWcoYG1lZGlhLmF1ZGlvVHJhY2tzWyR7aW5kZXh9
XS5lbmFibGVkID0gJHttZWRpYS5hdWRpb1RyYWNrc1tpbmRleF0uZW5hYmxlZH1gKTsKLSAgICB9
KTsKLX0KLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQt
aGlkZGVuLXRyYWNrcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhZDNmYzE5NmI2NTk5
NWYzYTcwNGM3YzIxNzgwZjUzMzI2YWI4NGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10cmFja3MtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRo
ZSB0cmFja3MgcGFuZWwgZG9lc24ndCBzaG93IGFueSB0cmFjayBhcyBzZWxlY3RlZCBpZiBhbGwg
dGhlIHRleHQgdHJhY2tzIGZvciBhIG1lZGlhIGVsZW1lbnQgYXJlIG1hcmtlZCBhcyAiaGlkZGVu
Ii4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgc2hhZG93Um9vdC5xdWVy
eVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBB
U1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKLQotPT09IEluaXRpYWwg
c3RhdGUgPT09Ci0KLVt4XSBPZmYKLVstXSBBdXRvIChSZWNvbW1lbmRlZCkKLVstXSBFbmdsaXNo
IFN1YnRpdGxlcwotWy1dIEZyZW5jaCBTdWJ0aXRsZXMKLVstXSBHZXJtYW4gU3VidGl0bGVzCi1b
LV0gU3BhbmlzaCBTdWJ0aXRsZXMKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
Ci1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA1NjI3Nzg1ZDRiOTEwYmQxNWY2MWEyZjdjOWFiMDBhMGFkOTNiMzFmLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9y
dC1oaWRkZW4tdHJhY2tzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBACi08IURP
Q1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi9jb250ZW50L0NDK1N1YnRp
dGxlcy5tb3YiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lk
dGg6IDY0MHB4OyBoZWlnaHQ6IDM2MHB4OyIgY29udHJvbHMgYXV0b3BsYXk+PC92aWRlbz4KLTxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOwotCi1kZXNjcmlwdGlvbihgVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSB0cmFja3MgcGFu
ZWwgZG9lc24ndCBzaG93IGFueSB0cmFjayBhcyBzZWxlY3RlZCBpZiBhbGwgdGhlIHRleHQgdHJh
Y2tzIGZvciBhIG1lZGlhIGVsZW1lbnQgYXJlIG1hcmtlZCBhcyAiaGlkZGVuIi5gKTsKLQotY29u
c3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hhZG93
Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlhLmFkZEV2
ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLQotICAgIHNo
b3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJh
Y2tzJykiLCAibnVsbCIsICgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJz
aGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKS53aWR0aCIsICIwIiwgcnVuVGVzdCk7Ci0gICAgfSk7Ci19KTsKLQotYXN5bmMgZnVu
Y3Rpb24gcnVuVGVzdCgpCi17Ci0gICAgLy8gU3RhcnQgYnkgbWFraW5nIHN1cmUgYWxsIHRyYWNr
cyBhcmUgbWFya2VkIGFzICJoaWRkZW4iLgotICAgIEFycmF5LmZyb20obWVkaWEudGV4dFRyYWNr
cykuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5tb2RlID0gImhpZGRlbiIpOwotCi0gICAgLy8gTmV4
dCwgYnJpbmcgdXAgdGhlIHRyYWNrcyBtZW51IGJ5IGNsaWNraW5nIG9uIHRoZSB0cmFja3MgYnV0
dG9uLgotICAgIGF3YWl0IGNsaWNrT25UcmFja3NCdXR0b24oKTsKLSAgICAvLyBEdW1wIHRoZSBz
dGF0ZSBvZiB0aGUgdHJhY2tzIG1lbnUgZm9yIHRleHQgdHJhY2tzLCB3aGljaCBzaG91bGQgc2hv
dyB0aGUgZmlyc3QgZW1iZWRkZWQgdGV4dCB0cmFjayBhcyBzZWxlY3RlZC4KLSAgICBkdW1wVGV4
dFRyYWNrc0xpc3ROb2RlcygiSW5pdGlhbCBzdGF0ZSIpOwotCi0gICAgZmluaXNoVGVzdCgpOwot
fQotCi1mdW5jdGlvbiB0ZXh0VHJhY2tzTGlzdE5vZGVzKCkKLXsKLSAgICByZXR1cm4gc2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCIudHJhY2tzLXBhbmVsIHNlY3Rpb246bGFzdC1vZi10eXBl
ID4gdWwgPiBsaSIpOwotfQotCi1mdW5jdGlvbiBkdW1wVGV4dFRyYWNrc0xpc3ROb2Rlcyhtc2cp
Ci17Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKGA9PT0gJHttc2d9ID09PWApOwotICAgIGRl
YnVnKCIiKTsKLSAgICBBcnJheS5mcm9tKHRleHRUcmFja3NMaXN0Tm9kZXMoKSkuZm9yRWFjaChs
aSA9PiBkZWJ1ZyhgJHtsaS5jbGFzc0xpc3QuY29udGFpbnMoInNlbGVjdGVkIikgPyAiW3hdIiA6
ICJbLV0ifSAke2xpLnRleHRDb250ZW50fWApKTsKLX0KLQotYXN5bmMgZnVuY3Rpb24gY2xpY2tP
blRyYWNrc0J1dHRvbigpCi17Ci0gICAgYXdhaXQgbmV3IFByb21pc2UocmVxdWVzdEFuaW1hdGlv
bkZyYW1lKTsKLSAgICBjbGlja09uRWxlbWVudChzaGFkb3dSb290Lmxhc3RDaGlsZC5xdWVyeVNl
bGVjdG9yKCJidXR0b24udHJhY2tzIikpOwotICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlcXVlc3RB
bmltYXRpb25GcmFtZSk7Ci19Ci0KLWZ1bmN0aW9uIGNsaWNrT25FbGVtZW50KGVsZW1lbnQpCi17
Ci0gICAgY29uc3QgYm91bmRzID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAg
ICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhib3VuZHMubGVmdCArIDEsIGJvdW5kcy50b3AgKyAx
KTsKLSAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVVw
KCk7Ci19Ci0KLWZ1bmN0aW9uIGZpbmlzaFRlc3QoKQotewotICAgIGRlYnVnKCIiKTsKLSAgICBt
ZWRpYS5yZW1vdmUoKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQotPC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2stZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L3RyYWNrcy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZmIzZTMxODA1ZGVlODI3ZjhiN2U4YWYxMWEwZmJiOTY1MDVl
ODE3ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tz
LXN1cHBvcnQtb2ZmLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MTQgKzAsMCBAQAotRW5zdXJlIHdlIGhhdmUgdGhlIE9mZiB0ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5
IGRlZmF1bHQuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBu
dWxsCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCi1QQVNTIHNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpIGJlY2FtZSBkaWZmZXJlbnQg
ZnJvbSBudWxsCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnbGkuc2VsZWN0ZWQn
KVsxXS50ZXh0Q29udGVudCBpcyAiT2ZmIgotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LW9mZi10ZXh0
LXRyYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2suaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZWNiOWQ2ZTRlMjhhYmU4ZDhiOGYzNTM5N2I0ZWQ4Mjg5Yjg4
MmVkNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tz
LXN1cHBvcnQtb2ZmLXRleHQtdHJhY2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNv
bnRyb2xzLXV0aWxzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+
Ci08dmlkZW8gc3JjPSIuLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJwb3Np
dGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDY0MHB4OyBoZWlnaHQ6IDM2
MHB4OyIgY29udHJvbHMgYXV0b3BsYXk+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigi
RW5zdXJlIHdlIGhhdmUgdGhlIE9mZiB0ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5IGRlZmF1bHQuIik7
Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0
IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOwotCi1tZWRp
YS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0K
LSAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0
dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlY29tZURpZmZl
cmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsICgpID0+IHsKLSAgICAgICAgICAgIHByZXNzT25F
bGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKTsKLSAgICAg
ICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcu
dHJhY2tzLXBhbmVsJykiLCAibnVsbCIsICgpID0+IHsKLSAgICAgICAgICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnbGkuc2VsZWN0ZWQn
KVsxXS50ZXh0Q29udGVudCIsICJPZmYiKTsKLSAgICAgICAgICAgICAgICBkZWJ1ZygiIik7Ci0g
ICAgICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAgICAgICAgICAgICAgZmluaXNoSlNU
ZXN0KCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19KTsKLQotPC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQtcG9w
dWxhdGUtcGFuZWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRl
LXBhbmVsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDUyZDZj
YjE5ODc4ODA1ODljYTBlYzhhZGUwMDA3MTE3YjNhZDUwNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQtcG9wdWxhdGUt
cGFuZWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotU2hvd2lu
ZyBhbmQgcG9wdWxhdGluZyB0aGUgdHJhY2tzIHBhbmVsLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCi0KLQotQXVkaW8KLSAgRW5nbGlzaCBTb3VuZAotICBGcmVuY2ggU291bmQKLSAgU3Bh
bmlzaCBTb3VuZAotCi1TdWJ0aXRsZXMKLSAgT2ZmCi0gIEF1dG8gKFJlY29tbWVuZGVkKQotICBF
bmdsaXNoIFN1YnRpdGxlcwotICBGcmVuY2ggU3VidGl0bGVzCi0gIEdlcm1hbiBTdWJ0aXRsZXMK
LSAgU3BhbmlzaCBTdWJ0aXRsZXMKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
Ci1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LWFuZC1wb3B1
bGF0ZS1wYW5lbC5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAzYjNhMmIwMjA3NmQxMTUzNWJiMGJm
MjViMDJkZjA3ZmZmZjkyMTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1z
dXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlk
ZW8gc3JjPSIuLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJ3aWR0aDogNjQw
cHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgotPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0K
LWRlc2NyaXB0aW9uKCJTaG93aW5nIGFuZCBwb3B1bGF0aW5nIHRoZSB0cmFja3MgcGFuZWwuIik7
Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0
IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOwotCi1tZWRp
YS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0g
ICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAgIGNsaWNrT25U
cmFja3NCdXR0b24oKTsKLSAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9
PiB7Ci0gICAgICAgICAgICBsaXN0Q29udGVudHNPZlRyYWNrc1BhbmVsKCk7Ci0gICAgICAgICAg
ICBtZWRpYS5yZW1vdmUoKTsKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9
KTsKLSAgICB9KTsKLX0pOwotCi1mdW5jdGlvbiBjbGlja09uVHJhY2tzQnV0dG9uKCkKLXsKLSAg
ICBjb25zdCBib3VuZHMgPSBzaGFkb3dSb290Lmxhc3RDaGlsZC5xdWVyeVNlbGVjdG9yKCJidXR0
b24udHJhY2tzIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oYm91bmRzLmxlZnQgKyAxLCBib3VuZHMudG9wICsgMSk7Ci0gICAgZXZlbnRTZW5k
ZXIubW91c2VEb3duKCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotfQotCi1mdW5jdGlv
biBsaXN0Q29udGVudHNPZlRyYWNrc1BhbmVsKCkKLXsKLSAgICBmb3IgKGxldCBzZWN0aW9uIG9m
IHNoYWRvd1Jvb3QubGFzdENoaWxkLnF1ZXJ5U2VsZWN0b3JBbGwoInNlY3Rpb24iKSkgewotICAg
ICAgICBkZWJ1ZyhzZWN0aW9uLnF1ZXJ5U2VsZWN0b3IoImgzIikudGV4dENvbnRlbnQpOwotICAg
ICAgICBmb3IgKGxldCBpdGVtIG9mIHNlY3Rpb24ucXVlcnlTZWxlY3RvckFsbCgibGkiKSkKLSAg
ICAgICAgICAgIGRlYnVnKCIgICIgKyBpdGVtLnRleHRDb250ZW50KTsKLSAgICAgICAgZGVidWco
IiIpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tz
LXN1cHBvcnQtc2hvdy1wYW5lbC1hZnRlci1kcmFnZ2luZy1jb250cm9scy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
dHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1hZnRlci1kcmFnZ2luZy1jb250cm9scy1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5ODQzMGJmMzhmMTI2NjBiOGVm
Y2M3OTYxNmVmMTg0YjUxMDg0ZTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJv
bHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotVGVzdGluZyB0
aGUgZGlzcGxheSBvZiBhIHRyYWNrcyBwYW5lbCBhZnRlciBkcmFnZ2luZyB0aGUgY29udHJvbHMg
YmFyIGluIGZ1bGxzY3JlZW4uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNT
IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLmZ1bGxzY3JlZW4nKS5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAotUEFTUyBzaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSBiZWNh
bWUgZGlmZmVyZW50IGZyb20gMAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRv
bi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCBpcyBzaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdo
dAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5zdHlsZS5i
b3R0b20gaXMgIjE1MXB4IgotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXIt
ZHJhZ2dpbmctY29udHJvbHMuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRy
YWdnaW5nLWNvbnRyb2xzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhZWRh
OTg1MTcxYWQ0MWNiNmY2NGY4NGQ4Mzg0ODdiN2Q4Mjg0ZjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXIt
ZHJhZ2dpbmctY29udHJvbHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xz
LXV0aWxzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlk
ZW8gc3JjPSIuLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJ3aWR0aDogMzIw
cHg7IGhlaWdodDogMjQwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgotPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0K
LWRlc2NyaXB0aW9uKCJUZXN0aW5nIHRoZSBkaXNwbGF5IG9mIGEgdHJhY2tzIHBhbmVsIGFmdGVy
IGRyYWdnaW5nIHRoZSBjb250cm9scyBiYXIgaW4gZnVsbHNjcmVlbi4iKTsKLQotY29uc3QgbWVk
aWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hhZG93Um9vdCA9
IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlhLmFkZEV2ZW50TGlz
dGVuZXIoIndlYmtpdGJlZ2luZnVsbHNjcmVlbiIsICgpID0+IHsKLSAgICBkZWJ1Zygid2Via2l0
YmVnaW5mdWxsc2NyZWVuIik7Ci19KTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0
ZnVsbHNjcmVlbmNoYW5nZSIsICgpID0+IHsKLSAgICBpZiAoIW1lZGlhLndlYmtpdERpc3BsYXlp
bmdGdWxsc2NyZWVuKQotICAgICAgICByZXR1cm47Ci0KLSAgICB3aW5kb3cucmVxdWVzdEFuaW1h
dGlvbkZyYW1lKCgpID0+IHsKLSAgICAgICAgY29uc3QgYm91bmRzID0gc2hhZG93Um9vdC5xdWVy
eVNlbGVjdG9yKCIuY29udHJvbHMtYmFyIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGJvdW5kcy5sZWZ0ICsgMTE4LCBib3VuZHMudG9w
ICsgMTApOwotICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VNb3ZlVG8oYm91bmRzLmxlZnQgKyA2OCwgYm91bmRzLnRvcCAtIDQwKTsKLSAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotCi0gICAgICAgIHJlcXVlc3RBbmltYXRpb25G
cmFtZSgoKSA9PiB7Ci0gICAgICAgICAgICBjbGlja09uQnV0dG9uKCJ0cmFja3MiLCAoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRy
YWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0IiwgInNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0IikK
LSAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5zdHlsZS5ib3R0b20iLCAiMTUxcHgiKTsKLQot
ICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICAgICAgICAgIG1lZGlh
LnJlbW92ZSgpOwotICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0pOwot
Ci1tZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4gewotICAgIG1lZGlhLnBhdXNl
KCk7Ci0gICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiBjbGlja09uQnV0dG9u
KCJmdWxsc2NyZWVuIikpOwotfSk7Ci0KLWZ1bmN0aW9uIGNsaWNrT25CdXR0b24obmFtZSwgY29u
dGludWF0aW9uKQotewotICAgIHNob3VsZEJlY29tZURpZmZlcmVudChgc2hhZG93Um9vdC5xdWVy
eVNlbGVjdG9yKCdidXR0b24uJHtuYW1lfScpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpYCwgIjAi
LCAoKSA9PiB7Ci0gICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cihgYnV0dG9uLiR7bmFtZX1gKSwgY29udGludWF0aW9uKTsKLSAgICB9KTsKLX0KLQotPC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1mdWxs
c2NyZWVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxzY3JlZW4t
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NTE1MjU1MDQyODA4
ZGM2ZjNkMWQ5YWE3MTNlNjE2ZTUyOTc1ZWEzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxzY3JlZW4tZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotU2hvd2luZyB0aGUgdHJh
Y2tzIHBhbmVsIGluIGZ1bGxzY3JlZW4uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQot
Ci1QQVNTIGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0b24u
ZnVsbHNjcmVlbiIpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIGludGVybmFscy5z
aGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0b24uZnVsbHNjcmVlbiIpLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCi1QQVNTIG1l
ZGlhLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIGJlY2FtZSB0cnVlCi1QQVNTIGludGVybmFs
cy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikgYmVjYW1l
IGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1
ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0
aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAotUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRp
YSkucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
LnJpZ2h0IGJlY2FtZSA1ODIKLVBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5
U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFT
UyBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5l
bCcpLnN0eWxlLnJpZ2h0IGlzICIyMThweCIKLVBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVk
aWEpLnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5zdHlsZS5ib3R0b20gaXMgIjEwMXB4
IgotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtZnVsbHNjcmVlbi5odG1sIGIvTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNr
cy1zdXBwb3J0LXNob3ctcGFuZWwtZnVsbHNjcmVlbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwYzAzOTY1ZDk1ZDM4NmVlY2RmNzZhOTU2YjgxOTA5ZTZjNjY3NGFhLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1z
aG93LXBhbmVsLWZ1bGxzY3JlZW4uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRy
b2xzLXV0aWxzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+Ci08
dmlkZW8gc3JjPSIuLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJ3aWR0aDog
MzIwcHg7IGhlaWdodDogMjQwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgotPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
Ci0KLWRlc2NyaXB0aW9uKCJTaG93aW5nIHRoZSB0cmFja3MgcGFuZWwgaW4gZnVsbHNjcmVlbi4i
KTsKLQotc2V0VGltZW91dCgoKSA9PiB7Ci0gICAgZGVidWcoIkZBSUw6IGRpZCBub3QgZW5kIGZh
c3QgZW5vdWdoIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19LCAxMDAwMCk7Ci0KLWNvbnN0IG1l
ZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLQotbWVkaWEuYWRkRXZlbnRM
aXN0ZW5lcigid2Via2l0ZnVsbHNjcmVlbmNoYW5nZSIsICgpID0+IHsKLSAgICBzaG91bGRCZWNv
bWVFcXVhbCgibWVkaWEud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4iLCAidHJ1ZSIsICgpID0+
IHsKLSAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KGBpbnRlcm5hbHMuc2hhZG93Um9vdCht
ZWRpYSkucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpYCwgIm51bGwiLCAoKSA9PiB7Ci0g
ICAgICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoYGludGVybmFscy5zaGFkb3dSb290KG1l
ZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCkud2lkdGhgLCAiMCIsICgpID0+IHsKLSAgICAgICAgICAgICAgICBzaG91bGRCZWNvbWVFcXVh
bChgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFj
a3MiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodGAsICI1ODIiLCAoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgICAgIHByZXNzT25FbGVtZW50KGludGVybmFscy5zaGFkb3dSb290KG1lZGlh
KS5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpOwotICAgICAgICAgICAgICAgICAgICBz
aG91bGRCZWNvbWVEaWZmZXJlbnQoYGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNl
bGVjdG9yKCcudHJhY2tzLXBhbmVsJylgLCAibnVsbCIsICgpID0+IHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVk
aWEpLnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5zdHlsZS5yaWdodCIsICIyMThweCIp
OwotICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnRlcm5h
bHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpLnN0eWxl
LmJvdHRvbSIsICIxMDFweCIpOwotICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoIiIpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAg
ICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19KTsK
LQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKLSAgICBtZWRpYS5wYXVz
ZSgpOwotICAgIHNob3VsZEJlY29tZURpZmZlcmVudChgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVk
aWEpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi5mdWxsc2NyZWVuIilgLCAibnVsbCIsICgpID0+IHsK
LSAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KGBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRp
YSkucXVlcnlTZWxlY3RvcigiYnV0dG9uLmZ1bGxzY3JlZW4iKS5nZXRCb3VuZGluZ0NsaWVudFJl
Y3QoKS53aWR0aGAsICIwIiwgKCkgPT4gewotICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoaW50
ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoYGJ1dHRvbi5mdWxsc2NyZWVu
YCkpOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0pOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9u
LXRyYWNrcy1idXR0b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtdGhl
bi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDk4YmQ3NzhjMjgyMmY4M2Y0Y2ZlOGUxMzQxNTJmMDdhMjRjMTQ2
YWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1z
dXBwb3J0LXNob3ctcGFuZWwtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi1FbnN1cmUgdGhhdCBkb3Vi
bGUtY2xpY2tpbmcgdGhlIHRyYWNrcyBidXR0b24gd2hlbiB0aGUgdHJhY2tzIHBhbmVsIG1ha2Vz
IHRoZSBwYW5lbCBhcHBlYXIgYWdhaW4uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQot
Ci1NZWRpYSBzdGFydGVkIHBsYXlpbmcKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdi
dXR0b24udHJhY2tzJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1Mgc2hhZG93Um9v
dC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCku
d2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVj
dG9yKCcudHJhY2tzLXBhbmVsJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1Mgc2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykgaXMgbm90IG51bGwKLQotUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1i
dXR0b24uaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9u
LXRyYWNrcy1idXR0b24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDg1NjQx
OWMyOWJjMzI5YmU5OWNiOTYyMmNkOTJhNDM1OTM4MWYyMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC10aGVuLWRv
dWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MSAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRp
YS1jb250cm9scy11dGlscy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxi
b2R5PgotPHZpZGVvIHNyYz0iLi4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0i
cG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiA2NDBweDsgaGVpZ2h0
OiAzNjBweDsiIGNvbnRyb2xzIGF1dG9wbGF5PjwvdmlkZW8+Ci08c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRp
b24oIkVuc3VyZSB0aGF0IGRvdWJsZS1jbGlja2luZyB0aGUgdHJhY2tzIGJ1dHRvbiB3aGVuIHRo
ZSB0cmFja3MgcGFuZWwgbWFrZXMgdGhlIHBhbmVsIGFwcGVhciBhZ2Fpbi4iKTsKLQotY29uc3Qg
bWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hhZG93Um9v
dCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlhLmFkZEV2ZW50
TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLQotICAgIGRlYnVn
KCJNZWRpYSBzdGFydGVkIHBsYXlpbmciKTsKLSAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7
Ci0gICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsICgp
ID0+IHsKLSAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cigiYnV0dG9uLnRyYWNrcyIpKTsKLSAgICAgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgi
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykiLCAibnVsbCIsICgpID0+
IHsKLSAgICAgICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3IoImJ1dHRvbi50cmFja3MiKSk7Ci0gICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZy
YW1lKCgpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9v
dC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpOwotICAgICAgICAgICAgICAgICAgICAv
LyBHaXZlIHRoZSB0cmFuc2l0aW9uZW5kIGV2ZW50IHRpbWUgdG8gZmlyZSBpZiBpdCB3ZXJlIHRv
IGhhcHBlbiwgd2hpY2ggaXQgc2hvdWxkIG5vdC4KLSAgICAgICAgICAgICAgICAgICAgc2V0VGlt
ZW91dCgoKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzaG91bGROb3RCZSgic2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykiLCAibnVsbCIpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgbWVkaWEu
cmVtb3ZlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAg
ICAgICAgICAgICAgICAgfSwgNTAwKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
IH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0pOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1h
cGktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXRleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1l
ZGlhLWFwaS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjOGM3
MzQ1NjBiZTg4OGUyZTQ4ZTE5ZmU1YWQzZDY1YzUxOTNhNTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXRleHQtdHJhY2stc2VsZWN0
ZWQtdmlhLW1lZGlhLWFwaS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCww
IEBACi1UaGlzIHRlc3QgY2hlY2tzIHRoYXQgc2V0dGluZyBhbiBlbWJlZGRlZCB0ZXh0IHRyYWNr
IGFzIHNlbGVjdGVkIHZpYSB0aGUgSFRNTE1lZGlhRWxlbWVudCBKUyBBUElzIHdpbGwgY29ycmVj
dGx5IHNob3cgdGhpcyB0cmFjayBhcyBzZWxlY3RlZCwgYW5kIHRoYXQgc2VsZWN0aW5nIHRoZSAi
QXV0b21hdGljIChSZWNvbW1lbmRlZCkiIHRyYWNrIHdpbGwgcmV2ZXJ0IGJhY2sgdG8gc2VsZWN0
aW5nIHRoYXQgZW50cnkuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQg
ZnJvbSBudWxsCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycp
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCi0K
LT09PSBJbml0aWFsIHN0YXRlID09PQotCi1bLV0gT2ZmCi1bLV0gQXV0byAoUmVjb21tZW5kZWQp
Ci1beF0gRW5nbGlzaCBTdWJ0aXRsZXMKLVstXSBGcmVuY2ggU3VidGl0bGVzCi1bLV0gR2VybWFu
IFN1YnRpdGxlcwotWy1dIFNwYW5pc2ggU3VidGl0bGVzCi0KLT09PSBBZnRlciBwaWNraW5nIGF1
dG8gdHJhY2sgaW50ZXJhY3RpdmVseSA9PT0KLQotWy1dIE9mZgotW3hdIEF1dG8gKFJlY29tbWVu
ZGVkKQotWy1dIEVuZ2xpc2ggU3VidGl0bGVzCi1bLV0gRnJlbmNoIFN1YnRpdGxlcwotWy1dIEdl
cm1hbiBTdWJ0aXRsZXMKLVstXSBTcGFuaXNoIFN1YnRpdGxlcwotCi1QQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBw
b3J0LXRleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS5odG1sIGIvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0
LXRleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAxMjM0Y2I5MDE1Mjg2YzhlYmU2NGRkNjI5YmUxODljMjZjOTM1MjdjLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9y
dC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDg4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08Ym9keT4KLTx2aWRlbyBzcmM9Ii4u
Ly4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsg
bGVmdDogMDsgdG9wOiAwOyB3aWR0aDogNjQwcHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBh
dXRvcGxheT48L3ZpZGVvPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKGBUaGlzIHRlc3QgY2hlY2tz
IHRoYXQgc2V0dGluZyBhbiBlbWJlZGRlZCB0ZXh0IHRyYWNrIGFzIHNlbGVjdGVkIHZpYSB0aGUg
SFRNTE1lZGlhRWxlbWVudCBKUyBBUElzIHdpbGwgY29ycmVjdGx5IHNob3cgdGhpcyB0cmFjayBh
cyBzZWxlY3RlZCwgYW5kIHRoYXQgc2VsZWN0aW5nIHRoZSAKLSJBdXRvbWF0aWMgKFJlY29tbWVu
ZGVkKSIgdHJhY2sgd2lsbCByZXZlcnQgYmFjayB0byBzZWxlY3RpbmcgdGhhdCBlbnRyeS5gKTsK
LQotY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qg
c2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlh
LmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLQot
ICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0
b24udHJhY2tzJykiLCAibnVsbCIsICgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVy
ZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKS53aWR0aCIsICIwIiwgcnVuVGVzdCk7Ci0gICAgfSk7Ci19KTsKLQotYXN5
bmMgZnVuY3Rpb24gcnVuVGVzdCgpCi17Ci0gICAgLy8gU3RhcnQgYnkgc2VsZWN0aW5nIG9uZSBv
ZiB0aGUgdGV4dCB0cmFja3MgdXNpbmcgdGhlIG1lZGlhIEpTIEFQSS4KLSAgICAvLyBUaGlzIHdp
bGwgY2F1c2UgdGV4dFRyYWNrc0RpZENoYW5nZSB0byBiZSBjYWxsZWQgZm9yIHRoZSBmaXJzdCB0
aW1lLgotICAgIG1lZGlhLnRleHRUcmFja3NbMF0ubW9kZSA9ICJzaG93aW5nIjsKLQotICAgIC8v
IE5leHQsIGJyaW5nIHVwIHRoZSB0cmFja3MgbWVudSBieSBjbGlja2luZyBvbiB0aGUgdHJhY2tz
IGJ1dHRvbi4KLSAgICBhd2FpdCBjbGlja09uVHJhY2tzQnV0dG9uKCk7Ci0gICAgLy8gRHVtcCB0
aGUgc3RhdGUgb2YgdGhlIHRyYWNrcyBtZW51IGZvciB0ZXh0IHRyYWNrcywgd2hpY2ggc2hvdWxk
IHNob3cgdGhlIGZpcnN0IGVtYmVkZGVkIHRleHQgdHJhY2sgYXMgc2VsZWN0ZWQuCi0gICAgZHVt
cFRleHRUcmFja3NMaXN0Tm9kZXMoIkluaXRpYWwgc3RhdGUiKTsKLSAgICAvLyBOb3csIHNlbGVj
dCB0aGUgIkF1dG9tYXRpYyAoUmVjb21tZW5kZWQpIiB0ZXh0IHRyYWNrLiAKLSAgICBhd2FpdCBj
bGlja09uVGV4dFRyYWNrQXRJbmRleCgxKTsKLSAgICAvLyBXYWl0IGZvciB0aGUgc2VsZWN0aW9u
IHRvIGhhdmUgZ29uZSB0aHJvdWdoIGFuZCB0aGUgcGFuZWwgdG8gaGF2ZSB0cmFuc2l0aW9uZWQg
b3V0IG9mIHZpZXcuCi0gICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzaGFkb3dSb290
LnF1ZXJ5U2VsZWN0b3IoIi50cmFja3MtcGFuZWwiKS5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0
aW9uZW5kIiwgcmVzb2x2ZSwgeyBvbmNlOiB0cnVlIH0pKTsKLQotICAgIC8vIE5vdywgYnJpbmcg
dXAgdGhlIHRyYWNrcyBtZW51IGFnYWluIGJ5IGNsaWNraW5nIG9uIHRoZSB0cmFja3MgYnV0dG9u
LgotICAgIGF3YWl0IGNsaWNrT25UcmFja3NCdXR0b24oKTsKLSAgICAvLyBEdW1wIHRoZSBzdGF0
ZSBvZiB0aGUgdHJhY2tzIG1lbnUgZm9yIHRleHQgdHJhY2tzLCB3aGljaCBzaG91bGQgbm93IHNo
b3cgIkF1dG9tYXRpYyAoUmVjb21tZW5kZWQpIiBhcyBzZWxlY3RlZC4KLSAgICBkdW1wVGV4dFRy
YWNrc0xpc3ROb2RlcygiQWZ0ZXIgcGlja2luZyBhdXRvIHRyYWNrIGludGVyYWN0aXZlbHkiKTsK
LQotICAgIGZpbmlzaFRlc3QoKTsKLX0KLQotZnVuY3Rpb24gdGV4dFRyYWNrc0xpc3ROb2Rlcygp
Ci17Ci0gICAgcmV0dXJuIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLnRyYWNrcy1wYW5l
bCBzZWN0aW9uOmxhc3Qtb2YtdHlwZSA+IHVsID4gbGkiKTsKLX0KLQotZnVuY3Rpb24gZHVtcFRl
eHRUcmFja3NMaXN0Tm9kZXMobXNnKQotewotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZyhgPT09
ICR7bXNnfSA9PT1gKTsKLSAgICBkZWJ1ZygiIik7Ci0gICAgQXJyYXkuZnJvbSh0ZXh0VHJhY2tz
TGlzdE5vZGVzKCkpLmZvckVhY2gobGkgPT4gZGVidWcoYCR7bGkuY2xhc3NMaXN0LmNvbnRhaW5z
KCJzZWxlY3RlZCIpID8gIlt4XSIgOiAiWy1dIn0gJHtsaS50ZXh0Q29udGVudH1gKSk7Ci19Ci0K
LWFzeW5jIGZ1bmN0aW9uIGNsaWNrT25UcmFja3NCdXR0b24oKQotewotICAgIGF3YWl0IG5ldyBQ
cm9taXNlKHJlcXVlc3RBbmltYXRpb25GcmFtZSk7Ci0gICAgY2xpY2tPbkVsZW1lbnQoc2hhZG93
Um9vdC5sYXN0Q2hpbGQucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKTsKLSAgICBhd2Fp
dCBuZXcgUHJvbWlzZShyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOwotfQotCi1mdW5jdGlvbiBjbGlj
a09uVGV4dFRyYWNrQXRJbmRleChpbmRleCkKLXsKLSAgICBjbGlja09uRWxlbWVudCh0ZXh0VHJh
Y2tzTGlzdE5vZGVzKClbaW5kZXhdKTsKLX0KLQotZnVuY3Rpb24gY2xpY2tPbkVsZW1lbnQoZWxl
bWVudCkKLXsKLSAgICBjb25zdCBib3VuZHMgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGJvdW5kcy5sZWZ0ICsgMSwgYm91bmRz
LnRvcCArIDEpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwotICAgIGV2ZW50U2VuZGVy
Lm1vdXNlVXAoKTsKLX0KLQotZnVuY3Rpb24gZmluaXNoVGVzdCgpCi17Ci0gICAgZGVidWcoIiIp
OwotICAgIG1lZGlhLnJlbW92ZSgpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfQotCi08L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggMWExZDFjMDg5ZTVjMjZjMmJhMmFmNDE4ZmVkMDdlM2ZiYmY2NTFkMS4uNGUzM2U5Yzli
MzBmZWU1NjlhNDk5ZDhkNjNmMjE4NmExOTVhM2RjMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEyNjIsNiArMTI2Miw3IEBAIG1lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy9tZWRpYS1kb2N1bWVudHMvbWVkaWEtZG9jdW1lbnQtYXVkaW8taW9zLXNp
emluZy5odG1sCiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtZG9jdW1lbnRzL21l
ZGlhLWRvY3VtZW50LXZpZGVvLWlwaG9uZS1zaXppbmcuaHRtbCBbIFNraXAgXQogbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWRvY3VtZW50cy9tZWRpYS1kb2N1bWVudC12aWRlby1p
cGFkLXNpemluZy5odG1sIFsgU2tpcCBdCiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvc2Ny
dWJiZXItc3VwcG9ydC9pcGFkIFsgU2tpcCBdCittZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXN1cHBvcnQvaW9zIFsgU2tpcCBdCiAKICMgVGhlc2UgdGVzdHMgYXJlIHRpbWluZy1y
ZWxhdGVkIGFuZCBjYW4gZmFpbCBkdWUgdG8gcGVyZm9ybWFuY2UgaXNzdWVzIG9uIGJvdHMKIHdl
YmtpdC5vcmcvYi8xNjk4NzYgbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRy
b2xsZXIvbWVkaWEtY29udHJvbGxlci1hdXRvLWhpZGUtbW91c2UtZW50ZXItYW5kLW1vdXNlLWxl
YXZlLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQpAQCAtMTI3Nyw3ICsxMjc4LDcgQEAgd2Via2l0Lm9y
Zy9iLzE3ODEyNyBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxlci9t
ZWRpYS1jb250cm9sbGUKICMgb24gaU9TLCBhbmQgdGhlIGJ1ZyBpdCB3YXMgY3JlYXRlZCB0byBy
ZWdyZXNzaW9uLXRlc3Qgd2FzIGlPUy1vbmx5LCBzbyB0aGVyZSBpcyBubyBodXJyeSB0byBtYWtl
IGl0IHdvcmsgb24gTWFjLgogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWRvY3Vt
ZW50cy9iYWNrZ3JvdW5kLWNvbG9yLWFuZC1jZW50ZXJpbmcuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5
RmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8xNjkxNTggbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dp
bmctY29udHJvbHMuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzE2OTE1OCBtZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ct
cGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJvbHMuaHRtbCBbIFNraXAgXQogCiB3ZWJraXQub3Jn
L2IvMTc4MDgzIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcGFpbnQtdG8tY2FudmFz
Lmh0bWwgWyBGYWlsdXJlIF0KIApAQCAtMTg0MCw3ICsxODQxLDcgQEAgd2Via2l0Lm9yZy9iLzIx
MDA0NiBbIFJlbGVhc2UgXSBzdG9yYWdlL2luZGV4ZWRkYi92YWx1ZS1jdXJzb3ItY3ljbGUuaHRt
bCBbIFBhc3MKIAogd2Via2l0Lm9yZy9iLzIwNzE2MCBjc3MyLjEvMjAxMTAzMjMvcmVwbGFjZWQt
aW50cmluc2ljLXJhdGlvLTAwMS5odG0gWyBQYXNzIEZhaWx1cmUgXQogCi13ZWJraXQub3JnL2Iv
MTgyNTcxIFsgRGVidWcgXSBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBv
cnQvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1mdWxsc2NyZWVuLmh0bWwgWyBQYXNzIFRpbWVv
dXQgXQord2Via2l0Lm9yZy9iLzE4MjU3MSBbIERlYnVnIF0gbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxz
Y3JlZW4uaHRtbCBbIFBhc3MgVGltZW91dCBdCiAKICMgQ2VydGFpbiB2ZXJzaW9ucyBvZiBtYWNP
UyB1c2UgZGlmZmVyZW50IHRleHQgc2VjdXJpdHkgY2hhcmFjdGVycy4KIHdlYmtpdC5vcmcvYi8y
MDk2OTIgWyBNb2phdmUgQ2F0YWxpbmEgXSBwbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L3RleHQtc2Vj
dXJpdHktZGlzYy1idWxsZXQtcHVhLW1hYy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419777</attachid>
            <date>2021-02-09 15:42:16 -0800</date>
            <delta_ts>2021-03-15 22:00:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221594-20210209164215.patch</filename>
            <type>text/plain</type>
            <size>175375</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggODlmNmZjMTI4OTM5MDdjZGQ4NjRmZjY3MzhkYzU5NTQxOTA1YzJjYi4uYTIxZjc0NWIw
ZmM0ZDk1ZjJlM2YwMGE0MTYwYjlhMjkzYWNiZTNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAy
MS0wMi0wOSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lP
U10gQWRkIHN1cHBvcnQgZm9yIHRoZSBsYW5ndWFnZS9zdWJ0aXRsZSB0cmFja3MgYnV0dG9uIHVz
aW5nIGBVSU1lbnVgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjE1OTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc0MTI5MTI5PgorCisgICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbiBhbmQgV2Vuc29uIEhzaWVoLgorCisgICAgICAgICog
U2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sOgorICAgICAgICBDcmVhdGUg
YSBgTWVkaWFDb250cm9sc0NvbnRleHRNZW51c0VuYWJsZWRgIHNldHRpbmcgZm9yIGd1YXJkaW5n
IGFuIElETCBob29rIHRvIFdLMiBvbmx5LgorCiAyMDIxLTAyLTA2ICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTm9uLXNwZWNpYWwgVVJMcyBz
aG91bGQgaGF2ZSBhbiBvcGFxdWUgb3JpZ2luCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDkwZTU0Yzk1YjhhMWYw
NTI1ODYyMDI0MjVmZjc0MDdhNTAyODUxOS4uZjQyODUyZmQ3NzkxZDViNWQyNTE0MjViZTE1NjRk
ZGFjODk1OTE0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTAyLTA5ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBBZGQgc3VwcG9y
dCBmb3IgdGhlIGxhbmd1YWdlL3N1YnRpdGxlIHRyYWNrcyBidXR0b24gdXNpbmcgYFVJTWVudWAK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTU5NAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQxMjkxMjk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RXJpYyBDYXJsc29uIGFuZCBXZW5zb24gSHNpZWguCisKKyAgICAgICAgVGVzdHM6IG1lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtYXV0
by10ZXh0LXRyYWNrLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJhY2staW4tY29u
dGV4dG1lbnUuaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLmh0bWwKKyAg
ICAgICAgICAgICAgIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9p
b3MvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2suaHRtbAorICAgICAgICAgICAgICAgbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9y
dC1zaG93LWNvbnRleHRtZW51LXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24uaHRt
bAorICAgICAgICAgICAgICAgbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L2lvcy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGku
aHRtbAorICAgICAgICAgICAgICAgbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1z
dXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2suaHRtbAorICAgICAgICAg
ICAgICAgbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFj
a3Mtc3VwcG9ydC1jbGljay10cmFjay1pbi1wYW5lbC5odG1sCisgICAgICAgICAgICAgICBtZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0
LWhpZGRlbi10cmFja3MuaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay5o
dG1sCisgICAgICAgICAgICAgICBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLmh0bWwKKyAg
ICAgICAgICAgICAgIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9t
YWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1hZnRlci1kcmFnZ2luZy1jb250cm9scy5odG1s
CisgICAgICAgICAgICAgICBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBv
cnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtZnVsbHNjcmVlbi5odG1sCisgICAgICAg
ICAgICAgICBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3Ry
YWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRv
bi5odG1sCisgICAgICAgICAgICAgICBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXRleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlh
LWFwaS5odG1sCisKKyAgICAgICAgKiBwYWdlL01lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0u
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVt
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRN
ZW51SXRlbTo6ZGVjb2RlKToKKyAgICAgICAgU2ltcGxlIFBPRCBvYmplY3QgZm9yIHNlbmRpbmcg
ZGF0YSBmcm9tIHRoZSBXZWJQcm9jZXNzIHRvIHRoZSBVSVByb2Nlc3MgZm9yIHRoZSBgVUlNZW51
YC4KKworICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhL3RyYWNr
cy1zdXBwb3J0LmpzOgorICAgICAgICAoVHJhY2tzU3VwcG9ydC5wcm90b3R5cGUuYnV0dG9uV2Fz
UHJlc3NlZCk6CisgICAgICAgIChUcmFja3NTdXBwb3J0LnByb3RvdHlwZS5zeW5jQ29udHJvbCk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmlkbDoK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4
dE1lbnUpOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KToKKyAg
ICAgICAgUHJvdmlkZSBhIGhvc3QgaG9vayBmb3IgZ2VuZXJhdGluZyBhbmQgc2VuZGluZyB0aGUg
YFVJTWVudWAgZGF0YS4gV2hlbiBhIGBVSUFjdGlvbmAgaXMKKyAgICAgICAgc2VsZWN0ZWQgb3Ig
dGhlIG1lbnUgaXMgZGlzbWlzc2VkLCB0aGUgcmVsZXZhbnQgYE1lZGlhQ29udHJvbHNDb250ZXh0
TWVudUl0ZW06OklEYCBpcyBzZW50CisgICAgICAgIGJhY2sgYXMgdGhlIHJlc3BvbnNlIHRvIHRo
ZSBhc3luYyBtZXNzYWdlIGFuZCBpcyB1c2VkIHRvIHBlcmZvcm0gdGhlIGFjdGlvbiByZWxhdGVk
IHRvIHRoZQorICAgICAgICB0eXBlIG9mIHRoZSBvYmplY3QgKGUuZy4gYEF1ZGlvVHJhY2tgLCBg
VGV4dFRyYWNrYCwgZXRjLikgdGhhdCB3YXMgcHJldmlvdXNseSBhc3NvY2lhdGVkCisgICAgICAg
IHdpdGggdGhhdCBgTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6SURgLgorCisgICAgICAg
ICogZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5nczoKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2Nh
bGl6ZWRTdHJpbmdzLmg6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjp0ZXh0VHJhY2tTdWJ0aXRsZXNUZXh0KTogRGVsZXRlZC4KKyAg
ICAgICAgQWRkIGxvY2FsaXphYmxlIHN0cmluZ3MgZm9yICJMYW5ndWFnZXMiIGFuZCAiU3VidGl0
bGVzIiBoZWFkZXJzL3N1Ym1lbnVzLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjEtMDItMDggIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lP
TiAocjI2OTQ1OCk6IHlhaG9vLmNvbSBzb2NpYWwgLyBjb21tZW50cyBiYXIgc2hvd3MgYXMgdHJh
bnNwYXJlbnQgd2hlbiBzY3JvbGxpbmcgcGFnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhNGZmY2VkOTUyYjRkNWFk
Mjk5MGUyMDkxZjRmN2QxM2FhOTU1MjNmLi44NDY4MDFiZWQ5MThlNDljMDlhYmEwNGM1MmU3MDRj
YzU0NTk1OGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDIxLTAyLTA5ICBEZXZpbiBS
b3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBBZGQgc3VwcG9ydCBm
b3IgdGhlIGxhbmd1YWdlL3N1YnRpdGxlIHRyYWNrcyBidXR0b24gdXNpbmcgYFVJTWVudWAKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTU5NAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNzQxMjkxMjk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBDYXJsc29uIGFuZCBXZW5zb24gSHNpZWguCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21l
Q2xpZW50OjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KTogQWRkZWQuCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNob3dNZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnUpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KTogQWRkZWQuCisgICAgICAgIFNl
bmQgdGhlIGdpdmVuIGBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtYHMgdG8gdGhlIFVJUHJv
Y2VzcyBmb3IgdGhlIGBVSU1lbnVgLgorCisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQu
aDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudDo6c2hvd01lZGlhQ29udHJvbHNDb250ZXh0
TWVudSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1Mu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAg
ICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudSk6
IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgYWN0aW9uU2hlZXRBc3Npc3RhbnREaWRTaG93Q29u
dGV4dE1lbnU6XSk6IEFkZGVkLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGFjdGlvblNoZWV0
QXNzaXN0YW50RGlkRGlzbWlzc0NvbnRleHRNZW51Ol0pOiBBZGRlZC4KKyAgICAgICAgKC1bV0tD
b250ZW50VmlldyBfc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudTppdGVtczpjb21wbGV0aW9u
SGFuZGxlcjpdKTogQWRkZWQuCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2NvbnRlbnRzT2ZV
c2VySW50ZXJmYWNlSXRlbTpdKToKKyAgICAgICAgUGFzcyB0aGUgZ2l2ZW4gYE1lZGlhQ29udHJv
bHNDb250ZXh0TWVudUl0ZW1gcyB0byB0aGUgYFdLQWN0aW9uU2hlZXRBc3Npc3RhbnRgLgorCisg
ICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tOgorICAgICAgICAoLVtX
S0FjdGlvblNoZWV0QXNzaXN0YW50IGRlYWxsb2NdKToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVl
dEFzc2lzdGFudCBfcmVtb3ZlQ29udGV4dE1lbnVJbnRlcmFjdGlvbnNdKTogQWRkZWQuCisgICAg
ICAgICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgX2Vuc3VyZURhdGFEZXRlY3RvckNvbnRleHRN
ZW51SW50ZXJhY3Rpb25dKTogQWRkZWQuCisgICAgICAgICgtW1dLQWN0aW9uU2hlZXRBc3Npc3Rh
bnQgX2Vuc3VyZU1lZGlhQ29udHJvbHNDb250ZXh0TWVudUludGVyYWN0aW9uXSk6IEFkZGVkLgor
ICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IGhhc0NvbnRleHRNZW51SW50ZXJhY3Rp
b25dKToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBzaG93RGF0YURldGVjdG9y
c1VJRm9yUG9zaXRpb25JbmZvcm1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFz
c2lzdGFudCBfdWlNZW51RWxlbWVudHNGb3JNZWRpYUNvbnRyb2xDb250ZXh0TWVudUl0ZW1zOl0p
OiBBZGRlZC4KKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBzaG93TWVkaWFDb250
cm9sc0NvbnRleHRNZW51Oml0ZW1zOmNvbXBsZXRpb25IYW5kbGVyOl0pOiBBZGRlZC4KKyAgICAg
ICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBjb250ZXh0TWVudUludGVyYWN0aW9uOmNvbmZp
Z3VyYXRpb25Gb3JNZW51QXRMb2NhdGlvbjpdKToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFz
c2lzdGFudCBjb250ZXh0TWVudUludGVyYWN0aW9uOnByZXZpZXdGb3JIaWdobGlnaHRpbmdNZW51
V2l0aENvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQg
Y29udGV4dE1lbnVJbnRlcmFjdGlvbjp3aWxsRGlzcGxheU1lbnVGb3JDb25maWd1cmF0aW9uOmFu
aW1hdG9yOl0pOiBBZGRlZC4KKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBjb250
ZXh0TWVudUludGVyYWN0aW9uOndpbGxFbmRGb3JDb25maWd1cmF0aW9uOmFuaW1hdG9yOl0pOgor
ICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IF9jb250ZXh0TWVudUludGVyYWN0aW9u
Om92ZXJyaWRlU3VnZ2VzdGVkQWN0aW9uc0ZvckNvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICgt
W1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgX2NvbnRlbnRzT2ZDb250ZXh0TWVudUl0ZW06XSk6IEFk
ZGVkLgorICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IGN1cnJlbnRseUF2YWlsYWJs
ZUFjdGlvblRpdGxlc10pOiBBZGRlZC4KKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFu
dCBjdXJyZW50bHlBdmFpbGFibGVNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtc10pOiBBZGRl
ZC4KKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBjdXJyZW50QXZhaWxhYmxlQWN0
aW9uVGl0bGVzXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQg
cmVtb3ZlQ29udGV4dE1lbnVJbnRlcmFjdGlvbl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS0Fj
dGlvblNoZWV0QXNzaXN0YW50IGVuc3VyZUNvbnRleHRNZW51SW50ZXJhY3Rpb25dKTogRGVsZXRl
ZC4KKyAgICAgICAgSW5zdGVhZCBvZiBhc3N1bWluZyB0aGF0IHRoZSBvbmx5IGBVSUNvbnRleHRN
ZW51SW50ZXJhY3Rpb25gIGlzIGZvciBkYXRhIGRldGVjdG9ycywgY2hlY2sKKyAgICAgICAgdGhl
IGdpdmVuIGBpbnRlcmFjdGlvbmAgdG8gc2VlIGlmIGl0J3MgdGhlIGRhdGEgZGV0ZWN0b3IgaW50
ZXJhY3Rpb24gYmVmb3JlIGRvaW5nIGFueSB3b3JrLgorICAgICAgICBUaGlzIGFsbG93cyB0aGUg
bWVkaWEgY29udHJvbHMgYFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbmAgdG8gZXhpc3Qgc2lkZS1i
eS1zaWRlIGFuZCB1c2UgdGhlCisgICAgICAgIGBXS0FjdGlvblNoZWV0QXNzaXN0YW50YCBhcyBp
dHMgZGVsZWdhdGUgdG9vIChlc3BlY2lhbGx5IHNpbmNlIGl0J3Mgbm90IHBvc3NpYmxlIGZvciBi
b3RoCisgICAgICAgIGNvbnRleHRtZW51cyB0byBiZSBhY3RpdmUgYXQgdGhlIHNhbWUgdGltZSku
IFByZXNlbnQgdGhlIG1lZGlhIGNvbnRyb2xzIGNvbnRleHRtZW51IHdpdGhvdXQKKyAgICAgICAg
YSBwcmV2aWV3IChpdCB1c2VzIGFuIGVtcHR5IGBVSVZpZXdgIGZvciBwcm9wZXIgc2l6aW5nKSBh
dCB0aGUgbG9jYXRpb24gcHJvdmlkZWQuIFNlbGVjdGluZworICAgICAgICBhIGBVSUFjdGlvbmAg
d2lsbCBzZW5kIHRoZSBgTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6SURgIGJhY2sgdG8g
dGhlIFdlYlByb2Nlc3MuCisgICAgICAgIEFsc28gYWRkIHN1cHBvcnQgZm9yCisgICAgICAgICAt
IGBVSVNjcmlwdENvbnRyb2xsZXIucHJvdG90eXBlLmNvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRl
bWAKKyAgICAgICAgIC0gYFVJU2NyaXB0Q29udHJvbGxlci5wcm90b3R5cGUuZGlkU2hvd0NvbnRl
eHRNZW51Q2FsbGJhY2tgCisgICAgICAgICAtIGBVSVNjcmlwdENvbnRyb2xsZXIucHJvdG90eXBl
LmRpZERpc21pc3NDb250ZXh0TWVudUNhbGxiYWNrYAorICAgICAgICBmb3IgdXNhZ2UgaW4gdGhl
IGFkZGVkIGBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvaW9zL2AgdGVzdHMuCisKIDIwMjEtMDItMDggIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1x
dWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjcyNDg1
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVu
Y2VzLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMu
eWFtbAppbmRleCAwNTIwYzZjOWQ5M2U2ZjU2NmZhY2YyMGUwODc0NWNmYjdjMGM3NTA3Li41ZTNk
MjVkODg0MTMzYjUzNjEwMjRmMGVlZjNmYjZlZGM0NWZmMGIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2Uv
V1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtMTM0MCw2ICsx
MzQwLDE3IEBAIE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OgogICAg
IFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiAnIiInCiAKK01lZGlhQ29udHJvbHNDb250ZXh0TWVu
dXNFbmFibGVkOgorICB0eXBlOiBib29sCisgIGNvbmRpdGlvbjogRU5BQkxFKE1FRElBX0NPTlRS
T0xTX0NPTlRFWFRfTUVOVVMpCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6Cisg
ICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IHRydWUKKyAg
ICBXZWJDb3JlOgorICAgICAgZGVmYXVsdDogZmFsc2UKKwogTWVkaWFDb250cm9sc1NjYWxlV2l0
aFBhZ2Vab29tOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CmluZGV4IDM3MjhhYmUwZTZhZWJhZDBmNDZlYzRkZjRlMGFmMzRlZDIzODEyNzYuLjBmNDdmNmVm
ZDY1ZTBhYjM2MjU1MzVkOTExMGZhMGRiZDYwYjY3MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAt
ODgxLDYgKzg4MSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAg
ICBwYWdlL0dsb2JhbFdpbmRvd0lkZW50aWZpZXIuaAogICAgIHBhZ2UvTGF5b3V0TWlsZXN0b25l
LmgKICAgICBwYWdlL01lZGlhQ2FuU3RhcnRMaXN0ZW5lci5oCisgICAgcGFnZS9NZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnVJdGVtLmgKICAgICBwYWdlL01lZGlhUHJvZHVjZXIuaAogICAgIHBhZ2Uv
TWVtb3J5UmVsZWFzZS5oCiAgICAgcGFnZS9OYXZpZ2F0b3JJc0xvZ2dlZEluLmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9z
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9s
c0hvc3QuY3BwCmluZGV4IGUzODdlZWY4MmRhZmUwMjcyMmEwNjRmMzM2YTAwYmEwYWE1N2RhZDIu
LjBjODNhMzQ1NWRlMTZlMDZmYWNlY2M5OWE3OGZhNWU2N2QyYjVkNzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNI
b3N0LmNwcApAQCAtMjksMTAgKzI5LDE2IEBACiAKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xzSG9z
dC5oIgogCisjaW5jbHVkZSAiQXVkaW9UcmFja0xpc3QuaCIKKyNpbmNsdWRlICJDaHJvbWUuaCIK
KyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJDYXB0aW9uVXNlclByZWZlcmVu
Y2VzLmgiCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CiAjaW5jbHVkZSAiTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIk1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaCIKICNpbmNsdWRlICJQYWdlLmgi
CiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKQEAgLTQw
LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJUZXh0VHJhY2tMaXN0LmgiCiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSlNDSlNWYWx1ZUlubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvVVVJRC5oPgorI2lu
Y2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzA0LDYg
KzMxMSwxMjIgQEAgU3RyaW5nIE1lZGlhQ29udHJvbHNIb3N0Ojpmb3JtYXR0ZWRTdHJpbmdGb3JE
dXJhdGlvbihkb3VibGUgZHVyYXRpb25JblNlY29uZHMpCiAgICAgcmV0dXJuIFJlbmRlclRoZW1l
OjpzaW5nbGV0b24oKS5tZWRpYUNvbnRyb2xzRm9ybWF0dGVkU3RyaW5nRm9yRHVyYXRpb24oZHVy
YXRpb25JblNlY29uZHMpOwogfQogCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRf
TUVOVVMpCisKK3ZvaWQgTWVkaWFDb250cm9sc0hvc3Q6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4
dE1lbnUoSFRNTEVsZW1lbnQmIHRhcmdldCwgQ29udGV4dE1lbnVPcHRpb25zJiYgb3B0aW9ucykK
K3sKKyAgICBpZiAoIW1fbWVkaWFFbGVtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRv
JiBtZWRpYUVsZW1lbnQgPSAqbV9tZWRpYUVsZW1lbnQ7CisKKyAgICBhdXRvKiBwYWdlID0gbWVk
aWFFbGVtZW50LmRvY3VtZW50KCkucGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgdXNpbmcgTWVudVRyYWNrSXRlbSA9IFZhcmlhbnQ8UmVmUHRyPEF1ZGlvVHJh
Y2s+LCBSZWZQdHI8VGV4dFRyYWNrPj47CisgICAgSGFzaE1hcDxNZWRpYUNvbnRyb2xzQ29udGV4
dE1lbnVJdGVtOjpJRCwgTWVudVRyYWNrSXRlbT4gaWRNYXA7CisKKyAgICBWZWN0b3I8TWVkaWFD
b250cm9sc0NvbnRleHRNZW51SXRlbT4gaXRlbXM7CisKKyAgICBpZiAob3B0aW9ucy5pbmNsdWRl
QXVkaW9UcmFja3MpIHsKKyAgICAgICAgaWYgKGF1dG8qIGF1ZGlvVHJhY2tzID0gbWVkaWFFbGVt
ZW50LmF1ZGlvVHJhY2tzKCk7IGF1ZGlvVHJhY2tzICYmIGF1ZGlvVHJhY2tzLT5sZW5ndGgoKSA+
IDEpIHsKKyAgICAgICAgICAgIE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0gYXVkaW9UcmFj
a3NJdGVtOworICAgICAgICAgICAgYXVkaW9UcmFja3NJdGVtLnRpdGxlID0gV0VCX1VJX1NUUklO
R19LRVkoIkxhbmd1YWdlcyIsICJMYW5ndWFnZXMgKE1lZGlhIENvbnRyb2xzIE1lbnUpIiwgIkxh
bmd1YWdlcyBtZWRpYSBjb250cm9scyBjb250ZXh0IG1lbnUgdGl0bGUiKTsKKyAgICAgICAgICAg
IGF1ZGlvVHJhY2tzSXRlbS5pY29uID0gImdsb2JlIl9zOworICAgICAgICAgICAgYXVkaW9UcmFj
a3NJdGVtLmNoaWxkcmVuLnJlc2VydmVDYXBhY2l0eShhdWRpb1RyYWNrcy0+bGVuZ3RoKCkpOwor
CisgICAgICAgICAgICBhdXRvJiBjYXB0aW9uUHJlZmVyZW5jZXMgPSBwYWdlLT5ncm91cCgpLmNh
cHRpb25QcmVmZXJlbmNlcygpOworCisgICAgICAgICAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2sg
OiBjYXB0aW9uUHJlZmVyZW5jZXMuc29ydGVkVHJhY2tMaXN0Rm9yTWVudShhdWRpb1RyYWNrcykp
IHsKKyAgICAgICAgICAgICAgICBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtIGF1ZGlvVHJh
Y2tJdGVtOworICAgICAgICAgICAgICAgIGF1ZGlvVHJhY2tJdGVtLmlkID0gaWRNYXAuc2l6ZSgp
ICsgMTsKKyAgICAgICAgICAgICAgICBhdWRpb1RyYWNrSXRlbS50aXRsZSA9IGNhcHRpb25QcmVm
ZXJlbmNlcy5kaXNwbGF5TmFtZUZvclRyYWNrKGF1ZGlvVHJhY2suZ2V0KCkpOworICAgICAgICAg
ICAgICAgIGF1ZGlvVHJhY2tJdGVtLmlzQ2hlY2tlZCA9IGF1ZGlvVHJhY2stPmVuYWJsZWQoKTsK
KworICAgICAgICAgICAgICAgIGlkTWFwLmFkZChhdWRpb1RyYWNrSXRlbS5pZCwgYXVkaW9UcmFj
ayk7CisKKyAgICAgICAgICAgICAgICBhdWRpb1RyYWNrc0l0ZW0uY2hpbGRyZW4uYXBwZW5kKFdU
Rk1vdmUoYXVkaW9UcmFja0l0ZW0pKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYg
KCFhdWRpb1RyYWNrc0l0ZW0uY2hpbGRyZW4uaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGl0
ZW1zLmFwcGVuZChXVEZNb3ZlKGF1ZGlvVHJhY2tzSXRlbSkpOworICAgICAgICB9CisgICAgfQor
CisgICAgaWYgKG9wdGlvbnMuaW5jbHVkZVRleHRUcmFja3MpIHsKKyAgICAgICAgaWYgKGF1dG8q
IHRleHRUcmFja3MgPSBtZWRpYUVsZW1lbnQudGV4dFRyYWNrcygpOyB0ZXh0VHJhY2tzICYmIHRl
eHRUcmFja3MtPmxlbmd0aCgpKSB7CisgICAgICAgICAgICBNZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnVJdGVtIHRleHRUcmFja3NJdGVtOworICAgICAgICAgICAgdGV4dFRyYWNrc0l0ZW0udGl0bGUg
PSBXRUJfVUlfU1RSSU5HX0tFWSgiU3VidGl0bGVzIiwgIlN1YnRpdGxlcyAoTWVkaWEgQ29udHJv
bHMgTWVudSkiLCAiU3VidGl0bGVzIG1lZGlhIGNvbnRyb2xzIGNvbnRleHQgbWVudSB0aXRsZSIp
OworICAgICAgICAgICAgdGV4dFRyYWNrc0l0ZW0uaWNvbiA9ICJjYXB0aW9ucy5idWJibGUiX3M7
CisgICAgICAgICAgICB0ZXh0VHJhY2tzSXRlbS5jaGlsZHJlbi5yZXNlcnZlQ2FwYWNpdHkodGV4
dFRyYWNrcy0+bGVuZ3RoKCkpOworCisgICAgICAgICAgICBhdXRvJiBjYXB0aW9uUHJlZmVyZW5j
ZXMgPSBwYWdlLT5ncm91cCgpLmNhcHRpb25QcmVmZXJlbmNlcygpOworICAgICAgICAgICAgYXV0
byBzb3J0ZWRUZXh0VHJhY2tzID0gY2FwdGlvblByZWZlcmVuY2VzLnNvcnRlZFRyYWNrTGlzdEZv
ck1lbnUodGV4dFRyYWNrcyk7CisgICAgICAgICAgICBib29sIGFsbFRyYWNrc0Rpc2FibGVkID0g
bm90Rm91bmQgPT0gc29ydGVkVGV4dFRyYWNrcy5maW5kTWF0Y2hpbmcoW10gKGNvbnN0IGF1dG8m
IHRleHRUcmFjaykgeworICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0VHJhY2stPm1vZGUoKSA9
PSBUZXh0VHJhY2s6Ok1vZGU6OlNob3dpbmc7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IGJvb2wgdXNlc0F1dG9tYXRpY1RyYWNrID0gY2FwdGlvblByZWZlcmVuY2VzLmNhcHRpb25EaXNw
bGF5TW9kZSgpID09IENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OkF1dG9tYXRpYyAmJiBhbGxUcmFj
a3NEaXNhYmxlZDsKKworICAgICAgICAgICAgZm9yIChhdXRvJiB0ZXh0VHJhY2sgOiBzb3J0ZWRU
ZXh0VHJhY2tzKSB7CisgICAgICAgICAgICAgICAgTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRl
bSB0ZXh0VHJhY2tJdGVtOworICAgICAgICAgICAgICAgIHRleHRUcmFja0l0ZW0uaWQgPSBpZE1h
cC5zaXplKCkgKyAxOworICAgICAgICAgICAgICAgIHRleHRUcmFja0l0ZW0udGl0bGUgPSBjYXB0
aW9uUHJlZmVyZW5jZXMuZGlzcGxheU5hbWVGb3JUcmFjayh0ZXh0VHJhY2suZ2V0KCkpOworICAg
ICAgICAgICAgICAgIGlmIChhbGxUcmFja3NEaXNhYmxlZCAmJiB0ZXh0VHJhY2sgPT0gJlRleHRU
cmFjazo6Y2FwdGlvbk1lbnVPZmZJdGVtKCkgJiYgKGNhcHRpb25QcmVmZXJlbmNlcy5jYXB0aW9u
RGlzcGxheU1vZGUoKSA9PSBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpGb3JjZWRPbmx5IHx8IGNh
cHRpb25QcmVmZXJlbmNlcy5jYXB0aW9uRGlzcGxheU1vZGUoKSA9PSBDYXB0aW9uVXNlclByZWZl
cmVuY2VzOjpNYW51YWwpKQorICAgICAgICAgICAgICAgICAgICB0ZXh0VHJhY2tJdGVtLmlzQ2hl
Y2tlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAodXNlc0F1dG9tYXRpY1RyYWNr
ICYmIHRleHRUcmFjayA9PSAmVGV4dFRyYWNrOjpjYXB0aW9uTWVudUF1dG9tYXRpY0l0ZW0oKSkK
KyAgICAgICAgICAgICAgICAgICAgdGV4dFRyYWNrSXRlbS5pc0NoZWNrZWQgPSB0cnVlOworICAg
ICAgICAgICAgICAgIGVsc2UgaWYgKCF1c2VzQXV0b21hdGljVHJhY2sgJiYgdGV4dFRyYWNrLT5t
b2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpTaG93aW5nKQorICAgICAgICAgICAgICAgICAgICB0
ZXh0VHJhY2tJdGVtLmlzQ2hlY2tlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgICAgICB0ZXh0VHJhY2tJdGVtLmlzQ2hlY2tlZCA9IGZhbHNlOworCisgICAg
ICAgICAgICAgICAgaWRNYXAuYWRkKHRleHRUcmFja0l0ZW0uaWQsIHRleHRUcmFjayk7CisKKyAg
ICAgICAgICAgICAgICB0ZXh0VHJhY2tzSXRlbS5jaGlsZHJlbi5hcHBlbmQoV1RGTW92ZSh0ZXh0
VHJhY2tJdGVtKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghdGV4dFRyYWNr
c0l0ZW0uY2hpbGRyZW4uaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGl0ZW1zLmFwcGVuZChX
VEZNb3ZlKHRleHRUcmFja3NJdGVtKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoaXRl
bXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQoIWlkTWFwLmlzRW1w
dHkoKSk7CisKKyAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5zaG93TWVkaWFDb250cm9sc0Nv
bnRleHRNZW51KHRhcmdldC5ib3VuZHNJblJvb3RWaWV3U3BhY2UoKSwgV1RGTW92ZShpdGVtcyks
IFt3ZWFrTWVkaWFFbGVtZW50ID0gbWFrZVdlYWtQdHIobWVkaWFFbGVtZW50KSwgaWRNYXAgPSBX
VEZNb3ZlKGlkTWFwKV0gKE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEIHNlbGVjdGVk
SXRlbUlEKSB7CisKKyAgICAgICAgaWYgKHNlbGVjdGVkSXRlbUlEID09IE1lZGlhQ29udHJvbHND
b250ZXh0TWVudUl0ZW06OmludmFsaWRJRCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBpZiAoIXdlYWtNZWRpYUVsZW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
YXV0byYgbWVkaWFFbGVtZW50ID0gKndlYWtNZWRpYUVsZW1lbnQ7CisKKyAgICAgICAgYXV0byBz
ZWxlY3RlZEl0ZW0gPSBpZE1hcC5nZXQoc2VsZWN0ZWRJdGVtSUQpOworICAgICAgICBXVEY6OnN3
aXRjaE9uKHNlbGVjdGVkSXRlbSwKKyAgICAgICAgICAgIFsmXSAoUmVmUHRyPEF1ZGlvVHJhY2s+
JiBzZWxlY3RlZEF1ZGlvVHJhY2spIHsKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIHRyYWNr
IDogaWRNYXAudmFsdWVzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8qIGF1ZGlv
VHJhY2sgPSBXVEY6OmdldF9pZjxSZWZQdHI8QXVkaW9UcmFjaz4+KHRyYWNrKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICgqYXVkaW9UcmFjayktPnNldEVuYWJsZWQoKmF1ZGlvVHJhY2sgPT0g
c2VsZWN0ZWRBdWRpb1RyYWNrKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgWyZdIChSZWZQdHI8VGV4dFRyYWNrPiYgc2VsZWN0ZWRUZXh0VHJhY2spIHsK
KyAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIHRyYWNrIDogaWRNYXAudmFsdWVzKCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGF1dG8qIHRleHRUcmFjayA9IFdURjo6Z2V0X2lmPFJlZlB0
cjxUZXh0VHJhY2s+Pih0cmFjaykpCisgICAgICAgICAgICAgICAgICAgICAgICAoKnRleHRUcmFj
ayktPnNldE1vZGUoVGV4dFRyYWNrOjpNb2RlOjpEaXNhYmxlZCk7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIG1lZGlhRWxlbWVudC5zZXRTZWxlY3RlZFRleHRUcmFjayhzZWxl
Y3RlZFRleHRUcmFjay5nZXQoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfSk7
Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKwog
Ym9vbCBNZWRpYUNvbnRyb2xzSG9zdDo6Y29tcGFjdE1vZGUoKSBjb25zdAogewogI2lmIFBMQVRG
T1JNKFdBVENIT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29u
dHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFj
b250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5oCmluZGV4IDZlODQ1ZjdhN2M1YjBkOWJiNGMyMTVj
YmNlMjgwZWRmZTVlZTMzYjguLjJlNzNkY2U2N2RjMmY3NzQwOTFkMzQwODU3YjE4MzM4YzdiYmY1
OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRp
YUNvbnRyb2xzSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9s
cy9NZWRpYUNvbnRyb2xzSG9zdC5oCkBAIC05MSw2ICs5MSwxNCBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIFN0cmluZyBiYXNlNjRTdHJpbmdGb3JJY29uTmFtZUFuZFR5cGUoY29uc3QgU3RyaW5nJiBp
Y29uTmFtZSwgY29uc3QgU3RyaW5nJiBpY29uVHlwZSk7CiAgICAgc3RhdGljIFN0cmluZyBmb3Jt
YXR0ZWRTdHJpbmdGb3JEdXJhdGlvbihkb3VibGUpOwogCisjaWYgRU5BQkxFKE1FRElBX0NPTlRS
T0xTX0NPTlRFWFRfTUVOVVMpCisgICAgc3RydWN0IENvbnRleHRNZW51T3B0aW9ucyB7CisgICAg
ICAgIGJvb2wgaW5jbHVkZUF1ZGlvVHJhY2tzIHsgZmFsc2UgfTsKKyAgICAgICAgYm9vbCBpbmNs
dWRlVGV4dFRyYWNrcyB7IGZhbHNlIH07CisgICAgfTsKKyAgICB2b2lkIHNob3dNZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnUoSFRNTEVsZW1lbnQmLCBDb250ZXh0TWVudU9wdGlvbnMmJik7CisjZW5k
aWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisKIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgTWVkaWFDb250cm9sc0hvc3QoSFRNTE1lZGlhRWxlbWVudCYpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9s
c0hvc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29u
dHJvbHNIb3N0LmlkbAppbmRleCBjMmM3ZDA1ZDg2MTcwMmUzMWIzZGI2NGVhMjBjNzJmOGZhODRl
OTA2Li4xZjc0NGEwNDA2YTg1MDlkNjhkNTQ0MTRlZmUzYmQ1MzE0MjRjZTcwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3Qu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRy
b2xzSG9zdC5pZGwKQEAgLTY0LDQgKzY0LDEzIEBAIGVudW0gRGV2aWNlVHlwZSB7CiAgICAgW0Vu
YWJsZWRBdFJ1bnRpbWU9TW9kZXJuTWVkaWFDb250cm9sc10gcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBzaGFkb3dSb290Q1NTVGV4dDsKICAgICBbRW5hYmxlZEF0UnVudGltZT1Nb2Rlcm5N
ZWRpYUNvbnRyb2xzXSBET01TdHJpbmcgYmFzZTY0U3RyaW5nRm9ySWNvbk5hbWVBbmRUeXBlKERP
TVN0cmluZyBpY29uTmFtZSwgRE9NU3RyaW5nIGljb25UeXBlKTsKICAgICBbRW5hYmxlZEF0UnVu
dGltZT1Nb2Rlcm5NZWRpYUNvbnRyb2xzXSBET01TdHJpbmcgZm9ybWF0dGVkU3RyaW5nRm9yRHVy
YXRpb24odW5yZXN0cmljdGVkIGRvdWJsZSBkdXJhdGlvbkluU2Vjb25kcyk7CisKKyAgICBbQ29u
ZGl0aW9uYWw9TUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUywgRW5hYmxlZEJ5U2V0dGluZz1N
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVzLCBFbmFibGVkQXRSdW50aW1lPU1vZGVybk1lZGlhQ29u
dHJvbHNdIHVuZGVmaW5lZCBzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KEhUTUxFbGVtZW50
IHRhcmdldCwgQ29udGV4dE1lbnVPcHRpb25zIG9wdGlvbnMpOworfTsKKworWworICAgIENvbmRp
dGlvbmFsPU1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMsCitdIGRpY3Rpb25hcnkgQ29udGV4
dE1lbnVPcHRpb25zIHsKKyAgICBib29sZWFuIGluY2x1ZGVBdWRpb1RyYWNrczsKKyAgICBib29s
ZWFuIGluY2x1ZGVUZXh0VHJhY2tzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhL3RyYWNrcy1zdXBwb3J0LmpzIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEvdHJhY2tzLXN1
cHBvcnQuanMKaW5kZXggYTg1OTA4NGI2ODk2ZGVkODZhMmU5Y2VlMTQwMmVlMjYzZDY4OWEyYy4u
ODU5ZTJkYTk4MWI1NDI5Njc3YzZhODM2YmQ2M2U0NzhhNmFhNWJlMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEvdHJhY2tzLXN1
cHBvcnQuanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvbWVkaWEvdHJhY2tzLXN1cHBvcnQuanMKQEAgLTU2LDcgKzU2LDEwIEBAIGNsYXNzIFRyYWNr
c1N1cHBvcnQgZXh0ZW5kcyBNZWRpYUNvbnRyb2xsZXJTdXBwb3J0CiAKICAgICBidXR0b25XYXNQ
cmVzc2VkKGNvbnRyb2wpCiAgICAgewotICAgICAgICB0aGlzLm1lZGlhQ29udHJvbGxlci5jb250
cm9scy5zaG93VHJhY2tzUGFuZWwoKTsKKyAgICAgICAgaWYgKHRoaXMubWVkaWFDb250cm9sbGVy
Lmhvc3Q/LnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUpCisgICAgICAgICAgICB0aGlzLm1l
ZGlhQ29udHJvbGxlci5ob3N0LnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoY29udHJvbC5l
bGVtZW50LCB7aW5jbHVkZUF1ZGlvVHJhY2tzOiB0cnVlLCBpbmNsdWRlVGV4dFRyYWNrczogdHJ1
ZX0pOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLm1lZGlhQ29udHJvbGxlci5jb250
cm9scy5zaG93VHJhY2tzUGFuZWwoKTsKICAgICB9CiAKICAgICB0cmFja3NQYW5lbE51bWJlck9m
U2VjdGlvbnMoKQpAQCAtMTMwLDcgKzEzMyw3IEBAIGNsYXNzIFRyYWNrc1N1cHBvcnQgZXh0ZW5k
cyBNZWRpYUNvbnRyb2xsZXJTdXBwb3J0CiAKICAgICBzeW5jQ29udHJvbCgpCiAgICAgewotICAg
ICAgICB0aGlzLmNvbnRyb2wuZW5hYmxlZCA9ICh0aGlzLm1lZGlhQ29udHJvbGxlci5sYXlvdXRU
cmFpdHMgJiBMYXlvdXRUcmFpdHMubWFjT1MpICYmICh0aGlzLl9jYW5QaWNrQXVkaW9UcmFja3Mo
KSB8fCB0aGlzLl9jYW5QaWNrVGV4dFRyYWNrcygpKTsKKyAgICAgICAgdGhpcy5jb250cm9sLmVu
YWJsZWQgPSAodGhpcy5tZWRpYUNvbnRyb2xsZXIubGF5b3V0VHJhaXRzICYgTGF5b3V0VHJhaXRz
Lm1hY09TIHx8IHRoaXMubWVkaWFDb250cm9sbGVyLmhvc3Q/LnNob3dNZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnUpICYmICh0aGlzLl9jYW5QaWNrQXVkaW9UcmFja3MoKSB8fCB0aGlzLl9jYW5QaWNr
VGV4dFRyYWNrcygpKTsKICAgICB9CiAKICAgICAvLyBQcml2YXRlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjI1NjRhNmQ3Yjk2
NWE3NjQ1NDdiN2I1ZWQ5MWU0YTUzY2Q2YTRiYS4uYjExNDYyNDJjOGUzMGI4MDZmOGQ4M2I0MTJk
ZGYxZjdkZWMzYzhjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMjkzMyw2ICsyOTMzLDcgQEAKIAkJOTRFODM5NTYxREZCMkJD
NDAwN0JDNkE3IC8qIEpTQ1NTTmFtZXNwYWNlUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTRFODM5NTQxREZCMkJBNjAwN0JDNkE3IC8qIEpTQ1NT
TmFtZXNwYWNlUnVsZS5oICovOyB9OwogCQk5NTIwNzYwNTFGMjY3NUZFMDA3RDJBQUIgLyogQ2Fs
bFRyYWNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTUyMDc2MDExRjI2NzVGOTAwN0QyQUFCIC8qIENhbGxUcmFjZXIuaCAqLzsgfTsKIAkJOTUyMDc2
MDYxRjI2NzVGRTAwN0QyQUFCIC8qIENhbGxUcmFjZXJUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUyMDc2MDIxRjI2NzVGOTAwN0QyQUFCIC8q
IENhbGxUcmFjZXJUeXBlcy5oICovOyB9OworCQk5NUExRTJFOTI1Q0M3NUE5MDAyNjhDOEUgLyog
TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTVBMUUyRTcyNUNDNzVBODAwMjY4QzhFIC8qIE1lZGlhQ29u
dHJvbHNDb250ZXh0TWVudUl0ZW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5NURGOUQyNTI1MkJFREIyMDAwRDdGNDYgLyogUG9pbnRlckNoYXJh
Y3RlcmlzdGljcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTVERjlEMjMyNTJCRUQ5OTAwMEQ3RjQ2IC8qIFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzA1OTk3
QTEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcwNTk5NzYxMDdEOTc1MjAwQTUwQTdDIC8qIFBv
bGljeUNoZWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5NzBCNzI4QTE0NEZGQUM2MDBGMDBBMzcgLyogRXZlbnRJbnRlcmZhY2VzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzBCNzI4OTE0NEZG
QUM2MDBGMDBBMzcgLyogRXZlbnRJbnRlcmZhY2VzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTExNzUxLDYgKzExNzUyLDcgQEAKIAkJOTUyMDc2
MDAxRjI2NzVGOTAwN0QyQUFCIC8qIENhbGxUcmFjZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q2FsbFRyYWNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MjA3NjAxMUYy
Njc1RjkwMDdEMkFBQiAvKiBDYWxsVHJhY2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhbGxUcmFjZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUyMDc2MDIxRjI2NzVGOTAwN0QyQUFC
IC8qIENhbGxUcmFjZXJUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWxsVHJhY2VyVHlwZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTVBMUUyRTcyNUNDNzVBODAwMjY4QzhFIC8q
IE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5NURGOUQyMzI1MkJFRDk5MDAwRDdGNDYgLyogUG9pbnRlckNoYXJhY3Rl
cmlzdGljcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MDU5OTc1MTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xp
Y3lDaGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBvbGlj
eUNoZWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzA1OTk3NjEwN0Q5
NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQb2xpY3lDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
MjExMSw2ICsyMjExMyw3IEBACiAJCQkJNkI0RDQxMkMyMzk4M0Y4ODAwMjQ5NEMyIC8qIExvZ2dl
ZEluU3RhdHVzLmNwcCAqLywKIAkJCQk2QjRENDEyQjIzOTgzRjg4MDAyNDk0QzIgLyogTG9nZ2Vk
SW5TdGF0dXMuaCAqLywKIAkJCQk5MzFCQ0M2MDExMjRERkNCMDBCRTcwREQgLyogTWVkaWFDYW5T
dGFydExpc3RlbmVyLmggKi8sCisJCQkJOTVBMUUyRTcyNUNDNzVBODAwMjY4QzhFIC8qIE1lZGlh
Q29udHJvbHNDb250ZXh0TWVudUl0ZW0uaCAqLywKIAkJCQk1MkUyQ0FGQjE5RkYwMjA3MDAxRUVC
NEYgLyogTWVkaWFQcm9kdWNlci5oICovLAogCQkJCTQxM0UwMDc3MURCMEU0REUwMDIzNDFEMiAv
KiBNZW1vcnlSZWxlYXNlLmNwcCAqLywKIAkJCQk0MTNFMDA3ODFEQjBFNERFMDAyMzQxRDIgLyog
TWVtb3J5UmVsZWFzZS5oICovLApAQCAtMzM2OTEsNiArMzM2OTQsNyBAQAogCQkJCTA3OEUwOTNB
MTdEMTZFMUMwMDQyMEFBMSAvKiBNZWRpYUNvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDREY2NUNDODE0NUIxRTc1MDBDNEM3QUEgLyogTWVkaWFDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDREY2NUNDQTE0NUI0NDg4MDBDNEM3QUEgLyogTWVkaWFDb250cm9sbGVySW50
ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NUExRTJFOTI1Q0M3NUE5MDAyNjhDOEUgLyog
TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBQjZE
MjkxN0M3REU2QzAwQzYwQjM0IC8qIE1lZGlhQ29udHJvbHNIb3N0LmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MTcyNTNBQjEzNTRCQkJDMDAzNjBGMkEgLyogTWVkaWFDb250cm9sVGV4dFRyYWNrQ29u
dGFpbmVyRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzRUVGMzgyNTc5OUY3MzAwNjU2
M0JCIC8qIE1lZGlhRGVjb2RpbmdDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MgYi9Tb3Vy
Y2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCmluZGV4IDZmYzgzMDY0ZTdk
ZmIyNjQyMDQ4YTNlNTc4M2VhYmRkZDM0OGMzNzEuLjczOTYxMjI3NjkwMmUzMGYwNzgwNGNkZjc4
ZWQ1NjdlYjQ3M2M2ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2Fs
aXphYmxlLnN0cmluZ3MKKysrIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUu
c3RyaW5ncwpAQCAtNDc4LDYgKzQ3OCw5IEBACiAvKiBOYW1lIG9mIGtleWNoYWluIGtleSBnZW5l
cmF0ZWQgYnkgdGhlIEtFWUdFTiB0YWcgKi8KICJLZXkgZnJvbSAlQCIgPSAiS2V5IGZyb20gJUAi
OwogCisvKiBMYW5ndWFnZXMgbWVkaWEgY29udHJvbHMgY29udGV4dCBtZW51IHRpdGxlICovCisi
TGFuZ3VhZ2VzIChNZWRpYSBDb250cm9scyBNZW51KSIgPSAiTGFuZ3VhZ2VzIjsKKwogLyogTGVh
cm4gU3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0gKi8KICJMZWFybiBTcGVsbGluZyIgPSAiTGVh
cm4gU3BlbGxpbmciOwogCkBAIC04NDEsOCArODQ0LDggQEAKIC8qIFN1YnN0aXR1dGlvbnMgY29u
dGV4dCBzdWItbWVudSBpdGVtICovCiAiU3Vic3RpdHV0aW9ucyIgPSAiU3Vic3RpdHV0aW9ucyI7
CiAKLS8qIE1lbnUgc2VjdGlvbiBoZWFkaW5nIGZvciBzdWJ0aXRsZXMgKi8KLSJTdWJ0aXRsZXMi
ID0gIlN1YnRpdGxlcyI7CisvKiBTdWJ0aXRsZXMgbWVkaWEgY29udHJvbHMgY29udGV4dCBtZW51
IHRpdGxlICovCisiU3VidGl0bGVzIChNZWRpYSBDb250cm9scyBNZW51KSIgPSAiU3VidGl0bGVz
IjsKIAogLyogQWNjZXNzaWJpbGl0eSBhbm5vdW5jZW1lbnQgZm9yIHRoZSBkYXRhIGxpc3Qgc3Vn
Z2VzdGlvbnMgZHJvcGRvd24gZ29pbmcgYXdheS4gKi8KICJTdWdnZXN0aW9ucyBsaXN0IGhpZGRl
bi4iID0gIlN1Z2dlc3Rpb25zIGxpc3QgaGlkZGVuLiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaAppbmRleCBjMzk3M2U3NjVjYWM1N2E5NmI0Y2QwYzMxNzk1YzMwN2ZhNmZjZWQwLi44NDA1
NGYyMmVmNDMxYWIxNDlkZDdlOGQ5MTIxNDRjMTIxMzFhNzcxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJJY29uLmgiCiAjaW5jbHVk
ZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJJbnB1dE1vZGUuaCIKKyNpbmNsdWRlICJNZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmgiCiAjaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgog
I2luY2x1ZGUgIlBvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaCIKICNpbmNsdWRlICJQb3B1cE1lbnUu
aCIKQEAgLTU1Nyw2ICs1NTgsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
SW1hZ2VFeHRyYWN0aW9uKEVsZW1lbnQmKSB7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElB
X0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisgICAgdmlydHVhbCB2b2lkIHNob3dNZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnUoRmxvYXRSZWN0JiYsIFZlY3RvcjxNZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnVJdGVtPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1lZGlhQ29udHJvbHNDb250ZXh0TWVu
dUl0ZW06OklEKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihNZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjppbnZhbGlkSUQpOyB9CisjZW5kaWYgLy8gRU5BQkxF
KE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFs
IH5DaHJvbWVDbGllbnQoKSA9IGRlZmF1bHQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9NZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL01lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYTIxM2YzZWMx
Mzg0NTc2MzMyYjFiZGM1ODQ3MTE2MGM5MDRmZjUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9NZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmgKQEAgLTAsMCArMSw4
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisKKyNp
bmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0
IE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0geworICAgIHVzaW5nIElEID0gdWludDY0X3Q7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBJRCBpbnZhbGlkSUQgPSAwOworCisgICAgSUQgaWQgeyBp
bnZhbGlkSUQgfTsKKyAgICBTdHJpbmcgdGl0bGU7CisgICAgU3RyaW5nIGljb247CisgICAgYm9v
bCBpc0NoZWNrZWQgeyBmYWxzZSB9OworICAgIFZlY3RvcjxNZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnVJdGVtPiBjaGlsZHJlbjsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
T3B0aW9uYWw8TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4gZGVjb2RlKERlY29kZXImKTsK
K307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIE1lZGlhQ29udHJvbHNDb250ZXh0
TWVudUl0ZW06OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIg
PDwgaWQ7CisgICAgZW5jb2RlciA8PCB0aXRsZTsKKyAgICBlbmNvZGVyIDw8IGljb247CisgICAg
ZW5jb2RlciA8PCBpc0NoZWNrZWQ7CisgICAgZW5jb2RlciA8PCBjaGlsZHJlbjsKK30KKwordGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0
ZW0+IE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQoreworI2RlZmluZSBERUNPREUobmFtZSwgdHlwZSkgXAorICAgIE9wdGlvbmFsPHR5cGU+IG5h
bWU7IFwKKyAgICBkZWNvZGVyID4+IG5hbWU7IFwKKyAgICBpZiAoIW5hbWUpIFwKKyAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsgXAorCisgICAgREVDT0RFKGlkLCBJRCk7CisgICAgREVDT0RF
KHRpdGxlLCBTdHJpbmcpOworICAgIERFQ09ERShpY29uLCBTdHJpbmcpOworICAgIERFQ09ERShp
c0NoZWNrZWQsIGJvb2wpOworICAgIERFQ09ERShjaGlsZHJlbiwgVmVjdG9yPE1lZGlhQ29udHJv
bHNDb250ZXh0TWVudUl0ZW0+KTsKKworI3VuZGVmIERFQ09ERQorCisgICAgcmV0dXJuIHt7IFdU
Rk1vdmUoKmlkKSwgV1RGTW92ZSgqdGl0bGUpLCBXVEZNb3ZlKCppY29uKSwgV1RGTW92ZSgqaXND
aGVja2VkKSwgV1RGTW92ZSgqY2hpbGRyZW4pIH19OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggZmY0M2U5
OGU2MWZhM2RkOGVhM2RjNWI4NjRmZDhjYjhlN2FhMDEzZS4uNGNjZDExYjY1MjUzMDM4YmQwY2I0
NmZjNDE0NzU4MDgwYmMxY2FmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5jcHAKQEAgLTEwNzgsMTEgKzEwNzgsNiBAQCBTdHJpbmcgY2xpY2tUb0V4aXRG
dWxsU2NyZWVuVGV4dCgpCiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkNsaWNrIHRvIEV4aXQg
RnVsbCBTY3JlZW4iLCAiTWVzc2FnZSB0byBkaXNwbGF5IGluIGJyb3dzZXIgd2luZG93IHdoZW4g
aW4gd2Via2l0IGZ1bGwgc2NyZWVuIG1vZGUuIik7CiB9CiAKLVN0cmluZyB0ZXh0VHJhY2tTdWJ0
aXRsZXNUZXh0KCkKLXsKLSAgICByZXR1cm4gV0VCX1VJX1NUUklORygiU3VidGl0bGVzIiwgIk1l
bnUgc2VjdGlvbiBoZWFkaW5nIGZvciBzdWJ0aXRsZXMiKTsKLX0KLQogU3RyaW5nIHRleHRUcmFj
a09mZk1lbnVJdGVtVGV4dCgpCiB7CiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIk9mZiIsICJN
ZW51IGl0ZW0gbGFiZWwgZm9yIHRoZSB0cmFjayB0aGF0IHJlcHJlc2VudHMgZGlzYWJsaW5nIGNs
b3NlZCBjYXB0aW9ucyIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5n
cy5oCmluZGV4IDY5MTc2MjgxY2MzMmNjM2IyYjY5ZGYxNWI0ODUxN2JiMGEyYTIwNzUuLjg0NTFm
NTE3MDEzZjUyM2UxYTI4ZDBiY2IwN2U2ODVkMjgyNjE0YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKQEAgLTI5OCw3ICsyOTgsNiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICAgICBTdHJpbmcgY2xpY2tUb0V4aXRGdWxsU2NyZWVuVGV4dCgpOwogCi0g
ICAgU3RyaW5nIHRleHRUcmFja1N1YnRpdGxlc1RleHQoKTsKICAgICBTdHJpbmcgdGV4dFRyYWNr
T2ZmTWVudUl0ZW1UZXh0KCk7CiAgICAgU3RyaW5nIHRleHRUcmFja0F1dG9tYXRpY01lbnVJdGVt
VGV4dCgpOwogICAgIFN0cmluZyB0ZXh0VHJhY2tOb0xhYmVsVGV4dCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDY0MmJhMDk3NzViMGVkZjcyYTMzNDBiNTQwNjZjNDhj
ZTk4MTZiNTguLmY1OTAwNTcxZDNmNzAwNzZkYjZlN2QzMzczYTMyM2E4ZDkwN2YxZGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL0VkaXRvckNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRm9jdXNEaXJlY3Rp
b24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lucHV0TW9kZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmFsaWRhdGlvbkJ1
YmJsZS5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgpAQCAtOTEsNiArOTIs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDb2xvcjsKIGNsYXNzIEN1cnNvcjsKIGNs
YXNzIEZsb2F0UXVhZDsKK2NsYXNzIEZsb2F0UmVjdDsKIGNsYXNzIFJlZ2lvbjsKIGNsYXNzIFRl
eHRJbmRpY2F0b3I7CiBjbGFzcyBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOwpAQCAtNTE1LDYgKzUx
NywxMCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCiAgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5k
bGUmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkltYWdlRXh0cmFjdGlvblJlc3Vs
dCYmKT4mJiBjb21wbGV0aW9uKSB7IGNvbXBsZXRpb24oeyB9KTsgfQogI2VuZGlmCisKKyNpZiBF
TkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyAgICB2aXJ0dWFsIHZvaWQgc2hv
d01lZGlhQ29udHJvbHNDb250ZXh0TWVudShXZWJDb3JlOjpGbG9hdFJlY3QmJiwgVmVjdG9yPFdl
YkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+JiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6SUQpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHND
b250ZXh0TWVudUl0ZW06OmludmFsaWRJRCk7IH0KKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09O
VFJPTFNfQ09OVEVYVF9NRU5VUykKICAgICAKICNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVh
bCB2b2lkIGRpZFBlcmZvcm1JbW1lZGlhdGVBY3Rpb25IaXRUZXN0KGNvbnN0IFdlYkhpdFRlc3RS
ZXN1bHREYXRhJiwgYm9vbCBjb250ZW50UHJldmVudHNEZWZhdWx0LCBBUEk6Ok9iamVjdCopID0g
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGY1MmRjNDY5
ZDE2OGNiNDk0OGE3YTdjOWU2ZTY4NzU4MGNiNDBmZDEuLjY4NTRhYWFjYjk4ZmNlZDhiMDNlOTY0
NGI1YjgxYzY1MmI0MjYxMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcApAQCAtODI5NCw2ICs4Mjk0LDE2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0SW1h
Z2VFeHRyYWN0aW9uKGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhCiAKICNl
bmRpZgogCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisKK3ZvaWQg
V2ViUGFnZVByb3h5OjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KEZsb2F0UmVjdCYmIHRh
cmdldEZyYW1lLCBWZWN0b3I8TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4mJiBpdGVtcywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgcGFnZUNsaWVudCgpLnNob3dNZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnUoV1RGTW92ZSh0YXJnZXRGcmFtZSksIFdURk1vdmUoaXRlbXMpLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09O
VFJPTFNfQ09OVEVYVF9NRU5VUykKKworCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdE5vdGlm
aWNhdGlvblBlcm1pc3Npb24odWludDY0X3QgcmVxdWVzdElELCBjb25zdCBTdHJpbmcmIG9yaWdp
blN0cmluZykKIHsKICAgICBpZiAoIWlzUmVxdWVzdElEVmFsaWQocmVxdWVzdElEKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggN2IxOGIxMjljOTE3ZDRkYjYwN2U4
NTIyZWQwMGZmZjc2MTBhZjhjNi4uM2NlODY0ZDQ3OWRiNTE1OWIxMWIyMjg5YWJmMTc2YjY4MzRh
M2YxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTkyLDYgKzky
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0lucHV0TW9kZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
TGF5b3V0UG9pbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xheW91dFNpemUuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL01lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaD4KICNpbmNsdWRlIDxXZWJD
b3JlL01lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRp
YVByb2R1Y2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgpAQCAtMTYx
OSw2ICsxNjIwLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RJbWFnZUV4dHJhY3Rpb24o
Y29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCYmKT4mJik7CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorICAgIHZvaWQgc2hvd01lZGlhQ29udHJv
bHNDb250ZXh0TWVudShXZWJDb3JlOjpGbG9hdFJlY3QmJiwgVmVjdG9yPFdlYkNvcmU6Ok1lZGlh
Q29udHJvbHNDb250ZXh0TWVudUl0ZW0+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6SUQpPiYmKTsKKyNlbmRpZiAvLyBFTkFC
TEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKwogICAgIHN0YXRpYyBXZWJQYWdlUHJv
eHkqIG5vbkVwaGVtZXJhbFdlYlBhZ2VQcm94eSgpOwogCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRf
RUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbgppbmRleCA0MWI3MDRmNGViNTkxNDFkOTgxMmMxMjgyYjBkMDVlMWFhNzU5N2IxLi4x
MDZlOWRmZmE1MDM1M2M1YzYzMTRlZTNkMjdkNDhjYjFkNzg1MTAxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNDIsNiArMjQy
LDEwIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgUmVxdWVzdEltYWdlRXh0cmFj
dGlvbihXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGltYWdlRGF0YSkgLT4gKHN0cnVj
dCBXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25SZXN1bHQgcmVzdWx0KSBBc3luYwogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKyAgICBTaG93TWVkaWFD
b250cm9sc0NvbnRleHRNZW51KFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRGcmFtZSwgVmVjdG9y
PFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+IGl0ZW1zKSAtPiAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6SUQgc2VsZWN0ZWRJdGVtSUQpIEFzeW5j
CisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisKICNpZiBI
QVZFKFRPVUNIX0JBUikKICAgICBTZXRJc1RvdWNoQmFyVXBkYXRlU3VwcmVzc2VkRm9ySGlkZGVu
Q29udGVudEVkaXRhYmxlKGJvb2wgaXNUb3VjaEJhclVwZGF0ZVN1cHJlc3NlZCkKICAgICBTZXRJ
c05ldmVyUmljaGx5RWRpdGFibGVGb3JUb3VjaEJhcihib29sIGlzTmV2ZXJSaWNobHlFZGl0YWJs
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgK
aW5kZXggMzgwMWI1MmM2YzVhYTllNDc2NjI0MTE5NmQxMTA3M2MwMDZlMTNmYy4uNmRhMGJmYjhh
YWI3OTAwZDE3MDVhNDc1YTc2YTc3YTIxZDg5ODVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTI2Myw2ICsyNjMsMTAgQEAgcHJp
dmF0ZToKIAogICAgIHZvaWQgc2V0TW91c2VFdmVudFBvbGljeShXZWJDb3JlOjpNb3VzZUV2ZW50
UG9saWN5KSBmaW5hbDsKIAorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVT
KQorICAgIHZvaWQgc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShXZWJDb3JlOjpGbG9hdFJl
Y3QmJiwgVmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+JiYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRl
bTo6SUQpPiYmKSBmaW5hbDsKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVY
VF9NRU5VUykKKwogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAgdm9pZCB3cml0
ZVByb21pc2VkQXR0YWNobWVudFRvUGFzdGVib2FyZChXZWJDb3JlOjpQcm9taXNlZEF0dGFjaG1l
bnRJbmZvJiYpIGZpbmFsOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggMmU0NDdjNjBmMmNiY2I5NGEyNGM5Y2YxMDc1
YjdjNzc4OGY0ZWUyZS4uMDBjZGYxM2JhOTJiZDA2YzBjMjkxNzVmNDFjMmNkNjFjOTU1ZTEzMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5t
bQpAQCAtOTY2LDYgKzk2NiwxMyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRNb3VzZUV2ZW50
UG9saWN5KFdlYkNvcmU6Ok1vdXNlRXZlbnRQb2xpY3kgcG9saWN5KQogI2VuZGlmCiB9CiAKKyNp
ZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKK3ZvaWQgUGFnZUNsaWVudElt
cGw6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoRmxvYXRSZWN0JiYgdGFyZ2V0RnJhbWUs
IFZlY3RvcjxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiYmIGl0ZW1zLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICBbbV9jb250ZW50VmlldyBfc2hvd01lZGlhQ29udHJvbHNDb250
ZXh0TWVudTpXVEZNb3ZlKHRhcmdldEZyYW1lKSBpdGVtczpXVEZNb3ZlKGl0ZW1zKSBjb21wbGV0
aW9uSGFuZGxlcjpXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV07Cit9CisjZW5kaWYgLy8gRU5B
QkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisKICNpZiBIQVZFKFVJU0NST0xMVklF
V19BU1lOQ0hST05PVVNfU0NST0xMX0VWRU5UX0hBTkRMSU5HKQogdm9pZCBQYWdlQ2xpZW50SW1w
bDo6aGFuZGxlQXN5bmNocm9ub3VzQ2FuY2VsYWJsZVNjcm9sbEV2ZW50KFVJU2Nyb2xsVmlldyAq
c2Nyb2xsVmlldywgVUlTY3JvbGxFdmVudCAqc2Nyb2xsRXZlbnQsIHZvaWQgKF5jb21wbGV0aW9u
KShCT09MIGhhbmRsZWQpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmgKaW5kZXggZDczMDVmYTVhNzNiOTE0ZTQ1OGE3M2Vk
YzQyMWQzNjVkN2IxZTI0OC4uN2E1MDdjNWI4MDdlZmVjMWE3ODg0Njg1ZGE0MGIxN2FmNjAyZTc0
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRB
c3Npc3RhbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVl
dEFzc2lzdGFudC5oCkBAIC0yOCw4ICsyOCwxMyBAQAogI2ltcG9ydCAiR2VzdHVyZVR5cGVzLmgi
CiAjaW1wb3J0ICJXS0FjdGlvblNoZWV0LmgiCiAjaW1wb3J0IDxVSUtpdC9VSVBvcG92ZXJDb250
cm9sbGVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL01lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0u
aD4KICNpbXBvcnQgPHBhbC9zcGkvaW9zL0RhdGFEZXRlY3RvcnNVSVNQSS5oPgotI2ltcG9ydCA8
d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworY2xhc3MgRmxvYXRSZWN0OworfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNz
IFdlYlBhZ2VQcm94eTsKQEAgLTY5LDYgKzc0LDggQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdl
ciwgX1dLRWxlbWVudEFjdGlvblR5cGUpOwogI2lmIFVTRShVSUNPTlRFWFRNRU5VKQogLSAoVUlU
YXJnZXRlZFByZXZpZXcgKiljcmVhdGVUYXJnZXRlZENvbnRleHRNZW51SGludEZvckFjdGlvblNo
ZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50OwogLSAodm9p
ZClyZW1vdmVDb250ZXh0TWVudVZpZXdJZlBvc3NpYmxlRm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6
KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQ7CistICh2b2lkKWFjdGlvblNoZWV0
QXNzaXN0YW50RGlkU2hvd0NvbnRleHRNZW51OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNz
aXN0YW50OworLSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFudERpZERpc21pc3NDb250ZXh0TWVu
dTooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudDsKICNlbmRpZgogLSAodm9pZClh
Y3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBz
aGFyZUVsZW1lbnRXaXRoSW1hZ2U6KFVJSW1hZ2UgKilpbWFnZSByZWN0OihDR1JlY3QpYm91bmRp
bmdSZWN0OwogI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQpAQCAtNzcsMTEgKzg0LDE0IEBA
IHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0VsZW1lbnRBY3Rpb25UeXBlKTsKIC0gKEJP
T0wpYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3Rh
bnQgc2hvdWxkSW5jbHVkZVJldmVhbEltYWdlQWN0aW9uRm9yRWxlbWVudDooX1dLQWN0aXZhdGVk
RWxlbWVudEluZm8gKillbGVtZW50OwogLSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFudDooV0tB
Y3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBoYW5kbGVSZXZlYWxJbWFnZTooVUlJbWFn
ZSAqKWltYWdlIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlOwogI2VuZGlmCi0KIEBlbmQKIAotI2lm
IEVOQUJMRShEQVRBX0RFVEVDVElPTikgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCi1AaW50ZXJmYWNl
IFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgOiBOU09iamVjdCA8V0tBY3Rpb25TaGVldERlbGVnYXRl
LCBERERldGVjdGlvbkNvbnRyb2xsZXJJbnRlcmFjdGlvbkRlbGVnYXRlLCBVSUNvbnRleHRNZW51
SW50ZXJhY3Rpb25EZWxlZ2F0ZT4KKyNpZiBVU0UoVUlDT05URVhUTUVOVSkKK0BpbnRlcmZhY2Ug
V0tBY3Rpb25TaGVldEFzc2lzdGFudCA6IE5TT2JqZWN0IDxXS0FjdGlvblNoZWV0RGVsZWdhdGUs
CisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQorREREZXRlY3Rpb25Db250cm9sbGVySW50ZXJh
Y3Rpb25EZWxlZ2F0ZSwKKyNlbmRpZgorVUlDb250ZXh0TWVudUludGVyYWN0aW9uRGVsZWdhdGU+
CiAtIChCT09MKWhhc0NvbnRleHRNZW51SW50ZXJhY3Rpb247CiAjZWxzZQogQGludGVyZmFjZSBX
S0FjdGlvblNoZWV0QXNzaXN0YW50IDogTlNPYmplY3QgPFdLQWN0aW9uU2hlZXREZWxlZ2F0ZT4K
QEAgLTkyLDE3ICsxMDIsMjYgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLRWxlbWVu
dEFjdGlvblR5cGUpOwogLSAodm9pZClzaG93TGlua1NoZWV0OwogLSAodm9pZClzaG93SW1hZ2VT
aGVldDsKIC0gKHZvaWQpc2hvd0RhdGFEZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb246
KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKXBvc2l0aW9u
SW5mb3JtYXRpb247CisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCist
ICh2b2lkKXNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnU6KFdlYkNvcmU6OkZsb2F0UmVjdCYm
KXRhcmdldEZyYW1lIGl0ZW1zOihWZWN0b3I8V2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRN
ZW51SXRlbT4mJilpdGVtcyBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+JiYpY29tcGxldGlv
bkhhbmRsZXI7CisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMp
CiAtICh2b2lkKWNsZWFudXBTaGVldDsKIC0gKHZvaWQpdXBkYXRlU2hlZXRQb3NpdGlvbjsKIC0g
KFJldGFpblB0cjxOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4+KWRlZmF1bHRBY3Rpb25zRm9y
TGlua1NoZWV0OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvOwogLSAoUmV0
YWluUHRyPE5TQXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPj4pZGVmYXVsdEFjdGlvbnNGb3JJbWFn
ZVNoZWV0OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvOwogLSAoQk9PTClp
c1Nob3dpbmdTaGVldDsKIC0gKHZvaWQpaW50ZXJhY3Rpb25EaWRTdGFydFdpdGhQb3NpdGlvbklu
Zm9ybWF0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9u
JilpbmZvcm1hdGlvbjsKLS0gKE5TQXJyYXkgKiljdXJyZW50QXZhaWxhYmxlQWN0aW9uVGl0bGVz
OwogLSAodm9pZCloYW5kbGVFbGVtZW50QWN0aW9uV2l0aFR5cGU6KF9XS0VsZW1lbnRBY3Rpb25U
eXBlKXR5cGUgZWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50IG5lZWRz
SW50ZXJhY3Rpb246KEJPT0wpbmVlZHNJbnRlcmFjdGlvbjsKICNpZiBVU0UoVUlDT05URVhUTUVO
VSkKIC0gKE5TQXJyYXk8VUlNZW51RWxlbWVudCAqPiAqKXN1Z2dlc3RlZEFjdGlvbnNGb3JDb250
ZXh0TWVudVdpdGhQb3NpdGlvbkluZm9ybWF0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9u
SW5mb3JtYXRpb25BdFBvc2l0aW9uJilwb3NpdGlvbkluZm9ybWF0aW9uOwogI2VuZGlmCiBAZW5k
CiAKK0BpbnRlcmZhY2UgV0tBY3Rpb25TaGVldEFzc2lzdGFudCAoV0tUZXN0aW5nKQorLSAoTlNB
cnJheSAqKWN1cnJlbnRseUF2YWlsYWJsZUFjdGlvblRpdGxlczsKKyNpZiBFTkFCTEUoTUVESUFf
Q09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKy0gKE5TQXJyYXkgKiljdXJyZW50bHlBdmFpbGFibGVN
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtczsKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09O
VFJPTFNfQ09OVEVYVF9NRU5VUykKK0BlbmQKKwogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1J
TFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVl
dEFzc2lzdGFudC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0
QXNzaXN0YW50Lm1tCmluZGV4IGRkNDdkNjdkZDZjYzE0MjYzMzQzYjNjYjIyOTc3ZmU3MzM3MTI5
NjQuLmU1ZjEyYjVlNTRjZmM2MzIxZDM4MDMwMWU3MTgwZDEyNDEyYTRlOGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1t
CkBAIC0zOSwxMiArMzksMTcgQEAKICNpbXBvcnQgIl9XS0VsZW1lbnRBY3Rpb25JbnRlcm5hbC5o
IgogI2ltcG9ydCA8VUlLaXQvVUlWaWV3Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RhdGFEZXRlY3Rp
b24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xv
Y2FsaXplZFN0cmluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGF0aFV0aWxpdGllcy5oPgorI2lt
cG9ydCA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+
CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKyNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KICNp
bXBvcnQgPHd0Zi9XZWFrT2JqQ1B0ci5oPgogI2ltcG9ydCA8d3RmL2NvY29hL0VudGl0bGVtZW50
cy5oPgogI2ltcG9ydCA8d3RmL2NvY29hL05TVVJMRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvY29j
b2EvVmVjdG9yQ29jb2EuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogI2ltcG9y
dCA8d3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmg+CiAKQEAgLTEwMCw2ICsxMDUsMTIgQEAg
QGltcGxlbWVudGF0aW9uIFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgewogI2lmIFVTRShVSUNPTlRF
WFRNRU5VKQogICAgIFJldGFpblB0cjxVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24+IF9kYXRhRGV0
ZWN0b3JDb250ZXh0TWVudUludGVyYWN0aW9uOwogI2VuZGlmCisjaWYgRU5BQkxFKE1FRElBX0NP
TlRST0xTX0NPTlRFWFRfTUVOVVMpCisgICAgUmV0YWluUHRyPFVJQ29udGV4dE1lbnVJbnRlcmFj
dGlvbj4gX21lZGlhQ29udHJvbHNDb250ZXh0TWVudUludGVyYWN0aW9uOworICAgIFJldGFpblB0
cjxVSU1lbnU+IF9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnU7CisgICAgV2ViQ29yZTo6RmxvYXRS
ZWN0IF9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVUYXJnZXRGcmFtZTsKKyAgICBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4g
X21lZGlhQ29udHJvbHNDb250ZXh0TWVudUNhbGxiYWNrOworI2VuZGlmIC8vIEVOQUJMRShNRURJ
QV9DT05UUk9MU19DT05URVhUX01FTlVTKQogICAgIFdlYWtPYmpDUHRyPFVJVmlldz4gX3ZpZXc7
CiAgICAgQk9PTCBfbmVlZHNMaW5rSW5kaWNhdG9yOwogICAgIEJPT0wgX2lzUHJlc2VudGluZ0RE
VXNlckludGVyZmFjZTsKQEAgLTEyNSw2ICsxMzYsMTIgQEAgLSAoaWQpaW5pdFdpdGhWaWV3OihV
SVZpZXcgKil2aWV3CiAtICh2b2lkKWRlYWxsb2MKIHsKICAgICBbc2VsZiBjbGVhbnVwU2hlZXRd
OworI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKKyAgICBbc2VsZiBfcmVtb3ZlRGF0YURldGVj
dG9yQ29udGV4dE1lbnVJbnRlcmFjdGlvbl07CisjZW5kaWYgLy8gRU5BQkxFKERBVEFfREVURUNU
SU9OKQorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorICAgIFtzZWxm
IF9yZW1vdmVNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJbnRlcmFjdGlvbl07CisjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCiAgICAgW3N1cGVyIGRlYWxsb2Nd
OwogfQogCkBAIC0zMTUsMTkgKzMzMiw2IEBAIC0gKHZvaWQpaW50ZXJhY3Rpb25EaWRTdGFydFdp
dGhQb3NpdGlvbkluZm9ybWF0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mCiAjZW5k
aWYKIH0KIAotLSAoTlNBcnJheSAqKWN1cnJlbnRBdmFpbGFibGVBY3Rpb25UaXRsZXMKLXsKLSAg
ICBpZiAoIV9pbnRlcmFjdGlvblNoZWV0KQotICAgICAgICByZXR1cm4gQFtdOwotICAgIAotICAg
IE5TTXV0YWJsZUFycmF5ICphcnJheSA9IFtOU011dGFibGVBcnJheSBhcnJheV07Ci0gICAgCi0g
ICAgZm9yIChVSUFsZXJ0QWN0aW9uICphY3Rpb24gaW4gX2ludGVyYWN0aW9uU2hlZXQuZ2V0KCku
YWN0aW9ucykKLSAgICAgICAgW2FycmF5IGFkZE9iamVjdDphY3Rpb24udGl0bGVdOwotICAgIAot
ICAgIHJldHVybiBhcnJheTsKLX0KLQogLSAoT3B0aW9uYWw8V2ViS2l0OjpJbnRlcmFjdGlvbklu
Zm9ybWF0aW9uQXRQb3NpdGlvbj4pY3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb24KIHsKICAgICBy
ZXR1cm4gX3Bvc2l0aW9uSW5mb3JtYXRpb247CkBAIC02NTMsMzAgKzY1Nyw4MSBAQCAtICh2b2lk
KXNob3dMaW5rU2hlZXQKICAgICAgICAgW3NlbGYgY2xlYW51cFNoZWV0XTsKIH0KIAotI2lmIEVO
QUJMRShEQVRBX0RFVEVDVElPTikgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCi0tICh2b2lkKXJlbW92
ZUNvbnRleHRNZW51SW50ZXJhY3Rpb24KLXsKLSAgICBpZiAoX2RhdGFEZXRlY3RvckNvbnRleHRN
ZW51SW50ZXJhY3Rpb24pIHsKLSAgICAgICAgW192aWV3IHJlbW92ZUludGVyYWN0aW9uOl9kYXRh
RGV0ZWN0b3JDb250ZXh0TWVudUludGVyYWN0aW9uLmdldCgpXTsKLSAgICAgICAgX2RhdGFEZXRl
Y3RvckNvbnRleHRNZW51SW50ZXJhY3Rpb24gPSBuaWw7Ci0gICAgICAgIGlmIChbX2RlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocmVtb3ZlQ29udGV4dE1lbnVWaWV3SWZQb3Nz
aWJsZUZvckFjdGlvblNoZWV0QXNzaXN0YW50OildKQotICAgICAgICAgICAgcmV0dXJuIFtfZGVs
ZWdhdGUgcmVtb3ZlQ29udGV4dE1lbnVWaWV3SWZQb3NzaWJsZUZvckFjdGlvblNoZWV0QXNzaXN0
YW50OnNlbGZdOwotICAgIH0KLX0KKyNpZiBVU0UoVUlDT05URVhUTUVOVSkKIAotLSAodm9pZCll
bnN1cmVDb250ZXh0TWVudUludGVyYWN0aW9uCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQor
CistIChVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gKilfZW5zdXJlRGF0YURldGVjdG9yQ29udGV4
dE1lbnVJbnRlcmFjdGlvbgogewogICAgIGlmICghX2RhdGFEZXRlY3RvckNvbnRleHRNZW51SW50
ZXJhY3Rpb24pIHsKICAgICAgICAgX2RhdGFEZXRlY3RvckNvbnRleHRNZW51SW50ZXJhY3Rpb24g
PSBhZG9wdE5TKFtbVUlDb250ZXh0TWVudUludGVyYWN0aW9uIGFsbG9jXSBpbml0V2l0aERlbGVn
YXRlOnNlbGZdKTsKICAgICAgICAgW192aWV3IGFkZEludGVyYWN0aW9uOl9kYXRhRGV0ZWN0b3JD
b250ZXh0TWVudUludGVyYWN0aW9uLmdldCgpXTsKICAgICB9CisgICAgcmV0dXJuIF9kYXRhRGV0
ZWN0b3JDb250ZXh0TWVudUludGVyYWN0aW9uLmdldCgpOwogfQogCisKKy0gKHZvaWQpX3JlbW92
ZURhdGFEZXRlY3RvckNvbnRleHRNZW51SW50ZXJhY3Rpb24KK3sKKyAgICBpZiAoIV9kYXRhRGV0
ZWN0b3JDb250ZXh0TWVudUludGVyYWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBbX3Zp
ZXcgcmVtb3ZlSW50ZXJhY3Rpb246X2RhdGFEZXRlY3RvckNvbnRleHRNZW51SW50ZXJhY3Rpb24u
Z2V0KCldOworICAgIF9kYXRhRGV0ZWN0b3JDb250ZXh0TWVudUludGVyYWN0aW9uID0gbmlsOwor
CisgICAgaWYgKFtfZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihyZW1vdmVD
b250ZXh0TWVudVZpZXdJZlBvc3NpYmxlRm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6KV0pCisgICAg
ICAgIFtfZGVsZWdhdGUgcmVtb3ZlQ29udGV4dE1lbnVWaWV3SWZQb3NzaWJsZUZvckFjdGlvblNo
ZWV0QXNzaXN0YW50OnNlbGZdOworfQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEFfREVURUNUSU9O
KQorCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisKKy0gKFVJQ29u
dGV4dE1lbnVJbnRlcmFjdGlvbiAqKV9lbnN1cmVNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJbnRl
cmFjdGlvbgoreworICAgIGlmICghX21lZGlhQ29udHJvbHNDb250ZXh0TWVudUludGVyYWN0aW9u
KSB7CisgICAgICAgIF9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJbnRlcmFjdGlvbiA9IGFkb3B0
TlMoW1tVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gYWxsb2NdIGluaXRXaXRoRGVsZWdhdGU6c2Vs
Zl0pOworICAgICAgICBbX3ZpZXcgYWRkSW50ZXJhY3Rpb246X21lZGlhQ29udHJvbHNDb250ZXh0
TWVudUludGVyYWN0aW9uLmdldCgpXTsKKyAgICB9CisgICAgcmV0dXJuIF9tZWRpYUNvbnRyb2xz
Q29udGV4dE1lbnVJbnRlcmFjdGlvbi5nZXQoKTsKK30KKworCistICh2b2lkKV9yZW1vdmVNZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnVJbnRlcmFjdGlvbgoreworICAgIGlmICghX21lZGlhQ29udHJv
bHNDb250ZXh0TWVudUludGVyYWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBbX3ZpZXcg
cmVtb3ZlSW50ZXJhY3Rpb246X21lZGlhQ29udHJvbHNDb250ZXh0TWVudUludGVyYWN0aW9uLmdl
dCgpXTsKKyAgICBfbWVkaWFDb250cm9sc0NvbnRleHRNZW51SW50ZXJhY3Rpb24gPSBuaWw7CisK
KyAgICBfbWVkaWFDb250cm9sc0NvbnRleHRNZW51ID0gbmlsOworICAgIF9tZWRpYUNvbnRyb2xz
Q29udGV4dE1lbnVUYXJnZXRGcmFtZSA9IHsgfTsKKyAgICBpZiAoYXV0byBtZWRpYUNvbnRyb2xz
Q29udGV4dE1lbnVDYWxsYmFjayA9IHN0ZDo6ZXhjaGFuZ2UoX21lZGlhQ29udHJvbHNDb250ZXh0
TWVudUNhbGxiYWNrLCB7IH0pKQorICAgICAgICBtZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVDYWxs
YmFjayhXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjppbnZhbGlkSUQpOwor
CisgICAgaWYgKFtfZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihyZW1vdmVD
b250ZXh0TWVudVZpZXdJZlBvc3NpYmxlRm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6KV0pCisgICAg
ICAgIFtfZGVsZWdhdGUgcmVtb3ZlQ29udGV4dE1lbnVWaWV3SWZQb3NzaWJsZUZvckFjdGlvblNo
ZWV0QXNzaXN0YW50OnNlbGZdOworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xT
X0NPTlRFWFRfTUVOVVMpCisKIC0gKEJPT0wpaGFzQ29udGV4dE1lbnVJbnRlcmFjdGlvbgogewot
ICAgIHJldHVybiAhIV9kYXRhRGV0ZWN0b3JDb250ZXh0TWVudUludGVyYWN0aW9uOworI2lmIEVO
QUJMRShEQVRBX0RFVEVDVElPTikKKyAgICBpZiAoX2RhdGFEZXRlY3RvckNvbnRleHRNZW51SW50
ZXJhY3Rpb24pCisgICAgICAgIHJldHVybiBZRVM7CisjZW5kaWYgLy8gRU5BQkxFKERBVEFfREVU
RUNUSU9OKQorCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisgICAg
aWYgKF9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJbnRlcmFjdGlvbikKKyAgICAgICAgcmV0dXJu
IFlFUzsKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKwor
ICAgIHJldHVybiBOTzsKIH0KLSNlbmRpZgorCisjZW5kaWYgLy8gVVNFKFVJQ09OVEVYVE1FTlUp
CiAKIC0gKHZvaWQpc2hvd0RhdGFEZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5mb3JtYXRpb246KGNv
bnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKXBvc2l0aW9uSW5m
b3JtYXRpb24KIHsKQEAgLTcxNCw4ICs3NjksNyBAQCAtICh2b2lkKXNob3dEYXRhRGV0ZWN0b3Jz
VUlGb3JQb3NpdGlvbkluZm9ybWF0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mbwog
ICAgICAgICByZXR1cm47CiAgICAgCiAjaWYgVVNFKFVJQ09OVEVYVE1FTlUpICYmIEhBVkUoVUlD
T05URVhUTUVOVV9MT0NBVElPTikKLSAgICBbc2VsZiBlbnN1cmVDb250ZXh0TWVudUludGVyYWN0
aW9uXTsKLSAgICBbX2RhdGFEZXRlY3RvckNvbnRleHRNZW51SW50ZXJhY3Rpb24gX3ByZXNlbnRN
ZW51QXRMb2NhdGlvbjpfcG9zaXRpb25JbmZvcm1hdGlvbi0+cmVxdWVzdC5wb2ludF07CisgICAg
W3NlbGYuX2Vuc3VyZURhdGFEZXRlY3RvckNvbnRleHRNZW51SW50ZXJhY3Rpb24gX3ByZXNlbnRN
ZW51QXRMb2NhdGlvbjpfcG9zaXRpb25JbmZvcm1hdGlvbi0+cmVxdWVzdC5wb2ludF07CiAjZWxz
ZQogICAgIE5TTXV0YWJsZUFycmF5ICplbGVtZW50QWN0aW9ucyA9IFtOU011dGFibGVBcnJheSBh
cnJheV07CiAgICAgZm9yIChOU1VJbnRlZ2VyIGFjdGlvbk51bWJlciA9IDA7IGFjdGlvbk51bWJl
ciA8IFtkYXRhRGV0ZWN0b3JzQWN0aW9ucyBjb3VudF07IGFjdGlvbk51bWJlcisrKSB7CkBAIC03
MzgsNiArNzkyLDU2IEBAIC0gKHZvaWQpc2hvd0RhdGFEZXRlY3RvcnNVSUZvclBvc2l0aW9uSW5m
b3JtYXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvCiAjZW5kaWYgLy8gRU5BQkxF
KERBVEFfREVURUNUSU9OKQogfQogCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRf
TUVOVVMpCisKKy0gKE5TQXJyYXk8VUlNZW51RWxlbWVudCAqPiAqKV91aU1lbnVFbGVtZW50c0Zv
ck1lZGlhQ29udHJvbENvbnRleHRNZW51SXRlbXM6KFZlY3RvcjxXZWJDb3JlOjpNZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnVJdGVtPiYmKSBpdGVtcworeworICAgIHJldHVybiBjcmVhdGVOU0FycmF5
KGl0ZW1zLCBbJl0gKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0mIGl0ZW0p
IC0+IFVJTWVudUVsZW1lbnQgKiB7CisgICAgICAgIFVJSW1hZ2UgKmltYWdlID0gIWl0ZW0uaWNv
bi5pc0VtcHR5KCkgPyBbVUlJbWFnZSBzeXN0ZW1JbWFnZU5hbWVkOldURk1vdmUoaXRlbS5pY29u
KV0gOiBuaWw7CisKKyAgICAgICAgaWYgKCFpdGVtLmNoaWxkcmVuLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgIHJldHVybiBbVUlNZW51IG1lbnVXaXRoVGl0bGU6V1RGTW92ZShpdGVtLnRpdGxlKSBp
bWFnZTppbWFnZSBpZGVudGlmaWVyOm5pbCBvcHRpb25zOjAgY2hpbGRyZW46W3NlbGYgX3VpTWVu
dUVsZW1lbnRzRm9yTWVkaWFDb250cm9sQ29udGV4dE1lbnVJdGVtczpXVEZNb3ZlKGl0ZW0uY2hp
bGRyZW4pXV07CisKKyAgICAgICAgYXV0byBzZWxlY3RlZEl0ZW1JRCA9IGl0ZW0uaWQ7CisgICAg
ICAgIFVJQWN0aW9uICphY3Rpb24gPSBbVUlBY3Rpb24gYWN0aW9uV2l0aFRpdGxlOldURk1vdmUo
aXRlbS50aXRsZSkgaW1hZ2U6aW1hZ2UgaWRlbnRpZmllcjpuaWwgaGFuZGxlcjpbd2Vha1NlbGYg
PSBXZWFrT2JqQ1B0cjxXS0FjdGlvblNoZWV0QXNzaXN0YW50PihzZWxmKSwgc2VsZWN0ZWRJdGVt
SURdIChVSUFjdGlvbiAqKSB7CisgICAgICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2Vs
Zi5nZXQoKTsKKyAgICAgICAgICAgIGlmICghc3Ryb25nU2VsZikKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgICAgIHN0cm9uZ1NlbGYtPl9tZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnVDYWxsYmFjayhzZWxlY3RlZEl0ZW1JRCk7CisgICAgICAgIH1dOworICAgICAgICBpZiAoaXRl
bS5pc0NoZWNrZWQpCisgICAgICAgICAgICBhY3Rpb24uc3RhdGUgPSBVSU1lbnVFbGVtZW50U3Rh
dGVPbjsKKyAgICAgICAgcmV0dXJuIGFjdGlvbjsKKyAgICB9KS5hdXRvcmVsZWFzZSgpOworfQor
CistICh2b2lkKXNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnU6KFdlYkNvcmU6OkZsb2F0UmVj
dCYmKXRhcmdldEZyYW1lIGl0ZW1zOihWZWN0b3I8V2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRl
eHRNZW51SXRlbT4mJilpdGVtcyBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+JiYpY29tcGxl
dGlvbkhhbmRsZXIKK3sKKyAgICBBU1NFUlQoIV9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJbnRl
cmFjdGlvbik7CisgICAgQVNTRVJUKCFfbWVkaWFDb250cm9sc0NvbnRleHRNZW51KTsKKyAgICBB
U1NFUlQoIV9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVDYWxsYmFjayk7CisKKyAgICBTdHJpbmcg
bWVudVRpdGxlOworICAgIGlmIChpdGVtcy5zaXplKCkgPT0gMSkgeworICAgICAgICBtZW51VGl0
bGUgPSBXVEZNb3ZlKGl0ZW1zWzBdLnRpdGxlKTsKKyAgICAgICAgaXRlbXMgPSBXVEZNb3ZlKGl0
ZW1zWzBdLmNoaWxkcmVuKTsKKyAgICB9CisKKyAgICBpZiAoaXRlbXMuaXNFbXB0eSgpKSB7Cisg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVu
dUl0ZW06OmludmFsaWRJRCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBfbWVkaWFD
b250cm9sc0NvbnRleHRNZW51ID0gW1VJTWVudSBtZW51V2l0aFRpdGxlOldURk1vdmUobWVudVRp
dGxlKSBpbWFnZTpuaWwgaWRlbnRpZmllcjpuaWwgb3B0aW9uczowIGNoaWxkcmVuOltzZWxmIF91
aU1lbnVFbGVtZW50c0Zvck1lZGlhQ29udHJvbENvbnRleHRNZW51SXRlbXM6V1RGTW92ZShpdGVt
cyldXTsKKyAgICBfbWVkaWFDb250cm9sc0NvbnRleHRNZW51VGFyZ2V0RnJhbWUgPSBXVEZNb3Zl
KHRhcmdldEZyYW1lKTsKKyAgICBfbWVkaWFDb250cm9sc0NvbnRleHRNZW51Q2FsbGJhY2sgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKTsKKworICAgIFtzZWxmLl9lbnN1cmVNZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnVJbnRlcmFjdGlvbiBfcHJlc2VudE1lbnVBdExvY2F0aW9uOl9tZWRpYUNv
bnRyb2xzQ29udGV4dE1lbnVUYXJnZXRGcmFtZS5jZW50ZXIoKV07Cit9CisKKyNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKwogI2lmIFVTRShVSUNPTlRFWFRN
RU5VKQogCiBzdGF0aWMgTlNBcnJheTxVSU1lbnVFbGVtZW50ICo+ICptZW51RWxlbWVudHNGcm9t
RGVmYXVsdEFjdGlvbnMoUmV0YWluUHRyPE5TQXJyYXk+IGRlZmF1bHRFbGVtZW50QWN0aW9ucywg
UmV0YWluUHRyPF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvPiBlbGVtZW50SW5mbykKQEAgLTc1OSw0
OCArODYzLDgxIEBAIC0gKE5TQXJyYXk8VUlNZW51RWxlbWVudCAqPiAqKXN1Z2dlc3RlZEFjdGlv
bnNGb3JDb250ZXh0TWVudVdpdGhQb3NpdGlvbkluZm9ybWF0CiAgICAgcmV0dXJuIG1lbnVFbGVt
ZW50c0Zyb21EZWZhdWx0QWN0aW9ucyhkZWZhdWx0QWN0aW9uc0Zyb21Bc3Npc3RhbnQsIGVsZW1l
bnRJbmZvKTsKIH0KIAotI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKIAogLSAoVUlDb250ZXh0
TWVudUNvbmZpZ3VyYXRpb24gKiljb250ZXh0TWVudUludGVyYWN0aW9uOihVSUNvbnRleHRNZW51
SW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBjb25maWd1cmF0aW9uRm9yTWVudUF0TG9jYXRpb246
KENHUG9pbnQpbG9jYXRpb24KIHsKLSAgICBERERldGVjdGlvbkNvbnRyb2xsZXIgKmNvbnRyb2xs
ZXIgPSBbZ2V0REREZXRlY3Rpb25Db250cm9sbGVyQ2xhc3MoKSBzaGFyZWRDb250cm9sbGVyXTsK
LSAgICBOU0RpY3Rpb25hcnkgKmNvbnRleHQgPSBuaWw7Ci0gICAgTlNTdHJpbmcgKnRleHRBdFNl
bGVjdGlvbiA9IG5pbDsKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisgICAgaWYgKGludGVy
YWN0aW9uID09IF9kYXRhRGV0ZWN0b3JDb250ZXh0TWVudUludGVyYWN0aW9uKSB7CisgICAgICAg
IERERGV0ZWN0aW9uQ29udHJvbGxlciAqY29udHJvbGxlciA9IFtnZXRERERldGVjdGlvbkNvbnRy
b2xsZXJDbGFzcygpIHNoYXJlZENvbnRyb2xsZXJdOworICAgICAgICBOU0RpY3Rpb25hcnkgKmNv
bnRleHQgPSBuaWw7CisgICAgICAgIE5TU3RyaW5nICp0ZXh0QXRTZWxlY3Rpb24gPSBuaWw7CiAK
LSAgICBpZiAoW19kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGRhdGFEZXRl
Y3Rpb25Db250ZXh0Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6cG9zaXRpb25JbmZvcm1hdGlvbjop
XSkKLSAgICAgICAgY29udGV4dCA9IFtfZGVsZWdhdGUgZGF0YURldGVjdGlvbkNvbnRleHRGb3JB
Y3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIHBvc2l0aW9uSW5mb3JtYXRpb246Kl9wb3NpdGlvbklu
Zm9ybWF0aW9uXTsKLSAgICBpZiAoW19kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKHNlbGVjdGVkVGV4dEZvckFjdGlvblNoZWV0QXNzaXN0YW50OildKQotICAgICAgICB0ZXh0
QXRTZWxlY3Rpb24gPSBbX2RlbGVnYXRlIHNlbGVjdGVkVGV4dEZvckFjdGlvblNoZWV0QXNzaXN0
YW50OnNlbGZdOworICAgICAgICBpZiAoW19kZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKGRhdGFEZXRlY3Rpb25Db250ZXh0Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6cG9zaXRp
b25JbmZvcm1hdGlvbjopXSkKKyAgICAgICAgICAgIGNvbnRleHQgPSBbX2RlbGVnYXRlIGRhdGFE
ZXRlY3Rpb25Db250ZXh0Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBwb3NpdGlvbkluZm9y
bWF0aW9uOipfcG9zaXRpb25JbmZvcm1hdGlvbl07CisgICAgICAgIGlmIChbX2RlbGVnYXRlIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2VsZWN0ZWRUZXh0Rm9yQWN0aW9uU2hlZXRBc3Np
c3RhbnQ6KV0pCisgICAgICAgICAgICB0ZXh0QXRTZWxlY3Rpb24gPSBbX2RlbGVnYXRlIHNlbGVj
dGVkVGV4dEZvckFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGZdOwogCi0gICAgTlNEaWN0aW9uYXJ5
ICpuZXdDb250ZXh0ID0gbmlsOwotICAgIEREUmVzdWx0UmVmIGRkUmVzdWx0ID0gW2NvbnRyb2xs
ZXIgcmVzdWx0Rm9yVVJMOl9wb3NpdGlvbkluZm9ybWF0aW9uLT51cmwgaWRlbnRpZmllcjpfcG9z
aXRpb25JbmZvcm1hdGlvbi0+ZGF0YURldGVjdG9ySWRlbnRpZmllciBzZWxlY3RlZFRleHQ6dGV4
dEF0U2VsZWN0aW9uIHJlc3VsdHM6X3Bvc2l0aW9uSW5mb3JtYXRpb24tPmRhdGFEZXRlY3RvclJl
c3VsdHMuZ2V0KCkgY29udGV4dDpjb250ZXh0IGV4dGVuZGVkQ29udGV4dDombmV3Q29udGV4dF07
CisgICAgICAgIE5TRGljdGlvbmFyeSAqbmV3Q29udGV4dCA9IG5pbDsKKyAgICAgICAgRERSZXN1
bHRSZWYgZGRSZXN1bHQgPSBbY29udHJvbGxlciByZXN1bHRGb3JVUkw6X3Bvc2l0aW9uSW5mb3Jt
YXRpb24tPnVybCBpZGVudGlmaWVyOl9wb3NpdGlvbkluZm9ybWF0aW9uLT5kYXRhRGV0ZWN0b3JJ
ZGVudGlmaWVyIHNlbGVjdGVkVGV4dDp0ZXh0QXRTZWxlY3Rpb24gcmVzdWx0czpfcG9zaXRpb25J
bmZvcm1hdGlvbi0+ZGF0YURldGVjdG9yUmVzdWx0cy5nZXQoKSBjb250ZXh0OmNvbnRleHQgZXh0
ZW5kZWRDb250ZXh0OiZuZXdDb250ZXh0XTsKIAotICAgIENHUmVjdCBzb3VyY2VSZWN0OwotICAg
IGlmIChfcG9zaXRpb25JbmZvcm1hdGlvbi0+aXNMaW5rKQotICAgICAgICBzb3VyY2VSZWN0ID0g
X3Bvc2l0aW9uSW5mb3JtYXRpb24tPmxpbmtJbmRpY2F0b3IudGV4dEJvdW5kaW5nUmVjdEluUm9v
dFZpZXdDb29yZGluYXRlczsKLSAgICBlbHNlCi0gICAgICAgIHNvdXJjZVJlY3QgPSBfcG9zaXRp
b25JbmZvcm1hdGlvbi0+Ym91bmRzOworICAgICAgICBDR1JlY3Qgc291cmNlUmVjdDsKKyAgICAg
ICAgaWYgKF9wb3NpdGlvbkluZm9ybWF0aW9uLT5pc0xpbmspCisgICAgICAgICAgICBzb3VyY2VS
ZWN0ID0gX3Bvc2l0aW9uSW5mb3JtYXRpb24tPmxpbmtJbmRpY2F0b3IudGV4dEJvdW5kaW5nUmVj
dEluUm9vdFZpZXdDb29yZGluYXRlczsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc291cmNl
UmVjdCA9IF9wb3NpdGlvbkluZm9ybWF0aW9uLT5ib3VuZHM7CiAKLSAgICBhdXRvIGRkQ29udGV4
dE1lbnVBY3Rpb25DbGFzcyA9IGdldEREQ29udGV4dE1lbnVBY3Rpb25DbGFzcygpOwotICAgIGF1
dG8gZmluYWxDb250ZXh0ID0gW2RkQ29udGV4dE1lbnVBY3Rpb25DbGFzcyB1cGRhdGVDb250ZXh0
Om5ld0NvbnRleHQgd2l0aFNvdXJjZVJlY3Q6c291cmNlUmVjdF07CisgICAgICAgIGF1dG8gZGRD
b250ZXh0TWVudUFjdGlvbkNsYXNzID0gZ2V0RERDb250ZXh0TWVudUFjdGlvbkNsYXNzKCk7Cisg
ICAgICAgIGF1dG8gZmluYWxDb250ZXh0ID0gW2RkQ29udGV4dE1lbnVBY3Rpb25DbGFzcyB1cGRh
dGVDb250ZXh0Om5ld0NvbnRleHQgd2l0aFNvdXJjZVJlY3Q6c291cmNlUmVjdF07CiAKLSAgICBp
ZiAoZGRSZXN1bHQpCi0gICAgICAgIHJldHVybiBbZGRDb250ZXh0TWVudUFjdGlvbkNsYXNzIGNv
bnRleHRNZW51Q29uZmlndXJhdGlvbldpdGhSZXN1bHQ6ZGRSZXN1bHQgaW5WaWV3Ol92aWV3Lmdl
dEF1dG9yZWxlYXNlZCgpIGNvbnRleHQ6ZmluYWxDb250ZXh0IG1lbnVJZGVudGlmaWVyOm5pbF07
Ci0gICAgcmV0dXJuIFtkZENvbnRleHRNZW51QWN0aW9uQ2xhc3MgY29udGV4dE1lbnVDb25maWd1
cmF0aW9uV2l0aFVSTDpfcG9zaXRpb25JbmZvcm1hdGlvbi0+dXJsIGluVmlldzpfdmlldy5nZXRB
dXRvcmVsZWFzZWQoKSBjb250ZXh0OmZpbmFsQ29udGV4dCBtZW51SWRlbnRpZmllcjpuaWxdOwor
ICAgICAgICBpZiAoZGRSZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gW2RkQ29udGV4dE1lbnVB
Y3Rpb25DbGFzcyBjb250ZXh0TWVudUNvbmZpZ3VyYXRpb25XaXRoUmVzdWx0OmRkUmVzdWx0IGlu
Vmlldzpfdmlldy5nZXRBdXRvcmVsZWFzZWQoKSBjb250ZXh0OmZpbmFsQ29udGV4dCBtZW51SWRl
bnRpZmllcjpuaWxdOworICAgICAgICByZXR1cm4gW2RkQ29udGV4dE1lbnVBY3Rpb25DbGFzcyBj
b250ZXh0TWVudUNvbmZpZ3VyYXRpb25XaXRoVVJMOl9wb3NpdGlvbkluZm9ybWF0aW9uLT51cmwg
aW5WaWV3Ol92aWV3LmdldEF1dG9yZWxlYXNlZCgpIGNvbnRleHQ6ZmluYWxDb250ZXh0IG1lbnVJ
ZGVudGlmaWVyOm5pbF07CisgICAgfQorI2VuZGlmIC8vIEVOQUJMRShEQVRBX0RFVEVDVElPTikK
KworI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorICAgIGlmIChpbnRl
cmFjdGlvbiA9PSBfbWVkaWFDb250cm9sc0NvbnRleHRNZW51SW50ZXJhY3Rpb24pIHsKKyAgICAg
ICAgcmV0dXJuIFtVSUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uV2l0aElk
ZW50aWZpZXI6bmlsIHByZXZpZXdQcm92aWRlcjpuaWwgYWN0aW9uUHJvdmlkZXI6W3dlYWtTZWxm
ID0gV2Vha09iakNQdHI8V0tBY3Rpb25TaGVldEFzc2lzdGFudD4oc2VsZildIChOU0FycmF5PFVJ
TWVudUVsZW1lbnQgKj4gKnN1Z2dlc3RlZEFjdGlvbnMpIC0+IFVJTWVudSAqIHsKKyAgICAgICAg
ICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICAgICAgaWYgKCFz
dHJvbmdTZWxmKQorICAgICAgICAgICAgICAgIHJldHVybiBuaWw7CisKKyAgICAgICAgICAgIHJl
dHVybiBzdHJvbmdTZWxmLT5fbWVkaWFDb250cm9sc0NvbnRleHRNZW51LmdldCgpOworICAgICAg
ICB9XTsKKyAgICB9CisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVO
VVMpCisKKyAgICByZXR1cm4gbmlsOwogfQogCiAtIChVSVRhcmdldGVkUHJldmlldyAqKWNvbnRl
eHRNZW51SW50ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9u
IHByZXZpZXdGb3JIaWdobGlnaHRpbmdNZW51V2l0aENvbmZpZ3VyYXRpb246KFVJQ29udGV4dE1l
bnVDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbgogewotICAgIGF1dG8gZGVsZWdhdGUgPSBf
ZGVsZWdhdGUuZ2V0KCk7Ci0gICAgQ0dQb2ludCBjZW50ZXIgPSBfcG9zaXRpb25JbmZvcm1hdGlv
bi0+cmVxdWVzdC5wb2ludDsKLSAgICAKLSAgICBpZiAoW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoY3JlYXRlVGFyZ2V0ZWRDb250ZXh0TWVudUhpbnRGb3JBY3Rpb25TaGVl
dEFzc2lzdGFudDopXSkKLSAgICAgICAgcmV0dXJuIFtkZWxlZ2F0ZSBjcmVhdGVUYXJnZXRlZENv
bnRleHRNZW51SGludEZvckFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGZdOwotICAgIAotICAgIFJl
dGFpblB0cjxVSVByZXZpZXdQYXJhbWV0ZXJzPiB1bnVzZWRQcmV2aWV3UGFyYW1ldGVycyA9IGFk
b3B0TlMoW1tVSVByZXZpZXdQYXJhbWV0ZXJzIGFsbG9jXSBpbml0XSk7Ci0gICAgUmV0YWluUHRy
PFVJUHJldmlld1RhcmdldD4gcHJldmlld1RhcmdldCA9IGFkb3B0TlMoW1tVSVByZXZpZXdUYXJn
ZXQgYWxsb2NdIGluaXRXaXRoQ29udGFpbmVyOl92aWV3LmdldEF1dG9yZWxlYXNlZCgpIGNlbnRl
cjpjZW50ZXJdKTsKLSAgICBSZXRhaW5QdHI8VUlUYXJnZXRlZFByZXZpZXc+IHByZXZpZXcgPSBh
ZG9wdE5TKFtbVUlUYXJnZXRlZFByZXZpZXcgYWxsb2NdIGluaXRXaXRoVmlldzpfdmlldy5nZXRB
dXRvcmVsZWFzZWQoKSBwYXJhbWV0ZXJzOnVudXNlZFByZXZpZXdQYXJhbWV0ZXJzLmdldCgpIHRh
cmdldDpwcmV2aWV3VGFyZ2V0LmdldCgpXSk7Ci0gICAgcmV0dXJuIHByZXZpZXcuYXV0b3JlbGVh
c2UoKTsKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCisgICAgaWYgKGludGVyYWN0aW9uID09
IF9kYXRhRGV0ZWN0b3JDb250ZXh0TWVudUludGVyYWN0aW9uKSB7CisgICAgICAgIGF1dG8gZGVs
ZWdhdGUgPSBfZGVsZWdhdGUuZ2V0KCk7CisgICAgICAgIENHUG9pbnQgY2VudGVyID0gX3Bvc2l0
aW9uSW5mb3JtYXRpb24tPnJlcXVlc3QucG9pbnQ7CisKKyAgICAgICAgaWYgKFtkZWxlZ2F0ZSBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGNyZWF0ZVRhcmdldGVkQ29udGV4dE1lbnVIaW50
Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6KV0pCisgICAgICAgICAgICByZXR1cm4gW2RlbGVnYXRl
IGNyZWF0ZVRhcmdldGVkQ29udGV4dE1lbnVIaW50Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2Vs
Zl07CisKKyAgICAgICAgUmV0YWluUHRyPFVJUHJldmlld1BhcmFtZXRlcnM+IHVudXNlZFByZXZp
ZXdQYXJhbWV0ZXJzID0gYWRvcHROUyhbW1VJUHJldmlld1BhcmFtZXRlcnMgYWxsb2NdIGluaXRd
KTsKKyAgICAgICAgUmV0YWluUHRyPFVJUHJldmlld1RhcmdldD4gcHJldmlld1RhcmdldCA9IGFk
b3B0TlMoW1tVSVByZXZpZXdUYXJnZXQgYWxsb2NdIGluaXRXaXRoQ29udGFpbmVyOl92aWV3Lmdl
dEF1dG9yZWxlYXNlZCgpIGNlbnRlcjpjZW50ZXJdKTsKKyAgICAgICAgUmV0YWluUHRyPFVJVGFy
Z2V0ZWRQcmV2aWV3PiBwcmV2aWV3ID0gYWRvcHROUyhbW1VJVGFyZ2V0ZWRQcmV2aWV3IGFsbG9j
XSBpbml0V2l0aFZpZXc6X3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkgcGFyYW1ldGVyczp1bnVzZWRQ
cmV2aWV3UGFyYW1ldGVycy5nZXQoKSB0YXJnZXQ6cHJldmlld1RhcmdldC5nZXQoKV0pOworICAg
ICAgICByZXR1cm4gcHJldmlldy5hdXRvcmVsZWFzZSgpOworICAgIH0KKyNlbmRpZiAvLyBFTkFC
TEUoREFUQV9ERVRFQ1RJT04pCisKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9N
RU5VUykKKyAgICBpZiAoaW50ZXJhY3Rpb24gPT0gX21lZGlhQ29udHJvbHNDb250ZXh0TWVudUlu
dGVyYWN0aW9uKSB7CisgICAgICAgIGF1dG8gZW1wdHlWaWV3ID0gYWRvcHROUyhbW1VJVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpfbWVkaWFDb250cm9sc0NvbnRleHRNZW51VGFyZ2V0RnJhbWVd
KTsKKyAgICAgICAgYXV0byBwcmV2aWV3UGFyYW1ldGVycyA9IGFkb3B0TlMoW1tVSVByZXZpZXdQ
YXJhbWV0ZXJzIGFsbG9jXSBpbml0XSk7CisgICAgICAgIGF1dG8gcHJldmlld1RhcmdldCA9IGFk
b3B0TlMoW1tVSVByZXZpZXdUYXJnZXQgYWxsb2NdIGluaXRXaXRoQ29udGFpbmVyOl92aWV3Lmdl
dEF1dG9yZWxlYXNlZCgpIGNlbnRlcjpfbWVkaWFDb250cm9sc0NvbnRleHRNZW51VGFyZ2V0RnJh
bWUuY2VudGVyKCldKTsKKyAgICAgICAgYXV0byBwcmV2aWV3ID0gYWRvcHROUyhbW1VJVGFyZ2V0
ZWRQcmV2aWV3IGFsbG9jXSBpbml0V2l0aFZpZXc6ZW1wdHlWaWV3LmdldCgpIHBhcmFtZXRlcnM6
cHJldmlld1BhcmFtZXRlcnMuZ2V0KCkgdGFyZ2V0OnByZXZpZXdUYXJnZXQuZ2V0KCldKTsKKyAg
ICAgICAgcmV0dXJuIHByZXZpZXcuYXV0b3JlbGVhc2UoKTsKKyAgICB9CisjZW5kaWYgLy8gRU5B
QkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisKKyAgICByZXR1cm4gbmlsOwogfQog
CiAtIChfVUlDb250ZXh0TWVudVN0eWxlICopX2NvbnRleHRNZW51SW50ZXJhY3Rpb246KFVJQ29u
dGV4dE1lbnVJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIHN0eWxlRm9yTWVudVdpdGhDb25maWd1
cmF0aW9uOihVSUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24KQEAgLTgx
MCwyMiArOTQ3LDUzIEBAIC0gKF9VSUNvbnRleHRNZW51U3R5bGUgKilfY29udGV4dE1lbnVJbnRl
cmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50CiAgICAgcmV0dXJuIHN0eWxl
OwogfQogCistICh2b2lkKWNvbnRleHRNZW51SW50ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJbnRl
cmFjdGlvbiAqKWludGVyYWN0aW9uIHdpbGxEaXNwbGF5TWVudUZvckNvbmZpZ3VyYXRpb246KFVJ
Q29udGV4dE1lbnVDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbiBhbmltYXRvcjooaWQgPFVJ
Q29udGV4dE1lbnVJbnRlcmFjdGlvbkFuaW1hdGluZz4pYW5pbWF0b3IKK3sKKyAgICBbYW5pbWF0
b3IgYWRkQ29tcGxldGlvbjpbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0FjdGlvblNoZWV0QXNz
aXN0YW50PihzZWxmKV0geworICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQo
KTsKKyAgICAgICAgaWYgKCFzdHJvbmdTZWxmKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIGlmIChbc3Ryb25nU2VsZi0+X2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoYWN0aW9uU2hlZXRBc3Npc3RhbnREaWRTaG93Q29udGV4dE1lbnU6KV0pCisgICAgICAgICAg
ICBbc3Ryb25nU2VsZi0+X2RlbGVnYXRlIGFjdGlvblNoZWV0QXNzaXN0YW50RGlkU2hvd0NvbnRl
eHRNZW51OnN0cm9uZ1NlbGYuZ2V0KCldOworICAgIH1dOworfQorCiAtICh2b2lkKWNvbnRleHRN
ZW51SW50ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIHdp
bGxFbmRGb3JDb25maWd1cmF0aW9uOihVSUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAqKWNvbmZp
Z3VyYXRpb24gYW5pbWF0b3I6KGlkPFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbkFuaW1hdGluZz4p
YW5pbWF0b3IKIHsKLSAgICBbYW5pbWF0b3IgYWRkQ29tcGxldGlvbjpeewotICAgICAgICBbc2Vs
ZiByZW1vdmVDb250ZXh0TWVudUludGVyYWN0aW9uXTsKKyNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJ
T04pCisgICAgaWYgKGludGVyYWN0aW9uID09IF9kYXRhRGV0ZWN0b3JDb250ZXh0TWVudUludGVy
YWN0aW9uKQorICAgICAgICBbc2VsZiBfcmVtb3ZlRGF0YURldGVjdG9yQ29udGV4dE1lbnVJbnRl
cmFjdGlvbl07CisjZW5kaWYgLy8gRU5BQkxFKERBVEFfREVURUNUSU9OKQorCisjaWYgRU5BQkxF
KE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisgICAgaWYgKGludGVyYWN0aW9uID09IF9t
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJbnRlcmFjdGlvbikKKyAgICAgICAgW3NlbGYgX3JlbW92
ZU1lZGlhQ29udHJvbHNDb250ZXh0TWVudUludGVyYWN0aW9uXTsKKyNlbmRpZiAvLyBFTkFCTEUo
TUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKworICAgIFthbmltYXRvciBhZGRDb21wbGV0
aW9uOlt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQ+KHNlbGYp
XSB7CisgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICBp
ZiAoIXN0cm9uZ1NlbGYpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKFtzdHJv
bmdTZWxmLT5fZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihhY3Rpb25TaGVl
dEFzc2lzdGFudERpZERpc21pc3NDb250ZXh0TWVudTopXSkKKyAgICAgICAgICAgIFtzdHJvbmdT
ZWxmLT5fZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnREaWREaXNtaXNzQ29udGV4dE1lbnU6
c3Ryb25nU2VsZi5nZXQoKV07CiAgICAgfV07CiB9CiAKIC0gKE5TQXJyYXk8VUlNZW51RWxlbWVu
dCAqPiAqKV9jb250ZXh0TWVudUludGVyYWN0aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24g
KilpbnRlcmFjdGlvbiBvdmVycmlkZVN1Z2dlc3RlZEFjdGlvbnNGb3JDb25maWd1cmF0aW9uOihV
SUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24KIHsKLSAgICBpZiAoIV9w
b3NpdGlvbkluZm9ybWF0aW9uKQotICAgICAgICByZXR1cm4gbmlsOwotICAgIHJldHVybiBbc2Vs
ZiBzdWdnZXN0ZWRBY3Rpb25zRm9yQ29udGV4dE1lbnVXaXRoUG9zaXRpb25JbmZvcm1hdGlvbjoq
X3Bvc2l0aW9uSW5mb3JtYXRpb25dOwotfQotCisjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQor
ICAgIGlmIChpbnRlcmFjdGlvbiA9PSBfZGF0YURldGVjdG9yQ29udGV4dE1lbnVJbnRlcmFjdGlv
bikgeworICAgICAgICBpZiAoIV9wb3NpdGlvbkluZm9ybWF0aW9uKQorICAgICAgICAgICAgcmV0
dXJuIG5pbDsKKyAgICAgICAgcmV0dXJuIFtzZWxmIHN1Z2dlc3RlZEFjdGlvbnNGb3JDb250ZXh0
TWVudVdpdGhQb3NpdGlvbkluZm9ybWF0aW9uOipfcG9zaXRpb25JbmZvcm1hdGlvbl07CisgICAg
fQogI2VuZGlmIC8vIEVOQUJMRShEQVRBX0RFVEVDVElPTikKIAorICAgIHJldHVybiBuaWw7Cit9
CisKICNlbmRpZiAvLyBVU0UoVUlDT05URVhUTUVOVSkKIAogLSAodm9pZCloYW5kbGVFbGVtZW50
QWN0aW9uV2l0aFR5cGU6KF9XS0VsZW1lbnRBY3Rpb25UeXBlKXR5cGUgZWxlbWVudDooX1dLQWN0
aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50IG5lZWRzSW50ZXJhY3Rpb246KEJPT0wpbmVlZHNJ
bnRlcmFjdGlvbgpAQCAtODg2LDYgKzEwNTQsNTkgQEAgLSAodm9pZCljbGVhbnVwU2hlZXQKICAg
ICBfaGFzUGVuZGluZ0FjdGlvblNoZWV0ID0gTk87CiB9CiAKKyNwcmFnbWEgbWFyayAtIFdLVGVz
dGluZworCistIChOU0FycmF5ICopY3VycmVudGx5QXZhaWxhYmxlQWN0aW9uVGl0bGVzCit7Cisg
ICAgaWYgKCFfaW50ZXJhY3Rpb25TaGVldCkKKyAgICAgICAgcmV0dXJuIEBbXTsKKworICAgIE5T
TXV0YWJsZUFycmF5ICphcnJheSA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0eTpf
aW50ZXJhY3Rpb25TaGVldC5nZXQoKS5hY3Rpb25zLmNvdW50XTsKKworICAgIGZvciAoVUlBbGVy
dEFjdGlvbiAqYWN0aW9uIGluIF9pbnRlcmFjdGlvblNoZWV0LmdldCgpLmFjdGlvbnMpCisgICAg
ICAgIFthcnJheSBhZGRPYmplY3Q6YWN0aW9uLnRpdGxlXTsKKworICAgIHJldHVybiBhcnJheTsK
K30KKworI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorCistIChOU0Rp
Y3Rpb25hcnkgKilfY29udGVudHNPZkNvbnRleHRNZW51SXRlbTooVUlNZW51RWxlbWVudCAqKWl0
ZW0KK3sKKyAgICBOU011dGFibGVEaWN0aW9uYXJ5KiByZXN1bHQgPSBOU011dGFibGVEaWN0aW9u
YXJ5LmRpY3Rpb25hcnk7CisKKyAgICBpZiAoaXRlbS50aXRsZS5sZW5ndGgpCisgICAgICAgIHJl
c3VsdFtAInRpdGxlIl0gPSBpdGVtLnRpdGxlOworCisgICAgaWYgKFtpdGVtIGlzS2luZE9mQ2xh
c3M6VUlNZW51LmNsYXNzXSkgeworICAgICAgICBVSU1lbnUgKm1lbnUgPSAoVUlNZW51ICopaXRl
bTsKKworICAgICAgICBOU011dGFibGVBcnJheSAqY2hpbGRyZW4gPSBbTlNNdXRhYmxlQXJyYXkg
YXJyYXlXaXRoQ2FwYWNpdHk6bWVudS5jaGlsZHJlbi5jb3VudF07CisgICAgICAgIGZvciAoVUlN
ZW51RWxlbWVudCAqY2hpbGQgaW4gbWVudS5jaGlsZHJlbikKKyAgICAgICAgICAgIFtjaGlsZHJl
biBhZGRPYmplY3Q6W3NlbGYgX2NvbnRlbnRzT2ZDb250ZXh0TWVudUl0ZW06Y2hpbGRdXTsKKyAg
ICAgICAgcmVzdWx0W0AiY2hpbGRyZW4iXSA9IGNoaWxkcmVuOworICAgIH0KKworICAgIGlmIChb
aXRlbSBpc0tpbmRPZkNsYXNzOlVJQWN0aW9uLmNsYXNzXSkgeworICAgICAgICBVSUFjdGlvbiAq
YWN0aW9uID0gKFVJQWN0aW9uICopaXRlbTsKKworICAgICAgICBpZiAoYWN0aW9uLnN0YXRlID09
IFVJTWVudUVsZW1lbnRTdGF0ZU9uKQorICAgICAgICAgICAgcmVzdWx0W0AiY2hlY2tlZCJdID0g
QFlFUzsKKyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCistIChOU0FycmF5ICopY3Vy
cmVudGx5QXZhaWxhYmxlTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbXMKK3sKKyAgICBOU011
dGFibGVBcnJheSAqcmVzdWx0ID0gTlNNdXRhYmxlQXJyYXkuYXJyYXk7CisgICAgaWYgKF9tZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnUpCisgICAgICAgIFtyZXN1bHQgYWRkT2JqZWN0OltzZWxmIF9j
b250ZW50c09mQ29udGV4dE1lbnVJdGVtOl9tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUuZ2V0KCld
XTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRS
T0xTX0NPTlRFWFRfTUVOVVMpCisKIEBlbmQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1J
TFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLmgKaW5kZXggNWQ2ODMyNjdhZTI0NWI0Yzc5YWVhOGI4MDZkNTVmZjZkZTNh
NjMzMS4uOWMyZjUxZWZmZjAxNmUyZTNjNGZjM2NjYjljZTE1YjEwMmIyOGU2OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaApAQCAtNTgsNiArNTgsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UXVhZC5o
PgorI2ltcG9ydCA8V2ViQ29yZS9NZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1BvaW50ZXJJRC5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAjaW1w
b3J0IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KQEAgLTc4LDYgKzc5LDcgQEAgY2xhc3MgVGV4
dFN0cmVhbTsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENvbG9yOwogY2xhc3MgRmxvYXRR
dWFkOworY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgSW50U2l6ZTsKIGNsYXNzIFNlbGVjdGlvblJl
Y3Q7CiBzdHJ1Y3QgQ29udGFjdEluZm87CkBAIC02NzIsNiArNjc0LDEwIEBAIEZPUl9FQUNIX1BS
SVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9G
T1JfV0VCX1ZJRVcpCiAtICh2b2lkKV9zZXRNb3VzZUV2ZW50UG9saWN5OihXZWJDb3JlOjpNb3Vz
ZUV2ZW50UG9saWN5KXBvbGljeTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xT
X0NPTlRFWFRfTUVOVVMpCistICh2b2lkKV9zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51OihX
ZWJDb3JlOjpGbG9hdFJlY3QmJil0YXJnZXRGcmFtZSBpdGVtczooVmVjdG9yPFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+JiYpaXRlbXMgY29tcGxldGlvbkhhbmRsZXI6KENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRl
bTo6SUQpPiYmKWNvbXBsZXRpb25IYW5kbGVyOworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05U
Uk9MU19DT05URVhUX01FTlVTKQorCiAjaWYgRU5BQkxFKElPU19GT1JNX0NPTlRST0xfUkVGUkVT
SCkKIC0gKEJPT0wpX2Zvcm1Db250cm9sUmVmcmVzaEVuYWJsZWQ7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
Lm1tCmluZGV4IDQ3ZDk2YzJlOTliNTRiMWVlZTVhNTEzNDJhNDFlMmIxNjljZTE3ZGMuLjdmOTQ1
MzQyMTYwYzQxZmRhZTJkYTkyYzQ5NmY5YjI3ODEyN2MzMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAt
MTAwLDYgKzEwMCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0RPTVBhc3RlQWNjZXNzLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0RhdGFEZXRlY3Rpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvRmxvYXRRdWFk
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Gb250
QXR0cmlidXRlQ2hhbmdlcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnB1dE1vZGUuaD4KICNpbXBv
cnQgPFdlYkNvcmUvS2V5RXZlbnRDb2Rlc0lPUy5oPgpAQCAtNzI4Myw2ICs3Mjg0LDE2IEBAIC0g
KHZvaWQpcmVtb3ZlQ29udGV4dE1lbnVWaWV3SWZQb3NzaWJsZUZvckFjdGlvblNoZWV0QXNzaXN0
YW50OihXS0FjdGlvblNoZWV0QXNzCiAgICAgW3NlbGYgX3JlbW92ZUNvbnRleHRNZW51Vmlld0lm
UG9zc2libGVdOwogfQogCistICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50RGlkU2hvd0NvbnRl
eHRNZW51OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50Cit7CisgICAgW193ZWJW
aWV3IF9kaWRTaG93Q29udGV4dE1lbnVdOworfQorCistICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0
YW50RGlkRGlzbWlzc0NvbnRleHRNZW51OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0
YW50Cit7CisgICAgW193ZWJWaWV3IF9kaWREaXNtaXNzQ29udGV4dE1lbnVdOworfQorCiAjZW5k
aWYgLy8gVVNFKFVJQ09OVEVYVE1FTlUpCiAKIC0gKEJPT0wpX3Nob3VsZFVzZUNvbnRleHRNZW51
cwpAQCAtODkwMSw2ICs4OTEyLDE1IEBAIC0gKHZvaWQpX3NldE1vdXNlRXZlbnRQb2xpY3k6KFdl
YkNvcmU6Ok1vdXNlRXZlbnRQb2xpY3kpcG9saWN5CiAKICNlbmRpZiAvLyBIQVZFKFVJS0lUX1dJ
VEhfTU9VU0VfU1VQUE9SVCkKIAorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01F
TlVTKQorCistICh2b2lkKV9zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51OihXZWJDb3JlOjpG
bG9hdFJlY3QmJil0YXJnZXRGcmFtZSBpdGVtczooVmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29udHJv
bHNDb250ZXh0TWVudUl0ZW0+JiYpaXRlbXMgY29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbTo6SUQpPiYm
KWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgW19hY3Rpb25TaGVldEFzc2lzdGFudCBzaG93TWVk
aWFDb250cm9sc0NvbnRleHRNZW51OldURk1vdmUodGFyZ2V0RnJhbWUpIGl0ZW1zOldURk1vdmUo
aXRlbXMpIGNvbXBsZXRpb25IYW5kbGVyOldURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXTsKK30K
KworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorCiAjaWYg
SEFWRShVSV9QT0lOVEVSX0lOVEVSQUNUSU9OKQogCiAtICh2b2lkKXNldFVwUG9pbnRlckludGVy
YWN0aW9uCkBAIC05MzI4LDcgKzkzNDgsNyBAQCAtIChkb3VibGUpdGltZVBpY2tlclZhbHVlTWlu
dXRlCiAtIChOU0RpY3Rpb25hcnkgKilfY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtOihOU1N0
cmluZyAqKXVzZXJJbnRlcmZhY2VJdGVtCiB7CiAgICAgaWYgKFt1c2VySW50ZXJmYWNlSXRlbSBp
c0VxdWFsVG9TdHJpbmc6QCJhY3Rpb25TaGVldCJdKQotICAgICAgICByZXR1cm4gQHsgdXNlcklu
dGVyZmFjZUl0ZW06IFtfYWN0aW9uU2hlZXRBc3Npc3RhbnQgY3VycmVudEF2YWlsYWJsZUFjdGlv
blRpdGxlc10gfTsKKyAgICAgICAgcmV0dXJuIEB7IHVzZXJJbnRlcmZhY2VJdGVtOiBbX2FjdGlv
blNoZWV0QXNzaXN0YW50IGN1cnJlbnRseUF2YWlsYWJsZUFjdGlvblRpdGxlc10gfTsKIAogI2lm
IEhBVkUoTElOS19QUkVWSUVXKQogICAgIGlmIChbdXNlckludGVyZmFjZUl0ZW0gaXNFcXVhbFRv
U3RyaW5nOkAiY29udGV4dE1lbnUiXSkgewpAQCAtOTM0OSw2ICs5MzY5LDExIEBAIC0gKE5TRGlj
dGlvbmFyeSAqKV9jb250ZW50c09mVXNlckludGVyZmFjZUl0ZW06KE5TU3RyaW5nICopdXNlcklu
dGVyZmFjZUl0ZW0KICAgICB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19D
T05URVhUX01FTlVTKQorICAgIGlmIChbdXNlckludGVyZmFjZUl0ZW0gaXNFcXVhbFRvU3RyaW5n
OkAibWVkaWFDb250cm9sc0NvbnRleHRNZW51Il0pCisgICAgICAgIHJldHVybiBAeyB1c2VySW50
ZXJmYWNlSXRlbTogW19hY3Rpb25TaGVldEFzc2lzdGFudCBjdXJyZW50bHlBdmFpbGFibGVNZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtc10gfTsKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09O
VFJPTFNfQ09OVEVYVF9NRU5VUykKKwogICAgIGlmIChbdXNlckludGVyZmFjZUl0ZW0gaXNFcXVh
bFRvU3RyaW5nOkAiZmlsZVVwbG9hZFBhbmVsTWVudSJdKSB7CiAgICAgICAgIGlmICghX2ZpbGVV
cGxvYWRQYW5lbCkKICAgICAgICAgICAgIHJldHVybiBAeyB1c2VySW50ZXJmYWNlSXRlbTogQFtd
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGQwMGU5ZDQ5ZmMyNDJiMzIxYzI3OWY0YTAw
NGRmM2FlMjNkOTQzNzAuLmE5NjVlNWNjNGRlYmM4ZGNmMmUzYzc1Y2RlZDEwMjRjYjQ3MzhlODcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0xNDQwLDQgKzE0NDAsMTMgQEAgdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oRWxlbWVudCYgZWxlbWVudCkKIAog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykKKwordm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OnNob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUoRmxvYXRSZWN0
JiYgdGFyZ2V0RnJhbWUsIFZlY3RvcjxNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtPiYmIGl0
ZW1zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06
OklEKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBtX3BhZ2Uuc2hvd01lZGlhQ29udHJv
bHNDb250ZXh0TWVudShXVEZNb3ZlKHRhcmdldEZyYW1lKSwgV1RGTW92ZShpdGVtcyksIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05U
Uk9MU19DT05URVhUX01FTlVTKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAppbmRleCAwYjhjNzk2ZDhiN2UwYTQ3MTlhOWFkODZlMDk2OGYwMmVmYmNiZjU3Li44YzEy
YTVjN2MwMGU5OGI4MTY5OWY4YmQ5NjRjMmFhNGJkOGQ0ZjcxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CkBAIC00MTgsNiArNDE4LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0SW1hZ2VFeHRy
YWN0aW9uKFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1F
RElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCisgICAgdm9pZCBzaG93TWVkaWFDb250cm9sc0Nv
bnRleHRNZW51KFdlYkNvcmU6OkZsb2F0UmVjdCYmLCBWZWN0b3I8V2ViQ29yZTo6TWVkaWFDb250
cm9sc0NvbnRleHRNZW51SXRlbT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+JiYpIGZpbmFsOworI2VuZGlmIC8vIEVO
QUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01FTlVTKQorCiAgICAgbXV0YWJsZSBib29sIG1f
Y2FjaGVkTWFpbkZyYW1lSGFzSG9yaXpvbnRhbFNjcm9sbGJhciB7IGZhbHNlIH07CiAgICAgbXV0
YWJsZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzVmVydGljYWxTY3JvbGxiYXIgeyBmYWxzZSB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4
IDI5MzBmNWMyNmIxODRiZWFkMTkyNzljN2ZlOTkyNjBmMmZmMzc2MmUuLjM1Mjk3Nzg2ZTMxMDUy
MGZlMjM1NDAwM2Y0OTgzMjBjY2FiYTFjNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC03MTYzLDYgKzcxNjMsMTMgQEAgdm9pZCBXZWJQYWdl
OjpyZXF1ZXN0SW1hZ2VFeHRyYWN0aW9uKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQpCiAKICNl
bmRpZiAvLyBFTkFCTEUoSU1BR0VfRVhUUkFDVElPTikKIAorI2lmIEVOQUJMRShNRURJQV9DT05U
Uk9MU19DT05URVhUX01FTlVTKQordm9pZCBXZWJQYWdlOjpzaG93TWVkaWFDb250cm9sc0NvbnRl
eHRNZW51KEZsb2F0UmVjdCYmIHRhcmdldEZyYW1lLCBWZWN0b3I8TWVkaWFDb250cm9sc0NvbnRl
eHRNZW51SXRlbT4mJiBpdGVtcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNZWRpYUNvbnRyb2xz
Q29udGV4dE1lbnVJdGVtOjpJRCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dNZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnUoV1RGTW92ZSh0YXJnZXRGcmFtZSksIFdURk1vdmUoaXRlbXMpKSwgY29tcGxldGlv
bkhhbmRsZXIpOworfQorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05URVhUX01F
TlVTKQorCiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAKIHZvaWQgV2ViUGFnZTo6YW5pbWF0
aW9uRGlkRmluaXNoRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50JikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA3MWI4N2IwYTA5YjNmZTVi
OTMzYTE3NTNjODdiNzA0ZWFhY2EzMmE0Li5iZGQ5ZjkxNTgzYzZlMTM2ZDg2ZjY3ZTczOWE3NTUw
YzlmNjhkNzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CkBAIC03Myw2ICs3Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MTWVudUl0ZW1FbGVtZW50
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRT
aXplSGFzaC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRl
bS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VPdmVybGF5Lmg+CkBAIC0xMzcxLDYg
KzEzNzIsMTAgQEAgcHVibGljOgogICAgIHZvaWQgcmVxdWVzdEltYWdlRXh0cmFjdGlvbihXZWJD
b3JlOjpFbGVtZW50Jik7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19DT05U
RVhUX01FTlVTKQorICAgIHZvaWQgc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShXZWJDb3Jl
OjpGbG9hdFJlY3QmJiwgVmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0
ZW0+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRl
eHRNZW51SXRlbTo6SUQpPiYmKTsKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09O
VEVYVF9NRU5VUykKKwogI2lmIFBMQVRGT1JNKFdJTikKICAgICB1aW50NjRfdCBuYXRpdmVXaW5k
b3dIYW5kbGUoKSB7IHJldHVybiBtX25hdGl2ZVdpbmRvd0hhbmRsZTsgfQogI2VuZGlmCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2FmNmYzMTM0
NGU0MWM3MjY2ZjViZWE5NzQ3YzQ1ZjE1MmJmNTdkZi4uODA5ZjY5NDVmZTRkOWJkZjE4NzI1ZGM0
NjBiMDIyMmMwM2VmOTgwZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTAyLTA5ICBEZXZpbiBSb3Vzc28gIDxk
cm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBBZGQgc3VwcG9ydCBmb3IgdGhlIGxh
bmd1YWdlL3N1YnRpdGxlIHRyYWNrcyBidXR0b24gdXNpbmcgYFVJTWVudWAKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTU5NAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNzQxMjkxMjk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29u
IGFuZCBXZW5zb24gSHNpZWguCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNj
cmlwdENvbnRyb2xsZXJJT1MubW06CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcklP
Uzo6cmVjdEZvck1lbnVBY3Rpb24gY29uc3QpOgorICAgICAgICBJbiBhZGRpdGlvbiB0byBsb29r
aW5nIGF0IHRoZSBhY3RpdmUgYFVJQ2FsbG91dEJhcmAgKGlmIGl0IGV4aXN0cyksIHdhbGsgdGhl
IHZpZXcgaGllcmFyY2h5CisgICAgICAgIGxvb2tpbmcgZm9yIGFueSBgVUlMYWJlbGAgdGhhdCBj
b250YWlucyB0aGUgZ2l2ZW4gdGV4dCBhbmQgdXNlIHRoYXQgYXMgdGhlIHJlY3QgdG8gdGFwLgor
ICAgICAgICBXaGlsZSB0aGlzIGlzbid0IHRoZSBtb3N0IGNvbmZpZGVudC9jb25zaXN0ZW50IGFw
cHJvYWNoLCBVSUtpdCBkb2Vzbid0IGhhdmUgYW55dGhpbmcgbGlrZQorICAgICAgICBgVUlDYWxs
b3V0QmFyYCBmb3IgY29udGV4dG1lbnUgaW50ZXJhY3Rpb25zLCBhbmQgdGhpcyBpcyBvbmx5IHVz
ZWQgaW5zaWRlIFdLVFIgKHdoaWNoIGhhcyBubworICAgICAgICBvdGhlciBVSSBvdXRzaWRlIHRo
YW4gdGhlIHBhZ2UpLCBzbyBpdCdzIGV4cGVjdGVkIHRoYXQgY2FsbGVycyBrbm93IHdoYXQgdGhl
eSdyZSBkb2luZy4KKwogMjAyMS0wMi0wOCAgU3RlcGhhbmllIExld2lzICA8c2xld2lzQGFwcGxl
LmNvbT4KIAogICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA0MDI1OTM+IE1vdGlvbm1hcmsgZmFp
bGVkIHRvIHN0YXJ0IHdlYnNlcnZlcgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9p
b3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCmluZGV4IDVkZDFmZTc1ZTYyMjkxYWNmYTcwM2Uw
MGJlODJiYTRhM2FlOWZlMmEuLjdlOWQxN2FjNzVjNmE3YzVjZGE3YTZkMzBjZDBiYzEzMjA1MjAy
ODMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJv
bGxlcklPUy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRy
b2xsZXJJT1MubW0KQEAgLTEwMzQsMjkgKzEwMzQsMzcgQEAgSlNPYmplY3RSZWYgVUlTY3JpcHRD
b250cm9sbGVySU9TOjpyZWN0Rm9yTWVudUFjdGlvbihKU1N0cmluZ1JlZiBqc0FjdGlvbikgY29u
c3QKIAogV2ViQ29yZTo6RmxvYXRSZWN0IFVJU2NyaXB0Q29udHJvbGxlcklPUzo6cmVjdEZvck1l
bnVBY3Rpb24oQ0ZTdHJpbmdSZWYgYWN0aW9uKSBjb25zdAogewotICAgIFVJV2luZG93ICp3aW5k
b3dGb3JCdXR0b24gPSBuaWw7Ci0gICAgVUlCdXR0b24gKmJ1dHRvbkZvckFjdGlvbiA9IG5pbDsK
LSAgICBVSVZpZXcgKmNhbGxvdXRCYXIgPSBVSUNhbGxvdXRCYXIuYWN0aXZlQ2FsbG91dEJhcjsK
LSAgICBpZiAoIWNhbGxvdXRCYXIud2luZG93KQotICAgICAgICByZXR1cm4geyB9OworICAgIFVJ
VmlldyAqdmlld0ZvckFjdGlvbiA9IG5pbDsKKyAgICBVSVdpbmRvdyAqd2luZG93ID0gd2ViVmll
dygpLndpbmRvdzsKIAotICAgIGZvciAoVUlCdXR0b24gKmJ1dHRvbiBpbiBmaW5kQWxsVmlld3NJ
bkhpZXJhcmNoeU9mVHlwZShjYWxsb3V0QmFyLCBVSUJ1dHRvbi5jbGFzcykpIHsKLSAgICAgICAg
TlNTdHJpbmcgKmJ1dHRvblRpdGxlID0gW2J1dHRvbiB0aXRsZUZvclN0YXRlOlVJQ29udHJvbFN0
YXRlTm9ybWFsXTsKLSAgICAgICAgaWYgKCFidXR0b25UaXRsZS5sZW5ndGgpCi0gICAgICAgICAg
ICBjb250aW51ZTsKKyAgICBpZiAoVUlWaWV3ICpjYWxsb3V0QmFyID0gVUlDYWxsb3V0QmFyLmFj
dGl2ZUNhbGxvdXRCYXI7IGNhbGxvdXRCYXIud2luZG93KSB7CisgICAgICAgIGZvciAoVUlCdXR0
b24gKmJ1dHRvbiBpbiBmaW5kQWxsVmlld3NJbkhpZXJhcmNoeU9mVHlwZShjYWxsb3V0QmFyLCBV
SUJ1dHRvbi5jbGFzcykpIHsKKyAgICAgICAgICAgIE5TU3RyaW5nICpidXR0b25UaXRsZSA9IFti
dXR0b24gdGl0bGVGb3JTdGF0ZTpVSUNvbnRyb2xTdGF0ZU5vcm1hbF07CisgICAgICAgICAgICBp
ZiAoIWJ1dHRvblRpdGxlLmxlbmd0aCkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAg
ICAgICBpZiAoIVtidXR0b25UaXRsZSBpc0VxdWFsVG9TdHJpbmc6KF9fYnJpZGdlIE5TU3RyaW5n
ICopYWN0aW9uXSkKLSAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKCFbYnV0
dG9uVGl0bGUgaXNFcXVhbFRvU3RyaW5nOihfX2JyaWRnZSBOU1N0cmluZyAqKWFjdGlvbl0pCisg
ICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgYnV0dG9uRm9yQWN0aW9uID0gYnV0
dG9uOwotICAgICAgICB3aW5kb3dGb3JCdXR0b24gPSBjYWxsb3V0QmFyLndpbmRvdzsKLSAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICB2aWV3Rm9yQWN0aW9uID0gYnV0dG9uOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIWJ1dHRvbkZvckFjdGlvbikK
KyAgICBpZiAoIXZpZXdGb3JBY3Rpb24pIHsKKyAgICAgICAgZm9yIChVSUxhYmVsICpsYWJlbCBp
biBmaW5kQWxsVmlld3NJbkhpZXJhcmNoeU9mVHlwZSh3aW5kb3csIFVJTGFiZWwuY2xhc3MpKSB7
CisgICAgICAgICAgICBpZiAoIVtsYWJlbC50ZXh0IGlzRXF1YWxUb1N0cmluZzooX19icmlkZ2Ug
TlNTdHJpbmcgKilhY3Rpb25dKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAg
ICAgICB2aWV3Rm9yQWN0aW9uID0gbGFiZWw7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgIH0KKworICAgIGlmICghdmlld0ZvckFjdGlvbikKICAgICAgICAgcmV0dXJuIHsgfTsK
IAotICAgIENHUmVjdCByZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzID0gW2J1dHRvbkZvckFjdGlv
biBjb252ZXJ0UmVjdDpidXR0b25Gb3JBY3Rpb24uYm91bmRzIHRvVmlldzpwbGF0Zm9ybUNvbnRl
bnRWaWV3KCldOworICAgIENHUmVjdCByZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzID0gW3ZpZXdG
b3JBY3Rpb24gY29udmVydFJlY3Q6dmlld0ZvckFjdGlvbi5ib3VuZHMgdG9WaWV3OnBsYXRmb3Jt
Q29udGVudFZpZXcoKV07CiAgICAgcmV0dXJuIFdlYkNvcmU6OkZsb2F0UmVjdChyZWN0SW5Sb290
Vmlld0Nvb3JkaW5hdGVzLm9yaWdpbi54LCByZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzLm9yaWdp
bi55LCByZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzLnNpemUud2lkdGgsIHJlY3RJblJvb3RWaWV3
Q29vcmRpbmF0ZXMuc2l6ZS5oZWlnaHQpOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODk1MWNmZTAyMjExZWMxOGVi
NDZjYTE1M2M2MjBhYWZkYWI0OGNlNi4uZmJhMGVmMThiZGNlZDczZjNjMGM5NWZhYWFlZTM3NjQx
MjA0MjA1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIxLTAyLTA5ICBEZXZpbiBSb3Vzc28g
IDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBBZGQgc3VwcG9ydCBmb3IgdGhl
IGxhbmd1YWdlL3N1YnRpdGxlIHRyYWNrcyBidXR0b24gdXNpbmcgYFVJTWVudWAKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTU5NAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNzQxMjkxMjk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJs
c29uIGFuZCBXZW5zb24gSHNpZWguCisKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzOgorICAgICAgICAoZ2V0VHJh
Y2tzQ29udGV4dE1lbnUpOiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJhY2staW4tY29udGV4dG1lbnUuaHRtbDog
QWRkZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L2lvcy90cmFja3Mtc3VwcG9ydC1jbGljay10cmFjay1pbi1jb250ZXh0bWVudS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9z
L3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10cmFja3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNr
cy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNrLmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtb2Zm
LXRleHQtdHJhY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXNob3ctY29u
dGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9z
L3RyYWNrcy1zdXBwb3J0LXNob3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJh
Y2tzLWJ1dHRvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFj
ay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtdGV4
dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgIER1cGxpY2F0ZSBleGlzdGluZyBgVHJhY2tzU3VwcG9ydGAgdGVzdHMgdG8gdGVzdCBmb3Ig
c2ltaWxhciByZXN1bHRzIGJ1dCB1c2luZyB0aGUgbmV3IGlPUyBwYXRoLgorCisgICAgICAgICog
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3Vw
cG9ydC1hdXRvLXRleHQtdHJhY2suaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1hdXRv
LXRleHQtdHJhY2suaHRtbC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay1leHBlY3Rl
ZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtYXV0by10ZXh0LXRyYWNrLWV4cGVjdGVk
LnR4dC4KKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBv
cnQvbWFjL3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNrLWluLXBhbmVsLmh0bWw6IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBv
cnQvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJhY2staW4tcGFuZWwuaHRtbC4KKyAgICAgICAgKiBt
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBw
b3J0LWNsaWNrLXRyYWNrLWluLXBhbmVsLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mt
c3VwcG9ydC1jbGljay10cmFjay1pbi1wYW5lbC1leHBlY3RlZC50eHQuCisgICAgICAgICogbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9y
dC1oaWRkZW4tdHJhY2tzLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRy
YWNrcy5odG1sLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy1leHBlY3RlZC50eHQ6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy1leHBlY3RlZC50eHQuCisgICAg
ICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFj
a3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0
LW9mZi10ZXh0LXRyYWNrLmh0bWwuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay1leHBl
Y3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2stZXhwZWN0
ZWQudHh0LgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQtcG9wdWxhdGUtcGFuZWwuaHRtbDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LWFuZC1wb3B1bGF0ZS1wYW5lbC5odG1sLgorICAg
ICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJh
Y2tzLXN1cHBvcnQtc2hvdy1hbmQtcG9wdWxhdGUtcGFuZWwtZXhwZWN0ZWQudHh0OiBSZW5hbWVk
IGZyb20gTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLWV4cGVjdGVkLnR4dC4K
KyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFj
L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJvbHMuaHRtbDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNvbnRy
b2xzLmh0bWwuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1z
dXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNvbnRy
b2xzLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFm
dGVyLWRyYWdnaW5nLWNvbnRyb2xzLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBtZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ct
cGFuZWwtZnVsbHNjcmVlbi5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFu
ZWwtZnVsbHNjcmVlbi5odG1sLgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1mdWxsc2NyZWVu
LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxz
Y3JlZW4tZXhwZWN0ZWQudHh0LgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC10aGVuLWRvdWJs
ZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQt
c2hvdy1wYW5lbC10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9uLmh0bWwuCisgICAg
ICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFj
a3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24t
ZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtdGhlbi1k
b3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi1leHBlY3RlZC50eHQuCisgICAgICAgICogbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9y
dC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRtbDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFj
a3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRtbC4KKyAgICAg
ICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNr
cy1zdXBwb3J0LXRleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS1leHBlY3RlZC50eHQ6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJh
Y2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEt
YXBpLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgTW92ZWQgZXhpc3RpbmcgYFRyYWNrc1N1cHBvcnRgIHRlc3RzIHRvIGEgYG1h
Y2Agc3ViZm9sZGVyIHNvIHRoZXkgY2FuIGJlIHNraXBwZWQgb24gaU9TLgorCiAyMDIxLTAyLTA4
ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JF
U1NJT04gKHIyNjk0NTgpOiB5YWhvby5jb20gc29jaWFsIC8gY29tbWVudHMgYmFyIHNob3dzIGFz
IHRyYW5zcGFyZW50IHdoZW4gc2Nyb2xsaW5nIHBhZ2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRp
bHMuanMgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcmVzb3VyY2Vz
L21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzCmluZGV4IDNlNzJhODUzZGY5YTcwYjkwODcwZDM3ODI4
YjY3YzhiMGNjNTU5MzcuLjJkYzhmNGI1MjFhYTcyYjU0NzViMGMzNjIwZTk2NWIyNjc3ZjU0ODcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9yZXNv
dXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcwpAQCAt
MTAzLDYgKzEwMywyMiBAQCBmdW5jdGlvbiBzaG93VHJhY2tzUGFuZWwoc2hhZG93Um9vdCwgY29u
dGludWF0aW9uKQogICAgIH0pOwogfQogCitmdW5jdGlvbiBnZXRUcmFja3NDb250ZXh0TWVudSgp
Cit7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgICAgIHRlc3RS
dW5uZXIucnVuVUlTY3JpcHQoYAorICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBm
dW5jdGlvbiBzY3JpcHRDb21wbGV0ZVdpdGhDb250ZXh0TWVudSgpIHsKKyAgICAgICAgICAgICAg
ICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZShKU09OLnN0cmluZ2lmeSh1aUNvbnRyb2xs
ZXIuY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtKCdtZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUn
KSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCF1aUNvbnRyb2xsZXIuaXNTaG93
aW5nQ29udGV4dE1lbnUpCisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLmRpZFNob3dDb250
ZXh0TWVudUNhbGxiYWNrID0gc2NyaXB0Q29tcGxldGVXaXRoQ29udGV4dE1lbnU7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgc2NyaXB0Q29tcGxldGVXaXRoQ29udGV4dE1lbnUo
KTsKKyAgICAgICAgfSkoKTtgLCAocmVzdWx0KSA9PiByZXNvbHZlKEpTT04ucGFyc2UocmVzdWx0
KS5tZWRpYUNvbnRyb2xzQ29udGV4dE1lbnUpKTsKKyAgICB9KTsKK30KKwogZnVuY3Rpb24gZmlu
aXNoTWVkaWFDb250cm9sc1Rlc3QoKQogewogICAgIGlmIChzY2hlZHVsZXIpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
aW9zL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNr
cy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQ0NGI2
OTU0NzVhYTQ0MjE3ODI1OWViODk3YWY0N2M2MjBhY2RhNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3Mv
dHJhY2tzLXN1cHBvcnQtYXV0by10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU5
IEBACitFbnN1cmUgd2UgaGF2ZSB0aGUgQXV0byB0ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5IGRlZmF1
bHQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQ
QVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitTZXR0aW5nIGNhcHRp
b24gZGlzcGxheSBtb2RlIHRvICdhdXRvbWF0aWMnLi4uCitUYXBwaW5nIHRyYWNrcyBidXR0b24u
Li4KK1sKKyAgeworICAgICJjaGlsZHJlbiI6IFsKKyAgICAgIHsKKyAgICAgICAgInRpdGxlIjog
Ikxhbmd1YWdlcyIsCisgICAgICAgICJjaGlsZHJlbiI6IFsKKyAgICAgICAgICB7CisgICAgICAg
ICAgICAidGl0bGUiOiAiRW5nbGlzaCBTb3VuZCIsCisgICAgICAgICAgICAiY2hlY2tlZCI6IHRy
dWUKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICJ0aXRsZSI6ICJGcmVu
Y2ggU291bmQiCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAidGl0bGUi
OiAiU3BhbmlzaCBTb3VuZCIKKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0sCisgICAg
ICB7CisgICAgICAgICJ0aXRsZSI6ICJTdWJ0aXRsZXMiLAorICAgICAgICAiY2hpbGRyZW4iOiBb
CisgICAgICAgICAgeworICAgICAgICAgICAgInRpdGxlIjogIk9mZiIKKyAgICAgICAgICB9LAor
ICAgICAgICAgIHsKKyAgICAgICAgICAgICJ0aXRsZSI6ICJBdXRvIChSZWNvbW1lbmRlZCkiLAor
ICAgICAgICAgICAgImNoZWNrZWQiOiB0cnVlCisgICAgICAgICAgfSwKKyAgICAgICAgICB7Cisg
ICAgICAgICAgICAidGl0bGUiOiAiRW5nbGlzaCBTdWJ0aXRsZXMiCisgICAgICAgICAgfSwKKyAg
ICAgICAgICB7CisgICAgICAgICAgICAidGl0bGUiOiAiRnJlbmNoIFN1YnRpdGxlcyIKKyAgICAg
ICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICJ0aXRsZSI6ICJHZXJtYW4gU3VidGl0
bGVzIgorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgInRpdGxlIjogIlNw
YW5pc2ggU3VidGl0bGVzIgorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfQorICAgIF0K
KyAgfQorXQorU2V0dGluZyBjYXB0aW9uIGRpc3BsYXkgbW9kZSB0byAnZm9yY2Vkb25seScuLi4K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay5odG1sIGIvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mt
c3VwcG9ydC1hdXRvLXRleHQtdHJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNWJlYmMxODVmNDE5MTJj
MjJiNWE3YTQ5OGU1MDc5MDMxNTYwNTZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3Vw
cG9ydC1hdXRvLXRleHQtdHJhY2suaHRtbApAQCAtMCwwICsxLDQyIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzx2aWRlbyBzcmM9Ii4uLy4uLy4uL2NvbnRlbnQv
Q0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9w
OiAwOyB3aWR0aDogMzAwcHg7IiBhdXRvcGxheSBjb250cm9scyBtdXRlZCBwbGF5c2lubGluZT48
L3ZpZGVvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit3aW5kb3cuanNUZXN0
SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCJFbnN1cmUgd2UgaGF2ZSB0aGUgQXV0byB0
ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5IGRlZmF1bHQuIik7CisKK2NvbnN0IG1lZGlhID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50
ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOworCittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5
IiwgKCkgPT4geworICAgIG1lZGlhLnBhdXNlKCk7CisKKyAgICBzaG91bGRCZWNvbWVEaWZmZXJl
bnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAo
KSA9PiB7CisgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNl
bGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAi
MCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGRlYnVnKCJTZXR0aW5nIGNhcHRpb24gZGlz
cGxheSBtb2RlIHRvICdhdXRvbWF0aWMnLi4uIik7CisgICAgICAgICAgICB3aW5kb3cuaW50ZXJu
YWxzLnNldENhcHRpb25EaXNwbGF5TW9kZSgiYXV0b21hdGljIik7CisKKyAgICAgICAgICAgIGRl
YnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4iKTsKKyAgICAgICAgICAgIGxldCBbY29udGV4
dG1lbnVdID0gYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGdldFRyYWNrc0Nv
bnRleHRNZW51KCksCisgICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpLAorICAgICAgICAgICAgXSk7CisgICAgICAg
ICAgICBkZWJ1ZyhKU09OLnN0cmluZ2lmeShjb250ZXh0bWVudSwgbnVsbCwgMikpOworCisgICAg
ICAgICAgICBkZWJ1ZygiU2V0dGluZyBjYXB0aW9uIGRpc3BsYXkgbW9kZSB0byAnZm9yY2Vkb25s
eScuLi4iKTsKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0Q2FwdGlvbkRpc3BsYXlN
b2RlKCJmb3JjZWRvbmx5Iik7CisKKyAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgpOworICAgICAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0pOworfSk7CisKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1jbGljay10
cmFjay1pbi1jb250ZXh0bWVudS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWNsaWNr
LXRyYWNrLWluLWNvbnRleHRtZW51LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YmNmMDUyOTZm
MGU2YjIzZGNmNTJjNTYyOGRjMWVlMDM2NGM2MjE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFj
a3Mtc3VwcG9ydC1jbGljay10cmFjay1pbi1jb250ZXh0bWVudS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyNiBAQAorQ2xpY2tpbmcgb24gYSB0cmFjayBpbiB0aGUgdHJhY2tzIGNvbnRleHRtZW51
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworbWVkaWEuYXVkaW9UcmFja3NbMF0u
ZW5hYmxlZCA9IHRydWUKK21lZGlhLmF1ZGlvVHJhY2tzWzFdLmVuYWJsZWQgPSBmYWxzZQorbWVk
aWEuYXVkaW9UcmFja3NbMl0uZW5hYmxlZCA9IGZhbHNlCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNT
IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitUYXBwaW5nIHRyYWNrcyBi
dXR0b24uLi4KK1NlbGVjdGluZyBzZWNvbmQgYXVkaW8gdHJhY2suLi4KK0F1ZGlvIHRyYWNrcyBj
aGFuZ2VkLgorbWVkaWEuYXVkaW9UcmFja3NbMF0uZW5hYmxlZCA9IGZhbHNlCittZWRpYS5hdWRp
b1RyYWNrc1sxXS5lbmFibGVkID0gdHJ1ZQorbWVkaWEuYXVkaW9UcmFja3NbMl0uZW5hYmxlZCA9
IGZhbHNlCitUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KK1NlbGVjdGluZyB0aGlyZCBhdWRpbyB0
cmFjay4uLgorQXVkaW8gdHJhY2tzIGNoYW5nZWQuCittZWRpYS5hdWRpb1RyYWNrc1swXS5lbmFi
bGVkID0gZmFsc2UKK21lZGlhLmF1ZGlvVHJhY2tzWzFdLmVuYWJsZWQgPSBmYWxzZQorbWVkaWEu
YXVkaW9UcmFja3NbMl0uZW5hYmxlZCA9IHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWNs
aWNrLXRyYWNrLWluLWNvbnRleHRtZW51Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRy
YWNrLWluLWNvbnRleHRtZW51Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2EwOTUzZjRkYzU0MjQxN2E4Y2Q3
Y2VhMzJmNDFmNDY2ODhiMzg4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQt
Y2xpY2stdHJhY2staW4tY29udGV4dG1lbnUuaHRtbApAQCAtMCwwICsxLDg1IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRp
bHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1o
ZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzx2aWRlbyBzcmM9Ii4uLy4uLy4uL2Nv
bnRlbnQvYXVkaW8tdHJhY2tzLm1wNCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDog
MDsgdG9wOiAwOyB3aWR0aDogMzAwcHg7IiBjb250cm9scyBhdXRvcGxheSBtdXRlZCBwbGF5c2lu
bGluZT48L3ZpZGVvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCJDbGlja2luZyBvbiBhIHRyYWNr
IGluIHRoZSB0cmFja3MgY29udGV4dG1lbnUuIik7CisKK2NvbnN0IG1lZGlhID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcigidmlkZW8iKTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJu
YWxzLnNoYWRvd1Jvb3QobWVkaWEpOworCitsZXQgcHJldmlvdXNseVNlbGVjdGVkVHJhY2sgPSAw
OworCittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4geworICAgIG1lZGlhLnBh
dXNlKCk7CisKKyAgICBkdW1wQXVkaW9UcmFja3NFbmFibGVkU3RhdGUoKTsKKworICAgIG1lZGlh
LmF1ZGlvVHJhY2tzLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIGhhbmRsZUF1ZGlvVHJhY2tz
Q2hhbmdlKTsKKworICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNl
bGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAibnVsbCIsICgpID0+IHsKKyAgICAgICAgc2hvdWxk
QmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3Mn
KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCIsICIwIiwgKCkgPT4geworICAgICAgICAg
ICAgY2xpY2tPblRyYWNrc0J1dHRvbihjbGlja09uU2Vjb25kQXVkaW9UcmFjayk7CisgICAgICAg
IH0pOworICAgIH0pOworfSk7CisKK2Z1bmN0aW9uIGNsaWNrT25UcmFja3NCdXR0b24oY29udGlu
dWF0aW9uKQoreworICAgIGRlYnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4iKTsKKyAgICBw
cmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSwg
KCkgPT4geworICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNvbnRpbnVhdGlv
bik7CisgICAgfSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGNsaWNrT25TZWNvbmRBdWRpb1RyYWNr
KCkKK3sKKyAgICBkZWJ1ZygiU2VsZWN0aW5nIHNlY29uZCBhdWRpbyB0cmFjay4uLiIpOworICAg
IGxldCBjb250ZXh0bWVudSA9IGF3YWl0IGdldFRyYWNrc0NvbnRleHRNZW51KCk7CisgICAgYXdh
aXQgVUlIZWxwZXIuY2hvb3NlTWVudUFjdGlvbihjb250ZXh0bWVudVswXS5jaGlsZHJlblsxXS50
aXRsZSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGNsaWNrT25UaGlyZEF1ZGlvVHJhY2soKQorewor
ICAgIGRlYnVnKCJTZWxlY3RpbmcgdGhpcmQgYXVkaW8gdHJhY2suLi4iKTsKKyAgICBsZXQgY29u
dGV4dG1lbnUgPSBhd2FpdCBnZXRUcmFja3NDb250ZXh0TWVudSgpOworICAgIGF3YWl0IFVJSGVs
cGVyLmNob29zZU1lbnVBY3Rpb24oY29udGV4dG1lbnVbMF0uY2hpbGRyZW5bMl0udGl0bGUpOwor
fQorCithc3luYyBmdW5jdGlvbiBoYW5kbGVBdWRpb1RyYWNrc0NoYW5nZSgpCit7CisgICAgY29u
c3QgbmV3U2VsZWN0ZWRUcmFjayA9IEFycmF5LmZyb20obWVkaWEuYXVkaW9UcmFja3MpLmZpbmRJ
bmRleCh0cmFjayA9PiB0cmFjay5lbmFibGVkKTsKKyAgICBpZiAocHJldmlvdXNseVNlbGVjdGVk
VHJhY2sgPT09IG5ld1NlbGVjdGVkVHJhY2spCisgICAgICAgIHJldHVybjsKKworICAgIHByZXZp
b3VzbHlTZWxlY3RlZFRyYWNrID0gbmV3U2VsZWN0ZWRUcmFjazsKKworICAgIGRlYnVnKCJBdWRp
byB0cmFja3MgY2hhbmdlZC4iKTsKKworICAgIGR1bXBBdWRpb1RyYWNrc0VuYWJsZWRTdGF0ZSgp
OworCisgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvckNvbnRleHRNZW51VG9IaWRlKCk7CisKKyAg
ICBpZiAobWVkaWEuYXVkaW9UcmFja3NbMV0uZW5hYmxlZCkKKyAgICAgICAgY2xpY2tPblRyYWNr
c0J1dHRvbihjbGlja09uVGhpcmRBdWRpb1RyYWNrKTsKKyAgICBlbHNlIGlmIChtZWRpYS5hdWRp
b1RyYWNrc1syXS5lbmFibGVkKSB7CisgICAgICAgIG1lZGlhLnJlbW92ZSgpOworICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGR1bXBBdWRpb1RyYWNrc0VuYWJs
ZWRTdGF0ZSgpCit7CisgICAgQXJyYXkuZnJvbShtZWRpYS5hdWRpb1RyYWNrcykuZm9yRWFjaCgo
YXVkaW9UcmFjaywgaW5kZXgpID0+IHsKKyAgICAgICAgZGVidWcoYG1lZGlhLmF1ZGlvVHJhY2tz
WyR7aW5kZXh9XS5lbmFibGVkID0gJHttZWRpYS5hdWRpb1RyYWNrc1tpbmRleF0uZW5hYmxlZH1g
KTsKKyAgICB9KTsKK30KKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9z
L3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10cmFja3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3Vw
cG9ydC1oaWRkZW4tdHJhY2tzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Yjg2NTZmODg5ODZi
NWNmMGNkZjQxMTZiZjdjMmNmMmQ0ZmY5Nzc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mt
c3VwcG9ydC1oaWRkZW4tdHJhY2tzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU4IEBACitUaGlz
IHRlc3QgY2hlY2tzIHRoYXQgdGhlIHRyYWNrcyBjb250ZXh0bWVudSBkb2Vzbid0IHNob3cgYW55
IHRyYWNrIGFzIHNlbGVjdGVkIGlmIGFsbCB0aGUgdGV4dCB0cmFja3MgZm9yIGEgbWVkaWEgZWxl
bWVudCBhcmUgbWFya2VkIGFzICJoaWRkZW4iLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNh
bWUgZGlmZmVyZW50IGZyb20gbnVsbAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1
dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVy
ZW50IGZyb20gMAorU2V0dGluZyBtb2RlIHRvICdoaWRkZW4nIGZvciBhbGwgdGV4dCB0cmFja3Mg
dmlhIEphdmFTY3JpcHQuLi4KK1RhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgorWworICB7CisgICAg
ImNoaWxkcmVuIjogWworICAgICAgeworICAgICAgICAidGl0bGUiOiAiTGFuZ3VhZ2VzIiwKKyAg
ICAgICAgImNoaWxkcmVuIjogWworICAgICAgICAgIHsKKyAgICAgICAgICAgICJ0aXRsZSI6ICJF
bmdsaXNoIFNvdW5kIiwKKyAgICAgICAgICAgICJjaGVja2VkIjogdHJ1ZQorICAgICAgICAgIH0s
CisgICAgICAgICAgeworICAgICAgICAgICAgInRpdGxlIjogIkZyZW5jaCBTb3VuZCIKKyAgICAg
ICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICJ0aXRsZSI6ICJTcGFuaXNoIFNvdW5k
IgorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgInRp
dGxlIjogIlN1YnRpdGxlcyIsCisgICAgICAgICJjaGlsZHJlbiI6IFsKKyAgICAgICAgICB7Cisg
ICAgICAgICAgICAidGl0bGUiOiAiT2ZmIiwKKyAgICAgICAgICAgICJjaGVja2VkIjogdHJ1ZQor
ICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgInRpdGxlIjogIkF1dG8gKFJl
Y29tbWVuZGVkKSIKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICJ0aXRs
ZSI6ICJFbmdsaXNoIFN1YnRpdGxlcyIKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAg
ICAgICAgICJ0aXRsZSI6ICJGcmVuY2ggU3VidGl0bGVzIgorICAgICAgICAgIH0sCisgICAgICAg
ICAgeworICAgICAgICAgICAgInRpdGxlIjogIkdlcm1hbiBTdWJ0aXRsZXMiCisgICAgICAgICAg
fSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAidGl0bGUiOiAiU3BhbmlzaCBTdWJ0aXRsZXMi
CisgICAgICAgICAgfQorICAgICAgICBdCisgICAgICB9CisgICAgXQorICB9CitdCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lv
cy90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LWhp
ZGRlbi10cmFja3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZGU0ZjhkNjgzNmRjZmJlYmIyMmEyZDE1ODI5
ZmMyNWIyNWJhY2U4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC1oaWRkZW4t
dHJhY2tzLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPGJvZHk+Cis8dmlkZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5t
b3YiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDMw
MHB4OyIgY29udHJvbHMgYXV0b3BsYXkgbXV0ZWQgcGxheXNpbmxpbmU+PC92aWRlbz4KKzxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVl
OworCitkZXNjcmlwdGlvbihgVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSB0cmFja3MgY29udGV4
dG1lbnUgZG9lc24ndCBzaG93IGFueSB0cmFjayBhcyBzZWxlY3RlZCBpZiBhbGwgdGhlIHRleHQg
dHJhY2tzIGZvciBhIG1lZGlhIGVsZW1lbnQgYXJlIG1hcmtlZCBhcyAiaGlkZGVuIi5gKTsKKwor
Y29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOworY29uc3Qgc2hh
ZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7CisKK21lZGlhLmFk
ZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7CisgICAgbWVkaWEucGF1c2UoKTsKKworICAg
IHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24u
dHJhY2tzJykiLCAibnVsbCIsICgpID0+IHsKKyAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50
KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKS53aWR0aCIsICIwIiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgZGVidWco
IlNldHRpbmcgbW9kZSB0byAnaGlkZGVuJyBmb3IgYWxsIHRleHQgdHJhY2tzIHZpYSBKYXZhU2Ny
aXB0Li4uIik7CisgICAgICAgICAgICBBcnJheS5mcm9tKG1lZGlhLnRleHRUcmFja3MpLmZvckVh
Y2godHJhY2sgPT4gdHJhY2subW9kZSA9ICJoaWRkZW4iKTsKKworICAgICAgICAgICAgZGVidWco
IlRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLiIpOworICAgICAgICAgICAgbGV0IFtjb250ZXh0bWVu
dV0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgZ2V0VHJhY2tzQ29udGV4
dE1lbnUoKSwKKyAgICAgICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5
U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSksCisgICAgICAgICAgICBdKTsKKyAgICAgICAgICAg
IGRlYnVnKEpTT04uc3RyaW5naWZ5KGNvbnRleHRtZW51LCBudWxsLCAyKSk7CisKKyAgICAgICAg
ICAgIG1lZGlhLnJlbW92ZSgpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAg
IH0pOworICAgIH0pOworfSk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L2lvcy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNr
cy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYWNlY2Qz
MTBlZTI2MmY3NTdmMDAyMTU1YTg4ZDE5NWVmNmQ5Mzc5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90
cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1NyBA
QAorRW5zdXJlIHdlIGhhdmUgdGhlIE9mZiB0ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5IGRlZmF1bHQu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNT
IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitUYXBwaW5nIHRyYWNrcyBi
dXR0b24uLi4KK1sKKyAgeworICAgICJjaGlsZHJlbiI6IFsKKyAgICAgIHsKKyAgICAgICAgInRp
dGxlIjogIkxhbmd1YWdlcyIsCisgICAgICAgICJjaGlsZHJlbiI6IFsKKyAgICAgICAgICB7Cisg
ICAgICAgICAgICAidGl0bGUiOiAiRW5nbGlzaCBTb3VuZCIsCisgICAgICAgICAgICAiY2hlY2tl
ZCI6IHRydWUKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICJ0aXRsZSI6
ICJGcmVuY2ggU291bmQiCisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAi
dGl0bGUiOiAiU3BhbmlzaCBTb3VuZCIKKyAgICAgICAgICB9CisgICAgICAgIF0KKyAgICAgIH0s
CisgICAgICB7CisgICAgICAgICJ0aXRsZSI6ICJTdWJ0aXRsZXMiLAorICAgICAgICAiY2hpbGRy
ZW4iOiBbCisgICAgICAgICAgeworICAgICAgICAgICAgInRpdGxlIjogIk9mZiIsCisgICAgICAg
ICAgICAiY2hlY2tlZCI6IHRydWUKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAg
ICAgICJ0aXRsZSI6ICJBdXRvIChSZWNvbW1lbmRlZCkiCisgICAgICAgICAgfSwKKyAgICAgICAg
ICB7CisgICAgICAgICAgICAidGl0bGUiOiAiRW5nbGlzaCBTdWJ0aXRsZXMiCisgICAgICAgICAg
fSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAidGl0bGUiOiAiRnJlbmNoIFN1YnRpdGxlcyIK
KyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICJ0aXRsZSI6ICJHZXJtYW4g
U3VidGl0bGVzIgorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgInRpdGxl
IjogIlNwYW5pc2ggU3VidGl0bGVzIgorICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgfQor
ICAgIF0KKyAgfQorXQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2suaHRt
bCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC9pb3MvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZWIz
MTM0ODRlYTQ4MjM4ZjIzNmM3MGU4OTczMDc5ZDZlM2IzZWFkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lv
cy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwh
RE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9s
cy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxib2R5PgorPHZpZGVvIHNyYz0iLi4vLi4v
Li4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBs
ZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiAzMDBweDsiIGNvbnRyb2xzIGF1dG9wbGF5IG11dGVkIHBs
YXlzaW5saW5lPjwvdmlkZW8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK3dp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZGVzY3JpcHRpb24oIkVuc3VyZSB3ZSBoYXZl
IHRoZSBPZmYgdGV4dCB0cmFjayBzZWxlY3RlZCBieSBkZWZhdWx0LiIpOworCitjb25zdCBtZWRp
YSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7Citjb25zdCBzaGFkb3dSb290ID0g
d2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1lZGlhKTsKKworbWVkaWEuYWRkRXZlbnRMaXN0
ZW5lcigicGxheSIsICgpID0+IHsKKyAgICBtZWRpYS5wYXVzZSgpOworCisgICAgc2hvdWxkQmVj
b21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIs
ICJudWxsIiwgKCkgPT4geworICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
LndpZHRoIiwgIjAiLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBkZWJ1ZygiVGFwcGluZyB0
cmFja3MgYnV0dG9uLi4uIik7CisgICAgICAgICAgICBsZXQgW2NvbnRleHRtZW51XSA9IGF3YWl0
IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBnZXRUcmFja3NDb250ZXh0TWVudSgpLAor
ICAgICAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcigi
YnV0dG9uLnRyYWNrcyIpKSwKKyAgICAgICAgICAgIF0pOworICAgICAgICAgICAgZGVidWcoSlNP
Ti5zdHJpbmdpZnkoY29udGV4dG1lbnUsIG51bGwsIDIpKTsKKworICAgICAgICAgICAgbWVkaWEu
cmVtb3ZlKCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSk7CisgICAg
fSk7Cit9KTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNr
cy1zdXBwb3J0LXNob3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1
dHRvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXNob3ctY29udGV4dG1lbnUtdGhl
bi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OGFmYTc1MDY4ZWMyM2RhZTA1NTBmNDhmNWUwZmQ0OGNjZDI3NGJlZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC9pb3MvdHJhY2tzLXN1cHBvcnQtc2hvdy1jb250ZXh0bWVudS10aGVuLWRvdWJsZS1jbGljay1v
bi10cmFja3MtYnV0dG9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitFbnN1cmUgdGhh
dCBjbGlja2luZyB0aGUgdHJhY2tzIGJ1dHRvbiB3aGVuIHRoZSB0cmFja3MgY29udGV4dG1lbnUg
aXMgc2hvd24gbWFrZXMgdGhlIGNvbnRleHRtZW51IGhpZGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNr
cycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxl
Y3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2Ft
ZSBkaWZmZXJlbnQgZnJvbSAwCitUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4KK0NvbnRleHQgbWVu
dSBzaG93bi4KK1RhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgorQ29udGV4dCBtZW51IGhpZGRlbi4K
K1RhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgorQ29udGV4dCBtZW51IHNob3duLgorVGFwcGluZyB0
cmFja3MgYnV0dG9uLi4uCitDb250ZXh0IG1lbnUgaGlkZGVuLgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1
cHBvcnQtc2hvdy1jb250ZXh0bWVudS10aGVuLWRvdWJsZS1jbGljay1vbi10cmFja3MtYnV0dG9u
Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0LXNob3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xp
Y2stb24tdHJhY2tzLWJ1dHRvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkZWYyYzA3MzQxMDAyOTI5Y2Jl
MWQ2Y2VjNWY2ODBiYjIwYTNlZDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvaW9zL3RyYWNrcy1zdXBwb3J0
LXNob3ctY29udGV4dG1lbnUtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi5odG1s
CkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxib2R5
PgorPHZpZGVvIHNyYz0iLi4vLi4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0i
cG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiAzMDBweDsiIGNvbnRy
b2xzIGF1dG9wbGF5IG11dGVkIHBsYXlzaW5saW5lPjwvdmlkZW8+Cis8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZGVzY3Jp
cHRpb24oIkVuc3VyZSB0aGF0IGNsaWNraW5nIHRoZSB0cmFja3MgYnV0dG9uIHdoZW4gdGhlIHRy
YWNrcyBjb250ZXh0bWVudSBpcyBzaG93biBtYWtlcyB0aGUgY29udGV4dG1lbnUgaGlkZS4iKTsK
KworY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOworY29uc3Qg
c2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7CisKK21lZGlh
LmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7CisgICAgbWVkaWEucGF1c2UoKTsKKwor
ICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0
b24udHJhY2tzJykiLCAibnVsbCIsICgpID0+IHsKKyAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVy
ZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKS53aWR0aCIsICIwIiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgZGVi
dWcoIlRhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLiIpOworICAgICAgICAgICAgYXdhaXQgUHJvbWlz
ZS5hbGwoWworICAgICAgICAgICAgICAgIFVJSGVscGVyLndhaXRGb3JDb250ZXh0TWVudVRvU2hv
dygpLAorICAgICAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxl
Y3RvcigiYnV0dG9uLnRyYWNrcyIpKSwKKyAgICAgICAgICAgIF0pOworICAgICAgICAgICAgZGVi
dWcoIkNvbnRleHQgbWVudSBzaG93bi4iKTsKKworICAgICAgICAgICAgZGVidWcoIlRhcHBpbmcg
dHJhY2tzIGJ1dHRvbi4uLiIpOworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAg
ICAgICAgICAgICAgIFVJSGVscGVyLndhaXRGb3JDb250ZXh0TWVudVRvSGlkZSgpLAorICAgICAg
ICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9u
LnRyYWNrcyIpKSwKKyAgICAgICAgICAgIF0pOworICAgICAgICAgICAgZGVidWcoIkNvbnRleHQg
bWVudSBoaWRkZW4uIik7CisKKyAgICAgICAgICAgIGRlYnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0
b24uLi4iKTsKKyAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAg
ICBVSUhlbHBlci53YWl0Rm9yQ29udGV4dE1lbnVUb1Nob3coKSwKKyAgICAgICAgICAgICAgICBw
cmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSks
CisgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIGRlYnVnKCJDb250ZXh0IG1lbnUgc2hvd24u
Iik7CisKKyAgICAgICAgICAgIGRlYnVnKCJUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4iKTsKKyAg
ICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBVSUhlbHBlci53
YWl0Rm9yQ29udGV4dE1lbnVUb0hpZGUoKSwKKyAgICAgICAgICAgICAgICBwcmVzc09uRWxlbWVu
dChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSksCisgICAgICAgICAg
ICBdKTsKKyAgICAgICAgICAgIGRlYnVnKCJDb250ZXh0IG1lbnUgaGlkZGVuLiIpOworCisgICAg
ICAgICAgICBtZWRpYS5yZW1vdmUoKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
ICAgICB9KTsKKyAgICB9KTsKK30pOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3Vw
cG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBp
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3RlZC12aWEt
bWVkaWEtYXBpLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTdmNzk1MDdhMzhkZTdkMjUxNWQ1
NTI5ODEzY2ZlZWQ4NmE4ZjIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC10
ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NTcgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCBzZXR0aW5nIGFuIGVtYmVkZGVkIHRleHQgdHJh
Y2sgYXMgc2VsZWN0ZWQgdmlhIHRoZSBIVE1MTWVkaWFFbGVtZW50IEpTIEFQSXMgd2lsbCBjb3Jy
ZWN0bHkgc2hvdyB0aGlzIHRyYWNrIGFzIHNlbGVjdGVkLCBhbmQgdGhhdCBzZWxlY3RpbmcgdGhl
ICJBdXRvbWF0aWMgKFJlY29tbWVuZGVkKSIgdHJhY2sgd2lsbCByZXZlcnQgYmFjayB0byBzZWxl
Y3RpbmcgdGhhdCBlbnRyeS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykgYmVjYW1lIGRpZmZlcmVu
dCBmcm9tIG51bGwKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tz
JykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAK
K1NldHRpbmcgbW9kZSB0byAnc2hvd2luZycgZm9yIGZpcnN0IHRleHQgdHJhY2sgdmlhIEphdmFT
Y3JpcHQuLi4KK1RhcHBpbmcgdHJhY2tzIGJ1dHRvbi4uLgorWworICB7CisgICAgInRpdGxlIjog
IlN1YnRpdGxlcyIsCisgICAgImNoaWxkcmVuIjogWworICAgICAgeworICAgICAgICAidGl0bGUi
OiAiT2ZmIgorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgInRpdGxlIjogIkF1dG8gKFJlY29t
bWVuZGVkKSIKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJ0aXRsZSI6ICJFbmdsaXNoIiwK
KyAgICAgICAgImNoZWNrZWQiOiB0cnVlCisgICAgICB9LAorICAgICAgeworICAgICAgICAidGl0
bGUiOiAiRnJlbmNoIgorICAgICAgfQorICAgIF0KKyAgfQorXQorU2VsZWN0aW5nIGZpcnN0IHRl
eHQgdHJhY2suLi4KK1BBU1MgbWVkaWEudGV4dFRyYWNrc1swXS5tb2RlIGlzICdkaXNhYmxlZCcK
K1BBU1MgbWVkaWEudGV4dFRyYWNrc1sxXS5tb2RlIGlzICdzaG93aW5nJworVGFwcGluZyB0cmFj
a3MgYnV0dG9uLi4uCitbCisgIHsKKyAgICAidGl0bGUiOiAiU3VidGl0bGVzIiwKKyAgICAiY2hp
bGRyZW4iOiBbCisgICAgICB7CisgICAgICAgICJ0aXRsZSI6ICJPZmYiCisgICAgICB9LAorICAg
ICAgeworICAgICAgICAidGl0bGUiOiAiQXV0byAoUmVjb21tZW5kZWQpIiwKKyAgICAgICAgImNo
ZWNrZWQiOiB0cnVlCisgICAgICB9LAorICAgICAgeworICAgICAgICAidGl0bGUiOiAiRW5nbGlz
aCIKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJ0aXRsZSI6ICJGcmVuY2giCisgICAgICB9
CisgICAgXQorICB9CitdCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L2lvcy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVj
dGVkLXZpYS1tZWRpYS1hcGkuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxl
Y3RlZC12aWEtbWVkaWEtYXBpLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDY4OGM3MjFjNTE4NDVkNTAzYjI4
ZDEzNmE4MmFjYjRiNDMxYzQ1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9pb3MvdHJhY2tzLXN1cHBvcnQt
dGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLmh0bWwKQEAgLTAsMCArMSw1OCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRy
b2xzLXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8dmlkZW8gc3JjPSIuLi8u
Li8uLi9jb250ZW50L2NvdW50aW5nLXN1YnRpdGxlZC5tNHYiIHN0eWxlPSJwb3NpdGlvbjogYWJz
b2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDMwMHB4OyIgY29udHJvbHMgYXV0b3BsYXkg
bXV0ZWQgcGxheXNpbmxpbmU+PC92aWRlbz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitkZXNjcmlwdGlvbihgVGhpcyB0
ZXN0IGNoZWNrcyB0aGF0IHNldHRpbmcgYW4gZW1iZWRkZWQgdGV4dCB0cmFjayBhcyBzZWxlY3Rl
ZCB2aWEgdGhlIEhUTUxNZWRpYUVsZW1lbnQgSlMgQVBJcyB3aWxsIGNvcnJlY3RseSBzaG93IHRo
aXMgdHJhY2sgYXMgc2VsZWN0ZWQsIGFuZCB0aGF0IHNlbGVjdGluZyB0aGUgCisiQXV0b21hdGlj
IChSZWNvbW1lbmRlZCkiIHRyYWNrIHdpbGwgcmV2ZXJ0IGJhY2sgdG8gc2VsZWN0aW5nIHRoYXQg
ZW50cnkuYCk7CisKK2NvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8i
KTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEp
OworCittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4geworICAgIG1lZGlhLnBh
dXNlKCk7CisKKyAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxl
Y3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7CisgICAgICAgIHNob3VsZEJl
Y29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJyku
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsIGFzeW5jICgpID0+IHsKKyAgICAg
ICAgICAgIGRlYnVnKCJTZXR0aW5nIG1vZGUgdG8gJ3Nob3dpbmcnIGZvciBmaXJzdCB0ZXh0IHRy
YWNrIHZpYSBKYXZhU2NyaXB0Li4uIik7CisgICAgICAgICAgICBtZWRpYS50ZXh0VHJhY2tzWzBd
Lm1vZGUgPSAic2hvd2luZyI7CisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBkZWJ1
ZygiVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uIik7CisgICAgICAgICAgICAgICAgbGV0IFtjb250
ZXh0bWVudV0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgICAgIGdldFRy
YWNrc0NvbnRleHRNZW51KCksCisgICAgICAgICAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKSwKKyAgICAgICAgICAgICAg
ICBdKTsKKyAgICAgICAgICAgICAgICBkZWJ1ZyhKU09OLnN0cmluZ2lmeShjb250ZXh0bWVudSwg
bnVsbCwgMikpOworCisgICAgICAgICAgICAgICAgZGVidWcoIlNlbGVjdGluZyBmaXJzdCB0ZXh0
IHRyYWNrLi4uIik7CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuY2hvb3NlTWVudUFj
dGlvbihjb250ZXh0bWVudVswXS5jaGlsZHJlblsxXS50aXRsZSk7CisgICAgICAgICAgICAgICAg
YXdhaXQgVUlIZWxwZXIud2FpdEZvckNvbnRleHRNZW51VG9IaWRlKCk7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIHNob3VsZEJlKCJtZWRpYS50ZXh0VHJhY2tzWzBdLm1vZGUiLCAiJ2Rp
c2FibGVkJyIpOworICAgICAgICAgICAgc2hvdWxkQmUoIm1lZGlhLnRleHRUcmFja3NbMV0ubW9k
ZSIsICInc2hvd2luZyciKTsKKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGRlYnVn
KCJUYXBwaW5nIHRyYWNrcyBidXR0b24uLi4iKTsKKyAgICAgICAgICAgICAgICBsZXQgW2NvbnRl
eHRtZW51XSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICAgICAgZ2V0VHJh
Y2tzQ29udGV4dE1lbnUoKSwKKyAgICAgICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpLAorICAgICAgICAgICAgICAg
IF0pOworICAgICAgICAgICAgICAgIGRlYnVnKEpTT04uc3RyaW5naWZ5KGNvbnRleHRtZW51LCBu
dWxsLCAyKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgpOwor
ICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0pOworfSk7CisK
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1h
dXRvLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQt
dHJhY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFkYWMwYjc1NWNjYmE5ODA2OTg5NDM1ZTRm
YmI3ODUzNTA2YWQ5N2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWF1dG8t
dGV4dC10cmFjay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorRW5zdXJlIHdlIGhhdmUg
dGhlIEF1dG8gdGV4dCB0cmFjayBzZWxlY3RlZCBieSBkZWZhdWx0LgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50
cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5
U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBi
ZWNhbWUgZGlmZmVyZW50IGZyb20gMAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50
cmFja3MtcGFuZWwnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAorUEFTUyBzaGFkb3dSb290
LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpLnNlbGVjdGVkJylbMV0udGV4dENvbnRlbnQgaXMgIkF1dG8g
KFJlY29tbWVuZGVkKSIKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtYXV0by10ZXh0LXRyYWNr
Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmEzZmY3NzlmMjkzZmYxY2M1NzhkNTdiNjU4YmNiNDMwZmM1ZmFkMzIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBv
cnQvbWFjL3RyYWNrcy1zdXBwb3J0LWF1dG8tdGV4dC10cmFjay5odG1sCkBAIC0wLDAgKzEsMzUg
QEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL21l
ZGlhLWNvbnRyb2xzLXV0aWxzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pgor
PGJvZHk+Cis8dmlkZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0
eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDY0MHB4OyBo
ZWlnaHQ6IDM2MHB4OyIgY29udHJvbHMgYXV0b3BsYXk+PC92aWRlbz4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitkZXNj
cmlwdGlvbigiRW5zdXJlIHdlIGhhdmUgdGhlIEF1dG8gdGV4dCB0cmFjayBzZWxlY3RlZCBieSBk
ZWZhdWx0LiIpOworCitjb25zdCBtZWRpYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVv
Iik7Citjb25zdCBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5zaGFkb3dSb290KG1lZGlh
KTsKKworbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKKyAgICBtZWRpYS5w
YXVzZSgpOworCisgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2Vs
ZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIsICJudWxsIiwgKCkgPT4geworICAgICAgICBzaG91bGRC
ZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycp
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIiwgIjAiLCAoKSA9PiB7CisgICAgICAgICAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldENhcHRpb25EaXNwbGF5TW9kZSgiYXV0b21hdGljIik7Cisg
ICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRv
bi50cmFja3MiKSk7CisgICAgICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpIiwgIm51bGwiLCAoKSA9PiB7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3JBbGwoJ2xpLnNlbGVjdGVkJylbMV0udGV4dENvbnRlbnQiLCAiQXV0byAoUmVjb21tZW5kZWQp
Iik7CisgICAgICAgICAgICAgICAgZGVidWcoIiIpOworICAgICAgICAgICAgICAgIHdpbmRvdy5p
bnRlcm5hbHMuc2V0Q2FwdGlvbkRpc3BsYXlNb2RlKCJmb3JjZWRvbmx5Iik7CisgICAgICAgICAg
ICAgICAgbWVkaWEucmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9KTsKKworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNrLWlu
LXBhbmVsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJhY2staW4tcGFu
ZWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyOTQxMTA1YmZhOWNlZjI2ZjdjMzBmOGI5ZGM1
MzI2OTNmMzViMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRy
YWNrLWluLXBhbmVsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMyIEBACitDbGlja2luZyBvbiBh
IHRyYWNrIGluIHRoZSB0cmFja3MgcGFuZWwuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCittZWRpYS5hdWRpb1RyYWNrc1swXS5lbmFibGVkID0gdHJ1ZQorbWVkaWEuYXVkaW9UcmFj
a3NbMV0uZW5hYmxlZCA9IGZhbHNlCittZWRpYS5hdWRpb1RyYWNrc1syXS5lbmFibGVkID0gZmFs
c2UKKworUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNh
bWUgZGlmZmVyZW50IGZyb20gbnVsbAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1
dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVy
ZW50IGZyb20gMAorCitDbGlja2luZyBvbiB0aGUgdHJhY2tzIGJ1dHRvbgorQ2xpY2tpbmcgb24g
c2Vjb25kIGF1ZGlvIHRyYWNrIGluIHRyYWNrcyBwYW5lbAorCitPYnRhaW5lZCBjaGFuZ2UgZXZl
bnQgb24gbWVkaWEgYXVkaW8gdHJhY2tzCittZWRpYS5hdWRpb1RyYWNrc1swXS5lbmFibGVkID0g
ZmFsc2UKK21lZGlhLmF1ZGlvVHJhY2tzWzFdLmVuYWJsZWQgPSB0cnVlCittZWRpYS5hdWRpb1Ry
YWNrc1syXS5lbmFibGVkID0gZmFsc2UKKworQ2xpY2tpbmcgb24gdGhlIHRyYWNrcyBidXR0b24K
K0NsaWNraW5nIG9uIHRoaXJkIGF1ZGlvIHRyYWNrIGluIHRyYWNrcyBwYW5lbAorCitPYnRhaW5l
ZCBjaGFuZ2UgZXZlbnQgb24gbWVkaWEgYXVkaW8gdHJhY2tzCittZWRpYS5hdWRpb1RyYWNrc1sw
XS5lbmFibGVkID0gZmFsc2UKK21lZGlhLmF1ZGlvVHJhY2tzWzFdLmVuYWJsZWQgPSBmYWxzZQor
bWVkaWEuYXVkaW9UcmFja3NbMl0uZW5hYmxlZCA9IHRydWUKKworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1
cHBvcnQtY2xpY2stdHJhY2staW4tcGFuZWwuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtY2xpY2st
dHJhY2staW4tcGFuZWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZmIyY2IzYzNhMzA3YzA5ZTNjOWMwZmZl
YWU5ZTYyNDcxNTE0OTg3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1jbGlj
ay10cmFjay1pbi1wYW5lbC5odG1sCkBAIC0wLDAgKzEsOTcgQEAKKzwhRE9DVFlQRSBodG1sPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8Ym9keT4KKzx2aWRlbyBzcmM9Ii4uLy4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1v
diIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDogNjQw
cHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgorPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisK
K2Rlc2NyaXB0aW9uKCJDbGlja2luZyBvbiBhIHRyYWNrIGluIHRoZSB0cmFja3MgcGFuZWwuIik7
CisKK2NvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKK2NvbnN0
IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOworCitsZXQg
cHJldmlvdXNseVNlbGVjdGVkVHJhY2sgPSAwOworCittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJw
bGF5IiwgKCkgPT4geworICAgIG1lZGlhLnBhdXNlKCk7CisKKyAgICBkdW1wQXVkaW9UcmFja3NF
bmFibGVkU3RhdGUoKTsKKworICAgIG1lZGlhLmF1ZGlvVHJhY2tzLmFkZEV2ZW50TGlzdGVuZXIo
ImNoYW5nZSIsIGF1ZGlvVHJhY2tzRGlkQ2hhbmdlKTsKKworICAgIGRlYnVnKCIiKTsKKyAgICBz
aG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRy
YWNrcycpIiwgIm51bGwiLCAoKSA9PiB7CisgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgi
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCkud2lkdGgiLCAiMCIsICgpID0+IHsKKyAgICAgICAgICAgIGNsaWNrT25UcmFja3NC
dXR0b24oY2xpY2tPblNlY29uZEF1ZGlvVHJhY2spOworICAgICAgICB9KTsKKyAgICB9KTsKK30p
OworCitmdW5jdGlvbiBjbGlja09uVHJhY2tzQnV0dG9uKGNvbnRpbnVhdGlvbikKK3sKKyAgICB3
aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAgICAgZGVidWcoIiIpOwor
ICAgICAgICBkZWJ1ZygiQ2xpY2tpbmcgb24gdGhlIHRyYWNrcyBidXR0b24iKTsKKyAgICAgICAg
Y2xpY2tPbkVsZW1lbnQoc2hhZG93Um9vdC5sYXN0Q2hpbGQucXVlcnlTZWxlY3RvcigiYnV0dG9u
LnRyYWNrcyIpKTsKKyAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShjb250aW51
YXRpb24pOworICAgIH0pOworfQorCitmdW5jdGlvbiBjbGlja09uU2Vjb25kQXVkaW9UcmFjaygp
Cit7CisgICAgZGVidWcoIkNsaWNraW5nIG9uIHNlY29uZCBhdWRpbyB0cmFjayBpbiB0cmFja3Mg
cGFuZWwiKTsKKyAgICBjbGlja09uQXVkaW9UcmFja0F0SW5kZXgoMSk7Cit9CisKK2Z1bmN0aW9u
IGNsaWNrT25UaGlyZEF1ZGlvVHJhY2soKQoreworICAgIGRlYnVnKCJDbGlja2luZyBvbiB0aGly
ZCBhdWRpbyB0cmFjayBpbiB0cmFja3MgcGFuZWwiKTsKKyAgICBjbGlja09uQXVkaW9UcmFja0F0
SW5kZXgoMik7Cit9CisKK2Z1bmN0aW9uIGNsaWNrT25BdWRpb1RyYWNrQXRJbmRleChpbmRleCkK
K3sKKyAgICBjbGlja09uRWxlbWVudChzaGFkb3dSb290Lmxhc3RDaGlsZC5xdWVyeVNlbGVjdG9y
QWxsKCJsaSIpW2luZGV4XSk7Cit9CisKK2Z1bmN0aW9uIGNsaWNrT25FbGVtZW50KGVsZW1lbnQp
Cit7CisgICAgY29uc3QgYm91bmRzID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsK
KyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhib3VuZHMubGVmdCArIDEsIGJvdW5kcy50b3Ag
KyAxKTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3Vz
ZVVwKCk7Cit9CisKK2Z1bmN0aW9uIGF1ZGlvVHJhY2tzRGlkQ2hhbmdlKCkKK3sKKyAgICBjb25z
dCBuZXdTZWxlY3RlZFRyYWNrID0gQXJyYXkuZnJvbShtZWRpYS5hdWRpb1RyYWNrcykuZmluZElu
ZGV4KHRyYWNrID0+IHRyYWNrLmVuYWJsZWQpOworICAgIGlmIChwcmV2aW91c2x5U2VsZWN0ZWRU
cmFjayA9PT0gbmV3U2VsZWN0ZWRUcmFjaykKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJldmlv
dXNseVNlbGVjdGVkVHJhY2sgPSBuZXdTZWxlY3RlZFRyYWNrOworCisgICAgZGVidWcoIiIpOwor
ICAgIGRlYnVnKCJPYnRhaW5lZCBjaGFuZ2UgZXZlbnQgb24gbWVkaWEgYXVkaW8gdHJhY2tzIik7
CisKKyAgICBkdW1wQXVkaW9UcmFja3NFbmFibGVkU3RhdGUoKTsKKworICAgIGlmIChtZWRpYS5h
dWRpb1RyYWNrc1sxXS5lbmFibGVkKQorICAgICAgICBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3Io
Ii50cmFja3MtcGFuZWwiKS5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIiwgZXZlbnQg
PT4gY2xpY2tPblRyYWNrc0J1dHRvbihjbGlja09uVGhpcmRBdWRpb1RyYWNrKSk7CisgICAgZWxz
ZSBpZiAobWVkaWEuYXVkaW9UcmFja3NbMl0uZW5hYmxlZCkgeworICAgICAgICBkZWJ1ZygiIik7
CisgICAgICAgIG1lZGlhLnJlbW92ZSgpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9
Cit9CisKK2Z1bmN0aW9uIGR1bXBBdWRpb1RyYWNrc0VuYWJsZWRTdGF0ZSgpCit7CisgICAgQXJy
YXkuZnJvbShtZWRpYS5hdWRpb1RyYWNrcykuZm9yRWFjaCgoYXVkaW9UcmFjaywgaW5kZXgpID0+
IHsKKyAgICAgICAgZGVidWcoYG1lZGlhLmF1ZGlvVHJhY2tzWyR7aW5kZXh9XS5lbmFibGVkID0g
JHttZWRpYS5hdWRpb1RyYWNrc1tpbmRleF0uZW5hYmxlZH1gKTsKKyAgICB9KTsKK30KKworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWhpZGRl
bi10cmFja3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YWQzZmMxOTZiNjU5OTVmM2E3MDRjN2MyMTc4MGY1MzMy
NmFiODRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBACitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgdGhl
IHRyYWNrcyBwYW5lbCBkb2Vzbid0IHNob3cgYW55IHRyYWNrIGFzIHNlbGVjdGVkIGlmIGFsbCB0
aGUgdGV4dCB0cmFja3MgZm9yIGEgbWVkaWEgZWxlbWVudCBhcmUgbWFya2VkIGFzICJoaWRkZW4i
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzaGFkb3dSb290LnF1ZXJ5
U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAorUEFT
UyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAorCis9PT0gSW5pdGlhbCBz
dGF0ZSA9PT0KKworW3hdIE9mZgorWy1dIEF1dG8gKFJlY29tbWVuZGVkKQorWy1dIEVuZ2xpc2gg
U3VidGl0bGVzCitbLV0gRnJlbmNoIFN1YnRpdGxlcworWy1dIEdlcm1hbiBTdWJ0aXRsZXMKK1st
XSBTcGFuaXNoIFN1YnRpdGxlcworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJh
Y2tzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10cmFja3MuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jOWEyYjUzNzY3MTFjZmQ5MmE4YzRkOWQ5MTgxNmNiZWVkYzBlODNmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L21hYy90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLmh0bWwKQEAgLTAsMCArMSw3MiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxib2R5PgorPHZpZGVvIHNyYz0iLi4vLi4vLi4vY29u
dGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAw
OyB0b3A6IDA7IHdpZHRoOiA2NDBweDsgaGVpZ2h0OiAzNjBweDsiIGNvbnRyb2xzIGF1dG9wbGF5
PjwvdmlkZW8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK3dpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKworZGVzY3JpcHRpb24oYFRoaXMgdGVzdCBjaGVja3MgdGhhdCB0
aGUgdHJhY2tzIHBhbmVsIGRvZXNuJ3Qgc2hvdyBhbnkgdHJhY2sgYXMgc2VsZWN0ZWQgaWYgYWxs
IHRoZSB0ZXh0IHRyYWNrcyBmb3IgYSBtZWRpYSBlbGVtZW50IGFyZSBtYXJrZWQgYXMgImhpZGRl
biIuYCk7CisKK2NvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsK
K2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOwor
CittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4geworICAgIG1lZGlhLnBhdXNl
KCk7CisKKyAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7CisgICAgICAgIHNob3VsZEJlY29t
ZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsIHJ1blRlc3QpOworICAgIH0pOworfSk7
CisKK2FzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIC8vIFN0YXJ0IGJ5IG1ha2luZyBz
dXJlIGFsbCB0cmFja3MgYXJlIG1hcmtlZCBhcyAiaGlkZGVuIi4KKyAgICBBcnJheS5mcm9tKG1l
ZGlhLnRleHRUcmFja3MpLmZvckVhY2godHJhY2sgPT4gdHJhY2subW9kZSA9ICJoaWRkZW4iKTsK
KworICAgIC8vIE5leHQsIGJyaW5nIHVwIHRoZSB0cmFja3MgbWVudSBieSBjbGlja2luZyBvbiB0
aGUgdHJhY2tzIGJ1dHRvbi4KKyAgICBhd2FpdCBjbGlja09uVHJhY2tzQnV0dG9uKCk7CisgICAg
Ly8gRHVtcCB0aGUgc3RhdGUgb2YgdGhlIHRyYWNrcyBtZW51IGZvciB0ZXh0IHRyYWNrcywgd2hp
Y2ggc2hvdWxkIHNob3cgdGhlIGZpcnN0IGVtYmVkZGVkIHRleHQgdHJhY2sgYXMgc2VsZWN0ZWQu
CisgICAgZHVtcFRleHRUcmFja3NMaXN0Tm9kZXMoIkluaXRpYWwgc3RhdGUiKTsKKworICAgIGZp
bmlzaFRlc3QoKTsKK30KKworZnVuY3Rpb24gdGV4dFRyYWNrc0xpc3ROb2RlcygpCit7CisgICAg
cmV0dXJuIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLnRyYWNrcy1wYW5lbCBzZWN0aW9u
Omxhc3Qtb2YtdHlwZSA+IHVsID4gbGkiKTsKK30KKworZnVuY3Rpb24gZHVtcFRleHRUcmFja3NM
aXN0Tm9kZXMobXNnKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZyhgPT09ICR7bXNnfSA9
PT1gKTsKKyAgICBkZWJ1ZygiIik7CisgICAgQXJyYXkuZnJvbSh0ZXh0VHJhY2tzTGlzdE5vZGVz
KCkpLmZvckVhY2gobGkgPT4gZGVidWcoYCR7bGkuY2xhc3NMaXN0LmNvbnRhaW5zKCJzZWxlY3Rl
ZCIpID8gIlt4XSIgOiAiWy1dIn0gJHtsaS50ZXh0Q29udGVudH1gKSk7Cit9CisKK2FzeW5jIGZ1
bmN0aW9uIGNsaWNrT25UcmFja3NCdXR0b24oKQoreworICAgIGF3YWl0IG5ldyBQcm9taXNlKHJl
cXVlc3RBbmltYXRpb25GcmFtZSk7CisgICAgY2xpY2tPbkVsZW1lbnQoc2hhZG93Um9vdC5sYXN0
Q2hpbGQucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKTsKKyAgICBhd2FpdCBuZXcgUHJv
bWlzZShyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOworfQorCitmdW5jdGlvbiBjbGlja09uRWxlbWVu
dChlbGVtZW50KQoreworICAgIGNvbnN0IGJvdW5kcyA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYm91bmRzLmxlZnQgKyAxLCBi
b3VuZHMudG9wICsgMSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRT
ZW5kZXIubW91c2VVcCgpOworfQorCitmdW5jdGlvbiBmaW5pc2hUZXN0KCkKK3sKKyAgICBkZWJ1
ZygiIik7CisgICAgbWVkaWEucmVtb3ZlKCk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1vZmYt
dGV4dC10cmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNr
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjNlMzE4MDVkZWU4MjdmOGI3ZThhZjExYTBmYmI5
NjUwNWU4MTdkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10
cmFjay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorRW5zdXJlIHdlIGhhdmUgdGhlIE9m
ZiB0ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5IGRlZmF1bHQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycp
IGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBk
aWZmZXJlbnQgZnJvbSAwCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1w
YW5lbCcpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvckFsbCgnbGkuc2VsZWN0ZWQnKVsxXS50ZXh0Q29udGVudCBpcyAiT2ZmIgorCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L21hYy90cmFja3Mtc3VwcG9ydC1vZmYtdGV4dC10cmFjay5odG1sIGIvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9y
dC1vZmYtdGV4dC10cmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2MDgwODc4NDQ1NTBkOTdlN2NhYzg3
YWIyNmQ1M2RkNjg0MWNkM2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LW9m
Zi10ZXh0LXRyYWNrLmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtdXRpbHMuanMiIHR5
cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cis8Ym9keT4KKzx2aWRlbyBzcmM9Ii4uLy4u
Ly4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsg
bGVmdDogMDsgdG9wOiAwOyB3aWR0aDogNjQwcHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBh
dXRvcGxheT48L3ZpZGVvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCJFbnN1cmUgd2UgaGF2ZSB0
aGUgT2ZmIHRleHQgdHJhY2sgc2VsZWN0ZWQgYnkgZGVmYXVsdC4iKTsKKworY29uc3QgbWVkaWEg
PSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOworY29uc3Qgc2hhZG93Um9vdCA9IHdp
bmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7CisKK21lZGlhLmFkZEV2ZW50TGlzdGVu
ZXIoInBsYXkiLCAoKSA9PiB7CisgICAgbWVkaWEucGF1c2UoKTsKKworICAgIHNob3VsZEJlY29t
ZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAi
bnVsbCIsICgpID0+IHsKKyAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290
LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53
aWR0aCIsICIwIiwgKCkgPT4geworICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9v
dC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpOworICAgICAgICAgICAgc2hvdWxkQmVj
b21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKSIs
ICJudWxsIiwgKCkgPT4geworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
c2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdsaS5zZWxlY3RlZCcpWzFdLnRleHRDb250ZW50
IiwgIk9mZiIpOworICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgICAgICAgICBt
ZWRpYS5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKK30pOworCis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQtcG9wdWxhdGUtcGFu
ZWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LWFuZC1wb3B1bGF0ZS1wYW5l
bC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDUyZDZjYjE5ODc4ODA1ODljYTBlYzhhZGUwMDA3
MTE3YjNhZDUwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQt
cG9wdWxhdGUtcGFuZWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjIgQEAKK1Nob3dpbmcgYW5k
IHBvcHVsYXRpbmcgdGhlIHRyYWNrcyBwYW5lbC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK0F1ZGlvCisgIEVuZ2xpc2ggU291bmQKKyAgRnJlbmNoIFNvdW5kCisgIFNwYW5pc2gg
U291bmQKKworU3VidGl0bGVzCisgIE9mZgorICBBdXRvIChSZWNvbW1lbmRlZCkKKyAgRW5nbGlz
aCBTdWJ0aXRsZXMKKyAgRnJlbmNoIFN1YnRpdGxlcworICBHZXJtYW4gU3VidGl0bGVzCisgIFNw
YW5pc2ggU3VidGl0bGVzCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVs
YXRlLXBhbmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVs
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTNiM2FiN2JhZTMyNGI4MWJkMWFmMDNjNGM5NTE4Mzk2YjkyZGQ0
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQtcG9wdWxhdGUt
cGFuZWwuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGJvZHk+
Cis8dmlkZW8gc3JjPSIuLi8uLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJ3
aWR0aDogNjQwcHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgor
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit3aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7CisKK2Rlc2NyaXB0aW9uKCJTaG93aW5nIGFuZCBwb3B1bGF0aW5nIHRoZSB0cmFja3Mg
cGFuZWwuIik7CisKK2NvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8i
KTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEp
OworCittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4geworICAgIG1lZGlhLnBh
dXNlKCk7CisgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CisgICAgICAg
IGNsaWNrT25UcmFja3NCdXR0b24oKTsKKyAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25G
cmFtZSgoKSA9PiB7CisgICAgICAgICAgICBsaXN0Q29udGVudHNPZlRyYWNrc1BhbmVsKCk7Cisg
ICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwor
ICAgICAgICB9KTsKKyAgICB9KTsKK30pOworCitmdW5jdGlvbiBjbGlja09uVHJhY2tzQnV0dG9u
KCkKK3sKKyAgICBjb25zdCBib3VuZHMgPSBzaGFkb3dSb290Lmxhc3RDaGlsZC5xdWVyeVNlbGVj
dG9yKCJidXR0b24udHJhY2tzIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgZXZlbnRT
ZW5kZXIubW91c2VNb3ZlVG8oYm91bmRzLmxlZnQgKyAxLCBib3VuZHMudG9wICsgMSk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQor
CitmdW5jdGlvbiBsaXN0Q29udGVudHNPZlRyYWNrc1BhbmVsKCkKK3sKKyAgICBmb3IgKGxldCBz
ZWN0aW9uIG9mIHNoYWRvd1Jvb3QubGFzdENoaWxkLnF1ZXJ5U2VsZWN0b3JBbGwoInNlY3Rpb24i
KSkgeworICAgICAgICBkZWJ1ZyhzZWN0aW9uLnF1ZXJ5U2VsZWN0b3IoImgzIikudGV4dENvbnRl
bnQpOworICAgICAgICBmb3IgKGxldCBpdGVtIG9mIHNlY3Rpb24ucXVlcnlTZWxlY3RvckFsbCgi
bGkiKSkKKyAgICAgICAgICAgIGRlYnVnKCIgICIgKyBpdGVtLnRleHRDb250ZW50KTsKKyAgICAg
ICAgZGVidWcoIiIpOworICAgIH0KK30KKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJv
bHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdn
aW5nLWNvbnRyb2xzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTg0MzBiZjM4ZjEyNjYwYjhl
ZmNjNzk2MTZlZjE4NGI1MTA4NGU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9y
dC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNvbnRyb2xzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDE0IEBACitUZXN0aW5nIHRoZSBkaXNwbGF5IG9mIGEgdHJhY2tzIHBhbmVsIGFmdGVyIGRy
YWdnaW5nIHRoZSBjb250cm9scyBiYXIgaW4gZnVsbHNjcmVlbi4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24uZnVs
bHNjcmVlbicpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAw
CitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitQQVNTIHNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJp
Z2h0IGlzIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpLmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpLnJpZ2h0CitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRy
YWNrcy1wYW5lbCcpLnN0eWxlLmJvdHRvbSBpcyAiMTUxcHgiCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1z
dXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJvbHMuaHRtbCBiL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tz
LXN1cHBvcnQtc2hvdy1wYW5lbC1hZnRlci1kcmFnZ2luZy1jb250cm9scy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZhYmFiOTA1ODU4ZmNhZWY5OGIyOThjZTc3MGY5YjFiNjY4NjY4MTkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJv
bHMuaHRtbApAQCAtMCwwICsxLDU5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyIgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij48L3NjcmlwdD4KKzxib2R5PgorPHZpZGVvIHNyYz0iLi4vLi4vLi4vY29udGVu
dC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0id2lkdGg6IDMyMHB4OyBoZWlnaHQ6IDI0MHB4OyIg
Y29udHJvbHMgYXV0b3BsYXk+PC92aWRlbz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitkZXNjcmlwdGlvbigiVGVzdGlu
ZyB0aGUgZGlzcGxheSBvZiBhIHRyYWNrcyBwYW5lbCBhZnRlciBkcmFnZ2luZyB0aGUgY29udHJv
bHMgYmFyIGluIGZ1bGxzY3JlZW4uIik7CisKK2NvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcigidmlkZW8iKTsKK2NvbnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNo
YWRvd1Jvb3QobWVkaWEpOworCittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRiZWdpbmZ1
bGxzY3JlZW4iLCAoKSA9PiB7CisgICAgZGVidWcoIndlYmtpdGJlZ2luZnVsbHNjcmVlbiIpOwor
fSk7CisKK21lZGlhLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UiLCAo
KSA9PiB7CisgICAgaWYgKCFtZWRpYS53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Cisg
ICAgICAgIGNvbnN0IGJvdW5kcyA9IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiLmNvbnRyb2xz
LWJhciIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZU1vdmVUbyhib3VuZHMubGVmdCArIDExOCwgYm91bmRzLnRvcCArIDEwKTsKKyAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGJv
dW5kcy5sZWZ0ICsgNjgsIGJvdW5kcy50b3AgLSA0MCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlVXAoKTsKKworICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAgICAg
ICAgICAgY2xpY2tPbkJ1dHRvbigidHJhY2tzIiwgKCkgPT4geworICAgICAgICAgICAgICAgIHJl
cXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKS5yaWdodCIsICJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFu
ZWwnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCIpCisgICAgICAgICAgICAgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tz
LXBhbmVsJykuc3R5bGUuYm90dG9tIiwgIjE1MXB4Iik7CisKKyAgICAgICAgICAgICAgICAgICAg
ZGVidWcoIiIpOworICAgICAgICAgICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKKyAgICAgICAg
ICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9KTsKKworbWVkaWEuYWRkRXZlbnRMaXN0
ZW5lcigicGxheSIsICgpID0+IHsKKyAgICBtZWRpYS5wYXVzZSgpOworICAgIHdpbmRvdy5yZXF1
ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gY2xpY2tPbkJ1dHRvbigiZnVsbHNjcmVlbiIpKTsKK30p
OworCitmdW5jdGlvbiBjbGlja09uQnV0dG9uKG5hbWUsIGNvbnRpbnVhdGlvbikKK3sKKyAgICBz
aG91bGRCZWNvbWVEaWZmZXJlbnQoYHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLiR7
bmFtZX0nKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKWAsICIwIiwgKCkgPT4geworICAgICAgICBw
cmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoYGJ1dHRvbi4ke25hbWV9YCks
IGNvbnRpbnVhdGlvbik7CisgICAgfSk7Cit9CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxzY3JlZW4tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1z
dXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxzY3JlZW4tZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjc1MTUyNTUwNDI4MDhkYzZmM2QxZDlhYTcxM2U2MTZlNTI5NzVlYTMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtZnVsbHNjcmVl
bi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorU2hvd2luZyB0aGUgdHJhY2tzIHBhbmVs
IGluIGZ1bGxzY3JlZW4uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGlu
dGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0b24uZnVsbHNjcmVl
biIpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIGludGVybmFscy5zaGFkb3dSb290
KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0b24uZnVsbHNjcmVlbiIpLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitQQVNTIG1lZGlhLndlYmtp
dERpc3BsYXlpbmdGdWxsc2NyZWVuIGJlY2FtZSB0cnVlCitQQVNTIGludGVybmFscy5zaGFkb3dS
b290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikgYmVjYW1lIGRpZmZlcmVu
dCBmcm9tIG51bGwKK1BBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0
b3IoImJ1dHRvbi50cmFja3MiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUg
ZGlmZmVyZW50IGZyb20gMAorUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlT
ZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0IGJl
Y2FtZSA1ODIKK1BBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3Io
Jy50cmFja3MtcGFuZWwnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAorUEFTUyBpbnRlcm5h
bHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpLnN0eWxl
LnJpZ2h0IGlzICIyMThweCIKK1BBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5
U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5zdHlsZS5ib3R0b20gaXMgIjEwMXB4IgorCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxzY3JlZW4uaHRtbCBiL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJhY2tz
LXN1cHBvcnQtc2hvdy1wYW5lbC1mdWxsc2NyZWVuLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDVkNGU2Yjcz
Y2M0NzM3ODMxZmJjM2YyODJjYThiOTYxZjZkOWE5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJh
Y2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1mdWxsc2NyZWVuLmh0bWwKQEAgLTAsMCArMSw0OSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvbWVkaWEt
Y29udHJvbHMtdXRpbHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cis8Ym9k
eT4KKzx2aWRlbyBzcmM9Ii4uLy4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9
IndpZHRoOiAzMjBweDsgaGVpZ2h0OiAyNDBweDsiIGNvbnRyb2xzIGF1dG9wbGF5PjwvdmlkZW8+
Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKworZGVzY3JpcHRpb24oIlNob3dpbmcgdGhlIHRyYWNrcyBwYW5lbCBpbiBmdWxs
c2NyZWVuLiIpOworCitzZXRUaW1lb3V0KCgpID0+IHsKKyAgICBkZWJ1ZygiRkFJTDogZGlkIG5v
dCBlbmQgZmFzdCBlbm91Z2giKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30sIDEwMDAwKTsKKwor
Y29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOworCittZWRpYS5h
ZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRmdWxsc2NyZWVuY2hhbmdlIiwgKCkgPT4geworICAgIHNo
b3VsZEJlY29tZUVxdWFsKCJtZWRpYS53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiIsICJ0cnVl
IiwgKCkgPT4geworICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoYGludGVybmFscy5zaGFk
b3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIilgLCAibnVsbCIsICgp
ID0+IHsKKyAgICAgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudChgaW50ZXJuYWxzLnNoYWRv
d1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKS5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKS53aWR0aGAsICIwIiwgKCkgPT4geworICAgICAgICAgICAgICAgIHNob3VsZEJl
Y29tZUVxdWFsKGBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcigiYnV0
dG9uLnRyYWNrcyIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0YCwgIjU4MiIsICgpID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoaW50ZXJuYWxzLnNoYWRvd1Jv
b3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSk7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudChgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEp
LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKWAsICJudWxsIiwgKCkgPT4geworICAgICAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnRlcm5hbHMuc2hhZG93
Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpLnN0eWxlLnJpZ2h0Iiwg
IjIxOHB4Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
ImludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVs
Jykuc3R5bGUuYm90dG9tIiwgIjEwMXB4Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1
ZygiIik7CisgICAgICAgICAgICAgICAgICAgICAgICBtZWRpYS5yZW1vdmUoKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9
KTsKK30pOworCittZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4geworICAgIG1l
ZGlhLnBhdXNlKCk7CisgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KGBpbnRlcm5hbHMuc2hhZG93
Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcigiYnV0dG9uLmZ1bGxzY3JlZW4iKWAsICJudWxsIiwg
KCkgPT4geworICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoYGludGVybmFscy5zaGFkb3dS
b290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0b24uZnVsbHNjcmVlbiIpLmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpLndpZHRoYCwgIjAiLCAoKSA9PiB7CisgICAgICAgICAgICBwcmVzc09uRWxl
bWVudChpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcihgYnV0dG9uLmZ1
bGxzY3JlZW5gKSk7CisgICAgICAgIH0pOworICAgIH0pOworfSk7CisKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRoZW4t
ZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3Vw
cG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24tZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjk4YmQ3NzhjMjgyMmY4M2Y0Y2ZlOGUxMzQxNTJmMDdhMjRjMTQ2
YWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtdGhlbi1k
b3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBA
QAorRW5zdXJlIHRoYXQgZG91YmxlLWNsaWNraW5nIHRoZSB0cmFja3MgYnV0dG9uIHdoZW4gdGhl
IHRyYWNrcyBwYW5lbCBtYWtlcyB0aGUgcGFuZWwgYXBwZWFyIGFnYWluLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworTWVkaWEgc3RhcnRlZCBwbGF5aW5nCitQQVNTIHNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBu
dWxsCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitQQVNTIHNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpIGJlY2FtZSBkaWZmZXJlbnQg
ZnJvbSBudWxsCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcp
IGlzIG5vdCBudWxsCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtdGhlbi1k
b3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93
LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24uaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43NWVkMDQyZDQ3Y2QxYWIxYmFmYTA2NmVhZjk4NGE4NjZlN2M2M2NkCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRy
YWNrcy1idXR0b24uaHRtbApAQCAtMCwwICsxLDQxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KKzxib2R5PgorPHZpZGVvIHNyYz0iLi4vLi4v
Li4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBs
ZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiA2NDBweDsgaGVpZ2h0OiAzNjBweDsiIGNvbnRyb2xzIGF1
dG9wbGF5PjwvdmlkZW8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK3dpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZGVzY3JpcHRpb24oIkVuc3VyZSB0aGF0IGRvdWJs
ZS1jbGlja2luZyB0aGUgdHJhY2tzIGJ1dHRvbiB3aGVuIHRoZSB0cmFja3MgcGFuZWwgbWFrZXMg
dGhlIHBhbmVsIGFwcGVhciBhZ2Fpbi4iKTsKKworY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCJ2aWRlbyIpOworY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMu
c2hhZG93Um9vdChtZWRpYSk7CisKK21lZGlhLmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLCAoKSA9
PiB7CisgICAgbWVkaWEucGF1c2UoKTsKKworICAgIGRlYnVnKCJNZWRpYSBzdGFydGVkIHBsYXlp
bmciKTsKKyAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rv
cignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7CisgICAgICAgIHNob3VsZEJlY29t
ZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsICgpID0+IHsKKyAgICAgICAgICAgIHBy
ZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKTsK
KyAgICAgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVj
dG9yKCcudHJhY2tzLXBhbmVsJykiLCAibnVsbCIsICgpID0+IHsKKyAgICAgICAgICAgICAgICBw
cmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSk7
CisgICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0
b24udHJhY2tzIikpOworICAgICAgICAgICAgICAgICAgICAvLyBHaXZlIHRoZSB0cmFuc2l0aW9u
ZW5kIGV2ZW50IHRpbWUgdG8gZmlyZSBpZiBpdCB3ZXJlIHRvIGhhcHBlbiwgd2hpY2ggaXQgc2hv
dWxkIG5vdC4KKyAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBzaG91bGROb3RCZSgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcu
dHJhY2tzLXBhbmVsJykiLCAibnVsbCIpOworICAgICAgICAgICAgICAgICAgICAgICAgZGVidWco
IiIpOworICAgICAgICAgICAgICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgfSwgNTAw
KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAg
ICB9KTsKK30pOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9tYWMvdHJh
Y2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC9tYWMvdHJhY2tzLXN1cHBvcnQtdGV4dC10cmFjay1zZWxlY3RlZC12aWEtbWVkaWEtYXBpLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YzhjNzM0NTYwYmU4ODhlMmU0OGUxOWZlNWFkM2Q2NWM1
MTkzYTUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNl
bGVjdGVkLXZpYS1tZWRpYS1hcGktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzAgQEAKK1RoaXMg
dGVzdCBjaGVja3MgdGhhdCBzZXR0aW5nIGFuIGVtYmVkZGVkIHRleHQgdHJhY2sgYXMgc2VsZWN0
ZWQgdmlhIHRoZSBIVE1MTWVkaWFFbGVtZW50IEpTIEFQSXMgd2lsbCBjb3JyZWN0bHkgc2hvdyB0
aGlzIHRyYWNrIGFzIHNlbGVjdGVkLCBhbmQgdGhhdCBzZWxlY3RpbmcgdGhlICJBdXRvbWF0aWMg
KFJlY29tbWVuZGVkKSIgdHJhY2sgd2lsbCByZXZlcnQgYmFjayB0byBzZWxlY3RpbmcgdGhhdCBl
bnRyeS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwK
K1BBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKKworPT09IEluaXRp
YWwgc3RhdGUgPT09CisKK1stXSBPZmYKK1stXSBBdXRvIChSZWNvbW1lbmRlZCkKK1t4XSBFbmds
aXNoIFN1YnRpdGxlcworWy1dIEZyZW5jaCBTdWJ0aXRsZXMKK1stXSBHZXJtYW4gU3VidGl0bGVz
CitbLV0gU3BhbmlzaCBTdWJ0aXRsZXMKKworPT09IEFmdGVyIHBpY2tpbmcgYXV0byB0cmFjayBp
bnRlcmFjdGl2ZWx5ID09PQorCitbLV0gT2ZmCitbeF0gQXV0byAoUmVjb21tZW5kZWQpCitbLV0g
RW5nbGlzaCBTdWJ0aXRsZXMKK1stXSBGcmVuY2ggU3VidGl0bGVzCitbLV0gR2VybWFuIFN1YnRp
dGxlcworWy1dIFNwYW5pc2ggU3VidGl0bGVzCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXRl
eHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC10
ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MDIyZWI5
NmRmOTQ0ZWYxYTgyM2JlOTFmMWY5MGRkMzliNzMwMDUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L21hYy90
cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRtbApAQCAt
MCwwICsxLDg4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8dmlkZW8gc3JjPSIu
Li8uLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1
dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDY0MHB4OyBoZWlnaHQ6IDM2MHB4OyIgY29udHJv
bHMgYXV0b3BsYXk+PC92aWRlbz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKwor
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitkZXNjcmlwdGlvbihgVGhpcyB0ZXN0IGNo
ZWNrcyB0aGF0IHNldHRpbmcgYW4gZW1iZWRkZWQgdGV4dCB0cmFjayBhcyBzZWxlY3RlZCB2aWEg
dGhlIEhUTUxNZWRpYUVsZW1lbnQgSlMgQVBJcyB3aWxsIGNvcnJlY3RseSBzaG93IHRoaXMgdHJh
Y2sgYXMgc2VsZWN0ZWQsIGFuZCB0aGF0IHNlbGVjdGluZyB0aGUgCisiQXV0b21hdGljIChSZWNv
bW1lbmRlZCkiIHRyYWNrIHdpbGwgcmV2ZXJ0IGJhY2sgdG8gc2VsZWN0aW5nIHRoYXQgZW50cnku
YCk7CisKK2NvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKK2Nv
bnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOworCitt
ZWRpYS5hZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4geworICAgIG1lZGlhLnBhdXNlKCk7
CisKKyAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcign
YnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7CisgICAgICAgIHNob3VsZEJlY29tZURp
ZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91
bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsIHJ1blRlc3QpOworICAgIH0pOworfSk7CisK
K2FzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIC8vIFN0YXJ0IGJ5IHNlbGVjdGluZyBv
bmUgb2YgdGhlIHRleHQgdHJhY2tzIHVzaW5nIHRoZSBtZWRpYSBKUyBBUEkuCisgICAgLy8gVGhp
cyB3aWxsIGNhdXNlIHRleHRUcmFja3NEaWRDaGFuZ2UgdG8gYmUgY2FsbGVkIGZvciB0aGUgZmly
c3QgdGltZS4KKyAgICBtZWRpYS50ZXh0VHJhY2tzWzBdLm1vZGUgPSAic2hvd2luZyI7CisKKyAg
ICAvLyBOZXh0LCBicmluZyB1cCB0aGUgdHJhY2tzIG1lbnUgYnkgY2xpY2tpbmcgb24gdGhlIHRy
YWNrcyBidXR0b24uCisgICAgYXdhaXQgY2xpY2tPblRyYWNrc0J1dHRvbigpOworICAgIC8vIER1
bXAgdGhlIHN0YXRlIG9mIHRoZSB0cmFja3MgbWVudSBmb3IgdGV4dCB0cmFja3MsIHdoaWNoIHNo
b3VsZCBzaG93IHRoZSBmaXJzdCBlbWJlZGRlZCB0ZXh0IHRyYWNrIGFzIHNlbGVjdGVkLgorICAg
IGR1bXBUZXh0VHJhY2tzTGlzdE5vZGVzKCJJbml0aWFsIHN0YXRlIik7CisgICAgLy8gTm93LCBz
ZWxlY3QgdGhlICJBdXRvbWF0aWMgKFJlY29tbWVuZGVkKSIgdGV4dCB0cmFjay4gCisgICAgYXdh
aXQgY2xpY2tPblRleHRUcmFja0F0SW5kZXgoMSk7CisgICAgLy8gV2FpdCBmb3IgdGhlIHNlbGVj
dGlvbiB0byBoYXZlIGdvbmUgdGhyb3VnaCBhbmQgdGhlIHBhbmVsIHRvIGhhdmUgdHJhbnNpdGlv
bmVkIG91dCBvZiB2aWV3LgorICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCIudHJhY2tzLXBhbmVsIikuYWRkRXZlbnRMaXN0ZW5lcigidHJh
bnNpdGlvbmVuZCIsIHJlc29sdmUsIHsgb25jZTogdHJ1ZSB9KSk7CisKKyAgICAvLyBOb3csIGJy
aW5nIHVwIHRoZSB0cmFja3MgbWVudSBhZ2FpbiBieSBjbGlja2luZyBvbiB0aGUgdHJhY2tzIGJ1
dHRvbi4KKyAgICBhd2FpdCBjbGlja09uVHJhY2tzQnV0dG9uKCk7CisgICAgLy8gRHVtcCB0aGUg
c3RhdGUgb2YgdGhlIHRyYWNrcyBtZW51IGZvciB0ZXh0IHRyYWNrcywgd2hpY2ggc2hvdWxkIG5v
dyBzaG93ICJBdXRvbWF0aWMgKFJlY29tbWVuZGVkKSIgYXMgc2VsZWN0ZWQuCisgICAgZHVtcFRl
eHRUcmFja3NMaXN0Tm9kZXMoIkFmdGVyIHBpY2tpbmcgYXV0byB0cmFjayBpbnRlcmFjdGl2ZWx5
Iik7CisKKyAgICBmaW5pc2hUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHRleHRUcmFja3NMaXN0Tm9k
ZXMoKQoreworICAgIHJldHVybiBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoIi50cmFja3Mt
cGFuZWwgc2VjdGlvbjpsYXN0LW9mLXR5cGUgPiB1bCA+IGxpIik7Cit9CisKK2Z1bmN0aW9uIGR1
bXBUZXh0VHJhY2tzTGlzdE5vZGVzKG1zZykKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWco
YD09PSAke21zZ30gPT09YCk7CisgICAgZGVidWcoIiIpOworICAgIEFycmF5LmZyb20odGV4dFRy
YWNrc0xpc3ROb2RlcygpKS5mb3JFYWNoKGxpID0+IGRlYnVnKGAke2xpLmNsYXNzTGlzdC5jb250
YWlucygic2VsZWN0ZWQiKSA/ICJbeF0iIDogIlstXSJ9ICR7bGkudGV4dENvbnRlbnR9YCkpOwor
fQorCithc3luYyBmdW5jdGlvbiBjbGlja09uVHJhY2tzQnV0dG9uKCkKK3sKKyAgICBhd2FpdCBu
ZXcgUHJvbWlzZShyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOworICAgIGNsaWNrT25FbGVtZW50KHNo
YWRvd1Jvb3QubGFzdENoaWxkLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKSk7CisgICAg
YXdhaXQgbmV3IFByb21pc2UocmVxdWVzdEFuaW1hdGlvbkZyYW1lKTsKK30KKworZnVuY3Rpb24g
Y2xpY2tPblRleHRUcmFja0F0SW5kZXgoaW5kZXgpCit7CisgICAgY2xpY2tPbkVsZW1lbnQodGV4
dFRyYWNrc0xpc3ROb2RlcygpW2luZGV4XSk7Cit9CisKK2Z1bmN0aW9uIGNsaWNrT25FbGVtZW50
KGVsZW1lbnQpCit7CisgICAgY29uc3QgYm91bmRzID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhib3VuZHMubGVmdCArIDEsIGJv
dW5kcy50b3AgKyAxKTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZVVwKCk7Cit9CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoKQoreworICAgIGRlYnVn
KCIiKTsKKyAgICBtZWRpYS5yZW1vdmUoKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtYXV0by10ZXh0
LXRyYWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2stZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZGFjMGI3NTVjY2JhOTgwNjk4
OTQzNWU0ZmJiNzg1MzUwNmFkOTdlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotRW5zdXJlIHdlIGhhdmUgdGhlIEF1dG8gdGV4
dCB0cmFjayBzZWxlY3RlZCBieSBkZWZhdWx0LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
Ci0KLQotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNh
bWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1
dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVy
ZW50IGZyb20gMAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwn
KSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3JBbGwoJ2xpLnNlbGVjdGVkJylbMV0udGV4dENvbnRlbnQgaXMgIkF1dG8gKFJlY29tbWVuZGVk
KSIKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1hdXRvLXRleHQtdHJhY2suaHRtbCBiL0xheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3Vw
cG9ydC1hdXRvLXRleHQtdHJhY2suaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MWIzYzNlNjJjMDVlOThiMjA4OTUzZDA4YjA1ODZiYzIzNjE5NjhlOC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtYXV0by10ZXh0LXRy
YWNrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11dGlscy5qcyIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxib2R5PgotPHZpZGVvIHNyYz0iLi4vLi4v
Y29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0
OiAwOyB0b3A6IDA7IHdpZHRoOiA2NDBweDsgaGVpZ2h0OiAzNjBweDsiIGNvbnRyb2xzIGF1dG9w
bGF5PjwvdmlkZW8+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLXdpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIkVuc3VyZSB3ZSBoYXZlIHRoZSBB
dXRvIHRleHQgdHJhY2sgc2VsZWN0ZWQgYnkgZGVmYXVsdC4iKTsKLQotY29uc3QgbWVkaWEgPSBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRv
dy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlhLmFkZEV2ZW50TGlzdGVuZXIo
InBsYXkiLCAoKSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLQotICAgIHNob3VsZEJlY29tZURp
ZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAibnVs
bCIsICgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1
ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0
aCIsICIwIiwgKCkgPT4gewotICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRDYXB0aW9u
RGlzcGxheU1vZGUoImF1dG9tYXRpYyIpOwotICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikpOwotICAgICAgICAgICAgc2hv
dWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFu
ZWwnKSIsICJudWxsIiwgKCkgPT4gewotICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdsaS5zZWxlY3RlZCcpWzFdLnRleHRD
b250ZW50IiwgIkF1dG8gKFJlY29tbWVuZGVkKSIpOwotICAgICAgICAgICAgICAgIGRlYnVnKCIi
KTsKLSAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldENhcHRpb25EaXNwbGF5TW9k
ZSgiZm9yY2Vkb25seSIpOwotICAgICAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgpOwotICAgICAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwot
ICAgIH0pOwotfSk7Ci0KLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1z
dXBwb3J0LWNsaWNrLXRyYWNrLWluLXBhbmVsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1j
bGljay10cmFjay1pbi1wYW5lbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDUyOTQxMTA1YmZhOWNlZjI2ZjdjMzBmOGI5ZGM1MzI2OTNmMzViMmYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LWNsaWNr
LXRyYWNrLWluLXBhbmVsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAg
QEAKLUNsaWNraW5nIG9uIGEgdHJhY2sgaW4gdGhlIHRyYWNrcyBwYW5lbC4KLQotT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgotCi0KLW1lZGlhLmF1ZGlvVHJhY2tzWzBdLmVuYWJsZWQgPSB0cnVl
Ci1tZWRpYS5hdWRpb1RyYWNrc1sxXS5lbmFibGVkID0gZmFsc2UKLW1lZGlhLmF1ZGlvVHJhY2tz
WzJdLmVuYWJsZWQgPSBmYWxzZQotCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0
dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIHNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndp
ZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCi0KLUNsaWNraW5nIG9uIHRoZSB0cmFja3MgYnV0
dG9uCi1DbGlja2luZyBvbiBzZWNvbmQgYXVkaW8gdHJhY2sgaW4gdHJhY2tzIHBhbmVsCi0KLU9i
dGFpbmVkIGNoYW5nZSBldmVudCBvbiBtZWRpYSBhdWRpbyB0cmFja3MKLW1lZGlhLmF1ZGlvVHJh
Y2tzWzBdLmVuYWJsZWQgPSBmYWxzZQotbWVkaWEuYXVkaW9UcmFja3NbMV0uZW5hYmxlZCA9IHRy
dWUKLW1lZGlhLmF1ZGlvVHJhY2tzWzJdLmVuYWJsZWQgPSBmYWxzZQotCi1DbGlja2luZyBvbiB0
aGUgdHJhY2tzIGJ1dHRvbgotQ2xpY2tpbmcgb24gdGhpcmQgYXVkaW8gdHJhY2sgaW4gdHJhY2tz
IHBhbmVsCi0KLU9idGFpbmVkIGNoYW5nZSBldmVudCBvbiBtZWRpYSBhdWRpbyB0cmFja3MKLW1l
ZGlhLmF1ZGlvVHJhY2tzWzBdLmVuYWJsZWQgPSBmYWxzZQotbWVkaWEuYXVkaW9UcmFja3NbMV0u
ZW5hYmxlZCA9IGZhbHNlCi1tZWRpYS5hdWRpb1RyYWNrc1syXS5lbmFibGVkID0gdHJ1ZQotCi1Q
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L3RyYWNrcy1zdXBwb3J0LWNsaWNrLXRyYWNrLWluLXBhbmVsLmh0bWwgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBv
cnQtY2xpY2stdHJhY2staW4tcGFuZWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNjVlMWVhYzlhNzIxNDljMDdmYTc1N2VlY2UxOTcyNTUwZTY2MGUwZS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtY2xpY2stdHJh
Y2staW4tcGFuZWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDk3ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Ci08Ym9keT4KLTx2aWRlbyBzcmM9Ii4uLy4uL2NvbnRlbnQvQ0MrU3VidGl0bGVz
Lm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDog
NjQwcHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgotPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
Ci0KLWRlc2NyaXB0aW9uKCJDbGlja2luZyBvbiBhIHRyYWNrIGluIHRoZSB0cmFja3MgcGFuZWwu
Iik7Ci0KLWNvbnN0IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNv
bnN0IHNoYWRvd1Jvb3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOwotCi1s
ZXQgcHJldmlvdXNseVNlbGVjdGVkVHJhY2sgPSAwOwotCi1tZWRpYS5hZGRFdmVudExpc3RlbmVy
KCJwbGF5IiwgKCkgPT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0KLSAgICBkdW1wQXVkaW9UcmFj
a3NFbmFibGVkU3RhdGUoKTsKLQotICAgIG1lZGlhLmF1ZGlvVHJhY2tzLmFkZEV2ZW50TGlzdGVu
ZXIoImNoYW5nZSIsIGF1ZGlvVHJhY2tzRGlkQ2hhbmdlKTsKLQotICAgIGRlYnVnKCIiKTsKLSAg
ICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9u
LnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVu
dCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCkud2lkdGgiLCAiMCIsICgpID0+IHsKLSAgICAgICAgICAgIGNsaWNrT25UcmFj
a3NCdXR0b24oY2xpY2tPblNlY29uZEF1ZGlvVHJhY2spOwotICAgICAgICB9KTsKLSAgICB9KTsK
LX0pOwotCi1mdW5jdGlvbiBjbGlja09uVHJhY2tzQnV0dG9uKGNvbnRpbnVhdGlvbikKLXsKLSAg
ICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKLSAgICAgICAgZGVidWcoIiIp
OwotICAgICAgICBkZWJ1ZygiQ2xpY2tpbmcgb24gdGhlIHRyYWNrcyBidXR0b24iKTsKLSAgICAg
ICAgY2xpY2tPbkVsZW1lbnQoc2hhZG93Um9vdC5sYXN0Q2hpbGQucXVlcnlTZWxlY3RvcigiYnV0
dG9uLnRyYWNrcyIpKTsKLSAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShjb250
aW51YXRpb24pOwotICAgIH0pOwotfQotCi1mdW5jdGlvbiBjbGlja09uU2Vjb25kQXVkaW9UcmFj
aygpCi17Ci0gICAgZGVidWcoIkNsaWNraW5nIG9uIHNlY29uZCBhdWRpbyB0cmFjayBpbiB0cmFj
a3MgcGFuZWwiKTsKLSAgICBjbGlja09uQXVkaW9UcmFja0F0SW5kZXgoMSk7Ci19Ci0KLWZ1bmN0
aW9uIGNsaWNrT25UaGlyZEF1ZGlvVHJhY2soKQotewotICAgIGRlYnVnKCJDbGlja2luZyBvbiB0
aGlyZCBhdWRpbyB0cmFjayBpbiB0cmFja3MgcGFuZWwiKTsKLSAgICBjbGlja09uQXVkaW9UcmFj
a0F0SW5kZXgoMik7Ci19Ci0KLWZ1bmN0aW9uIGNsaWNrT25BdWRpb1RyYWNrQXRJbmRleChpbmRl
eCkKLXsKLSAgICBjbGlja09uRWxlbWVudChzaGFkb3dSb290Lmxhc3RDaGlsZC5xdWVyeVNlbGVj
dG9yQWxsKCJsaSIpW2luZGV4XSk7Ci19Ci0KLWZ1bmN0aW9uIGNsaWNrT25FbGVtZW50KGVsZW1l
bnQpCi17Ci0gICAgY29uc3QgYm91bmRzID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KTsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhib3VuZHMubGVmdCArIDEsIGJvdW5kcy50
b3AgKyAxKTsKLSAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBldmVudFNlbmRlci5t
b3VzZVVwKCk7Ci19Ci0KLWZ1bmN0aW9uIGF1ZGlvVHJhY2tzRGlkQ2hhbmdlKCkKLXsKLSAgICBj
b25zdCBuZXdTZWxlY3RlZFRyYWNrID0gQXJyYXkuZnJvbShtZWRpYS5hdWRpb1RyYWNrcykuZmlu
ZEluZGV4KHRyYWNrID0+IHRyYWNrLmVuYWJsZWQpOwotICAgIGlmIChwcmV2aW91c2x5U2VsZWN0
ZWRUcmFjayA9PT0gbmV3U2VsZWN0ZWRUcmFjaykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgcHJl
dmlvdXNseVNlbGVjdGVkVHJhY2sgPSBuZXdTZWxlY3RlZFRyYWNrOwotCi0gICAgZGVidWcoIiIp
OwotICAgIGRlYnVnKCJPYnRhaW5lZCBjaGFuZ2UgZXZlbnQgb24gbWVkaWEgYXVkaW8gdHJhY2tz
Iik7Ci0KLSAgICBkdW1wQXVkaW9UcmFja3NFbmFibGVkU3RhdGUoKTsKLQotICAgIGlmIChtZWRp
YS5hdWRpb1RyYWNrc1sxXS5lbmFibGVkKQotICAgICAgICBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3IoIi50cmFja3MtcGFuZWwiKS5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIiwgZXZl
bnQgPT4gY2xpY2tPblRyYWNrc0J1dHRvbihjbGlja09uVGhpcmRBdWRpb1RyYWNrKSk7Ci0gICAg
ZWxzZSBpZiAobWVkaWEuYXVkaW9UcmFja3NbMl0uZW5hYmxlZCkgewotICAgICAgICBkZWJ1Zygi
Iik7Ci0gICAgICAgIG1lZGlhLnJlbW92ZSgpOwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAg
ICB9Ci19Ci0KLWZ1bmN0aW9uIGR1bXBBdWRpb1RyYWNrc0VuYWJsZWRTdGF0ZSgpCi17Ci0gICAg
QXJyYXkuZnJvbShtZWRpYS5hdWRpb1RyYWNrcykuZm9yRWFjaCgoYXVkaW9UcmFjaywgaW5kZXgp
ID0+IHsKLSAgICAgICAgZGVidWcoYG1lZGlhLmF1ZGlvVHJhY2tzWyR7aW5kZXh9XS5lbmFibGVk
ID0gJHttZWRpYS5hdWRpb1RyYWNrc1tpbmRleF0uZW5hYmxlZH1gKTsKLSAgICB9KTsKLX0KLQot
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRy
YWNrcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhZDNmYzE5NmI2NTk5NWYzYTcwNGM3
YzIxNzgwZjUzMzI2YWI4NGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1z
dXBwb3J0L3RyYWNrcy1zdXBwb3J0LWhpZGRlbi10cmFja3MtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMjEgKzAsMCBAQAotVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSB0cmFja3Mg
cGFuZWwgZG9lc24ndCBzaG93IGFueSB0cmFjayBhcyBzZWxlY3RlZCBpZiBhbGwgdGhlIHRleHQg
dHJhY2tzIGZvciBhIG1lZGlhIGVsZW1lbnQgYXJlIG1hcmtlZCBhcyAiaGlkZGVuIi4KLQotT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCdidXR0b24udHJhY2tzJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1Mgc2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCkud2lkdGggYmVjYW1lIGRpZmZlcmVudCBmcm9tIDAKLQotPT09IEluaXRpYWwgc3RhdGUgPT09
Ci0KLVt4XSBPZmYKLVstXSBBdXRvIChSZWNvbW1lbmRlZCkKLVstXSBFbmdsaXNoIFN1YnRpdGxl
cwotWy1dIEZyZW5jaCBTdWJ0aXRsZXMKLVstXSBHZXJtYW4gU3VidGl0bGVzCi1bLV0gU3Bhbmlz
aCBTdWJ0aXRsZXMKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENP
TVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1oaWRkZW4tdHJhY2tzLmh0bWwgYi9M
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJh
Y2tzLXN1cHBvcnQtaGlkZGVuLXRyYWNrcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA1NjI3Nzg1ZDRiOTEwYmQxNWY2MWEyZjdjOWFiMDBhMGFkOTNiMzFmLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1oaWRkZW4t
dHJhY2tzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIuLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3Yi
IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDY0MHB4
OyBoZWlnaHQ6IDM2MHB4OyIgY29udHJvbHMgYXV0b3BsYXk+PC92aWRlbz4KLTxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1k
ZXNjcmlwdGlvbihgVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSB0cmFja3MgcGFuZWwgZG9lc24n
dCBzaG93IGFueSB0cmFjayBhcyBzZWxlY3RlZCBpZiBhbGwgdGhlIHRleHQgdHJhY2tzIGZvciBh
IG1lZGlhIGVsZW1lbnQgYXJlIG1hcmtlZCBhcyAiaGlkZGVuIi5gKTsKLQotY29uc3QgbWVkaWEg
PSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hhZG93Um9vdCA9IHdp
bmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlhLmFkZEV2ZW50TGlzdGVu
ZXIoInBsYXkiLCAoKSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLQotICAgIHNob3VsZEJlY29t
ZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykiLCAi
bnVsbCIsICgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFkb3dSb290
LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53
aWR0aCIsICIwIiwgcnVuVGVzdCk7Ci0gICAgfSk7Ci19KTsKLQotYXN5bmMgZnVuY3Rpb24gcnVu
VGVzdCgpCi17Ci0gICAgLy8gU3RhcnQgYnkgbWFraW5nIHN1cmUgYWxsIHRyYWNrcyBhcmUgbWFy
a2VkIGFzICJoaWRkZW4iLgotICAgIEFycmF5LmZyb20obWVkaWEudGV4dFRyYWNrcykuZm9yRWFj
aCh0cmFjayA9PiB0cmFjay5tb2RlID0gImhpZGRlbiIpOwotCi0gICAgLy8gTmV4dCwgYnJpbmcg
dXAgdGhlIHRyYWNrcyBtZW51IGJ5IGNsaWNraW5nIG9uIHRoZSB0cmFja3MgYnV0dG9uLgotICAg
IGF3YWl0IGNsaWNrT25UcmFja3NCdXR0b24oKTsKLSAgICAvLyBEdW1wIHRoZSBzdGF0ZSBvZiB0
aGUgdHJhY2tzIG1lbnUgZm9yIHRleHQgdHJhY2tzLCB3aGljaCBzaG91bGQgc2hvdyB0aGUgZmly
c3QgZW1iZWRkZWQgdGV4dCB0cmFjayBhcyBzZWxlY3RlZC4KLSAgICBkdW1wVGV4dFRyYWNrc0xp
c3ROb2RlcygiSW5pdGlhbCBzdGF0ZSIpOwotCi0gICAgZmluaXNoVGVzdCgpOwotfQotCi1mdW5j
dGlvbiB0ZXh0VHJhY2tzTGlzdE5vZGVzKCkKLXsKLSAgICByZXR1cm4gc2hhZG93Um9vdC5xdWVy
eVNlbGVjdG9yQWxsKCIudHJhY2tzLXBhbmVsIHNlY3Rpb246bGFzdC1vZi10eXBlID4gdWwgPiBs
aSIpOwotfQotCi1mdW5jdGlvbiBkdW1wVGV4dFRyYWNrc0xpc3ROb2Rlcyhtc2cpCi17Ci0gICAg
ZGVidWcoIiIpOwotICAgIGRlYnVnKGA9PT0gJHttc2d9ID09PWApOwotICAgIGRlYnVnKCIiKTsK
LSAgICBBcnJheS5mcm9tKHRleHRUcmFja3NMaXN0Tm9kZXMoKSkuZm9yRWFjaChsaSA9PiBkZWJ1
ZyhgJHtsaS5jbGFzc0xpc3QuY29udGFpbnMoInNlbGVjdGVkIikgPyAiW3hdIiA6ICJbLV0ifSAk
e2xpLnRleHRDb250ZW50fWApKTsKLX0KLQotYXN5bmMgZnVuY3Rpb24gY2xpY2tPblRyYWNrc0J1
dHRvbigpCi17Ci0gICAgYXdhaXQgbmV3IFByb21pc2UocmVxdWVzdEFuaW1hdGlvbkZyYW1lKTsK
LSAgICBjbGlja09uRWxlbWVudChzaGFkb3dSb290Lmxhc3RDaGlsZC5xdWVyeVNlbGVjdG9yKCJi
dXR0b24udHJhY2tzIikpOwotICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlcXVlc3RBbmltYXRpb25G
cmFtZSk7Ci19Ci0KLWZ1bmN0aW9uIGNsaWNrT25FbGVtZW50KGVsZW1lbnQpCi17Ci0gICAgY29u
c3QgYm91bmRzID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbyhib3VuZHMubGVmdCArIDEsIGJvdW5kcy50b3AgKyAxKTsKLSAgICBl
dmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci19Ci0K
LWZ1bmN0aW9uIGZpbmlzaFRlc3QoKQotewotICAgIGRlYnVnKCIiKTsKLSAgICBtZWRpYS5yZW1v
dmUoKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tz
LXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNr
cy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNrLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZmIzZTMxODA1ZGVlODI3ZjhiN2U4YWYxMWEwZmJiOTY1MDVlODE3ZC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQt
b2ZmLXRleHQtdHJhY2stZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBA
QAotRW5zdXJlIHdlIGhhdmUgdGhlIE9mZiB0ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5IGRlZmF1bHQu
Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1QQVNT
IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCi1QQVNTIHNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxs
Ci1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnbGkuc2VsZWN0ZWQnKVsxXS50ZXh0
Q29udGVudCBpcyAiT2ZmIgotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LW9mZi10ZXh0LXRyYWNrLmh0
bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBv
cnQvdHJhY2tzLXN1cHBvcnQtb2ZmLXRleHQtdHJhY2suaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZWNiOWQ2ZTRlMjhhYmU4ZDhiOGYzNTM5N2I0ZWQ4Mjg5Yjg4MmVkNi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQt
b2ZmLXRleHQtdHJhY2suaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0
aWxzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8g
c3JjPSIuLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJwb3NpdGlvbjogYWJz
b2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgd2lkdGg6IDY0MHB4OyBoZWlnaHQ6IDM2MHB4OyIgY29u
dHJvbHMgYXV0b3BsYXk+PC92aWRlbz4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
LQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1kZXNjcmlwdGlvbigiRW5zdXJlIHdl
IGhhdmUgdGhlIE9mZiB0ZXh0IHRyYWNrIHNlbGVjdGVkIGJ5IGRlZmF1bHQuIik7Ci0KLWNvbnN0
IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jv
b3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOwotCi1tZWRpYS5hZGRFdmVu
dExpc3RlbmVyKCJwbGF5IiwgKCkgPT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0KLSAgICBzaG91
bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNr
cycpIiwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCkud2lkdGgiLCAiMCIsICgpID0+IHsKLSAgICAgICAgICAgIHByZXNzT25FbGVtZW50KHNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKTsKLSAgICAgICAgICAgIHNo
b3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBh
bmVsJykiLCAibnVsbCIsICgpID0+IHsKLSAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnbGkuc2VsZWN0ZWQnKVsxXS50ZXh0
Q29udGVudCIsICJPZmYiKTsKLSAgICAgICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAg
ICAgICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0g
ICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19KTsKLQotPC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQtcG9wdWxhdGUtcGFu
ZWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDUyZDZjYjE5ODc4ODA1
ODljYTBlYzhhZGUwMDA3MTE3YjNhZDUwNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtc2hvdy1hbmQtcG9wdWxhdGUtcGFuZWwtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotU2hvd2luZyBhbmQgcG9w
dWxhdGluZyB0aGUgdHJhY2tzIHBhbmVsLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0K
LQotQXVkaW8KLSAgRW5nbGlzaCBTb3VuZAotICBGcmVuY2ggU291bmQKLSAgU3BhbmlzaCBTb3Vu
ZAotCi1TdWJ0aXRsZXMKLSAgT2ZmCi0gIEF1dG8gKFJlY29tbWVuZGVkKQotICBFbmdsaXNoIFN1
YnRpdGxlcwotICBGcmVuY2ggU3VidGl0bGVzCi0gIEdlcm1hbiBTdWJ0aXRsZXMKLSAgU3Bhbmlz
aCBTdWJ0aXRsZXMKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENP
TVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LWFuZC1wb3B1bGF0ZS1wYW5l
bC5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1z
dXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAzYjNhMmIwMjA3NmQxMTUzNWJiMGJmMjViMDJkZjA3
ZmZmZjkyMTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3Ry
YWNrcy1zdXBwb3J0LXNob3ctYW5kLXBvcHVsYXRlLXBhbmVsLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw0NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIu
Li8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJ3aWR0aDogNjQwcHg7IGhlaWdo
dDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgotPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0
aW9uKCJTaG93aW5nIGFuZCBwb3B1bGF0aW5nIHRoZSB0cmFja3MgcGFuZWwuIik7Ci0KLWNvbnN0
IG1lZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLWNvbnN0IHNoYWRvd1Jv
b3QgPSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOwotCi1tZWRpYS5hZGRFdmVu
dExpc3RlbmVyKCJwbGF5IiwgKCkgPT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0gICAgd2luZG93
LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAgICAgIGNsaWNrT25UcmFja3NCdXR0
b24oKTsKLSAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7Ci0gICAg
ICAgICAgICBsaXN0Q29udGVudHNPZlRyYWNrc1BhbmVsKCk7Ci0gICAgICAgICAgICBtZWRpYS5y
ZW1vdmUoKTsKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9KTsKLSAgICB9
KTsKLX0pOwotCi1mdW5jdGlvbiBjbGlja09uVHJhY2tzQnV0dG9uKCkKLXsKLSAgICBjb25zdCBi
b3VuZHMgPSBzaGFkb3dSb290Lmxhc3RDaGlsZC5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tz
IikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
Ym91bmRzLmxlZnQgKyAxLCBib3VuZHMudG9wICsgMSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VE
b3duKCk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotfQotCi1mdW5jdGlvbiBsaXN0Q29u
dGVudHNPZlRyYWNrc1BhbmVsKCkKLXsKLSAgICBmb3IgKGxldCBzZWN0aW9uIG9mIHNoYWRvd1Jv
b3QubGFzdENoaWxkLnF1ZXJ5U2VsZWN0b3JBbGwoInNlY3Rpb24iKSkgewotICAgICAgICBkZWJ1
ZyhzZWN0aW9uLnF1ZXJ5U2VsZWN0b3IoImgzIikudGV4dENvbnRlbnQpOwotICAgICAgICBmb3Ig
KGxldCBpdGVtIG9mIHNlY3Rpb24ucXVlcnlTZWxlY3RvckFsbCgibGkiKSkKLSAgICAgICAgICAg
IGRlYnVnKCIgICIgKyBpdGVtLnRleHRDb250ZW50KTsKLSAgICAgICAgZGVidWcoIiIpOwotICAg
IH0KLX0KLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQt
c2hvdy1wYW5lbC1hZnRlci1kcmFnZ2luZy1jb250cm9scy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1
cHBvcnQtc2hvdy1wYW5lbC1hZnRlci1kcmFnZ2luZy1jb250cm9scy1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5ODQzMGJmMzhmMTI2NjBiOGVmY2M3OTYxNmVm
MTg0YjUxMDg0ZTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJvbHMtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotVGVzdGluZyB0aGUgZGlzcGxh
eSBvZiBhIHRyYWNrcyBwYW5lbCBhZnRlciBkcmFnZ2luZyB0aGUgY29udHJvbHMgYmFyIGluIGZ1
bGxzY3JlZW4uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHNoYWRvd1Jv
b3QucXVlcnlTZWxlY3RvcignYnV0dG9uLmZ1bGxzY3JlZW4nKS5nZXRCb3VuZGluZ0NsaWVudFJl
Y3QoKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gMAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSBiZWNhbWUgZGlmZmVy
ZW50IGZyb20gMAotUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3Mn
KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCBpcyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3IoJy50cmFja3MtcGFuZWwnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodAotUEFTUyBz
aGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5zdHlsZS5ib3R0b20gaXMg
IjE1MXB4IgotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExF
VEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmct
Y29udHJvbHMuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90
cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWFmdGVyLWRyYWdnaW5nLWNv
bnRyb2xzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhZWRhOTg1MTcxYWQ0
MWNiNmY2NGY4NGQ4Mzg0ODdiN2Q4Mjg0ZjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmct
Y29udHJvbHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxzLmpz
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3JjPSIu
Li8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJ3aWR0aDogMzIwcHg7IGhlaWdo
dDogMjQwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgotPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0
aW9uKCJUZXN0aW5nIHRoZSBkaXNwbGF5IG9mIGEgdHJhY2tzIHBhbmVsIGFmdGVyIGRyYWdnaW5n
IHRoZSBjb250cm9scyBiYXIgaW4gZnVsbHNjcmVlbi4iKTsKLQotY29uc3QgbWVkaWEgPSBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5p
bnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlhLmFkZEV2ZW50TGlzdGVuZXIoIndl
YmtpdGJlZ2luZnVsbHNjcmVlbiIsICgpID0+IHsKLSAgICBkZWJ1Zygid2Via2l0YmVnaW5mdWxs
c2NyZWVuIik7Ci19KTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0ZnVsbHNjcmVl
bmNoYW5nZSIsICgpID0+IHsKLSAgICBpZiAoIW1lZGlhLndlYmtpdERpc3BsYXlpbmdGdWxsc2Ny
ZWVuKQotICAgICAgICByZXR1cm47Ci0KLSAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1l
KCgpID0+IHsKLSAgICAgICAgY29uc3QgYm91bmRzID0gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCIuY29udHJvbHMtYmFyIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKGJvdW5kcy5sZWZ0ICsgMTE4LCBib3VuZHMudG9wICsgMTApOwot
ICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oYm91bmRzLmxlZnQgKyA2OCwgYm91bmRzLnRvcCAtIDQwKTsKLSAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VVcCgpOwotCi0gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9
PiB7Ci0gICAgICAgICAgICBjbGlja09uQnV0dG9uKCJ0cmFja3MiLCAoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKLSAgICAgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0IiwgInNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcign
LnRyYWNrcy1wYW5lbCcpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0IikKLSAgICAgICAg
ICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3IoJy50cmFja3MtcGFuZWwnKS5zdHlsZS5ib3R0b20iLCAiMTUxcHgiKTsKLQotICAgICAgICAg
ICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICAgICAgICAgIG1lZGlhLnJlbW92ZSgp
OwotICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0pOwotCi1tZWRpYS5h
ZGRFdmVudExpc3RlbmVyKCJwbGF5IiwgKCkgPT4gewotICAgIG1lZGlhLnBhdXNlKCk7Ci0gICAg
d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiBjbGlja09uQnV0dG9uKCJmdWxsc2Ny
ZWVuIikpOwotfSk7Ci0KLWZ1bmN0aW9uIGNsaWNrT25CdXR0b24obmFtZSwgY29udGludWF0aW9u
KQotewotICAgIHNob3VsZEJlY29tZURpZmZlcmVudChgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y
KCdidXR0b24uJHtuYW1lfScpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpYCwgIjAiLCAoKSA9PiB7
Ci0gICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgYnV0dG9u
LiR7bmFtZX1gKSwgY29udGludWF0aW9uKTsKLSAgICB9KTsKLX0KLQotPC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC1mdWxsc2NyZWVuLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFj
a3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxzY3JlZW4tZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NTE1MjU1MDQyODA4ZGM2ZjNkMWQ5
YWE3MTNlNjE2ZTUyOTc1ZWEzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxzY3JlZW4tZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotU2hvd2luZyB0aGUgdHJhY2tzIHBhbmVs
IGluIGZ1bGxzY3JlZW4uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGlu
dGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0b24uZnVsbHNjcmVl
biIpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCi1QQVNTIGludGVybmFscy5zaGFkb3dSb290
KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0b24uZnVsbHNjcmVlbiIpLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCi1QQVNTIG1lZGlhLndlYmtp
dERpc3BsYXlpbmdGdWxsc2NyZWVuIGJlY2FtZSB0cnVlCi1QQVNTIGludGVybmFscy5zaGFkb3dS
b290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikgYmVjYW1lIGRpZmZlcmVu
dCBmcm9tIG51bGwKLVBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0
b3IoImJ1dHRvbi50cmFja3MiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUg
ZGlmZmVyZW50IGZyb20gMAotUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlT
ZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0IGJl
Y2FtZSA1ODIKLVBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3Io
Jy50cmFja3MtcGFuZWwnKSBiZWNhbWUgZGlmZmVyZW50IGZyb20gbnVsbAotUEFTUyBpbnRlcm5h
bHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpLnN0eWxl
LnJpZ2h0IGlzICIyMThweCIKLVBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5
U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5zdHlsZS5ib3R0b20gaXMgIjEwMXB4IgotCi1QQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0
L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtZnVsbHNjcmVlbi5odG1sIGIvTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0
LXNob3ctcGFuZWwtZnVsbHNjcmVlbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwYzAzOTY1ZDk1ZDM4NmVlY2RmNzZhOTU2YjgxOTA5ZTZjNjY3NGFhLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVs
LWZ1bGxzY3JlZW4uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxz
LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgotPGJvZHk+Ci08dmlkZW8gc3Jj
PSIuLi8uLi9jb250ZW50L0NDK1N1YnRpdGxlcy5tb3YiIHN0eWxlPSJ3aWR0aDogMzIwcHg7IGhl
aWdodDogMjQwcHg7IiBjb250cm9scyBhdXRvcGxheT48L3ZpZGVvPgotPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWRlc2Ny
aXB0aW9uKCJTaG93aW5nIHRoZSB0cmFja3MgcGFuZWwgaW4gZnVsbHNjcmVlbi4iKTsKLQotc2V0
VGltZW91dCgoKSA9PiB7Ci0gICAgZGVidWcoIkZBSUw6IGRpZCBub3QgZW5kIGZhc3QgZW5vdWdo
Iik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19LCAxMDAwMCk7Ci0KLWNvbnN0IG1lZGlhID0gZG9j
dW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKLQotbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigi
d2Via2l0ZnVsbHNjcmVlbmNoYW5nZSIsICgpID0+IHsKLSAgICBzaG91bGRCZWNvbWVFcXVhbCgi
bWVkaWEud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4iLCAidHJ1ZSIsICgpID0+IHsKLSAgICAg
ICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KGBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVl
cnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpYCwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAgICAg
ICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoYGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVy
eVNlbGVjdG9yKCJidXR0b24udHJhY2tzIikuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGhg
LCAiMCIsICgpID0+IHsKLSAgICAgICAgICAgICAgICBzaG91bGRCZWNvbWVFcXVhbChgaW50ZXJu
YWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50cmFja3MiKS5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodGAsICI1ODIiLCAoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgICAgIHByZXNzT25FbGVtZW50KGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNl
bGVjdG9yKCJidXR0b24udHJhY2tzIikpOwotICAgICAgICAgICAgICAgICAgICBzaG91bGRCZWNv
bWVEaWZmZXJlbnQoYGludGVybmFscy5zaGFkb3dSb290KG1lZGlhKS5xdWVyeVNlbGVjdG9yKCcu
dHJhY2tzLXBhbmVsJylgLCAibnVsbCIsICgpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygiaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5
U2VsZWN0b3IoJy50cmFja3MtcGFuZWwnKS5zdHlsZS5yaWdodCIsICIyMThweCIpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnRlcm5hbHMuc2hhZG93
Um9vdChtZWRpYSkucXVlcnlTZWxlY3RvcignLnRyYWNrcy1wYW5lbCcpLnN0eWxlLmJvdHRvbSIs
ICIxMDFweCIpOwotICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19KTsKLQotbWVkaWEu
YWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+IHsKLSAgICBtZWRpYS5wYXVzZSgpOwotICAg
IHNob3VsZEJlY29tZURpZmZlcmVudChgaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpLnF1ZXJ5
U2VsZWN0b3IoImJ1dHRvbi5mdWxsc2NyZWVuIilgLCAibnVsbCIsICgpID0+IHsKLSAgICAgICAg
c2hvdWxkQmVjb21lRGlmZmVyZW50KGBpbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSkucXVlcnlT
ZWxlY3RvcigiYnV0dG9uLmZ1bGxzY3JlZW4iKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0
aGAsICIwIiwgKCkgPT4gewotICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoaW50ZXJuYWxzLnNo
YWRvd1Jvb3QobWVkaWEpLnF1ZXJ5U2VsZWN0b3IoYGJ1dHRvbi5mdWxsc2NyZWVuYCkpOwotICAg
ICAgICB9KTsKLSAgICB9KTsKLX0pOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1i
dXR0b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtdGhlbi1kb3VibGUt
Y2xpY2stb24tdHJhY2tzLWJ1dHRvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDk4YmQ3NzhjMjgyMmY4M2Y0Y2ZlOGUxMzQxNTJmMDdhMjRjMTQ2YWEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNo
b3ctcGFuZWwtdGhlbi1kb3VibGUtY2xpY2stb24tdHJhY2tzLWJ1dHRvbi1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi1FbnN1cmUgdGhhdCBkb3VibGUtY2xpY2tp
bmcgdGhlIHRyYWNrcyBidXR0b24gd2hlbiB0aGUgdHJhY2tzIHBhbmVsIG1ha2VzIHRoZSBwYW5l
bCBhcHBlYXIgYWdhaW4uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1NZWRpYSBz
dGFydGVkIHBsYXlpbmcKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJh
Y2tzJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNl
bGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggYmVj
YW1lIGRpZmZlcmVudCBmcm9tIDAKLVBBU1Mgc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcudHJh
Y2tzLXBhbmVsJykgYmVjYW1lIGRpZmZlcmVudCBmcm9tIG51bGwKLVBBU1Mgc2hhZG93Um9vdC5x
dWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykgaXMgbm90IG51bGwKLQotUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mt
c3VwcG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1idXR0b24uaHRt
bCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLXRoZW4tZG91YmxlLWNsaWNrLW9uLXRyYWNrcy1i
dXR0b24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDg1NjQxOWMyOWJjMzI5
YmU5OWNiOTYyMmNkOTJhNDM1OTM4MWYyMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
dHJhY2tzLXN1cHBvcnQvdHJhY2tzLXN1cHBvcnQtc2hvdy1wYW5lbC10aGVuLWRvdWJsZS1jbGlj
ay1vbi10cmFja3MtYnV0dG9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9s
cy11dGlscy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxib2R5PgotPHZp
ZGVvIHNyYz0iLi4vLi4vY29udGVudC9DQytTdWJ0aXRsZXMubW92IiBzdHlsZT0icG9zaXRpb246
IGFic29sdXRlOyBsZWZ0OiAwOyB0b3A6IDA7IHdpZHRoOiA2NDBweDsgaGVpZ2h0OiAzNjBweDsi
IGNvbnRyb2xzIGF1dG9wbGF5PjwvdmlkZW8+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCI+Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZGVzY3JpcHRpb24oIkVuc3Vy
ZSB0aGF0IGRvdWJsZS1jbGlja2luZyB0aGUgdHJhY2tzIGJ1dHRvbiB3aGVuIHRoZSB0cmFja3Mg
cGFuZWwgbWFrZXMgdGhlIHBhbmVsIGFwcGVhciBhZ2Fpbi4iKTsKLQotY29uc3QgbWVkaWEgPSBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRv
dy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlhLmFkZEV2ZW50TGlzdGVuZXIo
InBsYXkiLCAoKSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLQotICAgIGRlYnVnKCJNZWRpYSBz
dGFydGVkIHBsYXlpbmciKTsKLSAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIiwgIm51bGwiLCAoKSA9PiB7Ci0gICAgICAg
IHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24u
dHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgiLCAiMCIsICgpID0+IHsKLSAg
ICAgICAgICAgIHByZXNzT25FbGVtZW50KHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9u
LnRyYWNrcyIpKTsKLSAgICAgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9v
dC5xdWVyeVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykiLCAibnVsbCIsICgpID0+IHsKLSAgICAg
ICAgICAgICAgICBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoImJ1dHRv
bi50cmFja3MiKSk7Ci0gICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+
IHsKLSAgICAgICAgICAgICAgICAgICAgcHJlc3NPbkVsZW1lbnQoc2hhZG93Um9vdC5xdWVyeVNl
bGVjdG9yKCJidXR0b24udHJhY2tzIikpOwotICAgICAgICAgICAgICAgICAgICAvLyBHaXZlIHRo
ZSB0cmFuc2l0aW9uZW5kIGV2ZW50IHRpbWUgdG8gZmlyZSBpZiBpdCB3ZXJlIHRvIGhhcHBlbiwg
d2hpY2ggaXQgc2hvdWxkIG5vdC4KLSAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzaG91bGROb3RCZSgic2hhZG93Um9vdC5xdWVy
eVNlbGVjdG9yKCcudHJhY2tzLXBhbmVsJykiLCAibnVsbCIpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgZGVidWcoIiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgICAgICAg
ICAgICAgfSwgNTAwKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAg
ICAgICB9KTsKLSAgICB9KTsKLX0pOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9y
dC90cmFja3Mtc3VwcG9ydC10ZXh0LXRyYWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGktZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1z
dXBwb3J0L3RyYWNrcy1zdXBwb3J0LXRleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjOGM3MzQ1NjBiZTg4
OGUyZTQ4ZTE5ZmU1YWQzZDY1YzUxOTNhNTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXRleHQtdHJhY2stc2VsZWN0ZWQtdmlhLW1l
ZGlhLWFwaS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi1UaGlz
IHRlc3QgY2hlY2tzIHRoYXQgc2V0dGluZyBhbiBlbWJlZGRlZCB0ZXh0IHRyYWNrIGFzIHNlbGVj
dGVkIHZpYSB0aGUgSFRNTE1lZGlhRWxlbWVudCBKUyBBUElzIHdpbGwgY29ycmVjdGx5IHNob3cg
dGhpcyB0cmFjayBhcyBzZWxlY3RlZCwgYW5kIHRoYXQgc2VsZWN0aW5nIHRoZSAiQXV0b21hdGlj
IChSZWNvbW1lbmRlZCkiIHRyYWNrIHdpbGwgcmV2ZXJ0IGJhY2sgdG8gc2VsZWN0aW5nIHRoYXQg
ZW50cnkuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxs
Ci1QQVNTIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCi0KLT09PSBJbml0
aWFsIHN0YXRlID09PQotCi1bLV0gT2ZmCi1bLV0gQXV0byAoUmVjb21tZW5kZWQpCi1beF0gRW5n
bGlzaCBTdWJ0aXRsZXMKLVstXSBGcmVuY2ggU3VidGl0bGVzCi1bLV0gR2VybWFuIFN1YnRpdGxl
cwotWy1dIFNwYW5pc2ggU3VidGl0bGVzCi0KLT09PSBBZnRlciBwaWNraW5nIGF1dG8gdHJhY2sg
aW50ZXJhY3RpdmVseSA9PT0KLQotWy1dIE9mZgotW3hdIEF1dG8gKFJlY29tbWVuZGVkKQotWy1d
IEVuZ2xpc2ggU3VidGl0bGVzCi1bLV0gRnJlbmNoIFN1YnRpdGxlcwotWy1dIEdlcm1hbiBTdWJ0
aXRsZXMKLVstXSBTcGFuaXNoIFN1YnRpdGxlcwotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXRleHQt
dHJhY2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXRleHQtdHJh
Y2stc2VsZWN0ZWQtdmlhLW1lZGlhLWFwaS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAxMjM0Y2I5MDE1Mjg2YzhlYmU2NGRkNjI5YmUxODljMjZjOTM1MjdjLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC90cmFja3Mtc3VwcG9ydC10ZXh0LXRy
YWNrLXNlbGVjdGVkLXZpYS1tZWRpYS1hcGkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDg4ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08Ym9keT4KLTx2aWRlbyBzcmM9Ii4uLy4uL2NvbnRl
bnQvQ0MrU3VidGl0bGVzLm1vdiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsg
dG9wOiAwOyB3aWR0aDogNjQwcHg7IGhlaWdodDogMzYwcHg7IiBjb250cm9scyBhdXRvcGxheT48
L3ZpZGVvPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi13aW5kb3cuanNUZXN0
SXNBc3luYyA9IHRydWU7Ci0KLWRlc2NyaXB0aW9uKGBUaGlzIHRlc3QgY2hlY2tzIHRoYXQgc2V0
dGluZyBhbiBlbWJlZGRlZCB0ZXh0IHRyYWNrIGFzIHNlbGVjdGVkIHZpYSB0aGUgSFRNTE1lZGlh
RWxlbWVudCBKUyBBUElzIHdpbGwgY29ycmVjdGx5IHNob3cgdGhpcyB0cmFjayBhcyBzZWxlY3Rl
ZCwgYW5kIHRoYXQgc2VsZWN0aW5nIHRoZSAKLSJBdXRvbWF0aWMgKFJlY29tbWVuZGVkKSIgdHJh
Y2sgd2lsbCByZXZlcnQgYmFjayB0byBzZWxlY3RpbmcgdGhhdCBlbnRyeS5gKTsKLQotY29uc3Qg
bWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOwotY29uc3Qgc2hhZG93Um9v
dCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7Ci0KLW1lZGlhLmFkZEV2ZW50
TGlzdGVuZXIoInBsYXkiLCAoKSA9PiB7Ci0gICAgbWVkaWEucGF1c2UoKTsKLQotICAgIHNob3Vs
ZEJlY29tZURpZmZlcmVudCgic2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tz
JykiLCAibnVsbCIsICgpID0+IHsKLSAgICAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFk
b3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJl
Y3QoKS53aWR0aCIsICIwIiwgcnVuVGVzdCk7Ci0gICAgfSk7Ci19KTsKLQotYXN5bmMgZnVuY3Rp
b24gcnVuVGVzdCgpCi17Ci0gICAgLy8gU3RhcnQgYnkgc2VsZWN0aW5nIG9uZSBvZiB0aGUgdGV4
dCB0cmFja3MgdXNpbmcgdGhlIG1lZGlhIEpTIEFQSS4KLSAgICAvLyBUaGlzIHdpbGwgY2F1c2Ug
dGV4dFRyYWNrc0RpZENoYW5nZSB0byBiZSBjYWxsZWQgZm9yIHRoZSBmaXJzdCB0aW1lLgotICAg
IG1lZGlhLnRleHRUcmFja3NbMF0ubW9kZSA9ICJzaG93aW5nIjsKLQotICAgIC8vIE5leHQsIGJy
aW5nIHVwIHRoZSB0cmFja3MgbWVudSBieSBjbGlja2luZyBvbiB0aGUgdHJhY2tzIGJ1dHRvbi4K
LSAgICBhd2FpdCBjbGlja09uVHJhY2tzQnV0dG9uKCk7Ci0gICAgLy8gRHVtcCB0aGUgc3RhdGUg
b2YgdGhlIHRyYWNrcyBtZW51IGZvciB0ZXh0IHRyYWNrcywgd2hpY2ggc2hvdWxkIHNob3cgdGhl
IGZpcnN0IGVtYmVkZGVkIHRleHQgdHJhY2sgYXMgc2VsZWN0ZWQuCi0gICAgZHVtcFRleHRUcmFj
a3NMaXN0Tm9kZXMoIkluaXRpYWwgc3RhdGUiKTsKLSAgICAvLyBOb3csIHNlbGVjdCB0aGUgIkF1
dG9tYXRpYyAoUmVjb21tZW5kZWQpIiB0ZXh0IHRyYWNrLiAKLSAgICBhd2FpdCBjbGlja09uVGV4
dFRyYWNrQXRJbmRleCgxKTsKLSAgICAvLyBXYWl0IGZvciB0aGUgc2VsZWN0aW9uIHRvIGhhdmUg
Z29uZSB0aHJvdWdoIGFuZCB0aGUgcGFuZWwgdG8gaGF2ZSB0cmFuc2l0aW9uZWQgb3V0IG9mIHZp
ZXcuCi0gICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzaGFkb3dSb290LnF1ZXJ5U2Vs
ZWN0b3IoIi50cmFja3MtcGFuZWwiKS5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIiwg
cmVzb2x2ZSwgeyBvbmNlOiB0cnVlIH0pKTsKLQotICAgIC8vIE5vdywgYnJpbmcgdXAgdGhlIHRy
YWNrcyBtZW51IGFnYWluIGJ5IGNsaWNraW5nIG9uIHRoZSB0cmFja3MgYnV0dG9uLgotICAgIGF3
YWl0IGNsaWNrT25UcmFja3NCdXR0b24oKTsKLSAgICAvLyBEdW1wIHRoZSBzdGF0ZSBvZiB0aGUg
dHJhY2tzIG1lbnUgZm9yIHRleHQgdHJhY2tzLCB3aGljaCBzaG91bGQgbm93IHNob3cgIkF1dG9t
YXRpYyAoUmVjb21tZW5kZWQpIiBhcyBzZWxlY3RlZC4KLSAgICBkdW1wVGV4dFRyYWNrc0xpc3RO
b2RlcygiQWZ0ZXIgcGlja2luZyBhdXRvIHRyYWNrIGludGVyYWN0aXZlbHkiKTsKLQotICAgIGZp
bmlzaFRlc3QoKTsKLX0KLQotZnVuY3Rpb24gdGV4dFRyYWNrc0xpc3ROb2RlcygpCi17Ci0gICAg
cmV0dXJuIHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgiLnRyYWNrcy1wYW5lbCBzZWN0aW9u
Omxhc3Qtb2YtdHlwZSA+IHVsID4gbGkiKTsKLX0KLQotZnVuY3Rpb24gZHVtcFRleHRUcmFja3NM
aXN0Tm9kZXMobXNnKQotewotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZyhgPT09ICR7bXNnfSA9
PT1gKTsKLSAgICBkZWJ1ZygiIik7Ci0gICAgQXJyYXkuZnJvbSh0ZXh0VHJhY2tzTGlzdE5vZGVz
KCkpLmZvckVhY2gobGkgPT4gZGVidWcoYCR7bGkuY2xhc3NMaXN0LmNvbnRhaW5zKCJzZWxlY3Rl
ZCIpID8gIlt4XSIgOiAiWy1dIn0gJHtsaS50ZXh0Q29udGVudH1gKSk7Ci19Ci0KLWFzeW5jIGZ1
bmN0aW9uIGNsaWNrT25UcmFja3NCdXR0b24oKQotewotICAgIGF3YWl0IG5ldyBQcm9taXNlKHJl
cXVlc3RBbmltYXRpb25GcmFtZSk7Ci0gICAgY2xpY2tPbkVsZW1lbnQoc2hhZG93Um9vdC5sYXN0
Q2hpbGQucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKTsKLSAgICBhd2FpdCBuZXcgUHJv
bWlzZShyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpOwotfQotCi1mdW5jdGlvbiBjbGlja09uVGV4dFRy
YWNrQXRJbmRleChpbmRleCkKLXsKLSAgICBjbGlja09uRWxlbWVudCh0ZXh0VHJhY2tzTGlzdE5v
ZGVzKClbaW5kZXhdKTsKLX0KLQotZnVuY3Rpb24gY2xpY2tPbkVsZW1lbnQoZWxlbWVudCkKLXsK
LSAgICBjb25zdCBib3VuZHMgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGJvdW5kcy5sZWZ0ICsgMSwgYm91bmRzLnRvcCArIDEp
OwotICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAo
KTsKLX0KLQotZnVuY3Rpb24gZmluaXNoVGVzdCgpCi17Ci0gICAgZGVidWcoIiIpOwotICAgIG1l
ZGlhLnJlbW92ZSgpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfQotCi08L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMWEx
ZDFjMDg5ZTVjMjZjMmJhMmFmNDE4ZmVkMDdlM2ZiYmY2NTFkMS4uNGUzM2U5YzliMzBmZWU1Njlh
NDk5ZDhkNjNmMjE4NmExOTVhM2RjMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTEyNjIsNiArMTI2Miw3IEBAIG1lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy9tZWRpYS1kb2N1bWVudHMvbWVkaWEtZG9jdW1lbnQtYXVkaW8taW9zLXNpemluZy5odG1s
CiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtZG9jdW1lbnRzL21lZGlhLWRvY3Vt
ZW50LXZpZGVvLWlwaG9uZS1zaXppbmcuaHRtbCBbIFNraXAgXQogbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL21lZGlhLWRvY3VtZW50cy9tZWRpYS1kb2N1bWVudC12aWRlby1pcGFkLXNpemlu
Zy5odG1sIFsgU2tpcCBdCiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvc2NydWJiZXItc3Vw
cG9ydC9pcGFkIFsgU2tpcCBdCittZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1
cHBvcnQvaW9zIFsgU2tpcCBdCiAKICMgVGhlc2UgdGVzdHMgYXJlIHRpbWluZy1yZWxhdGVkIGFu
ZCBjYW4gZmFpbCBkdWUgdG8gcGVyZm9ybWFuY2UgaXNzdWVzIG9uIGJvdHMKIHdlYmtpdC5vcmcv
Yi8xNjk4NzYgbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xsZXIvbWVk
aWEtY29udHJvbGxlci1hdXRvLWhpZGUtbW91c2UtZW50ZXItYW5kLW1vdXNlLWxlYXZlLmh0bWwg
WyBQYXNzIFRpbWVvdXQgXQpAQCAtMTI3Nyw3ICsxMjc4LDcgQEAgd2Via2l0Lm9yZy9iLzE3ODEy
NyBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250
cm9sbGUKICMgb24gaU9TLCBhbmQgdGhlIGJ1ZyBpdCB3YXMgY3JlYXRlZCB0byByZWdyZXNzaW9u
LXRlc3Qgd2FzIGlPUy1vbmx5LCBzbyB0aGVyZSBpcyBubyBodXJyeSB0byBtYWtlIGl0IHdvcmsg
b24gTWFjLgogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWRvY3VtZW50cy9iYWNr
Z3JvdW5kLWNvbG9yLWFuZC1jZW50ZXJpbmcuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBd
CiAKLXdlYmtpdC5vcmcvYi8xNjkxNTggbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1zdXBwb3J0L3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0ZXItZHJhZ2dpbmctY29udHJv
bHMuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzE2OTE1OCBtZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvdHJhY2tzLXN1cHBvcnQvbWFjL3RyYWNrcy1zdXBwb3J0LXNob3ctcGFuZWwtYWZ0
ZXItZHJhZ2dpbmctY29udHJvbHMuaHRtbCBbIFNraXAgXQogCiB3ZWJraXQub3JnL2IvMTc4MDgz
IG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcGFpbnQtdG8tY2FudmFzLmh0bWwgWyBG
YWlsdXJlIF0KIApAQCAtMTg0MCw3ICsxODQxLDcgQEAgd2Via2l0Lm9yZy9iLzIxMDA0NiBbIFJl
bGVhc2UgXSBzdG9yYWdlL2luZGV4ZWRkYi92YWx1ZS1jdXJzb3ItY3ljbGUuaHRtbCBbIFBhc3MK
IAogd2Via2l0Lm9yZy9iLzIwNzE2MCBjc3MyLjEvMjAxMTAzMjMvcmVwbGFjZWQtaW50cmluc2lj
LXJhdGlvLTAwMS5odG0gWyBQYXNzIEZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTgyNTcxIFsg
RGVidWcgXSBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvdHJhY2tz
LXN1cHBvcnQtc2hvdy1wYW5lbC1mdWxsc2NyZWVuLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQord2Vi
a2l0Lm9yZy9iLzE4MjU3MSBbIERlYnVnIF0gbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L21hYy90cmFja3Mtc3VwcG9ydC1zaG93LXBhbmVsLWZ1bGxzY3JlZW4uaHRt
bCBbIFBhc3MgVGltZW91dCBdCiAKICMgQ2VydGFpbiB2ZXJzaW9ucyBvZiBtYWNPUyB1c2UgZGlm
ZmVyZW50IHRleHQgc2VjdXJpdHkgY2hhcmFjdGVycy4KIHdlYmtpdC5vcmcvYi8yMDk2OTIgWyBN
b2phdmUgQ2F0YWxpbmEgXSBwbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L3RleHQtc2VjdXJpdHktZGlz
Yy1idWxsZXQtcHVhLW1hYy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>