<?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>204519</bug_id>
          
          <creation_ts>2019-11-22 08:33:47 -0800</creation_ts>
          <short_desc>Web Inspector: Uncaught Exception: Missing node for given nodeId</short_desc>
          <delta_ts>2019-12-06 22:07:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>Safari Technology Preview</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://secure1.store.apple.com/shop/checkout?_s=Fulfillment-init</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="Antoine Quint">graouts</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1592812</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-11-22 08:33:47 -0800</bug_when>
    <thetext>Uncaught Exception in Web Inspector.

If I reload the page with the Web Inspector open, I get this error every time which makes it impossible to diagnose my issue :(

Uncaught Exceptions:
-----------------------
 - Missing node for given nodeId (at Connection.js:147:29)
    _dispatchResponseToPromise @ Connection.js:147:29
    _dispatchResponse @ Connection.js:109:44
    dispatch @ Connection.js:62:35
    dispatchMessageFromTarget @ TargetManager.js:159:35
    dispatchMessageFromTarget @ TargetObserver.js:47:51
    _dispatchEvent @ Connection.js:195:26
    dispatch @ Connection.js:64:32
    dispatch @ InspectorBackend.js:219:52
    ? @ MessageDispatcher.js:42:34
-----------------------

Notes:
Inspected URL:        https://secure1.store.apple.com/shop/checkout?_s=Fulfillment-init
Loading completed:    true
Frontend User Agent:  Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592958</commentid>
    <comment_count>1</comment_count>
      <attachid>384184</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-11-22 12:44:29 -0800</bug_when>
    <thetext>Created attachment 384184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593014</commentid>
    <comment_count>2</comment_count>
      <attachid>384184</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2019-11-22 14:31:57 -0800</bug_when>
    <thetext>Comment on attachment 384184
Patch

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

&gt; Source/WebInspectorUI/ChangeLog:27
&gt; +        (WI.DOMNode.prototype.querySelectorAll): Added.

Please note in the ChangeLog that many callers have been switched to call via WI.DOMNode so as to receive the benefits of this marking.

&gt; Source/WebInspectorUI/ChangeLog:100
&gt; +        Web Inspector: REGRESSION(r251227): dashboard no longer shows page weight

Oops.

&gt; Source/WebInspectorUI/UserInterface/Models/DOMNode.js:295
&gt; +        this._destroyed = true;

Assert that this hasn&apos;t already been marked?

&gt; Source/WebInspectorUI/UserInterface/Models/DOMNode.js:391
&gt;      {

How does this not break everything when early returns do not call the callback? It seems like the moral equivalent of never calling a completionHandler in an error case.

&gt; Source/WebInspectorUI/UserInterface/Models/DOMNode.js:556
&gt; +        if (typeof callback !== &quot;function&quot;) {

This looks more like I had expected.

&gt; Source/WebInspectorUI/UserInterface/Models/DOMNode.js:616
&gt; +        if (this._destroyed)

Ditto (DOMNode.js:380)

&gt; Source/WebInspectorUI/UserInterface/Models/DOMNode.js:684
&gt; +            return;

Ditto (DOMNode.js:380)

&gt; Source/WebInspectorUI/UserInterface/Views/BoxModelDetailsSectionRow.js:117
&gt; +        let node = showHighlight ? this.nodeStyles.node : null;

Nice simplification.

&gt; Source/WebInspectorUI/UserInterface/Views/LayerTreeDetailsSidebarPanel.js:-236
&gt; -            WI.domManager.highlightDOMNode(layer.nodeId);

E</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593090</commentid>
    <comment_count>3</comment_count>
      <attachid>384184</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-11-22 16:06:12 -0800</bug_when>
    <thetext>Comment on attachment 384184
Patch

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

&gt;&gt; Source/WebInspectorUI/ChangeLog:100
&gt;&gt; +        Web Inspector: REGRESSION(r251227): dashboard no longer shows page weight
&gt; 
&gt; Oops.

Oops indeed :P

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/DOMNode.js:295
&gt;&gt; +        this._destroyed = true;
&gt; 
&gt; Assert that this hasn&apos;t already been marked?

I could&apos;ve sworn that I added this 🤦‍♂️

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/DOMNode.js:391
&gt;&gt;      {
&gt; 
&gt; How does this not break everything when early returns do not call the callback? It seems like the moral equivalent of never calling a completionHandler in an error case.

Theoretically, these should never get called, so it probably won&apos;t break anything, but I see your point.  I&apos;ll add some assertions and a `callback(&quot;ERROR: node is destroyed&quot;);`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593091</commentid>
    <comment_count>4</comment_count>
      <attachid>384211</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-11-22 16:06:20 -0800</bug_when>
    <thetext>Created attachment 384211
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596508</commentid>
    <comment_count>5</comment_count>
      <attachid>384211</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-06 22:06:35 -0800</bug_when>
    <thetext>Comment on attachment 384211
Patch

Clearing flags on attachment: 384211

Committed r253242: &lt;https://trac.webkit.org/changeset/253242&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596509</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-06 22:06:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596510</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-06 22:07:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/57723648&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384184</attachid>
            <date>2019-11-22 12:44:29 -0800</date>
            <delta_ts>2019-11-22 16:06:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204519-20191122124428.patch</filename>
            <type>text/plain</type>
            <size>91200</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGE4ZDI3ZDI1OTY5Mjk3MTIyYmRiN2JjOTI0Y2Qy
NDQxMWVmZWIwNjQuLjQ0OGJiOTFhNzVhMDU3NGEyM2NlMTlkMzYwM2QxYmYxZjNlMTY2MDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMiBAQAorMjAxOS0xMS0yMiAgRGV2
aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
VW5jYXVnaHQgRXhjZXB0aW9uOiBNaXNzaW5nIG5vZGUgZm9yIGdpdmVuIG5vZGVJZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NTE5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBhIERPTSBub2Rl
IGlzIHJlbW92ZWQgZnJvbSB0aGUgbWFpbiBET00gdHJlZSwgdGhlIGBJbnNwZWN0b3JET01BZ2Vu
dGAgaW52YWxpZGF0ZXMgdGhlCisgICAgICAgIGBET00uTm9kZUlkYCB0aGF0IHdhcyBwcmV2aW91
c2x5IGFzc2lnbmVkIHRvIHRoYXQgRE9NIG5vZGUsIG1lYW5pbmcgdGhhdCBhbnkgZnV0dXJlIGNv
bW1hbmRzCisgICAgICAgIHNlbnQgYnkgdGhlIGZyb250ZW5kIHdpdGggdGhhdCBgRE9NLk5vZGVJ
ZGAgd2lsbCBmYWlsLgorCisgICAgICAgIEFkZCBsb2dpYyB0byBtYXJrIGBXSS5ET01Ob2RlYCBh
cyBiZWluZyBgZGVzdHJveWVkYCB3aGVuIHRoaXMgaGFwcGVucyBzbyB0aGUgZnJvbnRlbmQgY2Fu
CisgICAgICAgIGRlY2lkZSB0byBub3QgaW52b2tlIGFueSBjb21tYW5kcyB3aXRoIHRoYXQgYERP
TS5Ob2RlSWRgLgorCisgICAgICAgIFRoaXMgaXNzdWUgd2lsbCBldmVudHVhbGx5IGJlIG1pdGln
YXRlZCBieSA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTg5Njg3Pi4KKworICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvTW9kZWxzL0RPTU5vZGUuanM6CisgICAgICAgIChXSS5ET01Ob2RlKToKKyAgICAg
ICAgKFdJLkRPTU5vZGUucHJvdG90eXBlLmdldCBkZXN0cm95ZWQpOiBBZGRlZC4KKyAgICAgICAg
KFdJLkRPTU5vZGUucHJvdG90eXBlLmdldCBhdHRhY2hlZCk6CisgICAgICAgIChXSS5ET01Ob2Rl
LnByb3RvdHlwZS5tYXJrRGVzdHJveWVkKTogQWRkZWQuCisgICAgICAgIChXSS5ET01Ob2RlLnBy
b3RvdHlwZS5zZXROb2RlTmFtZSk6CisgICAgICAgIChXSS5ET01Ob2RlLnByb3RvdHlwZS5zZXRO
b2RlVmFsdWUpOgorICAgICAgICAoV0kuRE9NTm9kZS5wcm90b3R5cGUuc2V0QXR0cmlidXRlKToK
KyAgICAgICAgKFdJLkRPTU5vZGUucHJvdG90eXBlLnNldEF0dHJpYnV0ZVZhbHVlKToKKyAgICAg
ICAgKFdJLkRPTU5vZGUucHJvdG90eXBlLnF1ZXJ5U2VsZWN0b3IpOiBBZGRlZC4KKyAgICAgICAg
KFdJLkRPTU5vZGUucHJvdG90eXBlLnF1ZXJ5U2VsZWN0b3JBbGwpOiBBZGRlZC4KKyAgICAgICAg
KFdJLkRPTU5vZGUucHJvdG90eXBlLmhpZ2hsaWdodCk6IEFkZGVkLgorICAgICAgICAoV0kuRE9N
Tm9kZS5wcm90b3R5cGUuZ2V0T3V0ZXJIVE1MKToKKyAgICAgICAgKFdJLkRPTU5vZGUucHJvdG90
eXBlLnNldE91dGVySFRNTCk6CisgICAgICAgIChXSS5ET01Ob2RlLnByb3RvdHlwZS5yZW1vdmVO
b2RlKToKKyAgICAgICAgKFdJLkRPTU5vZGUucHJvdG90eXBlLmdldEV2ZW50TGlzdGVuZXJzKToK
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9ET01VdGlsaXRpZXMuanM6CisgICAgICAg
IChXSS5iaW5kSW50ZXJhY3Rpb25zRm9yTm9kZVRvRWxlbWVudCk6CisgICAgICAgICogVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9ET01NYW5hZ2VyLmpzOgorICAgICAgICAoV0kuRE9NTWFuYWdl
ci5idWlsZEhpZ2hsaWdodENvbmZpZyk6CisgICAgICAgIChXSS5ET01NYW5hZ2VyLndyYXBDbGll
bnRDYWxsYmFjayk6CisgICAgICAgIChXSS5ET01NYW5hZ2VyLnByb3RvdHlwZS5fbG9hZE5vZGVB
dHRyaWJ1dGVzKToKKyAgICAgICAgKFdJLkRPTU1hbmFnZXIucHJvdG90eXBlLl9zZXREb2N1bWVu
dCk6CisgICAgICAgIChXSS5ET01NYW5hZ2VyLnByb3RvdHlwZS5fdW5iaW5kKToKKyAgICAgICAg
KFdJLkRPTU1hbmFnZXIucHJvdG90eXBlLmhpZ2hsaWdodERPTU5vZGVMaXN0KToKKyAgICAgICAg
KFdJLkRPTU1hbmFnZXIucHJvdG90eXBlLmhpZ2hsaWdodFNlbGVjdG9yKToKKyAgICAgICAgKFdJ
LkRPTU1hbmFnZXIucHJvdG90eXBlLmhpZGVET01Ob2RlSGlnaGxpZ2h0KToKKyAgICAgICAgKFdJ
LkRPTU1hbmFnZXIucHJvdG90eXBlLmhpZ2hsaWdodERPTU5vZGVGb3JUd29TZWNvbmRzKToKKyAg
ICAgICAgKFdJLkRPTU1hbmFnZXIucHJvdG90eXBlLnNldCBpbnNwZWN0TW9kZUVuYWJsZWQpOgor
ICAgICAgICAoV0kuRE9NTWFuYWdlci5wcm90b3R5cGUuc2V0SW5zcGVjdGVkTm9kZSk6CisgICAg
ICAgIChXSS5ET01NYW5hZ2VyLnByb3RvdHlwZS5zZXRFdmVudExpc3RlbmVyRGlzYWJsZWQpOgor
ICAgICAgICAoV0kuRE9NTWFuYWdlci5wcm90b3R5cGUuX3dyYXBDbGllbnRDYWxsYmFjayk6IERl
bGV0ZWQuCisgICAgICAgIChXSS5ET01NYW5hZ2VyLnByb3RvdHlwZS5xdWVyeVNlbGVjdG9yKTog
RGVsZXRlZC4KKyAgICAgICAgKFdJLkRPTU1hbmFnZXIucHJvdG90eXBlLnF1ZXJ5U2VsZWN0b3JB
bGwpOiBEZWxldGVkLgorICAgICAgICAoV0kuRE9NTWFuYWdlci5wcm90b3R5cGUuaGlnaGxpZ2h0
RE9NTm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXSS5ET01NYW5hZ2VyLnByb3RvdHlwZS5fYnVp
bGRIaWdobGlnaHRDb25maWcpOiBEZWxldGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9k
ZWxzL0F1ZGl0VGVzdENhc2VSZXN1bHQuanM6CisgICAgICAgIChXSS5BdWRpdFRlc3RDYXNlUmVz
dWx0LmFzeW5jIGZyb21QYXlsb2FkKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9N
ZWRpYVRpbWVsaW5lUmVjb3JkLmpzOgorICAgICAgICAoV0kuTWVkaWFUaW1lbGluZVJlY29yZC5h
c3luYyBmcm9tSlNPTik6CisgICAgICAgICogVXNlckludGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVP
YmplY3QuanM6CisgICAgICAgIChXSS5SZW1vdGVPYmplY3QucmVzb2x2ZU5vZGUpOgorICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQm94TW9kZWxEZXRhaWxzU2VjdGlvblJvdy5qczoKKyAg
ICAgICAgKFdJLkJveE1vZGVsRGV0YWlsc1NlY3Rpb25Sb3cucHJvdG90eXBlLl9oaWdobGlnaHRE
T01Ob2RlKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29u
dGVudFZpZXcuanM6CisgICAgICAgIChXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3Rv
dHlwZS5fY29udGVudFZpZXdNb3VzZUVudGVyKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Zp
ZXdzL0NhbnZhc1RyZWVFbGVtZW50LmpzOgorICAgICAgICAoV0kuQ2FudmFzVHJlZUVsZW1lbnQu
cHJvdG90eXBlLl9oYW5kbGVNb3VzZU92ZXIpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvQ29udGV4dE1lbnVVdGlsaXRpZXMuanM6CisgICAgICAgIChXSS5hcHBlbmRDb250ZXh0TWVu
dUl0ZW1zRm9yRE9NTm9kZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9ET01Ob2Rl
RGV0YWlsc1NpZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdJLkRPTU5vZGVEZXRhaWxzU2lkZWJh
clBhbmVsLnByb3RvdHlwZS5sYXlvdXQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3Mv
RE9NVHJlZUNvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV0kuRE9NVHJlZUNvbnRlbnRWaWV3LnBy
b3RvdHlwZS5fZG9tVHJlZVNlbGVjdGlvbkRpZENoYW5nZSk6CisgICAgICAgICogVXNlckludGVy
ZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudC5qczoKKyAgICAgICAgKFdJLkRPTVRyZWVFbGVtZW50
LnByb3RvdHlwZS5nZXQgZWRpdGFibGUpOgorICAgICAgICAoV0kuRE9NVHJlZUVsZW1lbnQucHJv
dG90eXBlLnBvcHVsYXRlRE9NTm9kZUNvbnRleHRNZW51KToKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL0RPTVRyZWVFbGVtZW50UGF0aENvbXBvbmVudC5qczoKKyAgICAgICAgKFdJLkRP
TVRyZWVFbGVtZW50UGF0aENvbXBvbmVudC5wcm90b3R5cGUubW91c2VPdmVyKToKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVPdXRsaW5lLmpzOgorICAgICAgICAoV0kuRE9N
VHJlZU91dGxpbmUucHJvdG90eXBlLmdldCBlZGl0YWJsZSk6CisgICAgICAgIChXSS5ET01UcmVl
T3V0bGluZS5wcm90b3R5cGUucG9wdWxhdGVDb250ZXh0TWVudSk6CisgICAgICAgIChXSS5ET01U
cmVlT3V0bGluZS5wcm90b3R5cGUuX29ubW91c2Vtb3ZlKToKKyAgICAgICAgKFdJLkRPTVRyZWVP
dXRsaW5lLnByb3RvdHlwZS5fb25kcmFnc3RhcnQpOgorICAgICAgICAoV0kuRE9NVHJlZU91dGxp
bmUucHJvdG90eXBlLl9vbmRyYWdvdmVyKToKKyAgICAgICAgKFdJLkRPTVRyZWVPdXRsaW5lLnBy
b3RvdHlwZS5fb25kcmFnbGVhdmUpOgorICAgICAgICAoV0kuRE9NVHJlZU91dGxpbmUucHJvdG90
eXBlLl9vbmRyYWdlbmQpOgorICAgICAgICAoV0kuRE9NVHJlZU91dGxpbmUucHJvdG90eXBlLl9o
aWRlRWxlbWVudHMpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRm9ybWF0dGVkVmFs
dWUuanM6CisgICAgICAgIChXSS5Gb3JtYXR0ZWRWYWx1ZS5jcmVhdGVFbGVtZW50Rm9yTm9kZVBy
ZXZpZXcpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvR2VuZXJhbFN0eWxlRGV0YWls
c1NpZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdJLkdlbmVyYWxTdHlsZURldGFpbHNTaWRlYmFy
UGFuZWwucHJvdG90eXBlLmxheW91dCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9M
YXllckRldGFpbHNTaWRlYmFyUGFuZWwuanM6CisgICAgICAgIChXSS5MYXllckRldGFpbHNTaWRl
YmFyUGFuZWwucHJvdG90eXBlLl9kYXRhR3JpZE1vdXNlTW92ZSk6CisgICAgICAgICogVXNlcklu
dGVyZmFjZS9WaWV3cy9MYXllclRyZWVEZXRhaWxzU2lkZWJhclBhbmVsLmpzOgorICAgICAgICAo
V0kuTGF5ZXJUcmVlRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUubGF5b3V0KToKKyAgICAg
ICAgKFdJLkxheWVyVHJlZURldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9oaWdobGlnaHRT
ZWxlY3RlZE5vZGUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRD
U1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qczoKKyAgICAgICAgKFdJLlNwcmVhZHNoZWV0Q1NT
U3R5bGVEZWNsYXJhdGlvblNlY3Rpb24ucHJvdG90eXBlLl9oaWdobGlnaHROb2Rlc1dpdGhTZWxl
Y3Rvcik6CisKKzIwMTktMTEtMjIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgor
CisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJFR1JFU1NJT04ocjI1MTIyNyk6IGRhc2hib2FyZCBu
byBsb25nZXIgc2hvd3MgcGFnZSB3ZWlnaHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNDUyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIGBXSS5jb250ZW50TG9hZGVkYCBhZGRzIHRoZSBkZWJ1Z2dhYmxl
IHR5cGUgYXMgYSBjbGFzcyB0byB0aGUgYDxib2R5PmAuIEluIHIyNTEyMjcsIHRoZQorICAgICAg
ICAid2ViIiBkZWJ1Z2dhYmxlIHR5cGUgd2FzIHNwbGl0IGludG8gInBhZ2UiIGFuZCAid2ViLXBh
Z2UiLiBVcGRhdGUgdGhlIGZldyBzZWxlY3RvcnMgdGhhdAorICAgICAgICB1c2VkIHRoZSBkZWJ1
Z2dhYmxlIHR5cGUgdG8gc2hvdy9oaWRlIHBhcnRzIG9mIHRoZSBVSS4KKworICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvRGFzaGJvYXJkQ29udGFpbmVyVmlldy5jc3M6CisgICAgICAgIChi
b2R5Om1hdGNoZXMoLnBhZ2UsIC53ZWItcGFnZSkgLnRvb2xiYXIgLmRhc2hib2FyZC1jb250YWlu
ZXIpOiBBZGRlZC4KKyAgICAgICAgKGJvZHk6bm90KC5wYWdlLCAud2ViLXBhZ2UpIC50b29sYmFy
IC5kYXNoYm9hcmQtY29udGFpbmVyKTogQWRkZWQuCisgICAgICAgIChib2R5LndlYiAudG9vbGJh
ciAuZGFzaGJvYXJkLWNvbnRhaW5lcik6IERlbGV0ZWQuCisgICAgICAgIChib2R5Om5vdCgud2Vi
KSAudG9vbGJhciAuZGFzaGJvYXJkLWNvbnRhaW5lcik6IERlbGV0ZWQuCisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9EZWZhdWx0RGFzaGJvYXJkVmlldy5jc3M6CisgICAgICAgIChib2R5
Om1hdGNoZXMoLnBhZ2UsIC53ZWItcGFnZSkgLnRvb2xiYXIuY29sbGFwc2VkIC5kYXNoYm9hcmQu
ZGVmYXVsdCA+IDptYXRjaGVzKC5yZXNvdXJjZXNTaXplLCAudGltZSwgLmxvZ3MpKTogQWRkZWQu
CisgICAgICAgIChib2R5Om5vdCgucGFnZSwgLndlYi1wYWdlKSAudG9vbGJhciAuZGFzaGJvYXJk
LmRlZmF1bHQgPiA6bWF0Y2hlcygucmVzb3VyY2VzQ291bnQsIC5yZXNvdXJjZXNTaXplLCAudGlt
ZSkpOiBBZGRlZC4KKyAgICAgICAgKGJvZHkud2ViIC50b29sYmFyLmNvbGxhcHNlZCAuZGFzaGJv
YXJkLmRlZmF1bHQgPiA6bWF0Y2hlcygucmVzb3VyY2VzU2l6ZSwgLnRpbWUsIC5sb2dzKSk6IERl
bGV0ZWQuCisgICAgICAgIChib2R5Om5vdCgud2ViKSAudG9vbGJhciAuZGFzaGJvYXJkLmRlZmF1
bHQgPiA6bWF0Y2hlcygucmVzb3VyY2VzQ291bnQsIC5yZXNvdXJjZXNTaXplLCAudGltZSkpOiBE
ZWxldGVkLgorCiAyMDE5LTExLTIxICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUu
Y29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IE91dGxpbmUgc1JHQi1zYWZlIGFyZWFzIG9u
IFAzIGNvbG9yIHBpY2tlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQmFzZS9ET01VdGlsaXRpZXMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9CYXNlL0RPTVV0aWxpdGllcy5qcwppbmRleCAyNDkzMjJlMTdlZGIyNWIwYzk5
MGIzNzI1YTNmMmI5NTQ3OTJlNjRmLi4wMmZiMjRhMDVmNTczNDYwZDM5MjRiZTFmNjEzZWY0MGEz
NzRmNzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9C
YXNlL0RPTVV0aWxpdGllcy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9CYXNlL0RPTVV0aWxpdGllcy5qcwpAQCAtOTAsNyArOTAsNyBAQCBXSS5iaW5kSW50ZXJh
Y3Rpb25zRm9yTm9kZVRvRWxlbWVudCA9IGZ1bmN0aW9uKG5vZGUsIGVsZW1lbnQsIG9wdGlvbnMg
PSB7fSkgewogICAgIH0KIAogICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdmVy
IiwgKGV2ZW50KSA9PiB7Ci0gICAgICAgIFdJLmRvbU1hbmFnZXIuaGlnaGxpZ2h0RE9NTm9kZShu
b2RlLmlkLCAiYWxsIik7CisgICAgICAgIG5vZGUuaGlnaGxpZ2h0KCk7CiAgICAgfSk7CiAKICAg
ICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0IiwgKGV2ZW50KSA9PiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9E
T01NYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJv
bGxlcnMvRE9NTWFuYWdlci5qcwppbmRleCA1OTlmMzk4YzE1MDk2NTE4ZTZkYTE2ZDFmNGUwNTE4
MThjNzllNTAyLi45NDY1ZTQ3YWE5MTk1MThiMzA5NTM1YjU1ODQxYWFjZTk5ZTJjNDllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9E
T01NYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Nv
bnRyb2xsZXJzL0RPTU1hbmFnZXIuanMKQEAgLTgyLDYgKzgyLDM5IEBAIFdJLkRPTU1hbmFnZXIg
PSBjbGFzcyBET01NYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICAvLyBTdGF0aWMKIAor
ICAgIHN0YXRpYyBidWlsZEhpZ2hsaWdodENvbmZpZyhtb2RlKQorICAgIHsKKyAgICAgICAgbW9k
ZSA9IG1vZGUgfHwgImFsbCI7CisKKyAgICAgICAgbGV0IGhpZ2hsaWdodENvbmZpZyA9IHtzaG93
SW5mbzogbW9kZSA9PT0gImFsbCJ9OworCisgICAgICAgIGlmIChtb2RlID09PSAiYWxsIiB8fCBt
b2RlID09PSAiY29udGVudCIpCisgICAgICAgICAgICBoaWdobGlnaHRDb25maWcuY29udGVudENv
bG9yID0ge3I6IDExMSwgZzogMTY4LCBiOiAyMjAsIGE6IDAuNjZ9OworCisgICAgICAgIGlmICht
b2RlID09PSAiYWxsIiB8fCBtb2RlID09PSAicGFkZGluZyIpCisgICAgICAgICAgICBoaWdobGln
aHRDb25maWcucGFkZGluZ0NvbG9yID0ge3I6IDE0NywgZzogMTk2LCBiOiAxMjUsIGE6IDAuNjZ9
OworCisgICAgICAgIGlmIChtb2RlID09PSAiYWxsIiB8fCBtb2RlID09PSAiYm9yZGVyIikKKyAg
ICAgICAgICAgIGhpZ2hsaWdodENvbmZpZy5ib3JkZXJDb2xvciA9IHtyOiAyNTUsIGc6IDIyOSwg
YjogMTUzLCBhOiAwLjY2fTsKKworICAgICAgICBpZiAobW9kZSA9PT0gImFsbCIgfHwgbW9kZSA9
PT0gIm1hcmdpbiIpCisgICAgICAgICAgICBoaWdobGlnaHRDb25maWcubWFyZ2luQ29sb3IgPSB7
cjogMjQ2LCBnOiAxNzgsIGI6IDEwNywgYTogMC42Nn07CisKKyAgICAgICAgcmV0dXJuIGhpZ2hs
aWdodENvbmZpZzsKKyAgICB9CisKKyAgICBzdGF0aWMgd3JhcENsaWVudENhbGxiYWNrKGNhbGxi
YWNrKQorICAgIHsKKyAgICAgICAgaWYgKCFjYWxsYmFjaykKKyAgICAgICAgICAgIHJldHVybiBu
dWxsOworCisgICAgICAgIHJldHVybiBmdW5jdGlvbihlcnJvciwgcmVzdWx0KSB7CisgICAgICAg
ICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigiRXJyb3IgZHVy
aW5nIERPTUFnZW50IG9wZXJhdGlvbjogIiArIGVycm9yKTsKKyAgICAgICAgICAgIGNhbGxiYWNr
KGVycm9yID8gbnVsbCA6IHJlc3VsdCk7CisgICAgICAgIH07CisgICAgfQorCiAgICAgc3RhdGlj
IHN1cHBvcnRzRGlzYWJsaW5nRXZlbnRMaXN0ZW5lcnMoKQogICAgIHsKICAgICAgICAgcmV0dXJu
IEluc3BlY3RvckJhY2tlbmQuaGFzQ29tbWFuZCgiRE9NLnNldEV2ZW50TGlzdGVuZXJEaXNhYmxl
ZCIpOwpAQCAtMjA2LDIxICsyMzksOSBAQCBXSS5ET01NYW5hZ2VyID0gY2xhc3MgRE9NTWFuYWdl
ciBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgLy8gUHJpdmF0ZQogCi0gICAgX3dyYXBDbGllbnRD
YWxsYmFjayhjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIGlmICghY2FsbGJhY2spCi0gICAgICAg
ICAgICByZXR1cm4gbnVsbDsKLQotICAgICAgICByZXR1cm4gZnVuY3Rpb24oZXJyb3IsIHJlc3Vs
dCkgewotICAgICAgICAgICAgaWYgKGVycm9yKQotICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJy
b3IoIkVycm9yIGR1cmluZyBET01BZ2VudCBvcGVyYXRpb246ICIgKyBlcnJvcik7Ci0gICAgICAg
ICAgICBjYWxsYmFjayhlcnJvciA/IG51bGwgOiByZXN1bHQpOwotICAgICAgICB9OwotICAgIH0K
LQogICAgIF9kaXNwYXRjaFdoZW5Eb2N1bWVudEF2YWlsYWJsZShmdW5jLCBjYWxsYmFjaykKICAg
ICB7Ci0gICAgICAgIHZhciBjYWxsYmFja1dyYXBwZXIgPSB0aGlzLl93cmFwQ2xpZW50Q2FsbGJh
Y2soY2FsbGJhY2spOworICAgICAgICB2YXIgY2FsbGJhY2tXcmFwcGVyID0gRE9NTWFuYWdlci53
cmFwQ2xpZW50Q2FsbGJhY2soY2FsbGJhY2spOwogCiAgICAgICAgIGZ1bmN0aW9uIG9uRG9jdW1l
bnRBdmFpbGFibGUoKQogICAgICAgICB7CkBAIC0yODYsNiArMzA3LDggQEAgV0kuRE9NTWFuYWdl
ciA9IGNsYXNzIERPTU1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgbGV0IHRhcmdl
dCA9IFdJLmFzc3VtaW5nTWFpblRhcmdldCgpOwogCiAgICAgICAgIGZvciAodmFyIG5vZGVJZCBp
biB0aGlzLl9hdHRyaWJ1dGVMb2FkTm9kZUlkcykgeworICAgICAgICAgICAgaWYgKCEobm9kZUlk
IGluIHRoaXMuX2lkVG9ET01Ob2RlKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgICAgIHZhciBub2RlSWRBc051bWJlciA9IHBhcnNlSW50KG5vZGVJZCk7CiAgICAgICAgICAg
ICB0YXJnZXQuRE9NQWdlbnQuZ2V0QXR0cmlidXRlcyhub2RlSWRBc051bWJlciwgY2FsbGJhY2su
YmluZCh0aGlzLCBub2RlSWRBc051bWJlcikpOwogICAgICAgICB9CkBAIC0zMTEsNiArMzM0LDkg
QEAgV0kuRE9NTWFuYWdlciA9IGNsYXNzIERPTU1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAog
ICAgIF9zZXREb2N1bWVudChwYXlsb2FkKQogICAgIHsKKyAgICAgICAgZm9yIChsZXQgbm9kZSBv
ZiBPYmplY3QudmFsdWVzKHRoaXMuX2lkVG9ET01Ob2RlKSkKKyAgICAgICAgICAgIG5vZGUubWFy
a0Rlc3Ryb3llZCgpOworCiAgICAgICAgIHRoaXMuX2lkVG9ET01Ob2RlID0ge307CiAKICAgICAg
ICAgZm9yIChsZXQgYnJlYWtwb2ludCBvZiB0aGlzLl9icmVha3BvaW50c0ZvckV2ZW50TGlzdGVu
ZXJzLnZhbHVlcygpKQpAQCAtNDEzLDYgKzQzOSw4IEBAIFdJLkRPTU1hbmFnZXIgPSBjbGFzcyBE
T01NYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICBfdW5iaW5kKG5vZGUpCiAgICAgewor
ICAgICAgICBub2RlLm1hcmtEZXN0cm95ZWQoKTsKKwogICAgICAgICBkZWxldGUgdGhpcy5faWRU
b0RPTU5vZGVbbm9kZS5pZF07CiAKICAgICAgICAgZm9yIChsZXQgaSA9IDA7IG5vZGUuY2hpbGRy
ZW4gJiYgaSA8IG5vZGUuY2hpbGRyZW4ubGVuZ3RoOyArK2kpCkBAIC00NzEsNDUgKzQ5OSw3IEBA
IFdJLkRPTU1hbmFnZXIgPSBjbGFzcyBET01NYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAg
ICAgIHJlbW90ZU9iamVjdC5wdXNoTm9kZVRvRnJvbnRlbmQobm9kZUF2YWlsYWJsZS5iaW5kKHRo
aXMpKTsKICAgICB9CiAKLSAgICBxdWVyeVNlbGVjdG9yKG5vZGVPck5vZGVJZCwgc2VsZWN0b3Is
IGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgbGV0IG5vZGVJZCA9IG5vZGVPck5vZGVJZCBpbnN0
YW5jZW9mIFdJLkRPTU5vZGUgPyBub2RlT3JOb2RlSWQuaWQgOiBub2RlT3JOb2RlSWQ7Ci0gICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KHR5cGVvZiBub2RlSWQgPT09ICJudW1iZXIiKTsKLQotICAgICAg
ICBsZXQgdGFyZ2V0ID0gV0kuYXNzdW1pbmdNYWluVGFyZ2V0KCk7Ci0gICAgICAgIGlmICh0eXBl
b2YgY2FsbGJhY2sgPT09ICJmdW5jdGlvbiIpCi0gICAgICAgICAgICB0YXJnZXQuRE9NQWdlbnQu
cXVlcnlTZWxlY3Rvcihub2RlSWQsIHNlbGVjdG9yLCB0aGlzLl93cmFwQ2xpZW50Q2FsbGJhY2so
Y2FsbGJhY2spKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmV0dXJuIHRhcmdldC5ET01B
Z2VudC5xdWVyeVNlbGVjdG9yKG5vZGVJZCwgc2VsZWN0b3IpLnRoZW4oKHtub2RlSWR9KSA9PiBu
b2RlSWQpOwotICAgIH0KLQotICAgIHF1ZXJ5U2VsZWN0b3JBbGwobm9kZU9yTm9kZUlkLCBzZWxl
Y3RvciwgY2FsbGJhY2spCi0gICAgewotICAgICAgICBsZXQgbm9kZUlkID0gbm9kZU9yTm9kZUlk
IGluc3RhbmNlb2YgV0kuRE9NTm9kZSA/IG5vZGVPck5vZGVJZC5pZCA6IG5vZGVPck5vZGVJZDsK
LSAgICAgICAgY29uc29sZS5hc3NlcnQodHlwZW9mIG5vZGVJZCA9PT0gIm51bWJlciIpOwotCi0g
ICAgICAgIGxldCB0YXJnZXQgPSBXSS5hc3N1bWluZ01haW5UYXJnZXQoKTsKLSAgICAgICAgaWYg
KHR5cGVvZiBjYWxsYmFjayA9PT0gImZ1bmN0aW9uIikKLSAgICAgICAgICAgIHRhcmdldC5ET01B
Z2VudC5xdWVyeVNlbGVjdG9yQWxsKG5vZGVJZCwgc2VsZWN0b3IsIHRoaXMuX3dyYXBDbGllbnRD
YWxsYmFjayhjYWxsYmFjaykpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXR1cm4gdGFy
Z2V0LkRPTUFnZW50LnF1ZXJ5U2VsZWN0b3JBbGwobm9kZUlkLCBzZWxlY3RvcikudGhlbigoe25v
ZGVJZHN9KSA9PiBub2RlSWRzKTsKLSAgICB9Ci0KLSAgICBoaWdobGlnaHRET01Ob2RlKG5vZGVJ
ZCwgbW9kZSkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9oaWRlRE9NTm9kZUhpZ2hsaWdodFRp
bWVvdXQpIHsKLSAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9oaWRlRE9NTm9kZUhpZ2hs
aWdodFRpbWVvdXQpOwotICAgICAgICAgICAgdGhpcy5faGlkZURPTU5vZGVIaWdobGlnaHRUaW1l
b3V0ID0gdW5kZWZpbmVkOwotICAgICAgICB9Ci0KLSAgICAgICAgbGV0IHRhcmdldCA9IFdJLmFz
c3VtaW5nTWFpblRhcmdldCgpOwotICAgICAgICBpZiAobm9kZUlkKQotICAgICAgICAgICAgdGFy
Z2V0LkRPTUFnZW50LmhpZ2hsaWdodE5vZGUuaW52b2tlKHtub2RlSWQsIGhpZ2hsaWdodENvbmZp
ZzogdGhpcy5fYnVpbGRIaWdobGlnaHRDb25maWcobW9kZSl9KTsKLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgdGFyZ2V0LkRPTUFnZW50LmhpZGVIaWdobGlnaHQoKTsKLSAgICB9Ci0KLSAgICBo
aWdobGlnaHRET01Ob2RlTGlzdChub2RlSWRzLCBtb2RlKQorICAgIGhpZ2hsaWdodERPTU5vZGVM
aXN0KG5vZGVzLCBtb2RlKQogICAgIHsKICAgICAgICAgbGV0IHRhcmdldCA9IFdJLmFzc3VtaW5n
TWFpblRhcmdldCgpOwogCkBAIC01MjIsNyArNTEyLDE0IEBAIFdJLkRPTU1hbmFnZXIgPSBjbGFz
cyBET01NYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICB0aGlzLl9oaWRlRE9N
Tm9kZUhpZ2hsaWdodFRpbWVvdXQgPSB1bmRlZmluZWQ7CiAgICAgICAgIH0KIAotICAgICAgICB0
YXJnZXQuRE9NQWdlbnQuaGlnaGxpZ2h0Tm9kZUxpc3Qobm9kZUlkcywgdGhpcy5fYnVpbGRIaWdo
bGlnaHRDb25maWcobW9kZSkpOworICAgICAgICBsZXQgbm9kZUlkcyA9IFtdOworICAgICAgICBm
b3IgKGxldCBub2RlIG9mIG5vZGVzKSB7CisgICAgICAgICAgICBpZiAobm9kZS5kZXN0cm95ZWQp
CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBub2RlSWRzLnB1c2gobm9k
ZS5pZCk7CisgICAgICAgIH0KKworICAgICAgICB0YXJnZXQuRE9NQWdlbnQuaGlnaGxpZ2h0Tm9k
ZUxpc3Qobm9kZUlkcywgRE9NTWFuYWdlci5idWlsZEhpZ2hsaWdodENvbmZpZyhtb2RlKSk7CiAg
ICAgfQogCiAgICAgaGlnaGxpZ2h0U2VsZWN0b3Ioc2VsZWN0b3JUZXh0LCBmcmFtZUlkLCBtb2Rl
KQpAQCAtNTM4LDcgKzUzNSw3IEBAIFdJLkRPTU1hbmFnZXIgPSBjbGFzcyBET01NYW5hZ2VyIGV4
dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICB0aGlzLl9oaWRlRE9NTm9kZUhpZ2hsaWdodFRp
bWVvdXQgPSB1bmRlZmluZWQ7CiAgICAgICAgIH0KIAotICAgICAgICB0YXJnZXQuRE9NQWdlbnQu
aGlnaGxpZ2h0U2VsZWN0b3IodGhpcy5fYnVpbGRIaWdobGlnaHRDb25maWcobW9kZSksIHNlbGVj
dG9yVGV4dCwgZnJhbWVJZCk7CisgICAgICAgIHRhcmdldC5ET01BZ2VudC5oaWdobGlnaHRTZWxl
Y3RvcihET01NYW5hZ2VyLmJ1aWxkSGlnaGxpZ2h0Q29uZmlnKG1vZGUpLCBzZWxlY3RvclRleHQs
IGZyYW1lSWQpOwogICAgIH0KIAogICAgIGhpZ2hsaWdodFJlY3QocmVjdCwgdXNlUGFnZUNvb3Jk
aW5hdGVzKQpAQCAtNTU3LDEyICs1NTQsMTggQEAgV0kuRE9NTWFuYWdlciA9IGNsYXNzIERPTU1h
bmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIGhpZGVET01Ob2RlSGlnaGxpZ2h0KCkKICAg
ICB7Ci0gICAgICAgIHRoaXMuaGlnaGxpZ2h0RE9NTm9kZSgwKTsKKyAgICAgICAgbGV0IHRhcmdl
dCA9IFdJLmFzc3VtaW5nTWFpblRhcmdldCgpOworICAgICAgICB0YXJnZXQuRE9NQWdlbnQuaGlk
ZUhpZ2hsaWdodCgpOwogICAgIH0KIAogICAgIGhpZ2hsaWdodERPTU5vZGVGb3JUd29TZWNvbmRz
KG5vZGVJZCkKICAgICB7Ci0gICAgICAgIHRoaXMuaGlnaGxpZ2h0RE9NTm9kZShub2RlSWQpOwor
ICAgICAgICBsZXQgbm9kZSA9IHRoaXMuX2lkVG9ET01Ob2RlW25vZGVJZF07CisgICAgICAgIGlm
ICghbm9kZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBub2RlLmhpZ2hsaWdodCgp
OworCiAgICAgICAgIHRoaXMuX2hpZGVET01Ob2RlSGlnaGxpZ2h0VGltZW91dCA9IHNldFRpbWVv
dXQodGhpcy5oaWRlRE9NTm9kZUhpZ2hsaWdodC5iaW5kKHRoaXMpLCAyMDAwKTsKICAgICB9CiAK
QEAgLTU3OSw3ICs1ODIsNyBAQCBXSS5ET01NYW5hZ2VyID0gY2xhc3MgRE9NTWFuYWdlciBleHRl
bmRzIFdJLk9iamVjdAogICAgICAgICBsZXQgdGFyZ2V0ID0gV0kuYXNzdW1pbmdNYWluVGFyZ2V0
KCk7CiAgICAgICAgIGxldCBjb21tYW5kQXJndW1lbnRzID0gewogICAgICAgICAgICAgZW5hYmxl
ZCwKLSAgICAgICAgICAgIGhpZ2hsaWdodENvbmZpZzogdGhpcy5fYnVpbGRIaWdobGlnaHRDb25m
aWcoKSwKKyAgICAgICAgICAgIGhpZ2hsaWdodENvbmZpZzogRE9NTWFuYWdlci5idWlsZEhpZ2hs
aWdodENvbmZpZygpLAogICAgICAgICAgICAgc2hvd1J1bGVyczogV0kuc2V0dGluZ3Muc2hvd1J1
bGVyc0R1cmluZ0VsZW1lbnRTZWxlY3Rpb24udmFsdWUsCiAgICAgICAgIH07CiAgICAgICAgIHRh
cmdldC5ET01BZ2VudC5zZXRJbnNwZWN0TW9kZUVuYWJsZWQuaW52b2tlKGNvbW1hbmRBcmd1bWVu
dHMsIChlcnJvcikgPT4gewpAQCAtNTk0LDYgKzU5Nyw5IEBAIFdJLkRPTU1hbmFnZXIgPSBjbGFz
cyBET01NYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIGlmIChub2RlID09PSB0aGlz
Ll9pbnNwZWN0ZWROb2RlKQogICAgICAgICAgICAgcmV0dXJuOwogCisgICAgICAgIGlmIChub2Rl
LmRlc3Ryb3llZCkKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICBsZXQgY2FsbGJhY2sg
PSAoZXJyb3IpID0+IHsKICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFlcnJvciwgZXJyb3Ip
OwogICAgICAgICAgICAgaWYgKGVycm9yKQpAQCAtNjMzLDEwICs2MzksNyBAQCBXSS5ET01NYW5h
Z2VyID0gY2xhc3MgRE9NTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgIHNldEV2ZW50TGlz
dGVuZXJEaXNhYmxlZChldmVudExpc3RlbmVyLCBkaXNhYmxlZCkKICAgICB7CiAgICAgICAgIGxl
dCB0YXJnZXQgPSBXSS5hc3N1bWluZ01haW5UYXJnZXQoKTsKLSAgICAgICAgdGFyZ2V0LkRPTUFn
ZW50LnNldEV2ZW50TGlzdGVuZXJEaXNhYmxlZChldmVudExpc3RlbmVyLmV2ZW50TGlzdGVuZXJJ
ZCwgZGlzYWJsZWQsIChlcnJvcikgPT4gewotICAgICAgICAgICAgaWYgKGVycm9yKQotICAgICAg
ICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpOwotICAgICAgICB9KTsKKyAgICAgICAgdGFy
Z2V0LkRPTUFnZW50LnNldEV2ZW50TGlzdGVuZXJEaXNhYmxlZChldmVudExpc3RlbmVyLmV2ZW50
TGlzdGVuZXJJZCwgZGlzYWJsZWQpOwogICAgIH0KIAogICAgIHNldEJyZWFrcG9pbnRGb3JFdmVu
dExpc3RlbmVyKGV2ZW50TGlzdGVuZXIpCkBAIC02OTAsMjUgKzY5Myw2IEBAIFdJLkRPTU1hbmFn
ZXIgPSBjbGFzcyBET01NYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICAvLyBQcml2YXRl
CiAKLSAgICBfYnVpbGRIaWdobGlnaHRDb25maWcobW9kZSA9ICJhbGwiKQotICAgIHsKLSAgICAg
ICAgbGV0IGhpZ2hsaWdodENvbmZpZyA9IHtzaG93SW5mbzogbW9kZSA9PT0gImFsbCJ9OwotCi0g
ICAgICAgIGlmIChtb2RlID09PSAiYWxsIiB8fCBtb2RlID09PSAiY29udGVudCIpCi0gICAgICAg
ICAgICBoaWdobGlnaHRDb25maWcuY29udGVudENvbG9yID0ge3I6IDExMSwgZzogMTY4LCBiOiAy
MjAsIGE6IDAuNjZ9OwotCi0gICAgICAgIGlmIChtb2RlID09PSAiYWxsIiB8fCBtb2RlID09PSAi
cGFkZGluZyIpCi0gICAgICAgICAgICBoaWdobGlnaHRDb25maWcucGFkZGluZ0NvbG9yID0ge3I6
IDE0NywgZzogMTk2LCBiOiAxMjUsIGE6IDAuNjZ9OwotCi0gICAgICAgIGlmIChtb2RlID09PSAi
YWxsIiB8fCBtb2RlID09PSAiYm9yZGVyIikKLSAgICAgICAgICAgIGhpZ2hsaWdodENvbmZpZy5i
b3JkZXJDb2xvciA9IHtyOiAyNTUsIGc6IDIyOSwgYjogMTUzLCBhOiAwLjY2fTsKLQotICAgICAg
ICBpZiAobW9kZSA9PT0gImFsbCIgfHwgbW9kZSA9PT0gIm1hcmdpbiIpCi0gICAgICAgICAgICBo
aWdobGlnaHRDb25maWcubWFyZ2luQ29sb3IgPSB7cjogMjQ2LCBnOiAxNzgsIGI6IDEwNywgYTog
MC42Nn07Ci0KLSAgICAgICAgcmV0dXJuIGhpZ2hsaWdodENvbmZpZzsKLSAgICB9Ci0KICAgICBf
dXBkYXRlRXZlbnRCcmVha3BvaW50KGJyZWFrcG9pbnQsIHRhcmdldCkKICAgICB7CiAgICAgICAg
IGxldCBldmVudExpc3RlbmVyID0gYnJlYWtwb2ludC5ldmVudExpc3RlbmVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0F1ZGl0VGVzdENh
c2VSZXN1bHQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
QXVkaXRUZXN0Q2FzZVJlc3VsdC5qcwppbmRleCBlYzE3MWRiODE1Njg3NDdhZjgzZTI3OTdkN2U3
OWQxMTkwMTZkZWM3Li5jOWNjMzk2MmU4MGZiNjZmZTE1ZGExMzU0ZWEyOTI2YmY4NDFjZGNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQXVk
aXRUZXN0Q2FzZVJlc3VsdC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvQXVkaXRUZXN0Q2FzZVJlc3VsdC5qcwpAQCAtMTQ0LDcgKzE0NCw3IEBAIFdJ
LkF1ZGl0VGVzdENhc2VSZXN1bHQgPSBjbGFzcyBBdWRpdFRlc3RDYXNlUmVzdWx0IGV4dGVuZHMg
V0kuQXVkaXRUZXN0UmVzdWx0QmFzCiAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnJl
c29sdmVkRE9NTm9kZXMgPSBhd2FpdCBQcm9taXNlLmFsbChwYXlsb2FkLmRhdGEuZG9tTm9kZXMu
bWFwKGFzeW5jIChkb21Ob2RlU3RyaW5nKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGV0IG5vZGVJZCA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUlkID0gYXdhaXQgV0kuZG9tTWFuYWdl
ci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZSwgZG9tTm9kZVN0cmluZyk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG5vZGVJZCA9IGF3YWl0IGRvY3VtZW50Tm9kZS5xdWVyeVNl
bGVjdG9yKGRvbU5vZGVTdHJpbmcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0
Y2ggeyB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFdJLmRvbU1hbmFnZXIu
bm9kZUZvcklkKG5vZGVJZCkgfHwgbnVsbDsKICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9E
T01Ob2RlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RP
TU5vZGUuanMKaW5kZXggZGQzYzJhNTU5Y2Y0N2Q1OGZmZDRiNjM4ZWFjOWQxYTljMTAzMTY4Zi4u
ODI0MTk3ZDg2MzAwYmQwOWM2MGQyM2NmNTE1NWE4ZGQwZmFiNDk0NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTU5vZGUuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTU5vZGUuanMKQEAg
LTM2LDYgKzM2LDggQEAgV0kuRE9NTm9kZSA9IGNsYXNzIERPTU5vZGUgZXh0ZW5kcyBXSS5PYmpl
Y3QKICAgICB7CiAgICAgICAgIHN1cGVyKCk7CiAKKyAgICAgICAgdGhpcy5fZGVzdHJveWVkID0g
ZmFsc2U7CisKICAgICAgICAgdGhpcy5fZG9tTWFuYWdlciA9IGRvbU1hbmFnZXI7CiAgICAgICAg
IHRoaXMuX2lzSW5TaGFkb3dUcmVlID0gaXNJblNoYWRvd1RyZWU7CiAKQEAgLTE4OCwxMiArMTkw
LDE2IEBAIFdJLkRPTU5vZGUgPSBjbGFzcyBET01Ob2RlIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAg
ICAvLyBQdWJsaWMKIAorICAgIGdldCBkZXN0cm95ZWQoKSB7IHJldHVybiB0aGlzLl9kZXN0cm95
ZWQ7IH0KICAgICBnZXQgZnJhbWUoKSB7IHJldHVybiB0aGlzLl9mcmFtZTsgfQogICAgIGdldCBk
b21FdmVudHMoKSB7IHJldHVybiB0aGlzLl9kb21FdmVudHM7IH0KICAgICBnZXQgcG93ZXJFZmZp
Y2llbnRQbGF5YmFja1JhbmdlcygpIHsgcmV0dXJuIHRoaXMuX3Bvd2VyRWZmaWNpZW50UGxheWJh
Y2tSYW5nZXM7IH0KIAogICAgIGdldCBhdHRhY2hlZCgpCiAgICAgeworICAgICAgICBpZiAodGhp
cy5fZGVzdHJveWVkKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgICAgIGZvciAo
bGV0IG5vZGUgPSB0aGlzOyBub2RlOyBub2RlID0gbm9kZS5wYXJlbnROb2RlKSB7CiAgICAgICAg
ICAgICBpZiAobm9kZS5vd25lckRvY3VtZW50ID09PSBub2RlKQogICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwpAQCAtMjg0LDYgKzI5MCwxMSBAQCBXSS5ET01Ob2RlID0gY2xhc3MgRE9NTm9k
ZSBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0aGlzLl9jaGlsZE5vZGVDb3VudCA9IGNvdW50
OwogICAgIH0KIAorICAgIG1hcmtEZXN0cm95ZWQoKQorICAgIHsKKyAgICAgICAgdGhpcy5fZGVz
dHJveWVkID0gdHJ1ZTsKKyAgICB9CisKICAgICBjb21wdXRlZFJvbGUoKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIHRoaXMuX2NvbXB1dGVkUm9sZTsKQEAgLTM3OCw2ICszODksOSBAQCBXSS5ET01O
b2RlID0gY2xhc3MgRE9NTm9kZSBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgc2V0Tm9kZU5hbWUo
bmFtZSwgY2FsbGJhY2spCiAgICAgeworICAgICAgICBpZiAodGhpcy5fZGVzdHJveWVkKQorICAg
ICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIGxldCB0YXJnZXQgPSBXSS5hc3N1bWluZ01haW5U
YXJnZXQoKTsKICAgICAgICAgdGFyZ2V0LkRPTUFnZW50LnNldE5vZGVOYW1lKHRoaXMuaWQsIG5h
bWUsIHRoaXMuX21ha2VVbmRvYWJsZUNhbGxiYWNrKGNhbGxiYWNrKSk7CiAgICAgfQpAQCAtNDM0
LDYgKzQ0OCw5IEBAIFdJLkRPTU5vZGUgPSBjbGFzcyBET01Ob2RlIGV4dGVuZHMgV0kuT2JqZWN0
CiAKICAgICBzZXROb2RlVmFsdWUodmFsdWUsIGNhbGxiYWNrKQogICAgIHsKKyAgICAgICAgaWYg
KHRoaXMuX2Rlc3Ryb3llZCkKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICBsZXQgdGFy
Z2V0ID0gV0kuYXNzdW1pbmdNYWluVGFyZ2V0KCk7CiAgICAgICAgIHRhcmdldC5ET01BZ2VudC5z
ZXROb2RlVmFsdWUodGhpcy5pZCwgdmFsdWUsIHRoaXMuX21ha2VVbmRvYWJsZUNhbGxiYWNrKGNh
bGxiYWNrKSk7CiAgICAgfQpAQCAtNDQ2LDEyICs0NjMsMTggQEAgV0kuRE9NTm9kZSA9IGNsYXNz
IERPTU5vZGUgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIHNldEF0dHJpYnV0ZShuYW1lLCB0ZXh0
LCBjYWxsYmFjaykKICAgICB7CisgICAgICAgIGlmICh0aGlzLl9kZXN0cm95ZWQpCisgICAgICAg
ICAgICByZXR1cm47CisKICAgICAgICAgbGV0IHRhcmdldCA9IFdJLmFzc3VtaW5nTWFpblRhcmdl
dCgpOwogICAgICAgICB0YXJnZXQuRE9NQWdlbnQuc2V0QXR0cmlidXRlc0FzVGV4dCh0aGlzLmlk
LCB0ZXh0LCBuYW1lLCB0aGlzLl9tYWtlVW5kb2FibGVDYWxsYmFjayhjYWxsYmFjaykpOwogICAg
IH0KIAogICAgIHNldEF0dHJpYnV0ZVZhbHVlKG5hbWUsIHZhbHVlLCBjYWxsYmFjaykKICAgICB7
CisgICAgICAgIGlmICh0aGlzLl9kZXN0cm95ZWQpCisgICAgICAgICAgICByZXR1cm47CisKICAg
ICAgICAgbGV0IHRhcmdldCA9IFdJLmFzc3VtaW5nTWFpblRhcmdldCgpOwogICAgICAgICB0YXJn
ZXQuRE9NQWdlbnQuc2V0QXR0cmlidXRlVmFsdWUodGhpcy5pZCwgbmFtZSwgdmFsdWUsIHRoaXMu
X21ha2VVbmRvYWJsZUNhbGxiYWNrKGNhbGxiYWNrKSk7CiAgICAgfQpAQCAtNDYzLDYgKzQ4Niw5
IEBAIFdJLkRPTU5vZGUgPSBjbGFzcyBET01Ob2RlIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICBy
ZW1vdmVBdHRyaWJ1dGUobmFtZSwgY2FsbGJhY2spCiAgICAgeworICAgICAgICBpZiAodGhpcy5f
ZGVzdHJveWVkKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIGZ1bmN0aW9uIG15Y2Fs
bGJhY2soZXJyb3IsIHN1Y2Nlc3MpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghZXJyb3Ip
IHsKQEAgLTUwNSw2ICs1MzEsNTQgQEAgV0kuRE9NTm9kZSA9IGNsYXNzIERPTU5vZGUgZXh0ZW5k
cyBXSS5PYmplY3QKICAgICAgICAgfSk7CiAgICAgfQogCisgICAgcXVlcnlTZWxlY3RvcihzZWxl
Y3RvciwgY2FsbGJhY2spCisgICAgeworCisgICAgICAgIGxldCB0YXJnZXQgPSBXSS5hc3N1bWlu
Z01haW5UYXJnZXQoKTsKKworICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAiZnVuY3Rp
b24iKSB7CisgICAgICAgICAgICBpZiAodGhpcy5fZGVzdHJveWVkKQorICAgICAgICAgICAgICAg
IHJldHVybiBQcm9taXNlLnJlamVjdCgiRVJST1I6IG5vZGUgaXMgZGVzdHJveWVkIik7CisgICAg
ICAgICAgICByZXR1cm4gdGFyZ2V0LkRPTUFnZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5pZCwgc2Vs
ZWN0b3IpLnRoZW4oKHtub2RlSWR9KSA9PiBub2RlSWQpOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKHRoaXMuX2Rlc3Ryb3llZCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0YXJn
ZXQuRE9NQWdlbnQucXVlcnlTZWxlY3Rvcih0aGlzLmlkLCBzZWxlY3RvciwgV0kuRE9NTWFuYWdl
ci53cmFwQ2xpZW50Q2FsbGJhY2soY2FsbGJhY2spKTsKKyAgICB9CisKKyAgICBxdWVyeVNlbGVj
dG9yQWxsKHNlbGVjdG9yLCBjYWxsYmFjaykKKyAgICB7CisKKyAgICAgICAgbGV0IHRhcmdldCA9
IFdJLmFzc3VtaW5nTWFpblRhcmdldCgpOworCisgICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sg
IT09ICJmdW5jdGlvbiIpIHsKKyAgICAgICAgICAgIGlmICh0aGlzLl9kZXN0cm95ZWQpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCJFUlJPUjogbm9kZSBpcyBkZXN0cm95
ZWQiKTsKKyAgICAgICAgICAgIHJldHVybiB0YXJnZXQuRE9NQWdlbnQucXVlcnlTZWxlY3RvckFs
bCh0aGlzLmlkLCBzZWxlY3RvcikudGhlbigoe25vZGVJZHN9KSA9PiBub2RlSWRzKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmICh0aGlzLl9kZXN0cm95ZWQpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgdGFyZ2V0LkRPTUFnZW50LnF1ZXJ5U2VsZWN0b3JBbGwodGhpcy5pZCwgc2Vs
ZWN0b3IsIFdJLkRPTU1hbmFnZXIud3JhcENsaWVudENhbGxiYWNrKGNhbGxiYWNrKSk7CisgICAg
fQorCisgICAgaGlnaGxpZ2h0KG1vZGUpCisgICAgeworICAgICAgICBpZiAodGhpcy5fZGVzdHJv
eWVkKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICh0aGlzLl9oaWRlRE9NTm9k
ZUhpZ2hsaWdodFRpbWVvdXQpIHsKKyAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9oaWRl
RE9NTm9kZUhpZ2hsaWdodFRpbWVvdXQpOworICAgICAgICAgICAgdGhpcy5faGlkZURPTU5vZGVI
aWdobGlnaHRUaW1lb3V0ID0gdW5kZWZpbmVkOworICAgICAgICB9CisKKyAgICAgICAgbGV0IHRh
cmdldCA9IFdJLmFzc3VtaW5nTWFpblRhcmdldCgpOworICAgICAgICB0YXJnZXQuRE9NQWdlbnQu
aGlnaGxpZ2h0Tm9kZShXSS5ET01NYW5hZ2VyLmJ1aWxkSGlnaGxpZ2h0Q29uZmlnKG1vZGUpLCB0
aGlzLmlkKTsKKyAgICB9CisKICAgICBzY3JvbGxJbnRvVmlldygpCiAgICAgewogICAgICAgICBX
SS5SZW1vdGVPYmplY3QucmVzb2x2ZU5vZGUodGhpcykudGhlbigob2JqZWN0KSA9PiB7CkBAIC01
MjUsNiArNTk5LDkgQEAgV0kuRE9NTm9kZSA9IGNsYXNzIERPTU5vZGUgZXh0ZW5kcyBXSS5PYmpl
Y3QKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCisgICAgICAgIGlmICh0aGlzLl9k
ZXN0cm95ZWQpCisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgZnVuY3Rpb24gbXljYWxs
YmFjayhlcnJvcikgewogICAgICAgICAgICAgaWYgKCFlcnJvciAmJiBjYWxsYmFjaykKICAgICAg
ICAgICAgICAgICBjYWxsYmFjayh0aGlzLmNoaWxkcmVuKTsKQEAgLTUzNiw2ICs2MTMsOSBAQCBX
SS5ET01Ob2RlID0gY2xhc3MgRE9NTm9kZSBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgZ2V0U3Vi
dHJlZShkZXB0aCwgY2FsbGJhY2spCiAgICAgeworICAgICAgICBpZiAodGhpcy5fZGVzdHJveWVk
KQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIGZ1bmN0aW9uIG15Y2FsbGJhY2soZXJy
b3IpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChjYWxsYmFjaykKQEAgLTU0OCwyMSArNjI4
LDM1IEBAIFdJLkRPTU5vZGUgPSBjbGFzcyBET01Ob2RlIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAg
ICBnZXRPdXRlckhUTUwoY2FsbGJhY2spCiAgICAgeworCiAgICAgICAgIGxldCB0YXJnZXQgPSBX
SS5hc3N1bWluZ01haW5UYXJnZXQoKTsKLSAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0g
ImZ1bmN0aW9uIikKLSAgICAgICAgICAgIHRhcmdldC5ET01BZ2VudC5nZXRPdXRlckhUTUwodGhp
cy5pZCwgY2FsbGJhY2spOwotICAgICAgICBlbHNlCisKKyAgICAgICAgaWYgKHR5cGVvZiBjYWxs
YmFjayAhPT0gImZ1bmN0aW9uIikgeworICAgICAgICAgICAgaWYgKHRoaXMuX2Rlc3Ryb3llZCkK
KyAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoIkVSUk9SOiBub2RlIGlzIGRl
c3Ryb3llZCIpOwogICAgICAgICAgICAgcmV0dXJuIHRhcmdldC5ET01BZ2VudC5nZXRPdXRlckhU
TUwodGhpcy5pZCkudGhlbigoe291dGVySFRNTH0pID0+IG91dGVySFRNTCk7CisgICAgICAgIH0K
KworICAgICAgICBpZiAodGhpcy5fZGVzdHJveWVkKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIHRhcmdldC5ET01BZ2VudC5nZXRPdXRlckhUTUwodGhpcy5pZCwgY2FsbGJhY2spOwog
ICAgIH0KIAogICAgIHNldE91dGVySFRNTChodG1sLCBjYWxsYmFjaykKICAgICB7CisgICAgICAg
IGlmICh0aGlzLl9kZXN0cm95ZWQpCisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgbGV0
IHRhcmdldCA9IFdJLmFzc3VtaW5nTWFpblRhcmdldCgpOwogICAgICAgICB0YXJnZXQuRE9NQWdl
bnQuc2V0T3V0ZXJIVE1MKHRoaXMuaWQsIGh0bWwsIHRoaXMuX21ha2VVbmRvYWJsZUNhbGxiYWNr
KGNhbGxiYWNrKSk7CiAgICAgfQogCiAgICAgaW5zZXJ0QWRqYWNlbnRIVE1MKHBvc2l0aW9uLCBo
dG1sKQogICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2Rlc3Ryb3llZCkKKyAgICAgICAgICAgIHJl
dHVybjsKKwogICAgICAgICBpZiAodGhpcy5ub2RlVHlwZSgpICE9PSBOb2RlLkVMRU1FTlRfTk9E
RSkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtNTg2LDEyICs2ODAsMTggQEAgV0kuRE9NTm9k
ZSA9IGNsYXNzIERPTU5vZGUgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIHJlbW92ZU5vZGUoY2Fs
bGJhY2spCiAgICAgeworICAgICAgICBpZiAodGhpcy5fZGVzdHJveWVkKQorICAgICAgICAgICAg
cmV0dXJuOworCiAgICAgICAgIGxldCB0YXJnZXQgPSBXSS5hc3N1bWluZ01haW5UYXJnZXQoKTsK
ICAgICAgICAgdGFyZ2V0LkRPTUFnZW50LnJlbW92ZU5vZGUodGhpcy5pZCwgdGhpcy5fbWFrZVVu
ZG9hYmxlQ2FsbGJhY2soY2FsbGJhY2spKTsKICAgICB9CiAKICAgICBnZXRFdmVudExpc3RlbmVy
cyhjYWxsYmFjaykKICAgICB7CisgICAgICAgIGlmICh0aGlzLl9kZXN0cm95ZWQpCisgICAgICAg
ICAgICByZXR1cm47CisKICAgICAgICAgY29uc29sZS5hc3NlcnQoV0kuZG9tTWFuYWdlci5pbnNw
ZWN0ZWROb2RlID09PSB0aGlzKTsKIAogICAgICAgICBsZXQgdGFyZ2V0ID0gV0kuYXNzdW1pbmdN
YWluVGFyZ2V0KCk7CkBAIC02MDAsNiArNzAwLDkgQEAgV0kuRE9NTm9kZSA9IGNsYXNzIERPTU5v
ZGUgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIGFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzKGNhbGxi
YWNrKQogICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2Rlc3Ryb3llZCkKKyAgICAgICAgICAgIHJl
dHVybjsKKwogICAgICAgICBmdW5jdGlvbiBhY2Nlc3NpYmlsaXR5UHJvcGVydGllc0NhbGxiYWNr
KGVycm9yLCBhY2Nlc3NpYmlsaXR5UHJvcGVydGllcykKICAgICAgICAgewogICAgICAgICAgICAg
aWYgKCFlcnJvciAmJiBjYWxsYmFjayAmJiBhY2Nlc3NpYmlsaXR5UHJvcGVydGllcykgewpAQCAt
OTE1LDYgKzEwMTgsOSBAQCBXSS5ET01Ob2RlID0gY2xhc3MgRE9NTm9kZSBleHRlbmRzIFdJLk9i
amVjdAogCiAgICAgbW92ZVRvKHRhcmdldE5vZGUsIGFuY2hvck5vZGUsIGNhbGxiYWNrKQogICAg
IHsKKyAgICAgICAgaWYgKHRoaXMuX2Rlc3Ryb3llZCkKKyAgICAgICAgICAgIHJldHVybjsKKwog
ICAgICAgICBsZXQgdGFyZ2V0ID0gV0kuYXNzdW1pbmdNYWluVGFyZ2V0KCk7CiAgICAgICAgIHRh
cmdldC5ET01BZ2VudC5tb3ZlVG8odGhpcy5pZCwgdGFyZ2V0Tm9kZS5pZCwgYW5jaG9yTm9kZSA/
IGFuY2hvck5vZGUuaWQgOiB1bmRlZmluZWQsIHRoaXMuX21ha2VVbmRvYWJsZUNhbGxiYWNrKGNh
bGxiYWNrKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL01lZGlhVGltZWxpbmVSZWNvcmQuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTWVkaWFUaW1lbGluZVJlY29yZC5qcwppbmRleCBm
M2EwNzVhZTMzYmZkOGVjMTE4ZGJiZDIzZjE1ZmRkYTVmNjljOWFlLi41ZGU4OWEzZDc5YzE1ODc5
MThmYzk0M2E3ZjhmM2Y2MGYxMzc3Y2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTWVkaWFUaW1lbGluZVJlY29yZC5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvTWVkaWFUaW1lbGluZVJlY29y
ZC5qcwpAQCAtNjQsNyArNjQsNyBAQCBXSS5NZWRpYVRpbWVsaW5lUmVjb3JkID0gY2xhc3MgTWVk
aWFUaW1lbGluZVJlY29yZCBleHRlbmRzIFdJLlRpbWVsaW5lUmVjb3JkCiAgICAgICAgIGxldCBk
b21Ob2RlID0gbnVsbDsKICAgICAgICAgaWYgKGRvY3VtZW50Tm9kZSAmJiBkb21Ob2RlQ1NTUGF0
aCkgewogICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICBsZXQgbm9kZUlkID0gYXdh
aXQgV0kuZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZSwgZG9tTm9kZUNTU1Bh
dGgpOworICAgICAgICAgICAgICAgIGxldCBub2RlSWQgPSBhd2FpdCBkb2N1bWVudE5vZGUucXVl
cnlTZWxlY3Rvcihkb21Ob2RlQ1NTUGF0aCk7CiAgICAgICAgICAgICAgICAgaWYgKG5vZGVJZCkK
ICAgICAgICAgICAgICAgICAgICAgZG9tTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5v
ZGVJZCk7CiAgICAgICAgICAgICB9IGNhdGNoIHsgfQpAQCAtODQsNyArODQsNyBAQCBXSS5NZWRp
YVRpbWVsaW5lUmVjb3JkID0gY2xhc3MgTWVkaWFUaW1lbGluZVJlY29yZCBleHRlbmRzIFdJLlRp
bWVsaW5lUmVjb3JkCiAgICAgICAgICAgICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gTWVkaWFUaW1l
bGluZVJlY29yZC5UaW1lc3RhbXBUeXBlLk1lZGlhRWxlbWVudERPTUV2ZW50KSB7CiAgICAgICAg
ICAgICAgICAgICAgIGlmIChkb2N1bWVudE5vZGUgJiYgaXRlbS5vcmlnaW5hdG9yQ1NTUGF0aCkg
ewogICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgbm9kZUlkID0gYXdhaXQgV0kuZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3Vt
ZW50Tm9kZSwgaXRlbS5vcmlnaW5hdG9yQ1NTUGF0aCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGV0IG5vZGVJZCA9IGF3YWl0IGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKGl0ZW0u
b3JpZ2luYXRvckNTU1BhdGgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChub2Rl
SWQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ub3JpZ2luYXRvciA9IFdJ
LmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9
IGNhdGNoIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvUHJvdG9jb2wvUmVtb3RlT2JqZWN0LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvUHJvdG9jb2wvUmVtb3RlT2JqZWN0LmpzCmluZGV4IDlkNTUyZGFjYzQ5ODcyOTM4
ZDQ2NzA5MmQ3YTg3MDZlMGZmMzgzOWQuLjc4NzI5ZmM1NzE4MDgzOTY2MTM5OTUzZjNkZDgyMjJi
M2E4N2ZlMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1Byb3RvY29sL1JlbW90ZU9iamVjdC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3QuanMKQEAgLTE0Myw2ICsxNDMsOSBAQCBX
SS5SZW1vdGVPYmplY3QgPSBjbGFzcyBSZW1vdGVPYmplY3QKIAogICAgIHN0YXRpYyByZXNvbHZl
Tm9kZShub2RlLCBvYmplY3RHcm91cCkKICAgICB7CisgICAgICAgIGlmIChub2RlLmRlc3Ryb3ll
ZCkKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgiRVJST1I6IG5vZGUgaXMgZGVz
dHJveWVkIik7CisKICAgICAgICAgbGV0IHRhcmdldCA9IFdJLmFzc3VtaW5nTWFpblRhcmdldCgp
OwogICAgICAgICByZXR1cm4gdGFyZ2V0LkRPTUFnZW50LnJlc29sdmVOb2RlKG5vZGUuaWQsIG9i
amVjdEdyb3VwKQogICAgICAgICAgICAgLnRoZW4oKHtvYmplY3R9KSA9PiBXSS5SZW1vdGVPYmpl
Y3QuZnJvbVBheWxvYWQob2JqZWN0LCBXSS5tYWluVGFyZ2V0KSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Cb3hNb2RlbERldGFpbHNTZWN0
aW9uUm93LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQm94
TW9kZWxEZXRhaWxzU2VjdGlvblJvdy5qcwppbmRleCBjOGNmYzQxMmI1OTBhYTVlNzllMjIwOTJi
OGExZDRjZDhkZmMwZjJiLi4wNGI4M2YwZGE2MjBmZWQ5NDZkODk1NWUxZWM2ODkzZGY2ODIyODFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9C
b3hNb2RlbERldGFpbHNTZWN0aW9uUm93LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0JveE1vZGVsRGV0YWlsc1NlY3Rpb25Sb3cuanMKQEAgLTExNCwx
MiArMTE0LDEyIEBAIFdJLkJveE1vZGVsRGV0YWlsc1NlY3Rpb25Sb3cgPSBjbGFzcyBCb3hNb2Rl
bERldGFpbHNTZWN0aW9uUm93IGV4dGVuZHMgV0kuRGV0YWlsCiAgICAgewogICAgICAgICBldmVu
dC5zdG9wUHJvcGFnYXRpb24oKTsKIAotICAgICAgICB2YXIgbm9kZUlkID0gc2hvd0hpZ2hsaWdo
dCA/IHRoaXMubm9kZVN0eWxlcy5ub2RlLmlkIDogMDsKLSAgICAgICAgaWYgKG5vZGVJZCkgewor
ICAgICAgICBsZXQgbm9kZSA9IHNob3dIaWdobGlnaHQgPyB0aGlzLm5vZGVTdHlsZXMubm9kZSA6
IG51bGw7CisgICAgICAgIGlmIChub2RlKSB7CiAgICAgICAgICAgICBpZiAodGhpcy5faGlnaGxp
Z2h0TW9kZSA9PT0gbW9kZSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB0
aGlzLl9oaWdobGlnaHRNb2RlID0gbW9kZTsKLSAgICAgICAgICAgIFdJLmRvbU1hbmFnZXIuaGln
aGxpZ2h0RE9NTm9kZShub2RlSWQsIG1vZGUpOworICAgICAgICAgICAgbm9kZS5oaWdobGlnaHQo
dGhpcy5faGlnaGxpZ2h0TW9kZSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICB0aGlz
Ll9oaWdobGlnaHRNb2RlID0gbnVsbDsKICAgICAgICAgICAgIFdJLmRvbU1hbmFnZXIuaGlkZURP
TU5vZGVIaWdobGlnaHQoKTsKQEAgLTEyNyw3ICsxMjcsNyBAQCBXSS5Cb3hNb2RlbERldGFpbHNT
ZWN0aW9uUm93ID0gY2xhc3MgQm94TW9kZWxEZXRhaWxzU2VjdGlvblJvdyBleHRlbmRzIFdJLkRl
dGFpbAogCiAgICAgICAgIGZvciAodmFyIGkgPSAwOyB0aGlzLl9ib3hFbGVtZW50cyAmJiBpIDwg
dGhpcy5fYm94RWxlbWVudHMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIHZhciBlbGVtZW50
ID0gdGhpcy5fYm94RWxlbWVudHNbaV07Ci0gICAgICAgICAgICBpZiAobm9kZUlkICYmIChtb2Rl
ID09PSAiYWxsIiB8fCBlbGVtZW50Ll9uYW1lID09PSBtb2RlKSkKKyAgICAgICAgICAgIGlmIChu
b2RlICYmIChtb2RlID09PSAiYWxsIiB8fCBlbGVtZW50Ll9uYW1lID09PSBtb2RlKSkKICAgICAg
ICAgICAgICAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpOwogICAgICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
YW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmlldy5qcwppbmRleCA5NTlhYTk0
ODc1ZjRjOGFkNTZlMzBmNmMwNDBmNDQ1NGMwNzA5NmM3Li42MzliMzZkODU5YmI3Y2YzYzM0NDQ1
YWEwZWI3NDk1NDMzYzQxMDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVu
dFZpZXcuanMKQEAgLTE5Myw3ICsxOTMsNyBAQCBXSS5DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3
ID0gY2xhc3MgQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbGxlYwogICAg
ICAgICBsZXQgY2FudmFzID0gY29udGVudFZpZXcucmVwcmVzZW50ZWRPYmplY3Q7CiAgICAgICAg
IGlmIChjYW52YXMuY3NzQ2FudmFzTmFtZSB8fCBjYW52YXMuY29udGV4dFR5cGUgPT09IFdJLkNh
bnZhcy5Db250ZXh0VHlwZS5XZWJHUFUpIHsKICAgICAgICAgICAgIGNhbnZhcy5yZXF1ZXN0Q2xp
ZW50Tm9kZXMoKGNsaWVudE5vZGVzKSA9PiB7Ci0gICAgICAgICAgICAgICAgV0kuZG9tTWFuYWdl
ci5oaWdobGlnaHRET01Ob2RlTGlzdChjbGllbnROb2Rlcy5tYXAoKG5vZGUpID0+IG5vZGUuaWQp
KTsKKyAgICAgICAgICAgICAgICBXSS5kb21NYW5hZ2VyLmhpZ2hsaWdodERPTU5vZGVMaXN0KGNs
aWVudE5vZGVzKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CkBAIC0yMDEsNyArMjAxLDcgQEAgV0kuQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyA9IGNs
YXNzIENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db2xsZWMKICAgICAgICAg
Y2FudmFzLnJlcXVlc3ROb2RlKCkudGhlbigobm9kZSkgPT4gewogICAgICAgICAgICAgaWYgKCFu
b2RlIHx8ICFub2RlLm93bmVyRG9jdW1lbnQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAgICAgV0kuZG9tTWFuYWdlci5oaWdobGlnaHRET01Ob2RlKG5vZGUuaWQpOworICAgICAg
ICAgICAgbm9kZS5oaWdobGlnaHQoKTsKICAgICAgICAgfSk7CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNUcmVlRWxl
bWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZh
c1RyZWVFbGVtZW50LmpzCmluZGV4IDZiMzczNTJmODVkNGI5NDM2YjIxMzEzNGVhZTA0MTAwYzQx
OWEzYmQuLjkxZjI2YTdjMzAxY2U5ZTI5YmZlYjVjMTViMjRiNzE3Y2E0M2JlNjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RyZWVF
bGVtZW50LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0NhbnZhc1RyZWVFbGVtZW50LmpzCkBAIC0xMTcsMTQgKzExNywxNCBAQCBXSS5DYW52YXNUcmVl
RWxlbWVudCA9IGNsYXNzIENhbnZhc1RyZWVFbGVtZW50IGV4dGVuZHMgV0kuRm9sZGVyaXplZFRy
ZWVFbGVtZW50CiAgICAgewogICAgICAgICBpZiAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5jc3ND
YW52YXNOYW1lIHx8IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuY29udGV4dFR5cGUgPT09IFdJLkNh
bnZhcy5Db250ZXh0VHlwZS5XZWJHUFUpIHsKICAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRP
YmplY3QucmVxdWVzdENsaWVudE5vZGVzKChjbGllbnROb2RlcykgPT4gewotICAgICAgICAgICAg
ICAgIFdJLmRvbU1hbmFnZXIuaGlnaGxpZ2h0RE9NTm9kZUxpc3QoY2xpZW50Tm9kZXMubWFwKChu
b2RlKSA9PiBub2RlLmlkKSk7CisgICAgICAgICAgICAgICAgV0kuZG9tTWFuYWdlci5oaWdobGln
aHRET01Ob2RlTGlzdChjbGllbnROb2Rlcyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVxdWVzdE5vZGUoKG5v
ZGUpID0+IHsKICAgICAgICAgICAgICAgICBpZiAoIW5vZGUgfHwgIW5vZGUub3duZXJEb2N1bWVu
dCkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgICAgICAgICAgV0kuZG9t
TWFuYWdlci5oaWdobGlnaHRET01Ob2RlKG5vZGUuaWQpOworICAgICAgICAgICAgICAgIG5vZGUu
aGlnaGxpZ2h0KCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRleHRNZW51
VXRpbGl0aWVzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Q29udGV4dE1lbnVVdGlsaXRpZXMuanMKaW5kZXggNTM3YTBhODA3ZjNiZmY5Y2NjNGIwMWYyOTJi
MTRmYjMxZmVkNDQ0Yi4uMTU1YzU3YzdiM2U0MDdiMjA3YmVjMGNiMWVmNzUxYWQ2OTY5YjJhNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29u
dGV4dE1lbnVVdGlsaXRpZXMuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQ29udGV4dE1lbnVVdGlsaXRpZXMuanMKQEAgLTI5MSw3ICsyOTEsNyBAQCBX
SS5hcHBlbmRDb250ZXh0TWVudUl0ZW1zRm9yRE9NTm9kZSA9IGZ1bmN0aW9uKGNvbnRleHRNZW51
LCBkb21Ob2RlLCBvcHRpb25zID0gewogICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0
b3IoKTsKIAogICAgICAgICBsZXQgY2FuTG9nU2hhZG93VHJlZSA9ICFkb21Ob2RlLmlzSW5Vc2Vy
QWdlbnRTaGFkb3dUcmVlKCkgfHwgV0kuRE9NTWFuYWdlci5zdXBwb3J0c0VkaXRpbmdVc2VyQWdl
bnRTaGFkb3dUcmVlcyh7ZnJvbnRlbmRPbmx5OiB0cnVlfSk7Ci0gICAgICAgIGlmICghb3B0aW9u
cy5leGNsdWRlTG9nRWxlbWVudCAmJiBjYW5Mb2dTaGFkb3dUcmVlICYmICFkb21Ob2RlLmlzUHNl
dWRvRWxlbWVudCgpKSB7CisgICAgICAgIGlmICghb3B0aW9ucy5leGNsdWRlTG9nRWxlbWVudCAm
JiBjYW5Mb2dTaGFkb3dUcmVlICYmICFkb21Ob2RlLmRlc3Ryb3llZCAmJiAhZG9tTm9kZS5pc1Bz
ZXVkb0VsZW1lbnQoKSkgewogICAgICAgICAgICAgbGV0IGxhYmVsID0gaXNFbGVtZW50ID8gV0ku
VUlTdHJpbmcoIkxvZyBFbGVtZW50IiwgIkxvZyAocHJpbnQpIERPTSBlbGVtZW50IHRvIENvbnNv
bGUiKSA6IFdJLlVJU3RyaW5nKCJMb2cgTm9kZSIsICJMb2cgKHByaW50KSBET00gbm9kZSB0byBD
b25zb2xlIik7CiAgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKGxhYmVsLCAoKSA9
PiB7CiAgICAgICAgICAgICAgICAgV0kuUmVtb3RlT2JqZWN0LnJlc29sdmVOb2RlKGRvbU5vZGUs
IFdJLlJ1bnRpbWVNYW5hZ2VyLkNvbnNvbGVPYmplY3RHcm91cCkudGhlbigocmVtb3RlT2JqZWN0
KSA9PiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9ET01Ob2RlRGV0YWlsc1NpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTU5vZGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzCmluZGV4
IGZjMDM5NTE3N2Y0YmFkNWJkZjg3OWFiZDFlNGJjZTRhNDdiODMxNmUuLjM5MGE1MmMyMDEyZTNl
ZjNiY2MzODViMjY3NDRkODRiNWFhMjJhOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTU5vZGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTU5vZGVEZXRh
aWxzU2lkZWJhclBhbmVsLmpzCkBAIC0xNTcsNyArMTU3LDcgQEAgV0kuRE9NTm9kZURldGFpbHNT
aWRlYmFyUGFuZWwgPSBjbGFzcyBET01Ob2RlRGV0YWlsc1NpZGViYXJQYW5lbCBleHRlbmRzIFdJ
LkRPTUQKICAgICB7CiAgICAgICAgIHN1cGVyLmxheW91dCgpOwogCi0gICAgICAgIGlmICghdGhp
cy5kb21Ob2RlKQorICAgICAgICBpZiAoIXRoaXMuZG9tTm9kZSB8fCB0aGlzLmRvbU5vZGUuZGVz
dHJveWVkKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHRoaXMuX3JlZnJlc2hJZGVu
dGl0eSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvRE9NVHJlZUNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvRE9NVHJlZUNvbnRlbnRWaWV3LmpzCmluZGV4IDVkZWM3ZDQwYmU4ZGEz
MTg0N2YyMzhkMWZhM2M4YzZjMGRlMGNkOGUuLjU5NThmNmE1OTQ3MzE4MTc4NmUzZTU3MzM0Y2Mw
ODU1MTdhN2I4MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0RPTVRyZWVDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlQ29udGVudFZpZXcuanMKQEAgLTQ5OCw3ICs0
OTgsNyBAQCBXSS5ET01UcmVlQ29udGVudFZpZXcgPSBjbGFzcyBET01UcmVlQ29udGVudFZpZXcg
ZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICB0aGlzLl9kb21UcmVlT3V0bGluZS5zZWxl
Y3RET01Ob2RlKGRvbU5vZGUsIHNlbGVjdGVkQnlVc2VyKTsKIAogICAgICAgICBpZiAoZG9tTm9k
ZSAmJiBzZWxlY3RlZEJ5VXNlcikKLSAgICAgICAgICAgIFdJLmRvbU1hbmFnZXIuaGlnaGxpZ2h0
RE9NTm9kZShkb21Ob2RlLmlkKTsKKyAgICAgICAgICAgIGRvbU5vZGUuaGlnaGxpZ2h0KCk7CiAK
ICAgICAgICAgdGhpcy5fZG9tVHJlZU91dGxpbmUudXBkYXRlU2VsZWN0aW9uQXJlYSgpOwogICAg
ICAgICB0aGlzLl9kb21UcmVlT3V0bGluZS5zdXBwcmVzc1JldmVhbEFuZFNlbGVjdCA9IGZhbHNl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
RE9NVHJlZUVsZW1lbnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9ET01UcmVlRWxlbWVudC5qcwppbmRleCA4NTUyZGRmNDFmYjgzODYwZTNlNTU4NTQ4NjI3
MDE2MmQ5YjJlZDUxLi5kZGRhMzExN2VhZWQ0Nzk3YWY3MTRmODkxYzVhOGJhOTEwY2UxYTIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01U
cmVlRWxlbWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9ET01UcmVlRWxlbWVudC5qcwpAQCAtMjQ0LDYgKzI0NCw5IEBAIFdJLkRPTVRyZWVFbGVt
ZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBXSS5UcmVlRWxlbWVudAogICAgIHsK
ICAgICAgICAgbGV0IG5vZGUgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0OwogCisgICAgICAgIGlm
IChub2RlLmRlc3Ryb3llZCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgICAgICBp
ZiAobm9kZS5pc1NoYWRvd1Jvb3QoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAt
ODMwLDcgKzgzMyw3IEBAIFdJLkRPTVRyZWVFbGVtZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnQg
ZXh0ZW5kcyBXSS5UcmVlRWxlbWVudAogICAgICAgICAgICAgfSwgV0kuaXNCZWluZ0VkaXRlZCh0
ZXh0Tm9kZSkpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCF0aGlzLnJlcHJlc2VudGVkT2Jq
ZWN0LmlzUHNldWRvRWxlbWVudCgpKSB7CisgICAgICAgIGlmICghdGhpcy5yZXByZXNlbnRlZE9i
amVjdC5kZXN0cm95ZWQgJiYgIXRoaXMucmVwcmVzZW50ZWRPYmplY3QuaXNQc2V1ZG9FbGVtZW50
KCkpIHsKICAgICAgICAgICAgIHN1Yk1lbnVzLmNvcHkuYXBwZW5kSXRlbShXSS5VSVN0cmluZygi
SFRNTCIpLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5n
ZXRPdXRlckhUTUwoKQogICAgICAgICAgICAgICAgIC50aGVuKChvdXRlckhUTUwpID0+IHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRy
ZWVFbGVtZW50UGF0aENvbXBvbmVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0RPTVRyZWVFbGVtZW50UGF0aENvbXBvbmVudC5qcwppbmRleCBkOGNlNDgx
NTBlZWUxYjFiMWJiYjRhMDg0MzdmMTFkZDMyMjYyY2YzLi5mM2IyNDBjN2JlMzVhZjM2MjMxMDA5
ZThjOWEzNWZkZDAwZDk3MzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudFBhdGhDb21wb25lbnQuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUVsZW1lbnRQYXRo
Q29tcG9uZW50LmpzCkBAIC0xNTAsOCArMTUwLDggQEAgV0kuRE9NVHJlZUVsZW1lbnRQYXRoQ29t
cG9uZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnRQYXRoQ29tcG9uZW50IGV4dGVuZHMgV0kuSGkK
IAogICAgIG1vdXNlT3ZlcigpCiAgICAgewotICAgICAgICB2YXIgbm9kZUlkID0gdGhpcy5fZG9t
VHJlZUVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3QuaWQ7Ci0gICAgICAgIFdJLmRvbU1hbmFnZXIu
aGlnaGxpZ2h0RE9NTm9kZShub2RlSWQpOworICAgICAgICBsZXQgbm9kZSA9IHRoaXMuX2RvbVRy
ZWVFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0OworICAgICAgICBub2RlLmhpZ2hsaWdodCgpOwog
ICAgIH0KIAogICAgIG1vdXNlT3V0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVPdXRsaW5lLmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZU91dGxpbmUuanMKaW5kZXggYTM2YjRk
NTMxMDM4MzA1YzI1MTZjOGQzNDVmN2Y4ZTNlNWFlZjk3OS4uZmVhYzQ1Y2EyZGEyNjVlY2VlMjJh
ZjBlZmUyYTQ4MTRjZWYzZmI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZU91dGxpbmUuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZU91dGxpbmUuanMKQEAgLTE1MSw3ICsx
NTEsNyBAQCBXSS5ET01UcmVlT3V0bGluZSA9IGNsYXNzIERPTVRyZWVPdXRsaW5lIGV4dGVuZHMg
V0kuVHJlZU91dGxpbmUKIAogICAgIGdldCBlZGl0YWJsZSgpCiAgICAgewotICAgICAgICByZXR1
cm4gdGhpcy5fZWRpdGFibGU7CisgICAgICAgIHJldHVybiB0aGlzLl9lZGl0YWJsZSAmJiB0aGlz
LnJvb3RET01Ob2RlICYmICF0aGlzLnJvb3RET01Ob2RlLmRlc3Ryb3llZDsKICAgICB9CiAKICAg
ICBzZXQgZWRpdGFibGUoeCkKQEAgLTI4NywxNCArMjg3LDE3IEBAIFdJLkRPTVRyZWVPdXRsaW5l
ID0gY2xhc3MgRE9NVHJlZU91dGxpbmUgZXh0ZW5kcyBXSS5UcmVlT3V0bGluZQogICAgICAgICAg
ICAgZGVsZXRlOiBuZXcgV0kuQ29udGV4dFN1Yk1lbnVJdGVtKGNvbnRleHRNZW51LCBXSS5VSVN0
cmluZygiRGVsZXRlIikpLAogICAgICAgICB9OwogCi0gICAgICAgIGlmICh0cmVlRWxlbWVudC5z
ZWxlY3RlZCAmJiB0aGlzLnNlbGVjdGVkVHJlZUVsZW1lbnRzLmxlbmd0aCA+IDEpCi0gICAgICAg
ICAgICBzdWJNZW51cy5kZWxldGUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiTm9kZXMiKSwgKCkg
PT4geyB0aGlzLm9uZGVsZXRlKCk7IH0sICF0aGlzLl9lZGl0YWJsZSk7CisgICAgICAgIGlmICh0
aGlzLmVkaXRhYmxlICYmIHRyZWVFbGVtZW50LnNlbGVjdGVkICYmIHRoaXMuc2VsZWN0ZWRUcmVl
RWxlbWVudHMubGVuZ3RoID4gMSkgeworICAgICAgICAgICAgc3ViTWVudXMuZGVsZXRlLmFwcGVu
ZEl0ZW0oV0kuVUlTdHJpbmcoIk5vZGVzIiksICgpID0+IHsKKyAgICAgICAgICAgICAgICB0aGlz
Lm9uZGVsZXRlKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQogCiAgICAgICAgIGlmICh0
cmVlRWxlbWVudC5wb3B1bGF0ZURPTU5vZGVDb250ZXh0TWVudSkKICAgICAgICAgICAgIHRyZWVF
bGVtZW50LnBvcHVsYXRlRE9NTm9kZUNvbnRleHRNZW51KGNvbnRleHRNZW51LCBzdWJNZW51cywg
ZXZlbnQsIHN1Yk1lbnVzKTsKIAogICAgICAgICBsZXQgb3B0aW9ucyA9IHsKLSAgICAgICAgICAg
IGRpc2FsbG93RWRpdGluZzogIXRoaXMuX2VkaXRhYmxlLAorICAgICAgICAgICAgZGlzYWxsb3dF
ZGl0aW5nOiAhdGhpcy5lZGl0YWJsZSwKICAgICAgICAgICAgIHVzaW5nTG9jYWxET01Ob2RlOiB0
aGlzLl91c2luZ0xvY2FsRE9NTm9kZSwKICAgICAgICAgICAgIGV4Y2x1ZGVSZXZlYWxFbGVtZW50
OiB0aGlzLl9leGNsdWRlUmV2ZWFsRWxlbWVudENvbnRleHRNZW51LAogICAgICAgICAgICAgY29w
eVN1Yk1lbnU6IHN1Yk1lbnVzLmNvcHksCkBAIC0zMTQsNyArMzE3LDcgQEAgV0kuRE9NVHJlZU91
dGxpbmUgPSBjbGFzcyBET01UcmVlT3V0bGluZSBleHRlbmRzIFdJLlRyZWVPdXRsaW5lCiAKICAg
ICBvbmRlbGV0ZSgpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMuX2VkaXRhYmxlKQorICAgICAg
ICBpZiAoIXRoaXMuZWRpdGFibGUpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAg
ICAgdGhpcy5fdHJlZUVsZW1lbnRzVG9SZW1vdmUgPSB0aGlzLnNlbGVjdGVkVHJlZUVsZW1lbnRz
OwpAQCAtNDY1LDEyICs0NjgsMTYgQEAgV0kuRE9NVHJlZU91dGxpbmUgPSBjbGFzcyBET01UcmVl
T3V0bGluZSBleHRlbmRzIFdJLlRyZWVPdXRsaW5lCiAgICAgICAgICAgICBlbGVtZW50LmhvdmVy
ZWQgPSB0cnVlOwogICAgICAgICAgICAgdGhpcy5fcHJldmlvdXNIb3ZlcmVkRWxlbWVudCA9IGVs
ZW1lbnQ7CiAKLSAgICAgICAgICAgIC8vIExhemlseSBjb21wdXRlIHRhZy1zcGVjaWZpYyB0b29s
dGlwcy4KLSAgICAgICAgICAgIGlmIChlbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0ICYmICFlbGVt
ZW50LnRvb2x0aXAgJiYgZWxlbWVudC5fY3JlYXRlVG9vbHRpcEZvck5vZGUpCi0gICAgICAgICAg
ICAgICAgZWxlbWVudC5fY3JlYXRlVG9vbHRpcEZvck5vZGUoKTsKLSAgICAgICAgfQorICAgICAg
ICAgICAgaWYgKGVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3QpIHsKKyAgICAgICAgICAgICAgICAv
LyBMYXppbHkgY29tcHV0ZSB0YWctc3BlY2lmaWMgdG9vbHRpcHMuCisgICAgICAgICAgICAgICAg
aWYgKCFlbGVtZW50LnRvb2x0aXAgJiYgZWxlbWVudC5fY3JlYXRlVG9vbHRpcEZvck5vZGUpCisg
ICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuX2NyZWF0ZVRvb2x0aXBGb3JOb2RlKCk7CiAKLSAg
ICAgICAgV0kuZG9tTWFuYWdlci5oaWdobGlnaHRET01Ob2RlKGVsZW1lbnQgPyBlbGVtZW50LnJl
cHJlc2VudGVkT2JqZWN0LmlkIDogMCk7CisgICAgICAgICAgICAgICAgZWxlbWVudC5yZXByZXNl
bnRlZE9iamVjdC5oaWdobGlnaHQoKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
ICAgIFdJLmRvbU1hbmFnZXIuaGlkZURPTU5vZGVIaWdobGlnaHQoKTsKKyAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICBXSS5kb21NYW5hZ2VyLmhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7CiAgICAg
fQogCiAgICAgX29ubW91c2VvdXQoZXZlbnQpCkBAIC00OTIsNyArNDk5LDcgQEAgV0kuRE9NVHJl
ZU91dGxpbmUgPSBjbGFzcyBET01UcmVlT3V0bGluZSBleHRlbmRzIFdJLlRyZWVPdXRsaW5lCiAK
ICAgICBfb25kcmFnc3RhcnQoZXZlbnQpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMuX2VkaXRh
YmxlKQorICAgICAgICBpZiAoIXRoaXMuZWRpdGFibGUpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0gdGhpcy50cmVlRWxlbWVudEZyb21FdmVu
dChldmVudCk7CkBAIC01MTgsNyArNTI1LDcgQEAgV0kuRE9NVHJlZU91dGxpbmUgPSBjbGFzcyBE
T01UcmVlT3V0bGluZSBleHRlbmRzIFdJLlRyZWVPdXRsaW5lCiAKICAgICBfb25kcmFnb3Zlcihl
dmVudCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fZWRpdGFibGUpCisgICAgICAgIGlmICgh
dGhpcy5lZGl0YWJsZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBpZiAo
ZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzLmluY2x1ZGVzKFdJLkdlbmVyYWxTdHlsZURldGFpbHNT
aWRlYmFyUGFuZWwuVG9nZ2xlZENsYXNzZXNEcmFnVHlwZSkpIHsKQEAgLTU1Miw3ICs1NTksNyBA
QCBXSS5ET01UcmVlT3V0bGluZSA9IGNsYXNzIERPTVRyZWVPdXRsaW5lIGV4dGVuZHMgV0kuVHJl
ZU91dGxpbmUKIAogICAgIF9vbmRyYWdsZWF2ZShldmVudCkKICAgICB7Ci0gICAgICAgIGlmICgh
dGhpcy5fZWRpdGFibGUpCisgICAgICAgIGlmICghdGhpcy5lZGl0YWJsZSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgICAgICB0aGlzLl9jbGVhckRyYWdPdmVyVHJlZUVsZW1lbnRN
YXJrZXIoKTsKQEAgLTU3Nyw3ICs1ODQsNyBAQCBXSS5ET01UcmVlT3V0bGluZSA9IGNsYXNzIERP
TVRyZWVPdXRsaW5lIGV4dGVuZHMgV0kuVHJlZU91dGxpbmUKIAogICAgIF9vbmRyb3AoZXZlbnQp
CiAgICAgewotICAgICAgICBpZiAoIXRoaXMuX2VkaXRhYmxlKQorICAgICAgICBpZiAoIXRoaXMu
ZWRpdGFibGUpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgZXZlbnQucHJldmVudERl
ZmF1bHQoKTsKQEAgLTYxOSw3ICs2MjYsNyBAQCBXSS5ET01UcmVlT3V0bGluZSA9IGNsYXNzIERP
TVRyZWVPdXRsaW5lIGV4dGVuZHMgV0kuVHJlZU91dGxpbmUKIAogICAgIF9vbmRyYWdlbmQoZXZl
bnQpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMuX2VkaXRhYmxlKQorICAgICAgICBpZiAoIXRo
aXMuZWRpdGFibGUpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgZXZlbnQucHJldmVu
dERlZmF1bHQoKTsKQEAgLTY3OCw3ICs2ODUsNyBAQCBXSS5ET01UcmVlT3V0bGluZSA9IGNsYXNz
IERPTVRyZWVPdXRsaW5lIGV4dGVuZHMgV0kuVHJlZU91dGxpbmUKIAogICAgIF9oaWRlRWxlbWVu
dHMoZXZlbnQsIGtleWJvYXJkU2hvcnRjdXQpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMuX2Vk
aXRhYmxlKQorICAgICAgICBpZiAoIXRoaXMuZWRpdGFibGUpCiAgICAgICAgICAgICByZXR1cm47
CiAKICAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkVHJlZUVsZW1lbnQgfHwgV0kuaXNFZGl0aW5n
QW55RmllbGQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0Zvcm1hdHRlZFZhbHVlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvRm9ybWF0dGVkVmFsdWUuanMKaW5kZXggMTcyNzI0YjQ2NDg1NTdmMTkw
MTA4MDNlYWYzZTJmNzQxMDQ5NDU3MC4uODRmY2QzMmIxYjVlYWI4MjcwYjgxOTAxZGJjMTVmODU4
Y2M3Njg1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvRm9ybWF0dGVkVmFsdWUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvRm9ybWF0dGVkVmFsdWUuanMKQEAgLTEyNiw3ICsxMjYsNyBAQCBXSS5G
b3JtYXR0ZWRWYWx1ZS5jcmVhdGVFbGVtZW50Rm9yTm9kZVByZXZpZXcgPSBmdW5jdGlvbihwcmV2
aWV3LCB7cmVtb3RlT2JqZWN0QQogCiAgICAgICAgIHNwYW4uYWRkRXZlbnRMaXN0ZW5lcigibW91
c2VlbnRlciIsIChldmVudCkgPT4gewogICAgICAgICAgICAgaWYgKGRvbU5vZGUpIHsKLSAgICAg
ICAgICAgICAgICBXSS5kb21NYW5hZ2VyLmhpZ2hsaWdodERPTU5vZGUoZG9tTm9kZS5pZCwgImFs
bCIpOworICAgICAgICAgICAgICAgIGRvbU5vZGUuaGlnaGxpZ2h0KCk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCkBAIC0xMzQsNyArMTM0LDcgQEAgV0kuRm9ybWF0
dGVkVmFsdWUuY3JlYXRlRWxlbWVudEZvck5vZGVQcmV2aWV3ID0gZnVuY3Rpb24ocHJldmlldywg
e3JlbW90ZU9iamVjdEEKICAgICAgICAgICAgICAgICByZW1vdGVPYmplY3QucHVzaE5vZGVUb0Zy
b250ZW5kKChub2RlSWQpID0+IHsKICAgICAgICAgICAgICAgICAgICAgZG9tTm9kZSA9IFdJLmRv
bU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChkb21O
b2RlKQotICAgICAgICAgICAgICAgICAgICAgICAgV0kuZG9tTWFuYWdlci5oaWdobGlnaHRET01O
b2RlKGRvbU5vZGUuaWQsICJhbGwiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvbU5vZGUu
aGlnaGxpZ2h0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9KTsKICAgICAg
ICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9HZW5lcmFsU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR2VuZXJhbFN0eWxlRGV0YWlsc1NpZGViYXJQYW5l
bC5qcwppbmRleCAwNGE1NTY3OWRiNjU1ZGQ5NDY0NmI0NjE2YTdiY2ZhMGZmNGI0Mzc3Li5mMDcz
ZjAwZGFiZTI2MWRmNDljOWUyZDQxYjJiYjRlZDNiYzAwMWFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HZW5lcmFsU3R5bGVEZXRhaWxzU2lk
ZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0dlbmVyYWxTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwuanMKQEAgLTg3LDcgKzg3LDcgQEAg
V0kuR2VuZXJhbFN0eWxlRGV0YWlsc1NpZGViYXJQYW5lbCA9IGNsYXNzIEdlbmVyYWxTdHlsZURl
dGFpbHNTaWRlYmFyUGFuZWwgZXh0ZW4KICAgICBsYXlvdXQoKQogICAgIHsKICAgICAgICAgbGV0
IGRvbU5vZGUgPSB0aGlzLmRvbU5vZGU7Ci0gICAgICAgIGlmICghZG9tTm9kZSkKKyAgICAgICAg
aWYgKCFkb21Ob2RlIHx8IGRvbU5vZGUuZGVzdHJveWVkKQogICAgICAgICAgICAgcmV0dXJuOwog
CiAgICAgICAgIHRoaXMuY29udGVudFZpZXcuZWxlbWVudC5zY3JvbGxUb3AgPSB0aGlzLl9pbml0
aWFsU2Nyb2xsT2Zmc2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvTGF5ZXJEZXRhaWxzU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5ZXJEZXRhaWxzU2lkZWJhclBhbmVsLmpz
CmluZGV4IGNmNWI0MWZjMGMwOTM5MTNhZGMzYzcyNTdhNjQyYmNkY2MxYjRiZDMuLjMyMzMyOTAy
ZjhjYTJmMzlkZmRjMGFkMTBlMTA0NGY0ZWIwODMxZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xheWVyRGV0YWlsc1NpZGViYXJQYW5lbC5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXllckRl
dGFpbHNTaWRlYmFyUGFuZWwuanMKQEAgLTE0OSwyMiArMTQ5LDI5IEBAIFdJLkxheWVyRGV0YWls
c1NpZGViYXJQYW5lbCA9IGNsYXNzIExheWVyRGV0YWlsc1NpZGViYXJQYW5lbCBleHRlbmRzIFdJ
LkRldGFpbHNTCiAKICAgICBfZGF0YUdyaWRNb3VzZU1vdmUoZXZlbnQpCiAgICAgewotICAgICAg
ICBsZXQgbm9kZSA9IHRoaXMuX2RhdGFHcmlkLmRhdGFHcmlkTm9kZUZyb21Ob2RlKGV2ZW50LnRh
cmdldCk7Ci0gICAgICAgIGlmIChub2RlID09PSB0aGlzLl9ob3ZlcmVkRGF0YUdyaWROb2RlKQor
ICAgICAgICBsZXQgZGF0YUdyaWROb2RlID0gdGhpcy5fZGF0YUdyaWQuZGF0YUdyaWROb2RlRnJv
bU5vZGUoZXZlbnQudGFyZ2V0KTsKKyAgICAgICAgaWYgKGRhdGFHcmlkTm9kZSA9PT0gdGhpcy5f
aG92ZXJlZERhdGFHcmlkTm9kZSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAo
IW5vZGUpIHsKKyAgICAgICAgaWYgKCFkYXRhR3JpZE5vZGUpIHsKICAgICAgICAgICAgIHRoaXMu
X2hpZGVET01Ob2RlSGlnaGxpZ2h0KCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
IAotICAgICAgICB0aGlzLl9ob3ZlcmVkRGF0YUdyaWROb2RlID0gbm9kZTsKKyAgICAgICAgdGhp
cy5faG92ZXJlZERhdGFHcmlkTm9kZSA9IGRhdGFHcmlkTm9kZTsKIAotICAgICAgICBpZiAobm9k
ZS5sYXllci5pc0dlbmVyYXRlZENvbnRlbnQgfHwgbm9kZS5sYXllci5pc1JlZmxlY3Rpb24gfHwg
bm9kZS5sYXllci5pc0Fub255bW91cykgeworICAgICAgICBsZXQgbGF5ZXIgPSBkYXRhR3JpZE5v
ZGUubGF5ZXI7CisKKyAgICAgICAgaWYgKGxheWVyLmlzR2VuZXJhdGVkQ29udGVudCB8fCBsYXll
ci5pc1JlZmxlY3Rpb24gfHwgbGF5ZXIuaXNBbm9ueW1vdXMpIHsKICAgICAgICAgICAgIGNvbnN0
IHVzZVBhZ2VDb29yZGluYXRlcyA9IHRydWU7Ci0gICAgICAgICAgICBXSS5kb21NYW5hZ2VyLmhp
Z2hsaWdodFJlY3Qobm9kZS5sYXllci5ib3VuZHMsIHVzZVBhZ2VDb29yZGluYXRlcyk7Ci0gICAg
ICAgIH0gZWxzZQotICAgICAgICAgICAgV0kuZG9tTWFuYWdlci5oaWdobGlnaHRET01Ob2RlKG5v
ZGUubGF5ZXIubm9kZUlkKTsKKyAgICAgICAgICAgIFdJLmRvbU1hbmFnZXIuaGlnaGxpZ2h0UmVj
dChsYXllci5ib3VuZHMsIHVzZVBhZ2VDb29yZGluYXRlcyk7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICBsZXQgZG9tTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKGxheWVyLm5v
ZGVJZCk7CisgICAgICAgICAgICBpZiAoZG9tTm9kZSkKKyAgICAgICAgICAgICAgICBkb21Ob2Rl
LmhpZ2hsaWdodCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIFdJLmRvbU1h
bmFnZXIuaGlkZURPTU5vZGVIaWdobGlnaHQoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIF9k
YXRhR3JpZE1vdXNlTGVhdmUoZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXllclRyZWVEZXRhaWxzU2lkZWJhclBhbmVsLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5ZXJUcmVlRGV0YWls
c1NpZGViYXJQYW5lbC5qcwppbmRleCBjMWFkNmZhYTRjZWIyOGYzZGQzZjY5YmMzMzRjYWFkODdl
YjI1YmNkLi45MWJhNjA4OGNhMWY5MGZmZmYxZmUwMmM3NzQxMGNhZWYyOTA2YThiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXllclRyZWVE
ZXRhaWxzU2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0xheWVyVHJlZURldGFpbHNTaWRlYmFyUGFuZWwuanMKQEAgLTc2LDcgKzc2
LDcgQEAgV0kuTGF5ZXJUcmVlRGV0YWlsc1NpZGViYXJQYW5lbCA9IGNsYXNzIExheWVyVHJlZURl
dGFpbHNTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXSS4KICAgICB7CiAgICAgICAgIHN1cGVyLmxheW91
dCgpOwogCi0gICAgICAgIGlmICghdGhpcy5kb21Ob2RlKQorICAgICAgICBpZiAoIXRoaXMuZG9t
Tm9kZSB8fCB0aGlzLmRvbU5vZGUuZGVzdHJveWVkKQogICAgICAgICAgICAgcmV0dXJuOwogCiAg
ICAgICAgIFdJLmxheWVyVHJlZU1hbmFnZXIubGF5ZXJzRm9yTm9kZSh0aGlzLmRvbU5vZGUsIChs
YXllcnMpID0+IHsKQEAgLTIzMiw4ICsyMzIsMTMgQEAgV0kuTGF5ZXJUcmVlRGV0YWlsc1NpZGVi
YXJQYW5lbCA9IGNsYXNzIExheWVyVHJlZURldGFpbHNTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXSS4K
ICAgICAgICAgdmFyIGxheWVyID0gZGF0YUdyaWROb2RlLmxheWVyOwogICAgICAgICBpZiAobGF5
ZXIuaXNHZW5lcmF0ZWRDb250ZW50IHx8IGxheWVyLmlzUmVmbGVjdGlvbiB8fCBsYXllci5pc0Fu
b255bW91cykKICAgICAgICAgICAgIFdJLmRvbU1hbmFnZXIuaGlnaGxpZ2h0UmVjdChsYXllci5i
b3VuZHMsIHRydWUpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBXSS5kb21NYW5hZ2VyLmhp
Z2hsaWdodERPTU5vZGUobGF5ZXIubm9kZUlkKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAg
ICBsZXQgZG9tTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKGxheWVyLm5vZGVJZCk7Cisg
ICAgICAgICAgICBpZiAoZG9tTm9kZSkKKyAgICAgICAgICAgICAgICBkb21Ob2RlLmhpZ2hsaWdo
dCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIFdJLmRvbU1hbmFnZXIuaGlk
ZURPTU5vZGVIaWdobGlnaHQoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIF91cGRhdGVEaXNw
bGF5V2l0aExheWVycyhsYXllckZvck5vZGUsIGNoaWxkTGF5ZXJzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHls
ZURlY2xhcmF0aW9uU2VjdGlvbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uanMKaW5kZXgg
NTliNzRlY2U2NjkwMjM0ZjQ0ODdjMGU2MGEwZDM2MmFlYmFlZTM1OC4uZmY1MjEwYzJhMGY1MDlk
ODE4NTEzNzBmZTRiYTU2MTRmMDNmNTU0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uU2Vj
dGlvbi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9T
cHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLmpzCkBAIC02MzYsNyArNjM2LDcg
QEAgV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbiA9IGNsYXNzIFNwcmVh
ZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvblMKICAgICAgICAgbGV0IG5vZGUgPSB0aGlzLl9zdHls
ZS5ub2RlOwogCiAgICAgICAgIGlmICghdGhpcy5fc3R5bGUub3duZXJSdWxlKSB7Ci0gICAgICAg
ICAgICBXSS5kb21NYW5hZ2VyLmhpZ2hsaWdodERPTU5vZGUobm9kZS5pZCk7CisgICAgICAgICAg
ICBub2RlLmhpZ2hsaWdodCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA1Y2UzZWZjZWVjYTQzNWU4N2IyNDI0NjExZTE1OWUwNTg5MGUxZDBjLi40NGI4MDMyZDlj
ZWFmYzY0MGE4NzMzN2Y4YTZlNzc4NzBhNzM5Y2M2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIw
MTktMTEtMjIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IFVuY2F1Z2h0IEV4Y2VwdGlvbjogTWlzc2luZyBub2RlIGZvciBnaXZlbiBu
b2RlSWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NDUxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
aHR0cC90ZXN0cy9pbnNwZWN0b3IvZG9tL2Nyb3NzLWRvbWFpbi1pbnNwZWN0ZWQtbm9kZS1hY2Nl
c3MuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9kb20vZGlkRmlyZUV2ZW50
Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1p
bml0aWF0b3JOb2RlLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29tbWFuZC1s
aW5lLWFwaS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jc3MvYWRkLWNzcy1wcm9wZXJ0eS5o
dG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jc3MvY3NzLXByb3BlcnR5Lmh0bWw6CisgICAgICAg
ICogaW5zcGVjdG9yL2Nzcy9mb3JjZS1wYWdlLWFwcGVhcmFuY2UuaHRtbDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvY3NzL2dlbmVyYXRlQ1NTUnVsZVN0cmluZy5odG1sOgorICAgICAgICAqIGluc3Bl
Y3Rvci9jc3MvbWF0Y2hlZC1zdHlsZS1wcm9wZXJ0aWVzLmh0bWw6CisgICAgICAgICogaW5zcGVj
dG9yL2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5LXJhY2UuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvY3NzL21vZGlmeS1jc3MtcHJvcGVydHkuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY3Nz
L21vZGlmeS1pbmxpbmUtc3R5bGUuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY3NzL21vZGlm
eS1ydWxlLXNlbGVjdG9yLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9vdmVycmlkZGVu
LXByb3BlcnR5Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9wc2V1ZG8tZWxlbWVudC1t
YXRjaGVzLWZvci1wc2V1ZG8tZWxlbWVudC1ub2RlLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9y
L2Nzcy9wc2V1ZG8tZWxlbWVudC1tYXRjaGVzLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Nz
cy9yZXNvbHZlLXZhcmlhYmxlLXZhbHVlLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9z
ZWxlY3Rvci1keW5hbWljLXNwZWNpZmljaXR5Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Nz
cy9zZWxlY3Rvci1zcGVjaWZpY2l0eS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jc3Mvc2hh
ZG93LXNjb3BlZC1zdHlsZS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jc3Mvc3R5bGVzaGVl
dC13aXRoLW11dGF0aW9ucy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kb20tZGVidWdnZXIv
YXR0cmlidXRlLW1vZGlmaWVkLXN0eWxlLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RvbS1k
ZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tL2F0
dHJpYnV0ZU1vZGlmaWVkLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RvbS9icmVha3BvaW50
LWZvci1ldmVudC1saXN0ZW5lci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kb20vY3NwLWJp
ZzUtaGFzaC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kb20vY3NwLWhhc2guaHRtbDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZG9tL2N1c3RvbUVsZW1lbnRTdGF0ZS5odG1sOgorICAgICAgICAq
IGluc3BlY3Rvci9kb20vZG9tdXRpbGl0aWVzLWNzc3BhdGguaHRtbDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZG9tL2RvbXV0aWxpdGllcy1wYXRoLWR1bXAuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZG9tL2RvbXV0aWxpdGllcy14cGF0aC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kb20v
ZXZlbnQtbGlzdGVuZXItaW5zcGVjdGVkLW5vZGUuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZG9tL2dldEV2ZW50TGlzdGVuZXJzRm9yTm9kZS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9k
b20vZ2V0T3V0ZXJIVE1MLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RvbS9pbnNlcnRBZGph
Y2VudEhUTUwuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tL3BzZXVkby1lbGVtZW50LWR5
bmFtaWMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tL3BzZXVkby1lbGVtZW50LXN0YXRp
Yy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kb20vc2V0QWxsb3dFZGl0aW5nVXNlckFnZW50
U2hhZG93VHJlZXMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tL3NldEluc3BlY3RlZE5v
ZGUuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tL3NldE91dGVySFRNTC5odG1sOgorICAg
ICAgICAqIGluc3BlY3Rvci9kb20vc2hhZG93LWFuZC1ub24tc2hhZG93LWNoaWxkcmVuLmh0bWw6
CisgICAgICAgICogaW5zcGVjdG9yL2RvbS9zaGFkb3dSb290VHlwZS5odG1sOgorICAgICAgICAq
IGluc3BlY3Rvci9kb20vdGVtcGxhdGUtY29udGVudC5odG1sOgorICAgICAgICAqIGluc3BlY3Rv
ci9tb2RlbC9kb20tbm9kZS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9wYWdlL2hpZHBpLXNu
YXBzaG90LXNpemUuaHRtbDoKKwogMjAxOS0xMS0yMSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFw
cGxlLmNvbT4KIAogICAgICAgICBFeHBlcmltZW50YWwgc3VwcG9ydCBmb3IgSERSIG1lZGlhIHF1
ZXJ5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9kb20vY3Jv
c3MtZG9tYWluLWluc3BlY3RlZC1ub2RlLWFjY2Vzcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvZG9tL2Nyb3NzLWRvbWFpbi1pbnNwZWN0ZWQtbm9kZS1hY2Nlc3MuaHRt
bAppbmRleCA4Mjc1ZTFiYmY4NWY2MTJhZmM4ZjdhZmJiY2Y0ZmQ3MDRiMjNmMjRmLi4zNjEwNDQw
MjI2OTQ0ZDZmYTJiZTZhYzFmOGVlZWVjOTMyZjg5MDU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9kb20vY3Jvc3MtZG9tYWluLWluc3BlY3RlZC1ub2RlLWFj
Y2Vzcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RvbS9jcm9z
cy1kb21haW4taW5zcGVjdGVkLW5vZGUtYWNjZXNzLmh0bWwKQEAgLTc5LDEwICs3OSw5IEBAIGZ1
bmN0aW9uIHRlc3QoKQogICAgIH0pOwogCiAgICAgV0kuZG9tTWFuYWdlci5yZXF1ZXN0RG9jdW1l
bnQoKGRvY3VtZW50Tm9kZSkgPT4gewotICAgICAgICBXSS5kb21NYW5hZ2VyLnF1ZXJ5U2VsZWN0
b3IoZG9jdW1lbnROb2RlLmlkLCAiaWZyYW1lI215ZnJhbWUiLCAobm9kZUlkKSA9PiB7CisgICAg
ICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCJpZnJhbWUjbXlmcmFtZSIsIChub2RlSWQp
ID0+IHsKICAgICAgICAgICAgIGxldCBpZnJhbWVOb2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9y
SWQobm9kZUlkKTsKLSAgICAgICAgICAgIGxldCBpZnJhbWVEb2N1bWVudE5vZGVJZCA9IGlmcmFt
ZU5vZGUuY2hpbGRyZW5bMF0uaWQ7Ci0gICAgICAgICAgICBXSS5kb21NYW5hZ2VyLnF1ZXJ5U2Vs
ZWN0b3IoaWZyYW1lRG9jdW1lbnROb2RlSWQsICJkaXYjcm9vdERpdiIsIChub2RlSWQpID0+IHsK
KyAgICAgICAgICAgIGlmcmFtZU5vZGUuY2hpbGRyZW5bMF0ucXVlcnlTZWxlY3RvcigiZGl2I3Jv
b3REaXYiLCAobm9kZUlkKSA9PiB7CiAgICAgICAgICAgICAgICAgbm9kZUluTWFpbkZyYW1lSWQg
PSBpZnJhbWVOb2RlLmlkOwogICAgICAgICAgICAgICAgIG5vZGVJblN1YkZyYW1lSWQgPSBub2Rl
SWQ7CiAgICAgICAgICAgICAgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9kb20vZGlkRmlyZUV2ZW50
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9kb20vZGlkRmlyZUV2ZW50
Lmh0bWwKaW5kZXggZmI0OTM2ZTQxYTYxOTA2MjdiYmRjZWQ5NDRmZWEzNzg2ODQyZjlhYS4uN2Ex
ODIyY2JjOWZlMzE0ODU2ZWNmNDRhNjAzOTBhZGM3MDQ0MWVlNCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZG9tL2RpZEZpcmVFdmVudC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RvbS9kaWRGaXJlRXZlbnQuaHRtbApAQCAt
MTIzLDcgKzEyMyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIH0pOwogCiAgICAgV0kuZG9tTWFu
YWdlci5yZXF1ZXN0RG9jdW1lbnQoKGRvY3VtZW50Tm9kZSkgPT4gewotICAgICAgICBXSS5kb21N
YW5hZ2VyLnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAiI3ZpZGVvIiwgKHZpZGVvTm9k
ZUlkKSA9PiB7CisgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCIjdmlkZW8iLCAo
dmlkZW9Ob2RlSWQpID0+IHsKICAgICAgICAgICAgIHZpZGVvTm9kZSA9IFdJLmRvbU1hbmFnZXIu
bm9kZUZvcklkKHZpZGVvTm9kZUlkKTsKICAgICAgICAgICAgIGlmICh2aWRlb05vZGUpCiAgICAg
ICAgICAgICAgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLWluaXRpYXRv
ck5vZGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVz
b3VyY2UtaW5pdGlhdG9yTm9kZS5odG1sCmluZGV4IDBmMmYyZmM2ZTM1MjIzOTFmODI0NzE3MWYx
ODk2ZDFiZWUyODI3YWIuLjRhY2E4ZjllZWY1ZmUxNGU2NzM0NWU0ZDM0MmFmOTRiYTIwOGE4ZTEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVz
b3VyY2UtaW5pdGlhdG9yTm9kZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtaW5pdGlhdG9yTm9kZS5odG1sCkBAIC0xMTcsNyArMTE3
LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgfSk7CiAKICAgICBXSS5kb21NYW5hZ2VyLnJlcXVl
c3REb2N1bWVudCgoZG9jdW1lbnROb2RlKSA9PiB7Ci0gICAgICAgIFdJLmRvbU1hbmFnZXIucXVl
cnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICJ2aWRlbyN2aWRlbyIsICh2aWRlb05vZGVJZCkg
PT4geworICAgICAgICBkb2N1bWVudE5vZGUucXVlcnlTZWxlY3RvcigidmlkZW8jdmlkZW8iLCAo
dmlkZW9Ob2RlSWQpID0+IHsKICAgICAgICAgICAgIHZpZGVvTm9kZSA9IFdJLmRvbU1hbmFnZXIu
bm9kZUZvcklkKHZpZGVvTm9kZUlkKTsKICAgICAgICAgICAgIGlmICh2aWRlb05vZGUpCiAgICAg
ICAgICAgICAgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb21tYW5kLWxpbmUtYXBpLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb21tYW5kLWxpbmUtYXBpLmh0bWwKaW5kZXggZGEx
MDVlYmUwMjIzODViZTNkNzk4NzM4ZWIyOGZjYzBhOTMzNmI5YS4uZmE5M2E4Zjk2MGIzZjI2MTI1
MWU3NjAzM2RkNmU0M2E4YjM2ZTZjYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUvY29tbWFuZC1saW5lLWFwaS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jb25zb2xlL2NvbW1hbmQtbGluZS1hcGkuaHRtbApAQCAtOTcsNyArOTcsNyBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gU2VsZWN0IGRpdiNmb28g
Zm9yICQwLgotICAgICAgICAgICAgV0kuZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50
Tm9kZS5pZCwgIiNmb28iLCAoY29udGVudE5vZGVJZCkgPT4geworICAgICAgICAgICAgZG9jdW1l
bnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiNmb28iLCAoY29udGVudE5vZGVJZCkgPT4gewogICAgICAg
ICAgICAgICAgIGlmICghY29udGVudE5vZGVJZCkgewogICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiRkFJTDogRE9NIG5vZGUgbm90IGZvdW5kLiIpOwogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gcmVqZWN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY3NzL2FkZC1jc3MtcHJvcGVydHkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mv
YWRkLWNzcy1wcm9wZXJ0eS5odG1sCmluZGV4IDdhOTFmYmQwZmEyNThkZThjYjgzMDljYmQ5OGRi
YTY2ZDE3NDdlMDAuLjQ1NWE5NWQ0ZTczYmZjYTljNGRmMDVjYTBkYzJjN2I0ZTVjMWRmY2IgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvYWRkLWNzcy1wcm9wZXJ0eS5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvYWRkLWNzcy1wcm9wZXJ0eS5odG1sCkBA
IC0xMTEsNyArMTExLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICB9KTsKIAogICAgIFdJLmRv
bU1hbmFnZXIucmVxdWVzdERvY3VtZW50KChkb2N1bWVudE5vZGUpID0+IHsKLSAgICAgICAgV0ku
ZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgIiN4IiwgKGNvbnRlbnRO
b2RlSWQpID0+IHsKKyAgICAgICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiN4IiwgKGNv
bnRlbnROb2RlSWQpID0+IHsKICAgICAgICAgICAgIGlmIChjb250ZW50Tm9kZUlkKSB7CiAgICAg
ICAgICAgICAgICAgbGV0IGRvbU5vZGUgPSBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChjb250ZW50
Tm9kZUlkKTsKICAgICAgICAgICAgICAgICBub2RlU3R5bGVzID0gV0kuY3NzTWFuYWdlci5zdHls
ZXNGb3JOb2RlKGRvbU5vZGUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nz
cy9jc3MtcHJvcGVydHkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvY3NzLXByb3Bl
cnR5Lmh0bWwKaW5kZXggNTFkOGViZGJjZTQ0YTU3YmQxNDdjZWJlM2MyMDgxOWE1ZDA2OWMzNi4u
NDE0MmE1ZjZhNDM4YjhmM2JmNTBhYmRiNGNkOTQ0NDBlMDM5MDA3OSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9jc3MtcHJvcGVydHkuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY3NzL2Nzcy1wcm9wZXJ0eS5odG1sCkBAIC0yMjUsNyArMjI1LDcgQEAgZnVu
Y3Rpb24gdGVzdCgpIHsKICAgICB9KTsKIAogICAgIFdJLmRvbU1hbmFnZXIucmVxdWVzdERvY3Vt
ZW50KChkb2N1bWVudE5vZGUpID0+IHsKLSAgICAgICAgV0kuZG9tTWFuYWdlci5xdWVyeVNlbGVj
dG9yKGRvY3VtZW50Tm9kZS5pZCwgImRpdiN4IiwgKGNvbnRlbnROb2RlSWQpID0+IHsKKyAgICAg
ICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoImRpdiN4IiwgKGNvbnRlbnROb2RlSWQpID0+
IHsKICAgICAgICAgICAgIGlmIChjb250ZW50Tm9kZUlkKSB7CiAgICAgICAgICAgICAgICAgbGV0
IGRvbU5vZGUgPSBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChjb250ZW50Tm9kZUlkKTsKICAgICAg
ICAgICAgICAgICBub2RlU3R5bGVzID0gV0kuY3NzTWFuYWdlci5zdHlsZXNGb3JOb2RlKGRvbU5v
ZGUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9mb3JjZS1wYWdlLWFw
cGVhcmFuY2UuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvZm9yY2UtcGFnZS1hcHBl
YXJhbmNlLmh0bWwKaW5kZXggNjI0YjlmMzEyY2M5YjY0ZDg2ZGUyYTVlN2NiYzljMDJjN2Y5M2Zk
OS4uNGVlMmI2NTQ3M2EzODY1NzgxZjJlZjA0ZDkxZDNhOTE1YTk5NzBlZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9mb3JjZS1wYWdlLWFwcGVhcmFuY2UuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2ZvcmNlLXBhZ2UtYXBwZWFyYW5jZS5odG1sCkBA
IC0xMTYsNyArMTE2LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICB9KTsKIAogICAgIFdJLmRv
bU1hbmFnZXIucmVxdWVzdERvY3VtZW50KChkb2N1bWVudE5vZGUpID0+IHsKLSAgICAgICAgV0ku
ZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgIiN4IiwgKGNvbnRlbnRO
b2RlSWQpID0+IHsKKyAgICAgICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiN4IiwgKGNv
bnRlbnROb2RlSWQpID0+IHsKICAgICAgICAgICAgIGlmIChjb250ZW50Tm9kZUlkKSB7CiAgICAg
ICAgICAgICAgICAgbGV0IGRvbU5vZGUgPSBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChjb250ZW50
Tm9kZUlkKTsKICAgICAgICAgICAgICAgICBub2RlU3R5bGVzID0gV0kuY3NzTWFuYWdlci5zdHls
ZXNGb3JOb2RlKGRvbU5vZGUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nz
cy9nZW5lcmF0ZUNTU1J1bGVTdHJpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mv
Z2VuZXJhdGVDU1NSdWxlU3RyaW5nLmh0bWwKaW5kZXggZGJiNTViM2M1ZTczYWUzMmM1OWZlZDA5
ZjEzYjMyMzJhNzc2MGMyNC4uNWVmOWY3N2E5ZmFmMmFjNjc5MmNmM2VlZDMyNjhiNGRkNzVkMTcw
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZW5lcmF0ZUNTU1J1bGVT
dHJpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dlbmVyYXRlQ1NTUnVs
ZVN0cmluZy5odG1sCkBAIC01Niw3ICs1Niw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgfSk7
CiAKICAgICBXSS5kb21NYW5hZ2VyLnJlcXVlc3REb2N1bWVudCgoZG9jdW1lbnROb2RlKSA9PiB7
Ci0gICAgICAgIFdJLmRvbU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIj
dGVzdC1ub2RlIiwgYXN5bmMgKGNvbnRlbnROb2RlSWQpID0+IHsKKyAgICAgICAgZG9jdW1lbnRO
b2RlLnF1ZXJ5U2VsZWN0b3IoIiN0ZXN0LW5vZGUiLCBhc3luYyAoY29udGVudE5vZGVJZCkgPT4g
ewogICAgICAgICAgICAgaWYgKCFjb250ZW50Tm9kZUlkKSB7CiAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIkRPTSBub2RlIG5vdCBmb3VuZC4iKTsKICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2Nzcy9tYXRjaGVkLXN0eWxlLXByb3BlcnRpZXMuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jc3MvbWF0Y2hlZC1zdHlsZS1wcm9wZXJ0aWVzLmh0bWwKaW5kZXggYjVkOGMxMGUy
YmE4YmMxMjllZjU5ODJlMmRiNTU2NmIwZTE3MWNlZS4uOTQyYmQwNjIyMTYzOTRlZjEyZThlNjU1
Zjg0MWVlZWY2MzAzMzIwNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9t
YXRjaGVkLXN0eWxlLXByb3BlcnRpZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y3NzL21hdGNoZWQtc3R5bGUtcHJvcGVydGllcy5odG1sCkBAIC02MSw3ICs2MSw3IEBAIGZ1bmN0
aW9uIHRlc3QoKSB7CiAgICAgfQogCiAgICAgV0kuZG9tTWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQo
ZnVuY3Rpb24oZG9jdW1lbnROb2RlKSB7Ci0gICAgICAgIFdJLmRvbU1hbmFnZXIucXVlcnlTZWxl
Y3Rvcihkb2N1bWVudE5vZGUuaWQsICIjbm9kZTEiLCBmdW5jdGlvbihjb250ZW50Tm9kZUlkKSB7
CisgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCIjbm9kZTEiLCBmdW5jdGlvbihj
b250ZW50Tm9kZUlkKSB7CiAgICAgICAgICAgICBpZiAoY29udGVudE5vZGVJZCkgewogICAgICAg
ICAgICAgICAgIHZhciBkb21Ob2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQoY29udGVudE5v
ZGVJZCk7CiAgICAgICAgICAgICAgICAgbm9kZVN0eWxlcyA9IFdJLmNzc01hbmFnZXIuc3R5bGVz
Rm9yTm9kZShkb21Ob2RlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mv
bW9kaWZ5LWNzcy1wcm9wZXJ0eS1yYWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3Nz
L21vZGlmeS1jc3MtcHJvcGVydHktcmFjZS5odG1sCmluZGV4IDY4ZGM2MWZmNzA5OWVkZWRmNWZm
YWY4MWJjNzMzMTQ1OGViNmQzYzQuLmY0ZjhiNmUxMGQ2NDJkYjBhNTNkZjRjYzI0ZDA3YzYwMzdi
Y2FlYzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9kaWZ5LWNzcy1w
cm9wZXJ0eS1yYWNlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnkt
Y3NzLXByb3BlcnR5LXJhY2UuaHRtbApAQCAtODgsNyArODgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkg
ewogICAgIH0pOwogCiAgICAgV0kuZG9tTWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQoKGRvY3VtZW50
Tm9kZSkgPT4gewotICAgICAgICBXSS5kb21NYW5hZ2VyLnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnRO
b2RlLmlkLCAiI3giLCAoY29udGVudE5vZGVJZCkgPT4geworICAgICAgICBkb2N1bWVudE5vZGUu
cXVlcnlTZWxlY3RvcigiI3giLCAoY29udGVudE5vZGVJZCkgPT4gewogICAgICAgICAgICAgaWYg
KGNvbnRlbnROb2RlSWQpIHsKICAgICAgICAgICAgICAgICBsZXQgZG9tTm9kZSA9IFdJLmRvbU1h
bmFnZXIubm9kZUZvcklkKGNvbnRlbnROb2RlSWQpOwogICAgICAgICAgICAgICAgIG5vZGVTdHls
ZXMgPSBXSS5jc3NNYW5hZ2VyLnN0eWxlc0Zvck5vZGUoZG9tTm9kZSk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1jc3MtcHJvcGVydHkuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9kaWZ5LWNzcy1wcm9wZXJ0eS5odG1sCmluZGV4IDMyZmZk
OWE3YWEzYmU1YjE3MmZiNzM0NzMzMTgzZDlkZDc4MWFhZDcuLjI4NjNmNzgyNTBkYWU2YTAyYWM2
MGNlODIxYzA5Y2JlZTFkOTU0ZjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
c3MvbW9kaWZ5LWNzcy1wcm9wZXJ0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
c3MvbW9kaWZ5LWNzcy1wcm9wZXJ0eS5odG1sCkBAIC0zMDksNyArMzA5LDcgQEAgZnVuY3Rpb24g
dGVzdCgpIHsKICAgICB9KTsKIAogICAgIFdJLmRvbU1hbmFnZXIucmVxdWVzdERvY3VtZW50KChk
b2N1bWVudE5vZGUpID0+IHsKLSAgICAgICAgV0kuZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRv
Y3VtZW50Tm9kZS5pZCwgIiN4IiwgKGNvbnRlbnROb2RlSWQpID0+IHsKKyAgICAgICAgZG9jdW1l
bnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiN4IiwgKGNvbnRlbnROb2RlSWQpID0+IHsKICAgICAgICAg
ICAgIGlmIChjb250ZW50Tm9kZUlkKSB7CiAgICAgICAgICAgICAgICAgbGV0IGRvbU5vZGUgPSBX
SS5kb21NYW5hZ2VyLm5vZGVGb3JJZChjb250ZW50Tm9kZUlkKTsKICAgICAgICAgICAgICAgICBu
b2RlU3R5bGVzID0gV0kuY3NzTWFuYWdlci5zdHlsZXNGb3JOb2RlKGRvbU5vZGUpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktaW5saW5lLXN0eWxlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1pbmxpbmUtc3R5bGUuaHRtbAppbmRl
eCBhYzczOTdjYTI2ODk4OWY0OTk1YzQ4ZDU3ZWExNDIwMWY3NTdlZDkzLi4yM2RiMjI5NmU0NWM3
NmQ0ZTU3MTZmNzliYjgwM2QzNDg1YjI3MjNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY3NzL21vZGlmeS1pbmxpbmUtc3R5bGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY3NzL21vZGlmeS1pbmxpbmUtc3R5bGUuaHRtbApAQCAtNzIsNyArNzIsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkgewogICAgIH0pOwogCiAgICAgV0kuZG9tTWFuYWdlci5yZXF1ZXN0RG9jdW1l
bnQoKGRvY3VtZW50Tm9kZSkgPT4gewotICAgICAgICBXSS5kb21NYW5hZ2VyLnF1ZXJ5U2VsZWN0
b3IoZG9jdW1lbnROb2RlLmlkLCAiI3giLCAoY29udGVudE5vZGVJZCkgPT4geworICAgICAgICBk
b2N1bWVudE5vZGUucXVlcnlTZWxlY3RvcigiI3giLCAoY29udGVudE5vZGVJZCkgPT4gewogICAg
ICAgICAgICAgaWYgKGNvbnRlbnROb2RlSWQpIHsKICAgICAgICAgICAgICAgICBsZXQgZG9tTm9k
ZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKGNvbnRlbnROb2RlSWQpOwogICAgICAgICAgICAg
ICAgIG5vZGVTdHlsZXMgPSBXSS5jc3NNYW5hZ2VyLnN0eWxlc0Zvck5vZGUoZG9tTm9kZSk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1ydWxlLXNlbGVjdG9y
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1ydWxlLXNlbGVjdG9yLmh0
bWwKaW5kZXggNzNkZmNlMjNiNzVjMzJhNGMyN2VjNzk3M2RlNTFiNDk5MzZjN2YyZi4uNWNmNDdh
YTY5YWQwMGUwMzgwMTQwZGM1YTJkNTcxMDliZjM5MTEwNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktcnVsZS1zZWxlY3Rvci5odG1sCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jc3MvbW9kaWZ5LXJ1bGUtc2VsZWN0b3IuaHRtbApAQCAtNTksNyArNTks
NyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAK
LSAgICAgICAgV0kuZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgIi5m
b28iLCBmdW5jdGlvbihjb250ZW50Tm9kZUlkKSB7CisgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVy
eVNlbGVjdG9yKCIuZm9vIiwgZnVuY3Rpb24oY29udGVudE5vZGVJZCkgewogICAgICAgICAgICAg
aWYgKCFjb250ZW50Tm9kZUlkKSB7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
IkVSUk9SOiBET00gbm9kZSBub3QgZm91bmQuIik7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5jb21wbGV0ZVRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
c3Mvb3ZlcnJpZGRlbi1wcm9wZXJ0eS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9v
dmVycmlkZGVuLXByb3BlcnR5Lmh0bWwKaW5kZXggY2UzMTUwZDcxOTUyY2I4ZjhkMWE3NmUxMDEw
MTdmYjEyMjdiNDg5YS4uZTRhMzRmNjQyZWI5ZTNiYjhjOGVjODAxYTY4MmJlM2ZlZDBkN2QwMSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9vdmVycmlkZGVuLXByb3BlcnR5
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9vdmVycmlkZGVuLXByb3BlcnR5
Lmh0bWwKQEAgLTE1LDcgKzE1LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKIAogICAgIGZ1bmN0aW9u
IGdldE5vZGVTdHlsZXMoc2VsZWN0b3IsIGNhbGxiYWNrKSB7CiAgICAgICAgIFdJLmRvbU1hbmFn
ZXIucmVxdWVzdERvY3VtZW50KChkb2N1bWVudE5vZGUpID0+IHsKLSAgICAgICAgICAgIFdJLmRv
bU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsIHNlbGVjdG9yLCAoY29udGVu
dE5vZGVJZCkgPT4geworICAgICAgICAgICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3Ioc2Vs
ZWN0b3IsIChjb250ZW50Tm9kZUlkKSA9PiB7CiAgICAgICAgICAgICAgICAgaWYgKCFjb250ZW50
Tm9kZUlkKSB7CiAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmFpbCgiRE9NIG5v
ZGUgbm90IGZvdW5kLiIpOwogICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBs
ZXRlVGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9wc2V1ZG8t
ZWxlbWVudC1tYXRjaGVzLWZvci1wc2V1ZG8tZWxlbWVudC1ub2RlLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY3NzL3BzZXVkby1lbGVtZW50LW1hdGNoZXMtZm9yLXBzZXVkby1lbGVtZW50
LW5vZGUuaHRtbAppbmRleCAxY2EyNmQwNmEyMDZhZDdmYjcwNWVkNWMxMTY4ZjQ1MTU2MjhjY2Jl
Li5lODc3NWEwZWQzZTRjNDFlMGFiMjFlZWY1YWIzMzIyYzgzOGFmY2NlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL3BzZXVkby1lbGVtZW50LW1hdGNoZXMtZm9yLXBzZXVk
by1lbGVtZW50LW5vZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL3BzZXVk
by1lbGVtZW50LW1hdGNoZXMtZm9yLXBzZXVkby1lbGVtZW50LW5vZGUuaHRtbApAQCAtMzgsNyAr
MzgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgIH0KIAogICAgIFdJLmRvbU1hbmFnZXIucmVx
dWVzdERvY3VtZW50KGZ1bmN0aW9uKGRvY3VtZW50Tm9kZSkgewotICAgICAgICBXSS5kb21NYW5h
Z2VyLnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAiI3giLCBmdW5jdGlvbihjb250ZW50
Tm9kZUlkKSB7CisgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCIjeCIsIGZ1bmN0
aW9uKGNvbnRlbnROb2RlSWQpIHsKICAgICAgICAgICAgIHZhciBkb21Ob2RlID0gV0kuZG9tTWFu
YWdlci5ub2RlRm9ySWQoY29udGVudE5vZGVJZCk7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydChkb21Ob2RlKTsKICAgICAgICAgICAgIHZhciBiZWZvcmVQc2V1ZG9FbGVtZW50RE9N
Tm9kZSA9IGRvbU5vZGUuYmVmb3JlUHNldWRvRWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2Nzcy9wc2V1ZG8tZWxlbWVudC1tYXRjaGVzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY3NzL3BzZXVkby1lbGVtZW50LW1hdGNoZXMuaHRtbAppbmRleCAwNmZj
MmY0MDYzMmUzYmUyYWZmNjQ2ODc3YjViZGZiZDVlNGQ0Y2U4Li4xYmQ2NDI5OGRhYmUzNzhlYWVk
MDk5NDMyYmZkZTA4MWMwZDM5MGU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y3NzL3BzZXVkby1lbGVtZW50LW1hdGNoZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY3NzL3BzZXVkby1lbGVtZW50LW1hdGNoZXMuaHRtbApAQCAtNDAsNyArNDAsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkgewogICAgIH0KIAogICAgIFdJLmRvbU1hbmFnZXIucmVxdWVzdERvY3VtZW50
KGZ1bmN0aW9uKGRvY3VtZW50Tm9kZSkgewotICAgICAgICBXSS5kb21NYW5hZ2VyLnF1ZXJ5U2Vs
ZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAiI25vZGUxIiwgZnVuY3Rpb24oY29udGVudE5vZGVJZCkg
eworICAgICAgICBkb2N1bWVudE5vZGUucXVlcnlTZWxlY3RvcigiI25vZGUxIiwgZnVuY3Rpb24o
Y29udGVudE5vZGVJZCkgewogICAgICAgICAgICAgdHJ5IHsgCiAgICAgICAgICAgICAgICAgaWYg
KGNvbnRlbnROb2RlSWQpIHsKICAgICAgICAgICAgICAgICAgICAgdmFyIGRvbU5vZGUgPSBXSS5k
b21NYW5hZ2VyLm5vZGVGb3JJZChjb250ZW50Tm9kZUlkKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jc3MvcmVzb2x2ZS12YXJpYWJsZS12YWx1ZS5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2Nzcy9yZXNvbHZlLXZhcmlhYmxlLXZhbHVlLmh0bWwKaW5kZXggOWM1NzFm
NjQxZGJjNjAyOWUwNjg0YzRhMjA0MDdkNzE4YjA0NGIwMC4uODliZDkxOTdmMjAzNTc2YTJhYjBh
M2IyZDcyMzg4N2M2ZjM0NWI4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nz
cy9yZXNvbHZlLXZhcmlhYmxlLXZhbHVlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2Nzcy9yZXNvbHZlLXZhcmlhYmxlLXZhbHVlLmh0bWwKQEAgLTkwLDcgKzkwLDcgQEAgZnVuY3Rp
b24gdGVzdCgpIHsKICAgICAKIAogICAgIFdJLmRvbU1hbmFnZXIucmVxdWVzdERvY3VtZW50KChk
b2N1bWVudE5vZGUpID0+IHsKLSAgICAgICAgV0kuZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRv
Y3VtZW50Tm9kZS5pZCwgIiNmb28iLCAoY29udGVudE5vZGVJZCkgPT4geworICAgICAgICBkb2N1
bWVudE5vZGUucXVlcnlTZWxlY3RvcigiI2ZvbyIsIChjb250ZW50Tm9kZUlkKSA9PiB7CiAgICAg
ICAgICAgICBpZiAoIWNvbnRlbnROb2RlSWQpIHsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmZhaWwoIkRPTSBub2RlIG5vdCBmb3VuZC4iKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2Nzcy9zZWxlY3Rvci1keW5hbWljLXNwZWNpZmljaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY3NzL3NlbGVjdG9yLWR5bmFtaWMtc3BlY2lmaWNpdHkuaHRtbAppbmRleCA3ZGYyODg0
YzU0ODVhMzEzNWVlODU1Njg5NjYwOGMxNDNhMTVjOTNjLi4wY2EyNzQwOWM2ODhiOTgzN2QzY2Qz
OWVhODc5MDhhZGQzNmI1MWVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3Nz
L3NlbGVjdG9yLWR5bmFtaWMtc3BlY2lmaWNpdHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY3NzL3NlbGVjdG9yLWR5bmFtaWMtc3BlY2lmaWNpdHkuaHRtbApAQCAtNjksNyArNjks
NyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICB9CiAKICAgICAgICAgY3VycmVudFNlbGVj
dG9yID0gc3RlcHNbY3VycmVudFN0ZXBJbmRleCsrXTsKLSAgICAgICAgV0kuZG9tTWFuYWdlci5x
dWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgY3VycmVudFNlbGVjdG9yLCBmdW5jdGlvbihj
b250ZW50Tm9kZUlkKSB7CisgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKGN1cnJl
bnRTZWxlY3RvciwgZnVuY3Rpb24oY29udGVudE5vZGVJZCkgewogICAgICAgICAgICAgaWYgKGNv
bnRlbnROb2RlSWQpIHsKICAgICAgICAgICAgICAgICB2YXIgZG9tTm9kZSA9IFdJLmRvbU1hbmFn
ZXIubm9kZUZvcklkKGNvbnRlbnROb2RlSWQpOwogICAgICAgICAgICAgICAgIG5vZGVTdHlsZXMg
PSBXSS5jc3NNYW5hZ2VyLnN0eWxlc0Zvck5vZGUoZG9tTm9kZSk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY3NzL3NlbGVjdG9yLXNwZWNpZmljaXR5Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY3NzL3NlbGVjdG9yLXNwZWNpZmljaXR5Lmh0bWwKaW5kZXggZGNjODMz
MWYwNTlmOTkyNjVhNWUwNWI1YTgxOGY5MzAzMGY3NDMzMS4uOTlmMTBhNDE5NjlhZjMyMDhkYjkx
NzllMTk0MTZhYTFlNzhlZjQzNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nz
cy9zZWxlY3Rvci1zcGVjaWZpY2l0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
c3Mvc2VsZWN0b3Itc3BlY2lmaWNpdHkuaHRtbApAQCAtNDIsNyArNDIsNyBAQCBmdW5jdGlvbiB0
ZXN0KCkgewogICAgIH0KIAogICAgIFdJLmRvbU1hbmFnZXIucmVxdWVzdERvY3VtZW50KGZ1bmN0
aW9uKGRvY3VtZW50Tm9kZSkgewotICAgICAgICBXSS5kb21NYW5hZ2VyLnF1ZXJ5U2VsZWN0b3Io
ZG9jdW1lbnROb2RlLmlkLCAiI25vZGUxIiwgZnVuY3Rpb24oY29udGVudE5vZGVJZCkgeworICAg
ICAgICBkb2N1bWVudE5vZGUucXVlcnlTZWxlY3RvcigiI25vZGUxIiwgZnVuY3Rpb24oY29udGVu
dE5vZGVJZCkgewogICAgICAgICAgICAgaWYgKGNvbnRlbnROb2RlSWQpIHsKICAgICAgICAgICAg
ICAgICB2YXIgZG9tTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKGNvbnRlbnROb2RlSWQp
OwogICAgICAgICAgICAgICAgIG5vZGVTdHlsZXMgPSBXSS5jc3NNYW5hZ2VyLnN0eWxlc0Zvck5v
ZGUoZG9tTm9kZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL3NoYWRv
dy1zY29wZWQtc3R5bGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mvc2hhZG93LXNj
b3BlZC1zdHlsZS5odG1sCmluZGV4IDI4NGI4MTU1MjAxN2U2ZTZmNjg5ZjA2OTY4ZDA2NmZjZDc3
YmZlMTguLjQ0NTk4Njg5ZTQ0OTI1ZmI3OTgxYWUwYzRhNTlkYzdkYTM3ZTJjYjEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mvc2hhZG93LXNjb3BlZC1zdHlsZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mvc2hhZG93LXNjb3BlZC1zdHlsZS5odG1sCkBA
IC00Myw3ICs0Myw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBuYW1lOiAiQ1NTLlNoYWRv
d1Njb3BlZFN0eWxlLkhvc3RTdHlsZXMiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkVuc3VyZSBz
aGFkb3cgcm9vdCBob3N0IGVsZW1lbnQgZ2V0cyA6aG9zdCBzdHlsZXMuIiwKICAgICAgICAgdGVz
dChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIFdJLmRvbU1hbmFnZXIucXVlcnlTZWxl
Y3Rvcihkb2N1bWVudE5vZGUuaWQsICIjc2hhZG93LWhvc3QiLCAobm9kZUlkKSA9PiB7CisgICAg
ICAgICAgICBkb2N1bWVudE5vZGUucXVlcnlTZWxlY3RvcigiI3NoYWRvdy1ob3N0IiwgKG5vZGVJ
ZCkgPT4gewogICAgICAgICAgICAgICAgIGlmICghbm9kZUlkKSB7CiAgICAgICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZmFpbCgiRE9NIG5vZGUgI3NoYWRvdy1ob3N0IG5vdCBmb3VuZCBp
biBkb2N1bWVudC4iKTsKICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7CkBAIC02OCw3ICs2
OCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBuYW1lOiAiQ1NTLlNoYWRvd1Njb3BlZFN0
eWxlLkVsZW1lbnRJblNoYWRvd1RyZWUiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkVuc3VyZSBl
bGVtZW50IGluIHNoYWRvdyB0cmVlIGdldHMgc2hhZG93IGRvbSBzY29wZWQgc3R5bGVzLiIsCiAg
ICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBXSS5kb21NYW5hZ2Vy
LnF1ZXJ5U2VsZWN0b3IoaG9zdE5vZGUuc2hhZG93Um9vdHMoKVswXS5pZCwgIiNzaGFkb3ctbm9k
ZSIsIChub2RlSWQpID0+IHsKKyAgICAgICAgICAgIGhvc3ROb2RlLnNoYWRvd1Jvb3RzKClbMF0u
cXVlcnlTZWxlY3RvcigiI3NoYWRvdy1ub2RlIiwgKG5vZGVJZCkgPT4gewogICAgICAgICAgICAg
ICAgIGlmICghbm9kZUlkKSB7CiAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmFp
bCgiRE9NIG5vZGUgI3NoYWRvdy1ub2RlIG5vdCBmb3VuZCBpbiAjc2hhZG93LWhvc3QncyBzaGFk
b3dSb290LiIpOwogICAgICAgICAgICAgICAgICAgICByZWplY3QoKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jc3Mvc3R5bGVzaGVldC13aXRoLW11dGF0aW9ucy5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9zdHlsZXNoZWV0LXdpdGgtbXV0YXRpb25zLmh0bWwK
aW5kZXggMzZkOTc2MWVjNjk0ODg2YjQ2MzBlMDU5Yjg0NTk3MTc1NzRmYjVhYS4uYzgxODA4YmIw
YjUyZDM0ZjNiYzFlYzAxN2Y3YzE1ZjRkMzliZDhhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2Nzcy9zdHlsZXNoZWV0LXdpdGgtbXV0YXRpb25zLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2Nzcy9zdHlsZXNoZWV0LXdpdGgtbXV0YXRpb25zLmh0bWwKQEAgLTMz
LDcgKzMzLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICB9CiAKICAgICBXSS5kb21NYW5hZ2Vy
LnJlcXVlc3REb2N1bWVudChmdW5jdGlvbihkb2N1bWVudE5vZGUpIHsKLSAgICAgICAgV0kuZG9t
TWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgIi5iYXIiLCBmdW5jdGlvbihj
b250ZW50Tm9kZUlkKSB7CisgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCIuYmFy
IiwgZnVuY3Rpb24oY29udGVudE5vZGVJZCkgewogICAgICAgICAgICAgaWYgKGNvbnRlbnROb2Rl
SWQpIHsKICAgICAgICAgICAgICAgICB2YXIgZG9tTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZv
cklkKGNvbnRlbnROb2RlSWQpOwogICAgICAgICAgICAgICAgIG5vZGVTdHlsZXMgPSBXSS5jc3NN
YW5hZ2VyLnN0eWxlc0Zvck5vZGUoZG9tTm9kZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2F0dHJpYnV0ZS1tb2RpZmllZC1zdHlsZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9hdHRyaWJ1dGUtbW9kaWZpZWQtc3R5bGUu
aHRtbAppbmRleCBkMzdkNThhNWRkNDk2NWFiZGExZGYyY2U4ZTE2NzQ2NjVhYWM4ZTRhLi5jNmU1
ZDQ1OGZkZTE2YWNlY2U2YmRkZDZjYjY0OGUwNmMxOTE1NjY1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2F0dHJpYnV0ZS1tb2RpZmllZC1zdHlsZS5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvYXR0cmlidXRlLW1vZGlm
aWVkLXN0eWxlLmh0bWwKQEAgLTExNSw3ICsxMTUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIFdJLmRvbU1hbmFnZXIucXVlcnlT
ZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIjdGVzdCIsIGFzeW5jIChub2RlSWQpID0+IHsKKyAg
ICAgICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiN0ZXN0IiwgYXN5bmMgKG5vZGVJZCkg
PT4gewogICAgICAgICAgICAgbGV0IHRlc3ROb2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQo
bm9kZUlkKTsKICAgICAgICAgICAgIGlmICghdGVzdE5vZGUpIHsKICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmZhaWwoIk1pc3NpbmcgI3Rlc3Qgbm9kZSIpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvZG9tLWJyZWFrcG9pbnRzLmh0bWwKaW5k
ZXggOGY3MTViNTNjMjRiYzhmYzdlYTM1MjkyYTVjYTFjNjQ5ODQwMjllMC4uMmYyNTA5ZmE3OWUx
YTgxOGYwNDhlOGY4OTA2OTQ1ZWUwYjhjNTUxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RvbS1kZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2RvbS1icmVha3BvaW50cy5odG1sCkBAIC04Miw3ICs4
Miw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgV0kuZG9tTWFuYWdlci5xdWVyeVNlbGVj
dG9yKGRvY3VtZW50Tm9kZS5pZCwgc2VsZWN0b3IsIChub2RlSWQpID0+IHsKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudE5vZGUucXVlcnlTZWxlY3RvcihzZWxlY3RvciwgKG5vZGVJZCkgPT4gewog
ICAgICAgICAgICAgICAgICAgICBpZiAoIW5vZGVJZCkgewogICAgICAgICAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJTZWxlY3RvciByZXR1cm5lZCBubyBub2Rlcy4iLCBzZWxl
Y3Rvcik7CiAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kb20vYXR0cmlidXRlTW9kaWZpZWQuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kb20vYXR0cmlidXRlTW9kaWZpZWQuaHRtbAppbmRleCA1NGQyZDFlYTMy
MzNjNzliYmJjOGIyZmVmMmNmNjFiMmI4OTM2MDgxLi5lYTIwOTIwZmE1MmI1YjcxN2FkN2IyNjk5
ODc5YmQzYTVjZTYyOTQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2F0
dHJpYnV0ZU1vZGlmaWVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9hdHRy
aWJ1dGVNb2RpZmllZC5odG1sCkBAIC0yMyw3ICsyMyw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAK
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJDcmVhdGluZyB0ZXN0IG5vZGUuLi4iKTsK
ICAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNyZWF0ZVRl
c3ROb2RlKCIke2lkfSIpYCk7Ci0gICAgICAgICAgICBsZXQgdGVzdE5vZGVJZCA9IGF3YWl0IFdJ
LmRvbU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIjIiArIGlkKTsKKyAg
ICAgICAgICAgIGxldCB0ZXN0Tm9kZUlkID0gYXdhaXQgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0
b3IoIiMiICsgaWQpOwogICAgICAgICAgICAgbGV0IHRlc3ROb2RlID0gV0kuZG9tTWFuYWdlci5u
b2RlRm9ySWQodGVzdE5vZGVJZCk7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCh0
ZXN0Tm9kZSwgIk1pc3NpbmcgdGVzdCBub2RlIGZvciBpZCAiICsgdGVzdE5vZGVJZCk7CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vYnJlYWtwb2ludC1mb3ItZXZlbnQt
bGlzdGVuZXIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vYnJlYWtwb2ludC1mb3It
ZXZlbnQtbGlzdGVuZXIuaHRtbAppbmRleCAzMjQ4MTExMzI2NDk1NDNkYThjYmI3MTcyYTk1Zjg1
MjkzMjljYzI1Li4wZDJmZWE1YWE1MmQ0NTQ0YTExZjI0NjgxMDVjZTQ4MzdmYjQzNmFhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2JyZWFrcG9pbnQtZm9yLWV2ZW50LWxp
c3RlbmVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9icmVha3BvaW50LWZv
ci1ldmVudC1saXN0ZW5lci5odG1sCkBAIC0xODIsOCArMTgyLDggQEAgZnVuY3Rpb24gdGVzdCgp
IHsKIAogICAgIFdJLmRvbU1hbmFnZXIucmVxdWVzdERvY3VtZW50KChkb2N1bWVudE5vZGUpID0+
IHsKICAgICAgICAgUHJvbWlzZS5hbGwoWwotICAgICAgICAgICAgV0kuZG9tTWFuYWdlci5xdWVy
eVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgIiNidXR0b24xIiksCi0gICAgICAgICAgICBXSS5k
b21NYW5hZ2VyLnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAiI2J1dHRvbjIiKSwKKyAg
ICAgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCIjYnV0dG9uMSIpLAorICAgICAg
ICAgICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiNidXR0b24yIiksCiAgICAgICAgIF0p
CiAgICAgICAgIC50aGVuKChbYnV0dG9uMUlkLCBidXR0b24ySWRdKSA9PiB7CiAgICAgICAgICAg
ICBidXR0b24xTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKGJ1dHRvbjFJZCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2NzcC1iaWc1LWhhc2guaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kb20vY3NwLWJpZzUtaGFzaC5odG1sCmluZGV4IDYzMjkyNGVh
ZGVjNWM1MzE1YmJmODdkYzM4OTY2OTUxNDU5NGY4ZDcuLmVmNDk0MTU5MDczZjNiYTJiYjI4YzY1
NzgyMzZhYjg3NjllNzhjOTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20v
Y3NwLWJpZzUtaGFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vY3NwLWJp
ZzUtaGFzaC5odG1sCkBAIC0xMSw3ICsxMSw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgXTsK
ICAgICBXSS5kb21NYW5hZ2VyLnJlcXVlc3REb2N1bWVudChmdW5jdGlvbihkb2N1bWVudE5vZGUp
IHsKICAgICAgICAgZm9yIChsZXQge3NlbGVjdG9yLCBoYXNofSBvZiB0ZXN0Q2FzZXMpIHsKLSAg
ICAgICAgICAgIFdJLmRvbU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsIHNl
bGVjdG9yLCBmdW5jdGlvbihub2RlSWQpIHsKKyAgICAgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVy
eVNlbGVjdG9yKHNlbGVjdG9yLCBmdW5jdGlvbihub2RlSWQpIHsKICAgICAgICAgICAgICAgICBs
ZXQgZG9tTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCk7CiAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiIpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdChkb21Ob2RlLCBgR290IERPTU5vZGUgZm9yICR7c2VsZWN0b3J9YCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2NzcC1oYXNoLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZG9tL2NzcC1oYXNoLmh0bWwKaW5kZXggYTMxOGRjMjcxNWI1MjE2
ZjM5YmIwMWIxNjA1MGJhZDAxNzFkM2FlZC4uNjkwYjcyOTY5MzBlNzkzZDYyMzY3YWUyMGNmZjNm
NmM1ZWZlZGY5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9jc3AtaGFz
aC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vY3NwLWhhc2guaHRtbApAQCAt
MjEsNyArMjEsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogCiAgICAgV0kuZG9tTWFuYWdlci5yZXF1
ZXN0RG9jdW1lbnQoZnVuY3Rpb24oZG9jdW1lbnROb2RlKSB7CiAgICAgICAgIGZvciAobGV0IHtz
ZWxlY3RvciwgaGFzaH0gb2YgdGVzdENhc2VzKSB7Ci0gICAgICAgICAgICBXSS5kb21NYW5hZ2Vy
LnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnROb2RlLmlkLCBzZWxlY3RvciwgZnVuY3Rpb24obm9kZUlk
KSB7CisgICAgICAgICAgICBkb2N1bWVudE5vZGUucXVlcnlTZWxlY3RvcihzZWxlY3RvciwgZnVu
Y3Rpb24obm9kZUlkKSB7CiAgICAgICAgICAgICAgICAgbGV0IGRvbU5vZGUgPSBXSS5kb21NYW5h
Z2VyLm5vZGVGb3JJZChub2RlSWQpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCIiKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZG9tTm9kZSwg
YEdvdCBET01Ob2RlIGZvciAke3NlbGVjdG9yfWApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RvbS9jdXN0b21FbGVtZW50U3RhdGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kb20vY3VzdG9tRWxlbWVudFN0YXRlLmh0bWwKaW5kZXggN2IxMjhkODZhZTNiOGFmNzIw
YTFhZmMyMWNiYmRkMmQ2NzNmZWRkZC4uMzFhMmRjYzNkZjM0ODc4YTA3N2Y1YzU4YmFkODNhNTJk
MjNiY2I5YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9jdXN0b21FbGVt
ZW50U3RhdGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2N1c3RvbUVsZW1l
bnRTdGF0ZS5odG1sCkBAIC0xNCw3ICsxNCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHN1aXRl
LmFkZFRlc3RDYXNlKHsKICAgICAgICAgbmFtZTogIkN1c3RvbUVsZW1lbnRTdGF0ZS5CdWlsdGlu
IiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIFdJLmRvbU1h
bmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIjYnVpbHRpbiIsIChub2RlSWQp
ID0+IHsKKyAgICAgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCIjYnVpbHRpbiIs
IChub2RlSWQpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gV0kuZG9tTWFuYWdl
ci5ub2RlRm9ySWQobm9kZUlkKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dEVxdWFsKG5vZGUuY3VzdG9tRWxlbWVudFN0YXRlKCksICJidWlsdGluIiwgIiNidWlsdGluIHNo
b3VsZCBiZSBDdXN0b21FbGVtZW50U3RhdGUuQnVpbHRpbi4iKTsKICAgICAgICAgICAgICAgICBy
ZXNvbHZlKCk7CkBAIC0yNSw3ICsyNSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHN1aXRlLmFk
ZFRlc3RDYXNlKHsKICAgICAgICAgbmFtZTogIkN1c3RvbUVsZW1lbnRTdGF0ZS5DdXN0b20uQ29u
c3RydWN0ZWQiLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAg
V0kuZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgImNvbnN0cnVjdGVk
LWVsZW1lbnQiLCAobm9kZUlkKSA9PiB7CisgICAgICAgICAgICBkb2N1bWVudE5vZGUucXVlcnlT
ZWxlY3RvcigiY29uc3RydWN0ZWQtZWxlbWVudCIsIChub2RlSWQpID0+IHsKICAgICAgICAgICAg
ICAgICBjb25zdCBub2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKTsKICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKG5vZGUuY3VzdG9tRWxlbWVudFN0
YXRlKCksICJjdXN0b20iLCAiY29uc3RydWN0ZWQtZWxlbWVudCBzaG91bGQgYmUgQ3VzdG9tRWxl
bWVudFN0YXRlLkN1c3RvbS4iKTsKICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CkBAIC0zNiw3
ICszNiw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAg
ICAgbmFtZTogIkN1c3RvbUVsZW1lbnRTdGF0ZS5DdXN0b20uVXBncmFkZWQiLAogICAgICAgICB0
ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgV0kuZG9tTWFuYWdlci5xdWVyeVNl
bGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgInVwZ3JhZGVkLWVsZW1lbnQiLCAobm9kZUlkKSA9PiB7
CisgICAgICAgICAgICBkb2N1bWVudE5vZGUucXVlcnlTZWxlY3RvcigidXBncmFkZWQtZWxlbWVu
dCIsIChub2RlSWQpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gV0kuZG9tTWFu
YWdlci5ub2RlRm9ySWQobm9kZUlkKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdEVxdWFsKG5vZGUuY3VzdG9tRWxlbWVudFN0YXRlKCksICJjdXN0b20iLCAidXBncmFkZWQt
ZWxlbWVudCBzaG91bGQgYmUgQ3VzdG9tRWxlbWVudFN0YXRlLkN1c3RvbS4iKTsKICAgICAgICAg
ICAgICAgICByZXNvbHZlKCk7CkBAIC00Nyw3ICs0Nyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAg
IHN1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAgbmFtZTogIkN1c3RvbUVsZW1lbnRTdGF0ZS5X
YWl0aW5nIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIFdJ
LmRvbU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICJ1bmRlZmluZWQtZWxl
bWVudCIsIChub2RlSWQpID0+IHsKKyAgICAgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVj
dG9yKCJ1bmRlZmluZWQtZWxlbWVudCIsIChub2RlSWQpID0+IHsKICAgICAgICAgICAgICAgICBj
b25zdCBub2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKTsKICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKG5vZGUuY3VzdG9tRWxlbWVudFN0YXRlKCks
ICJ3YWl0aW5nIiwgInVuZGVmaW5lZC1lbGVtZW50IHNob3VsZCBiZSBDdXN0b21FbGVtZW50U3Rh
dGUuV2FpdGluZy4iKTsKICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CkBAIC01OCw3ICs1OCw3
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAgbmFt
ZTogIkN1c3RvbUVsZW1lbnRTdGF0ZS5GYWlsZWQiLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJl
amVjdCkgewotICAgICAgICAgICAgV0kuZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50
Tm9kZS5pZCwgImZhaWxlZC1lbGVtZW50IiwgKG5vZGVJZCkgPT4geworICAgICAgICAgICAgZG9j
dW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoImZhaWxlZC1lbGVtZW50IiwgKG5vZGVJZCkgPT4gewog
ICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChub2Rl
SWQpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwobm9kZS5jdXN0
b21FbGVtZW50U3RhdGUoKSwgImZhaWxlZCIsICJmYWlsZWQtZWxlbWVudCBzaG91bGQgYmUgQ3Vz
dG9tRWxlbWVudFN0YXRlLkZhaWxlZC4iKTsKICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2RvbXV0aWxpdGllcy1jc3NwYXRo
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2RvbXV0aWxpdGllcy1jc3NwYXRoLmh0
bWwKaW5kZXggMjQxYjk4ZmZhZTlkZTc3OWNkNTNhOTEyNGRiNTA0M2MxZTBhNGYzZi4uMDlmZmM5
N2U4YjQ0ZWZiMTQyZmY0ZTc1ZWJlMzhlODE3YTEwZDA1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RvbS9kb211dGlsaXRpZXMtY3NzcGF0aC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kb20vZG9tdXRpbGl0aWVzLWNzc3BhdGguaHRtbApAQCAtOCw3ICs4LDcg
QEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgbGV0IGRvY3VtZW50Tm9kZTsKIAogICAgIGFzeW5jIGZ1
bmN0aW9uIG5vZGVGb3JTZWxlY3RvcihzZWxlY3RvcikgewotICAgICAgICBsZXQgbm9kZUlkID0g
YXdhaXQgV0kuZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgc2VsZWN0
b3IpOworICAgICAgICBsZXQgbm9kZUlkID0gYXdhaXQgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0
b3Ioc2VsZWN0b3IpOwogICAgICAgICByZXR1cm4gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9k
ZUlkKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZG9t
dXRpbGl0aWVzLXBhdGgtZHVtcC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9kb211
dGlsaXRpZXMtcGF0aC1kdW1wLmh0bWwKaW5kZXggMzY0N2E1NTk0Y2I4ZmMxZGY2MmMxNjRjYTYz
MzFkMTYxMGRlZDA2YS4uMjAyMDhhOGJlOGNiOTZlYWMyMDg3N2MzOTAyODM0ZTI1M2EzZWVlYyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9kb211dGlsaXRpZXMtcGF0aC1k
dW1wLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9kb211dGlsaXRpZXMtcGF0
aC1kdW1wLmh0bWwKQEAgLTQxLDcgKzQxLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICBXSS5k
b21NYW5hZ2VyLnJlcXVlc3REb2N1bWVudCgoZG9jdW1lbnROb2RlKSA9PiB7CiAgICAgICAgIC8v
IFB1c2ggYWxsIHRoZSBub2RlcyB0byB0aGUgZnJvbnRlbmQuCi0gICAgICAgIFdJLmRvbU1hbmFn
ZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICJodG1sIiwgKG5vZGVJZCkgPT4gewor
ICAgICAgICBkb2N1bWVudE5vZGUucXVlcnlTZWxlY3RvcigiaHRtbCIsIChub2RlSWQpID0+IHsK
ICAgICAgICAgICAgIGxldCBodG1sTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJ
ZCk7CiAgICAgICAgICAgICBodG1sTm9kZS5nZXRTdWJ0cmVlKDEwLCAoKSA9PiB7CiAgICAgICAg
ICAgICAgICAgYnVpbGROb2RlTGlzdChodG1sTm9kZSwgMCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZG9tL2RvbXV0aWxpdGllcy14cGF0aC5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RvbS9kb211dGlsaXRpZXMteHBhdGguaHRtbAppbmRleCA4NmQ1MTI0ZWIyY2Ni
ZTIyZWMzMjJiMGVkMTNmMGMzNzY5YzliN2Q5Li4yMGM2ZTczMDE4NDE5ZTkwYWJjZTE2MDQwZGJk
YzYyZjNkYjVjMmNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2RvbXV0
aWxpdGllcy14cGF0aC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZG9tdXRp
bGl0aWVzLXhwYXRoLmh0bWwKQEAgLTgsNyArOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIGxl
dCBkb2N1bWVudE5vZGU7CiAKICAgICBmdW5jdGlvbiBub2RlRm9yU2VsZWN0b3Ioc2VsZWN0b3Is
IGNhbGxiYWNrKSB7Ci0gICAgICAgIFdJLmRvbU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVu
dE5vZGUuaWQsIHNlbGVjdG9yLCAobm9kZUlkKSA9PiB7CisgICAgICAgIGRvY3VtZW50Tm9kZS5x
dWVyeVNlbGVjdG9yKHNlbGVjdG9yLCAobm9kZUlkKSA9PiB7CiAgICAgICAgICAgICBjYWxsYmFj
ayhXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChub2RlSWQpKTsKICAgICAgICAgfSk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9ldmVudC1saXN0ZW5lci1pbnNw
ZWN0ZWQtbm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9ldmVudC1saXN0ZW5l
ci1pbnNwZWN0ZWQtbm9kZS5odG1sCmluZGV4IDZlNzQyNmMwMDU3YmE5YTM5MzhmN2NmZjg2NjM5
Zjk3NGMyZGUyMzUuLmNjODlhMTcwMjVhZjRhOGUwYWFjYjUyMjgyYmNiYTg0ZTc0YzMyNTAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZXZlbnQtbGlzdGVuZXItaW5zcGVj
dGVkLW5vZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2V2ZW50LWxpc3Rl
bmVyLWluc3BlY3RlZC1ub2RlLmh0bWwKQEAgLTE0NSw5ICsxNDUsOSBAQCBmdW5jdGlvbiB0ZXN0
KCkgewogCiAgICAgV0kuZG9tTWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQoYXN5bmMgKGRvY3VtZW50
Tm9kZSkgPT4gewogICAgICAgICBsZXQgW3BhcmVudE5vZGVJZCwgY2hpbGROb2RlSWQsIHNpYmxp
bmdOb2RlSWRdID0gYXdhaXQgUHJvbWlzZS5hbGwoWwotICAgICAgICAgICAgV0kuZG9tTWFuYWdl
ci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZSwgIiNwYXJlbnQiKSwKLSAgICAgICAgICAgIFdJ
LmRvbU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUsICIjY2hpbGQiKSwKLSAgICAg
ICAgICAgIFdJLmRvbU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUsICIjc2libGlu
ZyIpLAorICAgICAgICAgICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiNwYXJlbnQiKSwK
KyAgICAgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCIjY2hpbGQiKSwKKyAgICAg
ICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCIjc2libGluZyIpLAogICAgICAgICBd
KTsKIAogICAgICAgICBwYXJlbnROb2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQocGFyZW50
Tm9kZUlkKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0RXZlbnRM
aXN0ZW5lcnNGb3JOb2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2dldEV2ZW50
TGlzdGVuZXJzRm9yTm9kZS5odG1sCmluZGV4IDYwMjgyMjYwZmIwMWVjM2I2ZDI0NjQ1NzEzYjU4
Mjc2N2NkMmYzZjIuLjBiZWE5YzljZGM3Yjk5ZjM3ZTQxM2I5NzVhN2FjOTUyZGZhMzMwN2EgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0RXZlbnRMaXN0ZW5lcnNGb3JO
b2RlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9nZXRFdmVudExpc3RlbmVy
c0Zvck5vZGUuaHRtbApAQCAtNDcsNyArNDcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgIH0p
OwogCiAgICAgV0kuZG9tTWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQoKGRvY3VtZW50Tm9kZSkgPT4g
ewotICAgICAgICBXSS5kb21NYW5hZ2VyLnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAi
ZGl2I3giLCAoY29udGVudE5vZGVJZCkgPT4geworICAgICAgICBkb2N1bWVudE5vZGUucXVlcnlT
ZWxlY3RvcigiZGl2I3giLCAoY29udGVudE5vZGVJZCkgPT4gewogICAgICAgICAgICAgaWYgKCFj
b250ZW50Tm9kZUlkKSB7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJET00g
bm9kZSBub3QgZm91bmQuIik7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0
ZVRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0T3V0ZXJI
VE1MLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2dldE91dGVySFRNTC5odG1sCmlu
ZGV4IDcwODBlOTIxNDMxN2I0ZjVkNWI3MDQ2YjlmOThjY2RjYjRiNTYwYWUuLmU1MmU1NzUzYzIw
NWM0NDgzNWQzZmQyNjFiY2JiZmRjODI5ZWM4MDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kb20vZ2V0T3V0ZXJIVE1MLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RvbS9nZXRPdXRlckhUTUwuaHRtbApAQCAtMTIsNyArMTIsNyBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICAgICAgZGVzY3JpcHRpb246ICJHZXQgdGhlIE91dGVySFRNTCBvZiB0aGUgdGFyZ2V0IGVs
ZW1lbnQuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAgIFdJ
LmRvbU1hbmFnZXIucmVxdWVzdERvY3VtZW50KGZ1bmN0aW9uKGRvY3VtZW50Tm9kZSkgewotICAg
ICAgICAgICAgICAgIFdJLmRvbU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQs
ICIjeCIsIGZ1bmN0aW9uKG5vZGVJZCkgeworICAgICAgICAgICAgICAgIGRvY3VtZW50Tm9kZS5x
dWVyeVNlbGVjdG9yKCIjeCIsIGZ1bmN0aW9uKG5vZGVJZCkgewogICAgICAgICAgICAgICAgICAg
ICBsZXQgZG9tTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCk7CiAgICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGRvbU5vZGUsICJET01Ob2RlIGV4aXN0
cyIpOwogICAgICAgICAgICAgICAgICAgICBkb21Ob2RlLmdldE91dGVySFRNTChmdW5jdGlvbihl
cnJvciwgb3V0ZXJIVE1MKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9t
L2luc2VydEFkamFjZW50SFRNTC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9pbnNl
cnRBZGphY2VudEhUTUwuaHRtbAppbmRleCBhMGQ2ZWIyZGZlYzJlMDkwYWY1ZWRhMmVhNzg5NTNj
MDAyZTM4N2QxLi45ZDA2MDgyNDFjZTNlOTJiMmUyMTA4OTE0ZTIyMzBhZDQ3Yjk4MzYwIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2luc2VydEFkamFjZW50SFRNTC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vaW5zZXJ0QWRqYWNlbnRIVE1MLmh0bWwK
QEAgLTY5LDcgKzY5LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgfSk7CiAKICAgICBXSS5kb21N
YW5hZ2VyLnJlcXVlc3REb2N1bWVudCgoZG9jdW1lbnROb2RlKSA9PiB7Ci0gICAgICAgIFdJLmRv
bU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIjcmVmZXJlbmNlIiwgKG5v
ZGVJZCkgPT4geworICAgICAgICBkb2N1bWVudE5vZGUucXVlcnlTZWxlY3RvcigiI3JlZmVyZW5j
ZSIsIChub2RlSWQpID0+IHsKICAgICAgICAgICAgIGRvbU5vZGUgPSBXSS5kb21NYW5hZ2VyLm5v
ZGVGb3JJZChub2RlSWQpOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZG9tTm9k
ZSwgYE5vZGUgd2l0aCBpZCAicmVmZXJlbmNlIiBzaG91bGQgZXhpc3QuYCk7CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtZHluYW1pYy5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1keW5hbWljLmh0bWwK
aW5kZXggNWQwZDZhZmQ0NDc4NzczZTY0YzcwMTRlOTc5ZWNlZjllOGZmNDljMi4uMDY0Yzg4ZjQ4
YjljZWE3NTFkODkxYzRmM2FkZmYxNDJlODIwZWM1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1keW5hbWljLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1keW5hbWljLmh0bWwKQEAgLTExMiw3ICsx
MTIsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgIH0KIAogICAgIFdJLmRvbU1hbmFnZXIucmVx
dWVzdERvY3VtZW50KGZ1bmN0aW9uKGRvY3VtZW50Tm9kZSkgewotICAgICAgICBXSS5kb21NYW5h
Z2VyLnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAiI3giLCBmdW5jdGlvbihub2RlSWQp
IHsKKyAgICAgICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiN4IiwgZnVuY3Rpb24obm9k
ZUlkKSB7CiAgICAgICAgICAgICB0ZXN0RE9NTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklk
KG5vZGVJZCk7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiIik7CiAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQodGVzdERPTU5vZGUsICJHb3QgRE9NTm9kZSBmb3Ig
I3giKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcHNldWRvLWVsZW1l
bnQtc3RhdGljLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3BzZXVkby1lbGVtZW50
LXN0YXRpYy5odG1sCmluZGV4IDQzZDhhZTZhZTRjNTUwNDE1N2VkYjY3NzgzMTg5NDY1ZTUxYmY0
ODcuLjNhOWZjOTk1MWQ1NmQwMjE5NTFiZDU3ODA2MWE1MDA1ZmI3YmI2MDIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtc3RhdGljLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1zdGF0aWMuaHRtbApA
QCAtNCw3ICs0LDcgQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiB0ZXN0KCkgewogICAgIFdJLmRvbU1h
bmFnZXIucmVxdWVzdERvY3VtZW50KGZ1bmN0aW9uKGRvY3VtZW50Tm9kZSkgewotICAgICAgICBX
SS5kb21NYW5hZ2VyLnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAiI25vbmUiLCBmdW5j
dGlvbihub2RlSWQpIHsKKyAgICAgICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiNub25l
IiwgZnVuY3Rpb24obm9kZUlkKSB7CiAgICAgICAgICAgICB2YXIgZG9tTm9kZSA9IFdJLmRvbU1h
bmFnZXIubm9kZUZvcklkKG5vZGVJZCk7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
Iik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZG9tTm9kZSwgIkdvdCBE
T01Ob2RlIGZvciAjbm9uZSIpOwpAQCAtMTUsNyArMTUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewog
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIWRvbU5vZGUuYWZ0ZXJQc2V1ZG9FbGVt
ZW50KCkpOwogICAgICAgICB9KTsKIAotICAgICAgICBXSS5kb21NYW5hZ2VyLnF1ZXJ5U2VsZWN0
b3IoZG9jdW1lbnROb2RlLmlkLCAiI2IiLCBmdW5jdGlvbihub2RlSWQpIHsKKyAgICAgICAgZG9j
dW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiNiIiwgZnVuY3Rpb24obm9kZUlkKSB7CiAgICAgICAg
ICAgICB2YXIgZG9tTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCk7CiAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiIik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRoYXQoZG9tTm9kZSwgIkdvdCBET01Ob2RlIGZvciAjYiIpOwpAQCAtMjcsNyArMjcs
NyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RU
aGF0KGRvbU5vZGUuYmVmb3JlUHNldWRvRWxlbWVudCgpLnBzZXVkb1R5cGUoKSA9PT0gV0kuRE9N
Tm9kZS5Qc2V1ZG9FbGVtZW50VHlwZS5CZWZvcmUsICJET01Ob2RlIGZvciBiZWZvcmUgcHNldWRv
IGVsZW1lbnQgaGFzIHRoZSByaWdodCB0eXBlIik7CiAgICAgICAgIH0pOwogCi0gICAgICAgIFdJ
LmRvbU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIjYSIsIGZ1bmN0aW9u
KG5vZGVJZCkgeworICAgICAgICBkb2N1bWVudE5vZGUucXVlcnlTZWxlY3RvcigiI2EiLCBmdW5j
dGlvbihub2RlSWQpIHsKICAgICAgICAgICAgIHZhciBkb21Ob2RlID0gV0kuZG9tTWFuYWdlci5u
b2RlRm9ySWQobm9kZUlkKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCIiKTsKICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChkb21Ob2RlLCAiR290IERPTU5vZGUg
Zm9yICNhIik7CkBAIC0zOSw3ICszOSw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZG9tTm9kZS5hZnRlclBzZXVkb0VsZW1lbnQoKS5w
c2V1ZG9UeXBlKCkgPT09IFdJLkRPTU5vZGUuUHNldWRvRWxlbWVudFR5cGUuQWZ0ZXIsICJET01O
b2RlIGZvciBhZnRlciBwc2V1ZG8gZWxlbWVudCBoYXMgdGhlIHJpZ2h0IHR5cGUiKTsKICAgICAg
ICAgfSk7CiAKLSAgICAgICAgV0kuZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9k
ZS5pZCwgIiN4IiwgZnVuY3Rpb24obm9kZUlkKSB7CisgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVy
eVNlbGVjdG9yKCIjeCIsIGZ1bmN0aW9uKG5vZGVJZCkgewogICAgICAgICAgICAgdmFyIGRvbU5v
ZGUgPSBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChub2RlSWQpOwogICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIiIpOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGRv
bU5vZGUsICJHb3QgRE9NTm9kZSBmb3IgI3giKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kb20vc2V0QWxsb3dFZGl0aW5nVXNlckFnZW50U2hhZG93VHJlZXMuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kb20vc2V0QWxsb3dFZGl0aW5nVXNlckFnZW50U2hhZG93VHJl
ZXMuaHRtbAppbmRleCAzODgwN2U1ZTQ5ODc1YmFmOGE5NjJiM2FiMjc1OTAzMTAwNmVjYWFlLi5h
ZjQwOGUwOWM0NTk1ZWFiYmUxOTcxYWMwODVkYzkwZGE0ZDM1MGU2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZG9tL3NldEFsbG93RWRpdGluZ1VzZXJBZ2VudFNoYWRvd1RyZWVz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9zZXRBbGxvd0VkaXRpbmdVc2Vy
QWdlbnRTaGFkb3dUcmVlcy5odG1sCkBAIC0zOCw3ICszOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgIH0pOwogCiAgICAgV0kuZG9tTWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQoKGRvY3VtZW50Tm9k
ZSkgPT4gewotICAgICAgICBXSS5kb21NYW5hZ2VyLnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnROb2Rl
LmlkLCAiI3giLCAoY29udGVudE5vZGVJZCkgPT4geworICAgICAgICBkb2N1bWVudE5vZGUucXVl
cnlTZWxlY3RvcigiI3giLCAoY29udGVudE5vZGVJZCkgPT4gewogICAgICAgICAgICAgbGV0IGlu
cHV0Tm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKGNvbnRlbnROb2RlSWQpOwogCiAgICAg
ICAgICAgICBsZXQgZnJhZ21lbnQgPSBpbnB1dE5vZGUuc2hhZG93Um9vdHMoKVswXTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vc2V0SW5zcGVjdGVkTm9kZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9zZXRJbnNwZWN0ZWROb2RlLmh0bWwKaW5kZXggZmI3
MmYxNmNhZjUyYmQ3YzNmZTU0ZjllZWY1OTlkOTBkMzJlNjEyYS4uYjI0NDYwZDQyMGNhZWRhNDU2
MDI3NTQwMmFmZDU1ZGVlMDMyNmEwZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RvbS9zZXRJbnNwZWN0ZWROb2RlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rv
bS9zZXRJbnNwZWN0ZWROb2RlLmh0bWwKQEAgLTc1LDExICs3NSwxMSBAQCBmdW5jdGlvbiB0ZXN0
KCkKICAgICAvLyBGSVhNRTogV2hhdCBzaG91bGQgJDAgYmUgYWZ0ZXIgcmVsb2FkaW5nIC8gbmF2
aWdhdGluZyB0aGUgcGFnZS4gU2hvdWxkIGl0IGJlIGNsZWFyZWQ/CiAKICAgICBXSS5kb21NYW5h
Z2VyLnJlcXVlc3REb2N1bWVudCgoZG9jdW1lbnROb2RlKSA9PiB7Ci0gICAgICAgIFdJLmRvbU1h
bmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIjYSIsIChjb250ZW50Tm9kZUlk
KSA9PiB7CisgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCIjYSIsIChjb250ZW50
Tm9kZUlkKSA9PiB7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjb250ZW50Tm9k
ZUlkLCAiI2Egbm9kZSBzaG91bGQgZXhpc3QuIik7CiAgICAgICAgICAgICBub2RlQSA9IFdJLmRv
bU1hbmFnZXIubm9kZUZvcklkKGNvbnRlbnROb2RlSWQpOwogICAgICAgICB9KTsKLSAgICAgICAg
V0kuZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgIiNiIiwgKGNvbnRl
bnROb2RlSWQpID0+IHsKKyAgICAgICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiNiIiwg
KGNvbnRlbnROb2RlSWQpID0+IHsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNv
bnRlbnROb2RlSWQsICIjYiBub2RlIHNob3VsZCBleGlzdC4iKTsKICAgICAgICAgICAgIG5vZGVC
ID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQoY29udGVudE5vZGVJZCk7CiAgICAgICAgICAgICBz
dWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kb20vc2V0T3V0ZXJIVE1MLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9t
L3NldE91dGVySFRNTC5odG1sCmluZGV4IDY1Y2U2ZmY0M2NhMWI5MjU1OGMyOGJmMWZlZDI3ODdh
NmU5MDg2OWQuLmM1YTUwNWZhYTc5Zjc0NDAyZGNjNjM5NmNhYWFkNGU5NDRjZDU4NmYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vc2V0T3V0ZXJIVE1MLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9zZXRPdXRlckhUTUwuaHRtbApAQCAtNzIsNyArNzIs
NyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICB9KTsKIAogICAgIFdJLmRvbU1hbmFnZXIucmVxdWVz
dERvY3VtZW50KGZ1bmN0aW9uKGRvY3VtZW50Tm9kZSkgewotICAgICAgICBXSS5kb21NYW5hZ2Vy
LnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAiI3giLCBmdW5jdGlvbihub2RlSWQpIHsK
KyAgICAgICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiN4IiwgZnVuY3Rpb24obm9kZUlk
KSB7CiAgICAgICAgICAgICBkb21Ob2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9kZUlk
KTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGRvbU5vZGUsICJET01Ob2RlIGV4
aXN0cy4iKTsKICAgICAgICAgICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9zaGFkb3ctYW5kLW5vbi1zaGFkb3ct
Y2hpbGRyZW4uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vc2hhZG93LWFuZC1ub24t
c2hhZG93LWNoaWxkcmVuLmh0bWwKaW5kZXggOGQ5MjAzYzQyN2ZhNjBkOTkyOTNiMDkxOTBhMzk2
MDhhYTAwYjI1Ny4uZjRlMmQzZDVlYWVhN2RjMWNkNzY1YjkzZTQ2MDMyMDkwMWEwOWRjMSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9zaGFkb3ctYW5kLW5vbi1zaGFkb3ct
Y2hpbGRyZW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3NoYWRvdy1hbmQt
bm9uLXNoYWRvdy1jaGlsZHJlbi5odG1sCkBAIC05LDE0ICs5LDE1IEBAIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKIAogZnVuY3Rpb24gdGVzdCgpCiB7Ci0gICAgbGV0IGRvY3VtZW50Tm9kZUlkOwor
ICAgIGxldCBkb2N1bWVudE5vZGUgPSBudWxsOworCiAgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9y
VGVzdC5jcmVhdGVBc3luY1N1aXRlKCJET01Ob2RlLlNoYWRvd0FuZE5vblNoYWRvd0NoaWxkcmVu
Iik7CiAKICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CiAgICAgICAgIG5hbWU6ICJET01Ob2RlLlNo
YWRvd0FuZE5vblNoYWRvd0NoaWxkcmVuLlZpZGVvV2l0aFNvdXJjZSIsCiAgICAgICAgIGRlc2Ny
aXB0aW9uOiAiQ2hlY2sgZm9yIGFsbCBjaGlsZHJlbiBvZiBhIHZpZGVvIHdpdGggYSBzb3VyY2Ug
Y2hpbGQuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIFdJ
LmRvbU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGVJZCwgIiN0ZXN0LXZpZGVvIiwg
KG5vZGVJZCkgPT4geworICAgICAgICAgICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiN0
ZXN0LXZpZGVvIiwgKG5vZGVJZCkgPT4gewogICAgICAgICAgICAgICAgIGxldCBkb21Ob2RlID0g
V0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGVjdEVxdWFsKGRvbU5vZGUubm9kZU5hbWUoKSwgIlZJREVPIiwgIkRPTU5vZGUg
c2hvdWxkIGJlIGEgYHZpZGVvYCBlbGVtZW50LiIpOwogICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0VGhhdChkb21Ob2RlLmhhc0NoaWxkTm9kZXMoKSwgIkRPTU5vZGUgc2hvdWxk
IGhhdmUgY2hpbGQgbm9kZXMuIik7CkBAIC0zMyw4ICszNCw4IEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgICAgICB9CiAgICAgfSk7CiAKLSAgICBXSS5kb21NYW5hZ2VyLnJlcXVlc3REb2N1bWVudCgo
ZG9jdW1lbnROb2RlKSA9PiB7Ci0gICAgICAgIGRvY3VtZW50Tm9kZUlkID0gZG9jdW1lbnROb2Rl
LmlkOworICAgIFdJLmRvbU1hbmFnZXIucmVxdWVzdERvY3VtZW50KChyb290KSA9PiB7CisgICAg
ICAgIGRvY3VtZW50Tm9kZSA9IHJvb3Q7CiAgICAgICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZp
bmlzaCgpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rv
bS9zaGFkb3dSb290VHlwZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9zaGFkb3dS
b290VHlwZS5odG1sCmluZGV4IDVhMzU1NWVkODJmZGRlMGU0YmU2MGZkYTlkNmU0ODk0ZDE5NDky
ZjYuLmRmMmZhZDhjNjFkNzliNDA5YzQxMzRkNWYxMzU4NmEwNDdhMDhkNWMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vc2hhZG93Um9vdFR5cGUuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZG9tL3NoYWRvd1Jvb3RUeXBlLmh0bWwKQEAgLTEyLDcgKzEyLDcg
QEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgc3VpdGUuYWRkVGVzdENhc2UoewogICAgICAgICBuYW1l
OiAiU2hhZG93Um9vdFR5cGUuVXNlckFnZW50IiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWpl
Y3QpIHsKLSAgICAgICAgICAgIFdJLmRvbU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5v
ZGUuaWQsICIjaG9zdC11c2VyLWFnZW50IiwgKG5vZGVJZCkgPT4geworICAgICAgICAgICAgZG9j
dW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiNob3N0LXVzZXItYWdlbnQiLCAobm9kZUlkKSA9PiB7
CiAgICAgICAgICAgICAgICAgbGV0IGRvbU5vZGUgPSBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChu
b2RlSWQpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGRvbU5vZGUsICJH
b3QgRE9NTm9kZSBmb3IgI2hvc3QtdXNlci1hZ2VudCIpOwogICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdChkb21Ob2RlLnNoYWRvd1Jvb3RzKCkubGVuZ3RoID09PSAxLCAi
RE9NTm9kZSBoYXMgYSBzaW5nbGUgc2hhZG93IHJvb3QuIik7CkBAIC0yNiw3ICsyNiw3IEBAIGZ1
bmN0aW9uIHRlc3QoKQogICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAgbmFtZTogIlNo
YWRvd1Jvb3RUeXBlLkNsb3NlZCIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0g
ICAgICAgICAgICBXSS5kb21NYW5hZ2VyLnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAi
I2hvc3QtY2xvc2VkIiwgKG5vZGVJZCkgPT4geworICAgICAgICAgICAgZG9jdW1lbnROb2RlLnF1
ZXJ5U2VsZWN0b3IoIiNob3N0LWNsb3NlZCIsIChub2RlSWQpID0+IHsKICAgICAgICAgICAgICAg
ICBsZXQgZG9tTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCk7CiAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZG9tTm9kZSwgIkdvdCBET01Ob2RlIGZvciAj
aG9zdC1jbG9zZWQiKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
ZG9tTm9kZS5zaGFkb3dSb290cygpLmxlbmd0aCA9PT0gMSwgIkRPTU5vZGUgaGFzIGEgc2luZ2xl
IHNoYWRvdyByb290LiIpOwpAQCAtNDAsNyArNDAsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBz
dWl0ZS5hZGRUZXN0Q2FzZSh7CiAgICAgICAgIG5hbWU6ICJTaGFkb3dSb290VHlwZS5PcGVuIiwK
ICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIFdJLmRvbU1hbmFn
ZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIjaG9zdC1vcGVuIiwgKG5vZGVJZCkg
PT4geworICAgICAgICAgICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiNob3N0LW9wZW4i
LCAobm9kZUlkKSA9PiB7CiAgICAgICAgICAgICAgICAgbGV0IGRvbU5vZGUgPSBXSS5kb21NYW5h
Z2VyLm5vZGVGb3JJZChub2RlSWQpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0KGRvbU5vZGUsICJHb3QgRE9NTm9kZSBmb3IgI2hvc3Qtb3BlbiIpOwogICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChkb21Ob2RlLnNoYWRvd1Jvb3RzKCkubGVuZ3Ro
ID09PSAxLCAiRE9NTm9kZSBoYXMgYSBzaW5nbGUgc2hhZG93IHJvb3QuIik7CkBAIC01NCw3ICs1
NCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAg
bmFtZTogIk5vU2hhZG93Um9vdFR5cGUiLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkg
ewotICAgICAgICAgICAgV0kuZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5p
ZCwgIiNuby1ob3N0IiwgKG5vZGVJZCkgPT4geworICAgICAgICAgICAgZG9jdW1lbnROb2RlLnF1
ZXJ5U2VsZWN0b3IoIiNuby1ob3N0IiwgKG5vZGVJZCkgPT4gewogICAgICAgICAgICAgICAgIGxl
dCBkb21Ob2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKTsKICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChkb21Ob2RlLCAiR290IERPTU5vZGUgZm9yICNuby1o
b3N0Iik7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGRvbU5vZGUu
c2hhZG93Um9vdHMoKS5sZW5ndGggPT09IDAsICJET01Ob2RlIGhhcyBubyBzaGFkb3cgcm9vdHMu
Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3RlbXBsYXRlLWNvbnRl
bnQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vdGVtcGxhdGUtY29udGVudC5odG1s
CmluZGV4IDU2YjQ2NWQxMTE4MDczNDU4NDcxOGViZDE5NzIzODllMjQ0NzI4ZWUuLjY2ODY3NTFk
MzQxNjUzNWEzM2VlNGViMGI3ZGE0OTlmM2MxMGZkMmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kb20vdGVtcGxhdGUtY29udGVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kb20vdGVtcGxhdGUtY29udGVudC5odG1sCkBAIC00LDEzICs0LDEzIEBACiA8c2Ny
aXB0PgogZnVuY3Rpb24gdGVzdCgpIHsKICAgICBXSS5kb21NYW5hZ2VyLnJlcXVlc3REb2N1bWVu
dChmdW5jdGlvbihkb2N1bWVudE5vZGUpIHsKLSAgICAgICAgV0kuZG9tTWFuYWdlci5xdWVyeVNl
bGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgIiNkaXYiLCBmdW5jdGlvbihub2RlSWQpIHsKKyAgICAg
ICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiNkaXYiLCBmdW5jdGlvbihub2RlSWQpIHsK
ICAgICAgICAgICAgIHZhciBkb21Ob2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9kZUlk
KTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChkb21Ob2RlLCAiR290IERP
TU5vZGUgZm9yIGRpdiBlbGVtZW50Iik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dFRoYXQoIWRvbU5vZGUudGVtcGxhdGVDb250ZW50KCksICJET01Ob2RlIGRvZXMgbm90IGhhdmUg
dGVtcGxhdGUgY29udGVudCIpOwogICAgICAgICB9KTsKIAotICAgICAgICBXSS5kb21NYW5hZ2Vy
LnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAiI3RlbXBsYXRlIiwgZnVuY3Rpb24obm9k
ZUlkKSB7CisgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCIjdGVtcGxhdGUiLCBm
dW5jdGlvbihub2RlSWQpIHsKICAgICAgICAgICAgIHZhciBkb21Ob2RlID0gV0kuZG9tTWFuYWdl
ci5ub2RlRm9ySWQobm9kZUlkKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCIiKTsK
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChkb21Ob2RlLCAiR290IERPTU5v
ZGUgZm9yIHRlbXBsYXRlIGVsZW1lbnQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9tb2RlbC9kb20tbm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL2Rv
bS1ub2RlLmh0bWwKaW5kZXggYTYyOTc2OWVkOGU0MTE1NTc4NTU4ZDI1YzQ2YTA0YmMwZTNiMmE5
MC4uNWQ5MTc0YzgxNGViODcyYzIyMGQ4OTE4MTc0YzIxMWYyZmJlYmViYiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL2RvbS1ub2RlLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL21vZGVsL2RvbS1ub2RlLmh0bWwKQEAgLTEyLDcgKzEyLDcgQEAgZnVuY3Rp
b24gdGVzdCgpCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdCBnZXR0aW5nIHRoZSBhdHRyaWJ1
dGVzIG9mIGEgbm9kZS4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewogICAgICAg
ICAgICAgV0kuZG9tTWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQoKGRvY3VtZW50Tm9kZSkgPT4gewot
ICAgICAgICAgICAgICAgIFdJLmRvbU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUu
aWQsICIjdGVzdC1pZCIsIChub2RlSWQpID0+IHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudE5v
ZGUucXVlcnlTZWxlY3RvcigiI3Rlc3QtaWQiLCAobm9kZUlkKSA9PiB7CiAgICAgICAgICAgICAg
ICAgICAgIGxldCBkb21Ob2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKTsKICAg
ICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZG9tTm9kZSwgIkRPTU5vZGUg
ZXhpc3RzIik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL2hpZHBp
LXNuYXBzaG90LXNpemUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL2hpZHBpLXNu
YXBzaG90LXNpemUuaHRtbAppbmRleCBlOTc3MjUxZTk3MDJiOTBkNDdhOGFjNDBhMjJhOTIzY2Ni
MzcwMzk5Li44NmQ0N2MzNDNlODliOGFmNzU4M2MwNzZlOWNjYjllZDQ0MWMyMGEzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9oaWRwaS1zbmFwc2hvdC1zaXplLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2UvaGlkcGktc25hcHNob3Qtc2l6ZS5odG1s
CkBAIC0zMiw3ICszMiw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBuYW1lOiAiU25hcHNo
b3RQcmVzZXJ2ZXNQYWdlUmVzb2x1dGlvbiIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiVmVyaWZ5
IHRoYXQgYSBub2RlIHNuYXBzaG90IGlzIG5vdCBzY2FsZWQgZG93biB0byBDU1MgcGl4ZWxzLiIs
CiAgICAgICAgIGFzeW5jIHRlc3QoKSB7Ci0gICAgICAgICAgICBsZXQgdGFyZ2V0Tm9kZUlkID0g
YXdhaXQgV0kuZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgIiNlbGVt
ZW50LXRvLXNuYXBzaG90Iik7CisgICAgICAgICAgICBsZXQgdGFyZ2V0Tm9kZUlkID0gYXdhaXQg
ZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiNlbGVtZW50LXRvLXNuYXBzaG90Iik7CiAgICAg
ICAgICAgICBsZXQge2RhdGFVUkx9ID0gYXdhaXQgUGFnZUFnZW50LnNuYXBzaG90Tm9kZSh0YXJn
ZXROb2RlSWQpOwogICAgICAgICAgICAgbGV0IGRldmljZVBpeGVsUmF0aW8gPSBhd2FpdCBJbnNw
ZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb2ApOwogICAg
ICAgICAgICAgbGV0IGVsZW1lbnRCb3VuZHMgPSBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRl
SW5QYWdlKGB3aW5kb3cuc25hcHNob3RFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpYCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384211</attachid>
            <date>2019-11-22 16:06:20 -0800</date>
            <delta_ts>2019-12-06 22:06:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204519-20191122160619.patch</filename>
            <type>text/plain</type>
            <size>91932</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDcwYjNlYzQ3ZGNmNTk5ZDFkZTIyMzIyOTkxZmNj
Y2M5MWM5ZDNiNTMuLjNjYzExNjc4ODZmZDMyMTgwMzgzMjA4MmFjMTMzMjE4NWQ2ZWY5NDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMyBAQAorMjAxOS0xMS0yMiAgRGV2
aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
VW5jYXVnaHQgRXhjZXB0aW9uOiBNaXNzaW5nIG5vZGUgZm9yIGdpdmVuIG5vZGVJZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NTE5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBhIERPTSBub2Rl
IGlzIHJlbW92ZWQgZnJvbSB0aGUgbWFpbiBET00gdHJlZSwgdGhlIGBJbnNwZWN0b3JET01BZ2Vu
dGAgaW52YWxpZGF0ZXMgdGhlCisgICAgICAgIGBET00uTm9kZUlkYCB0aGF0IHdhcyBwcmV2aW91
c2x5IGFzc2lnbmVkIHRvIHRoYXQgRE9NIG5vZGUsIG1lYW5pbmcgdGhhdCBhbnkgZnV0dXJlIGNv
bW1hbmRzCisgICAgICAgIHNlbnQgYnkgdGhlIGZyb250ZW5kIHdpdGggdGhhdCBgRE9NLk5vZGVJ
ZGAgd2lsbCBmYWlsLgorCisgICAgICAgIEFkZCBsb2dpYyB0byBtYXJrIGBXSS5ET01Ob2RlYCBh
cyBiZWluZyBgZGVzdHJveWVkYCB3aGVuIHRoaXMgaGFwcGVucyBzbyB0aGUgZnJvbnRlbmQgY2Fu
CisgICAgICAgIGRlY2lkZSB0byBub3QgaW52b2tlIGFueSBjb21tYW5kcyB3aXRoIHRoYXQgYERP
TS5Ob2RlSWRgLgorCisgICAgICAgIE1hbnkgZnVuY3Rpb25zIGhhdmUgYWxzbyBzd2l0Y2hlZCB0
byBleHBlY3RpbmcgYSBgV0kuRE9NTm9kZWAgaW5zdGVhZCBvZiBhIGBET00uTm9kZUlkYCBvcgor
ICAgICAgICBoYXZlIGJlZW4gbW92ZWQgdG8gYFdJLkRPTU5vZGUucHJvdG90eXBlYCBpbiBvcmRl
ciB0byBhbHNvIGJlIGFibGUgdG8gdXNlIGBkZXN0cm95ZWRgLgorCisgICAgICAgIFRoaXMgaXNz
dWUgd2lsbCBldmVudHVhbGx5IGJlIG1pdGlnYXRlZCBieSA8aHR0cHM6Ly93ZWJraXQub3JnL2Iv
MTg5Njg3Pi4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTU5vZGUuanM6Cisg
ICAgICAgIChXSS5ET01Ob2RlKToKKyAgICAgICAgKFdJLkRPTU5vZGUucHJvdG90eXBlLmdldCBk
ZXN0cm95ZWQpOiBBZGRlZC4KKyAgICAgICAgKFdJLkRPTU5vZGUucHJvdG90eXBlLmdldCBhdHRh
Y2hlZCk6CisgICAgICAgIChXSS5ET01Ob2RlLnByb3RvdHlwZS5tYXJrRGVzdHJveWVkKTogQWRk
ZWQuCisgICAgICAgIChXSS5ET01Ob2RlLnByb3RvdHlwZS5zZXROb2RlTmFtZSk6CisgICAgICAg
IChXSS5ET01Ob2RlLnByb3RvdHlwZS5zZXROb2RlVmFsdWUpOgorICAgICAgICAoV0kuRE9NTm9k
ZS5wcm90b3R5cGUuc2V0QXR0cmlidXRlKToKKyAgICAgICAgKFdJLkRPTU5vZGUucHJvdG90eXBl
LnNldEF0dHJpYnV0ZVZhbHVlKToKKyAgICAgICAgKFdJLkRPTU5vZGUucHJvdG90eXBlLnF1ZXJ5
U2VsZWN0b3IpOiBBZGRlZC4KKyAgICAgICAgKFdJLkRPTU5vZGUucHJvdG90eXBlLnF1ZXJ5U2Vs
ZWN0b3JBbGwpOiBBZGRlZC4KKyAgICAgICAgKFdJLkRPTU5vZGUucHJvdG90eXBlLmhpZ2hsaWdo
dCk6IEFkZGVkLgorICAgICAgICAoV0kuRE9NTm9kZS5wcm90b3R5cGUuZ2V0T3V0ZXJIVE1MKToK
KyAgICAgICAgKFdJLkRPTU5vZGUucHJvdG90eXBlLnNldE91dGVySFRNTCk6CisgICAgICAgIChX
SS5ET01Ob2RlLnByb3RvdHlwZS5yZW1vdmVOb2RlKToKKyAgICAgICAgKFdJLkRPTU5vZGUucHJv
dG90eXBlLmdldEV2ZW50TGlzdGVuZXJzKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFz
ZS9ET01VdGlsaXRpZXMuanM6CisgICAgICAgIChXSS5iaW5kSW50ZXJhY3Rpb25zRm9yTm9kZVRv
RWxlbWVudCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01NYW5hZ2Vy
LmpzOgorICAgICAgICAoV0kuRE9NTWFuYWdlci5idWlsZEhpZ2hsaWdodENvbmZpZyk6CisgICAg
ICAgIChXSS5ET01NYW5hZ2VyLndyYXBDbGllbnRDYWxsYmFjayk6CisgICAgICAgIChXSS5ET01N
YW5hZ2VyLnByb3RvdHlwZS5fbG9hZE5vZGVBdHRyaWJ1dGVzKToKKyAgICAgICAgKFdJLkRPTU1h
bmFnZXIucHJvdG90eXBlLl9zZXREb2N1bWVudCk6CisgICAgICAgIChXSS5ET01NYW5hZ2VyLnBy
b3RvdHlwZS5fdW5iaW5kKToKKyAgICAgICAgKFdJLkRPTU1hbmFnZXIucHJvdG90eXBlLmhpZ2hs
aWdodERPTU5vZGVMaXN0KToKKyAgICAgICAgKFdJLkRPTU1hbmFnZXIucHJvdG90eXBlLmhpZ2hs
aWdodFNlbGVjdG9yKToKKyAgICAgICAgKFdJLkRPTU1hbmFnZXIucHJvdG90eXBlLmhpZGVET01O
b2RlSGlnaGxpZ2h0KToKKyAgICAgICAgKFdJLkRPTU1hbmFnZXIucHJvdG90eXBlLmhpZ2hsaWdo
dERPTU5vZGVGb3JUd29TZWNvbmRzKToKKyAgICAgICAgKFdJLkRPTU1hbmFnZXIucHJvdG90eXBl
LnNldCBpbnNwZWN0TW9kZUVuYWJsZWQpOgorICAgICAgICAoV0kuRE9NTWFuYWdlci5wcm90b3R5
cGUuc2V0SW5zcGVjdGVkTm9kZSk6CisgICAgICAgIChXSS5ET01NYW5hZ2VyLnByb3RvdHlwZS5z
ZXRFdmVudExpc3RlbmVyRGlzYWJsZWQpOgorICAgICAgICAoV0kuRE9NTWFuYWdlci5wcm90b3R5
cGUuX3dyYXBDbGllbnRDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIChXSS5ET01NYW5hZ2Vy
LnByb3RvdHlwZS5xdWVyeVNlbGVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdJLkRPTU1hbmFn
ZXIucHJvdG90eXBlLnF1ZXJ5U2VsZWN0b3JBbGwpOiBEZWxldGVkLgorICAgICAgICAoV0kuRE9N
TWFuYWdlci5wcm90b3R5cGUuaGlnaGxpZ2h0RE9NTm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChX
SS5ET01NYW5hZ2VyLnByb3RvdHlwZS5fYnVpbGRIaWdobGlnaHRDb25maWcpOiBEZWxldGVkLgor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0F1ZGl0VGVzdENhc2VSZXN1bHQuanM6Cisg
ICAgICAgIChXSS5BdWRpdFRlc3RDYXNlUmVzdWx0LmFzeW5jIGZyb21QYXlsb2FkKToKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9NZWRpYVRpbWVsaW5lUmVjb3JkLmpzOgorICAgICAg
ICAoV0kuTWVkaWFUaW1lbGluZVJlY29yZC5hc3luYyBmcm9tSlNPTik6CisgICAgICAgICogVXNl
ckludGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3QuanM6CisgICAgICAgIChXSS5SZW1vdGVP
YmplY3QucmVzb2x2ZU5vZGUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQm94TW9k
ZWxEZXRhaWxzU2VjdGlvblJvdy5qczoKKyAgICAgICAgKFdJLkJveE1vZGVsRGV0YWlsc1NlY3Rp
b25Sb3cucHJvdG90eXBlLl9oaWdobGlnaHRET01Ob2RlKToKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL0NhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5DYW52
YXNPdmVydmlld0NvbnRlbnRWaWV3LnByb3RvdHlwZS5fY29udGVudFZpZXdNb3VzZUVudGVyKToK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RyZWVFbGVtZW50LmpzOgorICAg
ICAgICAoV0kuQ2FudmFzVHJlZUVsZW1lbnQucHJvdG90eXBlLl9oYW5kbGVNb3VzZU92ZXIpOgor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29udGV4dE1lbnVVdGlsaXRpZXMuanM6Cisg
ICAgICAgIChXSS5hcHBlbmRDb250ZXh0TWVudUl0ZW1zRm9yRE9NTm9kZSk6CisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9ET01Ob2RlRGV0YWlsc1NpZGViYXJQYW5lbC5qczoKKyAgICAg
ICAgKFdJLkRPTU5vZGVEZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5sYXlvdXQpOgorICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUNvbnRlbnRWaWV3LmpzOgorICAgICAg
ICAoV0kuRE9NVHJlZUNvbnRlbnRWaWV3LnByb3RvdHlwZS5fZG9tVHJlZVNlbGVjdGlvbkRpZENo
YW5nZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudC5qczoK
KyAgICAgICAgKFdJLkRPTVRyZWVFbGVtZW50LnByb3RvdHlwZS5nZXQgZWRpdGFibGUpOgorICAg
ICAgICAoV0kuRE9NVHJlZUVsZW1lbnQucHJvdG90eXBlLnBvcHVsYXRlRE9NTm9kZUNvbnRleHRN
ZW51KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVFbGVtZW50UGF0aENv
bXBvbmVudC5qczoKKyAgICAgICAgKFdJLkRPTVRyZWVFbGVtZW50UGF0aENvbXBvbmVudC5wcm90
b3R5cGUubW91c2VPdmVyKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVP
dXRsaW5lLmpzOgorICAgICAgICAoV0kuRE9NVHJlZU91dGxpbmUucHJvdG90eXBlLmdldCBlZGl0
YWJsZSk6CisgICAgICAgIChXSS5ET01UcmVlT3V0bGluZS5wcm90b3R5cGUucG9wdWxhdGVDb250
ZXh0TWVudSk6CisgICAgICAgIChXSS5ET01UcmVlT3V0bGluZS5wcm90b3R5cGUuX29ubW91c2Vt
b3ZlKToKKyAgICAgICAgKFdJLkRPTVRyZWVPdXRsaW5lLnByb3RvdHlwZS5fb25kcmFnc3RhcnQp
OgorICAgICAgICAoV0kuRE9NVHJlZU91dGxpbmUucHJvdG90eXBlLl9vbmRyYWdvdmVyKToKKyAg
ICAgICAgKFdJLkRPTVRyZWVPdXRsaW5lLnByb3RvdHlwZS5fb25kcmFnbGVhdmUpOgorICAgICAg
ICAoV0kuRE9NVHJlZU91dGxpbmUucHJvdG90eXBlLl9vbmRyYWdlbmQpOgorICAgICAgICAoV0ku
RE9NVHJlZU91dGxpbmUucHJvdG90eXBlLl9oaWRlRWxlbWVudHMpOgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvRm9ybWF0dGVkVmFsdWUuanM6CisgICAgICAgIChXSS5Gb3JtYXR0ZWRW
YWx1ZS5jcmVhdGVFbGVtZW50Rm9yTm9kZVByZXZpZXcpOgorICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvR2VuZXJhbFN0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdJ
LkdlbmVyYWxTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLmxheW91dCk6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9MYXllckRldGFpbHNTaWRlYmFyUGFuZWwuanM6Cisg
ICAgICAgIChXSS5MYXllckRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9kYXRhR3JpZE1v
dXNlTW92ZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9MYXllclRyZWVEZXRhaWxz
U2lkZWJhclBhbmVsLmpzOgorICAgICAgICAoV0kuTGF5ZXJUcmVlRGV0YWlsc1NpZGViYXJQYW5l
bC5wcm90b3R5cGUubGF5b3V0KToKKyAgICAgICAgKFdJLkxheWVyVHJlZURldGFpbHNTaWRlYmFy
UGFuZWwucHJvdG90eXBlLl9oaWdobGlnaHRTZWxlY3RlZE5vZGUpOgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qczoK
KyAgICAgICAgKFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24ucHJvdG90
eXBlLl9oaWdobGlnaHROb2Rlc1dpdGhTZWxlY3Rvcik6CisKIDIwMTktMTEtMjAgIEJyaWFuIEJ1
cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIHN1cHBv
cnQgZm9yIG5ldyBraW5kcyBvZiBkaWFnbm9zdGljIGV2ZW50cwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9ET01VdGlsaXRpZXMuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL0RPTVV0aWxpdGllcy5qcwppbmRl
eCAyNDkzMjJlMTdlZGIyNWIwYzk5MGIzNzI1YTNmMmI5NTQ3OTJlNjRmLi4wMmZiMjRhMDVmNTcz
NDYwZDM5MjRiZTFmNjEzZWY0MGEzNzRmNzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9CYXNlL0RPTVV0aWxpdGllcy5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL0RPTVV0aWxpdGllcy5qcwpAQCAtOTAsNyAr
OTAsNyBAQCBXSS5iaW5kSW50ZXJhY3Rpb25zRm9yTm9kZVRvRWxlbWVudCA9IGZ1bmN0aW9uKG5v
ZGUsIGVsZW1lbnQsIG9wdGlvbnMgPSB7fSkgewogICAgIH0KIAogICAgIGVsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigibW91c2VvdmVyIiwgKGV2ZW50KSA9PiB7Ci0gICAgICAgIFdJLmRvbU1hbmFn
ZXIuaGlnaGxpZ2h0RE9NTm9kZShub2RlLmlkLCAiYWxsIik7CisgICAgICAgIG5vZGUuaGlnaGxp
Z2h0KCk7CiAgICAgfSk7CiAKICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0
IiwgKGV2ZW50KSA9PiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9ET01NYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NTWFuYWdlci5qcwppbmRleCA1OTlmMzk4YzE1
MDk2NTE4ZTZkYTE2ZDFmNGUwNTE4MThjNzllNTAyLi5lMGIzNTQ0ODNhYmJmN2E5MzM2NDRmYTY1
ODFiY2JlMTVmZDAwYmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9ET01NYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTU1hbmFnZXIuanMKQEAgLTgyLDYgKzgy
LDM5IEBAIFdJLkRPTU1hbmFnZXIgPSBjbGFzcyBET01NYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0
CiAKICAgICAvLyBTdGF0aWMKIAorICAgIHN0YXRpYyBidWlsZEhpZ2hsaWdodENvbmZpZyhtb2Rl
KQorICAgIHsKKyAgICAgICAgbW9kZSA9IG1vZGUgfHwgImFsbCI7CisKKyAgICAgICAgbGV0IGhp
Z2hsaWdodENvbmZpZyA9IHtzaG93SW5mbzogbW9kZSA9PT0gImFsbCJ9OworCisgICAgICAgIGlm
IChtb2RlID09PSAiYWxsIiB8fCBtb2RlID09PSAiY29udGVudCIpCisgICAgICAgICAgICBoaWdo
bGlnaHRDb25maWcuY29udGVudENvbG9yID0ge3I6IDExMSwgZzogMTY4LCBiOiAyMjAsIGE6IDAu
NjZ9OworCisgICAgICAgIGlmIChtb2RlID09PSAiYWxsIiB8fCBtb2RlID09PSAicGFkZGluZyIp
CisgICAgICAgICAgICBoaWdobGlnaHRDb25maWcucGFkZGluZ0NvbG9yID0ge3I6IDE0NywgZzog
MTk2LCBiOiAxMjUsIGE6IDAuNjZ9OworCisgICAgICAgIGlmIChtb2RlID09PSAiYWxsIiB8fCBt
b2RlID09PSAiYm9yZGVyIikKKyAgICAgICAgICAgIGhpZ2hsaWdodENvbmZpZy5ib3JkZXJDb2xv
ciA9IHtyOiAyNTUsIGc6IDIyOSwgYjogMTUzLCBhOiAwLjY2fTsKKworICAgICAgICBpZiAobW9k
ZSA9PT0gImFsbCIgfHwgbW9kZSA9PT0gIm1hcmdpbiIpCisgICAgICAgICAgICBoaWdobGlnaHRD
b25maWcubWFyZ2luQ29sb3IgPSB7cjogMjQ2LCBnOiAxNzgsIGI6IDEwNywgYTogMC42Nn07CisK
KyAgICAgICAgcmV0dXJuIGhpZ2hsaWdodENvbmZpZzsKKyAgICB9CisKKyAgICBzdGF0aWMgd3Jh
cENsaWVudENhbGxiYWNrKGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgaWYgKCFjYWxsYmFjaykK
KyAgICAgICAgICAgIHJldHVybiBudWxsOworCisgICAgICAgIHJldHVybiBmdW5jdGlvbihlcnJv
ciwgcmVzdWx0KSB7CisgICAgICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICAgICAgY29u
c29sZS5lcnJvcigiRXJyb3IgZHVyaW5nIERPTUFnZW50IG9wZXJhdGlvbjogIiArIGVycm9yKTsK
KyAgICAgICAgICAgIGNhbGxiYWNrKGVycm9yID8gbnVsbCA6IHJlc3VsdCk7CisgICAgICAgIH07
CisgICAgfQorCiAgICAgc3RhdGljIHN1cHBvcnRzRGlzYWJsaW5nRXZlbnRMaXN0ZW5lcnMoKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIEluc3BlY3RvckJhY2tlbmQuaGFzQ29tbWFuZCgiRE9NLnNl
dEV2ZW50TGlzdGVuZXJEaXNhYmxlZCIpOwpAQCAtMjA2LDIxICsyMzksOSBAQCBXSS5ET01NYW5h
Z2VyID0gY2xhc3MgRE9NTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgLy8gUHJpdmF0
ZQogCi0gICAgX3dyYXBDbGllbnRDYWxsYmFjayhjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIGlm
ICghY2FsbGJhY2spCi0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLQotICAgICAgICByZXR1cm4g
ZnVuY3Rpb24oZXJyb3IsIHJlc3VsdCkgewotICAgICAgICAgICAgaWYgKGVycm9yKQotICAgICAg
ICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIkVycm9yIGR1cmluZyBET01BZ2VudCBvcGVyYXRpb246
ICIgKyBlcnJvcik7Ci0gICAgICAgICAgICBjYWxsYmFjayhlcnJvciA/IG51bGwgOiByZXN1bHQp
OwotICAgICAgICB9OwotICAgIH0KLQogICAgIF9kaXNwYXRjaFdoZW5Eb2N1bWVudEF2YWlsYWJs
ZShmdW5jLCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIHZhciBjYWxsYmFja1dyYXBwZXIgPSB0
aGlzLl93cmFwQ2xpZW50Q2FsbGJhY2soY2FsbGJhY2spOworICAgICAgICB2YXIgY2FsbGJhY2tX
cmFwcGVyID0gRE9NTWFuYWdlci53cmFwQ2xpZW50Q2FsbGJhY2soY2FsbGJhY2spOwogCiAgICAg
ICAgIGZ1bmN0aW9uIG9uRG9jdW1lbnRBdmFpbGFibGUoKQogICAgICAgICB7CkBAIC0yODYsNiAr
MzA3LDggQEAgV0kuRE9NTWFuYWdlciA9IGNsYXNzIERPTU1hbmFnZXIgZXh0ZW5kcyBXSS5PYmpl
Y3QKICAgICAgICAgbGV0IHRhcmdldCA9IFdJLmFzc3VtaW5nTWFpblRhcmdldCgpOwogCiAgICAg
ICAgIGZvciAodmFyIG5vZGVJZCBpbiB0aGlzLl9hdHRyaWJ1dGVMb2FkTm9kZUlkcykgeworICAg
ICAgICAgICAgaWYgKCEobm9kZUlkIGluIHRoaXMuX2lkVG9ET01Ob2RlKSkKKyAgICAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgICAgIHZhciBub2RlSWRBc051bWJlciA9IHBhcnNlSW50
KG5vZGVJZCk7CiAgICAgICAgICAgICB0YXJnZXQuRE9NQWdlbnQuZ2V0QXR0cmlidXRlcyhub2Rl
SWRBc051bWJlciwgY2FsbGJhY2suYmluZCh0aGlzLCBub2RlSWRBc051bWJlcikpOwogICAgICAg
ICB9CkBAIC0zMTEsNiArMzM0LDkgQEAgV0kuRE9NTWFuYWdlciA9IGNsYXNzIERPTU1hbmFnZXIg
ZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIF9zZXREb2N1bWVudChwYXlsb2FkKQogICAgIHsKKyAg
ICAgICAgZm9yIChsZXQgbm9kZSBvZiBPYmplY3QudmFsdWVzKHRoaXMuX2lkVG9ET01Ob2RlKSkK
KyAgICAgICAgICAgIG5vZGUubWFya0Rlc3Ryb3llZCgpOworCiAgICAgICAgIHRoaXMuX2lkVG9E
T01Ob2RlID0ge307CiAKICAgICAgICAgZm9yIChsZXQgYnJlYWtwb2ludCBvZiB0aGlzLl9icmVh
a3BvaW50c0ZvckV2ZW50TGlzdGVuZXJzLnZhbHVlcygpKQpAQCAtNDEzLDYgKzQzOSw4IEBAIFdJ
LkRPTU1hbmFnZXIgPSBjbGFzcyBET01NYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICBf
dW5iaW5kKG5vZGUpCiAgICAgeworICAgICAgICBub2RlLm1hcmtEZXN0cm95ZWQoKTsKKwogICAg
ICAgICBkZWxldGUgdGhpcy5faWRUb0RPTU5vZGVbbm9kZS5pZF07CiAKICAgICAgICAgZm9yIChs
ZXQgaSA9IDA7IG5vZGUuY2hpbGRyZW4gJiYgaSA8IG5vZGUuY2hpbGRyZW4ubGVuZ3RoOyArK2kp
CkBAIC00NzEsNDUgKzQ5OSw3IEBAIFdJLkRPTU1hbmFnZXIgPSBjbGFzcyBET01NYW5hZ2VyIGV4
dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHJlbW90ZU9iamVjdC5wdXNoTm9kZVRvRnJvbnRlbmQo
bm9kZUF2YWlsYWJsZS5iaW5kKHRoaXMpKTsKICAgICB9CiAKLSAgICBxdWVyeVNlbGVjdG9yKG5v
ZGVPck5vZGVJZCwgc2VsZWN0b3IsIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgbGV0IG5vZGVJ
ZCA9IG5vZGVPck5vZGVJZCBpbnN0YW5jZW9mIFdJLkRPTU5vZGUgPyBub2RlT3JOb2RlSWQuaWQg
OiBub2RlT3JOb2RlSWQ7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHR5cGVvZiBub2RlSWQgPT09
ICJudW1iZXIiKTsKLQotICAgICAgICBsZXQgdGFyZ2V0ID0gV0kuYXNzdW1pbmdNYWluVGFyZ2V0
KCk7Ci0gICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICJmdW5jdGlvbiIpCi0gICAgICAg
ICAgICB0YXJnZXQuRE9NQWdlbnQucXVlcnlTZWxlY3Rvcihub2RlSWQsIHNlbGVjdG9yLCB0aGlz
Ll93cmFwQ2xpZW50Q2FsbGJhY2soY2FsbGJhY2spKTsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgcmV0dXJuIHRhcmdldC5ET01BZ2VudC5xdWVyeVNlbGVjdG9yKG5vZGVJZCwgc2VsZWN0b3Ip
LnRoZW4oKHtub2RlSWR9KSA9PiBub2RlSWQpOwotICAgIH0KLQotICAgIHF1ZXJ5U2VsZWN0b3JB
bGwobm9kZU9yTm9kZUlkLCBzZWxlY3RvciwgY2FsbGJhY2spCi0gICAgewotICAgICAgICBsZXQg
bm9kZUlkID0gbm9kZU9yTm9kZUlkIGluc3RhbmNlb2YgV0kuRE9NTm9kZSA/IG5vZGVPck5vZGVJ
ZC5pZCA6IG5vZGVPck5vZGVJZDsKLSAgICAgICAgY29uc29sZS5hc3NlcnQodHlwZW9mIG5vZGVJ
ZCA9PT0gIm51bWJlciIpOwotCi0gICAgICAgIGxldCB0YXJnZXQgPSBXSS5hc3N1bWluZ01haW5U
YXJnZXQoKTsKLSAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gImZ1bmN0aW9uIikKLSAg
ICAgICAgICAgIHRhcmdldC5ET01BZ2VudC5xdWVyeVNlbGVjdG9yQWxsKG5vZGVJZCwgc2VsZWN0
b3IsIHRoaXMuX3dyYXBDbGllbnRDYWxsYmFjayhjYWxsYmFjaykpOwotICAgICAgICBlbHNlCi0g
ICAgICAgICAgICByZXR1cm4gdGFyZ2V0LkRPTUFnZW50LnF1ZXJ5U2VsZWN0b3JBbGwobm9kZUlk
LCBzZWxlY3RvcikudGhlbigoe25vZGVJZHN9KSA9PiBub2RlSWRzKTsKLSAgICB9Ci0KLSAgICBo
aWdobGlnaHRET01Ob2RlKG5vZGVJZCwgbW9kZSkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9o
aWRlRE9NTm9kZUhpZ2hsaWdodFRpbWVvdXQpIHsKLSAgICAgICAgICAgIGNsZWFyVGltZW91dCh0
aGlzLl9oaWRlRE9NTm9kZUhpZ2hsaWdodFRpbWVvdXQpOwotICAgICAgICAgICAgdGhpcy5faGlk
ZURPTU5vZGVIaWdobGlnaHRUaW1lb3V0ID0gdW5kZWZpbmVkOwotICAgICAgICB9Ci0KLSAgICAg
ICAgbGV0IHRhcmdldCA9IFdJLmFzc3VtaW5nTWFpblRhcmdldCgpOwotICAgICAgICBpZiAobm9k
ZUlkKQotICAgICAgICAgICAgdGFyZ2V0LkRPTUFnZW50LmhpZ2hsaWdodE5vZGUuaW52b2tlKHtu
b2RlSWQsIGhpZ2hsaWdodENvbmZpZzogdGhpcy5fYnVpbGRIaWdobGlnaHRDb25maWcobW9kZSl9
KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgdGFyZ2V0LkRPTUFnZW50LmhpZGVIaWdobGln
aHQoKTsKLSAgICB9Ci0KLSAgICBoaWdobGlnaHRET01Ob2RlTGlzdChub2RlSWRzLCBtb2RlKQor
ICAgIGhpZ2hsaWdodERPTU5vZGVMaXN0KG5vZGVzLCBtb2RlKQogICAgIHsKICAgICAgICAgbGV0
IHRhcmdldCA9IFdJLmFzc3VtaW5nTWFpblRhcmdldCgpOwogCkBAIC01MjIsNyArNTEyLDE2IEBA
IFdJLkRPTU1hbmFnZXIgPSBjbGFzcyBET01NYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAg
ICAgICAgICB0aGlzLl9oaWRlRE9NTm9kZUhpZ2hsaWdodFRpbWVvdXQgPSB1bmRlZmluZWQ7CiAg
ICAgICAgIH0KIAotICAgICAgICB0YXJnZXQuRE9NQWdlbnQuaGlnaGxpZ2h0Tm9kZUxpc3Qobm9k
ZUlkcywgdGhpcy5fYnVpbGRIaWdobGlnaHRDb25maWcobW9kZSkpOworICAgICAgICBsZXQgbm9k
ZUlkcyA9IFtdOworICAgICAgICBmb3IgKGxldCBub2RlIG9mIG5vZGVzKSB7CisgICAgICAgICAg
ICBjb25zb2xlLmFzc2VydChub2RlIGluc3RhbmNlb2YgV0kuRE9NTm9kZSwgbm9kZSk7CisgICAg
ICAgICAgICBjb25zb2xlLmFzc2VydCghbm9kZS5kZXN0cm95ZWQsIG5vZGUpOworICAgICAgICAg
ICAgaWYgKG5vZGUuZGVzdHJveWVkKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgbm9kZUlkcy5wdXNoKG5vZGUuaWQpOworICAgICAgICB9CisKKyAgICAgICAgdGFyZ2V0
LkRPTUFnZW50LmhpZ2hsaWdodE5vZGVMaXN0KG5vZGVJZHMsIERPTU1hbmFnZXIuYnVpbGRIaWdo
bGlnaHRDb25maWcobW9kZSkpOwogICAgIH0KIAogICAgIGhpZ2hsaWdodFNlbGVjdG9yKHNlbGVj
dG9yVGV4dCwgZnJhbWVJZCwgbW9kZSkKQEAgLTUzOCw3ICs1MzcsNyBAQCBXSS5ET01NYW5hZ2Vy
ID0gY2xhc3MgRE9NTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgdGhpcy5f
aGlkZURPTU5vZGVIaWdobGlnaHRUaW1lb3V0ID0gdW5kZWZpbmVkOwogICAgICAgICB9CiAKLSAg
ICAgICAgdGFyZ2V0LkRPTUFnZW50LmhpZ2hsaWdodFNlbGVjdG9yKHRoaXMuX2J1aWxkSGlnaGxp
Z2h0Q29uZmlnKG1vZGUpLCBzZWxlY3RvclRleHQsIGZyYW1lSWQpOworICAgICAgICB0YXJnZXQu
RE9NQWdlbnQuaGlnaGxpZ2h0U2VsZWN0b3IoRE9NTWFuYWdlci5idWlsZEhpZ2hsaWdodENvbmZp
Zyhtb2RlKSwgc2VsZWN0b3JUZXh0LCBmcmFtZUlkKTsKICAgICB9CiAKICAgICBoaWdobGlnaHRS
ZWN0KHJlY3QsIHVzZVBhZ2VDb29yZGluYXRlcykKQEAgLTU1NywxMiArNTU2LDE4IEBAIFdJLkRP
TU1hbmFnZXIgPSBjbGFzcyBET01NYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICBoaWRl
RE9NTm9kZUhpZ2hsaWdodCgpCiAgICAgewotICAgICAgICB0aGlzLmhpZ2hsaWdodERPTU5vZGUo
MCk7CisgICAgICAgIGxldCB0YXJnZXQgPSBXSS5hc3N1bWluZ01haW5UYXJnZXQoKTsKKyAgICAg
ICAgdGFyZ2V0LkRPTUFnZW50LmhpZGVIaWdobGlnaHQoKTsKICAgICB9CiAKICAgICBoaWdobGln
aHRET01Ob2RlRm9yVHdvU2Vjb25kcyhub2RlSWQpCiAgICAgewotICAgICAgICB0aGlzLmhpZ2hs
aWdodERPTU5vZGUobm9kZUlkKTsKKyAgICAgICAgbGV0IG5vZGUgPSB0aGlzLl9pZFRvRE9NTm9k
ZVtub2RlSWRdOworICAgICAgICBpZiAoIW5vZGUpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgbm9kZS5oaWdobGlnaHQoKTsKKwogICAgICAgICB0aGlzLl9oaWRlRE9NTm9kZUhpZ2hs
aWdodFRpbWVvdXQgPSBzZXRUaW1lb3V0KHRoaXMuaGlkZURPTU5vZGVIaWdobGlnaHQuYmluZCh0
aGlzKSwgMjAwMCk7CiAgICAgfQogCkBAIC01NzksNyArNTg0LDcgQEAgV0kuRE9NTWFuYWdlciA9
IGNsYXNzIERPTU1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgbGV0IHRhcmdldCA9
IFdJLmFzc3VtaW5nTWFpblRhcmdldCgpOwogICAgICAgICBsZXQgY29tbWFuZEFyZ3VtZW50cyA9
IHsKICAgICAgICAgICAgIGVuYWJsZWQsCi0gICAgICAgICAgICBoaWdobGlnaHRDb25maWc6IHRo
aXMuX2J1aWxkSGlnaGxpZ2h0Q29uZmlnKCksCisgICAgICAgICAgICBoaWdobGlnaHRDb25maWc6
IERPTU1hbmFnZXIuYnVpbGRIaWdobGlnaHRDb25maWcoKSwKICAgICAgICAgICAgIHNob3dSdWxl
cnM6IFdJLnNldHRpbmdzLnNob3dSdWxlcnNEdXJpbmdFbGVtZW50U2VsZWN0aW9uLnZhbHVlLAog
ICAgICAgICB9OwogICAgICAgICB0YXJnZXQuRE9NQWdlbnQuc2V0SW5zcGVjdE1vZGVFbmFibGVk
Lmludm9rZShjb21tYW5kQXJndW1lbnRzLCAoZXJyb3IpID0+IHsKQEAgLTU5NCw2ICs1OTksMTAg
QEAgV0kuRE9NTWFuYWdlciA9IGNsYXNzIERPTU1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAg
ICAgICAgaWYgKG5vZGUgPT09IHRoaXMuX2luc3BlY3RlZE5vZGUpCiAgICAgICAgICAgICByZXR1
cm47CiAKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIW5vZGUuZGVzdHJveWVkLCBub2RlKTsKKyAg
ICAgICAgaWYgKG5vZGUuZGVzdHJveWVkKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAg
IGxldCBjYWxsYmFjayA9IChlcnJvcikgPT4gewogICAgICAgICAgICAgY29uc29sZS5hc3NlcnQo
IWVycm9yLCBlcnJvcik7CiAgICAgICAgICAgICBpZiAoZXJyb3IpCkBAIC02MzMsMTAgKzY0Miw3
IEBAIFdJLkRPTU1hbmFnZXIgPSBjbGFzcyBET01NYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAg
ICAgc2V0RXZlbnRMaXN0ZW5lckRpc2FibGVkKGV2ZW50TGlzdGVuZXIsIGRpc2FibGVkKQogICAg
IHsKICAgICAgICAgbGV0IHRhcmdldCA9IFdJLmFzc3VtaW5nTWFpblRhcmdldCgpOwotICAgICAg
ICB0YXJnZXQuRE9NQWdlbnQuc2V0RXZlbnRMaXN0ZW5lckRpc2FibGVkKGV2ZW50TGlzdGVuZXIu
ZXZlbnRMaXN0ZW5lcklkLCBkaXNhYmxlZCwgKGVycm9yKSA9PiB7Ci0gICAgICAgICAgICBpZiAo
ZXJyb3IpCi0gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7Ci0gICAgICAgIH0p
OworICAgICAgICB0YXJnZXQuRE9NQWdlbnQuc2V0RXZlbnRMaXN0ZW5lckRpc2FibGVkKGV2ZW50
TGlzdGVuZXIuZXZlbnRMaXN0ZW5lcklkLCBkaXNhYmxlZCk7CiAgICAgfQogCiAgICAgc2V0QnJl
YWtwb2ludEZvckV2ZW50TGlzdGVuZXIoZXZlbnRMaXN0ZW5lcikKQEAgLTY5MCwyNSArNjk2LDYg
QEAgV0kuRE9NTWFuYWdlciA9IGNsYXNzIERPTU1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAog
ICAgIC8vIFByaXZhdGUKIAotICAgIF9idWlsZEhpZ2hsaWdodENvbmZpZyhtb2RlID0gImFsbCIp
Ci0gICAgewotICAgICAgICBsZXQgaGlnaGxpZ2h0Q29uZmlnID0ge3Nob3dJbmZvOiBtb2RlID09
PSAiYWxsIn07Ci0KLSAgICAgICAgaWYgKG1vZGUgPT09ICJhbGwiIHx8IG1vZGUgPT09ICJjb250
ZW50IikKLSAgICAgICAgICAgIGhpZ2hsaWdodENvbmZpZy5jb250ZW50Q29sb3IgPSB7cjogMTEx
LCBnOiAxNjgsIGI6IDIyMCwgYTogMC42Nn07Ci0KLSAgICAgICAgaWYgKG1vZGUgPT09ICJhbGwi
IHx8IG1vZGUgPT09ICJwYWRkaW5nIikKLSAgICAgICAgICAgIGhpZ2hsaWdodENvbmZpZy5wYWRk
aW5nQ29sb3IgPSB7cjogMTQ3LCBnOiAxOTYsIGI6IDEyNSwgYTogMC42Nn07Ci0KLSAgICAgICAg
aWYgKG1vZGUgPT09ICJhbGwiIHx8IG1vZGUgPT09ICJib3JkZXIiKQotICAgICAgICAgICAgaGln
aGxpZ2h0Q29uZmlnLmJvcmRlckNvbG9yID0ge3I6IDI1NSwgZzogMjI5LCBiOiAxNTMsIGE6IDAu
NjZ9OwotCi0gICAgICAgIGlmIChtb2RlID09PSAiYWxsIiB8fCBtb2RlID09PSAibWFyZ2luIikK
LSAgICAgICAgICAgIGhpZ2hsaWdodENvbmZpZy5tYXJnaW5Db2xvciA9IHtyOiAyNDYsIGc6IDE3
OCwgYjogMTA3LCBhOiAwLjY2fTsKLQotICAgICAgICByZXR1cm4gaGlnaGxpZ2h0Q29uZmlnOwot
ICAgIH0KLQogICAgIF91cGRhdGVFdmVudEJyZWFrcG9pbnQoYnJlYWtwb2ludCwgdGFyZ2V0KQog
ICAgIHsKICAgICAgICAgbGV0IGV2ZW50TGlzdGVuZXIgPSBicmVha3BvaW50LmV2ZW50TGlzdGVu
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvQXVkaXRUZXN0Q2FzZVJlc3VsdC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9BdWRpdFRlc3RDYXNlUmVzdWx0LmpzCmluZGV4IGVjMTcxZGI4MTU2ODc0
N2FmODNlMjc5N2Q3ZTc5ZDExOTAxNmRlYzcuLmM5Y2MzOTYyZTgwZmI2NmZlMTVkYTEzNTRlYTI5
MjZiZjg0MWNkY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9BdWRpdFRlc3RDYXNlUmVzdWx0LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9BdWRpdFRlc3RDYXNlUmVzdWx0LmpzCkBAIC0xNDQs
NyArMTQ0LDcgQEAgV0kuQXVkaXRUZXN0Q2FzZVJlc3VsdCA9IGNsYXNzIEF1ZGl0VGVzdENhc2VS
ZXN1bHQgZXh0ZW5kcyBXSS5BdWRpdFRlc3RSZXN1bHRCYXMKICAgICAgICAgICAgICAgICAgICAg
ICAgIG9wdGlvbnMucmVzb2x2ZWRET01Ob2RlcyA9IGF3YWl0IFByb21pc2UuYWxsKHBheWxvYWQu
ZGF0YS5kb21Ob2Rlcy5tYXAoYXN5bmMgKGRvbU5vZGVTdHJpbmcpID0+IHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgbm9kZUlkID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlSWQgPSBhd2Fp
dCBXSS5kb21NYW5hZ2VyLnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnROb2RlLCBkb21Ob2RlU3RyaW5n
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUlkID0gYXdhaXQgZG9jdW1l
bnROb2RlLnF1ZXJ5U2VsZWN0b3IoZG9tTm9kZVN0cmluZyk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSBjYXRjaCB7IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
V0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKSB8fCBudWxsOwogICAgICAgICAgICAgICAg
ICAgICAgICAgfSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL0RPTU5vZGUuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvRE9NTm9kZS5qcwppbmRleCBkZDNjMmE1NTljZjQ3ZDU4ZmZkNGI2MzhlYWM5
ZDFhOWMxMDMxNjhmLi4yM2Q5YjZkZjQzOGY5NjA2N2VlZTNlNmQ5NjM1YWEyZDQ4NDkyYzVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9N
Tm9kZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
RE9NTm9kZS5qcwpAQCAtMzYsNiArMzYsOCBAQCBXSS5ET01Ob2RlID0gY2xhc3MgRE9NTm9kZSBl
eHRlbmRzIFdJLk9iamVjdAogICAgIHsKICAgICAgICAgc3VwZXIoKTsKIAorICAgICAgICB0aGlz
Ll9kZXN0cm95ZWQgPSBmYWxzZTsKKwogICAgICAgICB0aGlzLl9kb21NYW5hZ2VyID0gZG9tTWFu
YWdlcjsKICAgICAgICAgdGhpcy5faXNJblNoYWRvd1RyZWUgPSBpc0luU2hhZG93VHJlZTsKIApA
QCAtMTg4LDEyICsxOTAsMTYgQEAgV0kuRE9NTm9kZSA9IGNsYXNzIERPTU5vZGUgZXh0ZW5kcyBX
SS5PYmplY3QKIAogICAgIC8vIFB1YmxpYwogCisgICAgZ2V0IGRlc3Ryb3llZCgpIHsgcmV0dXJu
IHRoaXMuX2Rlc3Ryb3llZDsgfQogICAgIGdldCBmcmFtZSgpIHsgcmV0dXJuIHRoaXMuX2ZyYW1l
OyB9CiAgICAgZ2V0IGRvbUV2ZW50cygpIHsgcmV0dXJuIHRoaXMuX2RvbUV2ZW50czsgfQogICAg
IGdldCBwb3dlckVmZmljaWVudFBsYXliYWNrUmFuZ2VzKCkgeyByZXR1cm4gdGhpcy5fcG93ZXJF
ZmZpY2llbnRQbGF5YmFja1JhbmdlczsgfQogCiAgICAgZ2V0IGF0dGFjaGVkKCkKICAgICB7Cisg
ICAgICAgIGlmICh0aGlzLl9kZXN0cm95ZWQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisK
ICAgICAgICAgZm9yIChsZXQgbm9kZSA9IHRoaXM7IG5vZGU7IG5vZGUgPSBub2RlLnBhcmVudE5v
ZGUpIHsKICAgICAgICAgICAgIGlmIChub2RlLm93bmVyRG9jdW1lbnQgPT09IG5vZGUpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0yODQsNiArMjkwLDEyIEBAIFdJLkRPTU5vZGUg
PSBjbGFzcyBET01Ob2RlIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRoaXMuX2NoaWxkTm9k
ZUNvdW50ID0gY291bnQ7CiAgICAgfQogCisgICAgbWFya0Rlc3Ryb3llZCgpCisgICAgeworICAg
ICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fZGVzdHJveWVkLCB0aGlzKTsKKyAgICAgICAgdGhp
cy5fZGVzdHJveWVkID0gdHJ1ZTsKKyAgICB9CisKICAgICBjb21wdXRlZFJvbGUoKQogICAgIHsK
ICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbXB1dGVkUm9sZTsKQEAgLTM3OCw2ICszOTAsMTIgQEAg
V0kuRE9NTm9kZSA9IGNsYXNzIERPTU5vZGUgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIHNldE5v
ZGVOYW1lKG5hbWUsIGNhbGxiYWNrKQogICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIXRo
aXMuX2Rlc3Ryb3llZCwgdGhpcyk7CisgICAgICAgIGlmICh0aGlzLl9kZXN0cm95ZWQpIHsKKyAg
ICAgICAgICAgIGNhbGxiYWNrKCJFUlJPUjogbm9kZSBpcyBkZXN0cm95ZWQiKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCiAgICAgICAgIGxldCB0YXJnZXQgPSBXSS5hc3N1bWlu
Z01haW5UYXJnZXQoKTsKICAgICAgICAgdGFyZ2V0LkRPTUFnZW50LnNldE5vZGVOYW1lKHRoaXMu
aWQsIG5hbWUsIHRoaXMuX21ha2VVbmRvYWJsZUNhbGxiYWNrKGNhbGxiYWNrKSk7CiAgICAgfQpA
QCAtNDM0LDYgKzQ1MiwxMiBAQCBXSS5ET01Ob2RlID0gY2xhc3MgRE9NTm9kZSBleHRlbmRzIFdJ
Lk9iamVjdAogCiAgICAgc2V0Tm9kZVZhbHVlKHZhbHVlLCBjYWxsYmFjaykKICAgICB7CisgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9kZXN0cm95ZWQsIHRoaXMpOworICAgICAgICBpZiAo
dGhpcy5fZGVzdHJveWVkKSB7CisgICAgICAgICAgICBjYWxsYmFjaygiRVJST1I6IG5vZGUgaXMg
ZGVzdHJveWVkIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBs
ZXQgdGFyZ2V0ID0gV0kuYXNzdW1pbmdNYWluVGFyZ2V0KCk7CiAgICAgICAgIHRhcmdldC5ET01B
Z2VudC5zZXROb2RlVmFsdWUodGhpcy5pZCwgdmFsdWUsIHRoaXMuX21ha2VVbmRvYWJsZUNhbGxi
YWNrKGNhbGxiYWNrKSk7CiAgICAgfQpAQCAtNDQ2LDEyICs0NzAsMjQgQEAgV0kuRE9NTm9kZSA9
IGNsYXNzIERPTU5vZGUgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIHNldEF0dHJpYnV0ZShuYW1l
LCB0ZXh0LCBjYWxsYmFjaykKICAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9k
ZXN0cm95ZWQsIHRoaXMpOworICAgICAgICBpZiAodGhpcy5fZGVzdHJveWVkKSB7CisgICAgICAg
ICAgICBjYWxsYmFjaygiRVJST1I6IG5vZGUgaXMgZGVzdHJveWVkIik7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBsZXQgdGFyZ2V0ID0gV0kuYXNzdW1pbmdNYWlu
VGFyZ2V0KCk7CiAgICAgICAgIHRhcmdldC5ET01BZ2VudC5zZXRBdHRyaWJ1dGVzQXNUZXh0KHRo
aXMuaWQsIHRleHQsIG5hbWUsIHRoaXMuX21ha2VVbmRvYWJsZUNhbGxiYWNrKGNhbGxiYWNrKSk7
CiAgICAgfQogCiAgICAgc2V0QXR0cmlidXRlVmFsdWUobmFtZSwgdmFsdWUsIGNhbGxiYWNrKQog
ICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX2Rlc3Ryb3llZCwgdGhpcyk7Cisg
ICAgICAgIGlmICh0aGlzLl9kZXN0cm95ZWQpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKCJFUlJP
Ujogbm9kZSBpcyBkZXN0cm95ZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CiAgICAgICAgIGxldCB0YXJnZXQgPSBXSS5hc3N1bWluZ01haW5UYXJnZXQoKTsKICAgICAgICAg
dGFyZ2V0LkRPTUFnZW50LnNldEF0dHJpYnV0ZVZhbHVlKHRoaXMuaWQsIG5hbWUsIHZhbHVlLCB0
aGlzLl9tYWtlVW5kb2FibGVDYWxsYmFjayhjYWxsYmFjaykpOwogICAgIH0KQEAgLTQ2Myw2ICs0
OTksMTIgQEAgV0kuRE9NTm9kZSA9IGNsYXNzIERPTU5vZGUgZXh0ZW5kcyBXSS5PYmplY3QKIAog
ICAgIHJlbW92ZUF0dHJpYnV0ZShuYW1lLCBjYWxsYmFjaykKICAgICB7CisgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KCF0aGlzLl9kZXN0cm95ZWQsIHRoaXMpOworICAgICAgICBpZiAodGhpcy5fZGVz
dHJveWVkKSB7CisgICAgICAgICAgICBjYWxsYmFjaygiRVJST1I6IG5vZGUgaXMgZGVzdHJveWVk
Iik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBmdW5jdGlvbiBt
eWNhbGxiYWNrKGVycm9yLCBzdWNjZXNzKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIWVy
cm9yKSB7CkBAIC01MDUsNiArNTQ3LDYwIEBAIFdJLkRPTU5vZGUgPSBjbGFzcyBET01Ob2RlIGV4
dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIH0pOwogICAgIH0KIAorICAgIHF1ZXJ5U2VsZWN0b3Io
c2VsZWN0b3IsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMu
X2Rlc3Ryb3llZCwgdGhpcyk7CisKKyAgICAgICAgbGV0IHRhcmdldCA9IFdJLmFzc3VtaW5nTWFp
blRhcmdldCgpOworCisgICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICJmdW5jdGlvbiIp
IHsKKyAgICAgICAgICAgIGlmICh0aGlzLl9kZXN0cm95ZWQpCisgICAgICAgICAgICAgICAgcmV0
dXJuIFByb21pc2UucmVqZWN0KCJFUlJPUjogbm9kZSBpcyBkZXN0cm95ZWQiKTsKKyAgICAgICAg
ICAgIHJldHVybiB0YXJnZXQuRE9NQWdlbnQucXVlcnlTZWxlY3Rvcih0aGlzLmlkLCBzZWxlY3Rv
cikudGhlbigoe25vZGVJZH0pID0+IG5vZGVJZCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAo
dGhpcy5fZGVzdHJveWVkKSB7CisgICAgICAgICAgICBjYWxsYmFjaygiRVJST1I6IG5vZGUgaXMg
ZGVzdHJveWVkIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB0
YXJnZXQuRE9NQWdlbnQucXVlcnlTZWxlY3Rvcih0aGlzLmlkLCBzZWxlY3RvciwgV0kuRE9NTWFu
YWdlci53cmFwQ2xpZW50Q2FsbGJhY2soY2FsbGJhY2spKTsKKyAgICB9CisKKyAgICBxdWVyeVNl
bGVjdG9yQWxsKHNlbGVjdG9yLCBjYWxsYmFjaykKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KCF0aGlzLl9kZXN0cm95ZWQsIHRoaXMpOworCisgICAgICAgIGxldCB0YXJnZXQgPSBXSS5h
c3N1bWluZ01haW5UYXJnZXQoKTsKKworICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAi
ZnVuY3Rpb24iKSB7CisgICAgICAgICAgICBpZiAodGhpcy5fZGVzdHJveWVkKQorICAgICAgICAg
ICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgiRVJST1I6IG5vZGUgaXMgZGVzdHJveWVkIik7
CisgICAgICAgICAgICByZXR1cm4gdGFyZ2V0LkRPTUFnZW50LnF1ZXJ5U2VsZWN0b3JBbGwodGhp
cy5pZCwgc2VsZWN0b3IpLnRoZW4oKHtub2RlSWRzfSkgPT4gbm9kZUlkcyk7CisgICAgICAgIH0K
KworICAgICAgICBpZiAodGhpcy5fZGVzdHJveWVkKSB7CisgICAgICAgICAgICBjYWxsYmFjaygi
RVJST1I6IG5vZGUgaXMgZGVzdHJveWVkIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICB0YXJnZXQuRE9NQWdlbnQucXVlcnlTZWxlY3RvckFsbCh0aGlzLmlkLCBz
ZWxlY3RvciwgV0kuRE9NTWFuYWdlci53cmFwQ2xpZW50Q2FsbGJhY2soY2FsbGJhY2spKTsKKyAg
ICB9CisKKyAgICBoaWdobGlnaHQobW9kZSkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9kZXN0
cm95ZWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKHRoaXMuX2hpZGVET01O
b2RlSGlnaGxpZ2h0VGltZW91dCkgeworICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2hp
ZGVET01Ob2RlSGlnaGxpZ2h0VGltZW91dCk7CisgICAgICAgICAgICB0aGlzLl9oaWRlRE9NTm9k
ZUhpZ2hsaWdodFRpbWVvdXQgPSB1bmRlZmluZWQ7CisgICAgICAgIH0KKworICAgICAgICBsZXQg
dGFyZ2V0ID0gV0kuYXNzdW1pbmdNYWluVGFyZ2V0KCk7CisgICAgICAgIHRhcmdldC5ET01BZ2Vu
dC5oaWdobGlnaHROb2RlKFdJLkRPTU1hbmFnZXIuYnVpbGRIaWdobGlnaHRDb25maWcobW9kZSks
IHRoaXMuaWQpOworICAgIH0KKwogICAgIHNjcm9sbEludG9WaWV3KCkKICAgICB7CiAgICAgICAg
IFdJLlJlbW90ZU9iamVjdC5yZXNvbHZlTm9kZSh0aGlzKS50aGVuKChvYmplY3QpID0+IHsKQEAg
LTUyNSw2ICs2MjEsMTEgQEAgV0kuRE9NTm9kZSA9IGNsYXNzIERPTU5vZGUgZXh0ZW5kcyBXSS5P
YmplY3QKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCisgICAgICAgIGlmICh0aGlz
Ll9kZXN0cm95ZWQpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKHRoaXMuY2hpbGRyZW4pOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKICAgICAgICAgZnVuY3Rpb24gbXljYWxsYmFj
ayhlcnJvcikgewogICAgICAgICAgICAgaWYgKCFlcnJvciAmJiBjYWxsYmFjaykKICAgICAgICAg
ICAgICAgICBjYWxsYmFjayh0aGlzLmNoaWxkcmVuKTsKQEAgLTUzNiw2ICs2MzcsMTEgQEAgV0ku
RE9NTm9kZSA9IGNsYXNzIERPTU5vZGUgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIGdldFN1YnRy
ZWUoZGVwdGgsIGNhbGxiYWNrKQogICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2Rlc3Ryb3llZCkg
eworICAgICAgICAgICAgY2FsbGJhY2sodGhpcy5jaGlsZHJlbik7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKwogICAgICAgICBmdW5jdGlvbiBteWNhbGxiYWNrKGVycm9yKQogICAg
ICAgICB7CiAgICAgICAgICAgICBpZiAoY2FsbGJhY2spCkBAIC01NDgsMjEgKzY1NCw0MiBAQCBX
SS5ET01Ob2RlID0gY2xhc3MgRE9NTm9kZSBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgZ2V0T3V0
ZXJIVE1MKGNhbGxiYWNrKQogICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX2Rl
c3Ryb3llZCwgdGhpcyk7CisKICAgICAgICAgbGV0IHRhcmdldCA9IFdJLmFzc3VtaW5nTWFpblRh
cmdldCgpOwotICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAiZnVuY3Rpb24iKQotICAg
ICAgICAgICAgdGFyZ2V0LkRPTUFnZW50LmdldE91dGVySFRNTCh0aGlzLmlkLCBjYWxsYmFjayk7
Ci0gICAgICAgIGVsc2UKKworICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAiZnVuY3Rp
b24iKSB7CisgICAgICAgICAgICBpZiAodGhpcy5fZGVzdHJveWVkKQorICAgICAgICAgICAgICAg
IHJldHVybiBQcm9taXNlLnJlamVjdCgiRVJST1I6IG5vZGUgaXMgZGVzdHJveWVkIik7CiAgICAg
ICAgICAgICByZXR1cm4gdGFyZ2V0LkRPTUFnZW50LmdldE91dGVySFRNTCh0aGlzLmlkKS50aGVu
KCh7b3V0ZXJIVE1MfSkgPT4gb3V0ZXJIVE1MKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0
aGlzLl9kZXN0cm95ZWQpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKCJFUlJPUjogbm9kZSBpcyBk
ZXN0cm95ZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRh
cmdldC5ET01BZ2VudC5nZXRPdXRlckhUTUwodGhpcy5pZCwgY2FsbGJhY2spOwogICAgIH0KIAog
ICAgIHNldE91dGVySFRNTChodG1sLCBjYWxsYmFjaykKICAgICB7CisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KCF0aGlzLl9kZXN0cm95ZWQsIHRoaXMpOworICAgICAgICBpZiAodGhpcy5fZGVzdHJv
eWVkKSB7CisgICAgICAgICAgICBjYWxsYmFjaygiRVJST1I6IG5vZGUgaXMgZGVzdHJveWVkIik7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBsZXQgdGFyZ2V0ID0g
V0kuYXNzdW1pbmdNYWluVGFyZ2V0KCk7CiAgICAgICAgIHRhcmdldC5ET01BZ2VudC5zZXRPdXRl
ckhUTUwodGhpcy5pZCwgaHRtbCwgdGhpcy5fbWFrZVVuZG9hYmxlQ2FsbGJhY2soY2FsbGJhY2sp
KTsKICAgICB9CiAKICAgICBpbnNlcnRBZGphY2VudEhUTUwocG9zaXRpb24sIGh0bWwpCiAgICAg
eworICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fZGVzdHJveWVkLCB0aGlzKTsKKyAgICAg
ICAgaWYgKHRoaXMuX2Rlc3Ryb3llZCkKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICBp
ZiAodGhpcy5ub2RlVHlwZSgpICE9PSBOb2RlLkVMRU1FTlRfTk9ERSkKICAgICAgICAgICAgIHJl
dHVybjsKIApAQCAtNTg2LDEyICs3MTMsMjQgQEAgV0kuRE9NTm9kZSA9IGNsYXNzIERPTU5vZGUg
ZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIHJlbW92ZU5vZGUoY2FsbGJhY2spCiAgICAgeworICAg
ICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fZGVzdHJveWVkLCB0aGlzKTsKKyAgICAgICAgaWYg
KHRoaXMuX2Rlc3Ryb3llZCkgeworICAgICAgICAgICAgY2FsbGJhY2soIkVSUk9SOiBub2RlIGlz
IGRlc3Ryb3llZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKICAgICAgICAg
bGV0IHRhcmdldCA9IFdJLmFzc3VtaW5nTWFpblRhcmdldCgpOwogICAgICAgICB0YXJnZXQuRE9N
QWdlbnQucmVtb3ZlTm9kZSh0aGlzLmlkLCB0aGlzLl9tYWtlVW5kb2FibGVDYWxsYmFjayhjYWxs
YmFjaykpOwogICAgIH0KIAogICAgIGdldEV2ZW50TGlzdGVuZXJzKGNhbGxiYWNrKQogICAgIHsK
KyAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX2Rlc3Ryb3llZCwgdGhpcyk7CisgICAgICAg
IGlmICh0aGlzLl9kZXN0cm95ZWQpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKCJFUlJPUjogbm9k
ZSBpcyBkZXN0cm95ZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCiAgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KFdJLmRvbU1hbmFnZXIuaW5zcGVjdGVkTm9kZSA9PT0gdGhpcyk7
CiAKICAgICAgICAgbGV0IHRhcmdldCA9IFdJLmFzc3VtaW5nTWFpblRhcmdldCgpOwpAQCAtNjAw
LDYgKzczOSwxMiBAQCBXSS5ET01Ob2RlID0gY2xhc3MgRE9NTm9kZSBleHRlbmRzIFdJLk9iamVj
dAogCiAgICAgYWNjZXNzaWJpbGl0eVByb3BlcnRpZXMoY2FsbGJhY2spCiAgICAgeworICAgICAg
ICBjb25zb2xlLmFzc2VydCghdGhpcy5fZGVzdHJveWVkLCB0aGlzKTsKKyAgICAgICAgaWYgKHRo
aXMuX2Rlc3Ryb3llZCkgeworICAgICAgICAgICAgY2FsbGJhY2soe30pOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKICAgICAgICAgZnVuY3Rpb24gYWNjZXNzaWJpbGl0eVByb3Bl
cnRpZXNDYWxsYmFjayhlcnJvciwgYWNjZXNzaWJpbGl0eVByb3BlcnRpZXMpCiAgICAgICAgIHsK
ICAgICAgICAgICAgIGlmICghZXJyb3IgJiYgY2FsbGJhY2sgJiYgYWNjZXNzaWJpbGl0eVByb3Bl
cnRpZXMpIHsKQEAgLTkxNSw2ICsxMDYwLDEyIEBAIFdJLkRPTU5vZGUgPSBjbGFzcyBET01Ob2Rl
IGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICBtb3ZlVG8odGFyZ2V0Tm9kZSwgYW5jaG9yTm9kZSwg
Y2FsbGJhY2spCiAgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fZGVzdHJveWVk
LCB0aGlzKTsKKyAgICAgICAgaWYgKHRoaXMuX2Rlc3Ryb3llZCkgeworICAgICAgICAgICAgY2Fs
bGJhY2soIkVSUk9SOiBub2RlIGlzIGRlc3Ryb3llZCIpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKICAgICAgICAgbGV0IHRhcmdldCA9IFdJLmFzc3VtaW5nTWFpblRhcmdldCgp
OwogICAgICAgICB0YXJnZXQuRE9NQWdlbnQubW92ZVRvKHRoaXMuaWQsIHRhcmdldE5vZGUuaWQs
IGFuY2hvck5vZGUgPyBhbmNob3JOb2RlLmlkIDogdW5kZWZpbmVkLCB0aGlzLl9tYWtlVW5kb2Fi
bGVDYWxsYmFjayhjYWxsYmFjaykpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9NZWRpYVRpbWVsaW5lUmVjb3JkLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL01lZGlhVGltZWxpbmVSZWNv
cmQuanMKaW5kZXggZjNhMDc1YWUzM2JmZDhlYzExOGRiYmQyM2YxNWZkZGE1ZjY5YzlhZS4uNWRl
ODlhM2Q3OWMxNTg3OTE4ZmM5NDNhN2Y4ZjNmNjBmMTM3N2NjMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL01lZGlhVGltZWxpbmVSZWNvcmQu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL01lZGlh
VGltZWxpbmVSZWNvcmQuanMKQEAgLTY0LDcgKzY0LDcgQEAgV0kuTWVkaWFUaW1lbGluZVJlY29y
ZCA9IGNsYXNzIE1lZGlhVGltZWxpbmVSZWNvcmQgZXh0ZW5kcyBXSS5UaW1lbGluZVJlY29yZAog
ICAgICAgICBsZXQgZG9tTm9kZSA9IG51bGw7CiAgICAgICAgIGlmIChkb2N1bWVudE5vZGUgJiYg
ZG9tTm9kZUNTU1BhdGgpIHsKICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgbGV0
IG5vZGVJZCA9IGF3YWl0IFdJLmRvbU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUs
IGRvbU5vZGVDU1NQYXRoKTsKKyAgICAgICAgICAgICAgICBsZXQgbm9kZUlkID0gYXdhaXQgZG9j
dW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoZG9tTm9kZUNTU1BhdGgpOwogICAgICAgICAgICAgICAg
IGlmIChub2RlSWQpCiAgICAgICAgICAgICAgICAgICAgIGRvbU5vZGUgPSBXSS5kb21NYW5hZ2Vy
Lm5vZGVGb3JJZChub2RlSWQpOwogICAgICAgICAgICAgfSBjYXRjaCB7IH0KQEAgLTg0LDcgKzg0
LDcgQEAgV0kuTWVkaWFUaW1lbGluZVJlY29yZCA9IGNsYXNzIE1lZGlhVGltZWxpbmVSZWNvcmQg
ZXh0ZW5kcyBXSS5UaW1lbGluZVJlY29yZAogICAgICAgICAgICAgICAgIGlmIChpdGVtLnR5cGUg
PT09IE1lZGlhVGltZWxpbmVSZWNvcmQuVGltZXN0YW1wVHlwZS5NZWRpYUVsZW1lbnRET01FdmVu
dCkgewogICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnROb2RlICYmIGl0ZW0ub3JpZ2lu
YXRvckNTU1BhdGgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IG5vZGVJZCA9IGF3YWl0IFdJLmRvbU1hbmFnZXIucXVlcnlT
ZWxlY3Rvcihkb2N1bWVudE5vZGUsIGl0ZW0ub3JpZ2luYXRvckNTU1BhdGgpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxldCBub2RlSWQgPSBhd2FpdCBkb2N1bWVudE5vZGUucXVlcnlT
ZWxlY3RvcihpdGVtLm9yaWdpbmF0b3JDU1NQYXRoKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAobm9kZUlkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLm9y
aWdpbmF0b3IgPSBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChub2RlSWQpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgfSBjYXRjaCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL1JlbW90ZU9iamVjdC5qcwppbmRleCA5ZDU1
MmRhY2M0OTg3MjkzOGQ0NjcwOTJkN2E4NzA2ZTBmZjM4MzlkLi4zODNjY2NjODdlOGY0ZDdmMjhl
ZDYwZTJhZTMwZmJkMDU1MWMyMTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Qcm90b2NvbC9SZW1vdGVPYmplY3QuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvUmVtb3RlT2JqZWN0LmpzCkBAIC0xNDMs
NiArMTQzLDExIEBAIFdJLlJlbW90ZU9iamVjdCA9IGNsYXNzIFJlbW90ZU9iamVjdAogCiAgICAg
c3RhdGljIHJlc29sdmVOb2RlKG5vZGUsIG9iamVjdEdyb3VwKQogICAgIHsKKyAgICAgICAgY29u
c29sZS5hc3NlcnQobm9kZSBpbnN0YW5jZW9mIFdJLkRPTU5vZGUsIG5vZGUpOworCisgICAgICAg
IGlmIChub2RlLmRlc3Ryb3llZCkKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgi
RVJST1I6IG5vZGUgaXMgZGVzdHJveWVkIik7CisKICAgICAgICAgbGV0IHRhcmdldCA9IFdJLmFz
c3VtaW5nTWFpblRhcmdldCgpOwogICAgICAgICByZXR1cm4gdGFyZ2V0LkRPTUFnZW50LnJlc29s
dmVOb2RlKG5vZGUuaWQsIG9iamVjdEdyb3VwKQogICAgICAgICAgICAgLnRoZW4oKHtvYmplY3R9
KSA9PiBXSS5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQob2JqZWN0LCBXSS5tYWluVGFyZ2V0KSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9C
b3hNb2RlbERldGFpbHNTZWN0aW9uUm93LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQm94TW9kZWxEZXRhaWxzU2VjdGlvblJvdy5qcwppbmRleCBjOGNmYzQx
MmI1OTBhYTVlNzllMjIwOTJiOGExZDRjZDhkZmMwZjJiLi4wNGI4M2YwZGE2MjBmZWQ5NDZkODk1
NWUxZWM2ODkzZGY2ODIyODFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9Cb3hNb2RlbERldGFpbHNTZWN0aW9uUm93LmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0JveE1vZGVsRGV0YWlsc1NlY3Rp
b25Sb3cuanMKQEAgLTExNCwxMiArMTE0LDEyIEBAIFdJLkJveE1vZGVsRGV0YWlsc1NlY3Rpb25S
b3cgPSBjbGFzcyBCb3hNb2RlbERldGFpbHNTZWN0aW9uUm93IGV4dGVuZHMgV0kuRGV0YWlsCiAg
ICAgewogICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKIAotICAgICAgICB2YXIgbm9k
ZUlkID0gc2hvd0hpZ2hsaWdodCA/IHRoaXMubm9kZVN0eWxlcy5ub2RlLmlkIDogMDsKLSAgICAg
ICAgaWYgKG5vZGVJZCkgeworICAgICAgICBsZXQgbm9kZSA9IHNob3dIaWdobGlnaHQgPyB0aGlz
Lm5vZGVTdHlsZXMubm9kZSA6IG51bGw7CisgICAgICAgIGlmIChub2RlKSB7CiAgICAgICAgICAg
ICBpZiAodGhpcy5faGlnaGxpZ2h0TW9kZSA9PT0gbW9kZSkKICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICB0aGlzLl9oaWdobGlnaHRNb2RlID0gbW9kZTsKLSAgICAgICAgICAg
IFdJLmRvbU1hbmFnZXIuaGlnaGxpZ2h0RE9NTm9kZShub2RlSWQsIG1vZGUpOworICAgICAgICAg
ICAgbm9kZS5oaWdobGlnaHQodGhpcy5faGlnaGxpZ2h0TW9kZSk7CiAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICB0aGlzLl9oaWdobGlnaHRNb2RlID0gbnVsbDsKICAgICAgICAgICAgIFdJ
LmRvbU1hbmFnZXIuaGlkZURPTU5vZGVIaWdobGlnaHQoKTsKQEAgLTEyNyw3ICsxMjcsNyBAQCBX
SS5Cb3hNb2RlbERldGFpbHNTZWN0aW9uUm93ID0gY2xhc3MgQm94TW9kZWxEZXRhaWxzU2VjdGlv
blJvdyBleHRlbmRzIFdJLkRldGFpbAogCiAgICAgICAgIGZvciAodmFyIGkgPSAwOyB0aGlzLl9i
b3hFbGVtZW50cyAmJiBpIDwgdGhpcy5fYm94RWxlbWVudHMubGVuZ3RoOyArK2kpIHsKICAgICAg
ICAgICAgIHZhciBlbGVtZW50ID0gdGhpcy5fYm94RWxlbWVudHNbaV07Ci0gICAgICAgICAgICBp
ZiAobm9kZUlkICYmIChtb2RlID09PSAiYWxsIiB8fCBlbGVtZW50Ll9uYW1lID09PSBtb2RlKSkK
KyAgICAgICAgICAgIGlmIChub2RlICYmIChtb2RlID09PSAiYWxsIiB8fCBlbGVtZW50Ll9uYW1l
ID09PSBtb2RlKSkKICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoImFjdGl2
ZSIpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0
LnJlbW92ZSgiYWN0aXZlIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FudmFzT3ZlcnZpZXdDb250ZW50Vmll
dy5qcwppbmRleCA5NTlhYTk0ODc1ZjRjOGFkNTZlMzBmNmMwNDBmNDQ1NGMwNzA5NmM3Li42Mzli
MzZkODU5YmI3Y2YzYzM0NDQ1YWEwZWI3NDk1NDMzYzQxMDk4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYW52YXNPdmVydmlld0NvbnRlbnRW
aWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Nh
bnZhc092ZXJ2aWV3Q29udGVudFZpZXcuanMKQEAgLTE5Myw3ICsxOTMsNyBAQCBXSS5DYW52YXNP
dmVydmlld0NvbnRlbnRWaWV3ID0gY2xhc3MgQ2FudmFzT3ZlcnZpZXdDb250ZW50VmlldyBleHRl
bmRzIFdJLkNvbGxlYwogICAgICAgICBsZXQgY2FudmFzID0gY29udGVudFZpZXcucmVwcmVzZW50
ZWRPYmplY3Q7CiAgICAgICAgIGlmIChjYW52YXMuY3NzQ2FudmFzTmFtZSB8fCBjYW52YXMuY29u
dGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFUpIHsKICAgICAgICAgICAg
IGNhbnZhcy5yZXF1ZXN0Q2xpZW50Tm9kZXMoKGNsaWVudE5vZGVzKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgV0kuZG9tTWFuYWdlci5oaWdobGlnaHRET01Ob2RlTGlzdChjbGllbnROb2Rlcy5tYXAo
KG5vZGUpID0+IG5vZGUuaWQpKTsKKyAgICAgICAgICAgICAgICBXSS5kb21NYW5hZ2VyLmhpZ2hs
aWdodERPTU5vZGVMaXN0KGNsaWVudE5vZGVzKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0yMDEsNyArMjAxLDcgQEAgV0kuQ2FudmFzT3ZlcnZp
ZXdDb250ZW50VmlldyA9IGNsYXNzIENhbnZhc092ZXJ2aWV3Q29udGVudFZpZXcgZXh0ZW5kcyBX
SS5Db2xsZWMKICAgICAgICAgY2FudmFzLnJlcXVlc3ROb2RlKCkudGhlbigobm9kZSkgPT4gewog
ICAgICAgICAgICAgaWYgKCFub2RlIHx8ICFub2RlLm93bmVyRG9jdW1lbnQpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICAgICAgV0kuZG9tTWFuYWdlci5oaWdobGlnaHRET01Ob2Rl
KG5vZGUuaWQpOworICAgICAgICAgICAgbm9kZS5oaWdobGlnaHQoKTsKICAgICAgICAgfSk7CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9DYW52YXNUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NhbnZhc1RyZWVFbGVtZW50LmpzCmluZGV4IDZiMzczNTJmODVkNGI5NDM2
YjIxMzEzNGVhZTA0MTAwYzQxOWEzYmQuLjkxZjI2YTdjMzAxY2U5ZTI5YmZlYjVjMTViMjRiNzE3
Y2E0M2JlNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0NhbnZhc1RyZWVFbGVtZW50LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NhbnZhc1RyZWVFbGVtZW50LmpzCkBAIC0xMTcsMTQgKzExNywx
NCBAQCBXSS5DYW52YXNUcmVlRWxlbWVudCA9IGNsYXNzIENhbnZhc1RyZWVFbGVtZW50IGV4dGVu
ZHMgV0kuRm9sZGVyaXplZFRyZWVFbGVtZW50CiAgICAgewogICAgICAgICBpZiAodGhpcy5yZXBy
ZXNlbnRlZE9iamVjdC5jc3NDYW52YXNOYW1lIHx8IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuY29u
dGV4dFR5cGUgPT09IFdJLkNhbnZhcy5Db250ZXh0VHlwZS5XZWJHUFUpIHsKICAgICAgICAgICAg
IHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVxdWVzdENsaWVudE5vZGVzKChjbGllbnROb2Rlcykg
PT4gewotICAgICAgICAgICAgICAgIFdJLmRvbU1hbmFnZXIuaGlnaGxpZ2h0RE9NTm9kZUxpc3Qo
Y2xpZW50Tm9kZXMubWFwKChub2RlKSA9PiBub2RlLmlkKSk7CisgICAgICAgICAgICAgICAgV0ku
ZG9tTWFuYWdlci5oaWdobGlnaHRET01Ob2RlTGlzdChjbGllbnROb2Rlcyk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmpl
Y3QucmVxdWVzdE5vZGUoKG5vZGUpID0+IHsKICAgICAgICAgICAgICAgICBpZiAoIW5vZGUgfHwg
IW5vZGUub3duZXJEb2N1bWVudCkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAg
ICAgICAgICAgICAgV0kuZG9tTWFuYWdlci5oaWdobGlnaHRET01Ob2RlKG5vZGUuaWQpOworICAg
ICAgICAgICAgICAgIG5vZGUuaGlnaGxpZ2h0KCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
fQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0NvbnRleHRNZW51VXRpbGl0aWVzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQ29udGV4dE1lbnVVdGlsaXRpZXMuanMKaW5kZXggNTM3YTBhODA3
ZjNiZmY5Y2NjNGIwMWYyOTJiMTRmYjMxZmVkNDQ0Yi4uMTU1YzU3YzdiM2U0MDdiMjA3YmVjMGNi
MWVmNzUxYWQ2OTY5YjJhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ29udGV4dE1lbnVVdGlsaXRpZXMuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29udGV4dE1lbnVVdGlsaXRpZXMuanMKQEAg
LTI5MSw3ICsyOTEsNyBAQCBXSS5hcHBlbmRDb250ZXh0TWVudUl0ZW1zRm9yRE9NTm9kZSA9IGZ1
bmN0aW9uKGNvbnRleHRNZW51LCBkb21Ob2RlLCBvcHRpb25zID0gewogICAgICAgICBjb250ZXh0
TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKIAogICAgICAgICBsZXQgY2FuTG9nU2hhZG93VHJlZSA9
ICFkb21Ob2RlLmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkgfHwgV0kuRE9NTWFuYWdlci5zdXBw
b3J0c0VkaXRpbmdVc2VyQWdlbnRTaGFkb3dUcmVlcyh7ZnJvbnRlbmRPbmx5OiB0cnVlfSk7Ci0g
ICAgICAgIGlmICghb3B0aW9ucy5leGNsdWRlTG9nRWxlbWVudCAmJiBjYW5Mb2dTaGFkb3dUcmVl
ICYmICFkb21Ob2RlLmlzUHNldWRvRWxlbWVudCgpKSB7CisgICAgICAgIGlmICghb3B0aW9ucy5l
eGNsdWRlTG9nRWxlbWVudCAmJiBjYW5Mb2dTaGFkb3dUcmVlICYmICFkb21Ob2RlLmRlc3Ryb3ll
ZCAmJiAhZG9tTm9kZS5pc1BzZXVkb0VsZW1lbnQoKSkgewogICAgICAgICAgICAgbGV0IGxhYmVs
ID0gaXNFbGVtZW50ID8gV0kuVUlTdHJpbmcoIkxvZyBFbGVtZW50IiwgIkxvZyAocHJpbnQpIERP
TSBlbGVtZW50IHRvIENvbnNvbGUiKSA6IFdJLlVJU3RyaW5nKCJMb2cgTm9kZSIsICJMb2cgKHBy
aW50KSBET00gbm9kZSB0byBDb25zb2xlIik7CiAgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBl
bmRJdGVtKGxhYmVsLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgV0kuUmVtb3RlT2JqZWN0LnJl
c29sdmVOb2RlKGRvbU5vZGUsIFdJLlJ1bnRpbWVNYW5hZ2VyLkNvbnNvbGVPYmplY3RHcm91cCku
dGhlbigocmVtb3RlT2JqZWN0KSA9PiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01Ob2RlRGV0YWlsc1NpZGViYXJQYW5lbC5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTU5vZGVEZXRhaWxzU2lk
ZWJhclBhbmVsLmpzCmluZGV4IGZjMDM5NTE3N2Y0YmFkNWJkZjg3OWFiZDFlNGJjZTRhNDdiODMx
NmUuLjM5MGE1MmMyMDEyZTNlZjNiY2MzODViMjY3NDRkODRiNWFhMjJhOGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTU5vZGVEZXRhaWxz
U2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0RPTU5vZGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzCkBAIC0xNTcsNyArMTU3LDcgQEAg
V0kuRE9NTm9kZURldGFpbHNTaWRlYmFyUGFuZWwgPSBjbGFzcyBET01Ob2RlRGV0YWlsc1NpZGVi
YXJQYW5lbCBleHRlbmRzIFdJLkRPTUQKICAgICB7CiAgICAgICAgIHN1cGVyLmxheW91dCgpOwog
Ci0gICAgICAgIGlmICghdGhpcy5kb21Ob2RlKQorICAgICAgICBpZiAoIXRoaXMuZG9tTm9kZSB8
fCB0aGlzLmRvbU5vZGUuZGVzdHJveWVkKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAg
IHRoaXMuX3JlZnJlc2hJZGVudGl0eSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUNvbnRlbnRWaWV3LmpzCmlu
ZGV4IDVkZWM3ZDQwYmU4ZGEzMTg0N2YyMzhkMWZhM2M4YzZjMGRlMGNkOGUuLjU5NThmNmE1OTQ3
MzE4MTc4NmUzZTU3MzM0Y2MwODU1MTdhN2I4MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVDb250ZW50Vmlldy5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlQ29udGVudFZp
ZXcuanMKQEAgLTQ5OCw3ICs0OTgsNyBAQCBXSS5ET01UcmVlQ29udGVudFZpZXcgPSBjbGFzcyBE
T01UcmVlQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAgICB0aGlzLl9k
b21UcmVlT3V0bGluZS5zZWxlY3RET01Ob2RlKGRvbU5vZGUsIHNlbGVjdGVkQnlVc2VyKTsKIAog
ICAgICAgICBpZiAoZG9tTm9kZSAmJiBzZWxlY3RlZEJ5VXNlcikKLSAgICAgICAgICAgIFdJLmRv
bU1hbmFnZXIuaGlnaGxpZ2h0RE9NTm9kZShkb21Ob2RlLmlkKTsKKyAgICAgICAgICAgIGRvbU5v
ZGUuaGlnaGxpZ2h0KCk7CiAKICAgICAgICAgdGhpcy5fZG9tVHJlZU91dGxpbmUudXBkYXRlU2Vs
ZWN0aW9uQXJlYSgpOwogICAgICAgICB0aGlzLl9kb21UcmVlT3V0bGluZS5zdXBwcmVzc1JldmVh
bEFuZFNlbGVjdCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUVsZW1lbnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudC5qcwppbmRleCA4NTUyZGRmNDFm
YjgzODYwZTNlNTU4NTQ4NjI3MDE2MmQ5YjJlZDUxLi5kZGRhMzExN2VhZWQ0Nzk3YWY3MTRmODkx
YzVhOGJhOTEwY2UxYTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudC5qcwpAQCAtMjQ0LDYgKzI0NCw5
IEBAIFdJLkRPTVRyZWVFbGVtZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBXSS5U
cmVlRWxlbWVudAogICAgIHsKICAgICAgICAgbGV0IG5vZGUgPSB0aGlzLnJlcHJlc2VudGVkT2Jq
ZWN0OwogCisgICAgICAgIGlmIChub2RlLmRlc3Ryb3llZCkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKwogICAgICAgICBpZiAobm9kZS5pc1NoYWRvd1Jvb3QoKSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKIApAQCAtODMwLDcgKzgzMyw3IEBAIFdJLkRPTVRyZWVFbGVtZW50ID0gY2xh
c3MgRE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBXSS5UcmVlRWxlbWVudAogICAgICAgICAgICAgfSwg
V0kuaXNCZWluZ0VkaXRlZCh0ZXh0Tm9kZSkpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCF0
aGlzLnJlcHJlc2VudGVkT2JqZWN0LmlzUHNldWRvRWxlbWVudCgpKSB7CisgICAgICAgIGlmICgh
dGhpcy5yZXByZXNlbnRlZE9iamVjdC5kZXN0cm95ZWQgJiYgIXRoaXMucmVwcmVzZW50ZWRPYmpl
Y3QuaXNQc2V1ZG9FbGVtZW50KCkpIHsKICAgICAgICAgICAgIHN1Yk1lbnVzLmNvcHkuYXBwZW5k
SXRlbShXSS5VSVN0cmluZygiSFRNTCIpLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgdGhpcy5y
ZXByZXNlbnRlZE9iamVjdC5nZXRPdXRlckhUTUwoKQogICAgICAgICAgICAgICAgIC50aGVuKChv
dXRlckhUTUwpID0+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0RPTVRyZWVFbGVtZW50UGF0aENvbXBvbmVudC5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVFbGVtZW50UGF0aENvbXBvbmVu
dC5qcwppbmRleCBkOGNlNDgxNTBlZWUxYjFiMWJiYjRhMDg0MzdmMTFkZDMyMjYyY2YzLi5mM2Iy
NDBjN2JlMzVhZjM2MjMxMDA5ZThjOWEzNWZkZDAwZDk3MzM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudFBhdGhDb21w
b25lbnQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
RE9NVHJlZUVsZW1lbnRQYXRoQ29tcG9uZW50LmpzCkBAIC0xNTAsOCArMTUwLDggQEAgV0kuRE9N
VHJlZUVsZW1lbnRQYXRoQ29tcG9uZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnRQYXRoQ29tcG9u
ZW50IGV4dGVuZHMgV0kuSGkKIAogICAgIG1vdXNlT3ZlcigpCiAgICAgewotICAgICAgICB2YXIg
bm9kZUlkID0gdGhpcy5fZG9tVHJlZUVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3QuaWQ7Ci0gICAg
ICAgIFdJLmRvbU1hbmFnZXIuaGlnaGxpZ2h0RE9NTm9kZShub2RlSWQpOworICAgICAgICBsZXQg
bm9kZSA9IHRoaXMuX2RvbVRyZWVFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0OworICAgICAgICBu
b2RlLmhpZ2hsaWdodCgpOwogICAgIH0KIAogICAgIG1vdXNlT3V0KCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVPdXRsaW5lLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZU91dGxp
bmUuanMKaW5kZXggYTM2YjRkNTMxMDM4MzA1YzI1MTZjOGQzNDVmN2Y4ZTNlNWFlZjk3OS4uZmVh
YzQ1Y2EyZGEyNjVlY2VlMjJhZjBlZmUyYTQ4MTRjZWYzZmI1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZU91dGxpbmUuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZU91dGxp
bmUuanMKQEAgLTE1MSw3ICsxNTEsNyBAQCBXSS5ET01UcmVlT3V0bGluZSA9IGNsYXNzIERPTVRy
ZWVPdXRsaW5lIGV4dGVuZHMgV0kuVHJlZU91dGxpbmUKIAogICAgIGdldCBlZGl0YWJsZSgpCiAg
ICAgewotICAgICAgICByZXR1cm4gdGhpcy5fZWRpdGFibGU7CisgICAgICAgIHJldHVybiB0aGlz
Ll9lZGl0YWJsZSAmJiB0aGlzLnJvb3RET01Ob2RlICYmICF0aGlzLnJvb3RET01Ob2RlLmRlc3Ry
b3llZDsKICAgICB9CiAKICAgICBzZXQgZWRpdGFibGUoeCkKQEAgLTI4NywxNCArMjg3LDE3IEBA
IFdJLkRPTVRyZWVPdXRsaW5lID0gY2xhc3MgRE9NVHJlZU91dGxpbmUgZXh0ZW5kcyBXSS5UcmVl
T3V0bGluZQogICAgICAgICAgICAgZGVsZXRlOiBuZXcgV0kuQ29udGV4dFN1Yk1lbnVJdGVtKGNv
bnRleHRNZW51LCBXSS5VSVN0cmluZygiRGVsZXRlIikpLAogICAgICAgICB9OwogCi0gICAgICAg
IGlmICh0cmVlRWxlbWVudC5zZWxlY3RlZCAmJiB0aGlzLnNlbGVjdGVkVHJlZUVsZW1lbnRzLmxl
bmd0aCA+IDEpCi0gICAgICAgICAgICBzdWJNZW51cy5kZWxldGUuYXBwZW5kSXRlbShXSS5VSVN0
cmluZygiTm9kZXMiKSwgKCkgPT4geyB0aGlzLm9uZGVsZXRlKCk7IH0sICF0aGlzLl9lZGl0YWJs
ZSk7CisgICAgICAgIGlmICh0aGlzLmVkaXRhYmxlICYmIHRyZWVFbGVtZW50LnNlbGVjdGVkICYm
IHRoaXMuc2VsZWN0ZWRUcmVlRWxlbWVudHMubGVuZ3RoID4gMSkgeworICAgICAgICAgICAgc3Vi
TWVudXMuZGVsZXRlLmFwcGVuZEl0ZW0oV0kuVUlTdHJpbmcoIk5vZGVzIiksICgpID0+IHsKKyAg
ICAgICAgICAgICAgICB0aGlzLm9uZGVsZXRlKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fQogCiAgICAgICAgIGlmICh0cmVlRWxlbWVudC5wb3B1bGF0ZURPTU5vZGVDb250ZXh0TWVudSkK
ICAgICAgICAgICAgIHRyZWVFbGVtZW50LnBvcHVsYXRlRE9NTm9kZUNvbnRleHRNZW51KGNvbnRl
eHRNZW51LCBzdWJNZW51cywgZXZlbnQsIHN1Yk1lbnVzKTsKIAogICAgICAgICBsZXQgb3B0aW9u
cyA9IHsKLSAgICAgICAgICAgIGRpc2FsbG93RWRpdGluZzogIXRoaXMuX2VkaXRhYmxlLAorICAg
ICAgICAgICAgZGlzYWxsb3dFZGl0aW5nOiAhdGhpcy5lZGl0YWJsZSwKICAgICAgICAgICAgIHVz
aW5nTG9jYWxET01Ob2RlOiB0aGlzLl91c2luZ0xvY2FsRE9NTm9kZSwKICAgICAgICAgICAgIGV4
Y2x1ZGVSZXZlYWxFbGVtZW50OiB0aGlzLl9leGNsdWRlUmV2ZWFsRWxlbWVudENvbnRleHRNZW51
LAogICAgICAgICAgICAgY29weVN1Yk1lbnU6IHN1Yk1lbnVzLmNvcHksCkBAIC0zMTQsNyArMzE3
LDcgQEAgV0kuRE9NVHJlZU91dGxpbmUgPSBjbGFzcyBET01UcmVlT3V0bGluZSBleHRlbmRzIFdJ
LlRyZWVPdXRsaW5lCiAKICAgICBvbmRlbGV0ZSgpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMu
X2VkaXRhYmxlKQorICAgICAgICBpZiAoIXRoaXMuZWRpdGFibGUpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICAgICAgdGhpcy5fdHJlZUVsZW1lbnRzVG9SZW1vdmUgPSB0aGlzLnNl
bGVjdGVkVHJlZUVsZW1lbnRzOwpAQCAtNDY1LDEyICs0NjgsMTYgQEAgV0kuRE9NVHJlZU91dGxp
bmUgPSBjbGFzcyBET01UcmVlT3V0bGluZSBleHRlbmRzIFdJLlRyZWVPdXRsaW5lCiAgICAgICAg
ICAgICBlbGVtZW50LmhvdmVyZWQgPSB0cnVlOwogICAgICAgICAgICAgdGhpcy5fcHJldmlvdXNI
b3ZlcmVkRWxlbWVudCA9IGVsZW1lbnQ7CiAKLSAgICAgICAgICAgIC8vIExhemlseSBjb21wdXRl
IHRhZy1zcGVjaWZpYyB0b29sdGlwcy4KLSAgICAgICAgICAgIGlmIChlbGVtZW50LnJlcHJlc2Vu
dGVkT2JqZWN0ICYmICFlbGVtZW50LnRvb2x0aXAgJiYgZWxlbWVudC5fY3JlYXRlVG9vbHRpcEZv
ck5vZGUpCi0gICAgICAgICAgICAgICAgZWxlbWVudC5fY3JlYXRlVG9vbHRpcEZvck5vZGUoKTsK
LSAgICAgICAgfQorICAgICAgICAgICAgaWYgKGVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3QpIHsK
KyAgICAgICAgICAgICAgICAvLyBMYXppbHkgY29tcHV0ZSB0YWctc3BlY2lmaWMgdG9vbHRpcHMu
CisgICAgICAgICAgICAgICAgaWYgKCFlbGVtZW50LnRvb2x0aXAgJiYgZWxlbWVudC5fY3JlYXRl
VG9vbHRpcEZvck5vZGUpCisgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuX2NyZWF0ZVRvb2x0
aXBGb3JOb2RlKCk7CiAKLSAgICAgICAgV0kuZG9tTWFuYWdlci5oaWdobGlnaHRET01Ob2RlKGVs
ZW1lbnQgPyBlbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0LmlkIDogMCk7CisgICAgICAgICAgICAg
ICAgZWxlbWVudC5yZXByZXNlbnRlZE9iamVjdC5oaWdobGlnaHQoKTsKKyAgICAgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgICAgIFdJLmRvbU1hbmFnZXIuaGlkZURPTU5vZGVIaWdobGlnaHQo
KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBXSS5kb21NYW5hZ2VyLmhpZGVET01Ob2Rl
SGlnaGxpZ2h0KCk7CiAgICAgfQogCiAgICAgX29ubW91c2VvdXQoZXZlbnQpCkBAIC00OTIsNyAr
NDk5LDcgQEAgV0kuRE9NVHJlZU91dGxpbmUgPSBjbGFzcyBET01UcmVlT3V0bGluZSBleHRlbmRz
IFdJLlRyZWVPdXRsaW5lCiAKICAgICBfb25kcmFnc3RhcnQoZXZlbnQpCiAgICAgewotICAgICAg
ICBpZiAoIXRoaXMuX2VkaXRhYmxlKQorICAgICAgICBpZiAoIXRoaXMuZWRpdGFibGUpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgbGV0IHRyZWVFbGVtZW50ID0gdGhpcy50
cmVlRWxlbWVudEZyb21FdmVudChldmVudCk7CkBAIC01MTgsNyArNTI1LDcgQEAgV0kuRE9NVHJl
ZU91dGxpbmUgPSBjbGFzcyBET01UcmVlT3V0bGluZSBleHRlbmRzIFdJLlRyZWVPdXRsaW5lCiAK
ICAgICBfb25kcmFnb3ZlcihldmVudCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fZWRpdGFi
bGUpCisgICAgICAgIGlmICghdGhpcy5lZGl0YWJsZSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgICAgICBpZiAoZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzLmluY2x1ZGVzKFdJLkdl
bmVyYWxTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwuVG9nZ2xlZENsYXNzZXNEcmFnVHlwZSkpIHsK
QEAgLTU1Miw3ICs1NTksNyBAQCBXSS5ET01UcmVlT3V0bGluZSA9IGNsYXNzIERPTVRyZWVPdXRs
aW5lIGV4dGVuZHMgV0kuVHJlZU91dGxpbmUKIAogICAgIF9vbmRyYWdsZWF2ZShldmVudCkKICAg
ICB7Ci0gICAgICAgIGlmICghdGhpcy5fZWRpdGFibGUpCisgICAgICAgIGlmICghdGhpcy5lZGl0
YWJsZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICB0aGlzLl9jbGVhckRy
YWdPdmVyVHJlZUVsZW1lbnRNYXJrZXIoKTsKQEAgLTU3Nyw3ICs1ODQsNyBAQCBXSS5ET01UcmVl
T3V0bGluZSA9IGNsYXNzIERPTVRyZWVPdXRsaW5lIGV4dGVuZHMgV0kuVHJlZU91dGxpbmUKIAog
ICAgIF9vbmRyb3AoZXZlbnQpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMuX2VkaXRhYmxlKQor
ICAgICAgICBpZiAoIXRoaXMuZWRpdGFibGUpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAg
ICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKQEAgLTYxOSw3ICs2MjYsNyBAQCBXSS5ET01UcmVl
T3V0bGluZSA9IGNsYXNzIERPTVRyZWVPdXRsaW5lIGV4dGVuZHMgV0kuVHJlZU91dGxpbmUKIAog
ICAgIF9vbmRyYWdlbmQoZXZlbnQpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMuX2VkaXRhYmxl
KQorICAgICAgICBpZiAoIXRoaXMuZWRpdGFibGUpCiAgICAgICAgICAgICByZXR1cm47CiAKICAg
ICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKQEAgLTY3OCw3ICs2ODUsNyBAQCBXSS5ET01U
cmVlT3V0bGluZSA9IGNsYXNzIERPTVRyZWVPdXRsaW5lIGV4dGVuZHMgV0kuVHJlZU91dGxpbmUK
IAogICAgIF9oaWRlRWxlbWVudHMoZXZlbnQsIGtleWJvYXJkU2hvcnRjdXQpCiAgICAgewotICAg
ICAgICBpZiAoIXRoaXMuX2VkaXRhYmxlKQorICAgICAgICBpZiAoIXRoaXMuZWRpdGFibGUpCiAg
ICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkVHJlZUVsZW1l
bnQgfHwgV0kuaXNFZGl0aW5nQW55RmllbGQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Zvcm1hdHRlZFZhbHVlLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRm9ybWF0dGVkVmFsdWUuanMKaW5kZXgg
MTcyNzI0YjQ2NDg1NTdmMTkwMTA4MDNlYWYzZTJmNzQxMDQ5NDU3MC4uODRmY2QzMmIxYjVlYWI4
MjcwYjgxOTAxZGJjMTVmODU4Y2M3Njg1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRm9ybWF0dGVkVmFsdWUuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRm9ybWF0dGVkVmFsdWUuanMKQEAgLTEy
Niw3ICsxMjYsNyBAQCBXSS5Gb3JtYXR0ZWRWYWx1ZS5jcmVhdGVFbGVtZW50Rm9yTm9kZVByZXZp
ZXcgPSBmdW5jdGlvbihwcmV2aWV3LCB7cmVtb3RlT2JqZWN0QQogCiAgICAgICAgIHNwYW4uYWRk
RXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsIChldmVudCkgPT4gewogICAgICAgICAgICAgaWYg
KGRvbU5vZGUpIHsKLSAgICAgICAgICAgICAgICBXSS5kb21NYW5hZ2VyLmhpZ2hsaWdodERPTU5v
ZGUoZG9tTm9kZS5pZCwgImFsbCIpOworICAgICAgICAgICAgICAgIGRvbU5vZGUuaGlnaGxpZ2h0
KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCkBAIC0xMzQsNyAr
MTM0LDcgQEAgV0kuRm9ybWF0dGVkVmFsdWUuY3JlYXRlRWxlbWVudEZvck5vZGVQcmV2aWV3ID0g
ZnVuY3Rpb24ocHJldmlldywge3JlbW90ZU9iamVjdEEKICAgICAgICAgICAgICAgICByZW1vdGVP
YmplY3QucHVzaE5vZGVUb0Zyb250ZW5kKChub2RlSWQpID0+IHsKICAgICAgICAgICAgICAgICAg
ICAgZG9tTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCk7CiAgICAgICAgICAg
ICAgICAgICAgIGlmIChkb21Ob2RlKQotICAgICAgICAgICAgICAgICAgICAgICAgV0kuZG9tTWFu
YWdlci5oaWdobGlnaHRET01Ob2RlKGRvbU5vZGUuaWQsICJhbGwiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGRvbU5vZGUuaGlnaGxpZ2h0KCk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9HZW5lcmFsU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvR2VuZXJhbFN0eWxl
RGV0YWlsc1NpZGViYXJQYW5lbC5qcwppbmRleCAwNGE1NTY3OWRiNjU1ZGQ5NDY0NmI0NjE2YTdi
Y2ZhMGZmNGI0Mzc3Li5mMDczZjAwZGFiZTI2MWRmNDljOWUyZDQxYjJiYjRlZDNiYzAwMWFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9HZW5l
cmFsU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0dlbmVyYWxTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwuanMK
QEAgLTg3LDcgKzg3LDcgQEAgV0kuR2VuZXJhbFN0eWxlRGV0YWlsc1NpZGViYXJQYW5lbCA9IGNs
YXNzIEdlbmVyYWxTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwgZXh0ZW4KICAgICBsYXlvdXQoKQog
ICAgIHsKICAgICAgICAgbGV0IGRvbU5vZGUgPSB0aGlzLmRvbU5vZGU7Ci0gICAgICAgIGlmICgh
ZG9tTm9kZSkKKyAgICAgICAgaWYgKCFkb21Ob2RlIHx8IGRvbU5vZGUuZGVzdHJveWVkKQogICAg
ICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHRoaXMuY29udGVudFZpZXcuZWxlbWVudC5zY3Jv
bGxUb3AgPSB0aGlzLl9pbml0aWFsU2Nyb2xsT2Zmc2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5ZXJEZXRhaWxzU2lkZWJhclBhbmVs
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5ZXJEZXRh
aWxzU2lkZWJhclBhbmVsLmpzCmluZGV4IGNmNWI0MWZjMGMwOTM5MTNhZGMzYzcyNTdhNjQyYmNk
Y2MxYjRiZDMuLjMyMzMyOTAyZjhjYTJmMzlkZmRjMGFkMTBlMTA0NGY0ZWIwODMxZGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xheWVyRGV0
YWlsc1NpZGViYXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9MYXllckRldGFpbHNTaWRlYmFyUGFuZWwuanMKQEAgLTE0OSwyMiArMTQ5LDI5
IEBAIFdJLkxheWVyRGV0YWlsc1NpZGViYXJQYW5lbCA9IGNsYXNzIExheWVyRGV0YWlsc1NpZGVi
YXJQYW5lbCBleHRlbmRzIFdJLkRldGFpbHNTCiAKICAgICBfZGF0YUdyaWRNb3VzZU1vdmUoZXZl
bnQpCiAgICAgewotICAgICAgICBsZXQgbm9kZSA9IHRoaXMuX2RhdGFHcmlkLmRhdGFHcmlkTm9k
ZUZyb21Ob2RlKGV2ZW50LnRhcmdldCk7Ci0gICAgICAgIGlmIChub2RlID09PSB0aGlzLl9ob3Zl
cmVkRGF0YUdyaWROb2RlKQorICAgICAgICBsZXQgZGF0YUdyaWROb2RlID0gdGhpcy5fZGF0YUdy
aWQuZGF0YUdyaWROb2RlRnJvbU5vZGUoZXZlbnQudGFyZ2V0KTsKKyAgICAgICAgaWYgKGRhdGFH
cmlkTm9kZSA9PT0gdGhpcy5faG92ZXJlZERhdGFHcmlkTm9kZSkKICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICBpZiAoIW5vZGUpIHsKKyAgICAgICAgaWYgKCFkYXRhR3JpZE5vZGUpIHsK
ICAgICAgICAgICAgIHRoaXMuX2hpZGVET01Ob2RlSGlnaGxpZ2h0KCk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICB0aGlzLl9ob3ZlcmVkRGF0YUdyaWROb2RlID0g
bm9kZTsKKyAgICAgICAgdGhpcy5faG92ZXJlZERhdGFHcmlkTm9kZSA9IGRhdGFHcmlkTm9kZTsK
IAotICAgICAgICBpZiAobm9kZS5sYXllci5pc0dlbmVyYXRlZENvbnRlbnQgfHwgbm9kZS5sYXll
ci5pc1JlZmxlY3Rpb24gfHwgbm9kZS5sYXllci5pc0Fub255bW91cykgeworICAgICAgICBsZXQg
bGF5ZXIgPSBkYXRhR3JpZE5vZGUubGF5ZXI7CisKKyAgICAgICAgaWYgKGxheWVyLmlzR2VuZXJh
dGVkQ29udGVudCB8fCBsYXllci5pc1JlZmxlY3Rpb24gfHwgbGF5ZXIuaXNBbm9ueW1vdXMpIHsK
ICAgICAgICAgICAgIGNvbnN0IHVzZVBhZ2VDb29yZGluYXRlcyA9IHRydWU7Ci0gICAgICAgICAg
ICBXSS5kb21NYW5hZ2VyLmhpZ2hsaWdodFJlY3Qobm9kZS5sYXllci5ib3VuZHMsIHVzZVBhZ2VD
b29yZGluYXRlcyk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgV0kuZG9tTWFuYWdlci5o
aWdobGlnaHRET01Ob2RlKG5vZGUubGF5ZXIubm9kZUlkKTsKKyAgICAgICAgICAgIFdJLmRvbU1h
bmFnZXIuaGlnaGxpZ2h0UmVjdChsYXllci5ib3VuZHMsIHVzZVBhZ2VDb29yZGluYXRlcyk7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsZXQgZG9tTm9kZSA9IFdJLmRvbU1hbmFnZXIu
bm9kZUZvcklkKGxheWVyLm5vZGVJZCk7CisgICAgICAgICAgICBpZiAoZG9tTm9kZSkKKyAgICAg
ICAgICAgICAgICBkb21Ob2RlLmhpZ2hsaWdodCgpOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIFdJLmRvbU1hbmFnZXIuaGlkZURPTU5vZGVIaWdobGlnaHQoKTsKKyAgICAgICAg
fQogICAgIH0KIAogICAgIF9kYXRhR3JpZE1vdXNlTGVhdmUoZXZlbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXllclRyZWVEZXRhaWxz
U2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvTGF5ZXJUcmVlRGV0YWlsc1NpZGViYXJQYW5lbC5qcwppbmRleCBjMWFkNmZhYTRjZWIyOGYz
ZGQzZjY5YmMzMzRjYWFkODdlYjI1YmNkLi45MWJhNjA4OGNhMWY5MGZmZmYxZmUwMmM3NzQxMGNh
ZWYyOTA2YThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9MYXllclRyZWVEZXRhaWxzU2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xheWVyVHJlZURldGFpbHNTaWRlYmFyUGFu
ZWwuanMKQEAgLTc2LDcgKzc2LDcgQEAgV0kuTGF5ZXJUcmVlRGV0YWlsc1NpZGViYXJQYW5lbCA9
IGNsYXNzIExheWVyVHJlZURldGFpbHNTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXSS4KICAgICB7CiAg
ICAgICAgIHN1cGVyLmxheW91dCgpOwogCi0gICAgICAgIGlmICghdGhpcy5kb21Ob2RlKQorICAg
ICAgICBpZiAoIXRoaXMuZG9tTm9kZSB8fCB0aGlzLmRvbU5vZGUuZGVzdHJveWVkKQogICAgICAg
ICAgICAgcmV0dXJuOwogCiAgICAgICAgIFdJLmxheWVyVHJlZU1hbmFnZXIubGF5ZXJzRm9yTm9k
ZSh0aGlzLmRvbU5vZGUsIChsYXllcnMpID0+IHsKQEAgLTIzMiw4ICsyMzIsMTMgQEAgV0kuTGF5
ZXJUcmVlRGV0YWlsc1NpZGViYXJQYW5lbCA9IGNsYXNzIExheWVyVHJlZURldGFpbHNTaWRlYmFy
UGFuZWwgZXh0ZW5kcyBXSS4KICAgICAgICAgdmFyIGxheWVyID0gZGF0YUdyaWROb2RlLmxheWVy
OwogICAgICAgICBpZiAobGF5ZXIuaXNHZW5lcmF0ZWRDb250ZW50IHx8IGxheWVyLmlzUmVmbGVj
dGlvbiB8fCBsYXllci5pc0Fub255bW91cykKICAgICAgICAgICAgIFdJLmRvbU1hbmFnZXIuaGln
aGxpZ2h0UmVjdChsYXllci5ib3VuZHMsIHRydWUpOwotICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBXSS5kb21NYW5hZ2VyLmhpZ2hsaWdodERPTU5vZGUobGF5ZXIubm9kZUlkKTsKKyAgICAgICAg
ZWxzZSB7CisgICAgICAgICAgICBsZXQgZG9tTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklk
KGxheWVyLm5vZGVJZCk7CisgICAgICAgICAgICBpZiAoZG9tTm9kZSkKKyAgICAgICAgICAgICAg
ICBkb21Ob2RlLmhpZ2hsaWdodCgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IFdJLmRvbU1hbmFnZXIuaGlkZURPTU5vZGVIaWdobGlnaHQoKTsKKyAgICAgICAgfQogICAgIH0K
IAogICAgIF91cGRhdGVEaXNwbGF5V2l0aExheWVycyhsYXllckZvck5vZGUsIGNoaWxkTGF5ZXJz
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
U3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlv
blNlY3Rpb24uanMKaW5kZXggNTliNzRlY2U2NjkwMjM0ZjQ0ODdjMGU2MGEwZDM2MmFlYmFlZTM1
OC4uZmY1MjEwYzJhMGY1MDlkODE4NTEzNzBmZTRiYTU2MTRmMDNmNTU0MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NT
dHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLmpz
CkBAIC02MzYsNyArNjM2LDcgQEAgV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uU2Vj
dGlvbiA9IGNsYXNzIFNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvblMKICAgICAgICAgbGV0
IG5vZGUgPSB0aGlzLl9zdHlsZS5ub2RlOwogCiAgICAgICAgIGlmICghdGhpcy5fc3R5bGUub3du
ZXJSdWxlKSB7Ci0gICAgICAgICAgICBXSS5kb21NYW5hZ2VyLmhpZ2hsaWdodERPTU5vZGUobm9k
ZS5pZCk7CisgICAgICAgICAgICBub2RlLmhpZ2hsaWdodCgpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhZjUxNmI1MWUwNTljMDUxOWEwMmFhZDY3NjBmZmQ1Y2Q5
NmJmOGVmLi5jOTFhNTI0NDFhMDA4NTA5NThkNDhiNGM1YThkNWE1NzhlZGU5MWFhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNTYgQEAKKzIwMTktMTEtMjIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUu
Y29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFVuY2F1Z2h0IEV4Y2VwdGlvbjogTWlzc2lu
ZyBub2RlIGZvciBnaXZlbiBub2RlSWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNDUxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvZG9tL2Nyb3NzLWRvbWFpbi1p
bnNwZWN0ZWQtbm9kZS1hY2Nlc3MuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rv
ci9kb20vZGlkRmlyZUV2ZW50Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9yZXNvdXJjZS1pbml0aWF0b3JOb2RlLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9y
L2NvbnNvbGUvY29tbWFuZC1saW5lLWFwaS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jc3Mv
YWRkLWNzcy1wcm9wZXJ0eS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jc3MvY3NzLXByb3Bl
cnR5Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9mb3JjZS1wYWdlLWFwcGVhcmFuY2Uu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY3NzL2dlbmVyYXRlQ1NTUnVsZVN0cmluZy5odG1s
OgorICAgICAgICAqIGluc3BlY3Rvci9jc3MvbWF0Y2hlZC1zdHlsZS1wcm9wZXJ0aWVzLmh0bWw6
CisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5LXJhY2UuaHRtbDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvY3NzL21vZGlmeS1jc3MtcHJvcGVydHkuaHRtbDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvY3NzL21vZGlmeS1pbmxpbmUtc3R5bGUuaHRtbDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvY3NzL21vZGlmeS1ydWxlLXNlbGVjdG9yLmh0bWw6CisgICAgICAgICogaW5zcGVj
dG9yL2Nzcy9vdmVycmlkZGVuLXByb3BlcnR5Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Nz
cy9wc2V1ZG8tZWxlbWVudC1tYXRjaGVzLWZvci1wc2V1ZG8tZWxlbWVudC1ub2RlLmh0bWw6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Nzcy9wc2V1ZG8tZWxlbWVudC1tYXRjaGVzLmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yL2Nzcy9yZXNvbHZlLXZhcmlhYmxlLXZhbHVlLmh0bWw6CisgICAgICAg
ICogaW5zcGVjdG9yL2Nzcy9zZWxlY3Rvci1keW5hbWljLXNwZWNpZmljaXR5Lmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yL2Nzcy9zZWxlY3Rvci1zcGVjaWZpY2l0eS5odG1sOgorICAgICAgICAq
IGluc3BlY3Rvci9jc3Mvc2hhZG93LXNjb3BlZC1zdHlsZS5odG1sOgorICAgICAgICAqIGluc3Bl
Y3Rvci9jc3Mvc3R5bGVzaGVldC13aXRoLW11dGF0aW9ucy5odG1sOgorICAgICAgICAqIGluc3Bl
Y3Rvci9kb20tZGVidWdnZXIvYXR0cmlidXRlLW1vZGlmaWVkLXN0eWxlLmh0bWw6CisgICAgICAg
ICogaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMuaHRtbDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvZG9tL2F0dHJpYnV0ZU1vZGlmaWVkLmh0bWw6CisgICAgICAgICogaW5zcGVj
dG9yL2RvbS9icmVha3BvaW50LWZvci1ldmVudC1saXN0ZW5lci5odG1sOgorICAgICAgICAqIGlu
c3BlY3Rvci9kb20vY3NwLWJpZzUtaGFzaC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kb20v
Y3NwLWhhc2guaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tL2N1c3RvbUVsZW1lbnRTdGF0
ZS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kb20vZG9tdXRpbGl0aWVzLWNzc3BhdGguaHRt
bDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tL2RvbXV0aWxpdGllcy1wYXRoLWR1bXAuaHRtbDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvZG9tL2RvbXV0aWxpdGllcy14cGF0aC5odG1sOgorICAgICAg
ICAqIGluc3BlY3Rvci9kb20vZXZlbnQtbGlzdGVuZXItaW5zcGVjdGVkLW5vZGUuaHRtbDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZG9tL2dldEV2ZW50TGlzdGVuZXJzRm9yTm9kZS5odG1sOgorICAg
ICAgICAqIGluc3BlY3Rvci9kb20vZ2V0T3V0ZXJIVE1MLmh0bWw6CisgICAgICAgICogaW5zcGVj
dG9yL2RvbS9pbnNlcnRBZGphY2VudEhUTUwuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZG9t
L3BzZXVkby1lbGVtZW50LWR5bmFtaWMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tL3Bz
ZXVkby1lbGVtZW50LXN0YXRpYy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kb20vc2V0QWxs
b3dFZGl0aW5nVXNlckFnZW50U2hhZG93VHJlZXMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZG9tL3NldEluc3BlY3RlZE5vZGUuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tL3NldE91
dGVySFRNTC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kb20vc2hhZG93LWFuZC1ub24tc2hh
ZG93LWNoaWxkcmVuLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RvbS9zaGFkb3dSb290VHlw
ZS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kb20vdGVtcGxhdGUtY29udGVudC5odG1sOgor
ICAgICAgICAqIGluc3BlY3Rvci9tb2RlbC9kb20tbm9kZS5odG1sOgorICAgICAgICAqIGluc3Bl
Y3Rvci9wYWdlL2hpZHBpLXNuYXBzaG90LXNpemUuaHRtbDoKKwogMjAxOS0xMS0yMiAgRXJpYyBD
YXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICAoIHIyNTE3MzcgKSBt
ZWRpYS9yZW1vdGVwbGF5YmFjay1wcm9tcHQuaHRtbCBpcyBhIGZsYWtleSB0aW1lb3V0CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9kb20vY3Jvc3MtZG9tYWlu
LWluc3BlY3RlZC1ub2RlLWFjY2Vzcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvZG9tL2Nyb3NzLWRvbWFpbi1pbnNwZWN0ZWQtbm9kZS1hY2Nlc3MuaHRtbAppbmRleCA4
Mjc1ZTFiYmY4NWY2MTJhZmM4ZjdhZmJiY2Y0ZmQ3MDRiMjNmMjRmLi4zNjEwNDQwMjI2OTQ0ZDZm
YTJiZTZhYzFmOGVlZWVjOTMyZjg5MDU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9kb20vY3Jvc3MtZG9tYWluLWluc3BlY3RlZC1ub2RlLWFjY2Vzcy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RvbS9jcm9zcy1kb21haW4t
aW5zcGVjdGVkLW5vZGUtYWNjZXNzLmh0bWwKQEAgLTc5LDEwICs3OSw5IEBAIGZ1bmN0aW9uIHRl
c3QoKQogICAgIH0pOwogCiAgICAgV0kuZG9tTWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQoKGRvY3Vt
ZW50Tm9kZSkgPT4gewotICAgICAgICBXSS5kb21NYW5hZ2VyLnF1ZXJ5U2VsZWN0b3IoZG9jdW1l
bnROb2RlLmlkLCAiaWZyYW1lI215ZnJhbWUiLCAobm9kZUlkKSA9PiB7CisgICAgICAgIGRvY3Vt
ZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCJpZnJhbWUjbXlmcmFtZSIsIChub2RlSWQpID0+IHsKICAg
ICAgICAgICAgIGxldCBpZnJhbWVOb2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9kZUlk
KTsKLSAgICAgICAgICAgIGxldCBpZnJhbWVEb2N1bWVudE5vZGVJZCA9IGlmcmFtZU5vZGUuY2hp
bGRyZW5bMF0uaWQ7Ci0gICAgICAgICAgICBXSS5kb21NYW5hZ2VyLnF1ZXJ5U2VsZWN0b3IoaWZy
YW1lRG9jdW1lbnROb2RlSWQsICJkaXYjcm9vdERpdiIsIChub2RlSWQpID0+IHsKKyAgICAgICAg
ICAgIGlmcmFtZU5vZGUuY2hpbGRyZW5bMF0ucXVlcnlTZWxlY3RvcigiZGl2I3Jvb3REaXYiLCAo
bm9kZUlkKSA9PiB7CiAgICAgICAgICAgICAgICAgbm9kZUluTWFpbkZyYW1lSWQgPSBpZnJhbWVO
b2RlLmlkOwogICAgICAgICAgICAgICAgIG5vZGVJblN1YkZyYW1lSWQgPSBub2RlSWQ7CiAgICAg
ICAgICAgICAgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9kb20vZGlkRmlyZUV2ZW50Lmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9kb20vZGlkRmlyZUV2ZW50Lmh0bWwKaW5k
ZXggZmI0OTM2ZTQxYTYxOTA2MjdiYmRjZWQ5NDRmZWEzNzg2ODQyZjlhYS4uN2ExODIyY2JjOWZl
MzE0ODU2ZWNmNDRhNjAzOTBhZGM3MDQ0MWVlNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvZG9tL2RpZEZpcmVFdmVudC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RvbS9kaWRGaXJlRXZlbnQuaHRtbApAQCAtMTIzLDcgKzEy
Myw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIH0pOwogCiAgICAgV0kuZG9tTWFuYWdlci5yZXF1
ZXN0RG9jdW1lbnQoKGRvY3VtZW50Tm9kZSkgPT4gewotICAgICAgICBXSS5kb21NYW5hZ2VyLnF1
ZXJ5U2VsZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAiI3ZpZGVvIiwgKHZpZGVvTm9kZUlkKSA9PiB7
CisgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCIjdmlkZW8iLCAodmlkZW9Ob2Rl
SWQpID0+IHsKICAgICAgICAgICAgIHZpZGVvTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklk
KHZpZGVvTm9kZUlkKTsKICAgICAgICAgICAgIGlmICh2aWRlb05vZGUpCiAgICAgICAgICAgICAg
ICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLWluaXRpYXRvck5vZGUuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtaW5p
dGlhdG9yTm9kZS5odG1sCmluZGV4IDBmMmYyZmM2ZTM1MjIzOTFmODI0NzE3MWYxODk2ZDFiZWUy
ODI3YWIuLjRhY2E4ZjllZWY1ZmUxNGU2NzM0NWU0ZDM0MmFmOTRiYTIwOGE4ZTEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtaW5p
dGlhdG9yTm9kZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmsvcmVzb3VyY2UtaW5pdGlhdG9yTm9kZS5odG1sCkBAIC0xMTcsNyArMTE3LDcgQEAgZnVu
Y3Rpb24gdGVzdCgpCiAgICAgfSk7CiAKICAgICBXSS5kb21NYW5hZ2VyLnJlcXVlc3REb2N1bWVu
dCgoZG9jdW1lbnROb2RlKSA9PiB7Ci0gICAgICAgIFdJLmRvbU1hbmFnZXIucXVlcnlTZWxlY3Rv
cihkb2N1bWVudE5vZGUuaWQsICJ2aWRlbyN2aWRlbyIsICh2aWRlb05vZGVJZCkgPT4geworICAg
ICAgICBkb2N1bWVudE5vZGUucXVlcnlTZWxlY3RvcigidmlkZW8jdmlkZW8iLCAodmlkZW9Ob2Rl
SWQpID0+IHsKICAgICAgICAgICAgIHZpZGVvTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklk
KHZpZGVvTm9kZUlkKTsKICAgICAgICAgICAgIGlmICh2aWRlb05vZGUpCiAgICAgICAgICAgICAg
ICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY29uc29sZS9jb21tYW5kLWxpbmUtYXBpLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY29uc29sZS9jb21tYW5kLWxpbmUtYXBpLmh0bWwKaW5kZXggZGExMDVlYmUwMjIz
ODViZTNkNzk4NzM4ZWIyOGZjYzBhOTMzNmI5YS4uZmE5M2E4Zjk2MGIzZjI2MTI1MWU3NjAzM2Rk
NmU0M2E4YjM2ZTZjYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUv
Y29tbWFuZC1saW5lLWFwaS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xl
L2NvbW1hbmQtbGluZS1hcGkuaHRtbApAQCAtOTcsNyArOTcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gU2VsZWN0IGRpdiNmb28gZm9yICQwLgot
ICAgICAgICAgICAgV0kuZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwg
IiNmb28iLCAoY29udGVudE5vZGVJZCkgPT4geworICAgICAgICAgICAgZG9jdW1lbnROb2RlLnF1
ZXJ5U2VsZWN0b3IoIiNmb28iLCAoY29udGVudE5vZGVJZCkgPT4gewogICAgICAgICAgICAgICAg
IGlmICghY29udGVudE5vZGVJZCkgewogICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmxvZygiRkFJTDogRE9NIG5vZGUgbm90IGZvdW5kLiIpOwogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gcmVqZWN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2Fk
ZC1jc3MtcHJvcGVydHkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvYWRkLWNzcy1w
cm9wZXJ0eS5odG1sCmluZGV4IDdhOTFmYmQwZmEyNThkZThjYjgzMDljYmQ5OGRiYTY2ZDE3NDdl
MDAuLjQ1NWE5NWQ0ZTczYmZjYTljNGRmMDVjYTBkYzJjN2I0ZTVjMWRmY2IgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvYWRkLWNzcy1wcm9wZXJ0eS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jc3MvYWRkLWNzcy1wcm9wZXJ0eS5odG1sCkBAIC0xMTEsNyAr
MTExLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICB9KTsKIAogICAgIFdJLmRvbU1hbmFnZXIu
cmVxdWVzdERvY3VtZW50KChkb2N1bWVudE5vZGUpID0+IHsKLSAgICAgICAgV0kuZG9tTWFuYWdl
ci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgIiN4IiwgKGNvbnRlbnROb2RlSWQpID0+
IHsKKyAgICAgICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiN4IiwgKGNvbnRlbnROb2Rl
SWQpID0+IHsKICAgICAgICAgICAgIGlmIChjb250ZW50Tm9kZUlkKSB7CiAgICAgICAgICAgICAg
ICAgbGV0IGRvbU5vZGUgPSBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChjb250ZW50Tm9kZUlkKTsK
ICAgICAgICAgICAgICAgICBub2RlU3R5bGVzID0gV0kuY3NzTWFuYWdlci5zdHlsZXNGb3JOb2Rl
KGRvbU5vZGUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9jc3MtcHJv
cGVydHkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvY3NzLXByb3BlcnR5Lmh0bWwK
aW5kZXggNTFkOGViZGJjZTQ0YTU3YmQxNDdjZWJlM2MyMDgxOWE1ZDA2OWMzNi4uNDE0MmE1ZjZh
NDM4YjhmM2JmNTBhYmRiNGNkOTQ0NDBlMDM5MDA3OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2Nzcy9jc3MtcHJvcGVydHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY3NzL2Nzcy1wcm9wZXJ0eS5odG1sCkBAIC0yMjUsNyArMjI1LDcgQEAgZnVuY3Rpb24gdGVz
dCgpIHsKICAgICB9KTsKIAogICAgIFdJLmRvbU1hbmFnZXIucmVxdWVzdERvY3VtZW50KChkb2N1
bWVudE5vZGUpID0+IHsKLSAgICAgICAgV0kuZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3Vt
ZW50Tm9kZS5pZCwgImRpdiN4IiwgKGNvbnRlbnROb2RlSWQpID0+IHsKKyAgICAgICAgZG9jdW1l
bnROb2RlLnF1ZXJ5U2VsZWN0b3IoImRpdiN4IiwgKGNvbnRlbnROb2RlSWQpID0+IHsKICAgICAg
ICAgICAgIGlmIChjb250ZW50Tm9kZUlkKSB7CiAgICAgICAgICAgICAgICAgbGV0IGRvbU5vZGUg
PSBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChjb250ZW50Tm9kZUlkKTsKICAgICAgICAgICAgICAg
ICBub2RlU3R5bGVzID0gV0kuY3NzTWFuYWdlci5zdHlsZXNGb3JOb2RlKGRvbU5vZGUpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9mb3JjZS1wYWdlLWFwcGVhcmFuY2Uu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvZm9yY2UtcGFnZS1hcHBlYXJhbmNlLmh0
bWwKaW5kZXggNjI0YjlmMzEyY2M5YjY0ZDg2ZGUyYTVlN2NiYzljMDJjN2Y5M2ZkOS4uNGVlMmI2
NTQ3M2EzODY1NzgxZjJlZjA0ZDkxZDNhOTE1YTk5NzBlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2Nzcy9mb3JjZS1wYWdlLWFwcGVhcmFuY2UuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY3NzL2ZvcmNlLXBhZ2UtYXBwZWFyYW5jZS5odG1sCkBAIC0xMTYsNyAr
MTE2LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICB9KTsKIAogICAgIFdJLmRvbU1hbmFnZXIu
cmVxdWVzdERvY3VtZW50KChkb2N1bWVudE5vZGUpID0+IHsKLSAgICAgICAgV0kuZG9tTWFuYWdl
ci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgIiN4IiwgKGNvbnRlbnROb2RlSWQpID0+
IHsKKyAgICAgICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiN4IiwgKGNvbnRlbnROb2Rl
SWQpID0+IHsKICAgICAgICAgICAgIGlmIChjb250ZW50Tm9kZUlkKSB7CiAgICAgICAgICAgICAg
ICAgbGV0IGRvbU5vZGUgPSBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChjb250ZW50Tm9kZUlkKTsK
ICAgICAgICAgICAgICAgICBub2RlU3R5bGVzID0gV0kuY3NzTWFuYWdlci5zdHlsZXNGb3JOb2Rl
KGRvbU5vZGUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZW5lcmF0
ZUNTU1J1bGVTdHJpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2VuZXJhdGVD
U1NSdWxlU3RyaW5nLmh0bWwKaW5kZXggZGJiNTViM2M1ZTczYWUzMmM1OWZlZDA5ZjEzYjMyMzJh
Nzc2MGMyNC4uNWVmOWY3N2E5ZmFmMmFjNjc5MmNmM2VlZDMyNjhiNGRkNzVkMTcwOCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZW5lcmF0ZUNTU1J1bGVTdHJpbmcuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dlbmVyYXRlQ1NTUnVsZVN0cmluZy5o
dG1sCkBAIC01Niw3ICs1Niw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgfSk7CiAKICAgICBX
SS5kb21NYW5hZ2VyLnJlcXVlc3REb2N1bWVudCgoZG9jdW1lbnROb2RlKSA9PiB7Ci0gICAgICAg
IFdJLmRvbU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIjdGVzdC1ub2Rl
IiwgYXN5bmMgKGNvbnRlbnROb2RlSWQpID0+IHsKKyAgICAgICAgZG9jdW1lbnROb2RlLnF1ZXJ5
U2VsZWN0b3IoIiN0ZXN0LW5vZGUiLCBhc3luYyAoY29udGVudE5vZGVJZCkgPT4gewogICAgICAg
ICAgICAgaWYgKCFjb250ZW50Tm9kZUlkKSB7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIkRPTSBub2RlIG5vdCBmb3VuZC4iKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmNvbXBsZXRlVGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nz
cy9tYXRjaGVkLXN0eWxlLXByb3BlcnRpZXMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
c3MvbWF0Y2hlZC1zdHlsZS1wcm9wZXJ0aWVzLmh0bWwKaW5kZXggYjVkOGMxMGUyYmE4YmMxMjll
ZjU5ODJlMmRiNTU2NmIwZTE3MWNlZS4uOTQyYmQwNjIyMTYzOTRlZjEyZThlNjU1Zjg0MWVlZWY2
MzAzMzIwNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tYXRjaGVkLXN0
eWxlLXByb3BlcnRpZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21hdGNo
ZWQtc3R5bGUtcHJvcGVydGllcy5odG1sCkBAIC02MSw3ICs2MSw3IEBAIGZ1bmN0aW9uIHRlc3Qo
KSB7CiAgICAgfQogCiAgICAgV0kuZG9tTWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQoZnVuY3Rpb24o
ZG9jdW1lbnROb2RlKSB7Ci0gICAgICAgIFdJLmRvbU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1
bWVudE5vZGUuaWQsICIjbm9kZTEiLCBmdW5jdGlvbihjb250ZW50Tm9kZUlkKSB7CisgICAgICAg
IGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCIjbm9kZTEiLCBmdW5jdGlvbihjb250ZW50Tm9k
ZUlkKSB7CiAgICAgICAgICAgICBpZiAoY29udGVudE5vZGVJZCkgewogICAgICAgICAgICAgICAg
IHZhciBkb21Ob2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQoY29udGVudE5vZGVJZCk7CiAg
ICAgICAgICAgICAgICAgbm9kZVN0eWxlcyA9IFdJLmNzc01hbmFnZXIuc3R5bGVzRm9yTm9kZShk
b21Ob2RlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9kaWZ5LWNz
cy1wcm9wZXJ0eS1yYWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1j
c3MtcHJvcGVydHktcmFjZS5odG1sCmluZGV4IDY4ZGM2MWZmNzA5OWVkZWRmNWZmYWY4MWJjNzMz
MTQ1OGViNmQzYzQuLmY0ZjhiNmUxMGQ2NDJkYjBhNTNkZjRjYzI0ZDA3YzYwMzdiY2FlYzIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9kaWZ5LWNzcy1wcm9wZXJ0eS1y
YWNlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktY3NzLXByb3Bl
cnR5LXJhY2UuaHRtbApAQCAtODgsNyArODgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgIH0p
OwogCiAgICAgV0kuZG9tTWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQoKGRvY3VtZW50Tm9kZSkgPT4g
ewotICAgICAgICBXSS5kb21NYW5hZ2VyLnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAi
I3giLCAoY29udGVudE5vZGVJZCkgPT4geworICAgICAgICBkb2N1bWVudE5vZGUucXVlcnlTZWxl
Y3RvcigiI3giLCAoY29udGVudE5vZGVJZCkgPT4gewogICAgICAgICAgICAgaWYgKGNvbnRlbnRO
b2RlSWQpIHsKICAgICAgICAgICAgICAgICBsZXQgZG9tTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9k
ZUZvcklkKGNvbnRlbnROb2RlSWQpOwogICAgICAgICAgICAgICAgIG5vZGVTdHlsZXMgPSBXSS5j
c3NNYW5hZ2VyLnN0eWxlc0Zvck5vZGUoZG9tTm9kZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1jc3MtcHJvcGVydHkuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jc3MvbW9kaWZ5LWNzcy1wcm9wZXJ0eS5odG1sCmluZGV4IDMyZmZkOWE3YWEzYmU1
YjE3MmZiNzM0NzMzMTgzZDlkZDc4MWFhZDcuLjI4NjNmNzgyNTBkYWU2YTAyYWM2MGNlODIxYzA5
Y2JlZTFkOTU0ZjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9kaWZ5
LWNzcy1wcm9wZXJ0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9kaWZ5
LWNzcy1wcm9wZXJ0eS5odG1sCkBAIC0zMDksNyArMzA5LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsK
ICAgICB9KTsKIAogICAgIFdJLmRvbU1hbmFnZXIucmVxdWVzdERvY3VtZW50KChkb2N1bWVudE5v
ZGUpID0+IHsKLSAgICAgICAgV0kuZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9k
ZS5pZCwgIiN4IiwgKGNvbnRlbnROb2RlSWQpID0+IHsKKyAgICAgICAgZG9jdW1lbnROb2RlLnF1
ZXJ5U2VsZWN0b3IoIiN4IiwgKGNvbnRlbnROb2RlSWQpID0+IHsKICAgICAgICAgICAgIGlmIChj
b250ZW50Tm9kZUlkKSB7CiAgICAgICAgICAgICAgICAgbGV0IGRvbU5vZGUgPSBXSS5kb21NYW5h
Z2VyLm5vZGVGb3JJZChjb250ZW50Tm9kZUlkKTsKICAgICAgICAgICAgICAgICBub2RlU3R5bGVz
ID0gV0kuY3NzTWFuYWdlci5zdHlsZXNGb3JOb2RlKGRvbU5vZGUpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktaW5saW5lLXN0eWxlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1pbmxpbmUtc3R5bGUuaHRtbAppbmRleCBhYzczOTdj
YTI2ODk4OWY0OTk1YzQ4ZDU3ZWExNDIwMWY3NTdlZDkzLi4yM2RiMjI5NmU0NWM3NmQ0ZTU3MTZm
NzliYjgwM2QzNDg1YjI3MjNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3Nz
L21vZGlmeS1pbmxpbmUtc3R5bGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3Nz
L21vZGlmeS1pbmxpbmUtc3R5bGUuaHRtbApAQCAtNzIsNyArNzIsNyBAQCBmdW5jdGlvbiB0ZXN0
KCkgewogICAgIH0pOwogCiAgICAgV0kuZG9tTWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQoKGRvY3Vt
ZW50Tm9kZSkgPT4gewotICAgICAgICBXSS5kb21NYW5hZ2VyLnF1ZXJ5U2VsZWN0b3IoZG9jdW1l
bnROb2RlLmlkLCAiI3giLCAoY29udGVudE5vZGVJZCkgPT4geworICAgICAgICBkb2N1bWVudE5v
ZGUucXVlcnlTZWxlY3RvcigiI3giLCAoY29udGVudE5vZGVJZCkgPT4gewogICAgICAgICAgICAg
aWYgKGNvbnRlbnROb2RlSWQpIHsKICAgICAgICAgICAgICAgICBsZXQgZG9tTm9kZSA9IFdJLmRv
bU1hbmFnZXIubm9kZUZvcklkKGNvbnRlbnROb2RlSWQpOwogICAgICAgICAgICAgICAgIG5vZGVT
dHlsZXMgPSBXSS5jc3NNYW5hZ2VyLnN0eWxlc0Zvck5vZGUoZG9tTm9kZSk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1ydWxlLXNlbGVjdG9yLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1ydWxlLXNlbGVjdG9yLmh0bWwKaW5kZXgg
NzNkZmNlMjNiNzVjMzJhNGMyN2VjNzk3M2RlNTFiNDk5MzZjN2YyZi4uNWNmNDdhYTY5YWQwMGUw
MzgwMTQwZGM1YTJkNTcxMDliZjM5MTEwNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2Nzcy9tb2RpZnktcnVsZS1zZWxlY3Rvci5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jc3MvbW9kaWZ5LXJ1bGUtc2VsZWN0b3IuaHRtbApAQCAtNTksNyArNTksNyBAQCBmdW5j
dGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAg
V0kuZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgIi5mb28iLCBmdW5j
dGlvbihjb250ZW50Tm9kZUlkKSB7CisgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9y
KCIuZm9vIiwgZnVuY3Rpb24oY29udGVudE5vZGVJZCkgewogICAgICAgICAgICAgaWYgKCFjb250
ZW50Tm9kZUlkKSB7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVSUk9SOiBE
T00gbm9kZSBub3QgZm91bmQuIik7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZVRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mvb3ZlcnJp
ZGRlbi1wcm9wZXJ0eS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9vdmVycmlkZGVu
LXByb3BlcnR5Lmh0bWwKaW5kZXggY2UzMTUwZDcxOTUyY2I4ZjhkMWE3NmUxMDEwMTdmYjEyMjdi
NDg5YS4uZTRhMzRmNjQyZWI5ZTNiYjhjOGVjODAxYTY4MmJlM2ZlZDBkN2QwMSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9vdmVycmlkZGVuLXByb3BlcnR5Lmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9vdmVycmlkZGVuLXByb3BlcnR5Lmh0bWwKQEAg
LTE1LDcgKzE1LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKIAogICAgIGZ1bmN0aW9uIGdldE5vZGVT
dHlsZXMoc2VsZWN0b3IsIGNhbGxiYWNrKSB7CiAgICAgICAgIFdJLmRvbU1hbmFnZXIucmVxdWVz
dERvY3VtZW50KChkb2N1bWVudE5vZGUpID0+IHsKLSAgICAgICAgICAgIFdJLmRvbU1hbmFnZXIu
cXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsIHNlbGVjdG9yLCAoY29udGVudE5vZGVJZCkg
PT4geworICAgICAgICAgICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IsIChj
b250ZW50Tm9kZUlkKSA9PiB7CiAgICAgICAgICAgICAgICAgaWYgKCFjb250ZW50Tm9kZUlkKSB7
CiAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmFpbCgiRE9NIG5vZGUgbm90IGZv
dW5kLiIpOwogICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9wc2V1ZG8tZWxlbWVudC1t
YXRjaGVzLWZvci1wc2V1ZG8tZWxlbWVudC1ub2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY3NzL3BzZXVkby1lbGVtZW50LW1hdGNoZXMtZm9yLXBzZXVkby1lbGVtZW50LW5vZGUuaHRt
bAppbmRleCAxY2EyNmQwNmEyMDZhZDdmYjcwNWVkNWMxMTY4ZjQ1MTU2MjhjY2JlLi5lODc3NWEw
ZWQzZTRjNDFlMGFiMjFlZWY1YWIzMzIyYzgzOGFmY2NlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY3NzL3BzZXVkby1lbGVtZW50LW1hdGNoZXMtZm9yLXBzZXVkby1lbGVtZW50
LW5vZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL3BzZXVkby1lbGVtZW50
LW1hdGNoZXMtZm9yLXBzZXVkby1lbGVtZW50LW5vZGUuaHRtbApAQCAtMzgsNyArMzgsNyBAQCBm
dW5jdGlvbiB0ZXN0KCkgewogICAgIH0KIAogICAgIFdJLmRvbU1hbmFnZXIucmVxdWVzdERvY3Vt
ZW50KGZ1bmN0aW9uKGRvY3VtZW50Tm9kZSkgewotICAgICAgICBXSS5kb21NYW5hZ2VyLnF1ZXJ5
U2VsZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAiI3giLCBmdW5jdGlvbihjb250ZW50Tm9kZUlkKSB7
CisgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCIjeCIsIGZ1bmN0aW9uKGNvbnRl
bnROb2RlSWQpIHsKICAgICAgICAgICAgIHZhciBkb21Ob2RlID0gV0kuZG9tTWFuYWdlci5ub2Rl
Rm9ySWQoY29udGVudE5vZGVJZCk7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChk
b21Ob2RlKTsKICAgICAgICAgICAgIHZhciBiZWZvcmVQc2V1ZG9FbGVtZW50RE9NTm9kZSA9IGRv
bU5vZGUuYmVmb3JlUHNldWRvRWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2Nzcy9wc2V1ZG8tZWxlbWVudC1tYXRjaGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY3NzL3BzZXVkby1lbGVtZW50LW1hdGNoZXMuaHRtbAppbmRleCAwNmZjMmY0MDYzMmUz
YmUyYWZmNjQ2ODc3YjViZGZiZDVlNGQ0Y2U4Li4xYmQ2NDI5OGRhYmUzNzhlYWVkMDk5NDMyYmZk
ZTA4MWMwZDM5MGU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL3BzZXVk
by1lbGVtZW50LW1hdGNoZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL3Bz
ZXVkby1lbGVtZW50LW1hdGNoZXMuaHRtbApAQCAtNDAsNyArNDAsNyBAQCBmdW5jdGlvbiB0ZXN0
KCkgewogICAgIH0KIAogICAgIFdJLmRvbU1hbmFnZXIucmVxdWVzdERvY3VtZW50KGZ1bmN0aW9u
KGRvY3VtZW50Tm9kZSkgewotICAgICAgICBXSS5kb21NYW5hZ2VyLnF1ZXJ5U2VsZWN0b3IoZG9j
dW1lbnROb2RlLmlkLCAiI25vZGUxIiwgZnVuY3Rpb24oY29udGVudE5vZGVJZCkgeworICAgICAg
ICBkb2N1bWVudE5vZGUucXVlcnlTZWxlY3RvcigiI25vZGUxIiwgZnVuY3Rpb24oY29udGVudE5v
ZGVJZCkgewogICAgICAgICAgICAgdHJ5IHsgCiAgICAgICAgICAgICAgICAgaWYgKGNvbnRlbnRO
b2RlSWQpIHsKICAgICAgICAgICAgICAgICAgICAgdmFyIGRvbU5vZGUgPSBXSS5kb21NYW5hZ2Vy
Lm5vZGVGb3JJZChjb250ZW50Tm9kZUlkKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jc3MvcmVzb2x2ZS12YXJpYWJsZS12YWx1ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2Nzcy9yZXNvbHZlLXZhcmlhYmxlLXZhbHVlLmh0bWwKaW5kZXggOWM1NzFmNjQxZGJjNjAy
OWUwNjg0YzRhMjA0MDdkNzE4YjA0NGIwMC4uODliZDkxOTdmMjAzNTc2YTJhYjBhM2IyZDcyMzg4
N2M2ZjM0NWI4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9yZXNvbHZl
LXZhcmlhYmxlLXZhbHVlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9yZXNv
bHZlLXZhcmlhYmxlLXZhbHVlLmh0bWwKQEAgLTkwLDcgKzkwLDcgQEAgZnVuY3Rpb24gdGVzdCgp
IHsKICAgICAKIAogICAgIFdJLmRvbU1hbmFnZXIucmVxdWVzdERvY3VtZW50KChkb2N1bWVudE5v
ZGUpID0+IHsKLSAgICAgICAgV0kuZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9k
ZS5pZCwgIiNmb28iLCAoY29udGVudE5vZGVJZCkgPT4geworICAgICAgICBkb2N1bWVudE5vZGUu
cXVlcnlTZWxlY3RvcigiI2ZvbyIsIChjb250ZW50Tm9kZUlkKSA9PiB7CiAgICAgICAgICAgICBp
ZiAoIWNvbnRlbnROb2RlSWQpIHsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZhaWwo
IkRPTSBub2RlIG5vdCBmb3VuZC4iKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlVGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9zZWxl
Y3Rvci1keW5hbWljLXNwZWNpZmljaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3Nz
L3NlbGVjdG9yLWR5bmFtaWMtc3BlY2lmaWNpdHkuaHRtbAppbmRleCA3ZGYyODg0YzU0ODVhMzEz
NWVlODU1Njg5NjYwOGMxNDNhMTVjOTNjLi4wY2EyNzQwOWM2ODhiOTgzN2QzY2QzOWVhODc5MDhh
ZGQzNmI1MWVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL3NlbGVjdG9y
LWR5bmFtaWMtc3BlY2lmaWNpdHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3Nz
L3NlbGVjdG9yLWR5bmFtaWMtc3BlY2lmaWNpdHkuaHRtbApAQCAtNjksNyArNjksNyBAQCBmdW5j
dGlvbiB0ZXN0KCkgewogICAgICAgICB9CiAKICAgICAgICAgY3VycmVudFNlbGVjdG9yID0gc3Rl
cHNbY3VycmVudFN0ZXBJbmRleCsrXTsKLSAgICAgICAgV0kuZG9tTWFuYWdlci5xdWVyeVNlbGVj
dG9yKGRvY3VtZW50Tm9kZS5pZCwgY3VycmVudFNlbGVjdG9yLCBmdW5jdGlvbihjb250ZW50Tm9k
ZUlkKSB7CisgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKGN1cnJlbnRTZWxlY3Rv
ciwgZnVuY3Rpb24oY29udGVudE5vZGVJZCkgewogICAgICAgICAgICAgaWYgKGNvbnRlbnROb2Rl
SWQpIHsKICAgICAgICAgICAgICAgICB2YXIgZG9tTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZv
cklkKGNvbnRlbnROb2RlSWQpOwogICAgICAgICAgICAgICAgIG5vZGVTdHlsZXMgPSBXSS5jc3NN
YW5hZ2VyLnN0eWxlc0Zvck5vZGUoZG9tTm9kZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY3NzL3NlbGVjdG9yLXNwZWNpZmljaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY3NzL3NlbGVjdG9yLXNwZWNpZmljaXR5Lmh0bWwKaW5kZXggZGNjODMzMWYwNTlmOTky
NjVhNWUwNWI1YTgxOGY5MzAzMGY3NDMzMS4uOTlmMTBhNDE5NjlhZjMyMDhkYjkxNzllMTk0MTZh
YTFlNzhlZjQzNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9zZWxlY3Rv
ci1zcGVjaWZpY2l0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mvc2VsZWN0
b3Itc3BlY2lmaWNpdHkuaHRtbApAQCAtNDIsNyArNDIsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewog
ICAgIH0KIAogICAgIFdJLmRvbU1hbmFnZXIucmVxdWVzdERvY3VtZW50KGZ1bmN0aW9uKGRvY3Vt
ZW50Tm9kZSkgewotICAgICAgICBXSS5kb21NYW5hZ2VyLnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnRO
b2RlLmlkLCAiI25vZGUxIiwgZnVuY3Rpb24oY29udGVudE5vZGVJZCkgeworICAgICAgICBkb2N1
bWVudE5vZGUucXVlcnlTZWxlY3RvcigiI25vZGUxIiwgZnVuY3Rpb24oY29udGVudE5vZGVJZCkg
ewogICAgICAgICAgICAgaWYgKGNvbnRlbnROb2RlSWQpIHsKICAgICAgICAgICAgICAgICB2YXIg
ZG9tTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKGNvbnRlbnROb2RlSWQpOwogICAgICAg
ICAgICAgICAgIG5vZGVTdHlsZXMgPSBXSS5jc3NNYW5hZ2VyLnN0eWxlc0Zvck5vZGUoZG9tTm9k
ZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL3NoYWRvdy1zY29wZWQt
c3R5bGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mvc2hhZG93LXNjb3BlZC1zdHls
ZS5odG1sCmluZGV4IDI4NGI4MTU1MjAxN2U2ZTZmNjg5ZjA2OTY4ZDA2NmZjZDc3YmZlMTguLjQ0
NTk4Njg5ZTQ0OTI1ZmI3OTgxYWUwYzRhNTlkYzdkYTM3ZTJjYjEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jc3Mvc2hhZG93LXNjb3BlZC1zdHlsZS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jc3Mvc2hhZG93LXNjb3BlZC1zdHlsZS5odG1sCkBAIC00Myw3ICs0
Myw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBuYW1lOiAiQ1NTLlNoYWRvd1Njb3BlZFN0
eWxlLkhvc3RTdHlsZXMiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkVuc3VyZSBzaGFkb3cgcm9v
dCBob3N0IGVsZW1lbnQgZ2V0cyA6aG9zdCBzdHlsZXMuIiwKICAgICAgICAgdGVzdChyZXNvbHZl
LCByZWplY3QpIHsKLSAgICAgICAgICAgIFdJLmRvbU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1
bWVudE5vZGUuaWQsICIjc2hhZG93LWhvc3QiLCAobm9kZUlkKSA9PiB7CisgICAgICAgICAgICBk
b2N1bWVudE5vZGUucXVlcnlTZWxlY3RvcigiI3NoYWRvdy1ob3N0IiwgKG5vZGVJZCkgPT4gewog
ICAgICAgICAgICAgICAgIGlmICghbm9kZUlkKSB7CiAgICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZmFpbCgiRE9NIG5vZGUgI3NoYWRvdy1ob3N0IG5vdCBmb3VuZCBpbiBkb2N1bWVu
dC4iKTsKICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7CkBAIC02OCw3ICs2OCw3IEBAIGZ1
bmN0aW9uIHRlc3QoKQogICAgICAgICBuYW1lOiAiQ1NTLlNoYWRvd1Njb3BlZFN0eWxlLkVsZW1l
bnRJblNoYWRvd1RyZWUiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkVuc3VyZSBlbGVtZW50IGlu
IHNoYWRvdyB0cmVlIGdldHMgc2hhZG93IGRvbSBzY29wZWQgc3R5bGVzLiIsCiAgICAgICAgIHRl
c3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBXSS5kb21NYW5hZ2VyLnF1ZXJ5U2Vs
ZWN0b3IoaG9zdE5vZGUuc2hhZG93Um9vdHMoKVswXS5pZCwgIiNzaGFkb3ctbm9kZSIsIChub2Rl
SWQpID0+IHsKKyAgICAgICAgICAgIGhvc3ROb2RlLnNoYWRvd1Jvb3RzKClbMF0ucXVlcnlTZWxl
Y3RvcigiI3NoYWRvdy1ub2RlIiwgKG5vZGVJZCkgPT4gewogICAgICAgICAgICAgICAgIGlmICgh
bm9kZUlkKSB7CiAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmFpbCgiRE9NIG5v
ZGUgI3NoYWRvdy1ub2RlIG5vdCBmb3VuZCBpbiAjc2hhZG93LWhvc3QncyBzaGFkb3dSb290LiIp
OwogICAgICAgICAgICAgICAgICAgICByZWplY3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jc3Mvc3R5bGVzaGVldC13aXRoLW11dGF0aW9ucy5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2Nzcy9zdHlsZXNoZWV0LXdpdGgtbXV0YXRpb25zLmh0bWwKaW5kZXggMzZk
OTc2MWVjNjk0ODg2YjQ2MzBlMDU5Yjg0NTk3MTc1NzRmYjVhYS4uYzgxODA4YmIwYjUyZDM0ZjNi
YzFlYzAxN2Y3YzE1ZjRkMzliZDhhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2Nzcy9zdHlsZXNoZWV0LXdpdGgtbXV0YXRpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2Nzcy9zdHlsZXNoZWV0LXdpdGgtbXV0YXRpb25zLmh0bWwKQEAgLTMzLDcgKzMzLDcg
QEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICB9CiAKICAgICBXSS5kb21NYW5hZ2VyLnJlcXVlc3RE
b2N1bWVudChmdW5jdGlvbihkb2N1bWVudE5vZGUpIHsKLSAgICAgICAgV0kuZG9tTWFuYWdlci5x
dWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgIi5iYXIiLCBmdW5jdGlvbihjb250ZW50Tm9k
ZUlkKSB7CisgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCIuYmFyIiwgZnVuY3Rp
b24oY29udGVudE5vZGVJZCkgewogICAgICAgICAgICAgaWYgKGNvbnRlbnROb2RlSWQpIHsKICAg
ICAgICAgICAgICAgICB2YXIgZG9tTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKGNvbnRl
bnROb2RlSWQpOwogICAgICAgICAgICAgICAgIG5vZGVTdHlsZXMgPSBXSS5jc3NNYW5hZ2VyLnN0
eWxlc0Zvck5vZGUoZG9tTm9kZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZG9tLWRlYnVnZ2VyL2F0dHJpYnV0ZS1tb2RpZmllZC1zdHlsZS5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9hdHRyaWJ1dGUtbW9kaWZpZWQtc3R5bGUuaHRtbAppbmRl
eCBkMzdkNThhNWRkNDk2NWFiZGExZGYyY2U4ZTE2NzQ2NjVhYWM4ZTRhLi5jNmU1ZDQ1OGZkZTE2
YWNlY2U2YmRkZDZjYjY0OGUwNmMxOTE1NjY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZG9tLWRlYnVnZ2VyL2F0dHJpYnV0ZS1tb2RpZmllZC1zdHlsZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvYXR0cmlidXRlLW1vZGlmaWVkLXN0eWxl
Lmh0bWwKQEAgLTExNSw3ICsxMTUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogCi0gICAgICAgIFdJLmRvbU1hbmFnZXIucXVlcnlTZWxlY3Rvcihk
b2N1bWVudE5vZGUuaWQsICIjdGVzdCIsIGFzeW5jIChub2RlSWQpID0+IHsKKyAgICAgICAgZG9j
dW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiN0ZXN0IiwgYXN5bmMgKG5vZGVJZCkgPT4gewogICAg
ICAgICAgICAgbGV0IHRlc3ROb2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKTsK
ICAgICAgICAgICAgIGlmICghdGVzdE5vZGUpIHsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmZhaWwoIk1pc3NpbmcgI3Rlc3Qgbm9kZSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kb20tZGVidWdnZXIvZG9tLWJyZWFrcG9pbnRzLmh0bWwKaW5kZXggOGY3MTVi
NTNjMjRiYzhmYzdlYTM1MjkyYTVjYTFjNjQ5ODQwMjllMC4uMmYyNTA5ZmE3OWUxYTgxOGYwNDhl
OGY4OTA2OTQ1ZWUwYjhjNTUxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rv
bS1kZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZG9tLWRlYnVnZ2VyL2RvbS1icmVha3BvaW50cy5odG1sCkBAIC04Miw3ICs4Miw3IEBAIGZ1
bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAg
ICAgfQogCi0gICAgICAgICAgICAgICAgV0kuZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3Vt
ZW50Tm9kZS5pZCwgc2VsZWN0b3IsIChub2RlSWQpID0+IHsKKyAgICAgICAgICAgICAgICBkb2N1
bWVudE5vZGUucXVlcnlTZWxlY3RvcihzZWxlY3RvciwgKG5vZGVJZCkgPT4gewogICAgICAgICAg
ICAgICAgICAgICBpZiAoIW5vZGVJZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5mYWlsKCJTZWxlY3RvciByZXR1cm5lZCBubyBub2Rlcy4iLCBzZWxlY3Rvcik7CiAg
ICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kb20vYXR0cmlidXRlTW9kaWZpZWQuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kb20vYXR0cmlidXRlTW9kaWZpZWQuaHRtbAppbmRleCA1NGQyZDFlYTMyMzNjNzliYmJj
OGIyZmVmMmNmNjFiMmI4OTM2MDgxLi5lYTIwOTIwZmE1MmI1YjcxN2FkN2IyNjk5ODc5YmQzYTVj
ZTYyOTQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2F0dHJpYnV0ZU1v
ZGlmaWVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9hdHRyaWJ1dGVNb2Rp
ZmllZC5odG1sCkBAIC0yMyw3ICsyMyw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAKICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJDcmVhdGluZyB0ZXN0IG5vZGUuLi4iKTsKICAgICAgICAg
ICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNyZWF0ZVRlc3ROb2RlKCIk
e2lkfSIpYCk7Ci0gICAgICAgICAgICBsZXQgdGVzdE5vZGVJZCA9IGF3YWl0IFdJLmRvbU1hbmFn
ZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIjIiArIGlkKTsKKyAgICAgICAgICAg
IGxldCB0ZXN0Tm9kZUlkID0gYXdhaXQgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiMiICsg
aWQpOwogICAgICAgICAgICAgbGV0IHRlc3ROb2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQo
dGVzdE5vZGVJZCk7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCh0ZXN0Tm9kZSwg
Ik1pc3NpbmcgdGVzdCBub2RlIGZvciBpZCAiICsgdGVzdE5vZGVJZCk7CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vYnJlYWtwb2ludC1mb3ItZXZlbnQtbGlzdGVuZXIu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vYnJlYWtwb2ludC1mb3ItZXZlbnQtbGlz
dGVuZXIuaHRtbAppbmRleCAzMjQ4MTExMzI2NDk1NDNkYThjYmI3MTcyYTk1Zjg1MjkzMjljYzI1
Li4wZDJmZWE1YWE1MmQ0NTQ0YTExZjI0NjgxMDVjZTQ4MzdmYjQzNmFhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2JyZWFrcG9pbnQtZm9yLWV2ZW50LWxpc3RlbmVyLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9icmVha3BvaW50LWZvci1ldmVudC1s
aXN0ZW5lci5odG1sCkBAIC0xODIsOCArMTgyLDggQEAgZnVuY3Rpb24gdGVzdCgpIHsKIAogICAg
IFdJLmRvbU1hbmFnZXIucmVxdWVzdERvY3VtZW50KChkb2N1bWVudE5vZGUpID0+IHsKICAgICAg
ICAgUHJvbWlzZS5hbGwoWwotICAgICAgICAgICAgV0kuZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9y
KGRvY3VtZW50Tm9kZS5pZCwgIiNidXR0b24xIiksCi0gICAgICAgICAgICBXSS5kb21NYW5hZ2Vy
LnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAiI2J1dHRvbjIiKSwKKyAgICAgICAgICAg
IGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCIjYnV0dG9uMSIpLAorICAgICAgICAgICAgZG9j
dW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiNidXR0b24yIiksCiAgICAgICAgIF0pCiAgICAgICAg
IC50aGVuKChbYnV0dG9uMUlkLCBidXR0b24ySWRdKSA9PiB7CiAgICAgICAgICAgICBidXR0b24x
Tm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKGJ1dHRvbjFJZCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2NzcC1iaWc1LWhhc2guaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kb20vY3NwLWJpZzUtaGFzaC5odG1sCmluZGV4IDYzMjkyNGVhZGVjNWM1MzE1
YmJmODdkYzM4OTY2OTUxNDU5NGY4ZDcuLmVmNDk0MTU5MDczZjNiYTJiYjI4YzY1NzgyMzZhYjg3
NjllNzhjOTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vY3NwLWJpZzUt
aGFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vY3NwLWJpZzUtaGFzaC5o
dG1sCkBAIC0xMSw3ICsxMSw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgXTsKICAgICBXSS5k
b21NYW5hZ2VyLnJlcXVlc3REb2N1bWVudChmdW5jdGlvbihkb2N1bWVudE5vZGUpIHsKICAgICAg
ICAgZm9yIChsZXQge3NlbGVjdG9yLCBoYXNofSBvZiB0ZXN0Q2FzZXMpIHsKLSAgICAgICAgICAg
IFdJLmRvbU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsIHNlbGVjdG9yLCBm
dW5jdGlvbihub2RlSWQpIHsKKyAgICAgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9y
KHNlbGVjdG9yLCBmdW5jdGlvbihub2RlSWQpIHsKICAgICAgICAgICAgICAgICBsZXQgZG9tTm9k
ZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCk7CiAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIiIpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0
VGhhdChkb21Ob2RlLCBgR290IERPTU5vZGUgZm9yICR7c2VsZWN0b3J9YCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2NzcC1oYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZG9tL2NzcC1oYXNoLmh0bWwKaW5kZXggYTMxOGRjMjcxNWI1MjE2ZjM5YmIwMWIx
NjA1MGJhZDAxNzFkM2FlZC4uNjkwYjcyOTY5MzBlNzkzZDYyMzY3YWUyMGNmZjNmNmM1ZWZlZGY5
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9jc3AtaGFzaC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vY3NwLWhhc2guaHRtbApAQCAtMjEsNyArMjEs
NyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogCiAgICAgV0kuZG9tTWFuYWdlci5yZXF1ZXN0RG9jdW1l
bnQoZnVuY3Rpb24oZG9jdW1lbnROb2RlKSB7CiAgICAgICAgIGZvciAobGV0IHtzZWxlY3Rvciwg
aGFzaH0gb2YgdGVzdENhc2VzKSB7Ci0gICAgICAgICAgICBXSS5kb21NYW5hZ2VyLnF1ZXJ5U2Vs
ZWN0b3IoZG9jdW1lbnROb2RlLmlkLCBzZWxlY3RvciwgZnVuY3Rpb24obm9kZUlkKSB7CisgICAg
ICAgICAgICBkb2N1bWVudE5vZGUucXVlcnlTZWxlY3RvcihzZWxlY3RvciwgZnVuY3Rpb24obm9k
ZUlkKSB7CiAgICAgICAgICAgICAgICAgbGV0IGRvbU5vZGUgPSBXSS5kb21NYW5hZ2VyLm5vZGVG
b3JJZChub2RlSWQpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCIiKTsKICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZG9tTm9kZSwgYEdvdCBET01O
b2RlIGZvciAke3NlbGVjdG9yfWApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RvbS9jdXN0b21FbGVtZW50U3RhdGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20v
Y3VzdG9tRWxlbWVudFN0YXRlLmh0bWwKaW5kZXggN2IxMjhkODZhZTNiOGFmNzIwYTFhZmMyMWNi
YmRkMmQ2NzNmZWRkZC4uMzFhMmRjYzNkZjM0ODc4YTA3N2Y1YzU4YmFkODNhNTJkMjNiY2I5YSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9jdXN0b21FbGVtZW50U3RhdGUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2N1c3RvbUVsZW1lbnRTdGF0ZS5o
dG1sCkBAIC0xNCw3ICsxNCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHN1aXRlLmFkZFRlc3RD
YXNlKHsKICAgICAgICAgbmFtZTogIkN1c3RvbUVsZW1lbnRTdGF0ZS5CdWlsdGluIiwKICAgICAg
ICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIFdJLmRvbU1hbmFnZXIucXVl
cnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIjYnVpbHRpbiIsIChub2RlSWQpID0+IHsKKyAg
ICAgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCIjYnVpbHRpbiIsIChub2RlSWQp
ID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9y
SWQobm9kZUlkKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKG5v
ZGUuY3VzdG9tRWxlbWVudFN0YXRlKCksICJidWlsdGluIiwgIiNidWlsdGluIHNob3VsZCBiZSBD
dXN0b21FbGVtZW50U3RhdGUuQnVpbHRpbi4iKTsKICAgICAgICAgICAgICAgICByZXNvbHZlKCk7
CkBAIC0yNSw3ICsyNSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHN1aXRlLmFkZFRlc3RDYXNl
KHsKICAgICAgICAgbmFtZTogIkN1c3RvbUVsZW1lbnRTdGF0ZS5DdXN0b20uQ29uc3RydWN0ZWQi
LAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgV0kuZG9tTWFu
YWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgImNvbnN0cnVjdGVkLWVsZW1lbnQi
LCAobm9kZUlkKSA9PiB7CisgICAgICAgICAgICBkb2N1bWVudE5vZGUucXVlcnlTZWxlY3Rvcigi
Y29uc3RydWN0ZWQtZWxlbWVudCIsIChub2RlSWQpID0+IHsKICAgICAgICAgICAgICAgICBjb25z
dCBub2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKTsKICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKG5vZGUuY3VzdG9tRWxlbWVudFN0YXRlKCksICJj
dXN0b20iLCAiY29uc3RydWN0ZWQtZWxlbWVudCBzaG91bGQgYmUgQ3VzdG9tRWxlbWVudFN0YXRl
LkN1c3RvbS4iKTsKICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CkBAIC0zNiw3ICszNiw3IEBA
IGZ1bmN0aW9uIHRlc3QoKQogICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAgbmFtZTog
IkN1c3RvbUVsZW1lbnRTdGF0ZS5DdXN0b20uVXBncmFkZWQiLAogICAgICAgICB0ZXN0KHJlc29s
dmUsIHJlamVjdCkgewotICAgICAgICAgICAgV0kuZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRv
Y3VtZW50Tm9kZS5pZCwgInVwZ3JhZGVkLWVsZW1lbnQiLCAobm9kZUlkKSA9PiB7CisgICAgICAg
ICAgICBkb2N1bWVudE5vZGUucXVlcnlTZWxlY3RvcigidXBncmFkZWQtZWxlbWVudCIsIChub2Rl
SWQpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gV0kuZG9tTWFuYWdlci5ub2Rl
Rm9ySWQobm9kZUlkKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFs
KG5vZGUuY3VzdG9tRWxlbWVudFN0YXRlKCksICJjdXN0b20iLCAidXBncmFkZWQtZWxlbWVudCBz
aG91bGQgYmUgQ3VzdG9tRWxlbWVudFN0YXRlLkN1c3RvbS4iKTsKICAgICAgICAgICAgICAgICBy
ZXNvbHZlKCk7CkBAIC00Nyw3ICs0Nyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHN1aXRlLmFk
ZFRlc3RDYXNlKHsKICAgICAgICAgbmFtZTogIkN1c3RvbUVsZW1lbnRTdGF0ZS5XYWl0aW5nIiwK
ICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIFdJLmRvbU1hbmFn
ZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICJ1bmRlZmluZWQtZWxlbWVudCIsIChu
b2RlSWQpID0+IHsKKyAgICAgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCJ1bmRl
ZmluZWQtZWxlbWVudCIsIChub2RlSWQpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBub2Rl
ID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKTsKICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdEVxdWFsKG5vZGUuY3VzdG9tRWxlbWVudFN0YXRlKCksICJ3YWl0aW5n
IiwgInVuZGVmaW5lZC1lbGVtZW50IHNob3VsZCBiZSBDdXN0b21FbGVtZW50U3RhdGUuV2FpdGlu
Zy4iKTsKICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CkBAIC01OCw3ICs1OCw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAgbmFtZTogIkN1c3Rv
bUVsZW1lbnRTdGF0ZS5GYWlsZWQiLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewot
ICAgICAgICAgICAgV0kuZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwg
ImZhaWxlZC1lbGVtZW50IiwgKG5vZGVJZCkgPT4geworICAgICAgICAgICAgZG9jdW1lbnROb2Rl
LnF1ZXJ5U2VsZWN0b3IoImZhaWxlZC1lbGVtZW50IiwgKG5vZGVJZCkgPT4gewogICAgICAgICAg
ICAgICAgIGNvbnN0IG5vZGUgPSBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChub2RlSWQpOwogICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwobm9kZS5jdXN0b21FbGVtZW50
U3RhdGUoKSwgImZhaWxlZCIsICJmYWlsZWQtZWxlbWVudCBzaG91bGQgYmUgQ3VzdG9tRWxlbWVu
dFN0YXRlLkZhaWxlZC4iKTsKICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2RvbXV0aWxpdGllcy1jc3NwYXRoLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2RvbXV0aWxpdGllcy1jc3NwYXRoLmh0bWwKaW5kZXgg
MjQxYjk4ZmZhZTlkZTc3OWNkNTNhOTEyNGRiNTA0M2MxZTBhNGYzZi4uMDlmZmM5N2U4YjQ0ZWZi
MTQyZmY0ZTc1ZWJlMzhlODE3YTEwZDA1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RvbS9kb211dGlsaXRpZXMtY3NzcGF0aC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kb20vZG9tdXRpbGl0aWVzLWNzc3BhdGguaHRtbApAQCAtOCw3ICs4LDcgQEAgZnVuY3Rp
b24gdGVzdCgpCiAgICAgbGV0IGRvY3VtZW50Tm9kZTsKIAogICAgIGFzeW5jIGZ1bmN0aW9uIG5v
ZGVGb3JTZWxlY3RvcihzZWxlY3RvcikgewotICAgICAgICBsZXQgbm9kZUlkID0gYXdhaXQgV0ku
ZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgc2VsZWN0b3IpOworICAg
ICAgICBsZXQgbm9kZUlkID0gYXdhaXQgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0
b3IpOwogICAgICAgICByZXR1cm4gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKTsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZG9tdXRpbGl0aWVz
LXBhdGgtZHVtcC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9kb211dGlsaXRpZXMt
cGF0aC1kdW1wLmh0bWwKaW5kZXggMzY0N2E1NTk0Y2I4ZmMxZGY2MmMxNjRjYTYzMzFkMTYxMGRl
ZDA2YS4uMjAyMDhhOGJlOGNiOTZlYWMyMDg3N2MzOTAyODM0ZTI1M2EzZWVlYyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9kb211dGlsaXRpZXMtcGF0aC1kdW1wLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9kb211dGlsaXRpZXMtcGF0aC1kdW1wLmh0
bWwKQEAgLTQxLDcgKzQxLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICBXSS5kb21NYW5hZ2Vy
LnJlcXVlc3REb2N1bWVudCgoZG9jdW1lbnROb2RlKSA9PiB7CiAgICAgICAgIC8vIFB1c2ggYWxs
IHRoZSBub2RlcyB0byB0aGUgZnJvbnRlbmQuCi0gICAgICAgIFdJLmRvbU1hbmFnZXIucXVlcnlT
ZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICJodG1sIiwgKG5vZGVJZCkgPT4geworICAgICAgICBk
b2N1bWVudE5vZGUucXVlcnlTZWxlY3RvcigiaHRtbCIsIChub2RlSWQpID0+IHsKICAgICAgICAg
ICAgIGxldCBodG1sTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCk7CiAgICAg
ICAgICAgICBodG1sTm9kZS5nZXRTdWJ0cmVlKDEwLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAg
YnVpbGROb2RlTGlzdChodG1sTm9kZSwgMCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZG9tL2RvbXV0aWxpdGllcy14cGF0aC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RvbS9kb211dGlsaXRpZXMteHBhdGguaHRtbAppbmRleCA4NmQ1MTI0ZWIyY2NiZTIyZWMzMjJi
MGVkMTNmMGMzNzY5YzliN2Q5Li4yMGM2ZTczMDE4NDE5ZTkwYWJjZTE2MDQwZGJkYzYyZjNkYjVj
MmNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2RvbXV0aWxpdGllcy14
cGF0aC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZG9tdXRpbGl0aWVzLXhw
YXRoLmh0bWwKQEAgLTgsNyArOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIGxldCBkb2N1bWVu
dE5vZGU7CiAKICAgICBmdW5jdGlvbiBub2RlRm9yU2VsZWN0b3Ioc2VsZWN0b3IsIGNhbGxiYWNr
KSB7Ci0gICAgICAgIFdJLmRvbU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQs
IHNlbGVjdG9yLCAobm9kZUlkKSA9PiB7CisgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVj
dG9yKHNlbGVjdG9yLCAobm9kZUlkKSA9PiB7CiAgICAgICAgICAgICBjYWxsYmFjayhXSS5kb21N
YW5hZ2VyLm5vZGVGb3JJZChub2RlSWQpKTsKICAgICAgICAgfSk7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9ldmVudC1saXN0ZW5lci1pbnNwZWN0ZWQtbm9k
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9ldmVudC1saXN0ZW5lci1pbnNwZWN0
ZWQtbm9kZS5odG1sCmluZGV4IDZlNzQyNmMwMDU3YmE5YTM5MzhmN2NmZjg2NjM5Zjk3NGMyZGUy
MzUuLmNjODlhMTcwMjVhZjRhOGUwYWFjYjUyMjgyYmNiYTg0ZTc0YzMyNTAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZXZlbnQtbGlzdGVuZXItaW5zcGVjdGVkLW5vZGUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2V2ZW50LWxpc3RlbmVyLWluc3Bl
Y3RlZC1ub2RlLmh0bWwKQEAgLTE0NSw5ICsxNDUsOSBAQCBmdW5jdGlvbiB0ZXN0KCkgewogCiAg
ICAgV0kuZG9tTWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQoYXN5bmMgKGRvY3VtZW50Tm9kZSkgPT4g
ewogICAgICAgICBsZXQgW3BhcmVudE5vZGVJZCwgY2hpbGROb2RlSWQsIHNpYmxpbmdOb2RlSWRd
ID0gYXdhaXQgUHJvbWlzZS5hbGwoWwotICAgICAgICAgICAgV0kuZG9tTWFuYWdlci5xdWVyeVNl
bGVjdG9yKGRvY3VtZW50Tm9kZSwgIiNwYXJlbnQiKSwKLSAgICAgICAgICAgIFdJLmRvbU1hbmFn
ZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUsICIjY2hpbGQiKSwKLSAgICAgICAgICAgIFdJ
LmRvbU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUsICIjc2libGluZyIpLAorICAg
ICAgICAgICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiNwYXJlbnQiKSwKKyAgICAgICAg
ICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCIjY2hpbGQiKSwKKyAgICAgICAgICAgIGRv
Y3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCIjc2libGluZyIpLAogICAgICAgICBdKTsKIAogICAg
ICAgICBwYXJlbnROb2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQocGFyZW50Tm9kZUlkKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0RXZlbnRMaXN0ZW5lcnNG
b3JOb2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2dldEV2ZW50TGlzdGVuZXJz
Rm9yTm9kZS5odG1sCmluZGV4IDYwMjgyMjYwZmIwMWVjM2I2ZDI0NjQ1NzEzYjU4Mjc2N2NkMmYz
ZjIuLjBiZWE5YzljZGM3Yjk5ZjM3ZTQxM2I5NzVhN2FjOTUyZGZhMzMwN2EgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9nZXRFdmVudExpc3RlbmVyc0Zvck5vZGUu
aHRtbApAQCAtNDcsNyArNDcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgIH0pOwogCiAgICAg
V0kuZG9tTWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQoKGRvY3VtZW50Tm9kZSkgPT4gewotICAgICAg
ICBXSS5kb21NYW5hZ2VyLnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAiZGl2I3giLCAo
Y29udGVudE5vZGVJZCkgPT4geworICAgICAgICBkb2N1bWVudE5vZGUucXVlcnlTZWxlY3Rvcigi
ZGl2I3giLCAoY29udGVudE5vZGVJZCkgPT4gewogICAgICAgICAgICAgaWYgKCFjb250ZW50Tm9k
ZUlkKSB7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJET00gbm9kZSBub3Qg
Zm91bmQuIik7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0T3V0ZXJIVE1MLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2dldE91dGVySFRNTC5odG1sCmluZGV4IDcwODBl
OTIxNDMxN2I0ZjVkNWI3MDQ2YjlmOThjY2RjYjRiNTYwYWUuLmU1MmU1NzUzYzIwNWM0NDgzNWQz
ZmQyNjFiY2JiZmRjODI5ZWM4MDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
b20vZ2V0T3V0ZXJIVE1MLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9nZXRP
dXRlckhUTUwuaHRtbApAQCAtMTIsNyArMTIsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAg
ZGVzY3JpcHRpb246ICJHZXQgdGhlIE91dGVySFRNTCBvZiB0aGUgdGFyZ2V0IGVsZW1lbnQuIiwK
ICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAgIFdJLmRvbU1hbmFn
ZXIucmVxdWVzdERvY3VtZW50KGZ1bmN0aW9uKGRvY3VtZW50Tm9kZSkgewotICAgICAgICAgICAg
ICAgIFdJLmRvbU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIjeCIsIGZ1
bmN0aW9uKG5vZGVJZCkgeworICAgICAgICAgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVj
dG9yKCIjeCIsIGZ1bmN0aW9uKG5vZGVJZCkgewogICAgICAgICAgICAgICAgICAgICBsZXQgZG9t
Tm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCk7CiAgICAgICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGRvbU5vZGUsICJET01Ob2RlIGV4aXN0cyIpOwogICAg
ICAgICAgICAgICAgICAgICBkb21Ob2RlLmdldE91dGVySFRNTChmdW5jdGlvbihlcnJvciwgb3V0
ZXJIVE1MKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2luc2VydEFk
amFjZW50SFRNTC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9pbnNlcnRBZGphY2Vu
dEhUTUwuaHRtbAppbmRleCBhMGQ2ZWIyZGZlYzJlMDkwYWY1ZWRhMmVhNzg5NTNjMDAyZTM4N2Qx
Li45ZDA2MDgyNDFjZTNlOTJiMmUyMTA4OTE0ZTIyMzBhZDQ3Yjk4MzYwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2luc2VydEFkamFjZW50SFRNTC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kb20vaW5zZXJ0QWRqYWNlbnRIVE1MLmh0bWwKQEAgLTY5LDcg
KzY5LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgfSk7CiAKICAgICBXSS5kb21NYW5hZ2VyLnJl
cXVlc3REb2N1bWVudCgoZG9jdW1lbnROb2RlKSA9PiB7Ci0gICAgICAgIFdJLmRvbU1hbmFnZXIu
cXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIjcmVmZXJlbmNlIiwgKG5vZGVJZCkgPT4g
eworICAgICAgICBkb2N1bWVudE5vZGUucXVlcnlTZWxlY3RvcigiI3JlZmVyZW5jZSIsIChub2Rl
SWQpID0+IHsKICAgICAgICAgICAgIGRvbU5vZGUgPSBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChu
b2RlSWQpOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZG9tTm9kZSwgYE5vZGUg
d2l0aCBpZCAicmVmZXJlbmNlIiBzaG91bGQgZXhpc3QuYCk7CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtZHluYW1pYy5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1keW5hbWljLmh0bWwKaW5kZXggNWQw
ZDZhZmQ0NDc4NzczZTY0YzcwMTRlOTc5ZWNlZjllOGZmNDljMi4uMDY0Yzg4ZjQ4YjljZWE3NTFk
ODkxYzRmM2FkZmYxNDJlODIwZWM1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RvbS9wc2V1ZG8tZWxlbWVudC1keW5hbWljLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1keW5hbWljLmh0bWwKQEAgLTExMiw3ICsxMTIsNyBAQCBm
dW5jdGlvbiB0ZXN0KCkgewogICAgIH0KIAogICAgIFdJLmRvbU1hbmFnZXIucmVxdWVzdERvY3Vt
ZW50KGZ1bmN0aW9uKGRvY3VtZW50Tm9kZSkgewotICAgICAgICBXSS5kb21NYW5hZ2VyLnF1ZXJ5
U2VsZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAiI3giLCBmdW5jdGlvbihub2RlSWQpIHsKKyAgICAg
ICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiN4IiwgZnVuY3Rpb24obm9kZUlkKSB7CiAg
ICAgICAgICAgICB0ZXN0RE9NTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCk7
CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiIik7CiAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGVjdFRoYXQodGVzdERPTU5vZGUsICJHb3QgRE9NTm9kZSBmb3IgI3giKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtc3RhdGlj
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3BzZXVkby1lbGVtZW50LXN0YXRpYy5o
dG1sCmluZGV4IDQzZDhhZTZhZTRjNTUwNDE1N2VkYjY3NzgzMTg5NDY1ZTUxYmY0ODcuLjNhOWZj
OTk1MWQ1NmQwMjE5NTFiZDU3ODA2MWE1MDA1ZmI3YmI2MDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtc3RhdGljLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1zdGF0aWMuaHRtbApAQCAtNCw3ICs0
LDcgQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiB0ZXN0KCkgewogICAgIFdJLmRvbU1hbmFnZXIucmVx
dWVzdERvY3VtZW50KGZ1bmN0aW9uKGRvY3VtZW50Tm9kZSkgewotICAgICAgICBXSS5kb21NYW5h
Z2VyLnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAiI25vbmUiLCBmdW5jdGlvbihub2Rl
SWQpIHsKKyAgICAgICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiNub25lIiwgZnVuY3Rp
b24obm9kZUlkKSB7CiAgICAgICAgICAgICB2YXIgZG9tTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9k
ZUZvcklkKG5vZGVJZCk7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiIik7CiAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZG9tTm9kZSwgIkdvdCBET01Ob2RlIGZv
ciAjbm9uZSIpOwpAQCAtMTUsNyArMTUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIWRvbU5vZGUuYWZ0ZXJQc2V1ZG9FbGVtZW50KCkpOwog
ICAgICAgICB9KTsKIAotICAgICAgICBXSS5kb21NYW5hZ2VyLnF1ZXJ5U2VsZWN0b3IoZG9jdW1l
bnROb2RlLmlkLCAiI2IiLCBmdW5jdGlvbihub2RlSWQpIHsKKyAgICAgICAgZG9jdW1lbnROb2Rl
LnF1ZXJ5U2VsZWN0b3IoIiNiIiwgZnVuY3Rpb24obm9kZUlkKSB7CiAgICAgICAgICAgICB2YXIg
ZG9tTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCk7CiAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZygiIik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRo
YXQoZG9tTm9kZSwgIkdvdCBET01Ob2RlIGZvciAjYiIpOwpAQCAtMjcsNyArMjcsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGRvbU5v
ZGUuYmVmb3JlUHNldWRvRWxlbWVudCgpLnBzZXVkb1R5cGUoKSA9PT0gV0kuRE9NTm9kZS5Qc2V1
ZG9FbGVtZW50VHlwZS5CZWZvcmUsICJET01Ob2RlIGZvciBiZWZvcmUgcHNldWRvIGVsZW1lbnQg
aGFzIHRoZSByaWdodCB0eXBlIik7CiAgICAgICAgIH0pOwogCi0gICAgICAgIFdJLmRvbU1hbmFn
ZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIjYSIsIGZ1bmN0aW9uKG5vZGVJZCkg
eworICAgICAgICBkb2N1bWVudE5vZGUucXVlcnlTZWxlY3RvcigiI2EiLCBmdW5jdGlvbihub2Rl
SWQpIHsKICAgICAgICAgICAgIHZhciBkb21Ob2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQo
bm9kZUlkKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCIiKTsKICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChkb21Ob2RlLCAiR290IERPTU5vZGUgZm9yICNhIik7
CkBAIC0zOSw3ICszOSw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGVjdFRoYXQoZG9tTm9kZS5hZnRlclBzZXVkb0VsZW1lbnQoKS5wc2V1ZG9UeXBl
KCkgPT09IFdJLkRPTU5vZGUuUHNldWRvRWxlbWVudFR5cGUuQWZ0ZXIsICJET01Ob2RlIGZvciBh
ZnRlciBwc2V1ZG8gZWxlbWVudCBoYXMgdGhlIHJpZ2h0IHR5cGUiKTsKICAgICAgICAgfSk7CiAK
LSAgICAgICAgV0kuZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgIiN4
IiwgZnVuY3Rpb24obm9kZUlkKSB7CisgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9y
KCIjeCIsIGZ1bmN0aW9uKG5vZGVJZCkgewogICAgICAgICAgICAgdmFyIGRvbU5vZGUgPSBXSS5k
b21NYW5hZ2VyLm5vZGVGb3JJZChub2RlSWQpOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIiIpOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGRvbU5vZGUsICJH
b3QgRE9NTm9kZSBmb3IgI3giKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
b20vc2V0QWxsb3dFZGl0aW5nVXNlckFnZW50U2hhZG93VHJlZXMuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kb20vc2V0QWxsb3dFZGl0aW5nVXNlckFnZW50U2hhZG93VHJlZXMuaHRtbApp
bmRleCAzODgwN2U1ZTQ5ODc1YmFmOGE5NjJiM2FiMjc1OTAzMTAwNmVjYWFlLi5hZjQwOGUwOWM0
NTk1ZWFiYmUxOTcxYWMwODVkYzkwZGE0ZDM1MGU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZG9tL3NldEFsbG93RWRpdGluZ1VzZXJBZ2VudFNoYWRvd1RyZWVzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9zZXRBbGxvd0VkaXRpbmdVc2VyQWdlbnRTaGFk
b3dUcmVlcy5odG1sCkBAIC0zOCw3ICszOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIH0pOwog
CiAgICAgV0kuZG9tTWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQoKGRvY3VtZW50Tm9kZSkgPT4gewot
ICAgICAgICBXSS5kb21NYW5hZ2VyLnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAiI3gi
LCAoY29udGVudE5vZGVJZCkgPT4geworICAgICAgICBkb2N1bWVudE5vZGUucXVlcnlTZWxlY3Rv
cigiI3giLCAoY29udGVudE5vZGVJZCkgPT4gewogICAgICAgICAgICAgbGV0IGlucHV0Tm9kZSA9
IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKGNvbnRlbnROb2RlSWQpOwogCiAgICAgICAgICAgICBs
ZXQgZnJhZ21lbnQgPSBpbnB1dE5vZGUuc2hhZG93Um9vdHMoKVswXTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kb20vc2V0SW5zcGVjdGVkTm9kZS5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RvbS9zZXRJbnNwZWN0ZWROb2RlLmh0bWwKaW5kZXggZmI3MmYxNmNhZjUy
YmQ3YzNmZTU0ZjllZWY1OTlkOTBkMzJlNjEyYS4uYjI0NDYwZDQyMGNhZWRhNDU2MDI3NTQwMmFm
ZDU1ZGVlMDMyNmEwZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9zZXRJ
bnNwZWN0ZWROb2RlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9zZXRJbnNw
ZWN0ZWROb2RlLmh0bWwKQEAgLTc1LDExICs3NSwxMSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAv
LyBGSVhNRTogV2hhdCBzaG91bGQgJDAgYmUgYWZ0ZXIgcmVsb2FkaW5nIC8gbmF2aWdhdGluZyB0
aGUgcGFnZS4gU2hvdWxkIGl0IGJlIGNsZWFyZWQ/CiAKICAgICBXSS5kb21NYW5hZ2VyLnJlcXVl
c3REb2N1bWVudCgoZG9jdW1lbnROb2RlKSA9PiB7Ci0gICAgICAgIFdJLmRvbU1hbmFnZXIucXVl
cnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIjYSIsIChjb250ZW50Tm9kZUlkKSA9PiB7Cisg
ICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCIjYSIsIChjb250ZW50Tm9kZUlkKSA9
PiB7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChjb250ZW50Tm9kZUlkLCAiI2Eg
bm9kZSBzaG91bGQgZXhpc3QuIik7CiAgICAgICAgICAgICBub2RlQSA9IFdJLmRvbU1hbmFnZXIu
bm9kZUZvcklkKGNvbnRlbnROb2RlSWQpOwogICAgICAgICB9KTsKLSAgICAgICAgV0kuZG9tTWFu
YWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgIiNiIiwgKGNvbnRlbnROb2RlSWQp
ID0+IHsKKyAgICAgICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiNiIiwgKGNvbnRlbnRO
b2RlSWQpID0+IHsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGNvbnRlbnROb2Rl
SWQsICIjYiBub2RlIHNob3VsZCBleGlzdC4iKTsKICAgICAgICAgICAgIG5vZGVCID0gV0kuZG9t
TWFuYWdlci5ub2RlRm9ySWQoY29udGVudE5vZGVJZCk7CiAgICAgICAgICAgICBzdWl0ZS5ydW5U
ZXN0Q2FzZXNBbmRGaW5pc2goKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
b20vc2V0T3V0ZXJIVE1MLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3NldE91dGVy
SFRNTC5odG1sCmluZGV4IDY1Y2U2ZmY0M2NhMWI5MjU1OGMyOGJmMWZlZDI3ODdhNmU5MDg2OWQu
LmM1YTUwNWZhYTc5Zjc0NDAyZGNjNjM5NmNhYWFkNGU5NDRjZDU4NmYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kb20vc2V0T3V0ZXJIVE1MLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RvbS9zZXRPdXRlckhUTUwuaHRtbApAQCAtNzIsNyArNzIsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkKICAgICB9KTsKIAogICAgIFdJLmRvbU1hbmFnZXIucmVxdWVzdERvY3VtZW50
KGZ1bmN0aW9uKGRvY3VtZW50Tm9kZSkgewotICAgICAgICBXSS5kb21NYW5hZ2VyLnF1ZXJ5U2Vs
ZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAiI3giLCBmdW5jdGlvbihub2RlSWQpIHsKKyAgICAgICAg
ZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiN4IiwgZnVuY3Rpb24obm9kZUlkKSB7CiAgICAg
ICAgICAgICBkb21Ob2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKTsKICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGRvbU5vZGUsICJET01Ob2RlIGV4aXN0cy4iKTsK
ICAgICAgICAgICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9zaGFkb3ctYW5kLW5vbi1zaGFkb3ctY2hpbGRyZW4u
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vc2hhZG93LWFuZC1ub24tc2hhZG93LWNo
aWxkcmVuLmh0bWwKaW5kZXggOGQ5MjAzYzQyN2ZhNjBkOTkyOTNiMDkxOTBhMzk2MDhhYTAwYjI1
Ny4uZjRlMmQzZDVlYWVhN2RjMWNkNzY1YjkzZTQ2MDMyMDkwMWEwOWRjMSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9zaGFkb3ctYW5kLW5vbi1zaGFkb3ctY2hpbGRyZW4u
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3NoYWRvdy1hbmQtbm9uLXNoYWRv
dy1jaGlsZHJlbi5odG1sCkBAIC05LDE0ICs5LDE1IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
IAogZnVuY3Rpb24gdGVzdCgpCiB7Ci0gICAgbGV0IGRvY3VtZW50Tm9kZUlkOworICAgIGxldCBk
b2N1bWVudE5vZGUgPSBudWxsOworCiAgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVh
dGVBc3luY1N1aXRlKCJET01Ob2RlLlNoYWRvd0FuZE5vblNoYWRvd0NoaWxkcmVuIik7CiAKICAg
ICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CiAgICAgICAgIG5hbWU6ICJET01Ob2RlLlNoYWRvd0FuZE5v
blNoYWRvd0NoaWxkcmVuLlZpZGVvV2l0aFNvdXJjZSIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAi
Q2hlY2sgZm9yIGFsbCBjaGlsZHJlbiBvZiBhIHZpZGVvIHdpdGggYSBzb3VyY2UgY2hpbGQuIiwK
ICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIFdJLmRvbU1hbmFn
ZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGVJZCwgIiN0ZXN0LXZpZGVvIiwgKG5vZGVJZCkg
PT4geworICAgICAgICAgICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiN0ZXN0LXZpZGVv
IiwgKG5vZGVJZCkgPT4gewogICAgICAgICAgICAgICAgIGxldCBkb21Ob2RlID0gV0kuZG9tTWFu
YWdlci5ub2RlRm9ySWQobm9kZUlkKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdEVxdWFsKGRvbU5vZGUubm9kZU5hbWUoKSwgIlZJREVPIiwgIkRPTU5vZGUgc2hvdWxkIGJl
IGEgYHZpZGVvYCBlbGVtZW50LiIpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0VGhhdChkb21Ob2RlLmhhc0NoaWxkTm9kZXMoKSwgIkRPTU5vZGUgc2hvdWxkIGhhdmUgY2hp
bGQgbm9kZXMuIik7CkBAIC0zMyw4ICszNCw4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB9
CiAgICAgfSk7CiAKLSAgICBXSS5kb21NYW5hZ2VyLnJlcXVlc3REb2N1bWVudCgoZG9jdW1lbnRO
b2RlKSA9PiB7Ci0gICAgICAgIGRvY3VtZW50Tm9kZUlkID0gZG9jdW1lbnROb2RlLmlkOworICAg
IFdJLmRvbU1hbmFnZXIucmVxdWVzdERvY3VtZW50KChyb290KSA9PiB7CisgICAgICAgIGRvY3Vt
ZW50Tm9kZSA9IHJvb3Q7CiAgICAgICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOwog
ICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9zaGFkb3dS
b290VHlwZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9zaGFkb3dSb290VHlwZS5o
dG1sCmluZGV4IDVhMzU1NWVkODJmZGRlMGU0YmU2MGZkYTlkNmU0ODk0ZDE5NDkyZjYuLmRmMmZh
ZDhjNjFkNzliNDA5YzQxMzRkNWYxMzU4NmEwNDdhMDhkNWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kb20vc2hhZG93Um9vdFR5cGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZG9tL3NoYWRvd1Jvb3RUeXBlLmh0bWwKQEAgLTEyLDcgKzEyLDcgQEAgZnVuY3Rp
b24gdGVzdCgpCiAgICAgc3VpdGUuYWRkVGVzdENhc2UoewogICAgICAgICBuYW1lOiAiU2hhZG93
Um9vdFR5cGUuVXNlckFnZW50IiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAg
ICAgICAgICAgIFdJLmRvbU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIj
aG9zdC11c2VyLWFnZW50IiwgKG5vZGVJZCkgPT4geworICAgICAgICAgICAgZG9jdW1lbnROb2Rl
LnF1ZXJ5U2VsZWN0b3IoIiNob3N0LXVzZXItYWdlbnQiLCAobm9kZUlkKSA9PiB7CiAgICAgICAg
ICAgICAgICAgbGV0IGRvbU5vZGUgPSBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChub2RlSWQpOwog
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGRvbU5vZGUsICJHb3QgRE9NTm9k
ZSBmb3IgI2hvc3QtdXNlci1hZ2VudCIpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0VGhhdChkb21Ob2RlLnNoYWRvd1Jvb3RzKCkubGVuZ3RoID09PSAxLCAiRE9NTm9kZSBo
YXMgYSBzaW5nbGUgc2hhZG93IHJvb3QuIik7CkBAIC0yNiw3ICsyNiw3IEBAIGZ1bmN0aW9uIHRl
c3QoKQogICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAgbmFtZTogIlNoYWRvd1Jvb3RU
eXBlLkNsb3NlZCIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAg
ICBXSS5kb21NYW5hZ2VyLnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAiI2hvc3QtY2xv
c2VkIiwgKG5vZGVJZCkgPT4geworICAgICAgICAgICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0
b3IoIiNob3N0LWNsb3NlZCIsIChub2RlSWQpID0+IHsKICAgICAgICAgICAgICAgICBsZXQgZG9t
Tm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCk7CiAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnQoZG9tTm9kZSwgIkdvdCBET01Ob2RlIGZvciAjaG9zdC1jbG9z
ZWQiKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZG9tTm9kZS5z
aGFkb3dSb290cygpLmxlbmd0aCA9PT0gMSwgIkRPTU5vZGUgaGFzIGEgc2luZ2xlIHNoYWRvdyBy
b290LiIpOwpAQCAtNDAsNyArNDAsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBzdWl0ZS5hZGRU
ZXN0Q2FzZSh7CiAgICAgICAgIG5hbWU6ICJTaGFkb3dSb290VHlwZS5PcGVuIiwKICAgICAgICAg
dGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIFdJLmRvbU1hbmFnZXIucXVlcnlT
ZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIjaG9zdC1vcGVuIiwgKG5vZGVJZCkgPT4geworICAg
ICAgICAgICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiNob3N0LW9wZW4iLCAobm9kZUlk
KSA9PiB7CiAgICAgICAgICAgICAgICAgbGV0IGRvbU5vZGUgPSBXSS5kb21NYW5hZ2VyLm5vZGVG
b3JJZChub2RlSWQpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGRvbU5v
ZGUsICJHb3QgRE9NTm9kZSBmb3IgI2hvc3Qtb3BlbiIpOwogICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdChkb21Ob2RlLnNoYWRvd1Jvb3RzKCkubGVuZ3RoID09PSAxLCAi
RE9NTm9kZSBoYXMgYSBzaW5nbGUgc2hhZG93IHJvb3QuIik7CkBAIC01NCw3ICs1NCw3IEBAIGZ1
bmN0aW9uIHRlc3QoKQogICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAgbmFtZTogIk5v
U2hhZG93Um9vdFR5cGUiLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewotICAgICAg
ICAgICAgV0kuZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgIiNuby1o
b3N0IiwgKG5vZGVJZCkgPT4geworICAgICAgICAgICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0
b3IoIiNuby1ob3N0IiwgKG5vZGVJZCkgPT4gewogICAgICAgICAgICAgICAgIGxldCBkb21Ob2Rl
ID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKTsKICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydChkb21Ob2RlLCAiR290IERPTU5vZGUgZm9yICNuby1ob3N0Iik7CiAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGRvbU5vZGUuc2hhZG93Um9v
dHMoKS5sZW5ndGggPT09IDAsICJET01Ob2RlIGhhcyBubyBzaGFkb3cgcm9vdHMuIik7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3RlbXBsYXRlLWNvbnRlbnQuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vdGVtcGxhdGUtY29udGVudC5odG1sCmluZGV4IDU2
YjQ2NWQxMTE4MDczNDU4NDcxOGViZDE5NzIzODllMjQ0NzI4ZWUuLjY2ODY3NTFkMzQxNjUzNWEz
M2VlNGViMGI3ZGE0OTlmM2MxMGZkMmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kb20vdGVtcGxhdGUtY29udGVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
b20vdGVtcGxhdGUtY29udGVudC5odG1sCkBAIC00LDEzICs0LDEzIEBACiA8c2NyaXB0PgogZnVu
Y3Rpb24gdGVzdCgpIHsKICAgICBXSS5kb21NYW5hZ2VyLnJlcXVlc3REb2N1bWVudChmdW5jdGlv
bihkb2N1bWVudE5vZGUpIHsKLSAgICAgICAgV0kuZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRv
Y3VtZW50Tm9kZS5pZCwgIiNkaXYiLCBmdW5jdGlvbihub2RlSWQpIHsKKyAgICAgICAgZG9jdW1l
bnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiNkaXYiLCBmdW5jdGlvbihub2RlSWQpIHsKICAgICAgICAg
ICAgIHZhciBkb21Ob2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKTsKICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChkb21Ob2RlLCAiR290IERPTU5vZGUgZm9y
IGRpdiBlbGVtZW50Iik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoIWRv
bU5vZGUudGVtcGxhdGVDb250ZW50KCksICJET01Ob2RlIGRvZXMgbm90IGhhdmUgdGVtcGxhdGUg
Y29udGVudCIpOwogICAgICAgICB9KTsKIAotICAgICAgICBXSS5kb21NYW5hZ2VyLnF1ZXJ5U2Vs
ZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAiI3RlbXBsYXRlIiwgZnVuY3Rpb24obm9kZUlkKSB7Cisg
ICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCIjdGVtcGxhdGUiLCBmdW5jdGlvbihu
b2RlSWQpIHsKICAgICAgICAgICAgIHZhciBkb21Ob2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9y
SWQobm9kZUlkKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCIiKTsKICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChkb21Ob2RlLCAiR290IERPTU5vZGUgZm9yIHRl
bXBsYXRlIGVsZW1lbnQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2Rl
bC9kb20tbm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL2RvbS1ub2RlLmh0
bWwKaW5kZXggYTYyOTc2OWVkOGU0MTE1NTc4NTU4ZDI1YzQ2YTA0YmMwZTNiMmE5MC4uNWQ5MTc0
YzgxNGViODcyYzIyMGQ4OTE4MTc0YzIxMWYyZmJlYmViYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL21vZGVsL2RvbS1ub2RlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL21vZGVsL2RvbS1ub2RlLmh0bWwKQEAgLTEyLDcgKzEyLDcgQEAgZnVuY3Rpb24gdGVzdCgp
CiAgICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdCBnZXR0aW5nIHRoZSBhdHRyaWJ1dGVzIG9mIGEg
bm9kZS4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgICAgV0ku
ZG9tTWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQoKGRvY3VtZW50Tm9kZSkgPT4gewotICAgICAgICAg
ICAgICAgIFdJLmRvbU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIjdGVz
dC1pZCIsIChub2RlSWQpID0+IHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudE5vZGUucXVlcnlT
ZWxlY3RvcigiI3Rlc3QtaWQiLCAobm9kZUlkKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIGxl
dCBkb21Ob2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKTsKICAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZG9tTm9kZSwgIkRPTU5vZGUgZXhpc3RzIik7
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL2hpZHBpLXNuYXBzaG90
LXNpemUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL2hpZHBpLXNuYXBzaG90LXNp
emUuaHRtbAppbmRleCBlOTc3MjUxZTk3MDJiOTBkNDdhOGFjNDBhMjJhOTIzY2NiMzcwMzk5Li44
NmQ0N2MzNDNlODliOGFmNzU4M2MwNzZlOWNjYjllZDQ0MWMyMGEzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9oaWRwaS1zbmFwc2hvdC1zaXplLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2UvaGlkcGktc25hcHNob3Qtc2l6ZS5odG1sCkBAIC0zMiw3
ICszMiw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBuYW1lOiAiU25hcHNob3RQcmVzZXJ2
ZXNQYWdlUmVzb2x1dGlvbiIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiVmVyaWZ5IHRoYXQgYSBu
b2RlIHNuYXBzaG90IGlzIG5vdCBzY2FsZWQgZG93biB0byBDU1MgcGl4ZWxzLiIsCiAgICAgICAg
IGFzeW5jIHRlc3QoKSB7Ci0gICAgICAgICAgICBsZXQgdGFyZ2V0Tm9kZUlkID0gYXdhaXQgV0ku
ZG9tTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgIiNlbGVtZW50LXRvLXNu
YXBzaG90Iik7CisgICAgICAgICAgICBsZXQgdGFyZ2V0Tm9kZUlkID0gYXdhaXQgZG9jdW1lbnRO
b2RlLnF1ZXJ5U2VsZWN0b3IoIiNlbGVtZW50LXRvLXNuYXBzaG90Iik7CiAgICAgICAgICAgICBs
ZXQge2RhdGFVUkx9ID0gYXdhaXQgUGFnZUFnZW50LnNuYXBzaG90Tm9kZSh0YXJnZXROb2RlSWQp
OwogICAgICAgICAgICAgbGV0IGRldmljZVBpeGVsUmF0aW8gPSBhd2FpdCBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb2ApOwogICAgICAgICAgICAg
bGV0IGVsZW1lbnRCb3VuZHMgPSBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3
aW5kb3cuc25hcHNob3RFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpYCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>