<?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>215793</bug_id>
          
          <creation_ts>2020-08-24 21:40:59 -0700</creation_ts>
          <short_desc>Web Inspector: allow url breakpoints to be configured</short_desc>
          <delta_ts>2020-09-03 13:07:45 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>215362</dependson>
    
    <dependson>215363</dependson>
    
    <dependson>215747</dependson>
    
    <dependson>215794</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>bburg</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1682571</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-08-24 21:40:59 -0700</bug_when>
    <thetext>This would allow developers to do things like:
 - ignore the first N requests
 - evaluate JavaScript whenever a network request is dispatched without pausing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683931</commentid>
    <comment_count>1</comment_count>
      <attachid>407544</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-08-29 12:40:58 -0700</bug_when>
    <thetext>Created attachment 407544
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684379</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-31 21:41:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/68118986&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684656</commentid>
    <comment_count>3</comment_count>
      <attachid>407544</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-09-01 16:08:35 -0700</bug_when>
    <thetext>Comment on attachment 407544
Patch

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

r=me, great cleanup!

Please rebase and run through EWS prior to landing.

&gt; LayoutTests/inspector/debugger/resources/breakpoint-options-utilities.js:56
&gt; +                await resumePromise;

Oops.

&gt; LayoutTests/inspector/dom-debugger/url-breakpoints-all-requests-expected.txt:14
&gt; +Adding &quot;text&quot; URL Breakpoint...

Uh, why &quot;text&quot;?

&gt; LayoutTests/inspector/dom-debugger/url-breakpoints-all-requests-expected.txt:143
&gt; +-- Running test case: URLBreakpoint.BreakOnAllXHR..Options.Condition

Nit: Extra ..

&gt; LayoutTests/inspector/dom-debugger/url-breakpoints-all-requests-expected.txt:187
&gt; +-- Running test case: URLBreakpoint.BreakOnAllXHR..Options.Action.Log

Ditto

&gt; LayoutTests/inspector/dom-debugger/url-breakpoints-all-requests-expected.txt:219
&gt; +-- Running test case: URLBreakpoint.BreakOnAllXHR..Options.Actions.Evaluate

Ditto.

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        Add an `options` paramater to `DOMDebugger.setURLBreakpoint` to allow configuration.

Nit: parameter

&gt; Source/WebInspectorUI/UserInterface/Controllers/DOMDebuggerManager.js:725
&gt; +        if (target.hasCommand(&quot;DOMDebugger.setXHRBreakpoint&quot;)) {

Nit: comment and the command name don&apos;t match. Please add separate COMPATIBILITY for setXHRBreakpoint and setURLBreakpoint.

&gt; Source/WebInspectorUI/UserInterface/Controllers/DOMDebuggerManager.js:734
&gt; +        if (!target.hasCommand(&quot;DOMDebugger.setURLBreakpoint&quot;))

.. down here.

&gt; Source/WebInspectorUI/UserInterface/Controllers/DOMDebuggerManager.js:750
&gt; +        if (target.hasCommand(&quot;DOMDebugger.removeXHRBreakpoint&quot;)) {

Ditto to the above COMPATIBILITY note.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684668</commentid>
    <comment_count>4</comment_count>
      <attachid>407544</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-09-01 16:51:45 -0700</bug_when>
    <thetext>Comment on attachment 407544
Patch

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

&gt;&gt; LayoutTests/inspector/dom-debugger/url-breakpoints-all-requests-expected.txt:14
&gt;&gt; +Adding &quot;text&quot; URL Breakpoint...
&gt; 
&gt; Uh, why &quot;text&quot;?

The All Requests breakpoint is a text URL breakpoint (i.e. not regular expression) that has no URL.  I&apos;ll special case that in the logging :)

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/DOMDebuggerManager.js:725
&gt;&gt; +        if (target.hasCommand(&quot;DOMDebugger.setXHRBreakpoint&quot;)) {
&gt; 
&gt; Nit: comment and the command name don&apos;t match. Please add separate COMPATIBILITY for setXHRBreakpoint and setURLBreakpoint.

The compatibility comment here is that `setXHRBreakpoint` is what existed before `setURLBreakpoint` replaced it (when `fetch` support was added).

I agree that this is confusing tho, so I&apos;ll add separate comments for each :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685108</commentid>
    <comment_count>5</comment_count>
      <attachid>407849</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-09-02 18:56:27 -0700</bug_when>
    <thetext>Created attachment 407849
Patch

Also ensure that modifying the options of a `WI.EventBreakpoint` doesn&apos;t enable breakpoints globally.  This matches what is done with `WI.JavaScriptBreakpoint`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685347</commentid>
    <comment_count>6</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-09-03 10:56:10 -0700</bug_when>
    <thetext>This patch modifies the inspector protocol. Please ensure that any frontend changes appropriately use feature checks for new protocol features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685406</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-03 13:07:44 -0700</bug_when>
    <thetext>Committed r266538: &lt;https://trac.webkit.org/changeset/266538&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 407849.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407544</attachid>
            <date>2020-08-29 12:40:58 -0700</date>
            <delta_ts>2020-09-02 18:56:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>215793.diff</filename>
            <type>text/plain</type>
            <size>114931</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkMGMzZTlhYmEzZi4uZmNjODFhNzlmNGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAor
MjAyMC0wOC0yOSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAg
V2ViIEluc3BlY3RvcjogYWxsb3cgdXJsIGJyZWFrcG9pbnRzIHRvIGJlIGNvbmZpZ3VyZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTc5MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9y
L2RlYnVnZ2VyL3Jlc291cmNlcy9icmVha3BvaW50LW9wdGlvbnMtdXRpbGl0aWVzLmpzOgorICAg
ICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci5JbnNwZWN0b3JUZXN0LkJyZWFrcG9p
bnRPcHRpb25zLmFkZFRlc3RDYXNlcyk6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tLWRlYnVn
Z2VyL3Jlc291cmNlcy91cmwtYnJlYWtwb2ludC11dGlsaXRpZXMuanM6IEFkZGVkLgorICAgICAg
ICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci5JbnNwZWN0b3JUZXN0LlVSTEJyZWFrcG9p
bnQudGVhcmRvd24pOgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci5JbnNw
ZWN0b3JUZXN0LlVSTEJyZWFrcG9pbnQuY3JlYXRlQnJlYWtwb2ludCk6CisgICAgICAgIChUZXN0
UGFnZS5yZWdpc3RlckluaXRpYWxpemVyLkluc3BlY3RvclRlc3QuVVJMQnJlYWtwb2ludC5hZGRC
cmVha3BvaW50KToKKyAgICAgICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIuSW5zcGVj
dG9yVGVzdC5VUkxCcmVha3BvaW50LnJlcXVlc3QpOgorICAgICAgICAqIGluc3BlY3Rvci9kb20t
ZGVidWdnZXIvdXJsLWJyZWFrcG9pbnRzLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RvbS1k
ZWJ1Z2dlci91cmwtYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rv
ci9kb20tZGVidWdnZXIvdXJsLWJyZWFrcG9pbnRzLWFsbC1yZXF1ZXN0cy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL3VybC1icmVha3BvaW50cy1hbGwtcmVx
dWVzdHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tLWRlYnVn
Z2VyL3VybC1icmVha3BvaW50cy1jb250YWluaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9kb20tZGVidWdnZXIvdXJsLWJyZWFrcG9pbnRzLWNvbnRhaW5pbmctZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL3VybC1icmVha3Bv
aW50cy1tYXRjaGluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tLWRlYnVn
Z2VyL3VybC1icmVha3BvaW50cy1tYXRjaGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICBTcGxpdCB0aGUgb25lIFVSTCBicmVha3BvaW50IHRlc3QgaW50byBmb3VyIHNvIHRoZXkgcnVu
IHF1aWNrZXIuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL3Jlc291cmNlcy9l
dmVudC1icmVha3BvaW50LXV0aWxpdGllcy5qczoKKyAgICAgICAgKFRlc3RQYWdlLnJlZ2lzdGVy
SW5pdGlhbGl6ZXIuSW5zcGVjdG9yVGVzdC5FdmVudEJyZWFrcG9pbnQuYWRkQnJlYWtwb2ludE9w
dGlvbnNUZXN0Q2FzZXMpOiBEZWxldGVkLgorICAgICAgICAqIGluc3BlY3Rvci9kb20tZGVidWdn
ZXIvZXZlbnQtYW5pbWF0aW9uLWZyYW1lLWJyZWFrcG9pbnRzLmh0bWw6CisgICAgICAgICogaW5z
cGVjdG9yL2RvbS1kZWJ1Z2dlci9ldmVudC1hbmltYXRpb24tZnJhbWUtYnJlYWtwb2ludHMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9kb20tZGVidWdnZXIvZXZlbnQtaW50ZXJ2
YWwtYnJlYWtwb2ludHMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2V2
ZW50LWludGVydmFsLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZG9tLWRlYnVnZ2VyL2V2ZW50LWxpc3RlbmVyLWJyZWFrcG9pbnRzLmh0bWw6CisgICAgICAg
ICogaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9ldmVudC1saXN0ZW5lci1icmVha3BvaW50cy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9ldmVudC10aW1lb3V0
LWJyZWFrcG9pbnRzLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9ldmVu
dC10aW1lb3V0LWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgVXNlIGBJbnNwZWN0
b3JUZXN0LkJyZWFrcG9pbnRPcHRpb25zLmFkZFRlc3RDYXNlc2AgaW5zdGVhZCBvZiBkdXBsaWNh
dGluZyB0aGUgbG9naWMuCisKIDIwMjAtMDgtMjggIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBw
bGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFsbG93IHNwZWNpYWwgSmF2YVNjcmlw
dCBicmVha3BvaW50cyB0byBiZSBjb25maWd1cmVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL2JyZWFrcG9pbnQtb3B0aW9ucy11dGlsaXRpZXMu
anMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL2JyZWFrcG9pbnQt
b3B0aW9ucy11dGlsaXRpZXMuanMKaW5kZXggNDEzZmVkMTFhZTYuLmM2MGRmMDc3MWY5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL2JyZWFrcG9p
bnQtb3B0aW9ucy11dGlsaXRpZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3Jlc291cmNlcy9icmVha3BvaW50LW9wdGlvbnMtdXRpbGl0aWVzLmpzCkBAIC0xLDcgKzEs
OSBAQAogVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgSW5zcGVjdG9y
VGVzdC5CcmVha3BvaW50T3B0aW9ucyA9IHt9OwogCi0gICAgSW5zcGVjdG9yVGVzdC5CcmVha3Bv
aW50T3B0aW9ucy5hZGRUZXN0Q2FzZXMgPSBmdW5jdGlvbihzdWl0ZSwge2NyZWF0ZUJyZWFrcG9p
bnQsIHRyaWdnZXJCcmVha3BvaW50fSkgeworICAgIEluc3BlY3RvclRlc3QuQnJlYWtwb2ludE9w
dGlvbnMuYWRkVGVzdENhc2VzID0gZnVuY3Rpb24oc3VpdGUsIHt0ZXN0Q2FzZU5hbWVQcmVmaXgs
IGNyZWF0ZUJyZWFrcG9pbnQsIHRyaWdnZXJCcmVha3BvaW50fSkgeworICAgICAgICB0ZXN0Q2Fz
ZU5hbWVQcmVmaXggfHw9ICIiOworCiAgICAgICAgIGZ1bmN0aW9uIHJlbW92ZUJyZWFrcG9pbnQo
YnJlYWtwb2ludCkgewogICAgICAgICAgICAgaWYgKGJyZWFrcG9pbnQucmVtb3ZhYmxlKQogICAg
ICAgICAgICAgICAgIGJyZWFrcG9pbnQucmVtb3ZlKCk7CkBAIC0xMiwxNCArMTQsMTUgQEAgVGVz
dFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgICAgIH0KIAogICAgICAgICBz
dWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgICAgICBuYW1lOiBzdWl0ZS5uYW1lICsgIi5PcHRp
b25zLkNvbmRpdGlvbiIsCisgICAgICAgICAgICBuYW1lOiBzdWl0ZS5uYW1lICsgdGVzdENhc2VO
YW1lUHJlZml4ICsgIi5PcHRpb25zLkNvbmRpdGlvbiIsCiAgICAgICAgICAgICBkZXNjcmlwdGlv
bjogIkNoZWNrIHRoYXQgdGhlIGRlYnVnZ2VyIHdpbGwgbm90IHBhdXNlIHVubGVzcyB0aGUgYnJl
YWtwb2ludCBoYXMgYSB0cnV0aHkgYnJlYWtwb2ludCBjb25kaXRpb24uIiwKICAgICAgICAgICAg
IGFzeW5jIHRlc3QoKSB7CiAgICAgICAgICAgICAgICAgbGV0IHBhdXNlQ291bnQgPSAwOworICAg
ICAgICAgICAgICAgIGxldCByZXN1bWVQcm9taXNlID0gbnVsbDsKIAogICAgICAgICAgICAgICAg
IGxldCBwYXVzZWRMaXN0ZW5lciA9IFdJLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVy
KFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5QYXVzZWQsIChldmVudCkgPT4gewogICAgICAgICAg
ICAgICAgICAgICArK3BhdXNlQ291bnQ7Ci0gICAgICAgICAgICAgICAgICAgIFdJLmRlYnVnZ2Vy
TWFuYWdlci5yZXN1bWUoKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdW1lUHJvbWlzZSA9IFdJ
LmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKICAgICAgICAgICAgICAgICB9KTsKIAogICAgICAg
ICAgICAgICAgIGxldCBicmVha3BvaW50ID0gYXdhaXQgY3JlYXRlQnJlYWtwb2ludCgpOwpAQCAt
NTAsMTkgKzUzLDIxIEBAIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4gewogCiAg
ICAgICAgICAgICAgICAgcmVtb3ZlQnJlYWtwb2ludChicmVha3BvaW50KTsKIAorICAgICAgICAg
ICAgICAgIGF3YWl0IHJlc3VtZVByb21pc2U7CiAgICAgICAgICAgICAgICAgV0kuZGVidWdnZXJN
YW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNl
ZCwgcGF1c2VkTGlzdGVuZXIpOwogICAgICAgICAgICAgfSwKICAgICAgICAgfSk7CiAKICAgICAg
ICAgc3VpdGUuYWRkVGVzdENhc2UoewotICAgICAgICAgICAgbmFtZTogc3VpdGUubmFtZSArICIu
T3B0aW9ucy5JZ25vcmVDb3VudCIsCisgICAgICAgICAgICBuYW1lOiBzdWl0ZS5uYW1lICsgIi4i
ICsgdGVzdENhc2VOYW1lUHJlZml4ICsgIk9wdGlvbnMuSWdub3JlQ291bnQiLAogICAgICAgICAg
ICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IHRoZSBkZWJ1Z2dlciB3aWxsIG5vdCBwYXVzZSB1
bmxlc3MgdGhlIGJyZWFrcG9pbnQgaXMgaGl0IGF0IGxlYXN0IGFzIG1hbnkgdGltZXMgYXMgaXQn
cyBgaWdub3JlQ291bnRgLiIsCiAgICAgICAgICAgICBhc3luYyB0ZXN0KCkgewogICAgICAgICAg
ICAgICAgIGxldCBwYXVzZUNvdW50ID0gMDsKKyAgICAgICAgICAgICAgICBsZXQgcmVzdW1lUHJv
bWlzZSA9IG51bGw7CiAKICAgICAgICAgICAgICAgICBsZXQgcGF1c2VkTGlzdGVuZXIgPSBXSS5k
ZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQu
UGF1c2VkLCAoZXZlbnQpID0+IHsKICAgICAgICAgICAgICAgICAgICAgKytwYXVzZUNvdW50Owot
ICAgICAgICAgICAgICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7CisgICAgICAg
ICAgICAgICAgICAgIHJlc3VtZVByb21pc2UgPSBXSS5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7
CiAgICAgICAgICAgICAgICAgfSk7CiAKICAgICAgICAgICAgICAgICBsZXQgYnJlYWtwb2ludCA9
IGF3YWl0IGNyZWF0ZUJyZWFrcG9pbnQoKTsKQEAgLTg2LDE5ICs5MSwyMSBAQCBUZXN0UGFnZS5y
ZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsKIAogICAgICAgICAgICAgICAgIHJlbW92ZUJyZWFr
cG9pbnQoYnJlYWtwb2ludCk7CiAKKyAgICAgICAgICAgICAgICBhd2FpdCByZXN1bWVQcm9taXNl
OwogICAgICAgICAgICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVy
KFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5QYXVzZWQsIHBhdXNlZExpc3RlbmVyKTsKICAgICAg
ICAgICAgIH0sCiAgICAgICAgIH0pOwogCiAgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKLSAg
ICAgICAgICAgIG5hbWU6IHN1aXRlLm5hbWUgKyAiLk9wdGlvbnMuQWN0aW9uLkxvZyIsCisgICAg
ICAgICAgICBuYW1lOiBzdWl0ZS5uYW1lICsgdGVzdENhc2VOYW1lUHJlZml4ICsgIi5PcHRpb25z
LkFjdGlvbi5Mb2ciLAogICAgICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGxvZyBi
cmVha3BvaW50IGFjdGlvbnMgZXhlY3V0ZSB3aGVuIHRoZSBicmVha3BvaW50IGlzIGhpdC4iLAog
ICAgICAgICAgICAgYXN5bmMgdGVzdCgpIHsKICAgICAgICAgICAgICAgICBsZXQgcGF1c2VDb3Vu
dCA9IDA7CisgICAgICAgICAgICAgICAgbGV0IHJlc3VtZVByb21pc2UgPSBudWxsOwogCiAgICAg
ICAgICAgICAgICAgbGV0IHBhdXNlZExpc3RlbmVyID0gV0kuZGVidWdnZXJNYW5hZ2VyLmFkZEV2
ZW50TGlzdGVuZXIoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNlZCwgKGV2ZW50KSA9PiB7
CiAgICAgICAgICAgICAgICAgICAgICsrcGF1c2VDb3VudDsKLSAgICAgICAgICAgICAgICAgICAg
V0kuZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgpOworICAgICAgICAgICAgICAgICAgICByZXN1bWVQ
cm9taXNlID0gV0kuZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgpOwogICAgICAgICAgICAgICAgIH0p
OwogCiAgICAgICAgICAgICAgICAgbGV0IGJyZWFrcG9pbnQgPSBhd2FpdCBjcmVhdGVCcmVha3Bv
aW50KCk7CkBAIC0xNDUsMTkgKzE1MiwyMSBAQCBUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVy
KCgpID0+IHsKIAogICAgICAgICAgICAgICAgIHJlbW92ZUJyZWFrcG9pbnQoYnJlYWtwb2ludCk7
CiAKKyAgICAgICAgICAgICAgICBhd2FpdCByZXN1bWVQcm9taXNlOwogICAgICAgICAgICAgICAg
IFdJLmRlYnVnZ2VyTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkRlYnVnZ2VyTWFuYWdl
ci5FdmVudC5QYXVzZWQsIHBhdXNlZExpc3RlbmVyKTsKICAgICAgICAgICAgIH0sCiAgICAgICAg
IH0pOwogCiAgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKLSAgICAgICAgICAgIG5hbWU6IHN1
aXRlLm5hbWUgKyAiLk9wdGlvbnMuQWN0aW9ucy5FdmFsdWF0ZSIsCisgICAgICAgICAgICBuYW1l
OiBzdWl0ZS5uYW1lICsgdGVzdENhc2VOYW1lUHJlZml4ICsgIi5PcHRpb25zLkFjdGlvbnMuRXZh
bHVhdGUiLAogICAgICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGV2YWx1YXRlIGJy
ZWFrcG9pbnQgYWN0aW9ucyBleGVjdXRlIHdoZW4gdGhlIGJyZWFrcG9pbnQgaXMgaGl0LiIsCiAg
ICAgICAgICAgICBhc3luYyB0ZXN0KCkgewogICAgICAgICAgICAgICAgIGxldCBwYXVzZUNvdW50
ID0gMDsKKyAgICAgICAgICAgICAgICBsZXQgcmVzdW1lUHJvbWlzZSA9IG51bGw7CiAKICAgICAg
ICAgICAgICAgICBsZXQgcGF1c2VkTGlzdGVuZXIgPSBXSS5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZl
bnRMaXN0ZW5lcihXSS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUGF1c2VkLCAoZXZlbnQpID0+IHsK
ICAgICAgICAgICAgICAgICAgICAgKytwYXVzZUNvdW50OwotICAgICAgICAgICAgICAgICAgICBX
SS5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VtZVBy
b21pc2UgPSBXSS5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7CiAgICAgICAgICAgICAgICAgfSk7
CiAKICAgICAgICAgICAgICAgICBsZXQgYnJlYWtwb2ludCA9IGF3YWl0IGNyZWF0ZUJyZWFrcG9p
bnQoKTsKQEAgLTE5Nyw2ICsyMDYsNyBAQCBUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgp
ID0+IHsKIAogICAgICAgICAgICAgICAgIHJlbW92ZUJyZWFrcG9pbnQoYnJlYWtwb2ludCk7CiAK
KyAgICAgICAgICAgICAgICBhd2FpdCByZXN1bWVQcm9taXNlOwogICAgICAgICAgICAgICAgIFdJ
LmRlYnVnZ2VyTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkRlYnVnZ2VyTWFuYWdlci5F
dmVudC5QYXVzZWQsIHBhdXNlZExpc3RlbmVyKTsKICAgICAgICAgICAgIH0sCiAgICAgICAgIH0p
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9ldmVudC1h
bmltYXRpb24tZnJhbWUtYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RvbS1kZWJ1Z2dlci9ldmVudC1hbmltYXRpb24tZnJhbWUtYnJlYWtwb2ludHMtZXhw
ZWN0ZWQudHh0CmluZGV4IGY5ZWYwNGY3OWQ2Li5hZTk3MjU2ZDkwNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9ldmVudC1hbmltYXRpb24tZnJhbWUtYnJl
YWtwb2ludHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVi
dWdnZXIvZXZlbnQtYW5pbWF0aW9uLWZyYW1lLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dApAQCAt
NjMsNyArNjMsNiBAQCBQQVNTOiBTaG91bGQgcGF1c2UuCiAKIFRyaWdnZXJpbmcgYnJlYWtwb2lu
dC4uLgogUEFTUzogU2hvdWxkIHBhdXNlLgotLS0gUnVubmluZyB0ZXN0IHRlYXJkb3duLgogCiAt
LSBSdW5uaW5nIHRlc3QgY2FzZTogRE9NRGVidWdnZXIuRXZlbnQuQW5pbWF0aW9uRnJhbWUuT3B0
aW9ucy5JZ25vcmVDb3VudAogQ3JlYXRpbmcgImFuaW1hdGlvbi1mcmFtZSIgRXZlbnQgQnJlYWtw
b2ludC4uLgpAQCAtODIsNyArODEsNiBAQCBQQVNTOiBTaG91bGQgcGF1c2UuCiAKIFRyaWdnZXJp
bmcgYnJlYWtwb2ludC4uLgogUEFTUzogU2hvdWxkIHBhdXNlLgotLS0gUnVubmluZyB0ZXN0IHRl
YXJkb3duLgogCiAtLSBSdW5uaW5nIHRlc3QgY2FzZTogRE9NRGVidWdnZXIuRXZlbnQuQW5pbWF0
aW9uRnJhbWUuT3B0aW9ucy5BY3Rpb24uTG9nCiBDcmVhdGluZyAiYW5pbWF0aW9uLWZyYW1lIiBF
dmVudCBCcmVha3BvaW50Li4uCkBAIC0xMTIsNyArMTEwLDYgQEAgRWRpdGluZyBsb2cgYWN0aW9u
Li4uCiBUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KIFBBU1M6IFNob3VsZCBleGVjdXRlIGJyZWFr
cG9pbnQgYWN0aW9uLgogUEFTUzogU2hvdWxkIG5vdCBwYXVzZS4KLS0tIFJ1bm5pbmcgdGVzdCB0
ZWFyZG93bi4KIAogLS0gUnVubmluZyB0ZXN0IGNhc2U6IERPTURlYnVnZ2VyLkV2ZW50LkFuaW1h
dGlvbkZyYW1lLk9wdGlvbnMuQWN0aW9ucy5FdmFsdWF0ZQogQ3JlYXRpbmcgImFuaW1hdGlvbi1m
cmFtZSIgRXZlbnQgQnJlYWtwb2ludC4uLgpAQCAtMTQyLDUgKzEzOSw0IEBAIEVkaXRpbmcgZXZh
bHVhdGUgYWN0aW9uLi4uCiBUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KIFBBU1M6IFNob3VsZCBl
eGVjdXRlIGJyZWFrcG9pbnQgYWN0aW9uLgogUEFTUzogU2hvdWxkIG5vdCBwYXVzZS4KLS0tIFJ1
bm5pbmcgdGVzdCB0ZWFyZG93bi4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RvbS1kZWJ1Z2dlci9ldmVudC1hbmltYXRpb24tZnJhbWUtYnJlYWtwb2ludHMuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvZXZlbnQtYW5pbWF0aW9uLWZyYW1lLWJy
ZWFrcG9pbnRzLmh0bWwKaW5kZXggZmZhZWY4YjRlNDcuLmJiOTM1YjQ3MGNlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2V2ZW50LWFuaW1hdGlvbi1mcmFt
ZS1icmVha3BvaW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdn
ZXIvZXZlbnQtYW5pbWF0aW9uLWZyYW1lLWJyZWFrcG9pbnRzLmh0bWwKQEAgLTIsNiArMiw3IEBA
CiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
ZGVidWdnZXIvcmVzb3VyY2VzL2JyZWFrcG9pbnQtb3B0aW9ucy11dGlsaXRpZXMuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9Ii4uL2RlYnVnZ2VyL3Jlc291cmNlcy9sb2ctYWN0aXZlLXN0YWNr
LXRyYWNlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZXZlbnQtYnJlYWtw
b2ludC11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KQEAgLTk1LDcgKzk2LDE3IEBA
IGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIHRlYXJkb3duOiBJbnNwZWN0b3JUZXN0LkV2ZW50
QnJlYWtwb2ludC50ZWFyZG93biwKICAgICB9KTsKIAotICAgIEluc3BlY3RvclRlc3QuRXZlbnRC
cmVha3BvaW50LmFkZEJyZWFrcG9pbnRPcHRpb25zVGVzdENhc2VzKHN1aXRlLCBXSS5FdmVudEJy
ZWFrcG9pbnQuVHlwZS5BbmltYXRpb25GcmFtZSwgZXZlbnROYW1lKTsKKyAgICBJbnNwZWN0b3JU
ZXN0LkJyZWFrcG9pbnRPcHRpb25zLmFkZFRlc3RDYXNlcyhzdWl0ZSwgeworICAgICAgICBjcmVh
dGVCcmVha3BvaW50KCkgeworICAgICAgICAgICAgcmV0dXJuIEluc3BlY3RvclRlc3QuRXZlbnRC
cmVha3BvaW50LmNyZWF0ZUJyZWFrcG9pbnQoV0kuRXZlbnRCcmVha3BvaW50LlR5cGUuQW5pbWF0
aW9uRnJhbWUsIHtldmVudE5hbWV9KTsKKyAgICAgICAgfSwKKyAgICAgICAgdHJpZ2dlckJyZWFr
cG9pbnQoKSB7CisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoWworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYXdhaXRFdmVudCgiVGVzdFBhZ2UtIiArIGV2ZW50TmFtZSksCisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgdHJpZ2dlcl8ke2V2
ZW50TmFtZX0oKWApLAorICAgICAgICAgICAgXSk7CisgICAgICAgIH0sCisgICAgfSk7CiAKICAg
ICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvZXZlbnQtaW50ZXJ2YWwtYnJlYWtwb2ludHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9ldmVudC1pbnRl
cnZhbC1icmVha3BvaW50cy1leHBlY3RlZC50eHQKaW5kZXggYWNiNzA5ZmYwZjguLjUxYTQ0NDUx
NzU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2V2ZW50
LWludGVydmFsLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZG9tLWRlYnVnZ2VyL2V2ZW50LWludGVydmFsLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4
dApAQCAtODMsNyArODMsNiBAQCBQQVNTOiBTaG91bGQgcGF1c2UuCiAKIFRyaWdnZXJpbmcgYnJl
YWtwb2ludC4uLgogUEFTUzogU2hvdWxkIHBhdXNlLgotLS0gUnVubmluZyB0ZXN0IHRlYXJkb3du
LgogCiAtLSBSdW5uaW5nIHRlc3QgY2FzZTogRE9NRGVidWdnZXIuRXZlbnQuSW50ZXJ2YWwuT3B0
aW9ucy5JZ25vcmVDb3VudAogQ3JlYXRpbmcgImludGVydmFsIiBFdmVudCBCcmVha3BvaW50Li4u
CkBAIC0xMDIsNyArMTAxLDYgQEAgUEFTUzogU2hvdWxkIHBhdXNlLgogCiBUcmlnZ2VyaW5nIGJy
ZWFrcG9pbnQuLi4KIFBBU1M6IFNob3VsZCBwYXVzZS4KLS0tIFJ1bm5pbmcgdGVzdCB0ZWFyZG93
bi4KIAogLS0gUnVubmluZyB0ZXN0IGNhc2U6IERPTURlYnVnZ2VyLkV2ZW50LkludGVydmFsLk9w
dGlvbnMuQWN0aW9uLkxvZwogQ3JlYXRpbmcgImludGVydmFsIiBFdmVudCBCcmVha3BvaW50Li4u
CkBAIC0xMzIsNyArMTMwLDYgQEAgRWRpdGluZyBsb2cgYWN0aW9uLi4uCiBUcmlnZ2VyaW5nIGJy
ZWFrcG9pbnQuLi4KIFBBU1M6IFNob3VsZCBleGVjdXRlIGJyZWFrcG9pbnQgYWN0aW9uLgogUEFT
UzogU2hvdWxkIG5vdCBwYXVzZS4KLS0tIFJ1bm5pbmcgdGVzdCB0ZWFyZG93bi4KIAogLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IERPTURlYnVnZ2VyLkV2ZW50LkludGVydmFsLk9wdGlvbnMuQWN0aW9u
cy5FdmFsdWF0ZQogQ3JlYXRpbmcgImludGVydmFsIiBFdmVudCBCcmVha3BvaW50Li4uCkBAIC0x
NjIsNSArMTU5LDQgQEAgRWRpdGluZyBldmFsdWF0ZSBhY3Rpb24uLi4KIFRyaWdnZXJpbmcgYnJl
YWtwb2ludC4uLgogUEFTUzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCiBQQVNT
OiBTaG91bGQgbm90IHBhdXNlLgotLS0gUnVubmluZyB0ZXN0IHRlYXJkb3duLgogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2V2ZW50LWludGVydmFsLWJy
ZWFrcG9pbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2V2ZW50
LWludGVydmFsLWJyZWFrcG9pbnRzLmh0bWwKaW5kZXggMDI4NGJkYTI5YWUuLjE0YzJjNzc5ZmUz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2V2ZW50LWlu
dGVydmFsLWJyZWFrcG9pbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1k
ZWJ1Z2dlci9ldmVudC1pbnRlcnZhbC1icmVha3BvaW50cy5odG1sCkBAIC0yLDYgKzIsNyBAQAog
PGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2Rl
YnVnZ2VyL3Jlc291cmNlcy9icmVha3BvaW50LW9wdGlvbnMtdXRpbGl0aWVzLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSIuLi9kZWJ1Z2dlci9yZXNvdXJjZXMvbG9nLWFjdGl2ZS1zdGFjay10
cmFjZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2V2ZW50LWJyZWFrcG9p
bnQtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CkBAIC0xNDQsNyArMTQ1LDE3IEBA
IGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIHRlYXJkb3duOiBJbnNwZWN0b3JUZXN0LkV2ZW50
QnJlYWtwb2ludC50ZWFyZG93biwKICAgICB9KTsKIAotICAgIEluc3BlY3RvclRlc3QuRXZlbnRC
cmVha3BvaW50LmFkZEJyZWFrcG9pbnRPcHRpb25zVGVzdENhc2VzKHN1aXRlLCBXSS5FdmVudEJy
ZWFrcG9pbnQuVHlwZS5JbnRlcnZhbCwgZXZlbnROYW1lKTsKKyAgICBJbnNwZWN0b3JUZXN0LkJy
ZWFrcG9pbnRPcHRpb25zLmFkZFRlc3RDYXNlcyhzdWl0ZSwgeworICAgICAgICBjcmVhdGVCcmVh
a3BvaW50KCkgeworICAgICAgICAgICAgcmV0dXJuIEluc3BlY3RvclRlc3QuRXZlbnRCcmVha3Bv
aW50LmNyZWF0ZUJyZWFrcG9pbnQoV0kuRXZlbnRCcmVha3BvaW50LlR5cGUuSW50ZXJ2YWwsIHtl
dmVudE5hbWV9KTsKKyAgICAgICAgfSwKKyAgICAgICAgdHJpZ2dlckJyZWFrcG9pbnQoKSB7Cisg
ICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXdhaXRFdmVudCgiVGVzdFBhZ2UtIiArIGV2ZW50TmFtZSksCisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgdHJpZ2dlcl8ke2V2ZW50TmFtZX0oKWAp
LAorICAgICAgICAgICAgXSk7CisgICAgICAgIH0sCisgICAgfSk7CiAKICAgICBzdWl0ZS5ydW5U
ZXN0Q2FzZXNBbmRGaW5pc2goKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kb20tZGVidWdnZXIvZXZlbnQtbGlzdGVuZXItYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9ldmVudC1saXN0ZW5lci1icmVha3Bv
aW50cy1leHBlY3RlZC50eHQKaW5kZXggYTllZjhmZjhhZGYuLjlkM2E3NGJkZmYzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2V2ZW50LWxpc3RlbmVyLWJy
ZWFrcG9pbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRl
YnVnZ2VyL2V2ZW50LWxpc3RlbmVyLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dApAQCAtMTQ1LDcg
KzE0NSw2IEBAIFBBU1M6IFNob3VsZCBwYXVzZS4KIAogVHJpZ2dlcmluZyBicmVha3BvaW50Li4u
CiBQQVNTOiBTaG91bGQgcGF1c2UuCi0tLSBSdW5uaW5nIHRlc3QgdGVhcmRvd24uCiAKIC0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBET01EZWJ1Z2dlci5FdmVudC5MaXN0ZW5lci5PcHRpb25zLklnbm9y
ZUNvdW50CiBDcmVhdGluZyAiY2xpY2siIEV2ZW50IEJyZWFrcG9pbnQuLi4KQEAgLTE2NCw3ICsx
NjMsNiBAQCBQQVNTOiBTaG91bGQgcGF1c2UuCiAKIFRyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgog
UEFTUzogU2hvdWxkIHBhdXNlLgotLS0gUnVubmluZyB0ZXN0IHRlYXJkb3duLgogCiAtLSBSdW5u
aW5nIHRlc3QgY2FzZTogRE9NRGVidWdnZXIuRXZlbnQuTGlzdGVuZXIuT3B0aW9ucy5BY3Rpb24u
TG9nCiBDcmVhdGluZyAiY2xpY2siIEV2ZW50IEJyZWFrcG9pbnQuLi4KQEAgLTE5NCw3ICsxOTIs
NiBAQCBFZGl0aW5nIGxvZyBhY3Rpb24uLi4KIFRyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgogUEFT
UzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCiBQQVNTOiBTaG91bGQgbm90IHBh
dXNlLgotLS0gUnVubmluZyB0ZXN0IHRlYXJkb3duLgogCiAtLSBSdW5uaW5nIHRlc3QgY2FzZTog
RE9NRGVidWdnZXIuRXZlbnQuTGlzdGVuZXIuT3B0aW9ucy5BY3Rpb25zLkV2YWx1YXRlCiBDcmVh
dGluZyAiY2xpY2siIEV2ZW50IEJyZWFrcG9pbnQuLi4KQEAgLTIyNCw1ICsyMjEsNCBAQCBFZGl0
aW5nIGV2YWx1YXRlIGFjdGlvbi4uLgogVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCiBQQVNTOiBT
aG91bGQgZXhlY3V0ZSBicmVha3BvaW50IGFjdGlvbi4KIFBBU1M6IFNob3VsZCBub3QgcGF1c2Uu
Ci0tLSBSdW5uaW5nIHRlc3QgdGVhcmRvd24uCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kb20tZGVidWdnZXIvZXZlbnQtbGlzdGVuZXItYnJlYWtwb2ludHMuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvZXZlbnQtbGlzdGVuZXItYnJlYWtwb2lu
dHMuaHRtbAppbmRleCA2NzQ2MTZhODU4OC4uY2EwZTMzZjFhN2UgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvZXZlbnQtbGlzdGVuZXItYnJlYWtwb2ludHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2V2ZW50LWxpc3Rl
bmVyLWJyZWFrcG9pbnRzLmh0bWwKQEAgLTIsNiArMiw3IEBACiA8aHRtbD4KIDxoZWFkPgogPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3It
dGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZGVidWdnZXIvcmVzb3VyY2VzL2Jy
ZWFrcG9pbnQtb3B0aW9ucy11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4u
L2RlYnVnZ2VyL3Jlc291cmNlcy9sb2ctYWN0aXZlLXN0YWNrLXRyYWNlLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZXZlbnQtYnJlYWtwb2ludC11dGlsaXRpZXMuanMiPjwv
c2NyaXB0PgogPHNjcmlwdD4KQEAgLTIyMSw3ICsyMjIsMTcgQEAgZnVuY3Rpb24gdGVzdCgpIHsK
ICAgICAgICAgdGVhcmRvd246IEluc3BlY3RvclRlc3QuRXZlbnRCcmVha3BvaW50LnRlYXJkb3du
LAogICAgIH0pOwogCi0gICAgSW5zcGVjdG9yVGVzdC5FdmVudEJyZWFrcG9pbnQuYWRkQnJlYWtw
b2ludE9wdGlvbnNUZXN0Q2FzZXMoc3VpdGUsIFdJLkV2ZW50QnJlYWtwb2ludC5UeXBlLkxpc3Rl
bmVyLCAiY2xpY2siKTsKKyAgICBJbnNwZWN0b3JUZXN0LkJyZWFrcG9pbnRPcHRpb25zLmFkZFRl
c3RDYXNlcyhzdWl0ZSwgeworICAgICAgICBjcmVhdGVCcmVha3BvaW50KCkgeworICAgICAgICAg
ICAgcmV0dXJuIEluc3BlY3RvclRlc3QuRXZlbnRCcmVha3BvaW50LmNyZWF0ZUJyZWFrcG9pbnQo
V0kuRXZlbnRCcmVha3BvaW50LlR5cGUuTGlzdGVuZXIsIHtldmVudE5hbWU6ICJjbGljayJ9KTsK
KyAgICAgICAgfSwKKyAgICAgICAgdHJpZ2dlckJyZWFrcG9pbnQoKSB7CisgICAgICAgICAgICBy
ZXR1cm4gUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXdhaXRF
dmVudCgiVGVzdFBhZ2UtY2xpY2siKSwKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2
YWx1YXRlSW5QYWdlKGB0cmlnZ2VyX2NsaWNrKClgKSwKKyAgICAgICAgICAgIF0pOworICAgICAg
ICB9LAorICAgIH0pOwogCiAgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7CiB9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2V2ZW50LXRpbWVv
dXQtYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1k
ZWJ1Z2dlci9ldmVudC10aW1lb3V0LWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dAppbmRleCA5YTZi
ZjhhZDFiMi4uM2Y5NTkzZjkyZDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
b20tZGVidWdnZXIvZXZlbnQtdGltZW91dC1icmVha3BvaW50cy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9ldmVudC10aW1lb3V0LWJyZWFrcG9p
bnRzLWV4cGVjdGVkLnR4dApAQCAtNjMsNyArNjMsNiBAQCBQQVNTOiBTaG91bGQgcGF1c2UuCiAK
IFRyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgogUEFTUzogU2hvdWxkIHBhdXNlLgotLS0gUnVubmlu
ZyB0ZXN0IHRlYXJkb3duLgogCiAtLSBSdW5uaW5nIHRlc3QgY2FzZTogRE9NRGVidWdnZXIuRXZl
bnQuVGltZXIuT3B0aW9ucy5JZ25vcmVDb3VudAogQ3JlYXRpbmcgInRpbWVvdXQiIEV2ZW50IEJy
ZWFrcG9pbnQuLi4KQEAgLTgyLDcgKzgxLDYgQEAgUEFTUzogU2hvdWxkIHBhdXNlLgogCiBUcmln
Z2VyaW5nIGJyZWFrcG9pbnQuLi4KIFBBU1M6IFNob3VsZCBwYXVzZS4KLS0tIFJ1bm5pbmcgdGVz
dCB0ZWFyZG93bi4KIAogLS0gUnVubmluZyB0ZXN0IGNhc2U6IERPTURlYnVnZ2VyLkV2ZW50LlRp
bWVyLk9wdGlvbnMuQWN0aW9uLkxvZwogQ3JlYXRpbmcgInRpbWVvdXQiIEV2ZW50IEJyZWFrcG9p
bnQuLi4KQEAgLTExMiw3ICsxMTAsNiBAQCBFZGl0aW5nIGxvZyBhY3Rpb24uLi4KIFRyaWdnZXJp
bmcgYnJlYWtwb2ludC4uLgogUEFTUzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24u
CiBQQVNTOiBTaG91bGQgbm90IHBhdXNlLgotLS0gUnVubmluZyB0ZXN0IHRlYXJkb3duLgogCiAt
LSBSdW5uaW5nIHRlc3QgY2FzZTogRE9NRGVidWdnZXIuRXZlbnQuVGltZXIuT3B0aW9ucy5BY3Rp
b25zLkV2YWx1YXRlCiBDcmVhdGluZyAidGltZW91dCIgRXZlbnQgQnJlYWtwb2ludC4uLgpAQCAt
MTQyLDUgKzEzOSw0IEBAIEVkaXRpbmcgZXZhbHVhdGUgYWN0aW9uLi4uCiBUcmlnZ2VyaW5nIGJy
ZWFrcG9pbnQuLi4KIFBBU1M6IFNob3VsZCBleGVjdXRlIGJyZWFrcG9pbnQgYWN0aW9uLgogUEFT
UzogU2hvdWxkIG5vdCBwYXVzZS4KLS0tIFJ1bm5pbmcgdGVzdCB0ZWFyZG93bi4KIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9ldmVudC10aW1lb3V0LWJy
ZWFrcG9pbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2V2ZW50
LXRpbWVvdXQtYnJlYWtwb2ludHMuaHRtbAppbmRleCA2YTM0OWE0Yjc3Mi4uNTlmODNkN2MzMDAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvZXZlbnQtdGlt
ZW91dC1icmVha3BvaW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVi
dWdnZXIvZXZlbnQtdGltZW91dC1icmVha3BvaW50cy5odG1sCkBAIC0yLDYgKzIsNyBAQAogPGh0
bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNv
dXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2RlYnVn
Z2VyL3Jlc291cmNlcy9icmVha3BvaW50LW9wdGlvbnMtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSIuLi9kZWJ1Z2dlci9yZXNvdXJjZXMvbG9nLWFjdGl2ZS1zdGFjay10cmFj
ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2V2ZW50LWJyZWFrcG9pbnQt
dXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CkBAIC05NSw3ICs5NiwxNyBAQCBmdW5j
dGlvbiB0ZXN0KCkgewogICAgICAgICB0ZWFyZG93bjogSW5zcGVjdG9yVGVzdC5FdmVudEJyZWFr
cG9pbnQudGVhcmRvd24sCiAgICAgfSk7CiAKLSAgICBJbnNwZWN0b3JUZXN0LkV2ZW50QnJlYWtw
b2ludC5hZGRCcmVha3BvaW50T3B0aW9uc1Rlc3RDYXNlcyhzdWl0ZSwgV0kuRXZlbnRCcmVha3Bv
aW50LlR5cGUuVGltZW91dCwgZXZlbnROYW1lKTsKKyAgICBJbnNwZWN0b3JUZXN0LkJyZWFrcG9p
bnRPcHRpb25zLmFkZFRlc3RDYXNlcyhzdWl0ZSwgeworICAgICAgICBjcmVhdGVCcmVha3BvaW50
KCkgeworICAgICAgICAgICAgcmV0dXJuIEluc3BlY3RvclRlc3QuRXZlbnRCcmVha3BvaW50LmNy
ZWF0ZUJyZWFrcG9pbnQoV0kuRXZlbnRCcmVha3BvaW50LlR5cGUuVGltZW91dCwge2V2ZW50TmFt
ZX0pOworICAgICAgICB9LAorICAgICAgICB0cmlnZ2VyQnJlYWtwb2ludCgpIHsKKyAgICAgICAg
ICAgIHJldHVybiBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
d2FpdEV2ZW50KCJUZXN0UGFnZS0iICsgZXZlbnROYW1lKSwKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB0cmlnZ2VyXyR7ZXZlbnROYW1lfSgpYCksCisgICAg
ICAgICAgICBdKTsKKyAgICAgICAgfSwKKyAgICB9KTsKIAogICAgIHN1aXRlLnJ1blRlc3RDYXNl
c0FuZEZpbmlzaCgpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1k
ZWJ1Z2dlci9yZXNvdXJjZXMvZXZlbnQtYnJlYWtwb2ludC11dGlsaXRpZXMuanMgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL3Jlc291cmNlcy9ldmVudC1icmVha3BvaW50LXV0
aWxpdGllcy5qcwppbmRleCBkN2QyOTM2NDMzYS4uOTg1YzgxNGRhMmEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvcmVzb3VyY2VzL2V2ZW50LWJyZWFrcG9p
bnQtdXRpbGl0aWVzLmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIv
cmVzb3VyY2VzL2V2ZW50LWJyZWFrcG9pbnQtdXRpbGl0aWVzLmpzCkBAIC0xLDE5MyArMSw2IEBA
CiBUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsKICAgICBJbnNwZWN0b3JUZXN0
LkV2ZW50QnJlYWtwb2ludCA9IHt9OwogCi0gICAgSW5zcGVjdG9yVGVzdC5FdmVudEJyZWFrcG9p
bnQuYWRkQnJlYWtwb2ludE9wdGlvbnNUZXN0Q2FzZXMgPSBmdW5jdGlvbihzdWl0ZSwgdHlwZSwg
ZXZlbnROYW1lKSB7Ci0gICAgICAgIGFzeW5jIGZ1bmN0aW9uIHRyaWdnZXJCcmVha3BvaW50KCkg
ewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlRyaWdnZXJpbmcgYnJlYWtwb2ludC4u
LiIpOwotICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQoIlRlc3RQYWdlLSIgKyBldmVudE5hbWUpLAotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYHRyaWdnZXJfJHtldmVudE5h
bWV9KClgKSwKLSAgICAgICAgICAgIF0pOwotICAgICAgICB9Ci0KLSAgICAgICAgc3VpdGUuYWRk
VGVzdENhc2UoewotICAgICAgICAgICAgbmFtZTogc3VpdGUubmFtZSArICIuT3B0aW9ucy5Db25k
aXRpb24iLAotICAgICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IHRoZSBkZWJ1Z2dl
ciB3aWxsIG5vdCBwYXVzZSB1bmxlc3MgdGhlIGJyZWFrcG9pbnQgaGFzIGEgdHJ1dGh5IGJyZWFr
cG9pbnQgY29uZGl0aW9uLiIsCi0gICAgICAgICAgICBhc3luYyB0ZXN0KCkgewotICAgICAgICAg
ICAgICAgIGxldCBwYXVzZUNvdW50ID0gMDsKLQotICAgICAgICAgICAgICAgIGxldCBsaXN0ZW5l
ciA9IFdJLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkRlYnVnZ2VyTWFuYWdl
ci5FdmVudC5QYXVzZWQsIChldmVudCkgPT4gewotICAgICAgICAgICAgICAgICAgICArK3BhdXNl
Q291bnQ7Ci0gICAgICAgICAgICAgICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsK
LSAgICAgICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgICAgIGxldCBicmVha3BvaW50ID0g
YXdhaXQgSW5zcGVjdG9yVGVzdC5FdmVudEJyZWFrcG9pbnQuY3JlYXRlQnJlYWtwb2ludCh0eXBl
LCB7ZXZlbnROYW1lfSk7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lm5ld2xpbmUo
KTsKLQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJTZXR0aW5nIGNvbmRpdGlv
biB0byAnZmFsc2UnLi4uIik7Ci0gICAgICAgICAgICAgICAgYnJlYWtwb2ludC5jb25kaXRpb24g
PSAiZmFsc2UiOwotCi0gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gNDsgKytp
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpID09PSAzKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0Lm5ld2xpbmUoKTsKLQotICAgICAgICAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIlNldHRpbmcgY29uZGl0aW9uIHRvICd0cnVlJy4uLiIpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludC5jb25kaXRpb24gPSAidHJ1ZSI7Ci0g
ICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
Lm5ld2xpbmUoKTsKLQotICAgICAgICAgICAgICAgICAgICBhd2FpdCB0cmlnZ2VyQnJlYWtwb2lu
dCgpOwotCi0gICAgICAgICAgICAgICAgICAgIGlmIChpIDw9IDIpCi0gICAgICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHBhdXNlQ291bnQsIDAsICJTaG91bGQg
bm90IHBhdXNlLiIpOwotICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHBhdXNlQ291bnQsIGkgLSAyLCAiU2hv
dWxkIHBhdXNlLiIpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIFdJLmRl
YnVnZ2VyTWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVu
dC5QYXVzZWQsIGxpc3RlbmVyKTsKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB0ZWFyZG93
bjogSW5zcGVjdG9yVGVzdC5FdmVudEJyZWFrcG9pbnQudGVhcmRvd24sCi0gICAgICAgIH0pOwot
Ci0gICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKLSAgICAgICAgICAgIG5hbWU6IHN1aXRlLm5h
bWUgKyAiLk9wdGlvbnMuSWdub3JlQ291bnQiLAotICAgICAgICAgICAgZGVzY3JpcHRpb246ICJD
aGVjayB0aGF0IHRoZSBkZWJ1Z2dlciB3aWxsIG5vdCBwYXVzZSB1bmxlc3MgdGhlIGJyZWFrcG9p
bnQgaXMgaGl0IGF0IGxlYXN0IGFzIG1hbnkgdGltZXMgYXMgaXQncyBgaWdub3JlQ291bnRgLiIs
Ci0gICAgICAgICAgICBhc3luYyB0ZXN0KCkgewotICAgICAgICAgICAgICAgIGxldCBwYXVzZUNv
dW50ID0gMDsKLQotICAgICAgICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmRlYnVnZ2VyTWFu
YWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5QYXVzZWQsIChl
dmVudCkgPT4gewotICAgICAgICAgICAgICAgICAgICArK3BhdXNlQ291bnQ7Ci0gICAgICAgICAg
ICAgICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKLSAgICAgICAgICAgICAgICB9
KTsKLQotICAgICAgICAgICAgICAgIGxldCBicmVha3BvaW50ID0gYXdhaXQgSW5zcGVjdG9yVGVz
dC5FdmVudEJyZWFrcG9pbnQuY3JlYXRlQnJlYWtwb2ludCh0eXBlLCB7ZXZlbnROYW1lfSk7Ci0K
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lm5ld2xpbmUoKTsKLQotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJTZXR0aW5nIGlnbm9yZUNvdW50IHRvICcyJy4uLiIpOwot
ICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQuaWdub3JlQ291bnQgPSAyOwotCi0gICAgICAgICAg
ICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD00OyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5uZXdsaW5lKCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgYXdhaXQgdHJp
Z2dlckJyZWFrcG9pbnQoKTsKLQotICAgICAgICAgICAgICAgICAgICBpZiAoaSA8PSAyKQotICAg
ICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChwYXVzZUNvdW50
LCAwLCAiU2hvdWxkIG5vdCBwYXVzZS4iKTsKLSAgICAgICAgICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChwYXVzZUNvdW50
LCBpIC0gMiwgIlNob3VsZCBwYXVzZS4iKTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5EZWJ1Z2dl
ck1hbmFnZXIuRXZlbnQuUGF1c2VkLCBsaXN0ZW5lcik7Ci0gICAgICAgICAgICB9LAotICAgICAg
ICAgICAgdGVhcmRvd246IEluc3BlY3RvclRlc3QuRXZlbnRCcmVha3BvaW50LnRlYXJkb3duLAot
ICAgICAgICB9KTsKLQotICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgICAgICBu
YW1lOiBzdWl0ZS5uYW1lICsgIi5PcHRpb25zLkFjdGlvbi5Mb2ciLAotICAgICAgICAgICAgZGVz
Y3JpcHRpb246ICJDaGVjayB0aGF0IGxvZyBicmVha3BvaW50IGFjdGlvbnMgZXhlY3V0ZSB3aGVu
IHRoZSBicmVha3BvaW50IGlzIGhpdC4iLAotICAgICAgICAgICAgYXN5bmMgdGVzdCgpIHsKLSAg
ICAgICAgICAgICAgICBsZXQgcGF1c2VDb3VudCA9IDA7Ci0KLSAgICAgICAgICAgICAgICBsZXQg
bGlzdGVuZXIgPSBXSS5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5EZWJ1Z2dl
ck1hbmFnZXIuRXZlbnQuUGF1c2VkLCAoZXZlbnQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAg
KytwYXVzZUNvdW50OwotICAgICAgICAgICAgICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIucmVz
dW1lKCk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgICAgICBsZXQgYnJlYWtw
b2ludCA9IGF3YWl0IEluc3BlY3RvclRlc3QuRXZlbnRCcmVha3BvaW50LmNyZWF0ZUJyZWFrcG9p
bnQodHlwZSwge2V2ZW50TmFtZX0pOwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5u
ZXdsaW5lKCk7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQWRkaW5nIGxv
ZyBhY3Rpb24uLi4iKTsKLSAgICAgICAgICAgICAgICBsZXQgYWN0aW9uID0gbmV3IFdJLkJyZWFr
cG9pbnRBY3Rpb24oV0kuQnJlYWtwb2ludEFjdGlvbi5UeXBlLkxvZywge2RhdGE6ICJCUkVBS1BP
SU5UIEFDVElPTiBMT0cgMSJ9KTsKLSAgICAgICAgICAgICAgICBicmVha3BvaW50LmFkZEFjdGlv
bihhY3Rpb24pOwotCi0gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gNDsgKytp
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpID4gMSkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5uZXdsaW5lKCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJFZGl0aW5nIGxvZyBhY3Rpb24uLi4iKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGFjdGlvbi5kYXRhID0gYEJSRUFLUE9JTlQgQUNUSU9OIExPRyAke2l9YDsK
LQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT09IDMpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRW5hYmxpbmcgYXV0by1jb250aW51ZS4u
LiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQuYXV0b0NvbnRpbnVl
ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubmV3bGluZSgpOwotCi0gICAg
ICAgICAgICAgICAgICAgIGxldCBbbWVzc2FnZUFkZGVkRXZlbnRdID0gYXdhaXQgUHJvbWlzZS5h
bGwoWwotICAgICAgICAgICAgICAgICAgICAgICAgV0kuY29uc29sZU1hbmFnZXIuYXdhaXRFdmVu
dChXSS5Db25zb2xlTWFuYWdlci5FdmVudC5NZXNzYWdlQWRkZWQpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgdHJpZ2dlckJyZWFrcG9pbnQoKSwKLSAgICAgICAgICAgICAgICAgICAgXSk7Ci0K
LSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChtZXNzYWdlQWRk
ZWRFdmVudC5kYXRhLm1lc3NhZ2UubWVzc2FnZVRleHQsIGFjdGlvbi5kYXRhLCAiU2hvdWxkIGV4
ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uIik7Ci0KLSAgICAgICAgICAgICAgICAgICAgaWYgKGkg
PD0gMikKLSAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwo
cGF1c2VDb3VudCwgaSwgIlNob3VsZCBwYXVzZS4iKTsKLSAgICAgICAgICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChwYXVz
ZUNvdW50LCAyLCAiU2hvdWxkIG5vdCBwYXVzZS4iKTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5E
ZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUGF1c2VkLCBsaXN0ZW5lcik7Ci0gICAgICAgICAgICB9LAot
ICAgICAgICAgICAgdGVhcmRvd246IEluc3BlY3RvclRlc3QuRXZlbnRCcmVha3BvaW50LnRlYXJk
b3duLAotICAgICAgICB9KTsKLQotICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAg
ICAgICBuYW1lOiBzdWl0ZS5uYW1lICsgIi5PcHRpb25zLkFjdGlvbnMuRXZhbHVhdGUiLAotICAg
ICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGV2YWx1YXRlIGJyZWFrcG9pbnQgYWN0
aW9ucyBleGVjdXRlIHdoZW4gdGhlIGJyZWFrcG9pbnQgaXMgaGl0LiIsCi0gICAgICAgICAgICBh
c3luYyB0ZXN0KCkgewotICAgICAgICAgICAgICAgIGxldCBwYXVzZUNvdW50ID0gMDsKLQotICAg
ICAgICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExp
c3RlbmVyKFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5QYXVzZWQsIChldmVudCkgPT4gewotICAg
ICAgICAgICAgICAgICAgICArK3BhdXNlQ291bnQ7Ci0gICAgICAgICAgICAgICAgICAgIFdJLmRl
YnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKLSAgICAgICAgICAgICAgICB9KTsKLQotICAgICAgICAg
ICAgICAgIGxldCBicmVha3BvaW50ID0gYXdhaXQgSW5zcGVjdG9yVGVzdC5FdmVudEJyZWFrcG9p
bnQuY3JlYXRlQnJlYWtwb2ludCh0eXBlLCB7ZXZlbnROYW1lfSk7Ci0KLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0Lm5ld2xpbmUoKTsKLQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QubG9nKCJBZGRpbmcgZXZhbHVhdGUgYWN0aW9uLi4uIik7Ci0gICAgICAgICAgICAgICAgbGV0
IGFjdGlvbiA9IG5ldyBXSS5CcmVha3BvaW50QWN0aW9uKFdJLkJyZWFrcG9pbnRBY3Rpb24uVHlw
ZS5FdmFsdWF0ZSwge2RhdGE6ICJ3aW5kb3cuQlJFQUtQT0lOVF9BQ1RJT05fRVZBTFVBVEUgPSAx
OyJ9KTsKLSAgICAgICAgICAgICAgICBicmVha3BvaW50LmFkZEFjdGlvbihhY3Rpb24pOwotCi0g
ICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gNDsgKytpKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGlmIChpID4gMSkgewotICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5uZXdsaW5lKCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJFZGl0aW5nIGV2YWx1YXRlIGFjdGlvbi4uLiIpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgYWN0aW9uLmRhdGEgPSBgd2luZG93LkJSRUFLUE9JTlRfQUNUSU9OX0VWQUxVQVRFID0gJHtp
fTtgOwotCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSA9PT0gMykgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJFbmFibGluZyBhdXRvLWNvbnRp
bnVlLi4uIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludC5hdXRvQ29u
dGludWUgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5uZXdsaW5lKCk7Ci0K
LSAgICAgICAgICAgICAgICAgICAgYXdhaXQgdHJpZ2dlckJyZWFrcG9pbnQoKTsKLQotICAgICAg
ICAgICAgICAgICAgICBsZXQgYnJlYWtwb2ludEFjdGlvbkV2YWx1YXRlUmVzdWx0ID0gYXdhaXQg
SW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93LkJSRUFLUE9JTlRfQUNUSU9OX0VW
QUxVQVRFYCk7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwo
YnJlYWtwb2ludEFjdGlvbkV2YWx1YXRlUmVzdWx0LCBpLCAiU2hvdWxkIGV4ZWN1dGUgYnJlYWtw
b2ludCBhY3Rpb24uIik7Ci0KLSAgICAgICAgICAgICAgICAgICAgaWYgKGkgPD0gMikKLSAgICAg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocGF1c2VDb3VudCwg
aSwgIlNob3VsZCBwYXVzZS4iKTsKLSAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChwYXVzZUNvdW50LCAyLCAi
U2hvdWxkIG5vdCBwYXVzZS4iKTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAg
ICBXSS5kZWJ1Z2dlck1hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5EZWJ1Z2dlck1hbmFn
ZXIuRXZlbnQuUGF1c2VkLCBsaXN0ZW5lcik7Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAg
dGVhcmRvd246IEluc3BlY3RvclRlc3QuRXZlbnRCcmVha3BvaW50LnRlYXJkb3duLAotICAgICAg
ICB9KTsKLSAgICB9OwotCiAgICAgSW5zcGVjdG9yVGVzdC5FdmVudEJyZWFrcG9pbnQudGVhcmRv
d24gPSBmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgV0kuZG9tRGVidWdnZXJN
YW5hZ2VyLmFsbEFuaW1hdGlvbkZyYW1lc0JyZWFrcG9pbnQ/LnJlbW92ZSgpOwogICAgICAgICBX
SS5kb21EZWJ1Z2dlck1hbmFnZXIuYWxsSW50ZXJ2YWxzQnJlYWtwb2ludD8ucmVtb3ZlKCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL3Jlc291cmNlcy91
cmwtYnJlYWtwb2ludC11dGlsaXRpZXMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRl
YnVnZ2VyL3Jlc291cmNlcy91cmwtYnJlYWtwb2ludC11dGlsaXRpZXMuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM1YzQ4YjFiM2FmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9yZXNvdXJjZXMvdXJsLWJyZWFr
cG9pbnQtdXRpbGl0aWVzLmpzCkBAIC0wLDAgKzEsMzggQEAKK1Rlc3RQYWdlLnJlZ2lzdGVySW5p
dGlhbGl6ZXIoKCkgPT4geworICAgIEluc3BlY3RvclRlc3QuVVJMQnJlYWtwb2ludCA9IHt9Owor
CisgICAgSW5zcGVjdG9yVGVzdC5VUkxCcmVha3BvaW50LnRlYXJkb3duID0gZnVuY3Rpb24ocmVz
b2x2ZSwgcmVqZWN0KSB7CisgICAgICAgIFdJLmRvbURlYnVnZ2VyTWFuYWdlci5hbGxSZXF1ZXN0
c0JyZWFrcG9pbnQ/LnJlbW92ZSgpOworCisgICAgICAgIGZvciAobGV0IGJyZWFrcG9pbnQgb2Yg
V0kuZG9tRGVidWdnZXJNYW5hZ2VyLnVybEJyZWFrcG9pbnRzKQorICAgICAgICAgICAgYnJlYWtw
b2ludC5yZW1vdmUoKTsKKworICAgICAgICByZXNvbHZlKCk7CisgICAgfTsKKworICAgIEluc3Bl
Y3RvclRlc3QuVVJMQnJlYWtwb2ludC5jcmVhdGVCcmVha3BvaW50ID0gZnVuY3Rpb24odHlwZSwg
dXJsKSB7CisgICAgICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LlVSTEJyZWFrcG9pbnQuYWRkQnJl
YWtwb2ludChuZXcgV0kuVVJMQnJlYWtwb2ludCh0eXBlLCB1cmwpKTsKKyAgICB9OworCisgICAg
SW5zcGVjdG9yVGVzdC5VUkxCcmVha3BvaW50LmFkZEJyZWFrcG9pbnQgPSBmdW5jdGlvbihicmVh
a3BvaW50KSB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKGBBZGRpbmcgIiR7YnJlYWtwb2lu
dC50eXBlICsgKGJyZWFrcG9pbnQudXJsID8gIjoiICsgYnJlYWtwb2ludC51cmwgOiAiIil9IiBV
UkwgQnJlYWtwb2ludC4uLmApOworCisgICAgICAgIGJyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxz
ZTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAg
ICAgICAgICAgIFdJLmRvbURlYnVnZ2VyTWFuYWdlci5hd2FpdEV2ZW50KFdJLkRPTURlYnVnZ2Vy
TWFuYWdlci5FdmVudC5VUkxCcmVha3BvaW50QWRkZWQpCisgICAgICAgICAgICAudGhlbigoZXZl
bnQpID0+IHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChldmVudC5kYXRh
LmJyZWFrcG9pbnQgPT09IGJyZWFrcG9pbnQsICJBZGRlZCBCcmVha3BvaW50IHNob3VsZCBiZSBl
eHBlY3RlZCBvYmplY3QuIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQo
IWV2ZW50LmRhdGEuYnJlYWtwb2ludC5kaXNhYmxlZCwgIkJyZWFrcG9pbnQgc2hvdWxkIG5vdCBi
ZSBkaXNhYmxlZCBpbml0aWFsbHkuIik7CisgICAgICAgICAgICAgICAgcmVzb2x2ZShicmVha3Bv
aW50KTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBXSS5kb21EZWJ1Z2dlck1hbmFn
ZXIuYWRkVVJMQnJlYWtwb2ludChicmVha3BvaW50KTsKKyAgICAgICAgfSk7CisgICAgfTsKKwor
ICAgIEluc3BlY3RvclRlc3QuVVJMQnJlYWtwb2ludC5yZXF1ZXN0ID0gZnVuY3Rpb24oYXBpKSB7
CisgICAgICAgIGxldCB1cmwgPSBgcmVzb3VyY2VzL2RhdGEke2FwaX0uanNvbmA7CisgICAgICAg
IEluc3BlY3RvclRlc3QubG9nKGBSZXF1ZXN0ICR7YXBpfSAiJHt1cmx9Ii4uLmApOworICAgICAg
ICByZXR1cm4gSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgbG9hZFJlc291cmNlJHthcGl9
KCIke3VybH0iKWApOworICAgIH07Cit9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kb20tZGVidWdnZXIvdXJsLWJyZWFrcG9pbnRzLWFsbC1yZXF1ZXN0cy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL3VybC1icmVha3BvaW50cy1h
bGwtcmVxdWVzdHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi45OGEwOWNkZTkzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kb20tZGVidWdnZXIvdXJsLWJyZWFrcG9pbnRzLWFsbC1yZXF1ZXN0cy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwyNTAgQEAKK0NPTlNPTEUgTUVTU0FHRTogQlJFQUtQT0lOVCBBQ1RJT04g
TE9HIDEKK0NPTlNPTEUgTUVTU0FHRTogQlJFQUtQT0lOVCBBQ1RJT04gTE9HIDIKK0NPTlNPTEUg
TUVTU0FHRTogQlJFQUtQT0lOVCBBQ1RJT04gTE9HIDMKK0NPTlNPTEUgTUVTU0FHRTogQlJFQUtQ
T0lOVCBBQ1RJT04gTE9HIDQKK0NPTlNPTEUgTUVTU0FHRTogQlJFQUtQT0lOVCBBQ1RJT04gTE9H
IDEKK0NPTlNPTEUgTUVTU0FHRTogQlJFQUtQT0lOVCBBQ1RJT04gTE9HIDIKK0NPTlNPTEUgTUVT
U0FHRTogQlJFQUtQT0lOVCBBQ1RJT04gTE9HIDMKK0NPTlNPTEUgTUVTU0FHRTogQlJFQUtQT0lO
VCBBQ1RJT04gTE9HIDQKK1Rlc3RzIGZvciBBbGwgUmVxdWVzdHMgVVJMIGJyZWFrcG9pbnQuCisK
KworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBVUkxCcmVha3BvaW50LkJyZWFrT25BbGwKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBVUkxCcmVha3BvaW50LkJyZWFrT25BbGwuRmV0Y2gKK0FkZGluZyAi
dGV4dCIgVVJMIEJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgRmV0Y2ggInJlc291cmNlcy9kYXRhRmV0
Y2guanNvbiIuLi4KK1BBVVNFRDoKK1BBU1M6IFBhdXNlIHJlYXNvbiBzaG91bGQgYmUgRmV0Y2gu
CitQQVNTOiBQYXVzZSBkYXRhIFVSTCBzaG91bGQgYmUgZW1wdHkuCitDQUxMIFNUQUNLOgorMDog
W0ZdIGxvYWRSZXNvdXJjZUZldGNoCisxOiBbUF0gR2xvYmFsIENvZGUKKy0tIFJ1bm5pbmcgdGVz
dCB0ZWFyZG93bi4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuQnJlYWtP
bkFsbEZldGNoLi5PcHRpb25zLkNvbmRpdGlvbgorQWRkaW5nICJ0ZXh0IiBVUkwgQnJlYWtwb2lu
dC4uLgorCitTZXR0aW5nIGNvbmRpdGlvbiB0byAnZmFsc2UnLi4uCisKK1RyaWdnZXJpbmcgYnJl
YWtwb2ludC4uLgorUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5qc29uIi4uLgor
UEFTUzogU2hvdWxkIG5vdCBwYXVzZS4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1
ZXN0IEZldGNoICJyZXNvdXJjZXMvZGF0YUZldGNoLmpzb24iLi4uCitQQVNTOiBTaG91bGQgbm90
IHBhdXNlLgorCitTZXR0aW5nIGNvbmRpdGlvbiB0byAndHJ1ZScuLi4KKworVHJpZ2dlcmluZyBi
cmVha3BvaW50Li4uCitSZXF1ZXN0IEZldGNoICJyZXNvdXJjZXMvZGF0YUZldGNoLmpzb24iLi4u
CitQQVNTOiBTaG91bGQgcGF1c2UuCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVz
dCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5qc29uIi4uLgorUEFTUzogU2hvdWxkIHBhdXNl
LgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogVVJMQnJlYWtwb2ludC5CcmVha09uQWxsLkZldGNo
Lk9wdGlvbnMuSWdub3JlQ291bnQKK0FkZGluZyAidGV4dCIgVVJMIEJyZWFrcG9pbnQuLi4KKwor
U2V0dGluZyBpZ25vcmVDb3VudCB0byAnMicuLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4u
CitSZXF1ZXN0IEZldGNoICJyZXNvdXJjZXMvZGF0YUZldGNoLmpzb24iLi4uCitQQVNTOiBTaG91
bGQgbm90IHBhdXNlLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgRmV0Y2gg
InJlc291cmNlcy9kYXRhRmV0Y2guanNvbiIuLi4KK1BBU1M6IFNob3VsZCBub3QgcGF1c2UuCisK
K1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2RhdGFG
ZXRjaC5qc29uIi4uLgorUEFTUzogU2hvdWxkIHBhdXNlLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9p
bnQuLi4KK1JlcXVlc3QgRmV0Y2ggInJlc291cmNlcy9kYXRhRmV0Y2guanNvbiIuLi4KK1BBU1M6
IFNob3VsZCBwYXVzZS4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuQnJl
YWtPbkFsbEZldGNoLi5PcHRpb25zLkFjdGlvbi5Mb2cKK0FkZGluZyAidGV4dCIgVVJMIEJyZWFr
cG9pbnQuLi4KKworQWRkaW5nIGxvZyBhY3Rpb24uLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50
Li4uCitSZXF1ZXN0IEZldGNoICJyZXNvdXJjZXMvZGF0YUZldGNoLmpzb24iLi4uCitQQVNTOiBT
aG91bGQgZXhlY3V0ZSBicmVha3BvaW50IGFjdGlvbi4KK1BBU1M6IFNob3VsZCBwYXVzZS4KKwor
RWRpdGluZyBsb2cgYWN0aW9uLi4uCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVz
dCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5qc29uIi4uLgorUEFTUzogU2hvdWxkIGV4ZWN1
dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQgcGF1c2UuCisKK0VkaXRpbmcgbG9n
IGFjdGlvbi4uLgorRW5hYmxpbmcgYXV0by1jb250aW51ZS4uLgorCitUcmlnZ2VyaW5nIGJyZWFr
cG9pbnQuLi4KK1JlcXVlc3QgRmV0Y2ggInJlc291cmNlcy9kYXRhRmV0Y2guanNvbiIuLi4KK1BB
U1M6IFNob3VsZCBleGVjdXRlIGJyZWFrcG9pbnQgYWN0aW9uLgorUEFTUzogU2hvdWxkIG5vdCBw
YXVzZS4KKworRWRpdGluZyBsb2cgYWN0aW9uLi4uCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4u
LgorUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5qc29uIi4uLgorUEFTUzogU2hv
dWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQgbm90IHBhdXNlLgor
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogVVJMQnJlYWtwb2ludC5CcmVha09uQWxsRmV0Y2guLk9w
dGlvbnMuQWN0aW9ucy5FdmFsdWF0ZQorQWRkaW5nICJ0ZXh0IiBVUkwgQnJlYWtwb2ludC4uLgor
CitBZGRpbmcgZXZhbHVhdGUgYWN0aW9uLi4uCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgor
UmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5qc29uIi4uLgorUEFTUzogU2hvdWxk
IGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQgcGF1c2UuCisKK0VkaXRp
bmcgZXZhbHVhdGUgYWN0aW9uLi4uCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVz
dCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5qc29uIi4uLgorUEFTUzogU2hvdWxkIGV4ZWN1
dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQgcGF1c2UuCisKK0VkaXRpbmcgZXZh
bHVhdGUgYWN0aW9uLi4uCitFbmFibGluZyBhdXRvLWNvbnRpbnVlLi4uCisKK1RyaWdnZXJpbmcg
YnJlYWtwb2ludC4uLgorUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5qc29uIi4u
LgorUEFTUzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQg
bm90IHBhdXNlLgorCitFZGl0aW5nIGV2YWx1YXRlIGFjdGlvbi4uLgorCitUcmlnZ2VyaW5nIGJy
ZWFrcG9pbnQuLi4KK1JlcXVlc3QgRmV0Y2ggInJlc291cmNlcy9kYXRhRmV0Y2guanNvbiIuLi4K
K1BBU1M6IFNob3VsZCBleGVjdXRlIGJyZWFrcG9pbnQgYWN0aW9uLgorUEFTUzogU2hvdWxkIG5v
dCBwYXVzZS4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuQnJlYWtPbkFs
bC5YSFIKK0FkZGluZyAidGV4dCIgVVJMIEJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgWEhSICJyZXNv
dXJjZXMvZGF0YVhIUi5qc29uIi4uLgorUEFVU0VEOgorUEFTUzogUGF1c2UgcmVhc29uIHNob3Vs
ZCBiZSBYSFIuCitQQVNTOiBQYXVzZSBkYXRhIFVSTCBzaG91bGQgYmUgZW1wdHkuCitDQUxMIFNU
QUNLOgorMDogW0ZdIGxvYWRSZXNvdXJjZVhIUgorMTogW1BdIEdsb2JhbCBDb2RlCistLSBSdW5u
aW5nIHRlc3QgdGVhcmRvd24uCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBVUkxCcmVha3BvaW50
LkJyZWFrT25BbGxYSFIuLk9wdGlvbnMuQ29uZGl0aW9uCitBZGRpbmcgInRleHQiIFVSTCBCcmVh
a3BvaW50Li4uCisKK1NldHRpbmcgY29uZGl0aW9uIHRvICdmYWxzZScuLi4KKworVHJpZ2dlcmlu
ZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IFhIUiAicmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4K
K1BBU1M6IFNob3VsZCBub3QgcGF1c2UuCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVx
dWVzdCBYSFIgInJlc291cmNlcy9kYXRhWEhSLmpzb24iLi4uCitQQVNTOiBTaG91bGQgbm90IHBh
dXNlLgorCitTZXR0aW5nIGNvbmRpdGlvbiB0byAndHJ1ZScuLi4KKworVHJpZ2dlcmluZyBicmVh
a3BvaW50Li4uCitSZXF1ZXN0IFhIUiAicmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6
IFNob3VsZCBwYXVzZS4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IFhIUiAi
cmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6IFNob3VsZCBwYXVzZS4KKworLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuQnJlYWtPbkFsbC5YSFIuT3B0aW9ucy5JZ25v
cmVDb3VudAorQWRkaW5nICJ0ZXh0IiBVUkwgQnJlYWtwb2ludC4uLgorCitTZXR0aW5nIGlnbm9y
ZUNvdW50IHRvICcyJy4uLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgWEhS
ICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgorUEFTUzogU2hvdWxkIG5vdCBwYXVzZS4KKwor
VHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IFhIUiAicmVzb3VyY2VzL2RhdGFYSFIu
anNvbiIuLi4KK1BBU1M6IFNob3VsZCBub3QgcGF1c2UuCisKK1RyaWdnZXJpbmcgYnJlYWtwb2lu
dC4uLgorUmVxdWVzdCBYSFIgInJlc291cmNlcy9kYXRhWEhSLmpzb24iLi4uCitQQVNTOiBTaG91
bGQgcGF1c2UuCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBYSFIgInJlc291
cmNlcy9kYXRhWEhSLmpzb24iLi4uCitQQVNTOiBTaG91bGQgcGF1c2UuCisKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBVUkxCcmVha3BvaW50LkJyZWFrT25BbGxYSFIuLk9wdGlvbnMuQWN0aW9uLkxv
ZworQWRkaW5nICJ0ZXh0IiBVUkwgQnJlYWtwb2ludC4uLgorCitBZGRpbmcgbG9nIGFjdGlvbi4u
LgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0
YVhIUi5qc29uIi4uLgorUEFTUzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQ
QVNTOiBTaG91bGQgcGF1c2UuCisKK0VkaXRpbmcgbG9nIGFjdGlvbi4uLgorCitUcmlnZ2VyaW5n
IGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgor
UEFTUzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQgcGF1
c2UuCisKK0VkaXRpbmcgbG9nIGFjdGlvbi4uLgorRW5hYmxpbmcgYXV0by1jb250aW51ZS4uLgor
CitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhI
Ui5qc29uIi4uLgorUEFTUzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNT
OiBTaG91bGQgbm90IHBhdXNlLgorCitFZGl0aW5nIGxvZyBhY3Rpb24uLi4KKworVHJpZ2dlcmlu
ZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IFhIUiAicmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4K
K1BBU1M6IFNob3VsZCBleGVjdXRlIGJyZWFrcG9pbnQgYWN0aW9uLgorUEFTUzogU2hvdWxkIG5v
dCBwYXVzZS4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuQnJlYWtPbkFs
bFhIUi4uT3B0aW9ucy5BY3Rpb25zLkV2YWx1YXRlCitBZGRpbmcgInRleHQiIFVSTCBCcmVha3Bv
aW50Li4uCisKK0FkZGluZyBldmFsdWF0ZSBhY3Rpb24uLi4KKworVHJpZ2dlcmluZyBicmVha3Bv
aW50Li4uCitSZXF1ZXN0IFhIUiAicmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6IFNo
b3VsZCBleGVjdXRlIGJyZWFrcG9pbnQgYWN0aW9uLgorUEFTUzogU2hvdWxkIHBhdXNlLgorCitF
ZGl0aW5nIGV2YWx1YXRlIGFjdGlvbi4uLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1Jl
cXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgorUEFTUzogU2hvdWxkIGV4ZWN1
dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQgcGF1c2UuCisKK0VkaXRpbmcgZXZh
bHVhdGUgYWN0aW9uLi4uCitFbmFibGluZyBhdXRvLWNvbnRpbnVlLi4uCisKK1RyaWdnZXJpbmcg
YnJlYWtwb2ludC4uLgorUmVxdWVzdCBYSFIgInJlc291cmNlcy9kYXRhWEhSLmpzb24iLi4uCitQ
QVNTOiBTaG91bGQgZXhlY3V0ZSBicmVha3BvaW50IGFjdGlvbi4KK1BBU1M6IFNob3VsZCBub3Qg
cGF1c2UuCisKK0VkaXRpbmcgZXZhbHVhdGUgYWN0aW9uLi4uCisKK1RyaWdnZXJpbmcgYnJlYWtw
b2ludC4uLgorUmVxdWVzdCBYSFIgInJlc291cmNlcy9kYXRhWEhSLmpzb24iLi4uCitQQVNTOiBT
aG91bGQgZXhlY3V0ZSBicmVha3BvaW50IGFjdGlvbi4KK1BBU1M6IFNob3VsZCBub3QgcGF1c2Uu
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvdXJsLWJy
ZWFrcG9pbnRzLWFsbC1yZXF1ZXN0cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1k
ZWJ1Z2dlci91cmwtYnJlYWtwb2ludHMtYWxsLXJlcXVlc3RzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjdiYzBhMDVmOWIwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci91cmwtYnJlYWtwb2ludHMtYWxsLXJl
cXVlc3RzLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9p
bnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZGVidWdnZXIvcmVz
b3VyY2VzL2JyZWFrcG9pbnQtb3B0aW9ucy11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL2RlYnVnZ2VyL3Jlc291cmNlcy9sb2ctYWN0aXZlLXN0YWNrLXRyYWNlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi93b3JrZXIvcmVzb3VyY2VzL3Jlc291cmNlLXV0aWxp
dGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3VybC1icmVha3BvaW50
LXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7Cisg
ICAgY29uc3QgdHlwZSA9IFdJLlVSTEJyZWFrcG9pbnQuVHlwZS5UZXh0OworICAgIGNvbnN0IHVy
bCA9ICIiOworCisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRl
KCJVUkxCcmVha3BvaW50LkJyZWFrT25BbGwiKTsKKworICAgIGZvciAobGV0IGFwaSBvZiBbIkZl
dGNoIiwgIlhIUiJdKSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAg
IG5hbWU6ICJVUkxCcmVha3BvaW50LkJyZWFrT25BbGwuIiArIGFwaSwKKyAgICAgICAgICAgIGRl
c2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBkZWJ1Z2dlciBwYXVzZXMgZm9yIGFsbCByZXF1ZXN0cy4i
LAorICAgICAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgICAgICBhd2FpdCBJbnNw
ZWN0b3JUZXN0LlVSTEJyZWFrcG9pbnQuY3JlYXRlQnJlYWtwb2ludCh0eXBlLCB1cmwpOworCisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5VUkxCcmVha3BvaW50LnJlcXVlc3QoYXBpKTsK
KyAgICAgICAgICAgICAgICBhd2FpdCBXSS5kZWJ1Z2dlck1hbmFnZXIuYXdhaXRFdmVudChXSS5E
ZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUGF1c2VkKTsKKworICAgICAgICAgICAgICAgIGxldCB0YXJn
ZXREYXRhID0gV0kuZGVidWdnZXJNYW5hZ2VyLmRhdGFGb3JUYXJnZXQoV0kuZGVidWdnZXJNYW5h
Z2VyLmFjdGl2ZUNhbGxGcmFtZS50YXJnZXQpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QubG9nKCJQQVVTRUQ6Iik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RF
cXVhbCh0YXJnZXREYXRhLnBhdXNlUmVhc29uLCBXSS5EZWJ1Z2dlck1hbmFnZXIuUGF1c2VSZWFz
b25bYXBpXSwgYFBhdXNlIHJlYXNvbiBzaG91bGQgYmUgJHthcGl9LmApOworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2UodGFyZ2V0RGF0YS5wYXVzZURhdGEuYnJlYWtw
b2ludFVSTCwgIlBhdXNlIGRhdGEgVVJMIHNob3VsZCBiZSBlbXB0eS4iKTsKKworICAgICAgICAg
ICAgICAgIGxvZ0FjdGl2ZVN0YWNrVHJhY2UoKTsKKworICAgICAgICAgICAgICAgIGF3YWl0IFdJ
LmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB0
ZWFyZG93bjogSW5zcGVjdG9yVGVzdC5VUkxCcmVha3BvaW50LnRlYXJkb3duLAorICAgICAgICB9
KTsKKworICAgICAgICBJbnNwZWN0b3JUZXN0LkJyZWFrcG9pbnRPcHRpb25zLmFkZFRlc3RDYXNl
cyhzdWl0ZSwgeworICAgICAgICAgICAgdGVzdENhc2VOYW1lUHJlZml4OiBhcGkgKyAiLiIsCisg
ICAgICAgICAgICBjcmVhdGVCcmVha3BvaW50KCkgeworICAgICAgICAgICAgICAgIHJldHVybiBJ
bnNwZWN0b3JUZXN0LlVSTEJyZWFrcG9pbnQuY3JlYXRlQnJlYWtwb2ludCh0eXBlLCB1cmwpOwor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHRyaWdnZXJCcmVha3BvaW50KCkgeworICAgICAg
ICAgICAgICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LlVSTEJyZWFrcG9pbnQucmVxdWVzdChhcGkp
OworICAgICAgICAgICAgfSwKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgc3VpdGUucnVuVGVz
dENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KKzxwPlRlc3RzIGZvciBBbGwgUmVxdWVzdHMgVVJMIGJyZWFrcG9pbnQuPC9w
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rv
bS1kZWJ1Z2dlci91cmwtYnJlYWtwb2ludHMtY29udGFpbmluZy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL3VybC1icmVha3BvaW50cy1jb250YWluaW5n
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmY5
MzIwYzA3MjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRl
YnVnZ2VyL3VybC1icmVha3BvaW50cy1jb250YWluaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDI1MCBAQAorQ09OU09MRSBNRVNTQUdFOiBCUkVBS1BPSU5UIEFDVElPTiBMT0cgMQorQ09OU09M
RSBNRVNTQUdFOiBCUkVBS1BPSU5UIEFDVElPTiBMT0cgMgorQ09OU09MRSBNRVNTQUdFOiBCUkVB
S1BPSU5UIEFDVElPTiBMT0cgMworQ09OU09MRSBNRVNTQUdFOiBCUkVBS1BPSU5UIEFDVElPTiBM
T0cgNAorQ09OU09MRSBNRVNTQUdFOiBCUkVBS1BPSU5UIEFDVElPTiBMT0cgMQorQ09OU09MRSBN
RVNTQUdFOiBCUkVBS1BPSU5UIEFDVElPTiBMT0cgMgorQ09OU09MRSBNRVNTQUdFOiBCUkVBS1BP
SU5UIEFDVElPTiBMT0cgMworQ09OU09MRSBNRVNTQUdFOiBCUkVBS1BPSU5UIEFDVElPTiBMT0cg
NAorVGVzdHMgZm9yIHRleHQgVVJMIGJyZWFrcG9pbnRzLgorCisKKz09IFJ1bm5pbmcgdGVzdCBz
dWl0ZTogVVJMQnJlYWtwb2ludC5CcmVha09uQ29udGFpbmluZ1RleHQKKy0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBVUkxCcmVha3BvaW50LkJyZWFrT25Db250YWluaW5nVGV4dC5GZXRjaAorQWRkaW5n
ICJ0ZXh0OmRhdGEiIFVSTCBCcmVha3BvaW50Li4uCitSZXF1ZXN0IEZldGNoICJyZXNvdXJjZXMv
ZGF0YUZldGNoLmpzb24iLi4uCitQQVVTRUQ6CitQQVNTOiBQYXVzZSByZWFzb24gc2hvdWxkIGJl
IEZldGNoLgorUEFTUzogUGF1c2UgZGF0YSBVUkwgc2hvdWxkIG1hdGNoIGJyZWFrcG9pbnQgVVJM
LgorQ0FMTCBTVEFDSzoKKzA6IFtGXSBsb2FkUmVzb3VyY2VGZXRjaAorMTogW1BdIEdsb2JhbCBD
b2RlCistLSBSdW5uaW5nIHRlc3QgdGVhcmRvd24uCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBV
UkxCcmVha3BvaW50LkJyZWFrT25Db250YWluaW5nVGV4dEZldGNoLi5PcHRpb25zLkNvbmRpdGlv
bgorQWRkaW5nICJ0ZXh0OmRhdGEiIFVSTCBCcmVha3BvaW50Li4uCisKK1NldHRpbmcgY29uZGl0
aW9uIHRvICdmYWxzZScuLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IEZl
dGNoICJyZXNvdXJjZXMvZGF0YUZldGNoLmpzb24iLi4uCitQQVNTOiBTaG91bGQgbm90IHBhdXNl
LgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgRmV0Y2ggInJlc291cmNlcy9k
YXRhRmV0Y2guanNvbiIuLi4KK1BBU1M6IFNob3VsZCBub3QgcGF1c2UuCisKK1NldHRpbmcgY29u
ZGl0aW9uIHRvICd0cnVlJy4uLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3Qg
RmV0Y2ggInJlc291cmNlcy9kYXRhRmV0Y2guanNvbiIuLi4KK1BBU1M6IFNob3VsZCBwYXVzZS4K
KworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IEZldGNoICJyZXNvdXJjZXMvZGF0
YUZldGNoLmpzb24iLi4uCitQQVNTOiBTaG91bGQgcGF1c2UuCisKKy0tIFJ1bm5pbmcgdGVzdCBj
YXNlOiBVUkxCcmVha3BvaW50LkJyZWFrT25Db250YWluaW5nVGV4dC5GZXRjaC5PcHRpb25zLkln
bm9yZUNvdW50CitBZGRpbmcgInRleHQ6ZGF0YSIgVVJMIEJyZWFrcG9pbnQuLi4KKworU2V0dGlu
ZyBpZ25vcmVDb3VudCB0byAnMicuLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1
ZXN0IEZldGNoICJyZXNvdXJjZXMvZGF0YUZldGNoLmpzb24iLi4uCitQQVNTOiBTaG91bGQgbm90
IHBhdXNlLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgRmV0Y2ggInJlc291
cmNlcy9kYXRhRmV0Y2guanNvbiIuLi4KK1BBU1M6IFNob3VsZCBub3QgcGF1c2UuCisKK1RyaWdn
ZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5q
c29uIi4uLgorUEFTUzogU2hvdWxkIHBhdXNlLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4K
K1JlcXVlc3QgRmV0Y2ggInJlc291cmNlcy9kYXRhRmV0Y2guanNvbiIuLi4KK1BBU1M6IFNob3Vs
ZCBwYXVzZS4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuQnJlYWtPbkNv
bnRhaW5pbmdUZXh0RmV0Y2guLk9wdGlvbnMuQWN0aW9uLkxvZworQWRkaW5nICJ0ZXh0OmRhdGEi
IFVSTCBCcmVha3BvaW50Li4uCisKK0FkZGluZyBsb2cgYWN0aW9uLi4uCisKK1RyaWdnZXJpbmcg
YnJlYWtwb2ludC4uLgorUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5qc29uIi4u
LgorUEFTUzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQg
cGF1c2UuCisKK0VkaXRpbmcgbG9nIGFjdGlvbi4uLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQu
Li4KK1JlcXVlc3QgRmV0Y2ggInJlc291cmNlcy9kYXRhRmV0Y2guanNvbiIuLi4KK1BBU1M6IFNo
b3VsZCBleGVjdXRlIGJyZWFrcG9pbnQgYWN0aW9uLgorUEFTUzogU2hvdWxkIHBhdXNlLgorCitF
ZGl0aW5nIGxvZyBhY3Rpb24uLi4KK0VuYWJsaW5nIGF1dG8tY29udGludWUuLi4KKworVHJpZ2dl
cmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IEZldGNoICJyZXNvdXJjZXMvZGF0YUZldGNoLmpz
b24iLi4uCitQQVNTOiBTaG91bGQgZXhlY3V0ZSBicmVha3BvaW50IGFjdGlvbi4KK1BBU1M6IFNo
b3VsZCBub3QgcGF1c2UuCisKK0VkaXRpbmcgbG9nIGFjdGlvbi4uLgorCitUcmlnZ2VyaW5nIGJy
ZWFrcG9pbnQuLi4KK1JlcXVlc3QgRmV0Y2ggInJlc291cmNlcy9kYXRhRmV0Y2guanNvbiIuLi4K
K1BBU1M6IFNob3VsZCBleGVjdXRlIGJyZWFrcG9pbnQgYWN0aW9uLgorUEFTUzogU2hvdWxkIG5v
dCBwYXVzZS4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuQnJlYWtPbkNv
bnRhaW5pbmdUZXh0RmV0Y2guLk9wdGlvbnMuQWN0aW9ucy5FdmFsdWF0ZQorQWRkaW5nICJ0ZXh0
OmRhdGEiIFVSTCBCcmVha3BvaW50Li4uCisKK0FkZGluZyBldmFsdWF0ZSBhY3Rpb24uLi4KKwor
VHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IEZldGNoICJyZXNvdXJjZXMvZGF0YUZl
dGNoLmpzb24iLi4uCitQQVNTOiBTaG91bGQgZXhlY3V0ZSBicmVha3BvaW50IGFjdGlvbi4KK1BB
U1M6IFNob3VsZCBwYXVzZS4KKworRWRpdGluZyBldmFsdWF0ZSBhY3Rpb24uLi4KKworVHJpZ2dl
cmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IEZldGNoICJyZXNvdXJjZXMvZGF0YUZldGNoLmpz
b24iLi4uCitQQVNTOiBTaG91bGQgZXhlY3V0ZSBicmVha3BvaW50IGFjdGlvbi4KK1BBU1M6IFNo
b3VsZCBwYXVzZS4KKworRWRpdGluZyBldmFsdWF0ZSBhY3Rpb24uLi4KK0VuYWJsaW5nIGF1dG8t
Y29udGludWUuLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IEZldGNoICJy
ZXNvdXJjZXMvZGF0YUZldGNoLmpzb24iLi4uCitQQVNTOiBTaG91bGQgZXhlY3V0ZSBicmVha3Bv
aW50IGFjdGlvbi4KK1BBU1M6IFNob3VsZCBub3QgcGF1c2UuCisKK0VkaXRpbmcgZXZhbHVhdGUg
YWN0aW9uLi4uCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBGZXRjaCAicmVz
b3VyY2VzL2RhdGFGZXRjaC5qc29uIi4uLgorUEFTUzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2lu
dCBhY3Rpb24uCitQQVNTOiBTaG91bGQgbm90IHBhdXNlLgorCistLSBSdW5uaW5nIHRlc3QgY2Fz
ZTogVVJMQnJlYWtwb2ludC5CcmVha09uQ29udGFpbmluZ1RleHQuWEhSCitBZGRpbmcgInRleHQ6
ZGF0YSIgVVJMIEJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5q
c29uIi4uLgorUEFVU0VEOgorUEFTUzogUGF1c2UgcmVhc29uIHNob3VsZCBiZSBYSFIuCitQQVNT
OiBQYXVzZSBkYXRhIFVSTCBzaG91bGQgbWF0Y2ggYnJlYWtwb2ludCBVUkwuCitDQUxMIFNUQUNL
OgorMDogW0ZdIGxvYWRSZXNvdXJjZVhIUgorMTogW1BdIEdsb2JhbCBDb2RlCistLSBSdW5uaW5n
IHRlc3QgdGVhcmRvd24uCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBVUkxCcmVha3BvaW50LkJy
ZWFrT25Db250YWluaW5nVGV4dFhIUi4uT3B0aW9ucy5Db25kaXRpb24KK0FkZGluZyAidGV4dDpk
YXRhIiBVUkwgQnJlYWtwb2ludC4uLgorCitTZXR0aW5nIGNvbmRpdGlvbiB0byAnZmFsc2UnLi4u
CisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBYSFIgInJlc291cmNlcy9kYXRh
WEhSLmpzb24iLi4uCitQQVNTOiBTaG91bGQgbm90IHBhdXNlLgorCitUcmlnZ2VyaW5nIGJyZWFr
cG9pbnQuLi4KK1JlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgorUEFTUzog
U2hvdWxkIG5vdCBwYXVzZS4KKworU2V0dGluZyBjb25kaXRpb24gdG8gJ3RydWUnLi4uCisKK1Ry
aWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBYSFIgInJlc291cmNlcy9kYXRhWEhSLmpz
b24iLi4uCitQQVNTOiBTaG91bGQgcGF1c2UuCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgor
UmVxdWVzdCBYSFIgInJlc291cmNlcy9kYXRhWEhSLmpzb24iLi4uCitQQVNTOiBTaG91bGQgcGF1
c2UuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBVUkxCcmVha3BvaW50LkJyZWFrT25Db250YWlu
aW5nVGV4dC5YSFIuT3B0aW9ucy5JZ25vcmVDb3VudAorQWRkaW5nICJ0ZXh0OmRhdGEiIFVSTCBC
cmVha3BvaW50Li4uCisKK1NldHRpbmcgaWdub3JlQ291bnQgdG8gJzInLi4uCisKK1RyaWdnZXJp
bmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBYSFIgInJlc291cmNlcy9kYXRhWEhSLmpzb24iLi4u
CitQQVNTOiBTaG91bGQgbm90IHBhdXNlLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1Jl
cXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgorUEFTUzogU2hvdWxkIG5vdCBw
YXVzZS4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IFhIUiAicmVzb3VyY2Vz
L2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6IFNob3VsZCBwYXVzZS4KKworVHJpZ2dlcmluZyBicmVh
a3BvaW50Li4uCitSZXF1ZXN0IFhIUiAicmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6
IFNob3VsZCBwYXVzZS4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuQnJl
YWtPbkNvbnRhaW5pbmdUZXh0WEhSLi5PcHRpb25zLkFjdGlvbi5Mb2cKK0FkZGluZyAidGV4dDpk
YXRhIiBVUkwgQnJlYWtwb2ludC4uLgorCitBZGRpbmcgbG9nIGFjdGlvbi4uLgorCitUcmlnZ2Vy
aW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4u
LgorUEFTUzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQg
cGF1c2UuCisKK0VkaXRpbmcgbG9nIGFjdGlvbi4uLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQu
Li4KK1JlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgorUEFTUzogU2hvdWxk
IGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQgcGF1c2UuCisKK0VkaXRp
bmcgbG9nIGFjdGlvbi4uLgorRW5hYmxpbmcgYXV0by1jb250aW51ZS4uLgorCitUcmlnZ2VyaW5n
IGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgor
UEFTUzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQgbm90
IHBhdXNlLgorCitFZGl0aW5nIGxvZyBhY3Rpb24uLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50
Li4uCitSZXF1ZXN0IFhIUiAicmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6IFNob3Vs
ZCBleGVjdXRlIGJyZWFrcG9pbnQgYWN0aW9uLgorUEFTUzogU2hvdWxkIG5vdCBwYXVzZS4KKwor
LS0gUnVubmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuQnJlYWtPbkNvbnRhaW5pbmdUZXh0
WEhSLi5PcHRpb25zLkFjdGlvbnMuRXZhbHVhdGUKK0FkZGluZyAidGV4dDpkYXRhIiBVUkwgQnJl
YWtwb2ludC4uLgorCitBZGRpbmcgZXZhbHVhdGUgYWN0aW9uLi4uCisKK1RyaWdnZXJpbmcgYnJl
YWtwb2ludC4uLgorUmVxdWVzdCBYSFIgInJlc291cmNlcy9kYXRhWEhSLmpzb24iLi4uCitQQVNT
OiBTaG91bGQgZXhlY3V0ZSBicmVha3BvaW50IGFjdGlvbi4KK1BBU1M6IFNob3VsZCBwYXVzZS4K
KworRWRpdGluZyBldmFsdWF0ZSBhY3Rpb24uLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4u
CitSZXF1ZXN0IFhIUiAicmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6IFNob3VsZCBl
eGVjdXRlIGJyZWFrcG9pbnQgYWN0aW9uLgorUEFTUzogU2hvdWxkIHBhdXNlLgorCitFZGl0aW5n
IGV2YWx1YXRlIGFjdGlvbi4uLgorRW5hYmxpbmcgYXV0by1jb250aW51ZS4uLgorCitUcmlnZ2Vy
aW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4u
LgorUEFTUzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQg
bm90IHBhdXNlLgorCitFZGl0aW5nIGV2YWx1YXRlIGFjdGlvbi4uLgorCitUcmlnZ2VyaW5nIGJy
ZWFrcG9pbnQuLi4KK1JlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgorUEFT
UzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQgbm90IHBh
dXNlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL3Vy
bC1icmVha3BvaW50cy1jb250YWluaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9t
LWRlYnVnZ2VyL3VybC1icmVha3BvaW50cy1jb250YWluaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmIwYWZjNzc2YTVlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci91cmwtYnJlYWtwb2ludHMtY29udGFp
bmluZy5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5z
cGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2RlYnVnZ2VyL3Jlc291
cmNlcy9icmVha3BvaW50LW9wdGlvbnMtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9kZWJ1Z2dlci9yZXNvdXJjZXMvbG9nLWFjdGl2ZS1zdGFjay10cmFjZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vd29ya2VyL3Jlc291cmNlcy9yZXNvdXJjZS11dGlsaXRp
ZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy91cmwtYnJlYWtwb2ludC11
dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAg
IGNvbnN0IHR5cGUgPSBXSS5VUkxCcmVha3BvaW50LlR5cGUuVGV4dDsKKyAgICBjb25zdCB1cmwg
PSAiZGF0YSI7CisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3Vp
dGUoIlVSTEJyZWFrcG9pbnQuQnJlYWtPbkNvbnRhaW5pbmdUZXh0Iik7CisKKyAgICBmb3IgKGxl
dCBhcGkgb2YgWyJGZXRjaCIsICJYSFIiXSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7
CisgICAgICAgICAgICBuYW1lOiAiVVJMQnJlYWtwb2ludC5CcmVha09uQ29udGFpbmluZ1RleHQu
IiArIGFwaSwKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBkZWJ1Z2dlciBw
YXVzZXMgb24gYSBVUkwgY29udGFpbmluZyB0ZXh0LiIsCisgICAgICAgICAgICBhc3luYyB0ZXN0
KCkgeworICAgICAgICAgICAgICAgIGxldCBicmVha3BvaW50ID0gYXdhaXQgSW5zcGVjdG9yVGVz
dC5VUkxCcmVha3BvaW50LmNyZWF0ZUJyZWFrcG9pbnQodHlwZSwgdXJsKTsKKworICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuVVJMQnJlYWtwb2ludC5yZXF1ZXN0KGFwaSk7CisgICAgICAg
ICAgICAgICAgYXdhaXQgV0kuZGVidWdnZXJNYW5hZ2VyLmF3YWl0RXZlbnQoV0kuRGVidWdnZXJN
YW5hZ2VyLkV2ZW50LlBhdXNlZCk7CisKKyAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0RGF0YSA9
IFdJLmRlYnVnZ2VyTWFuYWdlci5kYXRhRm9yVGFyZ2V0KFdJLmRlYnVnZ2VyTWFuYWdlci5hY3Rp
dmVDYWxsRnJhbWUudGFyZ2V0KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
UEFVU0VEOiIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwodGFy
Z2V0RGF0YS5wYXVzZVJlYXNvbiwgV0kuRGVidWdnZXJNYW5hZ2VyLlBhdXNlUmVhc29uW2FwaV0s
IGBQYXVzZSByZWFzb24gc2hvdWxkIGJlICR7YXBpfS5gKTsKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHRhcmdldERhdGEucGF1c2VEYXRhLmJyZWFrcG9pbnRVUkws
IGJyZWFrcG9pbnQudXJsLCAiUGF1c2UgZGF0YSBVUkwgc2hvdWxkIG1hdGNoIGJyZWFrcG9pbnQg
VVJMLiIpOworCisgICAgICAgICAgICAgICAgbG9nQWN0aXZlU3RhY2tUcmFjZSgpOworCisgICAg
ICAgICAgICAgICAgYXdhaXQgV0kuZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgpOworICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgIHRlYXJkb3duOiBJbnNwZWN0b3JUZXN0LlVSTEJyZWFrcG9pbnQu
dGVhcmRvd24sCisgICAgICAgIH0pOworCisgICAgICAgIEluc3BlY3RvclRlc3QuQnJlYWtwb2lu
dE9wdGlvbnMuYWRkVGVzdENhc2VzKHN1aXRlLCB7CisgICAgICAgICAgICB0ZXN0Q2FzZU5hbWVQ
cmVmaXg6IGFwaSArICIuIiwKKyAgICAgICAgICAgIGNyZWF0ZUJyZWFrcG9pbnQoKSB7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIEluc3BlY3RvclRlc3QuVVJMQnJlYWtwb2ludC5jcmVhdGVCcmVh
a3BvaW50KHR5cGUsIHVybCk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgdHJpZ2dlckJy
ZWFrcG9pbnQoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIEluc3BlY3RvclRlc3QuVVJMQnJl
YWtwb2ludC5yZXF1ZXN0KGFwaSk7CisgICAgICAgICAgICB9LAorICAgICAgICB9KTsKKyAgICB9
CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdHMgZm9yIHRleHQgVVJMIGJy
ZWFrcG9pbnRzLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kb20tZGVidWdnZXIvdXJsLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvdXJsLWJyZWFrcG9pbnRzLWV4cGVjdGVk
LnR4dAppbmRleCA1YThmMTMzMjlkMC4uZTg2MDJjZWIwYzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvdXJsLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL3VybC1icmVha3BvaW50cy1l
eHBlY3RlZC50eHQKQEAgLTIsMTM2ICsyLDU4IEBAIFRlc3RzIGZvciBVUkwgYnJlYWtwb2ludHMu
CiAKIAogPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBVUkxCcmVha3BvaW50Ci0tLSBSdW5uaW5nIHRl
c3QgY2FzZTogVVJMQnJlYWtwb2ludC5CcmVha09uQWxsLkZldGNoCi1TZXQgcGF1c2Ugb24gYWxs
IHJlcXVlc3RzLgotUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5qc29uIi4uLgot
UEFVU0VEOgotUEFTUzogUGF1c2UgcmVhc29uIHNob3VsZCBiZSBGZXRjaC4KLVBBU1M6IFBhdXNl
IGRhdGEgVVJMIHNob3VsZCBiZSBlbXB0eS4KLUNBTEwgU1RBQ0s6Ci0wOiBbRl0gbG9hZFJlc291
cmNlRmV0Y2gKLTE6IFtQXSBHbG9iYWwgQ29kZQotLS0gUnVubmluZyB0ZXN0IHRlYXJkb3duLgot
Ci0tLSBSdW5uaW5nIHRlc3QgY2FzZTogVVJMQnJlYWtwb2ludC5CcmVha09uQ29udGFpbmluZ1Rl
eHQuRmV0Y2gKLVBBU1M6IEFkZGVkIGJyZWFrcG9pbnQgZm9yIFVSTDogZGF0YQotUEFTUzogQnJl
YWtwb2ludCBzaG91bGQgbm90IGJlIGRpc2FibGVkIGluaXRpYWxseS4KLVJlcXVlc3QgRmV0Y2gg
InJlc291cmNlcy9kYXRhRmV0Y2guanNvbiIuLi4KLVBBVVNFRDoKLVBBU1M6IFBhdXNlIHJlYXNv
biBzaG91bGQgYmUgRmV0Y2guCi1QQVNTOiBQYXVzZSBkYXRhIFVSTCBzaG91bGQgbWF0Y2ggYnJl
YWtwb2ludCBVUkwuCi1DQUxMIFNUQUNLOgotMDogW0ZdIGxvYWRSZXNvdXJjZUZldGNoCi0xOiBb
UF0gR2xvYmFsIENvZGUKLS0tIFJ1bm5pbmcgdGVzdCB0ZWFyZG93bi4KLQotLS0gUnVubmluZyB0
ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuQnJlYWtPbk1hdGNoaW5nUmVndWxhckV4cHJlc3Npb24u
RmV0Y2gKLVBBU1M6IEFkZGVkIGJyZWFrcG9pbnQgZm9yIFVSTDogZGF0YVtBLVpdKi4oanNvbnx0
eHR8cG5nKQotUEFTUzogQnJlYWtwb2ludCBzaG91bGQgbm90IGJlIGRpc2FibGVkIGluaXRpYWxs
eS4KLVJlcXVlc3QgRmV0Y2ggInJlc291cmNlcy9kYXRhRmV0Y2guanNvbiIuLi4KLVBBVVNFRDoK
LVBBU1M6IFBhdXNlIHJlYXNvbiBzaG91bGQgYmUgRmV0Y2guCi1QQVNTOiBQYXVzZSBkYXRhIFVS
TCBzaG91bGQgbWF0Y2ggYnJlYWtwb2ludCBVUkwuCi1DQUxMIFNUQUNLOgotMDogW0ZdIGxvYWRS
ZXNvdXJjZUZldGNoCi0xOiBbUF0gR2xvYmFsIENvZGUKLS0tIFJ1bm5pbmcgdGVzdCB0ZWFyZG93
bi4KLQogLS0gUnVubmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuU2hvdWxkTm90UGF1c2VP
bkRpc2FibGVkQnJlYWtwb2ludC5GZXRjaAotUEFTUzogQWRkZWQgYnJlYWtwb2ludCBmb3IgVVJM
OiBkYXRhCi1QQVNTOiBCcmVha3BvaW50IHNob3VsZCBub3QgYmUgZGlzYWJsZWQgaW5pdGlhbGx5
LgotQnJlYWtwb2ludCBkaXNhYmxlZC4KK0FkZGluZyAidGV4dDpkYXRhIiBVUkwgQnJlYWtwb2lu
dC4uLgorRGlzYWJsaW5nIGJyZWFrcG9pbnQuLi4KIFJlcXVlc3QgRmV0Y2ggInJlc291cmNlcy9k
YXRhRmV0Y2guanNvbiIuLi4KIFBBU1M6IFNob3VsZCBub3QgcGF1c2UgZm9yIGRpc2FibGVkIGJy
ZWFrcG9pbnQuCiAtLSBSdW5uaW5nIHRlc3QgdGVhcmRvd24uCiAKIC0tIFJ1bm5pbmcgdGVzdCBj
YXNlOiBVUkxCcmVha3BvaW50LlNob3VsZE5vdFBhdXNlT25Ob3RDb250YWluaW5nVVJMLkZldGNo
Ci1QQVNTOiBBZGRlZCBicmVha3BvaW50IGZvciBVUkw6IG5vbmV4aXN0YW50LXVybAotUEFTUzog
QnJlYWtwb2ludCBzaG91bGQgbm90IGJlIGRpc2FibGVkIGluaXRpYWxseS4KK0FkZGluZyAidGV4
dDpub25leGlzdGFudC11cmwiIFVSTCBCcmVha3BvaW50Li4uCiBSZXF1ZXN0IEZldGNoICJyZXNv
dXJjZXMvZGF0YUZldGNoLmpzb24iLi4uCiBQQVNTOiBTaG91bGQgbm90IHBhdXNlIGZvciBicmVh
a3BvaW50IHdpdGggZGlmZmVyZW50IFVSTC4KIC0tIFJ1bm5pbmcgdGVzdCB0ZWFyZG93bi4KIAog
LS0gUnVubmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuUmVtb3ZlQnJlYWtwb2ludC5GZXRj
aAotUEFTUzogQWRkZWQgYnJlYWtwb2ludCBmb3IgVVJMOiBkYXRhCi1QQVNTOiBCcmVha3BvaW50
IHNob3VsZCBub3QgYmUgZGlzYWJsZWQgaW5pdGlhbGx5LgotQnJlYWtwb2ludCByZW1vdmVkLgor
QWRkaW5nICJ0ZXh0OmRhdGEiIFVSTCBCcmVha3BvaW50Li4uCitSZW1vdmluZyBicmVha3BvaW50
Li4uCiBSZXF1ZXN0IEZldGNoICJyZXNvdXJjZXMvZGF0YUZldGNoLmpzb24iLi4uCiBQQVNTOiBT
aG91bGQgbm90IHBhdXNlIGZvciByZW1vdmVkIGJyZWFrcG9pbnQuCiAtLSBSdW5uaW5nIHRlc3Qg
dGVhcmRvd24uCiAKIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBVUkxCcmVha3BvaW50LlJlbW92ZURp
c2FibGVkQnJlYWtwb2ludC5GZXRjaAotUEFTUzogQWRkZWQgYnJlYWtwb2ludCBmb3IgVVJMOiBk
YXRhCi1QQVNTOiBCcmVha3BvaW50IHNob3VsZCBub3QgYmUgZGlzYWJsZWQgaW5pdGlhbGx5Lgot
QnJlYWtwb2ludCBkaXNhYmxlZC4KLUJyZWFrcG9pbnQgcmVtb3ZlZC4KK0FkZGluZyAidGV4dDpk
YXRhIiBVUkwgQnJlYWtwb2ludC4uLgorRGlzYWJsaW5nIGJyZWFrcG9pbnQuLi4KK1JlbW92aW5n
IGJyZWFrcG9pbnQuLi4KIFJlcXVlc3QgRmV0Y2ggInJlc291cmNlcy9kYXRhRmV0Y2guanNvbiIu
Li4KIFBBU1M6IFNob3VsZCBub3QgcGF1c2UgZm9yIHJlbW92ZWQgZGlzYWJsZWQgYnJlYWtwb2lu
dC4KIC0tIFJ1bm5pbmcgdGVzdCB0ZWFyZG93bi4KIAotLS0gUnVubmluZyB0ZXN0IGNhc2U6IFVS
TEJyZWFrcG9pbnQuQnJlYWtPbkFsbC5YSFIKLVNldCBwYXVzZSBvbiBhbGwgcmVxdWVzdHMuCi1S
ZXF1ZXN0IFhIUiAicmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KLVBBVVNFRDoKLVBBU1M6IFBh
dXNlIHJlYXNvbiBzaG91bGQgYmUgWEhSLgotUEFTUzogUGF1c2UgZGF0YSBVUkwgc2hvdWxkIGJl
IGVtcHR5LgotQ0FMTCBTVEFDSzoKLTA6IFtGXSBsb2FkUmVzb3VyY2VYSFIKLTE6IFtQXSBHbG9i
YWwgQ29kZQotLS0gUnVubmluZyB0ZXN0IHRlYXJkb3duLgotCi0tLSBSdW5uaW5nIHRlc3QgY2Fz
ZTogVVJMQnJlYWtwb2ludC5CcmVha09uQ29udGFpbmluZ1RleHQuWEhSCi1QQVNTOiBBZGRlZCBi
cmVha3BvaW50IGZvciBVUkw6IGRhdGEKLVBBU1M6IEJyZWFrcG9pbnQgc2hvdWxkIG5vdCBiZSBk
aXNhYmxlZCBpbml0aWFsbHkuCi1SZXF1ZXN0IFhIUiAicmVzb3VyY2VzL2RhdGFYSFIuanNvbiIu
Li4KLVBBVVNFRDoKLVBBU1M6IFBhdXNlIHJlYXNvbiBzaG91bGQgYmUgWEhSLgotUEFTUzogUGF1
c2UgZGF0YSBVUkwgc2hvdWxkIG1hdGNoIGJyZWFrcG9pbnQgVVJMLgotQ0FMTCBTVEFDSzoKLTA6
IFtGXSBsb2FkUmVzb3VyY2VYSFIKLTE6IFtQXSBHbG9iYWwgQ29kZQotLS0gUnVubmluZyB0ZXN0
IHRlYXJkb3duLgotCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogVVJMQnJlYWtwb2ludC5CcmVha09u
TWF0Y2hpbmdSZWd1bGFyRXhwcmVzc2lvbi5YSFIKLVBBU1M6IEFkZGVkIGJyZWFrcG9pbnQgZm9y
IFVSTDogZGF0YVtBLVpdKi4oanNvbnx0eHR8cG5nKQotUEFTUzogQnJlYWtwb2ludCBzaG91bGQg
bm90IGJlIGRpc2FibGVkIGluaXRpYWxseS4KLVJlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhI
Ui5qc29uIi4uLgotUEFVU0VEOgotUEFTUzogUGF1c2UgcmVhc29uIHNob3VsZCBiZSBYSFIuCi1Q
QVNTOiBQYXVzZSBkYXRhIFVSTCBzaG91bGQgbWF0Y2ggYnJlYWtwb2ludCBVUkwuCi1DQUxMIFNU
QUNLOgotMDogW0ZdIGxvYWRSZXNvdXJjZVhIUgotMTogW1BdIEdsb2JhbCBDb2RlCi0tLSBSdW5u
aW5nIHRlc3QgdGVhcmRvd24uCi0KIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBVUkxCcmVha3BvaW50
LlNob3VsZE5vdFBhdXNlT25EaXNhYmxlZEJyZWFrcG9pbnQuWEhSCi1QQVNTOiBBZGRlZCBicmVh
a3BvaW50IGZvciBVUkw6IGRhdGEKLVBBU1M6IEJyZWFrcG9pbnQgc2hvdWxkIG5vdCBiZSBkaXNh
YmxlZCBpbml0aWFsbHkuCi1CcmVha3BvaW50IGRpc2FibGVkLgorQWRkaW5nICJ0ZXh0OmRhdGEi
IFVSTCBCcmVha3BvaW50Li4uCitEaXNhYmxpbmcgYnJlYWtwb2ludC4uLgogUmVxdWVzdCBYSFIg
InJlc291cmNlcy9kYXRhWEhSLmpzb24iLi4uCiBQQVNTOiBTaG91bGQgbm90IHBhdXNlIGZvciBk
aXNhYmxlZCBicmVha3BvaW50LgogLS0gUnVubmluZyB0ZXN0IHRlYXJkb3duLgogCiAtLSBSdW5u
aW5nIHRlc3QgY2FzZTogVVJMQnJlYWtwb2ludC5TaG91bGROb3RQYXVzZU9uTm90Q29udGFpbmlu
Z1VSTC5YSFIKLVBBU1M6IEFkZGVkIGJyZWFrcG9pbnQgZm9yIFVSTDogbm9uZXhpc3RhbnQtdXJs
Ci1QQVNTOiBCcmVha3BvaW50IHNob3VsZCBub3QgYmUgZGlzYWJsZWQgaW5pdGlhbGx5LgorQWRk
aW5nICJ0ZXh0Om5vbmV4aXN0YW50LXVybCIgVVJMIEJyZWFrcG9pbnQuLi4KIFJlcXVlc3QgWEhS
ICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgogUEFTUzogU2hvdWxkIG5vdCBwYXVzZSBmb3Ig
YnJlYWtwb2ludCB3aXRoIGRpZmZlcmVudCBVUkwuCiAtLSBSdW5uaW5nIHRlc3QgdGVhcmRvd24u
CiAKIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBVUkxCcmVha3BvaW50LlJlbW92ZUJyZWFrcG9pbnQu
WEhSCi1QQVNTOiBBZGRlZCBicmVha3BvaW50IGZvciBVUkw6IGRhdGEKLVBBU1M6IEJyZWFrcG9p
bnQgc2hvdWxkIG5vdCBiZSBkaXNhYmxlZCBpbml0aWFsbHkuCi1CcmVha3BvaW50IHJlbW92ZWQu
CitBZGRpbmcgInRleHQ6ZGF0YSIgVVJMIEJyZWFrcG9pbnQuLi4KK1JlbW92aW5nIGJyZWFrcG9p
bnQuLi4KIFJlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgogUEFTUzogU2hv
dWxkIG5vdCBwYXVzZSBmb3IgcmVtb3ZlZCBicmVha3BvaW50LgogLS0gUnVubmluZyB0ZXN0IHRl
YXJkb3duLgogCiAtLSBSdW5uaW5nIHRlc3QgY2FzZTogVVJMQnJlYWtwb2ludC5SZW1vdmVEaXNh
YmxlZEJyZWFrcG9pbnQuWEhSCi1QQVNTOiBBZGRlZCBicmVha3BvaW50IGZvciBVUkw6IGRhdGEK
LVBBU1M6IEJyZWFrcG9pbnQgc2hvdWxkIG5vdCBiZSBkaXNhYmxlZCBpbml0aWFsbHkuCi1CcmVh
a3BvaW50IGRpc2FibGVkLgotQnJlYWtwb2ludCByZW1vdmVkLgorQWRkaW5nICJ0ZXh0OmRhdGEi
IFVSTCBCcmVha3BvaW50Li4uCitEaXNhYmxpbmcgYnJlYWtwb2ludC4uLgorUmVtb3ZpbmcgYnJl
YWtwb2ludC4uLgogUmVxdWVzdCBYSFIgInJlc291cmNlcy9kYXRhWEhSLmpzb24iLi4uCiBQQVNT
OiBTaG91bGQgbm90IHBhdXNlIGZvciByZW1vdmVkIGRpc2FibGVkIGJyZWFrcG9pbnQuCiAtLSBS
dW5uaW5nIHRlc3QgdGVhcmRvd24uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZG9tLWRlYnVnZ2VyL3VybC1icmVha3BvaW50cy1tYXRjaGluZy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL3VybC1icmVha3BvaW50cy1tYXRjaGluZy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI4MDhl
MGVkYjYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1
Z2dlci91cmwtYnJlYWtwb2ludHMtbWF0Y2hpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjUw
IEBACitDT05TT0xFIE1FU1NBR0U6IEJSRUFLUE9JTlQgQUNUSU9OIExPRyAxCitDT05TT0xFIE1F
U1NBR0U6IEJSRUFLUE9JTlQgQUNUSU9OIExPRyAyCitDT05TT0xFIE1FU1NBR0U6IEJSRUFLUE9J
TlQgQUNUSU9OIExPRyAzCitDT05TT0xFIE1FU1NBR0U6IEJSRUFLUE9JTlQgQUNUSU9OIExPRyA0
CitDT05TT0xFIE1FU1NBR0U6IEJSRUFLUE9JTlQgQUNUSU9OIExPRyAxCitDT05TT0xFIE1FU1NB
R0U6IEJSRUFLUE9JTlQgQUNUSU9OIExPRyAyCitDT05TT0xFIE1FU1NBR0U6IEJSRUFLUE9JTlQg
QUNUSU9OIExPRyAzCitDT05TT0xFIE1FU1NBR0U6IEJSRUFLUE9JTlQgQUNUSU9OIExPRyA0CitU
ZXN0cyBmb3IgcmVnZXggVVJMIGJyZWFrcG9pbnRzLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0
ZTogVVJMQnJlYWtwb2ludC5CcmVha09uTWF0Y2hpbmdSZWd1bGFyRXhwcmVzc2lvbgorLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuQnJlYWtPbk1hdGNoaW5nUmVndWxhckV4cHJl
c3Npb24uRmV0Y2gKK0FkZGluZyAicmVnZXg6ZGF0YVtBLVpdKi4oanNvbnx0eHR8cG5nKSIgVVJM
IEJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgRmV0Y2ggInJlc291cmNlcy9kYXRhRmV0Y2guanNvbiIu
Li4KK1BBVVNFRDoKK1BBU1M6IFBhdXNlIHJlYXNvbiBzaG91bGQgYmUgRmV0Y2guCitQQVNTOiBQ
YXVzZSBkYXRhIFVSTCBzaG91bGQgbWF0Y2ggYnJlYWtwb2ludCBVUkwuCitDQUxMIFNUQUNLOgor
MDogW0ZdIGxvYWRSZXNvdXJjZUZldGNoCisxOiBbUF0gR2xvYmFsIENvZGUKKy0tIFJ1bm5pbmcg
dGVzdCB0ZWFyZG93bi4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuQnJl
YWtPbk1hdGNoaW5nUmVndWxhckV4cHJlc3Npb25GZXRjaC4uT3B0aW9ucy5Db25kaXRpb24KK0Fk
ZGluZyAicmVnZXg6ZGF0YVtBLVpdKi4oanNvbnx0eHR8cG5nKSIgVVJMIEJyZWFrcG9pbnQuLi4K
KworU2V0dGluZyBjb25kaXRpb24gdG8gJ2ZhbHNlJy4uLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9p
bnQuLi4KK1JlcXVlc3QgRmV0Y2ggInJlc291cmNlcy9kYXRhRmV0Y2guanNvbiIuLi4KK1BBU1M6
IFNob3VsZCBub3QgcGF1c2UuCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBG
ZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5qc29uIi4uLgorUEFTUzogU2hvdWxkIG5vdCBwYXVz
ZS4KKworU2V0dGluZyBjb25kaXRpb24gdG8gJ3RydWUnLi4uCisKK1RyaWdnZXJpbmcgYnJlYWtw
b2ludC4uLgorUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5qc29uIi4uLgorUEFT
UzogU2hvdWxkIHBhdXNlLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgRmV0
Y2ggInJlc291cmNlcy9kYXRhRmV0Y2guanNvbiIuLi4KK1BBU1M6IFNob3VsZCBwYXVzZS4KKwor
LS0gUnVubmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuQnJlYWtPbk1hdGNoaW5nUmVndWxh
ckV4cHJlc3Npb24uRmV0Y2guT3B0aW9ucy5JZ25vcmVDb3VudAorQWRkaW5nICJyZWdleDpkYXRh
W0EtWl0qLihqc29ufHR4dHxwbmcpIiBVUkwgQnJlYWtwb2ludC4uLgorCitTZXR0aW5nIGlnbm9y
ZUNvdW50IHRvICcyJy4uLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgRmV0
Y2ggInJlc291cmNlcy9kYXRhRmV0Y2guanNvbiIuLi4KK1BBU1M6IFNob3VsZCBub3QgcGF1c2Uu
CisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2Rh
dGFGZXRjaC5qc29uIi4uLgorUEFTUzogU2hvdWxkIG5vdCBwYXVzZS4KKworVHJpZ2dlcmluZyBi
cmVha3BvaW50Li4uCitSZXF1ZXN0IEZldGNoICJyZXNvdXJjZXMvZGF0YUZldGNoLmpzb24iLi4u
CitQQVNTOiBTaG91bGQgcGF1c2UuCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVz
dCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5qc29uIi4uLgorUEFTUzogU2hvdWxkIHBhdXNl
LgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogVVJMQnJlYWtwb2ludC5CcmVha09uTWF0Y2hpbmdS
ZWd1bGFyRXhwcmVzc2lvbkZldGNoLi5PcHRpb25zLkFjdGlvbi5Mb2cKK0FkZGluZyAicmVnZXg6
ZGF0YVtBLVpdKi4oanNvbnx0eHR8cG5nKSIgVVJMIEJyZWFrcG9pbnQuLi4KKworQWRkaW5nIGxv
ZyBhY3Rpb24uLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IEZldGNoICJy
ZXNvdXJjZXMvZGF0YUZldGNoLmpzb24iLi4uCitQQVNTOiBTaG91bGQgZXhlY3V0ZSBicmVha3Bv
aW50IGFjdGlvbi4KK1BBU1M6IFNob3VsZCBwYXVzZS4KKworRWRpdGluZyBsb2cgYWN0aW9uLi4u
CisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2Rh
dGFGZXRjaC5qc29uIi4uLgorUEFTUzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24u
CitQQVNTOiBTaG91bGQgcGF1c2UuCisKK0VkaXRpbmcgbG9nIGFjdGlvbi4uLgorRW5hYmxpbmcg
YXV0by1jb250aW51ZS4uLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgRmV0
Y2ggInJlc291cmNlcy9kYXRhRmV0Y2guanNvbiIuLi4KK1BBU1M6IFNob3VsZCBleGVjdXRlIGJy
ZWFrcG9pbnQgYWN0aW9uLgorUEFTUzogU2hvdWxkIG5vdCBwYXVzZS4KKworRWRpdGluZyBsb2cg
YWN0aW9uLi4uCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBGZXRjaCAicmVz
b3VyY2VzL2RhdGFGZXRjaC5qc29uIi4uLgorUEFTUzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2lu
dCBhY3Rpb24uCitQQVNTOiBTaG91bGQgbm90IHBhdXNlLgorCistLSBSdW5uaW5nIHRlc3QgY2Fz
ZTogVVJMQnJlYWtwb2ludC5CcmVha09uTWF0Y2hpbmdSZWd1bGFyRXhwcmVzc2lvbkZldGNoLi5P
cHRpb25zLkFjdGlvbnMuRXZhbHVhdGUKK0FkZGluZyAicmVnZXg6ZGF0YVtBLVpdKi4oanNvbnx0
eHR8cG5nKSIgVVJMIEJyZWFrcG9pbnQuLi4KKworQWRkaW5nIGV2YWx1YXRlIGFjdGlvbi4uLgor
CitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgRmV0Y2ggInJlc291cmNlcy9kYXRh
RmV0Y2guanNvbiIuLi4KK1BBU1M6IFNob3VsZCBleGVjdXRlIGJyZWFrcG9pbnQgYWN0aW9uLgor
UEFTUzogU2hvdWxkIHBhdXNlLgorCitFZGl0aW5nIGV2YWx1YXRlIGFjdGlvbi4uLgorCitUcmln
Z2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgRmV0Y2ggInJlc291cmNlcy9kYXRhRmV0Y2gu
anNvbiIuLi4KK1BBU1M6IFNob3VsZCBleGVjdXRlIGJyZWFrcG9pbnQgYWN0aW9uLgorUEFTUzog
U2hvdWxkIHBhdXNlLgorCitFZGl0aW5nIGV2YWx1YXRlIGFjdGlvbi4uLgorRW5hYmxpbmcgYXV0
by1jb250aW51ZS4uLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgRmV0Y2gg
InJlc291cmNlcy9kYXRhRmV0Y2guanNvbiIuLi4KK1BBU1M6IFNob3VsZCBleGVjdXRlIGJyZWFr
cG9pbnQgYWN0aW9uLgorUEFTUzogU2hvdWxkIG5vdCBwYXVzZS4KKworRWRpdGluZyBldmFsdWF0
ZSBhY3Rpb24uLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IEZldGNoICJy
ZXNvdXJjZXMvZGF0YUZldGNoLmpzb24iLi4uCitQQVNTOiBTaG91bGQgZXhlY3V0ZSBicmVha3Bv
aW50IGFjdGlvbi4KK1BBU1M6IFNob3VsZCBub3QgcGF1c2UuCisKKy0tIFJ1bm5pbmcgdGVzdCBj
YXNlOiBVUkxCcmVha3BvaW50LkJyZWFrT25NYXRjaGluZ1JlZ3VsYXJFeHByZXNzaW9uLlhIUgor
QWRkaW5nICJyZWdleDpkYXRhW0EtWl0qLihqc29ufHR4dHxwbmcpIiBVUkwgQnJlYWtwb2ludC4u
LgorUmVxdWVzdCBYSFIgInJlc291cmNlcy9kYXRhWEhSLmpzb24iLi4uCitQQVVTRUQ6CitQQVNT
OiBQYXVzZSByZWFzb24gc2hvdWxkIGJlIFhIUi4KK1BBU1M6IFBhdXNlIGRhdGEgVVJMIHNob3Vs
ZCBtYXRjaCBicmVha3BvaW50IFVSTC4KK0NBTEwgU1RBQ0s6CiswOiBbRl0gbG9hZFJlc291cmNl
WEhSCisxOiBbUF0gR2xvYmFsIENvZGUKKy0tIFJ1bm5pbmcgdGVzdCB0ZWFyZG93bi4KKworLS0g
UnVubmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuQnJlYWtPbk1hdGNoaW5nUmVndWxhckV4
cHJlc3Npb25YSFIuLk9wdGlvbnMuQ29uZGl0aW9uCitBZGRpbmcgInJlZ2V4OmRhdGFbQS1aXSou
KGpzb258dHh0fHBuZykiIFVSTCBCcmVha3BvaW50Li4uCisKK1NldHRpbmcgY29uZGl0aW9uIHRv
ICdmYWxzZScuLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IFhIUiAicmVz
b3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6IFNob3VsZCBub3QgcGF1c2UuCisKK1RyaWdn
ZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBYSFIgInJlc291cmNlcy9kYXRhWEhSLmpzb24i
Li4uCitQQVNTOiBTaG91bGQgbm90IHBhdXNlLgorCitTZXR0aW5nIGNvbmRpdGlvbiB0byAndHJ1
ZScuLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IFhIUiAicmVzb3VyY2Vz
L2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6IFNob3VsZCBwYXVzZS4KKworVHJpZ2dlcmluZyBicmVh
a3BvaW50Li4uCitSZXF1ZXN0IFhIUiAicmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6
IFNob3VsZCBwYXVzZS4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuQnJl
YWtPbk1hdGNoaW5nUmVndWxhckV4cHJlc3Npb24uWEhSLk9wdGlvbnMuSWdub3JlQ291bnQKK0Fk
ZGluZyAicmVnZXg6ZGF0YVtBLVpdKi4oanNvbnx0eHR8cG5nKSIgVVJMIEJyZWFrcG9pbnQuLi4K
KworU2V0dGluZyBpZ25vcmVDb3VudCB0byAnMicuLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50
Li4uCitSZXF1ZXN0IFhIUiAicmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6IFNob3Vs
ZCBub3QgcGF1c2UuCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBYSFIgInJl
c291cmNlcy9kYXRhWEhSLmpzb24iLi4uCitQQVNTOiBTaG91bGQgbm90IHBhdXNlLgorCitUcmln
Z2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29u
Ii4uLgorUEFTUzogU2hvdWxkIHBhdXNlLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1Jl
cXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgorUEFTUzogU2hvdWxkIHBhdXNl
LgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogVVJMQnJlYWtwb2ludC5CcmVha09uTWF0Y2hpbmdS
ZWd1bGFyRXhwcmVzc2lvblhIUi4uT3B0aW9ucy5BY3Rpb24uTG9nCitBZGRpbmcgInJlZ2V4OmRh
dGFbQS1aXSouKGpzb258dHh0fHBuZykiIFVSTCBCcmVha3BvaW50Li4uCisKK0FkZGluZyBsb2cg
YWN0aW9uLi4uCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBYSFIgInJlc291
cmNlcy9kYXRhWEhSLmpzb24iLi4uCitQQVNTOiBTaG91bGQgZXhlY3V0ZSBicmVha3BvaW50IGFj
dGlvbi4KK1BBU1M6IFNob3VsZCBwYXVzZS4KKworRWRpdGluZyBsb2cgYWN0aW9uLi4uCisKK1Ry
aWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBYSFIgInJlc291cmNlcy9kYXRhWEhSLmpz
b24iLi4uCitQQVNTOiBTaG91bGQgZXhlY3V0ZSBicmVha3BvaW50IGFjdGlvbi4KK1BBU1M6IFNo
b3VsZCBwYXVzZS4KKworRWRpdGluZyBsb2cgYWN0aW9uLi4uCitFbmFibGluZyBhdXRvLWNvbnRp
bnVlLi4uCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBYSFIgInJlc291cmNl
cy9kYXRhWEhSLmpzb24iLi4uCitQQVNTOiBTaG91bGQgZXhlY3V0ZSBicmVha3BvaW50IGFjdGlv
bi4KK1BBU1M6IFNob3VsZCBub3QgcGF1c2UuCisKK0VkaXRpbmcgbG9nIGFjdGlvbi4uLgorCitU
cmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5q
c29uIi4uLgorUEFTUzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBT
aG91bGQgbm90IHBhdXNlLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogVVJMQnJlYWtwb2ludC5C
cmVha09uTWF0Y2hpbmdSZWd1bGFyRXhwcmVzc2lvblhIUi4uT3B0aW9ucy5BY3Rpb25zLkV2YWx1
YXRlCitBZGRpbmcgInJlZ2V4OmRhdGFbQS1aXSouKGpzb258dHh0fHBuZykiIFVSTCBCcmVha3Bv
aW50Li4uCisKK0FkZGluZyBldmFsdWF0ZSBhY3Rpb24uLi4KKworVHJpZ2dlcmluZyBicmVha3Bv
aW50Li4uCitSZXF1ZXN0IFhIUiAicmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6IFNo
b3VsZCBleGVjdXRlIGJyZWFrcG9pbnQgYWN0aW9uLgorUEFTUzogU2hvdWxkIHBhdXNlLgorCitF
ZGl0aW5nIGV2YWx1YXRlIGFjdGlvbi4uLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1Jl
cXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgorUEFTUzogU2hvdWxkIGV4ZWN1
dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQgcGF1c2UuCisKK0VkaXRpbmcgZXZh
bHVhdGUgYWN0aW9uLi4uCitFbmFibGluZyBhdXRvLWNvbnRpbnVlLi4uCisKK1RyaWdnZXJpbmcg
YnJlYWtwb2ludC4uLgorUmVxdWVzdCBYSFIgInJlc291cmNlcy9kYXRhWEhSLmpzb24iLi4uCitQ
QVNTOiBTaG91bGQgZXhlY3V0ZSBicmVha3BvaW50IGFjdGlvbi4KK1BBU1M6IFNob3VsZCBub3Qg
cGF1c2UuCisKK0VkaXRpbmcgZXZhbHVhdGUgYWN0aW9uLi4uCisKK1RyaWdnZXJpbmcgYnJlYWtw
b2ludC4uLgorUmVxdWVzdCBYSFIgInJlc291cmNlcy9kYXRhWEhSLmpzb24iLi4uCitQQVNTOiBT
aG91bGQgZXhlY3V0ZSBicmVha3BvaW50IGFjdGlvbi4KK1BBU1M6IFNob3VsZCBub3QgcGF1c2Uu
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvdXJsLWJy
ZWFrcG9pbnRzLW1hdGNoaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVn
Z2VyL3VybC1icmVha3BvaW50cy1tYXRjaGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi5kOTE2Y2M5MWVjNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvdXJsLWJyZWFrcG9pbnRzLW1hdGNoaW5nLmh0bWwK
QEAgLTAsMCArMSw1NyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZGVidWdnZXIvcmVzb3VyY2VzL2JyZWFr
cG9pbnQtb3B0aW9ucy11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2Rl
YnVnZ2VyL3Jlc291cmNlcy9sb2ctYWN0aXZlLXN0YWNrLXRyYWNlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi93b3JrZXIvcmVzb3VyY2VzL3Jlc291cmNlLXV0aWxpdGllcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3VybC1icmVha3BvaW50LXV0aWxpdGllcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgY29uc3QgdHlw
ZSA9IFdJLlVSTEJyZWFrcG9pbnQuVHlwZS5SZWd1bGFyRXhwcmVzc2lvbjsKKyAgICBjb25zdCB1
cmwgPSAiZGF0YVtBLVpdKlwuKGpzb258dHh0fHBuZykiOworCisgICAgbGV0IHN1aXRlID0gSW5z
cGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJVUkxCcmVha3BvaW50LkJyZWFrT25NYXRjaGlu
Z1JlZ3VsYXJFeHByZXNzaW9uIik7CisKKyAgICBmb3IgKGxldCBhcGkgb2YgWyJGZXRjaCIsICJY
SFIiXSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lOiAi
VVJMQnJlYWtwb2ludC5CcmVha09uTWF0Y2hpbmdSZWd1bGFyRXhwcmVzc2lvbi4iICsgYXBpLAor
ICAgICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGRlYnVnZ2VyIHBhdXNlcyBiYXNl
ZCBvbiBhIFVSTCBtYXRjaGluZyBhIHJlZ2V4IHBhdHRlcm4uIiwKKyAgICAgICAgICAgIGFzeW5j
IHRlc3QoKSB7CisgICAgICAgICAgICAgICAgbGV0IGJyZWFrcG9pbnQgPSBhd2FpdCBJbnNwZWN0
b3JUZXN0LlVSTEJyZWFrcG9pbnQuY3JlYXRlQnJlYWtwb2ludCh0eXBlLCB1cmwpOworCisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5VUkxCcmVha3BvaW50LnJlcXVlc3QoYXBpKTsKKyAg
ICAgICAgICAgICAgICBhd2FpdCBXSS5kZWJ1Z2dlck1hbmFnZXIuYXdhaXRFdmVudChXSS5EZWJ1
Z2dlck1hbmFnZXIuRXZlbnQuUGF1c2VkKTsKKworICAgICAgICAgICAgICAgIGxldCB0YXJnZXRE
YXRhID0gV0kuZGVidWdnZXJNYW5hZ2VyLmRhdGFGb3JUYXJnZXQoV0kuZGVidWdnZXJNYW5hZ2Vy
LmFjdGl2ZUNhbGxGcmFtZS50YXJnZXQpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJQQVVTRUQ6Iik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVh
bCh0YXJnZXREYXRhLnBhdXNlUmVhc29uLCBXSS5EZWJ1Z2dlck1hbmFnZXIuUGF1c2VSZWFzb25b
YXBpXSwgYFBhdXNlIHJlYXNvbiBzaG91bGQgYmUgJHthcGl9LmApOworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwodGFyZ2V0RGF0YS5wYXVzZURhdGEuYnJlYWtwb2lu
dFVSTCwgYnJlYWtwb2ludC51cmwsICJQYXVzZSBkYXRhIFVSTCBzaG91bGQgbWF0Y2ggYnJlYWtw
b2ludCBVUkwuIik7CisKKyAgICAgICAgICAgICAgICBsb2dBY3RpdmVTdGFja1RyYWNlKCk7CisK
KyAgICAgICAgICAgICAgICBhd2FpdCBXSS5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7CisgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgdGVhcmRvd246IEluc3BlY3RvclRlc3QuVVJMQnJlYWtw
b2ludC50ZWFyZG93biwKKyAgICAgICAgfSk7CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5CcmVh
a3BvaW50T3B0aW9ucy5hZGRUZXN0Q2FzZXMoc3VpdGUsIHsKKyAgICAgICAgICAgIHRlc3RDYXNl
TmFtZVByZWZpeDogYXBpICsgIi4iLAorICAgICAgICAgICAgY3JlYXRlQnJlYWtwb2ludCgpIHsK
KyAgICAgICAgICAgICAgICByZXR1cm4gSW5zcGVjdG9yVGVzdC5VUkxCcmVha3BvaW50LmNyZWF0
ZUJyZWFrcG9pbnQodHlwZSwgdXJsKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB0cmln
Z2VyQnJlYWtwb2ludCgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gSW5zcGVjdG9yVGVzdC5V
UkxCcmVha3BvaW50LnJlcXVlc3QoYXBpKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgIH0pOwor
ICAgIH0KKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0cyBmb3IgcmVnZXgg
VVJMIGJyZWFrcG9pbnRzLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvdXJsLWJyZWFrcG9pbnRzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL3VybC1icmVha3BvaW50cy5odG1sCmluZGV4
IGQxNjFjNjM5ZTQ0Li5iOWM1MWQ2NmU3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RvbS1kZWJ1Z2dlci91cmwtYnJlYWtwb2ludHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZG9tLWRlYnVnZ2VyL3VybC1icmVha3BvaW50cy5odG1sCkBAIC0yLDIzNCArMiwx
MDYgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9kZWJ1Z2dlci9yZXNvdXJjZXMvYnJlYWtwb2ludC1vcHRpb25zLXV0aWxpdGllcy5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vZGVidWdnZXIvcmVzb3VyY2VzL2xvZy1hY3RpdmUt
c3RhY2stdHJhY2UuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uL3dvcmtlci9yZXNvdXJj
ZXMvcmVzb3VyY2UtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdXJsLWJyZWFrcG9pbnQtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBmdW5j
dGlvbiB0ZXN0KCkKIHsKICAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5j
U3VpdGUoIlVSTEJyZWFrcG9pbnQiKTsKIAotICAgIGZ1bmN0aW9uIHJlcXVlc3QodHlwZSkgewot
ICAgICAgICBsZXQgdXJsID0gYHJlc291cmNlcy9kYXRhJHt0eXBlfS5qc29uYDsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2coYFJlcXVlc3QgJHt0eXBlfSAiJHt1cmx9Ii4uLmApOwotICAgICAg
ICByZXR1cm4gSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgbG9hZFJlc291cmNlJHt0eXBl
fSgiJHt1cmx9IilgKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZWFyZG93bihyZXNvbHZlKSB7
Ci0gICAgICAgIGxldCBicmVha3BvaW50cyA9IFdJLmRvbURlYnVnZ2VyTWFuYWdlci51cmxCcmVh
a3BvaW50czsKLSAgICAgICAgZm9yIChsZXQgYnJlYWtwb2ludCBvZiBicmVha3BvaW50cykKLSAg
ICAgICAgICAgIFdJLmRvbURlYnVnZ2VyTWFuYWdlci5yZW1vdmVVUkxCcmVha3BvaW50KGJyZWFr
cG9pbnQpOwotCi0gICAgICAgIFdJLmRvbURlYnVnZ2VyTWFuYWdlci5hbGxSZXF1ZXN0c0JyZWFr
cG9pbnQuZGlzYWJsZWQgPSB0cnVlOwotICAgICAgICByZXNvbHZlKCk7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gYWRkQnJlYWtwb2ludCh0eXBlLCB1cmwpIHsKLSAgICAgICAgcmV0dXJuIG5ldyBQ
cm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKLSAgICAgICAgICAgIGxldCBtYWluRnJhbWUg
PSBXSS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWU7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydChtYWluRnJhbWUsICJNaXNzaW5nIG1haW4gZnJhbWUuIik7Ci0gICAgICAgICAgICBp
ZiAoIW1haW5GcmFtZSkKLSAgICAgICAgICAgICAgICByZWplY3QoKTsKLQotICAgICAgICAgICAg
bGV0IGJyZWFrcG9pbnQgPSBuZXcgV0kuVVJMQnJlYWtwb2ludCh0eXBlLCB1cmwpOwotICAgICAg
ICAgICAgV0kuZG9tRGVidWdnZXJNYW5hZ2VyLmF3YWl0RXZlbnQoV0kuRE9NRGVidWdnZXJNYW5h
Z2VyLkV2ZW50LlVSTEJyZWFrcG9pbnRBZGRlZCkKLSAgICAgICAgICAgIC50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnBhc3MoIkFkZGVkIGJyZWFrcG9pbnQgZm9y
IFVSTDogIiArIHVybCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RGYWxz
ZShicmVha3BvaW50LmRpc2FibGVkLCAiQnJlYWtwb2ludCBzaG91bGQgbm90IGJlIGRpc2FibGVk
IGluaXRpYWxseS4iKTsKLSAgICAgICAgICAgICAgICByZXNvbHZlKGJyZWFrcG9pbnQpOwotICAg
ICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgIFdJLmRvbURlYnVnZ2VyTWFuYWdlci5hZGRVUkxC
cmVha3BvaW50KGJyZWFrcG9pbnQpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBmb3IgKGxl
dCB0eXBlIG9mIFsiRmV0Y2giLCAiWEhSIl0pIHsKKyAgICBmb3IgKGxldCBhcGkgb2YgWyJGZXRj
aCIsICJYSFIiXSkgewogICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgICAgICBu
YW1lOiAiVVJMQnJlYWtwb2ludC5CcmVha09uQWxsLiIgKyB0eXBlLAotICAgICAgICAgICAgZGVz
Y3JpcHRpb246ICJDaGVjayB0aGF0IGRlYnVnZ2VyIHBhdXNlcyBmb3IgYWxsIHJlcXVlc3RzLiIs
Ci0gICAgICAgICAgICB0ZWFyZG93biwKLSAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0
KSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlNldCBwYXVzZSBvbiBhbGwg
cmVxdWVzdHMuIik7Ci0gICAgICAgICAgICAgICAgV0kuZG9tRGVidWdnZXJNYW5hZ2VyLmFsbFJl
cXVlc3RzQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwotCi0gICAgICAgICAgICAgICAgcmVx
dWVzdCh0eXBlKTsKLQotICAgICAgICAgICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5hd2FpdEV2
ZW50KFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5QYXVzZWQpCi0gICAgICAgICAgICAgICAgLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0RGF0YSA9IFdJLmRlYnVn
Z2VyTWFuYWdlci5kYXRhRm9yVGFyZ2V0KFdJLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxsRnJh
bWUudGFyZ2V0KTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBVVNF
RDoiKTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbCh0YXJn
ZXREYXRhLnBhdXNlUmVhc29uLCBXSS5EZWJ1Z2dlck1hbmFnZXIuUGF1c2VSZWFzb25bdHlwZV0s
IGBQYXVzZSByZWFzb24gc2hvdWxkIGJlICR7dHlwZX0uYCk7Ci0gICAgICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2UodGFyZ2V0RGF0YS5wYXVzZURhdGEuYnJlYWtwb2lu
dFVSTCwgIlBhdXNlIGRhdGEgVVJMIHNob3VsZCBiZSBlbXB0eS4iKTsKLQotICAgICAgICAgICAg
ICAgICAgICBsb2dBY3RpdmVTdGFja1RyYWNlKCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIFdJLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKLSAgICAgICAgICAgICAgICB9KQotICAg
ICAgICAgICAgICAgIC50aGVuKHJlc29sdmUsIHJlamVjdCk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0pOwotCi0gICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKLSAgICAgICAgICAgIG5hbWU6
ICJVUkxCcmVha3BvaW50LkJyZWFrT25Db250YWluaW5nVGV4dC4iICsgdHlwZSwKLSAgICAgICAg
ICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBkZWJ1Z2dlciBwYXVzZXMgb24gYSBVUkwgY29u
dGFpbmluZyB0ZXh0LiIsCi0gICAgICAgICAgICB0ZWFyZG93biwKLSAgICAgICAgICAgIHRlc3Qo
cmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICAgICAgbGV0IGV4cGVjdGVkQnJlYWtwb2lu
dFVSTDsKLQotICAgICAgICAgICAgICAgIGFkZEJyZWFrcG9pbnQoV0kuVVJMQnJlYWtwb2ludC5U
eXBlLlRleHQsICJkYXRhIikKLSAgICAgICAgICAgICAgICAudGhlbigoYnJlYWtwb2ludCkgPT4g
ewotICAgICAgICAgICAgICAgICAgICBleHBlY3RlZEJyZWFrcG9pbnRVUkwgPSBicmVha3BvaW50
LnVybDsKLQotICAgICAgICAgICAgICAgICAgICByZXF1ZXN0KHR5cGUpOwotICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gV0kuZGVidWdnZXJNYW5hZ2VyLmF3YWl0RXZlbnQoV0kuRGVidWdnZXJN
YW5hZ2VyLkV2ZW50LlBhdXNlZCk7Ci0gICAgICAgICAgICAgICAgfSkKLSAgICAgICAgICAgICAg
ICAudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXREYXRhID0gV0ku
ZGVidWdnZXJNYW5hZ2VyLmRhdGFGb3JUYXJnZXQoV0kuZGVidWdnZXJNYW5hZ2VyLmFjdGl2ZUNh
bGxGcmFtZS50YXJnZXQpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
UEFVU0VEOiIpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFs
KHRhcmdldERhdGEucGF1c2VSZWFzb24sIFdJLkRlYnVnZ2VyTWFuYWdlci5QYXVzZVJlYXNvblt0
eXBlXSwgYFBhdXNlIHJlYXNvbiBzaG91bGQgYmUgJHt0eXBlfS5gKTsKLSAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbCh0YXJnZXREYXRhLnBhdXNlRGF0YS5icmVh
a3BvaW50VVJMLCBleHBlY3RlZEJyZWFrcG9pbnRVUkwsICJQYXVzZSBkYXRhIFVSTCBzaG91bGQg
bWF0Y2ggYnJlYWtwb2ludCBVUkwuIik7Ci0KLSAgICAgICAgICAgICAgICAgICAgbG9nQWN0aXZl
U3RhY2tUcmFjZSgpOwotCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBXSS5kZWJ1Z2dlck1h
bmFnZXIucmVzdW1lKCk7Ci0gICAgICAgICAgICAgICAgfSkKLSAgICAgICAgICAgICAgICAudGhl
bihyZXNvbHZlLCByZWplY3QpOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLQotICAgICAg
ICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgICAgICBuYW1lOiAiVVJMQnJlYWtwb2ludC5C
cmVha09uTWF0Y2hpbmdSZWd1bGFyRXhwcmVzc2lvbi4iICsgdHlwZSwKLSAgICAgICAgICAgIGRl
c2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBkZWJ1Z2dlciBwYXVzZXMgYmFzZWQgb24gYSBVUkwgbWF0
Y2hpbmcgYSByZWdleCBwYXR0ZXJuLiIsCi0gICAgICAgICAgICB0ZWFyZG93biwKLSAgICAgICAg
ICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICAgICAgbGV0IGV4cGVjdGVk
QnJlYWtwb2ludFVSTDsKLSAgICAgICAgICAgICAgICBhZGRCcmVha3BvaW50KFdJLlVSTEJyZWFr
cG9pbnQuVHlwZS5SZWd1bGFyRXhwcmVzc2lvbiwgImRhdGFbQS1aXSpcLihqc29ufHR4dHxwbmcp
IikKLSAgICAgICAgICAgICAgICAudGhlbigoYnJlYWtwb2ludCkgPT4gewotICAgICAgICAgICAg
ICAgICAgICBleHBlY3RlZEJyZWFrcG9pbnRVUkwgPSBicmVha3BvaW50LnVybDsKLQotICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0KHR5cGUpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4g
V0kuZGVidWdnZXJNYW5hZ2VyLmF3YWl0RXZlbnQoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBh
dXNlZCk7Ci0gICAgICAgICAgICAgICAgfSkKLSAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXREYXRhID0gV0kuZGVidWdnZXJNYW5hZ2Vy
LmRhdGFGb3JUYXJnZXQoV0kuZGVidWdnZXJNYW5hZ2VyLmFjdGl2ZUNhbGxGcmFtZS50YXJnZXQp
OwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFVU0VEOiIpOwotICAg
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHRhcmdldERhdGEucGF1
c2VSZWFzb24sIFdJLkRlYnVnZ2VyTWFuYWdlci5QYXVzZVJlYXNvblt0eXBlXSwgYFBhdXNlIHJl
YXNvbiBzaG91bGQgYmUgJHt0eXBlfS5gKTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RFcXVhbCh0YXJnZXREYXRhLnBhdXNlRGF0YS5icmVha3BvaW50VVJMLCBleHBl
Y3RlZEJyZWFrcG9pbnRVUkwsICJQYXVzZSBkYXRhIFVSTCBzaG91bGQgbWF0Y2ggYnJlYWtwb2lu
dCBVUkwuIik7Ci0KLSAgICAgICAgICAgICAgICAgICAgbG9nQWN0aXZlU3RhY2tUcmFjZSgpOwot
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBXSS5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7
Ci0gICAgICAgICAgICAgICAgfSkKLSAgICAgICAgICAgICAgICAudGhlbihyZXNvbHZlLCByZWpl
Y3QpOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLQotICAgICAgICBzdWl0ZS5hZGRUZXN0
Q2FzZSh7Ci0gICAgICAgICAgICBuYW1lOiAiVVJMQnJlYWtwb2ludC5TaG91bGROb3RQYXVzZU9u
RGlzYWJsZWRCcmVha3BvaW50LiIgKyB0eXBlLAorICAgICAgICAgICAgbmFtZTogIlVSTEJyZWFr
cG9pbnQuU2hvdWxkTm90UGF1c2VPbkRpc2FibGVkQnJlYWtwb2ludC4iICsgYXBpLAogICAgICAg
ICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGRlYnVnZ2VyIGRvZXMgbm90IHBhdXNlIGZv
ciBkaXNhYmxlZCBicmVha3BvaW50LiIsCi0gICAgICAgICAgICB0ZWFyZG93biwKLSAgICAgICAg
ICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICBhc3luYyB0ZXN0KCkgewog
ICAgICAgICAgICAgICAgIGxldCBwYXVzZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICBsZXQg
bGlzdGVuZXIgPSBXSS5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5EZWJ1Z2dl
ck1hbmFnZXIuRXZlbnQuUGF1c2VkLCAoZXZlbnQpID0+IHsKICAgICAgICAgICAgICAgICAgICAg
cGF1c2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLnJl
c3VtZSgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgICAgYWRkQnJlYWtw
b2ludChXSS5VUkxCcmVha3BvaW50LlR5cGUuVGV4dCwgImRhdGEiKQotICAgICAgICAgICAgICAg
IC50aGVuKChicmVha3BvaW50KSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQu
ZGlzYWJsZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
QnJlYWtwb2ludCBkaXNhYmxlZC4iKTsKKyAgICAgICAgICAgICAgICBsZXQgYnJlYWtwb2ludCA9
IGF3YWl0IEluc3BlY3RvclRlc3QuVVJMQnJlYWtwb2ludC5jcmVhdGVCcmVha3BvaW50KFdJLlVS
TEJyZWFrcG9pbnQuVHlwZS5UZXh0LCAiZGF0YSIpCiAKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHJlcXVlc3QodHlwZSk7Ci0gICAgICAgICAgICAgICAgfSkKLSAgICAgICAgICAgICAgICAu
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFs
c2UocGF1c2VkLCAiU2hvdWxkIG5vdCBwYXVzZSBmb3IgZGlzYWJsZWQgYnJlYWtwb2ludC4iKTsK
LSAgICAgICAgICAgICAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVu
ZXIoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNlZCwgbGlzdGVuZXIpOwotICAgICAgICAg
ICAgICAgICAgICByZXNvbHZlKCk7Ci0gICAgICAgICAgICAgICAgfSkKLSAgICAgICAgICAgICAg
ICAuY2F0Y2gocmVqZWN0KTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiRGlzYWJsaW5nIGJyZWFrcG9pbnQuLi4iKTsKKyAgICAgICAgICAgICAgICBi
cmVha3BvaW50LmRpc2FibGVkID0gdHJ1ZTsKKworICAgICAgICAgICAgICAgIGF3YWl0IEluc3Bl
Y3RvclRlc3QuVVJMQnJlYWtwb2ludC5yZXF1ZXN0KGFwaSk7CisKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGVjdEZhbHNlKHBhdXNlZCwgIlNob3VsZCBub3QgcGF1c2UgZm9yIGRp
c2FibGVkIGJyZWFrcG9pbnQuIik7CisgICAgICAgICAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2Vy
LnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNlZCwgbGlz
dGVuZXIpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHRlYXJkb3duOiBJbnNwZWN0b3JU
ZXN0LlVSTEJyZWFrcG9pbnQudGVhcmRvd24sCiAgICAgICAgIH0pOwogCiAgICAgICAgIHN1aXRl
LmFkZFRlc3RDYXNlKHsKLSAgICAgICAgICAgIG5hbWU6ICJVUkxCcmVha3BvaW50LlNob3VsZE5v
dFBhdXNlT25Ob3RDb250YWluaW5nVVJMLiIgKyB0eXBlLAorICAgICAgICAgICAgbmFtZTogIlVS
TEJyZWFrcG9pbnQuU2hvdWxkTm90UGF1c2VPbk5vdENvbnRhaW5pbmdVUkwuIiArIGFwaSwKICAg
ICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBkZWJ1Z2dlciBkb2VzIG5vdCBwYXVz
ZSBmb3IgYnJlYWtwb2ludCB3aXRoIGRpZmZlcmVudCBVUkwuIiwKLSAgICAgICAgICAgIHRlYXJk
b3duLAotICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgIGFz
eW5jIHRlc3QoKSB7CiAgICAgICAgICAgICAgICAgbGV0IHBhdXNlZCA9IGZhbHNlOwogICAgICAg
ICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3Rl
bmVyKFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5QYXVzZWQsIChldmVudCkgPT4gewogICAgICAg
ICAgICAgICAgICAgICBwYXVzZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICBXSS5kZWJ1
Z2dlck1hbmFnZXIucmVzdW1lKCk7CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAg
ICAgICBhZGRCcmVha3BvaW50KFdJLlVSTEJyZWFrcG9pbnQuVHlwZS5UZXh0LCAibm9uZXhpc3Rh
bnQtdXJsIikKLSAgICAgICAgICAgICAgICAudGhlbigoYnJlYWtwb2ludCkgPT4gewotICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdCh0eXBlKTsKLSAgICAgICAgICAgICAgICB9KQot
ICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RGYWxzZShwYXVzZWQsICJTaG91bGQgbm90IHBhdXNlIGZvciBicmVha3Bv
aW50IHdpdGggZGlmZmVyZW50IFVSTC4iKTsKLSAgICAgICAgICAgICAgICAgICAgV0kuZGVidWdn
ZXJNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBh
dXNlZCwgbGlzdGVuZXIpOwotICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7Ci0gICAgICAg
ICAgICAgICAgfSkKLSAgICAgICAgICAgICAgICAuY2F0Y2gocmVqZWN0KTsKLSAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICBsZXQgYnJlYWtwb2ludCA9IGF3YWl0IEluc3BlY3RvclRlc3Qu
VVJMQnJlYWtwb2ludC5jcmVhdGVCcmVha3BvaW50KFdJLlVSTEJyZWFrcG9pbnQuVHlwZS5UZXh0
LCAibm9uZXhpc3RhbnQtdXJsIikKKworICAgICAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRl
c3QuVVJMQnJlYWtwb2ludC5yZXF1ZXN0KGFwaSk7CisKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGVjdEZhbHNlKHBhdXNlZCwgIlNob3VsZCBub3QgcGF1c2UgZm9yIGJyZWFrcG9p
bnQgd2l0aCBkaWZmZXJlbnQgVVJMLiIpOworICAgICAgICAgICAgICAgIFdJLmRlYnVnZ2VyTWFu
YWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5QYXVzZWQs
IGxpc3RlbmVyKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB0ZWFyZG93bjogSW5zcGVj
dG9yVGVzdC5VUkxCcmVha3BvaW50LnRlYXJkb3duLAogICAgICAgICB9KTsKIAogICAgICAgICBz
dWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgICAgICBuYW1lOiAiVVJMQnJlYWtwb2ludC5SZW1v
dmVCcmVha3BvaW50LiIgKyB0eXBlLAorICAgICAgICAgICAgbmFtZTogIlVSTEJyZWFrcG9pbnQu
UmVtb3ZlQnJlYWtwb2ludC4iICsgYXBpLAogICAgICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVj
ayB0aGF0IGRlYnVnZ2VyIGRvZXMgbm90IHBhdXNlIGZvciByZW1vdmVkIGJyZWFrcG9pbnQuIiwK
LSAgICAgICAgICAgIHRlYXJkb3duLAotICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3Qp
IHsKKyAgICAgICAgICAgIGFzeW5jIHRlc3QoKSB7CiAgICAgICAgICAgICAgICAgbGV0IHBhdXNl
ZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmRlYnVnZ2VyTWFu
YWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5QYXVzZWQsIChl
dmVudCkgPT4gewogICAgICAgICAgICAgICAgICAgICBwYXVzZWQgPSB0cnVlOwogICAgICAgICAg
ICAgICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7CiAgICAgICAgICAgICAgICAg
fSk7CiAKLSAgICAgICAgICAgICAgICBhZGRCcmVha3BvaW50KFdJLlVSTEJyZWFrcG9pbnQuVHlw
ZS5UZXh0LCAiZGF0YSIpCi0gICAgICAgICAgICAgICAgLnRoZW4oKGJyZWFrcG9pbnQpID0+IHsK
LSAgICAgICAgICAgICAgICAgICAgV0kuZG9tRGVidWdnZXJNYW5hZ2VyLnJlbW92ZVVSTEJyZWFr
cG9pbnQoYnJlYWtwb2ludCk7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCJCcmVha3BvaW50IHJlbW92ZWQuIik7CisgICAgICAgICAgICAgICAgbGV0IGJyZWFrcG9pbnQg
PSBhd2FpdCBJbnNwZWN0b3JUZXN0LlVSTEJyZWFrcG9pbnQuY3JlYXRlQnJlYWtwb2ludChXSS5V
UkxCcmVha3BvaW50LlR5cGUuVGV4dCwgImRhdGEiKQogCi0gICAgICAgICAgICAgICAgICAgIHJl
dHVybiByZXF1ZXN0KHR5cGUpOwotICAgICAgICAgICAgICAgIH0pCi0gICAgICAgICAgICAgICAg
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEZh
bHNlKHBhdXNlZCwgIlNob3VsZCBub3QgcGF1c2UgZm9yIHJlbW92ZWQgYnJlYWtwb2ludC4iKTsK
LSAgICAgICAgICAgICAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVu
ZXIoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNlZCwgbGlzdGVuZXIpOwotICAgICAgICAg
ICAgICAgICAgICByZXNvbHZlKCk7Ci0gICAgICAgICAgICAgICAgfSkKLSAgICAgICAgICAgICAg
ICAuY2F0Y2gocmVqZWN0KTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiUmVtb3ZpbmcgYnJlYWtwb2ludC4uLiIpOworICAgICAgICAgICAgICAgIGJy
ZWFrcG9pbnQucmVtb3ZlKCk7CisKKyAgICAgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0
LlVSTEJyZWFrcG9pbnQucmVxdWVzdChhcGkpOworCisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RGYWxzZShwYXVzZWQsICJTaG91bGQgbm90IHBhdXNlIGZvciByZW1vdmVkIGJy
ZWFrcG9pbnQuIik7CisgICAgICAgICAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLnJlbW92ZUV2
ZW50TGlzdGVuZXIoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNlZCwgbGlzdGVuZXIpOwor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHRlYXJkb3duOiBJbnNwZWN0b3JUZXN0LlVSTEJy
ZWFrcG9pbnQudGVhcmRvd24sCiAgICAgICAgIH0pOwogCiAgICAgICAgIHN1aXRlLmFkZFRlc3RD
YXNlKHsKLSAgICAgICAgICAgIG5hbWU6ICJVUkxCcmVha3BvaW50LlJlbW92ZURpc2FibGVkQnJl
YWtwb2ludC4iICsgdHlwZSwKKyAgICAgICAgICAgIG5hbWU6ICJVUkxCcmVha3BvaW50LlJlbW92
ZURpc2FibGVkQnJlYWtwb2ludC4iICsgYXBpLAogICAgICAgICAgICAgZGVzY3JpcHRpb246ICJD
aGVjayB0aGF0IGEgZGlzYWJsZWQgYnJlYWtwb2ludCBjYW4gYmUgcmVtb3ZlZC4iLAotICAgICAg
ICAgICAgdGVhcmRvd24sCi0gICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAg
ICAgICAgICAgYXN5bmMgdGVzdCgpIHsKICAgICAgICAgICAgICAgICBsZXQgcGF1c2VkID0gZmFs
c2U7CiAgICAgICAgICAgICAgICAgbGV0IGxpc3RlbmVyID0gV0kuZGVidWdnZXJNYW5hZ2VyLmFk
ZEV2ZW50TGlzdGVuZXIoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNlZCwgKGV2ZW50KSA9
PiB7CiAgICAgICAgICAgICAgICAgICAgIHBhdXNlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAg
ICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKICAgICAgICAgICAgICAgICB9KTsKIAot
ICAgICAgICAgICAgICAgIGFkZEJyZWFrcG9pbnQoV0kuVVJMQnJlYWtwb2ludC5UeXBlLlRleHQs
ICJkYXRhIikKLSAgICAgICAgICAgICAgICAudGhlbigoYnJlYWtwb2ludCkgPT4gewotICAgICAg
ICAgICAgICAgICAgICBicmVha3BvaW50LmRpc2FibGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnQgZGlzYWJsZWQuIik7CisgICAgICAg
ICAgICAgICAgbGV0IGJyZWFrcG9pbnQgPSBhd2FpdCBJbnNwZWN0b3JUZXN0LlVSTEJyZWFrcG9p
bnQuY3JlYXRlQnJlYWtwb2ludChXSS5VUkxCcmVha3BvaW50LlR5cGUuVGV4dCwgImRhdGEiKQog
Ci0gICAgICAgICAgICAgICAgICAgIFdJLmRvbURlYnVnZ2VyTWFuYWdlci5yZW1vdmVVUkxCcmVh
a3BvaW50KGJyZWFrcG9pbnQpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygiQnJlYWtwb2ludCByZW1vdmVkLiIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJEaXNhYmxpbmcgYnJlYWtwb2ludC4uLiIpOworICAgICAgICAgICAgICAgIGJyZWFrcG9p
bnQuZGlzYWJsZWQgPSB0cnVlOwogCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0
KHR5cGUpOwotICAgICAgICAgICAgICAgIH0pCi0gICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEZhbHNlKHBhdXNlZCwg
IlNob3VsZCBub3QgcGF1c2UgZm9yIHJlbW92ZWQgZGlzYWJsZWQgYnJlYWtwb2ludC4iKTsKLSAg
ICAgICAgICAgICAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIo
V0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNlZCwgbGlzdGVuZXIpOwotICAgICAgICAgICAg
ICAgICAgICByZXNvbHZlKCk7Ci0gICAgICAgICAgICAgICAgfSkKLSAgICAgICAgICAgICAgICAu
Y2F0Y2gocmVqZWN0KTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiUmVtb3ZpbmcgYnJlYWtwb2ludC4uLiIpOworICAgICAgICAgICAgICAgIGJyZWFr
cG9pbnQucmVtb3ZlKCk7CisKKyAgICAgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LlVS
TEJyZWFrcG9pbnQucmVxdWVzdChhcGkpOworCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RGYWxzZShwYXVzZWQsICJTaG91bGQgbm90IHBhdXNlIGZvciByZW1vdmVkIGRpc2Fi
bGVkIGJyZWFrcG9pbnQuIik7CisgICAgICAgICAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLnJl
bW92ZUV2ZW50TGlzdGVuZXIoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNlZCwgbGlzdGVu
ZXIpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHRlYXJkb3duOiBJbnNwZWN0b3JUZXN0
LlVSTEJyZWFrcG9pbnQudGVhcmRvd24sCiAgICAgICAgIH0pOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKaW5kZXggMTQzYjQ3NWQ0MzAuLjJkNDFiOTVkY2NkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wOC0yOSAgRGV2aW4gUm91c3NvICA8
ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWxsb3cgdXJsIGJy
ZWFrcG9pbnRzIHRvIGJlIGNvbmZpZ3VyZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNTc5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL0RPTURlYnVnZ2VyLmpzb246
CisgICAgICAgIEFkZCBhbiBgb3B0aW9uc2AgcGFyYW1hdGVyIHRvIGBET01EZWJ1Z2dlci5zZXRV
UkxCcmVha3BvaW50YCB0byBhbGxvdyBjb25maWd1cmF0aW9uLgorICAgICAgICBBZGQgYW4gYGlz
UmVnZXhgIHBhcmFtZXRlciB0byBgRE9NRGVidWdnZXIucmVtb3ZlVVJMQnJlYWtwb2ludGAgc28g
dGhhdCB3ZSBrbm93IHdoYXQKKyAgICAgICAgdHlwZSBvZiBVUkwgYnJlYWtwb2ludCBpcyBiZWlu
ZyByZW1vdmVkLgorCiAyMDIwLTA4LTI4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBhbGxvdyBzcGVjaWFsIEphdmFTY3JpcHQgYnJl
YWtwb2ludHMgdG8gYmUgY29uZmlndXJlZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9wcm90b2NvbC9ET01EZWJ1Z2dlci5qc29uIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9ET01EZWJ1Z2dlci5qc29uCmluZGV4IGVlZmE5MzNm
OWY1Li4wNDNmOWJmNTY4NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9wcm90b2NvbC9ET01EZWJ1Z2dlci5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcHJvdG9jb2wvRE9NRGVidWdnZXIuanNvbgpAQCAtNTYsMTQgKzU2LDE2IEBA
CiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiU2V0cyBicmVha3BvaW50IG9uIG5ldHdvcmsg
YWN0aXZpdHkgZm9yIHRoZSBnaXZlbiBVUkwuIiwKICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjog
WwogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiwgImRl
c2NyaXB0aW9uIjogIlJlc291cmNlIFVSTCBzdWJzdHJpbmcgb3IgcmVndWxhciBleHByZXNzaW9u
LiBBbGwgcmVxdWVzdHMgaGF2aW5nIHRoaXMgc3Vic3RyaW5nIGluIHRoZSBVUkwgd2lsbCBnZXQg
c3RvcHBlZCB1cG9uLiBBbiBlbXB0eSBzdHJpbmcgd2lsbCBwYXVzZSBvbiBhbGwgcmVxdWVzdHMu
IiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXNSZWdleCIsICJ0eXBlIjogImJvb2xl
YW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiV2hldGhlciB0aGUgVVJMIHN0
cmluZyBpcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbi4iIH0KKyAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImlzUmVnZXgiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2Ny
aXB0aW9uIjogIldoZXRoZXIgdGhlIFVSTCBzdHJpbmcgaXMgYSByZWd1bGFyIGV4cHJlc3Npb24u
IiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib3B0aW9ucyIsICIkcmVmIjogIkRlYnVn
Z2VyLkJyZWFrcG9pbnRPcHRpb25zIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjog
Ik9wdGlvbnMgdG8gYXBwbHkgdG8gdGhpcyBicmVha3BvaW50IHRvIG1vZGlmeSBpdHMgYmVoYXZp
b3IuIiB9CiAgICAgICAgICAgICBdCiAgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAgICAg
ICJuYW1lIjogInJlbW92ZVVSTEJyZWFrcG9pbnQiLAogICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIlJlbW92ZXMgYnJlYWtwb2ludCBmcm9tIG5ldHdvcmsgYWN0aXZpdHkgZm9yIHRoZSBnaXZl
biBVUkwuIiwKICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlJlc291cmNl
IFVSTCBzdWJzdHJpbmcuIEFuIGVtcHR5IHN0cmluZyB3aWxsIHN0b3AgcGF1c2luZyBvbiBhbGwg
cmVxdWVzdHMuIiB9CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJz
dHJpbmciLCAiZGVzY3JpcHRpb24iOiAiUmVzb3VyY2UgVVJMIHN1YnN0cmluZy4gQW4gZW1wdHkg
c3RyaW5nIHdpbGwgc3RvcCBwYXVzaW5nIG9uIGFsbCByZXF1ZXN0cy4iIH0sCisgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJpc1JlZ2V4IiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6
IHRydWUsICJkZXNjcmlwdGlvbiI6ICJXaGV0aGVyIHRoZSBVUkwgc3RyaW5nIGlzIGEgcmVndWxh
ciBleHByZXNzaW9uLiIgfQogICAgICAgICAgICAgXQogICAgICAgICB9CiAgICAgXQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDA4MGRhZTc1ZWQwLi44N2MwMThjM2Y2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDIwLTA4LTI5ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBhbGxvdyB1cmwgYnJlYWtwb2ludHMgdG8gYmUgY29uZmlndXJl
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1Nzkz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6
IGluc3BlY3Rvci9kb20tZGVidWdnZXIvdXJsLWJyZWFrcG9pbnRzLmh0bWwKKyAgICAgICAgICAg
ICAgIGluc3BlY3Rvci9kb20tZGVidWdnZXIvdXJsLWJyZWFrcG9pbnRzLWFsbC1yZXF1ZXN0cy5o
dG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL3VybC1icmVha3BvaW50
cy1jb250YWluaW5nLmh0bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rvci9kb20tZGVidWdnZXIv
dXJsLWJyZWFrcG9pbnRzLW1hdGNoaW5nLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JET01EZWJ1Z2dlckFnZW50OjpkaXNhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckRPTURlYnVnZ2VyQWdlbnQ6OnNldFVSTEJyZWFrcG9pbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6cmVtb3ZlVVJMQnJlYWtwb2ludCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50OjpicmVha09uVVJMSWZOZWVk
ZWQpOgorCiAyMDIwLTA4LTI4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29t
PgogCiAgICAgICAgIFttYWNPU10gQWlyUGxheSBkZXZpY2UgbmFtZSBpcyB3cm9uZyB3aGVuIHBs
YXlpbmcgdG8gbXVsdGlwbGUgZGV2aWNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAKaW5kZXgg
ZWY5NTQ1NjQxZDQuLjA3OWExMTY4NmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAKQEAg
LTgwLDggKzgwLDkgQEAgdm9pZCBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50OjpkaXNhYmxlKCkK
ICAgICBtX3BhdXNlT25BbGxMaXN0ZW5lcnNCcmVha3BvaW50ID0gbnVsbHB0cjsKICAgICBtX3Bh
dXNlT25BbGxUaW1lb3V0c0JyZWFrcG9pbnQgPSBudWxscHRyOwogCi0gICAgbV91cmxCcmVha3Bv
aW50cy5jbGVhcigpOwotICAgIG1fcGF1c2VPbkFsbFVSTHNFbmFibGVkID0gZmFsc2U7CisgICAg
bV91cmxUZXh0QnJlYWtwb2ludHMuY2xlYXIoKTsKKyAgICBtX3VybFJlZ2V4QnJlYWtwb2ludHMu
Y2xlYXIoKTsKKyAgICBtX3BhdXNlT25BbGxVUkxzQnJlYWtwb2ludCA9IG51bGxwdHI7CiB9CiAK
IC8vIEJyb3dzZXIgZGVidWdnZXIgYWdlbnQgZW5hYmxlZCBvbmx5IHdoZW4gSlMgZGVidWdnZXIg
aXMgZW5hYmxlZC4KQEAgLTMyOCwzMyArMzI5LDQ1IEBAIHZvaWQgSW5zcGVjdG9yRE9NRGVidWdn
ZXJBZ2VudDo6ZGlkRmlyZVRpbWVyKGJvb2wgb25lU2hvdCkKICAgICBtX2RlYnVnZ2VyQWdlbnQt
PmNhbmNlbFBhdXNlRm9yU3BlY2lhbEJyZWFrcG9pbnQoKmJyZWFrcG9pbnQpOwogfQogCi12b2lk
IEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OnNldFVSTEJyZWFrcG9pbnQoRXJyb3JTdHJpbmcm
IGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgYm9vbCogb3B0aW9uYWxJc1Jl
Z2V4KQordm9pZCBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50OjpzZXRVUkxCcmVha3BvaW50KEVy
cm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IGJvb2wqIG9w
dGlvbmFsSXNSZWdleCwgY29uc3QgSlNPTjo6T2JqZWN0KiBvcHRpb25zUGF5bG9hZCkKIHsKKyAg
ICBhdXRvIGJyZWFrcG9pbnQgPSBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkZWJ1Z2dlckJyZWFr
cG9pbnRGcm9tUGF5bG9hZChlcnJvclN0cmluZywgb3B0aW9uc1BheWxvYWQpOworICAgIGlmICgh
YnJlYWtwb2ludCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKHVybC5pc0VtcHR5KCkpIHsK
LSAgICAgICAgaWYgKG1fcGF1c2VPbkFsbFVSTHNFbmFibGVkKQorICAgICAgICBpZiAoIW1fcGF1
c2VPbkFsbFVSTHNCcmVha3BvaW50KQorICAgICAgICAgICAgbV9wYXVzZU9uQWxsVVJMc0JyZWFr
cG9pbnQgPSBXVEZNb3ZlKGJyZWFrcG9pbnQpOworICAgICAgICBlbHNlCiAgICAgICAgICAgICBl
cnJvclN0cmluZyA9ICJCcmVha3BvaW50IGZvciBhbGwgVVJMcyBhbHJlYWR5IGV4aXN0cyJfczsK
LSAgICAgICAgbV9wYXVzZU9uQWxsVVJMc0VuYWJsZWQgPSB0cnVlOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgYm9vbCBpc1JlZ2V4ID0gb3B0aW9uYWxJc1JlZ2V4ID8gKm9wdGlvbmFs
SXNSZWdleCA6IGZhbHNlOwotICAgIGF1dG8gcmVzdWx0ID0gbV91cmxCcmVha3BvaW50cy5zZXQo
dXJsLCBpc1JlZ2V4ID8gVVJMQnJlYWtwb2ludFR5cGU6OlJlZ3VsYXJFeHByZXNzaW9uIDogVVJM
QnJlYWtwb2ludFR5cGU6OlRleHQpOwotICAgIGlmICghcmVzdWx0LmlzTmV3RW50cnkpCi0gICAg
ICAgIGVycm9yU3RyaW5nID0gIkJyZWFrcG9pbnQgZm9yIGdpdmVuIHVybCBhbHJlYWR5IGV4aXN0
cyJfczsKKyAgICBpZiAob3B0aW9uYWxJc1JlZ2V4ICYmICpvcHRpb25hbElzUmVnZXgpIHsKKyAg
ICAgICAgaWYgKCFtX3VybFJlZ2V4QnJlYWtwb2ludHMuYWRkKHVybCwgYnJlYWtwb2ludC5yZWxl
YXNlTm9uTnVsbCgpKSkKKyAgICAgICAgICAgIGVycm9yU3RyaW5nID0gIkJyZWFrcG9pbnQgZm9y
IGdpdmVuIHJlZ2V4IGFscmVhZHkgZXhpc3RzIl9zOworICAgIH0gZWxzZSB7CisgICAgICAgIGlm
ICghbV91cmxUZXh0QnJlYWtwb2ludHMuYWRkKHVybCwgYnJlYWtwb2ludC5yZWxlYXNlTm9uTnVs
bCgpKSkKKyAgICAgICAgICAgIGVycm9yU3RyaW5nID0gIkJyZWFrcG9pbnQgZm9yIGdpdmVuIFVS
TCBhbHJlYWR5IGV4aXN0cyJfczsKKyAgICB9CiB9CiAKLXZvaWQgSW5zcGVjdG9yRE9NRGVidWdn
ZXJBZ2VudDo6cmVtb3ZlVVJMQnJlYWtwb2ludChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNv
bnN0IFN0cmluZyYgdXJsKQordm9pZCBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50OjpyZW1vdmVV
UkxCcmVha3BvaW50KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiB1cmws
IGNvbnN0IGJvb2wqIG9wdGlvbmFsSXNSZWdleCkKIHsKICAgICBpZiAodXJsLmlzRW1wdHkoKSkg
ewotICAgICAgICBpZiAoIW1fcGF1c2VPbkFsbFVSTHNFbmFibGVkKQorICAgICAgICBpZiAoIW1f
cGF1c2VPbkFsbFVSTHNCcmVha3BvaW50KQogICAgICAgICAgICAgZXJyb3JTdHJpbmcgPSAiQnJl
YWtwb2ludCBmb3IgYWxsIFVSTHMgbWlzc2luZyJfczsKLSAgICAgICAgbV9wYXVzZU9uQWxsVVJM
c0VuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgbV9wYXVzZU9uQWxsVVJMc0JyZWFrcG9pbnQgPSBu
dWxscHRyOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byByZXN1bHQgPSBtX3Vy
bEJyZWFrcG9pbnRzLnJlbW92ZSh1cmwpOwotICAgIGlmICghcmVzdWx0KQotICAgICAgICBlcnJv
clN0cmluZyA9ICJCcmVha3BvaW50IGZvciBnaXZlbiB1cmwgbWlzc2luZyJfczsKKyAgICBpZiAo
b3B0aW9uYWxJc1JlZ2V4ICYmICpvcHRpb25hbElzUmVnZXgpIHsKKyAgICAgICAgaWYgKCFtX3Vy
bFJlZ2V4QnJlYWtwb2ludHMucmVtb3ZlKHVybCkpCisgICAgICAgICAgICBlcnJvclN0cmluZyA9
ICJNaXNzaW5nIGJyZWFrcG9pbnQgZm9yIGdpdmVuIHJlZ2V4Il9zOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIGlmICghbV91cmxUZXh0QnJlYWtwb2ludHMucmVtb3ZlKHVybCkpCisgICAgICAgICAg
ICBlcnJvclN0cmluZyA9ICJNaXNzaW5nIGJyZWFrcG9pbnQgZm9yIGdpdmVuIFVSTCJfczsKKyAg
ICB9CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6YnJlYWtPblVSTElmTmVl
ZGVkKGNvbnN0IFN0cmluZyYgdXJsLCBVUkxCcmVha3BvaW50U291cmNlIHNvdXJjZSkKQEAgLTM2
MiwzOCArMzc1LDQ4IEBAIHZvaWQgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6YnJlYWtPblVS
TElmTmVlZGVkKGNvbnN0IFN0cmluZyYgdXJsLCBVUkxCcmVha3BvCiAgICAgaWYgKCFtX2RlYnVn
Z2VyQWdlbnQtPmJyZWFrcG9pbnRzQWN0aXZlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFN0
cmluZyBicmVha3BvaW50VVJMOwotICAgIGlmIChtX3BhdXNlT25BbGxVUkxzRW5hYmxlZCkKLSAg
ICAgICAgYnJlYWtwb2ludFVSTCA9IGVtcHR5U3RyaW5nKCk7Ci0gICAgZWxzZSB7Ci0gICAgICAg
IGZvciAoYXV0byYgW3F1ZXJ5LCB0eXBlXSA6IG1fdXJsQnJlYWtwb2ludHMpIHsKLSAgICAgICAg
ICAgIGJvb2wgaXNSZWdleCA9IHR5cGUgPT0gVVJMQnJlYWtwb2ludFR5cGU6OlJlZ3VsYXJFeHBy
ZXNzaW9uOwotICAgICAgICAgICAgYXV0byBzZWFyY2hTdHJpbmdUeXBlID0gaXNSZWdleCA/IENv
bnRlbnRTZWFyY2hVdGlsaXRpZXM6OlNlYXJjaFN0cmluZ1R5cGU6OlJlZ2V4IDogQ29udGVudFNl
YXJjaFV0aWxpdGllczo6U2VhcmNoU3RyaW5nVHlwZTo6Q29udGFpbnNTdHJpbmc7Ci0gICAgICAg
ICAgICBhdXRvIHJlZ2V4ID0gQ29udGVudFNlYXJjaFV0aWxpdGllczo6Y3JlYXRlUmVndWxhckV4
cHJlc3Npb25Gb3JTZWFyY2hTdHJpbmcocXVlcnksIGZhbHNlLCBzZWFyY2hTdHJpbmdUeXBlKTsK
KyAgICBjb25zdGV4cHIgYm9vbCBjYXNlU2Vuc2l0aXZlID0gZmFsc2U7CisKKyAgICBhdXRvIGJy
ZWFrcG9pbnRVUkwgPSBlbXB0eVN0cmluZygpOworICAgIGF1dG8gYnJlYWtwb2ludCA9IG1fcGF1
c2VPbkFsbFVSTHNCcmVha3BvaW50LmNvcHlSZWYoKTsKKyAgICBpZiAoIWJyZWFrcG9pbnQpIHsK
KyAgICAgICAgZm9yIChhdXRvJiBbcXVlcnksIHRleHRCcmVha3BvaW50XSA6IG1fdXJsVGV4dEJy
ZWFrcG9pbnRzKSB7CisgICAgICAgICAgICBhdXRvIHJlZ2V4ID0gQ29udGVudFNlYXJjaFV0aWxp
dGllczo6Y3JlYXRlUmVndWxhckV4cHJlc3Npb25Gb3JTZWFyY2hTdHJpbmcocXVlcnksIGNhc2VT
ZW5zaXRpdmUsIENvbnRlbnRTZWFyY2hVdGlsaXRpZXM6OlNlYXJjaFN0cmluZ1R5cGU6OkNvbnRh
aW5zU3RyaW5nKTsKICAgICAgICAgICAgIGlmIChyZWdleC5tYXRjaCh1cmwpICE9IC0xKSB7Cisg
ICAgICAgICAgICAgICAgYnJlYWtwb2ludCA9IHRleHRCcmVha3BvaW50LmNvcHlSZWYoKTsKICAg
ICAgICAgICAgICAgICBicmVha3BvaW50VVJMID0gcXVlcnk7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0KLSAgICBpZiAoYnJlYWtwb2lu
dFVSTC5pc051bGwoKSkKKyAgICBpZiAoIWJyZWFrcG9pbnQpIHsKKyAgICAgICAgZm9yIChhdXRv
JiBbcXVlcnksIHJlZ2V4QnJlYWtwb2ludF0gOiBtX3VybFJlZ2V4QnJlYWtwb2ludHMpIHsKKyAg
ICAgICAgICAgIGF1dG8gcmVnZXggPSBDb250ZW50U2VhcmNoVXRpbGl0aWVzOjpjcmVhdGVSZWd1
bGFyRXhwcmVzc2lvbkZvclNlYXJjaFN0cmluZyhxdWVyeSwgY2FzZVNlbnNpdGl2ZSwgQ29udGVu
dFNlYXJjaFV0aWxpdGllczo6U2VhcmNoU3RyaW5nVHlwZTo6UmVnZXgpOworICAgICAgICAgICAg
aWYgKHJlZ2V4Lm1hdGNoKHVybCkgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICBicmVha3BvaW50
ID0gcmVnZXhCcmVha3BvaW50LmNvcHlSZWYoKTsKKyAgICAgICAgICAgICAgICBicmVha3BvaW50
VVJMID0gcXVlcnk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICB9CisgICAgaWYgKCFicmVha3BvaW50KQogICAgICAgICByZXR1cm47CiAKLSAg
ICBJbnNwZWN0b3I6OkRlYnVnZ2VyRnJvbnRlbmREaXNwYXRjaGVyOjpSZWFzb24gYnJlYWtSZWFz
b247Ci0gICAgaWYgKHNvdXJjZSA9PSBVUkxCcmVha3BvaW50U291cmNlOjpGZXRjaCkKKyAgICBh
dXRvIGJyZWFrUmVhc29uID0gSW5zcGVjdG9yOjpEZWJ1Z2dlckZyb250ZW5kRGlzcGF0Y2hlcjo6
UmVhc29uOjpPdGhlcjsKKyAgICBzd2l0Y2ggKHNvdXJjZSkgeworICAgIGNhc2UgVVJMQnJlYWtw
b2ludFNvdXJjZTo6RmV0Y2g6CiAgICAgICAgIGJyZWFrUmVhc29uID0gSW5zcGVjdG9yOjpEZWJ1
Z2dlckZyb250ZW5kRGlzcGF0Y2hlcjo6UmVhc29uOjpGZXRjaDsKLSAgICBlbHNlIGlmIChzb3Vy
Y2UgPT0gVVJMQnJlYWtwb2ludFNvdXJjZTo6WEhSKQorICAgICAgICBicmVhazsKKworICAgIGNh
c2UgVVJMQnJlYWtwb2ludFNvdXJjZTo6WEhSOgogICAgICAgICBicmVha1JlYXNvbiA9IEluc3Bl
Y3Rvcjo6RGVidWdnZXJGcm9udGVuZERpc3BhdGNoZXI6OlJlYXNvbjo6WEhSOwotICAgIGVsc2Ug
ewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgYnJlYWtSZWFzb24gPSBJ
bnNwZWN0b3I6OkRlYnVnZ2VyRnJvbnRlbmREaXNwYXRjaGVyOjpSZWFzb246Ok90aGVyOworICAg
ICAgICBicmVhazsKICAgICB9CiAKICAgICBSZWY8SlNPTjo6T2JqZWN0PiBldmVudERhdGEgPSBK
U09OOjpPYmplY3Q6OmNyZWF0ZSgpOwogICAgIGV2ZW50RGF0YS0+c2V0U3RyaW5nKCJicmVha3Bv
aW50VVJMIiwgYnJlYWtwb2ludFVSTCk7CiAgICAgZXZlbnREYXRhLT5zZXRTdHJpbmcoInVybCIs
IHVybCk7Ci0gICAgbV9kZWJ1Z2dlckFnZW50LT5icmVha1Byb2dyYW0oYnJlYWtSZWFzb24sIFdU
Rk1vdmUoZXZlbnREYXRhKSk7CisgICAgbV9kZWJ1Z2dlckFnZW50LT5icmVha1Byb2dyYW0oYnJl
YWtSZWFzb24sIFdURk1vdmUoZXZlbnREYXRhKSwgV1RGTW92ZShicmVha3BvaW50KSk7CiB9CiAK
IHZvaWQgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6d2lsbFNlbmRYTUxIdHRwUmVxdWVzdChj
b25zdCBTdHJpbmcmIHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmgKaW5kZXggOWY2ZTYzOGUzM2Uu
LjRlYzBmMDhjOWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaApAQCAtNjUsOCArNjUsOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIGVuYWJsZWQoKSBjb25zdDsKIAogICAgIC8vIERPTURl
YnVnZ2VyQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyCi0gICAgdm9pZCBzZXRVUkxCcmVha3BvaW50
KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IGJvb2wqIG9wdGlvbmFsSXNS
ZWdleCkgZmluYWw7Ci0gICAgdm9pZCByZW1vdmVVUkxCcmVha3BvaW50KEVycm9yU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiB1cmwpIGZpbmFsOworICAgIHZvaWQgc2V0VVJMQnJlYWtwb2ludChFcnJv
clN0cmluZyYsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBib29sKiBpc1JlZ2V4LCBjb25zdCBK
U09OOjpPYmplY3QqIG9wdGlvbnMpIGZpbmFsOworICAgIHZvaWQgcmVtb3ZlVVJMQnJlYWtwb2lu
dChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBib29sKiBpc1JlZ2V4KSBm
aW5hbDsKICAgICB2b2lkIHNldEV2ZW50QnJlYWtwb2ludChFcnJvclN0cmluZyYsIGNvbnN0IFN0
cmluZyYgYnJlYWtwb2ludFR5cGUsIGNvbnN0IFN0cmluZyogZXZlbnROYW1lLCBjb25zdCBKU09O
OjpPYmplY3QqIG9wdGlvbnMpIGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlRXZlbnRCcmVha3BvaW50
KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBicmVha3BvaW50VHlwZSwgY29uc3QgU3RyaW5n
KiBldmVudE5hbWUpIGZpbmFsOwogCkBAIC0xMDQsOSArMTA0LDkgQEAgcHJpdmF0ZToKICAgICBS
ZWZQdHI8SlNDOjpCcmVha3BvaW50PiBtX3BhdXNlT25BbGxMaXN0ZW5lcnNCcmVha3BvaW50Owog
ICAgIFJlZlB0cjxKU0M6OkJyZWFrcG9pbnQ+IG1fcGF1c2VPbkFsbFRpbWVvdXRzQnJlYWtwb2lu
dDsKIAotICAgIGVudW0gY2xhc3MgVVJMQnJlYWtwb2ludFR5cGUgeyBSZWd1bGFyRXhwcmVzc2lv
biwgVGV4dCB9OwotICAgIEhhc2hNYXA8U3RyaW5nLCBVUkxCcmVha3BvaW50VHlwZT4gbV91cmxC
cmVha3BvaW50czsKLSAgICBib29sIG1fcGF1c2VPbkFsbFVSTHNFbmFibGVkIHsgZmFsc2UgfTsK
KyAgICBIYXNoTWFwPFN0cmluZywgUmVmPEpTQzo6QnJlYWtwb2ludD4+IG1fdXJsVGV4dEJyZWFr
cG9pbnRzOworICAgIEhhc2hNYXA8U3RyaW5nLCBSZWY8SlNDOjpCcmVha3BvaW50Pj4gbV91cmxS
ZWdleEJyZWFrcG9pbnRzOworICAgIFJlZlB0cjxKU0M6OkJyZWFrcG9pbnQ+IG1fcGF1c2VPbkFs
bFVSTHNCcmVha3BvaW50OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9DaGFuZ2VMb2cKaW5kZXggMzAwZjhmYTM2YmUuLjdhM2U0OTgxZTc2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAyMC0wOC0yOSAgRGV2aW4gUm91c3NvICA8
ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWxsb3cgdXJsIGJy
ZWFrcG9pbnRzIHRvIGJlIGNvbmZpZ3VyZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNTc5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvVVJMQnJlYWtwb2ludC5q
czoKKyAgICAgICAgKFdJLlVSTEJyZWFrcG9pbnQuZ2V0IGVkaXRhYmxlKTogQWRkZWQuCisgICAg
ICAgIChXSS5VUkxCcmVha3BvaW50LmZyb21KU09OKToKKyAgICAgICAgKFdJLlVSTEJyZWFrcG9p
bnQucHJvdG90eXBlLmdldCBlZGl0YWJsZSk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Nv
bnRyb2xsZXJzL0RPTURlYnVnZ2VyTWFuYWdlci5qczoKKyAgICAgICAgKFdJLkRPTURlYnVnZ2Vy
TWFuYWdlcik6CisgICAgICAgIChXSS5ET01EZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBlLmluaXRp
YWxpemVUYXJnZXQpOgorICAgICAgICAoV0kuRE9NRGVidWdnZXJNYW5hZ2VyLnByb3RvdHlwZS5h
ZGRVUkxCcmVha3BvaW50KToKKyAgICAgICAgKFdJLkRPTURlYnVnZ2VyTWFuYWdlci5wcm90b3R5
cGUucmVtb3ZlVVJMQnJlYWtwb2ludCk6CisgICAgICAgIChXSS5ET01EZWJ1Z2dlck1hbmFnZXIu
cHJvdG90eXBlLl9zZXRVUkxCcmVha3BvaW50KTogQWRkZWQuCisgICAgICAgIChXSS5ET01EZWJ1
Z2dlck1hbmFnZXIucHJvdG90eXBlLl9yZW1vdmVVUkxCcmVha3BvaW50KTogQWRkZWQuCisgICAg
ICAgIChXSS5ET01EZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBlLl9oYW5kbGVVUkxCcmVha3BvaW50
RGlzYWJsZWRTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV0kuRE9NRGVidWdnZXJNYW5hZ2VyLnBy
b3RvdHlwZS5faGFuZGxlVVJMQnJlYWtwb2ludEVkaXRhYmxlUHJvcGVydHlDaGFuZ2VkKTogQWRk
ZWQuCisgICAgICAgIChXSS5ET01EZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBlLl9oYW5kbGVVUkxC
cmVha3BvaW50QWN0aW9uc0NoYW5nZWQpOiBBZGRlZC4KKyAgICAgICAgKFdJLkRPTURlYnVnZ2Vy
TWFuYWdlci5wcm90b3R5cGUuX3VwZGF0ZVVSTEJyZWFrcG9pbnQpOiBEZWxldGVkLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbC5q
czoKKyAgICAgICAgKFdJLlNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsKToKKyAgICAgICAg
KFdJLlNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fcG9wdWxhdGVDcmVh
dGVCcmVha3BvaW50Q29udGV4dE1lbnUpOgorICAgICAgICAoV0kuU291cmNlc05hdmlnYXRpb25T
aWRlYmFyUGFuZWwucHJvdG90eXBlLl9wb3B1bGF0ZUNyZWF0ZUJyZWFrcG9pbnRDb250ZXh0TWVu
dS5hZGRUb2dnbGVGb3JTcGVjaWFsQnJlYWtwb2ludCk6IEFkZGVkLgorICAgICAgICAoV0kuU291
cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwucHJvdG90eXBlLl9wb3B1bGF0ZUNyZWF0ZUJyZWFr
cG9pbnRDb250ZXh0TWVudS5hZGRUb2dnbGVGb3JTcGVjaWFsRXZlbnRCcmVha3BvaW50KTogRGVs
ZXRlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVVJMQnJlYWtwb2ludFBvcG92
ZXIuanM6CisgICAgICAgIChXSS5VUkxCcmVha3BvaW50UG9wb3Zlci5nZXQgZWRpdGFibGUpOgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9CYXNlL1NldHRpbmcuanM6CisKIDIwMjAtMDgtMjgg
IERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGFsbG93IHNwZWNpYWwgSmF2YVNjcmlwdCBicmVha3BvaW50cyB0byBiZSBjb25maWd1cmVk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1Nl
dHRpbmcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1NldHRp
bmcuanMKaW5kZXggNGY2NWY5YTVjNDcuLmE3N2ZkNDRjNGY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1NldHRpbmcuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9TZXR0aW5nLmpzCkBAIC0yMDUsNyAr
MjA1LDYgQEAgV0kuc2V0dGluZ3MgPSB7CiAgICAgc2VhcmNoUmVndWxhckV4cHJlc3Npb246IG5l
dyBXSS5TZXR0aW5nKCJzZWFyY2gtcmVndWxhci1leHByZXNzaW9uIiwgZmFsc2UpLAogICAgIHNl
bGVjdGVkTmV0d29ya0RldGFpbENvbnRlbnRWaWV3SWRlbnRpZmllcjogbmV3IFdJLlNldHRpbmco
Im5ldHdvcmstZGV0YWlsLWNvbnRlbnQtdmlldy1pZGVudGlmaWVyIiwgInByZXZpZXciKSwKICAg
ICBzb3VyY2VNYXBzRW5hYmxlZDogbmV3IFdJLlNldHRpbmcoInNvdXJjZS1tYXBzLWVuYWJsZWQi
LCB0cnVlKSwKLSAgICBzaG93QWxsUmVxdWVzdHNCcmVha3BvaW50OiBuZXcgV0kuU2V0dGluZygi
c2hvdy1hbGwtcmVxdWVzdHMtYnJlYWtwb2ludCIsIGZhbHNlKSwKICAgICBzaG93Q2FudmFzUGF0
aDogbmV3IFdJLlNldHRpbmcoInNob3ctY2FudmFzLXBhdGgiLCBmYWxzZSksCiAgICAgc2hvd0lt
YWdlR3JpZDogbmV3IFdJLlNldHRpbmcoInNob3ctaW1hZ2UtZ3JpZCIsIHRydWUpLAogICAgIHNo
b3dJbnZpc2libGVDaGFyYWN0ZXJzOiBuZXcgV0kuU2V0dGluZygic2hvdy1pbnZpc2libGUtY2hh
cmFjdGVycyIsICEhV0kuU2V0dGluZy5taWdyYXRlVmFsdWUoInNob3ctaW52YWxpZC1jaGFyYWN0
ZXJzIikpLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Q29udHJvbGxlcnMvRE9NRGVidWdnZXJNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NRGVidWdnZXJNYW5hZ2VyLmpzCmluZGV4IDE4
YzZmMjIxMmMyLi4zZGEwZGVjMDdhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NRGVidWdnZXJNYW5hZ2VyLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTURlYnVnZ2Vy
TWFuYWdlci5qcwpAQCAtMzksMTEgKzM5LDcgQEAgV0kuRE9NRGVidWdnZXJNYW5hZ2VyID0gY2xh
c3MgRE9NRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRoaXMuX2Fs
bFRpbWVvdXRzQnJlYWtwb2ludCA9IG51bGw7CiAKICAgICAgICAgdGhpcy5fdXJsQnJlYWtwb2lu
dHMgPSBbXTsKLQotICAgICAgICB0aGlzLl9hbGxSZXF1ZXN0c0JyZWFrcG9pbnRFbmFibGVkU2V0
dGluZyA9IG5ldyBXSS5TZXR0aW5nKCJicmVhay1vbi1hbGwtcmVxdWVzdHMiLCBmYWxzZSk7Ci0g
ICAgICAgIHRoaXMuX2FsbFJlcXVlc3RzQnJlYWtwb2ludCA9IG5ldyBXSS5VUkxCcmVha3BvaW50
KFdJLlVSTEJyZWFrcG9pbnQuVHlwZS5UZXh0LCAiIiwgewotICAgICAgICAgICAgZGlzYWJsZWQ6
ICF0aGlzLl9hbGxSZXF1ZXN0c0JyZWFrcG9pbnRFbmFibGVkU2V0dGluZy52YWx1ZSwKLSAgICAg
ICAgfSk7CisgICAgICAgIHRoaXMuX2FsbFJlcXVlc3RzQnJlYWtwb2ludCA9IG51bGw7CiAKICAg
ICAgICAgV0kuRE9NQnJlYWtwb2ludC5hZGRFdmVudExpc3RlbmVyKFdJLkJyZWFrcG9pbnQuRXZl
bnQuRGlzYWJsZWRTdGF0ZURpZENoYW5nZSwgdGhpcy5faGFuZGxlRE9NQnJlYWtwb2ludERpc2Fi
bGVkU3RhdGVDaGFuZ2VkLCB0aGlzKTsKIApAQCAtNTQsNiArNTAsMTAgQEAgV0kuRE9NRGVidWdn
ZXJNYW5hZ2VyID0gY2xhc3MgRE9NRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAg
ICAgICAgIFdJLkV2ZW50QnJlYWtwb2ludC5hZGRFdmVudExpc3RlbmVyKFdJLkJyZWFrcG9pbnQu
RXZlbnQuQWN0aW9uc0RpZENoYW5nZSwgdGhpcy5faGFuZGxlRXZlbnRCcmVha3BvaW50QWN0aW9u
c0NoYW5nZWQsIHRoaXMpOwogCiAgICAgICAgIFdJLlVSTEJyZWFrcG9pbnQuYWRkRXZlbnRMaXN0
ZW5lcihXSS5CcmVha3BvaW50LkV2ZW50LkRpc2FibGVkU3RhdGVEaWRDaGFuZ2UsIHRoaXMuX2hh
bmRsZVVSTEJyZWFrcG9pbnREaXNhYmxlZFN0YXRlQ2hhbmdlZCwgdGhpcyk7CisgICAgICAgIFdJ
LlVSTEJyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihXSS5CcmVha3BvaW50LkV2ZW50LkNvbmRp
dGlvbkRpZENoYW5nZSwgdGhpcy5faGFuZGxlVVJMQnJlYWtwb2ludEVkaXRhYmxlUHJvcGVydHlD
aGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgV0kuVVJMQnJlYWtwb2ludC5hZGRFdmVudExpc3RlbmVy
KFdJLkJyZWFrcG9pbnQuRXZlbnQuSWdub3JlQ291bnREaWRDaGFuZ2UsIHRoaXMuX2hhbmRsZVVS
TEJyZWFrcG9pbnRFZGl0YWJsZVByb3BlcnR5Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgIFdJLlVS
TEJyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihXSS5CcmVha3BvaW50LkV2ZW50LkF1dG9Db250
aW51ZURpZENoYW5nZSwgdGhpcy5faGFuZGxlVVJMQnJlYWtwb2ludEVkaXRhYmxlUHJvcGVydHlD
aGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgV0kuVVJMQnJlYWtwb2ludC5hZGRFdmVudExpc3RlbmVy
KFdJLkJyZWFrcG9pbnQuRXZlbnQuQWN0aW9uc0RpZENoYW5nZSwgdGhpcy5faGFuZGxlVVJMQnJl
YWtwb2ludEFjdGlvbnNDaGFuZ2VkLCB0aGlzKTsKIAogICAgICAgICBXSS5kb21NYW5hZ2VyLmFk
ZEV2ZW50TGlzdGVuZXIoV0kuRE9NTWFuYWdlci5FdmVudC5Ob2RlUmVtb3ZlZCwgdGhpcy5fbm9k
ZVJlbW92ZWQsIHRoaXMpOwogICAgICAgICBXSS5kb21NYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIo
V0kuRE9NTWFuYWdlci5FdmVudC5Ob2RlSW5zZXJ0ZWQsIHRoaXMuX25vZGVJbnNlcnRlZCwgdGhp
cyk7CkBAIC04OCw2ICs4OCwxNSBAQCBXSS5ET01EZWJ1Z2dlck1hbmFnZXIgPSBjbGFzcyBET01E
ZWJ1Z2dlck1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgIH0pKCkpOwogICAg
ICAgICB9OwogCisgICAgICAgIGZ1bmN0aW9uIGxvYWRMZWdhY3lTcGVjaWFsQnJlYWtwb2ludChz
aG93blNldHRpbmdzS2V5LCBlbmFibGVkU2V0dGluZ3NLZXksIGNhbGxiYWNrKSB7CisgICAgICAg
ICAgICBpZiAoIVdJLlNldHRpbmcubWlncmF0ZVZhbHVlKHNob3duU2V0dGluZ3NLZXkpKQorICAg
ICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKHsKKyAg
ICAgICAgICAgICAgICBkaXNhYmxlZDogIVdJLlNldHRpbmcubWlncmF0ZVZhbHVlKGVuYWJsZWRT
ZXR0aW5nc0tleSksCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChE
T01EZWJ1Z2dlck1hbmFnZXIuc3VwcG9ydHNET01CcmVha3BvaW50cygpKSB7CiAgICAgICAgICAg
ICBsb2FkQnJlYWtwb2ludHMoV0kuRE9NQnJlYWtwb2ludCwgV0kub2JqZWN0U3RvcmVzLmRvbUJy
ZWFrcG9pbnRzLCBbImRvbS1icmVha3BvaW50cyJdLCAoYnJlYWtwb2ludCkgPT4gewogICAgICAg
ICAgICAgICAgIHRoaXMuYWRkRE9NQnJlYWtwb2ludChicmVha3BvaW50KTsKQEAgLTk5LDI0ICsx
MDgsMTggQEAgV0kuRE9NRGVidWdnZXJNYW5hZ2VyID0gY2xhc3MgRE9NRGVidWdnZXJNYW5hZ2Vy
IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICAgICAgdGhpcy5hZGRFdmVudEJyZWFrcG9p
bnQoYnJlYWtwb2ludCk7CiAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgbGV0IGxvYWRM
ZWdhY3lHbG9iYWxFdmVudEJyZWFrcG9pbnQgPSAodHlwZSwgc2hvd25TZXR0aW5nc0tleSwgZW5h
YmxlZFNldHRpbmdzS2V5KSA9PiB7Ci0gICAgICAgICAgICAgICAgaWYgKCFXSS5TZXR0aW5nLm1p
Z3JhdGVWYWx1ZShzaG93blNldHRpbmdzS2V5KSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OwotCi0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBXSS5FdmVudEJyZWFrcG9pbnQodHlwZSwg
ewotICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogIVdJLlNldHRpbmcubWlncmF0ZVZhbHVl
KGVuYWJsZWRTZXR0aW5nc0tleSksCi0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9
OwotICAgICAgICAgICAgdGhpcy5fYWxsQW5pbWF0aW9uRnJhbWVzQnJlYWtwb2ludCA/Pz0gbG9h
ZExlZ2FjeUdsb2JhbEV2ZW50QnJlYWtwb2ludChXSS5FdmVudEJyZWFrcG9pbnQuVHlwZS5Bbmlt
YXRpb25GcmFtZSwgInNob3ctYWxsLWFuaW1hdGlvbi1mcmFtZXMtYnJlYWtwb2ludCIsICJicmVh
ay1vbi1hbGwtYW5pbWF0aW9uLWZyYW1lcyIpOwotICAgICAgICAgICAgdGhpcy5fYWxsSW50ZXJ2
YWxzQnJlYWtwb2ludCA/Pz0gbG9hZExlZ2FjeUdsb2JhbEV2ZW50QnJlYWtwb2ludChXSS5FdmVu
dEJyZWFrcG9pbnQuVHlwZS5JbnRlcnZhbCwgInNob3ctYWxsLWludGV2ZXJhbHMtYnJlYWtwb2lu
dCIsICJicmVhay1vbi1hbGwtaW50ZXJ2YWxzIik7Ci0gICAgICAgICAgICB0aGlzLl9hbGxMaXN0
ZW5lcnNCcmVha3BvaW50ID8/PSBsb2FkTGVnYWN5R2xvYmFsRXZlbnRCcmVha3BvaW50KFdJLkV2
ZW50QnJlYWtwb2ludC5UeXBlLkxpc3RlbmVyLCAic2hvdy1hbGwtbGlzdGVuZXJzLWJyZWFrcG9p
bnQiLCAiYnJlYWstb24tYWxsLWxpc3RlbmVycyIpOwotICAgICAgICAgICAgdGhpcy5fYWxsVGlt
ZW91dHNCcmVha3BvaW50ID8/PSBsb2FkTGVnYWN5R2xvYmFsRXZlbnRCcmVha3BvaW50KFdJLkV2
ZW50QnJlYWtwb2ludC5UeXBlLlRpbWVvdXQsICJzaG93LWFsbC10aW1lb3V0cy1icmVha3BvaW50
IiwgImJyZWFrLW9uLWFsbC10aW1lb3V0cyIpOworICAgICAgICAgICAgdGhpcy5fYWxsQW5pbWF0
aW9uRnJhbWVzQnJlYWtwb2ludCA/Pz0gbG9hZExlZ2FjeVNwZWNpYWxCcmVha3BvaW50KCJzaG93
LWFsbC1hbmltYXRpb24tZnJhbWVzLWJyZWFrcG9pbnQiLCAiYnJlYWstb24tYWxsLWFuaW1hdGlv
bi1mcmFtZXMiLCAob3B0aW9ucykgPT4gbmV3IFdJLkV2ZW50QnJlYWtwb2ludChXSS5FdmVudEJy
ZWFrcG9pbnQuVHlwZS5BbmltYXRpb25GcmFtZSwgb3B0aW9ucykpOworICAgICAgICAgICAgdGhp
cy5fYWxsSW50ZXJ2YWxzQnJlYWtwb2ludCA/Pz0gbG9hZExlZ2FjeVNwZWNpYWxCcmVha3BvaW50
KCJzaG93LWFsbC1pbnRldmVyYWxzLWJyZWFrcG9pbnQiLCAiYnJlYWstb24tYWxsLWludGVydmFs
cyIsIChvcHRpb25zKSA9PiBuZXcgV0kuRXZlbnRCcmVha3BvaW50KFdJLkV2ZW50QnJlYWtwb2lu
dC5UeXBlLkludGVydmFsLCBvcHRpb25zKSk7CisgICAgICAgICAgICB0aGlzLl9hbGxMaXN0ZW5l
cnNCcmVha3BvaW50ID8/PSBsb2FkTGVnYWN5U3BlY2lhbEJyZWFrcG9pbnQoInNob3ctYWxsLWxp
c3RlbmVycy1icmVha3BvaW50IiwgImJyZWFrLW9uLWFsbC1saXN0ZW5lcnMiLCAob3B0aW9ucykg
PT4gbmV3IFdJLkV2ZW50QnJlYWtwb2ludChXSS5FdmVudEJyZWFrcG9pbnQuVHlwZS5MaXN0ZW5l
ciwgb3B0aW9ucykpOworICAgICAgICAgICAgdGhpcy5fYWxsVGltZW91dHNCcmVha3BvaW50ID8/
PSBsb2FkTGVnYWN5U3BlY2lhbEJyZWFrcG9pbnQoInNob3ctYWxsLXRpbWVvdXRzLWJyZWFrcG9p
bnQiLCAiYnJlYWstb24tYWxsLXRpbWVvdXRzIiwgKG9wdGlvbnMpID0+IG5ldyBXSS5FdmVudEJy
ZWFrcG9pbnQoV0kuRXZlbnRCcmVha3BvaW50LlR5cGUuVGltZW91dCwgb3B0aW9ucykpOwogICAg
ICAgICB9CiAKICAgICAgICAgaWYgKERPTURlYnVnZ2VyTWFuYWdlci5zdXBwb3J0c1VSTEJyZWFr
cG9pbnRzKCkgfHwgRE9NRGVidWdnZXJNYW5hZ2VyLnN1cHBvcnRzWEhSQnJlYWtwb2ludHMoKSkg
ewogICAgICAgICAgICAgbG9hZEJyZWFrcG9pbnRzKFdJLlVSTEJyZWFrcG9pbnQsIFdJLm9iamVj
dFN0b3Jlcy51cmxCcmVha3BvaW50cywgWyJ4aHItYnJlYWtwb2ludHMiLCAidXJsLWJyZWFrcG9p
bnRzIl0sIChicmVha3BvaW50KSA9PiB7CiAgICAgICAgICAgICAgICAgdGhpcy5hZGRVUkxCcmVh
a3BvaW50KGJyZWFrcG9pbnQpOwogICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIHRoaXMu
X2FsbFJlcXVlc3RzQnJlYWtwb2ludCA/Pz0gbG9hZExlZ2FjeVNwZWNpYWxCcmVha3BvaW50KCJz
aG93LWFsbC1yZXF1ZXN0cy1icmVha3BvaW50IiwgImJyZWFrLW9uLWFsbC1yZXF1ZXN0cyIsIChv
cHRpb25zKSA9PiBuZXcgV0kuVVJMQnJlYWtwb2ludChXSS5VUkxCcmVha3BvaW50LlR5cGUuVGV4
dCwgIiIsIG9wdGlvbnMpKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTQyLDggKzE0NSw4IEBA
IFdJLkRPTURlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERPTURlYnVnZ2VyTWFuYWdlciBleHRlbmRz
IFdJLk9iamVjdAogICAgICAgICAgICAgaWYgKHRoaXMuX2FsbFRpbWVvdXRzQnJlYWtwb2ludCAm
JiAhdGhpcy5fYWxsVGltZW91dHNCcmVha3BvaW50LmRpc2FibGVkKQogICAgICAgICAgICAgICAg
IHRoaXMuX3NldEV2ZW50QnJlYWtwb2ludCh0aGlzLl9hbGxUaW1lb3V0c0JyZWFrcG9pbnQsIHRh
cmdldCk7CiAKLSAgICAgICAgICAgIGlmICghdGhpcy5fYWxsUmVxdWVzdHNCcmVha3BvaW50LmRp
c2FibGVkKQotICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVVSTEJyZWFrcG9pbnQodGhpcy5f
YWxsUmVxdWVzdHNCcmVha3BvaW50LCB0YXJnZXQpOworICAgICAgICAgICAgaWYgKHRoaXMuX2Fs
bFJlcXVlc3RzQnJlYWtwb2ludCkKKyAgICAgICAgICAgICAgICB0aGlzLl9zZXRVUkxCcmVha3Bv
aW50KHRoaXMuX2FsbFJlcXVlc3RzQnJlYWtwb2ludCwgdGFyZ2V0KTsKIAogICAgICAgICAgICAg
Zm9yIChsZXQgYnJlYWtwb2ludCBvZiB0aGlzLl9saXN0ZW5lckJyZWFrcG9pbnRzKSB7CiAgICAg
ICAgICAgICAgICAgaWYgKCFicmVha3BvaW50LmRpc2FibGVkKQpAQCAtMTUyLDcgKzE1NSw3IEBA
IFdJLkRPTURlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERPTURlYnVnZ2VyTWFuYWdlciBleHRlbmRz
IFdJLk9iamVjdAogCiAgICAgICAgICAgICBmb3IgKGxldCBicmVha3BvaW50IG9mIHRoaXMuX3Vy
bEJyZWFrcG9pbnRzKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFicmVha3BvaW50LmRpc2FibGVk
KQotICAgICAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVVUkxCcmVha3BvaW50KGJyZWFrcG9p
bnQsIHRhcmdldCk7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NldFVSTEJyZWFrcG9pbnQo
YnJlYWtwb2ludCwgdGFyZ2V0KTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgdGhpcy5f
cmVzdG9yaW5nQnJlYWtwb2ludHMgPSBmYWxzZTsKQEAgLTQ0NSwyOSArNDQ4LDI4IEBAIFdJLkRP
TURlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERPTURlYnVnZ2VyTWFuYWdlciBleHRlbmRzIFdJLk9i
amVjdAogCiAgICAgYWRkVVJMQnJlYWtwb2ludChicmVha3BvaW50KQogICAgIHsKLSAgICAgICAg
Y29uc29sZS5hc3NlcnQoYnJlYWtwb2ludCBpbnN0YW5jZW9mIFdJLlVSTEJyZWFrcG9pbnQpOwor
ICAgICAgICBjb25zb2xlLmFzc2VydChicmVha3BvaW50IGluc3RhbmNlb2YgV0kuVVJMQnJlYWtw
b2ludCwgYnJlYWtwb2ludCk7CiAgICAgICAgIGlmICghYnJlYWtwb2ludCkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgICAgICBpZiAoYnJlYWtwb2ludC5zcGVjaWFsKSB7Ci0gICAg
ICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5ET01EZWJ1Z2dlck1hbmFn
ZXIuRXZlbnQuVVJMQnJlYWtwb2ludEFkZGVkLCB7YnJlYWtwb2ludH0pOwotICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFicmVha3BvaW50LnNwZWNpYWws
IGJyZWFrcG9pbnQpOworICAgICAgICBpZiAoYnJlYWtwb2ludC51cmwpIHsKKyAgICAgICAgICAg
IGlmICh0aGlzLl91cmxCcmVha3BvaW50cy5zb21lKChlbnRyeSkgPT4gZW50cnkudHlwZSA9PT0g
YnJlYWtwb2ludC50eXBlICYmIGVudHJ5LnVybCA9PT0gYnJlYWtwb2ludC51cmwpKQorICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgdGhpcy5fdXJsQnJlYWtwb2lu
dHMucHVzaChicmVha3BvaW50KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KCF0aGlzLl9hbGxSZXF1ZXN0c0JyZWFrcG9pbnQsIHRoaXMuX2FsbFJlcXVlc3Rz
QnJlYWtwb2ludCwgYnJlYWtwb2ludCk7CisgICAgICAgICAgICB0aGlzLl9hbGxSZXF1ZXN0c0Jy
ZWFrcG9pbnQgPSBicmVha3BvaW50OwogICAgICAgICB9CiAKLSAgICAgICAgY29uc29sZS5hc3Nl
cnQoIXRoaXMuX3VybEJyZWFrcG9pbnRzLmluY2x1ZGVzKGJyZWFrcG9pbnQpLCAiQWxyZWFkeSBh
ZGRlZCBVUkwgYnJlYWtwb2ludC4iLCBicmVha3BvaW50KTsKLSAgICAgICAgaWYgKHRoaXMuX3Vy
bEJyZWFrcG9pbnRzLmluY2x1ZGVzKGJyZWFrcG9pbnQpKQotICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgICAgIGlmICh0aGlzLl91cmxCcmVha3BvaW50cy5zb21lKChlbnRyeSkgPT4g
ZW50cnkudHlwZSA9PT0gYnJlYWtwb2ludC50eXBlICYmIGVudHJ5LnVybCA9PT0gYnJlYWtwb2lu
dC51cmwpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIHRoaXMuX3VybEJy
ZWFrcG9pbnRzLnB1c2goYnJlYWtwb2ludCk7CisgICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5h
ZGRQcm9iZXNGb3JCcmVha3BvaW50KGJyZWFrcG9pbnQpOwogCiAgICAgICAgIHRoaXMuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkRPTURlYnVnZ2VyTWFuYWdlci5FdmVudC5VUkxCcmVha3Bv
aW50QWRkZWQsIHticmVha3BvaW50fSk7CiAKICAgICAgICAgaWYgKCFicmVha3BvaW50LmRpc2Fi
bGVkKSB7CiAgICAgICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2YgV0kudGFyZ2V0cykKLSAgICAg
ICAgICAgICAgICB0aGlzLl91cGRhdGVVUkxCcmVha3BvaW50KGJyZWFrcG9pbnQsIHRhcmdldCk7
CisgICAgICAgICAgICAgICAgdGhpcy5fc2V0VVJMQnJlYWtwb2ludChicmVha3BvaW50LCB0YXJn
ZXQpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKCF0aGlzLl9yZXN0b3JpbmdCcmVha3BvaW50
cykKQEAgLTQ3OCwzNiArNDgwLDMxIEBAIFdJLkRPTURlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERP
TURlYnVnZ2VyTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgcmVtb3ZlVVJMQnJlYWtw
b2ludChicmVha3BvaW50KQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoYnJlYWtwb2lu
dCBpbnN0YW5jZW9mIFdJLlVSTEJyZWFrcG9pbnQpOworICAgICAgICBjb25zb2xlLmFzc2VydChi
cmVha3BvaW50IGluc3RhbmNlb2YgV0kuVVJMQnJlYWtwb2ludCwgYnJlYWtwb2ludCk7CiAgICAg
ICAgIGlmICghYnJlYWtwb2ludCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAo
YnJlYWtwb2ludC5zcGVjaWFsKSB7Ci0gICAgICAgICAgICBicmVha3BvaW50LmRpc2FibGVkID0g
dHJ1ZTsKLSAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkRPTURl
YnVnZ2VyTWFuYWdlci5FdmVudC5VUkxCcmVha3BvaW50UmVtb3ZlZCwge2JyZWFrcG9pbnR9KTsK
LSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgLy8gRGlzYWJsZSB0aGUgYnJlYWtwb2ludCBm
aXJzdCwgc28gcmVtb3ZpbmcgYWN0aW9ucyBkb2Vzbid0IHJlLWFkZCB0aGUgYnJlYWtwb2ludC4K
KyAgICAgICAgYnJlYWtwb2ludC5kaXNhYmxlZCA9IHRydWU7CisgICAgICAgIGJyZWFrcG9pbnQu
Y2xlYXJBY3Rpb25zKCk7CisKKyAgICAgICAgaWYgKGJyZWFrcG9pbnQudXJsKSB7CisgICAgICAg
ICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl91cmxCcmVha3BvaW50cy5pbmNsdWRlcyhicmVha3Bv
aW50KSwgYnJlYWtwb2ludCk7CisgICAgICAgICAgICBpZiAoIXRoaXMuX3VybEJyZWFrcG9pbnRz
LmluY2x1ZGVzKGJyZWFrcG9pbnQpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICAgICAgdGhpcy5fdXJsQnJlYWtwb2ludHMucmVtb3ZlKGJyZWFrcG9pbnQpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fYWxsUmVxdWVzdHNCcmVh
a3BvaW50LCB0aGlzLl9hbGxSZXF1ZXN0c0JyZWFrcG9pbnQpOworICAgICAgICAgICAgdGhpcy5f
YWxsUmVxdWVzdHNCcmVha3BvaW50ID0gbnVsbDsKICAgICAgICAgfQogCi0gICAgICAgIGlmICgh
dGhpcy5fdXJsQnJlYWtwb2ludHMuaW5jbHVkZXMoYnJlYWtwb2ludCkpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgdGhpcy5fdXJsQnJlYWtwb2ludHMucmVtb3ZlKGJyZWFrcG9pbnQs
IHRydWUpOwotCiAgICAgICAgIGlmICghdGhpcy5fcmVzdG9yaW5nQnJlYWtwb2ludHMpCiAgICAg
ICAgICAgICBXSS5vYmplY3RTdG9yZXMudXJsQnJlYWtwb2ludHMuZGVsZXRlT2JqZWN0KGJyZWFr
cG9pbnQpOwogCisgICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5yZW1vdmVQcm9iZXNGb3JCcmVh
a3BvaW50KGJyZWFrcG9pbnQpOworCiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVu
ZXJzKFdJLkRPTURlYnVnZ2VyTWFuYWdlci5FdmVudC5VUkxCcmVha3BvaW50UmVtb3ZlZCwge2Jy
ZWFrcG9pbnR9KTsKLQotICAgICAgICBpZiAoYnJlYWtwb2ludC5kaXNhYmxlZCkKLSAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2YgV0kudGFyZ2V0cykgewot
ICAgICAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDEyLjEpOiBET01EZWJ1Z2dlci5yZW1v
dmVVUkxCcmVha3BvaW50IGRpZCBub3QgZXhpc3QuCi0gICAgICAgICAgICBpZiAodGFyZ2V0Lmhh
c0NvbW1hbmQoIkRPTURlYnVnZ2VyLnJlbW92ZVVSTEJyZWFrcG9pbnQiKSkKLSAgICAgICAgICAg
ICAgICB0YXJnZXQuRE9NRGVidWdnZXJBZ2VudC5yZW1vdmVVUkxCcmVha3BvaW50KGJyZWFrcG9p
bnQudXJsKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHRhcmdldC5oYXNDb21tYW5kKCJET01EZWJ1
Z2dlci5yZW1vdmVYSFJCcmVha3BvaW50IikpCi0gICAgICAgICAgICAgICAgdGFyZ2V0LkRPTURl
YnVnZ2VyQWdlbnQucmVtb3ZlWEhSQnJlYWtwb2ludChicmVha3BvaW50LnVybCk7Ci0gICAgICAg
IH0KICAgICB9CiAKICAgICAvLyBQcml2YXRlCkBAIC03MjAsMzQgKzcxNyw0OCBAQCBXSS5ET01E
ZWJ1Z2dlck1hbmFnZXIgPSBjbGFzcyBET01EZWJ1Z2dlck1hbmFnZXIgZXh0ZW5kcyBXSS5PYmpl
Y3QKICAgICAgICAgdGFyZ2V0LkRPTURlYnVnZ2VyQWdlbnQucmVtb3ZlRXZlbnRCcmVha3BvaW50
Lmludm9rZShjb21tYW5kQXJndW1lbnRzKTsKICAgICB9CiAKLSAgICBfdXBkYXRlVVJMQnJlYWtw
b2ludChicmVha3BvaW50LCB0YXJnZXQpCisgICAgX3NldFVSTEJyZWFrcG9pbnQoYnJlYWtwb2lu
dCwgdGFyZ2V0KQogICAgIHsKLSAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDEyLjEpOiBE
T01EZWJ1Z2dlci5yZW1vdmVVUkxCcmVha3BvaW50IGRpZCBub3QgZXhpc3QuCi0gICAgICAgIGlm
ICh0YXJnZXQuaGFzQ29tbWFuZCgiRE9NRGVidWdnZXIuc2V0WEhSQnJlYWtwb2ludCIpICYmIHRh
cmdldC5oYXNDb21tYW5kKCJET01EZWJ1Z2dlci5yZW1vdmVYSFJCcmVha3BvaW50IikpIHsKLSAg
ICAgICAgICAgIGlmIChicmVha3BvaW50LmRpc2FibGVkKQotICAgICAgICAgICAgICAgIHRhcmdl
dC5ET01EZWJ1Z2dlckFnZW50LnJlbW92ZVhIUkJyZWFrcG9pbnQoYnJlYWtwb2ludC51cmwpOwot
ICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9yZXN0b3JpbmdC
cmVha3BvaW50cyAmJiAhV0kuZGVidWdnZXJNYW5hZ2VyLmJyZWFrcG9pbnRzRGlzYWJsZWRUZW1w
b3JhcmlseSkKLSAgICAgICAgICAgICAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLmJyZWFrcG9p
bnRzRW5hYmxlZCA9IHRydWU7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFicmVha3BvaW50LmRp
c2FibGVkLCBicmVha3BvaW50KTsKIAotICAgICAgICAgICAgICAgIGxldCBpc1JlZ2V4ID0gYnJl
YWtwb2ludC50eXBlID09PSBXSS5VUkxCcmVha3BvaW50LlR5cGUuUmVndWxhckV4cHJlc3Npb247
Ci0gICAgICAgICAgICAgICAgdGFyZ2V0LkRPTURlYnVnZ2VyQWdlbnQuc2V0WEhSQnJlYWtwb2lu
dChicmVha3BvaW50LnVybCwgaXNSZWdleCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIXRhcmdldC5oYXNDb21tYW5kKCJET01E
ZWJ1Z2dlci5zZXRVUkxCcmVha3BvaW50IikgfHwgIXRhcmdldC5oYXNDb21tYW5kKCJET01EZWJ1
Z2dlci5yZW1vdmVVUkxCcmVha3BvaW50IikpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAg
ICAgaWYgKGJyZWFrcG9pbnQuZGlzYWJsZWQpCi0gICAgICAgICAgICB0YXJnZXQuRE9NRGVidWdn
ZXJBZ2VudC5yZW1vdmVVUkxCcmVha3BvaW50KGJyZWFrcG9pbnQudXJsKTsKLSAgICAgICAgZWxz
ZSB7CisgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMi4xKTogRE9NRGVidWdnZXIuc2V0
VVJMQnJlYWtwb2ludCBkaWQgbm90IGV4aXN0IHlldC4KKyAgICAgICAgaWYgKHRhcmdldC5oYXND
b21tYW5kKCJET01EZWJ1Z2dlci5zZXRYSFJCcmVha3BvaW50IikpIHsKICAgICAgICAgICAgIGlm
ICghdGhpcy5fcmVzdG9yaW5nQnJlYWtwb2ludHMgJiYgIVdJLmRlYnVnZ2VyTWFuYWdlci5icmVh
a3BvaW50c0Rpc2FibGVkVGVtcG9yYXJpbHkpCiAgICAgICAgICAgICAgICAgV0kuZGVidWdnZXJN
YW5hZ2VyLmJyZWFrcG9pbnRzRW5hYmxlZCA9IHRydWU7CiAKICAgICAgICAgICAgIGxldCBpc1Jl
Z2V4ID0gYnJlYWtwb2ludC50eXBlID09PSBXSS5VUkxCcmVha3BvaW50LlR5cGUuUmVndWxhckV4
cHJlc3Npb247Ci0gICAgICAgICAgICB0YXJnZXQuRE9NRGVidWdnZXJBZ2VudC5zZXRVUkxCcmVh
a3BvaW50KGJyZWFrcG9pbnQudXJsLCBpc1JlZ2V4KTsKKyAgICAgICAgICAgIHRhcmdldC5ET01E
ZWJ1Z2dlckFnZW50LnNldFhIUkJyZWFrcG9pbnQoYnJlYWtwb2ludC51cmwsIGlzUmVnZXgpOwor
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisKKyAgICAgICAgaWYgKCF0YXJnZXQuaGFz
Q29tbWFuZCgiRE9NRGVidWdnZXIuc2V0VVJMQnJlYWtwb2ludCIpKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIGlmICghdGhpcy5fcmVzdG9yaW5nQnJlYWtwb2ludHMgJiYgIVdJLmRl
YnVnZ2VyTWFuYWdlci5icmVha3BvaW50c0Rpc2FibGVkVGVtcG9yYXJpbHkpCisgICAgICAgICAg
ICBXSS5kZWJ1Z2dlck1hbmFnZXIuYnJlYWtwb2ludHNFbmFibGVkID0gdHJ1ZTsKKworICAgICAg
ICB0YXJnZXQuRE9NRGVidWdnZXJBZ2VudC5zZXRVUkxCcmVha3BvaW50Lmludm9rZSh7CisgICAg
ICAgICAgICB1cmw6IGJyZWFrcG9pbnQudXJsLAorICAgICAgICAgICAgaXNSZWdleDogYnJlYWtw
b2ludC50eXBlID09PSBXSS5VUkxCcmVha3BvaW50LlR5cGUuUmVndWxhckV4cHJlc3Npb24sCisg
ICAgICAgICAgICBvcHRpb25zOiBicmVha3BvaW50Lm9wdGlvbnNUb1Byb3RvY29sKCksCisgICAg
ICAgIH0pOworICAgIH0KKworICAgIF9yZW1vdmVVUkxCcmVha3BvaW50KGJyZWFrcG9pbnQsIHRh
cmdldCkKKyAgICB7CisgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMi4xKTogRE9NRGVi
dWdnZXIucmVtb3ZlVVJMQnJlYWtwb2ludCBkaWQgbm90IGV4aXN0LgorICAgICAgICBpZiAodGFy
Z2V0Lmhhc0NvbW1hbmQoIkRPTURlYnVnZ2VyLnJlbW92ZVhIUkJyZWFrcG9pbnQiKSkgeworICAg
ICAgICAgICAgdGFyZ2V0LkRPTURlYnVnZ2VyQWdlbnQucmVtb3ZlWEhSQnJlYWtwb2ludChicmVh
a3BvaW50LnVybCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBp
ZiAoIXRhcmdldC5oYXNDb21tYW5kKCJET01EZWJ1Z2dlci5yZW1vdmVVUkxCcmVha3BvaW50Iikp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGFyZ2V0LkRPTURlYnVnZ2VyQWdlbnQu
cmVtb3ZlVVJMQnJlYWtwb2ludC5pbnZva2UoeworICAgICAgICAgICAgdXJsOiBicmVha3BvaW50
LnVybCwKKyAgICAgICAgICAgIGlzUmVnZXg6IGJyZWFrcG9pbnQudHlwZSA9PT0gV0kuVVJMQnJl
YWtwb2ludC5UeXBlLlJlZ3VsYXJFeHByZXNzaW9uLAorICAgICAgICB9KTsKICAgICB9CiAKICAg
ICBfaGFuZGxlRE9NQnJlYWtwb2ludERpc2FibGVkU3RhdGVDaGFuZ2VkKGV2ZW50KQpAQCAtODE4
LDE4ICs4MjksNDMgQEAgV0kuRE9NRGVidWdnZXJNYW5hZ2VyID0gY2xhc3MgRE9NRGVidWdnZXJN
YW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgewogICAgICAgICBsZXQgYnJlYWtwb2ludCA9
IGV2ZW50LnRhcmdldDsKIAotICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2YgV0kudGFyZ2V0cykK
LSAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVVSTEJyZWFrcG9pbnQoYnJlYWtwb2ludCwgdGFyZ2V0
KTsKLQotICAgICAgICBpZiAoYnJlYWtwb2ludCA9PT0gdGhpcy5fYWxsUmVxdWVzdHNCcmVha3Bv
aW50KSB7Ci0gICAgICAgICAgICB0aGlzLl9hbGxSZXF1ZXN0c0JyZWFrcG9pbnRFbmFibGVkU2V0
dGluZy52YWx1ZSA9ICFicmVha3BvaW50LmRpc2FibGVkOwotICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2YgV0kudGFyZ2V0cykgeworICAgICAgICAgICAgaWYg
KGJyZWFrcG9pbnQuZGlzYWJsZWQpCisgICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlVVJMQnJl
YWtwb2ludChicmVha3BvaW50LCB0YXJnZXQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIHRoaXMuX3NldFVSTEJyZWFrcG9pbnQoYnJlYWtwb2ludCwgdGFyZ2V0KTsKICAgICAg
ICAgfQogCiAgICAgICAgIGlmICghdGhpcy5fcmVzdG9yaW5nQnJlYWtwb2ludHMpCiAgICAgICAg
ICAgICBXSS5vYmplY3RTdG9yZXMudXJsQnJlYWtwb2ludHMucHV0T2JqZWN0KGJyZWFrcG9pbnQp
OwogICAgIH0KIAorICAgIF9oYW5kbGVVUkxCcmVha3BvaW50RWRpdGFibGVQcm9wZXJ0eUNoYW5n
ZWQoZXZlbnQpCisgICAgeworICAgICAgICBsZXQgYnJlYWtwb2ludCA9IGV2ZW50LnRhcmdldDsK
KworICAgICAgICBpZiAoIXRoaXMuX3Jlc3RvcmluZ0JyZWFrcG9pbnRzKQorICAgICAgICAgICAg
V0kub2JqZWN0U3RvcmVzLnVybEJyZWFrcG9pbnRzLnB1dE9iamVjdChicmVha3BvaW50KTsKKwor
ICAgICAgICBpZiAoYnJlYWtwb2ludC5kaXNhYmxlZCkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2YgV0kudGFyZ2V0cykgeworICAgICAgICAgICAgLy8g
Q2xlYXIgdGhlIG9sZCBicmVha3BvaW50IGZyb20gdGhlIGJhY2tlbmQgYmVmb3JlIHNldHRpbmcg
dGhlIG5ldyBvbmUuCisgICAgICAgICAgICB0aGlzLl9yZW1vdmVVUkxCcmVha3BvaW50KGJyZWFr
cG9pbnQsIHRhcmdldCkKKyAgICAgICAgICAgIHRoaXMuX3NldFVSTEJyZWFrcG9pbnQoYnJlYWtw
b2ludCwgdGFyZ2V0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIF9oYW5kbGVVUkxCcmVha3Bv
aW50QWN0aW9uc0NoYW5nZWQoZXZlbnQpCisgICAgeworICAgICAgICBsZXQgYnJlYWtwb2ludCA9
IGV2ZW50LnRhcmdldDsKKworICAgICAgICB0aGlzLl9oYW5kbGVVUkxCcmVha3BvaW50RWRpdGFi
bGVQcm9wZXJ0eUNoYW5nZWQoZXZlbnQpOworCisgICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdlci51
cGRhdGVQcm9iZXNGb3JCcmVha3BvaW50KGJyZWFrcG9pbnQpOworICAgIH0KKwogICAgIF9jaGls
ZEZyYW1lV2FzUmVtb3ZlZChldmVudCkKICAgICB7CiAgICAgICAgIGxldCBmcmFtZSA9IGV2ZW50
LmRhdGEuY2hpbGRGcmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01vZGVscy9VUkxCcmVha3BvaW50LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL1VSTEJyZWFrcG9pbnQuanMKaW5kZXggNmVkYTFjM2VmZTUu
LjYwNWI1MDZmMGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvVVJMQnJlYWtwb2ludC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvVVJMQnJlYWtwb2ludC5qcwpAQCAtMjUsMTIgKzI1LDEyIEBA
CiAKIFdJLlVSTEJyZWFrcG9pbnQgPSBjbGFzcyBVUkxCcmVha3BvaW50IGV4dGVuZHMgV0kuQnJl
YWtwb2ludAogewotICAgIGNvbnN0cnVjdG9yKHR5cGUsIHVybCwge2Rpc2FibGVkfSA9IHt9KQor
ICAgIGNvbnN0cnVjdG9yKHR5cGUsIHVybCwge2Rpc2FibGVkLCBhY3Rpb25zLCBjb25kaXRpb24s
IGlnbm9yZUNvdW50LCBhdXRvQ29udGludWV9ID0ge30pCiAgICAgewogICAgICAgICBjb25zb2xl
LmFzc2VydChPYmplY3QudmFsdWVzKFdJLlVSTEJyZWFrcG9pbnQuVHlwZSkuaW5jbHVkZXModHlw
ZSksIHR5cGUpOwogICAgICAgICBjb25zb2xlLmFzc2VydCh0eXBlb2YgdXJsID09PSAic3RyaW5n
IiwgdXJsKTsKIAotICAgICAgICBzdXBlcih7ZGlzYWJsZWR9KTsKKyAgICAgICAgc3VwZXIoe2Rp
c2FibGVkLCBhY3Rpb25zLCBjb25kaXRpb24sIGlnbm9yZUNvdW50LCBhdXRvQ29udGludWV9KTsK
IAogICAgICAgICB0aGlzLl90eXBlID0gdHlwZTsKICAgICAgICAgdGhpcy5fdXJsID0gdXJsOwpA
QCAtMzgsMTAgKzM4LDIwIEBAIFdJLlVSTEJyZWFrcG9pbnQgPSBjbGFzcyBVUkxCcmVha3BvaW50
IGV4dGVuZHMgV0kuQnJlYWtwb2ludAogCiAgICAgLy8gU3RhdGljCiAKKyAgICBzdGF0aWMgZ2V0
IGVkaXRhYmxlKCkKKyAgICB7CisgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxNCk6IERP
TURlYnVnZ2VyLnNldFVSTEJyZWFrcG9pbnQgZGlkIG5vdCBoYXZlIGFuICJvcHRpb25zIiBwYXJh
bWV0ZXIgeWV0LgorICAgICAgICByZXR1cm4gSW5zcGVjdG9yQmFja2VuZC5oYXNDb21tYW5kKCJE
T01EZWJ1Z2dlci5zZXRVUkxCcmVha3BvaW50IiwgIm9wdGlvbnMiKTsKKyAgICB9CisKICAgICBz
dGF0aWMgZnJvbUpTT04oanNvbikKICAgICB7CiAgICAgICAgIHJldHVybiBuZXcgV0kuVVJMQnJl
YWtwb2ludChqc29uLnR5cGUsIGpzb24udXJsLCB7CiAgICAgICAgICAgICBkaXNhYmxlZDoganNv
bi5kaXNhYmxlZCwKKyAgICAgICAgICAgIGNvbmRpdGlvbjoganNvbi5jb25kaXRpb24sCisgICAg
ICAgICAgICBhY3Rpb25zOiBqc29uLmFjdGlvbnM/Lm1hcCgoYWN0aW9uSlNPTikgPT4gV0kuQnJl
YWtwb2ludEFjdGlvbi5mcm9tSlNPTihhY3Rpb25KU09OKSkgfHwgW10sCisgICAgICAgICAgICBp
Z25vcmVDb3VudDoganNvbi5pZ25vcmVDb3VudCwKKyAgICAgICAgICAgIGF1dG9Db250aW51ZTog
anNvbi5hdXRvQ29udGludWUsCiAgICAgICAgIH0pOwogICAgIH0KIApAQCAtNzIsNiArODIsMTEg
QEAgV0kuVVJMQnJlYWtwb2ludCA9IGNsYXNzIFVSTEJyZWFrcG9pbnQgZXh0ZW5kcyBXSS5CcmVh
a3BvaW50CiAgICAgICAgIHJldHVybiB0aGlzID09PSBXSS5kb21EZWJ1Z2dlck1hbmFnZXIuYWxs
UmVxdWVzdHNCcmVha3BvaW50IHx8IHN1cGVyLnNwZWNpYWw7CiAgICAgfQogCisgICAgZ2V0IGVk
aXRhYmxlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBXSS5VUkxCcmVha3BvaW50LmVkaXRhYmxl
IHx8IHN1cGVyLmVkaXRhYmxlOworICAgIH0KKwogICAgIHJlbW92ZSgpCiAgICAgewogICAgICAg
ICBzdXBlci5yZW1vdmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1NvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU291cmNlc05hdmlnYXRpb25TaWRl
YmFyUGFuZWwuanMKaW5kZXggOGZjNGQxNDMwMzcuLjM5MmZjOGFjMDJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Tb3VyY2VzTmF2aWdhdGlv
blNpZGViYXJQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbC5qcwpAQCAtNDA5LDggKzQwOSw4
IEBAIFdJLlNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsID0gY2xhc3MgU291cmNlc05hdmln
YXRpb25TaWRlYmFyUGFuZWwgZXh0ZW5kcyBXCiAgICAgICAgICAgICBmb3IgKGxldCBkb21CcmVh
a3BvaW50IG9mIFdJLmRvbURlYnVnZ2VyTWFuYWdlci5kb21CcmVha3BvaW50cykKICAgICAgICAg
ICAgICAgICB0aGlzLl9hZGRCcmVha3BvaW50KGRvbUJyZWFrcG9pbnQpOwogCi0gICAgICAgICAg
ICBpZiAoV0kuc2V0dGluZ3Muc2hvd0FsbFJlcXVlc3RzQnJlYWtwb2ludC52YWx1ZSkKLSAgICAg
ICAgICAgICAgICBXSS5kb21EZWJ1Z2dlck1hbmFnZXIuYWRkVVJMQnJlYWtwb2ludChXSS5kb21E
ZWJ1Z2dlck1hbmFnZXIuYWxsUmVxdWVzdHNCcmVha3BvaW50KTsKKyAgICAgICAgICAgIGlmIChX
SS5kb21EZWJ1Z2dlck1hbmFnZXIuYWxsUmVxdWVzdHNCcmVha3BvaW50KQorICAgICAgICAgICAg
ICAgIHRoaXMuX2FkZEJyZWFrcG9pbnQoV0kuZG9tRGVidWdnZXJNYW5hZ2VyLmFsbFJlcXVlc3Rz
QnJlYWtwb2ludCk7CiAKICAgICAgICAgICAgIGZvciAobGV0IHVybEJyZWFrcG9pbnRzIG9mIFdJ
LmRvbURlYnVnZ2VyTWFuYWdlci51cmxCcmVha3BvaW50cykKICAgICAgICAgICAgICAgICB0aGlz
Ll9hZGRCcmVha3BvaW50KHVybEJyZWFrcG9pbnRzKTsKQEAgLTE5NzcsNDIgKzE5NzcsNDQgQEAg
V0kuU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwgPSBjbGFzcyBTb3VyY2VzTmF2aWdhdGlv
blNpZGViYXJQYW5lbCBleHRlbmRzIFcKIAogICAgIF9wb3B1bGF0ZUNyZWF0ZUJyZWFrcG9pbnRD
b250ZXh0TWVudShjb250ZXh0TWVudSkKICAgICB7Ci0gICAgICAgIGNvbnRleHRNZW51LmFwcGVu
ZENoZWNrYm94SXRlbShXSS5yZXBlYXRlZFVJU3RyaW5nLmFzc2VydGlvbkZhaWx1cmVzKCksICgp
ID0+IHsKLSAgICAgICAgICAgIGlmIChXSS5kZWJ1Z2dlck1hbmFnZXIuYXNzZXJ0aW9uRmFpbHVy
ZXNCcmVha3BvaW50KQotICAgICAgICAgICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5hc3NlcnRp
b25GYWlsdXJlc0JyZWFrcG9pbnQucmVtb3ZlKCk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLmNyZWF0ZUFzc2VydGlvbkZhaWx1cmVzQnJlYWtw
b2ludCgpOwotICAgICAgICB9LCBXSS5kZWJ1Z2dlck1hbmFnZXIuYXNzZXJ0aW9uRmFpbHVyZXNC
cmVha3BvaW50KTsKKyAgICAgICAgZnVuY3Rpb24gYWRkVG9nZ2xlRm9yU3BlY2lhbEJyZWFrcG9p
bnQobGFiZWwsIGJyZWFrcG9pbnQsIGNhbGxiYWNrKSB7CisgICAgICAgICAgICBjb250ZXh0TWVu
dS5hcHBlbmRDaGVja2JveEl0ZW0obGFiZWwsICgpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAo
YnJlYWtwb2ludCkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludC5yZW1vdmUoKTsKKyAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAg
ICAgICAgICB9LCAhIWJyZWFrcG9pbnQpOworICAgICAgICB9CisKKyAgICAgICAgYWRkVG9nZ2xl
Rm9yU3BlY2lhbEJyZWFrcG9pbnQoV0kucmVwZWF0ZWRVSVN0cmluZy5hc3NlcnRpb25GYWlsdXJl
cygpLCBXSS5kZWJ1Z2dlck1hbmFnZXIuYXNzZXJ0aW9uRmFpbHVyZXNCcmVha3BvaW50LCAoKSA9
PiB7CisgICAgICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIuY3JlYXRlQXNzZXJ0aW9uRmFpbHVy
ZXNCcmVha3BvaW50KCk7CisgICAgICAgIH0pOwogCiAgICAgICAgIGNvbnRleHRNZW51LmFwcGVu
ZFNlcGFyYXRvcigpOwogCiAgICAgICAgIGlmIChXSS5KYXZhU2NyaXB0QnJlYWtwb2ludC5zdXBw
b3J0c01pY3JvdGFza3MoKSkgewotICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kQ2hlY2ti
b3hJdGVtKFdJLnJlcGVhdGVkVUlTdHJpbmcuYWxsTWljcm90YXNrcygpLCAoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgaWYgKFdJLmRlYnVnZ2VyTWFuYWdlci5hbGxNaWNyb3Rhc2tzQnJlYWtwb2lu
dCkKLSAgICAgICAgICAgICAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLmFsbE1pY3JvdGFza3NC
cmVha3BvaW50LnJlbW92ZSgpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLmNyZWF0ZUFsbE1pY3JvdGFza3NCcmVha3BvaW50KCk7
Ci0gICAgICAgICAgICB9LCBXSS5kZWJ1Z2dlck1hbmFnZXIuYWxsTWljcm90YXNrc0JyZWFrcG9p
bnQpOworICAgICAgICAgICAgYWRkVG9nZ2xlRm9yU3BlY2lhbEJyZWFrcG9pbnQoV0kucmVwZWF0
ZWRVSVN0cmluZy5hbGxNaWNyb3Rhc2tzKCksIFdJLmRlYnVnZ2VyTWFuYWdlci5hbGxNaWNyb3Rh
c2tzQnJlYWtwb2ludCwgKCkgPT4geworICAgICAgICAgICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdl
ci5jcmVhdGVBbGxNaWNyb3Rhc2tzQnJlYWtwb2ludCgpOworICAgICAgICAgICAgfSk7CiAgICAg
ICAgIH0KIAogICAgICAgICBpZiAoV0kuRE9NRGVidWdnZXJNYW5hZ2VyLnN1cHBvcnRzRXZlbnRC
cmVha3BvaW50cygpIHx8IFdJLkRPTURlYnVnZ2VyTWFuYWdlci5zdXBwb3J0c0V2ZW50TGlzdGVu
ZXJCcmVha3BvaW50cygpKSB7Ci0gICAgICAgICAgICBmdW5jdGlvbiBhZGRUb2dnbGVGb3JTcGVj
aWFsRXZlbnRCcmVha3BvaW50KGxhYmVsLCBicmVha3BvaW50LCB0eXBlKSB7Ci0gICAgICAgICAg
ICAgICAgY29udGV4dE1lbnUuYXBwZW5kQ2hlY2tib3hJdGVtKGxhYmVsLCAoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgICAgIGlmIChicmVha3BvaW50KQotICAgICAgICAgICAgICAgICAgICAgICAg
V0kuZG9tRGVidWdnZXJNYW5hZ2VyLnJlbW92ZUV2ZW50QnJlYWtwb2ludChicmVha3BvaW50KTsK
LSAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgV0kuZG9t
RGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50QnJlYWtwb2ludChuZXcgV0kuRXZlbnRCcmVha3BvaW50
KHR5cGUpKTsKLSAgICAgICAgICAgICAgICB9LCAhIWJyZWFrcG9pbnQpOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBhZGRUb2dnbGVGb3JTcGVjaWFsRXZlbnRCcmVha3BvaW50KFdJLnJl
cGVhdGVkVUlTdHJpbmcuYWxsQW5pbWF0aW9uRnJhbWVzKCksIFdJLmRvbURlYnVnZ2VyTWFuYWdl
ci5hbGxBbmltYXRpb25GcmFtZXNCcmVha3BvaW50LCBXSS5FdmVudEJyZWFrcG9pbnQuVHlwZS5B
bmltYXRpb25GcmFtZSk7Ci0gICAgICAgICAgICBhZGRUb2dnbGVGb3JTcGVjaWFsRXZlbnRCcmVh
a3BvaW50KFdJLnJlcGVhdGVkVUlTdHJpbmcuYWxsVGltZW91dHMoKSwgV0kuZG9tRGVidWdnZXJN
YW5hZ2VyLmFsbFRpbWVvdXRzQnJlYWtwb2ludCwgV0kuRXZlbnRCcmVha3BvaW50LlR5cGUuVGlt
ZW91dCk7Ci0gICAgICAgICAgICBhZGRUb2dnbGVGb3JTcGVjaWFsRXZlbnRCcmVha3BvaW50KFdJ
LnJlcGVhdGVkVUlTdHJpbmcuYWxsSW50ZXJ2YWxzKCksIFdJLmRvbURlYnVnZ2VyTWFuYWdlci5h
bGxJbnRlcnZhbHNCcmVha3BvaW50LCBXSS5FdmVudEJyZWFrcG9pbnQuVHlwZS5JbnRlcnZhbCk7
CisgICAgICAgICAgICBhZGRUb2dnbGVGb3JTcGVjaWFsQnJlYWtwb2ludChXSS5yZXBlYXRlZFVJ
U3RyaW5nLmFsbEFuaW1hdGlvbkZyYW1lcygpLCBXSS5kb21EZWJ1Z2dlck1hbmFnZXIuYWxsQW5p
bWF0aW9uRnJhbWVzQnJlYWtwb2ludCwgKCkgPT4geworICAgICAgICAgICAgICAgIFdJLmRvbURl
YnVnZ2VyTWFuYWdlci5hZGRFdmVudEJyZWFrcG9pbnQobmV3IFdJLkV2ZW50QnJlYWtwb2ludChX
SS5FdmVudEJyZWFrcG9pbnQuVHlwZS5BbmltYXRpb25GcmFtZSkpOworICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICBhZGRUb2dnbGVGb3JTcGVjaWFsQnJlYWtwb2ludChXSS5yZXBlYXRlZFVJ
U3RyaW5nLmFsbFRpbWVvdXRzKCksIFdJLmRvbURlYnVnZ2VyTWFuYWdlci5hbGxUaW1lb3V0c0Jy
ZWFrcG9pbnQsICgpID0+IHsKKyAgICAgICAgICAgICAgICBXSS5kb21EZWJ1Z2dlck1hbmFnZXIu
YWRkRXZlbnRCcmVha3BvaW50KG5ldyBXSS5FdmVudEJyZWFrcG9pbnQoV0kuRXZlbnRCcmVha3Bv
aW50LlR5cGUuVGltZW91dCkpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBhZGRUb2dn
bGVGb3JTcGVjaWFsQnJlYWtwb2ludChXSS5yZXBlYXRlZFVJU3RyaW5nLmFsbEludGVydmFscygp
LCBXSS5kb21EZWJ1Z2dlck1hbmFnZXIuYWxsSW50ZXJ2YWxzQnJlYWtwb2ludCwgKCkgPT4gewor
ICAgICAgICAgICAgICAgIFdJLmRvbURlYnVnZ2VyTWFuYWdlci5hZGRFdmVudEJyZWFrcG9pbnQo
bmV3IFdJLkV2ZW50QnJlYWtwb2ludChXSS5FdmVudEJyZWFrcG9pbnQuVHlwZS5JbnRlcnZhbCkp
OworICAgICAgICAgICAgfSk7CiAKICAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFy
YXRvcigpOwogCiAgICAgICAgICAgICBpZiAoV0kuRE9NRGVidWdnZXJNYW5hZ2VyLnN1cHBvcnRz
QWxsTGlzdGVuZXJzQnJlYWtwb2ludCgpKQotICAgICAgICAgICAgICAgIGFkZFRvZ2dsZUZvclNw
ZWNpYWxFdmVudEJyZWFrcG9pbnQoV0kucmVwZWF0ZWRVSVN0cmluZy5hbGxFdmVudHMoKSwgV0ku
ZG9tRGVidWdnZXJNYW5hZ2VyLmFsbExpc3RlbmVyc0JyZWFrcG9pbnQsIFdJLkV2ZW50QnJlYWtw
b2ludC5UeXBlLkxpc3RlbmVyKTsKKyAgICAgICAgICAgICAgICBhZGRUb2dnbGVGb3JTcGVjaWFs
QnJlYWtwb2ludChXSS5yZXBlYXRlZFVJU3RyaW5nLmFsbEV2ZW50cygpLCBXSS5kb21EZWJ1Z2dl
ck1hbmFnZXIuYWxsTGlzdGVuZXJzQnJlYWtwb2ludCwgKCkgPT4geworICAgICAgICAgICAgICAg
ICAgICBXSS5kb21EZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRCcmVha3BvaW50KG5ldyBXSS5FdmVu
dEJyZWFrcG9pbnQoV0kuRXZlbnRCcmVha3BvaW50LlR5cGUuTGlzdGVuZXIpKTsKKyAgICAgICAg
ICAgICAgICB9KTsKIAogICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0
cmluZygiRXZlbnQgQnJlYWtwb2ludFx1MjAyNiIpLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAg
bGV0IHBvcG92ZXIgPSBuZXcgV0kuRXZlbnRCcmVha3BvaW50UG9wb3Zlcih0aGlzKTsKQEAgLTIw
MjMsMTUgKzIwMjUsMTAgQEAgV0kuU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwgPSBjbGFz
cyBTb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbCBleHRlbmRzIFcKICAgICAgICAgaWYgKFdJ
LkRPTURlYnVnZ2VyTWFuYWdlci5zdXBwb3J0c1VSTEJyZWFrcG9pbnRzKCkgfHwgV0kuRE9NRGVi
dWdnZXJNYW5hZ2VyLnN1cHBvcnRzWEhSQnJlYWtwb2ludHMoKSkgewogICAgICAgICAgICAgY29u
dGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7CiAKLSAgICAgICAgICAgIGxldCBhbGxSZXF1ZXN0
c0JyZWFrcG9pbnRTaG93biA9IFdJLnNldHRpbmdzLnNob3dBbGxSZXF1ZXN0c0JyZWFrcG9pbnQu
dmFsdWU7Ci0gICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRDaGVja2JveEl0ZW0oV0kucmVw
ZWF0ZWRVSVN0cmluZy5hbGxSZXF1ZXN0cygpLCAoKSA9PiB7Ci0gICAgICAgICAgICAgICAgaWYg
KGFsbFJlcXVlc3RzQnJlYWtwb2ludFNob3duKQotICAgICAgICAgICAgICAgICAgICBXSS5kb21E
ZWJ1Z2dlck1hbmFnZXIucmVtb3ZlVVJMQnJlYWtwb2ludChXSS5kb21EZWJ1Z2dlck1hbmFnZXIu
YWxsUmVxdWVzdHNCcmVha3BvaW50KTsKLSAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgICAgICAgICAgV0kuZG9tRGVidWdnZXJNYW5hZ2VyLmFsbFJlcXVlc3RzQnJlYWtwb2ludC5k
aXNhYmxlZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICBXSS5kb21EZWJ1Z2dlck1hbmFn
ZXIuYWRkVVJMQnJlYWtwb2ludChXSS5kb21EZWJ1Z2dlck1hbmFnZXIuYWxsUmVxdWVzdHNCcmVh
a3BvaW50KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9LCBhbGxSZXF1ZXN0c0Jy
ZWFrcG9pbnRTaG93bik7CisgICAgICAgICAgICBhZGRUb2dnbGVGb3JTcGVjaWFsQnJlYWtwb2lu
dChXSS5yZXBlYXRlZFVJU3RyaW5nLmFsbFJlcXVlc3RzKCksIFdJLmRvbURlYnVnZ2VyTWFuYWdl
ci5hbGxSZXF1ZXN0c0JyZWFrcG9pbnQsICgpID0+IHsKKyAgICAgICAgICAgICAgICBjb25zdCB1
cmwgPSAiIjsKKyAgICAgICAgICAgICAgICBXSS5kb21EZWJ1Z2dlck1hbmFnZXIuYWRkVVJMQnJl
YWtwb2ludChuZXcgV0kuVVJMQnJlYWtwb2ludChXSS5VUkxCcmVha3BvaW50LlR5cGUuVGV4dCwg
dXJsKSk7CisgICAgICAgICAgICB9KTsKIAogICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5k
SXRlbShXSS5ET01EZWJ1Z2dlck1hbmFnZXIuc3VwcG9ydHNVUkxCcmVha3BvaW50cygpID8gV0ku
VUlTdHJpbmcoIlVSTCBCcmVha3BvaW50XHUyMDI2IikgOiBXSS5VSVN0cmluZygiWEhSIEJyZWFr
cG9pbnRcdTIwMjYiKSwgKCkgPT4gewogICAgICAgICAgICAgICAgIGxldCBwb3BvdmVyID0gbmV3
IFdJLlVSTEJyZWFrcG9pbnRQb3BvdmVyKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVVJMQnJlYWtwb2ludFBvcG92ZXIuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9VUkxCcmVha3BvaW50UG9w
b3Zlci5qcwppbmRleCBhMWE0NjEzMmFhZS4uMmExNTcyOGJiZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1VSTEJyZWFrcG9pbnRQb3BvdmVy
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1VSTEJy
ZWFrcG9pbnRQb3BvdmVyLmpzCkBAIC0zOCw3ICszOCw3IEBAIFdJLlVSTEJyZWFrcG9pbnRQb3Bv
dmVyID0gY2xhc3MgVVJMQnJlYWtwb2ludFBvcG92ZXIgZXh0ZW5kcyBXSS5CcmVha3BvaW50UG9w
b3ZlCiAKICAgICBzdGF0aWMgZ2V0IGVkaXRhYmxlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgcmV0dXJuIFdJLlVSTEJyZWFrcG9pbnQuZWRpdGFibGU7CiAgICAgfQog
CiAgICAgLy8gUHJvdGVjdGVkCg==
</data>
<flag name="review"
          id="422918"
          type_id="1"
          status="+"
          setter="bburg"
    />
    <flag name="commit-queue"
          id="422919"
          type_id="3"
          status="-"
          setter="hi"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407849</attachid>
            <date>2020-09-02 18:56:27 -0700</date>
            <delta_ts>2020-09-03 13:07:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>215793.diff</filename>
            <type>text/plain</type>
            <size>115766</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzNWZmYzQ5YjA1NTkuLjc2NmI0ZWE1ZTQ2OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBA
CisyMDIwLTA5LTAyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBhbGxvdyB1cmwgYnJlYWtwb2ludHMgdG8gYmUgY29uZmlndXJlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1NzkzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQnJpYW4gQnVyZy4KKworICAgICAgICAqIGluc3BlY3Rvci9k
ZWJ1Z2dlci9yZXNvdXJjZXMvYnJlYWtwb2ludC1vcHRpb25zLXV0aWxpdGllcy5qczoKKyAgICAg
ICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIuSW5zcGVjdG9yVGVzdC5CcmVha3BvaW50
T3B0aW9ucy5hZGRUZXN0Q2FzZXMpOgorCisgICAgICAgICogaW5zcGVjdG9yL2RvbS1kZWJ1Z2dl
ci9yZXNvdXJjZXMvdXJsLWJyZWFrcG9pbnQtdXRpbGl0aWVzLmpzOiBBZGRlZC4KKyAgICAgICAg
KFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIuSW5zcGVjdG9yVGVzdC5VUkxCcmVha3BvaW50
LnRlYXJkb3duKToKKyAgICAgICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIuSW5zcGVj
dG9yVGVzdC5VUkxCcmVha3BvaW50LmNyZWF0ZUJyZWFrcG9pbnQpOgorICAgICAgICAoVGVzdFBh
Z2UucmVnaXN0ZXJJbml0aWFsaXplci5JbnNwZWN0b3JUZXN0LlVSTEJyZWFrcG9pbnQuYWRkQnJl
YWtwb2ludCk6CisgICAgICAgIChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyLkluc3BlY3Rv
clRlc3QuVVJMQnJlYWtwb2ludC5yZXF1ZXN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tLWRl
YnVnZ2VyL3VybC1icmVha3BvaW50cy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kb20tZGVi
dWdnZXIvdXJsLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZG9tLWRlYnVnZ2VyL3VybC1icmVha3BvaW50cy1hbGwtcmVxdWVzdHMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci91cmwtYnJlYWtwb2ludHMtYWxsLXJlcXVl
c3RzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RvbS1kZWJ1Z2dl
ci91cmwtYnJlYWtwb2ludHMtY29udGFpbmluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvZG9tLWRlYnVnZ2VyL3VybC1icmVha3BvaW50cy1jb250YWluaW5nLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci91cmwtYnJlYWtwb2lu
dHMtbWF0Y2hpbmcuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RvbS1kZWJ1Z2dl
ci91cmwtYnJlYWtwb2ludHMtbWF0Y2hpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
U3BsaXQgdGhlIG9uZSBVUkwgYnJlYWtwb2ludCB0ZXN0IGludG8gZm91ciBzbyB0aGV5IHJ1biBx
dWlja2VyLgorCisgICAgICAgICogaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9yZXNvdXJjZXMvZXZl
bnQtYnJlYWtwb2ludC11dGlsaXRpZXMuanM6CisgICAgICAgIChUZXN0UGFnZS5yZWdpc3Rlcklu
aXRpYWxpemVyLkluc3BlY3RvclRlc3QuRXZlbnRCcmVha3BvaW50LmFkZEJyZWFrcG9pbnRPcHRp
b25zVGVzdENhc2VzKTogRGVsZXRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tLWRlYnVnZ2Vy
L2V2ZW50LWFuaW1hdGlvbi1mcmFtZS1icmVha3BvaW50cy5odG1sOgorICAgICAgICAqIGluc3Bl
Y3Rvci9kb20tZGVidWdnZXIvZXZlbnQtYW5pbWF0aW9uLWZyYW1lLWJyZWFrcG9pbnRzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2V2ZW50LWludGVydmFs
LWJyZWFrcG9pbnRzLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9ldmVu
dC1pbnRlcnZhbC1icmVha3BvaW50cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9y
L2RvbS1kZWJ1Z2dlci9ldmVudC1saXN0ZW5lci1icmVha3BvaW50cy5odG1sOgorICAgICAgICAq
IGluc3BlY3Rvci9kb20tZGVidWdnZXIvZXZlbnQtbGlzdGVuZXItYnJlYWtwb2ludHMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9kb20tZGVidWdnZXIvZXZlbnQtdGltZW91dC1i
cmVha3BvaW50cy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kb20tZGVidWdnZXIvZXZlbnQt
dGltZW91dC1icmVha3BvaW50cy1leHBlY3RlZC50eHQ6CisgICAgICAgIFVzZSBgSW5zcGVjdG9y
VGVzdC5CcmVha3BvaW50T3B0aW9ucy5hZGRUZXN0Q2FzZXNgIGluc3RlYWQgb2YgZHVwbGljYXRp
bmcgdGhlIGxvZ2ljLgorCiAyMDIwLTA5LTAyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxl
LmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBhbGxvdyBzcGVjaWFsIEphdmFTY3JpcHQg
YnJlYWtwb2ludHMgdG8gYmUgY29uZmlndXJlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy9icmVha3BvaW50LW9wdGlvbnMtdXRpbGl0aWVzLmpz
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy9icmVha3BvaW50LW9w
dGlvbnMtdXRpbGl0aWVzLmpzCmluZGV4IDQxM2ZlZDExYWU2YS4uMmRmNmRhMjhiMTEzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL2JyZWFrcG9p
bnQtb3B0aW9ucy11dGlsaXRpZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3Jlc291cmNlcy9icmVha3BvaW50LW9wdGlvbnMtdXRpbGl0aWVzLmpzCkBAIC0xLDcgKzEs
OSBAQAogVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgSW5zcGVjdG9y
VGVzdC5CcmVha3BvaW50T3B0aW9ucyA9IHt9OwogCi0gICAgSW5zcGVjdG9yVGVzdC5CcmVha3Bv
aW50T3B0aW9ucy5hZGRUZXN0Q2FzZXMgPSBmdW5jdGlvbihzdWl0ZSwge2NyZWF0ZUJyZWFrcG9p
bnQsIHRyaWdnZXJCcmVha3BvaW50fSkgeworICAgIEluc3BlY3RvclRlc3QuQnJlYWtwb2ludE9w
dGlvbnMuYWRkVGVzdENhc2VzID0gZnVuY3Rpb24oc3VpdGUsIHt0ZXN0Q2FzZU5hbWVQcmVmaXgs
IGNyZWF0ZUJyZWFrcG9pbnQsIHRyaWdnZXJCcmVha3BvaW50fSkgeworICAgICAgICB0ZXN0Q2Fz
ZU5hbWVQcmVmaXggPz89ICIiOworCiAgICAgICAgIGZ1bmN0aW9uIHJlbW92ZUJyZWFrcG9pbnQo
YnJlYWtwb2ludCkgewogICAgICAgICAgICAgaWYgKGJyZWFrcG9pbnQucmVtb3ZhYmxlKQogICAg
ICAgICAgICAgICAgIGJyZWFrcG9pbnQucmVtb3ZlKCk7CkBAIC0xMiw3ICsxNCw3IEBAIFRlc3RQ
YWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4gewogICAgICAgICB9CiAKICAgICAgICAgc3Vp
dGUuYWRkVGVzdENhc2UoewotICAgICAgICAgICAgbmFtZTogc3VpdGUubmFtZSArICIuT3B0aW9u
cy5Db25kaXRpb24iLAorICAgICAgICAgICAgbmFtZTogc3VpdGUubmFtZSArICIuIiArIHRlc3RD
YXNlTmFtZVByZWZpeCArICJPcHRpb25zLkNvbmRpdGlvbiIsCiAgICAgICAgICAgICBkZXNjcmlw
dGlvbjogIkNoZWNrIHRoYXQgdGhlIGRlYnVnZ2VyIHdpbGwgbm90IHBhdXNlIHVubGVzcyB0aGUg
YnJlYWtwb2ludCBoYXMgYSB0cnV0aHkgYnJlYWtwb2ludCBjb25kaXRpb24uIiwKICAgICAgICAg
ICAgIGFzeW5jIHRlc3QoKSB7CiAgICAgICAgICAgICAgICAgbGV0IHBhdXNlQ291bnQgPSAwOwpA
QCAtNTUsNyArNTcsNyBAQCBUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsKICAg
ICAgICAgfSk7CiAKICAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoewotICAgICAgICAgICAgbmFt
ZTogc3VpdGUubmFtZSArICIuT3B0aW9ucy5JZ25vcmVDb3VudCIsCisgICAgICAgICAgICBuYW1l
OiBzdWl0ZS5uYW1lICsgIi4iICsgdGVzdENhc2VOYW1lUHJlZml4ICsgIk9wdGlvbnMuSWdub3Jl
Q291bnQiLAogICAgICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IHRoZSBkZWJ1Z2dl
ciB3aWxsIG5vdCBwYXVzZSB1bmxlc3MgdGhlIGJyZWFrcG9pbnQgaXMgaGl0IGF0IGxlYXN0IGFz
IG1hbnkgdGltZXMgYXMgaXQncyBgaWdub3JlQ291bnRgLiIsCiAgICAgICAgICAgICBhc3luYyB0
ZXN0KCkgewogICAgICAgICAgICAgICAgIGxldCBwYXVzZUNvdW50ID0gMDsKQEAgLTkxLDcgKzkz
LDcgQEAgVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CiAgICAgICAgIH0pOwog
CiAgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKLSAgICAgICAgICAgIG5hbWU6IHN1aXRlLm5h
bWUgKyAiLk9wdGlvbnMuQWN0aW9uLkxvZyIsCisgICAgICAgICAgICBuYW1lOiBzdWl0ZS5uYW1l
ICsgIi4iICsgdGVzdENhc2VOYW1lUHJlZml4ICsgIk9wdGlvbnMuQWN0aW9uLkxvZyIsCiAgICAg
ICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgbG9nIGJyZWFrcG9pbnQgYWN0aW9ucyBl
eGVjdXRlIHdoZW4gdGhlIGJyZWFrcG9pbnQgaXMgaGl0LiIsCiAgICAgICAgICAgICBhc3luYyB0
ZXN0KCkgewogICAgICAgICAgICAgICAgIGxldCBwYXVzZUNvdW50ID0gMDsKQEAgLTE1MCw3ICsx
NTIsNyBAQCBUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsKICAgICAgICAgfSk7
CiAKICAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoewotICAgICAgICAgICAgbmFtZTogc3VpdGUu
bmFtZSArICIuT3B0aW9ucy5BY3Rpb25zLkV2YWx1YXRlIiwKKyAgICAgICAgICAgIG5hbWU6IHN1
aXRlLm5hbWUgKyAiLiIgKyB0ZXN0Q2FzZU5hbWVQcmVmaXggKyAiT3B0aW9ucy5BY3Rpb25zLkV2
YWx1YXRlIiwKICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBldmFsdWF0ZSBi
cmVha3BvaW50IGFjdGlvbnMgZXhlY3V0ZSB3aGVuIHRoZSBicmVha3BvaW50IGlzIGhpdC4iLAog
ICAgICAgICAgICAgYXN5bmMgdGVzdCgpIHsKICAgICAgICAgICAgICAgICBsZXQgcGF1c2VDb3Vu
dCA9IDA7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2V2
ZW50LWFuaW1hdGlvbi1mcmFtZS1icmVha3BvaW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2V2ZW50LWFuaW1hdGlvbi1mcmFtZS1icmVha3BvaW50
cy1leHBlY3RlZC50eHQKaW5kZXggZjllZjA0Zjc5ZDZjLi5hZTk3MjU2ZDkwNjQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvZXZlbnQtYW5pbWF0aW9uLWZy
YW1lLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZG9tLWRlYnVnZ2VyL2V2ZW50LWFuaW1hdGlvbi1mcmFtZS1icmVha3BvaW50cy1leHBlY3RlZC50
eHQKQEAgLTYzLDcgKzYzLDYgQEAgUEFTUzogU2hvdWxkIHBhdXNlLgogCiBUcmlnZ2VyaW5nIGJy
ZWFrcG9pbnQuLi4KIFBBU1M6IFNob3VsZCBwYXVzZS4KLS0tIFJ1bm5pbmcgdGVzdCB0ZWFyZG93
bi4KIAogLS0gUnVubmluZyB0ZXN0IGNhc2U6IERPTURlYnVnZ2VyLkV2ZW50LkFuaW1hdGlvbkZy
YW1lLk9wdGlvbnMuSWdub3JlQ291bnQKIENyZWF0aW5nICJhbmltYXRpb24tZnJhbWUiIEV2ZW50
IEJyZWFrcG9pbnQuLi4KQEAgLTgyLDcgKzgxLDYgQEAgUEFTUzogU2hvdWxkIHBhdXNlLgogCiBU
cmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KIFBBU1M6IFNob3VsZCBwYXVzZS4KLS0tIFJ1bm5pbmcg
dGVzdCB0ZWFyZG93bi4KIAogLS0gUnVubmluZyB0ZXN0IGNhc2U6IERPTURlYnVnZ2VyLkV2ZW50
LkFuaW1hdGlvbkZyYW1lLk9wdGlvbnMuQWN0aW9uLkxvZwogQ3JlYXRpbmcgImFuaW1hdGlvbi1m
cmFtZSIgRXZlbnQgQnJlYWtwb2ludC4uLgpAQCAtMTEyLDcgKzExMCw2IEBAIEVkaXRpbmcgbG9n
IGFjdGlvbi4uLgogVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCiBQQVNTOiBTaG91bGQgZXhlY3V0
ZSBicmVha3BvaW50IGFjdGlvbi4KIFBBU1M6IFNob3VsZCBub3QgcGF1c2UuCi0tLSBSdW5uaW5n
IHRlc3QgdGVhcmRvd24uCiAKIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBET01EZWJ1Z2dlci5FdmVu
dC5BbmltYXRpb25GcmFtZS5PcHRpb25zLkFjdGlvbnMuRXZhbHVhdGUKIENyZWF0aW5nICJhbmlt
YXRpb24tZnJhbWUiIEV2ZW50IEJyZWFrcG9pbnQuLi4KQEAgLTE0Miw1ICsxMzksNCBAQCBFZGl0
aW5nIGV2YWx1YXRlIGFjdGlvbi4uLgogVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCiBQQVNTOiBT
aG91bGQgZXhlY3V0ZSBicmVha3BvaW50IGFjdGlvbi4KIFBBU1M6IFNob3VsZCBub3QgcGF1c2Uu
Ci0tLSBSdW5uaW5nIHRlc3QgdGVhcmRvd24uCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kb20tZGVidWdnZXIvZXZlbnQtYW5pbWF0aW9uLWZyYW1lLWJyZWFrcG9pbnRzLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2V2ZW50LWFuaW1hdGlvbi1m
cmFtZS1icmVha3BvaW50cy5odG1sCmluZGV4IGZmYWVmOGI0ZTQ3My4uYmI5MzViNDcwY2UyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2V2ZW50LWFuaW1h
dGlvbi1mcmFtZS1icmVha3BvaW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
b20tZGVidWdnZXIvZXZlbnQtYW5pbWF0aW9uLWZyYW1lLWJyZWFrcG9pbnRzLmh0bWwKQEAgLTIs
NiArMiw3IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vZGVidWdnZXIvcmVzb3VyY2VzL2JyZWFrcG9pbnQtb3B0aW9ucy11dGlsaXRpZXMu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uL2RlYnVnZ2VyL3Jlc291cmNlcy9sb2ctYWN0
aXZlLXN0YWNrLXRyYWNlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZXZl
bnQtYnJlYWtwb2ludC11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KQEAgLTk1LDcg
Kzk2LDE3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgIHRlYXJkb3duOiBJbnNwZWN0b3JU
ZXN0LkV2ZW50QnJlYWtwb2ludC50ZWFyZG93biwKICAgICB9KTsKIAotICAgIEluc3BlY3RvclRl
c3QuRXZlbnRCcmVha3BvaW50LmFkZEJyZWFrcG9pbnRPcHRpb25zVGVzdENhc2VzKHN1aXRlLCBX
SS5FdmVudEJyZWFrcG9pbnQuVHlwZS5BbmltYXRpb25GcmFtZSwgZXZlbnROYW1lKTsKKyAgICBJ
bnNwZWN0b3JUZXN0LkJyZWFrcG9pbnRPcHRpb25zLmFkZFRlc3RDYXNlcyhzdWl0ZSwgeworICAg
ICAgICBjcmVhdGVCcmVha3BvaW50KCkgeworICAgICAgICAgICAgcmV0dXJuIEluc3BlY3RvclRl
c3QuRXZlbnRCcmVha3BvaW50LmNyZWF0ZUJyZWFrcG9pbnQoV0kuRXZlbnRCcmVha3BvaW50LlR5
cGUuQW5pbWF0aW9uRnJhbWUsIHtldmVudE5hbWV9KTsKKyAgICAgICAgfSwKKyAgICAgICAgdHJp
Z2dlckJyZWFrcG9pbnQoKSB7CisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoWworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXdhaXRFdmVudCgiVGVzdFBhZ2UtIiArIGV2ZW50
TmFtZSksCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgdHJp
Z2dlcl8ke2V2ZW50TmFtZX0oKWApLAorICAgICAgICAgICAgXSk7CisgICAgICAgIH0sCisgICAg
fSk7CiAKICAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKIH0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvZXZlbnQtaW50ZXJ2YWwtYnJlYWtw
b2ludHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9l
dmVudC1pbnRlcnZhbC1icmVha3BvaW50cy1leHBlY3RlZC50eHQKaW5kZXggYWNiNzA5ZmYwZjgy
Li41MWE0NDQ1MTc1NTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVi
dWdnZXIvZXZlbnQtaW50ZXJ2YWwtYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvZXZlbnQtaW50ZXJ2YWwtYnJlYWtwb2ludHMt
ZXhwZWN0ZWQudHh0CkBAIC04Myw3ICs4Myw2IEBAIFBBU1M6IFNob3VsZCBwYXVzZS4KIAogVHJp
Z2dlcmluZyBicmVha3BvaW50Li4uCiBQQVNTOiBTaG91bGQgcGF1c2UuCi0tLSBSdW5uaW5nIHRl
c3QgdGVhcmRvd24uCiAKIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBET01EZWJ1Z2dlci5FdmVudC5J
bnRlcnZhbC5PcHRpb25zLklnbm9yZUNvdW50CiBDcmVhdGluZyAiaW50ZXJ2YWwiIEV2ZW50IEJy
ZWFrcG9pbnQuLi4KQEAgLTEwMiw3ICsxMDEsNiBAQCBQQVNTOiBTaG91bGQgcGF1c2UuCiAKIFRy
aWdnZXJpbmcgYnJlYWtwb2ludC4uLgogUEFTUzogU2hvdWxkIHBhdXNlLgotLS0gUnVubmluZyB0
ZXN0IHRlYXJkb3duLgogCiAtLSBSdW5uaW5nIHRlc3QgY2FzZTogRE9NRGVidWdnZXIuRXZlbnQu
SW50ZXJ2YWwuT3B0aW9ucy5BY3Rpb24uTG9nCiBDcmVhdGluZyAiaW50ZXJ2YWwiIEV2ZW50IEJy
ZWFrcG9pbnQuLi4KQEAgLTEzMiw3ICsxMzAsNiBAQCBFZGl0aW5nIGxvZyBhY3Rpb24uLi4KIFRy
aWdnZXJpbmcgYnJlYWtwb2ludC4uLgogUEFTUzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBh
Y3Rpb24uCiBQQVNTOiBTaG91bGQgbm90IHBhdXNlLgotLS0gUnVubmluZyB0ZXN0IHRlYXJkb3du
LgogCiAtLSBSdW5uaW5nIHRlc3QgY2FzZTogRE9NRGVidWdnZXIuRXZlbnQuSW50ZXJ2YWwuT3B0
aW9ucy5BY3Rpb25zLkV2YWx1YXRlCiBDcmVhdGluZyAiaW50ZXJ2YWwiIEV2ZW50IEJyZWFrcG9p
bnQuLi4KQEAgLTE2Miw1ICsxNTksNCBAQCBFZGl0aW5nIGV2YWx1YXRlIGFjdGlvbi4uLgogVHJp
Z2dlcmluZyBicmVha3BvaW50Li4uCiBQQVNTOiBTaG91bGQgZXhlY3V0ZSBicmVha3BvaW50IGFj
dGlvbi4KIFBBU1M6IFNob3VsZCBub3QgcGF1c2UuCi0tLSBSdW5uaW5nIHRlc3QgdGVhcmRvd24u
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvZXZlbnQt
aW50ZXJ2YWwtYnJlYWtwb2ludHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVi
dWdnZXIvZXZlbnQtaW50ZXJ2YWwtYnJlYWtwb2ludHMuaHRtbAppbmRleCAwMjg0YmRhMjlhZWIu
LjE0YzJjNzc5ZmUzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1
Z2dlci9ldmVudC1pbnRlcnZhbC1icmVha3BvaW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kb20tZGVidWdnZXIvZXZlbnQtaW50ZXJ2YWwtYnJlYWtwb2ludHMuaHRtbApAQCAt
Miw2ICsyLDcgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9kZWJ1Z2dlci9yZXNvdXJjZXMvYnJlYWtwb2ludC1vcHRpb25zLXV0aWxpdGll
cy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vZGVidWdnZXIvcmVzb3VyY2VzL2xvZy1h
Y3RpdmUtc3RhY2stdHJhY2UuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9l
dmVudC1icmVha3BvaW50LXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgpAQCAtMTQ0
LDcgKzE0NSwxNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICB0ZWFyZG93bjogSW5zcGVj
dG9yVGVzdC5FdmVudEJyZWFrcG9pbnQudGVhcmRvd24sCiAgICAgfSk7CiAKLSAgICBJbnNwZWN0
b3JUZXN0LkV2ZW50QnJlYWtwb2ludC5hZGRCcmVha3BvaW50T3B0aW9uc1Rlc3RDYXNlcyhzdWl0
ZSwgV0kuRXZlbnRCcmVha3BvaW50LlR5cGUuSW50ZXJ2YWwsIGV2ZW50TmFtZSk7CisgICAgSW5z
cGVjdG9yVGVzdC5CcmVha3BvaW50T3B0aW9ucy5hZGRUZXN0Q2FzZXMoc3VpdGUsIHsKKyAgICAg
ICAgY3JlYXRlQnJlYWtwb2ludCgpIHsKKyAgICAgICAgICAgIHJldHVybiBJbnNwZWN0b3JUZXN0
LkV2ZW50QnJlYWtwb2ludC5jcmVhdGVCcmVha3BvaW50KFdJLkV2ZW50QnJlYWtwb2ludC5UeXBl
LkludGVydmFsLCB7ZXZlbnROYW1lfSk7CisgICAgICAgIH0sCisgICAgICAgIHRyaWdnZXJCcmVh
a3BvaW50KCkgeworICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQoIlRlc3RQYWdlLSIgKyBldmVudE5hbWUpLAor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYHRyaWdnZXJfJHtl
dmVudE5hbWV9KClgKSwKKyAgICAgICAgICAgIF0pOworICAgICAgICB9LAorICAgIH0pOwogCiAg
ICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2V2ZW50LWxpc3RlbmVyLWJyZWFrcG9pbnRzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvZXZlbnQtbGlz
dGVuZXItYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0CmluZGV4IGE5ZWY4ZmY4YWRmYy4uOWQzYTc0
YmRmZjM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2V2
ZW50LWxpc3RlbmVyLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2V2ZW50LWxpc3RlbmVyLWJyZWFrcG9pbnRzLWV4cGVjdGVk
LnR4dApAQCAtMTQ1LDcgKzE0NSw2IEBAIFBBU1M6IFNob3VsZCBwYXVzZS4KIAogVHJpZ2dlcmlu
ZyBicmVha3BvaW50Li4uCiBQQVNTOiBTaG91bGQgcGF1c2UuCi0tLSBSdW5uaW5nIHRlc3QgdGVh
cmRvd24uCiAKIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBET01EZWJ1Z2dlci5FdmVudC5MaXN0ZW5l
ci5PcHRpb25zLklnbm9yZUNvdW50CiBDcmVhdGluZyAiY2xpY2siIEV2ZW50IEJyZWFrcG9pbnQu
Li4KQEAgLTE2NCw3ICsxNjMsNiBAQCBQQVNTOiBTaG91bGQgcGF1c2UuCiAKIFRyaWdnZXJpbmcg
YnJlYWtwb2ludC4uLgogUEFTUzogU2hvdWxkIHBhdXNlLgotLS0gUnVubmluZyB0ZXN0IHRlYXJk
b3duLgogCiAtLSBSdW5uaW5nIHRlc3QgY2FzZTogRE9NRGVidWdnZXIuRXZlbnQuTGlzdGVuZXIu
T3B0aW9ucy5BY3Rpb24uTG9nCiBDcmVhdGluZyAiY2xpY2siIEV2ZW50IEJyZWFrcG9pbnQuLi4K
QEAgLTE5NCw3ICsxOTIsNiBAQCBFZGl0aW5nIGxvZyBhY3Rpb24uLi4KIFRyaWdnZXJpbmcgYnJl
YWtwb2ludC4uLgogUEFTUzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCiBQQVNT
OiBTaG91bGQgbm90IHBhdXNlLgotLS0gUnVubmluZyB0ZXN0IHRlYXJkb3duLgogCiAtLSBSdW5u
aW5nIHRlc3QgY2FzZTogRE9NRGVidWdnZXIuRXZlbnQuTGlzdGVuZXIuT3B0aW9ucy5BY3Rpb25z
LkV2YWx1YXRlCiBDcmVhdGluZyAiY2xpY2siIEV2ZW50IEJyZWFrcG9pbnQuLi4KQEAgLTIyNCw1
ICsyMjEsNCBAQCBFZGl0aW5nIGV2YWx1YXRlIGFjdGlvbi4uLgogVHJpZ2dlcmluZyBicmVha3Bv
aW50Li4uCiBQQVNTOiBTaG91bGQgZXhlY3V0ZSBicmVha3BvaW50IGFjdGlvbi4KIFBBU1M6IFNo
b3VsZCBub3QgcGF1c2UuCi0tLSBSdW5uaW5nIHRlc3QgdGVhcmRvd24uCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvZXZlbnQtbGlzdGVuZXItYnJlYWtw
b2ludHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvZXZlbnQtbGlz
dGVuZXItYnJlYWtwb2ludHMuaHRtbAppbmRleCA2NzQ2MTZhODU4OGQuLmNhMGUzM2YxYTdlZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9ldmVudC1saXN0
ZW5lci1icmVha3BvaW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVi
dWdnZXIvZXZlbnQtbGlzdGVuZXItYnJlYWtwb2ludHMuaHRtbApAQCAtMiw2ICsyLDcgQEAKIDxo
dG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVz
b3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9kZWJ1
Z2dlci9yZXNvdXJjZXMvYnJlYWtwb2ludC1vcHRpb25zLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iLi4vZGVidWdnZXIvcmVzb3VyY2VzL2xvZy1hY3RpdmUtc3RhY2stdHJh
Y2UuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9ldmVudC1icmVha3BvaW50
LXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgpAQCAtMjIxLDcgKzIyMiwxNyBAQCBm
dW5jdGlvbiB0ZXN0KCkgewogICAgICAgICB0ZWFyZG93bjogSW5zcGVjdG9yVGVzdC5FdmVudEJy
ZWFrcG9pbnQudGVhcmRvd24sCiAgICAgfSk7CiAKLSAgICBJbnNwZWN0b3JUZXN0LkV2ZW50QnJl
YWtwb2ludC5hZGRCcmVha3BvaW50T3B0aW9uc1Rlc3RDYXNlcyhzdWl0ZSwgV0kuRXZlbnRCcmVh
a3BvaW50LlR5cGUuTGlzdGVuZXIsICJjbGljayIpOworICAgIEluc3BlY3RvclRlc3QuQnJlYWtw
b2ludE9wdGlvbnMuYWRkVGVzdENhc2VzKHN1aXRlLCB7CisgICAgICAgIGNyZWF0ZUJyZWFrcG9p
bnQoKSB7CisgICAgICAgICAgICByZXR1cm4gSW5zcGVjdG9yVGVzdC5FdmVudEJyZWFrcG9pbnQu
Y3JlYXRlQnJlYWtwb2ludChXSS5FdmVudEJyZWFrcG9pbnQuVHlwZS5MaXN0ZW5lciwge2V2ZW50
TmFtZTogImNsaWNrIn0pOworICAgICAgICB9LAorICAgICAgICB0cmlnZ2VyQnJlYWtwb2ludCgp
IHsKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hd2FpdEV2ZW50KCJUZXN0UGFnZS1jbGljayIpLAorICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYHRyaWdnZXJfY2xpY2soKWApLAorICAgICAg
ICAgICAgXSk7CisgICAgICAgIH0sCisgICAgfSk7CiAKICAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNB
bmRGaW5pc2goKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVi
dWdnZXIvZXZlbnQtdGltZW91dC1icmVha3BvaW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2V2ZW50LXRpbWVvdXQtYnJlYWtwb2ludHMtZXhwZWN0
ZWQudHh0CmluZGV4IDlhNmJmOGFkMWIyYS4uM2Y5NTkzZjkyZDE3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL2V2ZW50LXRpbWVvdXQtYnJlYWtwb2ludHMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvZXZl
bnQtdGltZW91dC1icmVha3BvaW50cy1leHBlY3RlZC50eHQKQEAgLTYzLDcgKzYzLDYgQEAgUEFT
UzogU2hvdWxkIHBhdXNlLgogCiBUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KIFBBU1M6IFNob3Vs
ZCBwYXVzZS4KLS0tIFJ1bm5pbmcgdGVzdCB0ZWFyZG93bi4KIAogLS0gUnVubmluZyB0ZXN0IGNh
c2U6IERPTURlYnVnZ2VyLkV2ZW50LlRpbWVyLk9wdGlvbnMuSWdub3JlQ291bnQKIENyZWF0aW5n
ICJ0aW1lb3V0IiBFdmVudCBCcmVha3BvaW50Li4uCkBAIC04Miw3ICs4MSw2IEBAIFBBU1M6IFNo
b3VsZCBwYXVzZS4KIAogVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCiBQQVNTOiBTaG91bGQgcGF1
c2UuCi0tLSBSdW5uaW5nIHRlc3QgdGVhcmRvd24uCiAKIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBE
T01EZWJ1Z2dlci5FdmVudC5UaW1lci5PcHRpb25zLkFjdGlvbi5Mb2cKIENyZWF0aW5nICJ0aW1l
b3V0IiBFdmVudCBCcmVha3BvaW50Li4uCkBAIC0xMTIsNyArMTEwLDYgQEAgRWRpdGluZyBsb2cg
YWN0aW9uLi4uCiBUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KIFBBU1M6IFNob3VsZCBleGVjdXRl
IGJyZWFrcG9pbnQgYWN0aW9uLgogUEFTUzogU2hvdWxkIG5vdCBwYXVzZS4KLS0tIFJ1bm5pbmcg
dGVzdCB0ZWFyZG93bi4KIAogLS0gUnVubmluZyB0ZXN0IGNhc2U6IERPTURlYnVnZ2VyLkV2ZW50
LlRpbWVyLk9wdGlvbnMuQWN0aW9ucy5FdmFsdWF0ZQogQ3JlYXRpbmcgInRpbWVvdXQiIEV2ZW50
IEJyZWFrcG9pbnQuLi4KQEAgLTE0Miw1ICsxMzksNCBAQCBFZGl0aW5nIGV2YWx1YXRlIGFjdGlv
bi4uLgogVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCiBQQVNTOiBTaG91bGQgZXhlY3V0ZSBicmVh
a3BvaW50IGFjdGlvbi4KIFBBU1M6IFNob3VsZCBub3QgcGF1c2UuCi0tLSBSdW5uaW5nIHRlc3Qg
dGVhcmRvd24uCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdn
ZXIvZXZlbnQtdGltZW91dC1icmVha3BvaW50cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RvbS1kZWJ1Z2dlci9ldmVudC10aW1lb3V0LWJyZWFrcG9pbnRzLmh0bWwKaW5kZXggNmEzNDlh
NGI3NzIzLi41OWY4M2Q3YzMwMGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
b20tZGVidWdnZXIvZXZlbnQtdGltZW91dC1icmVha3BvaW50cy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvZXZlbnQtdGltZW91dC1icmVha3BvaW50cy5odG1s
CkBAIC0yLDYgKzIsNyBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL2RlYnVnZ2VyL3Jlc291cmNlcy9icmVha3BvaW50LW9wdGlvbnMtdXRp
bGl0aWVzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi9kZWJ1Z2dlci9yZXNvdXJjZXMv
bG9nLWFjdGl2ZS1zdGFjay10cmFjZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2V2ZW50LWJyZWFrcG9pbnQtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CkBA
IC05NSw3ICs5NiwxNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICB0ZWFyZG93bjogSW5z
cGVjdG9yVGVzdC5FdmVudEJyZWFrcG9pbnQudGVhcmRvd24sCiAgICAgfSk7CiAKLSAgICBJbnNw
ZWN0b3JUZXN0LkV2ZW50QnJlYWtwb2ludC5hZGRCcmVha3BvaW50T3B0aW9uc1Rlc3RDYXNlcyhz
dWl0ZSwgV0kuRXZlbnRCcmVha3BvaW50LlR5cGUuVGltZW91dCwgZXZlbnROYW1lKTsKKyAgICBJ
bnNwZWN0b3JUZXN0LkJyZWFrcG9pbnRPcHRpb25zLmFkZFRlc3RDYXNlcyhzdWl0ZSwgeworICAg
ICAgICBjcmVhdGVCcmVha3BvaW50KCkgeworICAgICAgICAgICAgcmV0dXJuIEluc3BlY3RvclRl
c3QuRXZlbnRCcmVha3BvaW50LmNyZWF0ZUJyZWFrcG9pbnQoV0kuRXZlbnRCcmVha3BvaW50LlR5
cGUuVGltZW91dCwge2V2ZW50TmFtZX0pOworICAgICAgICB9LAorICAgICAgICB0cmlnZ2VyQnJl
YWtwb2ludCgpIHsKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbCisgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KCJUZXN0UGFnZS0iICsgZXZlbnROYW1lKSwK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB0cmlnZ2VyXyR7
ZXZlbnROYW1lfSgpYCksCisgICAgICAgICAgICBdKTsKKyAgICAgICAgfSwKKyAgICB9KTsKIAog
ICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9yZXNvdXJjZXMvZXZlbnQtYnJlYWtwb2ludC11
dGlsaXRpZXMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL3Jlc291cmNl
cy9ldmVudC1icmVha3BvaW50LXV0aWxpdGllcy5qcwppbmRleCBkN2QyOTM2NDMzYWEuLjk4NWM4
MTRkYTJhZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9y
ZXNvdXJjZXMvZXZlbnQtYnJlYWtwb2ludC11dGlsaXRpZXMuanMKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9yZXNvdXJjZXMvZXZlbnQtYnJlYWtwb2ludC11dGlsaXRp
ZXMuanMKQEAgLTEsMTkzICsxLDYgQEAKIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkg
PT4gewogICAgIEluc3BlY3RvclRlc3QuRXZlbnRCcmVha3BvaW50ID0ge307CiAKLSAgICBJbnNw
ZWN0b3JUZXN0LkV2ZW50QnJlYWtwb2ludC5hZGRCcmVha3BvaW50T3B0aW9uc1Rlc3RDYXNlcyA9
IGZ1bmN0aW9uKHN1aXRlLCB0eXBlLCBldmVudE5hbWUpIHsKLSAgICAgICAgYXN5bmMgZnVuY3Rp
b24gdHJpZ2dlckJyZWFrcG9pbnQoKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
VHJpZ2dlcmluZyBicmVha3BvaW50Li4uIik7Ci0gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5h
bGwoWwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXdhaXRFdmVudCgiVGVzdFBhZ2Ut
IiArIGV2ZW50TmFtZSksCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUlu
UGFnZShgdHJpZ2dlcl8ke2V2ZW50TmFtZX0oKWApLAotICAgICAgICAgICAgXSk7Ci0gICAgICAg
IH0KLQotICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgICAgICBuYW1lOiBzdWl0
ZS5uYW1lICsgIi5PcHRpb25zLkNvbmRpdGlvbiIsCi0gICAgICAgICAgICBkZXNjcmlwdGlvbjog
IkNoZWNrIHRoYXQgdGhlIGRlYnVnZ2VyIHdpbGwgbm90IHBhdXNlIHVubGVzcyB0aGUgYnJlYWtw
b2ludCBoYXMgYSB0cnV0aHkgYnJlYWtwb2ludCBjb25kaXRpb24uIiwKLSAgICAgICAgICAgIGFz
eW5jIHRlc3QoKSB7Ci0gICAgICAgICAgICAgICAgbGV0IHBhdXNlQ291bnQgPSAwOwotCi0gICAg
ICAgICAgICAgICAgbGV0IGxpc3RlbmVyID0gV0kuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlz
dGVuZXIoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNlZCwgKGV2ZW50KSA9PiB7Ci0gICAg
ICAgICAgICAgICAgICAgICsrcGF1c2VDb3VudDsKLSAgICAgICAgICAgICAgICAgICAgV0kuZGVi
dWdnZXJNYW5hZ2VyLnJlc3VtZSgpOwotICAgICAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAg
ICAgICAgbGV0IGJyZWFrcG9pbnQgPSBhd2FpdCBJbnNwZWN0b3JUZXN0LkV2ZW50QnJlYWtwb2lu
dC5jcmVhdGVCcmVha3BvaW50KHR5cGUsIHtldmVudE5hbWV9KTsKLQotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QubmV3bGluZSgpOwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIlNldHRpbmcgY29uZGl0aW9uIHRvICdmYWxzZScuLi4iKTsKLSAgICAgICAgICAgICAg
ICBicmVha3BvaW50LmNvbmRpdGlvbiA9ICJmYWxzZSI7Ci0KLSAgICAgICAgICAgICAgICBmb3Ig
KGxldCBpID0gMTsgaSA8PSA0OyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT09
IDMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubmV3bGluZSgpOwot
Ci0gICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiU2V0dGluZyBjb25k
aXRpb24gdG8gJ3RydWUnLi4uIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50
LmNvbmRpdGlvbiA9ICJ0cnVlIjsKLSAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QubmV3bGluZSgpOwotCi0gICAgICAgICAgICAgICAgICAg
IGF3YWl0IHRyaWdnZXJCcmVha3BvaW50KCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgaWYgKGkg
PD0gMikKLSAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwo
cGF1c2VDb3VudCwgMCwgIlNob3VsZCBub3QgcGF1c2UuIik7Ci0gICAgICAgICAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwo
cGF1c2VDb3VudCwgaSAtIDIsICJTaG91bGQgcGF1c2UuIik7Ci0gICAgICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIo
V0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNlZCwgbGlzdGVuZXIpOwotICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgIHRlYXJkb3duOiBJbnNwZWN0b3JUZXN0LkV2ZW50QnJlYWtwb2ludC50
ZWFyZG93biwKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoewotICAg
ICAgICAgICAgbmFtZTogc3VpdGUubmFtZSArICIuT3B0aW9ucy5JZ25vcmVDb3VudCIsCi0gICAg
ICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgdGhlIGRlYnVnZ2VyIHdpbGwgbm90IHBh
dXNlIHVubGVzcyB0aGUgYnJlYWtwb2ludCBpcyBoaXQgYXQgbGVhc3QgYXMgbWFueSB0aW1lcyBh
cyBpdCdzIGBpZ25vcmVDb3VudGAuIiwKLSAgICAgICAgICAgIGFzeW5jIHRlc3QoKSB7Ci0gICAg
ICAgICAgICAgICAgbGV0IHBhdXNlQ291bnQgPSAwOwotCi0gICAgICAgICAgICAgICAgbGV0IGxp
c3RlbmVyID0gV0kuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuRGVidWdnZXJN
YW5hZ2VyLkV2ZW50LlBhdXNlZCwgKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICsr
cGF1c2VDb3VudDsKLSAgICAgICAgICAgICAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLnJlc3Vt
ZSgpOwotICAgICAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICAgICAgbGV0IGJyZWFrcG9p
bnQgPSBhd2FpdCBJbnNwZWN0b3JUZXN0LkV2ZW50QnJlYWtwb2ludC5jcmVhdGVCcmVha3BvaW50
KHR5cGUsIHtldmVudE5hbWV9KTsKLQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubmV3
bGluZSgpOwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlNldHRpbmcgaWdu
b3JlQ291bnQgdG8gJzInLi4uIik7Ci0gICAgICAgICAgICAgICAgYnJlYWtwb2ludC5pZ25vcmVD
b3VudCA9IDI7Ci0KLSAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PTQ7ICsraSkg
ewotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lm5ld2xpbmUoKTsKLQotICAgICAg
ICAgICAgICAgICAgICBhd2FpdCB0cmlnZ2VyQnJlYWtwb2ludCgpOwotCi0gICAgICAgICAgICAg
ICAgICAgIGlmIChpIDw9IDIpCi0gICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdEVxdWFsKHBhdXNlQ291bnQsIDAsICJTaG91bGQgbm90IHBhdXNlLiIpOwotICAgICAg
ICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdEVxdWFsKHBhdXNlQ291bnQsIGkgLSAyLCAiU2hvdWxkIHBhdXNlLiIpOwotICAgICAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5yZW1vdmVF
dmVudExpc3RlbmVyKFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5QYXVzZWQsIGxpc3RlbmVyKTsK
LSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB0ZWFyZG93bjogSW5zcGVjdG9yVGVzdC5FdmVu
dEJyZWFrcG9pbnQudGVhcmRvd24sCi0gICAgICAgIH0pOwotCi0gICAgICAgIHN1aXRlLmFkZFRl
c3RDYXNlKHsKLSAgICAgICAgICAgIG5hbWU6IHN1aXRlLm5hbWUgKyAiLk9wdGlvbnMuQWN0aW9u
LkxvZyIsCi0gICAgICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgbG9nIGJyZWFrcG9p
bnQgYWN0aW9ucyBleGVjdXRlIHdoZW4gdGhlIGJyZWFrcG9pbnQgaXMgaGl0LiIsCi0gICAgICAg
ICAgICBhc3luYyB0ZXN0KCkgewotICAgICAgICAgICAgICAgIGxldCBwYXVzZUNvdW50ID0gMDsK
LQotICAgICAgICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLmRlYnVnZ2VyTWFuYWdlci5hZGRF
dmVudExpc3RlbmVyKFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5QYXVzZWQsIChldmVudCkgPT4g
ewotICAgICAgICAgICAgICAgICAgICArK3BhdXNlQ291bnQ7Ci0gICAgICAgICAgICAgICAgICAg
IFdJLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKLSAgICAgICAgICAgICAgICB9KTsKLQotICAg
ICAgICAgICAgICAgIGxldCBicmVha3BvaW50ID0gYXdhaXQgSW5zcGVjdG9yVGVzdC5FdmVudEJy
ZWFrcG9pbnQuY3JlYXRlQnJlYWtwb2ludCh0eXBlLCB7ZXZlbnROYW1lfSk7Ci0KLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0Lm5ld2xpbmUoKTsKLQotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJBZGRpbmcgbG9nIGFjdGlvbi4uLiIpOwotICAgICAgICAgICAgICAgIGxl
dCBhY3Rpb24gPSBuZXcgV0kuQnJlYWtwb2ludEFjdGlvbihXSS5CcmVha3BvaW50QWN0aW9uLlR5
cGUuTG9nLCB7ZGF0YTogIkJSRUFLUE9JTlQgQUNUSU9OIExPRyAxIn0pOwotICAgICAgICAgICAg
ICAgIGJyZWFrcG9pbnQuYWRkQWN0aW9uKGFjdGlvbik7Ci0KLSAgICAgICAgICAgICAgICBmb3Ig
KGxldCBpID0gMTsgaSA8PSA0OyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGkgPiAx
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lm5ld2xpbmUoKTsKLQot
ICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVkaXRpbmcgbG9nIGFj
dGlvbi4uLiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uLmRhdGEgPSBgQlJFQUtQ
T0lOVCBBQ1RJT04gTE9HICR7aX1gOwotCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSA9
PT0gMykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJF
bmFibGluZyBhdXRvLWNvbnRpbnVlLi4uIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWtwb2ludC5hdXRvQ29udGludWUgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5uZXdsaW5lKCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgbGV0IFttZXNzYWdlQWRkZWRF
dmVudF0gPSBhd2FpdCBQcm9taXNlLmFsbChbCi0gICAgICAgICAgICAgICAgICAgICAgICBXSS5j
b25zb2xlTWFuYWdlci5hd2FpdEV2ZW50KFdJLkNvbnNvbGVNYW5hZ2VyLkV2ZW50Lk1lc3NhZ2VB
ZGRlZCksCi0gICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyQnJlYWtwb2ludCgpLAotICAg
ICAgICAgICAgICAgICAgICBdKTsKLQotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdEVxdWFsKG1lc3NhZ2VBZGRlZEV2ZW50LmRhdGEubWVzc2FnZS5tZXNzYWdlVGV4dCwg
YWN0aW9uLmRhdGEsICJTaG91bGQgZXhlY3V0ZSBicmVha3BvaW50IGFjdGlvbi4iKTsKLQotICAg
ICAgICAgICAgICAgICAgICBpZiAoaSA8PSAyKQotICAgICAgICAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RFcXVhbChwYXVzZUNvdW50LCBpLCAiU2hvdWxkIHBhdXNlLiIpOwot
ICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGVjdEVxdWFsKHBhdXNlQ291bnQsIDIsICJTaG91bGQgbm90IHBhdXNlLiIpOwot
ICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5y
ZW1vdmVFdmVudExpc3RlbmVyKFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5QYXVzZWQsIGxpc3Rl
bmVyKTsKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB0ZWFyZG93bjogSW5zcGVjdG9yVGVz
dC5FdmVudEJyZWFrcG9pbnQudGVhcmRvd24sCi0gICAgICAgIH0pOwotCi0gICAgICAgIHN1aXRl
LmFkZFRlc3RDYXNlKHsKLSAgICAgICAgICAgIG5hbWU6IHN1aXRlLm5hbWUgKyAiLk9wdGlvbnMu
QWN0aW9ucy5FdmFsdWF0ZSIsCi0gICAgICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQg
ZXZhbHVhdGUgYnJlYWtwb2ludCBhY3Rpb25zIGV4ZWN1dGUgd2hlbiB0aGUgYnJlYWtwb2ludCBp
cyBoaXQuIiwKLSAgICAgICAgICAgIGFzeW5jIHRlc3QoKSB7Ci0gICAgICAgICAgICAgICAgbGV0
IHBhdXNlQ291bnQgPSAwOwotCi0gICAgICAgICAgICAgICAgbGV0IGxpc3RlbmVyID0gV0kuZGVi
dWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBh
dXNlZCwgKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICsrcGF1c2VDb3VudDsKLSAg
ICAgICAgICAgICAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgpOwotICAgICAgICAg
ICAgICAgIH0pOwotCi0gICAgICAgICAgICAgICAgbGV0IGJyZWFrcG9pbnQgPSBhd2FpdCBJbnNw
ZWN0b3JUZXN0LkV2ZW50QnJlYWtwb2ludC5jcmVhdGVCcmVha3BvaW50KHR5cGUsIHtldmVudE5h
bWV9KTsKLQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubmV3bGluZSgpOwotCi0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkFkZGluZyBldmFsdWF0ZSBhY3Rpb24uLi4i
KTsKLSAgICAgICAgICAgICAgICBsZXQgYWN0aW9uID0gbmV3IFdJLkJyZWFrcG9pbnRBY3Rpb24o
V0kuQnJlYWtwb2ludEFjdGlvbi5UeXBlLkV2YWx1YXRlLCB7ZGF0YTogIndpbmRvdy5CUkVBS1BP
SU5UX0FDVElPTl9FVkFMVUFURSA9IDE7In0pOwotICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQu
YWRkQWN0aW9uKGFjdGlvbik7Ci0KLSAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8
PSA0OyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGkgPiAxKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lm5ld2xpbmUoKTsKLQotICAgICAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVkaXRpbmcgZXZhbHVhdGUgYWN0aW9uLi4uIik7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24uZGF0YSA9IGB3aW5kb3cuQlJFQUtQT0lO
VF9BQ1RJT05fRVZBTFVBVEUgPSAke2l9O2A7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChpID09PSAzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkVuYWJsaW5nIGF1dG8tY29udGludWUuLi4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBicmVha3BvaW50LmF1dG9Db250aW51ZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0Lm5ld2xpbmUoKTsKLQotICAgICAgICAgICAgICAgICAgICBhd2FpdCB0cmlnZ2Vy
QnJlYWtwb2ludCgpOwotCi0gICAgICAgICAgICAgICAgICAgIGxldCBicmVha3BvaW50QWN0aW9u
RXZhbHVhdGVSZXN1bHQgPSBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5k
b3cuQlJFQUtQT0lOVF9BQ1RJT05fRVZBTFVBVEVgKTsKLSAgICAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RFcXVhbChicmVha3BvaW50QWN0aW9uRXZhbHVhdGVSZXN1bHQsIGks
ICJTaG91bGQgZXhlY3V0ZSBicmVha3BvaW50IGFjdGlvbi4iKTsKLQotICAgICAgICAgICAgICAg
ICAgICBpZiAoaSA8PSAyKQotICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RFcXVhbChwYXVzZUNvdW50LCBpLCAiU2hvdWxkIHBhdXNlLiIpOwotICAgICAgICAgICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dEVxdWFsKHBhdXNlQ291bnQsIDIsICJTaG91bGQgbm90IHBhdXNlLiIpOwotICAgICAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5yZW1vdmVFdmVudExp
c3RlbmVyKFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5QYXVzZWQsIGxpc3RlbmVyKTsKLSAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgICB0ZWFyZG93bjogSW5zcGVjdG9yVGVzdC5FdmVudEJyZWFr
cG9pbnQudGVhcmRvd24sCi0gICAgICAgIH0pOwotICAgIH07Ci0KICAgICBJbnNwZWN0b3JUZXN0
LkV2ZW50QnJlYWtwb2ludC50ZWFyZG93biA9IGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewog
ICAgICAgICBXSS5kb21EZWJ1Z2dlck1hbmFnZXIuYWxsQW5pbWF0aW9uRnJhbWVzQnJlYWtwb2lu
dD8ucmVtb3ZlKCk7CiAgICAgICAgIFdJLmRvbURlYnVnZ2VyTWFuYWdlci5hbGxJbnRlcnZhbHNC
cmVha3BvaW50Py5yZW1vdmUoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
b20tZGVidWdnZXIvcmVzb3VyY2VzL3VybC1icmVha3BvaW50LXV0aWxpdGllcy5qcyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvcmVzb3VyY2VzL3VybC1icmVha3BvaW50LXV0
aWxpdGllcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmM4YTJl
ZmU4OGEwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVi
dWdnZXIvcmVzb3VyY2VzL3VybC1icmVha3BvaW50LXV0aWxpdGllcy5qcwpAQCAtMCwwICsxLDQx
IEBACitUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsKKyAgICBJbnNwZWN0b3JU
ZXN0LlVSTEJyZWFrcG9pbnQgPSB7fTsKKworICAgIEluc3BlY3RvclRlc3QuVVJMQnJlYWtwb2lu
dC50ZWFyZG93biA9IGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICBXSS5kb21E
ZWJ1Z2dlck1hbmFnZXIuYWxsUmVxdWVzdHNCcmVha3BvaW50Py5yZW1vdmUoKTsKKworICAgICAg
ICBmb3IgKGxldCBicmVha3BvaW50IG9mIFdJLmRvbURlYnVnZ2VyTWFuYWdlci51cmxCcmVha3Bv
aW50cykKKyAgICAgICAgICAgIGJyZWFrcG9pbnQucmVtb3ZlKCk7CisKKyAgICAgICAgcmVzb2x2
ZSgpOworICAgIH07CisKKyAgICBJbnNwZWN0b3JUZXN0LlVSTEJyZWFrcG9pbnQuY3JlYXRlQnJl
YWtwb2ludCA9IGZ1bmN0aW9uKHR5cGUsIHVybCkgeworICAgICAgICByZXR1cm4gSW5zcGVjdG9y
VGVzdC5VUkxCcmVha3BvaW50LmFkZEJyZWFrcG9pbnQobmV3IFdJLlVSTEJyZWFrcG9pbnQodHlw
ZSwgdXJsKSk7CisgICAgfTsKKworICAgIEluc3BlY3RvclRlc3QuVVJMQnJlYWtwb2ludC5hZGRC
cmVha3BvaW50ID0gZnVuY3Rpb24oYnJlYWtwb2ludCkgeworICAgICAgICBpZiAoYnJlYWtwb2lu
dC51cmwpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhgQWRkaW5nICIke2JyZWFrcG9p
bnQudHlwZSArIChicmVha3BvaW50LnVybCA/ICI6IiArIGJyZWFrcG9pbnQudXJsIDogIiIpfSIg
VVJMIEJyZWFrcG9pbnQuLi5gKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coYEFkZGluZyBBbGwgUmVxdWVzdHMgVVJMIEJyZWFrcG9pbnQuLi5gKTsKKworICAg
ICAgICBicmVha3BvaW50LmRpc2FibGVkID0gZmFsc2U7CisgICAgICAgIHJldHVybiBuZXcgUHJv
bWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICBXSS5kb21EZWJ1Z2dlck1h
bmFnZXIuYXdhaXRFdmVudChXSS5ET01EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuVVJMQnJlYWtwb2lu
dEFkZGVkKQorICAgICAgICAgICAgLnRoZW4oKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnQoZXZlbnQuZGF0YS5icmVha3BvaW50ID09PSBicmVha3BvaW50
LCAiQWRkZWQgQnJlYWtwb2ludCBzaG91bGQgYmUgZXhwZWN0ZWQgb2JqZWN0LiIpOworICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFldmVudC5kYXRhLmJyZWFrcG9pbnQuZGlz
YWJsZWQsICJCcmVha3BvaW50IHNob3VsZCBub3QgYmUgZGlzYWJsZWQgaW5pdGlhbGx5LiIpOwor
ICAgICAgICAgICAgICAgIHJlc29sdmUoYnJlYWtwb2ludCk7CisgICAgICAgICAgICB9KTsKKwor
ICAgICAgICAgICAgV0kuZG9tRGVidWdnZXJNYW5hZ2VyLmFkZFVSTEJyZWFrcG9pbnQoYnJlYWtw
b2ludCk7CisgICAgICAgIH0pOworICAgIH07CisKKyAgICBJbnNwZWN0b3JUZXN0LlVSTEJyZWFr
cG9pbnQucmVxdWVzdCA9IGZ1bmN0aW9uKGFwaSkgeworICAgICAgICBsZXQgdXJsID0gYHJlc291
cmNlcy9kYXRhJHthcGl9Lmpzb25gOworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhgUmVxdWVz
dCAke2FwaX0gIiR7dXJsfSIuLi5gKTsKKyAgICAgICAgcmV0dXJuIEluc3BlY3RvclRlc3QuZXZh
bHVhdGVJblBhZ2UoYGxvYWRSZXNvdXJjZSR7YXBpfSgiJHt1cmx9IilgKTsKKyAgICB9OworfSk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL3VybC1icmVh
a3BvaW50cy1hbGwtcmVxdWVzdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RvbS1kZWJ1Z2dlci91cmwtYnJlYWtwb2ludHMtYWxsLXJlcXVlc3RzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjAyNGI1NzFlYzljNQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvdXJsLWJy
ZWFrcG9pbnRzLWFsbC1yZXF1ZXN0cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNTAgQEAKK0NP
TlNPTEUgTUVTU0FHRTogQlJFQUtQT0lOVCBBQ1RJT04gTE9HIDEKK0NPTlNPTEUgTUVTU0FHRTog
QlJFQUtQT0lOVCBBQ1RJT04gTE9HIDIKK0NPTlNPTEUgTUVTU0FHRTogQlJFQUtQT0lOVCBBQ1RJ
T04gTE9HIDMKK0NPTlNPTEUgTUVTU0FHRTogQlJFQUtQT0lOVCBBQ1RJT04gTE9HIDQKK0NPTlNP
TEUgTUVTU0FHRTogQlJFQUtQT0lOVCBBQ1RJT04gTE9HIDEKK0NPTlNPTEUgTUVTU0FHRTogQlJF
QUtQT0lOVCBBQ1RJT04gTE9HIDIKK0NPTlNPTEUgTUVTU0FHRTogQlJFQUtQT0lOVCBBQ1RJT04g
TE9HIDMKK0NPTlNPTEUgTUVTU0FHRTogQlJFQUtQT0lOVCBBQ1RJT04gTE9HIDQKK1Rlc3RzIGZv
ciBBbGwgUmVxdWVzdHMgVVJMIGJyZWFrcG9pbnQuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRl
OiBVUkxCcmVha3BvaW50LkJyZWFrT25BbGwKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBVUkxCcmVh
a3BvaW50LkJyZWFrT25BbGwuRmV0Y2gKK0FkZGluZyBBbGwgUmVxdWVzdHMgVVJMIEJyZWFrcG9p
bnQuLi4KK1JlcXVlc3QgRmV0Y2ggInJlc291cmNlcy9kYXRhRmV0Y2guanNvbiIuLi4KK1BBVVNF
RDoKK1BBU1M6IFBhdXNlIHJlYXNvbiBzaG91bGQgYmUgRmV0Y2guCitQQVNTOiBQYXVzZSBkYXRh
IFVSTCBzaG91bGQgYmUgZW1wdHkuCitDQUxMIFNUQUNLOgorMDogW0ZdIGxvYWRSZXNvdXJjZUZl
dGNoCisxOiBbUF0gR2xvYmFsIENvZGUKKy0tIFJ1bm5pbmcgdGVzdCB0ZWFyZG93bi4KKworLS0g
UnVubmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuQnJlYWtPbkFsbC5GZXRjaC5PcHRpb25z
LkNvbmRpdGlvbgorQWRkaW5nIEFsbCBSZXF1ZXN0cyBVUkwgQnJlYWtwb2ludC4uLgorCitTZXR0
aW5nIGNvbmRpdGlvbiB0byAnZmFsc2UnLi4uCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgor
UmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5qc29uIi4uLgorUEFTUzogU2hvdWxk
IG5vdCBwYXVzZS4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IEZldGNoICJy
ZXNvdXJjZXMvZGF0YUZldGNoLmpzb24iLi4uCitQQVNTOiBTaG91bGQgbm90IHBhdXNlLgorCitT
ZXR0aW5nIGNvbmRpdGlvbiB0byAndHJ1ZScuLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4u
CitSZXF1ZXN0IEZldGNoICJyZXNvdXJjZXMvZGF0YUZldGNoLmpzb24iLi4uCitQQVNTOiBTaG91
bGQgcGF1c2UuCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBGZXRjaCAicmVz
b3VyY2VzL2RhdGFGZXRjaC5qc29uIi4uLgorUEFTUzogU2hvdWxkIHBhdXNlLgorCistLSBSdW5u
aW5nIHRlc3QgY2FzZTogVVJMQnJlYWtwb2ludC5CcmVha09uQWxsLkZldGNoLk9wdGlvbnMuSWdu
b3JlQ291bnQKK0FkZGluZyBBbGwgUmVxdWVzdHMgVVJMIEJyZWFrcG9pbnQuLi4KKworU2V0dGlu
ZyBpZ25vcmVDb3VudCB0byAnMicuLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1
ZXN0IEZldGNoICJyZXNvdXJjZXMvZGF0YUZldGNoLmpzb24iLi4uCitQQVNTOiBTaG91bGQgbm90
IHBhdXNlLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgRmV0Y2ggInJlc291
cmNlcy9kYXRhRmV0Y2guanNvbiIuLi4KK1BBU1M6IFNob3VsZCBub3QgcGF1c2UuCisKK1RyaWdn
ZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5q
c29uIi4uLgorUEFTUzogU2hvdWxkIHBhdXNlLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4K
K1JlcXVlc3QgRmV0Y2ggInJlc291cmNlcy9kYXRhRmV0Y2guanNvbiIuLi4KK1BBU1M6IFNob3Vs
ZCBwYXVzZS4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuQnJlYWtPbkFs
bC5GZXRjaC5PcHRpb25zLkFjdGlvbi5Mb2cKK0FkZGluZyBBbGwgUmVxdWVzdHMgVVJMIEJyZWFr
cG9pbnQuLi4KKworQWRkaW5nIGxvZyBhY3Rpb24uLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50
Li4uCitSZXF1ZXN0IEZldGNoICJyZXNvdXJjZXMvZGF0YUZldGNoLmpzb24iLi4uCitQQVNTOiBT
aG91bGQgZXhlY3V0ZSBicmVha3BvaW50IGFjdGlvbi4KK1BBU1M6IFNob3VsZCBwYXVzZS4KKwor
RWRpdGluZyBsb2cgYWN0aW9uLi4uCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVz
dCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5qc29uIi4uLgorUEFTUzogU2hvdWxkIGV4ZWN1
dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQgcGF1c2UuCisKK0VkaXRpbmcgbG9n
IGFjdGlvbi4uLgorRW5hYmxpbmcgYXV0by1jb250aW51ZS4uLgorCitUcmlnZ2VyaW5nIGJyZWFr
cG9pbnQuLi4KK1JlcXVlc3QgRmV0Y2ggInJlc291cmNlcy9kYXRhRmV0Y2guanNvbiIuLi4KK1BB
U1M6IFNob3VsZCBleGVjdXRlIGJyZWFrcG9pbnQgYWN0aW9uLgorUEFTUzogU2hvdWxkIG5vdCBw
YXVzZS4KKworRWRpdGluZyBsb2cgYWN0aW9uLi4uCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4u
LgorUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5qc29uIi4uLgorUEFTUzogU2hv
dWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQgbm90IHBhdXNlLgor
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogVVJMQnJlYWtwb2ludC5CcmVha09uQWxsLkZldGNoLk9w
dGlvbnMuQWN0aW9ucy5FdmFsdWF0ZQorQWRkaW5nIEFsbCBSZXF1ZXN0cyBVUkwgQnJlYWtwb2lu
dC4uLgorCitBZGRpbmcgZXZhbHVhdGUgYWN0aW9uLi4uCisKK1RyaWdnZXJpbmcgYnJlYWtwb2lu
dC4uLgorUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5qc29uIi4uLgorUEFTUzog
U2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQgcGF1c2UuCisK
K0VkaXRpbmcgZXZhbHVhdGUgYWN0aW9uLi4uCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgor
UmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5qc29uIi4uLgorUEFTUzogU2hvdWxk
IGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQgcGF1c2UuCisKK0VkaXRp
bmcgZXZhbHVhdGUgYWN0aW9uLi4uCitFbmFibGluZyBhdXRvLWNvbnRpbnVlLi4uCisKK1RyaWdn
ZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5q
c29uIi4uLgorUEFTUzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBT
aG91bGQgbm90IHBhdXNlLgorCitFZGl0aW5nIGV2YWx1YXRlIGFjdGlvbi4uLgorCitUcmlnZ2Vy
aW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgRmV0Y2ggInJlc291cmNlcy9kYXRhRmV0Y2guanNv
biIuLi4KK1BBU1M6IFNob3VsZCBleGVjdXRlIGJyZWFrcG9pbnQgYWN0aW9uLgorUEFTUzogU2hv
dWxkIG5vdCBwYXVzZS4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuQnJl
YWtPbkFsbC5YSFIKK0FkZGluZyBBbGwgUmVxdWVzdHMgVVJMIEJyZWFrcG9pbnQuLi4KK1JlcXVl
c3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgorUEFVU0VEOgorUEFTUzogUGF1c2Ug
cmVhc29uIHNob3VsZCBiZSBYSFIuCitQQVNTOiBQYXVzZSBkYXRhIFVSTCBzaG91bGQgYmUgZW1w
dHkuCitDQUxMIFNUQUNLOgorMDogW0ZdIGxvYWRSZXNvdXJjZVhIUgorMTogW1BdIEdsb2JhbCBD
b2RlCistLSBSdW5uaW5nIHRlc3QgdGVhcmRvd24uCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBV
UkxCcmVha3BvaW50LkJyZWFrT25BbGwuWEhSLk9wdGlvbnMuQ29uZGl0aW9uCitBZGRpbmcgQWxs
IFJlcXVlc3RzIFVSTCBCcmVha3BvaW50Li4uCisKK1NldHRpbmcgY29uZGl0aW9uIHRvICdmYWxz
ZScuLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IFhIUiAicmVzb3VyY2Vz
L2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6IFNob3VsZCBub3QgcGF1c2UuCisKK1RyaWdnZXJpbmcg
YnJlYWtwb2ludC4uLgorUmVxdWVzdCBYSFIgInJlc291cmNlcy9kYXRhWEhSLmpzb24iLi4uCitQ
QVNTOiBTaG91bGQgbm90IHBhdXNlLgorCitTZXR0aW5nIGNvbmRpdGlvbiB0byAndHJ1ZScuLi4K
KworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IFhIUiAicmVzb3VyY2VzL2RhdGFY
SFIuanNvbiIuLi4KK1BBU1M6IFNob3VsZCBwYXVzZS4KKworVHJpZ2dlcmluZyBicmVha3BvaW50
Li4uCitSZXF1ZXN0IFhIUiAicmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6IFNob3Vs
ZCBwYXVzZS4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuQnJlYWtPbkFs
bC5YSFIuT3B0aW9ucy5JZ25vcmVDb3VudAorQWRkaW5nIEFsbCBSZXF1ZXN0cyBVUkwgQnJlYWtw
b2ludC4uLgorCitTZXR0aW5nIGlnbm9yZUNvdW50IHRvICcyJy4uLgorCitUcmlnZ2VyaW5nIGJy
ZWFrcG9pbnQuLi4KK1JlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgorUEFT
UzogU2hvdWxkIG5vdCBwYXVzZS4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0
IFhIUiAicmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6IFNob3VsZCBub3QgcGF1c2Uu
CisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBYSFIgInJlc291cmNlcy9kYXRh
WEhSLmpzb24iLi4uCitQQVNTOiBTaG91bGQgcGF1c2UuCisKK1RyaWdnZXJpbmcgYnJlYWtwb2lu
dC4uLgorUmVxdWVzdCBYSFIgInJlc291cmNlcy9kYXRhWEhSLmpzb24iLi4uCitQQVNTOiBTaG91
bGQgcGF1c2UuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBVUkxCcmVha3BvaW50LkJyZWFrT25B
bGwuWEhSLk9wdGlvbnMuQWN0aW9uLkxvZworQWRkaW5nIEFsbCBSZXF1ZXN0cyBVUkwgQnJlYWtw
b2ludC4uLgorCitBZGRpbmcgbG9nIGFjdGlvbi4uLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQu
Li4KK1JlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgorUEFTUzogU2hvdWxk
IGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQgcGF1c2UuCisKK0VkaXRp
bmcgbG9nIGFjdGlvbi4uLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgWEhS
ICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgorUEFTUzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtw
b2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQgcGF1c2UuCisKK0VkaXRpbmcgbG9nIGFjdGlvbi4u
LgorRW5hYmxpbmcgYXV0by1jb250aW51ZS4uLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4K
K1JlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgorUEFTUzogU2hvdWxkIGV4
ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQgbm90IHBhdXNlLgorCitFZGl0
aW5nIGxvZyBhY3Rpb24uLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IFhI
UiAicmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6IFNob3VsZCBleGVjdXRlIGJyZWFr
cG9pbnQgYWN0aW9uLgorUEFTUzogU2hvdWxkIG5vdCBwYXVzZS4KKworLS0gUnVubmluZyB0ZXN0
IGNhc2U6IFVSTEJyZWFrcG9pbnQuQnJlYWtPbkFsbC5YSFIuT3B0aW9ucy5BY3Rpb25zLkV2YWx1
YXRlCitBZGRpbmcgQWxsIFJlcXVlc3RzIFVSTCBCcmVha3BvaW50Li4uCisKK0FkZGluZyBldmFs
dWF0ZSBhY3Rpb24uLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IFhIUiAi
cmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6IFNob3VsZCBleGVjdXRlIGJyZWFrcG9p
bnQgYWN0aW9uLgorUEFTUzogU2hvdWxkIHBhdXNlLgorCitFZGl0aW5nIGV2YWx1YXRlIGFjdGlv
bi4uLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgWEhSICJyZXNvdXJjZXMv
ZGF0YVhIUi5qc29uIi4uLgorUEFTUzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24u
CitQQVNTOiBTaG91bGQgcGF1c2UuCisKK0VkaXRpbmcgZXZhbHVhdGUgYWN0aW9uLi4uCitFbmFi
bGluZyBhdXRvLWNvbnRpbnVlLi4uCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVz
dCBYSFIgInJlc291cmNlcy9kYXRhWEhSLmpzb24iLi4uCitQQVNTOiBTaG91bGQgZXhlY3V0ZSBi
cmVha3BvaW50IGFjdGlvbi4KK1BBU1M6IFNob3VsZCBub3QgcGF1c2UuCisKK0VkaXRpbmcgZXZh
bHVhdGUgYWN0aW9uLi4uCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBYSFIg
InJlc291cmNlcy9kYXRhWEhSLmpzb24iLi4uCitQQVNTOiBTaG91bGQgZXhlY3V0ZSBicmVha3Bv
aW50IGFjdGlvbi4KK1BBU1M6IFNob3VsZCBub3QgcGF1c2UuCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvdXJsLWJyZWFrcG9pbnRzLWFsbC1yZXF1ZXN0
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci91cmwtYnJlYWtwb2lu
dHMtYWxsLXJlcXVlc3RzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwLi43YmMwYTA1ZjliMDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZG9tLWRlYnVnZ2VyL3VybC1icmVha3BvaW50cy1hbGwtcmVxdWVzdHMuaHRtbApAQCAtMCww
ICsxLDU3IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9kZWJ1Z2dlci9yZXNvdXJjZXMvYnJlYWtwb2ludC1v
cHRpb25zLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZGVidWdnZXIv
cmVzb3VyY2VzL2xvZy1hY3RpdmUtc3RhY2stdHJhY2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL3dvcmtlci9yZXNvdXJjZXMvcmVzb3VyY2UtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXJsLWJyZWFrcG9pbnQtdXRpbGl0aWVzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBjb25zdCB0eXBlID0gV0ku
VVJMQnJlYWtwb2ludC5UeXBlLlRleHQ7CisgICAgY29uc3QgdXJsID0gIiI7CisKKyAgICBsZXQg
c3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlVSTEJyZWFrcG9pbnQuQnJl
YWtPbkFsbCIpOworCisgICAgZm9yIChsZXQgYXBpIG9mIFsiRmV0Y2giLCAiWEhSIl0pIHsKKyAg
ICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFtZTogIlVSTEJyZWFrcG9p
bnQuQnJlYWtPbkFsbC4iICsgYXBpLAorICAgICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0
aGF0IGRlYnVnZ2VyIHBhdXNlcyBmb3IgYWxsIHJlcXVlc3RzLiIsCisgICAgICAgICAgICBhc3lu
YyB0ZXN0KCkgeworICAgICAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuVVJMQnJlYWtw
b2ludC5jcmVhdGVCcmVha3BvaW50KHR5cGUsIHVybCk7CisKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LlVSTEJyZWFrcG9pbnQucmVxdWVzdChhcGkpOworICAgICAgICAgICAgICAgIGF3
YWl0IFdJLmRlYnVnZ2VyTWFuYWdlci5hd2FpdEV2ZW50KFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVu
dC5QYXVzZWQpOworCisgICAgICAgICAgICAgICAgbGV0IHRhcmdldERhdGEgPSBXSS5kZWJ1Z2dl
ck1hbmFnZXIuZGF0YUZvclRhcmdldChXSS5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1l
LnRhcmdldCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBVVNFRDoiKTsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHRhcmdldERhdGEucGF1
c2VSZWFzb24sIFdJLkRlYnVnZ2VyTWFuYWdlci5QYXVzZVJlYXNvblthcGldLCBgUGF1c2UgcmVh
c29uIHNob3VsZCBiZSAke2FwaX0uYCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RGYWxzZSh0YXJnZXREYXRhLnBhdXNlRGF0YS5icmVha3BvaW50VVJMLCAiUGF1c2UgZGF0
YSBVUkwgc2hvdWxkIGJlIGVtcHR5LiIpOworCisgICAgICAgICAgICAgICAgbG9nQWN0aXZlU3Rh
Y2tUcmFjZSgpOworCisgICAgICAgICAgICAgICAgYXdhaXQgV0kuZGVidWdnZXJNYW5hZ2VyLnJl
c3VtZSgpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHRlYXJkb3duOiBJbnNwZWN0b3JU
ZXN0LlVSTEJyZWFrcG9pbnQudGVhcmRvd24sCisgICAgICAgIH0pOworCisgICAgICAgIEluc3Bl
Y3RvclRlc3QuQnJlYWtwb2ludE9wdGlvbnMuYWRkVGVzdENhc2VzKHN1aXRlLCB7CisgICAgICAg
ICAgICB0ZXN0Q2FzZU5hbWVQcmVmaXg6IGFwaSArICIuIiwKKyAgICAgICAgICAgIGNyZWF0ZUJy
ZWFrcG9pbnQoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIEluc3BlY3RvclRlc3QuVVJMQnJl
YWtwb2ludC5jcmVhdGVCcmVha3BvaW50KHR5cGUsIHVybCk7CisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgdHJpZ2dlckJyZWFrcG9pbnQoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIElu
c3BlY3RvclRlc3QuVVJMQnJlYWtwb2ludC5yZXF1ZXN0KGFwaSk7CisgICAgICAgICAgICB9LAor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsK
K30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVz
dHMgZm9yIEFsbCBSZXF1ZXN0cyBVUkwgYnJlYWtwb2ludC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL3VybC1icmVh
a3BvaW50cy1jb250YWluaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
b20tZGVidWdnZXIvdXJsLWJyZWFrcG9pbnRzLWNvbnRhaW5pbmctZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYTY1YmYzZjYxZWQ3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci91cmwtYnJlYWtw
b2ludHMtY29udGFpbmluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNTAgQEAKK0NPTlNPTEUg
TUVTU0FHRTogQlJFQUtQT0lOVCBBQ1RJT04gTE9HIDEKK0NPTlNPTEUgTUVTU0FHRTogQlJFQUtQ
T0lOVCBBQ1RJT04gTE9HIDIKK0NPTlNPTEUgTUVTU0FHRTogQlJFQUtQT0lOVCBBQ1RJT04gTE9H
IDMKK0NPTlNPTEUgTUVTU0FHRTogQlJFQUtQT0lOVCBBQ1RJT04gTE9HIDQKK0NPTlNPTEUgTUVT
U0FHRTogQlJFQUtQT0lOVCBBQ1RJT04gTE9HIDEKK0NPTlNPTEUgTUVTU0FHRTogQlJFQUtQT0lO
VCBBQ1RJT04gTE9HIDIKK0NPTlNPTEUgTUVTU0FHRTogQlJFQUtQT0lOVCBBQ1RJT04gTE9HIDMK
K0NPTlNPTEUgTUVTU0FHRTogQlJFQUtQT0lOVCBBQ1RJT04gTE9HIDQKK1Rlc3RzIGZvciB0ZXh0
IFVSTCBicmVha3BvaW50cy4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFVSTEJyZWFrcG9p
bnQuQnJlYWtPbkNvbnRhaW5pbmdUZXh0CistLSBSdW5uaW5nIHRlc3QgY2FzZTogVVJMQnJlYWtw
b2ludC5CcmVha09uQ29udGFpbmluZ1RleHQuRmV0Y2gKK0FkZGluZyAidGV4dDpkYXRhIiBVUkwg
QnJlYWtwb2ludC4uLgorUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5qc29uIi4u
LgorUEFVU0VEOgorUEFTUzogUGF1c2UgcmVhc29uIHNob3VsZCBiZSBGZXRjaC4KK1BBU1M6IFBh
dXNlIGRhdGEgVVJMIHNob3VsZCBtYXRjaCBicmVha3BvaW50IFVSTC4KK0NBTEwgU1RBQ0s6Cisw
OiBbRl0gbG9hZFJlc291cmNlRmV0Y2gKKzE6IFtQXSBHbG9iYWwgQ29kZQorLS0gUnVubmluZyB0
ZXN0IHRlYXJkb3duLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogVVJMQnJlYWtwb2ludC5CcmVh
a09uQ29udGFpbmluZ1RleHQuRmV0Y2guT3B0aW9ucy5Db25kaXRpb24KK0FkZGluZyAidGV4dDpk
YXRhIiBVUkwgQnJlYWtwb2ludC4uLgorCitTZXR0aW5nIGNvbmRpdGlvbiB0byAnZmFsc2UnLi4u
CisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2Rh
dGFGZXRjaC5qc29uIi4uLgorUEFTUzogU2hvdWxkIG5vdCBwYXVzZS4KKworVHJpZ2dlcmluZyBi
cmVha3BvaW50Li4uCitSZXF1ZXN0IEZldGNoICJyZXNvdXJjZXMvZGF0YUZldGNoLmpzb24iLi4u
CitQQVNTOiBTaG91bGQgbm90IHBhdXNlLgorCitTZXR0aW5nIGNvbmRpdGlvbiB0byAndHJ1ZScu
Li4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IEZldGNoICJyZXNvdXJjZXMv
ZGF0YUZldGNoLmpzb24iLi4uCitQQVNTOiBTaG91bGQgcGF1c2UuCisKK1RyaWdnZXJpbmcgYnJl
YWtwb2ludC4uLgorUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5qc29uIi4uLgor
UEFTUzogU2hvdWxkIHBhdXNlLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogVVJMQnJlYWtwb2lu
dC5CcmVha09uQ29udGFpbmluZ1RleHQuRmV0Y2guT3B0aW9ucy5JZ25vcmVDb3VudAorQWRkaW5n
ICJ0ZXh0OmRhdGEiIFVSTCBCcmVha3BvaW50Li4uCisKK1NldHRpbmcgaWdub3JlQ291bnQgdG8g
JzInLi4uCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBGZXRjaCAicmVzb3Vy
Y2VzL2RhdGFGZXRjaC5qc29uIi4uLgorUEFTUzogU2hvdWxkIG5vdCBwYXVzZS4KKworVHJpZ2dl
cmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IEZldGNoICJyZXNvdXJjZXMvZGF0YUZldGNoLmpz
b24iLi4uCitQQVNTOiBTaG91bGQgbm90IHBhdXNlLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQu
Li4KK1JlcXVlc3QgRmV0Y2ggInJlc291cmNlcy9kYXRhRmV0Y2guanNvbiIuLi4KK1BBU1M6IFNo
b3VsZCBwYXVzZS4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IEZldGNoICJy
ZXNvdXJjZXMvZGF0YUZldGNoLmpzb24iLi4uCitQQVNTOiBTaG91bGQgcGF1c2UuCisKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBVUkxCcmVha3BvaW50LkJyZWFrT25Db250YWluaW5nVGV4dC5GZXRj
aC5PcHRpb25zLkFjdGlvbi5Mb2cKK0FkZGluZyAidGV4dDpkYXRhIiBVUkwgQnJlYWtwb2ludC4u
LgorCitBZGRpbmcgbG9nIGFjdGlvbi4uLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1Jl
cXVlc3QgRmV0Y2ggInJlc291cmNlcy9kYXRhRmV0Y2guanNvbiIuLi4KK1BBU1M6IFNob3VsZCBl
eGVjdXRlIGJyZWFrcG9pbnQgYWN0aW9uLgorUEFTUzogU2hvdWxkIHBhdXNlLgorCitFZGl0aW5n
IGxvZyBhY3Rpb24uLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IEZldGNo
ICJyZXNvdXJjZXMvZGF0YUZldGNoLmpzb24iLi4uCitQQVNTOiBTaG91bGQgZXhlY3V0ZSBicmVh
a3BvaW50IGFjdGlvbi4KK1BBU1M6IFNob3VsZCBwYXVzZS4KKworRWRpdGluZyBsb2cgYWN0aW9u
Li4uCitFbmFibGluZyBhdXRvLWNvbnRpbnVlLi4uCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4u
LgorUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5qc29uIi4uLgorUEFTUzogU2hv
dWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQgbm90IHBhdXNlLgor
CitFZGl0aW5nIGxvZyBhY3Rpb24uLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1
ZXN0IEZldGNoICJyZXNvdXJjZXMvZGF0YUZldGNoLmpzb24iLi4uCitQQVNTOiBTaG91bGQgZXhl
Y3V0ZSBicmVha3BvaW50IGFjdGlvbi4KK1BBU1M6IFNob3VsZCBub3QgcGF1c2UuCisKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBVUkxCcmVha3BvaW50LkJyZWFrT25Db250YWluaW5nVGV4dC5GZXRj
aC5PcHRpb25zLkFjdGlvbnMuRXZhbHVhdGUKK0FkZGluZyAidGV4dDpkYXRhIiBVUkwgQnJlYWtw
b2ludC4uLgorCitBZGRpbmcgZXZhbHVhdGUgYWN0aW9uLi4uCisKK1RyaWdnZXJpbmcgYnJlYWtw
b2ludC4uLgorUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5qc29uIi4uLgorUEFT
UzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQgcGF1c2Uu
CisKK0VkaXRpbmcgZXZhbHVhdGUgYWN0aW9uLi4uCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4u
LgorUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5qc29uIi4uLgorUEFTUzogU2hv
dWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQgcGF1c2UuCisKK0Vk
aXRpbmcgZXZhbHVhdGUgYWN0aW9uLi4uCitFbmFibGluZyBhdXRvLWNvbnRpbnVlLi4uCisKK1Ry
aWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRj
aC5qc29uIi4uLgorUEFTUzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNT
OiBTaG91bGQgbm90IHBhdXNlLgorCitFZGl0aW5nIGV2YWx1YXRlIGFjdGlvbi4uLgorCitUcmln
Z2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgRmV0Y2ggInJlc291cmNlcy9kYXRhRmV0Y2gu
anNvbiIuLi4KK1BBU1M6IFNob3VsZCBleGVjdXRlIGJyZWFrcG9pbnQgYWN0aW9uLgorUEFTUzog
U2hvdWxkIG5vdCBwYXVzZS4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQu
QnJlYWtPbkNvbnRhaW5pbmdUZXh0LlhIUgorQWRkaW5nICJ0ZXh0OmRhdGEiIFVSTCBCcmVha3Bv
aW50Li4uCitSZXF1ZXN0IFhIUiAicmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KK1BBVVNFRDoK
K1BBU1M6IFBhdXNlIHJlYXNvbiBzaG91bGQgYmUgWEhSLgorUEFTUzogUGF1c2UgZGF0YSBVUkwg
c2hvdWxkIG1hdGNoIGJyZWFrcG9pbnQgVVJMLgorQ0FMTCBTVEFDSzoKKzA6IFtGXSBsb2FkUmVz
b3VyY2VYSFIKKzE6IFtQXSBHbG9iYWwgQ29kZQorLS0gUnVubmluZyB0ZXN0IHRlYXJkb3duLgor
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogVVJMQnJlYWtwb2ludC5CcmVha09uQ29udGFpbmluZ1Rl
eHQuWEhSLk9wdGlvbnMuQ29uZGl0aW9uCitBZGRpbmcgInRleHQ6ZGF0YSIgVVJMIEJyZWFrcG9p
bnQuLi4KKworU2V0dGluZyBjb25kaXRpb24gdG8gJ2ZhbHNlJy4uLgorCitUcmlnZ2VyaW5nIGJy
ZWFrcG9pbnQuLi4KK1JlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgorUEFT
UzogU2hvdWxkIG5vdCBwYXVzZS4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0
IFhIUiAicmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6IFNob3VsZCBub3QgcGF1c2Uu
CisKK1NldHRpbmcgY29uZGl0aW9uIHRvICd0cnVlJy4uLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9p
bnQuLi4KK1JlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgorUEFTUzogU2hv
dWxkIHBhdXNlLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgWEhSICJyZXNv
dXJjZXMvZGF0YVhIUi5qc29uIi4uLgorUEFTUzogU2hvdWxkIHBhdXNlLgorCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogVVJMQnJlYWtwb2ludC5CcmVha09uQ29udGFpbmluZ1RleHQuWEhSLk9wdGlv
bnMuSWdub3JlQ291bnQKK0FkZGluZyAidGV4dDpkYXRhIiBVUkwgQnJlYWtwb2ludC4uLgorCitT
ZXR0aW5nIGlnbm9yZUNvdW50IHRvICcyJy4uLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4K
K1JlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgorUEFTUzogU2hvdWxkIG5v
dCBwYXVzZS4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IFhIUiAicmVzb3Vy
Y2VzL2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6IFNob3VsZCBub3QgcGF1c2UuCisKK1RyaWdnZXJp
bmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBYSFIgInJlc291cmNlcy9kYXRhWEhSLmpzb24iLi4u
CitQQVNTOiBTaG91bGQgcGF1c2UuCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVz
dCBYSFIgInJlc291cmNlcy9kYXRhWEhSLmpzb24iLi4uCitQQVNTOiBTaG91bGQgcGF1c2UuCisK
Ky0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBVUkxCcmVha3BvaW50LkJyZWFrT25Db250YWluaW5nVGV4
dC5YSFIuT3B0aW9ucy5BY3Rpb24uTG9nCitBZGRpbmcgInRleHQ6ZGF0YSIgVVJMIEJyZWFrcG9p
bnQuLi4KKworQWRkaW5nIGxvZyBhY3Rpb24uLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4u
CitSZXF1ZXN0IFhIUiAicmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6IFNob3VsZCBl
eGVjdXRlIGJyZWFrcG9pbnQgYWN0aW9uLgorUEFTUzogU2hvdWxkIHBhdXNlLgorCitFZGl0aW5n
IGxvZyBhY3Rpb24uLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IFhIUiAi
cmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6IFNob3VsZCBleGVjdXRlIGJyZWFrcG9p
bnQgYWN0aW9uLgorUEFTUzogU2hvdWxkIHBhdXNlLgorCitFZGl0aW5nIGxvZyBhY3Rpb24uLi4K
K0VuYWJsaW5nIGF1dG8tY29udGludWUuLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitS
ZXF1ZXN0IFhIUiAicmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6IFNob3VsZCBleGVj
dXRlIGJyZWFrcG9pbnQgYWN0aW9uLgorUEFTUzogU2hvdWxkIG5vdCBwYXVzZS4KKworRWRpdGlu
ZyBsb2cgYWN0aW9uLi4uCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBYSFIg
InJlc291cmNlcy9kYXRhWEhSLmpzb24iLi4uCitQQVNTOiBTaG91bGQgZXhlY3V0ZSBicmVha3Bv
aW50IGFjdGlvbi4KK1BBU1M6IFNob3VsZCBub3QgcGF1c2UuCisKKy0tIFJ1bm5pbmcgdGVzdCBj
YXNlOiBVUkxCcmVha3BvaW50LkJyZWFrT25Db250YWluaW5nVGV4dC5YSFIuT3B0aW9ucy5BY3Rp
b25zLkV2YWx1YXRlCitBZGRpbmcgInRleHQ6ZGF0YSIgVVJMIEJyZWFrcG9pbnQuLi4KKworQWRk
aW5nIGV2YWx1YXRlIGFjdGlvbi4uLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVl
c3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgorUEFTUzogU2hvdWxkIGV4ZWN1dGUg
YnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQgcGF1c2UuCisKK0VkaXRpbmcgZXZhbHVh
dGUgYWN0aW9uLi4uCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBYSFIgInJl
c291cmNlcy9kYXRhWEhSLmpzb24iLi4uCitQQVNTOiBTaG91bGQgZXhlY3V0ZSBicmVha3BvaW50
IGFjdGlvbi4KK1BBU1M6IFNob3VsZCBwYXVzZS4KKworRWRpdGluZyBldmFsdWF0ZSBhY3Rpb24u
Li4KK0VuYWJsaW5nIGF1dG8tY29udGludWUuLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4u
CitSZXF1ZXN0IFhIUiAicmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6IFNob3VsZCBl
eGVjdXRlIGJyZWFrcG9pbnQgYWN0aW9uLgorUEFTUzogU2hvdWxkIG5vdCBwYXVzZS4KKworRWRp
dGluZyBldmFsdWF0ZSBhY3Rpb24uLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1
ZXN0IFhIUiAicmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6IFNob3VsZCBleGVjdXRl
IGJyZWFrcG9pbnQgYWN0aW9uLgorUEFTUzogU2hvdWxkIG5vdCBwYXVzZS4KKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci91cmwtYnJlYWtwb2ludHMtY29u
dGFpbmluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci91cmwtYnJl
YWtwb2ludHMtY29udGFpbmluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMC4uYjBhZmM3NzZhNWVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RvbS1kZWJ1Z2dlci91cmwtYnJlYWtwb2ludHMtY29udGFpbmluZy5odG1sCkBAIC0w
LDAgKzEsNTcgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2RlYnVnZ2VyL3Jlc291cmNlcy9icmVha3BvaW50
LW9wdGlvbnMtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9kZWJ1Z2dl
ci9yZXNvdXJjZXMvbG9nLWFjdGl2ZS1zdGFjay10cmFjZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vd29ya2VyL3Jlc291cmNlcy9yZXNvdXJjZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy91cmwtYnJlYWtwb2ludC11dGlsaXRpZXMuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGNvbnN0IHR5cGUgPSBX
SS5VUkxCcmVha3BvaW50LlR5cGUuVGV4dDsKKyAgICBjb25zdCB1cmwgPSAiZGF0YSI7CisKKyAg
ICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlVSTEJyZWFrcG9p
bnQuQnJlYWtPbkNvbnRhaW5pbmdUZXh0Iik7CisKKyAgICBmb3IgKGxldCBhcGkgb2YgWyJGZXRj
aCIsICJYSFIiXSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBu
YW1lOiAiVVJMQnJlYWtwb2ludC5CcmVha09uQ29udGFpbmluZ1RleHQuIiArIGFwaSwKKyAgICAg
ICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBkZWJ1Z2dlciBwYXVzZXMgb24gYSBVUkwg
Y29udGFpbmluZyB0ZXh0LiIsCisgICAgICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAg
ICAgICAgIGxldCBicmVha3BvaW50ID0gYXdhaXQgSW5zcGVjdG9yVGVzdC5VUkxCcmVha3BvaW50
LmNyZWF0ZUJyZWFrcG9pbnQodHlwZSwgdXJsKTsKKworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuVVJMQnJlYWtwb2ludC5yZXF1ZXN0KGFwaSk7CisgICAgICAgICAgICAgICAgYXdhaXQg
V0kuZGVidWdnZXJNYW5hZ2VyLmF3YWl0RXZlbnQoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBh
dXNlZCk7CisKKyAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0RGF0YSA9IFdJLmRlYnVnZ2VyTWFu
YWdlci5kYXRhRm9yVGFyZ2V0KFdJLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxsRnJhbWUudGFy
Z2V0KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFVU0VEOiIpOworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwodGFyZ2V0RGF0YS5wYXVzZVJl
YXNvbiwgV0kuRGVidWdnZXJNYW5hZ2VyLlBhdXNlUmVhc29uW2FwaV0sIGBQYXVzZSByZWFzb24g
c2hvdWxkIGJlICR7YXBpfS5gKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dEVxdWFsKHRhcmdldERhdGEucGF1c2VEYXRhLmJyZWFrcG9pbnRVUkwsIGJyZWFrcG9pbnQudXJs
LCAiUGF1c2UgZGF0YSBVUkwgc2hvdWxkIG1hdGNoIGJyZWFrcG9pbnQgVVJMLiIpOworCisgICAg
ICAgICAgICAgICAgbG9nQWN0aXZlU3RhY2tUcmFjZSgpOworCisgICAgICAgICAgICAgICAgYXdh
aXQgV0kuZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgpOworICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgIHRlYXJkb3duOiBJbnNwZWN0b3JUZXN0LlVSTEJyZWFrcG9pbnQudGVhcmRvd24sCisgICAg
ICAgIH0pOworCisgICAgICAgIEluc3BlY3RvclRlc3QuQnJlYWtwb2ludE9wdGlvbnMuYWRkVGVz
dENhc2VzKHN1aXRlLCB7CisgICAgICAgICAgICB0ZXN0Q2FzZU5hbWVQcmVmaXg6IGFwaSArICIu
IiwKKyAgICAgICAgICAgIGNyZWF0ZUJyZWFrcG9pbnQoKSB7CisgICAgICAgICAgICAgICAgcmV0
dXJuIEluc3BlY3RvclRlc3QuVVJMQnJlYWtwb2ludC5jcmVhdGVCcmVha3BvaW50KHR5cGUsIHVy
bCk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgdHJpZ2dlckJyZWFrcG9pbnQoKSB7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIEluc3BlY3RvclRlc3QuVVJMQnJlYWtwb2ludC5yZXF1ZXN0
KGFwaSk7CisgICAgICAgICAgICB9LAorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBzdWl0ZS5y
dW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdHMgZm9yIHRleHQgVVJMIGJyZWFrcG9pbnRzLjwvcD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20t
ZGVidWdnZXIvdXJsLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kb20tZGVidWdnZXIvdXJsLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dAppbmRleCA1YThm
MTMzMjlkMGYuLmU4NjAyY2ViMGMxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RvbS1kZWJ1Z2dlci91cmwtYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvdXJsLWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dApA
QCAtMiwxMzYgKzIsNTggQEAgVGVzdHMgZm9yIFVSTCBicmVha3BvaW50cy4KIAogCiA9PSBSdW5u
aW5nIHRlc3Qgc3VpdGU6IFVSTEJyZWFrcG9pbnQKLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBVUkxC
cmVha3BvaW50LkJyZWFrT25BbGwuRmV0Y2gKLVNldCBwYXVzZSBvbiBhbGwgcmVxdWVzdHMuCi1S
ZXF1ZXN0IEZldGNoICJyZXNvdXJjZXMvZGF0YUZldGNoLmpzb24iLi4uCi1QQVVTRUQ6Ci1QQVNT
OiBQYXVzZSByZWFzb24gc2hvdWxkIGJlIEZldGNoLgotUEFTUzogUGF1c2UgZGF0YSBVUkwgc2hv
dWxkIGJlIGVtcHR5LgotQ0FMTCBTVEFDSzoKLTA6IFtGXSBsb2FkUmVzb3VyY2VGZXRjaAotMTog
W1BdIEdsb2JhbCBDb2RlCi0tLSBSdW5uaW5nIHRlc3QgdGVhcmRvd24uCi0KLS0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBVUkxCcmVha3BvaW50LkJyZWFrT25Db250YWluaW5nVGV4dC5GZXRjaAotUEFT
UzogQWRkZWQgYnJlYWtwb2ludCBmb3IgVVJMOiBkYXRhCi1QQVNTOiBCcmVha3BvaW50IHNob3Vs
ZCBub3QgYmUgZGlzYWJsZWQgaW5pdGlhbGx5LgotUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2Rh
dGFGZXRjaC5qc29uIi4uLgotUEFVU0VEOgotUEFTUzogUGF1c2UgcmVhc29uIHNob3VsZCBiZSBG
ZXRjaC4KLVBBU1M6IFBhdXNlIGRhdGEgVVJMIHNob3VsZCBtYXRjaCBicmVha3BvaW50IFVSTC4K
LUNBTEwgU1RBQ0s6Ci0wOiBbRl0gbG9hZFJlc291cmNlRmV0Y2gKLTE6IFtQXSBHbG9iYWwgQ29k
ZQotLS0gUnVubmluZyB0ZXN0IHRlYXJkb3duLgotCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogVVJM
QnJlYWtwb2ludC5CcmVha09uTWF0Y2hpbmdSZWd1bGFyRXhwcmVzc2lvbi5GZXRjaAotUEFTUzog
QWRkZWQgYnJlYWtwb2ludCBmb3IgVVJMOiBkYXRhW0EtWl0qLihqc29ufHR4dHxwbmcpCi1QQVNT
OiBCcmVha3BvaW50IHNob3VsZCBub3QgYmUgZGlzYWJsZWQgaW5pdGlhbGx5LgotUmVxdWVzdCBG
ZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5qc29uIi4uLgotUEFVU0VEOgotUEFTUzogUGF1c2Ug
cmVhc29uIHNob3VsZCBiZSBGZXRjaC4KLVBBU1M6IFBhdXNlIGRhdGEgVVJMIHNob3VsZCBtYXRj
aCBicmVha3BvaW50IFVSTC4KLUNBTEwgU1RBQ0s6Ci0wOiBbRl0gbG9hZFJlc291cmNlRmV0Y2gK
LTE6IFtQXSBHbG9iYWwgQ29kZQotLS0gUnVubmluZyB0ZXN0IHRlYXJkb3duLgotCiAtLSBSdW5u
aW5nIHRlc3QgY2FzZTogVVJMQnJlYWtwb2ludC5TaG91bGROb3RQYXVzZU9uRGlzYWJsZWRCcmVh
a3BvaW50LkZldGNoCi1QQVNTOiBBZGRlZCBicmVha3BvaW50IGZvciBVUkw6IGRhdGEKLVBBU1M6
IEJyZWFrcG9pbnQgc2hvdWxkIG5vdCBiZSBkaXNhYmxlZCBpbml0aWFsbHkuCi1CcmVha3BvaW50
IGRpc2FibGVkLgorQWRkaW5nICJ0ZXh0OmRhdGEiIFVSTCBCcmVha3BvaW50Li4uCitEaXNhYmxp
bmcgYnJlYWtwb2ludC4uLgogUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5qc29u
Ii4uLgogUEFTUzogU2hvdWxkIG5vdCBwYXVzZSBmb3IgZGlzYWJsZWQgYnJlYWtwb2ludC4KIC0t
IFJ1bm5pbmcgdGVzdCB0ZWFyZG93bi4KIAogLS0gUnVubmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFr
cG9pbnQuU2hvdWxkTm90UGF1c2VPbk5vdENvbnRhaW5pbmdVUkwuRmV0Y2gKLVBBU1M6IEFkZGVk
IGJyZWFrcG9pbnQgZm9yIFVSTDogbm9uZXhpc3RhbnQtdXJsCi1QQVNTOiBCcmVha3BvaW50IHNo
b3VsZCBub3QgYmUgZGlzYWJsZWQgaW5pdGlhbGx5LgorQWRkaW5nICJ0ZXh0Om5vbmV4aXN0YW50
LXVybCIgVVJMIEJyZWFrcG9pbnQuLi4KIFJlcXVlc3QgRmV0Y2ggInJlc291cmNlcy9kYXRhRmV0
Y2guanNvbiIuLi4KIFBBU1M6IFNob3VsZCBub3QgcGF1c2UgZm9yIGJyZWFrcG9pbnQgd2l0aCBk
aWZmZXJlbnQgVVJMLgogLS0gUnVubmluZyB0ZXN0IHRlYXJkb3duLgogCiAtLSBSdW5uaW5nIHRl
c3QgY2FzZTogVVJMQnJlYWtwb2ludC5SZW1vdmVCcmVha3BvaW50LkZldGNoCi1QQVNTOiBBZGRl
ZCBicmVha3BvaW50IGZvciBVUkw6IGRhdGEKLVBBU1M6IEJyZWFrcG9pbnQgc2hvdWxkIG5vdCBi
ZSBkaXNhYmxlZCBpbml0aWFsbHkuCi1CcmVha3BvaW50IHJlbW92ZWQuCitBZGRpbmcgInRleHQ6
ZGF0YSIgVVJMIEJyZWFrcG9pbnQuLi4KK1JlbW92aW5nIGJyZWFrcG9pbnQuLi4KIFJlcXVlc3Qg
RmV0Y2ggInJlc291cmNlcy9kYXRhRmV0Y2guanNvbiIuLi4KIFBBU1M6IFNob3VsZCBub3QgcGF1
c2UgZm9yIHJlbW92ZWQgYnJlYWtwb2ludC4KIC0tIFJ1bm5pbmcgdGVzdCB0ZWFyZG93bi4KIAog
LS0gUnVubmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuUmVtb3ZlRGlzYWJsZWRCcmVha3Bv
aW50LkZldGNoCi1QQVNTOiBBZGRlZCBicmVha3BvaW50IGZvciBVUkw6IGRhdGEKLVBBU1M6IEJy
ZWFrcG9pbnQgc2hvdWxkIG5vdCBiZSBkaXNhYmxlZCBpbml0aWFsbHkuCi1CcmVha3BvaW50IGRp
c2FibGVkLgotQnJlYWtwb2ludCByZW1vdmVkLgorQWRkaW5nICJ0ZXh0OmRhdGEiIFVSTCBCcmVh
a3BvaW50Li4uCitEaXNhYmxpbmcgYnJlYWtwb2ludC4uLgorUmVtb3ZpbmcgYnJlYWtwb2ludC4u
LgogUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5qc29uIi4uLgogUEFTUzogU2hv
dWxkIG5vdCBwYXVzZSBmb3IgcmVtb3ZlZCBkaXNhYmxlZCBicmVha3BvaW50LgogLS0gUnVubmlu
ZyB0ZXN0IHRlYXJkb3duLgogCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogVVJMQnJlYWtwb2ludC5C
cmVha09uQWxsLlhIUgotU2V0IHBhdXNlIG9uIGFsbCByZXF1ZXN0cy4KLVJlcXVlc3QgWEhSICJy
ZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgotUEFVU0VEOgotUEFTUzogUGF1c2UgcmVhc29uIHNo
b3VsZCBiZSBYSFIuCi1QQVNTOiBQYXVzZSBkYXRhIFVSTCBzaG91bGQgYmUgZW1wdHkuCi1DQUxM
IFNUQUNLOgotMDogW0ZdIGxvYWRSZXNvdXJjZVhIUgotMTogW1BdIEdsb2JhbCBDb2RlCi0tLSBS
dW5uaW5nIHRlc3QgdGVhcmRvd24uCi0KLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBVUkxCcmVha3Bv
aW50LkJyZWFrT25Db250YWluaW5nVGV4dC5YSFIKLVBBU1M6IEFkZGVkIGJyZWFrcG9pbnQgZm9y
IFVSTDogZGF0YQotUEFTUzogQnJlYWtwb2ludCBzaG91bGQgbm90IGJlIGRpc2FibGVkIGluaXRp
YWxseS4KLVJlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgotUEFVU0VEOgot
UEFTUzogUGF1c2UgcmVhc29uIHNob3VsZCBiZSBYSFIuCi1QQVNTOiBQYXVzZSBkYXRhIFVSTCBz
aG91bGQgbWF0Y2ggYnJlYWtwb2ludCBVUkwuCi1DQUxMIFNUQUNLOgotMDogW0ZdIGxvYWRSZXNv
dXJjZVhIUgotMTogW1BdIEdsb2JhbCBDb2RlCi0tLSBSdW5uaW5nIHRlc3QgdGVhcmRvd24uCi0K
LS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBVUkxCcmVha3BvaW50LkJyZWFrT25NYXRjaGluZ1JlZ3Vs
YXJFeHByZXNzaW9uLlhIUgotUEFTUzogQWRkZWQgYnJlYWtwb2ludCBmb3IgVVJMOiBkYXRhW0Et
Wl0qLihqc29ufHR4dHxwbmcpCi1QQVNTOiBCcmVha3BvaW50IHNob3VsZCBub3QgYmUgZGlzYWJs
ZWQgaW5pdGlhbGx5LgotUmVxdWVzdCBYSFIgInJlc291cmNlcy9kYXRhWEhSLmpzb24iLi4uCi1Q
QVVTRUQ6Ci1QQVNTOiBQYXVzZSByZWFzb24gc2hvdWxkIGJlIFhIUi4KLVBBU1M6IFBhdXNlIGRh
dGEgVVJMIHNob3VsZCBtYXRjaCBicmVha3BvaW50IFVSTC4KLUNBTEwgU1RBQ0s6Ci0wOiBbRl0g
bG9hZFJlc291cmNlWEhSCi0xOiBbUF0gR2xvYmFsIENvZGUKLS0tIFJ1bm5pbmcgdGVzdCB0ZWFy
ZG93bi4KLQogLS0gUnVubmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuU2hvdWxkTm90UGF1
c2VPbkRpc2FibGVkQnJlYWtwb2ludC5YSFIKLVBBU1M6IEFkZGVkIGJyZWFrcG9pbnQgZm9yIFVS
TDogZGF0YQotUEFTUzogQnJlYWtwb2ludCBzaG91bGQgbm90IGJlIGRpc2FibGVkIGluaXRpYWxs
eS4KLUJyZWFrcG9pbnQgZGlzYWJsZWQuCitBZGRpbmcgInRleHQ6ZGF0YSIgVVJMIEJyZWFrcG9p
bnQuLi4KK0Rpc2FibGluZyBicmVha3BvaW50Li4uCiBSZXF1ZXN0IFhIUiAicmVzb3VyY2VzL2Rh
dGFYSFIuanNvbiIuLi4KIFBBU1M6IFNob3VsZCBub3QgcGF1c2UgZm9yIGRpc2FibGVkIGJyZWFr
cG9pbnQuCiAtLSBSdW5uaW5nIHRlc3QgdGVhcmRvd24uCiAKIC0tIFJ1bm5pbmcgdGVzdCBjYXNl
OiBVUkxCcmVha3BvaW50LlNob3VsZE5vdFBhdXNlT25Ob3RDb250YWluaW5nVVJMLlhIUgotUEFT
UzogQWRkZWQgYnJlYWtwb2ludCBmb3IgVVJMOiBub25leGlzdGFudC11cmwKLVBBU1M6IEJyZWFr
cG9pbnQgc2hvdWxkIG5vdCBiZSBkaXNhYmxlZCBpbml0aWFsbHkuCitBZGRpbmcgInRleHQ6bm9u
ZXhpc3RhbnQtdXJsIiBVUkwgQnJlYWtwb2ludC4uLgogUmVxdWVzdCBYSFIgInJlc291cmNlcy9k
YXRhWEhSLmpzb24iLi4uCiBQQVNTOiBTaG91bGQgbm90IHBhdXNlIGZvciBicmVha3BvaW50IHdp
dGggZGlmZmVyZW50IFVSTC4KIC0tIFJ1bm5pbmcgdGVzdCB0ZWFyZG93bi4KIAogLS0gUnVubmlu
ZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuUmVtb3ZlQnJlYWtwb2ludC5YSFIKLVBBU1M6IEFk
ZGVkIGJyZWFrcG9pbnQgZm9yIFVSTDogZGF0YQotUEFTUzogQnJlYWtwb2ludCBzaG91bGQgbm90
IGJlIGRpc2FibGVkIGluaXRpYWxseS4KLUJyZWFrcG9pbnQgcmVtb3ZlZC4KK0FkZGluZyAidGV4
dDpkYXRhIiBVUkwgQnJlYWtwb2ludC4uLgorUmVtb3ZpbmcgYnJlYWtwb2ludC4uLgogUmVxdWVz
dCBYSFIgInJlc291cmNlcy9kYXRhWEhSLmpzb24iLi4uCiBQQVNTOiBTaG91bGQgbm90IHBhdXNl
IGZvciByZW1vdmVkIGJyZWFrcG9pbnQuCiAtLSBSdW5uaW5nIHRlc3QgdGVhcmRvd24uCiAKIC0t
IFJ1bm5pbmcgdGVzdCBjYXNlOiBVUkxCcmVha3BvaW50LlJlbW92ZURpc2FibGVkQnJlYWtwb2lu
dC5YSFIKLVBBU1M6IEFkZGVkIGJyZWFrcG9pbnQgZm9yIFVSTDogZGF0YQotUEFTUzogQnJlYWtw
b2ludCBzaG91bGQgbm90IGJlIGRpc2FibGVkIGluaXRpYWxseS4KLUJyZWFrcG9pbnQgZGlzYWJs
ZWQuCi1CcmVha3BvaW50IHJlbW92ZWQuCitBZGRpbmcgInRleHQ6ZGF0YSIgVVJMIEJyZWFrcG9p
bnQuLi4KK0Rpc2FibGluZyBicmVha3BvaW50Li4uCitSZW1vdmluZyBicmVha3BvaW50Li4uCiBS
ZXF1ZXN0IFhIUiAicmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KIFBBU1M6IFNob3VsZCBub3Qg
cGF1c2UgZm9yIHJlbW92ZWQgZGlzYWJsZWQgYnJlYWtwb2ludC4KIC0tIFJ1bm5pbmcgdGVzdCB0
ZWFyZG93bi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIv
dXJsLWJyZWFrcG9pbnRzLW1hdGNoaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kb20tZGVidWdnZXIvdXJsLWJyZWFrcG9pbnRzLW1hdGNoaW5nLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmM3ZTM3MjdlNWIzNAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20tZGVidWdnZXIvdXJsLWJy
ZWFrcG9pbnRzLW1hdGNoaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI1MCBAQAorQ09OU09M
RSBNRVNTQUdFOiBCUkVBS1BPSU5UIEFDVElPTiBMT0cgMQorQ09OU09MRSBNRVNTQUdFOiBCUkVB
S1BPSU5UIEFDVElPTiBMT0cgMgorQ09OU09MRSBNRVNTQUdFOiBCUkVBS1BPSU5UIEFDVElPTiBM
T0cgMworQ09OU09MRSBNRVNTQUdFOiBCUkVBS1BPSU5UIEFDVElPTiBMT0cgNAorQ09OU09MRSBN
RVNTQUdFOiBCUkVBS1BPSU5UIEFDVElPTiBMT0cgMQorQ09OU09MRSBNRVNTQUdFOiBCUkVBS1BP
SU5UIEFDVElPTiBMT0cgMgorQ09OU09MRSBNRVNTQUdFOiBCUkVBS1BPSU5UIEFDVElPTiBMT0cg
MworQ09OU09MRSBNRVNTQUdFOiBCUkVBS1BPSU5UIEFDVElPTiBMT0cgNAorVGVzdHMgZm9yIHJl
Z2V4IFVSTCBicmVha3BvaW50cy4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFVSTEJyZWFr
cG9pbnQuQnJlYWtPbk1hdGNoaW5nUmVndWxhckV4cHJlc3Npb24KKy0tIFJ1bm5pbmcgdGVzdCBj
YXNlOiBVUkxCcmVha3BvaW50LkJyZWFrT25NYXRjaGluZ1JlZ3VsYXJFeHByZXNzaW9uLkZldGNo
CitBZGRpbmcgInJlZ2V4OmRhdGFbQS1aXSouKGpzb258dHh0fHBuZykiIFVSTCBCcmVha3BvaW50
Li4uCitSZXF1ZXN0IEZldGNoICJyZXNvdXJjZXMvZGF0YUZldGNoLmpzb24iLi4uCitQQVVTRUQ6
CitQQVNTOiBQYXVzZSByZWFzb24gc2hvdWxkIGJlIEZldGNoLgorUEFTUzogUGF1c2UgZGF0YSBV
Ukwgc2hvdWxkIG1hdGNoIGJyZWFrcG9pbnQgVVJMLgorQ0FMTCBTVEFDSzoKKzA6IFtGXSBsb2Fk
UmVzb3VyY2VGZXRjaAorMTogW1BdIEdsb2JhbCBDb2RlCistLSBSdW5uaW5nIHRlc3QgdGVhcmRv
d24uCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBVUkxCcmVha3BvaW50LkJyZWFrT25NYXRjaGlu
Z1JlZ3VsYXJFeHByZXNzaW9uLkZldGNoLk9wdGlvbnMuQ29uZGl0aW9uCitBZGRpbmcgInJlZ2V4
OmRhdGFbQS1aXSouKGpzb258dHh0fHBuZykiIFVSTCBCcmVha3BvaW50Li4uCisKK1NldHRpbmcg
Y29uZGl0aW9uIHRvICdmYWxzZScuLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1
ZXN0IEZldGNoICJyZXNvdXJjZXMvZGF0YUZldGNoLmpzb24iLi4uCitQQVNTOiBTaG91bGQgbm90
IHBhdXNlLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgRmV0Y2ggInJlc291
cmNlcy9kYXRhRmV0Y2guanNvbiIuLi4KK1BBU1M6IFNob3VsZCBub3QgcGF1c2UuCisKK1NldHRp
bmcgY29uZGl0aW9uIHRvICd0cnVlJy4uLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1Jl
cXVlc3QgRmV0Y2ggInJlc291cmNlcy9kYXRhRmV0Y2guanNvbiIuLi4KK1BBU1M6IFNob3VsZCBw
YXVzZS4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IEZldGNoICJyZXNvdXJj
ZXMvZGF0YUZldGNoLmpzb24iLi4uCitQQVNTOiBTaG91bGQgcGF1c2UuCisKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBVUkxCcmVha3BvaW50LkJyZWFrT25NYXRjaGluZ1JlZ3VsYXJFeHByZXNzaW9u
LkZldGNoLk9wdGlvbnMuSWdub3JlQ291bnQKK0FkZGluZyAicmVnZXg6ZGF0YVtBLVpdKi4oanNv
bnx0eHR8cG5nKSIgVVJMIEJyZWFrcG9pbnQuLi4KKworU2V0dGluZyBpZ25vcmVDb3VudCB0byAn
MicuLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IEZldGNoICJyZXNvdXJj
ZXMvZGF0YUZldGNoLmpzb24iLi4uCitQQVNTOiBTaG91bGQgbm90IHBhdXNlLgorCitUcmlnZ2Vy
aW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgRmV0Y2ggInJlc291cmNlcy9kYXRhRmV0Y2guanNv
biIuLi4KK1BBU1M6IFNob3VsZCBub3QgcGF1c2UuCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4u
LgorUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2RhdGFGZXRjaC5qc29uIi4uLgorUEFTUzogU2hv
dWxkIHBhdXNlLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgRmV0Y2ggInJl
c291cmNlcy9kYXRhRmV0Y2guanNvbiIuLi4KK1BBU1M6IFNob3VsZCBwYXVzZS4KKworLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuQnJlYWtPbk1hdGNoaW5nUmVndWxhckV4cHJl
c3Npb24uRmV0Y2guT3B0aW9ucy5BY3Rpb24uTG9nCitBZGRpbmcgInJlZ2V4OmRhdGFbQS1aXSou
KGpzb258dHh0fHBuZykiIFVSTCBCcmVha3BvaW50Li4uCisKK0FkZGluZyBsb2cgYWN0aW9uLi4u
CisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2Rh
dGFGZXRjaC5qc29uIi4uLgorUEFTUzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24u
CitQQVNTOiBTaG91bGQgcGF1c2UuCisKK0VkaXRpbmcgbG9nIGFjdGlvbi4uLgorCitUcmlnZ2Vy
aW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgRmV0Y2ggInJlc291cmNlcy9kYXRhRmV0Y2guanNv
biIuLi4KK1BBU1M6IFNob3VsZCBleGVjdXRlIGJyZWFrcG9pbnQgYWN0aW9uLgorUEFTUzogU2hv
dWxkIHBhdXNlLgorCitFZGl0aW5nIGxvZyBhY3Rpb24uLi4KK0VuYWJsaW5nIGF1dG8tY29udGlu
dWUuLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IEZldGNoICJyZXNvdXJj
ZXMvZGF0YUZldGNoLmpzb24iLi4uCitQQVNTOiBTaG91bGQgZXhlY3V0ZSBicmVha3BvaW50IGFj
dGlvbi4KK1BBU1M6IFNob3VsZCBub3QgcGF1c2UuCisKK0VkaXRpbmcgbG9nIGFjdGlvbi4uLgor
CitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgRmV0Y2ggInJlc291cmNlcy9kYXRh
RmV0Y2guanNvbiIuLi4KK1BBU1M6IFNob3VsZCBleGVjdXRlIGJyZWFrcG9pbnQgYWN0aW9uLgor
UEFTUzogU2hvdWxkIG5vdCBwYXVzZS4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFr
cG9pbnQuQnJlYWtPbk1hdGNoaW5nUmVndWxhckV4cHJlc3Npb24uRmV0Y2guT3B0aW9ucy5BY3Rp
b25zLkV2YWx1YXRlCitBZGRpbmcgInJlZ2V4OmRhdGFbQS1aXSouKGpzb258dHh0fHBuZykiIFVS
TCBCcmVha3BvaW50Li4uCisKK0FkZGluZyBldmFsdWF0ZSBhY3Rpb24uLi4KKworVHJpZ2dlcmlu
ZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IEZldGNoICJyZXNvdXJjZXMvZGF0YUZldGNoLmpzb24i
Li4uCitQQVNTOiBTaG91bGQgZXhlY3V0ZSBicmVha3BvaW50IGFjdGlvbi4KK1BBU1M6IFNob3Vs
ZCBwYXVzZS4KKworRWRpdGluZyBldmFsdWF0ZSBhY3Rpb24uLi4KKworVHJpZ2dlcmluZyBicmVh
a3BvaW50Li4uCitSZXF1ZXN0IEZldGNoICJyZXNvdXJjZXMvZGF0YUZldGNoLmpzb24iLi4uCitQ
QVNTOiBTaG91bGQgZXhlY3V0ZSBicmVha3BvaW50IGFjdGlvbi4KK1BBU1M6IFNob3VsZCBwYXVz
ZS4KKworRWRpdGluZyBldmFsdWF0ZSBhY3Rpb24uLi4KK0VuYWJsaW5nIGF1dG8tY29udGludWUu
Li4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IEZldGNoICJyZXNvdXJjZXMv
ZGF0YUZldGNoLmpzb24iLi4uCitQQVNTOiBTaG91bGQgZXhlY3V0ZSBicmVha3BvaW50IGFjdGlv
bi4KK1BBU1M6IFNob3VsZCBub3QgcGF1c2UuCisKK0VkaXRpbmcgZXZhbHVhdGUgYWN0aW9uLi4u
CisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBGZXRjaCAicmVzb3VyY2VzL2Rh
dGFGZXRjaC5qc29uIi4uLgorUEFTUzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24u
CitQQVNTOiBTaG91bGQgbm90IHBhdXNlLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogVVJMQnJl
YWtwb2ludC5CcmVha09uTWF0Y2hpbmdSZWd1bGFyRXhwcmVzc2lvbi5YSFIKK0FkZGluZyAicmVn
ZXg6ZGF0YVtBLVpdKi4oanNvbnx0eHR8cG5nKSIgVVJMIEJyZWFrcG9pbnQuLi4KK1JlcXVlc3Qg
WEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgorUEFVU0VEOgorUEFTUzogUGF1c2UgcmVh
c29uIHNob3VsZCBiZSBYSFIuCitQQVNTOiBQYXVzZSBkYXRhIFVSTCBzaG91bGQgbWF0Y2ggYnJl
YWtwb2ludCBVUkwuCitDQUxMIFNUQUNLOgorMDogW0ZdIGxvYWRSZXNvdXJjZVhIUgorMTogW1Bd
IEdsb2JhbCBDb2RlCistLSBSdW5uaW5nIHRlc3QgdGVhcmRvd24uCisKKy0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBVUkxCcmVha3BvaW50LkJyZWFrT25NYXRjaGluZ1JlZ3VsYXJFeHByZXNzaW9uLlhI
Ui5PcHRpb25zLkNvbmRpdGlvbgorQWRkaW5nICJyZWdleDpkYXRhW0EtWl0qLihqc29ufHR4dHxw
bmcpIiBVUkwgQnJlYWtwb2ludC4uLgorCitTZXR0aW5nIGNvbmRpdGlvbiB0byAnZmFsc2UnLi4u
CisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBYSFIgInJlc291cmNlcy9kYXRh
WEhSLmpzb24iLi4uCitQQVNTOiBTaG91bGQgbm90IHBhdXNlLgorCitUcmlnZ2VyaW5nIGJyZWFr
cG9pbnQuLi4KK1JlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgorUEFTUzog
U2hvdWxkIG5vdCBwYXVzZS4KKworU2V0dGluZyBjb25kaXRpb24gdG8gJ3RydWUnLi4uCisKK1Ry
aWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVzdCBYSFIgInJlc291cmNlcy9kYXRhWEhSLmpz
b24iLi4uCitQQVNTOiBTaG91bGQgcGF1c2UuCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgor
UmVxdWVzdCBYSFIgInJlc291cmNlcy9kYXRhWEhSLmpzb24iLi4uCitQQVNTOiBTaG91bGQgcGF1
c2UuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBVUkxCcmVha3BvaW50LkJyZWFrT25NYXRjaGlu
Z1JlZ3VsYXJFeHByZXNzaW9uLlhIUi5PcHRpb25zLklnbm9yZUNvdW50CitBZGRpbmcgInJlZ2V4
OmRhdGFbQS1aXSouKGpzb258dHh0fHBuZykiIFVSTCBCcmVha3BvaW50Li4uCisKK1NldHRpbmcg
aWdub3JlQ291bnQgdG8gJzInLi4uCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVxdWVz
dCBYSFIgInJlc291cmNlcy9kYXRhWEhSLmpzb24iLi4uCitQQVNTOiBTaG91bGQgbm90IHBhdXNl
LgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0
YVhIUi5qc29uIi4uLgorUEFTUzogU2hvdWxkIG5vdCBwYXVzZS4KKworVHJpZ2dlcmluZyBicmVh
a3BvaW50Li4uCitSZXF1ZXN0IFhIUiAicmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6
IFNob3VsZCBwYXVzZS4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IFhIUiAi
cmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6IFNob3VsZCBwYXVzZS4KKworLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuQnJlYWtPbk1hdGNoaW5nUmVndWxhckV4cHJl
c3Npb24uWEhSLk9wdGlvbnMuQWN0aW9uLkxvZworQWRkaW5nICJyZWdleDpkYXRhW0EtWl0qLihq
c29ufHR4dHxwbmcpIiBVUkwgQnJlYWtwb2ludC4uLgorCitBZGRpbmcgbG9nIGFjdGlvbi4uLgor
CitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhI
Ui5qc29uIi4uLgorUEFTUzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNT
OiBTaG91bGQgcGF1c2UuCisKK0VkaXRpbmcgbG9nIGFjdGlvbi4uLgorCitUcmlnZ2VyaW5nIGJy
ZWFrcG9pbnQuLi4KK1JlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgorUEFT
UzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQgcGF1c2Uu
CisKK0VkaXRpbmcgbG9nIGFjdGlvbi4uLgorRW5hYmxpbmcgYXV0by1jb250aW51ZS4uLgorCitU
cmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1JlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5q
c29uIi4uLgorUEFTUzogU2hvdWxkIGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBT
aG91bGQgbm90IHBhdXNlLgorCitFZGl0aW5nIGxvZyBhY3Rpb24uLi4KKworVHJpZ2dlcmluZyBi
cmVha3BvaW50Li4uCitSZXF1ZXN0IFhIUiAicmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KK1BB
U1M6IFNob3VsZCBleGVjdXRlIGJyZWFrcG9pbnQgYWN0aW9uLgorUEFTUzogU2hvdWxkIG5vdCBw
YXVzZS4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFVSTEJyZWFrcG9pbnQuQnJlYWtPbk1hdGNo
aW5nUmVndWxhckV4cHJlc3Npb24uWEhSLk9wdGlvbnMuQWN0aW9ucy5FdmFsdWF0ZQorQWRkaW5n
ICJyZWdleDpkYXRhW0EtWl0qLihqc29ufHR4dHxwbmcpIiBVUkwgQnJlYWtwb2ludC4uLgorCitB
ZGRpbmcgZXZhbHVhdGUgYWN0aW9uLi4uCisKK1RyaWdnZXJpbmcgYnJlYWtwb2ludC4uLgorUmVx
dWVzdCBYSFIgInJlc291cmNlcy9kYXRhWEhSLmpzb24iLi4uCitQQVNTOiBTaG91bGQgZXhlY3V0
ZSBicmVha3BvaW50IGFjdGlvbi4KK1BBU1M6IFNob3VsZCBwYXVzZS4KKworRWRpdGluZyBldmFs
dWF0ZSBhY3Rpb24uLi4KKworVHJpZ2dlcmluZyBicmVha3BvaW50Li4uCitSZXF1ZXN0IFhIUiAi
cmVzb3VyY2VzL2RhdGFYSFIuanNvbiIuLi4KK1BBU1M6IFNob3VsZCBleGVjdXRlIGJyZWFrcG9p
bnQgYWN0aW9uLgorUEFTUzogU2hvdWxkIHBhdXNlLgorCitFZGl0aW5nIGV2YWx1YXRlIGFjdGlv
bi4uLgorRW5hYmxpbmcgYXV0by1jb250aW51ZS4uLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQu
Li4KK1JlcXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgorUEFTUzogU2hvdWxk
IGV4ZWN1dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQgbm90IHBhdXNlLgorCitF
ZGl0aW5nIGV2YWx1YXRlIGFjdGlvbi4uLgorCitUcmlnZ2VyaW5nIGJyZWFrcG9pbnQuLi4KK1Jl
cXVlc3QgWEhSICJyZXNvdXJjZXMvZGF0YVhIUi5qc29uIi4uLgorUEFTUzogU2hvdWxkIGV4ZWN1
dGUgYnJlYWtwb2ludCBhY3Rpb24uCitQQVNTOiBTaG91bGQgbm90IHBhdXNlLgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL3VybC1icmVha3BvaW50cy1t
YXRjaGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci91cmwtYnJl
YWtwb2ludHMtbWF0Y2hpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAuLmQ5MTZjYzkxZWM3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kb20tZGVidWdnZXIvdXJsLWJyZWFrcG9pbnRzLW1hdGNoaW5nLmh0bWwKQEAgLTAsMCAr
MSw1NyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZGVidWdnZXIvcmVzb3VyY2VzL2JyZWFrcG9pbnQtb3B0
aW9ucy11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2RlYnVnZ2VyL3Jl
c291cmNlcy9sb2ctYWN0aXZlLXN0YWNrLXRyYWNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi93b3JrZXIvcmVzb3VyY2VzL3Jlc291cmNlLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3VybC1icmVha3BvaW50LXV0aWxpdGllcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgY29uc3QgdHlwZSA9IFdJLlVS
TEJyZWFrcG9pbnQuVHlwZS5SZWd1bGFyRXhwcmVzc2lvbjsKKyAgICBjb25zdCB1cmwgPSAiZGF0
YVtBLVpdKlwuKGpzb258dHh0fHBuZykiOworCisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVz
dC5jcmVhdGVBc3luY1N1aXRlKCJVUkxCcmVha3BvaW50LkJyZWFrT25NYXRjaGluZ1JlZ3VsYXJF
eHByZXNzaW9uIik7CisKKyAgICBmb3IgKGxldCBhcGkgb2YgWyJGZXRjaCIsICJYSFIiXSkgewor
ICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lOiAiVVJMQnJlYWtw
b2ludC5CcmVha09uTWF0Y2hpbmdSZWd1bGFyRXhwcmVzc2lvbi4iICsgYXBpLAorICAgICAgICAg
ICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGRlYnVnZ2VyIHBhdXNlcyBiYXNlZCBvbiBhIFVS
TCBtYXRjaGluZyBhIHJlZ2V4IHBhdHRlcm4uIiwKKyAgICAgICAgICAgIGFzeW5jIHRlc3QoKSB7
CisgICAgICAgICAgICAgICAgbGV0IGJyZWFrcG9pbnQgPSBhd2FpdCBJbnNwZWN0b3JUZXN0LlVS
TEJyZWFrcG9pbnQuY3JlYXRlQnJlYWtwb2ludCh0eXBlLCB1cmwpOworCisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5VUkxCcmVha3BvaW50LnJlcXVlc3QoYXBpKTsKKyAgICAgICAgICAg
ICAgICBhd2FpdCBXSS5kZWJ1Z2dlck1hbmFnZXIuYXdhaXRFdmVudChXSS5EZWJ1Z2dlck1hbmFn
ZXIuRXZlbnQuUGF1c2VkKTsKKworICAgICAgICAgICAgICAgIGxldCB0YXJnZXREYXRhID0gV0ku
ZGVidWdnZXJNYW5hZ2VyLmRhdGFGb3JUYXJnZXQoV0kuZGVidWdnZXJNYW5hZ2VyLmFjdGl2ZUNh
bGxGcmFtZS50YXJnZXQpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVVT
RUQ6Iik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbCh0YXJnZXRE
YXRhLnBhdXNlUmVhc29uLCBXSS5EZWJ1Z2dlck1hbmFnZXIuUGF1c2VSZWFzb25bYXBpXSwgYFBh
dXNlIHJlYXNvbiBzaG91bGQgYmUgJHthcGl9LmApOworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0RXF1YWwodGFyZ2V0RGF0YS5wYXVzZURhdGEuYnJlYWtwb2ludFVSTCwgYnJl
YWtwb2ludC51cmwsICJQYXVzZSBkYXRhIFVSTCBzaG91bGQgbWF0Y2ggYnJlYWtwb2ludCBVUkwu
Iik7CisKKyAgICAgICAgICAgICAgICBsb2dBY3RpdmVTdGFja1RyYWNlKCk7CisKKyAgICAgICAg
ICAgICAgICBhd2FpdCBXSS5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7CisgICAgICAgICAgICB9
LAorICAgICAgICAgICAgdGVhcmRvd246IEluc3BlY3RvclRlc3QuVVJMQnJlYWtwb2ludC50ZWFy
ZG93biwKKyAgICAgICAgfSk7CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5CcmVha3BvaW50T3B0
aW9ucy5hZGRUZXN0Q2FzZXMoc3VpdGUsIHsKKyAgICAgICAgICAgIHRlc3RDYXNlTmFtZVByZWZp
eDogYXBpICsgIi4iLAorICAgICAgICAgICAgY3JlYXRlQnJlYWtwb2ludCgpIHsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gSW5zcGVjdG9yVGVzdC5VUkxCcmVha3BvaW50LmNyZWF0ZUJyZWFrcG9p
bnQodHlwZSwgdXJsKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB0cmlnZ2VyQnJlYWtw
b2ludCgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gSW5zcGVjdG9yVGVzdC5VUkxCcmVha3Bv
aW50LnJlcXVlc3QoYXBpKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgIH0pOworICAgIH0KKwor
ICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0cyBmb3IgcmVnZXggVVJMIGJyZWFr
cG9pbnRzLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kb20tZGVidWdnZXIvdXJsLWJyZWFrcG9pbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZG9tLWRlYnVnZ2VyL3VybC1icmVha3BvaW50cy5odG1sCmluZGV4IGQxNjFjNjM5
ZTQ0OS4uYjljNTFkNjZlN2FjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9t
LWRlYnVnZ2VyL3VybC1icmVha3BvaW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kb20tZGVidWdnZXIvdXJsLWJyZWFrcG9pbnRzLmh0bWwKQEAgLTIsMjM0ICsyLDEwNiBAQAog
PGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2Rl
YnVnZ2VyL3Jlc291cmNlcy9icmVha3BvaW50LW9wdGlvbnMtdXRpbGl0aWVzLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSIuLi9kZWJ1Z2dlci9yZXNvdXJjZXMvbG9nLWFjdGl2ZS1zdGFjay10
cmFjZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vd29ya2VyL3Jlc291cmNlcy9yZXNv
dXJjZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy91cmwt
YnJlYWtwb2ludC11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIGZ1bmN0aW9uIHRl
c3QoKQogewogICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgi
VVJMQnJlYWtwb2ludCIpOwogCi0gICAgZnVuY3Rpb24gcmVxdWVzdCh0eXBlKSB7Ci0gICAgICAg
IGxldCB1cmwgPSBgcmVzb3VyY2VzL2RhdGEke3R5cGV9Lmpzb25gOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZyhgUmVxdWVzdCAke3R5cGV9ICIke3VybH0iLi4uYCk7Ci0gICAgICAgIHJldHVy
biBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBsb2FkUmVzb3VyY2Uke3R5cGV9KCIke3Vy
bH0iKWApOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHRlYXJkb3duKHJlc29sdmUpIHsKLSAgICAg
ICAgbGV0IGJyZWFrcG9pbnRzID0gV0kuZG9tRGVidWdnZXJNYW5hZ2VyLnVybEJyZWFrcG9pbnRz
OwotICAgICAgICBmb3IgKGxldCBicmVha3BvaW50IG9mIGJyZWFrcG9pbnRzKQotICAgICAgICAg
ICAgV0kuZG9tRGVidWdnZXJNYW5hZ2VyLnJlbW92ZVVSTEJyZWFrcG9pbnQoYnJlYWtwb2ludCk7
Ci0KLSAgICAgICAgV0kuZG9tRGVidWdnZXJNYW5hZ2VyLmFsbFJlcXVlc3RzQnJlYWtwb2ludC5k
aXNhYmxlZCA9IHRydWU7Ci0gICAgICAgIHJlc29sdmUoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlv
biBhZGRCcmVha3BvaW50KHR5cGUsIHVybCkgewotICAgICAgICByZXR1cm4gbmV3IFByb21pc2Uo
KHJlc29sdmUsIHJlamVjdCkgPT4gewotICAgICAgICAgICAgbGV0IG1haW5GcmFtZSA9IFdJLm5l
dHdvcmtNYW5hZ2VyLm1haW5GcmFtZTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
KG1haW5GcmFtZSwgIk1pc3NpbmcgbWFpbiBmcmFtZS4iKTsKLSAgICAgICAgICAgIGlmICghbWFp
bkZyYW1lKQotICAgICAgICAgICAgICAgIHJlamVjdCgpOwotCi0gICAgICAgICAgICBsZXQgYnJl
YWtwb2ludCA9IG5ldyBXSS5VUkxCcmVha3BvaW50KHR5cGUsIHVybCk7Ci0gICAgICAgICAgICBX
SS5kb21EZWJ1Z2dlck1hbmFnZXIuYXdhaXRFdmVudChXSS5ET01EZWJ1Z2dlck1hbmFnZXIuRXZl
bnQuVVJMQnJlYWtwb2ludEFkZGVkKQotICAgICAgICAgICAgLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QucGFzcygiQWRkZWQgYnJlYWtwb2ludCBmb3IgVVJMOiAi
ICsgdXJsKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEZhbHNlKGJyZWFr
cG9pbnQuZGlzYWJsZWQsICJCcmVha3BvaW50IHNob3VsZCBub3QgYmUgZGlzYWJsZWQgaW5pdGlh
bGx5LiIpOwotICAgICAgICAgICAgICAgIHJlc29sdmUoYnJlYWtwb2ludCk7Ci0gICAgICAgICAg
ICB9KTsKLQotICAgICAgICAgICAgV0kuZG9tRGVidWdnZXJNYW5hZ2VyLmFkZFVSTEJyZWFrcG9p
bnQoYnJlYWtwb2ludCk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIGZvciAobGV0IHR5cGUg
b2YgWyJGZXRjaCIsICJYSFIiXSkgeworICAgIGZvciAobGV0IGFwaSBvZiBbIkZldGNoIiwgIlhI
UiJdKSB7CiAgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKLSAgICAgICAgICAgIG5hbWU6ICJV
UkxCcmVha3BvaW50LkJyZWFrT25BbGwuIiArIHR5cGUsCi0gICAgICAgICAgICBkZXNjcmlwdGlv
bjogIkNoZWNrIHRoYXQgZGVidWdnZXIgcGF1c2VzIGZvciBhbGwgcmVxdWVzdHMuIiwKLSAgICAg
ICAgICAgIHRlYXJkb3duLAotICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiU2V0IHBhdXNlIG9uIGFsbCByZXF1ZXN0
cy4iKTsKLSAgICAgICAgICAgICAgICBXSS5kb21EZWJ1Z2dlck1hbmFnZXIuYWxsUmVxdWVzdHNC
cmVha3BvaW50LmRpc2FibGVkID0gZmFsc2U7Ci0KLSAgICAgICAgICAgICAgICByZXF1ZXN0KHR5
cGUpOwotCi0gICAgICAgICAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLmF3YWl0RXZlbnQoV0ku
RGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNlZCkKLSAgICAgICAgICAgICAgICAudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXREYXRhID0gV0kuZGVidWdnZXJNYW5h
Z2VyLmRhdGFGb3JUYXJnZXQoV0kuZGVidWdnZXJNYW5hZ2VyLmFjdGl2ZUNhbGxGcmFtZS50YXJn
ZXQpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFVU0VEOiIpOwot
ICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHRhcmdldERhdGEu
cGF1c2VSZWFzb24sIFdJLkRlYnVnZ2VyTWFuYWdlci5QYXVzZVJlYXNvblt0eXBlXSwgYFBhdXNl
IHJlYXNvbiBzaG91bGQgYmUgJHt0eXBlfS5gKTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RGYWxzZSh0YXJnZXREYXRhLnBhdXNlRGF0YS5icmVha3BvaW50VVJMLCAi
UGF1c2UgZGF0YSBVUkwgc2hvdWxkIGJlIGVtcHR5LiIpOwotCi0gICAgICAgICAgICAgICAgICAg
IGxvZ0FjdGl2ZVN0YWNrVHJhY2UoKTsKLQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gV0ku
ZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgpOwotICAgICAgICAgICAgICAgIH0pCi0gICAgICAgICAg
ICAgICAgLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7
Ci0KLSAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoewotICAgICAgICAgICAgbmFtZTogIlVSTEJy
ZWFrcG9pbnQuQnJlYWtPbkNvbnRhaW5pbmdUZXh0LiIgKyB0eXBlLAotICAgICAgICAgICAgZGVz
Y3JpcHRpb246ICJDaGVjayB0aGF0IGRlYnVnZ2VyIHBhdXNlcyBvbiBhIFVSTCBjb250YWluaW5n
IHRleHQuIiwKLSAgICAgICAgICAgIHRlYXJkb3duLAotICAgICAgICAgICAgdGVzdChyZXNvbHZl
LCByZWplY3QpIHsKLSAgICAgICAgICAgICAgICBsZXQgZXhwZWN0ZWRCcmVha3BvaW50VVJMOwot
Ci0gICAgICAgICAgICAgICAgYWRkQnJlYWtwb2ludChXSS5VUkxCcmVha3BvaW50LlR5cGUuVGV4
dCwgImRhdGEiKQotICAgICAgICAgICAgICAgIC50aGVuKChicmVha3BvaW50KSA9PiB7Ci0gICAg
ICAgICAgICAgICAgICAgIGV4cGVjdGVkQnJlYWtwb2ludFVSTCA9IGJyZWFrcG9pbnQudXJsOwot
Ci0gICAgICAgICAgICAgICAgICAgIHJlcXVlc3QodHlwZSk7Ci0gICAgICAgICAgICAgICAgICAg
IHJldHVybiBXSS5kZWJ1Z2dlck1hbmFnZXIuYXdhaXRFdmVudChXSS5EZWJ1Z2dlck1hbmFnZXIu
RXZlbnQuUGF1c2VkKTsKLSAgICAgICAgICAgICAgICB9KQotICAgICAgICAgICAgICAgIC50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgbGV0IHRhcmdldERhdGEgPSBXSS5kZWJ1Z2dl
ck1hbmFnZXIuZGF0YUZvclRhcmdldChXSS5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1l
LnRhcmdldCk7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVVTRUQ6
Iik7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwodGFyZ2V0
RGF0YS5wYXVzZVJlYXNvbiwgV0kuRGVidWdnZXJNYW5hZ2VyLlBhdXNlUmVhc29uW3R5cGVdLCBg
UGF1c2UgcmVhc29uIHNob3VsZCBiZSAke3R5cGV9LmApOwotICAgICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHRhcmdldERhdGEucGF1c2VEYXRhLmJyZWFrcG9pbnRV
UkwsIGV4cGVjdGVkQnJlYWtwb2ludFVSTCwgIlBhdXNlIGRhdGEgVVJMIHNob3VsZCBtYXRjaCBi
cmVha3BvaW50IFVSTC4iKTsKLQotICAgICAgICAgICAgICAgICAgICBsb2dBY3RpdmVTdGFja1Ry
YWNlKCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFdJLmRlYnVnZ2VyTWFuYWdlci5y
ZXN1bWUoKTsKLSAgICAgICAgICAgICAgICB9KQotICAgICAgICAgICAgICAgIC50aGVuKHJlc29s
dmUsIHJlamVjdCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotCi0gICAgICAgIHN1aXRl
LmFkZFRlc3RDYXNlKHsKLSAgICAgICAgICAgIG5hbWU6ICJVUkxCcmVha3BvaW50LkJyZWFrT25N
YXRjaGluZ1JlZ3VsYXJFeHByZXNzaW9uLiIgKyB0eXBlLAotICAgICAgICAgICAgZGVzY3JpcHRp
b246ICJDaGVjayB0aGF0IGRlYnVnZ2VyIHBhdXNlcyBiYXNlZCBvbiBhIFVSTCBtYXRjaGluZyBh
IHJlZ2V4IHBhdHRlcm4uIiwKLSAgICAgICAgICAgIHRlYXJkb3duLAotICAgICAgICAgICAgdGVz
dChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgICAgICBsZXQgZXhwZWN0ZWRCcmVha3Bv
aW50VVJMOwotICAgICAgICAgICAgICAgIGFkZEJyZWFrcG9pbnQoV0kuVVJMQnJlYWtwb2ludC5U
eXBlLlJlZ3VsYXJFeHByZXNzaW9uLCAiZGF0YVtBLVpdKlwuKGpzb258dHh0fHBuZykiKQotICAg
ICAgICAgICAgICAgIC50aGVuKChicmVha3BvaW50KSA9PiB7Ci0gICAgICAgICAgICAgICAgICAg
IGV4cGVjdGVkQnJlYWtwb2ludFVSTCA9IGJyZWFrcG9pbnQudXJsOwotCi0gICAgICAgICAgICAg
ICAgICAgIHJlcXVlc3QodHlwZSk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBXSS5kZWJ1
Z2dlck1hbmFnZXIuYXdhaXRFdmVudChXSS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUGF1c2VkKTsK
LSAgICAgICAgICAgICAgICB9KQotICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgICAgICAgICAgbGV0IHRhcmdldERhdGEgPSBXSS5kZWJ1Z2dlck1hbmFnZXIuZGF0YUZv
clRhcmdldChXSS5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lLnRhcmdldCk7Ci0gICAg
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVVTRUQ6Iik7Ci0gICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwodGFyZ2V0RGF0YS5wYXVzZVJlYXNv
biwgV0kuRGVidWdnZXJNYW5hZ2VyLlBhdXNlUmVhc29uW3R5cGVdLCBgUGF1c2UgcmVhc29uIHNo
b3VsZCBiZSAke3R5cGV9LmApOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdEVxdWFsKHRhcmdldERhdGEucGF1c2VEYXRhLmJyZWFrcG9pbnRVUkwsIGV4cGVjdGVkQnJl
YWtwb2ludFVSTCwgIlBhdXNlIGRhdGEgVVJMIHNob3VsZCBtYXRjaCBicmVha3BvaW50IFVSTC4i
KTsKLQotICAgICAgICAgICAgICAgICAgICBsb2dBY3RpdmVTdGFja1RyYWNlKCk7Ci0KLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIFdJLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKLSAgICAg
ICAgICAgICAgICB9KQotICAgICAgICAgICAgICAgIC50aGVuKHJlc29sdmUsIHJlamVjdCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotCi0gICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsK
LSAgICAgICAgICAgIG5hbWU6ICJVUkxCcmVha3BvaW50LlNob3VsZE5vdFBhdXNlT25EaXNhYmxl
ZEJyZWFrcG9pbnQuIiArIHR5cGUsCisgICAgICAgICAgICBuYW1lOiAiVVJMQnJlYWtwb2ludC5T
aG91bGROb3RQYXVzZU9uRGlzYWJsZWRCcmVha3BvaW50LiIgKyBhcGksCiAgICAgICAgICAgICBk
ZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgZGVidWdnZXIgZG9lcyBub3QgcGF1c2UgZm9yIGRpc2Fi
bGVkIGJyZWFrcG9pbnQuIiwKLSAgICAgICAgICAgIHRlYXJkb3duLAotICAgICAgICAgICAgdGVz
dChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgIGFzeW5jIHRlc3QoKSB7CiAgICAgICAg
ICAgICAgICAgbGV0IHBhdXNlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgIGxldCBsaXN0ZW5l
ciA9IFdJLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkRlYnVnZ2VyTWFuYWdl
ci5FdmVudC5QYXVzZWQsIChldmVudCkgPT4gewogICAgICAgICAgICAgICAgICAgICBwYXVzZWQg
PSB0cnVlOwogICAgICAgICAgICAgICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7
CiAgICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgICBhZGRCcmVha3BvaW50KFdJ
LlVSTEJyZWFrcG9pbnQuVHlwZS5UZXh0LCAiZGF0YSIpCi0gICAgICAgICAgICAgICAgLnRoZW4o
KGJyZWFrcG9pbnQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludC5kaXNhYmxl
ZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3Bv
aW50IGRpc2FibGVkLiIpOworICAgICAgICAgICAgICAgIGxldCBicmVha3BvaW50ID0gYXdhaXQg
SW5zcGVjdG9yVGVzdC5VUkxCcmVha3BvaW50LmNyZWF0ZUJyZWFrcG9pbnQoV0kuVVJMQnJlYWtw
b2ludC5UeXBlLlRleHQsICJkYXRhIikKIAotICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVx
dWVzdCh0eXBlKTsKLSAgICAgICAgICAgICAgICB9KQotICAgICAgICAgICAgICAgIC50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RGYWxzZShwYXVz
ZWQsICJTaG91bGQgbm90IHBhdXNlIGZvciBkaXNhYmxlZCBicmVha3BvaW50LiIpOwotICAgICAg
ICAgICAgICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5E
ZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUGF1c2VkLCBsaXN0ZW5lcik7Ci0gICAgICAgICAgICAgICAg
ICAgIHJlc29sdmUoKTsKLSAgICAgICAgICAgICAgICB9KQotICAgICAgICAgICAgICAgIC5jYXRj
aChyZWplY3QpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJEaXNhYmxpbmcgYnJlYWtwb2ludC4uLiIpOworICAgICAgICAgICAgICAgIGJyZWFrcG9p
bnQuZGlzYWJsZWQgPSB0cnVlOworCisgICAgICAgICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVz
dC5VUkxCcmVha3BvaW50LnJlcXVlc3QoYXBpKTsKKworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0RmFsc2UocGF1c2VkLCAiU2hvdWxkIG5vdCBwYXVzZSBmb3IgZGlzYWJsZWQg
YnJlYWtwb2ludC4iKTsKKyAgICAgICAgICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIucmVtb3Zl
RXZlbnRMaXN0ZW5lcihXSS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUGF1c2VkLCBsaXN0ZW5lcik7
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgdGVhcmRvd246IEluc3BlY3RvclRlc3QuVVJM
QnJlYWtwb2ludC50ZWFyZG93biwKICAgICAgICAgfSk7CiAKICAgICAgICAgc3VpdGUuYWRkVGVz
dENhc2UoewotICAgICAgICAgICAgbmFtZTogIlVSTEJyZWFrcG9pbnQuU2hvdWxkTm90UGF1c2VP
bk5vdENvbnRhaW5pbmdVUkwuIiArIHR5cGUsCisgICAgICAgICAgICBuYW1lOiAiVVJMQnJlYWtw
b2ludC5TaG91bGROb3RQYXVzZU9uTm90Q29udGFpbmluZ1VSTC4iICsgYXBpLAogICAgICAgICAg
ICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGRlYnVnZ2VyIGRvZXMgbm90IHBhdXNlIGZvciBi
cmVha3BvaW50IHdpdGggZGlmZmVyZW50IFVSTC4iLAotICAgICAgICAgICAgdGVhcmRvd24sCi0g
ICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgYXN5bmMgdGVz
dCgpIHsKICAgICAgICAgICAgICAgICBsZXQgcGF1c2VkID0gZmFsc2U7CiAgICAgICAgICAgICAg
ICAgbGV0IGxpc3RlbmVyID0gV0kuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0ku
RGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNlZCwgKGV2ZW50KSA9PiB7CiAgICAgICAgICAgICAg
ICAgICAgIHBhdXNlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIFdJLmRlYnVnZ2VyTWFu
YWdlci5yZXN1bWUoKTsKICAgICAgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICAgIGFk
ZEJyZWFrcG9pbnQoV0kuVVJMQnJlYWtwb2ludC5UeXBlLlRleHQsICJub25leGlzdGFudC11cmwi
KQotICAgICAgICAgICAgICAgIC50aGVuKChicmVha3BvaW50KSA9PiB7Ci0gICAgICAgICAgICAg
ICAgICAgIHJldHVybiByZXF1ZXN0KHR5cGUpOwotICAgICAgICAgICAgICAgIH0pCi0gICAgICAg
ICAgICAgICAgLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdEZhbHNlKHBhdXNlZCwgIlNob3VsZCBub3QgcGF1c2UgZm9yIGJyZWFrcG9pbnQgd2l0
aCBkaWZmZXJlbnQgVVJMLiIpOwotICAgICAgICAgICAgICAgICAgICBXSS5kZWJ1Z2dlck1hbmFn
ZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUGF1c2VkLCBs
aXN0ZW5lcik7Ci0gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKLSAgICAgICAgICAgICAg
ICB9KQotICAgICAgICAgICAgICAgIC5jYXRjaChyZWplY3QpOwotICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIGxldCBicmVha3BvaW50ID0gYXdhaXQgSW5zcGVjdG9yVGVzdC5VUkxCcmVh
a3BvaW50LmNyZWF0ZUJyZWFrcG9pbnQoV0kuVVJMQnJlYWtwb2ludC5UeXBlLlRleHQsICJub25l
eGlzdGFudC11cmwiKQorCisgICAgICAgICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5VUkxC
cmVha3BvaW50LnJlcXVlc3QoYXBpKTsKKworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0RmFsc2UocGF1c2VkLCAiU2hvdWxkIG5vdCBwYXVzZSBmb3IgYnJlYWtwb2ludCB3aXRo
IGRpZmZlcmVudCBVUkwuIik7CisgICAgICAgICAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLnJl
bW92ZUV2ZW50TGlzdGVuZXIoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNlZCwgbGlzdGVu
ZXIpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHRlYXJkb3duOiBJbnNwZWN0b3JUZXN0
LlVSTEJyZWFrcG9pbnQudGVhcmRvd24sCiAgICAgICAgIH0pOwogCiAgICAgICAgIHN1aXRlLmFk
ZFRlc3RDYXNlKHsKLSAgICAgICAgICAgIG5hbWU6ICJVUkxCcmVha3BvaW50LlJlbW92ZUJyZWFr
cG9pbnQuIiArIHR5cGUsCisgICAgICAgICAgICBuYW1lOiAiVVJMQnJlYWtwb2ludC5SZW1vdmVC
cmVha3BvaW50LiIgKyBhcGksCiAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQg
ZGVidWdnZXIgZG9lcyBub3QgcGF1c2UgZm9yIHJlbW92ZWQgYnJlYWtwb2ludC4iLAotICAgICAg
ICAgICAgdGVhcmRvd24sCi0gICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAg
ICAgICAgICAgYXN5bmMgdGVzdCgpIHsKICAgICAgICAgICAgICAgICBsZXQgcGF1c2VkID0gZmFs
c2U7CiAgICAgICAgICAgICAgICAgbGV0IGxpc3RlbmVyID0gV0kuZGVidWdnZXJNYW5hZ2VyLmFk
ZEV2ZW50TGlzdGVuZXIoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNlZCwgKGV2ZW50KSA9
PiB7CiAgICAgICAgICAgICAgICAgICAgIHBhdXNlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAg
ICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKICAgICAgICAgICAgICAgICB9KTsKIAot
ICAgICAgICAgICAgICAgIGFkZEJyZWFrcG9pbnQoV0kuVVJMQnJlYWtwb2ludC5UeXBlLlRleHQs
ICJkYXRhIikKLSAgICAgICAgICAgICAgICAudGhlbigoYnJlYWtwb2ludCkgPT4gewotICAgICAg
ICAgICAgICAgICAgICBXSS5kb21EZWJ1Z2dlck1hbmFnZXIucmVtb3ZlVVJMQnJlYWtwb2ludChi
cmVha3BvaW50KTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFr
cG9pbnQgcmVtb3ZlZC4iKTsKKyAgICAgICAgICAgICAgICBsZXQgYnJlYWtwb2ludCA9IGF3YWl0
IEluc3BlY3RvclRlc3QuVVJMQnJlYWtwb2ludC5jcmVhdGVCcmVha3BvaW50KFdJLlVSTEJyZWFr
cG9pbnQuVHlwZS5UZXh0LCAiZGF0YSIpCiAKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJl
cXVlc3QodHlwZSk7Ci0gICAgICAgICAgICAgICAgfSkKLSAgICAgICAgICAgICAgICAudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2UocGF1
c2VkLCAiU2hvdWxkIG5vdCBwYXVzZSBmb3IgcmVtb3ZlZCBicmVha3BvaW50LiIpOwotICAgICAg
ICAgICAgICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5E
ZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUGF1c2VkLCBsaXN0ZW5lcik7Ci0gICAgICAgICAgICAgICAg
ICAgIHJlc29sdmUoKTsKLSAgICAgICAgICAgICAgICB9KQotICAgICAgICAgICAgICAgIC5jYXRj
aChyZWplY3QpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJSZW1vdmluZyBicmVha3BvaW50Li4uIik7CisgICAgICAgICAgICAgICAgYnJlYWtwb2lu
dC5yZW1vdmUoKTsKKworICAgICAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuVVJMQnJl
YWtwb2ludC5yZXF1ZXN0KGFwaSk7CisKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdEZhbHNlKHBhdXNlZCwgIlNob3VsZCBub3QgcGF1c2UgZm9yIHJlbW92ZWQgYnJlYWtwb2lu
dC4iKTsKKyAgICAgICAgICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIucmVtb3ZlRXZlbnRMaXN0
ZW5lcihXSS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUGF1c2VkLCBsaXN0ZW5lcik7CisgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgdGVhcmRvd246IEluc3BlY3RvclRlc3QuVVJMQnJlYWtwb2lu
dC50ZWFyZG93biwKICAgICAgICAgfSk7CiAKICAgICAgICAgc3VpdGUuYWRkVGVzdENhc2Uoewot
ICAgICAgICAgICAgbmFtZTogIlVSTEJyZWFrcG9pbnQuUmVtb3ZlRGlzYWJsZWRCcmVha3BvaW50
LiIgKyB0eXBlLAorICAgICAgICAgICAgbmFtZTogIlVSTEJyZWFrcG9pbnQuUmVtb3ZlRGlzYWJs
ZWRCcmVha3BvaW50LiIgKyBhcGksCiAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRo
YXQgYSBkaXNhYmxlZCBicmVha3BvaW50IGNhbiBiZSByZW1vdmVkLiIsCi0gICAgICAgICAgICB0
ZWFyZG93biwKLSAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAg
ICBhc3luYyB0ZXN0KCkgewogICAgICAgICAgICAgICAgIGxldCBwYXVzZWQgPSBmYWxzZTsKICAg
ICAgICAgICAgICAgICBsZXQgbGlzdGVuZXIgPSBXSS5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRM
aXN0ZW5lcihXSS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUGF1c2VkLCAoZXZlbnQpID0+IHsKICAg
ICAgICAgICAgICAgICAgICAgcGF1c2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgV0ku
ZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgpOwogICAgICAgICAgICAgICAgIH0pOwogCi0gICAgICAg
ICAgICAgICAgYWRkQnJlYWtwb2ludChXSS5VUkxCcmVha3BvaW50LlR5cGUuVGV4dCwgImRhdGEi
KQotICAgICAgICAgICAgICAgIC50aGVuKChicmVha3BvaW50KSA9PiB7Ci0gICAgICAgICAgICAg
ICAgICAgIGJyZWFrcG9pbnQuZGlzYWJsZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZygiQnJlYWtwb2ludCBkaXNhYmxlZC4iKTsKKyAgICAgICAgICAgICAg
ICBsZXQgYnJlYWtwb2ludCA9IGF3YWl0IEluc3BlY3RvclRlc3QuVVJMQnJlYWtwb2ludC5jcmVh
dGVCcmVha3BvaW50KFdJLlVSTEJyZWFrcG9pbnQuVHlwZS5UZXh0LCAiZGF0YSIpCiAKLSAgICAg
ICAgICAgICAgICAgICAgV0kuZG9tRGVidWdnZXJNYW5hZ2VyLnJlbW92ZVVSTEJyZWFrcG9pbnQo
YnJlYWtwb2ludCk7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVh
a3BvaW50IHJlbW92ZWQuIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRp
c2FibGluZyBicmVha3BvaW50Li4uIik7CisgICAgICAgICAgICAgICAgYnJlYWtwb2ludC5kaXNh
YmxlZCA9IHRydWU7CiAKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QodHlwZSk7
Ci0gICAgICAgICAgICAgICAgfSkKLSAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RmFsc2UocGF1c2VkLCAiU2hvdWxk
IG5vdCBwYXVzZSBmb3IgcmVtb3ZlZCBkaXNhYmxlZCBicmVha3BvaW50LiIpOwotICAgICAgICAg
ICAgICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5EZWJ1
Z2dlck1hbmFnZXIuRXZlbnQuUGF1c2VkLCBsaXN0ZW5lcik7Ci0gICAgICAgICAgICAgICAgICAg
IHJlc29sdmUoKTsKLSAgICAgICAgICAgICAgICB9KQotICAgICAgICAgICAgICAgIC5jYXRjaChy
ZWplY3QpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCJSZW1vdmluZyBicmVha3BvaW50Li4uIik7CisgICAgICAgICAgICAgICAgYnJlYWtwb2ludC5y
ZW1vdmUoKTsKKworICAgICAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuVVJMQnJlYWtw
b2ludC5yZXF1ZXN0KGFwaSk7CisKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dEZhbHNlKHBhdXNlZCwgIlNob3VsZCBub3QgcGF1c2UgZm9yIHJlbW92ZWQgZGlzYWJsZWQgYnJl
YWtwb2ludC4iKTsKKyAgICAgICAgICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIucmVtb3ZlRXZl
bnRMaXN0ZW5lcihXSS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUGF1c2VkLCBsaXN0ZW5lcik7Cisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgdGVhcmRvd246IEluc3BlY3RvclRlc3QuVVJMQnJl
YWtwb2ludC50ZWFyZG93biwKICAgICAgICAgfSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZwppbmRleCA0N2ExNzY2YTMzZGIuLmViZjlkZTQ0N2I5NCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDktMDIgIERldmluIFJvdXNzbyAgPGRyb3Vz
c29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFsbG93IHVybCBicmVha3Bv
aW50cyB0byBiZSBjb25maWd1cmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTU3OTMKKworICAgICAgICBSZXZpZXdlZCBieSBCcmlhbiBCdXJnLgor
CisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL0RPTURlYnVnZ2VyLmpzb246CisgICAgICAg
IEFkZCBhbiBgb3B0aW9uc2AgcGFyYW1ldGVyIHRvIGBET01EZWJ1Z2dlci5zZXRVUkxCcmVha3Bv
aW50YCB0byBhbGxvdyBjb25maWd1cmF0aW9uLgorICAgICAgICBBZGQgYW4gYGlzUmVnZXhgIHBh
cmFtZXRlciB0byBgRE9NRGVidWdnZXIucmVtb3ZlVVJMQnJlYWtwb2ludGAgc28gdGhhdCB3ZSBr
bm93IHdoYXQKKyAgICAgICAgdHlwZSBvZiBVUkwgYnJlYWtwb2ludCBpcyBiZWluZyByZW1vdmVk
LgorCiAyMDIwLTA5LTAyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBhbGxvdyBzcGVjaWFsIEphdmFTY3JpcHQgYnJlYWtwb2ludHMg
dG8gYmUgY29uZmlndXJlZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9wcm90b2NvbC9ET01EZWJ1Z2dlci5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9wcm90b2NvbC9ET01EZWJ1Z2dlci5qc29uCmluZGV4IGVlZmE5MzNmOWY1ZC4uMDQz
ZjliZjU2ODU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3By
b3RvY29sL0RPTURlYnVnZ2VyLmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9wcm90b2NvbC9ET01EZWJ1Z2dlci5qc29uCkBAIC01NiwxNCArNTYsMTYgQEAKICAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJTZXRzIGJyZWFrcG9pbnQgb24gbmV0d29yayBhY3Rpdml0
eSBmb3IgdGhlIGdpdmVuIFVSTC4iLAogICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRp
b24iOiAiUmVzb3VyY2UgVVJMIHN1YnN0cmluZyBvciByZWd1bGFyIGV4cHJlc3Npb24uIEFsbCBy
ZXF1ZXN0cyBoYXZpbmcgdGhpcyBzdWJzdHJpbmcgaW4gdGhlIFVSTCB3aWxsIGdldCBzdG9wcGVk
IHVwb24uIEFuIGVtcHR5IHN0cmluZyB3aWxsIHBhdXNlIG9uIGFsbCByZXF1ZXN0cy4iIH0sCi0g
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpc1JlZ2V4IiwgInR5cGUiOiAiYm9vbGVhbiIsICJv
cHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJXaGV0aGVyIHRoZSBVUkwgc3RyaW5nIGlz
IGEgcmVndWxhciBleHByZXNzaW9uLiIgfQorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXNS
ZWdleCIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24i
OiAiV2hldGhlciB0aGUgVVJMIHN0cmluZyBpcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbi4iIH0sCisg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvcHRpb25zIiwgIiRyZWYiOiAiRGVidWdnZXIuQnJl
YWtwb2ludE9wdGlvbnMiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiT3B0aW9u
cyB0byBhcHBseSB0byB0aGlzIGJyZWFrcG9pbnQgdG8gbW9kaWZ5IGl0cyBiZWhhdmlvci4iIH0K
ICAgICAgICAgICAgIF0KICAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgICAgIm5hbWUi
OiAicmVtb3ZlVVJMQnJlYWtwb2ludCIsCiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmVt
b3ZlcyBicmVha3BvaW50IGZyb20gbmV0d29yayBhY3Rpdml0eSBmb3IgdGhlIGdpdmVuIFVSTC4i
LAogICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiUmVzb3VyY2UgVVJMIHN1
YnN0cmluZy4gQW4gZW1wdHkgc3RyaW5nIHdpbGwgc3RvcCBwYXVzaW5nIG9uIGFsbCByZXF1ZXN0
cy4iIH0KKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVybCIsICJ0eXBlIjogInN0cmluZyIs
ICJkZXNjcmlwdGlvbiI6ICJSZXNvdXJjZSBVUkwgc3Vic3RyaW5nLiBBbiBlbXB0eSBzdHJpbmcg
d2lsbCBzdG9wIHBhdXNpbmcgb24gYWxsIHJlcXVlc3RzLiIgfSwKKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImlzUmVnZXgiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwg
ImRlc2NyaXB0aW9uIjogIldoZXRoZXIgdGhlIFVSTCBzdHJpbmcgaXMgYSByZWd1bGFyIGV4cHJl
c3Npb24uIiB9CiAgICAgICAgICAgICBdCiAgICAgICAgIH0KICAgICBdCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NzRiNTk2ZThjNjhlLi5kMDQ5YjY3OGQyNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAor
MjAyMC0wOS0wMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAg
V2ViIEluc3BlY3RvcjogYWxsb3cgdXJsIGJyZWFrcG9pbnRzIHRvIGJlIGNvbmZpZ3VyZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTc5MworCisg
ICAgICAgIFJldmlld2VkIGJ5IEJyaWFuIEJ1cmcuCisKKyAgICAgICAgVGVzdHM6IGluc3BlY3Rv
ci9kb20tZGVidWdnZXIvdXJsLWJyZWFrcG9pbnRzLmh0bWwKKyAgICAgICAgICAgICAgIGluc3Bl
Y3Rvci9kb20tZGVidWdnZXIvdXJsLWJyZWFrcG9pbnRzLWFsbC1yZXF1ZXN0cy5odG1sCisgICAg
ICAgICAgICAgICBpbnNwZWN0b3IvZG9tLWRlYnVnZ2VyL3VybC1icmVha3BvaW50cy1jb250YWlu
aW5nLmh0bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rvci9kb20tZGVidWdnZXIvdXJsLWJyZWFr
cG9pbnRzLW1hdGNoaW5nLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yRE9NRGVidWdnZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yRE9NRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01E
ZWJ1Z2dlckFnZW50OjpkaXNhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTURl
YnVnZ2VyQWdlbnQ6OnNldFVSTEJyZWFrcG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRE9NRGVidWdnZXJBZ2VudDo6cmVtb3ZlVVJMQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50OjpicmVha09uVVJMSWZOZWVkZWQpOgorCiAy
MDIwLTA5LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTmV3
IEF1dG9QYXJhbSB0aW1lbGluZSBldmVudHMgc2hvdWxkIGhhdmUgdGhlaXIgc3RhcnRUaW1lIGFk
anVzdGVkIHdoZW4gdGhleSBhcmUgaW4gdGhlIHBhc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3Bw
CmluZGV4IGVmOTU0NTY0MWQ0NC4uMDc5YTExNjg2ZTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dC5jcHAKQEAgLTgwLDggKzgwLDkgQEAgdm9pZCBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50Ojpk
aXNhYmxlKCkKICAgICBtX3BhdXNlT25BbGxMaXN0ZW5lcnNCcmVha3BvaW50ID0gbnVsbHB0cjsK
ICAgICBtX3BhdXNlT25BbGxUaW1lb3V0c0JyZWFrcG9pbnQgPSBudWxscHRyOwogCi0gICAgbV91
cmxCcmVha3BvaW50cy5jbGVhcigpOwotICAgIG1fcGF1c2VPbkFsbFVSTHNFbmFibGVkID0gZmFs
c2U7CisgICAgbV91cmxUZXh0QnJlYWtwb2ludHMuY2xlYXIoKTsKKyAgICBtX3VybFJlZ2V4QnJl
YWtwb2ludHMuY2xlYXIoKTsKKyAgICBtX3BhdXNlT25BbGxVUkxzQnJlYWtwb2ludCA9IG51bGxw
dHI7CiB9CiAKIC8vIEJyb3dzZXIgZGVidWdnZXIgYWdlbnQgZW5hYmxlZCBvbmx5IHdoZW4gSlMg
ZGVidWdnZXIgaXMgZW5hYmxlZC4KQEAgLTMyOCwzMyArMzI5LDQ1IEBAIHZvaWQgSW5zcGVjdG9y
RE9NRGVidWdnZXJBZ2VudDo6ZGlkRmlyZVRpbWVyKGJvb2wgb25lU2hvdCkKICAgICBtX2RlYnVn
Z2VyQWdlbnQtPmNhbmNlbFBhdXNlRm9yU3BlY2lhbEJyZWFrcG9pbnQoKmJyZWFrcG9pbnQpOwog
fQogCi12b2lkIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OnNldFVSTEJyZWFrcG9pbnQoRXJy
b3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgYm9vbCogb3B0
aW9uYWxJc1JlZ2V4KQordm9pZCBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50OjpzZXRVUkxCcmVh
a3BvaW50KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0
IGJvb2wqIG9wdGlvbmFsSXNSZWdleCwgY29uc3QgSlNPTjo6T2JqZWN0KiBvcHRpb25zUGF5bG9h
ZCkKIHsKKyAgICBhdXRvIGJyZWFrcG9pbnQgPSBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkZWJ1
Z2dlckJyZWFrcG9pbnRGcm9tUGF5bG9hZChlcnJvclN0cmluZywgb3B0aW9uc1BheWxvYWQpOwor
ICAgIGlmICghYnJlYWtwb2ludCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKHVybC5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgaWYgKG1fcGF1c2VPbkFsbFVSTHNFbmFibGVkKQorICAgICAgICBp
ZiAoIW1fcGF1c2VPbkFsbFVSTHNCcmVha3BvaW50KQorICAgICAgICAgICAgbV9wYXVzZU9uQWxs
VVJMc0JyZWFrcG9pbnQgPSBXVEZNb3ZlKGJyZWFrcG9pbnQpOworICAgICAgICBlbHNlCiAgICAg
ICAgICAgICBlcnJvclN0cmluZyA9ICJCcmVha3BvaW50IGZvciBhbGwgVVJMcyBhbHJlYWR5IGV4
aXN0cyJfczsKLSAgICAgICAgbV9wYXVzZU9uQWxsVVJMc0VuYWJsZWQgPSB0cnVlOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgYm9vbCBpc1JlZ2V4ID0gb3B0aW9uYWxJc1JlZ2V4ID8g
Km9wdGlvbmFsSXNSZWdleCA6IGZhbHNlOwotICAgIGF1dG8gcmVzdWx0ID0gbV91cmxCcmVha3Bv
aW50cy5zZXQodXJsLCBpc1JlZ2V4ID8gVVJMQnJlYWtwb2ludFR5cGU6OlJlZ3VsYXJFeHByZXNz
aW9uIDogVVJMQnJlYWtwb2ludFR5cGU6OlRleHQpOwotICAgIGlmICghcmVzdWx0LmlzTmV3RW50
cnkpCi0gICAgICAgIGVycm9yU3RyaW5nID0gIkJyZWFrcG9pbnQgZm9yIGdpdmVuIHVybCBhbHJl
YWR5IGV4aXN0cyJfczsKKyAgICBpZiAob3B0aW9uYWxJc1JlZ2V4ICYmICpvcHRpb25hbElzUmVn
ZXgpIHsKKyAgICAgICAgaWYgKCFtX3VybFJlZ2V4QnJlYWtwb2ludHMuYWRkKHVybCwgYnJlYWtw
b2ludC5yZWxlYXNlTm9uTnVsbCgpKSkKKyAgICAgICAgICAgIGVycm9yU3RyaW5nID0gIkJyZWFr
cG9pbnQgZm9yIGdpdmVuIHJlZ2V4IGFscmVhZHkgZXhpc3RzIl9zOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIGlmICghbV91cmxUZXh0QnJlYWtwb2ludHMuYWRkKHVybCwgYnJlYWtwb2ludC5yZWxl
YXNlTm9uTnVsbCgpKSkKKyAgICAgICAgICAgIGVycm9yU3RyaW5nID0gIkJyZWFrcG9pbnQgZm9y
IGdpdmVuIFVSTCBhbHJlYWR5IGV4aXN0cyJfczsKKyAgICB9CiB9CiAKLXZvaWQgSW5zcGVjdG9y
RE9NRGVidWdnZXJBZ2VudDo6cmVtb3ZlVVJMQnJlYWtwb2ludChFcnJvclN0cmluZyYgZXJyb3JT
dHJpbmcsIGNvbnN0IFN0cmluZyYgdXJsKQordm9pZCBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50
OjpyZW1vdmVVUkxCcmVha3BvaW50KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3Ry
aW5nJiB1cmwsIGNvbnN0IGJvb2wqIG9wdGlvbmFsSXNSZWdleCkKIHsKICAgICBpZiAodXJsLmlz
RW1wdHkoKSkgewotICAgICAgICBpZiAoIW1fcGF1c2VPbkFsbFVSTHNFbmFibGVkKQorICAgICAg
ICBpZiAoIW1fcGF1c2VPbkFsbFVSTHNCcmVha3BvaW50KQogICAgICAgICAgICAgZXJyb3JTdHJp
bmcgPSAiQnJlYWtwb2ludCBmb3IgYWxsIFVSTHMgbWlzc2luZyJfczsKLSAgICAgICAgbV9wYXVz
ZU9uQWxsVVJMc0VuYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgbV9wYXVzZU9uQWxsVVJMc0JyZWFr
cG9pbnQgPSBudWxscHRyOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byByZXN1
bHQgPSBtX3VybEJyZWFrcG9pbnRzLnJlbW92ZSh1cmwpOwotICAgIGlmICghcmVzdWx0KQotICAg
ICAgICBlcnJvclN0cmluZyA9ICJCcmVha3BvaW50IGZvciBnaXZlbiB1cmwgbWlzc2luZyJfczsK
KyAgICBpZiAob3B0aW9uYWxJc1JlZ2V4ICYmICpvcHRpb25hbElzUmVnZXgpIHsKKyAgICAgICAg
aWYgKCFtX3VybFJlZ2V4QnJlYWtwb2ludHMucmVtb3ZlKHVybCkpCisgICAgICAgICAgICBlcnJv
clN0cmluZyA9ICJNaXNzaW5nIGJyZWFrcG9pbnQgZm9yIGdpdmVuIHJlZ2V4Il9zOworICAgIH0g
ZWxzZSB7CisgICAgICAgIGlmICghbV91cmxUZXh0QnJlYWtwb2ludHMucmVtb3ZlKHVybCkpCisg
ICAgICAgICAgICBlcnJvclN0cmluZyA9ICJNaXNzaW5nIGJyZWFrcG9pbnQgZm9yIGdpdmVuIFVS
TCJfczsKKyAgICB9CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6YnJlYWtP
blVSTElmTmVlZGVkKGNvbnN0IFN0cmluZyYgdXJsLCBVUkxCcmVha3BvaW50U291cmNlIHNvdXJj
ZSkKQEAgLTM2MiwzOCArMzc1LDQ4IEBAIHZvaWQgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6
YnJlYWtPblVSTElmTmVlZGVkKGNvbnN0IFN0cmluZyYgdXJsLCBVUkxCcmVha3BvCiAgICAgaWYg
KCFtX2RlYnVnZ2VyQWdlbnQtPmJyZWFrcG9pbnRzQWN0aXZlKCkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIFN0cmluZyBicmVha3BvaW50VVJMOwotICAgIGlmIChtX3BhdXNlT25BbGxVUkxzRW5h
YmxlZCkKLSAgICAgICAgYnJlYWtwb2ludFVSTCA9IGVtcHR5U3RyaW5nKCk7Ci0gICAgZWxzZSB7
Ci0gICAgICAgIGZvciAoYXV0byYgW3F1ZXJ5LCB0eXBlXSA6IG1fdXJsQnJlYWtwb2ludHMpIHsK
LSAgICAgICAgICAgIGJvb2wgaXNSZWdleCA9IHR5cGUgPT0gVVJMQnJlYWtwb2ludFR5cGU6OlJl
Z3VsYXJFeHByZXNzaW9uOwotICAgICAgICAgICAgYXV0byBzZWFyY2hTdHJpbmdUeXBlID0gaXNS
ZWdleCA/IENvbnRlbnRTZWFyY2hVdGlsaXRpZXM6OlNlYXJjaFN0cmluZ1R5cGU6OlJlZ2V4IDog
Q29udGVudFNlYXJjaFV0aWxpdGllczo6U2VhcmNoU3RyaW5nVHlwZTo6Q29udGFpbnNTdHJpbmc7
Ci0gICAgICAgICAgICBhdXRvIHJlZ2V4ID0gQ29udGVudFNlYXJjaFV0aWxpdGllczo6Y3JlYXRl
UmVndWxhckV4cHJlc3Npb25Gb3JTZWFyY2hTdHJpbmcocXVlcnksIGZhbHNlLCBzZWFyY2hTdHJp
bmdUeXBlKTsKKyAgICBjb25zdGV4cHIgYm9vbCBjYXNlU2Vuc2l0aXZlID0gZmFsc2U7CisKKyAg
ICBhdXRvIGJyZWFrcG9pbnRVUkwgPSBlbXB0eVN0cmluZygpOworICAgIGF1dG8gYnJlYWtwb2lu
dCA9IG1fcGF1c2VPbkFsbFVSTHNCcmVha3BvaW50LmNvcHlSZWYoKTsKKyAgICBpZiAoIWJyZWFr
cG9pbnQpIHsKKyAgICAgICAgZm9yIChhdXRvJiBbcXVlcnksIHRleHRCcmVha3BvaW50XSA6IG1f
dXJsVGV4dEJyZWFrcG9pbnRzKSB7CisgICAgICAgICAgICBhdXRvIHJlZ2V4ID0gQ29udGVudFNl
YXJjaFV0aWxpdGllczo6Y3JlYXRlUmVndWxhckV4cHJlc3Npb25Gb3JTZWFyY2hTdHJpbmcocXVl
cnksIGNhc2VTZW5zaXRpdmUsIENvbnRlbnRTZWFyY2hVdGlsaXRpZXM6OlNlYXJjaFN0cmluZ1R5
cGU6OkNvbnRhaW5zU3RyaW5nKTsKICAgICAgICAgICAgIGlmIChyZWdleC5tYXRjaCh1cmwpICE9
IC0xKSB7CisgICAgICAgICAgICAgICAgYnJlYWtwb2ludCA9IHRleHRCcmVha3BvaW50LmNvcHlS
ZWYoKTsKICAgICAgICAgICAgICAgICBicmVha3BvaW50VVJMID0gcXVlcnk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0KLSAgICBpZiAo
YnJlYWtwb2ludFVSTC5pc051bGwoKSkKKyAgICBpZiAoIWJyZWFrcG9pbnQpIHsKKyAgICAgICAg
Zm9yIChhdXRvJiBbcXVlcnksIHJlZ2V4QnJlYWtwb2ludF0gOiBtX3VybFJlZ2V4QnJlYWtwb2lu
dHMpIHsKKyAgICAgICAgICAgIGF1dG8gcmVnZXggPSBDb250ZW50U2VhcmNoVXRpbGl0aWVzOjpj
cmVhdGVSZWd1bGFyRXhwcmVzc2lvbkZvclNlYXJjaFN0cmluZyhxdWVyeSwgY2FzZVNlbnNpdGl2
ZSwgQ29udGVudFNlYXJjaFV0aWxpdGllczo6U2VhcmNoU3RyaW5nVHlwZTo6UmVnZXgpOworICAg
ICAgICAgICAgaWYgKHJlZ2V4Lm1hdGNoKHVybCkgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICBi
cmVha3BvaW50ID0gcmVnZXhCcmVha3BvaW50LmNvcHlSZWYoKTsKKyAgICAgICAgICAgICAgICBi
cmVha3BvaW50VVJMID0gcXVlcnk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKCFicmVha3BvaW50KQogICAgICAgICByZXR1
cm47CiAKLSAgICBJbnNwZWN0b3I6OkRlYnVnZ2VyRnJvbnRlbmREaXNwYXRjaGVyOjpSZWFzb24g
YnJlYWtSZWFzb247Ci0gICAgaWYgKHNvdXJjZSA9PSBVUkxCcmVha3BvaW50U291cmNlOjpGZXRj
aCkKKyAgICBhdXRvIGJyZWFrUmVhc29uID0gSW5zcGVjdG9yOjpEZWJ1Z2dlckZyb250ZW5kRGlz
cGF0Y2hlcjo6UmVhc29uOjpPdGhlcjsKKyAgICBzd2l0Y2ggKHNvdXJjZSkgeworICAgIGNhc2Ug
VVJMQnJlYWtwb2ludFNvdXJjZTo6RmV0Y2g6CiAgICAgICAgIGJyZWFrUmVhc29uID0gSW5zcGVj
dG9yOjpEZWJ1Z2dlckZyb250ZW5kRGlzcGF0Y2hlcjo6UmVhc29uOjpGZXRjaDsKLSAgICBlbHNl
IGlmIChzb3VyY2UgPT0gVVJMQnJlYWtwb2ludFNvdXJjZTo6WEhSKQorICAgICAgICBicmVhazsK
KworICAgIGNhc2UgVVJMQnJlYWtwb2ludFNvdXJjZTo6WEhSOgogICAgICAgICBicmVha1JlYXNv
biA9IEluc3BlY3Rvcjo6RGVidWdnZXJGcm9udGVuZERpc3BhdGNoZXI6OlJlYXNvbjo6WEhSOwot
ICAgIGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgYnJlYWtS
ZWFzb24gPSBJbnNwZWN0b3I6OkRlYnVnZ2VyRnJvbnRlbmREaXNwYXRjaGVyOjpSZWFzb246Ok90
aGVyOworICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBSZWY8SlNPTjo6T2JqZWN0PiBldmVu
dERhdGEgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwogICAgIGV2ZW50RGF0YS0+c2V0U3RyaW5n
KCJicmVha3BvaW50VVJMIiwgYnJlYWtwb2ludFVSTCk7CiAgICAgZXZlbnREYXRhLT5zZXRTdHJp
bmcoInVybCIsIHVybCk7Ci0gICAgbV9kZWJ1Z2dlckFnZW50LT5icmVha1Byb2dyYW0oYnJlYWtS
ZWFzb24sIFdURk1vdmUoZXZlbnREYXRhKSk7CisgICAgbV9kZWJ1Z2dlckFnZW50LT5icmVha1By
b2dyYW0oYnJlYWtSZWFzb24sIFdURk1vdmUoZXZlbnREYXRhKSwgV1RGTW92ZShicmVha3BvaW50
KSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6d2lsbFNlbmRYTUxIdHRw
UmVxdWVzdChjb25zdCBTdHJpbmcmIHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmgKaW5kZXggOWY2
ZTYzOGUzM2VlLi40ZWMwZjA4YzliNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oCkBAIC02NSw4
ICs2NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpIGNvbnN0OwogCiAg
ICAgLy8gRE9NRGVidWdnZXJCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIKLSAgICB2b2lkIHNldFVS
TEJyZWFrcG9pbnQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgYm9vbCog
b3B0aW9uYWxJc1JlZ2V4KSBmaW5hbDsKLSAgICB2b2lkIHJlbW92ZVVSTEJyZWFrcG9pbnQoRXJy
b3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHVybCkgZmluYWw7CisgICAgdm9pZCBzZXRVUkxCcmVh
a3BvaW50KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IGJvb2wqIGlzUmVn
ZXgsIGNvbnN0IEpTT046Ok9iamVjdCogb3B0aW9ucykgZmluYWw7CisgICAgdm9pZCByZW1vdmVV
UkxCcmVha3BvaW50KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IGJvb2wq
IGlzUmVnZXgpIGZpbmFsOwogICAgIHZvaWQgc2V0RXZlbnRCcmVha3BvaW50KEVycm9yU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiBicmVha3BvaW50VHlwZSwgY29uc3QgU3RyaW5nKiBldmVudE5hbWUs
IGNvbnN0IEpTT046Ok9iamVjdCogb3B0aW9ucykgZmluYWw7CiAgICAgdm9pZCByZW1vdmVFdmVu
dEJyZWFrcG9pbnQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGJyZWFrcG9pbnRUeXBlLCBj
b25zdCBTdHJpbmcqIGV2ZW50TmFtZSkgZmluYWw7CiAKQEAgLTEwNCw5ICsxMDQsOSBAQCBwcml2
YXRlOgogICAgIFJlZlB0cjxKU0M6OkJyZWFrcG9pbnQ+IG1fcGF1c2VPbkFsbExpc3RlbmVyc0Jy
ZWFrcG9pbnQ7CiAgICAgUmVmUHRyPEpTQzo6QnJlYWtwb2ludD4gbV9wYXVzZU9uQWxsVGltZW91
dHNCcmVha3BvaW50OwogCi0gICAgZW51bSBjbGFzcyBVUkxCcmVha3BvaW50VHlwZSB7IFJlZ3Vs
YXJFeHByZXNzaW9uLCBUZXh0IH07Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFVSTEJyZWFrcG9pbnRU
eXBlPiBtX3VybEJyZWFrcG9pbnRzOwotICAgIGJvb2wgbV9wYXVzZU9uQWxsVVJMc0VuYWJsZWQg
eyBmYWxzZSB9OworICAgIEhhc2hNYXA8U3RyaW5nLCBSZWY8SlNDOjpCcmVha3BvaW50Pj4gbV91
cmxUZXh0QnJlYWtwb2ludHM7CisgICAgSGFzaE1hcDxTdHJpbmcsIFJlZjxKU0M6OkJyZWFrcG9p
bnQ+PiBtX3VybFJlZ2V4QnJlYWtwb2ludHM7CisgICAgUmVmUHRyPEpTQzo6QnJlYWtwb2ludD4g
bV9wYXVzZU9uQWxsVVJMc0JyZWFrcG9pbnQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAzMTkzMmNkMGMyNjcuLjBjY2IzN2MyMTBlZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMjAtMDktMDIgIERl
dmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IGFsbG93IHVybCBicmVha3BvaW50cyB0byBiZSBjb25maWd1cmVkCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU3OTMKKworICAgICAgICBSZXZpZXdl
ZCBieSBCcmlhbiBCdXJnLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvVVJMQnJl
YWtwb2ludC5qczoKKyAgICAgICAgKFdJLlVSTEJyZWFrcG9pbnQuZ2V0IGVkaXRhYmxlKTogQWRk
ZWQuCisgICAgICAgIChXSS5VUkxCcmVha3BvaW50LmZyb21KU09OKToKKyAgICAgICAgKFdJLlVS
TEJyZWFrcG9pbnQucHJvdG90eXBlLmdldCBlZGl0YWJsZSk6CisKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTURlYnVnZ2VyTWFuYWdlci5qczoKKyAgICAgICAgKFdJLkRP
TURlYnVnZ2VyTWFuYWdlcik6CisgICAgICAgIChXSS5ET01EZWJ1Z2dlck1hbmFnZXIucHJvdG90
eXBlLmluaXRpYWxpemVUYXJnZXQpOgorICAgICAgICAoV0kuRE9NRGVidWdnZXJNYW5hZ2VyLnBy
b3RvdHlwZS5hZGRVUkxCcmVha3BvaW50KToKKyAgICAgICAgKFdJLkRPTURlYnVnZ2VyTWFuYWdl
ci5wcm90b3R5cGUucmVtb3ZlVVJMQnJlYWtwb2ludCk6CisgICAgICAgIChXSS5ET01EZWJ1Z2dl
ck1hbmFnZXIucHJvdG90eXBlLl9zZXRVUkxCcmVha3BvaW50KTogQWRkZWQuCisgICAgICAgIChX
SS5ET01EZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBlLl9yZW1vdmVVUkxCcmVha3BvaW50KTogQWRk
ZWQuCisgICAgICAgIChXSS5ET01EZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBlLl9oYW5kbGVVUkxC
cmVha3BvaW50RGlzYWJsZWRTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV0kuRE9NRGVidWdnZXJN
YW5hZ2VyLnByb3RvdHlwZS5faGFuZGxlVVJMQnJlYWtwb2ludEVkaXRhYmxlUHJvcGVydHlDaGFu
Z2VkKTogQWRkZWQuCisgICAgICAgIChXSS5ET01EZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBlLl9o
YW5kbGVVUkxCcmVha3BvaW50QWN0aW9uc0NoYW5nZWQpOiBBZGRlZC4KKyAgICAgICAgKFdJLkRP
TURlYnVnZ2VyTWFuYWdlci5wcm90b3R5cGUuX3VwZGF0ZVVSTEJyZWFrcG9pbnQpOiBEZWxldGVk
LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Tb3VyY2VzTmF2aWdhdGlvblNpZGVi
YXJQYW5lbC5qczoKKyAgICAgICAgKFdJLlNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsKToK
KyAgICAgICAgKFdJLlNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fcG9w
dWxhdGVDcmVhdGVCcmVha3BvaW50Q29udGV4dE1lbnUpOgorICAgICAgICAoV0kuU291cmNlc05h
dmlnYXRpb25TaWRlYmFyUGFuZWwucHJvdG90eXBlLl9wb3B1bGF0ZUNyZWF0ZUJyZWFrcG9pbnRD
b250ZXh0TWVudS5hZGRUb2dnbGVGb3JTcGVjaWFsQnJlYWtwb2ludCk6IEFkZGVkLgorICAgICAg
ICAoV0kuU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwucHJvdG90eXBlLl9wb3B1bGF0ZUNy
ZWF0ZUJyZWFrcG9pbnRDb250ZXh0TWVudS5hZGRUb2dnbGVGb3JTcGVjaWFsRXZlbnRCcmVha3Bv
aW50KTogRGVsZXRlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVVJMQnJlYWtw
b2ludFBvcG92ZXIuanM6CisgICAgICAgIChXSS5VUkxCcmVha3BvaW50UG9wb3Zlci5nZXQgZWRp
dGFibGUpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9CYXNlL1NldHRpbmcuanM6CisKIDIw
MjAtMDktMDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdl
YiBJbnNwZWN0b3I6IGFsbG93IHNwZWNpYWwgSmF2YVNjcmlwdCBicmVha3BvaW50cyB0byBiZSBj
b25maWd1cmVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9CYXNlL1NldHRpbmcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9C
YXNlL1NldHRpbmcuanMKaW5kZXggNTNlNGU5MTQ1NGZjLi4zMDRmZjUyZGUwNWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvU2V0dGluZy5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1NldHRpbmcuanMK
QEAgLTIwNSw3ICsyMDUsNiBAQCBXSS5zZXR0aW5ncyA9IHsKICAgICBzZWFyY2hSZWd1bGFyRXhw
cmVzc2lvbjogbmV3IFdJLlNldHRpbmcoInNlYXJjaC1yZWd1bGFyLWV4cHJlc3Npb24iLCBmYWxz
ZSksCiAgICAgc2VsZWN0ZWROZXR3b3JrRGV0YWlsQ29udGVudFZpZXdJZGVudGlmaWVyOiBuZXcg
V0kuU2V0dGluZygibmV0d29yay1kZXRhaWwtY29udGVudC12aWV3LWlkZW50aWZpZXIiLCAicHJl
dmlldyIpLAogICAgIHNvdXJjZU1hcHNFbmFibGVkOiBuZXcgV0kuU2V0dGluZygic291cmNlLW1h
cHMtZW5hYmxlZCIsIHRydWUpLAotICAgIHNob3dBbGxSZXF1ZXN0c0JyZWFrcG9pbnQ6IG5ldyBX
SS5TZXR0aW5nKCJzaG93LWFsbC1yZXF1ZXN0cy1icmVha3BvaW50IiwgZmFsc2UpLAogICAgIHNo
b3dDYW52YXNQYXRoOiBuZXcgV0kuU2V0dGluZygic2hvdy1jYW52YXMtcGF0aCIsIGZhbHNlKSwK
ICAgICBzaG93SW1hZ2VHcmlkOiBuZXcgV0kuU2V0dGluZygic2hvdy1pbWFnZS1ncmlkIiwgdHJ1
ZSksCiAgICAgc2hvd0ludmlzaWJsZUNoYXJhY3RlcnM6IG5ldyBXSS5TZXR0aW5nKCJzaG93LWlu
dmlzaWJsZS1jaGFyYWN0ZXJzIiwgISFXSS5TZXR0aW5nLm1pZ3JhdGVWYWx1ZSgic2hvdy1pbnZh
bGlkLWNoYXJhY3RlcnMiKSksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Db250cm9sbGVycy9ET01EZWJ1Z2dlck1hbmFnZXIuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01EZWJ1Z2dlck1hbmFnZXIu
anMKaW5kZXggMThjNmYyMjEyYzI3Li5jODg2YmYxOGJiMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTURlYnVnZ2VyTWFuYWdl
ci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVy
cy9ET01EZWJ1Z2dlck1hbmFnZXIuanMKQEAgLTM5LDExICszOSw3IEBAIFdJLkRPTURlYnVnZ2Vy
TWFuYWdlciA9IGNsYXNzIERPTURlYnVnZ2VyTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAg
ICAgICB0aGlzLl9hbGxUaW1lb3V0c0JyZWFrcG9pbnQgPSBudWxsOwogCiAgICAgICAgIHRoaXMu
X3VybEJyZWFrcG9pbnRzID0gW107Ci0KLSAgICAgICAgdGhpcy5fYWxsUmVxdWVzdHNCcmVha3Bv
aW50RW5hYmxlZFNldHRpbmcgPSBuZXcgV0kuU2V0dGluZygiYnJlYWstb24tYWxsLXJlcXVlc3Rz
IiwgZmFsc2UpOwotICAgICAgICB0aGlzLl9hbGxSZXF1ZXN0c0JyZWFrcG9pbnQgPSBuZXcgV0ku
VVJMQnJlYWtwb2ludChXSS5VUkxCcmVha3BvaW50LlR5cGUuVGV4dCwgIiIsIHsKLSAgICAgICAg
ICAgIGRpc2FibGVkOiAhdGhpcy5fYWxsUmVxdWVzdHNCcmVha3BvaW50RW5hYmxlZFNldHRpbmcu
dmFsdWUsCi0gICAgICAgIH0pOworICAgICAgICB0aGlzLl9hbGxSZXF1ZXN0c0JyZWFrcG9pbnQg
PSBudWxsOwogCiAgICAgICAgIFdJLkRPTUJyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihXSS5C
cmVha3BvaW50LkV2ZW50LkRpc2FibGVkU3RhdGVEaWRDaGFuZ2UsIHRoaXMuX2hhbmRsZURPTUJy
ZWFrcG9pbnREaXNhYmxlZFN0YXRlQ2hhbmdlZCwgdGhpcyk7CiAKQEAgLTU0LDYgKzUwLDEwIEBA
IFdJLkRPTURlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERPTURlYnVnZ2VyTWFuYWdlciBleHRlbmRz
IFdJLk9iamVjdAogICAgICAgICBXSS5FdmVudEJyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihX
SS5CcmVha3BvaW50LkV2ZW50LkFjdGlvbnNEaWRDaGFuZ2UsIHRoaXMuX2hhbmRsZUV2ZW50QnJl
YWtwb2ludEFjdGlvbnNDaGFuZ2VkLCB0aGlzKTsKIAogICAgICAgICBXSS5VUkxCcmVha3BvaW50
LmFkZEV2ZW50TGlzdGVuZXIoV0kuQnJlYWtwb2ludC5FdmVudC5EaXNhYmxlZFN0YXRlRGlkQ2hh
bmdlLCB0aGlzLl9oYW5kbGVVUkxCcmVha3BvaW50RGlzYWJsZWRTdGF0ZUNoYW5nZWQsIHRoaXMp
OworICAgICAgICBXSS5VUkxCcmVha3BvaW50LmFkZEV2ZW50TGlzdGVuZXIoV0kuQnJlYWtwb2lu
dC5FdmVudC5Db25kaXRpb25EaWRDaGFuZ2UsIHRoaXMuX2hhbmRsZVVSTEJyZWFrcG9pbnRFZGl0
YWJsZVByb3BlcnR5Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgIFdJLlVSTEJyZWFrcG9pbnQuYWRk
RXZlbnRMaXN0ZW5lcihXSS5CcmVha3BvaW50LkV2ZW50Lklnbm9yZUNvdW50RGlkQ2hhbmdlLCB0
aGlzLl9oYW5kbGVVUkxCcmVha3BvaW50RWRpdGFibGVQcm9wZXJ0eUNoYW5nZWQsIHRoaXMpOwor
ICAgICAgICBXSS5VUkxCcmVha3BvaW50LmFkZEV2ZW50TGlzdGVuZXIoV0kuQnJlYWtwb2ludC5F
dmVudC5BdXRvQ29udGludWVEaWRDaGFuZ2UsIHRoaXMuX2hhbmRsZVVSTEJyZWFrcG9pbnRFZGl0
YWJsZVByb3BlcnR5Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgIFdJLlVSTEJyZWFrcG9pbnQuYWRk
RXZlbnRMaXN0ZW5lcihXSS5CcmVha3BvaW50LkV2ZW50LkFjdGlvbnNEaWRDaGFuZ2UsIHRoaXMu
X2hhbmRsZVVSTEJyZWFrcG9pbnRBY3Rpb25zQ2hhbmdlZCwgdGhpcyk7CiAKICAgICAgICAgV0ku
ZG9tTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkRPTU1hbmFnZXIuRXZlbnQuTm9kZVJlbW92
ZWQsIHRoaXMuX25vZGVSZW1vdmVkLCB0aGlzKTsKICAgICAgICAgV0kuZG9tTWFuYWdlci5hZGRF
dmVudExpc3RlbmVyKFdJLkRPTU1hbmFnZXIuRXZlbnQuTm9kZUluc2VydGVkLCB0aGlzLl9ub2Rl
SW5zZXJ0ZWQsIHRoaXMpOwpAQCAtODgsNiArODgsMTUgQEAgV0kuRE9NRGVidWdnZXJNYW5hZ2Vy
ID0gY2xhc3MgRE9NRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAg
ICB9KSgpKTsKICAgICAgICAgfTsKIAorICAgICAgICBmdW5jdGlvbiBsb2FkTGVnYWN5U3BlY2lh
bEJyZWFrcG9pbnQoc2hvd25TZXR0aW5nc0tleSwgZW5hYmxlZFNldHRpbmdzS2V5LCBjYWxsYmFj
aykgeworICAgICAgICAgICAgaWYgKCFXSS5TZXR0aW5nLm1pZ3JhdGVWYWx1ZShzaG93blNldHRp
bmdzS2V5KSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIHJldHVybiBj
YWxsYmFjayh7CisgICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICFXSS5TZXR0aW5nLm1pZ3JhdGVW
YWx1ZShlbmFibGVkU2V0dGluZ3NLZXkpLAorICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKwog
ICAgICAgICBpZiAoRE9NRGVidWdnZXJNYW5hZ2VyLnN1cHBvcnRzRE9NQnJlYWtwb2ludHMoKSkg
ewogICAgICAgICAgICAgbG9hZEJyZWFrcG9pbnRzKFdJLkRPTUJyZWFrcG9pbnQsIFdJLm9iamVj
dFN0b3Jlcy5kb21CcmVha3BvaW50cywgWyJkb20tYnJlYWtwb2ludHMiXSwgKGJyZWFrcG9pbnQp
ID0+IHsKICAgICAgICAgICAgICAgICB0aGlzLmFkZERPTUJyZWFrcG9pbnQoYnJlYWtwb2ludCk7
CkBAIC05OSwyNCArMTA4LDE4IEBAIFdJLkRPTURlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERPTURl
YnVnZ2VyTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgICAgIHRoaXMuYWRk
RXZlbnRCcmVha3BvaW50KGJyZWFrcG9pbnQpOwogICAgICAgICAgICAgfSk7CiAKLSAgICAgICAg
ICAgIGxldCBsb2FkTGVnYWN5R2xvYmFsRXZlbnRCcmVha3BvaW50ID0gKHR5cGUsIHNob3duU2V0
dGluZ3NLZXksIGVuYWJsZWRTZXR0aW5nc0tleSkgPT4gewotICAgICAgICAgICAgICAgIGlmICgh
V0kuU2V0dGluZy5taWdyYXRlVmFsdWUoc2hvd25TZXR0aW5nc0tleSkpCi0gICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgV0kuRXZlbnRCcmVh
a3BvaW50KHR5cGUsIHsKLSAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICFXSS5TZXR0aW5n
Lm1pZ3JhdGVWYWx1ZShlbmFibGVkU2V0dGluZ3NLZXkpLAotICAgICAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIHRoaXMuX2FsbEFuaW1hdGlvbkZyYW1lc0JyZWFr
cG9pbnQgPz89IGxvYWRMZWdhY3lHbG9iYWxFdmVudEJyZWFrcG9pbnQoV0kuRXZlbnRCcmVha3Bv
aW50LlR5cGUuQW5pbWF0aW9uRnJhbWUsICJzaG93LWFsbC1hbmltYXRpb24tZnJhbWVzLWJyZWFr
cG9pbnQiLCAiYnJlYWstb24tYWxsLWFuaW1hdGlvbi1mcmFtZXMiKTsKLSAgICAgICAgICAgIHRo
aXMuX2FsbEludGVydmFsc0JyZWFrcG9pbnQgPz89IGxvYWRMZWdhY3lHbG9iYWxFdmVudEJyZWFr
cG9pbnQoV0kuRXZlbnRCcmVha3BvaW50LlR5cGUuSW50ZXJ2YWwsICJzaG93LWFsbC1pbnRldmVy
YWxzLWJyZWFrcG9pbnQiLCAiYnJlYWstb24tYWxsLWludGVydmFscyIpOwotICAgICAgICAgICAg
dGhpcy5fYWxsTGlzdGVuZXJzQnJlYWtwb2ludCA/Pz0gbG9hZExlZ2FjeUdsb2JhbEV2ZW50QnJl
YWtwb2ludChXSS5FdmVudEJyZWFrcG9pbnQuVHlwZS5MaXN0ZW5lciwgInNob3ctYWxsLWxpc3Rl
bmVycy1icmVha3BvaW50IiwgImJyZWFrLW9uLWFsbC1saXN0ZW5lcnMiKTsKLSAgICAgICAgICAg
IHRoaXMuX2FsbFRpbWVvdXRzQnJlYWtwb2ludCA/Pz0gbG9hZExlZ2FjeUdsb2JhbEV2ZW50QnJl
YWtwb2ludChXSS5FdmVudEJyZWFrcG9pbnQuVHlwZS5UaW1lb3V0LCAic2hvdy1hbGwtdGltZW91
dHMtYnJlYWtwb2ludCIsICJicmVhay1vbi1hbGwtdGltZW91dHMiKTsKKyAgICAgICAgICAgIHRo
aXMuX2FsbEFuaW1hdGlvbkZyYW1lc0JyZWFrcG9pbnQgPz89IGxvYWRMZWdhY3lTcGVjaWFsQnJl
YWtwb2ludCgic2hvdy1hbGwtYW5pbWF0aW9uLWZyYW1lcy1icmVha3BvaW50IiwgImJyZWFrLW9u
LWFsbC1hbmltYXRpb24tZnJhbWVzIiwgKG9wdGlvbnMpID0+IG5ldyBXSS5FdmVudEJyZWFrcG9p
bnQoV0kuRXZlbnRCcmVha3BvaW50LlR5cGUuQW5pbWF0aW9uRnJhbWUsIG9wdGlvbnMpKTsKKyAg
ICAgICAgICAgIHRoaXMuX2FsbEludGVydmFsc0JyZWFrcG9pbnQgPz89IGxvYWRMZWdhY3lTcGVj
aWFsQnJlYWtwb2ludCgic2hvdy1hbGwtaW50ZXZlcmFscy1icmVha3BvaW50IiwgImJyZWFrLW9u
LWFsbC1pbnRlcnZhbHMiLCAob3B0aW9ucykgPT4gbmV3IFdJLkV2ZW50QnJlYWtwb2ludChXSS5F
dmVudEJyZWFrcG9pbnQuVHlwZS5JbnRlcnZhbCwgb3B0aW9ucykpOworICAgICAgICAgICAgdGhp
cy5fYWxsTGlzdGVuZXJzQnJlYWtwb2ludCA/Pz0gbG9hZExlZ2FjeVNwZWNpYWxCcmVha3BvaW50
KCJzaG93LWFsbC1saXN0ZW5lcnMtYnJlYWtwb2ludCIsICJicmVhay1vbi1hbGwtbGlzdGVuZXJz
IiwgKG9wdGlvbnMpID0+IG5ldyBXSS5FdmVudEJyZWFrcG9pbnQoV0kuRXZlbnRCcmVha3BvaW50
LlR5cGUuTGlzdGVuZXIsIG9wdGlvbnMpKTsKKyAgICAgICAgICAgIHRoaXMuX2FsbFRpbWVvdXRz
QnJlYWtwb2ludCA/Pz0gbG9hZExlZ2FjeVNwZWNpYWxCcmVha3BvaW50KCJzaG93LWFsbC10aW1l
b3V0cy1icmVha3BvaW50IiwgImJyZWFrLW9uLWFsbC10aW1lb3V0cyIsIChvcHRpb25zKSA9PiBu
ZXcgV0kuRXZlbnRCcmVha3BvaW50KFdJLkV2ZW50QnJlYWtwb2ludC5UeXBlLlRpbWVvdXQsIG9w
dGlvbnMpKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChET01EZWJ1Z2dlck1hbmFnZXIuc3Vw
cG9ydHNVUkxCcmVha3BvaW50cygpIHx8IERPTURlYnVnZ2VyTWFuYWdlci5zdXBwb3J0c1hIUkJy
ZWFrcG9pbnRzKCkpIHsKICAgICAgICAgICAgIGxvYWRCcmVha3BvaW50cyhXSS5VUkxCcmVha3Bv
aW50LCBXSS5vYmplY3RTdG9yZXMudXJsQnJlYWtwb2ludHMsIFsieGhyLWJyZWFrcG9pbnRzIiwg
InVybC1icmVha3BvaW50cyJdLCAoYnJlYWtwb2ludCkgPT4gewogICAgICAgICAgICAgICAgIHRo
aXMuYWRkVVJMQnJlYWtwb2ludChicmVha3BvaW50KTsKICAgICAgICAgICAgIH0pOworCisgICAg
ICAgICAgICB0aGlzLl9hbGxSZXF1ZXN0c0JyZWFrcG9pbnQgPz89IGxvYWRMZWdhY3lTcGVjaWFs
QnJlYWtwb2ludCgic2hvdy1hbGwtcmVxdWVzdHMtYnJlYWtwb2ludCIsICJicmVhay1vbi1hbGwt
cmVxdWVzdHMiLCAob3B0aW9ucykgPT4gbmV3IFdJLlVSTEJyZWFrcG9pbnQoV0kuVVJMQnJlYWtw
b2ludC5UeXBlLlRleHQsICIiLCBvcHRpb25zKSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTE0
Miw4ICsxNDUsOCBAQCBXSS5ET01EZWJ1Z2dlck1hbmFnZXIgPSBjbGFzcyBET01EZWJ1Z2dlck1h
bmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgIGlmICh0aGlzLl9hbGxUaW1lb3V0
c0JyZWFrcG9pbnQgJiYgIXRoaXMuX2FsbFRpbWVvdXRzQnJlYWtwb2ludC5kaXNhYmxlZCkKICAg
ICAgICAgICAgICAgICB0aGlzLl9zZXRFdmVudEJyZWFrcG9pbnQodGhpcy5fYWxsVGltZW91dHNC
cmVha3BvaW50LCB0YXJnZXQpOwogCi0gICAgICAgICAgICBpZiAoIXRoaXMuX2FsbFJlcXVlc3Rz
QnJlYWtwb2ludC5kaXNhYmxlZCkKLSAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVVUkxCcmVh
a3BvaW50KHRoaXMuX2FsbFJlcXVlc3RzQnJlYWtwb2ludCwgdGFyZ2V0KTsKKyAgICAgICAgICAg
IGlmICh0aGlzLl9hbGxSZXF1ZXN0c0JyZWFrcG9pbnQpCisgICAgICAgICAgICAgICAgdGhpcy5f
c2V0VVJMQnJlYWtwb2ludCh0aGlzLl9hbGxSZXF1ZXN0c0JyZWFrcG9pbnQsIHRhcmdldCk7CiAK
ICAgICAgICAgICAgIGZvciAobGV0IGJyZWFrcG9pbnQgb2YgdGhpcy5fbGlzdGVuZXJCcmVha3Bv
aW50cykgewogICAgICAgICAgICAgICAgIGlmICghYnJlYWtwb2ludC5kaXNhYmxlZCkKQEAgLTE1
Miw3ICsxNTUsNyBAQCBXSS5ET01EZWJ1Z2dlck1hbmFnZXIgPSBjbGFzcyBET01EZWJ1Z2dlck1h
bmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgICAgICAgICAgZm9yIChsZXQgYnJlYWtwb2lu
dCBvZiB0aGlzLl91cmxCcmVha3BvaW50cykgewogICAgICAgICAgICAgICAgIGlmICghYnJlYWtw
b2ludC5kaXNhYmxlZCkKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlVVJMQnJlYWtw
b2ludChicmVha3BvaW50LCB0YXJnZXQpOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZXRV
UkxCcmVha3BvaW50KGJyZWFrcG9pbnQsIHRhcmdldCk7CiAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgIHRoaXMuX3Jlc3RvcmluZ0JyZWFrcG9pbnRzID0gZmFsc2U7CkBAIC00NDUsMjkgKzQ0
OCwyOCBAQCBXSS5ET01EZWJ1Z2dlck1hbmFnZXIgPSBjbGFzcyBET01EZWJ1Z2dlck1hbmFnZXIg
ZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIGFkZFVSTEJyZWFrcG9pbnQoYnJlYWtwb2ludCkKICAg
ICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGJyZWFrcG9pbnQgaW5zdGFuY2VvZiBXSS5VUkxC
cmVha3BvaW50KTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoYnJlYWtwb2ludCBpbnN0YW5jZW9m
IFdJLlVSTEJyZWFrcG9pbnQsIGJyZWFrcG9pbnQpOwogICAgICAgICBpZiAoIWJyZWFrcG9pbnQp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgaWYgKGJyZWFrcG9pbnQuc3Bl
Y2lhbCkgewotICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuRE9N
RGVidWdnZXJNYW5hZ2VyLkV2ZW50LlVSTEJyZWFrcG9pbnRBZGRlZCwge2JyZWFrcG9pbnR9KTsK
LSAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBjb25zb2xlLmFzc2VydCghYnJlYWtw
b2ludC5zcGVjaWFsLCBicmVha3BvaW50KTsKKyAgICAgICAgaWYgKGJyZWFrcG9pbnQudXJsKSB7
CisgICAgICAgICAgICBpZiAodGhpcy5fdXJsQnJlYWtwb2ludHMuc29tZSgoZW50cnkpID0+IGVu
dHJ5LnR5cGUgPT09IGJyZWFrcG9pbnQudHlwZSAmJiBlbnRyeS51cmwgPT09IGJyZWFrcG9pbnQu
dXJsKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICAgIHRoaXMu
X3VybEJyZWFrcG9pbnRzLnB1c2goYnJlYWtwb2ludCk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fYWxsUmVxdWVzdHNCcmVha3BvaW50LCB0aGlz
Ll9hbGxSZXF1ZXN0c0JyZWFrcG9pbnQsIGJyZWFrcG9pbnQpOworICAgICAgICAgICAgdGhpcy5f
YWxsUmVxdWVzdHNCcmVha3BvaW50ID0gYnJlYWtwb2ludDsKICAgICAgICAgfQogCi0gICAgICAg
IGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl91cmxCcmVha3BvaW50cy5pbmNsdWRlcyhicmVha3BvaW50
KSwgIkFscmVhZHkgYWRkZWQgVVJMIGJyZWFrcG9pbnQuIiwgYnJlYWtwb2ludCk7Ci0gICAgICAg
IGlmICh0aGlzLl91cmxCcmVha3BvaW50cy5pbmNsdWRlcyhicmVha3BvaW50KSkKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBpZiAodGhpcy5fdXJsQnJlYWtwb2ludHMuc29t
ZSgoZW50cnkpID0+IGVudHJ5LnR5cGUgPT09IGJyZWFrcG9pbnQudHlwZSAmJiBlbnRyeS51cmwg
PT09IGJyZWFrcG9pbnQudXJsKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAg
ICB0aGlzLl91cmxCcmVha3BvaW50cy5wdXNoKGJyZWFrcG9pbnQpOworICAgICAgICBXSS5kZWJ1
Z2dlck1hbmFnZXIuYWRkUHJvYmVzRm9yQnJlYWtwb2ludChicmVha3BvaW50KTsKIAogICAgICAg
ICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5ET01EZWJ1Z2dlck1hbmFnZXIuRXZl
bnQuVVJMQnJlYWtwb2ludEFkZGVkLCB7YnJlYWtwb2ludH0pOwogCiAgICAgICAgIGlmICghYnJl
YWtwb2ludC5kaXNhYmxlZCkgewogICAgICAgICAgICAgZm9yIChsZXQgdGFyZ2V0IG9mIFdJLnRh
cmdldHMpCi0gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlVVJMQnJlYWtwb2ludChicmVha3Bv
aW50LCB0YXJnZXQpOworICAgICAgICAgICAgICAgIHRoaXMuX3NldFVSTEJyZWFrcG9pbnQoYnJl
YWtwb2ludCwgdGFyZ2V0KTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICghdGhpcy5fcmVzdG9y
aW5nQnJlYWtwb2ludHMpCkBAIC00NzgsMzYgKzQ4MCwzMSBAQCBXSS5ET01EZWJ1Z2dlck1hbmFn
ZXIgPSBjbGFzcyBET01EZWJ1Z2dlck1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIHJl
bW92ZVVSTEJyZWFrcG9pbnQoYnJlYWtwb2ludCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KGJyZWFrcG9pbnQgaW5zdGFuY2VvZiBXSS5VUkxCcmVha3BvaW50KTsKKyAgICAgICAgY29u
c29sZS5hc3NlcnQoYnJlYWtwb2ludCBpbnN0YW5jZW9mIFdJLlVSTEJyZWFrcG9pbnQsIGJyZWFr
cG9pbnQpOwogICAgICAgICBpZiAoIWJyZWFrcG9pbnQpCiAgICAgICAgICAgICByZXR1cm47CiAK
LSAgICAgICAgaWYgKGJyZWFrcG9pbnQuc3BlY2lhbCkgewotICAgICAgICAgICAgYnJlYWtwb2lu
dC5kaXNhYmxlZCA9IHRydWU7Ci0gICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3Rl
bmVycyhXSS5ET01EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuVVJMQnJlYWtwb2ludFJlbW92ZWQsIHti
cmVha3BvaW50fSk7Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgIC8vIERpc2FibGUgdGhl
IGJyZWFrcG9pbnQgZmlyc3QsIHNvIHJlbW92aW5nIGFjdGlvbnMgZG9lc24ndCByZS1hZGQgdGhl
IGJyZWFrcG9pbnQuCisgICAgICAgIGJyZWFrcG9pbnQuZGlzYWJsZWQgPSB0cnVlOworICAgICAg
ICBicmVha3BvaW50LmNsZWFyQWN0aW9ucygpOworCisgICAgICAgIGlmIChicmVha3BvaW50LnVy
bCkgeworICAgICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fdXJsQnJlYWtwb2ludHMuaW5j
bHVkZXMoYnJlYWtwb2ludCksIGJyZWFrcG9pbnQpOworICAgICAgICAgICAgaWYgKCF0aGlzLl91
cmxCcmVha3BvaW50cy5pbmNsdWRlcyhicmVha3BvaW50KSkKKyAgICAgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgICAgIHRoaXMuX3VybEJyZWFrcG9pbnRzLnJlbW92ZShicmVha3BvaW50
KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2Fs
bFJlcXVlc3RzQnJlYWtwb2ludCwgdGhpcy5fYWxsUmVxdWVzdHNCcmVha3BvaW50KTsKKyAgICAg
ICAgICAgIHRoaXMuX2FsbFJlcXVlc3RzQnJlYWtwb2ludCA9IG51bGw7CiAgICAgICAgIH0KIAot
ICAgICAgICBpZiAoIXRoaXMuX3VybEJyZWFrcG9pbnRzLmluY2x1ZGVzKGJyZWFrcG9pbnQpKQot
ICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuX3VybEJyZWFrcG9pbnRzLnJlbW92
ZShicmVha3BvaW50LCB0cnVlKTsKLQogICAgICAgICBpZiAoIXRoaXMuX3Jlc3RvcmluZ0JyZWFr
cG9pbnRzKQogICAgICAgICAgICAgV0kub2JqZWN0U3RvcmVzLnVybEJyZWFrcG9pbnRzLmRlbGV0
ZU9iamVjdChicmVha3BvaW50KTsKIAorICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIucmVtb3Zl
UHJvYmVzRm9yQnJlYWtwb2ludChicmVha3BvaW50KTsKKwogICAgICAgICB0aGlzLmRpc3BhdGNo
RXZlbnRUb0xpc3RlbmVycyhXSS5ET01EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuVVJMQnJlYWtwb2lu
dFJlbW92ZWQsIHticmVha3BvaW50fSk7Ci0KLSAgICAgICAgaWYgKGJyZWFrcG9pbnQuZGlzYWJs
ZWQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZm9yIChsZXQgdGFyZ2V0IG9mIFdJ
LnRhcmdldHMpIHsKLSAgICAgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMi4xKTogRE9N
RGVidWdnZXIucmVtb3ZlVVJMQnJlYWtwb2ludCBkaWQgbm90IGV4aXN0LgotICAgICAgICAgICAg
aWYgKHRhcmdldC5oYXNDb21tYW5kKCJET01EZWJ1Z2dlci5yZW1vdmVVUkxCcmVha3BvaW50Iikp
Ci0gICAgICAgICAgICAgICAgdGFyZ2V0LkRPTURlYnVnZ2VyQWdlbnQucmVtb3ZlVVJMQnJlYWtw
b2ludChicmVha3BvaW50LnVybCk7Ci0gICAgICAgICAgICBlbHNlIGlmICh0YXJnZXQuaGFzQ29t
bWFuZCgiRE9NRGVidWdnZXIucmVtb3ZlWEhSQnJlYWtwb2ludCIpKQotICAgICAgICAgICAgICAg
IHRhcmdldC5ET01EZWJ1Z2dlckFnZW50LnJlbW92ZVhIUkJyZWFrcG9pbnQoYnJlYWtwb2ludC51
cmwpOwotICAgICAgICB9CiAgICAgfQogCiAgICAgLy8gUHJpdmF0ZQpAQCAtNjc1LDcgKzY3Miw4
IEBAIFdJLkRPTURlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERPTURlYnVnZ2VyTWFuYWdlciBleHRl
bmRzIFdJLk9iamVjdAogICAgICAgICBpZiAoYnJlYWtwb2ludCA9PT0gdGhpcy5fYWxsQW5pbWF0
aW9uRnJhbWVzQnJlYWtwb2ludCAmJiB0YXJnZXQudHlwZSA9PT0gV0kuVGFyZ2V0VHlwZS5Xb3Jr
ZXIpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9T
IDEyKTogRE9NRGVidWdnZXIuc2V0RXZlbnRCcmVha3BvaW50IGRpZCBub3QgZXhpc3QuCisgICAg
ICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMC4zKTogRE9NRGVidWdnZXIuc2V0RXZlbnRMaXN0
ZW5lckJyZWFrcG9pbnQgZGlkIG5vdCBleGlzdCB5ZXQuCisgICAgICAgIC8vIENPTVBBVElCSUxJ
VFkgKGlPUyAxMi4wKTogRE9NRGVidWdnZXIuc2V0RXZlbnRMaXN0ZW5lckJyZWFrcG9pbnQgd2Fz
IHJlcGxhY2VkIGJ5IERPTURlYnVnZ2VyLnNldEV2ZW50QnJlYWtwb2ludC4KICAgICAgICAgaWYg
KHRhcmdldC5oYXNDb21tYW5kKCJET01EZWJ1Z2dlci5zZXRFdmVudExpc3RlbmVyQnJlYWtwb2lu
dCIpKSB7CiAgICAgICAgICAgICBjb25zb2xlLmFzc2VydChicmVha3BvaW50LnR5cGUgPT09IFdJ
LkV2ZW50QnJlYWtwb2ludC5UeXBlLkxpc3RlbmVyKTsKIApAQCAtNjg2LDYgKzY4NCw3IEBAIFdJ
LkRPTURlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERPTURlYnVnZ2VyTWFuYWdlciBleHRlbmRzIFdJ
Lk9iamVjdAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKKyAgICAgICAgLy8gQ09N
UEFUSUJJTElUWSAoaU9TIDEyLjApOiBET01EZWJ1Z2dlci5zZXRFdmVudEJyZWFrcG9pbnQgZGlk
IG5vdCBleGlzdCB5ZXQuCiAgICAgICAgIGlmICghdGFyZ2V0Lmhhc0NvbW1hbmQoIkRPTURlYnVn
Z2VyLnNldEV2ZW50QnJlYWtwb2ludCIpKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC03MDUs
MTMgKzcwNCwxNSBAQCBXSS5ET01EZWJ1Z2dlck1hbmFnZXIgPSBjbGFzcyBET01EZWJ1Z2dlck1h
bmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgaWYgKGJyZWFrcG9pbnQgPT09IHRoaXMu
X2FsbEFuaW1hdGlvbkZyYW1lc0JyZWFrcG9pbnQgJiYgdGFyZ2V0LnR5cGUgPT09IFdJLlRhcmdl
dFR5cGUuV29ya2VyKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIC8vIENPTVBBVElC
SUxJVFkgKGlPUyAxMik6IERPTURlYnVnZ2VyLnJlbW92ZUV2ZW50QnJlYWtwb2ludCBkaWQgbm90
IGV4aXN0LgorICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTAuMyk6IERPTURlYnVnZ2Vy
LnJlbW92ZUV2ZW50TGlzdGVuZXJCcmVha3BvaW50IGRpZCBub3QgZXhpc3QgeWV0LgorICAgICAg
ICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTIuMCk6IERPTURlYnVnZ2VyLnJlbW92ZUV2ZW50TGlz
dGVuZXJCcmVha3BvaW50IHdhcyByZXBsYWNlZCBieSBET01EZWJ1Z2dlci5yZW1vdmVFdmVudEJy
ZWFrcG9pbnQuCiAgICAgICAgIGlmICh0YXJnZXQuaGFzQ29tbWFuZCgiRE9NRGVidWdnZXIucmVt
b3ZlRXZlbnRMaXN0ZW5lckJyZWFrcG9pbnQiKSkgewogICAgICAgICAgICAgY29uc29sZS5hc3Nl
cnQoYnJlYWtwb2ludC50eXBlID09PSBXSS5FdmVudEJyZWFrcG9pbnQuVHlwZS5MaXN0ZW5lcik7
CiAgICAgICAgICAgICB0YXJnZXQuRE9NRGVidWdnZXJBZ2VudC5yZW1vdmVFdmVudExpc3RlbmVy
QnJlYWtwb2ludChicmVha3BvaW50LmV2ZW50TmFtZSk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KIAorICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTIuMCk6IERPTURlYnVn
Z2VyLnJlbW92ZUV2ZW50QnJlYWtwb2ludCBkaWQgbm90IGV4aXN0IHlldC4KICAgICAgICAgaWYg
KCF0YXJnZXQuaGFzQ29tbWFuZCgiRE9NRGVidWdnZXIucmVtb3ZlRXZlbnRCcmVha3BvaW50Iikp
CiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTcyMCwzNCArNzIxLDUyIEBAIFdJLkRPTURlYnVn
Z2VyTWFuYWdlciA9IGNsYXNzIERPTURlYnVnZ2VyTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAog
ICAgICAgICB0YXJnZXQuRE9NRGVidWdnZXJBZ2VudC5yZW1vdmVFdmVudEJyZWFrcG9pbnQuaW52
b2tlKGNvbW1hbmRBcmd1bWVudHMpOwogICAgIH0KIAotICAgIF91cGRhdGVVUkxCcmVha3BvaW50
KGJyZWFrcG9pbnQsIHRhcmdldCkKKyAgICBfc2V0VVJMQnJlYWtwb2ludChicmVha3BvaW50LCB0
YXJnZXQpCiAgICAgewotICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTIuMSk6IERPTURl
YnVnZ2VyLnJlbW92ZVVSTEJyZWFrcG9pbnQgZGlkIG5vdCBleGlzdC4KLSAgICAgICAgaWYgKHRh
cmdldC5oYXNDb21tYW5kKCJET01EZWJ1Z2dlci5zZXRYSFJCcmVha3BvaW50IikgJiYgdGFyZ2V0
Lmhhc0NvbW1hbmQoIkRPTURlYnVnZ2VyLnJlbW92ZVhIUkJyZWFrcG9pbnQiKSkgewotICAgICAg
ICAgICAgaWYgKGJyZWFrcG9pbnQuZGlzYWJsZWQpCi0gICAgICAgICAgICAgICAgdGFyZ2V0LkRP
TURlYnVnZ2VyQWdlbnQucmVtb3ZlWEhSQnJlYWtwb2ludChicmVha3BvaW50LnVybCk7Ci0gICAg
ICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX3Jlc3RvcmluZ0JyZWFr
cG9pbnRzICYmICFXSS5kZWJ1Z2dlck1hbmFnZXIuYnJlYWtwb2ludHNEaXNhYmxlZFRlbXBvcmFy
aWx5KQotICAgICAgICAgICAgICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIuYnJlYWtwb2ludHNF
bmFibGVkID0gdHJ1ZTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIWJyZWFrcG9pbnQuZGlzYWJs
ZWQsIGJyZWFrcG9pbnQpOwogCi0gICAgICAgICAgICAgICAgbGV0IGlzUmVnZXggPSBicmVha3Bv
aW50LnR5cGUgPT09IFdJLlVSTEJyZWFrcG9pbnQuVHlwZS5SZWd1bGFyRXhwcmVzc2lvbjsKLSAg
ICAgICAgICAgICAgICB0YXJnZXQuRE9NRGVidWdnZXJBZ2VudC5zZXRYSFJCcmVha3BvaW50KGJy
ZWFrcG9pbnQudXJsLCBpc1JlZ2V4KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICghdGFyZ2V0Lmhhc0NvbW1hbmQoIkRPTURlYnVn
Z2VyLnNldFVSTEJyZWFrcG9pbnQiKSB8fCAhdGFyZ2V0Lmhhc0NvbW1hbmQoIkRPTURlYnVnZ2Vy
LnJlbW92ZVVSTEJyZWFrcG9pbnQiKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBp
ZiAoYnJlYWtwb2ludC5kaXNhYmxlZCkKLSAgICAgICAgICAgIHRhcmdldC5ET01EZWJ1Z2dlckFn
ZW50LnJlbW92ZVVSTEJyZWFrcG9pbnQoYnJlYWtwb2ludC51cmwpOwotICAgICAgICBlbHNlIHsK
KyAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDEwLjMpOiBET01EZWJ1Z2dlci5zZXRYSFJC
cmVha3BvaW50IGRpZCBub3QgZXhpc3QgeWV0LgorICAgICAgICAvLyBDT01QQVRJQklMSVRZIChp
T1MgMTIuMik6IERPTURlYnVnZ2VyLnNldFhIUkJyZWFrcG9pbnQgd2FzIHJlcGxhY2VkIGJ5IERP
TURlYnVnZ2VyLnNldFVSTEJyZWFrcG9pbnQuCisgICAgICAgIGlmICh0YXJnZXQuaGFzQ29tbWFu
ZCgiRE9NRGVidWdnZXIuc2V0WEhSQnJlYWtwb2ludCIpKSB7CiAgICAgICAgICAgICBpZiAoIXRo
aXMuX3Jlc3RvcmluZ0JyZWFrcG9pbnRzICYmICFXSS5kZWJ1Z2dlck1hbmFnZXIuYnJlYWtwb2lu
dHNEaXNhYmxlZFRlbXBvcmFyaWx5KQogICAgICAgICAgICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdl
ci5icmVha3BvaW50c0VuYWJsZWQgPSB0cnVlOwogCiAgICAgICAgICAgICBsZXQgaXNSZWdleCA9
IGJyZWFrcG9pbnQudHlwZSA9PT0gV0kuVVJMQnJlYWtwb2ludC5UeXBlLlJlZ3VsYXJFeHByZXNz
aW9uOwotICAgICAgICAgICAgdGFyZ2V0LkRPTURlYnVnZ2VyQWdlbnQuc2V0VVJMQnJlYWtwb2lu
dChicmVha3BvaW50LnVybCwgaXNSZWdleCk7CisgICAgICAgICAgICB0YXJnZXQuRE9NRGVidWdn
ZXJBZ2VudC5zZXRYSFJCcmVha3BvaW50KGJyZWFrcG9pbnQudXJsLCBpc1JlZ2V4KTsKKyAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQorCisgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlP
UyAxMi4yKTogRE9NRGVidWdnZXIuc2V0VVJMQnJlYWtwb2ludCBkaWQgbm90IGV4aXN0IHlldC4K
KyAgICAgICAgaWYgKCF0YXJnZXQuaGFzQ29tbWFuZCgiRE9NRGVidWdnZXIuc2V0VVJMQnJlYWtw
b2ludCIpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICghdGhpcy5fcmVzdG9y
aW5nQnJlYWtwb2ludHMgJiYgIVdJLmRlYnVnZ2VyTWFuYWdlci5icmVha3BvaW50c0Rpc2FibGVk
VGVtcG9yYXJpbHkpCisgICAgICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIuYnJlYWtwb2ludHNF
bmFibGVkID0gdHJ1ZTsKKworICAgICAgICB0YXJnZXQuRE9NRGVidWdnZXJBZ2VudC5zZXRVUkxC
cmVha3BvaW50Lmludm9rZSh7CisgICAgICAgICAgICB1cmw6IGJyZWFrcG9pbnQudXJsLAorICAg
ICAgICAgICAgaXNSZWdleDogYnJlYWtwb2ludC50eXBlID09PSBXSS5VUkxCcmVha3BvaW50LlR5
cGUuUmVndWxhckV4cHJlc3Npb24sCisgICAgICAgICAgICBvcHRpb25zOiBicmVha3BvaW50Lm9w
dGlvbnNUb1Byb3RvY29sKCksCisgICAgICAgIH0pOworICAgIH0KKworICAgIF9yZW1vdmVVUkxC
cmVha3BvaW50KGJyZWFrcG9pbnQsIHRhcmdldCkKKyAgICB7CisgICAgICAgIC8vIENPTVBBVElC
SUxJVFkgKGlPUyAxMC4zKTogRE9NRGVidWdnZXIucmVtb3ZlWEhSQnJlYWtwb2ludCBkaWQgbm90
IGV4aXN0IHlldC4KKyAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDEyLjIpOiBET01EZWJ1
Z2dlci5yZW1vdmVYSFJCcmVha3BvaW50IHdhcyByZXBsYWNlZCBieSBET01EZWJ1Z2dlci5zZXRV
UkxCcmVha3BvaW50LgorICAgICAgICBpZiAodGFyZ2V0Lmhhc0NvbW1hbmQoIkRPTURlYnVnZ2Vy
LnJlbW92ZVhIUkJyZWFrcG9pbnQiKSkgeworICAgICAgICAgICAgdGFyZ2V0LkRPTURlYnVnZ2Vy
QWdlbnQucmVtb3ZlWEhSQnJlYWtwb2ludChicmVha3BvaW50LnVybCk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTIuMik6
IERPTURlYnVnZ2VyLnJlbW92ZVVSTEJyZWFrcG9pbnQgZGlkIG5vdCBleGlzdCB5ZXQuCisgICAg
ICAgIGlmICghdGFyZ2V0Lmhhc0NvbW1hbmQoIkRPTURlYnVnZ2VyLnJlbW92ZVVSTEJyZWFrcG9p
bnQiKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0YXJnZXQuRE9NRGVidWdnZXJB
Z2VudC5yZW1vdmVVUkxCcmVha3BvaW50Lmludm9rZSh7CisgICAgICAgICAgICB1cmw6IGJyZWFr
cG9pbnQudXJsLAorICAgICAgICAgICAgaXNSZWdleDogYnJlYWtwb2ludC50eXBlID09PSBXSS5V
UkxCcmVha3BvaW50LlR5cGUuUmVndWxhckV4cHJlc3Npb24sCisgICAgICAgIH0pOwogICAgIH0K
IAogICAgIF9oYW5kbGVET01CcmVha3BvaW50RGlzYWJsZWRTdGF0ZUNoYW5nZWQoZXZlbnQpCkBA
IC03OTQsMTEgKzgxMywxMyBAQCBXSS5ET01EZWJ1Z2dlck1hbmFnZXIgPSBjbGFzcyBET01EZWJ1
Z2dlck1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgaWYgKGJyZWFrcG9pbnQuZGlz
YWJsZWQpCiAgICAgICAgICAgICByZXR1cm47CiAKKyAgICAgICAgdGhpcy5fcmVzdG9yaW5nQnJl
YWtwb2ludHMgPSB0cnVlOwogICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2YgV0kudGFyZ2V0cykg
ewogICAgICAgICAgICAgLy8gQ2xlYXIgdGhlIG9sZCBicmVha3BvaW50IGZyb20gdGhlIGJhY2tl
bmQgYmVmb3JlIHNldHRpbmcgdGhlIG5ldyBvbmUuCi0gICAgICAgICAgICB0aGlzLl9yZW1vdmVF
dmVudEJyZWFrcG9pbnQoYnJlYWtwb2ludCwgdGFyZ2V0KQorICAgICAgICAgICAgdGhpcy5fcmVt
b3ZlRXZlbnRCcmVha3BvaW50KGJyZWFrcG9pbnQsIHRhcmdldCk7CiAgICAgICAgICAgICB0aGlz
Ll9zZXRFdmVudEJyZWFrcG9pbnQoYnJlYWtwb2ludCwgdGFyZ2V0KTsKICAgICAgICAgfQorICAg
ICAgICB0aGlzLl9yZXN0b3JpbmdCcmVha3BvaW50cyA9IGZhbHNlOwogICAgIH0KIAogICAgIF9o
YW5kbGVFdmVudEJyZWFrcG9pbnRBY3Rpb25zQ2hhbmdlZChldmVudCkKQEAgLTgxOCwxOCArODM5
LDQ1IEBAIFdJLkRPTURlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERPTURlYnVnZ2VyTWFuYWdlciBl
eHRlbmRzIFdJLk9iamVjdAogICAgIHsKICAgICAgICAgbGV0IGJyZWFrcG9pbnQgPSBldmVudC50
YXJnZXQ7CiAKLSAgICAgICAgZm9yIChsZXQgdGFyZ2V0IG9mIFdJLnRhcmdldHMpCi0gICAgICAg
ICAgICB0aGlzLl91cGRhdGVVUkxCcmVha3BvaW50KGJyZWFrcG9pbnQsIHRhcmdldCk7Ci0KLSAg
ICAgICAgaWYgKGJyZWFrcG9pbnQgPT09IHRoaXMuX2FsbFJlcXVlc3RzQnJlYWtwb2ludCkgewot
ICAgICAgICAgICAgdGhpcy5fYWxsUmVxdWVzdHNCcmVha3BvaW50RW5hYmxlZFNldHRpbmcudmFs
dWUgPSAhYnJlYWtwb2ludC5kaXNhYmxlZDsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
Zm9yIChsZXQgdGFyZ2V0IG9mIFdJLnRhcmdldHMpIHsKKyAgICAgICAgICAgIGlmIChicmVha3Bv
aW50LmRpc2FibGVkKQorICAgICAgICAgICAgICAgIHRoaXMuX3JlbW92ZVVSTEJyZWFrcG9pbnQo
YnJlYWtwb2ludCwgdGFyZ2V0KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0
aGlzLl9zZXRVUkxCcmVha3BvaW50KGJyZWFrcG9pbnQsIHRhcmdldCk7CiAgICAgICAgIH0KIAog
ICAgICAgICBpZiAoIXRoaXMuX3Jlc3RvcmluZ0JyZWFrcG9pbnRzKQogICAgICAgICAgICAgV0ku
b2JqZWN0U3RvcmVzLnVybEJyZWFrcG9pbnRzLnB1dE9iamVjdChicmVha3BvaW50KTsKICAgICB9
CiAKKyAgICBfaGFuZGxlVVJMQnJlYWtwb2ludEVkaXRhYmxlUHJvcGVydHlDaGFuZ2VkKGV2ZW50
KQorICAgIHsKKyAgICAgICAgbGV0IGJyZWFrcG9pbnQgPSBldmVudC50YXJnZXQ7CisKKyAgICAg
ICAgaWYgKCF0aGlzLl9yZXN0b3JpbmdCcmVha3BvaW50cykKKyAgICAgICAgICAgIFdJLm9iamVj
dFN0b3Jlcy51cmxCcmVha3BvaW50cy5wdXRPYmplY3QoYnJlYWtwb2ludCk7CisKKyAgICAgICAg
aWYgKGJyZWFrcG9pbnQuZGlzYWJsZWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
dGhpcy5fcmVzdG9yaW5nQnJlYWtwb2ludHMgPSB0cnVlOworICAgICAgICBmb3IgKGxldCB0YXJn
ZXQgb2YgV0kudGFyZ2V0cykgeworICAgICAgICAgICAgLy8gQ2xlYXIgdGhlIG9sZCBicmVha3Bv
aW50IGZyb20gdGhlIGJhY2tlbmQgYmVmb3JlIHNldHRpbmcgdGhlIG5ldyBvbmUuCisgICAgICAg
ICAgICB0aGlzLl9yZW1vdmVVUkxCcmVha3BvaW50KGJyZWFrcG9pbnQsIHRhcmdldCkKKyAgICAg
ICAgICAgIHRoaXMuX3NldFVSTEJyZWFrcG9pbnQoYnJlYWtwb2ludCwgdGFyZ2V0KTsKKyAgICAg
ICAgfQorICAgICAgICB0aGlzLl9yZXN0b3JpbmdCcmVha3BvaW50cyA9IGZhbHNlOworICAgIH0K
KworICAgIF9oYW5kbGVVUkxCcmVha3BvaW50QWN0aW9uc0NoYW5nZWQoZXZlbnQpCisgICAgewor
ICAgICAgICBsZXQgYnJlYWtwb2ludCA9IGV2ZW50LnRhcmdldDsKKworICAgICAgICB0aGlzLl9o
YW5kbGVVUkxCcmVha3BvaW50RWRpdGFibGVQcm9wZXJ0eUNoYW5nZWQoZXZlbnQpOworCisgICAg
ICAgIFdJLmRlYnVnZ2VyTWFuYWdlci51cGRhdGVQcm9iZXNGb3JCcmVha3BvaW50KGJyZWFrcG9p
bnQpOworICAgIH0KKwogICAgIF9jaGlsZEZyYW1lV2FzUmVtb3ZlZChldmVudCkKICAgICB7CiAg
ICAgICAgIGxldCBmcmFtZSA9IGV2ZW50LmRhdGEuY2hpbGRGcmFtZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9VUkxCcmVha3BvaW50Lmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1VSTEJyZWFrcG9p
bnQuanMKaW5kZXggZjNmYTk4NTZlNjI0Li45OTE4NDBmNDQ1NjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9VUkxCcmVha3BvaW50LmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9VUkxCcmVha3Bv
aW50LmpzCkBAIC0yNSwxMiArMjUsMTIgQEAKIAogV0kuVVJMQnJlYWtwb2ludCA9IGNsYXNzIFVS
TEJyZWFrcG9pbnQgZXh0ZW5kcyBXSS5CcmVha3BvaW50CiB7Ci0gICAgY29uc3RydWN0b3IodHlw
ZSwgdXJsLCB7ZGlzYWJsZWR9ID0ge30pCisgICAgY29uc3RydWN0b3IodHlwZSwgdXJsLCB7ZGlz
YWJsZWQsIGFjdGlvbnMsIGNvbmRpdGlvbiwgaWdub3JlQ291bnQsIGF1dG9Db250aW51ZX0gPSB7
fSkKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KE9iamVjdC52YWx1ZXMoV0kuVVJMQnJl
YWtwb2ludC5UeXBlKS5pbmNsdWRlcyh0eXBlKSwgdHlwZSk7CiAgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KHR5cGVvZiB1cmwgPT09ICJzdHJpbmciLCB1cmwpOwogCi0gICAgICAgIHN1cGVyKHtkaXNh
YmxlZH0pOworICAgICAgICBzdXBlcih7ZGlzYWJsZWQsIGFjdGlvbnMsIGNvbmRpdGlvbiwgaWdu
b3JlQ291bnQsIGF1dG9Db250aW51ZX0pOwogCiAgICAgICAgIHRoaXMuX3R5cGUgPSB0eXBlOwog
ICAgICAgICB0aGlzLl91cmwgPSB1cmw7CkBAIC0zOCwxMCArMzgsMjAgQEAgV0kuVVJMQnJlYWtw
b2ludCA9IGNsYXNzIFVSTEJyZWFrcG9pbnQgZXh0ZW5kcyBXSS5CcmVha3BvaW50CiAKICAgICAv
LyBTdGF0aWMKIAorICAgIHN0YXRpYyBnZXQgZWRpdGFibGUoKQorICAgIHsKKyAgICAgICAgLy8g
Q09NUEFUSUJJTElUWSAoaU9TIDE0KTogRE9NRGVidWdnZXIuc2V0VVJMQnJlYWtwb2ludCBkaWQg
bm90IGhhdmUgYW4gIm9wdGlvbnMiIHBhcmFtZXRlciB5ZXQuCisgICAgICAgIHJldHVybiBJbnNw
ZWN0b3JCYWNrZW5kLmhhc0NvbW1hbmQoIkRPTURlYnVnZ2VyLnNldFVSTEJyZWFrcG9pbnQiLCAi
b3B0aW9ucyIpOworICAgIH0KKwogICAgIHN0YXRpYyBmcm9tSlNPTihqc29uKQogICAgIHsKICAg
ICAgICAgcmV0dXJuIG5ldyBXSS5VUkxCcmVha3BvaW50KGpzb24udHlwZSwganNvbi51cmwsIHsK
ICAgICAgICAgICAgIGRpc2FibGVkOiBqc29uLmRpc2FibGVkLAorICAgICAgICAgICAgY29uZGl0
aW9uOiBqc29uLmNvbmRpdGlvbiwKKyAgICAgICAgICAgIGFjdGlvbnM6IGpzb24uYWN0aW9ucz8u
bWFwKChhY3Rpb25KU09OKSA9PiBXSS5CcmVha3BvaW50QWN0aW9uLmZyb21KU09OKGFjdGlvbkpT
T04pKSB8fCBbXSwKKyAgICAgICAgICAgIGlnbm9yZUNvdW50OiBqc29uLmlnbm9yZUNvdW50LAor
ICAgICAgICAgICAgYXV0b0NvbnRpbnVlOiBqc29uLmF1dG9Db250aW51ZSwKICAgICAgICAgfSk7
CiAgICAgfQogCkBAIC03Miw2ICs4MiwxMSBAQCBXSS5VUkxCcmVha3BvaW50ID0gY2xhc3MgVVJM
QnJlYWtwb2ludCBleHRlbmRzIFdJLkJyZWFrcG9pbnQKICAgICAgICAgcmV0dXJuIHRoaXMgPT09
IFdJLmRvbURlYnVnZ2VyTWFuYWdlci5hbGxSZXF1ZXN0c0JyZWFrcG9pbnQgfHwgc3VwZXIuc3Bl
Y2lhbDsKICAgICB9CiAKKyAgICBnZXQgZWRpdGFibGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IFdJLlVSTEJyZWFrcG9pbnQuZWRpdGFibGUgfHwgc3VwZXIuZWRpdGFibGU7CisgICAgfQorCiAg
ICAgcmVtb3ZlKCkKICAgICB7CiAgICAgICAgIHN1cGVyLnJlbW92ZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU291cmNlc05hdmlnYXRp
b25TaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9Tb3VyY2VzTmF2aWdhdGlvblNpZGViYXJQYW5lbC5qcwppbmRleCBiNzhmYmIxOGVjOWQu
LmJkYjA3ZjUxN2M4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU291cmNlc05hdmlnYXRpb25TaWRl
YmFyUGFuZWwuanMKQEAgLTQwOSw4ICs0MDksOCBAQCBXSS5Tb3VyY2VzTmF2aWdhdGlvblNpZGVi
YXJQYW5lbCA9IGNsYXNzIFNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBhbmVsIGV4dGVuZHMgVwog
ICAgICAgICAgICAgZm9yIChsZXQgZG9tQnJlYWtwb2ludCBvZiBXSS5kb21EZWJ1Z2dlck1hbmFn
ZXIuZG9tQnJlYWtwb2ludHMpCiAgICAgICAgICAgICAgICAgdGhpcy5fYWRkQnJlYWtwb2ludChk
b21CcmVha3BvaW50KTsKIAotICAgICAgICAgICAgaWYgKFdJLnNldHRpbmdzLnNob3dBbGxSZXF1
ZXN0c0JyZWFrcG9pbnQudmFsdWUpCi0gICAgICAgICAgICAgICAgV0kuZG9tRGVidWdnZXJNYW5h
Z2VyLmFkZFVSTEJyZWFrcG9pbnQoV0kuZG9tRGVidWdnZXJNYW5hZ2VyLmFsbFJlcXVlc3RzQnJl
YWtwb2ludCk7CisgICAgICAgICAgICBpZiAoV0kuZG9tRGVidWdnZXJNYW5hZ2VyLmFsbFJlcXVl
c3RzQnJlYWtwb2ludCkKKyAgICAgICAgICAgICAgICB0aGlzLl9hZGRCcmVha3BvaW50KFdJLmRv
bURlYnVnZ2VyTWFuYWdlci5hbGxSZXF1ZXN0c0JyZWFrcG9pbnQpOwogCiAgICAgICAgICAgICBm
b3IgKGxldCB1cmxCcmVha3BvaW50cyBvZiBXSS5kb21EZWJ1Z2dlck1hbmFnZXIudXJsQnJlYWtw
b2ludHMpCiAgICAgICAgICAgICAgICAgdGhpcy5fYWRkQnJlYWtwb2ludCh1cmxCcmVha3BvaW50
cyk7CkBAIC0xOTc0LDQyICsxOTc0LDQ0IEBAIFdJLlNvdXJjZXNOYXZpZ2F0aW9uU2lkZWJhclBh
bmVsID0gY2xhc3MgU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFuZWwgZXh0ZW5kcyBXCiAKICAg
ICBfcG9wdWxhdGVDcmVhdGVCcmVha3BvaW50Q29udGV4dE1lbnUoY29udGV4dE1lbnUpCiAgICAg
ewotICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRDaGVja2JveEl0ZW0oV0kucmVwZWF0ZWRVSVN0
cmluZy5hc3NlcnRpb25GYWlsdXJlcygpLCAoKSA9PiB7Ci0gICAgICAgICAgICBpZiAoV0kuZGVi
dWdnZXJNYW5hZ2VyLmFzc2VydGlvbkZhaWx1cmVzQnJlYWtwb2ludCkKLSAgICAgICAgICAgICAg
ICBXSS5kZWJ1Z2dlck1hbmFnZXIuYXNzZXJ0aW9uRmFpbHVyZXNCcmVha3BvaW50LnJlbW92ZSgp
OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5j
cmVhdGVBc3NlcnRpb25GYWlsdXJlc0JyZWFrcG9pbnQoKTsKLSAgICAgICAgfSwgV0kuZGVidWdn
ZXJNYW5hZ2VyLmFzc2VydGlvbkZhaWx1cmVzQnJlYWtwb2ludCk7CisgICAgICAgIGZ1bmN0aW9u
IGFkZFRvZ2dsZUZvclNwZWNpYWxCcmVha3BvaW50KGxhYmVsLCBicmVha3BvaW50LCBjYWxsYmFj
aykgeworICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kQ2hlY2tib3hJdGVtKGxhYmVsLCAo
KSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKGJyZWFrcG9pbnQpCisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrcG9pbnQucmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICAgICAgfSwgISFicmVha3BvaW50KTsKKyAg
ICAgICAgfQorCisgICAgICAgIGFkZFRvZ2dsZUZvclNwZWNpYWxCcmVha3BvaW50KFdJLnJlcGVh
dGVkVUlTdHJpbmcuYXNzZXJ0aW9uRmFpbHVyZXMoKSwgV0kuZGVidWdnZXJNYW5hZ2VyLmFzc2Vy
dGlvbkZhaWx1cmVzQnJlYWtwb2ludCwgKCkgPT4geworICAgICAgICAgICAgV0kuZGVidWdnZXJN
YW5hZ2VyLmNyZWF0ZUFzc2VydGlvbkZhaWx1cmVzQnJlYWtwb2ludCgpOworICAgICAgICB9KTsK
IAogICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKIAogICAgICAgICBpZiAo
V0kuSmF2YVNjcmlwdEJyZWFrcG9pbnQuc3VwcG9ydHNNaWNyb3Rhc2tzKCkpIHsKLSAgICAgICAg
ICAgIGNvbnRleHRNZW51LmFwcGVuZENoZWNrYm94SXRlbShXSS5yZXBlYXRlZFVJU3RyaW5nLmFs
bE1pY3JvdGFza3MoKSwgKCkgPT4gewotICAgICAgICAgICAgICAgIGlmIChXSS5kZWJ1Z2dlck1h
bmFnZXIuYWxsTWljcm90YXNrc0JyZWFrcG9pbnQpCi0gICAgICAgICAgICAgICAgICAgIFdJLmRl
YnVnZ2VyTWFuYWdlci5hbGxNaWNyb3Rhc2tzQnJlYWtwb2ludC5yZW1vdmUoKTsKLSAgICAgICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5jcmVh
dGVBbGxNaWNyb3Rhc2tzQnJlYWtwb2ludCgpOwotICAgICAgICAgICAgfSwgV0kuZGVidWdnZXJN
YW5hZ2VyLmFsbE1pY3JvdGFza3NCcmVha3BvaW50KTsKKyAgICAgICAgICAgIGFkZFRvZ2dsZUZv
clNwZWNpYWxCcmVha3BvaW50KFdJLnJlcGVhdGVkVUlTdHJpbmcuYWxsTWljcm90YXNrcygpLCBX
SS5kZWJ1Z2dlck1hbmFnZXIuYWxsTWljcm90YXNrc0JyZWFrcG9pbnQsICgpID0+IHsKKyAgICAg
ICAgICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIuY3JlYXRlQWxsTWljcm90YXNrc0JyZWFrcG9p
bnQoKTsKKyAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKFdJLkRPTURl
YnVnZ2VyTWFuYWdlci5zdXBwb3J0c0V2ZW50QnJlYWtwb2ludHMoKSB8fCBXSS5ET01EZWJ1Z2dl
ck1hbmFnZXIuc3VwcG9ydHNFdmVudExpc3RlbmVyQnJlYWtwb2ludHMoKSkgewotICAgICAgICAg
ICAgZnVuY3Rpb24gYWRkVG9nZ2xlRm9yU3BlY2lhbEV2ZW50QnJlYWtwb2ludChsYWJlbCwgYnJl
YWtwb2ludCwgdHlwZSkgewotICAgICAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZENoZWNr
Ym94SXRlbShsYWJlbCwgKCkgPT4gewotICAgICAgICAgICAgICAgICAgICBpZiAoYnJlYWtwb2lu
dCkKLSAgICAgICAgICAgICAgICAgICAgICAgIFdJLmRvbURlYnVnZ2VyTWFuYWdlci5yZW1vdmVF
dmVudEJyZWFrcG9pbnQoYnJlYWtwb2ludCk7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgICAgICAgICAgIFdJLmRvbURlYnVnZ2VyTWFuYWdlci5hZGRFdmVudEJyZWFr
cG9pbnQobmV3IFdJLkV2ZW50QnJlYWtwb2ludCh0eXBlKSk7Ci0gICAgICAgICAgICAgICAgfSwg
ISFicmVha3BvaW50KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgYWRkVG9nZ2xlRm9y
U3BlY2lhbEV2ZW50QnJlYWtwb2ludChXSS5yZXBlYXRlZFVJU3RyaW5nLmFsbEFuaW1hdGlvbkZy
YW1lcygpLCBXSS5kb21EZWJ1Z2dlck1hbmFnZXIuYWxsQW5pbWF0aW9uRnJhbWVzQnJlYWtwb2lu
dCwgV0kuRXZlbnRCcmVha3BvaW50LlR5cGUuQW5pbWF0aW9uRnJhbWUpOwotICAgICAgICAgICAg
YWRkVG9nZ2xlRm9yU3BlY2lhbEV2ZW50QnJlYWtwb2ludChXSS5yZXBlYXRlZFVJU3RyaW5nLmFs
bFRpbWVvdXRzKCksIFdJLmRvbURlYnVnZ2VyTWFuYWdlci5hbGxUaW1lb3V0c0JyZWFrcG9pbnQs
IFdJLkV2ZW50QnJlYWtwb2ludC5UeXBlLlRpbWVvdXQpOwotICAgICAgICAgICAgYWRkVG9nZ2xl
Rm9yU3BlY2lhbEV2ZW50QnJlYWtwb2ludChXSS5yZXBlYXRlZFVJU3RyaW5nLmFsbEludGVydmFs
cygpLCBXSS5kb21EZWJ1Z2dlck1hbmFnZXIuYWxsSW50ZXJ2YWxzQnJlYWtwb2ludCwgV0kuRXZl
bnRCcmVha3BvaW50LlR5cGUuSW50ZXJ2YWwpOworICAgICAgICAgICAgYWRkVG9nZ2xlRm9yU3Bl
Y2lhbEJyZWFrcG9pbnQoV0kucmVwZWF0ZWRVSVN0cmluZy5hbGxBbmltYXRpb25GcmFtZXMoKSwg
V0kuZG9tRGVidWdnZXJNYW5hZ2VyLmFsbEFuaW1hdGlvbkZyYW1lc0JyZWFrcG9pbnQsICgpID0+
IHsKKyAgICAgICAgICAgICAgICBXSS5kb21EZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRCcmVha3Bv
aW50KG5ldyBXSS5FdmVudEJyZWFrcG9pbnQoV0kuRXZlbnRCcmVha3BvaW50LlR5cGUuQW5pbWF0
aW9uRnJhbWUpKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgYWRkVG9nZ2xlRm9yU3Bl
Y2lhbEJyZWFrcG9pbnQoV0kucmVwZWF0ZWRVSVN0cmluZy5hbGxUaW1lb3V0cygpLCBXSS5kb21E
ZWJ1Z2dlck1hbmFnZXIuYWxsVGltZW91dHNCcmVha3BvaW50LCAoKSA9PiB7CisgICAgICAgICAg
ICAgICAgV0kuZG9tRGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50QnJlYWtwb2ludChuZXcgV0kuRXZl
bnRCcmVha3BvaW50KFdJLkV2ZW50QnJlYWtwb2ludC5UeXBlLlRpbWVvdXQpKTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgYWRkVG9nZ2xlRm9yU3BlY2lhbEJyZWFrcG9pbnQoV0kucmVw
ZWF0ZWRVSVN0cmluZy5hbGxJbnRlcnZhbHMoKSwgV0kuZG9tRGVidWdnZXJNYW5hZ2VyLmFsbElu
dGVydmFsc0JyZWFrcG9pbnQsICgpID0+IHsKKyAgICAgICAgICAgICAgICBXSS5kb21EZWJ1Z2dl
ck1hbmFnZXIuYWRkRXZlbnRCcmVha3BvaW50KG5ldyBXSS5FdmVudEJyZWFrcG9pbnQoV0kuRXZl
bnRCcmVha3BvaW50LlR5cGUuSW50ZXJ2YWwpKTsKKyAgICAgICAgICAgIH0pOwogCiAgICAgICAg
ICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKIAogICAgICAgICAgICAgaWYgKFdJ
LkRPTURlYnVnZ2VyTWFuYWdlci5zdXBwb3J0c0FsbExpc3RlbmVyc0JyZWFrcG9pbnQoKSkKLSAg
ICAgICAgICAgICAgICBhZGRUb2dnbGVGb3JTcGVjaWFsRXZlbnRCcmVha3BvaW50KFdJLnJlcGVh
dGVkVUlTdHJpbmcuYWxsRXZlbnRzKCksIFdJLmRvbURlYnVnZ2VyTWFuYWdlci5hbGxMaXN0ZW5l
cnNCcmVha3BvaW50LCBXSS5FdmVudEJyZWFrcG9pbnQuVHlwZS5MaXN0ZW5lcik7CisgICAgICAg
ICAgICAgICAgYWRkVG9nZ2xlRm9yU3BlY2lhbEJyZWFrcG9pbnQoV0kucmVwZWF0ZWRVSVN0cmlu
Zy5hbGxFdmVudHMoKSwgV0kuZG9tRGVidWdnZXJNYW5hZ2VyLmFsbExpc3RlbmVyc0JyZWFrcG9p
bnQsICgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgV0kuZG9tRGVidWdnZXJNYW5hZ2VyLmFk
ZEV2ZW50QnJlYWtwb2ludChuZXcgV0kuRXZlbnRCcmVha3BvaW50KFdJLkV2ZW50QnJlYWtwb2lu
dC5UeXBlLkxpc3RlbmVyKSk7CisgICAgICAgICAgICAgICAgfSk7CiAKICAgICAgICAgICAgIGNv
bnRleHRNZW51LmFwcGVuZEl0ZW0oV0kuVUlTdHJpbmcoIkV2ZW50IEJyZWFrcG9pbnRcdTIwMjYi
KSwgKCkgPT4gewogICAgICAgICAgICAgICAgIGxldCBwb3BvdmVyID0gbmV3IFdJLkV2ZW50QnJl
YWtwb2ludFBvcG92ZXIodGhpcyk7CkBAIC0yMDIwLDE1ICsyMDIyLDEwIEBAIFdJLlNvdXJjZXNO
YXZpZ2F0aW9uU2lkZWJhclBhbmVsID0gY2xhc3MgU291cmNlc05hdmlnYXRpb25TaWRlYmFyUGFu
ZWwgZXh0ZW5kcyBXCiAgICAgICAgIGlmIChXSS5ET01EZWJ1Z2dlck1hbmFnZXIuc3VwcG9ydHNV
UkxCcmVha3BvaW50cygpIHx8IFdJLkRPTURlYnVnZ2VyTWFuYWdlci5zdXBwb3J0c1hIUkJyZWFr
cG9pbnRzKCkpIHsKICAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigpOwog
Ci0gICAgICAgICAgICBsZXQgYWxsUmVxdWVzdHNCcmVha3BvaW50U2hvd24gPSBXSS5zZXR0aW5n
cy5zaG93QWxsUmVxdWVzdHNCcmVha3BvaW50LnZhbHVlOwotICAgICAgICAgICAgY29udGV4dE1l
bnUuYXBwZW5kQ2hlY2tib3hJdGVtKFdJLnJlcGVhdGVkVUlTdHJpbmcuYWxsUmVxdWVzdHMoKSwg
KCkgPT4gewotICAgICAgICAgICAgICAgIGlmIChhbGxSZXF1ZXN0c0JyZWFrcG9pbnRTaG93bikK
LSAgICAgICAgICAgICAgICAgICAgV0kuZG9tRGVidWdnZXJNYW5hZ2VyLnJlbW92ZVVSTEJyZWFr
cG9pbnQoV0kuZG9tRGVidWdnZXJNYW5hZ2VyLmFsbFJlcXVlc3RzQnJlYWtwb2ludCk7Ci0gICAg
ICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIFdJLmRvbURlYnVnZ2VyTWFu
YWdlci5hbGxSZXF1ZXN0c0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKLSAgICAgICAgICAg
ICAgICAgICAgV0kuZG9tRGVidWdnZXJNYW5hZ2VyLmFkZFVSTEJyZWFrcG9pbnQoV0kuZG9tRGVi
dWdnZXJNYW5hZ2VyLmFsbFJlcXVlc3RzQnJlYWtwb2ludCk7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgfSwgYWxsUmVxdWVzdHNCcmVha3BvaW50U2hvd24pOworICAgICAgICAgICAg
YWRkVG9nZ2xlRm9yU3BlY2lhbEJyZWFrcG9pbnQoV0kucmVwZWF0ZWRVSVN0cmluZy5hbGxSZXF1
ZXN0cygpLCBXSS5kb21EZWJ1Z2dlck1hbmFnZXIuYWxsUmVxdWVzdHNCcmVha3BvaW50LCAoKSA9
PiB7CisgICAgICAgICAgICAgICAgY29uc3QgdXJsID0gIiI7CisgICAgICAgICAgICAgICAgV0ku
ZG9tRGVidWdnZXJNYW5hZ2VyLmFkZFVSTEJyZWFrcG9pbnQobmV3IFdJLlVSTEJyZWFrcG9pbnQo
V0kuVVJMQnJlYWtwb2ludC5UeXBlLlRleHQsIHVybCkpOworICAgICAgICAgICAgfSk7CiAKICAg
ICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV0kuRE9NRGVidWdnZXJNYW5hZ2VyLnN1
cHBvcnRzVVJMQnJlYWtwb2ludHMoKSA/IFdJLlVJU3RyaW5nKCJVUkwgQnJlYWtwb2ludFx1MjAy
NiIpIDogV0kuVUlTdHJpbmcoIlhIUiBCcmVha3BvaW50XHUyMDI2IiksICgpID0+IHsKICAgICAg
ICAgICAgICAgICBsZXQgcG9wb3ZlciA9IG5ldyBXSS5VUkxCcmVha3BvaW50UG9wb3Zlcih0aGlz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1VSTEJyZWFrcG9pbnRQb3BvdmVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvVVJMQnJlYWtwb2ludFBvcG92ZXIuanMKaW5kZXggNmNmOWNmZjVkN2JmLi44
NTVkMDdmOGZhZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1VSTEJyZWFrcG9pbnRQb3BvdmVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1VSTEJyZWFrcG9pbnRQb3BvdmVyLmpzCkBAIC0zOCw3
ICszOCw3IEBAIFdJLlVSTEJyZWFrcG9pbnRQb3BvdmVyID0gY2xhc3MgVVJMQnJlYWtwb2ludFBv
cG92ZXIgZXh0ZW5kcyBXSS5CcmVha3BvaW50UG9wb3ZlCiAKICAgICBzdGF0aWMgZ2V0IHN1cHBv
cnRzRWRpdGluZygpCiAgICAgewotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVy
biBXSS5VUkxCcmVha3BvaW50LmVkaXRhYmxlOwogICAgIH0KIAogICAgIC8vIFByb3RlY3RlZAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>