<?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>175969</bug_id>
          
          <creation_ts>2017-08-24 17:46:39 -0700</creation_ts>
          <short_desc>Update Perf buildbot syncing scripts for Buildbot 0.9</short_desc>
          <delta_ts>2018-03-19 17:28:23 -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>Tools / Tests</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=179743</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=182036</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=182218</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>176125</dependson>
    
    <dependson>176526</dependson>
    
    <dependson>183160</dependson>
    
    <dependson>183194</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aakash Jain">aakash_jain</reporter>
          <assigned_to name="Aakash Jain">aakash_jain</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>dean_johnson</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>lforschler</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1342276</commentid>
    <comment_count>0</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2017-08-24 17:46:39 -0700</bug_when>
    <thetext>Update buildbot-syncer.js and related scripts inside Websites/perf.webkit.org/tools for Buildbot 0.9.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342283</commentid>
    <comment_count>1</comment_count>
      <attachid>319050</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2017-08-24 18:05:03 -0700</bug_when>
    <thetext>Created attachment 319050
Proposed patch

This is still WIP. I have tested with staging Buildbot 0.9 instance and the changes seems to work fine. I am currently working on unit-tests.

Would be nice to have the review comments meanwhile.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342314</commentid>
    <comment_count>2</comment_count>
      <attachid>319059</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2017-08-24 19:38:22 -0700</bug_when>
    <thetext>Created attachment 319059
Updated patch

Updated patch with some Ryosuke&apos;s feedback incorporated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342639</commentid>
    <comment_count>3</comment_count>
      <attachid>319059</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-08-26 01:09:18 -0700</bug_when>
    <thetext>Comment on attachment 319059
Updated patch

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

&gt; Websites/perf.webkit.org/tools/js/buildbot-syncer.js:21
&gt; +        this._claimed = false;
&gt; +        if (!(&apos;claimed&apos; in rawData))
&gt; +            this._claimed = true; // This means this is build data, not build-request data.
&gt; +        this._isInProgress = !rawData.complete &amp;&amp; this._claimed;
&gt; +        this._isPending = !rawData.complete &amp;&amp; !this._claimed; 
&gt; +        this._buildNumber = rawData.number;

claimed doesn&apos;t need to be stored as a member variable.

&gt; Websites/perf.webkit.org/tools/js/buildbot-syncer.js:74
&gt; +        if (object.properties)
&gt; +            this._forceScheduler = object.properties.forcescheduler;

We can&apos;t do this. properties are resolved in _propertiesForBuildRequest per each build request.

&gt; Websites/perf.webkit.org/tools/js/buildbot-syncer.js:79
&gt; +    forceScheduler() { return this._forceScheduler; }

Don&apos;t add this public method. It&apos;s never called from outside this function.

&gt; Websites/perf.webkit.org/tools/js/buildbot-syncer.js:119
&gt; +        if (slaveName)
&gt; +            this._slavesWithNewRequests.add(slaveName);

This is wrong. It&apos;s important to insert &quot;null&quot; to _slavesWithNewRequests in the case slaveName isn&apos;t present.

&gt; Websites/perf.webkit.org/tools/js/buildbot-syncer.js:201
&gt; +                if (build)

Why do we need to check for true-ness here? can build be null or something?
Note that [] evaluates to true in JavaScript.
All these random true-ness/false-ness check needs a test.

&gt; Websites/perf.webkit.org/tools/js/buildbot-syncer.js:209
&gt; +    pathForPendingBuildsJSON() { return `/api/v2/builders/${this.builderID()}/buildrequests?complete=false&amp;claimed=false`; }
&gt; +    pathForBuildJSON(count) { return `/api/v2/builders/${this.builderID()}/builds?` + `limit=${count}&amp;order=-number&amp;property=*`; }

Don&apos;t call method to get builderID in these functions. It&apos;s less readable than just calling this._builderID.

&gt; Websites/perf.webkit.org/tools/js/buildbot-syncer.js:210
&gt; +    pathForForceBuild() { return `/api/v2/forceschedulers/${this.forceScheduler()}`; }

We can&apos;t have this because properties is resolved per request.

&gt; Websites/perf.webkit.org/tools/js/buildbot-syncer.js:213
&gt; +    url() { return this._remote.url(`/builders/${this.builderID()}/`); }
&gt; +    urlForBuildNumber(number) { return this._remote.url(`/builders/${this.builderID()}/builds/${number}`); }

Ditto about not calling builderID

&gt; Websites/perf.webkit.org/tools/js/buildbot-syncer.js:224
&gt; +    _dataForBuildRequest(properties)
&gt; +    {
&gt; +        const data = {};
&gt; +        data[&apos;jsonrpc&apos;] = &apos;2.0&apos;;
&gt; +        data[&apos;method&apos;] = &apos;force&apos;;
&gt; +        data[&apos;id&apos;] = properties[this._buildRequestPropertyName];
&gt; +        data[&apos;params&apos;] = properties;
&gt; +        data[&apos;params&apos;][&apos;owner&apos;] = &apos;Perf&apos;;
&gt; +        return data;
&gt;      }

We don&apos;t need this function since it&apos;s only called at once. A better way to write this code would be:
const data = {jsonrpc: &apos;2.0&apos;, method: &apos;force&apos;, id: properties[this._buildRequestPropertyName], params: properties}

We don&apos;t need to set &apos;owner&apos;, do we? Just don&apos;t set it.

&gt; Websites/perf.webkit.org/tools/js/remote.js:-60
&gt; -    postFormUrlencodedData(path, data)

You can&apos;t make this change to NodeRemoteAPI. It&apos;s used for other things during testing.
Use RemoteAPI.postJSON defined in the abstract superclass instead:
https://trac.webkit.org/browser/webkit/trunk/Websites/perf.webkit.org/public/shared/common-remote.js#L4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1394412</commentid>
    <comment_count>4</comment_count>
      <attachid>332625</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-01-29 20:15:28 -0800</bug_when>
    <thetext>Created attachment 332625
WIP

Patch to switch to Buildbot 0.9. It will apply to ToT after landing https://bugs.webkit.org/show_bug.cgi?id=179743, https://bugs.webkit.org/show_bug.cgi?id=182036 and https://bugs.webkit.org/show_bug.cgi?id=182218

Code changes are minimal, mostly switching from Deprecated versions of classes/functions to new versions. 

Unit-tests and Server-tests are changed significantly as they start exercising new code. They still need some more update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1394913</commentid>
    <comment_count>5</comment_count>
      <attachid>332743</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-01-30 23:02:39 -0800</bug_when>
    <thetext>Created attachment 332743
Patch to switch to Buildbot 0.9 - WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395066</commentid>
    <comment_count>6</comment_count>
      <attachid>332782</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-01-31 11:01:20 -0800</bug_when>
    <thetext>Created attachment 332782
Updated Patch to switch to Buildbot 0.9 - WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395108</commentid>
    <comment_count>7</comment_count>
      <attachid>332791</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-01-31 12:12:22 -0800</bug_when>
    <thetext>Created attachment 332791
Patch to switch to Buildbot 0.9

Please review.

All server-tests and unit-tests pass except one unit-test regarding which I have a question.

Buildbot 0.9 api doesn&apos;t seems to provide properties information for pending builds (buildrequests). So we don&apos;t get slavename information for pending build. Would the syncing script work fine without that info?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397270</commentid>
    <comment_count>8</comment_count>
      <attachid>333309</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-02-07 13:18:51 -0800</bug_when>
    <thetext>Created attachment 333309
Updated patch

Updated patch. All unit-tests and server-tests pass. Also tested with a Buildbot 0.9 instance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397425</commentid>
    <comment_count>9</comment_count>
      <attachid>333309</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-02-07 18:57:59 -0800</bug_when>
    <thetext>Comment on attachment 333309
Updated patch

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

&gt; Websites/perf.webkit.org/unit-tests/buildbot-syncer-tests.js:-1811
&gt; -        it(&apos;should schedule a build if builder only has a pending build on a non-maching slave&apos;, () =&gt; {

@Ryosuke, we discussed in-person about this last week. Buildbot 0.9 api doesn&apos;t provide slave-name information for pending builds. This currently doesn&apos;t affect us since we currently have one slave per builder, however we want to fix it. 

We decided to add a constraint to syncing script to not schedule a build if a builder has a pending build (irrespective of which slave it is on). Also, you volunteered to do that change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402250</commentid>
    <comment_count>10</comment_count>
      <attachid>333309</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-02-26 19:29:49 -0800</bug_when>
    <thetext>Comment on attachment 333309
Updated patch

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

&gt; Websites/perf.webkit.org/server-tests/resources/mock-data.js:23
&gt; +    pendingBuildsUrl: function (builderId) { return `/api/v2/builders/${builderId}/buildrequests?complete=false&amp;claimed=false`; },
&gt; +    recentBuildsUrl: function (builderId, count) { return `/api/v2/builders/${builderId}/builds?limit=${count}&amp;order=-number&amp;property=*`; },

Passing builderId makes each test case impossible to follow.
Please take the builder name here, and convert it to each ID in mockBuildbotBuilders.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402252</commentid>
    <comment_count>11</comment_count>
      <attachid>333309</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-02-26 19:37:49 -0800</bug_when>
    <thetext>Comment on attachment 333309
Updated patch

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

&gt; Websites/perf.webkit.org/tools/js/buildbot-syncer.js:216
&gt; +        return this._remote.getJSON(this.pathForPendingBuilds()).then((content) =&gt; {
&gt; +            let pendingEntries = [];
&gt; +            if (&apos;buildrequests&apos; in content)
&gt; +                pendingEntries = content.buildrequests.map((entry) =&gt; new BuildbotBuildEntry(this, entry));
&gt; +            return this._pullRecentBuilds(count).then((entries) =&gt; {

A more succinct way of writing this code would be:
const pendingEntries = (content.buildrequests || []).map((entry) =&gt; new BuildbotBuildEntry(this, entry));

&gt; Websites/perf.webkit.org/unit-tests/buildbot-syncer-tests.js:158
&gt; +    }

Please add ; while we&apos;re at.

&gt; Websites/perf.webkit.org/unit-tests/buildbot-syncer-tests.js:163
&gt; +    return samplePendingBuild(null, null, &quot;some builder&quot;);

samplePendingBuild is a really badly name function since it returns a dictionary with a list of build requests.
We should rename it to samplePendingBuildRequests or something.

&gt; Websites/perf.webkit.org/unit-tests/buildbot-syncer-tests.js:186
&gt; +    return sampleInProgressBuild();

Ditto. This should be sampleInProgressBuild*s*.

&gt; Websites/perf.webkit.org/unit-tests/buildbot-syncer-tests.js:212
&gt; +    return sampleFinishedBuild(null, null, &quot;some builder&quot;);

Ditto. This should be sampleFinishedBuild*s*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402396</commentid>
    <comment_count>12</comment_count>
      <attachid>333309</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-02-27 12:46:00 -0800</bug_when>
    <thetext>Comment on attachment 333309
Updated patch

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

&gt;&gt; Websites/perf.webkit.org/server-tests/resources/mock-data.js:23
&gt;&gt; +    recentBuildsUrl: function (builderId, count) { return `/api/v2/builders/${builderId}/builds?limit=${count}&amp;order=-number&amp;property=*`; },
&gt; 
&gt; Passing builderId makes each test case impossible to follow.
&gt; Please take the builder name here, and convert it to each ID in mockBuildbotBuilders.

Sure.

&gt;&gt; Websites/perf.webkit.org/tools/js/buildbot-syncer.js:216
&gt;&gt; +            return this._pullRecentBuilds(count).then((entries) =&gt; {
&gt; 
&gt; A more succinct way of writing this code would be:
&gt; const pendingEntries = (content.buildrequests || []).map((entry) =&gt; new BuildbotBuildEntry(this, entry));

Sure. Thanks for the suggestion.

&gt;&gt; Websites/perf.webkit.org/unit-tests/buildbot-syncer-tests.js:158
&gt;&gt; +    }
&gt; 
&gt; Please add ; while we&apos;re at.

sure.

&gt;&gt; Websites/perf.webkit.org/unit-tests/buildbot-syncer-tests.js:163
&gt;&gt; +    return samplePendingBuild(null, null, &quot;some builder&quot;);
&gt; 
&gt; samplePendingBuild is a really badly name function since it returns a dictionary with a list of build requests.
&gt; We should rename it to samplePendingBuildRequests or something.

Agreed. Renaming it in a separate patch https://bugs.webkit.org/show_bug.cgi?id=183171

&gt;&gt; Websites/perf.webkit.org/unit-tests/buildbot-syncer-tests.js:186
&gt;&gt; +    return sampleInProgressBuild();
&gt; 
&gt; Ditto. This should be sampleInProgressBuild*s*.

sampleInProgressBuild() returns a single build, so I think we can keep it as is.

&gt;&gt; Websites/perf.webkit.org/unit-tests/buildbot-syncer-tests.js:212
&gt;&gt; +    return sampleFinishedBuild(null, null, &quot;some builder&quot;);
&gt; 
&gt; Ditto. This should be sampleFinishedBuild*s*.

sampleFinishedBuild() returns a single build, so I think we can keep it as is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405472</commentid>
    <comment_count>13</comment_count>
      <attachid>335513</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-03-10 08:50:05 -0800</bug_when>
    <thetext>Created attachment 335513
Updated patch

Updated patch with review comments incorporated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1407152</commentid>
    <comment_count>14</comment_count>
      <attachid>335979</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-03-16 15:57:58 -0700</bug_when>
    <thetext>Created attachment 335979
Updated patch rebased on TOT

Rebased on TOT (after https://trac.webkit.org/r229618).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1407450</commentid>
    <comment_count>15</comment_count>
      <attachid>335979</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-03-19 13:58:43 -0700</bug_when>
    <thetext>Comment on attachment 335979
Updated patch rebased on TOT

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

I&apos;m done 2/3 of the way.

&gt; Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js:61
&gt; +                assert.deepEqual(MockRemoteAPI.requests[2].data, {&apos;id&apos;: 702, &apos;jsonrpc&apos;: &apos;2.0&apos;, &apos;method&apos;: &apos;force&apos;, &apos;params&apos;: {
&gt; +                    &apos;wk&apos;: &apos;191622&apos;, &apos;os&apos;: &apos;10.11 15A284&apos;, &apos;build-request-id&apos;: 702, &apos;forcescheduler&apos;: &apos;force-some-builder-1&apos;}});

Nit: Place { for the inner object in the new line.
This patches our convention to always put +, ||, etc... at the beginning of the next line when wrapping lines.

&gt; Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js:172
&gt; +                assert.deepEqual(MockRemoteAPI.requests[4].data, {&apos;id&apos;: &apos;700&apos;, &apos;jsonrpc&apos;: &apos;2.0&apos;, &apos;method&apos;: &apos;force&apos;, &apos;params&apos;: {
&gt; +                    &apos;wk&apos;: &apos;191622&apos;, &apos;os&apos;: &apos;10.11 15A284&apos;, &apos;build-request-id&apos;: &apos;700&apos;, &apos;forcescheduler&apos;: &apos;force-some-builder-2&apos;}});

Ditto.

&gt; Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js:281
&gt; -                assert.equal(BuildRequest.findById(700).statusUrl(), &apos;http://build.webkit.org/builders/some-builder-1/&apos;);
&gt; +                assert.equal(BuildRequest.findById(700).statusUrl(), MockData.statusUrlForPendingBuilds(17));

Where did the number 17 come from? Is this the builder ID for some-builder-1?
Then we should use some sort of a helper function to convert it from 17 instead.

&gt; Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js:328
&gt; +                assert.deepEqual(MockRemoteAPI.requests[4].data, {&apos;id&apos;: &apos;702&apos;, &apos;jsonrpc&apos;: &apos;2.0&apos;, &apos;method&apos;: &apos;force&apos;, &apos;params&apos;: {
&gt; +                    &apos;wk&apos;: &apos;191622&apos;, &apos;os&apos;: &apos;10.11 15A284&apos;, &apos;build-request-id&apos;: &apos;702&apos;, &apos;forcescheduler&apos;: &apos;force-some-builder-1&apos;}});

Ditto. Put { at the beginning of the new line.

&gt; Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js:367
&gt; -                assert.equal(BuildRequest.findById(702).statusUrl(), &apos;http://build.webkit.org/builders/some-builder-1/&apos;);
&gt; +                assert.equal(BuildRequest.findById(702).statusUrl(), MockData.statusUrlForPendingBuilds(17));

Ditto about converting from a human readable value to 17.

&gt; Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js:475
&gt; +                assert.deepEqual(MockRemoteAPI.requests[4].data, {&apos;id&apos;: &apos;710&apos;, &apos;jsonrpc&apos;: &apos;2.0&apos;, &apos;method&apos;: &apos;force&apos;, &apos;params&apos;: {
&gt; +                    &apos;wk&apos;: &apos;191622&apos;, &apos;os&apos;: &apos;10.11 15A284&apos;, &apos;build-request-id&apos;: &apos;710&apos;, &apos;forcescheduler&apos;: &apos;force-some-builder-2&apos;}});

Ditto about putting { on the new line.

&gt; Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js:522
&gt; -                assert.equal(BuildRequest.findById(702).statusUrl(), &apos;http://build.webkit.org/builders/some-builder-1/&apos;);
&gt; +                assert.equal(BuildRequest.findById(702).statusUrl(), MockData.statusUrlForPendingBuilds(17));

Ditto about converting some-builder-1 to 17 using a helper function.

&gt; Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js:526
&gt; -                assert.equal(BuildRequest.findById(710).statusUrl(), &apos;http://build.webkit.org/builders/some%20builder%202/&apos;);
&gt; +                assert.equal(BuildRequest.findById(710).statusUrl(), MockData.statusUrlForPendingBuilds(17));

Ditto.

&gt; Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js:576
&gt; +                assert.deepEqual(MockRemoteAPI.requests[4].data, {&apos;id&apos;: &apos;701&apos;, &apos;jsonrpc&apos;: &apos;2.0&apos;, &apos;method&apos;: &apos;force&apos;, &apos;params&apos;: {
&gt; +                    &apos;wk&apos;: &apos;192736&apos;, &apos;os&apos;: &apos;10.11 15A284&apos;, &apos;build-request-id&apos;: &apos;701&apos;, &apos;forcescheduler&apos;: &apos;force-some-builder-2&apos;}});

Ditto about {.

&gt; Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js:581
&gt; +                assert.deepEqual(MockRemoteAPI.requests[5].data, {&apos;id&apos;: &apos;711&apos;, &apos;jsonrpc&apos;: &apos;2.0&apos;, &apos;method&apos;: &apos;force&apos;, &apos;params&apos;: {
&gt; +                    &apos;wk&apos;: &apos;192736&apos;, &apos;os&apos;: &apos;10.11 15A284&apos;, &apos;build-request-id&apos;: &apos;711&apos;, &apos;forcescheduler&apos;: &apos;force-some-builder-1&apos;}});

Ditto.

&gt; Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js:591
&gt; +                MockRemoteAPI.requests[7].resolve(MockData.pendingBuild({builderId: 3, buildRequestId: 701}));

Again, we should be getting 3 from a helper function.

&gt; Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js:600
&gt; +                MockRemoteAPI.requests[9].resolve(MockData.runningBuild({builderId: 3, buildRequestId: 700}));

Ditto.

&gt; Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js:675
&gt; +                assert.deepEqual(requests[2].data, {&apos;id&apos;: &apos;700&apos;, &apos;jsonrpc&apos;: &apos;2.0&apos;, &apos;method&apos;: &apos;force&apos;, &apos;params&apos;: {
&gt; +                    &apos;wk&apos;: &apos;191622&apos;, &apos;os&apos;: &apos;10.11 15A284&apos;, &apos;build-request-id&apos;: &apos;700&apos;, &apos;forcescheduler&apos;: &apos;force-some-builder-1&apos;}});

Ditto about {.

&gt; Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js:698
&gt; +                assert.equal(BuildRequest.findById(700).statusUrl(), MockData.statusUrlForPendingBuilds(17));

Ditto about using the helper function to get 17.=

&gt; Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js:749
&gt; +                assert.deepEqual(MockRemoteAPI.requests[2].data, {&apos;id&apos;: &apos;701&apos;, &apos;jsonrpc&apos;: &apos;2.0&apos;, &apos;method&apos;: &apos;force&apos;, &apos;params&apos;: {
&gt; +                    &apos;wk&apos;: &apos;192736&apos;, &apos;os&apos;: &apos;10.11 15A284&apos;, &apos;build-request-id&apos;: &apos;701&apos;, &apos;forcescheduler&apos;: &apos;force-some-builder-1&apos;}});

Ditto about {.

&gt; Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js:817
&gt; +                assert.deepEqual(MockRemoteAPI.requests[2].data, {&apos;id&apos;: &apos;701&apos;, &apos;jsonrpc&apos;: &apos;2.0&apos;, &apos;method&apos;: &apos;force&apos;, &apos;params&apos;: {
&gt; +                    &apos;wk&apos;: &apos;192736&apos;, &apos;os&apos;: &apos;10.11 15A284&apos;, &apos;build-request-id&apos;: &apos;701&apos;, &apos;forcescheduler&apos;: &apos;force-some-builder-1&apos;}});

Ditto about {.

&gt; Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js:848
&gt; -                assert.equal(BuildRequest.findById(701).statusUrl(), &apos;http://build.webkit.org/builders/some-builder-1/&apos;);
&gt; +                assert.equal(BuildRequest.findById(701).statusUrl(), MockData.statusUrlForPendingBuilds(17));

Ditto about using a helper function to get 17.

&gt; Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js:945
&gt; +                assert.deepEqual(MockRemoteAPI.requests[2].data, {&apos;id&apos;: &apos;710&apos;, &apos;jsonrpc&apos;: &apos;2.0&apos;, &apos;method&apos;: &apos;force&apos;, &apos;params&apos;: {
&gt; +                    &apos;wk&apos;: &apos;191622&apos;, &apos;os&apos;: &apos;10.11 15A284&apos;, &apos;build-request-id&apos;: &apos;710&apos;, &apos;forcescheduler&apos;: &apos;force-some-builder-1&apos;}});

Ditto about {.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:260
&gt; +            assertAndResolveRequest(requests[0], &apos;GET&apos;, MockData.pendingBuildsUrl(&apos;some tester&apos;), MockData.pendingBuild({builderId: 5, buildRequestId: 5}));

Ditto about getting 5 from a helper function.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:266
&gt; +                MockData.runningBuild({builderId: 5, buildRequestId: 1}));

Ditto.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:279
&gt; +                    MockData.runningBuildData({builderId: 5, buildRequestId: 5}),
&gt; +                    MockData.finishedBuildData({builderId: 5, buildRequestId: 1})]

Ditto.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:389
&gt; +            assert.deepEqual(requests[6].data, {&apos;id&apos;: &apos;1&apos;, &apos;jsonrpc&apos;: &apos;2.0&apos;, &apos;method&apos;: &apos;force&apos;, &apos;params&apos;: {
&gt; +                &apos;wk&apos;: &apos;191622&apos;, &apos;wk-patch&apos;: RemoteAPI.url(&apos;/api/uploaded-file/1.dat&apos;), &apos;checkbox&apos;: &apos;build-wk&apos;, &apos;build-wk&apos;: true, &apos;build-request-id&apos;: &apos;1&apos;, &apos;forcescheduler&apos;: &apos;force-ab-builds&apos;}});

Ditto about {.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:395
&gt; +                MockData.pendingBuild({builderId: 1, buildRequestId: 1}));

Ditto about converting &quot;some builder&quot; to 1 using a helper function.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:402
&gt; +                MockData.runningBuild({builderId: 1, buildRequestId: 1})

Ditto.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:496
&gt; +                MockData.finishedBuild({builderId: 1, buildRequestId: 1})

Ditto.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:504
&gt; +            assert.deepEqual(requests[6].data, {&apos;id&apos;: &apos;2&apos;, &apos;jsonrpc&apos;: &apos;2.0&apos;, &apos;method&apos;: &apos;force&apos;, &apos;params&apos;: {
&gt; +                &apos;wk&apos;: &apos;191622&apos;, &apos;build-request-id&apos;: &apos;2&apos;, &apos;forcescheduler&apos;: &apos;force-ab-builds&apos;, &apos;checkbox&apos;: &apos;build-wk&apos;, &apos;build-wk&apos;: true}});

Ditto about {.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:518
&gt; +                    MockData.runningBuildData({builderId: 1, buildRequestId: 2}),
&gt; +                    MockData.finishedBuildData({builderId: 1, buildRequestId: 1})]

Ditto about getting builder ID 1 via a helper function.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:664
&gt; +            assert.deepEqual(requests[6].data, {&apos;id&apos;: &apos;1&apos;, &apos;jsonrpc&apos;: &apos;2.0&apos;, &apos;method&apos;: &apos;force&apos;, &apos;params&apos;: {
&gt; +                &apos;wk&apos;: &apos;191622&apos;, &apos;wk-patch&apos;: RemoteAPI.url(&apos;/api/uploaded-file/1.dat&apos;), &apos;build-request-id&apos;: &apos;1&apos;, &apos;forcescheduler&apos;: &apos;force-ab-builds&apos;,

Ditto about {.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:671
&gt; +                MockData.pendingBuild({builderId: 1, buildRequestId: 1}));

Ditto about getting 1 using a helper function.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:678
&gt; +                MockData.runningBuild({builderId: 1, buildRequestId: 1})

Ditto.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:772
&gt; +                MockData.finishedBuild({builderId: 1, buildRequestId: 1})

Ditto.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:780
&gt; +            assert.deepEqual(requests[6].data, {&apos;id&apos;: &apos;2&apos;, &apos;jsonrpc&apos;: &apos;2.0&apos;, &apos;method&apos;: &apos;force&apos;, &apos;params&apos;: {
&gt; +                &apos;wk&apos;: &apos;191622&apos;, &apos;build-request-id&apos;: &apos;2&apos;, &apos;forcescheduler&apos;: &apos;force-ab-builds&apos;, &apos;checkbox&apos;: &apos;build-wk&apos;, &apos;build-wk&apos;: true, &apos;platform-name&apos;: &apos;some platform&apos;}});

Ditto about {.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:794
&gt; +                    MockData.runningBuildData({builderId: 1, buildRequestId: 2}),
&gt; +                    MockData.finishedBuildData({builderId: 1, buildRequestId: 1})]

Ditto about getting 1 via a helper function.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:952
&gt; +                    MockData.finishedBuildData({builderId: 1, buildRequestId: 1}),
&gt; +                    MockData.finishedBuildData({builderId: 1, buildRequestId: 2})]

Ditto.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:960
&gt; +            assert.deepEqual(requests[6].data, {&apos;id&apos;: &apos;3&apos;, &apos;jsonrpc&apos;: &apos;2.0&apos;, &apos;method&apos;: &apos;force&apos;, &apos;params&apos;: {
&gt; +                &apos;test&apos;: &apos;some-test&apos;, &apos;wk&apos;: &apos;191622&apos;, &apos;build-request-id&apos;: &apos;3&apos;,&apos;forcescheduler&apos;: &apos;force-ab-tests&apos;, &apos;roots&apos;: JSON.stringify([{url: firstRoot.url()}])}});

Ditto about {.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:976
&gt; +                    MockData.finishedBuildData({builderId: 1, buildRequestId: 1}),
&gt; +                    MockData.finishedBuildData({builderId: 1, buildRequestId: 2})]

Ditto about using a helper function to get 1.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:1027
&gt; +                    MockData.runningBuildData({builderId: 1, buildRequestId: 2}),
&gt; +                    MockData.finishedBuildData({builderId: 1, buildRequestId: 1})

Ditto.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:1044
&gt; +                     MockData.runningBuildData({builderId: 1, buildRequestId: 2, buildNumber: 1002}),
&gt; +                     MockData.finishedBuildData({builderId: 1, buildRequestId: 1})]

Ditto.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:1116
&gt; +            );

Why are these trailing ) on a new line? Per our style guideline, they should all be on the previous line at the end of ).
Please fix them all.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:1228
&gt; +            assert.deepEqual(requests[6].data, {&apos;id&apos;: &apos;1&apos;, &apos;jsonrpc&apos;: &apos;2.0&apos;, &apos;method&apos;: &apos;force&apos;, &apos;params&apos;: {
&gt; +                &apos;wk&apos;: &apos;191622&apos;, &apos;build-request-id&apos;: &apos;1&apos;, &apos;forcescheduler&apos;: &apos;force-ab-builds&apos;,

Ditto about {.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:1353
&gt; +            assert.deepEqual(requests[6].data, {&apos;id&apos;: &apos;2&apos;, &apos;jsonrpc&apos;: &apos;2.0&apos;, &apos;method&apos;: &apos;force&apos;, &apos;params&apos;: {
&gt; +                &apos;wk&apos;: &apos;192736&apos;, &apos;build-request-id&apos;: &apos;2&apos;, &apos;forcescheduler&apos;: &apos;force-ab-builds&apos;, &apos;owned-commits&apos;: `{&quot;WebKit&quot;:[{&quot;revision&quot;:&quot;owned-jsc-9191&quot;,&quot;repository&quot;:&quot;JavaScriptCore&quot;,&quot;ownerRevision&quot;:&quot;192736&quot;}]}`}});

Ditto about {.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:1531
&gt; +            assert.deepEqual(requests[6].data, {&apos;id&apos;: &apos;1&apos;, &apos;jsonrpc&apos;: &apos;2.0&apos;, &apos;method&apos;: &apos;force&apos;, &apos;params&apos;: {
&gt; +                &apos;wk&apos;: &apos;191622&apos;, &apos;build-request-id&apos;: &apos;1&apos;, &apos;forcescheduler&apos;: &apos;force-ab-builds&apos;, &apos;owned-commits&apos;: `{&quot;WebKit&quot;:[{&quot;revision&quot;:&quot;owned-jsc-6161&quot;,&quot;repository&quot;:&quot;JavaScriptCore&quot;,&quot;ownerRevision&quot;:&quot;191622&quot;}]}`}});

Ditto.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:1537
&gt; +                MockData.pendingBuild({builderId: 1, buildRequestId: 1}));

Again, use a helper function to get 1.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:1544
&gt; +                MockData.runningBuild({builderId: 1, buildRequestId: 1})

Ditto.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:1688
&gt; +                MockData.finishedBuild({builderId: 1, buildRequestId: 1})

Ditto.

&gt; Websites/perf.webkit.org/server-tests/resources/mock-data.js:300
&gt; +    getBuilderIdForName: function(builderName)

Per style guideline, we don&apos;t use the prefix of &quot;get&quot; unless there is an out parameter.
Since this function doesn&apos;t have an out parameter, we should call this &quot;builderIDForName&quot; or &quot;builderIDFromName&quot;

&gt; Websites/perf.webkit.org/server-tests/resources/mock-data.js:307
&gt; +        const builderNameToIDMap = {}; 
&gt; +        for (const builder of builders)
&gt; +            builderNameToIDMap[builder.name] = builder.builderid;
&gt; +
&gt; +        return builderNameToIDMap[builderName];

Why are we building this map each time this function is getting called?
We should just loop over the list and return once we find the first match.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1407494</commentid>
    <comment_count>16</comment_count>
      <attachid>335979</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-03-19 15:50:18 -0700</bug_when>
    <thetext>Comment on attachment 335979
Updated patch rebased on TOT

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

&gt; Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js:207
&gt; -                assert.equal(BuildRequest.findById(700).statusUrl(), &apos;http://build.webkit.org/builders/some%20builder%202/&apos;);
&gt; +                assert.equal(BuildRequest.findById(700).statusUrl(), MockData.statusUrlForPendingBuilds(17));

Ditto about using a helper function for 17.

&gt; Websites/perf.webkit.org/server-tests/resources/mock-data.js:22
&gt; +    pendingBuildsUrl: function (builderName) { return &apos;/api/v2/builders/&apos; + this.getBuilderIdForName(builderName) + &apos;/buildrequests?complete=false&amp;claimed=false&amp;property=*&apos;; },

Why don&apos;t we save the builder ID in a local variable and use a template literal for the entire URL for a better readability
e.g.
const builderId = this.getBuilderIdForName(builderName);
return `/api/v2/builders/${builderId}/buildrequests?complete=false&amp;claimed=false&amp;property=*`;

&gt; Websites/perf.webkit.org/server-tests/resources/mock-data.js:24
&gt; +    recentBuildsUrl: function (builderName, count) { return &apos;/api/v2/builders/&apos; + this.getBuilderIdForName(builderName) + `/builds?limit=${count}&amp;order=-number&amp;property=*`; },
&gt; +    statusUrl: function (builderName, buildId) { return &apos;http://build.webkit.org/#/builders/&apos; + this.getBuilderIdForName(builderName) + `/builds/${buildId}`; },

Ditto.

&gt; Websites/perf.webkit.org/server-tests/resources/mock-data.js:313
&gt; +            &quot;buildrequestid&quot;: 17,

This should probably be configurable via options.
In all the places where we hard core 17, we should probably specify 17 in pendingBuildData as well.
And then in assertions, just hard code the entire string.

&gt; Websites/perf.webkit.org/server-tests/resources/mock-data.js:369
&gt; +            &quot;buildrequestid&quot;: 17,

17 should be configurable here.

&gt; Websites/perf.webkit.org/server-tests/resources/mock-data.js:370
&gt; +            &quot;complete&quot;: options.isComplete,

Just do &quot;options.isComplete || false&quot; here.

&gt; Websites/perf.webkit.org/server-tests/resources/mock-data.js:372
&gt; +            &quot;buildid&quot;: 418744,

buildid too should be configurable.

&gt; Websites/perf.webkit.org/server-tests/resources/mock-data.js:375
&gt; +            &quot;started_at&quot;: 1513725109,

Is this a POSIX time stamp? If so, can we just do: new Date(&apos;2017-12-19T23:11:49Z&apos;) / 1000 instead?

&gt; Websites/perf.webkit.org/server-tests/resources/mock-data.js:399
&gt; +        options = options || {};
&gt; +        options.isComplete = false;
&gt; +        if (!options.buildRequestId)
&gt; +            options.buildRequestId = 701;
&gt; +        if (!options.buildNumber)
&gt; +            options.buildNumber = 124;
&gt; +        if (!options.webkitRevision)
&gt; +            options.webkitRevision = &apos;192736&apos;;

None of this code should be necessary once you add the fallback I suggested for &quot;complete&quot;.

&gt; Websites/perf.webkit.org/server-tests/resources/mock-data.js:436
&gt; +        options = options || {};
&gt; +        options.isComplete = true;

This will modify the original options if it&apos;s not null/undefined.
That&apos;s not great. I think a better approach would be to add an override as an second argument to this.sampleBuildData instead.
e.g. this.sampleBuildData(options, {isComplete: true});
and then do: &quot;complete&quot;: &apos;isComplete&apos; in overrides ? overrides.isComplete : (options.isComplete || false).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1407498</commentid>
    <comment_count>17</comment_count>
      <attachid>335979</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-03-19 16:03:47 -0700</bug_when>
    <thetext>Comment on attachment 335979
Updated patch rebased on TOT

r=me assuming all my comments are addressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1407516</commentid>
    <comment_count>18</comment_count>
      <attachid>335979</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-03-19 17:26:32 -0700</bug_when>
    <thetext>Comment on attachment 335979
Updated patch rebased on TOT

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

Incorporated all the review comments.

&gt;&gt; Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js:281
&gt;&gt; +                assert.equal(BuildRequest.findById(700).statusUrl(), MockData.statusUrlForPendingBuilds(17));
&gt; 
&gt; Where did the number 17 come from? Is this the builder ID for some-builder-1?
&gt; Then we should use some sort of a helper function to convert it from 17 instead.

As discussed in-person, this is the buildrequestid generated by buildbot, we set 17 in our sample-data. 

Will pass it every unit-test while creating pendingBuild(). e.g.: MockData.pendingBuild({buildRequestId: 700, buildbotBuildRequestId: 17}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1407517</commentid>
    <comment_count>19</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-03-19 17:27:30 -0700</bug_when>
    <thetext>Committed r229728: &lt;https://trac.webkit.org/changeset/229728&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1407518</commentid>
    <comment_count>20</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-03-19 17:28:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/38643063&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319050</attachid>
            <date>2017-08-24 18:05:03 -0700</date>
            <delta_ts>2017-08-24 19:38:22 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>patch_buildbot_perf_v1</filename>
            <type>text/plain</type>
            <size>13232</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjIxMTczKQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM2IEBACisyMDE3LTA4LTI0ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBVcGRhdGUgUGVyZiBidWlsZGJvdCBzeW5jaW5nIHNjcmlwdHMgZm9yIEJ1
aWxkYm90IDAuOQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc1OTY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB0b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanM6CisgICAgICAgIChCdWlsZGJvdEJ1aWxk
RW50cnkpOiBNb2RpZmllZCBhcyBwZXIgbmV3IGRhdGEgZm9ybWF0LgorICAgICAgICAoQnVpbGRi
b3RCdWlsZEVudHJ5LnByb3RvdHlwZS5pc1BlbmRpbmcpOiBEaXR0by4KKyAgICAgICAgKEJ1aWxk
Ym90QnVpbGRFbnRyeS5wcm90b3R5cGUuaGFzRmluaXNoZWQpOiBEaXR0by4KKyAgICAgICAgKEJ1
aWxkYm90U3luY2VyKTogQWRkZWQgYnVpbGRlck5hbWVUb0lETWFwIGFydWdtZW50IGluIGNvbnN0
cnVjdG9yLgorICAgICAgICAoQnVpbGRib3RTeW5jZXIucHJvdG90eXBlLmJ1aWxkZXJJRCk6IFJl
dHVybmRzIHRoZSBJRCBvZiB0aGUgYnVpbGRlci4KKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLnBy
b3RvdHlwZS5mb3JjZVNjaGVkdWxlcik6IFJldHVybnMgdGhlIG5hbWUgb2YgZm9yY2VTY2hlZHVs
ZXIuCisgICAgICAgIChCdWlsZGJvdFN5bmNlci5wcm90b3R5cGUuc2NoZWR1bGVSZXF1ZXN0KTog
Q3JlYXRlcyB0aGUgUE9TVCBkYXRhIGFzIHBlciBCdWlsZGJvdCAwLjkgQVBJLgorICAgICAgICAo
QnVpbGRib3RTeW5jZXIucHJvdG90eXBlLnB1bGxCdWlsZGJvdCk6IFBhcnNlIGNvbnRlbnQuYnVp
bGRyZXF1ZXN0cy4KKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLnByb3RvdHlwZS5fcHVsbFJlY2Vu
dEJ1aWxkcyk6IFVwZGF0ZWQgYXMgcGVyIEJ1aWxkYm90IDAuOSBmb3JtYXQuCisgICAgICAgIChC
dWlsZGJvdFN5bmNlci5wcm90b3R5cGUucGF0aEZvclBlbmRpbmdCdWlsZHNKU09OKTogRGl0dG8u
CisgICAgICAgIChCdWlsZGJvdFN5bmNlci5wcm90b3R5cGUucGF0aEZvckJ1aWxkSlNPTik6IERp
dHRvLgorICAgICAgICAoQnVpbGRib3RTeW5jZXIucHJvdG90eXBlLnBhdGhGb3JGb3JjZUJ1aWxk
KTogRGl0dG8uCisgICAgICAgIChCdWlsZGJvdFN5bmNlci5wcm90b3R5cGUudXJsKTogRGl0dG8u
CisgICAgICAgIChCdWlsZGJvdFN5bmNlci5wcm90b3R5cGUudXJsRm9yQnVpbGROdW1iZXIpOiBE
aXR0by4KKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLnByb3RvdHlwZS5fZGF0YUZvckJ1aWxkUmVx
dWVzdCk6IE1ldGhvZCB0byBjcmVhdGUgUE9TVCBkYXRhIGluIEJ1aWxkYm90IDAuOSBmb3JtYXQu
CisgICAgICAgIChCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyk6IFBhc3NlZCBidWlsZGVyTmFt
ZVRvSURNYXAgd2hpbGUgaW52b2tpbmcgQnVpbGRib3RTeW5jZXIoKS4KKyAgICAgICAgKiB0b29s
cy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qczoKKyAgICAgICAgKEJ1aWxkYm90VHJpZ2dlcmFi
bGUpOiBJbnZva2VzIF9sb2FkQ29uZmlnKCkgYWZ0ZXIgYnVpbGRlciBuYW1lIHRvIGlkIG1hcHBp
bmcgaXMgYXZhaWxhYmxlLgorICAgICAgICAoQnVpbGRib3RUcmlnZ2VyYWJsZS5wcm90b3R5cGUu
X2NvbXB1dGVCdWlsZGVyTmFtZVRvSURNYXApOiBGZXRjaGVzIHRoZSBidWlsZGVyIG5hbWUgdG8g
aWQgbWFwcGluZyBmcm9tIEJ1aWxkYm90IDAuOS4KKyAgICAgICAgKiB0b29scy9qcy9yZW1vdGUu
anM6CisgICAgICAgIChOb2RlUmVtb3RlQVBJLnByb3RvdHlwZS5wb3N0SlNPTkRhdGEpOiBVcGRh
dGVkIG1ldGhvZCB0byBzZW5kIEpTT04gZGF0YSBhcyBwZXIgQnVpbGRib3QgMC45IGZvcm1hdC4K
KyAgICAgICAgKE5vZGVSZW1vdGVBUEkucHJvdG90eXBlLnBvc3RGb3JtVXJsZW5jb2RlZERhdGEp
OiBEZWxldGVkLgorICAgICAgICAqIHRvb2xzL3N5bmMtYnVpbGRib3QuanM6CisgICAgICAgIChz
eW5jTG9vcCk6IG1ha2VUcmlnZ2VyYWJsZSgpIG5vdyByZXR1cm5zIGEgcHJvbWlzZS4gTW9kaWZp
ZWQgdG8gaGFuZGxlIHRoZSBwcm9taXNlLgorCiAyMDE3LTA4LTIxICBEZXdlaSBaaHUgIDxkZXdl
aV96aHVAYXBwbGUuY29tPgogCiAgICAgICAgIFBlcmZvcm1hbmNlIERhc2hib2FyZCBzaG91bGQg
YmUgY29tcGF0aWJsZSB3aXRoIFBIUCA3LgpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3Rvb2xzL3N5bmMtYnVpbGRib3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3Rvb2xzL3N5bmMtYnVpbGRib3QuanMJKHJldmlzaW9uIDIyMTE3MykKKysrIFdlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9zeW5jLWJ1aWxkYm90LmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0zNSwxMSArMzUsMTUgQEAgZnVuY3Rpb24gc3luY0xvb3Aob3B0aW9ucykKICAgICB9Owog
CiAgICAgTWFuaWZlc3QuZmV0Y2goKS50aGVuKCgpID0+IHsKLSAgICAgICAgcmV0dXJuIG1ha2VU
cmlnZ2VyYWJsZSgpLnVwZGF0ZVRyaWdnZXJhYmxlKCk7CisgICAgICAgIHJldHVybiBtYWtlVHJp
Z2dlcmFibGUoKS50aGVuKCh0cmlnZ2VyYWJsZSkgPT4geworICAgICAgICAgICAgcmV0dXJuIHRy
aWdnZXJhYmxlLnVwZGF0ZVRyaWdnZXJhYmxlKCk7CisgICAgICAgIH0pOwogICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICByZXR1cm4gTWFuaWZlc3QuZmV0Y2goKTsKICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgcmV0dXJuIG1ha2VUcmlnZ2VyYWJsZSgpLnN5bmNPbmNlKCk7CisgICAg
ICAgIHJldHVybiBtYWtlVHJpZ2dlcmFibGUoKS50aGVuKCh0cmlnZ2VyYWJsZSkgPT4geworICAg
ICAgICAgICAgcmV0dXJuIHRyaWdnZXJhYmxlLnN5bmNPbmNlKCk7CisgICAgICAgIH0pOwogICAg
IH0pLmNhdGNoKChlcnJvcikgPT4gewogICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTsKICAg
ICAgICAgaWYgKHR5cGVvZihlcnJvci5zdGFjaykgPT0gJ3N0cmluZycpIHsKSW5kZXg6IFdlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5q
cwkocmV2aXNpb24gMjIxMTczKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pz
L2J1aWxkYm90LXN5bmNlci5qcwkod29ya2luZyBjb3B5KQpAQCAtNywzMiArNywzMiBAQCByZXF1
aXJlKCcuL3YzLW1vZGVscy5qcycpOwogY2xhc3MgQnVpbGRib3RCdWlsZEVudHJ5IHsKICAgICBj
b25zdHJ1Y3RvcihzeW5jZXIsIHJhd0RhdGEpCiAgICAgewotICAgICAgICBhc3NlcnQuZXF1YWwo
c3luY2VyLmJ1aWxkZXJOYW1lKCksIHJhd0RhdGFbJ2J1aWxkZXJOYW1lJ10pOworICAgICAgICBh
c3NlcnQuZXF1YWwoc3luY2VyLmJ1aWxkZXJJRCgpLCByYXdEYXRhWydidWlsZGVyaWQnXSk7CiAK
ICAgICAgICAgdGhpcy5fc3luY2VyID0gc3luY2VyOwogICAgICAgICB0aGlzLl9zbGF2ZU5hbWUg
PSBudWxsOwotICAgICAgICB0aGlzLl9idWlsZFJlcXVlc3RJZCA9IG51bGw7Ci0gICAgICAgIHRo
aXMuX2lzSW5Qcm9ncmVzcyA9IHJhd0RhdGFbJ2N1cnJlbnRTdGVwJ10gfHwgKHJhd0RhdGFbJ3Rp
bWVzJ10gJiYgIXJhd0RhdGFbJ3RpbWVzJ11bMV0pOwotICAgICAgICB0aGlzLl9idWlsZE51bWJl
ciA9IHJhd0RhdGFbJ251bWJlciddOwotCi0gICAgICAgIGZvciAobGV0IHByb3BlcnR5VHVwbGUg
b2YgKHJhd0RhdGFbJ3Byb3BlcnRpZXMnXSB8fCBbXSkpIHsKLSAgICAgICAgICAgIC8vIGUuZy4g
WydidWlsZF9yZXF1ZXN0X2lkJywgJzE2NzMzJywgJ0ZvcmNlIEJ1aWxkIEZvcm0nXQotICAgICAg
ICAgICAgY29uc3QgbmFtZSA9IHByb3BlcnR5VHVwbGVbMF07Ci0gICAgICAgICAgICBjb25zdCB2
YWx1ZSA9IHByb3BlcnR5VHVwbGVbMV07Ci0gICAgICAgICAgICBpZiAobmFtZSA9PSBzeW5jZXIu
X3NsYXZlUHJvcGVydHlOYW1lKQotICAgICAgICAgICAgICAgIHRoaXMuX3NsYXZlTmFtZSA9IHZh
bHVlOwotICAgICAgICAgICAgZWxzZSBpZiAobmFtZSA9PSBzeW5jZXIuX2J1aWxkUmVxdWVzdFBy
b3BlcnR5TmFtZSkKLSAgICAgICAgICAgICAgICB0aGlzLl9idWlsZFJlcXVlc3RJZCA9IHZhbHVl
OwotICAgICAgICB9CisgICAgICAgIHRoaXMuX2J1aWxkUmVxdWVzdElkID0gcmF3RGF0YS5idWls
ZHJlcXVlc3RpZDsKKyAgICAgICAgdGhpcy5faGFzRmluaXNoZWQgPSByYXdEYXRhLmNvbXBsZXRl
OworICAgICAgICB0aGlzLl9jbGFpbWVkID0gZmFsc2U7CisgICAgICAgIGlmICghKCdjbGFpbWVk
JyBpbiByYXdEYXRhKSkKKyAgICAgICAgICAgIHRoaXMuX2NsYWltZWQgPSB0cnVlOyAvLyBUaGlz
IG1lYW5zIHRoaXMgaXMgYnVpbGQgZGF0YSwgbm90IGJ1aWxkLXJlcXVlc3QgZGF0YS4KKyAgICAg
ICAgdGhpcy5faXNJblByb2dyZXNzID0gIXJhd0RhdGEuY29tcGxldGUgJiYgdGhpcy5fY2xhaW1l
ZDsKKyAgICAgICAgdGhpcy5faXNQZW5kaW5nID0gIXJhd0RhdGEuY29tcGxldGUgJiYgIXRoaXMu
X2NsYWltZWQ7IAorICAgICAgICB0aGlzLl9idWlsZE51bWJlciA9IHJhd0RhdGEubnVtYmVyOwor
CisgICAgICAgIGlmICghKCdwcm9wZXJ0aWVzJyBpbiByYXdEYXRhKSkKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgaWYgKHJhd0RhdGEucHJvcGVydGllcy53b3JrZXJuYW1lKQorICAgICAg
ICAgICAgdGhpcy5fc2xhdmVOYW1lID0gcmF3RGF0YS5wcm9wZXJ0aWVzLndvcmtlcm5hbWVbMF07
CiAgICAgfQogCiAgICAgc3luY2VyKCkgeyByZXR1cm4gdGhpcy5fc3luY2VyOyB9CiAgICAgYnVp
bGROdW1iZXIoKSB7IHJldHVybiB0aGlzLl9idWlsZE51bWJlcjsgfQogICAgIHNsYXZlTmFtZSgp
IHsgcmV0dXJuIHRoaXMuX3NsYXZlTmFtZTsgfQogICAgIGJ1aWxkUmVxdWVzdElkKCkgeyByZXR1
cm4gdGhpcy5fYnVpbGRSZXF1ZXN0SWQ7IH0KLSAgICBpc1BlbmRpbmcoKSB7IHJldHVybiB0eXBl
b2YodGhpcy5fYnVpbGROdW1iZXIpICE9ICdudW1iZXInOyB9CisgICAgaXNQZW5kaW5nKCkgeyBy
ZXR1cm4gdGhpcy5faXNQZW5kaW5nOyB9CiAgICAgaXNJblByb2dyZXNzKCkgeyByZXR1cm4gdGhp
cy5faXNJblByb2dyZXNzOyB9Ci0gICAgaGFzRmluaXNoZWQoKSB7IHJldHVybiAhdGhpcy5pc1Bl
bmRpbmcoKSAmJiAhdGhpcy5pc0luUHJvZ3Jlc3MoKTsgfQorICAgIGhhc0ZpbmlzaGVkKCkgeyBy
ZXR1cm4gdGhpcy5faGFzRmluaXNoZWQ7IH0KICAgICB1cmwoKSB7IHJldHVybiB0aGlzLmlzUGVu
ZGluZygpID8gdGhpcy5fc3luY2VyLnVybCgpIDogdGhpcy5fc3luY2VyLnVybEZvckJ1aWxkTnVt
YmVyKHRoaXMuX2J1aWxkTnVtYmVyKTsgfQogCiAgICAgYnVpbGRSZXF1ZXN0U3RhdHVzSWZVcGRh
dGVJc05lZWRlZChyZXF1ZXN0KQpAQCAtNTcsNyArNTcsNyBAQCBjbGFzcyBCdWlsZGJvdEJ1aWxk
RW50cnkgewogCiBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAKLSAgICBjb25zdHJ1Y3RvcihyZW1v
dGUsIG9iamVjdCwgY29tbW9uQ29uZmlndXJhdGlvbnMpCisgICAgY29uc3RydWN0b3IocmVtb3Rl
LCBvYmplY3QsIGNvbW1vbkNvbmZpZ3VyYXRpb25zLCBidWlsZGVyTmFtZVRvSURNYXApCiAgICAg
ewogICAgICAgICB0aGlzLl9yZW1vdGUgPSByZW1vdGU7CiAgICAgICAgIHRoaXMuX3R5cGUgPSBu
dWxsOwpAQCAtNjYsMTIgKzY2LDE3IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAg
dGhpcy5fc2xhdmVQcm9wZXJ0eU5hbWUgPSBjb21tb25Db25maWd1cmF0aW9ucy5zbGF2ZUFyZ3Vt
ZW50OwogICAgICAgICB0aGlzLl9idWlsZFJlcXVlc3RQcm9wZXJ0eU5hbWUgPSBjb21tb25Db25m
aWd1cmF0aW9ucy5idWlsZFJlcXVlc3RBcmd1bWVudDsKICAgICAgICAgdGhpcy5fYnVpbGRlck5h
bWUgPSBvYmplY3QuYnVpbGRlcjsKKyAgICAgICAgdGhpcy5fYnVpbGRlcklEID0gYnVpbGRlck5h
bWVUb0lETWFwW3RoaXMuX2J1aWxkZXJOYW1lXTsKICAgICAgICAgdGhpcy5fc2xhdmVMaXN0ID0g
b2JqZWN0LnNsYXZlTGlzdDsKICAgICAgICAgdGhpcy5fZW50cnlMaXN0ID0gbnVsbDsKICAgICAg
ICAgdGhpcy5fc2xhdmVzV2l0aE5ld1JlcXVlc3RzID0gbmV3IFNldDsKKyAgICAgICAgaWYgKG9i
amVjdC5wcm9wZXJ0aWVzKQorICAgICAgICAgICAgdGhpcy5fZm9yY2VTY2hlZHVsZXIgPSBvYmpl
Y3QucHJvcGVydGllcy5mb3JjZXNjaGVkdWxlcjsKICAgICB9CiAKICAgICBidWlsZGVyTmFtZSgp
IHsgcmV0dXJuIHRoaXMuX2J1aWxkZXJOYW1lOyB9CisgICAgYnVpbGRlcklEKCkgeyByZXR1cm4g
dGhpcy5fYnVpbGRlcklEOyB9CisgICAgZm9yY2VTY2hlZHVsZXIoKSB7IHJldHVybiB0aGlzLl9m
b3JjZVNjaGVkdWxlcjsgfQogCiAgICAgYWRkVGVzdENvbmZpZ3VyYXRpb24odGVzdCwgcGxhdGZv
cm0sIHByb3BlcnRpZXNUZW1wbGF0ZSkKICAgICB7CkBAIC0xMTAsOCArMTE1LDEwIEBAIGNsYXNz
IEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgaWYgKHRoaXMuX3NsYXZlUHJvcGVydHlOYW1lKQog
ICAgICAgICAgICAgcHJvcGVydGllc1t0aGlzLl9zbGF2ZVByb3BlcnR5TmFtZV0gPSBzbGF2ZU5h
bWU7CiAKLSAgICAgICAgdGhpcy5fc2xhdmVzV2l0aE5ld1JlcXVlc3RzLmFkZChzbGF2ZU5hbWUp
OwotICAgICAgICByZXR1cm4gdGhpcy5fcmVtb3RlLnBvc3RGb3JtVXJsZW5jb2RlZERhdGEodGhp
cy5wYXRoRm9yRm9yY2VCdWlsZCgpLCBwcm9wZXJ0aWVzKTsKKyAgICAgICAgaWYgKHNsYXZlTmFt
ZSkKKyAgICAgICAgICAgIHRoaXMuX3NsYXZlc1dpdGhOZXdSZXF1ZXN0cy5hZGQoc2xhdmVOYW1l
KTsKKyAgICAgICAgbGV0IGRhdGEgPSB0aGlzLl9kYXRhRm9yQnVpbGRSZXF1ZXN0KHByb3BlcnRp
ZXMpCisgICAgICAgIHJldHVybiB0aGlzLl9yZW1vdGUucG9zdEpTT05EYXRhKHRoaXMucGF0aEZv
ckZvcmNlQnVpbGQoKSwgZGF0YSk7CiAgICAgfQogCiAgICAgc2NoZWR1bGVSZXF1ZXN0SW5Hcm91
cElmQXZhaWxhYmxlKG5ld1JlcXVlc3QsIHJlcXVlc3RzSW5Hcm91cCwgc2xhdmVOYW1lKQpAQCAt
MTU5LDggKzE2Niw5IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKIAogICAgIHB1bGxCdWlsZGJv
dChjb3VudCkKICAgICB7CisgICAgICAgIC8vIEZJWE1FOiB3ZSBzaG91bGQgcmVtb3ZlIGR1cGxp
Y2F0ZXMgZnJvbSBjb250ZW50LmJ1aWxkcmVxdWVzdHMKICAgICAgICAgcmV0dXJuIHRoaXMuX3Jl
bW90ZS5nZXRKU09OKHRoaXMucGF0aEZvclBlbmRpbmdCdWlsZHNKU09OKCkpLnRoZW4oKGNvbnRl
bnQpID0+IHsKLSAgICAgICAgICAgIGxldCBwZW5kaW5nRW50cmllcyA9IGNvbnRlbnQubWFwKChl
bnRyeSkgPT4gbmV3IEJ1aWxkYm90QnVpbGRFbnRyeSh0aGlzLCBlbnRyeSkpOworICAgICAgICAg
ICAgbGV0IHBlbmRpbmdFbnRyaWVzID0gY29udGVudC5idWlsZHJlcXVlc3RzLm1hcCgoZW50cnkp
ID0+IG5ldyBCdWlsZGJvdEJ1aWxkRW50cnkodGhpcywgZW50cnkpKTsKICAgICAgICAgICAgIHJl
dHVybiB0aGlzLl9wdWxsUmVjZW50QnVpbGRzKGNvdW50KS50aGVuKChlbnRyaWVzKSA9PiB7CiAg
ICAgICAgICAgICAgICAgbGV0IGVudHJ5QnlSZXF1ZXN0ID0ge307CiAKQEAgLTE4NywzMCArMTk1
LDMzIEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgaWYgKCFjb3VudCkKICAgICAg
ICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoW10pOwogCi0gICAgICAgIGxldCBzZWxlY3Rl
ZEJ1aWxkcyA9IG5ldyBBcnJheShjb3VudCk7Ci0gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
Y291bnQ7IGkrKykKLSAgICAgICAgICAgIHNlbGVjdGVkQnVpbGRzW2ldID0gLWkgLSAxOwotCi0g
ICAgICAgIHJldHVybiB0aGlzLl9yZW1vdGUuZ2V0SlNPTih0aGlzLnBhdGhGb3JCdWlsZEpTT04o
c2VsZWN0ZWRCdWlsZHMpKS50aGVuKChjb250ZW50KSA9PiB7CisgICAgICAgIHJldHVybiB0aGlz
Ll9yZW1vdGUuZ2V0SlNPTih0aGlzLnBhdGhGb3JCdWlsZEpTT04oY291bnQpKS50aGVuKChjb250
ZW50KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBlbnRyaWVzID0gW107Ci0gICAgICAgICAgICBm
b3IgKGxldCBpbmRleCBvZiBzZWxlY3RlZEJ1aWxkcykgewotICAgICAgICAgICAgICAgIGNvbnN0
IGVudHJ5ID0gY29udGVudFtpbmRleF07Ci0gICAgICAgICAgICAgICAgaWYgKGVudHJ5ICYmICFl
bnRyeVsnZXJyb3InXSkKLSAgICAgICAgICAgICAgICAgICAgZW50cmllcy5wdXNoKG5ldyBCdWls
ZGJvdEJ1aWxkRW50cnkodGhpcywgZW50cnkpKTsKKyAgICAgICAgICAgIGZvciAobGV0IGJ1aWxk
IG9mIGNvbnRlbnQuYnVpbGRzKSB7CisgICAgICAgICAgICAgICAgaWYgKGJ1aWxkKQorICAgICAg
ICAgICAgICAgICAgICBlbnRyaWVzLnB1c2gobmV3IEJ1aWxkYm90QnVpbGRFbnRyeSh0aGlzLCBi
dWlsZCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIGVudHJpZXM7CiAgICAg
ICAgIH0pOwogICAgIH0KIAotICAgIHBhdGhGb3JQZW5kaW5nQnVpbGRzSlNPTigpIHsgcmV0dXJu
IGAvanNvbi9idWlsZGVycy8ke2VzY2FwZSh0aGlzLl9idWlsZGVyTmFtZSl9L3BlbmRpbmdCdWls
ZHNgOyB9Ci0gICAgcGF0aEZvckJ1aWxkSlNPTihzZWxlY3RlZEJ1aWxkcykKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBgL2pzb24vYnVpbGRlcnMvJHtlc2NhcGUodGhpcy5fYnVpbGRlck5hbWUpfS9i
dWlsZHMvP2AgKyBzZWxlY3RlZEJ1aWxkcy5tYXAoKG51bWJlcikgPT4gJ3NlbGVjdD0nICsgbnVt
YmVyKS5qb2luKCcmJyk7CisgICAgcGF0aEZvclBlbmRpbmdCdWlsZHNKU09OKCkgeyByZXR1cm4g
YC9hcGkvdjIvYnVpbGRlcnMvJHt0aGlzLmJ1aWxkZXJJRCgpfS9idWlsZHJlcXVlc3RzP2NvbXBs
ZXRlPWZhbHNlJmNsYWltZWQ9ZmFsc2VgOyB9CisgICAgcGF0aEZvckJ1aWxkSlNPTihjb3VudCkg
eyByZXR1cm4gYC9hcGkvdjIvYnVpbGRlcnMvJHt0aGlzLmJ1aWxkZXJJRCgpfS9idWlsZHM/YCAr
IGBsaW1pdD0ke2NvdW50fSZvcmRlcj0tbnVtYmVyJnByb3BlcnR5PSpgOyB9CisgICAgcGF0aEZv
ckZvcmNlQnVpbGQoKSB7IHJldHVybiBgL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvJHt0aGlzLmZv
cmNlU2NoZWR1bGVyKCl9YDsgfQorCisgICAgdXJsKCkgeyByZXR1cm4gdGhpcy5fcmVtb3RlLnVy
bChgL2J1aWxkZXJzLyR7dGhpcy5idWlsZGVySUQoKX0vYCk7IH0KKyAgICB1cmxGb3JCdWlsZE51
bWJlcihudW1iZXIpIHsgcmV0dXJuIHRoaXMuX3JlbW90ZS51cmwoYC9idWlsZGVycy8ke3RoaXMu
YnVpbGRlcklEKCl9L2J1aWxkcy8ke251bWJlcn1gKTsgfQorCisgICAgX2RhdGFGb3JCdWlsZFJl
cXVlc3QocHJvcGVydGllcykKKyAgICB7CisgICAgICAgIGNvbnN0IGRhdGEgPSB7fTsKKyAgICAg
ICAgZGF0YVsnanNvbnJwYyddID0gJzIuMCc7CisgICAgICAgIGRhdGFbJ21ldGhvZCddID0gJ2Zv
cmNlJzsKKyAgICAgICAgZGF0YVsnaWQnXSA9IHByb3BlcnRpZXNbdGhpcy5fYnVpbGRSZXF1ZXN0
UHJvcGVydHlOYW1lXTsKKyAgICAgICAgZGF0YVsncGFyYW1zJ10gPSBwcm9wZXJ0aWVzOworICAg
ICAgICBkYXRhWydwYXJhbXMnXVsnb3duZXInXSA9ICdQZXJmJzsKKyAgICAgICAgcmV0dXJuIGRh
dGE7CiAgICAgfQotICAgIHBhdGhGb3JGb3JjZUJ1aWxkKCkgeyByZXR1cm4gYC9idWlsZGVycy8k
e2VzY2FwZSh0aGlzLl9idWlsZGVyTmFtZSl9L2ZvcmNlYDsgfQotCi0gICAgdXJsKCkgeyByZXR1
cm4gdGhpcy5fcmVtb3RlLnVybChgL2J1aWxkZXJzLyR7ZXNjYXBlKHRoaXMuX2J1aWxkZXJOYW1l
KX0vYCk7IH0KLSAgICB1cmxGb3JCdWlsZE51bWJlcihudW1iZXIpIHsgcmV0dXJuIHRoaXMuX3Jl
bW90ZS51cmwoYC9idWlsZGVycy8ke2VzY2FwZSh0aGlzLl9idWlsZGVyTmFtZSl9L2J1aWxkcy8k
e251bWJlcn1gKTsgfQogCiAgICAgX3Byb3BlcnRpZXNGb3JCdWlsZFJlcXVlc3QoYnVpbGRSZXF1
ZXN0LCByZXF1ZXN0c0luR3JvdXApCiAgICAgewpAQCAtMzE2LDcgKzMyNyw3IEBAIGNsYXNzIEJ1
aWxkYm90U3luY2VyIHsKICAgICAgICAgY29uc3QgZW5zdXJlQnVpbGRib3RTeW5jZXIgPSAoYnVp
bGRlckluZm8pID0+IHsKICAgICAgICAgICAgIGxldCBidWlsZGVyU3luY2VyID0gc3luY2VyQnlC
dWlsZGVyLmdldChidWlsZGVySW5mby5idWlsZGVyKTsKICAgICAgICAgICAgIGlmICghYnVpbGRl
clN5bmNlcikgewotICAgICAgICAgICAgICAgIGJ1aWxkZXJTeW5jZXIgPSBuZXcgQnVpbGRib3RT
eW5jZXIocmVtb3RlLCBidWlsZGVySW5mbywgY29tbW9uQ29uZmlndXJhdGlvbnMpOworICAgICAg
ICAgICAgICAgIGJ1aWxkZXJTeW5jZXIgPSBuZXcgQnVpbGRib3RTeW5jZXIocmVtb3RlLCBidWls
ZGVySW5mbywgY29tbW9uQ29uZmlndXJhdGlvbnMsIGNvbmZpZ1snYnVpbGRlck5hbWVUb0lETWFw
J10pOwogICAgICAgICAgICAgICAgIHN5bmNlckJ5QnVpbGRlci5zZXQoYnVpbGRlckluZm8uYnVp
bGRlciwgYnVpbGRlclN5bmNlcik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4g
YnVpbGRlclN5bmNlcjsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9i
dWlsZGJvdC10cmlnZ2VyYWJsZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMJKHJldmlzaW9uIDIyMTE3MykK
KysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJs
ZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMjEsOCArMjEsMjYgQEAgY2xhc3MgQnVpbGRib3RUcmln
Z2VyYWJsZSB7CiAgICAgICAgIGFzc2VydCh0eXBlb2Yoc2xhdmVJbmZvLm5hbWUpID09ICdzdHJp
bmcnLCAnc2xhdmUgbmFtZSBtdXN0IGJlIHNwZWNpZmllZCcpOwogICAgICAgICBhc3NlcnQodHlw
ZW9mKHNsYXZlSW5mby5wYXNzd29yZCkgPT0gJ3N0cmluZycsICdzbGF2ZSBwYXNzd29yZCBtdXN0
IGJlIHNwZWNpZmllZCcpOwogCi0gICAgICAgIHRoaXMuX3N5bmNlcnMgPSBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhidWlsZGJvdFJlbW90ZSwgY29uZmlnKTsKICAgICAgICAgdGhpcy5fbG9n
Z2VyID0gbG9nZ2VyIHx8IHtsb2c6ICgpID0+IHsgfSwgZXJyb3I6ICgpID0+IHsgfX07CisgICAg
ICAgIHJldHVybiB0aGlzLl9jb21wdXRlQnVpbGRlck5hbWVUb0lETWFwKHRoaXMsIGJ1aWxkYm90
UmVtb3RlLCBjb25maWcpOworICAgIH0KKyAKKyAgICBfY29tcHV0ZUJ1aWxkZXJOYW1lVG9JRE1h
cCh0cmlnZ2VyYWJsZSwgYnVpbGRib3RSZW1vdGUsIGNvbmZpZykKKyAgICB7CisgICAgICAgIHJl
dHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAg
ICBidWlsZGJvdFJlbW90ZS5nZXRKU09OKCIvYXBpL3YyL2J1aWxkZXJzIikudGhlbigoY29udGVu
dCkgPT4geworICAgICAgICAgICAgICAgIGlmICghY29udGVudCB8fCAhKGNvbnRlbnQuYnVpbGRl
cnMgaW5zdGFuY2VvZiBBcnJheSkpCisgICAgICAgICAgICAgICAgICAgIHJlamVjdCgpOworCisg
ICAgICAgICAgICAgICAgY29uc3QgX2J1aWxkZXJOYW1lVG9JRE1hcCA9IHt9OyAKKyAgICAgICAg
ICAgICAgICBmb3IgKHZhciBidWlsZGVyIG9mIGNvbnRlbnQuYnVpbGRlcnMpCisgICAgICAgICAg
ICAgICAgICAgIF9idWlsZGVyTmFtZVRvSURNYXBbYnVpbGRlci5uYW1lXSA9IGJ1aWxkZXIuYnVp
bGRlcmlkOworCisgICAgICAgICAgICAgICAgY29uZmlnWydidWlsZGVyTmFtZVRvSURNYXAnXSA9
IF9idWlsZGVyTmFtZVRvSURNYXA7CisgICAgICAgICAgICAgICAgdHJpZ2dlcmFibGUuX3N5bmNl
cnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhidWlsZGJvdFJlbW90ZSwgY29uZmlnKTsK
KyAgICAgICAgICAgICAgICByZXNvbHZlKHRyaWdnZXJhYmxlKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9KTsKICAgICB9CiAKICAgICBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQpJ
bmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3JlbW90ZS5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvcmVtb3RlLmpzCShyZXZp
c2lvbiAyMjExNzMpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvcmVtb3Rl
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC01NywxMCArNTcsMTAgQEAgY2xhc3MgTm9kZVJlbW90ZUFQ
SSBleHRlbmRzIENvbW1vblJlbW90ZQogCiAgICAgY2xlYXJDb29raWVzKCkgeyB0aGlzLl9jb29r
aWVzID0gbmV3IE1hcDsgfQogCi0gICAgcG9zdEZvcm1VcmxlbmNvZGVkRGF0YShwYXRoLCBkYXRh
KQorICAgIHBvc3RKU09ORGF0YShwYXRoLCBkYXRhKQogICAgIHsKLSAgICAgICAgY29uc3QgY29u
dGVudFR5cGUgPSAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJzsKLSAgICAgICAg
Y29uc3QgcGF5bG9hZCA9IHF1ZXJ5c3RyaW5nLnN0cmluZ2lmeShkYXRhKTsKKyAgICAgICAgY29u
c3QgY29udGVudFR5cGUgPSAnYXBwbGljYXRpb24vanNvbic7CisgICAgICAgIGNvbnN0IHBheWxv
YWQgPSBKU09OLnN0cmluZ2lmeShkYXRhKTsKICAgICAgICAgcmV0dXJuIHRoaXMuc2VuZEh0dHBS
ZXF1ZXN0KHBhdGgsICdQT1NUJywgY29udGVudFR5cGUsIHBheWxvYWQpLnRoZW4oZnVuY3Rpb24g
KHJlc3VsdCkgewogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZXNwb25zZVRleHQ7CiAgICAg
ICAgIH0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319059</attachid>
            <date>2017-08-24 19:38:22 -0700</date>
            <delta_ts>2018-01-29 20:15:28 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_buildbot_perf_v2</filename>
            <type>text/plain</type>
            <size>13648</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjIxMTczKQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM3IEBACisyMDE3LTA4LTI0ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBVcGRhdGUgUGVyZiBidWlsZGJvdCBzeW5jaW5nIHNjcmlwdHMgZm9yIEJ1
aWxkYm90IDAuOQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc1OTY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB0b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qczoKKyAgICAgICAgKEJ1aWxkYm90
VHJpZ2dlcmFibGUpOiBJbnZva2VzIF9sb2FkQ29uZmlnKCkgYWZ0ZXIgYnVpbGRlciBuYW1lIHRv
IGlkIG1hcHBpbmcgaXMgYXZhaWxhYmxlLgorICAgICAgICAoQnVpbGRib3RUcmlnZ2VyYWJsZS5w
cm90b3R5cGUuaW5pdFN5bmNlcnMpOiBGZXRjaGVzIHRoZSBidWlsZGVyIG5hbWUgdG8gaWQgbWFw
cGluZyBmcm9tIEJ1aWxkYm90IDAuOSBhbmQKKyAgICAgICAgaW5pdGlhbGl6ZSBzeW5jZXJzIGJ5
IGNhbGxpbmcgbG9hZENvbmZpZygpLgorICAgICAgICAqIHRvb2xzL2pzL3JlbW90ZS5qczoKKyAg
ICAgICAgKE5vZGVSZW1vdGVBUEkucHJvdG90eXBlLnBvc3RKU09ORGF0YSk6IFVwZGF0ZWQgbWV0
aG9kIHRvIHNlbmQgSlNPTiBkYXRhIGFzIHBlciBCdWlsZGJvdCAwLjkgZm9ybWF0LgorICAgICAg
ICAoTm9kZVJlbW90ZUFQSS5wcm90b3R5cGUucG9zdEZvcm1VcmxlbmNvZGVkRGF0YSk6IERlbGV0
ZWQuCisgICAgICAgICogdG9vbHMvc3luYy1idWlsZGJvdC5qczoKKyAgICAgICAgKHN5bmNMb29w
KTogVXNlIGluaXRTeW5jZXJzKCkgd2hpY2ggcmV0dXJucyBhIHByb21pc2UuIE1vZGlmaWVkIHRv
IGhhbmRsZSB0aGUgcHJvbWlzZS4KKyAgICAgICAgKiB0b29scy9qcy9idWlsZGJvdC1zeW5jZXIu
anM6CisgICAgICAgIChCdWlsZGJvdEJ1aWxkRW50cnkpOiBNb2RpZmllZCBhcyBwZXIgbmV3IGRh
dGEgZm9ybWF0LgorICAgICAgICAoQnVpbGRib3RCdWlsZEVudHJ5LnByb3RvdHlwZS5pc1BlbmRp
bmcpOiBEaXR0by4KKyAgICAgICAgKEJ1aWxkYm90QnVpbGRFbnRyeS5wcm90b3R5cGUuaGFzRmlu
aXNoZWQpOiBEaXR0by4KKyAgICAgICAgKEJ1aWxkYm90U3luY2VyKTogQWRkZWQgYnVpbGRlck5h
bWVUb0lETWFwIGFydWdtZW50IGluIGNvbnN0cnVjdG9yLgorICAgICAgICAoQnVpbGRib3RTeW5j
ZXIucHJvdG90eXBlLmJ1aWxkZXJJRCk6IFJldHVybmRzIHRoZSBJRCBvZiB0aGUgYnVpbGRlci4K
KyAgICAgICAgKEJ1aWxkYm90U3luY2VyLnByb3RvdHlwZS5mb3JjZVNjaGVkdWxlcik6IFJldHVy
bnMgdGhlIG5hbWUgb2YgZm9yY2VTY2hlZHVsZXIuCisgICAgICAgIChCdWlsZGJvdFN5bmNlci5w
cm90b3R5cGUuc2NoZWR1bGVSZXF1ZXN0KTogQ3JlYXRlcyB0aGUgUE9TVCBkYXRhIGFzIHBlciBC
dWlsZGJvdCAwLjkgQVBJLgorICAgICAgICAoQnVpbGRib3RTeW5jZXIucHJvdG90eXBlLnB1bGxC
dWlsZGJvdCk6IFBhcnNlIGNvbnRlbnQuYnVpbGRyZXF1ZXN0cy4KKyAgICAgICAgKEJ1aWxkYm90
U3luY2VyLnByb3RvdHlwZS5fcHVsbFJlY2VudEJ1aWxkcyk6IFVwZGF0ZWQgYXMgcGVyIEJ1aWxk
Ym90IDAuOSBmb3JtYXQuCisgICAgICAgIChCdWlsZGJvdFN5bmNlci5wcm90b3R5cGUucGF0aEZv
clBlbmRpbmdCdWlsZHNKU09OKTogRGl0dG8uCisgICAgICAgIChCdWlsZGJvdFN5bmNlci5wcm90
b3R5cGUucGF0aEZvckJ1aWxkSlNPTik6IERpdHRvLgorICAgICAgICAoQnVpbGRib3RTeW5jZXIu
cHJvdG90eXBlLnBhdGhGb3JGb3JjZUJ1aWxkKTogRGl0dG8uCisgICAgICAgIChCdWlsZGJvdFN5
bmNlci5wcm90b3R5cGUudXJsKTogRGl0dG8uCisgICAgICAgIChCdWlsZGJvdFN5bmNlci5wcm90
b3R5cGUudXJsRm9yQnVpbGROdW1iZXIpOiBEaXR0by4KKyAgICAgICAgKEJ1aWxkYm90U3luY2Vy
LnByb3RvdHlwZS5fZGF0YUZvckJ1aWxkUmVxdWVzdCk6IE1ldGhvZCB0byBjcmVhdGUgUE9TVCBk
YXRhIGluIEJ1aWxkYm90IDAuOSBmb3JtYXQuCisgICAgICAgIChCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyk6IFBhc3NlZCBidWlsZGVyTmFtZVRvSURNYXAgd2hpbGUgaW52b2tpbmcgQnVpbGRi
b3RTeW5jZXIoKS4KKwogMjAxNy0wOC0yMSAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1QGFwcGxlLmNv
bT4KIAogICAgICAgICBQZXJmb3JtYW5jZSBEYXNoYm9hcmQgc2hvdWxkIGJlIGNvbXBhdGlibGUg
d2l0aCBQSFAgNy4KSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9zeW5jLWJ1
aWxkYm90LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9z
eW5jLWJ1aWxkYm90LmpzCShyZXZpc2lvbiAyMjExNzMpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdG9vbHMvc3luYy1idWlsZGJvdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMzUsMTEgKzM1
LDE3IEBAIGZ1bmN0aW9uIHN5bmNMb29wKG9wdGlvbnMpCiAgICAgfTsKIAogICAgIE1hbmlmZXN0
LmZldGNoKCkudGhlbigoKSA9PiB7Ci0gICAgICAgIHJldHVybiBtYWtlVHJpZ2dlcmFibGUoKS51
cGRhdGVUcmlnZ2VyYWJsZSgpOworICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IG1ha2VUcmln
Z2VyYWJsZSgpOworICAgICAgICByZXR1cm4gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVu
KCgpID0+IHsKKyAgICAgICAgICAgIHJldHVybiB0cmlnZ2VyYWJsZS51cGRhdGVUcmlnZ2VyYWJs
ZSgpOworICAgICAgICB9KTsKICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgcmV0dXJuIE1h
bmlmZXN0LmZldGNoKCk7CiAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgIHJldHVybiBtYWtl
VHJpZ2dlcmFibGUoKS5zeW5jT25jZSgpOworICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IG1h
a2VUcmlnZ2VyYWJsZSgpOworICAgICAgICByZXR1cm4gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMo
KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIHJldHVybiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgp
OworICAgICAgICB9KTsKICAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHsKICAgICAgICAgY29uc29s
ZS5lcnJvcihlcnJvcik7CiAgICAgICAgIGlmICh0eXBlb2YoZXJyb3Iuc3RhY2spID09ICdzdHJp
bmcnKSB7CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qt
c3luY2VyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9q
cy9idWlsZGJvdC1zeW5jZXIuanMJKHJldmlzaW9uIDIyMTE3MykKKysrIFdlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMJKHdvcmtpbmcgY29weSkKQEAg
LTcsMzIgKzcsMzIgQEAgcmVxdWlyZSgnLi92My1tb2RlbHMuanMnKTsKIGNsYXNzIEJ1aWxkYm90
QnVpbGRFbnRyeSB7CiAgICAgY29uc3RydWN0b3Ioc3luY2VyLCByYXdEYXRhKQogICAgIHsKLSAg
ICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlci5idWlsZGVyTmFtZSgpLCByYXdEYXRhWydidWlsZGVy
TmFtZSddKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlci5idWlsZGVySUQoKSwgcmF3RGF0
YVsnYnVpbGRlcmlkJ10pOwogCiAgICAgICAgIHRoaXMuX3N5bmNlciA9IHN5bmNlcjsKICAgICAg
ICAgdGhpcy5fc2xhdmVOYW1lID0gbnVsbDsKLSAgICAgICAgdGhpcy5fYnVpbGRSZXF1ZXN0SWQg
PSBudWxsOwotICAgICAgICB0aGlzLl9pc0luUHJvZ3Jlc3MgPSByYXdEYXRhWydjdXJyZW50U3Rl
cCddIHx8IChyYXdEYXRhWyd0aW1lcyddICYmICFyYXdEYXRhWyd0aW1lcyddWzFdKTsKLSAgICAg
ICAgdGhpcy5fYnVpbGROdW1iZXIgPSByYXdEYXRhWydudW1iZXInXTsKLQotICAgICAgICBmb3Ig
KGxldCBwcm9wZXJ0eVR1cGxlIG9mIChyYXdEYXRhWydwcm9wZXJ0aWVzJ10gfHwgW10pKSB7Ci0g
ICAgICAgICAgICAvLyBlLmcuIFsnYnVpbGRfcmVxdWVzdF9pZCcsICcxNjczMycsICdGb3JjZSBC
dWlsZCBGb3JtJ10KLSAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBwcm9wZXJ0eVR1cGxlWzBdOwot
ICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBwcm9wZXJ0eVR1cGxlWzFdOwotICAgICAgICAgICAg
aWYgKG5hbWUgPT0gc3luY2VyLl9zbGF2ZVByb3BlcnR5TmFtZSkKLSAgICAgICAgICAgICAgICB0
aGlzLl9zbGF2ZU5hbWUgPSB2YWx1ZTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG5hbWUgPT0gc3lu
Y2VyLl9idWlsZFJlcXVlc3RQcm9wZXJ0eU5hbWUpCi0gICAgICAgICAgICAgICAgdGhpcy5fYnVp
bGRSZXF1ZXN0SWQgPSB2YWx1ZTsKLSAgICAgICAgfQorICAgICAgICB0aGlzLl9idWlsZFJlcXVl
c3RJZCA9IHJhd0RhdGEuYnVpbGRyZXF1ZXN0aWQ7CisgICAgICAgIHRoaXMuX2hhc0ZpbmlzaGVk
ID0gcmF3RGF0YS5jb21wbGV0ZTsKKyAgICAgICAgdGhpcy5fY2xhaW1lZCA9IGZhbHNlOworICAg
ICAgICBpZiAoISgnY2xhaW1lZCcgaW4gcmF3RGF0YSkpCisgICAgICAgICAgICB0aGlzLl9jbGFp
bWVkID0gdHJ1ZTsgLy8gVGhpcyBtZWFucyB0aGlzIGlzIGJ1aWxkIGRhdGEsIG5vdCBidWlsZC1y
ZXF1ZXN0IGRhdGEuCisgICAgICAgIHRoaXMuX2lzSW5Qcm9ncmVzcyA9ICFyYXdEYXRhLmNvbXBs
ZXRlICYmIHRoaXMuX2NsYWltZWQ7CisgICAgICAgIHRoaXMuX2lzUGVuZGluZyA9ICFyYXdEYXRh
LmNvbXBsZXRlICYmICF0aGlzLl9jbGFpbWVkOyAKKyAgICAgICAgdGhpcy5fYnVpbGROdW1iZXIg
PSByYXdEYXRhLm51bWJlcjsKKworICAgICAgICBpZiAoISgncHJvcGVydGllcycgaW4gcmF3RGF0
YSkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlmIChyYXdEYXRhLnByb3BlcnRpZXMu
d29ya2VybmFtZSkKKyAgICAgICAgICAgIHRoaXMuX3NsYXZlTmFtZSA9IHJhd0RhdGEucHJvcGVy
dGllcy53b3JrZXJuYW1lWzBdOwogICAgIH0KIAogICAgIHN5bmNlcigpIHsgcmV0dXJuIHRoaXMu
X3N5bmNlcjsgfQogICAgIGJ1aWxkTnVtYmVyKCkgeyByZXR1cm4gdGhpcy5fYnVpbGROdW1iZXI7
IH0KICAgICBzbGF2ZU5hbWUoKSB7IHJldHVybiB0aGlzLl9zbGF2ZU5hbWU7IH0KICAgICBidWls
ZFJlcXVlc3RJZCgpIHsgcmV0dXJuIHRoaXMuX2J1aWxkUmVxdWVzdElkOyB9Ci0gICAgaXNQZW5k
aW5nKCkgeyByZXR1cm4gdHlwZW9mKHRoaXMuX2J1aWxkTnVtYmVyKSAhPSAnbnVtYmVyJzsgfQor
ICAgIGlzUGVuZGluZygpIHsgcmV0dXJuIHRoaXMuX2lzUGVuZGluZzsgfQogICAgIGlzSW5Qcm9n
cmVzcygpIHsgcmV0dXJuIHRoaXMuX2lzSW5Qcm9ncmVzczsgfQotICAgIGhhc0ZpbmlzaGVkKCkg
eyByZXR1cm4gIXRoaXMuaXNQZW5kaW5nKCkgJiYgIXRoaXMuaXNJblByb2dyZXNzKCk7IH0KKyAg
ICBoYXNGaW5pc2hlZCgpIHsgcmV0dXJuIHRoaXMuX2hhc0ZpbmlzaGVkOyB9CiAgICAgdXJsKCkg
eyByZXR1cm4gdGhpcy5pc1BlbmRpbmcoKSA/IHRoaXMuX3N5bmNlci51cmwoKSA6IHRoaXMuX3N5
bmNlci51cmxGb3JCdWlsZE51bWJlcih0aGlzLl9idWlsZE51bWJlcik7IH0KIAogICAgIGJ1aWxk
UmVxdWVzdFN0YXR1c0lmVXBkYXRlSXNOZWVkZWQocmVxdWVzdCkKQEAgLTU3LDcgKzU3LDcgQEAg
Y2xhc3MgQnVpbGRib3RCdWlsZEVudHJ5IHsKIAogY2xhc3MgQnVpbGRib3RTeW5jZXIgewogCi0g
ICAgY29uc3RydWN0b3IocmVtb3RlLCBvYmplY3QsIGNvbW1vbkNvbmZpZ3VyYXRpb25zKQorICAg
IGNvbnN0cnVjdG9yKHJlbW90ZSwgb2JqZWN0LCBjb21tb25Db25maWd1cmF0aW9ucywgYnVpbGRl
ck5hbWVUb0lETWFwKQogICAgIHsKICAgICAgICAgdGhpcy5fcmVtb3RlID0gcmVtb3RlOwogICAg
ICAgICB0aGlzLl90eXBlID0gbnVsbDsKQEAgLTY2LDEyICs2NiwxNyBAQCBjbGFzcyBCdWlsZGJv
dFN5bmNlciB7CiAgICAgICAgIHRoaXMuX3NsYXZlUHJvcGVydHlOYW1lID0gY29tbW9uQ29uZmln
dXJhdGlvbnMuc2xhdmVBcmd1bWVudDsKICAgICAgICAgdGhpcy5fYnVpbGRSZXF1ZXN0UHJvcGVy
dHlOYW1lID0gY29tbW9uQ29uZmlndXJhdGlvbnMuYnVpbGRSZXF1ZXN0QXJndW1lbnQ7CiAgICAg
ICAgIHRoaXMuX2J1aWxkZXJOYW1lID0gb2JqZWN0LmJ1aWxkZXI7CisgICAgICAgIHRoaXMuX2J1
aWxkZXJJRCA9IGJ1aWxkZXJOYW1lVG9JRE1hcFt0aGlzLl9idWlsZGVyTmFtZV07CiAgICAgICAg
IHRoaXMuX3NsYXZlTGlzdCA9IG9iamVjdC5zbGF2ZUxpc3Q7CiAgICAgICAgIHRoaXMuX2VudHJ5
TGlzdCA9IG51bGw7CiAgICAgICAgIHRoaXMuX3NsYXZlc1dpdGhOZXdSZXF1ZXN0cyA9IG5ldyBT
ZXQ7CisgICAgICAgIGlmIChvYmplY3QucHJvcGVydGllcykKKyAgICAgICAgICAgIHRoaXMuX2Zv
cmNlU2NoZWR1bGVyID0gb2JqZWN0LnByb3BlcnRpZXMuZm9yY2VzY2hlZHVsZXI7CiAgICAgfQog
CiAgICAgYnVpbGRlck5hbWUoKSB7IHJldHVybiB0aGlzLl9idWlsZGVyTmFtZTsgfQorICAgIGJ1
aWxkZXJJRCgpIHsgcmV0dXJuIHRoaXMuX2J1aWxkZXJJRDsgfQorICAgIGZvcmNlU2NoZWR1bGVy
KCkgeyByZXR1cm4gdGhpcy5fZm9yY2VTY2hlZHVsZXI7IH0KIAogICAgIGFkZFRlc3RDb25maWd1
cmF0aW9uKHRlc3QsIHBsYXRmb3JtLCBwcm9wZXJ0aWVzVGVtcGxhdGUpCiAgICAgewpAQCAtMTEw
LDggKzExNSwxMCBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgIGlmICh0aGlzLl9z
bGF2ZVByb3BlcnR5TmFtZSkKICAgICAgICAgICAgIHByb3BlcnRpZXNbdGhpcy5fc2xhdmVQcm9w
ZXJ0eU5hbWVdID0gc2xhdmVOYW1lOwogCi0gICAgICAgIHRoaXMuX3NsYXZlc1dpdGhOZXdSZXF1
ZXN0cy5hZGQoc2xhdmVOYW1lKTsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3JlbW90ZS5wb3N0Rm9y
bVVybGVuY29kZWREYXRhKHRoaXMucGF0aEZvckZvcmNlQnVpbGQoKSwgcHJvcGVydGllcyk7Cisg
ICAgICAgIGlmIChzbGF2ZU5hbWUpCisgICAgICAgICAgICB0aGlzLl9zbGF2ZXNXaXRoTmV3UmVx
dWVzdHMuYWRkKHNsYXZlTmFtZSk7CisgICAgICAgIGxldCBkYXRhID0gdGhpcy5fZGF0YUZvckJ1
aWxkUmVxdWVzdChwcm9wZXJ0aWVzKQorICAgICAgICByZXR1cm4gdGhpcy5fcmVtb3RlLnBvc3RK
U09ORGF0YSh0aGlzLnBhdGhGb3JGb3JjZUJ1aWxkKCksIGRhdGEpOwogICAgIH0KIAogICAgIHNj
aGVkdWxlUmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShuZXdSZXF1ZXN0LCByZXF1ZXN0c0luR3Jv
dXAsIHNsYXZlTmFtZSkKQEAgLTE1OSw4ICsxNjYsOSBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7
CiAKICAgICBwdWxsQnVpbGRib3QoY291bnQpCiAgICAgeworICAgICAgICAvLyBGSVhNRTogd2Ug
c2hvdWxkIHJlbW92ZSBkdXBsaWNhdGVzIGZyb20gY29udGVudC5idWlsZHJlcXVlc3RzCiAgICAg
ICAgIHJldHVybiB0aGlzLl9yZW1vdGUuZ2V0SlNPTih0aGlzLnBhdGhGb3JQZW5kaW5nQnVpbGRz
SlNPTigpKS50aGVuKChjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICBsZXQgcGVuZGluZ0VudHJp
ZXMgPSBjb250ZW50Lm1hcCgoZW50cnkpID0+IG5ldyBCdWlsZGJvdEJ1aWxkRW50cnkodGhpcywg
ZW50cnkpKTsKKyAgICAgICAgICAgIGxldCBwZW5kaW5nRW50cmllcyA9IGNvbnRlbnQuYnVpbGRy
ZXF1ZXN0cy5tYXAoKGVudHJ5KSA9PiBuZXcgQnVpbGRib3RCdWlsZEVudHJ5KHRoaXMsIGVudHJ5
KSk7CiAgICAgICAgICAgICByZXR1cm4gdGhpcy5fcHVsbFJlY2VudEJ1aWxkcyhjb3VudCkudGhl
bigoZW50cmllcykgPT4gewogICAgICAgICAgICAgICAgIGxldCBlbnRyeUJ5UmVxdWVzdCA9IHt9
OwogCkBAIC0xODcsMzAgKzE5NSwzMyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAg
IGlmICghY291bnQpCiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKTsKIAot
ICAgICAgICBsZXQgc2VsZWN0ZWRCdWlsZHMgPSBuZXcgQXJyYXkoY291bnQpOwotICAgICAgICBm
b3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspCi0gICAgICAgICAgICBzZWxlY3RlZEJ1aWxk
c1tpXSA9IC1pIC0gMTsKLQotICAgICAgICByZXR1cm4gdGhpcy5fcmVtb3RlLmdldEpTT04odGhp
cy5wYXRoRm9yQnVpbGRKU09OKHNlbGVjdGVkQnVpbGRzKSkudGhlbigoY29udGVudCkgPT4gewor
ICAgICAgICByZXR1cm4gdGhpcy5fcmVtb3RlLmdldEpTT04odGhpcy5wYXRoRm9yQnVpbGRKU09O
KGNvdW50KSkudGhlbigoY29udGVudCkgPT4gewogICAgICAgICAgICAgY29uc3QgZW50cmllcyA9
IFtdOwotICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggb2Ygc2VsZWN0ZWRCdWlsZHMpIHsKLSAg
ICAgICAgICAgICAgICBjb25zdCBlbnRyeSA9IGNvbnRlbnRbaW5kZXhdOwotICAgICAgICAgICAg
ICAgIGlmIChlbnRyeSAmJiAhZW50cnlbJ2Vycm9yJ10pCi0gICAgICAgICAgICAgICAgICAgIGVu
dHJpZXMucHVzaChuZXcgQnVpbGRib3RCdWlsZEVudHJ5KHRoaXMsIGVudHJ5KSk7CisgICAgICAg
ICAgICBmb3IgKGxldCBidWlsZCBvZiBjb250ZW50LmJ1aWxkcykgeworICAgICAgICAgICAgICAg
IGlmIChidWlsZCkKKyAgICAgICAgICAgICAgICAgICAgZW50cmllcy5wdXNoKG5ldyBCdWlsZGJv
dEJ1aWxkRW50cnkodGhpcywgYnVpbGQpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJl
dHVybiBlbnRyaWVzOwogICAgICAgICB9KTsKICAgICB9CiAKLSAgICBwYXRoRm9yUGVuZGluZ0J1
aWxkc0pTT04oKSB7IHJldHVybiBgL2pzb24vYnVpbGRlcnMvJHtlc2NhcGUodGhpcy5fYnVpbGRl
ck5hbWUpfS9wZW5kaW5nQnVpbGRzYDsgfQotICAgIHBhdGhGb3JCdWlsZEpTT04oc2VsZWN0ZWRC
dWlsZHMpCi0gICAgewotICAgICAgICByZXR1cm4gYC9qc29uL2J1aWxkZXJzLyR7ZXNjYXBlKHRo
aXMuX2J1aWxkZXJOYW1lKX0vYnVpbGRzLz9gICsgc2VsZWN0ZWRCdWlsZHMubWFwKChudW1iZXIp
ID0+ICdzZWxlY3Q9JyArIG51bWJlcikuam9pbignJicpOworICAgIHBhdGhGb3JQZW5kaW5nQnVp
bGRzSlNPTigpIHsgcmV0dXJuIGAvYXBpL3YyL2J1aWxkZXJzLyR7dGhpcy5idWlsZGVySUQoKX0v
YnVpbGRyZXF1ZXN0cz9jb21wbGV0ZT1mYWxzZSZjbGFpbWVkPWZhbHNlYDsgfQorICAgIHBhdGhG
b3JCdWlsZEpTT04oY291bnQpIHsgcmV0dXJuIGAvYXBpL3YyL2J1aWxkZXJzLyR7dGhpcy5idWls
ZGVySUQoKX0vYnVpbGRzP2AgKyBgbGltaXQ9JHtjb3VudH0mb3JkZXI9LW51bWJlciZwcm9wZXJ0
eT0qYDsgfQorICAgIHBhdGhGb3JGb3JjZUJ1aWxkKCkgeyByZXR1cm4gYC9hcGkvdjIvZm9yY2Vz
Y2hlZHVsZXJzLyR7dGhpcy5mb3JjZVNjaGVkdWxlcigpfWA7IH0KKworICAgIHVybCgpIHsgcmV0
dXJuIHRoaXMuX3JlbW90ZS51cmwoYC9idWlsZGVycy8ke3RoaXMuYnVpbGRlcklEKCl9L2ApOyB9
CisgICAgdXJsRm9yQnVpbGROdW1iZXIobnVtYmVyKSB7IHJldHVybiB0aGlzLl9yZW1vdGUudXJs
KGAvYnVpbGRlcnMvJHt0aGlzLmJ1aWxkZXJJRCgpfS9idWlsZHMvJHtudW1iZXJ9YCk7IH0KKwor
ICAgIF9kYXRhRm9yQnVpbGRSZXF1ZXN0KHByb3BlcnRpZXMpCisgICAgeworICAgICAgICBjb25z
dCBkYXRhID0ge307CisgICAgICAgIGRhdGFbJ2pzb25ycGMnXSA9ICcyLjAnOworICAgICAgICBk
YXRhWydtZXRob2QnXSA9ICdmb3JjZSc7CisgICAgICAgIGRhdGFbJ2lkJ10gPSBwcm9wZXJ0aWVz
W3RoaXMuX2J1aWxkUmVxdWVzdFByb3BlcnR5TmFtZV07CisgICAgICAgIGRhdGFbJ3BhcmFtcydd
ID0gcHJvcGVydGllczsKKyAgICAgICAgZGF0YVsncGFyYW1zJ11bJ293bmVyJ10gPSAnUGVyZic7
CisgICAgICAgIHJldHVybiBkYXRhOwogICAgIH0KLSAgICBwYXRoRm9yRm9yY2VCdWlsZCgpIHsg
cmV0dXJuIGAvYnVpbGRlcnMvJHtlc2NhcGUodGhpcy5fYnVpbGRlck5hbWUpfS9mb3JjZWA7IH0K
LQotICAgIHVybCgpIHsgcmV0dXJuIHRoaXMuX3JlbW90ZS51cmwoYC9idWlsZGVycy8ke2VzY2Fw
ZSh0aGlzLl9idWlsZGVyTmFtZSl9L2ApOyB9Ci0gICAgdXJsRm9yQnVpbGROdW1iZXIobnVtYmVy
KSB7IHJldHVybiB0aGlzLl9yZW1vdGUudXJsKGAvYnVpbGRlcnMvJHtlc2NhcGUodGhpcy5fYnVp
bGRlck5hbWUpfS9idWlsZHMvJHtudW1iZXJ9YCk7IH0KIAogICAgIF9wcm9wZXJ0aWVzRm9yQnVp
bGRSZXF1ZXN0KGJ1aWxkUmVxdWVzdCwgcmVxdWVzdHNJbkdyb3VwKQogICAgIHsKQEAgLTI5Myw3
ICszMDQsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgIHJldHVybiByZXZpc2lv
blNldDsKICAgICB9CiAKLSAgICBzdGF0aWMgX2xvYWRDb25maWcocmVtb3RlLCBjb25maWcpCisg
ICAgc3RhdGljIF9sb2FkQ29uZmlnKHJlbW90ZSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAp
CiAgICAgewogICAgICAgICBjb25zdCB0eXBlcyA9IGNvbmZpZ1sndHlwZXMnXSB8fCB7fTsKICAg
ICAgICAgY29uc3QgYnVpbGRlcnMgPSBjb25maWdbJ2J1aWxkZXJzJ10gfHwge307CkBAIC0zMTYs
NyArMzI3LDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICBjb25zdCBlbnN1cmVC
dWlsZGJvdFN5bmNlciA9IChidWlsZGVySW5mbykgPT4gewogICAgICAgICAgICAgbGV0IGJ1aWxk
ZXJTeW5jZXIgPSBzeW5jZXJCeUJ1aWxkZXIuZ2V0KGJ1aWxkZXJJbmZvLmJ1aWxkZXIpOwogICAg
ICAgICAgICAgaWYgKCFidWlsZGVyU3luY2VyKSB7Ci0gICAgICAgICAgICAgICAgYnVpbGRlclN5
bmNlciA9IG5ldyBCdWlsZGJvdFN5bmNlcihyZW1vdGUsIGJ1aWxkZXJJbmZvLCBjb21tb25Db25m
aWd1cmF0aW9ucyk7CisgICAgICAgICAgICAgICAgYnVpbGRlclN5bmNlciA9IG5ldyBCdWlsZGJv
dFN5bmNlcihyZW1vdGUsIGJ1aWxkZXJJbmZvLCBjb21tb25Db25maWd1cmF0aW9ucywgYnVpbGRl
ck5hbWVUb0lETWFwKTsKICAgICAgICAgICAgICAgICBzeW5jZXJCeUJ1aWxkZXIuc2V0KGJ1aWxk
ZXJJbmZvLmJ1aWxkZXIsIGJ1aWxkZXJTeW5jZXIpOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgcmV0dXJuIGJ1aWxkZXJTeW5jZXI7CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
dG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCShyZXZpc2lv
biAyMjExNzMpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qt
dHJpZ2dlcmFibGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTE2LDE1ICsxNiwzMCBAQCBjbGFzcyBC
dWlsZGJvdFRyaWdnZXJhYmxlIHsKICAgICAgICAgYXNzZXJ0KHR5cGVvZih0aGlzLl9sb29rYmFj
a0NvdW50KSA9PSAnbnVtYmVyJyAmJiB0aGlzLl9sb29rYmFja0NvdW50ID4gMCwgJ2xvb2tiYWNr
Q291bnQgbXVzdCBiZSBhIG51bWJlciBncmVhdGVyIHRoYW4gMCcpOwogCiAgICAgICAgIHRoaXMu
X3JlbW90ZSA9IHJlbW90ZTsKKyAgICAgICAgdGhpcy5fY29uZmlnID0gY29uZmlnOworICAgICAg
ICB0aGlzLl9idWlsZGJvdFJlbW90ZSA9IGJ1aWxkYm90UmVtb3RlOwogCiAgICAgICAgIHRoaXMu
X3NsYXZlSW5mbyA9IHNsYXZlSW5mbzsKICAgICAgICAgYXNzZXJ0KHR5cGVvZihzbGF2ZUluZm8u
bmFtZSkgPT0gJ3N0cmluZycsICdzbGF2ZSBuYW1lIG11c3QgYmUgc3BlY2lmaWVkJyk7CiAgICAg
ICAgIGFzc2VydCh0eXBlb2Yoc2xhdmVJbmZvLnBhc3N3b3JkKSA9PSAnc3RyaW5nJywgJ3NsYXZl
IHBhc3N3b3JkIG11c3QgYmUgc3BlY2lmaWVkJyk7CiAKLSAgICAgICAgdGhpcy5fc3luY2VycyA9
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKGJ1aWxkYm90UmVtb3RlLCBjb25maWcpOworICAg
ICAgICB0aGlzLl9zeW5jZXJzID0gbnVsbDsKICAgICAgICAgdGhpcy5fbG9nZ2VyID0gbG9nZ2Vy
IHx8IHtsb2c6ICgpID0+IHsgfSwgZXJyb3I6ICgpID0+IHsgfX07CiAgICAgfQogCisgICAgaW5p
dFN5bmNlcnMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2J1aWxkYm90UmVtb3RlLmdl
dEpTT04oIi9hcGkvdjIvYnVpbGRlcnMiKS50aGVuKChjb250ZW50KSA9PiB7CisgICAgICAgICAg
ICBhc3NlcnQoY29udGVudC5idWlsZGVycyBpbnN0YW5jZW9mIEFycmF5KTsKKworICAgICAgICAg
ICAgY29uc3QgYnVpbGRlck5hbWVUb0lETWFwID0ge307IAorICAgICAgICAgICAgZm9yIChjb25z
dCBidWlsZGVyIG9mIGNvbnRlbnQuYnVpbGRlcnMpCisgICAgICAgICAgICAgICAgYnVpbGRlck5h
bWVUb0lETWFwW2J1aWxkZXIubmFtZV0gPSBidWlsZGVyLmJ1aWxkZXJpZDsKKworICAgICAgICAg
ICAgdGhpcy5fc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKHRoaXMuX2J1aWxk
Ym90UmVtb3RlLCB0aGlzLl9jb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCk7CisgICAgICAgIH0p
OworICAgIH0KKwogICAgIG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9CiAKICAgICB1cGRh
dGVUcmlnZ2VyYWJsZSgpCkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMv
cmVtb3RlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9q
cy9yZW1vdGUuanMJKHJldmlzaW9uIDIyMTE3MykKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy90b29scy9qcy9yZW1vdGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTU3LDEwICs1NywxMCBAQCBj
bGFzcyBOb2RlUmVtb3RlQVBJIGV4dGVuZHMgQ29tbW9uUmVtb3RlCiAKICAgICBjbGVhckNvb2tp
ZXMoKSB7IHRoaXMuX2Nvb2tpZXMgPSBuZXcgTWFwOyB9CiAKLSAgICBwb3N0Rm9ybVVybGVuY29k
ZWREYXRhKHBhdGgsIGRhdGEpCisgICAgcG9zdEpTT05EYXRhKHBhdGgsIGRhdGEpCiAgICAgewot
ICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVu
Y29kZWQnOwotICAgICAgICBjb25zdCBwYXlsb2FkID0gcXVlcnlzdHJpbmcuc3RyaW5naWZ5KGRh
dGEpOworICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9ICdhcHBsaWNhdGlvbi9qc29uJzsKKyAg
ICAgICAgY29uc3QgcGF5bG9hZCA9IEpTT04uc3RyaW5naWZ5KGRhdGEpOwogICAgICAgICByZXR1
cm4gdGhpcy5zZW5kSHR0cFJlcXVlc3QocGF0aCwgJ1BPU1QnLCBjb250ZW50VHlwZSwgcGF5bG9h
ZCkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJl
c3BvbnNlVGV4dDsKICAgICAgICAgfSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>332625</attachid>
            <date>2018-01-29 20:15:28 -0800</date>
            <delta_ts>2018-01-30 23:04:33 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>buildbot_perf_update.patch</filename>
            <type>text/plain</type>
            <size>138281</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvQ2hhbmdlTG9nCmluZGV4IDBkZmZjMjdjN2RmLi4xZTkwYTI0ZjYw
NCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZworKysgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTgt
MDEtMjkgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgorCisgICAgICAgIFVw
ZGF0ZSBQZXJmIGJ1aWxkYm90IHN5bmNpbmcgc2NyaXB0cyBmb3IgQnVpbGRib3QgMC45CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzU5NjkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRvb2xzL2pzL2J1
aWxkYm90LXRyaWdnZXJhYmxlLmpzOgorICAgICAgICAoQnVpbGRib3RUcmlnZ2VyYWJsZS5wcm90
b3R5cGUuaW5pdFN5bmNlcnMpOiBTd2l0Y2ggZnJvbSBEZXByZWNhdGVkIHZlcnNpb24gdG8gbmV3
IHZlcnNpb24gb2YgZ2V0QnVpbGRlck5hbWVUb0lETWFwLgorICAgICAgICAqIHRvb2xzL2pzL2J1
aWxkYm90LXN5bmNlci5qczoKKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLnByb3RvdHlwZS5zY2hl
ZHVsZVJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUpOiBTd2l0Y2ggZnJvbSBEZXByZWNhdGVkIHZl
cnNpb24gdG8gbmV3IHZlcnNpb24gb2Ygc2NoZWR1bGVSZXF1ZXN0LgorICAgICAgICAoQnVpbGRi
b3RTeW5jZXIucHJvdG90eXBlLnB1bGxCdWlsZGJvdCk6IFN3aXRjaCBmcm9tIERlcHJlY2F0ZWQg
dmVyc2lvbiB0byBuZXcgdmVyc2lvbiBvZiBwYXRoRm9yUGVuZGluZ0J1aWxkcywgX3B1bGxSZWNl
bnRCdWlsZHMgCisgICAgICAgIGFuZCBCdWlsZGJvdEJ1aWxkRW50cnkuIFBhcnNlIHRoZSBwZW5k
aW5nIGJ1aWxkLXJlcXVlc3RzIGRhdGEgaW4gQnVpbGRib3QgMC45IGZvcm1hdC4KKyAgICAgICAg
KiB1bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qczogV0lQLgorICAgICAgICAqIHNl
cnZlci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5qczogV0lQLgorICAg
ICAgICAqIHNlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3Rz
LmpzOiBXSVAuCisgICAgICAgICogc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanM6
CisgICAgICAgIChNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKTogTWV0aG9kIHRvIGNvbnN0cnVj
dCBwZW5kaW5nQnVpbGRzVXJsIGluIEJ1aWxkYm90IDAuOSBmb3JtYXQuCisgICAgICAgIChNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwpOiBEaXR0byBmb3IgcmVjZW50QnVpbGRzVXJsLgorCiAyMDE4
LTAxLTI0ICBEZXdlaSBaaHUgIDxkZXdlaV96aHVAYXBwbGUuY29tPgogCiAgICAgICAgIENoZWNr
IGV4aXN0ZW5jZSBvZiAnbm9kZV9tb2R1bGVzX2RpcicgYmVmb3JlIGNyZWF0aW5nIGl0LgpkaWZm
IC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMv
bW9jay1kYXRhLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNv
dXJjZXMvbW9jay1kYXRhLmpzCmluZGV4IGJlMWM3MzQ5OTc1Li4wYTc2ZDE0MDk1ZiAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9j
ay1kYXRhLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVz
b3VyY2VzL21vY2stZGF0YS5qcwpAQCAtMTksNiArMTksOCBAQCBNb2NrRGF0YSA9IHsKICAgICBz
aGFyZWRSZXBvc2l0b3J5SWQoKSB7IHJldHVybiAxNDsgfSwKICAgICBidWlsZGJvdEJ1aWxkZXJz
VVJMRGVwcmVjYXRlZCgpIHtyZXR1cm4gJy9qc29uL2J1aWxkZXJzJ30sCiAgICAgYnVpbGRib3RC
dWlsZGVyc1VSTCgpIHtyZXR1cm4gJy9hcGkvdjIvYnVpbGRlcnMnfSwKKyAgICBwZW5kaW5nQnVp
bGRzVXJsOiBmdW5jdGlvbiAoYnVpbGRlcklkKSB7IHJldHVybiBgL2FwaS92Mi9idWlsZGVycy8k
e2J1aWxkZXJJZH0vYnVpbGRyZXF1ZXN0cz9jb21wbGV0ZT1mYWxzZSZjbGFpbWVkPWZhbHNlYDsg
fSwKKyAgICByZWNlbnRCdWlsZHNVcmw6IGZ1bmN0aW9uIChidWlsZGVySWQsIGNvdW50KSB7IHJl
dHVybiBgL2FwaS92Mi9idWlsZGVycy8ke2J1aWxkZXJJZH0vYnVpbGRzP2xpbWl0PSR7Y291bnR9
Jm9yZGVyPS1udW1iZXImcHJvcGVydHk9KmA7IH0sCiAgICAgYWRkTW9ja0NvbmZpZ3VyYXRpb246
IGZ1bmN0aW9uIChkYikKICAgICB7CiAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbCkBAIC0y
NzYsNiArMjc4LDcgQEAgTW9ja0RhdGEgPSB7CiAgICAgICAgICAgICBdCiAgICAgICAgIH0KICAg
ICB9LAorICAgIC8vIFRPRE8gYmVmb3JlIGxhbmRpbmc6IFVwZGF0ZSB0aGlzIGRhdGEKICAgICBw
ZW5kaW5nQnVpbGQob3B0aW9ucykKICAgICB7CiAgICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8
IHt9OwpAQCAtMjk4LDYgKzMwMSw3IEBAIE1vY2tEYXRhID0gewogICAgICAgICAgICAgfSwKICAg
ICAgICAgfTsKICAgICB9LAorICAgIC8vIFRPRE8gYmVmb3JlIGxhbmRpbmc6IFVwZGF0ZSB0aGlz
IGRhdGEKICAgICBydW5uaW5nQnVpbGQob3B0aW9ucykKICAgICB7CiAgICAgICAgIG9wdGlvbnMg
PSBvcHRpb25zIHx8IHt9OwpAQCAtMzIzLDYgKzMyNyw3IEBAIE1vY2tEYXRhID0gewogICAgICAg
ICAgICAgfSwKICAgICAgICAgfTsKICAgICB9LAorICAgIC8vIFRPRE8gYmVmb3JlIGxhbmRpbmc6
IFVwZGF0ZSB0aGlzIGRhdGEKICAgICBmaW5pc2hlZEJ1aWxkKG9wdGlvbnMpCiAgICAgewogICAg
ICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMu
anMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90
LXRyaWdnZXJhYmxlLXRlc3RzLmpzCmluZGV4IGYzMzFmYmU1ZWNiLi44YWFlMGY4YWM4ZCAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1idWls
ZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzCkBAIC0zNiw3
ICszNiw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBh
c3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9
IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwg
TW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQ
cm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxl
LnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJz
VVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQo
KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9j
a0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKQEAgLTQ2LDEyICs0Niwx
MiBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVz
KCksICdwZW5kaW5nJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
Jy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDIsIDIpKTsK
ICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe1stMV06
IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCgpLCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKCl9
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC02MiwxMiArNjIsMTIgQEAgZGVzY3Jp
YmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRl
ci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZShbTW9ja0Rh
dGEucGVuZGluZ0J1aWxkKCldKQogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s0XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0t
MSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKHtbLTFdOiBNb2Nr
RGF0YS5ydW5uaW5nQnVpbGQoKSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCgpfSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7CkBAIC05MiwyNyArOTIsMjcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgbGV0IHNsYXZlSW5mbyA9IHtuYW1lOiAn
c3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBsZXQg
dHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAg
ICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9
PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0
QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVp
bGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRl
cnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZl
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxk
ZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1
aWxkcycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVp
bGQoKV0pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcv
anNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTIn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSk7CiAgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5n
QnVpbGQoKSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCgpfSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVp
bGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMikp
OwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZShbTW9j
a0RhdGEucGVuZGluZ0J1aWxkKCldKQogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1szXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSk7CiAg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHtbLTFdOiBN
b2NrRGF0YS5ydW5uaW5nQnVpbGQoKSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCgpfSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7CkBAIC0xNDIsMjUgKzE0MiwyNSBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2Vy
YWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7
bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAg
ICAgY29uc3QgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsK
ICAgICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCku
dGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9j
a0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxk
Ym90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RB
bmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWls
ZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1
aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIp
KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoW01v
Y2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDk5OX0pXSk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMykpOwogICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1i
dWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoMiwgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIlMjAyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKDMsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzNdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKQEAg
LTE3MywxOSArMTczLDE5IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1
XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJs
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRS
ZXF1ZXN0SWQ6IDk5OX0pXSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoMykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ucmVz
b2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyIDInLCBi
dWlsZFJlcXVlc3RJZDogNzAwfSldKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA5
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s3XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWls
ZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgy
LCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZl
KHt9KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s4XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUy
MDIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoMywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0u
cmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC0yMjMsNDMgKzIyMyw0MyBAQCBkZXNjcmliZSgnQnVp
bGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBsZXQgc2xh
dmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAg
ICAgICAgICAgICAgIGxldCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNv
bmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBs
b2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5
bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAg
ICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdH
RVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5t
b2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tE
YXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMo
KSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJz
L3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVz
b2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSldKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGlu
Z0J1aWxkcycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgzKSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKFtdKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvanNvbi9idWlsZGVy
cy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWls
ZGVycy9zb21lJTIwYnVpbGRlciUyMDIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJs
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgNik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWls
ZGVyLTEvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSk7
CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKFtNb2Nr
RGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV0pOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVd
LnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9wZW5kaW5nQnVpbGRzJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDMpKTsKICAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoW10pOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDgpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVp
bGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKDIsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzZdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUl
MjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgzLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s3XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21p
c2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKQEAgLTI5NywyNSArMjk3LDI1IEBAIGRl
c2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
ICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFz
c3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJv
dFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQ
SSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJp
Z2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkp
OwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRl
ZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1
aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgp
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
Jy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRl
cnMvc29tZSUyMGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoMykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7Wy0xXTog
TW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIFstMl06IE1vY2tE
YXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KX0pOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNd
LnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0t
MSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgzLCAyKSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC0zMjgsMTkgKzMyOCwxOSBAQCBkZXNjcmliZSgnQnVp
bGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgNyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWls
ZGVyLTEvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSk7
CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKFtNb2Nr
RGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDJ9KV0pOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZd
LnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9wZW5kaW5nQnVpbGRzJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDMpKTsKICAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzZdLnJlc29sdmUoW10pOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVp
bGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKDIsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzddLnJlc29sdmUoe1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6
IDcwMX0pLCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAw
fSl9KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s4XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUy
MDIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoMywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0u
cmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC0zNzgsMzEgKzM3OCwzMSBAQCBkZXNjcmliZSgnQnVp
bGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBsZXQgc2xh
dmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAg
ICAgICAgICAgICAgIGxldCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNv
bmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBs
b2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5
bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAg
ICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdH
RVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5t
b2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tE
YXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMo
KSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJz
L3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVz
b2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSldKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNv
bi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51
cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1
aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIp
KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoW10p
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwg
Jy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0t
MicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDIsIDIpKTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoe1stMV06IE1vY2tEYXRhLnJ1bm5p
bmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC00NDMsMjUgKzQ0
MywyNSBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNz
d29yZDogJ3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBu
ZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1v
Y2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5jUHJv
bWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5z
eW5jT25jZSgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VS
TERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkp
OworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tE
YXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpKTsKICAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVp
bGRSZXF1ZXN0SWQ6IDcwMn0pXSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoMykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
cmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAn
R0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9
LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7Wy0xXTogTW9j
a0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIFstMl06IE1vY2tEYXRh
LmZpbmlzaGVkQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KX0pOwogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVy
bCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZz
ZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgzLCAyKSk7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CkBAIC00NzQsMTkgKzQ3NCwxOSBAQCBkZXNjcmliZSgnQnVpbGRi
b3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgNyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVy
LTEvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSk7CiAg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKFtNb2NrRGF0
YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDJ9KV0pOwogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVy
bCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9wZW5kaW5nQnVpbGRzJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJs
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDMpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzZdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRl
cjogJ3NvbWUgYnVpbGRlciAyJywgYnVpbGRSZXF1ZXN0SWQ6IDcxMH0pXSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgOSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCAnL2pzb24vYnVpbGRl
cnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbN10ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWls
ZFJlcXVlc3RJZDogNzAxfSksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkUmVx
dWVzdElkOiA3MDB9KX0pOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUl
MjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgzLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s4XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21p
c2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKQEAgLTU0MywyNSArNTQzLDI1IEBAIGRl
c2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
ICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFz
c3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJv
dFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQ
SSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJp
Z2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkp
OwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRl
ZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1
aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgp
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
Jy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRl
cnMvc29tZSUyMGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoMykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7Wy0xXTog
TW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzEwfSl9KTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1szXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMywgMikpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7Wy0xXTog
TW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyIDInLCBidWlsZFJl
cXVlc3RJZDogNzAwfSl9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC01NzgsMTkg
KzU3OCwxOSBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCAn
L2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s2XS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElk
OiA3MTF9KV0pOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWls
ZGVyJTIwMi9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDMp
KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnJlc29sdmUoW01v
Y2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlciAyJyxidWlsZFJlcXVl
c3RJZDogNzAxfSldKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxMCk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbOF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ucmVzb2x2ZSh7Wy0xXTog
TW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzEwfSl9KTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s5XS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s5XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbOV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMywgMikpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0ucmVzb2x2ZSh7Wy0xXTog
TW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyIDInLCBidWlsZFJl
cXVlc3RJZDogNzAwfSl9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKQEAgLTY0NiwxOSArNjQ2LDE5IEBAIGRlc2NyaWJl
KCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGNv
bnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQn
fTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdn
ZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xh
dmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFi
bGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAg
ICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzBdLCAnR0VUJywg
TW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1
aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVl
c3RBbmRSZXNvbHZlKHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVy
c1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29t
ZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOwogICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShbXSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0u
dXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2Vs
ZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDIsIDIpKTsKICAgICAgICAgICAgICAgICByZXF1ZXN0
c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC02NzQsMTMg
KzY3NCwxMyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbM10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxk
cycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbM10ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJ
ZDogNzAwfSldKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0c1s0XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9i
dWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikpOwogICAg
ICAgICAgICAgICAgIHJlcXVlc3RzWzRdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJl
dHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpAQCAtNzIzLDE2
ICs3MjMsMTYgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywg
cGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIHRyaWdnZXJhYmxlID0gbmV3
IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2Nr
UmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgc3luY1Byb21p
c2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3lu
Y09uY2UoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVz
dHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBN
b2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5i
dWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbMF0s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycsIFtd
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1swXSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMiksIFtdKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNb
MV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9
LTEmc2VsZWN0PS0yJywKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShy
ZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSwKICAgICAg
ICAgICAgICAgICAgICAge1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0
SWQ6IDcwMH0pLCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZFJlcXVlc3RJZDog
NzEwfSl9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC03NDIsMzQgKzc0MiwzNCBA
QCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVx
dWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1
aWxkcycsCisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNb
M10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpLAogICAgICAgICAgICAgICAg
ICAgICBbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAxfSldKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29s
dmUocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVp
bGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0
QW5kUmVzb2x2ZShyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgy
LCAyKSwKICAgICAgICAgICAgICAgICAgICAge1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7
YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pLCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWls
ZFJlcXVlc3RJZDogNzEwfSl9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlz
ZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5j
T25jZSgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0
c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1v
Y2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLmJ1
aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDcpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNv
bHZlKHJlcXVlc3RzWzZdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3Bl
bmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29s
dmUocmVxdWVzdHNbNl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpLCBbXSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDgpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRS
ZXNvbHZlKHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0x
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsCisgICAgICAgICAgICAgICAgYXNzZXJ0UmVx
dWVzdEFuZFJlc29sdmUocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoMiwgMiksCiAgICAgICAgICAgICAgICAgICAgIHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVp
bGQoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgWy0yXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHti
dWlsZFJlcXVlc3RJZDogNzAwfSl9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24v
YnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoMiksIFtdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwotICAgICAg
ICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzldLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMics
CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbOV0sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMiksCiAgICAgICAgICAgICAgICAgICAg
IHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgWy0y
XTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSl9KTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KTsKQEAgLTc4Niwx
OSArNzg2LDE5IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScs
IHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJs
ZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEko
KSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5
bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJh
YmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZl
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxk
ZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0
ZWQoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwg
TW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWls
ZHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOwogICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29t
ZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoMiwgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpAQCAtODEx
LDEzICs4MTEsMTMgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVy
bCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbM10ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVl
c3RJZDogNzAxfSldKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA1KTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s0XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSk7CiAg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKHt9KTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKQEAgLTg1NSwzMSArODU1LDMxIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxl
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1l
OiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBj
b25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNl
cnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAg
ICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVu
KCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJl
cXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0
YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RC
dWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJl
c29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90
QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRl
ci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShbXSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pz
b24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
dXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikpOwogICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1i
dWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgy
KSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKFtd
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmws
ICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9
LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKQEAgLTkx
MiwxOSArOTEyLDE5IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2
ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2Vy
YWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVB
UEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAg
IHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdn
ZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNv
bHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1
aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJl
Y2F0ZWQoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwo
KSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdC
dWlsZHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOwogICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRlcnMv
c29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpAQCAt
MTAwMCw3ICsxMDAwLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNs
YXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIGNvbnN0IGJ1aWxk
Ym90VHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAg
ICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZVByb21pc2UgPSBidWlsZGJvdFRyaWdnZXJhYmxl
LmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiBidWlsZGJvdFRyaWdnZXJhYmxlLnVwZGF0ZVRyaWdn
ZXJhYmxlKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJM
RGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0Rh
dGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRyaWdn
ZXJhYmxlUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gcmVmZXRjaE1hbmlmZXN0
KCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChUcmlnZ2VyYWJs
ZS5hbGwoKS5sZW5ndGgsIDEpOwpAQCAtMTAyNyw3ICsxMDI3LDcgQEAgZGVzY3JpYmUoJ0J1aWxk
Ym90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgY29uc3Qgc2xh
dmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAg
ICAgICAgICAgICAgIGNvbnN0IGJ1aWxkYm90VHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmln
Z2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNs
YXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZVByb21p
c2UgPSBidWlsZGJvdFRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiBidWlsZGJv
dFRyaWdnZXJhYmxlLnVwZGF0ZVRyaWdnZXJhYmxlKCkpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0sICdHRVQnLCBNb2Nr
RGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRi
b3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFu
ZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxk
Ym90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRyaWdnZXJhYmxlUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gcmVmZXRjaE1hbmlmZXN0KCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDEpOwpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90
LWludGVncmF0aW9uLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzCmluZGV4IDFhNTc1
NWEwMTFhLi5jODBhNzRkNDY4MCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzCisr
KyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWls
ZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qcwpAQCAtMTU0LDcgKzE1NCw3IEBAIGZ1bmN0aW9uIGNy
ZWF0ZVRyaWdnZXJhYmxlKGNvbmZpZyA9IGNvbmZpZ1dpdGhPbmVUZXN0ZXJUd29CdWlsZGVycykK
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RU
cmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEks
IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfSwgbmV3IE1vY2tMb2dn
ZXIpOwogICAgICAgICBjb25zdCBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJz
KCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS51cGRhdGVUcmlnZ2VyYWJsZSgpKTsKLSAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcs
IE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tC
dWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90
QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAg
IH0pLnRoZW4oKCkgPT4gTWFuaWZlc3QuZmV0Y2goKSkudGhlbigoKSA9PiB7CkBAIC0yNDksMzIg
KzI0OSwzMiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIHRhc2tJZCA9IGZpcnN0VGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAgICAgICAgICAg
YW5vdGhlclRhc2tJZCA9IHNlY29uZFRlc3RHcm91cC50YXNrKCkuaWQoKTsKICAgICAgICAgICAg
IHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdn
ZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRl
ZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRh
LmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7
CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW01vY2tEYXRhLnBlbmRpbmdCdWls
ZCh7YnVpbGRlcjogJ3NvbWUgdGVzdGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDV9KV0pOwotICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCAnL2pzb24v
YnVpbGRlcnMvYW5vdGhlciUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKDUpLCBbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29t
ZSB0ZXN0ZXInLCBidWlsZFJlcXVlc3RJZDogNX0pXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoNiksIFtdKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxk
cy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDUsIDIp
LCB7CiAgICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVy
OiAnc29tZSB0ZXN0ZXInLCBidWlsZFJlcXVlc3RJZDogMX0pfSk7Ci0gICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9h
bm90aGVyJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKDYsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvYW5vdGhl
ciUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJyxbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
NSksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVd
LCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg2KSxbXSk7CiAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDgpOwotICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCAnL2pz
b24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1LCAyKSwgewogICAgICAgICAgICAgICAgIFstMV06
IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgdGVzdGVyJywgYnVpbGRSZXF1
ZXN0SWQ6IDV9KSwKICAgICAgICAgICAgICAgICBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxk
KHtidWlsZGVyOiAnc29tZSB0ZXN0ZXInLCBidWlsZFJlcXVlc3RJZDogMX0pCiAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL2Fub3RoZXIlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEm
c2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNiwgMiksIHt9KTsKICAg
ICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpA
QCAtMzYzLDIwICszNjMsMjAgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RG
aWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5p
dFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5i
dWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWls
ZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0Rh
dGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
c2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVp
bGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycs
IFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10p
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDUpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoMSksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg0KSwgW10pOwogICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0
PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
NF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9
LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxk
cy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDUs
IDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0
XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgxLCAyKSwge30pOworICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoNCwgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CkBAIC0zODYsMTggKzM4NiwxOCBA
QCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwotICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pz
b24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsCisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoNSksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgxKSwKICAgICAgICAgICAg
ICAgICBbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVp
bGRSZXF1ZXN0SWQ6IDF9KV0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbOV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRp
bmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNCksIFtdKTsKICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MTMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2Vs
ZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMicsIHsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1LCAyKSwge30p
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDEsIDIpLCB7CiAgICAgICAgICAgICAgICAgWy0x
XTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRS
ZXF1ZXN0SWQ6IDF9KQogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBi
dWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCg0LCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0
Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CkBAIC00NzYsMjIgKzQ3NiwyMiBAQCBkZXNjcmliZSgn
c3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXNldCgpOwogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3lu
Y2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxk
Ym90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJz
RGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5t
b2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQo
KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1swXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMn
LCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10p
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Cisg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNSksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgxKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
Ml0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCBbXSk7CiAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwot
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAn
L2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTIn
LCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZz
ZWxlY3Q9LTInLCB7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1LCAyKSwge30pOworICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoMSwgMiksIHsKICAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0
YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6
IDF9KQogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVp
bGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
NCwgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgNyk7CkBAIC01MDAsMTggKzUwMCwxOCBAQCBkZXNjcmliZSgnc3lu
Yy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwotICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1
aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRl
ci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDUpLCBbXSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMSksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCg0KSwgW10pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9i
dWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgeworICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKDUsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMSwgMiksIHsK
ICAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdz
b21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMn0pLAogICAgICAgICAgICAgICAgIFstMl06
IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJl
cXVlc3RJZDogMX0pLAogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBi
dWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCg0LCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0
Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CkBAIC02MzYsMjAgKzYzNiwyMCBAQCBkZXNjcmliZSgn
c3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgc3lu
Y1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFi
bGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCks
IE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVp
bGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21l
JTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBi
dWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNSks
IFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAn
R0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgxKSwgW10pOworICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKDQpLCBbXSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rl
ci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21l
JTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKDEsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg0LCAyKSwge30pOwogICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA3KTsKQEAgLTY1OSwxOCArNjU5LDE4IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRp
bmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s4XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVp
bGRzJywKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAn
R0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg1KSwgW10pOworICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKDEpLAogICAgICAgICAgICAgICAgIFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1
aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pXSk7Ci0gICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCg0KSwgW10pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRl
c3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgeworICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKDUsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMSwg
MiksIHsKICAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxk
ZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pCiAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0
PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MTJdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDQsIDIpLCB7fSk7CiAgICAgICAg
ICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKQEAgLTc0
OSwyMiArNzQ5LDIyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewog
CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBzeW5jUHJv
bWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5z
eW5jT25jZSgpKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9j
a0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJv
dEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBi
dWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxk
ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg1KSwgW10p
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDEpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoNCksIFtdKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1
aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBi
dWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKDUsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgxLCAyKSwgewogICAg
ICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdzb21l
IGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pCiAgICAgICAgICAgICB9KTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg0LCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKQEAgLTc3Mywx
OCArNzczLDE4IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCAnL2pz
b24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoNSksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgxKSwg
W10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCBbXSk7CiAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKLSAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInLCB7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sx
MF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNSwgMiksIHt9KTsKKyAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgxLCAyKSwgewogICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRh
LnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAy
fSksCiAgICAgICAgICAgICAgICAgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRl
cjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSksCiAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0
PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MTJdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDQsIDIpLCB7fSk7CiAgICAgICAg
ICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKQEAgLTky
NSwyMyArOTI1LDIzIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyUm9vdHMubGVuZ3RoLCAxKTsKICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJSb290c1swXS5maWxlbmFtZSgpLCAncm9vdDQ2LmRh
dCcpOwogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2Vycygp
LnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVp
bGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVj
YXRlZCgpKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBd
LCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVp
bGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pz
b24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoNSksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgxKSwg
W10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCBbXSk7CiAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAnL2pzb24v
YnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9
LTInLCB7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwg
J0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1LCAyKSwge30pOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoMSwgMiksIHsKICAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5maW5p
c2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KSwK
ICAgICAgICAgICAgICAgICBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAn
c29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDJ9KSwKICAgICAgICAgICAgIH0pOwotICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCAnL2pz
b24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMics
IHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDQsIDIpLCB7fSk7CiAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwpAQCAt
OTUxLDIwICs5NTEsMjAgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDEwKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycs
IFsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg1KSwgWwogICAgICAgICAgICAgICAgIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgdGVzdGVyJywgYnVpbGRSZXF1ZXN0SWQ6
IDN9KSwKICAgICAgICAgICAgIF0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVu
ZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5n
QnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDEpLCBbXSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoNCksIFtdKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwotICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKKyAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1LCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKDEsIDIpLCB7CiAgICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEuZmluaXNoZWRCdWls
ZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSksCiAgICAgICAg
ICAgICAgICAgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVp
bGRlcicsIGJ1aWxkUmVxdWVzdElkOiAyfSksCiAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDQsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4g
c3luY1Byb21pc2U7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtOTk4LDM4ICs5OTgsMzggQEAg
ZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAg
ICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJp
Z2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNh
dGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0Rh
dGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygp
KTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVy
biBQcm9taXNlLmFsbChbTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpLCB1cGxvYWRSb290
KDEsIDEyMyldKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIv
cGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRp
bmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1
aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg1KSwgW10pOworICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKDEpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNCksIFtd
KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxk
cy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDUsIDIp
LCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwg
J0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgxLCAyKSwgewogICAgICAgICAgICAgICAg
IFstMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1
aWxkUmVxdWVzdElkOiAyfSksCiAgICAgICAgICAgICAgICAgWy0yXTogTW9ja0RhdGEuZmluaXNo
ZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSksCiAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3Nl
bGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg0LCAyKSwg
e30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA5KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzZdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxk
cycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzdd
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBb
XSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsK
KyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg1KSwgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKDEpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNCksIFtdKTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIp
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9
LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sx
MF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9
LTEmc2VsZWN0PS0yJywgeworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNSwgMiksIHt9KTsKKyAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgxLCAyKSwgewogICAgICAgICAgICAgICAgIFstMV06IE1v
Y2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVz
dElkOiAyLCBidWlsZE51bWJlcjogMTAwMn0pLAogICAgICAgICAgICAgICAgIFstMl06IE1vY2tE
YXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJ
ZDogMX0pLAogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVy
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCg0LCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JU
YXNrKHRhc2tJZCwgdHJ1ZSk7CkBAIC0xMDg0LDM0ICsxMDg0LDM0IEBAIGRlc2NyaWJlKCdzeW5j
LWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIHN5bmNQcm9taXNl
ID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNP
bmNlKCkpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0s
ICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0
YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVp
bGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxk
ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9w
ZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDUpLCBbXSk7Cisg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMSksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCg0KSwgW10pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRz
Lz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxk
ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3Ro
ZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKKyAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKDUsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgxLCAyKSwg
e30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiksIHsKICAgICAgICAgICAgICAgICBb
LTFdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnb3RoZXIgYnVpbGRlcicsIGJ1
aWxkUmVxdWVzdElkOiAxLCBidWlsZE51bWJlcjogMzEyfSksCiAgICAgICAgICAgICB9KTsKICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgOSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pz
b24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoNSksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgxKSwg
W10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCBbXSk7CiAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKLSAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgJy9qc29u
L2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30p
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzExXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJywgeworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNSwgMiksIHt9KTsK
KyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgxLCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKDQsIDIpLCB7CiAgICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEuZmluaXNoZWRC
dWlsZCh7YnVpbGRlcjogJ290aGVyIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMSwgYnVpbGRO
dW1iZXI6IDMxMn0pLAogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICByZXR1cm4gc3luY1By
b21pc2U7CkBAIC0xMTkyLDIwICsxMTkyLDIwIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90Jywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdn
ZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsK
LSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywg
TW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1
aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJM
KCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIv
cGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRp
bmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1
aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg1KSwgW10pOworICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKDEpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNCksIFtd
KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxk
cy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVp
bGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCg1LCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMSwgMiksIHt9KTsK
KyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDQsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwpAQCAtMTIxNCwx
OCArMTIxNCwxOCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMTApOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10p
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsCisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoNSksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgxKSwK
ICAgICAgICAgICAgICAgICBbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBi
dWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KV0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBi
dWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNCks
IFtdKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMTMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVy
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCg1LCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDEsIDIpLCB7CiAgICAgICAg
ICAgICAgICAgWy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWls
ZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KQogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCAnL2pzb24vYnVpbGRl
cnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCg0LCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIHN5
bmNQcm9taXNlOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CkBAIC0xMzEzLDIyICsxMzEzLDIy
IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdn
ZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsK
LSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywg
TW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1
aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJM
KCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIv
cGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRp
bmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1
aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg1KSwgW10pOworICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKDEpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNCksIFtd
KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxk
cy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDUsIDIp
LCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwg
J0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgxLCAyKSwgewogICAgICAgICAgICAgICAg
IFstMV06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBi
dWlsZFJlcXVlc3RJZDogMX0pCiAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVy
JTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCg0LCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKQEAgLTEzMzcsMTggKzEzMzcsMTgg
QEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKLSAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCg1KSwgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDEpLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoNCksIFtdKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29u
L2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsK
KyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1LCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKDEsIDIpLCB7CiAgICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEucnVubmluZ0J1
aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDJ9KSwKICAgICAg
ICAgICAgICAgICBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBi
dWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KSwKICAgICAgICAgICAgIH0pOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQn
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVy
biBzeW5jUHJvbWlzZTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAtMTQ5MSwyMCArMTQ5
MSwyMCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsK
IAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRo
ZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRl
cnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRl
ZCgpKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAn
R0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRi
b3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Myk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0g
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24v
YnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoNSksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgxKSwgW10p
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCBbXSk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0g
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTIn
LCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEm
c2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNSwgMiksIHt9KTsKKyAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKDEsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCg0LCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKQEAgLTE1MTMsMTggKzE1MTMsMTggQEAgZGVzY3JpYmUo
J3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUl
MjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLAorICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDUpLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMSksCiAgICAgICAgICAgICAgICAgW01vY2tE
YXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElk
OiAxfSldKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzld
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywg
W10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCBbXSk7CiAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKLSAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInLCB7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sx
MF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNSwgMiksIHt9KTsKKyAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgxLCAyKSwgewogICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRh
LnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAx
fSkKICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMTJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWls
ZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
NCwgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0
YXNrSWQsIHRydWUpOwpAQCAtMTY1MywyMiArMTY1MywyMiBAQCBkZXNjcmliZSgnc3luYy1idWls
ZGJvdCcsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgp
OwogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRo
ZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRl
cnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRl
ZCgpKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAn
R0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRi
b3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Myk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0g
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24v
YnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoNSksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgxKSwgW10p
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCBbXSk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0g
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTIn
LCB7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1LCAyKSwge30pOworICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoMSwgMiksIHsKICAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5maW5pc2hl
ZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KQogICAg
ICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiksIHt9
KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNyk7CkBAIC0xNjc3LDE4ICsxNjc3LDE4IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxk
Ym90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVz
dGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9w
ZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbOV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRp
bmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNSksIFtdKTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgxKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQp
LCBbXSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDEzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzEwXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/
c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRl
ci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7CisgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoNSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgxLCAyKSwgewogICAgICAg
ICAgICAgICAgIFstMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVp
bGRlcicsIGJ1aWxkUmVxdWVzdElkOiAyfSksCiAgICAgICAgICAgICAgICAgWy0yXTogTW9ja0Rh
dGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElk
OiAxfSksCiAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIv
YnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKDQsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRh
c2sodGFza0lkLCB0cnVlKTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90
b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9v
bHMvanMvYnVpbGRib3Qtc3luY2VyLmpzCmluZGV4IGE5MjI1ZTU3NDM0Li5mMDZkZjVjY2QyNiAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5
bmNlci5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qt
c3luY2VyLmpzCkBAIC0yMTUsMTggKzIxNSwxOCBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAg
ICAgICAgIGlmICghdGhpcy5fc2xhdmVMaXN0IHx8IGhhc1BlbmRpbmdCdWlsZHNXaXRob3V0U2xh
dmVOYW1lU3BlY2lmaWVkKSB7CiAgICAgICAgICAgICBpZiAodXNlZFNsYXZlcy5zaXplIHx8IHRo
aXMuX3NsYXZlc1dpdGhOZXdSZXF1ZXN0cy5zaXplKQogICAgICAgICAgICAgICAgIHJldHVybiBu
dWxsOwotICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2NoZWR1bGVSZXF1ZXN0RGVwcmVjYXRlZChu
ZXdSZXF1ZXN0LCByZXF1ZXN0c0luR3JvdXAsIG51bGwpOworICAgICAgICAgICAgcmV0dXJuIHRo
aXMuc2NoZWR1bGVSZXF1ZXN0KG5ld1JlcXVlc3QsIHJlcXVlc3RzSW5Hcm91cCwgbnVsbCk7CiAg
ICAgICAgIH0KIAogICAgICAgICBpZiAoc2xhdmVOYW1lKSB7CiAgICAgICAgICAgICBpZiAoIXVz
ZWRTbGF2ZXMuaGFzKHNsYXZlTmFtZSkgJiYgIXRoaXMuX3NsYXZlc1dpdGhOZXdSZXF1ZXN0cy5o
YXMoc2xhdmVOYW1lKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zY2hlZHVsZVJlcXVl
c3REZXByZWNhdGVkKG5ld1JlcXVlc3QsIHJlcXVlc3RzSW5Hcm91cCwgc2xhdmVOYW1lKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zY2hlZHVsZVJlcXVlc3QobmV3UmVxdWVzdCwgcmVx
dWVzdHNJbkdyb3VwLCBzbGF2ZU5hbWUpOwogICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAg
ICAgIH0KIAogICAgICAgICBmb3IgKGxldCBzbGF2ZU5hbWUgb2YgdGhpcy5fc2xhdmVMaXN0KSB7
CiAgICAgICAgICAgICBpZiAoIXVzZWRTbGF2ZXMuaGFzKHNsYXZlTmFtZSkgJiYgIXRoaXMuX3Ns
YXZlc1dpdGhOZXdSZXF1ZXN0cy5oYXMoc2xhdmVOYW1lKSkKLSAgICAgICAgICAgICAgICByZXR1
cm4gdGhpcy5zY2hlZHVsZVJlcXVlc3REZXByZWNhdGVkKG5ld1JlcXVlc3QsIHJlcXVlc3RzSW5H
cm91cCwgc2xhdmVOYW1lKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zY2hlZHVsZVJl
cXVlc3QobmV3UmVxdWVzdCwgcmVxdWVzdHNJbkdyb3VwLCBzbGF2ZU5hbWUpOwogICAgICAgICB9
CiAKICAgICAgICAgcmV0dXJuIG51bGw7CkBAIC0yMzQsOSArMjM0LDExIEBAIGNsYXNzIEJ1aWxk
Ym90U3luY2VyIHsKIAogICAgIHB1bGxCdWlsZGJvdChjb3VudCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiB0aGlzLl9yZW1vdGUuZ2V0SlNPTih0aGlzLnBhdGhGb3JQZW5kaW5nQnVpbGRzSlNPTkRl
cHJlY2F0ZWQoKSkudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAgbGV0IHBlbmRpbmdF
bnRyaWVzID0gY29udGVudC5tYXAoKGVudHJ5KSA9PiBuZXcgQnVpbGRib3RCdWlsZEVudHJ5RGVw
cmVjYXRlZCh0aGlzLCBlbnRyeSkpOwotICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3B1bGxSZWNl
bnRCdWlsZHNEZXByZWNhdGVkKGNvdW50KS50aGVuKChlbnRyaWVzKSA9PiB7CisgICAgICAgIHJl
dHVybiB0aGlzLl9yZW1vdGUuZ2V0SlNPTih0aGlzLnBhdGhGb3JQZW5kaW5nQnVpbGRzKCkpLnRo
ZW4oKGNvbnRlbnQpID0+IHsKKyAgICAgICAgICAgIGxldCBwZW5kaW5nRW50cmllcyA9IFtdOwor
ICAgICAgICAgICAgaWYgKCdidWlsZHJlcXVlc3RzJyBpbiBjb250ZW50KQorICAgICAgICAgICAg
ICAgIHBlbmRpbmdFbnRyaWVzID0gY29udGVudC5idWlsZHJlcXVlc3RzLm1hcCgoZW50cnkpID0+
IG5ldyBCdWlsZGJvdEJ1aWxkRW50cnkodGhpcywgZW50cnkpKTsKKyAgICAgICAgICAgIHJldHVy
biB0aGlzLl9wdWxsUmVjZW50QnVpbGRzKGNvdW50KS50aGVuKChlbnRyaWVzKSA9PiB7CiAgICAg
ICAgICAgICAgICAgbGV0IGVudHJ5QnlSZXF1ZXN0ID0ge307CiAKICAgICAgICAgICAgICAgICBm
b3IgKGxldCBlbnRyeSBvZiBwZW5kaW5nRW50cmllcykKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcwppbmRleCA4
OTkyODQwNjljYS4uZGQ4NTA5MjJiM2IgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcworKysgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMKQEAgLTU1LDcgKzU1
LDcgQEAgY2xhc3MgQnVpbGRib3RUcmlnZ2VyYWJsZSB7CiAKICAgICBpbml0U3luY2VycygpCiAg
ICAgewotICAgICAgICByZXR1cm4gdGhpcy5nZXRCdWlsZGVyTmFtZVRvSURNYXBEZXByZWNhdGVk
KCkudGhlbigoYnVpbGRlck5hbWVUb0lETWFwKSA9PiB7CisgICAgICAgIHJldHVybiB0aGlzLmdl
dEJ1aWxkZXJOYW1lVG9JRE1hcCgpLnRoZW4oKGJ1aWxkZXJOYW1lVG9JRE1hcCkgPT4gewogICAg
ICAgICAgICAgdGhpcy5fc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKHRoaXMu
X2J1aWxkYm90UmVtb3RlLCB0aGlzLl9jb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCk7CiAgICAg
ICAgIH0pOwogICAgIH0KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0
LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy91bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qcwppbmRleCA1Mjc2N2Q4OTA1Ni4u
MGRkYTE3NDEwODQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRl
c3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMKQEAgLTYsNyArNiw3IEBAIHJl
cXVpcmUoJy4uL3Rvb2xzL2pzL3YzLW1vZGVscy5qcycpOwogbGV0IE1vY2tSZW1vdGVBUEkgPSBy
ZXF1aXJlKCcuL3Jlc291cmNlcy9tb2NrLXJlbW90ZS1hcGkuanMnKS5Nb2NrUmVtb3RlQVBJOwog
bGV0IE1vY2tNb2RlbHMgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9tb2NrLXYzLW1vZGVscy5qcycp
Lk1vY2tNb2RlbHM7CiAKLWxldCBCdWlsZGJvdEJ1aWxkRW50cnlEZXByZWNhdGVkID0gcmVxdWly
ZSgnLi4vdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzJykuQnVpbGRib3RCdWlsZEVudHJ5RGVw
cmVjYXRlZDsKK2xldCBCdWlsZGJvdEJ1aWxkRW50cnkgPSByZXF1aXJlKCcuLi90b29scy9qcy9i
dWlsZGJvdC1zeW5jZXIuanMnKS5CdWlsZGJvdEJ1aWxkRW50cnk7CiBsZXQgQnVpbGRib3RTeW5j
ZXIgPSByZXF1aXJlKCcuLi90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMnKS5CdWlsZGJvdFN5
bmNlcjsKIAogZnVuY3Rpb24gc2FtcGxlaU9TQ29uZmlnKCkKQEAgLTEzMyw2ICsxMzMsNyBAQCBm
dW5jdGlvbiBzbWFsbENvbmZpZ3VyYXRpb24oKQogICAgICAgICAnYnVpbGRlcnMnOiB7CiAgICAg
ICAgICAgICAnc29tZS1idWlsZGVyJzogewogICAgICAgICAgICAgICAgICdidWlsZGVyJzogJ3Nv
bWUgYnVpbGRlcicsCisgICAgICAgICAgICAgICAgJ3Byb3BlcnRpZXMnOiB7J2ZvcmNlc2NoZWR1
bGVyJzogJ3NvbWUlMjBidWlsZGVyLUZvcmNlU2NoZWR1bGVyJ30KICAgICAgICAgICAgIH0KICAg
ICAgICAgfSwKICAgICAgICAgJ3Rlc3RDb25maWd1cmF0aW9ucyc6IFt7CkBAIC0yOTUsMTk0ICsy
OTYsOTMgQEAgZnVuY3Rpb24gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0V2l0aE93bmVkQ29tbWl0
QW5kUGF0Y2gocGxhdGZvcm0sIHRlc3QsIG9yZGVyKQogICAgICAgICAnY29tbWl0U2V0JzogY29t
bWl0U2V0LCAnc3RhdHVzJzogJ3BlbmRpbmcnLCAncGxhdGZvcm0nOiBwbGF0Zm9ybSwgJ3Rlc3Qn
OiB0ZXN0LCAnb3JkZXInOiBvcmRlcn0pOwogfQogCi1mdW5jdGlvbiBzYW1wbGVQZW5kaW5nQnVp
bGQoYnVpbGRSZXF1ZXN0SWQsIGJ1aWxkVGltZSwgc2xhdmVOYW1lKQorZnVuY3Rpb24gc2FtcGxl
UGVuZGluZ0J1aWxkKGJ1aWxkUmVxdWVzdElkLCBidWlsZFRpbWUpCiB7CiAgICAgcmV0dXJuIHsK
LSAgICAgICAgJ2J1aWxkZXJOYW1lJzogJ0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cycs
Ci0gICAgICAgICdidWlsZHMnOiBbXSwKLSAgICAgICAgJ3Byb3BlcnRpZXMnOiBbCi0gICAgICAg
ICAgICBbJ2J1aWxkX3JlcXVlc3RfaWQnLCBidWlsZFJlcXVlc3RJZCB8fCAnMTY3MzMnLCAnRm9y
Y2UgQnVpbGQgRm9ybSddLAotICAgICAgICAgICAgWydkZXNpcmVkX2ltYWdlJywgJzEzQTQ1Mics
ICdGb3JjZSBCdWlsZCBGb3JtJ10sCi0gICAgICAgICAgICBbJ293bmVyJywgJzx1bmtub3duPics
ICdGb3JjZSBCdWlsZCBGb3JtJ10sCi0gICAgICAgICAgICBbJ3Rlc3RfbmFtZScsICdzcGVlZG9t
ZXRlcicsICdGb3JjZSBCdWlsZCBGb3JtJ10sCi0gICAgICAgICAgICBbJ3JlYXNvbicsICdmb3Jj
ZSBidWlsZCcsJ0ZvcmNlIEJ1aWxkIEZvcm0nXSwKLSAgICAgICAgICAgIFsnc2xhdmVuYW1lJywg
c2xhdmVOYW1lLCAnJ10sCi0gICAgICAgICAgICBbJ3NjaGVkdWxlcicsICdBQlRlc3QtaVBhZC1S
dW5CZW5jaG1hcmstVGVzdHMtRm9yY2VTY2hlZHVsZXInLCAnU2NoZWR1bGVyJ10KLSAgICAgICAg
XSwKLSAgICAgICAgJ3NvdXJjZSc6IHsKLSAgICAgICAgICAgICdicmFuY2gnOiAnJywKLSAgICAg
ICAgICAgICdjaGFuZ2VzJzogW10sCi0gICAgICAgICAgICAnY29kZWJhc2UnOiAnY29tcGlsZXIt
cnQnLAotICAgICAgICAgICAgJ2hhc1BhdGNoJzogZmFsc2UsCi0gICAgICAgICAgICAncHJvamVj
dCc6ICcnLAotICAgICAgICAgICAgJ3JlcG9zaXRvcnknOiAnJywKLSAgICAgICAgICAgICdyZXZp
c2lvbic6ICcnCi0gICAgICAgIH0sCi0gICAgICAgICdzdWJtaXR0ZWRBdCc6IGJ1aWxkVGltZSB8
fCAxNDU4NzA0OTgzCisgICAgICAgICJidWlsZHJlcXVlc3RzIiA6IFsgCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgImJ1aWxkZXJpZCI6IDEwMiwKKyAgICAgICAgICAgICAgICAiYnVp
bGRyZXF1ZXN0aWQiOiBidWlsZFJlcXVlc3RJZCB8fCAxNjczMywKKyAgICAgICAgICAgICAgICAi
YnVpbGRzZXRpZCI6IDg5NDcyMCwKKyAgICAgICAgICAgICAgICAiY2xhaW1lZCI6IGZhbHNlLAor
ICAgICAgICAgICAgICAgICJjbGFpbWVkX2F0IjogbnVsbCwKKyAgICAgICAgICAgICAgICAiY2xh
aW1lZF9ieV9tYXN0ZXJpZCI6IG51bGwsIAorICAgICAgICAgICAgICAgICJjb21wbGV0ZSI6IGZh
bHNlLAorICAgICAgICAgICAgICAgICJjb21wbGV0ZV9hdCI6IG51bGwsCisgICAgICAgICAgICAg
ICAgInByaW9yaXR5IjogMCwKKyAgICAgICAgICAgICAgICAicmVzdWx0cyI6IC0xLAorICAgICAg
ICAgICAgICAgICJzdWJtaXR0ZWRfYXQiOiBidWlsZFRpbWUgfHwgMTQ1ODcwNDk4MywKKyAgICAg
ICAgICAgICAgICAid2FpdGVkX2ZvciI6IGZhbHNlCisgICAgICAgICAgICB9CisgICAgICAgIF0K
ICAgICB9OwogfQogCi1mdW5jdGlvbiBzYW1wbGVJblByb2dyZXNzQnVpbGQoc2xhdmVOYW1lKQor
ZnVuY3Rpb24gc2FtcGxlQnVpbGREYXRhKHdvcmtlck5hbWUsIGlzQ29tcGxldGUsIGJ1aWxkUmVx
dWVzdElkLCBidWlsZE51bWJlcikKIHsKICAgICByZXR1cm4gewotICAgICAgICAnYmxhbWUnOiBb
XSwKLSAgICAgICAgJ2J1aWxkZXJOYW1lJzogJ0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0
cycsCi0gICAgICAgICdjdXJyZW50U3RlcCc6IHsKLSAgICAgICAgICAgICdldGEnOiAwLjI2NTQ4
MDY3Njk4NDYwNTY1LAotICAgICAgICAgICAgJ2V4cGVjdGF0aW9ucyc6IFtbJ291dHB1dCcsIDg0
NSwgMTMxNS4wXV0sCi0gICAgICAgICAgICAnaGlkZGVuJzogZmFsc2UsCi0gICAgICAgICAgICAn
aXNGaW5pc2hlZCc6IGZhbHNlLAotICAgICAgICAgICAgJ2lzU3RhcnRlZCc6IHRydWUsCi0gICAg
ICAgICAgICAnbG9ncyc6IFtbJ3N0ZGlvJywgJ2h0dHBzOi8vYnVpbGQud2Via2l0Lm9yZy9idWls
ZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVpbGRzLzYxNC9zdGVwcy9Tb21l
JTIwc3RlcC9sb2dzL3N0ZGlvJ11dLAotICAgICAgICAgICAgJ25hbWUnOiAnU29tZSBzdGVwJywK
LSAgICAgICAgICAgICdyZXN1bHRzJzogW251bGwsW11dLAotICAgICAgICAgICAgJ3N0YXRpc3Rp
Y3MnOiB7fSwKLSAgICAgICAgICAgICdzdGVwX251bWJlcic6IDEsCi0gICAgICAgICAgICAndGV4
dCc6IFsnJ10sCi0gICAgICAgICAgICAndGltZXMnOiBbMTQ1ODcxODY1Ny41ODE2MjgsIG51bGxd
LAotICAgICAgICAgICAgJ3VybHMnOiB7fQotICAgICAgICB9LAotICAgICAgICAnZXRhJzogNjQ5
Ny45OTE2MTI0MzQzODcsCi0gICAgICAgICdsb2dzJzogW1snc3RkaW8nLCdodHRwczovL2J1aWxk
LndlYmtpdC5vcmcvYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzL2J1aWxk
cy82MTQvc3RlcHMvc2hlbGwvbG9ncy9zdGRpbyddXSwKLSAgICAgICAgJ251bWJlcic6IDYxNCwK
LSAgICAgICAgJ3Byb3BlcnRpZXMnOiBbCi0gICAgICAgICAgICBbJ2J1aWxkX3JlcXVlc3RfaWQn
LCAnMTY3MzMnLCAnRm9yY2UgQnVpbGQgRm9ybSddLAotICAgICAgICAgICAgWydidWlsZGVybmFt
ZScsICdBQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMnLCAnQnVpbGRlciddLAotICAgICAg
ICAgICAgWydidWlsZG51bWJlcicsIDYxNCwgJ0J1aWxkJ10sCi0gICAgICAgICAgICBbJ2Rlc2ly
ZWRfaW1hZ2UnLCAnMTNBNDUyJywgJ0ZvcmNlIEJ1aWxkIEZvcm0nXSwKLSAgICAgICAgICAgIFsn
b3duZXInLCAnPHVua25vd24+JywgJ0ZvcmNlIEJ1aWxkIEZvcm0nXSwKLSAgICAgICAgICAgIFsn
cmVhc29uJywgJ2ZvcmNlIGJ1aWxkJywgJ0ZvcmNlIEJ1aWxkIEZvcm0nXSwKLSAgICAgICAgICAg
IFsnc2NoZWR1bGVyJywgJ0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy1Gb3JjZVNjaGVk
dWxlcicsICdTY2hlZHVsZXInXSwKLSAgICAgICAgICAgIFsnc2xhdmVuYW1lJywgc2xhdmVOYW1l
IHx8ICdBQlRlc3QtaVBhZC0wJywgJ0J1aWxkU2xhdmUnXSwKLSAgICAgICAgXSwKLSAgICAgICAg
J3JlYXNvbic6ICdBIGJ1aWxkIHdhcyBmb3JjZWQgYnkgXCc8dW5rbm93bj5cJzogZm9yY2UgYnVp
bGQnLAotICAgICAgICAncmVzdWx0cyc6IG51bGwsCi0gICAgICAgICdzbGF2ZSc6ICdBQlRlc3Qt
aVBhZC0wJywKLSAgICAgICAgJ3NvdXJjZVN0YW1wcyc6IFt7J2JyYW5jaCc6ICcnLCAnY2hhbmdl
cyc6IFtdLCAnY29kZWJhc2UnOiAnY29tcGlsZXItcnQnLCAnaGFzUGF0Y2gnOiBmYWxzZSwgJ3By
b2plY3QnOiAnJywgJ3JlcG9zaXRvcnknOiAnJywgJ3JldmlzaW9uJzogJyd9XSwKLSAgICAgICAg
J3N0ZXBzJzogWwotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICdldGEnOiBudWxsLAot
ICAgICAgICAgICAgICAgICdleHBlY3RhdGlvbnMnOiBbWydvdXRwdXQnLDIzMDksMjMwOS4wXV0s
Ci0gICAgICAgICAgICAgICAgJ2hpZGRlbic6IGZhbHNlLAotICAgICAgICAgICAgICAgICdpc0Zp
bmlzaGVkJzogdHJ1ZSwKLSAgICAgICAgICAgICAgICAnaXNTdGFydGVkJzogdHJ1ZSwKLSAgICAg
ICAgICAgICAgICAnbG9ncyc6IFtbJ3N0ZGlvJywgJ2h0dHBzOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVpbGRzLzYxNC9zdGVwcy9z
aGVsbC9sb2dzL3N0ZGlvJ11dLAotICAgICAgICAgICAgICAgICduYW1lJzogJ0ZpbmlzaGVkIHN0
ZXAnLAotICAgICAgICAgICAgICAgICdyZXN1bHRzJzogWzAsIFtdXSwKLSAgICAgICAgICAgICAg
ICAnc3RhdGlzdGljcyc6IHt9LAotICAgICAgICAgICAgICAgICdzdGVwX251bWJlcic6IDAsCi0g
ICAgICAgICAgICAgICAgJ3RleHQnOiBbJyddLAotICAgICAgICAgICAgICAgICd0aW1lcyc6IFsx
NDU4NzE4NjU1LjQxOTg2NSwgMTQ1ODcxODY1NS40NTM2MzNdLAotICAgICAgICAgICAgICAgICd1
cmxzJzoge30KLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
J2V0YSc6IDAuMjY1NDgwNjc2OTg0NjA1NjUsCi0gICAgICAgICAgICAgICAgJ2V4cGVjdGF0aW9u
cyc6IFtbJ291dHB1dCcsIDg0NSwgMTMxNS4wXV0sCi0gICAgICAgICAgICAgICAgJ2hpZGRlbic6
IGZhbHNlLAotICAgICAgICAgICAgICAgICdpc0ZpbmlzaGVkJzogZmFsc2UsCi0gICAgICAgICAg
ICAgICAgJ2lzU3RhcnRlZCc6IHRydWUsCi0gICAgICAgICAgICAgICAgJ2xvZ3MnOiBbWydzdGRp
bycsICdodHRwczovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVu
Y2htYXJrLVRlc3RzL2J1aWxkcy82MTQvc3RlcHMvU29tZSUyMHN0ZXAvbG9ncy9zdGRpbyddXSwK
LSAgICAgICAgICAgICAgICAnbmFtZSc6ICdTb21lIHN0ZXAnLAotICAgICAgICAgICAgICAgICdy
ZXN1bHRzJzogW251bGwsW11dLAotICAgICAgICAgICAgICAgICdzdGF0aXN0aWNzJzoge30sCi0g
ICAgICAgICAgICAgICAgJ3N0ZXBfbnVtYmVyJzogMSwKLSAgICAgICAgICAgICAgICAndGV4dCc6
IFsnJ10sCi0gICAgICAgICAgICAgICAgJ3RpbWVzJzogWzE0NTg3MTg2NTcuNTgxNjI4LCBudWxs
XSwKLSAgICAgICAgICAgICAgICAndXJscyc6IHt9Ci0gICAgICAgICAgICB9LAotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICdldGEnOiBudWxsLAotICAgICAgICAgICAgICAgICdleHBl
Y3RhdGlvbnMnOiBbWydvdXRwdXQnLCBudWxsLCBudWxsXV0sCi0gICAgICAgICAgICAgICAgJ2hp
ZGRlbic6IGZhbHNlLAotICAgICAgICAgICAgICAgICdpc0ZpbmlzaGVkJzogZmFsc2UsCi0gICAg
ICAgICAgICAgICAgJ2lzU3RhcnRlZCc6IGZhbHNlLAotICAgICAgICAgICAgICAgICdsb2dzJzog
W10sCi0gICAgICAgICAgICAgICAgJ25hbWUnOiAnU29tZSBvdGhlciBzdGVwJywKLSAgICAgICAg
ICAgICAgICAncmVzdWx0cyc6IFtudWxsLCBbXV0sCi0gICAgICAgICAgICAgICAgJ3N0YXRpc3Rp
Y3MnOiB7fSwKLSAgICAgICAgICAgICAgICAnc3RlcF9udW1iZXInOiAyLAotICAgICAgICAgICAg
ICAgICd0ZXh0JzogW10sCi0gICAgICAgICAgICAgICAgJ3RpbWVzJzogW251bGwsIG51bGxdLAot
ICAgICAgICAgICAgICAgICd1cmxzJzoge30KLSAgICAgICAgICAgIH0sCi0gICAgICAgIF0sCi0g
ICAgICAgICd0ZXh0JzogW10sCi0gICAgICAgICd0aW1lcyc6IFsxNDU4NzE4NjU1LjQxNTgyMSwg
bnVsbF0KKyAgICAgICAgImJ1aWxkZXJpZCI6IDEwMiwKKyAgICAgICAgImJ1aWxkaWQiOiA0MTg3
NDQsCisgICAgICAgICJidWlsZHJlcXVlc3RpZCI6IGJ1aWxkUmVxdWVzdElkIHx8IDE2NzMzLAor
ICAgICAgICAiY29tcGxldGUiOiBpc0NvbXBsZXRlLAorICAgICAgICAiY29tcGxldGVfYXQiOiBu
dWxsLAorICAgICAgICAibWFzdGVyaWQiOiAxLAorICAgICAgICAibnVtYmVyIjogYnVpbGROdW1i
ZXIgfHwgNjE0LAorICAgICAgICAicmVzdWx0cyI6IG51bGwsCisgICAgICAgICJzdGFydGVkX2F0
IjogMTUxMzcyNTEwOSwKKyAgICAgICAgInN0YXRlX3N0cmluZyI6ICJidWlsZGluZyIsCisgICAg
ICAgICJ3b3JrZXJpZCI6IDI0MSwKKyAgICAgICAgInByb3BlcnRpZXMiOiB7CisgICAgICAgICAg
ICAiYXJjaGl0ZWN0dXJlcyI6IFtbImkzODYiLCAieDg2XzY0Il0sICJVbmtub3duIl0sCisgICAg
ICAgICAgICAiYnVpbGRkaXIiOiBbIi9Wb2x1bWVzL0RhdGEvc2xhdmUvcHJvZHVjdGlvbi1pbWFj
OC0yLXBlcmYtdGVzdHMiLCAiV29ya2VyIl0sCisgICAgICAgICAgICAiYnVpbGRlcm5hbWUiOiBb
IlRydW5rLVByb2R1Y3Rpb24taU1hYzhfMi1QZXJmLVRlc3RzIiwgIkJ1aWxkZXIiXSwgCisgICAg
ICAgICAgICAiYnVpbGRudW1iZXIiOiBbNzg1LCAiQnVpbGQiXSwgCisgICAgICAgICAgICAiY29u
ZmlndXJhdGlvbiI6IFsiUHJvZHVjdGlvbiIsICJVbmtub3duIl0sCisgICAgICAgICAgICAiZGV2
aWNlX2hvc3RuYW1lIjogWyJib3Q4OTUiLCAiU2V0UHJvcGVydHkiXSwKKyAgICAgICAgICAgICJk
ZXZpY2VfbW9kZWwiOiBbImlNYWMxOCwyIiwgIlVua25vd24iXSwKKyAgICAgICAgICAgICJmdWxs
cGxhdGZvcm0iOiBbIm1hYy1mdWppIiwgIlVua25vd24iXSwKKyAgICAgICAgICAgICJnb3RfcmV2
aXNpb24iOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiaW50ZXJu
YWwiOiAiYjBkMjc4MWJkMTM3NWVjOWQ3OWVkMGEzZjZlMjRhYjZjZTdmZjFlNyIsIAorICAgICAg
ICAgICAgICAgICAgICAib3BlbnNvdXJjZSI6ICIyMjYxMjAiCisgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICAgICAiQ2hlY2tPdXRJbnRlcm5hbFNvdXJjZU1lcmdlZCIKKyAgICAgICAg
ICAgIF0sCisgICAgICAgICAgICAiaW9zX3Nka192ZXJzaW9uIjogW251bGwsICJVbmtub3duIl0s
CisgICAgICAgICAgICAib3MtdmVyc2lvbiI6IFsiU1VGdWppR3JpenpseSIsICJTZXQtT1MtSW5z
dGFsbC1WZXJzaW9uIl0sCisgICAgICAgICAgICAicGxhdGZvcm0iOiBbIm1hYyIsICJVbmtub3du
Il0sCisgICAgICAgICAgICAicmVzdG9yZWRfb3MiOiBbIjEwLjEyLjYgMTZHMjkiLCAiVW5rbm93
biJdLCAKKyAgICAgICAgICAgICJyZXN1bHRzLXBsYXRmb3JtIjogWyJUcnVuayBGdWppIiwgIlNl
dC1SZXN1bHRzLVBsYXRmb3JtIl0sIAorICAgICAgICAgICAgInNjaGVkdWxlciI6IFsiZnVqaS1w
cm9kdWN0aW9uLWltYWM4LTItcGVyZi10ZXN0cyIsICJTY2hlZHVsZXIiXSwKKyAgICAgICAgICAg
ICJzbGF2ZW5hbWUiOiBbd29ya2VyTmFtZSB8fCAiQUJUZXN0LWlQYWQtMCIsICJXb3JrZXIgKGRl
cHJlY2F0ZWQpIl0sCisgICAgICAgICAgICAidGVzdHMiOiBbWyJwbHQiLCAibWVtYnVzdGVyIiwg
InNwZWVkb21ldGVyIl0sICJTZXQtVGVzdHMiXSwgCisgICAgICAgICAgICAid29ya2VybmFtZSI6
IFt3b3JrZXJOYW1lIHx8ICJBQlRlc3QtaVBhZC0wIiwgIldvcmtlciIKKyAgICAgICAgICAgIF0K
KyAgICAgICAgfQorICAgIH07Cit9CisKK2Z1bmN0aW9uIHNhbXBsZUluUHJvZ3Jlc3NCdWlsZERh
dGEod29ya2VyTmFtZSkKK3sKKyAgICByZXR1cm4gc2FtcGxlQnVpbGREYXRhKHdvcmtlck5hbWUs
IGZhbHNlKTsKK30KKworZnVuY3Rpb24gc2FtcGxlRmluaXNoZWRCdWlsZERhdGEoYnVpbGRSZXF1
ZXN0SWQsIHdvcmtlck5hbWUpCit7CisgICAgcmV0dXJuIHNhbXBsZUJ1aWxkRGF0YSh3b3JrZXJO
YW1lLCB0cnVlLCBidWlsZFJlcXVlc3RJZCB8fCAxODkzNSwgMTc1NSk7Cit9CisKK2Z1bmN0aW9u
IHNhbXBsZUluUHJvZ3Jlc3NCdWlsZCh3b3JrZXJOYW1lKQoreworICAgIHJldHVybiB7CisgICAg
ICAgICJidWlsZHMiOiBbc2FtcGxlSW5Qcm9ncmVzc0J1aWxkRGF0YSh3b3JrZXJOYW1lKV0KICAg
ICB9OwogfQogCi1mdW5jdGlvbiBzYW1wbGVGaW5pc2hlZEJ1aWxkKGJ1aWxkUmVxdWVzdElkLCBz
bGF2ZU5hbWUpCitmdW5jdGlvbiBzYW1wbGVGaW5pc2hlZEJ1aWxkKGJ1aWxkUmVxdWVzdElkLCB3
b3JrZXJOYW1lKQogewogICAgIHJldHVybiB7Ci0gICAgICAgICdibGFtZSc6IFtdLAotICAgICAg
ICAnYnVpbGRlck5hbWUnOiAnQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzJywKLSAgICAg
ICAgJ2N1cnJlbnRTdGVwJzogbnVsbCwKLSAgICAgICAgJ2V0YSc6IG51bGwsCi0gICAgICAgICds
b2dzJzogW1snc3RkaW8nLCdodHRwczovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvQUJUZXN0
LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzL2J1aWxkcy8xNzU1L3N0ZXBzL3NoZWxsL2xvZ3Mvc3Rk
aW8nXV0sCi0gICAgICAgICdudW1iZXInOiAxNzU1LAotICAgICAgICAncHJvcGVydGllcyc6IFsK
LSAgICAgICAgICAgIFsnYnVpbGRfcmVxdWVzdF9pZCcsIGJ1aWxkUmVxdWVzdElkIHx8ICcxODkz
NScsICdGb3JjZSBCdWlsZCBGb3JtJ10sCi0gICAgICAgICAgICBbJ2J1aWxkZXJuYW1lJywgJ0FC
VGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cycsICdCdWlsZGVyJ10sCi0gICAgICAgICAgICBb
J2J1aWxkbnVtYmVyJywgMTc1NSwgJ0J1aWxkJ10sCi0gICAgICAgICAgICBbJ2Rlc2lyZWRfaW1h
Z2UnLCAnMTNBNDUyJywgJ0ZvcmNlIEJ1aWxkIEZvcm0nXSwKLSAgICAgICAgICAgIFsnb3duZXIn
LCAnPHVua25vd24+JywgJ0ZvcmNlIEJ1aWxkIEZvcm0nXSwKLSAgICAgICAgICAgIFsncmVhc29u
JywgJ2ZvcmNlIGJ1aWxkJywgJ0ZvcmNlIEJ1aWxkIEZvcm0nXSwKLSAgICAgICAgICAgIFsnc2No
ZWR1bGVyJywgJ0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy1Gb3JjZVNjaGVkdWxlcics
ICdTY2hlZHVsZXInXSwKLSAgICAgICAgICAgIFsnc2xhdmVuYW1lJywgc2xhdmVOYW1lIHx8ICdB
QlRlc3QtaVBhZC0wJywgJ0J1aWxkU2xhdmUnXSwKLSAgICAgICAgXSwKLSAgICAgICAgJ3JlYXNv
bic6ICdBIGJ1aWxkIHdhcyBmb3JjZWQgYnkgXCc8dW5rbm93bj5cJzogZm9yY2UgYnVpbGQnLAot
ICAgICAgICAncmVzdWx0cyc6IDIsCi0gICAgICAgICdzbGF2ZSc6ICdBQlRlc3QtaVBhZC0wJywK
LSAgICAgICAgJ3NvdXJjZVN0YW1wcyc6IFt7J2JyYW5jaCc6ICcnLCAnY2hhbmdlcyc6IFtdLCAn
Y29kZWJhc2UnOiAnY29tcGlsZXItcnQnLCAnaGFzUGF0Y2gnOiBmYWxzZSwgJ3Byb2plY3QnOiAn
JywgJ3JlcG9zaXRvcnknOiAnJywgJ3JldmlzaW9uJzogJyd9XSwKLSAgICAgICAgJ3N0ZXBzJzog
WwotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICdldGEnOiBudWxsLAotICAgICAgICAg
ICAgICAgICdleHBlY3RhdGlvbnMnOiBbWydvdXRwdXQnLDIzMDksMjMwOS4wXV0sCi0gICAgICAg
ICAgICAgICAgJ2hpZGRlbic6IGZhbHNlLAotICAgICAgICAgICAgICAgICdpc0ZpbmlzaGVkJzog
dHJ1ZSwKLSAgICAgICAgICAgICAgICAnaXNTdGFydGVkJzogdHJ1ZSwKLSAgICAgICAgICAgICAg
ICAnbG9ncyc6IFtbJ3N0ZGlvJywgJ2h0dHBzOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9B
QlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVpbGRzLzYxNC9zdGVwcy9zaGVsbC9sb2dz
L3N0ZGlvJ11dLAotICAgICAgICAgICAgICAgICduYW1lJzogJ0ZpbmlzaGVkIHN0ZXAnLAotICAg
ICAgICAgICAgICAgICdyZXN1bHRzJzogWzAsIFtdXSwKLSAgICAgICAgICAgICAgICAnc3RhdGlz
dGljcyc6IHt9LAotICAgICAgICAgICAgICAgICdzdGVwX251bWJlcic6IDAsCi0gICAgICAgICAg
ICAgICAgJ3RleHQnOiBbJyddLAotICAgICAgICAgICAgICAgICd0aW1lcyc6IFsxNDU4NzE4NjU1
LjQxOTg2NSwgMTQ1ODcxODY1NS40NTM2MzNdLAotICAgICAgICAgICAgICAgICd1cmxzJzoge30K
LSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgJ2V0YSc6IG51
bGwsCi0gICAgICAgICAgICAgICAgJ2V4cGVjdGF0aW9ucyc6IFtbJ291dHB1dCcsIDg0NSwgMTMx
NS4wXV0sCi0gICAgICAgICAgICAgICAgJ2hpZGRlbic6IGZhbHNlLAotICAgICAgICAgICAgICAg
ICdpc0ZpbmlzaGVkJzogdHJ1ZSwKLSAgICAgICAgICAgICAgICAnaXNTdGFydGVkJzogdHJ1ZSwK
LSAgICAgICAgICAgICAgICAnbG9ncyc6IFtbJ3N0ZGlvJywgJ2h0dHBzOi8vYnVpbGQud2Via2l0
Lm9yZy9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVpbGRzLzYxNC9z
dGVwcy9Tb21lJTIwc3RlcC9sb2dzL3N0ZGlvJ11dLAotICAgICAgICAgICAgICAgICduYW1lJzog
J1NvbWUgc3RlcCcsCi0gICAgICAgICAgICAgICAgJ3Jlc3VsdHMnOiBbbnVsbCxbXV0sCi0gICAg
ICAgICAgICAgICAgJ3N0YXRpc3RpY3MnOiB7fSwKLSAgICAgICAgICAgICAgICAnc3RlcF9udW1i
ZXInOiAxLAotICAgICAgICAgICAgICAgICd0ZXh0JzogWycnXSwKLSAgICAgICAgICAgICAgICAn
dGltZXMnOiBbMTQ1ODcxODY1Ny41ODE2MjgsIG51bGxdLAotICAgICAgICAgICAgICAgICd1cmxz
Jzoge30KLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgJ2V0
YSc6IG51bGwsCi0gICAgICAgICAgICAgICAgJ2V4cGVjdGF0aW9ucyc6IFtbJ291dHB1dCcsIG51
bGwsIG51bGxdXSwKLSAgICAgICAgICAgICAgICAnaGlkZGVuJzogZmFsc2UsCi0gICAgICAgICAg
ICAgICAgJ2lzRmluaXNoZWQnOiB0cnVlLAotICAgICAgICAgICAgICAgICdpc1N0YXJ0ZWQnOiB0
cnVlLAotICAgICAgICAgICAgICAgICdsb2dzJzogW10sCi0gICAgICAgICAgICAgICAgJ25hbWUn
OiAnU29tZSBvdGhlciBzdGVwJywKLSAgICAgICAgICAgICAgICAncmVzdWx0cyc6IFtudWxsLCBb
XV0sCi0gICAgICAgICAgICAgICAgJ3N0YXRpc3RpY3MnOiB7fSwKLSAgICAgICAgICAgICAgICAn
c3RlcF9udW1iZXInOiAyLAotICAgICAgICAgICAgICAgICd0ZXh0JzogW10sCi0gICAgICAgICAg
ICAgICAgJ3RpbWVzJzogW251bGwsIG51bGxdLAotICAgICAgICAgICAgICAgICd1cmxzJzoge30K
LSAgICAgICAgICAgIH0sCi0gICAgICAgIF0sCi0gICAgICAgICd0ZXh0JzogW10sCi0gICAgICAg
ICd0aW1lcyc6IFsxNDU4OTM3NDc4LjI1ODM3LCAxNDU4OTQ2MTQ3LjE3Mzc4NV0KKyAgICAgICAg
ImJ1aWxkcyI6IFtzYW1wbGVGaW5pc2hlZEJ1aWxkRGF0YShidWlsZFJlcXVlc3RJZCwgd29ya2Vy
TmFtZSldCiAgICAgfTsKIH0KIApAQCAtMTIwMCw4ICsxMTAwLDggQEAgZGVzY3JpYmUoJ0J1aWxk
Ym90U3luY2VyJywgKCkgPT4gewogICAgICAgICBpdCgnc2hvdWxkIGZldGNoIHBlbmRpbmcgYnVp
bGRzIGZyb20gdGhlIHJpZ2h0IFVSTCcsICgpID0+IHsKICAgICAgICAgICAgIGxldCBzeW5jZXIg
PSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25m
aWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHN5bmNlci5idWlsZGVyTmFtZSgpLCAnQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzJyk7
Ci0gICAgICAgICAgICBsZXQgZXhwZWN0ZWRVUkwgPSAnL2pzb24vYnVpbGRlcnMvQUJUZXN0LWlQ
YWQtUnVuQmVuY2htYXJrLVRlc3RzL3BlbmRpbmdCdWlsZHMnOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHN5bmNlci5wYXRoRm9yUGVuZGluZ0J1aWxkc0pTT05EZXByZWNhdGVkKCksIGV4cGVj
dGVkVVJMKTsKKyAgICAgICAgICAgIGxldCBleHBlY3RlZFVSTCA9ICcvYXBpL3YyL2J1aWxkZXJz
LzEwMi9idWlsZHJlcXVlc3RzP2NvbXBsZXRlPWZhbHNlJmNsYWltZWQ9ZmFsc2UnOworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlci5wYXRoRm9yUGVuZGluZ0J1aWxkcygpLCBleHBlY3Rl
ZFVSTCk7CiAgICAgICAgICAgICBzeW5jZXIucHVsbEJ1aWxkYm90KCk7CiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1swXS51cmwsIGV4cGVjdGVkVVJMKTsKQEAgLTEyMTMsMTEgKzExMTMsMTEgQEAg
ZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogCiAgICAgICAgICAgICBzeW5jZXIu
cHVsbEJ1aWxkYm90KDEpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2pzb24v
YnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzL3BlbmRpbmdCdWlsZHMnKTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvYXBpL3YyL2J1aWxk
ZXJzLzEwMi9idWlsZHJlcXVlc3RzP2NvbXBsZXRlPWZhbHNlJmNsYWltZWQ9ZmFsc2UnKTsKICAg
ICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoW10pOwogICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVu
QmVuY2htYXJrLVRlc3RzL2J1aWxkcy8/c2VsZWN0PS0xJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgJy9hcGkvdjIvYnVpbGRlcnMvMTAyL2J1aWxkcz9s
aW1pdD0xJm9yZGVyPS1udW1iZXImcHJvcGVydHk9KicpOwogICAgICAgICAgICAgfSk7CiAgICAg
ICAgIH0pOwogCkBAIC0xMjI2LDI5ICsxMTI2LDI5IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNl
cicsICgpID0+IHsKIAogICAgICAgICAgICAgc3luY2VyLnB1bGxCdWlsZGJvdCgzKTsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1
bkJlbmNobWFyay1UZXN0cy9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbMF0udXJsLCAnL2FwaS92Mi9idWlsZGVycy8xMDIvYnVpbGRyZXF1ZXN0cz9j
b21wbGV0ZT1mYWxzZSZjbGFpbWVkPWZhbHNlJyk7CiAgICAgICAgICAgICByZXF1ZXN0c1swXS5y
ZXNvbHZlKFtdKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVy
bCwgJy9qc29uL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy9idWlsZHMv
P3NlbGVjdD0tMSZzZWxlY3Q9LTImc2VsZWN0PS0zJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgJy9hcGkvdjIvYnVpbGRlcnMvMTAyL2J1aWxkcz9saW1p
dD0zJm9yZGVyPS1udW1iZXImcHJvcGVydHk9KicpOwogICAgICAgICAgICAgfSk7CiAgICAgICAg
IH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgY3JlYXRlIEJ1aWxkYm90QnVpbGRFbnRyeSBmb3Ig
cGVuZGluZyBidWlsZHMnLCAoKSA9PiB7CiAgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1
aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKICAgICAgICAgICAgIGxldCBwcm9taXNlID0gc3luY2Vy
LnB1bGxCdWlsZGJvdCgpOwotICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZShbc2FtcGxl
UGVuZGluZ0J1aWxkKCldKTsKKyAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoc2FtcGxl
UGVuZGluZ0J1aWxkKCkpOwogICAgICAgICAgICAgcmV0dXJuIHByb21pc2UudGhlbigoZW50cmll
cykgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyaWVzLmxlbmd0aCwgMSk7
CiAgICAgICAgICAgICAgICAgbGV0IGVudHJ5ID0gZW50cmllc1swXTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnlEZXByZWNhdGVk
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1
aWxkRW50cnkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuYnVpbGROdW1iZXIo
KSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5zbGF2ZU5hbWUoKSk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkUmVxdWVzdElkKCksIDE2NzMzKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkuaXNQZW5kaW5nKCkpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5vayghZW50cnkuaXNJblByb2dyZXNzKCkpOwogICAgICAgICAgICAgICAg
IGFzc2VydC5vayghZW50cnkuaGFzRmluaXNoZWQoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvQUJU
ZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzLycpOworICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0
cy8xNjczMycpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0xMjYwLDE5ICsx
MTYwLDE5IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAg
IHJlcXVlc3RzWzBdLnJlc29sdmUoW10pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICByZXF1ZXN0c1sxXS5y
ZXNvbHZlKHtbLTFdOiBzYW1wbGVJblByb2dyZXNzQnVpbGQoKX0pOworICAgICAgICAgICAgICAg
IHJlcXVlc3RzWzFdLnJlc29sdmUoc2FtcGxlSW5Qcm9ncmVzc0J1aWxkKCkpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBwcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoZW50cmllcykgPT4g
ewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyaWVzLmxlbmd0aCwgMSk7CiAgICAg
ICAgICAgICAgICAgbGV0IGVudHJ5ID0gZW50cmllc1swXTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnlEZXByZWNhdGVkKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50
cnkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZE51bWJlcigpLCA2
MTQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5zbGF2ZU5hbWUoKSwgJ0FC
VGVzdC1pUGFkLTAnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkud29ya2Vy
TmFtZSgpLCAnQUJUZXN0LWlQYWQtMCcpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChl
bnRyeS5idWlsZFJlcXVlc3RJZCgpLCAxNjczMyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9r
KCFlbnRyeS5pc1BlbmRpbmcoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5Lmlz
SW5Qcm9ncmVzcygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5Lmhhc0Zpbmlz
aGVkKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6
Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0
cy9idWlsZHMvNjE0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgp
LCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xMDIvYnVpbGRzLzYxNCcpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0xMjg0LDE5ICsxMTg0LDE5IEBAIGRl
c2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIHJlcXVlc3RzWzBd
LnJlc29sdmUoW10pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICByZXF1ZXN0c1sxXS5yZXNvbHZlKHtbLTFd
OiBzYW1wbGVGaW5pc2hlZEJ1aWxkKCl9KTsKKyAgICAgICAgICAgICAgICByZXF1ZXN0c1sxXS5y
ZXNvbHZlKHNhbXBsZUZpbmlzaGVkQnVpbGQoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHBy
b21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKChlbnRyaWVzKSA9PiB7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChlbnRyaWVzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAg
bGV0IGVudHJ5ID0gZW50cmllc1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkg
aW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnlEZXByZWNhdGVkKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnkpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZE51bWJlcigpLCAxNzU1KTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuc2xhdmVOYW1lKCksICdBQlRlc3QtaVBhZC0w
Jyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkUmVxdWVzdElkKCks
IDE4OTM1KTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5LmlzUGVuZGluZygpKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5LmlzSW5Qcm9ncmVzcygpKTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQub2soZW50cnkuaGFzRmluaXNoZWQoKSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVp
bGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzL2J1aWxkcy8xNzU1Jyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvIy9idWlsZGVycy8xMDIvYnVpbGRzLzE3NTUnKTsKICAgICAgICAgICAgIH0pOwogICAg
ICAgICB9KTsKIApAQCAtMTMwNiw0NCArMTIwNiw0NCBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5j
ZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBsZXQgcHJvbWlzZSA9IHN5bmNlci5wdWxsQnVpbGRi
b3QoNSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKIAot
ICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZShbc2FtcGxlUGVuZGluZ0J1aWxkKDEyMyld
KTsKKyAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoc2FtcGxlUGVuZGluZ0J1aWxkKDEy
MykpOwogCiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDIpOwotICAgICAgICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoe1stMV06IHNhbXBs
ZUZpbmlzaGVkQnVpbGQoKSwgWy0yXTogeydlcnJvcic6ICdOb3QgYXZhaWxhYmxlJ30sIFstNF06
IHNhbXBsZUluUHJvZ3Jlc3NCdWlsZCgpfSk7CisgICAgICAgICAgICAgICAgcmVxdWVzdHNbMV0u
cmVzb2x2ZSh7ImJ1aWxkcyI6IFtzYW1wbGVGaW5pc2hlZEJ1aWxkRGF0YSgpLCBzYW1wbGVJblBy
b2dyZXNzQnVpbGREYXRhKCldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHByb21pc2U7CiAg
ICAgICAgICAgICB9KS50aGVuKChlbnRyaWVzKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChlbnRyaWVzLmxlbmd0aCwgMyk7CiAKICAgICAgICAgICAgICAgICBsZXQgZW50
cnkgPSBlbnRyaWVzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5j
ZW9mIEJ1aWxkYm90QnVpbGRFbnRyeURlcHJlY2F0ZWQpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeSk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkTnVtYmVyKCksIG51bGwpOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChlbnRyeS5zbGF2ZU5hbWUoKSwgbnVsbCk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkUmVxdWVzdElkKCksIDEyMyk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0Lm9rKGVudHJ5LmlzUGVuZGluZygpKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQub2soIWVudHJ5LmlzSW5Qcm9ncmVzcygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2so
IWVudHJ5Lmhhc0ZpbmlzaGVkKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRy
eS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1
bkJlbmNobWFyay1UZXN0cy8nKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnku
dXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTIzJyk7CiAK
ICAgICAgICAgICAgICAgICBlbnRyeSA9IGVudHJpZXNbMV07Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5RGVwcmVjYXRlZCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVu
dHJ5KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGROdW1iZXIoKSwg
NjE0KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuc2xhdmVOYW1lKCksICdB
QlRlc3QtaVBhZC0wJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxk
UmVxdWVzdElkKCksIDE2NzMzKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5Lmlz
UGVuZGluZygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkuaXNJblByb2dyZXNz
KCkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaGFzRmluaXNoZWQoKSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzL2J1aWxkcy82
MTQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8v
YnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEwMi9idWlsZHMvNjE0Jyk7CiAKICAgICAgICAg
ICAgICAgICBlbnRyeSA9IGVudHJpZXNbMl07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVu
dHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5RGVwcmVjYXRlZCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5KTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGROdW1iZXIoKSwgMTc1NSk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnNsYXZlTmFtZSgpLCAnQUJUZXN0LWlQ
YWQtMCcpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZFJlcXVlc3RJ
ZCgpLCAxODkzNSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc1BlbmRpbmco
KSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc0luUHJvZ3Jlc3MoKSk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5Lmhhc0ZpbmlzaGVkKCkpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
L2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy9idWlsZHMvMTc1NScpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnLyMvYnVpbGRlcnMvMTAyL2J1aWxkcy8xNzU1Jyk7CiAgICAgICAgICAgICB9KTsK
ICAgICAgICAgfSk7CiAKQEAgLTEzNjMsNyArMTI2Myw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5
bmNlcicsICgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGVudHJpZXMu
bGVuZ3RoLCA0KTsKIAogICAgICAgICAgICAgICAgIGxldCBlbnRyeSA9IGVudHJpZXNbMF07Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVu
dHJ5RGVwcmVjYXRlZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNl
b2YgQnVpbGRib3RCdWlsZEVudHJ5KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50
cnkuYnVpbGROdW1iZXIoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVu
dHJ5LnNsYXZlTmFtZSgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50
cnkuYnVpbGRSZXF1ZXN0SWQoKSwgMTIzKTsKQEAgLTEzNzMsNyArMTI3Myw3IEBAIGRlc2NyaWJl
KCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
ZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9BQlRlc3QtaVBh
ZC1SdW5CZW5jaG1hcmstVGVzdHMvJyk7CiAKICAgICAgICAgICAgICAgICBlbnRyeSA9IGVudHJp
ZXNbMV07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRi
b3RCdWlsZEVudHJ5RGVwcmVjYXRlZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5
IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5KTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZW50cnkuYnVpbGROdW1iZXIoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGVudHJ5LnNsYXZlTmFtZSgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZW50cnkuYnVpbGRSZXF1ZXN0SWQoKSwgNDU2KTsKQEAgLTEzODMsNyArMTI4Myw3IEBA
IGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9B
QlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvJyk7CiAKICAgICAgICAgICAgICAgICBlbnRy
eSA9IGVudHJpZXNbMl07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNl
b2YgQnVpbGRib3RCdWlsZEVudHJ5RGVwcmVjYXRlZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5KTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGROdW1iZXIoKSwgNjE0KTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZW50cnkuc2xhdmVOYW1lKCksICdBQlRlc3QtaVBhZC0wJyk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkUmVxdWVzdElkKCksIDE2NzMzKTsK
QEAgLTEzOTMsNyArMTI5Myw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQu
d2Via2l0Lm9yZy9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVpbGRz
LzYxNCcpOwogCiAgICAgICAgICAgICAgICAgZW50cnkgPSBlbnRyaWVzWzNdOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeURlcHJl
Y2F0ZWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxk
Ym90QnVpbGRFbnRyeSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxk
TnVtYmVyKCksIDE3NTUpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5zbGF2
ZU5hbWUoKSwgJ0FCVGVzdC1pUGFkLTAnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
ZW50cnkuYnVpbGRSZXF1ZXN0SWQoKSwgMTg5MzUpOwpAQCAtMTQxMCwyNCArMTMxMCwyNCBAQCBk
ZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBsZXQgcHJvbWlz
ZSA9IHN5bmNlci5wdWxsQnVpbGRib3QoNSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAxKTsKIAotICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZShbc2Ft
cGxlUGVuZGluZ0J1aWxkKCldKTsKKyAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoc2Ft
cGxlUGVuZGluZ0J1aWxkKCkpOwogCiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29s
dmUoe1stMV06IHNhbXBsZUluUHJvZ3Jlc3NCdWlsZCgpfSk7CisgICAgICAgICAgICAgICAgcmVx
dWVzdHNbMV0ucmVzb2x2ZShzYW1wbGVJblByb2dyZXNzQnVpbGQoKSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHByb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKChlbnRyaWVzKSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJpZXMubGVuZ3RoLCAxKTsKIAogICAgICAg
ICAgICAgICAgIGxldCBlbnRyeSA9IGVudHJpZXNbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5RGVwcmVjYXRlZCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGROdW1iZXIoKSwgNjE0
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuc2xhdmVOYW1lKCksICdBQlRl
c3QtaVBhZC0wJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkUmVx
dWVzdElkKCksIDE2NzMzKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5LmlzUGVu
ZGluZygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkuaXNJblByb2dyZXNzKCkp
OwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaGFzRmluaXNoZWQoKSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzL2J1aWxkcy82MTQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEwMi9idWlsZHMvNjE0Jyk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSk7CiAKQEAgLTE0MzcsMjQgKzEzMzcsMjQgQEAgZGVzY3JpYmUoJ0J1aWxk
Ym90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgbGV0IHByb21pc2UgPSBzeW5jZXIucHVs
bEJ1aWxkYm90KDUpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MSk7CiAKLSAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoW3NhbXBsZVBlbmRpbmdCdWls
ZCgpXSk7CisgICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKHNhbXBsZVBlbmRpbmdCdWls
ZCgpKTsKIAogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAyKTsKLSAgICAgICAgICAgICAgICByZXF1ZXN0c1sxXS5yZXNvbHZlKHtbLTFdOiBzYW1w
bGVGaW5pc2hlZEJ1aWxkKDE2NzMzKX0pOworICAgICAgICAgICAgICAgIHJlcXVlc3RzWzFdLnJl
c29sdmUoc2FtcGxlRmluaXNoZWRCdWlsZCgxNjczMykpOwogICAgICAgICAgICAgICAgIHJldHVy
biBwcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoZW50cmllcykgPT4gewogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChlbnRyaWVzLmxlbmd0aCwgMSk7CiAKICAgICAgICAgICAgICAg
ICBsZXQgZW50cnkgPSBlbnRyaWVzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRy
eSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeURlcHJlY2F0ZWQpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeSk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkTnVtYmVyKCksIDE3NTUpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5zbGF2ZU5hbWUoKSwgJ0FCVGVzdC1pUGFk
LTAnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGRSZXF1ZXN0SWQo
KSwgMTY3MzMpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaXNQZW5kaW5nKCkp
OwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaXNJblByb2dyZXNzKCkpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeS5oYXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVpbGRzLzE3NTUnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Vi
a2l0Lm9yZy8jL2J1aWxkZXJzLzEwMi9idWlsZHMvMTc1NScpOwogICAgICAgICAgICAgfSk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTQ2NSwxOCArMTM2NSwyMyBAQCBkZXNjcmliZSgnQnVp
bGRib3RTeW5jZXInLCAoKSA9PiB7CiAKICAgICAgICAgICAgIGNvbnN0IHdhaXRGb3JSZXF1ZXN0
ID0gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgY29uc3QgcmVx
dWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwaG9uZSwgTW9ja01v
ZGVscy5zcGVlZG9tZXRlcik7Ci0gICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0RGVw
cmVjYXRlZChyZXF1ZXN0LCBbcmVxdWVzdF0sICdzb21lLXNsYXZlJyk7CisgICAgICAgICAgICBz
eW5jZXIuc2NoZWR1bGVSZXF1ZXN0KHJlcXVlc3QsIFtyZXF1ZXN0XSwgJ3NvbWUtc2xhdmUnKTsK
ICAgICAgICAgICAgIHJldHVybiB3YWl0Rm9yUmVxdWVzdC50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2J1aWxkZXJzL0FCVGVzdC1pUGhvbmUt
UnVuQmVuY2htYXJrLVRlc3RzL2ZvcmNlJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzBdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL0FCVGVzdC1pUGhvbmUt
UnVuQmVuY2htYXJrLVRlc3RzLUZvcmNlU2NoZWR1bGVyJyk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLm1ldGhvZCwgJ1BPU1QnKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzBdLmRhdGEsIHsKLSAgICAgICAgICAgICAgICAgICAg
J2J1aWxkX3JlcXVlc3RfaWQnOiAnMTY3MzMtJyArIE1vY2tNb2RlbHMuaXBob25lLmlkKCksCi0g
ICAgICAgICAgICAgICAgICAgICdkZXNpcmVkX2ltYWdlJzogJzEzQTQ1MicsCi0gICAgICAgICAg
ICAgICAgICAgICJvcGVuc291cmNlIjogIjE5NzQ2MyIsCi0gICAgICAgICAgICAgICAgICAgICdm
b3JjZXNjaGVkdWxlcic6ICdBQlRlc3QtaVBob25lLVJ1bkJlbmNobWFyay1UZXN0cy1Gb3JjZVNj
aGVkdWxlcicsCi0gICAgICAgICAgICAgICAgICAgICdzbGF2ZW5hbWUnOiAnc29tZS1zbGF2ZScs
Ci0gICAgICAgICAgICAgICAgICAgICd0ZXN0X25hbWUnOiAnc3BlZWRvbWV0ZXInCisgICAgICAg
ICAgICAgICAgICAgICdpZCc6ICcxNjczMy0nICsgTW9ja01vZGVscy5pcGhvbmUuaWQoKSwKKyAg
ICAgICAgICAgICAgICAgICAgJ2pzb25ycGMnOiAnMi4wJywKKyAgICAgICAgICAgICAgICAgICAg
J21ldGhvZCc6ICdmb3JjZScsCisgICAgICAgICAgICAgICAgICAgICdwYXJhbXMnOiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAnYnVpbGRfcmVxdWVzdF9pZCc6ICcxNjczMy0nICsgTW9ja01v
ZGVscy5pcGhvbmUuaWQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdkZXNpcmVkX2ltYWdl
JzogJzEzQTQ1MicsCisgICAgICAgICAgICAgICAgICAgICAgICAnZm9yY2VzY2hlZHVsZXInOiAn
QUJUZXN0LWlQaG9uZS1SdW5CZW5jaG1hcmstVGVzdHMtRm9yY2VTY2hlZHVsZXInLAorICAgICAg
ICAgICAgICAgICAgICAgICAgJ29wZW5zb3VyY2UnOiAnMTk3NDYzJywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICdzbGF2ZW5hbWUnOiAnc29tZS1zbGF2ZScsCisgICAgICAgICAgICAgICAgICAg
ICAgICAndGVzdF9uYW1lJzogJ3NwZWVkb21ldGVyJworICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC0xNTA0
LDkgKzE0MDksMTEgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAg
ICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01v
ZGVscy5zb21lUGxhdGZvcm0sIE1vY2tNb2RlbHMuc29tZVRlc3QpOwogICAgICAgICAgICAgICAg
IHN5bmNlci5zY2hlZHVsZVJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUocmVxdWVzdCwgW3JlcXVl
c3RdKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2J1aWxkZXJz
L3NvbWUlMjBidWlsZGVyL2ZvcmNlJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzBdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL3NvbWUlMjBidWlsZGVyLUZv
cmNlU2NoZWR1bGVyJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBd
Lm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVl
c3RzWzBdLmRhdGEsIHtpZDogJzE2NzMzLScgKyBNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybS5pZCgp
LCAnb3MnOiAnMTNBNDUyJywgJ3drJzogJzE5NzQ2Myd9KTsKKyAgICAgICAgICAgICAgICBjb25z
b2xlLmxvZygiKmRhdGE6IiwgcmVxdWVzdHNbMF0uZGF0YSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1swXS5kYXRhLCB7aWQ6ICcxNjczMy0nICsgTW9ja01vZGVs
cy5zb21lUGxhdGZvcm0uaWQoKSwgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScs
CisgICAgICAgICAgICAgICAgICAgICdwYXJhbXMnOiB7aWQ6ICcxNjczMy0nICsgTW9ja01vZGVs
cy5zb21lUGxhdGZvcm0uaWQoKSwgJ2ZvcmNlc2NoZWR1bGVyJzogJ3NvbWUlMjBidWlsZGVyLUZv
cmNlU2NoZWR1bGVyJywgJ29zJzogJzEzQTQ1MicsICd3ayc6ICcxOTc0NjMnfX0pOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0xNTE3LDkgKzE0MjQsMTAgQEAgZGVzY3JpYmUo
J0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3Qg
PSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5zb21lUGxhdGZvcm0sIE1vY2tN
b2RlbHMuc29tZVRlc3QpOwogICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3RJ
bkdyb3VwSWZBdmFpbGFibGUocmVxdWVzdCwgW3JlcXVlc3RdKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2ZvcmNlJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9hcGkvdjIv
Zm9yY2VzY2hlZHVsZXJzL3NvbWUlMjBidWlsZGVyLUZvcmNlU2NoZWR1bGVyJyk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzBdLmRhdGEsIHtpZDogJzE2NzMz
LScgKyBNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybS5pZCgpLCAnb3MnOiAnMTNBNDUyJywgJ3drJzog
JzE5NzQ2Myd9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzBd
LmRhdGEsIHtpZDogJzE2NzMzLScgKyBNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybS5pZCgpLCAnanNv
bnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgCisgICAgICAgICAgICAgICAgICAgICdw
YXJhbXMnOiB7aWQ6ICcxNjczMy0nICsgTW9ja01vZGVscy5zb21lUGxhdGZvcm0uaWQoKSwgJ2Zv
cmNlc2NoZWR1bGVyJzogJ3NvbWUlMjBidWlsZGVyLUZvcmNlU2NoZWR1bGVyJywgJ29zJzogJzEz
QTQ1MicsICd3ayc6ICcxOTc0NjMnfX0pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwog
CkBAIC0xNTM5LDcgKzE0NDcsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7
CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVz
dChNb2NrTW9kZWxzLmlwaG9uZSwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CiAgICAgICAgICAg
ICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShyZXF1ZXN0LCBb
cmVxdWVzdF0sIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmws
ICcvYnVpbGRlcnMvQUJUZXN0LWlQaG9uZS1SdW5CZW5jaG1hcmstVGVzdHMvZm9yY2UnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2FwaS92Mi9mb3Jj
ZXNjaGVkdWxlcnMvQUJUZXN0LWlQaG9uZS1SdW5CZW5jaG1hcmstVGVzdHMtRm9yY2VTY2hlZHVs
ZXInKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0ubWV0aG9kLCAn
UE9TVCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtMTU0Nyw3ICsxNDU1LDcg
QEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICBpdCgnc2hvdWxk
IHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVpbGRlciBvbmx5IGhhcyBmaW5pc2hlZCBidWlsZHMgb24g
dGhlIG1hdGNoaW5nIHNsYXZlJywgKCkgPT4gewogICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1
aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygp
LCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKLSAgICAgICAgICAgIHB1bGxCdWlsZGJvdFdp
dGhBc3NlcnRpb24oc3luY2VyLCBbXSwge1stMV06IHNhbXBsZUZpbmlzaGVkQnVpbGQoKX0pLnRo
ZW4oKCkgPT4geworICAgICAgICAgICAgcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIs
IFtdLCBzYW1wbGVGaW5pc2hlZEJ1aWxkKCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFk
LCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKICAgICAgICAgICAgICAgICBzeW5jZXIuc2NoZWR1
bGVSZXF1ZXN0SW5Hcm91cElmQXZhaWxhYmxlKHJlcXVlc3QsIFtyZXF1ZXN0XSwgbnVsbCk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CkBAIC0xNTU5
LDcgKzE0NjcsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAg
IGl0KCdzaG91bGQgbm90IHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVpbGRlciBoYXMgYSBwZW5kaW5n
IGJ1aWxkIG9uIHRoZSBtYWNoaW5nIHNsYXZlJywgKCkgPT4gewogICAgICAgICAgICAgbGV0IHN5
bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlP
U0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKLSAgICAgICAgICAgIHB1bGxC
dWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbc2FtcGxlUGVuZGluZ0J1aWxkKCldLCB7fSku
dGhlbigoKSA9PiB7CisgICAgICAgICAgICBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNl
ciwgc2FtcGxlUGVuZGluZ0J1aWxkKCksIHt9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBh
ZCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVk
dWxlUmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShyZXF1ZXN0LCBbcmVxdWVzdF0sIG51bGwpOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDApOwpAQCAtMTU2
OSw3ICsxNDc3LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAg
ICBpdCgnc2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVpbGRlciBvbmx5IGhhcyBhIHBlbmRp
bmcgYnVpbGQgb24gYSBub24tbWFjaGluZyBzbGF2ZScsICgpID0+IHsKICAgICAgICAgICAgIGxl
dCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1w
bGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogCi0gICAgICAgICAgICBy
ZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtzYW1wbGVQZW5kaW5nQnVp
bGQoMSwgMSwgJ2Fub3RoZXItc2xhdmUnKV0sIHt9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAg
IHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgc2FtcGxlUGVuZGluZ0J1
aWxkKDEsIDEsICdhbm90aGVyLXNsYXZlJyksIHt9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
ICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMu
aXBhZCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CiAgICAgICAgICAgICAgICAgc3luY2VyLnNj
aGVkdWxlUmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShyZXF1ZXN0LCBbcmVxdWVzdF0sIG51bGwp
OwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwpAQCAt
MTU3OSw3ICsxNDg3LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAg
ICAgICBpdCgnc2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVpbGRlciBvbmx5IGhhcyBhbiBp
bi1wcm9ncmVzcyBidWlsZCBvbiB0aGUgbWF0Y2hpbmcgc2xhdmUnLCAoKSA9PiB7CiAgICAgICAg
ICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQ
SSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAotICAgICAg
ICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge1stMV06
IHNhbXBsZUluUHJvZ3Jlc3NCdWlsZCgpfSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICByZXR1
cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCBzYW1wbGVJblByb2dyZXNz
QnVpbGQoKSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNy
ZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRv
bWV0ZXIpOwogICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3RJbkdyb3VwSWZB
dmFpbGFibGUocmVxdWVzdCwgW3JlcXVlc3RdLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKQEAgLTE1ODksNyArMTQ5Nyw3IEBAIGRlc2Ny
aWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgaXQoJ3Nob3VsZCBzY2hlZHVs
ZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgaGFzIGFuIGluLXByb2dyZXNzIGJ1aWxkIG9uIGFub3RoZXIg
c2xhdmUnLCAoKSA9PiB7CiAgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1l
VG9JRE1hcCgpKVsxXTsKIAotICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3Nl
cnRpb24oc3luY2VyLCBbXSwge1stMV06IHNhbXBsZUluUHJvZ3Jlc3NCdWlsZCgnb3RoZXItc2xh
dmUnKX0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhB
c3NlcnRpb24oc3luY2VyLCBbXSwgc2FtcGxlSW5Qcm9ncmVzc0J1aWxkKCdvdGhlci1zbGF2ZScp
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2Ft
cGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7
CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdEluR3JvdXBJZkF2YWlsYWJs
ZShyZXF1ZXN0LCBbcmVxdWVzdF0sIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDEpOwpAQCAtMTYxMSw5ICsxNTE5LDkgQEAgZGVzY3JpYmUoJ0J1
aWxkYm90U3luY2VyJywgKCkgPT4gewogCiAgICAgICAgICAgICBwdWxsQnVpbGRib3RXaXRoQXNz
ZXJ0aW9uKHN5bmNlciwgW10sIHt9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBsZXQg
cmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tN
b2RlbHMuc3BlZWRvbWV0ZXIpOwotICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVl
c3REZXByZWNhdGVkKHJlcXVlc3QsIFtyZXF1ZXN0XSwgJ0FCVGVzdC1pUGFkLTAnKTsKKyAgICAg
ICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0KHJlcXVlc3QsIFtyZXF1ZXN0XSwgJ0FC
VGVzdC1pUGFkLTAnKTsKICAgICAgICAgICAgICAgICByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVp
bGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7Ci0gICAg
ICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdERlcHJlY2F0ZWQocmVxdWVzdCwgW3Jl
cXVlc3RdLCAnQUJUZXN0LWlQYWQtMScpOworICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVs
ZVJlcXVlc3QocmVxdWVzdCwgW3JlcXVlc3RdLCAnQUJUZXN0LWlQYWQtMScpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBs
ZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwpA
QCAtMTYyOSw3ICsxNTM3LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewog
CiAgICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtd
LCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgbGV0IHJlcXVlc3QgPSBjcmVhdGVT
YW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVy
KTsKLSAgICAgICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0RGVwcmVjYXRlZChyZXF1
ZXN0LCBbcmVxdWVzdF0sICdBQlRlc3QtaVBhZC0wJyk7CisgICAgICAgICAgICAgICAgc3luY2Vy
LnNjaGVkdWxlUmVxdWVzdChyZXF1ZXN0LCBbcmVxdWVzdF0sICdBQlRlc3QtaVBhZC0wJyk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CiAgICAgICAg
ICAgICAgICAgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlw
YWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpCiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVk
dWxlUmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShyZXF1ZXN0LCBbcmVxdWVzdF0sICdBQlRlc3Qt
aVBhZC0xJyk7CkBAIC0xNjQyLDcgKzE1NTAsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXIn
LCAoKSA9PiB7CiAKICAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9u
KHN5bmNlciwgW10sIHt9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBsZXQgcmVxdWVz
dCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybSwgTW9j
a01vZGVscy5zb21lVGVzdCk7Ci0gICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVz
dERlcHJlY2F0ZWQocmVxdWVzdCwgW3JlcXVlc3RdLCBudWxsKTsKKyAgICAgICAgICAgICAgICBz
eW5jZXIuc2NoZWR1bGVSZXF1ZXN0KHJlcXVlc3QsIFtyZXF1ZXN0XSwgbnVsbCk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAg
ICAgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLnNvbWVQbGF0
Zm9ybSwgTW9ja01vZGVscy5zb21lVGVzdCk7CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVk
dWxlUmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShyZXF1ZXN0LCBbcmVxdWVzdF0sIG51bGwpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332743</attachid>
            <date>2018-01-30 23:02:39 -0800</date>
            <delta_ts>2018-01-31 11:01:20 -0800</delta_ts>
            <desc>Patch to switch to Buildbot 0.9 - WIP</desc>
            <filename>buildbot_perf_update_v2.patch</filename>
            <type>text/plain</type>
            <size>176012</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvQ2hhbmdlTG9nCmluZGV4IDBkZmZjMjdjN2RmLi4wZGI3ODQxODJl
NCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZworKysgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTgt
MDEtMjkgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgorCisgICAgICAgIFVw
ZGF0ZSBQZXJmIGJ1aWxkYm90IHN5bmNpbmcgc2NyaXB0cyBmb3IgQnVpbGRib3QgMC45CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzU5NjkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRvb2xzL2pzL2J1
aWxkYm90LXRyaWdnZXJhYmxlLmpzOgorICAgICAgICAoQnVpbGRib3RUcmlnZ2VyYWJsZS5wcm90
b3R5cGUuaW5pdFN5bmNlcnMpOiBTd2l0Y2ggZnJvbSBEZXByZWNhdGVkIHZlcnNpb24gdG8gbmV3
IHZlcnNpb24gb2YgZ2V0QnVpbGRlck5hbWVUb0lETWFwLgorICAgICAgICAqIHRvb2xzL2pzL2J1
aWxkYm90LXN5bmNlci5qczoKKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLnByb3RvdHlwZS5zY2hl
ZHVsZVJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUpOiBTd2l0Y2ggZnJvbSBEZXByZWNhdGVkIHZl
cnNpb24gdG8gbmV3IHZlcnNpb24gb2Ygc2NoZWR1bGVSZXF1ZXN0LgorICAgICAgICAoQnVpbGRi
b3RTeW5jZXIucHJvdG90eXBlLnB1bGxCdWlsZGJvdCk6IFN3aXRjaCBmcm9tIERlcHJlY2F0ZWQg
dmVyc2lvbiB0byBuZXcgdmVyc2lvbiBvZiBwYXRoRm9yUGVuZGluZ0J1aWxkcywgX3B1bGxSZWNl
bnRCdWlsZHMgCisgICAgICAgIGFuZCBCdWlsZGJvdEJ1aWxkRW50cnkuIFBhcnNlIHRoZSBwZW5k
aW5nIGJ1aWxkLXJlcXVlc3RzIGRhdGEgaW4gQnVpbGRib3QgMC45IGZvcm1hdC4KKyAgICAgICAg
KiB1bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qczogVXBkYXRlZCBhcyBwZXIgQnVp
bGRib3QgMC45IGNvZGUuCisgICAgICAgICogc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRy
aWdnZXJhYmxlLXRlc3RzLmpzOiBXSVAuCisgICAgICAgICogc2VydmVyLXRlc3RzL3Rvb2xzLXN5
bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanM6IFdJUC4KKyAgICAgICAgKiBzZXJ2ZXIt
dGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qczoKKyAgICAgICAgKE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwpOiBNZXRob2QgdG8gY29uc3RydWN0IHBlbmRpbmdCdWlsZHNVcmwgaW4gQnVpbGRi
b3QgMC45IGZvcm1hdC4KKyAgICAgICAgKE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCk6IERpdHRv
IGZvciByZWNlbnRCdWlsZHNVcmwuCisKIDIwMTgtMDEtMjQgIERld2VpIFpodSAgPGRld2VpX3po
dUBhcHBsZS5jb20+CiAKICAgICAgICAgQ2hlY2sgZXhpc3RlbmNlIG9mICdub2RlX21vZHVsZXNf
ZGlyJyBiZWZvcmUgY3JlYXRpbmcgaXQuCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMKaW5kZXggYmUx
YzczNDk5NzUuLmJhMzI4OWNmZTYyIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMKKysrIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzCkBAIC0xOSw2
ICsxOSw4IEBAIE1vY2tEYXRhID0gewogICAgIHNoYXJlZFJlcG9zaXRvcnlJZCgpIHsgcmV0dXJu
IDE0OyB9LAogICAgIGJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCkge3JldHVybiAnL2pz
b24vYnVpbGRlcnMnfSwKICAgICBidWlsZGJvdEJ1aWxkZXJzVVJMKCkge3JldHVybiAnL2FwaS92
Mi9idWlsZGVycyd9LAorICAgIHBlbmRpbmdCdWlsZHNVcmw6IGZ1bmN0aW9uIChidWlsZGVySWQp
IHsgcmV0dXJuIGAvYXBpL3YyL2J1aWxkZXJzLyR7YnVpbGRlcklkfS9idWlsZHJlcXVlc3RzP2Nv
bXBsZXRlPWZhbHNlJmNsYWltZWQ9ZmFsc2VgOyB9LAorICAgIHJlY2VudEJ1aWxkc1VybDogZnVu
Y3Rpb24gKGJ1aWxkZXJJZCwgY291bnQpIHsgcmV0dXJuIGAvYXBpL3YyL2J1aWxkZXJzLyR7YnVp
bGRlcklkfS9idWlsZHM/bGltaXQ9JHtjb3VudH0mb3JkZXI9LW51bWJlciZwcm9wZXJ0eT0qYDsg
fSwKICAgICBhZGRNb2NrQ29uZmlndXJhdGlvbjogZnVuY3Rpb24gKGRiKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIFByb21pc2UuYWxsKFsKQEAgLTE4MCw3ICsxODIsOCBAQCBNb2NrRGF0YSA9IHsK
ICAgICAgICAgICAgICAgICAnc29tZS10ZXN0Jzogeyd0ZXN0JzogWydzb21lIHRlc3QnXX0KICAg
ICAgICAgICAgIH0sCiAgICAgICAgICAgICAnYnVpbGRlcnMnOiB7Ci0gICAgICAgICAgICAgICAg
J2J1aWxkZXItMSc6IHsnYnVpbGRlcic6ICdzb21lLWJ1aWxkZXItMSd9LAorICAgICAgICAgICAg
ICAgICdidWlsZGVyLTEnOiB7J2J1aWxkZXInOiAnc29tZS1idWlsZGVyLTEnLAorICAgICAgICAg
ICAgICAgICAgICAgcHJvcGVydGllczoge2ZvcmNlc2NoZWR1bGVyOiAnZm9yY2Utc29tZS1idWls
ZGVyLTEnfX0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAndGVzdENvbmZpZ3VyYXRpb25z
JzogWwogICAgICAgICAgICAgICAgIHsKQEAgLTIxMCw4ICsyMTMsOCBAQCBNb2NrRGF0YSA9IHsK
ICAgICAgICAgICAgICAgICAnc29tZS10ZXN0Jzogeyd0ZXN0JzogWydzb21lIHRlc3QnXX0sCiAg
ICAgICAgICAgICB9LAogICAgICAgICAgICAgJ2J1aWxkZXJzJzogewotICAgICAgICAgICAgICAg
ICdidWlsZGVyLTEnOiB7J2J1aWxkZXInOiAnc29tZS1idWlsZGVyLTEnfSwKLSAgICAgICAgICAg
ICAgICAnYnVpbGRlci0yJzogeydidWlsZGVyJzogJ3NvbWUgYnVpbGRlciAyJ30sCisgICAgICAg
ICAgICAgICAgJ2J1aWxkZXItMSc6IHsnYnVpbGRlcic6ICdzb21lLWJ1aWxkZXItMScsIHByb3Bl
cnRpZXM6IHtmb3JjZXNjaGVkdWxlcjogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319LAorICAgICAg
ICAgICAgICAgICdidWlsZGVyLTInOiB7J2J1aWxkZXInOiAnc29tZSBidWlsZGVyIDInLCBwcm9w
ZXJ0aWVzOiB7Zm9yY2VzY2hlZHVsZXI6ICdmb3JjZS1zb21lLWJ1aWxkZXItMid9fSwKICAgICAg
ICAgICAgIH0sCiAgICAgICAgICAgICAndGVzdENvbmZpZ3VyYXRpb25zJzogWwogICAgICAgICAg
ICAgICAgIHsKQEAgLTI3NiwxMCArMjc5LDM0IEBAIE1vY2tEYXRhID0gewogICAgICAgICAgICAg
XQogICAgICAgICB9CiAgICAgfSwKKyAgICBwZW5kaW5nQnVpbGREYXRhKG9wdGlvbnMpCisgICAg
eworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgImJ1aWxkZXJpZCI6IG9wdGlvbnMuYnVp
bGRlcklkIHx8IDIsCisgICAgICAgICAgICAiYnVpbGRyZXF1ZXN0aWQiOiBvcHRpb25zLmJ1aWxk
UmVxdWVzdElkIHx8IDE2NzMzLAorICAgICAgICAgICAgImJ1aWxkc2V0aWQiOiA4OTQ3MjAsCisg
ICAgICAgICAgICAiY2xhaW1lZCI6IGZhbHNlLAorICAgICAgICAgICAgImNsYWltZWRfYXQiOiBu
dWxsLAorICAgICAgICAgICAgImNsYWltZWRfYnlfbWFzdGVyaWQiOiBudWxsLAorICAgICAgICAg
ICAgImNvbXBsZXRlIjogZmFsc2UsCisgICAgICAgICAgICAiY29tcGxldGVfYXQiOiBudWxsLAor
ICAgICAgICAgICAgInByaW9yaXR5IjogMCwKKyAgICAgICAgICAgICJyZXN1bHRzIjogLTEsCisg
ICAgICAgICAgICAic3VibWl0dGVkX2F0Ijogb3B0aW9ucy5idWlsZFRpbWUgfHwgMTQ1ODcwNDk4
MywKKyAgICAgICAgICAgICJ3YWl0ZWRfZm9yIjogZmFsc2UKKyAgICAgICAgfTsKKyAgICB9LAog
ICAgIHBlbmRpbmdCdWlsZChvcHRpb25zKQogICAgIHsKICAgICAgICAgb3B0aW9ucyA9IG9wdGlv
bnMgfHwge307CiAgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAiYnVpbGRyZXF1ZXN0cyI6
IFt0aGlzLnBlbmRpbmdCdWlsZERhdGEob3B0aW9ucyldCisgICAgICAgIH07CisgICAgfSwKKyAg
ICBwZW5kaW5nQnVpbGREZXByZWNhdGVkKG9wdGlvbnMpCisgICAgeworICAgICAgICBvcHRpb25z
ID0gb3B0aW9ucyB8fCB7fTsKKyAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICdidWlsZGVy
TmFtZSc6IG9wdGlvbnMuYnVpbGRlciB8fCAnc29tZS1idWlsZGVyLTEnLAogICAgICAgICAgICAg
J2J1aWxkcyc6IFtdLAogICAgICAgICAgICAgJ3Byb3BlcnRpZXMnOiBbCkBAIC0yOTgsNTUgKzMy
NSw1NSBAQCBNb2NrRGF0YSA9IHsKICAgICAgICAgICAgIH0sCiAgICAgICAgIH07CiAgICAgfSwK
LSAgICBydW5uaW5nQnVpbGQob3B0aW9ucykKKyAgICBzYW1wbGVCdWlsZERhdGEob3B0aW9ucykK
ICAgICB7CiAgICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwogICAgICAgICByZXR1cm4g
ewotICAgICAgICAgICAgJ2J1aWxkZXJOYW1lJzogb3B0aW9ucy5idWlsZGVyIHx8ICdzb21lLWJ1
aWxkZXItMScsCi0gICAgICAgICAgICAnYnVpbGRzJzogW10sCi0gICAgICAgICAgICAncHJvcGVy
dGllcyc6IFsKLSAgICAgICAgICAgICAgICBbJ3drJywgb3B0aW9ucy53ZWJraXRSZXZpc2lvbiB8
fCAnMTkyNzM2J10sCi0gICAgICAgICAgICAgICAgWydvcycsIG9wdGlvbnMub3N4UmV2aXNpb24g
fHwgJzEwLjExIDE1QTI4NCddLAotICAgICAgICAgICAgICAgIFsnYnVpbGQtcmVxdWVzdC1pZCcs
IChvcHRpb25zLmJ1aWxkUmVxdWVzdElkIHx8IDcwMSkudG9TdHJpbmcoKSwgXQotICAgICAgICAg
ICAgXSwKLSAgICAgICAgICAgICdjdXJyZW50U3RlcCc6IHt9LAotICAgICAgICAgICAgJ2V0YSc6
IDcyMSwKLSAgICAgICAgICAgICdudW1iZXInOiBvcHRpb25zLmJ1aWxkTnVtYmVyIHx8IDEyNCwK
LSAgICAgICAgICAgICdzb3VyY2UnOiB7Ci0gICAgICAgICAgICAgICAgJ2JyYW5jaCc6ICcnLAot
ICAgICAgICAgICAgICAgICdjaGFuZ2VzJzogW10sCi0gICAgICAgICAgICAgICAgJ2NvZGViYXNl
JzogJ1dlYktpdCcsCi0gICAgICAgICAgICAgICAgJ2hhc1BhdGNoJzogZmFsc2UsCi0gICAgICAg
ICAgICAgICAgJ3Byb2plY3QnOiAnJywKLSAgICAgICAgICAgICAgICAncmVwb3NpdG9yeSc6ICcn
LAotICAgICAgICAgICAgICAgICdyZXZpc2lvbic6ICcnCi0gICAgICAgICAgICB9LAorICAgICAg
ICAgICAgImJ1aWxkZXJpZCI6IG9wdGlvbnMuYnVpbGRlcklkIHx8IDIsCisgICAgICAgICAgICAi
bnVtYmVyIjogIG9wdGlvbnMuYnVpbGROdW1iZXIgfHwgMTI0LCAKKyAgICAgICAgICAgICJidWls
ZHJlcXVlc3RpZCI6IChvcHRpb25zLmJ1aWxkUmVxdWVzdElkIHx8IDcwMSkudG9TdHJpbmcoKSwK
KyAgICAgICAgICAgICJjb21wbGV0ZSI6IG9wdGlvbnMuaXNDb21wbGV0ZSwKKyAgICAgICAgICAg
ICJjb21wbGV0ZV9hdCI6IG51bGwsCisgICAgICAgICAgICAiYnVpbGRpZCI6IDQxODc0NCwKKyAg
ICAgICAgICAgICJtYXN0ZXJpZCI6IDEsCisgICAgICAgICAgICAicmVzdWx0cyI6IG51bGwsCisg
ICAgICAgICAgICAic3RhcnRlZF9hdCI6IDE1MTM3MjUxMDksCisgICAgICAgICAgICAic3RhdGVf
c3RyaW5nIjogImJ1aWxkaW5nIiwKKyAgICAgICAgICAgICJ3b3JrZXJpZCI6IDQxLAorICAgICAg
ICAgICAgInByb3BlcnRpZXMiOiB7CisgICAgICAgICAgICAgICAgIm9zIjogW29wdGlvbnMub3N4
UmV2aXNpb24gfHwgJzEwLjExIDE1QTI4NCcsICJVbmtub3duIl0sCisgICAgICAgICAgICAgICAg
IndrIjogW29wdGlvbnMud2Via2l0UmV2aXNpb24gfHwgJzE5MjczNicsICJVbmtub3duIl0sCisg
ICAgICAgICAgICAgICAgInByb2plY3QiOiBbJycsICJVbmtub3duIl0sCisgICAgICAgICAgICAg
ICAgInJlcG9zaXRvcnkiOiBbJycsICJVbmtub3duIl0sCisgICAgICAgICAgICAgICAgInJldmlz
aW9uIjogWycnLCAiVW5rbm93biJdLAorICAgICAgICAgICAgICAgICJzbGF2ZW5hbWUiOiBbb3B0
aW9ucy53b3JrZXJOYW1lIHx8ICJib3QyMDIiLCAiV29ya2VyIChkZXByZWNhdGVkKSJdLAorICAg
ICAgICAgICAgICAgICJ3b3JrZXJuYW1lIjogW29wdGlvbnMud29ya2VyTmFtZSB8fCAiYm90MjAy
IiwgIldvcmtlciIKKyAgICAgICAgICAgICAgICBdIAorICAgICAgICAgICAgfSAKKyAgICAgICAg
fTsgICAKKyAgICB9LAorICAgIHJ1bm5pbmdCdWlsZERhdGEob3B0aW9ucykKKyAgICB7CisgICAg
ICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OworICAgICAgICBvcHRpb25zLmlzQ29tcGxldGUg
PSBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRoaXMuc2FtcGxlQnVpbGREYXRhKG9wdGlvbnMpOwor
ICAgIH0sCisgICAgcnVubmluZ0J1aWxkKG9wdGlvbnMpCisgICAgeworICAgICAgICByZXR1cm4g
eworICAgICAgICAgICAgImJ1aWxkcyI6IFt0aGlzLnJ1bm5pbmdCdWlsZERhdGEob3B0aW9ucyld
CiAgICAgICAgIH07CiAgICAgfSwKLSAgICBmaW5pc2hlZEJ1aWxkKG9wdGlvbnMpCisgICAgZmlu
aXNoZWRCdWlsZERhdGEob3B0aW9ucykKICAgICB7CiAgICAgICAgIG9wdGlvbnMgPSBvcHRpb25z
IHx8IHt9OworICAgICAgICBvcHRpb25zLmlzQ29tcGxldGUgPSB0cnVlOworICAgICAgICByZXR1
cm4gdGhpcy5zYW1wbGVCdWlsZERhdGEob3B0aW9ucyk7CisgICAgfSwKKyAgICBmaW5pc2hlZEJ1
aWxkKG9wdGlvbnMpCisgICAgewogICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgJ2J1aWxk
ZXJOYW1lJzogb3B0aW9ucy5idWlsZGVyIHx8ICdzb21lLWJ1aWxkZXItMScsCi0gICAgICAgICAg
ICAnYnVpbGRzJzogW10sCi0gICAgICAgICAgICAncHJvcGVydGllcyc6IFsKLSAgICAgICAgICAg
ICAgICBbJ3drJywgb3B0aW9ucy53ZWJraXRSZXZpc2lvbiB8fCAnMTkxNjIyJ10sCi0gICAgICAg
ICAgICAgICAgWydvcycsIG9wdGlvbnMub3N4UmV2aXNpb24gfHwgJzEwLjExIDE1QTI4NCddLAot
ICAgICAgICAgICAgICAgIFsnYnVpbGQtcmVxdWVzdC1pZCcsIChvcHRpb25zLmJ1aWxkUmVxdWVz
dElkIHx8IDcwMCkudG9TdHJpbmcoKSwgXQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICdj
dXJyZW50U3RlcCc6IG51bGwsCi0gICAgICAgICAgICAnZXRhJzogbnVsbCwKLSAgICAgICAgICAg
ICdudW1iZXInOiBvcHRpb25zLmJ1aWxkTnVtYmVyIHx8IDEyMywKLSAgICAgICAgICAgICdzb3Vy
Y2UnOiB7Ci0gICAgICAgICAgICAgICAgJ2JyYW5jaCc6ICcnLAotICAgICAgICAgICAgICAgICdj
aGFuZ2VzJzogW10sCi0gICAgICAgICAgICAgICAgJ2NvZGViYXNlJzogJ1dlYktpdCcsCi0gICAg
ICAgICAgICAgICAgJ2hhc1BhdGNoJzogZmFsc2UsCi0gICAgICAgICAgICAgICAgJ3Byb2plY3Qn
OiAnJywKLSAgICAgICAgICAgICAgICAncmVwb3NpdG9yeSc6ICcnLAotICAgICAgICAgICAgICAg
ICdyZXZpc2lvbic6ICcnCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgJ3RpbWVzJzogWzAs
IDFdLAorICAgICAgICAgICAgImJ1aWxkcyI6IFt0aGlzLmZpbmlzaGVkQnVpbGREYXRhKG9wdGlv
bnMpXQogICAgICAgICB9OwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanMg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRy
aWdnZXJhYmxlLXRlc3RzLmpzCmluZGV4IGYzMzFmYmU1ZWNiLi5jY2IwYTNkYzBlZSAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1idWlsZGJv
dC10cmlnZ2VyYWJsZS10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzCkBAIC0zNiw3ICsz
Niw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3
b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IG5l
dyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9j
a1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9t
aXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5
bmNPbmNlKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJM
RGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0Rh
dGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKQEAgLTQ2LDI4ICs0NiwyOCBA
QCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCks
ICdwZW5kaW5nJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9q
c29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDIsIDIpKTsKICAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe1stMV06IE1v
Y2tEYXRhLnJ1bm5pbmdCdWlsZCgpLCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKCl9KTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9idWlsZGVy
cy9zb21lLWJ1aWxkZXItMS9mb3JjZScpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2Zv
cmNlLXNvbWUtYnVpbGRlci0xJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEw
LjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMid9KTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVp
bGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMikp
OwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZShbTW9j
a0RhdGEucGVuZGluZ0J1aWxkKCldKQogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s0XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSk7CiAg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKHtbLTFdOiBN
b2NrRGF0YS5ydW5uaW5nQnVpbGQoKSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCgpfSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7CkBAIC05MiwyNyArOTIsMjcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFi
bGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgbGV0IHNsYXZlSW5mbyA9IHtuYW1l
OiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBs
ZXQgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAg
ICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigo
KSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1
ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEu
YnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVp
bGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNv
bHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1
aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGlu
Z0J1aWxkcycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5n
QnVpbGQoKV0pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmws
ICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9
LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5ydW5u
aW5nQnVpbGQoKSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCgpfSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUt
YnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
MikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZShb
TW9ja0RhdGEucGVuZGluZ0J1aWxkKCldKQogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3Nl
bGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSk7
CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHtbLTFd
OiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoKSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCgp
fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7CkBAIC0xNDIsMjUgKzE0MiwyNSBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmln
Z2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBjb25zdCBzbGF2ZUluZm8g
PSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CiAgICAgICAgICAg
ICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcs
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2Vy
KTsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJz
KCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywg
TW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1
aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVl
c3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5i
dWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWlsZGVycy9zb21l
LWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUo
W01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDk5OX0pXSk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAn
R0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWls
ZHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMykpOwogICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29t
ZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoMiwgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMGJ1aWxkZXIlMjAyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKDMsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
QEAgLTE3MywxOSArMTczLDE5IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s1XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpKTsKICAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVp
bGRSZXF1ZXN0SWQ6IDk5OX0pXSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoMykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0u
cmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyIDIn
LCBidWlsZFJlcXVlc3RJZDogNzAwfSldKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCA5KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s3XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9i
dWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgyLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNv
bHZlKHt9KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRl
ciUyMDIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoMywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
OF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC0yMjMsNDMgKzIyMyw0MyBAQCBkZXNjcmliZSgn
QnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBsZXQg
c2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9Owog
ICAgICAgICAgICAgICAgIGxldCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxl
KGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZv
LCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5p
dFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAg
ICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0s
ICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0
YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1v
Y2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRl
cnMoKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxk
ZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
cmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSldKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVu
ZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgzKSk7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKFtdKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvanNvbi9idWls
ZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcvanNvbi9i
dWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10u
dXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMywgMikpOwogICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgNik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1i
dWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgy
KSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKFtN
b2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV0pOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzVdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9wZW5kaW5nQnVpbGRz
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDMpKTsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoW10pOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDgpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUt
YnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKDIsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzZdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgzLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s3XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1By
b21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKQEAgLTI5Nyw1MCArMjk3LDUwIEBA
IGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAn
cGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWls
ZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90
ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0g
dHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNl
KCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVj
YXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9j
a0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNl
dCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVy
bCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVp
bGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoMykpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikp
OwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7Wy0x
XTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIFstMl06IE1v
Y2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KX0pOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgzLCAyKSk7CiAg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA1KTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2J1
aWxkZXJzL3NvbWUtYnVpbGRlci0xL2ZvcmNlJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxl
cnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAnb3Mn
OiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAyJ30pOwogICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcvanNvbi9idWls
ZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVd
LnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMn0pXSk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbNl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL3Bl
bmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMykpOwogICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ucmVzb2x2ZShbXSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCAnL2pzb24vYnVp
bGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHti
dWlsZFJlcXVlc3RJZDogNzAxfSksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxk
UmVxdWVzdElkOiA3MDB9KX0pOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgzLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s4XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1By
b21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKQEAgLTM3OCwzMSArMzc4LDMxIEBA
IGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgICAgIGxldCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bh
c3N3b3JkJ307CiAgICAgICAgICAgICAgICAgbGV0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90
VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJ
LCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmln
Z2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVk
KCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
LCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVp
bGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCAn
L2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElk
OiA3MDB9KV0pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0x
JnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDIsIDIpKTsKICAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9qc29uL2J1
aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbM10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7Wy0xXTog
TW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSl9KTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
QEAgLTQ0MywyNSArNDQzLDI1IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3lu
Yy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCB0
cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAg
ICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+
IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RB
bmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWls
ZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVy
c0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRl
cnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDIpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3Bl
bmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOwogICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShbTW9ja0RhdGEucGVu
ZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAyfSldKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcv
anNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgzKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS5yZXNvbHZlKFtdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCA0KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9i
dWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgyLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNv
bHZlKHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwg
Wy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbM10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL2J1aWxk
cy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDMs
IDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUo
e30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKQEAgLTQ3NCwxOSArNDc0LDE5IEBAIGRl
c2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcvanNvbi9idWlsZGVy
cy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJl
c29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMn0pXSk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL3BlbmRp
bmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMykpOwogICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGlu
Z0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyIDInLCBidWlsZFJlcXVlc3RJZDogNzEwfSld
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA5KTsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmws
ICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9
LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5ydW5u
aW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRC
dWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCAnL2pzb24v
YnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicp
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDMsIDIpKTsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJl
dHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpAQCAtNTQzLDI1
ICs1NDMsMjUgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywg
cGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxl
ID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgc3lu
Y1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFi
bGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRl
cnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRl
ZCgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBN
b2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxk
cycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSk7CiAgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKFtdKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmws
ICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgzKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKFtdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVu
Z3RoLCA0KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXIt
MS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgyLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5y
ZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MTB9
KX0pOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIw
Mi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgzLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5y
ZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxk
ZXIgMicsIGJ1aWxkUmVxdWVzdElkOiA3MDB9KX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKQEAgLTU3MSwyNiArNTcxLDI2IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7J3drJzogJzE5MjczNicsICdvcyc6ICcxMC4xMSAxNUEy
ODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDEnfSk7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcv
YnVpbGRlcnMvc29tZS1idWlsZGVyLTEvZm9yY2UnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1
bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOwogICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5kYXRhLCB7J3drJzogJzE5MjczNicsICdv
cyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MTEnfSk7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKCdPSycpOwogICAgICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDgpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgJy9qc29uL2J1
aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Nl0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzExfSld
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s3XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIv
cGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgzKSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZlKFtNb2NrRGF0YS5w
ZW5kaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXIgMicsYnVpbGRSZXF1ZXN0SWQ6IDcw
MX0pXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMTApOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhd
LnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNl
bGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzhdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDIsIDIpKTsKICAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnJlc29sdmUoe1stMV06IE1vY2tEYXRh
LnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pfSk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0ubWV0aG9kLCAnR0VUJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0udXJs
LCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL2J1aWxkcy8/c2VsZWN0PS0xJnNl
bGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzldLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDMsIDIpKTsKICAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzldLnJlc29sdmUoe1stMV06IE1vY2tEYXRh
LnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlciAyJywgYnVpbGRSZXF1ZXN0SWQ6
IDcwMH0pfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CkBAIC02NDYsMjUgKzY0NiwyNSBAQCBkZXNjcmliZSgnQnVpbGRi
b3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBjb25zdCBzbGF2
ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CiAgICAg
ICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShj
b25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywg
bG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRT
eW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRh
LmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1
aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVz
b2x2ZShyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwg
TW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRl
ci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpKTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoW10pOwogICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0ubWV0aG9kLCAn
R0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgJy9q
c29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicp
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgyLCAyKSk7CiAgICAgICAgICAgICAgICAgcmVxdWVzdHNbMV0ucmVz
b2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzJdLnVybCwgJy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9mb3JjZScp
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS51cmwsICcvYXBpL3Yy
L2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOwogICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMl0uZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAnb3Mn
OiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAwJ30pOwogICAgICAgICAg
ICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZl
LCAxMCkpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC02NzQsMTMgKzY3NCwxMyBA
QCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10u
dXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
M10ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSld
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgNSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1s0XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3Nl
bGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbNF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikpOwogICAgICAgICAgICAg
ICAgIHJlcXVlc3RzWzRdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5j
UHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpAQCAtNzIzLDUzICs3MjMsNTMg
QEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6
ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90
VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJ
LCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmln
Z2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbMF0sICdH
RVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5t
b2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1
aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbMF0sICdHRVQnLCAn
L2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1swXSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMiksIFtdKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbMV0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0
PS0yJywKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1sx
XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSwKICAgICAgICAgICAgICAg
ICAgICAge1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0p
LCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZFJlcXVlc3RJZDogNzEwfSl9KTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJl
c29sdmUocmVxdWVzdHNbMl0sICdQT1NUJywgJy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9mb3Jj
ZScpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzJd
LCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScp
OwogICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMl0uZGF0YSwgeyd3
ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAn
NzAxJ30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1
ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lLWJ1
aWxkZXItMS9wZW5kaW5nQnVpbGRzJywKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5k
UmVzb2x2ZShyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMiks
CiAgICAgICAgICAgICAgICAgICAgIFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVz
dElkOiA3MDF9KV0pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA1KTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9z
b21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLAorICAgICAgICAgICAg
ICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKDIsIDIpLAogICAgICAgICAgICAgICAgICAgICB7Wy0xXTogTW9ja0Rh
dGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSksIFstMl06IE1vY2tEYXRhLmZp
bmlzaGVkQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MTB9KX0pOwogICAgICAgICAgICAgICAgIHJl
dHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+
IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RB
bmRSZXNvbHZlKHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VS
TERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkp
OworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzVdLCAn
R0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRi
b3RCdWlsZGVycygpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbNl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
c29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoMiksIFtdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRl
cnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywKKyAgICAgICAg
ICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSwKICAgICAgICAgICAgICAgICAgICAge1stMV06IE1v
Y2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBbLTJdOiBNb2NrRGF0
YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KX0pOwogICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA5KTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s4
XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJywg
W10pOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzhd
LCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSwgW10pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAxMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVz
dHNbOV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJywKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2
ZShyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSwKICAg
ICAgICAgICAgICAgICAgICAge1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1
ZXN0SWQ6IDcwMX0pLCBbLTJdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElk
OiA3MDB9KX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAg
ICAgIH0pOwpAQCAtNzg2LDM4ICs3ODYsMzggQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFi
bGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25h
bWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAg
IGNvbnN0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAg
ICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRo
ZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tE
YXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJv
dEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5k
UmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRi
b3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWls
ZGVyLTEvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSk7
CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKFtdKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcv
anNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTIn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSk7CiAgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2J1aWxkZXJzL3NvbWUtYnVp
bGRlci0xL2ZvcmNlJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1i
dWlsZGVyLTEnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0uZGF0YSwgeyd3ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEgMTVBMjg0
JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAxJ30pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCA0KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxk
ZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpKTsK
ICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoW01vY2tE
YXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pXSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzLmxlbmd0aCwgNSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2pzb24vYnVpbGRlcnMv
c29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9t
aXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC04NTUsMzEgKzg1NSwzMSBAQCBk
ZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
ICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bh
c3N3b3JkJ307CiAgICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRi
b3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVB
UEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRy
aWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgp
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0
ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAg
ICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tC
dWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQo
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmws
ICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLnJlc29sdmUoW10pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDIpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1
aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KDIsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29s
dmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
LnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmws
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgNCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVy
LTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoMiwgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10u
cmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC05MTIsMjUgKzkxMiwyNSBAQCBkZXNjcmliZSgnQnVp
bGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBjb25zdCBz
bGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CiAg
ICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJs
ZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5m
bywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmlu
aXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
LCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0Rh
dGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIGFz
c2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBN
b2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxk
ZXJzKCkpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWls
ZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
LnJlc29sdmUoW10pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDIsIDIpKTsKICAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvYnVp
bGRlcnMvc29tZS1idWlsZGVyLTEvZm9yY2UnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVy
cy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOwogICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5kYXRhLCB7J3drJzogJzE5MTYyMicsICdvcyc6
ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MTAnfSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKCdPSycpOwogICAgICAgICAg
ICAgfSk7CkBAIC0xMDAwLDcgKzEwMDAsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJs
ZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFt
ZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAgICAg
Y29uc3QgYnVpbGRib3RUcmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZp
ZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dn
ZXIpOwogICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlUHJvbWlzZSA9IGJ1aWxkYm90
VHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IGJ1aWxkYm90VHJpZ2dlcmFibGUu
dXBkYXRlVHJpZ2dlcmFibGUoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJl
c29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90
QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVw
cmVjYXRlZCgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VS
TCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJpZ2dlcmFibGVQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiByZWZl
dGNoTWFuaWZlc3QoKSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMSk7CkBAIC0xMDI3LDcgKzEwMjcsNyBAQCBkZXNj
cmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAg
ICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3
b3JkJ307CiAgICAgICAgICAgICAgICAgY29uc3QgYnVpbGRib3RUcmlnZ2VyYWJsZSA9IG5ldyBC
dWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1Jl
bW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdn
ZXJhYmxlUHJvbWlzZSA9IGJ1aWxkYm90VHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgp
ID0+IGJ1aWxkYm90VHJpZ2dlcmFibGUudXBkYXRlVHJpZ2dlcmFibGUoKSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXSwg
J0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRh
Lm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLCAnR0VUJywgTW9j
a0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVy
cygpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlcmFibGVQcm9taXNlOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiByZWZldGNoTWFuaWZlc3QoKSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMSk7CmRp
ZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5
bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanMK
aW5kZXggMWE1NzU1YTAxMWEuLjA2NGJjZTdjMzhjIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24t
dGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29s
cy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzCkBAIC0xNTQsNyArMTU0LDcgQEAg
ZnVuY3Rpb24gY3JlYXRlVHJpZ2dlcmFibGUoY29uZmlnID0gY29uZmlnV2l0aE9uZVRlc3RlclR3
b0J1aWxkZXJzKQogICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICB0cmlnZ2VyYWJsZSA9IG5l
dyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9j
a1JlbW90ZUFQSSwge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9LCBu
ZXcgTW9ja0xvZ2dlcik7CiAgICAgICAgIGNvbnN0IHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUu
aW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnVwZGF0ZVRyaWdnZXJhYmxlKCkp
OwotICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9j
a0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0Rh
dGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygp
KTsKICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICByZXR1cm4gc3luY1By
b21pc2U7CiAgICAgfSkudGhlbigoKSA9PiBNYW5pZmVzdC5mZXRjaCgpKS50aGVuKCgpID0+IHsK
QEAgLTI0OSwzMiArMjQ5LDMzIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgdGFza0lkID0gZmlyc3RUZXN0R3JvdXAudGFzaygpLmlkKCk7CiAg
ICAgICAgICAgICBhbm90aGVyVGFza0lkID0gc2Vjb25kVGVzdEdyb3VwLnRhc2soKS5pZCgpOwog
ICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4o
KCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNV
UkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgp
KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VU
JywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RC
dWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbTW9ja0RhdGEu
cGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSB0ZXN0ZXInLCBidWlsZFJlcXVlc3RJZDogNX0p
XSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9hbm90aGVyJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNSksIFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1
aWxkZXJJZDogNSwgYnVpbGRSZXF1ZXN0SWQ6IDV9KV0pOworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKDYpLCBbXSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWls
ZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7Ci0gICAgICAgICAgICAgICAgWy0xXTogTW9ja0Rh
dGEucnVubmluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSB0ZXN0ZXInLCBidWlsZFJlcXVlc3RJZDog
MX0pfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9hbm90aGVyJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0x
JnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDUsIDIpLAorICAgICAg
ICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiA1LCBidWlsZFJlcXVl
c3RJZDogMX0pKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDYsIDIpLCB7fSk7CiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYp
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCAnL2pz
b24vYnVpbGRlcnMvYW5vdGhlciUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJyxbXSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoNSksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg2KSwg
W10pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA4KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzZdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJywgewotICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLnJ1bm5p
bmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgdGVzdGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDV9KSwKLSAg
ICAgICAgICAgICAgICBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29t
ZSB0ZXN0ZXInLCBidWlsZFJlcXVlc3RJZDogMX0pCisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1
LCAyKSwgeworICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCisgICAgICAgICAgICAgICAgICAg
IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkZXJJZDogNSwgYnVpbGRSZXF1ZXN0SWQ6
IDV9KSwKKyAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1
aWxkZXJJZDogNSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KV0KICAgICAgICAgICAgIH0pOwotICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24v
YnVpbGRlcnMvYW5vdGhlciUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7
fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg2LCAyKSwge30pOwogICAgICAgICAgICAgcmV0
dXJuIHN5bmNQcm9taXNlOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CkBAIC0zNjMsNDEgKzM2
NCw0MSBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsK
IAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRo
ZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRl
cnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRl
ZCgpKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAn
R0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRi
b3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Myk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0g
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24v
YnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoNSksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgxKSwgW10p
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCBbXSk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0g
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTIn
LCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEm
c2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNSwgMiksIHt9KTsKKyAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKDEsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCg0LCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvZm9yY2Un
LCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwg
eyd3ayc6ICcxOTE2MjInLCAnd2stcGF0Y2gnOiBSZW1vdGVBUEkudXJsKCcvYXBpL3VwbG9hZGVk
LWZpbGUvMS5kYXQnKSwKLSAgICAgICAgICAgICAgICAnYnVpbGQtcmVxdWVzdC1pZCc6ICcxJywg
J2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdjaGVja2JveCc6ICdidWlsZC13
ayd9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAn
UE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcx
JywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOiB7CisgICAg
ICAgICAgICAgICAgJ3drJzogJzE5MTYyMicsICd3ay1wYXRjaCc6IFJlbW90ZUFQSS51cmwoJy9h
cGkvdXBsb2FkZWQtZmlsZS8xLmRhdCcpLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snLCAnYnVpbGQt
cmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcyd9fSk7
CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDEwKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycs
IFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLAotICAg
ICAgICAgICAgICAgIFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxk
ZXInLCBidWlsZFJlcXVlc3RJZDogMX0pXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxk
ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg1KSwgW10p
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDEpLAorICAgICAgICAgICAgICAgIFtNb2NrRGF0
YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KV0pOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCBbXSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7
Ci0gICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVyOiAn
c29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KQotICAgICAgICAgICAgfSk7Ci0gICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCAnL2pz
b24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMics
IHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwg
J0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1LCAyKSwge30pOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKDEsIDIpLAorICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWls
ZCh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDogMX0pCisgICAgICAgICAgICApOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKDQsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gc3lu
Y1Byb21pc2U7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRl
c3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKQEAgLTQxMSw3ICs0MTIsNyBAQCBk
ZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2Vy
dChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1
ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21l
JTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8x
L2J1aWxkcy8xMjQnKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVp
bGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1
ZXN0LmNvbW1pdFNldCgpOwpAQCAtNDQ4LDcgKzQ0OSw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxk
Ym90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1
aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxl
dGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRz
LzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMS9idWlsZHMvMTI0Jyk7CiAg
ICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKQEAgLTQ3Niw0MiArNDc3LDQ0IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rp
b24gKCkgewogCiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAg
ICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmln
Z2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0
ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0
YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkp
OwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhl
ciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCg1KSwgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDEpLCBbXSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoNCksIFtdKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIw
dGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAg
ICAgICAgICBbLTFdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWls
ZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KQotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoNSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KDEsIDIpLAorICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXJJ
ZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KQorICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKDQsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9idWlsZGVycy9zb21lJTIwYnVpbGRl
ci9mb3JjZScsICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2
XS5kYXRhLCB7J3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2Vz
Y2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJ30pOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywg
Jy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzInLCAnanNv
bnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAg
ICAgICAnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVk
dWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snfX0pOwogICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCAnL2pz
b24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoNSksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgxKSwg
W10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCBbXSk7CiAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKLSAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInLCB7Ci0gICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHti
dWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDJ9KSwKLSAgICAgICAgICAg
ICAgICBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVy
JywgYnVpbGRSZXF1ZXN0SWQ6IDF9KSwKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1LCAyKSwg
e30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDEsIDIpLCB7CisgICAgICAgICAgICAgICAg
J2J1aWxkcyc6IFsKKyAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0
YSh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDogMn0pLAorICAgICAgICAgICAgICAgICAg
ICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJ
ZDogMX0pXQogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVy
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCg0LCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JU
YXNrKHRhc2tJZCwgdHJ1ZSk7CkBAIC01MjUsNyArNTI4LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVp
bGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21w
bGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWls
ZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xL2J1aWxkcy8xMjQnKTsK
ICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNl
dCgpOwpAQCAtNTQyLDcgKzU0NSw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7
CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVu
bmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIv
YnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xL2J1aWxk
cy8xMjQnKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVy
QnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAtNTY0LDcgKzU2Nyw3IEBAIGRlc2NyaWJlKCdz
eW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVx
dWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0
KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxk
ZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMS9idWlsZHMv
MTI0Jyk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKQEAgLTU4MSw3ICs1ODQsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1
aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7
CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwo
KSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUy
MGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVy
cy8xL2J1aWxkcy8xMjQnKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1p
dFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAtNjM2LDQxICs2MzksNDIg
QEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAg
ICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgp
ID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJM
RGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcs
IE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVp
bGRlcnMoKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwot
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCAn
L2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCAnL2pzb24v
YnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgJy9qc29uL2J1aWxk
ZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKDUpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMSksIFtdKTsKKyAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCg0KSwgW10pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24v
YnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30p
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDUsIDIpLCB7fSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgxLCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwg
MiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2ZvcmNlJywgJ09L
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnd2sn
OiAnMTkxNjIyJywgJ3drLXBhdGNoJzogUmVtb3RlQVBJLnVybCgnL2FwaS91cGxvYWRlZC1maWxl
LzEuZGF0JyksCi0gICAgICAgICAgICAgICAgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMScsICdmb3Jj
ZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snLCAn
cGxhdGZvcm0tbmFtZSc6ICdzb21lIHBsYXRmb3JtJ30pOworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVs
ZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9k
JzogJ2ZvcmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAnd2snOiAnMTkxNjIyJywg
J3drLXBhdGNoJzogUmVtb3RlQVBJLnVybCgnL2FwaS91cGxvYWRlZC1maWxlLzEuZGF0JyksICdi
dWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRz
JywKKyAgICAgICAgICAgICAgICAnY2hlY2tib3gnOiAnYnVpbGQtd2snLCAncGxhdGZvcm0tbmFt
ZSc6ICdzb21lIHBsYXRmb3JtJ319KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxk
ZXIvcGVuZGluZ0J1aWxkcycsCi0gICAgICAgICAgICAgICAgW01vY2tEYXRhLnBlbmRpbmdCdWls
ZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSldKTsKLSAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgJy9qc29u
L2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKDUpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMSksCisg
ICAgICAgICAgICAgICAgW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiAxLCBidWls
ZFJlcXVlc3RJZDogMX0pXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNCksIFtdKTsKICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMTMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBd
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEm
c2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/
c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5y
dW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0p
Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzEyXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRz
Lz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDUs
IDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sx
MV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMSwgMiksCisgICAgICAgICAgICAg
ICAgTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAx
fSkKKyAgICAgICAgICAgICk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxMl0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiksIHt9KTsK
ICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUp
OwpAQCAtNjg0LDcgKzY4OCw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAg
ICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQu
d2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25z
dCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC03MjEsNyArNzI1LDcg
QEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBh
c3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxk
UmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVy
cy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWls
ZGVycy8xL2J1aWxkcy8xMjQnKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0g
YnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAtNzQ5LDQyICs3NTMsNDQgQEAgZGVzY3JpYmUo
J3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVzZXQoKTsKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5
bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWls
ZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVy
c0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEu
bW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0
KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRz
JywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtd
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDUpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoMSksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg0KSwgW10pOwogICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsK
LSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywg
Jy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0y
Jywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEm
c2VsZWN0PS0yJywgewotICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLmZpbmlzaGVkQnVp
bGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pCi0gICAgICAg
ICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVd
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0t
MSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1LCAyKSwge30pOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMSwgMiksCisgICAgICAgICAgICAgICAgTW9ja0RhdGEu
ZmluaXNoZWRCdWlsZCh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDogMX0pCisgICAgICAg
ICAgICApOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0s
ICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiksIHt9KTsKICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0g
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAn
L2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2ZvcmNlJywgJ09LJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJl
cXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hl
Y2tib3gnOiAnYnVpbGQtd2snLCAncGxhdGZvcm0tbmFtZSc6ICdzb21lIHBsYXRmb3JtJ30pOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywg
Jy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzInLCAnanNv
bnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAg
ICAgICAnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVk
dWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snLCAncGxhdGZv
cm0tbmFtZSc6ICdzb21lIHBsYXRmb3JtJ319KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVp
bGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDUpLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMSksIFtdKTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCg0KSwgW10pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rl
ci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAgICAgICAgICAg
ICAgIFstMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcics
IGJ1aWxkUmVxdWVzdElkOiAyfSksCi0gICAgICAgICAgICAgICAgWy0yXTogTW9ja0RhdGEuZmlu
aXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSks
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQn
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgxLCAyKSwgeworICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCisgICAgICAgICAg
ICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkZXJJZDogMSwgYnVpbGRS
ZXF1ZXN0SWQ6IDJ9KSwKKyAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWls
ZERhdGEoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KV0KICAgICAgICAgICAgIH0p
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1sxMl0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiksIHt9KTsKICAgICAg
ICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAt
Nzk4LDcgKzgwNCw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAg
YXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJr
aXQub3JnLyMvYnVpbGRlcnMvMS9idWlsZHMvMTI0Jyk7CiAgICAgICAgICAgICBhc3NlcnQubm90
RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0
IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTgxNSw3ICs4MjEsNyBA
QCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFz
c2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFv
dGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9i
dWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMS9idWlsZHMvMTI0Jyk7CiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAg
ICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKQEAgLTgzNyw3ICs4NDMsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgYXNz
ZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAg
ICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC04NTQsNyAr
ODYwLDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFz
c2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6
Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
J2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMS9idWlsZHMvMTI0Jyk7CiAgICAg
ICAgICAgICBhc3NlcnQubm90RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKQEAgLTkyNSw0NiArOTMxLDQ4IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxk
Ym90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyUm9vdHMu
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJSb290c1swXS5m
aWxlbmFtZSgpLCAncm9vdDQ2LmRhdCcpOwogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmln
Z2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcs
IE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tC
dWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VS
TCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVy
L3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5k
aW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdC
dWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNSksIFtdKTsKKyAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgxKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCBb
XSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWls
ZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7Ci0gICAgICAgICAgICAgICAgWy0xXTogTW9ja0Rh
dGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElk
OiAxfSksCi0gICAgICAgICAgICAgICAgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVp
bGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAyfSksCisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCg1LCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMSwgMiksIHsK
KyAgICAgICAgICAgICAgICAnYnVpbGRzJzogWworICAgICAgICAgICAgICAgICAgICBNb2NrRGF0
YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDogMX0pLAor
ICAgICAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRlcklk
OiAxLCBidWlsZFJlcXVlc3RJZDogMn0pXQogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2J1aWxkZXJzL3Nv
bWUlMjB0ZXN0ZXIvZm9yY2UnLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
cmVxdWVzdHNbNl0uZGF0YSwgeyd0ZXN0JzogJ3NvbWUtdGVzdCcsICd3ayc6ICcxOTE2MjInLCAn
YnVpbGQtcmVxdWVzdC1pZCc6ICczJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLXRlc3Rz
JywKLSAgICAgICAgICAgICAgICAncm9vdHMnOiBKU09OLnN0cmluZ2lmeShbe3VybDogZmlyc3RS
b290LnVybCgpfV0pfSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItdGVzdHMn
LCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwg
eydpZCc6ICczJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMn
OiB7CisgICAgICAgICAgICAgICAgJ3Rlc3QnOiAnc29tZS10ZXN0JywgJ3drJzogJzE5MTYyMics
ICdidWlsZC1yZXF1ZXN0LWlkJzogJzMnLCdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi10ZXN0
cycsICdyb290cyc6IEpTT04uc3RyaW5naWZ5KFt7dXJsOiBmaXJzdFJvb3QudXJsKCl9XSl9fSk7
CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDEwKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycs
IFsKLSAgICAgICAgICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21l
IHRlc3RlcicsIGJ1aWxkUmVxdWVzdElkOiAzfSksCisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
NSksIFsKKyAgICAgICAgICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDog
NSwgYnVpbGRSZXF1ZXN0SWQ6IDN9KSwKICAgICAgICAgICAgIF0pOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVy
JTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KDEpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5
XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNCksIFtdKTsKICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwot
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywg
Jy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0y
Jywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFd
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0x
JnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5maW5pc2hlZEJ1
aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KSwKLSAgICAg
ICAgICAgICAgICBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBi
dWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDJ9KSwKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1
LCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDEsIDIpLCB7CisgICAgICAgICAg
ICAgICAgJ2J1aWxkcyc6IFsKKyAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRC
dWlsZERhdGEoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSwKKyAgICAgICAgICAg
ICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkZXJJZDogMSwgYnVpbGRS
ZXF1ZXN0SWQ6IDJ9KV0KICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIw
YnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoNCwgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC05OTgsMzggKzEwMDYsNDEgQEAgZGVzY3JpYmUoJ3N5
bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgc3luY1Byb21p
c2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3lu
Y09uY2UoKSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sw
XSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tE
YXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RC
dWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFs
bChbTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpLCB1cGxvYWRSb290KDEsIDEyMyldKTsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxk
cycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFd
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBb
XSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsK
KyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg1KSwgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKDEpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNCksIFtdKTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0t
MicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRd
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0x
JnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVp
bGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMn0pLAotICAgICAg
ICAgICAgICAgIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1
aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pLAorICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNSwg
MiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRd
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDEsIDIpLCB7CisgICAgICAgICAgICAg
ICAgJ2J1aWxkcyc6IFsKKyAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxk
RGF0YSh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDogMn0pLAorICAgICAgICAgICAgICAg
ICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVl
c3RJZDogMX0pCisgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7Ci0gICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9z
b21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIl
MjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
NSksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzdd
LCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgxKSwgW10pOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKDQpLCBbXSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0
ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAg
ICAgICAgICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxk
ZXInLCBidWlsZFJlcXVlc3RJZDogMiwgYnVpbGROdW1iZXI6IDEwMDJ9KSwKLSAgICAgICAgICAg
ICAgICBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVy
JywgYnVpbGRSZXF1ZXN0SWQ6IDF9KSwKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDUsIDIpLCB7
fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMSwgMiksIHsKKyAgICAgICAgICAgICAgICAn
YnVpbGRzJzogWworICAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0
YSh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDogMiwgYnVpbGROdW1iZXI6IDEwMDJ9KSwK
KyAgICAgICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZGVy
SWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAxfSldCiAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDQsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4g
c3luY1Byb21pc2U7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKQEAgLTEwNTAsNyArMTA2MSw3
IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
YXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQo
IW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxk
LndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEwMDInKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6
Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMS9idWlsZHMvMTAwMicpOwogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwpAQCAtMTA4NCwzNiArMTA5NSwzNiBAQCBkZXNjcmliZSgnc3luYy1i
dWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9
IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25j
ZSgpKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAn
R0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEu
bW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxk
ZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0
ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVy
L3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVu
ZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg1KSwgW10pOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKDEpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
NCksIFtdKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/
c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVy
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVy
JTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7Ci0gICAgICAgICAgICAg
ICAgWy0xXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ290aGVyIGJ1aWxkZXIn
LCBidWlsZFJlcXVlc3RJZDogMSwgYnVpbGROdW1iZXI6IDMxMn0pLAotICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1LCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoMSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDQsIDIpLAorICAgICAg
ICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXJJZDogNCwgYnVpbGRSZXF1
ZXN0SWQ6IDEsIGJ1aWxkTnVtYmVyOiAzMTJ9KQorICAgICAgICAgICAgKTsKICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7Ci0g
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRl
cnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoNSksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgxKSwgW10pOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCBbXSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgJy9qc29u
L2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2Vs
ZWN0PS0yJywgewotICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQo
e2J1aWxkZXI6ICdvdGhlciBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkTnVtYmVy
OiAzMTJ9KSwKLSAgICAgICAgICAgIH0pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNSwgMiks
IHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwg
J0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgxLCAyKSwge30pOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKDQsIDIpLAorICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVp
bGQoe2J1aWxkZXJJZDogNCwgYnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkTnVtYmVyOiAzMTJ9KQor
ICAgICAgICAgICAgKTsKICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFz
ayh0YXNrSWQsIHRydWUpOwpAQCAtMTEyNCw3ICsxMTM1LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVp
bGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXFldXN0c1sw
XS5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcWV1c3RzWzBdLmlzVGVz
dCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcWV1c3RzWzBdLnN0YXR1c0xh
YmVsKCksICdGYWlsZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcWV1c3Rz
WzBdLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvb3RoZXIl
MjBidWlsZGVyL2J1aWxkcy8zMTInKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cWV1c3RzWzBdLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVy
cy80L2J1aWxkcy8zMTInKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcWV1c3Rz
WzBdLmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcWV1c3Rz
WzFdLmlzQnVpbGQoKSk7CkBAIC0xMTkyLDQwICsxMjAzLDQyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1
aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhl
ckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBzeW5jUHJvbWlz
ZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5j
T25jZSgpKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBd
LCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0Rh
dGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1
aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUl
MjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWls
ZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIv
cGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg1KSwgW10pOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDEpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoNCksIFtdKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxk
cy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWls
ZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290
aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCg1LCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMSwg
MiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVd
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDQsIDIpLCB7fSk7CiAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwot
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywg
Jy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9mb3JjZScsICdPSycpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J3drJzogJzE5MTYyMicsICdidWlsZC1y
ZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ293
bmVkLWNvbW1pdHMnOiBgeyJXZWJLaXQiOlt7InJldmlzaW9uIjoib3duZWQtanNjLTYxNjEiLCJy
ZXBvc2l0b3J5IjoiSmF2YVNjcmlwdENvcmUiLCJvd25lclJldmlzaW9uIjoiMTkxNjIyIn1dfWB9
KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9T
VCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcxJywg
J2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOiB7CisgICAgICAg
ICAgICAgICAgJ3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2Vz
Y2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywKKyAgICAgICAgICAgICAgICAnb3duZWQtY29t
bWl0cyc6IGB7IldlYktpdCI6W3sicmV2aXNpb24iOiJvd25lZC1qc2MtNjE2MSIsInJlcG9zaXRv
cnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93bmVyUmV2aXNpb24iOiIxOTE2MjIifV19YH19KTsKICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMTApOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10p
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsCi0gICAgICAg
ICAgICAgICAgW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcics
IGJ1aWxkUmVxdWVzdElkOiAxfSldKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9w
ZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDUpLCBbXSk7Cisg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMSksCisgICAgICAgICAgICAgICAgW01vY2tEYXRhLnBl
bmRpbmdCdWlsZCh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDogMX0pXSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoNCksIFtdKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwotICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAg
ICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21l
IGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pCi0gICAgICAgICAgICB9KTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30p
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDUsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoMSwgMiksCisgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkKHti
dWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAxfSkKKyAgICAgICAgICAgICk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBzeW5jUHJv
bWlzZTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdy
b3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAtMTI0MCw3ICsxMjUzLDcgQEAgZGVz
Y3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQo
YnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVz
dC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUy
MGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMS9i
dWlsZHMvMTI0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKQEAgLTEyODAsNyArMTI5Myw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxk
Ym90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1
aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxl
dGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRz
LzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMS9idWlsZHMvMTI0Jyk7CiAg
ICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKQEAgLTEzMTMsNDIgKzEzMjYsNDQgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5j
dGlvbiAoKSB7CiAKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAg
ICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRy
aWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVj
YXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tE
YXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMo
KSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCAnL2pzb24v
YnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCAnL2pzb24vYnVpbGRl
cnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290
aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKDUpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMSksIFtdKTsKKyAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCg0KSwgW10pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUl
MjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRl
cnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAgICAg
ICAgICAgICAgIFstMV06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1
aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgJy9qc29uL2J1aWxk
ZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Cisg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1LCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoMSwgMiksCisgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRl
cklkOiAxLCBidWlsZFJlcXVlc3RJZDogMX0pCisgICAgICAgICAgICApOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoNCwgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2J1aWxkZXJzL3NvbWUlMjBidWls
ZGVyL2ZvcmNlJywgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3Rz
WzZdLmRhdGEsIHsnd2snOiAnMTkyNzM2JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3Jj
ZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnb3duZWQtY29tbWl0cyc6IGB7IldlYktp
dCI6W3sicmV2aXNpb24iOiJvd25lZC1qc2MtOTE5MSIsInJlcG9zaXRvcnkiOiJKYXZhU2NyaXB0
Q29yZSIsIm93bmVyUmV2aXNpb24iOiIxOTI3MzYifV19YH0pOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hl
ZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzInLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0
aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAnd2snOiAnMTkyNzM2
JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1i
dWlsZHMnLCAnb3duZWQtY29tbWl0cyc6IGB7IldlYktpdCI6W3sicmV2aXNpb24iOiJvd25lZC1q
c2MtOTE5MSIsInJlcG9zaXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93bmVyUmV2aXNpb24iOiIx
OTI3MzYifV19YH19KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9w
ZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGlu
Z0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVp
bGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
N10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDUpLCBbXSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoMSksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg0KSwgW10p
OwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAxMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1sxMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVp
bGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAgICAgICAgICAgICAgIFstMV06IE1vY2tE
YXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElk
OiAyfSksCi0gICAgICAgICAgICAgICAgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVp
bGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSksCisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoNSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgxLCAyKSwg
eworICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCisgICAgICAgICAgICAgICAgICAgIE1vY2tE
YXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDJ9KSwK
KyAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkZXJJ
ZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KV0KICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgJy9qc29uL2J1aWxk
ZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Cisg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBz
eW5jUHJvbWlzZTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAtMTM2Myw3ICsxMzc4LDcg
QEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBh
c3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxk
UmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVy
cy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWls
ZGVycy8xL2J1aWxkcy8xMjQnKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0g
YnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAtMTM4Myw3ICsxMzk4LDcgQEAgZGVzY3JpYmUo
J3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJC
dWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJl
cXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0
Lm9yZy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0
IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC0xNDA4
LDcgKzE0MjMsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFz
c2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQu
b3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0
Lm9yZy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVx
dWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBj
b21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC0xNDI4LDcgKzE0NDMsNyBA
QCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFz
c2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFv
dGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxk
LndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDov
L2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xL2J1aWxkcy8xMjQnKTsKICAgICAgICAgICAg
IGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAg
ICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpOwpAQCAtMTQ5MSw0MCArMTUwNiw0MSBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRT
ZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmln
Z2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcs
IE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tC
dWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VS
TCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVy
L3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5k
aW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdC
dWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNSksIFtdKTsKKyAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgxKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCBb
XSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWls
ZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1
aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoNSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDEsIDIpLCB7fSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg0LCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYnVpbGRl
cnMvc29tZSUyMGJ1aWxkZXIvZm9yY2UnLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1p
ZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdvd25lZC1jb21t
aXRzJzogYHsiV2ViS2l0IjpbeyJyZXZpc2lvbiI6Im93bmVkLWpzYy02MTYxIiwicmVwb3NpdG9y
eSI6IkphdmFTY3JpcHRDb3JlIiwib3duZXJSZXZpc2lvbiI6IjE5MTYyMiJ9XX1gfSk7CisgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2Fw
aS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CisgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMScsICdqc29ucnBj
JzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzogeworICAgICAgICAgICAgICAg
ICd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVy
JzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdvd25lZC1jb21taXRzJzogYHsiV2ViS2l0IjpbeyJyZXZp
c2lvbiI6Im93bmVkLWpzYy02MTYxIiwicmVwb3NpdG9yeSI6IkphdmFTY3JpcHRDb3JlIiwib3du
ZXJSZXZpc2lvbiI6IjE5MTYyMiJ9XX1gfX0pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7Ci0gICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9z
b21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIw
YnVpbGRlci9wZW5kaW5nQnVpbGRzJywKLSAgICAgICAgICAgICAgICBbTW9ja0RhdGEucGVuZGlu
Z0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KV0pOwot
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCAn
L2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoNSksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgx
KSwKKyAgICAgICAgICAgICAgICBbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IDEs
IGJ1aWxkUmVxdWVzdElkOiAxfSldKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg0KSwgW10p
OwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAxMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1sxMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVp
bGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAgICAgICAgICAgICAgIFstMV06IE1vY2tE
YXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElk
OiAxfSkKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMTJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9i
dWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoNSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgxLCAyKSwKKyAgICAgICAg
ICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0
SWQ6IDF9KQorICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg0LCAyKSwg
e30pOwogICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwg
dHJ1ZSk7CkBAIC0xNTM5LDcgKzE1NTUsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsK
ICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8v
YnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDov
L2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xL2J1aWxkcy8xMjQnKTsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAg
ICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAtMTU3OSw3
ICsxNTk1LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcv
YnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
LyMvYnVpbGRlcnMvMS9idWlsZHMvMTI0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNl
dCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTE2MjAsNyArMTYzNiw3IEBAIGRlc2Ny
aWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3Qu
aXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUy
MGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMS9i
dWlsZHMvMTI0Jyk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVx
dWVzdC5jb21taXRTZXQoKTsKQEAgLTE2NTMsNDIgKzE2NjksNDQgQEAgZGVzY3JpYmUoJ3N5bmMt
YnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVz
ZXQoKTsKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMo
KS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1
aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJl
Y2F0ZWQoKSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sw
XSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1
aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10p
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKDUpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMSks
IFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAn
R0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg0KSwgW10pOwogICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29u
L2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30p
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0
PS0yJywgewotICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1
aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pCi0gICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1LCAyKSwge30pOworICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoMSwgMiksCisgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNo
ZWRCdWlsZCh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDogMX0pCisgICAgICAgICAgICAp
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQn
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2J1aWxk
ZXJzL3NvbWUlMjBidWlsZGVyL2ZvcmNlJywgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnd2snOiAnMTkyNzM2JywgJ2J1aWxkLXJlcXVlc3Qt
aWQnOiAnMicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnb3duZWQtY29t
bWl0cyc6IGB7IldlYktpdCI6W3sicmV2aXNpb24iOiJvd25lZC1qc2MtOTE5MSIsInJlcG9zaXRv
cnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93bmVyUmV2aXNpb24iOiIxOTI3MzYifV19YH0pOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9h
cGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzInLCAnanNvbnJw
Yyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAg
ICAnd2snOiAnMTkyNzM2JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVkdWxl
cic6ICdmb3JjZS1hYi1idWlsZHMnLCAnb3duZWQtY29tbWl0cyc6IGB7IldlYktpdCI6W3sicmV2
aXNpb24iOiJvd25lZC1qc2MtOTE5MSIsInJlcG9zaXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93
bmVyUmV2aXNpb24iOiIxOTI3MzYifV19YH19KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVp
bGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDUpLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMSksIFtdKTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCg0KSwgW10pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rl
ci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAgICAgICAgICAg
ICAgIFstMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcics
IGJ1aWxkUmVxdWVzdElkOiAyfSksCi0gICAgICAgICAgICAgICAgWy0yXTogTW9ja0RhdGEuZmlu
aXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSks
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQn
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgxLCAyKSwgeworICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCisgICAgICAgICAg
ICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkZXJJZDogMSwgYnVpbGRS
ZXF1ZXN0SWQ6IDJ9KSwKKyAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWls
ZERhdGEoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KV0KICAgICAgICAgICAgIH0p
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1sxMl0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiksIHt9KTsKICAgICAg
ICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAt
MTcwMyw3ICsxNzIxLDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Vi
a2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvIy9idWlsZGVycy8xL2J1aWxkcy8xMjQnKTsKICAgICAgICAgICAgIGFzc2VydC5u
b3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29u
c3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAtMTcyMyw3ICsxNzQx
LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2Vy
dCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRw
Oi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcpOwogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAg
ICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0
U2V0KCk7CkBAIC0xNzQ4LDcgKzE3NjYsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsK
ICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6
Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRw
Oi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcpOwogICAgICAgICAg
ICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAg
ICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC0x
NzY4LDcgKzE3ODYsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAg
ICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
J2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8x
MjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMS9idWlsZHMvMTI0Jyk7
CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVx
dWVzdC5jb21taXRTZXQoKTsKQEAgLTE3OTQsNyArMTgxMiw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1
aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29t
cGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVp
bGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMS9idWlsZHMvMTI0Jyk7
CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRT
ZXQoKTsKQEAgLTE4MTQsNyArMTgzMiw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQo
KSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
Q29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVp
bGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEv
YnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0
ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcwppbmRleCBjMTJmMWI0OTIy
NC4uNTQ3Yjg0NWQzZTggMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29s
cy9qcy9idWlsZGJvdC1zeW5jZXIuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rv
b2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcwpAQCAtMjE1LDE4ICsyMTUsMTggQEAgY2xhc3MgQnVp
bGRib3RTeW5jZXIgewogICAgICAgICBpZiAoIXRoaXMuX3NsYXZlTGlzdCB8fCBoYXNQZW5kaW5n
QnVpbGRzV2l0aG91dFNsYXZlTmFtZVNwZWNpZmllZCkgewogICAgICAgICAgICAgaWYgKHVzZWRT
bGF2ZXMuc2l6ZSB8fCB0aGlzLl9zbGF2ZXNXaXRoTmV3UmVxdWVzdHMuc2l6ZSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgICAgIHJldHVybiB0aGlzLnNjaGVkdWxlUmVx
dWVzdERlcHJlY2F0ZWQobmV3UmVxdWVzdCwgcmVxdWVzdHNJbkdyb3VwLCBudWxsKTsKKyAgICAg
ICAgICAgIHJldHVybiB0aGlzLnNjaGVkdWxlUmVxdWVzdChuZXdSZXF1ZXN0LCByZXF1ZXN0c0lu
R3JvdXAsIG51bGwpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHNsYXZlTmFtZSkgewogICAg
ICAgICAgICAgaWYgKCF1c2VkU2xhdmVzLmhhcyhzbGF2ZU5hbWUpICYmICF0aGlzLl9zbGF2ZXNX
aXRoTmV3UmVxdWVzdHMuaGFzKHNsYXZlTmFtZSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRo
aXMuc2NoZWR1bGVSZXF1ZXN0RGVwcmVjYXRlZChuZXdSZXF1ZXN0LCByZXF1ZXN0c0luR3JvdXAs
IHNsYXZlTmFtZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2NoZWR1bGVSZXF1ZXN0
KG5ld1JlcXVlc3QsIHJlcXVlc3RzSW5Hcm91cCwgc2xhdmVOYW1lKTsKICAgICAgICAgICAgIHJl
dHVybiBudWxsOwogICAgICAgICB9CiAKICAgICAgICAgZm9yIChsZXQgc2xhdmVOYW1lIG9mIHRo
aXMuX3NsYXZlTGlzdCkgewogICAgICAgICAgICAgaWYgKCF1c2VkU2xhdmVzLmhhcyhzbGF2ZU5h
bWUpICYmICF0aGlzLl9zbGF2ZXNXaXRoTmV3UmVxdWVzdHMuaGFzKHNsYXZlTmFtZSkpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2NoZWR1bGVSZXF1ZXN0RGVwcmVjYXRlZChuZXdSZXF1
ZXN0LCByZXF1ZXN0c0luR3JvdXAsIHNsYXZlTmFtZSk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IHRoaXMuc2NoZWR1bGVSZXF1ZXN0KG5ld1JlcXVlc3QsIHJlcXVlc3RzSW5Hcm91cCwgc2xhdmVO
YW1lKTsKICAgICAgICAgfQogCiAgICAgICAgIHJldHVybiBudWxsOwpAQCAtMjM0LDkgKzIzNCwx
MSBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAKICAgICBwdWxsQnVpbGRib3QoY291bnQpCiAg
ICAgewotICAgICAgICByZXR1cm4gdGhpcy5fcmVtb3RlLmdldEpTT04odGhpcy5wYXRoRm9yUGVu
ZGluZ0J1aWxkc0pTT05EZXByZWNhdGVkKCkpLnRoZW4oKGNvbnRlbnQpID0+IHsKLSAgICAgICAg
ICAgIGxldCBwZW5kaW5nRW50cmllcyA9IGNvbnRlbnQubWFwKChlbnRyeSkgPT4gbmV3IEJ1aWxk
Ym90QnVpbGRFbnRyeURlcHJlY2F0ZWQodGhpcywgZW50cnkpKTsKLSAgICAgICAgICAgIHJldHVy
biB0aGlzLl9wdWxsUmVjZW50QnVpbGRzRGVwcmVjYXRlZChjb3VudCkudGhlbigoZW50cmllcykg
PT4geworICAgICAgICByZXR1cm4gdGhpcy5fcmVtb3RlLmdldEpTT04odGhpcy5wYXRoRm9yUGVu
ZGluZ0J1aWxkcygpKS50aGVuKChjb250ZW50KSA9PiB7CisgICAgICAgICAgICBsZXQgcGVuZGlu
Z0VudHJpZXMgPSBbXTsKKyAgICAgICAgICAgIGlmICgnYnVpbGRyZXF1ZXN0cycgaW4gY29udGVu
dCkKKyAgICAgICAgICAgICAgICBwZW5kaW5nRW50cmllcyA9IGNvbnRlbnQuYnVpbGRyZXF1ZXN0
cy5tYXAoKGVudHJ5KSA9PiBuZXcgQnVpbGRib3RCdWlsZEVudHJ5KHRoaXMsIGVudHJ5KSk7Cisg
ICAgICAgICAgICByZXR1cm4gdGhpcy5fcHVsbFJlY2VudEJ1aWxkcyhjb3VudCkudGhlbigoZW50
cmllcykgPT4gewogICAgICAgICAgICAgICAgIGxldCBlbnRyeUJ5UmVxdWVzdCA9IHt9OwogCiAg
ICAgICAgICAgICAgICAgZm9yIChsZXQgZW50cnkgb2YgcGVuZGluZ0VudHJpZXMpCmRpZmYgLS1n
aXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFi
bGUuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dl
cmFibGUuanMKaW5kZXggODk5Mjg0MDY5Y2EuLmRkODUwOTIyYjNiIDEwMDY0NAotLS0gYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMKKysr
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxl
LmpzCkBAIC01NSw3ICs1NSw3IEBAIGNsYXNzIEJ1aWxkYm90VHJpZ2dlcmFibGUgewogCiAgICAg
aW5pdFN5bmNlcnMoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QnVpbGRlck5hbWVU
b0lETWFwRGVwcmVjYXRlZCgpLnRoZW4oKGJ1aWxkZXJOYW1lVG9JRE1hcCkgPT4geworICAgICAg
ICByZXR1cm4gdGhpcy5nZXRCdWlsZGVyTmFtZVRvSURNYXAoKS50aGVuKChidWlsZGVyTmFtZVRv
SURNYXApID0+IHsKICAgICAgICAgICAgIHRoaXMuX3N5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyh0aGlzLl9idWlsZGJvdFJlbW90ZSwgdGhpcy5fY29uZmlnLCBidWlsZGVyTmFt
ZVRvSURNYXApOwogICAgICAgICB9KTsKICAgICB9CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMKaW5k
ZXggNTI3NjdkODkwNTYuLjY0NTc3MzNiYTViIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMKKysrIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzCkBA
IC02LDcgKzYsNyBAQCByZXF1aXJlKCcuLi90b29scy9qcy92My1tb2RlbHMuanMnKTsKIGxldCBN
b2NrUmVtb3RlQVBJID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvbW9jay1yZW1vdGUtYXBpLmpzJyku
TW9ja1JlbW90ZUFQSTsKIGxldCBNb2NrTW9kZWxzID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvbW9j
ay12My1tb2RlbHMuanMnKS5Nb2NrTW9kZWxzOwogCi1sZXQgQnVpbGRib3RCdWlsZEVudHJ5RGVw
cmVjYXRlZCA9IHJlcXVpcmUoJy4uL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcycpLkJ1aWxk
Ym90QnVpbGRFbnRyeURlcHJlY2F0ZWQ7CitsZXQgQnVpbGRib3RCdWlsZEVudHJ5ID0gcmVxdWly
ZSgnLi4vdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzJykuQnVpbGRib3RCdWlsZEVudHJ5Owog
bGV0IEJ1aWxkYm90U3luY2VyID0gcmVxdWlyZSgnLi4vdG9vbHMvanMvYnVpbGRib3Qtc3luY2Vy
LmpzJykuQnVpbGRib3RTeW5jZXI7CiAKIGZ1bmN0aW9uIHNhbXBsZWlPU0NvbmZpZygpCkBAIC0x
MzMsNiArMTMzLDcgQEAgZnVuY3Rpb24gc21hbGxDb25maWd1cmF0aW9uKCkKICAgICAgICAgJ2J1
aWxkZXJzJzogewogICAgICAgICAgICAgJ3NvbWUtYnVpbGRlcic6IHsKICAgICAgICAgICAgICAg
ICAnYnVpbGRlcic6ICdzb21lIGJ1aWxkZXInLAorICAgICAgICAgICAgICAgICdwcm9wZXJ0aWVz
Jzogeydmb3JjZXNjaGVkdWxlcic6ICdzb21lLWJ1aWxkZXItRm9yY2VTY2hlZHVsZXInfQogICAg
ICAgICAgICAgfQogICAgICAgICB9LAogICAgICAgICAndGVzdENvbmZpZ3VyYXRpb25zJzogW3sK
QEAgLTE1Myw2OCArMTU0LDIyIEBAIGZ1bmN0aW9uIGJ1aWxkZXJOYW1lVG9JRE1hcCgpCiAgICAg
ICAgICdpUGhvbmUgQUIgVGVzdHMnIDogJzEwNCcsCiAgICAgICAgICdpUGhvbmUgMiBBQiBUZXN0
cyc6ICcxMDUnLAogICAgICAgICAnaVBhZCBBQiBUZXN0cyc6ICcxMDYnCi0gICAgfSAgICAKKyAg
ICB9CiB9CiAKIGZ1bmN0aW9uIHNtYWxsUGVuZGluZ0J1aWxkKCkKIHsKLSAgICByZXR1cm4gewot
ICAgICAgICAnYnVpbGRlck5hbWUnOiAnc29tZSBidWlsZGVyJywKLSAgICAgICAgJ2J1aWxkcyc6
IFtdLAotICAgICAgICAncHJvcGVydGllcyc6IFtdLAotICAgICAgICAnc291cmNlJzogewotICAg
ICAgICAgICAgJ2JyYW5jaCc6ICcnLAotICAgICAgICAgICAgJ2NoYW5nZXMnOiBbXSwKLSAgICAg
ICAgICAgICdjb2RlYmFzZSc6ICdXZWJLaXQnLAotICAgICAgICAgICAgJ2hhc1BhdGNoJzogZmFs
c2UsCi0gICAgICAgICAgICAncHJvamVjdCc6ICcnLAotICAgICAgICAgICAgJ3JlcG9zaXRvcnkn
OiAnJywKLSAgICAgICAgICAgICdyZXZpc2lvbic6ICcnCi0gICAgICAgIH0sCi0gICAgfTsKKyAg
ICByZXR1cm4gc2FtcGxlUGVuZGluZ0J1aWxkKG51bGwsIG51bGwsICJzb21lIGJ1aWxkZXIiKTsK
IH0KIAogZnVuY3Rpb24gc21hbGxJblByb2dyZXNzQnVpbGQoKQogewotICAgIHJldHVybiB7Ci0g
ICAgICAgICdidWlsZGVyTmFtZSc6ICdzb21lIGJ1aWxkZXInLAotICAgICAgICAnYnVpbGRzJzog
W10sCi0gICAgICAgICdwcm9wZXJ0aWVzJzogW10sCi0gICAgICAgICdjdXJyZW50U3RlcCc6IHsg
fSwKLSAgICAgICAgJ2V0YSc6IDEyMywKLSAgICAgICAgJ251bWJlcic6IDQ1NiwKLSAgICAgICAg
J3NvdXJjZSc6IHsKLSAgICAgICAgICAgICdicmFuY2gnOiAnJywKLSAgICAgICAgICAgICdjaGFu
Z2VzJzogW10sCi0gICAgICAgICAgICAnY29kZWJhc2UnOiAnV2ViS2l0JywKLSAgICAgICAgICAg
ICdoYXNQYXRjaCc6IGZhbHNlLAotICAgICAgICAgICAgJ3Byb2plY3QnOiAnJywKLSAgICAgICAg
ICAgICdyZXBvc2l0b3J5JzogJycsCi0gICAgICAgICAgICAncmV2aXNpb24nOiAnJwotICAgICAg
ICB9LAotICAgIH07CisgICAgcmV0dXJuIHNhbXBsZUluUHJvZ3Jlc3NCdWlsZCgpOwogfQogCiBm
dW5jdGlvbiBzbWFsbEZpbmlzaGVkQnVpbGQoKQogewotICAgIHJldHVybiB7Ci0gICAgICAgICdi
dWlsZGVyTmFtZSc6ICdzb21lIGJ1aWxkZXInLAotICAgICAgICAnYnVpbGRzJzogW10sCi0gICAg
ICAgICdwcm9wZXJ0aWVzJzogW10sCi0gICAgICAgICdjdXJyZW50U3RlcCc6IG51bGwsCi0gICAg
ICAgICdldGEnOiBudWxsLAotICAgICAgICAnbnVtYmVyJzogNzg5LAotICAgICAgICAnc291cmNl
JzogewotICAgICAgICAgICAgJ2JyYW5jaCc6ICcnLAotICAgICAgICAgICAgJ2NoYW5nZXMnOiBb
XSwKLSAgICAgICAgICAgICdjb2RlYmFzZSc6ICdXZWJLaXQnLAotICAgICAgICAgICAgJ2hhc1Bh
dGNoJzogZmFsc2UsCi0gICAgICAgICAgICAncHJvamVjdCc6ICcnLAotICAgICAgICAgICAgJ3Jl
cG9zaXRvcnknOiAnJywKLSAgICAgICAgICAgICdyZXZpc2lvbic6ICcnCi0gICAgICAgIH0sCi0g
ICAgICAgICd0aW1lcyc6IFswLCAxXSwKLSAgICB9OworICAgIHJldHVybiBzYW1wbGVGaW5pc2hl
ZEJ1aWxkKG51bGwsIG51bGwsICJzb21lIGJ1aWxkZXIiKTsKIH0KIAogZnVuY3Rpb24gY3JlYXRl
U2FtcGxlQnVpbGRSZXF1ZXN0KHBsYXRmb3JtLCB0ZXN0KQpAQCAtMjk1LDE5NCArMjUwLDc2IEBA
IGZ1bmN0aW9uIGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdFdpdGhPd25lZENvbW1pdEFuZFBhdGNo
KHBsYXRmb3JtLCB0ZXN0LCBvcmRlcikKICAgICAgICAgJ2NvbW1pdFNldCc6IGNvbW1pdFNldCwg
J3N0YXR1cyc6ICdwZW5kaW5nJywgJ3BsYXRmb3JtJzogcGxhdGZvcm0sICd0ZXN0JzogdGVzdCwg
J29yZGVyJzogb3JkZXJ9KTsKIH0KIAotZnVuY3Rpb24gc2FtcGxlUGVuZGluZ0J1aWxkKGJ1aWxk
UmVxdWVzdElkLCBidWlsZFRpbWUsIHNsYXZlTmFtZSkKK2Z1bmN0aW9uIHNhbXBsZVBlbmRpbmdC
dWlsZERhdGEoYnVpbGRSZXF1ZXN0SWQsIGJ1aWxkVGltZSwgYnVpbGRlcklkKQogewogICAgIHJl
dHVybiB7Ci0gICAgICAgICdidWlsZGVyTmFtZSc6ICdBQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmst
VGVzdHMnLAotICAgICAgICAnYnVpbGRzJzogW10sCi0gICAgICAgICdwcm9wZXJ0aWVzJzogWwot
ICAgICAgICAgICAgWydidWlsZF9yZXF1ZXN0X2lkJywgYnVpbGRSZXF1ZXN0SWQgfHwgJzE2NzMz
JywgJ0ZvcmNlIEJ1aWxkIEZvcm0nXSwKLSAgICAgICAgICAgIFsnZGVzaXJlZF9pbWFnZScsICcx
M0E0NTInLCAnRm9yY2UgQnVpbGQgRm9ybSddLAotICAgICAgICAgICAgWydvd25lcicsICc8dW5r
bm93bj4nLCAnRm9yY2UgQnVpbGQgRm9ybSddLAotICAgICAgICAgICAgWyd0ZXN0X25hbWUnLCAn
c3BlZWRvbWV0ZXInLCAnRm9yY2UgQnVpbGQgRm9ybSddLAotICAgICAgICAgICAgWydyZWFzb24n
LCAnZm9yY2UgYnVpbGQnLCdGb3JjZSBCdWlsZCBGb3JtJ10sCi0gICAgICAgICAgICBbJ3NsYXZl
bmFtZScsIHNsYXZlTmFtZSwgJyddLAotICAgICAgICAgICAgWydzY2hlZHVsZXInLCAnQUJUZXN0
LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzLUZvcmNlU2NoZWR1bGVyJywgJ1NjaGVkdWxlciddCi0g
ICAgICAgIF0sCi0gICAgICAgICdzb3VyY2UnOiB7Ci0gICAgICAgICAgICAnYnJhbmNoJzogJycs
Ci0gICAgICAgICAgICAnY2hhbmdlcyc6IFtdLAotICAgICAgICAgICAgJ2NvZGViYXNlJzogJ2Nv
bXBpbGVyLXJ0JywKLSAgICAgICAgICAgICdoYXNQYXRjaCc6IGZhbHNlLAotICAgICAgICAgICAg
J3Byb2plY3QnOiAnJywKLSAgICAgICAgICAgICdyZXBvc2l0b3J5JzogJycsCi0gICAgICAgICAg
ICAncmV2aXNpb24nOiAnJwotICAgICAgICB9LAotICAgICAgICAnc3VibWl0dGVkQXQnOiBidWls
ZFRpbWUgfHwgMTQ1ODcwNDk4MworICAgICAgICAiYnVpbGRlcmlkIjogYnVpbGRlcklkIHx8IDEw
MiwKKyAgICAgICAgImJ1aWxkcmVxdWVzdGlkIjogYnVpbGRSZXF1ZXN0SWQgfHwgMTY3MzMsCisg
ICAgICAgICJidWlsZHNldGlkIjogODk0NzIwLAorICAgICAgICAiY2xhaW1lZCI6IGZhbHNlLAor
ICAgICAgICAiY2xhaW1lZF9hdCI6IG51bGwsCisgICAgICAgICJjbGFpbWVkX2J5X21hc3Rlcmlk
IjogbnVsbCwKKyAgICAgICAgImNvbXBsZXRlIjogZmFsc2UsCisgICAgICAgICJjb21wbGV0ZV9h
dCI6IG51bGwsCisgICAgICAgICJwcmlvcml0eSI6IDAsCisgICAgICAgICJyZXN1bHRzIjogLTEs
CisgICAgICAgICJzdWJtaXR0ZWRfYXQiOiBidWlsZFRpbWUgfHwgMTQ1ODcwNDk4MywKKyAgICAg
ICAgIndhaXRlZF9mb3IiOiBmYWxzZQogICAgIH07CiB9CiAKLWZ1bmN0aW9uIHNhbXBsZUluUHJv
Z3Jlc3NCdWlsZChzbGF2ZU5hbWUpCitmdW5jdGlvbiBzYW1wbGVQZW5kaW5nQnVpbGQoYnVpbGRS
ZXF1ZXN0SWQsIGJ1aWxkVGltZSwgYnVpbGRlck5hbWUpCiB7CiAgICAgcmV0dXJuIHsKLSAgICAg
ICAgJ2JsYW1lJzogW10sCi0gICAgICAgICdidWlsZGVyTmFtZSc6ICdBQlRlc3QtaVBhZC1SdW5C
ZW5jaG1hcmstVGVzdHMnLAotICAgICAgICAnY3VycmVudFN0ZXAnOiB7Ci0gICAgICAgICAgICAn
ZXRhJzogMC4yNjU0ODA2NzY5ODQ2MDU2NSwKLSAgICAgICAgICAgICdleHBlY3RhdGlvbnMnOiBb
WydvdXRwdXQnLCA4NDUsIDEzMTUuMF1dLAotICAgICAgICAgICAgJ2hpZGRlbic6IGZhbHNlLAot
ICAgICAgICAgICAgJ2lzRmluaXNoZWQnOiBmYWxzZSwKLSAgICAgICAgICAgICdpc1N0YXJ0ZWQn
OiB0cnVlLAotICAgICAgICAgICAgJ2xvZ3MnOiBbWydzdGRpbycsICdodHRwczovL2J1aWxkLndl
YmtpdC5vcmcvYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzL2J1aWxkcy82
MTQvc3RlcHMvU29tZSUyMHN0ZXAvbG9ncy9zdGRpbyddXSwKLSAgICAgICAgICAgICduYW1lJzog
J1NvbWUgc3RlcCcsCi0gICAgICAgICAgICAncmVzdWx0cyc6IFtudWxsLFtdXSwKLSAgICAgICAg
ICAgICdzdGF0aXN0aWNzJzoge30sCi0gICAgICAgICAgICAnc3RlcF9udW1iZXInOiAxLAotICAg
ICAgICAgICAgJ3RleHQnOiBbJyddLAotICAgICAgICAgICAgJ3RpbWVzJzogWzE0NTg3MTg2NTcu
NTgxNjI4LCBudWxsXSwKLSAgICAgICAgICAgICd1cmxzJzoge30KLSAgICAgICAgfSwKLSAgICAg
ICAgJ2V0YSc6IDY0OTcuOTkxNjEyNDM0Mzg3LAotICAgICAgICAnbG9ncyc6IFtbJ3N0ZGlvJywn
aHR0cHM6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFy
ay1UZXN0cy9idWlsZHMvNjE0L3N0ZXBzL3NoZWxsL2xvZ3Mvc3RkaW8nXV0sCi0gICAgICAgICdu
dW1iZXInOiA2MTQsCi0gICAgICAgICdwcm9wZXJ0aWVzJzogWwotICAgICAgICAgICAgWydidWls
ZF9yZXF1ZXN0X2lkJywgJzE2NzMzJywgJ0ZvcmNlIEJ1aWxkIEZvcm0nXSwKLSAgICAgICAgICAg
IFsnYnVpbGRlcm5hbWUnLCAnQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzJywgJ0J1aWxk
ZXInXSwKLSAgICAgICAgICAgIFsnYnVpbGRudW1iZXInLCA2MTQsICdCdWlsZCddLAotICAgICAg
ICAgICAgWydkZXNpcmVkX2ltYWdlJywgJzEzQTQ1MicsICdGb3JjZSBCdWlsZCBGb3JtJ10sCi0g
ICAgICAgICAgICBbJ293bmVyJywgJzx1bmtub3duPicsICdGb3JjZSBCdWlsZCBGb3JtJ10sCi0g
ICAgICAgICAgICBbJ3JlYXNvbicsICdmb3JjZSBidWlsZCcsICdGb3JjZSBCdWlsZCBGb3JtJ10s
Ci0gICAgICAgICAgICBbJ3NjaGVkdWxlcicsICdBQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVz
dHMtRm9yY2VTY2hlZHVsZXInLCAnU2NoZWR1bGVyJ10sCi0gICAgICAgICAgICBbJ3NsYXZlbmFt
ZScsIHNsYXZlTmFtZSB8fCAnQUJUZXN0LWlQYWQtMCcsICdCdWlsZFNsYXZlJ10sCi0gICAgICAg
IF0sCi0gICAgICAgICdyZWFzb24nOiAnQSBidWlsZCB3YXMgZm9yY2VkIGJ5IFwnPHVua25vd24+
XCc6IGZvcmNlIGJ1aWxkJywKLSAgICAgICAgJ3Jlc3VsdHMnOiBudWxsLAotICAgICAgICAnc2xh
dmUnOiAnQUJUZXN0LWlQYWQtMCcsCi0gICAgICAgICdzb3VyY2VTdGFtcHMnOiBbeydicmFuY2gn
OiAnJywgJ2NoYW5nZXMnOiBbXSwgJ2NvZGViYXNlJzogJ2NvbXBpbGVyLXJ0JywgJ2hhc1BhdGNo
JzogZmFsc2UsICdwcm9qZWN0JzogJycsICdyZXBvc2l0b3J5JzogJycsICdyZXZpc2lvbic6ICcn
fV0sCi0gICAgICAgICdzdGVwcyc6IFsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAn
ZXRhJzogbnVsbCwKLSAgICAgICAgICAgICAgICAnZXhwZWN0YXRpb25zJzogW1snb3V0cHV0Jywy
MzA5LDIzMDkuMF1dLAotICAgICAgICAgICAgICAgICdoaWRkZW4nOiBmYWxzZSwKLSAgICAgICAg
ICAgICAgICAnaXNGaW5pc2hlZCc6IHRydWUsCi0gICAgICAgICAgICAgICAgJ2lzU3RhcnRlZCc6
IHRydWUsCi0gICAgICAgICAgICAgICAgJ2xvZ3MnOiBbWydzdGRpbycsICdodHRwczovL2J1aWxk
LndlYmtpdC5vcmcvYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzL2J1aWxk
cy82MTQvc3RlcHMvc2hlbGwvbG9ncy9zdGRpbyddXSwKLSAgICAgICAgICAgICAgICAnbmFtZSc6
ICdGaW5pc2hlZCBzdGVwJywKLSAgICAgICAgICAgICAgICAncmVzdWx0cyc6IFswLCBbXV0sCi0g
ICAgICAgICAgICAgICAgJ3N0YXRpc3RpY3MnOiB7fSwKLSAgICAgICAgICAgICAgICAnc3RlcF9u
dW1iZXInOiAwLAotICAgICAgICAgICAgICAgICd0ZXh0JzogWycnXSwKLSAgICAgICAgICAgICAg
ICAndGltZXMnOiBbMTQ1ODcxODY1NS40MTk4NjUsIDE0NTg3MTg2NTUuNDUzNjMzXSwKLSAgICAg
ICAgICAgICAgICAndXJscyc6IHt9Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICdldGEnOiAwLjI2NTQ4MDY3Njk4NDYwNTY1LAotICAgICAgICAgICAgICAg
ICdleHBlY3RhdGlvbnMnOiBbWydvdXRwdXQnLCA4NDUsIDEzMTUuMF1dLAotICAgICAgICAgICAg
ICAgICdoaWRkZW4nOiBmYWxzZSwKLSAgICAgICAgICAgICAgICAnaXNGaW5pc2hlZCc6IGZhbHNl
LAotICAgICAgICAgICAgICAgICdpc1N0YXJ0ZWQnOiB0cnVlLAotICAgICAgICAgICAgICAgICds
b2dzJzogW1snc3RkaW8nLCAnaHR0cHM6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL0FCVGVz
dC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy9idWlsZHMvNjE0L3N0ZXBzL1NvbWUlMjBzdGVwL2xv
Z3Mvc3RkaW8nXV0sCi0gICAgICAgICAgICAgICAgJ25hbWUnOiAnU29tZSBzdGVwJywKLSAgICAg
ICAgICAgICAgICAncmVzdWx0cyc6IFtudWxsLFtdXSwKLSAgICAgICAgICAgICAgICAnc3RhdGlz
dGljcyc6IHt9LAotICAgICAgICAgICAgICAgICdzdGVwX251bWJlcic6IDEsCi0gICAgICAgICAg
ICAgICAgJ3RleHQnOiBbJyddLAotICAgICAgICAgICAgICAgICd0aW1lcyc6IFsxNDU4NzE4NjU3
LjU4MTYyOCwgbnVsbF0sCi0gICAgICAgICAgICAgICAgJ3VybHMnOiB7fQotICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAnZXRhJzogbnVsbCwKLSAgICAgICAg
ICAgICAgICAnZXhwZWN0YXRpb25zJzogW1snb3V0cHV0JywgbnVsbCwgbnVsbF1dLAotICAgICAg
ICAgICAgICAgICdoaWRkZW4nOiBmYWxzZSwKLSAgICAgICAgICAgICAgICAnaXNGaW5pc2hlZCc6
IGZhbHNlLAotICAgICAgICAgICAgICAgICdpc1N0YXJ0ZWQnOiBmYWxzZSwKLSAgICAgICAgICAg
ICAgICAnbG9ncyc6IFtdLAotICAgICAgICAgICAgICAgICduYW1lJzogJ1NvbWUgb3RoZXIgc3Rl
cCcsCi0gICAgICAgICAgICAgICAgJ3Jlc3VsdHMnOiBbbnVsbCwgW11dLAotICAgICAgICAgICAg
ICAgICdzdGF0aXN0aWNzJzoge30sCi0gICAgICAgICAgICAgICAgJ3N0ZXBfbnVtYmVyJzogMiwK
LSAgICAgICAgICAgICAgICAndGV4dCc6IFtdLAotICAgICAgICAgICAgICAgICd0aW1lcyc6IFtu
dWxsLCBudWxsXSwKLSAgICAgICAgICAgICAgICAndXJscyc6IHt9Ci0gICAgICAgICAgICB9LAot
ICAgICAgICBdLAotICAgICAgICAndGV4dCc6IFtdLAotICAgICAgICAndGltZXMnOiBbMTQ1ODcx
ODY1NS40MTU4MjEsIG51bGxdCisgICAgICAgICJidWlsZHJlcXVlc3RzIiA6IFtzYW1wbGVQZW5k
aW5nQnVpbGREYXRhKGJ1aWxkUmVxdWVzdElkLCBidWlsZFRpbWUsIGJ1aWxkZXJOYW1lVG9JRE1h
cCgpW2J1aWxkZXJOYW1lXSldCiAgICAgfTsKIH0KIAotZnVuY3Rpb24gc2FtcGxlRmluaXNoZWRC
dWlsZChidWlsZFJlcXVlc3RJZCwgc2xhdmVOYW1lKQorZnVuY3Rpb24gc2FtcGxlQnVpbGREYXRh
KHdvcmtlck5hbWUsIGlzQ29tcGxldGUsIGJ1aWxkUmVxdWVzdElkLCBidWlsZE51bWJlciwgYnVp
bGRlcklkKQogewogICAgIHJldHVybiB7Ci0gICAgICAgICdibGFtZSc6IFtdLAotICAgICAgICAn
YnVpbGRlck5hbWUnOiAnQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzJywKLSAgICAgICAg
J2N1cnJlbnRTdGVwJzogbnVsbCwKLSAgICAgICAgJ2V0YSc6IG51bGwsCi0gICAgICAgICdsb2dz
JzogW1snc3RkaW8nLCdodHRwczovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvQUJUZXN0LWlQ
YWQtUnVuQmVuY2htYXJrLVRlc3RzL2J1aWxkcy8xNzU1L3N0ZXBzL3NoZWxsL2xvZ3Mvc3RkaW8n
XV0sCi0gICAgICAgICdudW1iZXInOiAxNzU1LAotICAgICAgICAncHJvcGVydGllcyc6IFsKLSAg
ICAgICAgICAgIFsnYnVpbGRfcmVxdWVzdF9pZCcsIGJ1aWxkUmVxdWVzdElkIHx8ICcxODkzNScs
ICdGb3JjZSBCdWlsZCBGb3JtJ10sCi0gICAgICAgICAgICBbJ2J1aWxkZXJuYW1lJywgJ0FCVGVz
dC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cycsICdCdWlsZGVyJ10sCi0gICAgICAgICAgICBbJ2J1
aWxkbnVtYmVyJywgMTc1NSwgJ0J1aWxkJ10sCi0gICAgICAgICAgICBbJ2Rlc2lyZWRfaW1hZ2Un
LCAnMTNBNDUyJywgJ0ZvcmNlIEJ1aWxkIEZvcm0nXSwKLSAgICAgICAgICAgIFsnb3duZXInLCAn
PHVua25vd24+JywgJ0ZvcmNlIEJ1aWxkIEZvcm0nXSwKLSAgICAgICAgICAgIFsncmVhc29uJywg
J2ZvcmNlIGJ1aWxkJywgJ0ZvcmNlIEJ1aWxkIEZvcm0nXSwKLSAgICAgICAgICAgIFsnc2NoZWR1
bGVyJywgJ0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy1Gb3JjZVNjaGVkdWxlcicsICdT
Y2hlZHVsZXInXSwKLSAgICAgICAgICAgIFsnc2xhdmVuYW1lJywgc2xhdmVOYW1lIHx8ICdBQlRl
c3QtaVBhZC0wJywgJ0J1aWxkU2xhdmUnXSwKLSAgICAgICAgXSwKLSAgICAgICAgJ3JlYXNvbic6
ICdBIGJ1aWxkIHdhcyBmb3JjZWQgYnkgXCc8dW5rbm93bj5cJzogZm9yY2UgYnVpbGQnLAotICAg
ICAgICAncmVzdWx0cyc6IDIsCi0gICAgICAgICdzbGF2ZSc6ICdBQlRlc3QtaVBhZC0wJywKLSAg
ICAgICAgJ3NvdXJjZVN0YW1wcyc6IFt7J2JyYW5jaCc6ICcnLCAnY2hhbmdlcyc6IFtdLCAnY29k
ZWJhc2UnOiAnY29tcGlsZXItcnQnLCAnaGFzUGF0Y2gnOiBmYWxzZSwgJ3Byb2plY3QnOiAnJywg
J3JlcG9zaXRvcnknOiAnJywgJ3JldmlzaW9uJzogJyd9XSwKLSAgICAgICAgJ3N0ZXBzJzogWwot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICdldGEnOiBudWxsLAotICAgICAgICAgICAg
ICAgICdleHBlY3RhdGlvbnMnOiBbWydvdXRwdXQnLDIzMDksMjMwOS4wXV0sCi0gICAgICAgICAg
ICAgICAgJ2hpZGRlbic6IGZhbHNlLAotICAgICAgICAgICAgICAgICdpc0ZpbmlzaGVkJzogdHJ1
ZSwKLSAgICAgICAgICAgICAgICAnaXNTdGFydGVkJzogdHJ1ZSwKLSAgICAgICAgICAgICAgICAn
bG9ncyc6IFtbJ3N0ZGlvJywgJ2h0dHBzOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9BQlRl
c3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVpbGRzLzYxNC9zdGVwcy9zaGVsbC9sb2dzL3N0
ZGlvJ11dLAotICAgICAgICAgICAgICAgICduYW1lJzogJ0ZpbmlzaGVkIHN0ZXAnLAotICAgICAg
ICAgICAgICAgICdyZXN1bHRzJzogWzAsIFtdXSwKLSAgICAgICAgICAgICAgICAnc3RhdGlzdGlj
cyc6IHt9LAotICAgICAgICAgICAgICAgICdzdGVwX251bWJlcic6IDAsCi0gICAgICAgICAgICAg
ICAgJ3RleHQnOiBbJyddLAotICAgICAgICAgICAgICAgICd0aW1lcyc6IFsxNDU4NzE4NjU1LjQx
OTg2NSwgMTQ1ODcxODY1NS40NTM2MzNdLAotICAgICAgICAgICAgICAgICd1cmxzJzoge30KLSAg
ICAgICAgICAgIH0sCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgJ2V0YSc6IG51bGws
Ci0gICAgICAgICAgICAgICAgJ2V4cGVjdGF0aW9ucyc6IFtbJ291dHB1dCcsIDg0NSwgMTMxNS4w
XV0sCi0gICAgICAgICAgICAgICAgJ2hpZGRlbic6IGZhbHNlLAotICAgICAgICAgICAgICAgICdp
c0ZpbmlzaGVkJzogdHJ1ZSwKLSAgICAgICAgICAgICAgICAnaXNTdGFydGVkJzogdHJ1ZSwKLSAg
ICAgICAgICAgICAgICAnbG9ncyc6IFtbJ3N0ZGlvJywgJ2h0dHBzOi8vYnVpbGQud2Via2l0Lm9y
Zy9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVpbGRzLzYxNC9zdGVw
cy9Tb21lJTIwc3RlcC9sb2dzL3N0ZGlvJ11dLAotICAgICAgICAgICAgICAgICduYW1lJzogJ1Nv
bWUgc3RlcCcsCi0gICAgICAgICAgICAgICAgJ3Jlc3VsdHMnOiBbbnVsbCxbXV0sCi0gICAgICAg
ICAgICAgICAgJ3N0YXRpc3RpY3MnOiB7fSwKLSAgICAgICAgICAgICAgICAnc3RlcF9udW1iZXIn
OiAxLAotICAgICAgICAgICAgICAgICd0ZXh0JzogWycnXSwKLSAgICAgICAgICAgICAgICAndGlt
ZXMnOiBbMTQ1ODcxODY1Ny41ODE2MjgsIG51bGxdLAotICAgICAgICAgICAgICAgICd1cmxzJzog
e30KLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgJ2V0YSc6
IG51bGwsCi0gICAgICAgICAgICAgICAgJ2V4cGVjdGF0aW9ucyc6IFtbJ291dHB1dCcsIG51bGws
IG51bGxdXSwKLSAgICAgICAgICAgICAgICAnaGlkZGVuJzogZmFsc2UsCi0gICAgICAgICAgICAg
ICAgJ2lzRmluaXNoZWQnOiB0cnVlLAotICAgICAgICAgICAgICAgICdpc1N0YXJ0ZWQnOiB0cnVl
LAotICAgICAgICAgICAgICAgICdsb2dzJzogW10sCi0gICAgICAgICAgICAgICAgJ25hbWUnOiAn
U29tZSBvdGhlciBzdGVwJywKLSAgICAgICAgICAgICAgICAncmVzdWx0cyc6IFtudWxsLCBbXV0s
Ci0gICAgICAgICAgICAgICAgJ3N0YXRpc3RpY3MnOiB7fSwKLSAgICAgICAgICAgICAgICAnc3Rl
cF9udW1iZXInOiAyLAotICAgICAgICAgICAgICAgICd0ZXh0JzogW10sCi0gICAgICAgICAgICAg
ICAgJ3RpbWVzJzogW251bGwsIG51bGxdLAotICAgICAgICAgICAgICAgICd1cmxzJzoge30KLSAg
ICAgICAgICAgIH0sCi0gICAgICAgIF0sCi0gICAgICAgICd0ZXh0JzogW10sCi0gICAgICAgICd0
aW1lcyc6IFsxNDU4OTM3NDc4LjI1ODM3LCAxNDU4OTQ2MTQ3LjE3Mzc4NV0KKyAgICAgICAgImJ1
aWxkZXJpZCI6IGJ1aWxkZXJJZCB8fCAxMDIsCisgICAgICAgICJudW1iZXIiOiBidWlsZE51bWJl
ciB8fCA2MTQsCisgICAgICAgICJidWlsZHJlcXVlc3RpZCI6IGJ1aWxkUmVxdWVzdElkIHx8IDE2
NzMzLAorICAgICAgICAiY29tcGxldGUiOiBpc0NvbXBsZXRlLAorICAgICAgICAiY29tcGxldGVf
YXQiOiBudWxsLAorICAgICAgICAiYnVpbGRpZCI6IDQxODc0NCwKKyAgICAgICAgIm1hc3Rlcmlk
IjogMSwKKyAgICAgICAgInJlc3VsdHMiOiBudWxsLAorICAgICAgICAic3RhcnRlZF9hdCI6IDE1
MTM3MjUxMDksCisgICAgICAgICJzdGF0ZV9zdHJpbmciOiAiYnVpbGRpbmciLAorICAgICAgICAi
d29ya2VyaWQiOiA0MSwKKyAgICAgICAgInByb3BlcnRpZXMiOiB7CisgICAgICAgICAgICAicGxh
dGZvcm0iOiBbIm1hYyIsICJVbmtub3duIl0sCisgICAgICAgICAgICAic2NoZWR1bGVyIjogWyJB
QlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMtRm9yY2VTY2hlZHVsZXIiLCAiU2NoZWR1bGVy
Il0sCisgICAgICAgICAgICAic2xhdmVuYW1lIjogW3dvcmtlck5hbWUgfHwgIkFCVGVzdC1pUGFk
LTAiLCAiV29ya2VyIChkZXByZWNhdGVkKSJdLAorICAgICAgICAgICAgIndvcmtlcm5hbWUiOiBb
d29ya2VyTmFtZSB8fCAiQUJUZXN0LWlQYWQtMCIsICJXb3JrZXIiCisgICAgICAgICAgICBdCisg
ICAgICAgIH0KKyAgICB9OworfQorCitmdW5jdGlvbiBzYW1wbGVJblByb2dyZXNzQnVpbGREYXRh
KHdvcmtlck5hbWUpCit7CisgICAgcmV0dXJuIHNhbXBsZUJ1aWxkRGF0YSh3b3JrZXJOYW1lLCBm
YWxzZSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZUluUHJvZ3Jlc3NCdWlsZCh3b3JrZXJOYW1lKQor
eworICAgIHJldHVybiB7CisgICAgICAgICJidWlsZHMiOiBbc2FtcGxlSW5Qcm9ncmVzc0J1aWxk
RGF0YSh3b3JrZXJOYW1lKV0KKyAgICB9OworfQorCitmdW5jdGlvbiBzYW1wbGVGaW5pc2hlZEJ1
aWxkRGF0YShidWlsZFJlcXVlc3RJZCwgd29ya2VyTmFtZSwgYnVpbGRlck5hbWUpCit7CisgICAg
cmV0dXJuIHNhbXBsZUJ1aWxkRGF0YSh3b3JrZXJOYW1lLCB0cnVlLCBidWlsZFJlcXVlc3RJZCB8
fCAxODkzNSwgMTc1NSwgYnVpbGRlck5hbWVUb0lETWFwKClbYnVpbGRlck5hbWVdKTsKK30KKwor
ZnVuY3Rpb24gc2FtcGxlRmluaXNoZWRCdWlsZChidWlsZFJlcXVlc3RJZCwgd29ya2VyTmFtZSwg
YnVpbGRlck5hbWUpCit7CisgICAgcmV0dXJuIHsKKyAgICAgICAgImJ1aWxkcyI6IFtzYW1wbGVG
aW5pc2hlZEJ1aWxkRGF0YShidWlsZFJlcXVlc3RJZCwgd29ya2VyTmFtZSwgYnVpbGRlck5hbWUp
XQogICAgIH07CiB9CiAKQEAgLTEyMDAsOCArMTAzNyw4IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5
bmNlcicsICgpID0+IHsKICAgICAgICAgaXQoJ3Nob3VsZCBmZXRjaCBwZW5kaW5nIGJ1aWxkcyBm
cm9tIHRoZSByaWdodCBVUkwnLCAoKSA9PiB7CiAgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCks
IGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzeW5j
ZXIuYnVpbGRlck5hbWUoKSwgJ0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cycpOwotICAg
ICAgICAgICAgbGV0IGV4cGVjdGVkVVJMID0gJy9qc29uL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1
bkJlbmNobWFyay1UZXN0cy9wZW5kaW5nQnVpbGRzJzsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzeW5jZXIucGF0aEZvclBlbmRpbmdCdWlsZHNKU09ORGVwcmVjYXRlZCgpLCBleHBlY3RlZFVS
TCk7CisgICAgICAgICAgICBsZXQgZXhwZWN0ZWRVUkwgPSAnL2FwaS92Mi9idWlsZGVycy8xMDIv
YnVpbGRyZXF1ZXN0cz9jb21wbGV0ZT1mYWxzZSZjbGFpbWVkPWZhbHNlJzsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzeW5jZXIucGF0aEZvclBlbmRpbmdCdWlsZHMoKSwgZXhwZWN0ZWRVUkwp
OwogICAgICAgICAgICAgc3luY2VyLnB1bGxCdWlsZGJvdCgpOwogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbMF0udXJsLCBleHBlY3RlZFVSTCk7CkBAIC0xMjEzLDExICsxMDUwLDExIEBAIGRlc2Ny
aWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKIAogICAgICAgICAgICAgc3luY2VyLnB1bGxC
dWlsZGJvdCgxKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxk
ZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy9wZW5kaW5nQnVpbGRzJyk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2FwaS92Mi9idWlsZGVycy8x
MDIvYnVpbGRyZXF1ZXN0cz9jb21wbGV0ZT1mYWxzZSZjbGFpbWVkPWZhbHNlJyk7CiAgICAgICAg
ICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKFtdKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNo
bWFyay1UZXN0cy9idWlsZHMvP3NlbGVjdD0tMScpOworICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1sxXS51cmwsICcvYXBpL3YyL2J1aWxkZXJzLzEwMi9idWlsZHM/bGltaXQ9
MSZvcmRlcj0tbnVtYmVyJnByb3BlcnR5PSonKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9
KTsKIApAQCAtMTIyNiwyOSArMTA2MywyOSBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAo
KSA9PiB7CiAKICAgICAgICAgICAgIHN5bmNlci5wdWxsQnVpbGRib3QoMyk7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5j
aG1hcmstVGVzdHMvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzBdLnVybCwgJy9hcGkvdjIvYnVpbGRlcnMvMTAyL2J1aWxkcmVxdWVzdHM/Y29tcGxl
dGU9ZmFsc2UmY2xhaW1lZD1mYWxzZScpOwogICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2
ZShbXSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS51cmwsICcv
anNvbi9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJnNlbGVjdD0tMycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1sxXS51cmwsICcvYXBpL3YyL2J1aWxkZXJzLzEwMi9idWlsZHM/bGltaXQ9MyZv
cmRlcj0tbnVtYmVyJnByb3BlcnR5PSonKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsK
IAogICAgICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBCdWlsZGJvdEJ1aWxkRW50cnkgZm9yIHBlbmRp
bmcgYnVpbGRzJywgKCkgPT4gewogICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3lu
Y2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVy
TmFtZVRvSURNYXAoKSlbMV07CiAgICAgICAgICAgICBsZXQgcHJvbWlzZSA9IHN5bmNlci5wdWxs
QnVpbGRib3QoKTsKLSAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoW3NhbXBsZVBlbmRp
bmdCdWlsZCgpXSk7CisgICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKHNhbXBsZVBlbmRp
bmdCdWlsZCgpKTsKICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnRoZW4oKGVudHJpZXMpID0+
IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cmllcy5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgICAgIGxldCBlbnRyeSA9IGVudHJpZXNbMF07Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5RGVwcmVjYXRlZCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVu
dHJ5KTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5LmJ1aWxkTnVtYmVyKCkpOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuc2xhdmVOYW1lKCkpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZFJlcXVlc3RJZCgpLCAxNjczMyk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5LmlzUGVuZGluZygpKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQub2soIWVudHJ5LmlzSW5Qcm9ncmVzcygpKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQub2soIWVudHJ5Lmhhc0ZpbmlzaGVkKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL0FCVGVzdC1p
UGFkLVJ1bkJlbmNobWFyay1UZXN0cy8nKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
ZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTY3
MzMnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMTI2MCwxOSArMTA5Nywx
OSBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICByZXF1
ZXN0c1swXS5yZXNvbHZlKFtdKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgcmVxdWVzdHNbMV0ucmVzb2x2
ZSh7Wy0xXTogc2FtcGxlSW5Qcm9ncmVzc0J1aWxkKCl9KTsKKyAgICAgICAgICAgICAgICByZXF1
ZXN0c1sxXS5yZXNvbHZlKHNhbXBsZUluUHJvZ3Jlc3NCdWlsZCgpKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gcHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKGVudHJpZXMpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cmllcy5sZW5ndGgsIDEpOwogICAgICAgICAg
ICAgICAgIGxldCBlbnRyeSA9IGVudHJpZXNbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0Lm9r
KGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5RGVwcmVjYXRlZCk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5KTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGROdW1iZXIoKSwgNjE0KTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuc2xhdmVOYW1lKCksICdBQlRlc3Qt
aVBhZC0wJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkUmVxdWVz
dElkKCksIDE2NzMzKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5LmlzUGVuZGlu
ZygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkuaXNJblByb2dyZXNzKCkpOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaGFzRmluaXNoZWQoKSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzL2J1aWxkcy82MTQnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQu
d2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEwMi9idWlsZHMvNjE0Jyk7CiAgICAgICAgICAgICB9KTsK
ICAgICAgICAgfSk7CiAKQEAgLTEyODQsMTkgKzExMjEsMTkgQEAgZGVzY3JpYmUoJ0J1aWxkYm90
U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZShbXSk7CiAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwot
ICAgICAgICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoe1stMV06IHNhbXBsZUZpbmlzaGVk
QnVpbGQoKX0pOworICAgICAgICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoc2FtcGxlRmlu
aXNoZWRCdWlsZCgpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKGVudHJpZXMpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGVudHJpZXMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBsZXQgZW50cnkgPSBlbnRy
aWVzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxk
Ym90QnVpbGRFbnRyeURlcHJlY2F0ZWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRy
eSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGVudHJ5LmJ1aWxkTnVtYmVyKCksIDE3NTUpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChlbnRyeS5zbGF2ZU5hbWUoKSwgJ0FCVGVzdC1pUGFkLTAnKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGRSZXF1ZXN0SWQoKSwgMTg5MzUpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaXNQZW5kaW5nKCkpOwogICAgICAgICAgICAgICAg
IGFzc2VydC5vayghZW50cnkuaXNJblByb2dyZXNzKCkpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5vayhlbnRyeS5oYXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
ZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9BQlRlc3QtaVBh
ZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVpbGRzLzE3NTUnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJz
LzEwMi9idWlsZHMvMTc1NScpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0x
MzA2LDQ0ICsxMTQzLDQ0IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAg
ICAgICAgICAgIGxldCBwcm9taXNlID0gc3luY2VyLnB1bGxCdWlsZGJvdCg1KTsKICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwogCi0gICAgICAgICAgICByZXF1
ZXN0c1swXS5yZXNvbHZlKFtzYW1wbGVQZW5kaW5nQnVpbGQoMTIzKV0pOworICAgICAgICAgICAg
cmVxdWVzdHNbMF0ucmVzb2x2ZShzYW1wbGVQZW5kaW5nQnVpbGQoMTIzKSk7CiAKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAg
ICAgICAgICAgcmVxdWVzdHNbMV0ucmVzb2x2ZSh7Wy0xXTogc2FtcGxlRmluaXNoZWRCdWlsZCgp
LCBbLTJdOiB7J2Vycm9yJzogJ05vdCBhdmFpbGFibGUnfSwgWy00XTogc2FtcGxlSW5Qcm9ncmVz
c0J1aWxkKCl9KTsKKyAgICAgICAgICAgICAgICByZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRz
JzogW3NhbXBsZUZpbmlzaGVkQnVpbGREYXRhKCksIHNhbXBsZUluUHJvZ3Jlc3NCdWlsZERhdGEo
KV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKGVudHJpZXMpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGVudHJp
ZXMubGVuZ3RoLCAzKTsKIAogICAgICAgICAgICAgICAgIGxldCBlbnRyeSA9IGVudHJpZXNbMF07
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWls
ZEVudHJ5RGVwcmVjYXRlZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3Rh
bmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
ZW50cnkuYnVpbGROdW1iZXIoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGVudHJ5LnNsYXZlTmFtZSgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
ZW50cnkuYnVpbGRSZXF1ZXN0SWQoKSwgMTIzKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2so
ZW50cnkuaXNQZW5kaW5nKCkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaXNJ
blByb2dyZXNzKCkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaGFzRmluaXNo
ZWQoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDov
L2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3Rz
LycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9i
dWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xMjMnKTsKIAogICAgICAgICAgICAgICAg
IGVudHJ5ID0gZW50cmllc1sxXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5z
dGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnlEZXByZWNhdGVkKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnkpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZE51bWJlcigpLCA2MTQpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5zbGF2ZU5hbWUoKSwgJ0FCVGVzdC1pUGFkLTAnKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGRSZXF1ZXN0SWQoKSwgMTY3
MzMpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaXNQZW5kaW5nKCkpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeS5pc0luUHJvZ3Jlc3MoKSk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5oYXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVy
cy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVpbGRzLzYxNCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
LyMvYnVpbGRlcnMvMTAyL2J1aWxkcy82MTQnKTsKIAogICAgICAgICAgICAgICAgIGVudHJ5ID0g
ZW50cmllc1syXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBC
dWlsZGJvdEJ1aWxkRW50cnlEZXByZWNhdGVkKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQub2so
ZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnkpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChlbnRyeS5idWlsZE51bWJlcigpLCAxNzU1KTsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZW50cnkuc2xhdmVOYW1lKCksICdBQlRlc3QtaVBhZC0wJyk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkUmVxdWVzdElkKCksIDE4OTM1KTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5LmlzUGVuZGluZygpKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQub2soIWVudHJ5LmlzSW5Qcm9ncmVzcygpKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQub2soZW50cnkuaGFzRmluaXNoZWQoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvQUJUZXN0
LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzL2J1aWxkcy8xNzU1Jyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWls
ZGVycy8xMDIvYnVpbGRzLzE3NTUnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApA
QCAtMTM1Myw1NCArMTE5MCw1NCBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7
CiAgICAgICAgICAgICBsZXQgcHJvbWlzZSA9IHN5bmNlci5wdWxsQnVpbGRib3QoNSk7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKIAotICAgICAgICAgICAg
cmVxdWVzdHNbMF0ucmVzb2x2ZShbc2FtcGxlUGVuZGluZ0J1aWxkKDQ1NiwgMiksIHNhbXBsZVBl
bmRpbmdCdWlsZCgxMjMsIDEpXSk7CisgICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKHsi
YnVpbGRyZXF1ZXN0cyI6IFtzYW1wbGVQZW5kaW5nQnVpbGREYXRhKDQ1NiwgMiksIHNhbXBsZVBl
bmRpbmdCdWlsZERhdGEoMTIzLCAxKV19KTsKIAogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICByZXF1ZXN0c1sx
XS5yZXNvbHZlKHtbLTNdOiBzYW1wbGVGaW5pc2hlZEJ1aWxkKCksIFstMV06IHsnZXJyb3InOiAn
Tm90IGF2YWlsYWJsZSd9LCBbLTJdOiBzYW1wbGVJblByb2dyZXNzQnVpbGQoKX0pOworICAgICAg
ICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbc2FtcGxlRmluaXNoZWRC
dWlsZERhdGEoKSwgc2FtcGxlSW5Qcm9ncmVzc0J1aWxkRGF0YSgpXX0pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBwcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoZW50cmllcykgPT4gewog
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZW50cmllcy5sZW5ndGgsIDQpOwogCiAg
ICAgICAgICAgICAgICAgbGV0IGVudHJ5ID0gZW50cmllc1swXTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnlEZXByZWNhdGVkKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxk
RW50cnkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZE51bWJlcigp
LCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuc2xhdmVOYW1lKCks
IG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZFJlcXVlc3RJ
ZCgpLCAxMjMpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeS5pc1BlbmRpbmcoKSk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc0luUHJvZ3Jlc3MoKSk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5oYXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9i
dWlsZHJlcXVlc3RzLzEyMycpOwogCiAgICAgICAgICAgICAgICAgZW50cnkgPSBlbnRyaWVzWzFd
OwotICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVp
bGRFbnRyeURlcHJlY2F0ZWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0
YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGVudHJ5LmJ1aWxkTnVtYmVyKCksIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChlbnRyeS5zbGF2ZU5hbWUoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGVudHJ5LmJ1aWxkUmVxdWVzdElkKCksIDQ1Nik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9r
KGVudHJ5LmlzUGVuZGluZygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5Lmlz
SW5Qcm9ncmVzcygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5Lmhhc0Zpbmlz
aGVkKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6
Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0
cy8nKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8v
YnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvNDU2Jyk7CiAKICAgICAgICAgICAgICAg
ICBlbnRyeSA9IGVudHJpZXNbMl07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGlu
c3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5RGVwcmVjYXRlZCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5KTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGROdW1iZXIoKSwgNjE0KTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuc2xhdmVOYW1lKCksICdBQlRlc3QtaVBhZC0wJyk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkUmVxdWVzdElkKCksIDE2
NzMzKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5LmlzUGVuZGluZygpKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkuaXNJblByb2dyZXNzKCkpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5vayghZW50cnkuaGFzRmluaXNoZWQoKSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRl
cnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzL2J1aWxkcy82MTQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy8jL2J1aWxkZXJzLzEwMi9idWlsZHMvNjE0Jyk7CiAKICAgICAgICAgICAgICAgICBlbnRyeSA9
IGVudHJpZXNbM107Ci0gICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2Yg
QnVpbGRib3RCdWlsZEVudHJ5RGVwcmVjYXRlZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0Lm9r
KGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5KTsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZW50cnkuYnVpbGROdW1iZXIoKSwgMTc1NSk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGVudHJ5LnNsYXZlTmFtZSgpLCAnQUJUZXN0LWlQYWQtMCcpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZFJlcXVlc3RJZCgpLCAxODkzNSk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc1BlbmRpbmcoKSk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc0luUHJvZ3Jlc3MoKSk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0Lm9rKGVudHJ5Lmhhc0ZpbmlzaGVkKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL0FCVGVz
dC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy9idWlsZHMvMTc1NScpOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVp
bGRlcnMvMTAyL2J1aWxkcy8xNzU1Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAK
QEAgLTE0MTAsMjQgKzEyNDcsMjQgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4g
ewogICAgICAgICAgICAgbGV0IHByb21pc2UgPSBzeW5jZXIucHVsbEJ1aWxkYm90KDUpOwogICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CiAKLSAgICAgICAgICAg
IHJlcXVlc3RzWzBdLnJlc29sdmUoW3NhbXBsZVBlbmRpbmdCdWlsZCgpXSk7CisgICAgICAgICAg
ICByZXF1ZXN0c1swXS5yZXNvbHZlKHNhbXBsZVBlbmRpbmdCdWlsZCgpKTsKIAogICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAgICAgICAg
ICAgICAgICByZXF1ZXN0c1sxXS5yZXNvbHZlKHtbLTFdOiBzYW1wbGVJblByb2dyZXNzQnVpbGQo
KX0pOworICAgICAgICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoc2FtcGxlSW5Qcm9ncmVz
c0J1aWxkKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBwcm9taXNlOwogICAgICAgICAgICAg
fSkudGhlbigoZW50cmllcykgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRy
aWVzLmxlbmd0aCwgMSk7CiAKICAgICAgICAgICAgICAgICBsZXQgZW50cnkgPSBlbnRyaWVzWzBd
OwotICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVp
bGRFbnRyeURlcHJlY2F0ZWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0
YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGVudHJ5LmJ1aWxkTnVtYmVyKCksIDYxNCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGVudHJ5LnNsYXZlTmFtZSgpLCAnQUJUZXN0LWlQYWQtMCcpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChlbnRyeS5idWlsZFJlcXVlc3RJZCgpLCAxNjczMyk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc1BlbmRpbmcoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
Lm9rKGVudHJ5LmlzSW5Qcm9ncmVzcygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVu
dHJ5Lmhhc0ZpbmlzaGVkKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51
cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJl
bmNobWFyay1UZXN0cy9idWlsZHMvNjE0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xMDIvYnVp
bGRzLzYxNCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0xNDM3LDI0ICsx
Mjc0LDI0IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAg
IGxldCBwcm9taXNlID0gc3luY2VyLnB1bGxCdWlsZGJvdCg1KTsKICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwogCi0gICAgICAgICAgICByZXF1ZXN0c1swXS5y
ZXNvbHZlKFtzYW1wbGVQZW5kaW5nQnVpbGQoKV0pOworICAgICAgICAgICAgcmVxdWVzdHNbMF0u
cmVzb2x2ZShzYW1wbGVQZW5kaW5nQnVpbGQoKSk7CiAKICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgcmVxdWVz
dHNbMV0ucmVzb2x2ZSh7Wy0xXTogc2FtcGxlRmluaXNoZWRCdWlsZCgxNjczMyl9KTsKKyAgICAg
ICAgICAgICAgICByZXF1ZXN0c1sxXS5yZXNvbHZlKHNhbXBsZUZpbmlzaGVkQnVpbGQoMTY3MzMp
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4o
KGVudHJpZXMpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cmllcy5sZW5n
dGgsIDEpOwogCiAgICAgICAgICAgICAgICAgbGV0IGVudHJ5ID0gZW50cmllc1swXTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnlE
ZXByZWNhdGVkKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBC
dWlsZGJvdEJ1aWxkRW50cnkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5i
dWlsZE51bWJlcigpLCAxNzU1KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnku
c2xhdmVOYW1lKCksICdBQlRlc3QtaVBhZC0wJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGVudHJ5LmJ1aWxkUmVxdWVzdElkKCksIDE2NzMzKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQub2soIWVudHJ5LmlzUGVuZGluZygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVu
dHJ5LmlzSW5Qcm9ncmVzcygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkuaGFz
RmluaXNoZWQoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAn
aHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJr
LVRlc3RzL2J1aWxkcy8xNzU1Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5
LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xMDIvYnVpbGRzLzE3
NTUnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTE0NjUsMTgg
KzEzMDIsMjMgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogCiAgICAgICAg
ICAgICBjb25zdCB3YWl0Rm9yUmVxdWVzdCA9IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3Qo
TW9ja01vZGVscy5pcGhvbmUsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwotICAgICAgICAgICAg
c3luY2VyLnNjaGVkdWxlUmVxdWVzdERlcHJlY2F0ZWQocmVxdWVzdCwgW3JlcXVlc3RdLCAnc29t
ZS1zbGF2ZScpOworICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdChyZXF1ZXN0LCBb
cmVxdWVzdF0sICdzb21lLXNsYXZlJyk7CiAgICAgICAgICAgICByZXR1cm4gd2FpdEZvclJlcXVl
c3QudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwg
Jy9idWlsZGVycy9BQlRlc3QtaVBob25lLVJ1bkJlbmNobWFyay1UZXN0cy9mb3JjZScpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvYXBpL3YyL2ZvcmNl
c2NoZWR1bGVycy9BQlRlc3QtaVBob25lLVJ1bkJlbmNobWFyay1UZXN0cy1Gb3JjZVNjaGVkdWxl
cicpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5tZXRob2QsICdQ
T1NUJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1swXS5kYXRh
LCB7Ci0gICAgICAgICAgICAgICAgICAgICdidWlsZF9yZXF1ZXN0X2lkJzogJzE2NzMzLScgKyBN
b2NrTW9kZWxzLmlwaG9uZS5pZCgpLAotICAgICAgICAgICAgICAgICAgICAnZGVzaXJlZF9pbWFn
ZSc6ICcxM0E0NTInLAotICAgICAgICAgICAgICAgICAgICAib3BlbnNvdXJjZSI6ICIxOTc0NjMi
LAotICAgICAgICAgICAgICAgICAgICAnZm9yY2VzY2hlZHVsZXInOiAnQUJUZXN0LWlQaG9uZS1S
dW5CZW5jaG1hcmstVGVzdHMtRm9yY2VTY2hlZHVsZXInLAotICAgICAgICAgICAgICAgICAgICAn
c2xhdmVuYW1lJzogJ3NvbWUtc2xhdmUnLAotICAgICAgICAgICAgICAgICAgICAndGVzdF9uYW1l
JzogJ3NwZWVkb21ldGVyJworICAgICAgICAgICAgICAgICAgICAnaWQnOiAnMTY3MzMtJyArIE1v
Y2tNb2RlbHMuaXBob25lLmlkKCksCisgICAgICAgICAgICAgICAgICAgICdqc29ucnBjJzogJzIu
MCcsCisgICAgICAgICAgICAgICAgICAgICdtZXRob2QnOiAnZm9yY2UnLAorICAgICAgICAgICAg
ICAgICAgICAncGFyYW1zJzogeworICAgICAgICAgICAgICAgICAgICAgICAgJ2J1aWxkX3JlcXVl
c3RfaWQnOiAnMTY3MzMtJyArIE1vY2tNb2RlbHMuaXBob25lLmlkKCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAnZGVzaXJlZF9pbWFnZSc6ICcxM0E0NTInLAorICAgICAgICAgICAgICAgICAg
ICAgICAgJ29wZW5zb3VyY2UnOiAnMTk3NDYzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdm
b3JjZXNjaGVkdWxlcic6ICdBQlRlc3QtaVBob25lLVJ1bkJlbmNobWFyay1UZXN0cy1Gb3JjZVNj
aGVkdWxlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAnc2xhdmVuYW1lJzogJ3NvbWUtc2xh
dmUnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3Rlc3RfbmFtZSc6ICdzcGVlZG9tZXRlcicK
KyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0pOwpAQCAtMTUwNCwyOSArMTM0NiwzMSBAQCBkZXNjcmliZSgnQnVpbGRi
b3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0
ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybSwgTW9ja01vZGVscy5z
b21lVGVzdCk7CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdEluR3JvdXBJ
ZkF2YWlsYWJsZShyZXF1ZXN0LCBbcmVxdWVzdF0pOwogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1swXS51cmwsICcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvZm9yY2UnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2FwaS92Mi9mb3JjZXNj
aGVkdWxlcnMvc29tZS1idWlsZGVyLUZvcmNlU2NoZWR1bGVyJyk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzBdLmRhdGEsIHtpZDogJzE2NzMzLScgKyBNb2Nr
TW9kZWxzLnNvbWVQbGF0Zm9ybS5pZCgpLCAnb3MnOiAnMTNBNDUyJywgJ3drJzogJzE5NzQ2Myd9
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzBdLmRhdGEsIHtp
ZDogJzE2NzMzLScgKyBNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybS5pZCgpLCAnanNvbnJwYyc6ICcy
LjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywKKyAgICAgICAgICAgICAgICAgICAgJ3BhcmFtcyc6IHtp
ZDogJzE2NzMzLScgKyBNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybS5pZCgpLCAnZm9yY2VzY2hlZHVs
ZXInOiAnc29tZS1idWlsZGVyLUZvcmNlU2NoZWR1bGVyJywgJ29zJzogJzEzQTQ1MicsICd3ayc6
ICcxOTc0NjMnfX0pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0
KCdzaG91bGQgc2NoZWR1bGUgYSBidWlsZCBpZiBidWlsZGVyIG9ubHkgaGFzIGZpbmlzaGVkIGJ1
aWxkcyBpZiBzbGF2ZUxpc3QgaXMgbm90IHNwZWNpZmllZCcsICgpID0+IHsKICAgICAgICAgICAg
IGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBz
bWFsbENvbmZpZ3VyYXRpb24oKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzBdOwogCi0gICAgICAg
ICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7Wy0xXTog
c21hbGxGaW5pc2hlZEJ1aWxkKCl9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIHJldHVybiBw
dWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10sIHNtYWxsRmluaXNoZWRCdWlsZCgp
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2Ft
cGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLCBNb2NrTW9kZWxzLnNvbWVU
ZXN0KTsKICAgICAgICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0SW5Hcm91cElmQXZh
aWxhYmxlKHJlcXVlc3QsIFtyZXF1ZXN0XSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzBdLnVybCwgJy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9mb3JjZScpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1
bGVycy9zb21lLWJ1aWxkZXItRm9yY2VTY2hlZHVsZXInKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbMF0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMF0uZGF0YSwge2lkOiAnMTY3MzMtJyArIE1vY2tNb2Rl
bHMuc29tZVBsYXRmb3JtLmlkKCksICdvcyc6ICcxM0E0NTInLCAnd2snOiAnMTk3NDYzJ30pOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMF0uZGF0YSwge2lkOiAn
MTY3MzMtJyArIE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLmlkKCksICdqc29ucnBjJzogJzIuMCcs
ICdtZXRob2QnOiAnZm9yY2UnLAorICAgICAgICAgICAgICAgICAgICAncGFyYW1zJzoge2lkOiAn
MTY3MzMtJyArIE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLmlkKCksICdmb3JjZXNjaGVkdWxlcic6
ICdzb21lLWJ1aWxkZXItRm9yY2VTY2hlZHVsZXInLCAnb3MnOiAnMTNBNDUyJywgJ3drJzogJzE5
NzQ2Myd9fSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3No
b3VsZCBub3Qgc2NoZWR1bGUgYSBidWlsZCBpZiBidWlsZGVyIGhhcyBhIHBlbmRpbmcgYnVpbGQg
aWYgc2xhdmVMaXN0IGlzIG5vdCBzcGVjaWZpZWQnLCAoKSA9PiB7CiAgICAgICAgICAgICBsZXQg
c3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc21hbGxD
b25maWd1cmF0aW9uKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVswXTsKIAotICAgICAgICAgICAg
cmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbc21hbGxQZW5kaW5nQnVp
bGQoKV0sIHt9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RX
aXRoQXNzZXJ0aW9uKHN5bmNlciwgc21hbGxQZW5kaW5nQnVpbGQoKSwge30pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3RJbkdyb3VwSWZBdmFpbGFi
bGUoY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLCBNb2Nr
TW9kZWxzLnNvbWVUZXN0KSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMCk7CiAgICAgICAgICAgICB9KTsKQEAgLTE1MzksNyArMTM4Myw3IEBAIGRlc2Ny
aWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1
ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBob25lLCBNb2NrTW9k
ZWxzLnNwZWVkb21ldGVyKTsKICAgICAgICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0
SW5Hcm91cElmQXZhaWxhYmxlKHJlcXVlc3QsIFtyZXF1ZXN0XSwgbnVsbCk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9idWlsZGVycy9BQlRlc3QtaVBob25lLVJ1
bkJlbmNobWFyay1UZXN0cy9mb3JjZScpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1swXS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9BQlRlc3QtaVBob25lLVJ1
bkJlbmNobWFyay1UZXN0cy1Gb3JjZVNjaGVkdWxlcicpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0c1swXS5tZXRob2QsICdQT1NUJyk7CiAgICAgICAgICAgICB9KTsKICAg
ICAgICAgfSk7CkBAIC0xNTQ3LDExICsxMzkxLDExIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNl
cicsICgpID0+IHsKICAgICAgICAgaXQoJ3Nob3VsZCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGJ1aWxk
ZXIgb25seSBoYXMgZmluaXNoZWQgYnVpbGRzIG9uIHRoZSBtYXRjaGluZyBzbGF2ZScsICgpID0+
IHsKICAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhN
b2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFd
OwogCi0gICAgICAgICAgICBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10sIHtb
LTFdOiBzYW1wbGVGaW5pc2hlZEJ1aWxkKCl9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIHB1
bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwgc2FtcGxlRmluaXNoZWRCdWlsZCgp
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2Ft
cGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7
CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdEluR3JvdXBJZkF2YWlsYWJs
ZShyZXF1ZXN0LCBbcmVxdWVzdF0sIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0c1swXS51cmwsICcvYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzL2Zv
cmNlJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9h
cGkvdjIvZm9yY2VzY2hlZHVsZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy1Gb3Jj
ZVNjaGVkdWxlcicpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5t
ZXRob2QsICdQT1NUJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC0xNTU5LDcg
KzE0MDMsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIGl0
KCdzaG91bGQgbm90IHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVpbGRlciBoYXMgYSBwZW5kaW5nIGJ1
aWxkIG9uIHRoZSBtYWNoaW5nIHNsYXZlJywgKCkgPT4gewogICAgICAgICAgICAgbGV0IHN5bmNl
ciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0Nv
bmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKLSAgICAgICAgICAgIHB1bGxCdWls
ZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbc2FtcGxlUGVuZGluZ0J1aWxkKCldLCB7fSkudGhl
bigoKSA9PiB7CisgICAgICAgICAgICBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwg
c2FtcGxlUGVuZGluZ0J1aWxkKCksIHt9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBj
b25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwg
TW9ja01vZGVscy5zcGVlZG9tZXRlcik7CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxl
UmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShyZXF1ZXN0LCBbcmVxdWVzdF0sIG51bGwpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDApOwpAQCAtMTU2OSw3
ICsxNDEzLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICBp
dCgnc2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVpbGRlciBvbmx5IGhhcyBhIHBlbmRpbmcg
YnVpbGQgb24gYSBub24tbWFjaGluZyBzbGF2ZScsICgpID0+IHsKICAgICAgICAgICAgIGxldCBz
eW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVp
T1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogCi0gICAgICAgICAgICByZXR1
cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtzYW1wbGVQZW5kaW5nQnVpbGQo
MSwgMSwgJ2Fub3RoZXItc2xhdmUnKV0sIHt9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIHJl
dHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgc2FtcGxlUGVuZGluZ0J1aWxk
KDEsIDEsICdhbm90aGVyLXNsYXZlJyksIHt9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBh
ZCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVk
dWxlUmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShyZXF1ZXN0LCBbcmVxdWVzdF0sIG51bGwpOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwpAQCAtMTU3
OSw3ICsxNDIzLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAg
ICBpdCgnc2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVpbGRlciBvbmx5IGhhcyBhbiBpbi1w
cm9ncmVzcyBidWlsZCBvbiB0aGUgbWF0Y2hpbmcgc2xhdmUnLCAoKSA9PiB7CiAgICAgICAgICAg
ICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
c2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAotICAgICAgICAg
ICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge1stMV06IHNh
bXBsZUluUHJvZ3Jlc3NCdWlsZCgpfSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICByZXR1cm4g
cHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCBzYW1wbGVJblByb2dyZXNzQnVp
bGQoKSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0
ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0
ZXIpOwogICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3RJbkdyb3VwSWZBdmFp
bGFibGUocmVxdWVzdCwgW3JlcXVlc3RdLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKQEAgLTE1ODksNyArMTQzMyw3IEBAIGRlc2NyaWJl
KCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgaXQoJ3Nob3VsZCBzY2hlZHVsZSBh
IGJ1aWxkIGlmIGJ1aWxkZXIgaGFzIGFuIGluLXByb2dyZXNzIGJ1aWxkIG9uIGFub3RoZXIgc2xh
dmUnLCAoKSA9PiB7CiAgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xv
YWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9J
RE1hcCgpKVsxXTsKIAotICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRp
b24oc3luY2VyLCBbXSwge1stMV06IHNhbXBsZUluUHJvZ3Jlc3NCdWlsZCgnb3RoZXItc2xhdmUn
KX0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3Nl
cnRpb24oc3luY2VyLCBbXSwgc2FtcGxlSW5Qcm9ncmVzc0J1aWxkKCdvdGhlci1zbGF2ZScpKS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxl
QnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CiAg
ICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShy
ZXF1ZXN0LCBbcmVxdWVzdF0sIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDEpOwpAQCAtMTYxMSw5ICsxNDU1LDkgQEAgZGVzY3JpYmUoJ0J1aWxk
Ym90U3luY2VyJywgKCkgPT4gewogCiAgICAgICAgICAgICBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0
aW9uKHN5bmNlciwgW10sIHt9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBsZXQgcmVx
dWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2Rl
bHMuc3BlZWRvbWV0ZXIpOwotICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3RE
ZXByZWNhdGVkKHJlcXVlc3QsIFtyZXF1ZXN0XSwgJ0FCVGVzdC1pUGFkLTAnKTsKKyAgICAgICAg
ICAgICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0KHJlcXVlc3QsIFtyZXF1ZXN0XSwgJ0FCVGVz
dC1pUGFkLTAnKTsKICAgICAgICAgICAgICAgICByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRS
ZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7Ci0gICAgICAg
ICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdERlcHJlY2F0ZWQocmVxdWVzdCwgW3JlcXVl
c3RdLCAnQUJUZXN0LWlQYWQtMScpOworICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJl
cXVlc3QocmVxdWVzdCwgW3JlcXVlc3RdLCAnQUJUZXN0LWlQYWQtMScpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMik7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1
aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwpAQCAt
MTYyOSw3ICsxNDczLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogCiAg
ICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgbGV0IHJlcXVlc3QgPSBjcmVhdGVTYW1w
bGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsK
LSAgICAgICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0RGVwcmVjYXRlZChyZXF1ZXN0
LCBbcmVxdWVzdF0sICdBQlRlc3QtaVBhZC0wJyk7CisgICAgICAgICAgICAgICAgc3luY2VyLnNj
aGVkdWxlUmVxdWVzdChyZXF1ZXN0LCBbcmVxdWVzdF0sICdBQlRlc3QtaVBhZC0wJyk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAg
ICAgICAgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQs
IE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpCiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxl
UmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShyZXF1ZXN0LCBbcmVxdWVzdF0sICdBQlRlc3QtaVBh
ZC0xJyk7CkBAIC0xNjQyLDcgKzE0ODYsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAo
KSA9PiB7CiAKICAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5
bmNlciwgW10sIHt9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBsZXQgcmVxdWVzdCA9
IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybSwgTW9ja01v
ZGVscy5zb21lVGVzdCk7Ci0gICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdERl
cHJlY2F0ZWQocmVxdWVzdCwgW3JlcXVlc3RdLCBudWxsKTsKKyAgICAgICAgICAgICAgICBzeW5j
ZXIuc2NoZWR1bGVSZXF1ZXN0KHJlcXVlc3QsIFtyZXF1ZXN0XSwgbnVsbCk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAg
cmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLnNvbWVQbGF0Zm9y
bSwgTW9ja01vZGVscy5zb21lVGVzdCk7CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxl
UmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShyZXF1ZXN0LCBbcmVxdWVzdF0sIG51bGwpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332782</attachid>
            <date>2018-01-31 11:01:20 -0800</date>
            <delta_ts>2018-01-31 12:12:22 -0800</delta_ts>
            <desc>Updated Patch to switch to Buildbot 0.9 - WIP</desc>
            <filename>buildbot_perf_update_v3.patch</filename>
            <type>text/plain</type>
            <size>192012</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvQ2hhbmdlTG9nCmluZGV4IDBkZmZjMjdjN2RmLi4wZGI3ODQxODJl
NCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZworKysgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTgt
MDEtMjkgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgorCisgICAgICAgIFVw
ZGF0ZSBQZXJmIGJ1aWxkYm90IHN5bmNpbmcgc2NyaXB0cyBmb3IgQnVpbGRib3QgMC45CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzU5NjkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRvb2xzL2pzL2J1
aWxkYm90LXRyaWdnZXJhYmxlLmpzOgorICAgICAgICAoQnVpbGRib3RUcmlnZ2VyYWJsZS5wcm90
b3R5cGUuaW5pdFN5bmNlcnMpOiBTd2l0Y2ggZnJvbSBEZXByZWNhdGVkIHZlcnNpb24gdG8gbmV3
IHZlcnNpb24gb2YgZ2V0QnVpbGRlck5hbWVUb0lETWFwLgorICAgICAgICAqIHRvb2xzL2pzL2J1
aWxkYm90LXN5bmNlci5qczoKKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLnByb3RvdHlwZS5zY2hl
ZHVsZVJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUpOiBTd2l0Y2ggZnJvbSBEZXByZWNhdGVkIHZl
cnNpb24gdG8gbmV3IHZlcnNpb24gb2Ygc2NoZWR1bGVSZXF1ZXN0LgorICAgICAgICAoQnVpbGRi
b3RTeW5jZXIucHJvdG90eXBlLnB1bGxCdWlsZGJvdCk6IFN3aXRjaCBmcm9tIERlcHJlY2F0ZWQg
dmVyc2lvbiB0byBuZXcgdmVyc2lvbiBvZiBwYXRoRm9yUGVuZGluZ0J1aWxkcywgX3B1bGxSZWNl
bnRCdWlsZHMgCisgICAgICAgIGFuZCBCdWlsZGJvdEJ1aWxkRW50cnkuIFBhcnNlIHRoZSBwZW5k
aW5nIGJ1aWxkLXJlcXVlc3RzIGRhdGEgaW4gQnVpbGRib3QgMC45IGZvcm1hdC4KKyAgICAgICAg
KiB1bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qczogVXBkYXRlZCBhcyBwZXIgQnVp
bGRib3QgMC45IGNvZGUuCisgICAgICAgICogc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRi
b3QtaW50ZWdyYXRpb24tdGVzdHMuanM6IERpdHRvLgorICAgICAgICAqIHNlcnZlci10ZXN0cy90
b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5qczogV0lQLgorICAgICAgICAqIHNlcnZl
ci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzOgorICAgICAgICAoTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCk6IE1ldGhvZCB0byBjb25zdHJ1Y3QgcGVuZGluZ0J1aWxkc1VybCBpbiBCdWls
ZGJvdCAwLjkgZm9ybWF0LgorICAgICAgICAoTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKTogRGl0
dG8gZm9yIHJlY2VudEJ1aWxkc1VybC4KKwogMjAxOC0wMS0yNCAgRGV3ZWkgWmh1ICA8ZGV3ZWlf
emh1QGFwcGxlLmNvbT4KIAogICAgICAgICBDaGVjayBleGlzdGVuY2Ugb2YgJ25vZGVfbW9kdWxl
c19kaXInIGJlZm9yZSBjcmVhdGluZyBpdC4KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcwppbmRleCBi
ZTFjNzM0OTk3NS4uMmJjZDFhN2M3ZGYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcworKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMKQEAgLTE5
LDYgKzE5LDggQEAgTW9ja0RhdGEgPSB7CiAgICAgc2hhcmVkUmVwb3NpdG9yeUlkKCkgeyByZXR1
cm4gMTQ7IH0sCiAgICAgYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSB7cmV0dXJuICcv
anNvbi9idWlsZGVycyd9LAogICAgIGJ1aWxkYm90QnVpbGRlcnNVUkwoKSB7cmV0dXJuICcvYXBp
L3YyL2J1aWxkZXJzJ30sCisgICAgcGVuZGluZ0J1aWxkc1VybDogZnVuY3Rpb24gKGJ1aWxkZXJJ
ZCkgeyByZXR1cm4gYC9hcGkvdjIvYnVpbGRlcnMvJHtidWlsZGVySWR9L2J1aWxkcmVxdWVzdHM/
Y29tcGxldGU9ZmFsc2UmY2xhaW1lZD1mYWxzZWA7IH0sCisgICAgcmVjZW50QnVpbGRzVXJsOiBm
dW5jdGlvbiAoYnVpbGRlcklkLCBjb3VudCkgeyByZXR1cm4gYC9hcGkvdjIvYnVpbGRlcnMvJHti
dWlsZGVySWR9L2J1aWxkcz9saW1pdD0ke2NvdW50fSZvcmRlcj0tbnVtYmVyJnByb3BlcnR5PSpg
OyB9LAogICAgIGFkZE1vY2tDb25maWd1cmF0aW9uOiBmdW5jdGlvbiAoZGIpCiAgICAgewogICAg
ICAgICByZXR1cm4gUHJvbWlzZS5hbGwoWwpAQCAtMTgwLDcgKzE4Miw4IEBAIE1vY2tEYXRhID0g
ewogICAgICAgICAgICAgICAgICdzb21lLXRlc3QnOiB7J3Rlc3QnOiBbJ3NvbWUgdGVzdCddfQog
ICAgICAgICAgICAgfSwKICAgICAgICAgICAgICdidWlsZGVycyc6IHsKLSAgICAgICAgICAgICAg
ICAnYnVpbGRlci0xJzogeydidWlsZGVyJzogJ3NvbWUtYnVpbGRlci0xJ30sCisgICAgICAgICAg
ICAgICAgJ2J1aWxkZXItMSc6IHsnYnVpbGRlcic6ICdzb21lLWJ1aWxkZXItMScsCisgICAgICAg
ICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7Zm9yY2VzY2hlZHVsZXI6ICdmb3JjZS1zb21lLWJ1
aWxkZXItMSd9fQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgICd0ZXN0Q29uZmlndXJhdGlv
bnMnOiBbCiAgICAgICAgICAgICAgICAgewpAQCAtMjEwLDggKzIxMyw4IEBAIE1vY2tEYXRhID0g
ewogICAgICAgICAgICAgICAgICdzb21lLXRlc3QnOiB7J3Rlc3QnOiBbJ3NvbWUgdGVzdCddfSwK
ICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAnYnVpbGRlcnMnOiB7Ci0gICAgICAgICAgICAg
ICAgJ2J1aWxkZXItMSc6IHsnYnVpbGRlcic6ICdzb21lLWJ1aWxkZXItMSd9LAotICAgICAgICAg
ICAgICAgICdidWlsZGVyLTInOiB7J2J1aWxkZXInOiAnc29tZSBidWlsZGVyIDInfSwKKyAgICAg
ICAgICAgICAgICAnYnVpbGRlci0xJzogeydidWlsZGVyJzogJ3NvbWUtYnVpbGRlci0xJywgcHJv
cGVydGllczoge2ZvcmNlc2NoZWR1bGVyOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0sCisgICAg
ICAgICAgICAgICAgJ2J1aWxkZXItMic6IHsnYnVpbGRlcic6ICdzb21lIGJ1aWxkZXIgMicsIHBy
b3BlcnRpZXM6IHtmb3JjZXNjaGVkdWxlcjogJ2ZvcmNlLXNvbWUtYnVpbGRlci0yJ319LAogICAg
ICAgICAgICAgfSwKICAgICAgICAgICAgICd0ZXN0Q29uZmlndXJhdGlvbnMnOiBbCiAgICAgICAg
ICAgICAgICAgewpAQCAtMjc2LDEwICsyNzksMzQgQEAgTW9ja0RhdGEgPSB7CiAgICAgICAgICAg
ICBdCiAgICAgICAgIH0KICAgICB9LAorICAgIHBlbmRpbmdCdWlsZERhdGEob3B0aW9ucykKKyAg
ICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAiYnVpbGRlcmlkIjogb3B0aW9ucy5i
dWlsZGVySWQgfHwgMiwKKyAgICAgICAgICAgICJidWlsZHJlcXVlc3RpZCI6IChvcHRpb25zLmJ1
aWxkUmVxdWVzdElkIHx8IDcwMikudG9TdHJpbmcoKSwKKyAgICAgICAgICAgICJidWlsZHNldGlk
IjogODk0NzIwLAorICAgICAgICAgICAgImNsYWltZWQiOiBmYWxzZSwKKyAgICAgICAgICAgICJj
bGFpbWVkX2F0IjogbnVsbCwKKyAgICAgICAgICAgICJjbGFpbWVkX2J5X21hc3RlcmlkIjogbnVs
bCwKKyAgICAgICAgICAgICJjb21wbGV0ZSI6IGZhbHNlLAorICAgICAgICAgICAgImNvbXBsZXRl
X2F0IjogbnVsbCwKKyAgICAgICAgICAgICJwcmlvcml0eSI6IDAsCisgICAgICAgICAgICAicmVz
dWx0cyI6IC0xLAorICAgICAgICAgICAgInN1Ym1pdHRlZF9hdCI6IG9wdGlvbnMuYnVpbGRUaW1l
IHx8IDE0NTg3MDQ5ODMsCisgICAgICAgICAgICAid2FpdGVkX2ZvciI6IGZhbHNlCisgICAgICAg
IH07CisgICAgfSwKICAgICBwZW5kaW5nQnVpbGQob3B0aW9ucykKICAgICB7CiAgICAgICAgIG9w
dGlvbnMgPSBvcHRpb25zIHx8IHt9OwogICAgICAgICByZXR1cm4geworICAgICAgICAgICAgImJ1
aWxkcmVxdWVzdHMiOiBbdGhpcy5wZW5kaW5nQnVpbGREYXRhKG9wdGlvbnMpXQorICAgICAgICB9
OworICAgIH0sCisgICAgcGVuZGluZ0J1aWxkRGVwcmVjYXRlZChvcHRpb25zKQorICAgIHsKKyAg
ICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CisgICAgICAgIHJldHVybiB7CiAgICAgICAg
ICAgICAnYnVpbGRlck5hbWUnOiBvcHRpb25zLmJ1aWxkZXIgfHwgJ3NvbWUtYnVpbGRlci0xJywK
ICAgICAgICAgICAgICdidWlsZHMnOiBbXSwKICAgICAgICAgICAgICdwcm9wZXJ0aWVzJzogWwpA
QCAtMjk4LDU1ICszMjUsNjYgQEAgTW9ja0RhdGEgPSB7CiAgICAgICAgICAgICB9LAogICAgICAg
ICB9OwogICAgIH0sCi0gICAgcnVubmluZ0J1aWxkKG9wdGlvbnMpCisgICAgc2FtcGxlQnVpbGRE
YXRhKG9wdGlvbnMpCiAgICAgewogICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsKICAg
ICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgICdidWlsZGVyTmFtZSc6IG9wdGlvbnMuYnVpbGRl
ciB8fCAnc29tZS1idWlsZGVyLTEnLAotICAgICAgICAgICAgJ2J1aWxkcyc6IFtdLAotICAgICAg
ICAgICAgJ3Byb3BlcnRpZXMnOiBbCi0gICAgICAgICAgICAgICAgWyd3aycsIG9wdGlvbnMud2Vi
a2l0UmV2aXNpb24gfHwgJzE5MjczNiddLAotICAgICAgICAgICAgICAgIFsnb3MnLCBvcHRpb25z
Lm9zeFJldmlzaW9uIHx8ICcxMC4xMSAxNUEyODQnXSwKLSAgICAgICAgICAgICAgICBbJ2J1aWxk
LXJlcXVlc3QtaWQnLCAob3B0aW9ucy5idWlsZFJlcXVlc3RJZCB8fCA3MDEpLnRvU3RyaW5nKCks
IF0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAnY3VycmVudFN0ZXAnOiB7fSwKLSAgICAg
ICAgICAgICdldGEnOiA3MjEsCi0gICAgICAgICAgICAnbnVtYmVyJzogb3B0aW9ucy5idWlsZE51
bWJlciB8fCAxMjQsCi0gICAgICAgICAgICAnc291cmNlJzogewotICAgICAgICAgICAgICAgICdi
cmFuY2gnOiAnJywKLSAgICAgICAgICAgICAgICAnY2hhbmdlcyc6IFtdLAotICAgICAgICAgICAg
ICAgICdjb2RlYmFzZSc6ICdXZWJLaXQnLAotICAgICAgICAgICAgICAgICdoYXNQYXRjaCc6IGZh
bHNlLAotICAgICAgICAgICAgICAgICdwcm9qZWN0JzogJycsCi0gICAgICAgICAgICAgICAgJ3Jl
cG9zaXRvcnknOiAnJywKLSAgICAgICAgICAgICAgICAncmV2aXNpb24nOiAnJwotICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgICJidWlsZGVyaWQiOiBvcHRpb25zLmJ1aWxkZXJJZCB8fCAyLAor
ICAgICAgICAgICAgIm51bWJlciI6ICBvcHRpb25zLmJ1aWxkTnVtYmVyIHx8IDEyNCwgCisgICAg
ICAgICAgICAiYnVpbGRyZXF1ZXN0aWQiOiAob3B0aW9ucy5idWlsZFJlcXVlc3RJZCB8fCA3MDEp
LnRvU3RyaW5nKCksCisgICAgICAgICAgICAiY29tcGxldGUiOiBvcHRpb25zLmlzQ29tcGxldGUs
CisgICAgICAgICAgICAiY29tcGxldGVfYXQiOiBudWxsLAorICAgICAgICAgICAgImJ1aWxkaWQi
OiA0MTg3NDQsCisgICAgICAgICAgICAibWFzdGVyaWQiOiAxLAorICAgICAgICAgICAgInJlc3Vs
dHMiOiBudWxsLAorICAgICAgICAgICAgInN0YXJ0ZWRfYXQiOiAxNTEzNzI1MTA5LAorICAgICAg
ICAgICAgInN0YXRlX3N0cmluZyI6ICJidWlsZGluZyIsCisgICAgICAgICAgICAid29ya2VyaWQi
OiA0MSwKKyAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogeworICAgICAgICAgICAgICAgICJvcyI6
IFtvcHRpb25zLm9zeFJldmlzaW9uIHx8ICcxMC4xMSAxNUEyODQnLCAiVW5rbm93biJdLAorICAg
ICAgICAgICAgICAgICJ3ayI6IFtvcHRpb25zLndlYmtpdFJldmlzaW9uIHx8ICcxOTI3MzYnLCAi
VW5rbm93biJdLAorICAgICAgICAgICAgICAgICJwcm9qZWN0IjogWycnLCAiVW5rbm93biJdLAor
ICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogWycnLCAiVW5rbm93biJdLAorICAgICAgICAg
ICAgICAgICJyZXZpc2lvbiI6IFsnJywgIlVua25vd24iXSwKKyAgICAgICAgICAgICAgICAic2xh
dmVuYW1lIjogW29wdGlvbnMud29ya2VyTmFtZSB8fCAiYm90MjAyIiwgIldvcmtlciAoZGVwcmVj
YXRlZCkiXSwKKyAgICAgICAgICAgICAgICAid29ya2VybmFtZSI6IFtvcHRpb25zLndvcmtlck5h
bWUgfHwgImJvdDIwMiIsICJXb3JrZXIiXQorICAgICAgICAgICAgfQorICAgICAgICB9OyAgIAor
ICAgIH0sCisgICAgcnVubmluZ0J1aWxkRGF0YShvcHRpb25zKQorICAgIHsKKyAgICAgICAgb3B0
aW9ucyA9IG9wdGlvbnMgfHwge307CisgICAgICAgIG9wdGlvbnMuaXNDb21wbGV0ZSA9IGZhbHNl
OworICAgICAgICBpZiAoIW9wdGlvbnMuYnVpbGRSZXF1ZXN0SWQpCisgICAgICAgICAgICBvcHRp
b25zLmJ1aWxkUmVxdWVzdElkID0gNzAxOworICAgICAgICBpZiAoIW9wdGlvbnMuYnVpbGROdW1i
ZXIpCisgICAgICAgICAgICBvcHRpb25zLmJ1aWxkTnVtYmVyID0gMTI0OworICAgICAgICBpZiAo
IW9wdGlvbnMud2Via2l0UmV2aXNpb24pCisgICAgICAgICAgICBvcHRpb25zLndlYmtpdFJldmlz
aW9uID0gJzE5MjczNic7CisgICAgICAgIHJldHVybiB0aGlzLnNhbXBsZUJ1aWxkRGF0YShvcHRp
b25zKTsKKyAgICB9LAorICAgIHJ1bm5pbmdCdWlsZChvcHRpb25zKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHsKKyAgICAgICAgICAgICJidWlsZHMiOiBbdGhpcy5ydW5uaW5nQnVpbGREYXRhKG9w
dGlvbnMpXQogICAgICAgICB9OwogICAgIH0sCi0gICAgZmluaXNoZWRCdWlsZChvcHRpb25zKQor
ICAgIGZpbmlzaGVkQnVpbGREYXRhKG9wdGlvbnMpCiAgICAgewogICAgICAgICBvcHRpb25zID0g
b3B0aW9ucyB8fCB7fTsKKyAgICAgICAgb3B0aW9ucy5pc0NvbXBsZXRlID0gdHJ1ZTsKKyAgICAg
ICAgaWYgKCFvcHRpb25zLmJ1aWxkUmVxdWVzdElkKQorICAgICAgICAgICAgb3B0aW9ucy5idWls
ZFJlcXVlc3RJZCA9IDcwMDsKKyAgICAgICAgaWYgKCFvcHRpb25zLmJ1aWxkTnVtYmVyKQorICAg
ICAgICAgICAgb3B0aW9ucy5idWlsZE51bWJlciA9IDEyMzsKKyAgICAgICAgaWYgKCFvcHRpb25z
LndlYmtpdFJldmlzaW9uKQorICAgICAgICAgICAgb3B0aW9ucy53ZWJraXRSZXZpc2lvbiA9ICcx
OTE2MjInOworICAgICAgICByZXR1cm4gdGhpcy5zYW1wbGVCdWlsZERhdGEob3B0aW9ucyk7Cisg
ICAgfSwKKyAgICBmaW5pc2hlZEJ1aWxkKG9wdGlvbnMpCisgICAgewogICAgICAgICByZXR1cm4g
ewotICAgICAgICAgICAgJ2J1aWxkZXJOYW1lJzogb3B0aW9ucy5idWlsZGVyIHx8ICdzb21lLWJ1
aWxkZXItMScsCi0gICAgICAgICAgICAnYnVpbGRzJzogW10sCi0gICAgICAgICAgICAncHJvcGVy
dGllcyc6IFsKLSAgICAgICAgICAgICAgICBbJ3drJywgb3B0aW9ucy53ZWJraXRSZXZpc2lvbiB8
fCAnMTkxNjIyJ10sCi0gICAgICAgICAgICAgICAgWydvcycsIG9wdGlvbnMub3N4UmV2aXNpb24g
fHwgJzEwLjExIDE1QTI4NCddLAotICAgICAgICAgICAgICAgIFsnYnVpbGQtcmVxdWVzdC1pZCcs
IChvcHRpb25zLmJ1aWxkUmVxdWVzdElkIHx8IDcwMCkudG9TdHJpbmcoKSwgXQotICAgICAgICAg
ICAgXSwKLSAgICAgICAgICAgICdjdXJyZW50U3RlcCc6IG51bGwsCi0gICAgICAgICAgICAnZXRh
JzogbnVsbCwKLSAgICAgICAgICAgICdudW1iZXInOiBvcHRpb25zLmJ1aWxkTnVtYmVyIHx8IDEy
MywKLSAgICAgICAgICAgICdzb3VyY2UnOiB7Ci0gICAgICAgICAgICAgICAgJ2JyYW5jaCc6ICcn
LAotICAgICAgICAgICAgICAgICdjaGFuZ2VzJzogW10sCi0gICAgICAgICAgICAgICAgJ2NvZGVi
YXNlJzogJ1dlYktpdCcsCi0gICAgICAgICAgICAgICAgJ2hhc1BhdGNoJzogZmFsc2UsCi0gICAg
ICAgICAgICAgICAgJ3Byb2plY3QnOiAnJywKLSAgICAgICAgICAgICAgICAncmVwb3NpdG9yeSc6
ICcnLAotICAgICAgICAgICAgICAgICdyZXZpc2lvbic6ICcnCi0gICAgICAgICAgICB9LAotICAg
ICAgICAgICAgJ3RpbWVzJzogWzAsIDFdLAorICAgICAgICAgICAgImJ1aWxkcyI6IFt0aGlzLmZp
bmlzaGVkQnVpbGREYXRhKG9wdGlvbnMpXQogICAgICAgICB9OwogICAgIH0KIH0KZGlmZiAtLWdp
dCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3Qt
dHJpZ2dlcmFibGUtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzCmluZGV4IGYzMzFmYmU1ZWNi
Li43OGRjNjIwMWQxOSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5qcworKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxl
LXRlc3RzLmpzCkBAIC0zNiw3ICszNiw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxl
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1l
OiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBj
b25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNl
cnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAg
ICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVu
KCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJl
cXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0
YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RC
dWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJl
c29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90
QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKQEAgLTQ2LDI5ICs0NiwzMCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdC
dWlsZHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOwogICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVp
bGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1
aWxkKCksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoKX0pOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKDIsIDIpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSgpLCBN
b2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSgpXX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2ZvcmNlJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1y
ZXF1ZXN0LWlkJzogJzcwMid9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1z
b21lLWJ1aWxkZXItMScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS5kYXRhLCB7J2lkJzogNzAyLCAnanNvbnJwYyc6ICcyLjAnLCAn
bWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ3drJzog
JzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6IDcwMiwg
J2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319KTsKICAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUt
YnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzNdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCgpXSkKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbM10ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1i
dWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5n
QnVpbGQoKSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCgpfSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoMiwgMikpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbNF0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKCks
IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKCldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tU
ZXN0U3luY0NvbmZpZ1dpdGhTaW5nbGVCdWlsZGVyKCkudHJpZ2dlcmFibGVOYW1lKTsKQEAgLTky
LDI4ICs5MywyOCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgICAgICBsZXQgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywg
cGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIGxldCB0cmlnZ2VyYWJsZSA9
IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwg
TW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQ
cm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxl
LnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJz
VVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQo
KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9j
a0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51
cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCgpXSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJz
L3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEu
cnVubmluZ0J1aWxkKCksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoKX0pOworICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKDIsIDIpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnIDogW01vY2tEYXRhLnJ1bm5pbmdCdWls
ZERhdGEoKSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoKV19KTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWls
ZGVyLTEvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSk7
CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKFtNb2Nr
RGF0YS5wZW5kaW5nQnVpbGQoKV0pCiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
M10ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKCksIFstMl06IE1vY2tEYXRh
LmZpbmlzaGVkQnVpbGQoKX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDIsIDIpKTsK
KyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoeydidWls
ZHMnIDogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoKSwgTW9ja0RhdGEuZmluaXNoZWRCdWls
ZERhdGEoKV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CkBAIC0xNDIsNTAgKzE0Myw1MSBAQCBkZXNjcmliZSgn
QnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBjb25z
dCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307
CiAgICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2Vy
YWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZl
SW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxl
LmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9j
a0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgICAg
IGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQn
LCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1
aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcvanNvbi9i
dWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDk5OX0p
XSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAy
L3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMykpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZShbXSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24v
YnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJs
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikpOwogICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCAnL2pz
b24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0t
MicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDMsIDIpKTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDUpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYnVpbGRlcnMvc29tZSUy
MGJ1aWxkZXIlMjAyL2ZvcmNlJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEw
LjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMCd9KTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYXBpL3YyL2Zv
cmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOyAvL1RPRE86IHZlcmlmeSB0aGlz
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzRdLmRhdGEsIHsnaWQnOiAnNzAwJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3Jj
ZScsICdwYXJhbXMnOiB7CisgICAgICAgICAgICAgICAgICAgICd3ayc6ICcxOTE2MjInLCAnb3Mn
OiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAwJywgJ2ZvcmNlc2NoZWR1
bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319KTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgNyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWls
ZGVyLTEvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSk7
CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKFtNb2Nr
RGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA5OTl9KV0pOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZd
LnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9wZW5kaW5nQnVpbGRzJyk7
Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKFtNb2Nr
RGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXIgMicsIGJ1aWxkUmVxdWVz
dElkOiA3MDB9KV0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgzKSk7CisgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5k
aW5nQnVpbGQoe2J1aWxkZXJJZDogMywgYnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCAnL2pzb24vYnVp
bGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCAnL2pzb24v
YnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicp
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDMsIDIpKTsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJl
dHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpAQCAtMjAyLDcg
KzIwNCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5z
dGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWls
ZGVyJTIwMi8nKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxk
ZXJzLzMvJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1
cygpLCAncGVuZGluZycpOwpAQCAtMjIzLDQzICsyMjUsNDMgQEAgZGVzY3JpYmUoJ0J1aWxkYm90
VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgbGV0IHNsYXZlSW5m
byA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAg
ICAgICAgICBsZXQgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcs
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2Vy
KTsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJz
KCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywg
TW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1
aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVl
c3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5i
dWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWlsZGVycy9zb21l
LWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUo
W01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXSk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAn
R0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWls
ZHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMykpOwogICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29t
ZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoMiwgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMGJ1aWxkZXIlMjAyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKDMsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDYpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzRdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0x
L3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZShbTW9ja0RhdGEu
cGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSldKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmws
ICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgzKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKFtdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVu
Z3RoLCA4KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXIt
MS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgyLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5y
ZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVp
bGRlciUyMDIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoMywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbN10ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC0yNzYsNyArMjc4LDcgQEAgZGVzY3JpYmUo
J0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgp
Lmxlbmd0aCwgNCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCAnaHR0cDov
L2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgp
LCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8yLycpOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKQEAgLTI5
Nyw1MCArMjk5LDUxIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2
ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2Vy
YWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVB
UEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAg
IHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdn
ZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNv
bHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1
aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJl
Y2F0ZWQoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwo
KSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdC
dWlsZHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOwogICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
dXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMykpOwogICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgNCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWls
ZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVp
bGQoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7
YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwg
MikpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7
J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcw
MX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXX0p
OwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNd
Lm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9i
dWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgzLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNv
bHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA1KTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NU
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NF0udXJsLCAnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2ZvcmNlJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsnd2sn
OiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcw
Mid9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s0XS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScp
OworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s0XS5kYXRhLCB7J2lkJzogJzcwMicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9y
Y2UnLCAncGFyYW1zJzogeworICAgICAgICAgICAgICAgICAgICAnd2snOiAnMTkxNjIyJywgJ29z
JzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMicsICdmb3JjZXNjaGVk
dWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDcpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzVdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVp
bGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMikp
OwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZShbTW9j
a0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAyfSldKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2
XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZd
LnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgzKSk7CiAgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKFtdKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCA5KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1
aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnJlc29sdmUoe1stMV06IE1vY2tEYXRhLnJ1bm5pbmdC
dWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxk
KHtidWlsZFJlcXVlc3RJZDogNzAwfSl9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgy
LCAyKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZl
KHsnYnVpbGRzJyA6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDog
NzAxfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAwfSld
fSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
OF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbOF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAy
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKDMsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnJl
c29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewpAQCAtMzU3LDExICszNjAsMTEgQEAgZGVzY3JpYmUoJ0J1aWxk
Ym90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0
aCwgNCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDApLnN0YXR1cygpLCAnZmFpbGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLzEyMycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwo
KSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMi9idWlsZHMvMTIzJyk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0
YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
L2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksICdodHRw
Oi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzIvYnVpbGRzLzEyNCcpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwg
J3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxk
ZXJzL3NvbWUtYnVpbGRlci0xLycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQu
b3JnLyMvYnVpbGRlcnMvMi8nKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBu
dWxsKTsKICAgICAgICAgICAgIH0pOwpAQCAtMzc4LDMyICszODEsMzIgQEAgZGVzY3JpYmUoJ0J1
aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgbGV0IHNs
YXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAg
ICAgICAgICAgICAgICBsZXQgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShj
b25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywg
bG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRT
eW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAn
R0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEu
bW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIGFzc2Vy
dFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2Nr
RGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJz
KCkpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWlsZGVy
cy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJl
c29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pz
b24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
dXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikpOwogICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1i
dWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgy
KSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKFtd
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmws
ICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9
LTInKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUo
e1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pfSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJs
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikpOworICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZShNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxk
UmVxdWVzdElkOiA3MDB9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwpAQCAtNDE5LDcgKzQyMiw3IEBAIGRlc2Ny
aWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5h
bGwoKS5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksICdodHRw
Oi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvMTI0Jyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDAp
LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8yL2J1aWxk
cy8xMjQnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVz
KCksICdwZW5kaW5nJyk7CkBAIC00NDMsNTAgKzQ0Niw1MCBAQCBkZXNjcmliZSgnQnVpbGRib3RU
cmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBjb25zdCBzbGF2ZUlu
Zm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CiAgICAgICAg
ICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25m
aWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9n
Z2VyKTsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5j
ZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VU
JywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9j
a0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJl
cXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0
YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkp
OwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWlsZGVycy9z
b21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29s
dmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMn0pXSk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL3BlbmRpbmdC
dWlsZHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMykpOwogICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMv
c29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5y
dW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgWy0yXTogTW9ja0RhdGEuZmluaXNo
ZWRCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoMiwgMikpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
cmVzb2x2ZSh7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1
ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6
IDcwMH0pXX0pOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWls
ZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgzLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1szXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA1KTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRo
b2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNF0udXJsLCAnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9mb3JjZScpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVy
bCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRh
dGEsIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0
LWlkJzogJzcxMCd9KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRd
LnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNyk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbNV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxk
cycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzVdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSk7CiAgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQo
e2J1aWxkUmVxdWVzdElkOiA3MDJ9KV0pOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgJy9qc29uL2J1aWxk
ZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQo
e2J1aWxkZXI6ICdzb21lIGJ1aWxkZXIgMicsIGJ1aWxkUmVxdWVzdElkOiA3MTB9KV0pOworICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgzKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJ
ZDogMywgYnVpbGRSZXF1ZXN0SWQ6IDcxMH0pXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgOSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVy
LTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQo
e2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVp
bGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikp
OworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZSh7J2J1
aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0p
LCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXX0pOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzhdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWls
ZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgz
LCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5yZXNvbHZl
KHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKQEAgLTUxMSwxNSArNTE0LDE1IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRy
aWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgp
OwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAw
KS5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJr
aXQub3JnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8xMjMnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCks
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzIvYnVpbGRzLzEyMycpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0
dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCAnaHR0cDov
L2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8yL2J1aWxkcy8xMjQnKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdz
Y2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMikuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVy
cy9zb21lLWJ1aWxkZXItMS8nKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy8jL2J1aWxkZXJzLzIvJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVs
bCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MTApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyLycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgJ2h0
dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMy8nKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzKCksICdwZW5kaW5n
Jyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MTEpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CkBAIC01NDMsNTUg
KzU0Niw1NyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBw
YXNzd29yZDogJ3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUg
PSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCks
IE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5j
UHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJs
ZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVy
c1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVk
KCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1v
Y2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRz
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpKTsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoW10pOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwg
Jy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9wZW5kaW5nQnVpbGRzJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDMpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoW10pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0x
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHti
dWlsZFJlcXVlc3RJZDogNzEwfSl9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAy
KSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKE1v
Y2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sz
XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvYnVpbGRzLz9zZWxlY3Q9
LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sz
XS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1
aWxkZXIgMicsIGJ1aWxkUmVxdWVzdElkOiA3MDB9KX0pOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKDMsIDIpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNd
LnJlc29sdmUoTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IDMsIGJ1aWxkUmVxdWVz
dElkOiA3MDB9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAn
UE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzRdLnVybCwgJy9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvZm9yY2UnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0
YSwgeyd3ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3Qt
aWQnOiAnNzAxJ30pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzRdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVp
bGRlci0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzRdLmRhdGEsIHsnaWQnOiAnNzAxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhv
ZCc6ICdmb3JjZScsICdwYXJhbXMnOiB7CisgICAgICAgICAgICAgICAgICAgICd3ayc6ICcxOTI3
MzYnLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAxJywgJ2Zv
cmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0yJ319KTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnUE9TVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVd
LnVybCwgJy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9mb3JjZScpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5kYXRhLCB7J3drJzog
JzE5MjczNicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MTEn
fSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NV0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NV0uZGF0YSwgeydpZCc6ICc3MTEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNl
JywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ3drJzogJzE5MjczNicsICdvcyc6
ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MTEnLCAnZm9yY2VzY2hlZHVs
ZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCA4KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxk
ZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpKTsK
ICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnJlc29sdmUoW01vY2tE
YXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMX0pXSk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10u
dXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsK
LSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnJlc29sdmUoW01vY2tE
YXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlciAyJyxidWlsZFJlcXVlc3RJ
ZDogNzAxfSldKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMykpOworICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGlu
Z0J1aWxkKHtidWlsZGVySWQ6IDMsIGJ1aWxkUmVxdWVzdElkOiA3MDF9KV0pOwogICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsICcvanNvbi9idWls
ZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnJlc29sdmUoe1stMV06IE1vY2tE
YXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pfSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoMiwgMikpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbOF0ucmVzb2x2ZShNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3
MTB9KSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbOV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbOV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIl
MjAyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbOV0ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxk
KHtidWlsZGVyOiAnc29tZSBidWlsZGVyIDInLCBidWlsZFJlcXVlc3RJZDogNzAwfSl9KTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s5XS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgzLCAyKSk7CisgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s5XS5yZXNvbHZlKE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRl
cklkOiAzLCBidWlsZFJlcXVlc3RJZDogNzAwfSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBz
eW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKQEAgLTYxNSwxNyAr
NjIwLDE3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3Rh
dHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRl
ciUyMDIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
LyMvYnVpbGRlcnMvMy9idWlsZHMvMTI0Jyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1
c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIl
MjAyLycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAxKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMv
My8nKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCks
ICdwZW5kaW5nJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0
YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZS1idWlsZGVy
LTEvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMv
YnVpbGRlcnMvMi9idWlsZHMvMTI0Jyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1c1Vy
bCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEp
LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8yLycpOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKQEAgLTY0NiwyNiArNjUxLDI3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxl
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1l
OiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBj
b25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNl
cnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAg
ICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVu
KCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJl
cXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWls
ZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNh
dGVkKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3Rz
WzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2Nr
QnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0
KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbMF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1
aWxkcycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRlcnMv
c29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKDIsIDIpKTsKICAgICAgICAgICAgICAgICByZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzJdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbMl0udXJsLCAnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2ZvcmNlJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1syXS5kYXRhLCB7J3drJzogJzE5MTYyMics
ICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDAnfSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLnVybCwgJy9hcGkvdjIvZm9yY2Vz
Y2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChyZXF1ZXN0c1syXS5kYXRhLCB7J2lkJzogJzcwMCcsICdqc29ucnBjJzogJzIu
MCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzogeworICAgICAgICAgICAgICAgICAgICAn
d2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzog
JzcwMCcsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJl
c29sdmUsIDEwKSk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKQEAgLTY3NCwxMyArNjgwLDEzIEBA
IGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS51
cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sz
XS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV0p
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA1KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbNF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzRdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1s0XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSk7CiAgICAgICAgICAgICAg
ICAgcmVxdWVzdHNbNF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQ
cm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC02ODgsNyArNjk0LDcgQEAg
ZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgp
LCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0
YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8yLycpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0
dXMoKSwgJ3BlbmRpbmcnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKQEAgLTcyMyw1NCArNzI5LDU1IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAn
c3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICB0cmln
Z2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1v
dGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAg
ICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRy
aWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRS
ZXNvbHZlKHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERl
cHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOwor
ICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzBdLCAnR0VU
JywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RC
dWlsZGVycygpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZl
KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRp
bmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUo
cmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpLCBbXSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNv
bHZlKHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1
aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsCi0gICAgICAgICAgICAgICAgICAgIHtbLTFdOiBN
b2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KSwgWy0yXTogTW9ja0Rh
dGEuZmluaXNoZWRCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pfSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoMiwgMiksCisgICAgICAgICAgICAgICAgICAgIHsnYnVpbGRzJyA6IFtN
b2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAwfSksIE1vY2tEYXRh
LmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzEwfSldfSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDMpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVl
c3RzWzJdLCAnUE9TVCcsICcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvZm9yY2UnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzJdLmRhdGEsIHsnd2snOiAnMTky
NzM2JywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMSd9KTsK
KyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1syXSwgJ1BP
U1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
ZGF0YSwgeydpZCc6ICc3MDEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywg
J3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ3drJzogJzE5MjczNicsICdvcyc6ICcx
MC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDEnLCAnZm9yY2VzY2hlZHVsZXIn
OiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1szXSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJywKKyAgICAgICAgICAg
ICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoMiksCiAgICAgICAgICAgICAgICAgICAgIFtNb2NrRGF0YS5wZW5k
aW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDF9KV0pOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA1KTsK
LSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s0XSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInLAotICAgICAgICAgICAgICAgICAgICB7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxk
KHtidWlsZFJlcXVlc3RJZDogNzAwfSksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1
aWxkUmVxdWVzdElkOiA3MTB9KX0pOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRS
ZXNvbHZlKHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDIsIDIp
LAorICAgICAgICAgICAgICAgICAgICB7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGRE
YXRhKHtidWlsZFJlcXVlc3RJZDogNzAwfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHti
dWlsZFJlcXVlc3RJZDogNzEwfSldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9t
aXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgc3luY1By
b21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUu
c3luY09uY2UoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVx
dWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgp
LCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0
YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkp
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5k
UmVzb2x2ZShyZXF1ZXN0c1s2XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXIt
MS9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRS
ZXNvbHZlKHJlcXVlc3RzWzZdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSwg
W10pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA4KTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0
QW5kUmVzb2x2ZShyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxk
ZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLAotICAgICAgICAgICAgICAgICAgICB7
Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIFstMl06
IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbN10sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMiksCisgICAgICAgICAgICAgICAgICAgIHsnYnVpbGRz
JzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgTW9j
a0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXX0pOwogICAgICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA5KTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShy
ZXF1ZXN0c1s4XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5n
QnVpbGRzJywgW10pOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJl
cXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSwgW10pOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAxMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29s
dmUocmVxdWVzdHNbOV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVp
bGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywKLSAgICAgICAgICAgICAgICAgICAge1stMV06IE1v
Y2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBbLTJdOiBNb2NrRGF0
YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KX0pOworICAgICAgICAgICAgICAg
IGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKDIsIDIpLAorICAgICAgICAgICAgICAgICAgICB7J2J1aWxkcyc6IFtNb2Nr
RGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIE1vY2tEYXRhLnJ1
bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV19KTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC03
ODYsMzggKzc5MywzOSBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xh
dmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dl
cmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAgICAg
ICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmln
Z2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVz
b2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RC
dWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXBy
ZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJM
KCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5n
QnVpbGRzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpKTsKICAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoW10pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJz
L3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKDIsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDMpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvZm9yY2Un
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0uZGF0YSwgeyd3ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxk
LXJlcXVlc3QtaWQnOiAnNzAxJ30pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNl
LXNvbWUtYnVpbGRlci0xJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLmRhdGEsIHsnaWQnOiAnNzAxJywgJ2pzb25ycGMnOiAnMi4w
JywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOiB7CisgICAgICAgICAgICAgICAgICAgICd3
ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAn
NzAxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319KTsKICAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoJ09LJyk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCAnL2pzb24v
YnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1szXS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDF9
KV0pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOwogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVy
bCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzRdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDIsIDIpKTsKICAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoe30pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpAQCAt
ODM2LDcgKzg0NCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAwKS5zdGF0dXMoKSwgJ2ZhaWxlZCcpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAn
c2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRl
cnMvc29tZS1idWlsZGVyLTEvJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvIy9idWlsZGVycy8yLycpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIG51
bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKQEAgLTg1NSwzMSArODYzLDMxIEBAIGRlc2NyaWJl
KCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGNv
bnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQn
fTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdn
ZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xh
dmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFi
bGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAg
ICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBN
b2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dF
VCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90
QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9qc29u
L2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikp
OwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAn
L2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS5yZXNvbHZlKFtdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sz
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWls
ZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgy
LCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZl
KHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKQEAgLTkxMiwyNiArOTIwLDI4IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRy
aWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5m
byA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAg
ICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZp
ZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dn
ZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNl
cnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgICAg
IGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQn
LCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2Nr
QnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVx
dWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRh
LmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7
CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJzL3Nv
bWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2
ZShbXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
dXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2Vs
ZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikpOwogICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9idWlsZGVycy9z
b21lLWJ1aWxkZXItMS9mb3JjZScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5kYXRhLCB7J3drJzogJzE5MTYyMicsICdvcyc6ICcx
MC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MTAnfSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9m
b3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKKworICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5kYXRhLCB7J2lkJzog
JzcxMCcsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzogewor
ICAgICAgICAgICAgICAgICAgICAnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcs
ICdidWlsZC1yZXF1ZXN0LWlkJzogJzcxMCcsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21l
LWJ1aWxkZXItMSd9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5yZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtMTAwMCw3
ICsxMDEwLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywg
cGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIGNvbnN0IGJ1aWxkYm90VHJp
Z2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAg
ICAgICBjb25zdCB0cmlnZ2VyYWJsZVByb21pc2UgPSBidWlsZGJvdFRyaWdnZXJhYmxlLmluaXRT
eW5jZXJzKCkudGhlbigoKSA9PiBidWlsZGJvdFRyaWdnZXJhYmxlLnVwZGF0ZVRyaWdnZXJhYmxl
KCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVj
YXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9j
a0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRyaWdnZXJhYmxl
UHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gcmVmZXRjaE1hbmlmZXN0KCkpLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChUcmlnZ2VyYWJsZS5hbGwo
KS5sZW5ndGgsIDEpOwpAQCAtMTAyNyw3ICsxMDM3LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJp
Z2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZv
ID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAg
ICAgICAgIGNvbnN0IGJ1aWxkYm90VHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJs
ZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5m
bywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZVByb21pc2UgPSBi
dWlsZGJvdFRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiBidWlsZGJvdFRyaWdn
ZXJhYmxlLnVwZGF0ZVRyaWdnZXJhYmxlKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVl
c3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5i
dWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWls
ZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29s
dmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVp
bGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIHRyaWdnZXJhYmxlUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gcmVmZXRjaE1hbmlmZXN0KCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDEpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVn
cmF0aW9uLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90
b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzCmluZGV4IDFhNTc1NWEwMTFh
Li4wNjRiY2U3YzM4YyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1p
bnRlZ3JhdGlvbi10ZXN0cy5qcwpAQCAtMTU0LDcgKzE1NCw3IEBAIGZ1bmN0aW9uIGNyZWF0ZVRy
aWdnZXJhYmxlKGNvbmZpZyA9IGNvbmZpZ1dpdGhPbmVUZXN0ZXJUd29CdWlsZGVycykKICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2Vy
YWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHtuYW1l
OiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfSwgbmV3IE1vY2tMb2dnZXIpOwog
ICAgICAgICBjb25zdCBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhl
bigoKSA9PiB0cmlnZ2VyYWJsZS51cGRhdGVUcmlnZ2VyYWJsZSgpKTsKLSAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tE
YXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJv
dEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRl
cnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgIH0pLnRo
ZW4oKCkgPT4gTWFuaWZlc3QuZmV0Y2goKSkudGhlbigoKSA9PiB7CkBAIC0yNDksMzIgKzI0OSwz
MyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IHRhc2tJZCA9IGZpcnN0VGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAgICAgICAgICAgYW5vdGhl
clRhc2tJZCA9IHNlY29uZFRlc3RHcm91cC50YXNrKCkuaWQoKTsKICAgICAgICAgICAgIHN5bmNQ
cm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxl
LnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBN
b2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxk
Ym90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVp
bGRlcjogJ3NvbWUgdGVzdGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDV9KV0pOwotICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCAnL2pzb24vYnVpbGRl
cnMvYW5vdGhlciUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKDUpLCBbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IDUsIGJ1aWxk
UmVxdWVzdElkOiA1fSldKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg2KSwgW10pOwogICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA0KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2Vs
ZWN0PS0yJywgewotICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7
YnVpbGRlcjogJ3NvbWUgdGVzdGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KX0pOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvYW5vdGhlciUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1LCAyKSwKKyAgICAgICAgICAgICAgICBNb2NrRGF0
YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogNSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CisgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCg2LCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL2Fub3Ro
ZXIlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KDUpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1
XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNiksIFtdKTsKICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOCk7Ci0g
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMics
IHsKLSAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6
ICdzb21lIHRlc3RlcicsIGJ1aWxkUmVxdWVzdElkOiA1fSksCi0gICAgICAgICAgICAgICAgWy0y
XTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgdGVzdGVyJywgYnVpbGRS
ZXF1ZXN0SWQ6IDF9KQorICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbNl0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNSwgMiksIHsKKyAgICAgICAg
ICAgICAgICAnYnVpbGRzJzogWworICAgICAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5n
QnVpbGREYXRhKHtidWlsZGVySWQ6IDUsIGJ1aWxkUmVxdWVzdElkOiA1fSksCisgICAgICAgICAg
ICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZGVySWQ6IDUsIGJ1aWxk
UmVxdWVzdElkOiAxfSldCiAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL2Fub3RoZXIl
MjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoNiwgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZl
dGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAtMzYzLDQxICszNjQsNDEgQEAgZGVzY3JpYmUo
J3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHN5
bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJh
YmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgp
LCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1
aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCAnL2pzb24vYnVpbGRl
cnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIw
YnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDUp
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMSksIFtdKTsKKyAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCg0KSwgW10pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0
ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsK
KyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDUsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgxLCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiksIHt9KTsKICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwg
J1BPU1QnLCAnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2ZvcmNlJywgJ09LJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywg
J3drLXBhdGNoJzogUmVtb3RlQVBJLnVybCgnL2FwaS91cGxvYWRlZC1maWxlLzEuZGF0JyksCi0g
ICAgICAgICAgICAgICAgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMScsICdmb3JjZXNjaGVkdWxlcic6
ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snfSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9m
b3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMScsICdqc29ucnBjJzogJzIu
MCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzogeworICAgICAgICAgICAgICAgICd3ayc6
ICcxOTE2MjInLCAnd2stcGF0Y2gnOiBSZW1vdGVBUEkudXJsKCcvYXBpL3VwbG9hZGVkLWZpbGUv
MS5kYXQnKSwgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMScs
ICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnfX0pOwogICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7Ci0gICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywKLSAgICAgICAgICAgICAgICBbTW9j
a0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0
SWQ6IDF9KV0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
OV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMn
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNSksIFtdKTsKKyAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgxKSwKKyAgICAgICAgICAgICAgICBbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHti
dWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAxfSldKTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCg0KSwgW10pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9i
dWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAgICAgICAgICAgICAg
IFstMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1
aWxkUmVxdWVzdElkOiAxfSkKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVy
JTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoNSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgxLCAy
KSwKKyAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogMSwg
YnVpbGRSZXF1ZXN0SWQ6IDF9KQorICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCg0LCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JU
YXNrKHRhc2tJZCwgdHJ1ZSk7CkBAIC00MTEsNyArNDEyLDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVp
bGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5u
aW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRz
LzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMS9idWlsZHMvMTI0Jyk7CiAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAK
ICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsK
QEAgLTQ0OCw3ICs0NDksNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQu
d2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgYXNzZXJ0
Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBj
b25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC00NzYsNDIgKzQ3
Nyw0NCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKIAogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0
cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2Uo
KSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dF
VCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1v
Y2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVy
c1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVz
dGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9w
ZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRp
bmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNSksIFtdKTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgxKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQp
LCBbXSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3Nl
bGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9i
dWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7Ci0gICAgICAgICAgICAgICAgWy0xXTogTW9j
a0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVz
dElkOiAxfSkKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVy
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKDUsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgxLCAyKSwKKyAgICAgICAg
ICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVz
dElkOiAxfSkKKyAgICAgICAgICAgICk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg0LCAyKSwg
e30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA3KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzZdLCAnUE9TVCcsICcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvZm9yY2UnLCAnT0snKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeyd3ayc6ICcx
OTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcyJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNl
LWFiLWJ1aWxkcycsICdjaGVja2JveCc6ICdidWlsZC13ayd9KTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2No
ZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcyJywgJ2pzb25ycGMnOiAnMi4wJywgJ21l
dGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOiB7CisgICAgICAgICAgICAgICAgJ3drJzogJzE5MTYy
MicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWIt
YnVpbGRzJywgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJ319KTsKICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVy
JTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KDUpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4
XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMSksIFtdKTsKKyAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCg0KSwgW10pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRl
cnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAgICAg
ICAgICAgICAgIFstMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVp
bGRlcicsIGJ1aWxkUmVxdWVzdElkOiAyfSksCi0gICAgICAgICAgICAgICAgWy0yXTogTW9ja0Rh
dGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElk
OiAxfSksCisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0s
ICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNSwgMiksIHt9KTsKKyAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgxLCAyKSwgeworICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCisgICAg
ICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkZXJJZDogMSwg
YnVpbGRSZXF1ZXN0SWQ6IDJ9KSwKKyAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNo
ZWRCdWlsZERhdGEoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KV0KICAgICAgICAg
ICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJd
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0t
MSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxMl0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiksIHt9KTsK
ICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUp
OwpAQCAtNTI1LDcgKzUyOCw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAg
ICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxk
LndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMS9idWlsZHMvMTI0Jyk7CiAgICAgICAgICAgICBhc3Nl
cnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAg
IGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTU0Miw3ICs1
NDUsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNz
ZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9i
dWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0
dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMS9idWlsZHMvMTI0Jyk7CiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAog
ICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKTsKQEAgLTU2NCw3ICs1NjcsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsK
ICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6
Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRw
Oi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcpOwogICAgICAgICAg
ICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAg
ICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC01
ODEsNyArNTg0LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
J2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8x
MjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMS9idWlsZHMvMTI0Jyk7
CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxk
UmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTYzNiw0MSArNjM5LDQyIEBAIGRlc2NyaWJlKCdzeW5j
LWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChv
dGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBzeW5jUHJv
bWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5z
eW5jT25jZSgpKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9j
a0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJv
dEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBi
dWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxk
ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg1KSwgW10p
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDEpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoNCksIFtdKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1
aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBi
dWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCg1LCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
MSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDQsIDIpLCB7fSk7CiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcp
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NU
JywgJy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9mb3JjZScsICdPSycpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J3drJzogJzE5MTYyMicsICd3ay1w
YXRjaCc6IFJlbW90ZUFQSS51cmwoJy9hcGkvdXBsb2FkZWQtZmlsZS8xLmRhdCcpLAotICAgICAg
ICAgICAgICAgICdidWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9y
Y2UtYWItYnVpbGRzJywgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ3BsYXRmb3JtLW5hbWUnOiAn
c29tZSBwbGF0Zm9ybSd9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWls
ZHMnLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0
YSwgeydpZCc6ICcxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJh
bXMnOiB7CisgICAgICAgICAgICAgICAgJ3drJzogJzE5MTYyMicsICd3ay1wYXRjaCc6IFJlbW90
ZUFQSS51cmwoJy9hcGkvdXBsb2FkZWQtZmlsZS8xLmRhdCcpLCAnYnVpbGQtcmVxdWVzdC1pZCc6
ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsCisgICAgICAgICAgICAg
ICAgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ3BsYXRmb3JtLW5hbWUnOiAnc29tZSBwbGF0Zm9y
bSd9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDEwKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1
aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMn
LAotICAgICAgICAgICAgICAgIFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21l
IGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUy
MGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg1
KSwgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDEpLAorICAgICAgICAgICAgICAgIFtN
b2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KV0p
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCBbXSk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsK
LSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9
LTInLCB7Ci0gICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWls
ZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KQotICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1LCAyKSwge30pOworICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKDEsIDIpLAorICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5p
bmdCdWlsZCh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDogMX0pCisgICAgICAgICAgICAp
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDQsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1
cm4gc3luY1Byb21pc2U7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKQEAgLTY4NCw3ICs2ODgs
NyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVp
bGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVy
cy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWls
ZGVycy8xL2J1aWxkcy8xMjQnKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAtNzIxLDcgKzcyNSw3IEBAIGRlc2NyaWJlKCdzeW5j
LWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVz
dC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkp
OwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
Q29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIv
YnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMS9idWlsZHMvMTI0
Jyk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKTsKQEAgLTc0OSw0MiArNzUzLDQ0IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90Jywg
ZnVuY3Rpb24gKCkgewogCiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAg
ICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9
PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERl
cHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBN
b2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxk
ZXJzKCkpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCg1KSwgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDEpLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoNCksIFtdKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0gICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9z
b21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAg
ICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29t
ZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KQotICAgICAgICAgICAgfSk7Ci0gICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30p
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQn
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKDEsIDIpLAorICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1
aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KQorICAgICAgICAgICAgKTsKKyAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKDQsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwotICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9idWlsZGVycy9zb21lJTIw
YnVpbGRlci9mb3JjZScsICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1
ZXN0c1s2XS5kYXRhLCB7J3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAn
Zm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ2NoZWNrYm94JzogJ2J1aWxkLXdr
JywgJ3BsYXRmb3JtLW5hbWUnOiAnc29tZSBwbGF0Zm9ybSd9KTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2No
ZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcyJywgJ2pzb25ycGMnOiAnMi4wJywgJ21l
dGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOiB7CisgICAgICAgICAgICAgICAgJ3drJzogJzE5MTYy
MicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWIt
YnVpbGRzJywgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ3BsYXRmb3JtLW5hbWUnOiAnc29tZSBw
bGF0Zm9ybSd9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVu
ZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdC
dWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s5XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxk
cycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzdd
LCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg1KSwgW10pOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKDEpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNCksIFtdKTsK
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMTMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9
LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxk
cy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0
YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDog
Mn0pLAotICAgICAgICAgICAgICAgIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxk
ZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pLAorICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKDUsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMSwgMiksIHsK
KyAgICAgICAgICAgICAgICAnYnVpbGRzJzogWworICAgICAgICAgICAgICAgICAgICBNb2NrRGF0
YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAyfSksCisg
ICAgICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZGVySWQ6
IDEsIGJ1aWxkUmVxdWVzdElkOiAxfSldCiAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKDQsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gc3lu
Y1Byb21pc2U7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRl
c3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKQEAgLTc5OCw3ICs4MDQsNyBAQCBk
ZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2Vy
dChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1
ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3Nv
bWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJz
LzEvYnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWls
ZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC04MTUsNyArODIxLDcgQEAgZGVzY3JpYmUoJ3N5bmMt
YnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJl
cXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3Qu
aXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVy
cy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8j
L2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVy
Q29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC04MzcsNyArODQz
LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWls
ZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9i
dWlsZGVycy8xL2J1aWxkcy8xMjQnKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWls
ZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0
ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAtODU0LDcgKzg2MCw3IEBAIGRlc2NyaWJl
KCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KG90aGVy
QnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRS
ZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Vi
a2l0Lm9yZy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgYXNzZXJ0Lm5v
dEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAg
IGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBA
IC05MjUsNDYgKzkzMSw0OCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlclJvb3RzLmxlbmd0aCwgMSk7CiAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyUm9vdHNbMF0uZmlsZW5hbWUoKSwgJ3Jvb3Q0
Ni5kYXQnKTsKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNl
cnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJv
dEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0Rl
cHJlY2F0ZWQoKSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9j
a0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7
CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywg
W10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdH
RVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsK
LSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywg
Jy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKDUpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
MSksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJd
LCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg0KSwgW10pOwogICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywg
e30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdH
RVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2Vs
ZWN0PS0yJywgewotICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQo
e2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pLAotICAgICAgICAg
ICAgICAgIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxk
ZXInLCBidWlsZFJlcXVlc3RJZDogMn0pLAorICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNSwgMiks
IHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDEsIDIpLCB7CisgICAgICAgICAgICAgICAg
J2J1aWxkcyc6IFsKKyAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERh
dGEoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSwKKyAgICAgICAgICAgICAgICAg
ICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0
SWQ6IDJ9KV0KICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVy
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKDQsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9idWlsZGVycy9zb21lJTIwdGVzdGVyL2ZvcmNl
JywgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEs
IHsndGVzdCc6ICdzb21lLXRlc3QnLCAnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQn
OiAnMycsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi10ZXN0cycsCi0gICAgICAgICAgICAg
ICAgJ3Jvb3RzJzogSlNPTi5zdHJpbmdpZnkoW3t1cmw6IGZpcnN0Um9vdC51cmwoKX1dKX0pOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywg
Jy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLXRlc3RzJywgJ09LJyk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMycsICdqc29u
cnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzogeworICAgICAgICAgICAg
ICAgICd0ZXN0JzogJ3NvbWUtdGVzdCcsICd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1p
ZCc6ICczJywnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItdGVzdHMnLCAncm9vdHMnOiBKU09O
LnN0cmluZ2lmeShbe3VybDogZmlyc3RSb290LnVybCgpfV0pfX0pOwogICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7Ci0gICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbCi0gICAgICAgICAgICAg
ICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSB0ZXN0ZXInLCBidWlsZFJl
cXVlc3RJZDogM30pLAorICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDUpLCBbCisgICAgICAgICAg
ICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IDUsIGJ1aWxkUmVxdWVzdElk
OiAzfSksCiAgICAgICAgICAgICBdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3Bl
bmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s5XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGlu
Z0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgxKSwgW10pOworICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCBbXSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKLSAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9z
b21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7Ci0g
ICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ3Nv
bWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSksCi0gICAgICAgICAgICAgICAgWy0yXTog
TW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVx
dWVzdElkOiAyfSksCisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNSwgMiksIHt9KTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgxLCAyKSwgeworICAgICAgICAgICAgICAgICdidWlsZHMnOiBb
CisgICAgICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZGVy
SWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAxfSksCisgICAgICAgICAgICAgICAgICAgIE1vY2tEYXRh
LmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAyfSldCiAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzEyXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDQsIDIp
LCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgIH0pOwogICAg
IH0pOwpAQCAtOTk4LDM4ICsxMDA2LDQxIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUu
aW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0
YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RC
dWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9j
a0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW01vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKSwgdXBsb2FkUm9vdCgxLCAxMjMpXSk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0g
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVpbGRl
cnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoNSksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgxKSwgW10pOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCBbXSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7Ci0g
ICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVyOiAnc29t
ZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDJ9KSwKLSAgICAgICAgICAgICAgICBbLTJdOiBN
b2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1
ZXN0SWQ6IDF9KSwKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDUsIDIpLCB7fSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgxLCAyKSwgeworICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCisg
ICAgICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkZXJJZDog
MSwgYnVpbGRSZXF1ZXN0SWQ6IDJ9KSwKKyAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmlu
aXNoZWRCdWlsZERhdGEoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KQorICAgICAg
ICAgICAgICAgIF0KICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWls
ZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKDQsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rl
ci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVu
ZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5n
QnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbNl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDUpLCBbXSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoMSksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg0KSwg
W10pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAxMik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s5XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9i
dWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7Ci0gICAgICAgICAgICAgICAgWy0xXTogTW9j
a0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0
SWQ6IDIsIGJ1aWxkTnVtYmVyOiAxMDAyfSksCi0gICAgICAgICAgICAgICAgWy0yXTogTW9ja0Rh
dGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElk
OiAxfSksCisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwg
J0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1LCAyKSwge30pOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKDEsIDIpLCB7CisgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKKyAgICAg
ICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkZXJJZDogMSwg
YnVpbGRSZXF1ZXN0SWQ6IDIsIGJ1aWxkTnVtYmVyOiAxMDAyfSksCisgICAgICAgICAgICAgICAg
ICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVl
c3RJZDogMX0pXQogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWls
ZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCg0LCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hG
b3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CkBAIC0xMDUwLDcgKzEwNjEsNyBAQCBkZXNjcmliZSgnc3lu
Yy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxk
UmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVz
dC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxk
ZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMDAyJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEwMDInKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogICAgICAgICB9KTsKICAgICB9KTsK
QEAgLTEwODQsMzYgKzEwOTUsMzYgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0
U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1
aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxk
ZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0
YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVz
ZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1swXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWls
ZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sx
XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywg
W10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdH
RVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNSksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgxKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCBbXSk7CiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYp
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9
LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0
XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0t
MSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRz
Lz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRh
LmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdvdGhlciBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6
IDEsIGJ1aWxkTnVtYmVyOiAzMTJ9KSwKLSAgICAgICAgICAgIH0pOworICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoNSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDEsIDIpLCB7fSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg0LCAyKSwKKyAgICAgICAgICAgICAgICBNb2NrRGF0
YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVySWQ6IDQsIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZE51
bWJlcjogMzEyfSkKKyAgICAgICAgICAgICk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwotICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1
aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRl
ci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbNl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDUpLCBbXSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMSksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCg0KSwgW10pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAxMik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1
aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIw
YnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRl
cnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAg
ICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnb3RoZXIg
YnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZE51bWJlcjogMzEyfSksCi0gICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzld
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDUsIDIpLCB7fSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoMSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg0LCAy
KSwKKyAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVySWQ6IDQs
IGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZE51bWJlcjogMzEyfSkKKyAgICAgICAgICAgICk7CiAg
ICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsK
QEAgLTExMjQsNyArMTEzNSw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxZXVzdHNbMF0uaXNCdWlsZCgpKTsKICAg
ICAgICAgICAgIGFzc2VydCghYnVpbGRSZXFldXN0c1swXS5pc1Rlc3QoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXFldXN0c1swXS5zdGF0dXNMYWJlbCgpLCAnRmFpbGVkJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXFldXN0c1swXS5zdGF0dXNVcmwoKSwg
J2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMv
MzEyJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXFldXN0c1swXS5zdGF0dXNV
cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvNC9idWlsZHMvMzEyJyk7
CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXFldXN0c1swXS5idWlsZElkKCksIG51
bGwpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXFldXN0c1sxXS5pc0J1aWxkKCkpOwpA
QCAtMTE5Miw0MCArMTIwMyw0MiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9v
dEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5p
bml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRh
LmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1
aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2Nr
RGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1swXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdC
dWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1sxXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRz
JywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNSksIFtdKTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgxKSwgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCBbXSk7CiAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDYpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdH
RVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVp
bGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
NSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDEsIDIpLCB7fSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCg0LCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYnVpbGRlcnMvc29tZSUy
MGJ1aWxkZXIvZm9yY2UnLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVx
dWVzdHNbNl0uZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcxJywg
J2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdvd25lZC1jb21taXRzJzogYHsi
V2ViS2l0IjpbeyJyZXZpc2lvbiI6Im93bmVkLWpzYy02MTYxIiwicmVwb3NpdG9yeSI6IkphdmFT
Y3JpcHRDb3JlIiwib3duZXJSZXZpc2lvbiI6IjE5MTYyMiJ9XX1gfSk7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3Jj
ZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMScsICdqc29ucnBjJzogJzIuMCcs
ICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzogeworICAgICAgICAgICAgICAgICd3ayc6ICcx
OTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNl
LWFiLWJ1aWxkcycsCisgICAgICAgICAgICAgICAgJ293bmVkLWNvbW1pdHMnOiBgeyJXZWJLaXQi
Olt7InJldmlzaW9uIjoib3duZWQtanNjLTYxNjEiLCJyZXBvc2l0b3J5IjoiSmF2YVNjcmlwdENv
cmUiLCJvd25lclJldmlzaW9uIjoiMTkxNjIyIn1dfWB9fSk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLAotICAgICAgICAgICAgICAgIFtNb2NrRGF0
YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDog
MX0pXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtd
KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg1KSwgW10pOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKDEpLAorICAgICAgICAgICAgICAgIFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxk
ZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KV0pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KDQpLCBbXSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDEzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxk
cy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVp
bGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7Ci0gICAgICAgICAgICAgICAgWy0x
XTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRS
ZXF1ZXN0SWQ6IDF9KQotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBi
dWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCg1LCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDEsIDIpLAor
ICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiAxLCBidWls
ZFJlcXVlc3RJZDogMX0pCisgICAgICAgICAgICApOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KDQsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2so
dGFza0lkLCB0cnVlKTsKQEAgLTEyNDAsNyArMTI1Myw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxk
Ym90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1
aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmlu
ZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
J2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8x
MjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcpOwogICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAg
ICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBA
IC0xMjgwLDcgKzEyOTMsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAg
ICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQu
d2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgYXNzZXJ0
Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBj
b25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC0xMzEzLDQyICsx
MzI2LDQ0IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogCiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9
IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25j
ZSgpKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAn
R0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEu
bW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxk
ZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0
ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVy
L3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVu
ZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg1KSwgW10pOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKDEpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
NCksIFtdKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/
c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVy
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAgICAgICBbLTFdOiBN
b2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1
ZXN0SWQ6IDF9KQotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxk
ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoNSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDEsIDIpLAorICAgICAg
ICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1
ZXN0SWQ6IDF9KQorICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDQsIDIp
LCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDcpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbNl0sICdQT1NUJywgJy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9mb3JjZScsICdPSycp
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J3drJzog
JzE5MjczNicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9y
Y2UtYWItYnVpbGRzJywgJ293bmVkLWNvbW1pdHMnOiBgeyJXZWJLaXQiOlt7InJldmlzaW9uIjoi
b3duZWQtanNjLTkxOTEiLCJyZXBvc2l0b3J5IjoiSmF2YVNjcmlwdENvcmUiLCJvd25lclJldmlz
aW9uIjoiMTkyNzM2In1dfWB9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1i
dWlsZHMnLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0u
ZGF0YSwgeydpZCc6ICcyJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdw
YXJhbXMnOiB7CisgICAgICAgICAgICAgICAgJ3drJzogJzE5MjczNicsICdidWlsZC1yZXF1ZXN0
LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ293bmVkLWNv
bW1pdHMnOiBgeyJXZWJLaXQiOlt7InJldmlzaW9uIjoib3duZWQtanNjLTkxOTEiLCJyZXBvc2l0
b3J5IjoiSmF2YVNjcmlwdENvcmUiLCJvd25lclJldmlzaW9uIjoiMTkyNzM2In1dfWB9fSk7CiAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDEwKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzdd
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtd
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0g
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCg1KSwgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDEp
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNCksIFtdKTsKICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwotICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywg
e30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNl
bGVjdD0tMicsIHsKLSAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQo
e2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMn0pLAotICAgICAgICAg
ICAgICAgIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxk
ZXInLCBidWlsZFJlcXVlc3RJZDogMX0pLAorICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDUsIDIp
LCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0s
ICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMSwgMiksIHsKKyAgICAgICAgICAgICAg
ICAnYnVpbGRzJzogWworICAgICAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGRE
YXRhKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAyfSksCisgICAgICAgICAgICAgICAg
ICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVz
dElkOiAxfSldCiAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxk
ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKDQsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZv
clRhc2sodGFza0lkLCB0cnVlKTsKQEAgLTEzNjMsNyArMTM3OCw3IEBAIGRlc2NyaWJlKCdzeW5j
LWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVz
dC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkp
OwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAn
Q29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIv
YnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMS9idWlsZHMvMTI0
Jyk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKTsKQEAgLTEzODMsNyArMTM5OCw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90Jywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsK
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1
aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8x
L2J1aWxkcy8xMjQnKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9
IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAtMTQwOCw3ICsxNDIzLDcgQEAgZGVz
Y3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQo
YnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVz
dC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21l
JTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8x
L2J1aWxkcy8xMjQnKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAtMTQyOCw3ICsxNDQzLDcgQEAgZGVzY3JpYmUoJ3N5bmMt
YnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJl
cXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3Qu
aXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxk
ZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
LyMvYnVpbGRlcnMvMS9idWlsZHMvMTI0Jyk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qg
b3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTE0OTEs
NDAgKzE1MDYsNDEgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygp
LCBbXSk7CiAKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNl
cnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJv
dEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0Rl
cHJlY2F0ZWQoKSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9j
a0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7
CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywg
W10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdH
RVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsK
LSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywg
Jy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKDUpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
MSksIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJd
LCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg0KSwgW10pOwogICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywg
e30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdH
RVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2Vs
ZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDUsIDIpLCB7
fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgxLCAyKSwge30pOworICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoNCwgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVy
L2ZvcmNlJywgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZd
LmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMScsICdmb3JjZXNj
aGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnb3duZWQtY29tbWl0cyc6IGB7IldlYktpdCI6
W3sicmV2aXNpb24iOiJvd25lZC1qc2MtNjE2MSIsInJlcG9zaXRvcnkiOiJKYXZhU2NyaXB0Q29y
ZSIsIm93bmVyUmV2aXNpb24iOiIxOTE2MjIifV19YH0pOworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVs
ZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9k
JzogJ2ZvcmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAnd2snOiAnMTkxNjIyJywg
J2J1aWxkLXJlcXVlc3QtaWQnOiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWls
ZHMnLCAnb3duZWQtY29tbWl0cyc6IGB7IldlYktpdCI6W3sicmV2aXNpb24iOiJvd25lZC1qc2Mt
NjE2MSIsInJlcG9zaXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93bmVyUmV2aXNpb24iOiIxOTE2
MjIifV19YH19KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMTApOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5k
aW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1
aWxkcycsCi0gICAgICAgICAgICAgICAgW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcjog
J3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSldKTsKLSAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290
aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKDUpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMSksCisgICAgICAgICAgICAg
ICAgW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDog
MX0pXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNCksIFtdKTsKICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwotICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywg
e30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNl
bGVjdD0tMicsIHsKLSAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQo
e2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pCi0gICAgICAgICAg
ICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEm
c2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDUsIDIpLCB7fSk7Cisg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMSwgMiksCisgICAgICAgICAgICAgICAgTW9ja0RhdGEu
cnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAxfSkKKyAgICAgICAg
ICAgICk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0s
ICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiksIHt9KTsKICAgICAgICAgICAg
IHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAtMTUzOSw3
ICsxNTU1LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcv
YnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
LyMvYnVpbGRlcnMvMS9idWlsZHMvMTI0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNl
dCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTE1NzksNyArMTU5NSw3IEBAIGRlc2Ny
aWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3Qu
aXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBi
dWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEvYnVp
bGRzLzEyNCcpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCk7CkBAIC0xNjIwLDcgKzE2MzYsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJv
dCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWls
ZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRl
ZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
J2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8x
MjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcpOwogICAg
ICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwog
CiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7
CkBAIC0xNjUzLDQyICsxNjY5LDQ0IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rp
b24gKCkgewogCiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAg
ICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmln
Z2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0
ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0
YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkp
OwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhl
ciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCg1KSwgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDEpLCBbXSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoNCksIFtdKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIw
dGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAg
ICAgICAgICBbLTFdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWls
ZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KQotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoNSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KDEsIDIpLAorICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXJJ
ZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KQorICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKDQsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9idWlsZGVycy9zb21lJTIwYnVpbGRl
ci9mb3JjZScsICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2
XS5kYXRhLCB7J3drJzogJzE5MjczNicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2Vz
Y2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ293bmVkLWNvbW1pdHMnOiBgeyJXZWJLaXQi
Olt7InJldmlzaW9uIjoib3duZWQtanNjLTkxOTEiLCJyZXBvc2l0b3J5IjoiSmF2YVNjcmlwdENv
cmUiLCJvd25lclJldmlzaW9uIjoiMTkyNzM2In1dfWB9KTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1
bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcyJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhv
ZCc6ICdmb3JjZScsICdwYXJhbXMnOiB7CisgICAgICAgICAgICAgICAgJ3drJzogJzE5MjczNics
ICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVp
bGRzJywgJ293bmVkLWNvbW1pdHMnOiBgeyJXZWJLaXQiOlt7InJldmlzaW9uIjoib3duZWQtanNj
LTkxOTEiLCJyZXBvc2l0b3J5IjoiSmF2YVNjcmlwdENvcmUiLCJvd25lclJldmlzaW9uIjoiMTky
NzM2In1dfWB9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVu
ZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdC
dWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s5XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxk
cycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzdd
LCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg1KSwgW10pOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKDEpLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNCksIFtdKTsK
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMTMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9
LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxk
cy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0
YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDog
Mn0pLAotICAgICAgICAgICAgICAgIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxk
ZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pLAorICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKDUsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMSwgMiksIHsK
KyAgICAgICAgICAgICAgICAnYnVpbGRzJzogWworICAgICAgICAgICAgICAgICAgICBNb2NrRGF0
YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAyfSksCisg
ICAgICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZGVySWQ6
IDEsIGJ1aWxkUmVxdWVzdElkOiAxfSldCiAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKDQsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gc3lu
Y1Byb21pc2U7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRl
c3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKQEAgLTE3MDMsNyArMTcyMSw3IEBA
IGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNz
ZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJl
cXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMv
c29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRl
cnMvMS9idWlsZHMvMTI0Jyk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTE3MjMsNyArMTc0MSw3IEBAIGRlc2NyaWJlKCdz
eW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVp
bGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1
ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVp
bGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvIy9idWlsZGVycy8xL2J1aWxkcy8xMjQnKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBv
dGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAtMTc0OCw3
ICsxNzY2LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvIy9idWlsZGVycy8xL2J1aWxkcy8xMjQnKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29t
bWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAtMTc2OCw3ICsxNzg2LDcgQEAg
ZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3Nl
cnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3Ro
ZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Vi
a2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAg
ICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7
CkBAIC0xNzk0LDcgKzE4MTIsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgYXNz
ZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAg
ICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC0xODE0LDcg
KzE4MzIsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAg
YXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcp
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xL2J1aWxkcy8xMjQnKTsKICAg
ICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1
ZXN0LmNvbW1pdFNldCgpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rv
b2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29s
cy9qcy9idWlsZGJvdC1zeW5jZXIuanMKaW5kZXggYzEyZjFiNDkyMjQuLjU0N2I4NDVkM2U4IDEw
MDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qtc3lu
Y2VyLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1z
eW5jZXIuanMKQEAgLTIxNSwxOCArMjE1LDE4IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAg
ICAgICAgaWYgKCF0aGlzLl9zbGF2ZUxpc3QgfHwgaGFzUGVuZGluZ0J1aWxkc1dpdGhvdXRTbGF2
ZU5hbWVTcGVjaWZpZWQpIHsKICAgICAgICAgICAgIGlmICh1c2VkU2xhdmVzLnNpemUgfHwgdGhp
cy5fc2xhdmVzV2l0aE5ld1JlcXVlc3RzLnNpemUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG51
bGw7Ci0gICAgICAgICAgICByZXR1cm4gdGhpcy5zY2hlZHVsZVJlcXVlc3REZXByZWNhdGVkKG5l
d1JlcXVlc3QsIHJlcXVlc3RzSW5Hcm91cCwgbnVsbCk7CisgICAgICAgICAgICByZXR1cm4gdGhp
cy5zY2hlZHVsZVJlcXVlc3QobmV3UmVxdWVzdCwgcmVxdWVzdHNJbkdyb3VwLCBudWxsKTsKICAg
ICAgICAgfQogCiAgICAgICAgIGlmIChzbGF2ZU5hbWUpIHsKICAgICAgICAgICAgIGlmICghdXNl
ZFNsYXZlcy5oYXMoc2xhdmVOYW1lKSAmJiAhdGhpcy5fc2xhdmVzV2l0aE5ld1JlcXVlc3RzLmhh
cyhzbGF2ZU5hbWUpKQotICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNjaGVkdWxlUmVxdWVz
dERlcHJlY2F0ZWQobmV3UmVxdWVzdCwgcmVxdWVzdHNJbkdyb3VwLCBzbGF2ZU5hbWUpOworICAg
ICAgICAgICAgICAgIHJldHVybiB0aGlzLnNjaGVkdWxlUmVxdWVzdChuZXdSZXF1ZXN0LCByZXF1
ZXN0c0luR3JvdXAsIHNsYXZlTmFtZSk7CiAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAg
ICAgfQogCiAgICAgICAgIGZvciAobGV0IHNsYXZlTmFtZSBvZiB0aGlzLl9zbGF2ZUxpc3QpIHsK
ICAgICAgICAgICAgIGlmICghdXNlZFNsYXZlcy5oYXMoc2xhdmVOYW1lKSAmJiAhdGhpcy5fc2xh
dmVzV2l0aE5ld1JlcXVlc3RzLmhhcyhzbGF2ZU5hbWUpKQotICAgICAgICAgICAgICAgIHJldHVy
biB0aGlzLnNjaGVkdWxlUmVxdWVzdERlcHJlY2F0ZWQobmV3UmVxdWVzdCwgcmVxdWVzdHNJbkdy
b3VwLCBzbGF2ZU5hbWUpOworICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNjaGVkdWxlUmVx
dWVzdChuZXdSZXF1ZXN0LCByZXF1ZXN0c0luR3JvdXAsIHNsYXZlTmFtZSk7CiAgICAgICAgIH0K
IAogICAgICAgICByZXR1cm4gbnVsbDsKQEAgLTIzNCw5ICsyMzQsMTEgQEAgY2xhc3MgQnVpbGRi
b3RTeW5jZXIgewogCiAgICAgcHVsbEJ1aWxkYm90KGNvdW50KQogICAgIHsKLSAgICAgICAgcmV0
dXJuIHRoaXMuX3JlbW90ZS5nZXRKU09OKHRoaXMucGF0aEZvclBlbmRpbmdCdWlsZHNKU09ORGVw
cmVjYXRlZCgpKS50aGVuKChjb250ZW50KSA9PiB7Ci0gICAgICAgICAgICBsZXQgcGVuZGluZ0Vu
dHJpZXMgPSBjb250ZW50Lm1hcCgoZW50cnkpID0+IG5ldyBCdWlsZGJvdEJ1aWxkRW50cnlEZXBy
ZWNhdGVkKHRoaXMsIGVudHJ5KSk7Ci0gICAgICAgICAgICByZXR1cm4gdGhpcy5fcHVsbFJlY2Vu
dEJ1aWxkc0RlcHJlY2F0ZWQoY291bnQpLnRoZW4oKGVudHJpZXMpID0+IHsKKyAgICAgICAgcmV0
dXJuIHRoaXMuX3JlbW90ZS5nZXRKU09OKHRoaXMucGF0aEZvclBlbmRpbmdCdWlsZHMoKSkudGhl
bigoY29udGVudCkgPT4geworICAgICAgICAgICAgbGV0IHBlbmRpbmdFbnRyaWVzID0gW107Cisg
ICAgICAgICAgICBpZiAoJ2J1aWxkcmVxdWVzdHMnIGluIGNvbnRlbnQpCisgICAgICAgICAgICAg
ICAgcGVuZGluZ0VudHJpZXMgPSBjb250ZW50LmJ1aWxkcmVxdWVzdHMubWFwKChlbnRyeSkgPT4g
bmV3IEJ1aWxkYm90QnVpbGRFbnRyeSh0aGlzLCBlbnRyeSkpOworICAgICAgICAgICAgcmV0dXJu
IHRoaXMuX3B1bGxSZWNlbnRCdWlsZHMoY291bnQpLnRoZW4oKGVudHJpZXMpID0+IHsKICAgICAg
ICAgICAgICAgICBsZXQgZW50cnlCeVJlcXVlc3QgPSB7fTsKIAogICAgICAgICAgICAgICAgIGZv
ciAobGV0IGVudHJ5IG9mIHBlbmRpbmdFbnRyaWVzKQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCmluZGV4IDg5
OTI4NDA2OWNhLi5kZDg1MDkyMmIzYiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcwpAQCAtNTUsNyArNTUs
NyBAQCBjbGFzcyBCdWlsZGJvdFRyaWdnZXJhYmxlIHsKIAogICAgIGluaXRTeW5jZXJzKCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiB0aGlzLmdldEJ1aWxkZXJOYW1lVG9JRE1hcERlcHJlY2F0ZWQo
KS50aGVuKChidWlsZGVyTmFtZVRvSURNYXApID0+IHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZ2V0
QnVpbGRlck5hbWVUb0lETWFwKCkudGhlbigoYnVpbGRlck5hbWVUb0lETWFwKSA9PiB7CiAgICAg
ICAgICAgICB0aGlzLl9zeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcodGhpcy5f
YnVpbGRib3RSZW1vdGUsIHRoaXMuX2NvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKTsKICAgICAg
ICAgfSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQt
dGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzCmluZGV4IDUyNzY3ZDg5MDU2Li42
NDU3NzMzYmE1YiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVz
dHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy91bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qcwpAQCAtNiw3ICs2LDcgQEAgcmVx
dWlyZSgnLi4vdG9vbHMvanMvdjMtbW9kZWxzLmpzJyk7CiBsZXQgTW9ja1JlbW90ZUFQSSA9IHJl
cXVpcmUoJy4vcmVzb3VyY2VzL21vY2stcmVtb3RlLWFwaS5qcycpLk1vY2tSZW1vdGVBUEk7CiBs
ZXQgTW9ja01vZGVscyA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL21vY2stdjMtbW9kZWxzLmpzJyku
TW9ja01vZGVsczsKIAotbGV0IEJ1aWxkYm90QnVpbGRFbnRyeURlcHJlY2F0ZWQgPSByZXF1aXJl
KCcuLi90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMnKS5CdWlsZGJvdEJ1aWxkRW50cnlEZXBy
ZWNhdGVkOworbGV0IEJ1aWxkYm90QnVpbGRFbnRyeSA9IHJlcXVpcmUoJy4uL3Rvb2xzL2pzL2J1
aWxkYm90LXN5bmNlci5qcycpLkJ1aWxkYm90QnVpbGRFbnRyeTsKIGxldCBCdWlsZGJvdFN5bmNl
ciA9IHJlcXVpcmUoJy4uL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcycpLkJ1aWxkYm90U3lu
Y2VyOwogCiBmdW5jdGlvbiBzYW1wbGVpT1NDb25maWcoKQpAQCAtMTMzLDYgKzEzMyw3IEBAIGZ1
bmN0aW9uIHNtYWxsQ29uZmlndXJhdGlvbigpCiAgICAgICAgICdidWlsZGVycyc6IHsKICAgICAg
ICAgICAgICdzb21lLWJ1aWxkZXInOiB7CiAgICAgICAgICAgICAgICAgJ2J1aWxkZXInOiAnc29t
ZSBidWlsZGVyJywKKyAgICAgICAgICAgICAgICAncHJvcGVydGllcyc6IHsnZm9yY2VzY2hlZHVs
ZXInOiAnc29tZS1idWlsZGVyLUZvcmNlU2NoZWR1bGVyJ30KICAgICAgICAgICAgIH0KICAgICAg
ICAgfSwKICAgICAgICAgJ3Rlc3RDb25maWd1cmF0aW9ucyc6IFt7CkBAIC0xNTMsNjggKzE1NCwy
MiBAQCBmdW5jdGlvbiBidWlsZGVyTmFtZVRvSURNYXAoKQogICAgICAgICAnaVBob25lIEFCIFRl
c3RzJyA6ICcxMDQnLAogICAgICAgICAnaVBob25lIDIgQUIgVGVzdHMnOiAnMTA1JywKICAgICAg
ICAgJ2lQYWQgQUIgVGVzdHMnOiAnMTA2JwotICAgIH0gICAgCisgICAgfQogfQogCiBmdW5jdGlv
biBzbWFsbFBlbmRpbmdCdWlsZCgpCiB7Ci0gICAgcmV0dXJuIHsKLSAgICAgICAgJ2J1aWxkZXJO
YW1lJzogJ3NvbWUgYnVpbGRlcicsCi0gICAgICAgICdidWlsZHMnOiBbXSwKLSAgICAgICAgJ3By
b3BlcnRpZXMnOiBbXSwKLSAgICAgICAgJ3NvdXJjZSc6IHsKLSAgICAgICAgICAgICdicmFuY2gn
OiAnJywKLSAgICAgICAgICAgICdjaGFuZ2VzJzogW10sCi0gICAgICAgICAgICAnY29kZWJhc2Un
OiAnV2ViS2l0JywKLSAgICAgICAgICAgICdoYXNQYXRjaCc6IGZhbHNlLAotICAgICAgICAgICAg
J3Byb2plY3QnOiAnJywKLSAgICAgICAgICAgICdyZXBvc2l0b3J5JzogJycsCi0gICAgICAgICAg
ICAncmV2aXNpb24nOiAnJwotICAgICAgICB9LAotICAgIH07CisgICAgcmV0dXJuIHNhbXBsZVBl
bmRpbmdCdWlsZChudWxsLCBudWxsLCAic29tZSBidWlsZGVyIik7CiB9CiAKIGZ1bmN0aW9uIHNt
YWxsSW5Qcm9ncmVzc0J1aWxkKCkKIHsKLSAgICByZXR1cm4gewotICAgICAgICAnYnVpbGRlck5h
bWUnOiAnc29tZSBidWlsZGVyJywKLSAgICAgICAgJ2J1aWxkcyc6IFtdLAotICAgICAgICAncHJv
cGVydGllcyc6IFtdLAotICAgICAgICAnY3VycmVudFN0ZXAnOiB7IH0sCi0gICAgICAgICdldGEn
OiAxMjMsCi0gICAgICAgICdudW1iZXInOiA0NTYsCi0gICAgICAgICdzb3VyY2UnOiB7Ci0gICAg
ICAgICAgICAnYnJhbmNoJzogJycsCi0gICAgICAgICAgICAnY2hhbmdlcyc6IFtdLAotICAgICAg
ICAgICAgJ2NvZGViYXNlJzogJ1dlYktpdCcsCi0gICAgICAgICAgICAnaGFzUGF0Y2gnOiBmYWxz
ZSwKLSAgICAgICAgICAgICdwcm9qZWN0JzogJycsCi0gICAgICAgICAgICAncmVwb3NpdG9yeSc6
ICcnLAotICAgICAgICAgICAgJ3JldmlzaW9uJzogJycKLSAgICAgICAgfSwKLSAgICB9OworICAg
IHJldHVybiBzYW1wbGVJblByb2dyZXNzQnVpbGQoKTsKIH0KIAogZnVuY3Rpb24gc21hbGxGaW5p
c2hlZEJ1aWxkKCkKIHsKLSAgICByZXR1cm4gewotICAgICAgICAnYnVpbGRlck5hbWUnOiAnc29t
ZSBidWlsZGVyJywKLSAgICAgICAgJ2J1aWxkcyc6IFtdLAotICAgICAgICAncHJvcGVydGllcyc6
IFtdLAotICAgICAgICAnY3VycmVudFN0ZXAnOiBudWxsLAotICAgICAgICAnZXRhJzogbnVsbCwK
LSAgICAgICAgJ251bWJlcic6IDc4OSwKLSAgICAgICAgJ3NvdXJjZSc6IHsKLSAgICAgICAgICAg
ICdicmFuY2gnOiAnJywKLSAgICAgICAgICAgICdjaGFuZ2VzJzogW10sCi0gICAgICAgICAgICAn
Y29kZWJhc2UnOiAnV2ViS2l0JywKLSAgICAgICAgICAgICdoYXNQYXRjaCc6IGZhbHNlLAotICAg
ICAgICAgICAgJ3Byb2plY3QnOiAnJywKLSAgICAgICAgICAgICdyZXBvc2l0b3J5JzogJycsCi0g
ICAgICAgICAgICAncmV2aXNpb24nOiAnJwotICAgICAgICB9LAotICAgICAgICAndGltZXMnOiBb
MCwgMV0sCi0gICAgfTsKKyAgICByZXR1cm4gc2FtcGxlRmluaXNoZWRCdWlsZChudWxsLCBudWxs
LCAic29tZSBidWlsZGVyIik7CiB9CiAKIGZ1bmN0aW9uIGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVz
dChwbGF0Zm9ybSwgdGVzdCkKQEAgLTI5NSwxOTQgKzI1MCw3NiBAQCBmdW5jdGlvbiBjcmVhdGVT
YW1wbGVCdWlsZFJlcXVlc3RXaXRoT3duZWRDb21taXRBbmRQYXRjaChwbGF0Zm9ybSwgdGVzdCwg
b3JkZXIpCiAgICAgICAgICdjb21taXRTZXQnOiBjb21taXRTZXQsICdzdGF0dXMnOiAncGVuZGlu
ZycsICdwbGF0Zm9ybSc6IHBsYXRmb3JtLCAndGVzdCc6IHRlc3QsICdvcmRlcic6IG9yZGVyfSk7
CiB9CiAKLWZ1bmN0aW9uIHNhbXBsZVBlbmRpbmdCdWlsZChidWlsZFJlcXVlc3RJZCwgYnVpbGRU
aW1lLCBzbGF2ZU5hbWUpCitmdW5jdGlvbiBzYW1wbGVQZW5kaW5nQnVpbGREYXRhKGJ1aWxkUmVx
dWVzdElkLCBidWlsZFRpbWUsIGJ1aWxkZXJJZCkKIHsKICAgICByZXR1cm4gewotICAgICAgICAn
YnVpbGRlck5hbWUnOiAnQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzJywKLSAgICAgICAg
J2J1aWxkcyc6IFtdLAotICAgICAgICAncHJvcGVydGllcyc6IFsKLSAgICAgICAgICAgIFsnYnVp
bGRfcmVxdWVzdF9pZCcsIGJ1aWxkUmVxdWVzdElkIHx8ICcxNjczMycsICdGb3JjZSBCdWlsZCBG
b3JtJ10sCi0gICAgICAgICAgICBbJ2Rlc2lyZWRfaW1hZ2UnLCAnMTNBNDUyJywgJ0ZvcmNlIEJ1
aWxkIEZvcm0nXSwKLSAgICAgICAgICAgIFsnb3duZXInLCAnPHVua25vd24+JywgJ0ZvcmNlIEJ1
aWxkIEZvcm0nXSwKLSAgICAgICAgICAgIFsndGVzdF9uYW1lJywgJ3NwZWVkb21ldGVyJywgJ0Zv
cmNlIEJ1aWxkIEZvcm0nXSwKLSAgICAgICAgICAgIFsncmVhc29uJywgJ2ZvcmNlIGJ1aWxkJywn
Rm9yY2UgQnVpbGQgRm9ybSddLAotICAgICAgICAgICAgWydzbGF2ZW5hbWUnLCBzbGF2ZU5hbWUs
ICcnXSwKLSAgICAgICAgICAgIFsnc2NoZWR1bGVyJywgJ0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFy
ay1UZXN0cy1Gb3JjZVNjaGVkdWxlcicsICdTY2hlZHVsZXInXQotICAgICAgICBdLAotICAgICAg
ICAnc291cmNlJzogewotICAgICAgICAgICAgJ2JyYW5jaCc6ICcnLAotICAgICAgICAgICAgJ2No
YW5nZXMnOiBbXSwKLSAgICAgICAgICAgICdjb2RlYmFzZSc6ICdjb21waWxlci1ydCcsCi0gICAg
ICAgICAgICAnaGFzUGF0Y2gnOiBmYWxzZSwKLSAgICAgICAgICAgICdwcm9qZWN0JzogJycsCi0g
ICAgICAgICAgICAncmVwb3NpdG9yeSc6ICcnLAotICAgICAgICAgICAgJ3JldmlzaW9uJzogJycK
LSAgICAgICAgfSwKLSAgICAgICAgJ3N1Ym1pdHRlZEF0JzogYnVpbGRUaW1lIHx8IDE0NTg3MDQ5
ODMKKyAgICAgICAgImJ1aWxkZXJpZCI6IGJ1aWxkZXJJZCB8fCAxMDIsCisgICAgICAgICJidWls
ZHJlcXVlc3RpZCI6IGJ1aWxkUmVxdWVzdElkIHx8IDE2NzMzLAorICAgICAgICAiYnVpbGRzZXRp
ZCI6IDg5NDcyMCwKKyAgICAgICAgImNsYWltZWQiOiBmYWxzZSwKKyAgICAgICAgImNsYWltZWRf
YXQiOiBudWxsLAorICAgICAgICAiY2xhaW1lZF9ieV9tYXN0ZXJpZCI6IG51bGwsCisgICAgICAg
ICJjb21wbGV0ZSI6IGZhbHNlLAorICAgICAgICAiY29tcGxldGVfYXQiOiBudWxsLAorICAgICAg
ICAicHJpb3JpdHkiOiAwLAorICAgICAgICAicmVzdWx0cyI6IC0xLAorICAgICAgICAic3VibWl0
dGVkX2F0IjogYnVpbGRUaW1lIHx8IDE0NTg3MDQ5ODMsCisgICAgICAgICJ3YWl0ZWRfZm9yIjog
ZmFsc2UKICAgICB9OwogfQogCi1mdW5jdGlvbiBzYW1wbGVJblByb2dyZXNzQnVpbGQoc2xhdmVO
YW1lKQorZnVuY3Rpb24gc2FtcGxlUGVuZGluZ0J1aWxkKGJ1aWxkUmVxdWVzdElkLCBidWlsZFRp
bWUsIGJ1aWxkZXJOYW1lKQogewogICAgIHJldHVybiB7Ci0gICAgICAgICdibGFtZSc6IFtdLAot
ICAgICAgICAnYnVpbGRlck5hbWUnOiAnQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzJywK
LSAgICAgICAgJ2N1cnJlbnRTdGVwJzogewotICAgICAgICAgICAgJ2V0YSc6IDAuMjY1NDgwNjc2
OTg0NjA1NjUsCi0gICAgICAgICAgICAnZXhwZWN0YXRpb25zJzogW1snb3V0cHV0JywgODQ1LCAx
MzE1LjBdXSwKLSAgICAgICAgICAgICdoaWRkZW4nOiBmYWxzZSwKLSAgICAgICAgICAgICdpc0Zp
bmlzaGVkJzogZmFsc2UsCi0gICAgICAgICAgICAnaXNTdGFydGVkJzogdHJ1ZSwKLSAgICAgICAg
ICAgICdsb2dzJzogW1snc3RkaW8nLCAnaHR0cHM6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJz
L0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy9idWlsZHMvNjE0L3N0ZXBzL1NvbWUlMjBz
dGVwL2xvZ3Mvc3RkaW8nXV0sCi0gICAgICAgICAgICAnbmFtZSc6ICdTb21lIHN0ZXAnLAotICAg
ICAgICAgICAgJ3Jlc3VsdHMnOiBbbnVsbCxbXV0sCi0gICAgICAgICAgICAnc3RhdGlzdGljcyc6
IHt9LAotICAgICAgICAgICAgJ3N0ZXBfbnVtYmVyJzogMSwKLSAgICAgICAgICAgICd0ZXh0Jzog
WycnXSwKLSAgICAgICAgICAgICd0aW1lcyc6IFsxNDU4NzE4NjU3LjU4MTYyOCwgbnVsbF0sCi0g
ICAgICAgICAgICAndXJscyc6IHt9Ci0gICAgICAgIH0sCi0gICAgICAgICdldGEnOiA2NDk3Ljk5
MTYxMjQzNDM4NywKLSAgICAgICAgJ2xvZ3MnOiBbWydzdGRpbycsJ2h0dHBzOi8vYnVpbGQud2Vi
a2l0Lm9yZy9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVpbGRzLzYx
NC9zdGVwcy9zaGVsbC9sb2dzL3N0ZGlvJ11dLAotICAgICAgICAnbnVtYmVyJzogNjE0LAotICAg
ICAgICAncHJvcGVydGllcyc6IFsKLSAgICAgICAgICAgIFsnYnVpbGRfcmVxdWVzdF9pZCcsICcx
NjczMycsICdGb3JjZSBCdWlsZCBGb3JtJ10sCi0gICAgICAgICAgICBbJ2J1aWxkZXJuYW1lJywg
J0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cycsICdCdWlsZGVyJ10sCi0gICAgICAgICAg
ICBbJ2J1aWxkbnVtYmVyJywgNjE0LCAnQnVpbGQnXSwKLSAgICAgICAgICAgIFsnZGVzaXJlZF9p
bWFnZScsICcxM0E0NTInLCAnRm9yY2UgQnVpbGQgRm9ybSddLAotICAgICAgICAgICAgWydvd25l
cicsICc8dW5rbm93bj4nLCAnRm9yY2UgQnVpbGQgRm9ybSddLAotICAgICAgICAgICAgWydyZWFz
b24nLCAnZm9yY2UgYnVpbGQnLCAnRm9yY2UgQnVpbGQgRm9ybSddLAotICAgICAgICAgICAgWydz
Y2hlZHVsZXInLCAnQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzLUZvcmNlU2NoZWR1bGVy
JywgJ1NjaGVkdWxlciddLAotICAgICAgICAgICAgWydzbGF2ZW5hbWUnLCBzbGF2ZU5hbWUgfHwg
J0FCVGVzdC1pUGFkLTAnLCAnQnVpbGRTbGF2ZSddLAotICAgICAgICBdLAotICAgICAgICAncmVh
c29uJzogJ0EgYnVpbGQgd2FzIGZvcmNlZCBieSBcJzx1bmtub3duPlwnOiBmb3JjZSBidWlsZCcs
Ci0gICAgICAgICdyZXN1bHRzJzogbnVsbCwKLSAgICAgICAgJ3NsYXZlJzogJ0FCVGVzdC1pUGFk
LTAnLAotICAgICAgICAnc291cmNlU3RhbXBzJzogW3snYnJhbmNoJzogJycsICdjaGFuZ2VzJzog
W10sICdjb2RlYmFzZSc6ICdjb21waWxlci1ydCcsICdoYXNQYXRjaCc6IGZhbHNlLCAncHJvamVj
dCc6ICcnLCAncmVwb3NpdG9yeSc6ICcnLCAncmV2aXNpb24nOiAnJ31dLAotICAgICAgICAnc3Rl
cHMnOiBbCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgJ2V0YSc6IG51bGwsCi0gICAg
ICAgICAgICAgICAgJ2V4cGVjdGF0aW9ucyc6IFtbJ291dHB1dCcsMjMwOSwyMzA5LjBdXSwKLSAg
ICAgICAgICAgICAgICAnaGlkZGVuJzogZmFsc2UsCi0gICAgICAgICAgICAgICAgJ2lzRmluaXNo
ZWQnOiB0cnVlLAotICAgICAgICAgICAgICAgICdpc1N0YXJ0ZWQnOiB0cnVlLAotICAgICAgICAg
ICAgICAgICdsb2dzJzogW1snc3RkaW8nLCAnaHR0cHM6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxk
ZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy9idWlsZHMvNjE0L3N0ZXBzL3NoZWxs
L2xvZ3Mvc3RkaW8nXV0sCi0gICAgICAgICAgICAgICAgJ25hbWUnOiAnRmluaXNoZWQgc3RlcCcs
Ci0gICAgICAgICAgICAgICAgJ3Jlc3VsdHMnOiBbMCwgW11dLAotICAgICAgICAgICAgICAgICdz
dGF0aXN0aWNzJzoge30sCi0gICAgICAgICAgICAgICAgJ3N0ZXBfbnVtYmVyJzogMCwKLSAgICAg
ICAgICAgICAgICAndGV4dCc6IFsnJ10sCi0gICAgICAgICAgICAgICAgJ3RpbWVzJzogWzE0NTg3
MTg2NTUuNDE5ODY1LCAxNDU4NzE4NjU1LjQ1MzYzM10sCi0gICAgICAgICAgICAgICAgJ3VybHMn
OiB7fQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAnZXRh
JzogMC4yNjU0ODA2NzY5ODQ2MDU2NSwKLSAgICAgICAgICAgICAgICAnZXhwZWN0YXRpb25zJzog
W1snb3V0cHV0JywgODQ1LCAxMzE1LjBdXSwKLSAgICAgICAgICAgICAgICAnaGlkZGVuJzogZmFs
c2UsCi0gICAgICAgICAgICAgICAgJ2lzRmluaXNoZWQnOiBmYWxzZSwKLSAgICAgICAgICAgICAg
ICAnaXNTdGFydGVkJzogdHJ1ZSwKLSAgICAgICAgICAgICAgICAnbG9ncyc6IFtbJ3N0ZGlvJywg
J2h0dHBzOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1h
cmstVGVzdHMvYnVpbGRzLzYxNC9zdGVwcy9Tb21lJTIwc3RlcC9sb2dzL3N0ZGlvJ11dLAotICAg
ICAgICAgICAgICAgICduYW1lJzogJ1NvbWUgc3RlcCcsCi0gICAgICAgICAgICAgICAgJ3Jlc3Vs
dHMnOiBbbnVsbCxbXV0sCi0gICAgICAgICAgICAgICAgJ3N0YXRpc3RpY3MnOiB7fSwKLSAgICAg
ICAgICAgICAgICAnc3RlcF9udW1iZXInOiAxLAotICAgICAgICAgICAgICAgICd0ZXh0JzogWycn
XSwKLSAgICAgICAgICAgICAgICAndGltZXMnOiBbMTQ1ODcxODY1Ny41ODE2MjgsIG51bGxdLAot
ICAgICAgICAgICAgICAgICd1cmxzJzoge30KLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgJ2V0YSc6IG51bGwsCi0gICAgICAgICAgICAgICAgJ2V4cGVjdGF0
aW9ucyc6IFtbJ291dHB1dCcsIG51bGwsIG51bGxdXSwKLSAgICAgICAgICAgICAgICAnaGlkZGVu
JzogZmFsc2UsCi0gICAgICAgICAgICAgICAgJ2lzRmluaXNoZWQnOiBmYWxzZSwKLSAgICAgICAg
ICAgICAgICAnaXNTdGFydGVkJzogZmFsc2UsCi0gICAgICAgICAgICAgICAgJ2xvZ3MnOiBbXSwK
LSAgICAgICAgICAgICAgICAnbmFtZSc6ICdTb21lIG90aGVyIHN0ZXAnLAotICAgICAgICAgICAg
ICAgICdyZXN1bHRzJzogW251bGwsIFtdXSwKLSAgICAgICAgICAgICAgICAnc3RhdGlzdGljcyc6
IHt9LAotICAgICAgICAgICAgICAgICdzdGVwX251bWJlcic6IDIsCi0gICAgICAgICAgICAgICAg
J3RleHQnOiBbXSwKLSAgICAgICAgICAgICAgICAndGltZXMnOiBbbnVsbCwgbnVsbF0sCi0gICAg
ICAgICAgICAgICAgJ3VybHMnOiB7fQotICAgICAgICAgICAgfSwKLSAgICAgICAgXSwKLSAgICAg
ICAgJ3RleHQnOiBbXSwKLSAgICAgICAgJ3RpbWVzJzogWzE0NTg3MTg2NTUuNDE1ODIxLCBudWxs
XQorICAgICAgICAiYnVpbGRyZXF1ZXN0cyIgOiBbc2FtcGxlUGVuZGluZ0J1aWxkRGF0YShidWls
ZFJlcXVlc3RJZCwgYnVpbGRUaW1lLCBidWlsZGVyTmFtZVRvSURNYXAoKVtidWlsZGVyTmFtZV0p
XQogICAgIH07CiB9CiAKLWZ1bmN0aW9uIHNhbXBsZUZpbmlzaGVkQnVpbGQoYnVpbGRSZXF1ZXN0
SWQsIHNsYXZlTmFtZSkKK2Z1bmN0aW9uIHNhbXBsZUJ1aWxkRGF0YSh3b3JrZXJOYW1lLCBpc0Nv
bXBsZXRlLCBidWlsZFJlcXVlc3RJZCwgYnVpbGROdW1iZXIsIGJ1aWxkZXJJZCkKIHsKICAgICBy
ZXR1cm4gewotICAgICAgICAnYmxhbWUnOiBbXSwKLSAgICAgICAgJ2J1aWxkZXJOYW1lJzogJ0FC
VGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cycsCi0gICAgICAgICdjdXJyZW50U3RlcCc6IG51
bGwsCi0gICAgICAgICdldGEnOiBudWxsLAotICAgICAgICAnbG9ncyc6IFtbJ3N0ZGlvJywnaHR0
cHM6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1U
ZXN0cy9idWlsZHMvMTc1NS9zdGVwcy9zaGVsbC9sb2dzL3N0ZGlvJ11dLAotICAgICAgICAnbnVt
YmVyJzogMTc1NSwKLSAgICAgICAgJ3Byb3BlcnRpZXMnOiBbCi0gICAgICAgICAgICBbJ2J1aWxk
X3JlcXVlc3RfaWQnLCBidWlsZFJlcXVlc3RJZCB8fCAnMTg5MzUnLCAnRm9yY2UgQnVpbGQgRm9y
bSddLAotICAgICAgICAgICAgWydidWlsZGVybmFtZScsICdBQlRlc3QtaVBhZC1SdW5CZW5jaG1h
cmstVGVzdHMnLCAnQnVpbGRlciddLAotICAgICAgICAgICAgWydidWlsZG51bWJlcicsIDE3NTUs
ICdCdWlsZCddLAotICAgICAgICAgICAgWydkZXNpcmVkX2ltYWdlJywgJzEzQTQ1MicsICdGb3Jj
ZSBCdWlsZCBGb3JtJ10sCi0gICAgICAgICAgICBbJ293bmVyJywgJzx1bmtub3duPicsICdGb3Jj
ZSBCdWlsZCBGb3JtJ10sCi0gICAgICAgICAgICBbJ3JlYXNvbicsICdmb3JjZSBidWlsZCcsICdG
b3JjZSBCdWlsZCBGb3JtJ10sCi0gICAgICAgICAgICBbJ3NjaGVkdWxlcicsICdBQlRlc3QtaVBh
ZC1SdW5CZW5jaG1hcmstVGVzdHMtRm9yY2VTY2hlZHVsZXInLCAnU2NoZWR1bGVyJ10sCi0gICAg
ICAgICAgICBbJ3NsYXZlbmFtZScsIHNsYXZlTmFtZSB8fCAnQUJUZXN0LWlQYWQtMCcsICdCdWls
ZFNsYXZlJ10sCi0gICAgICAgIF0sCi0gICAgICAgICdyZWFzb24nOiAnQSBidWlsZCB3YXMgZm9y
Y2VkIGJ5IFwnPHVua25vd24+XCc6IGZvcmNlIGJ1aWxkJywKLSAgICAgICAgJ3Jlc3VsdHMnOiAy
LAotICAgICAgICAnc2xhdmUnOiAnQUJUZXN0LWlQYWQtMCcsCi0gICAgICAgICdzb3VyY2VTdGFt
cHMnOiBbeydicmFuY2gnOiAnJywgJ2NoYW5nZXMnOiBbXSwgJ2NvZGViYXNlJzogJ2NvbXBpbGVy
LXJ0JywgJ2hhc1BhdGNoJzogZmFsc2UsICdwcm9qZWN0JzogJycsICdyZXBvc2l0b3J5JzogJycs
ICdyZXZpc2lvbic6ICcnfV0sCi0gICAgICAgICdzdGVwcyc6IFsKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAnZXRhJzogbnVsbCwKLSAgICAgICAgICAgICAgICAnZXhwZWN0YXRpb25z
JzogW1snb3V0cHV0JywyMzA5LDIzMDkuMF1dLAotICAgICAgICAgICAgICAgICdoaWRkZW4nOiBm
YWxzZSwKLSAgICAgICAgICAgICAgICAnaXNGaW5pc2hlZCc6IHRydWUsCi0gICAgICAgICAgICAg
ICAgJ2lzU3RhcnRlZCc6IHRydWUsCi0gICAgICAgICAgICAgICAgJ2xvZ3MnOiBbWydzdGRpbycs
ICdodHRwczovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2ht
YXJrLVRlc3RzL2J1aWxkcy82MTQvc3RlcHMvc2hlbGwvbG9ncy9zdGRpbyddXSwKLSAgICAgICAg
ICAgICAgICAnbmFtZSc6ICdGaW5pc2hlZCBzdGVwJywKLSAgICAgICAgICAgICAgICAncmVzdWx0
cyc6IFswLCBbXV0sCi0gICAgICAgICAgICAgICAgJ3N0YXRpc3RpY3MnOiB7fSwKLSAgICAgICAg
ICAgICAgICAnc3RlcF9udW1iZXInOiAwLAotICAgICAgICAgICAgICAgICd0ZXh0JzogWycnXSwK
LSAgICAgICAgICAgICAgICAndGltZXMnOiBbMTQ1ODcxODY1NS40MTk4NjUsIDE0NTg3MTg2NTUu
NDUzNjMzXSwKLSAgICAgICAgICAgICAgICAndXJscyc6IHt9Ci0gICAgICAgICAgICB9LAotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICdldGEnOiBudWxsLAotICAgICAgICAgICAgICAg
ICdleHBlY3RhdGlvbnMnOiBbWydvdXRwdXQnLCA4NDUsIDEzMTUuMF1dLAotICAgICAgICAgICAg
ICAgICdoaWRkZW4nOiBmYWxzZSwKLSAgICAgICAgICAgICAgICAnaXNGaW5pc2hlZCc6IHRydWUs
Ci0gICAgICAgICAgICAgICAgJ2lzU3RhcnRlZCc6IHRydWUsCi0gICAgICAgICAgICAgICAgJ2xv
Z3MnOiBbWydzdGRpbycsICdodHRwczovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvQUJUZXN0
LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzL2J1aWxkcy82MTQvc3RlcHMvU29tZSUyMHN0ZXAvbG9n
cy9zdGRpbyddXSwKLSAgICAgICAgICAgICAgICAnbmFtZSc6ICdTb21lIHN0ZXAnLAotICAgICAg
ICAgICAgICAgICdyZXN1bHRzJzogW251bGwsW11dLAotICAgICAgICAgICAgICAgICdzdGF0aXN0
aWNzJzoge30sCi0gICAgICAgICAgICAgICAgJ3N0ZXBfbnVtYmVyJzogMSwKLSAgICAgICAgICAg
ICAgICAndGV4dCc6IFsnJ10sCi0gICAgICAgICAgICAgICAgJ3RpbWVzJzogWzE0NTg3MTg2NTcu
NTgxNjI4LCBudWxsXSwKLSAgICAgICAgICAgICAgICAndXJscyc6IHt9Ci0gICAgICAgICAgICB9
LAotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICdldGEnOiBudWxsLAotICAgICAgICAg
ICAgICAgICdleHBlY3RhdGlvbnMnOiBbWydvdXRwdXQnLCBudWxsLCBudWxsXV0sCi0gICAgICAg
ICAgICAgICAgJ2hpZGRlbic6IGZhbHNlLAotICAgICAgICAgICAgICAgICdpc0ZpbmlzaGVkJzog
dHJ1ZSwKLSAgICAgICAgICAgICAgICAnaXNTdGFydGVkJzogdHJ1ZSwKLSAgICAgICAgICAgICAg
ICAnbG9ncyc6IFtdLAotICAgICAgICAgICAgICAgICduYW1lJzogJ1NvbWUgb3RoZXIgc3RlcCcs
Ci0gICAgICAgICAgICAgICAgJ3Jlc3VsdHMnOiBbbnVsbCwgW11dLAotICAgICAgICAgICAgICAg
ICdzdGF0aXN0aWNzJzoge30sCi0gICAgICAgICAgICAgICAgJ3N0ZXBfbnVtYmVyJzogMiwKLSAg
ICAgICAgICAgICAgICAndGV4dCc6IFtdLAotICAgICAgICAgICAgICAgICd0aW1lcyc6IFtudWxs
LCBudWxsXSwKLSAgICAgICAgICAgICAgICAndXJscyc6IHt9Ci0gICAgICAgICAgICB9LAotICAg
ICAgICBdLAotICAgICAgICAndGV4dCc6IFtdLAotICAgICAgICAndGltZXMnOiBbMTQ1ODkzNzQ3
OC4yNTgzNywgMTQ1ODk0NjE0Ny4xNzM3ODVdCisgICAgICAgICJidWlsZGVyaWQiOiBidWlsZGVy
SWQgfHwgMTAyLAorICAgICAgICAibnVtYmVyIjogYnVpbGROdW1iZXIgfHwgNjE0LAorICAgICAg
ICAiYnVpbGRyZXF1ZXN0aWQiOiBidWlsZFJlcXVlc3RJZCB8fCAxNjczMywKKyAgICAgICAgImNv
bXBsZXRlIjogaXNDb21wbGV0ZSwKKyAgICAgICAgImNvbXBsZXRlX2F0IjogbnVsbCwKKyAgICAg
ICAgImJ1aWxkaWQiOiA0MTg3NDQsCisgICAgICAgICJtYXN0ZXJpZCI6IDEsCisgICAgICAgICJy
ZXN1bHRzIjogbnVsbCwKKyAgICAgICAgInN0YXJ0ZWRfYXQiOiAxNTEzNzI1MTA5LAorICAgICAg
ICAic3RhdGVfc3RyaW5nIjogImJ1aWxkaW5nIiwKKyAgICAgICAgIndvcmtlcmlkIjogNDEsCisg
ICAgICAgICJwcm9wZXJ0aWVzIjogeworICAgICAgICAgICAgInBsYXRmb3JtIjogWyJtYWMiLCAi
VW5rbm93biJdLAorICAgICAgICAgICAgInNjaGVkdWxlciI6IFsiQUJUZXN0LWlQYWQtUnVuQmVu
Y2htYXJrLVRlc3RzLUZvcmNlU2NoZWR1bGVyIiwgIlNjaGVkdWxlciJdLAorICAgICAgICAgICAg
InNsYXZlbmFtZSI6IFt3b3JrZXJOYW1lIHx8ICJBQlRlc3QtaVBhZC0wIiwgIldvcmtlciAoZGVw
cmVjYXRlZCkiXSwKKyAgICAgICAgICAgICJ3b3JrZXJuYW1lIjogW3dvcmtlck5hbWUgfHwgIkFC
VGVzdC1pUGFkLTAiLCAiV29ya2VyIgorICAgICAgICAgICAgXQorICAgICAgICB9CisgICAgfTsK
K30KKworZnVuY3Rpb24gc2FtcGxlSW5Qcm9ncmVzc0J1aWxkRGF0YSh3b3JrZXJOYW1lKQorewor
ICAgIHJldHVybiBzYW1wbGVCdWlsZERhdGEod29ya2VyTmFtZSwgZmFsc2UpOworfQorCitmdW5j
dGlvbiBzYW1wbGVJblByb2dyZXNzQnVpbGQod29ya2VyTmFtZSkKK3sKKyAgICByZXR1cm4gewor
ICAgICAgICAiYnVpbGRzIjogW3NhbXBsZUluUHJvZ3Jlc3NCdWlsZERhdGEod29ya2VyTmFtZSld
CisgICAgfTsKK30KKworZnVuY3Rpb24gc2FtcGxlRmluaXNoZWRCdWlsZERhdGEoYnVpbGRSZXF1
ZXN0SWQsIHdvcmtlck5hbWUsIGJ1aWxkZXJOYW1lKQoreworICAgIHJldHVybiBzYW1wbGVCdWls
ZERhdGEod29ya2VyTmFtZSwgdHJ1ZSwgYnVpbGRSZXF1ZXN0SWQgfHwgMTg5MzUsIDE3NTUsIGJ1
aWxkZXJOYW1lVG9JRE1hcCgpW2J1aWxkZXJOYW1lXSk7Cit9CisKK2Z1bmN0aW9uIHNhbXBsZUZp
bmlzaGVkQnVpbGQoYnVpbGRSZXF1ZXN0SWQsIHdvcmtlck5hbWUsIGJ1aWxkZXJOYW1lKQorewor
ICAgIHJldHVybiB7CisgICAgICAgICJidWlsZHMiOiBbc2FtcGxlRmluaXNoZWRCdWlsZERhdGEo
YnVpbGRSZXF1ZXN0SWQsIHdvcmtlck5hbWUsIGJ1aWxkZXJOYW1lKV0KICAgICB9OwogfQogCkBA
IC0xMjAwLDggKzEwMzcsOCBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAg
ICAgICAgIGl0KCdzaG91bGQgZmV0Y2ggcGVuZGluZyBidWlsZHMgZnJvbSB0aGUgcmlnaHQgVVJM
JywgKCkgPT4gewogICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURN
YXAoKSlbMV07CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc3luY2VyLmJ1aWxkZXJOYW1lKCks
ICdBQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMnKTsKLSAgICAgICAgICAgIGxldCBleHBl
Y3RlZFVSTCA9ICcvanNvbi9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMv
cGVuZGluZ0J1aWxkcyc7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoc3luY2VyLnBhdGhGb3JQ
ZW5kaW5nQnVpbGRzSlNPTkRlcHJlY2F0ZWQoKSwgZXhwZWN0ZWRVUkwpOworICAgICAgICAgICAg
bGV0IGV4cGVjdGVkVVJMID0gJy9hcGkvdjIvYnVpbGRlcnMvMTAyL2J1aWxkcmVxdWVzdHM/Y29t
cGxldGU9ZmFsc2UmY2xhaW1lZD1mYWxzZSc7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc3lu
Y2VyLnBhdGhGb3JQZW5kaW5nQnVpbGRzKCksIGV4cGVjdGVkVVJMKTsKICAgICAgICAgICAgIHN5
bmNlci5wdWxsQnVpbGRib3QoKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDEpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgZXhw
ZWN0ZWRVUkwpOwpAQCAtMTIxMywxMSArMTA1MCwxMSBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5j
ZXInLCAoKSA9PiB7CiAKICAgICAgICAgICAgIHN5bmNlci5wdWxsQnVpbGRib3QoMSk7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWlsZGVycy9BQlRlc3QtaVBhZC1S
dW5CZW5jaG1hcmstVGVzdHMvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzBdLnVybCwgJy9hcGkvdjIvYnVpbGRlcnMvMTAyL2J1aWxkcmVxdWVzdHM/
Y29tcGxldGU9ZmFsc2UmY2xhaW1lZD1mYWxzZScpOwogICAgICAgICAgICAgcmVxdWVzdHNbMF0u
cmVzb2x2ZShbXSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS51
cmwsICcvanNvbi9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVpbGRz
Lz9zZWxlY3Q9LTEnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0u
dXJsLCAnL2FwaS92Mi9idWlsZGVycy8xMDIvYnVpbGRzP2xpbWl0PTEmb3JkZXI9LW51bWJlciZw
cm9wZXJ0eT0qJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTEyMjYsMjkg
KzEwNjMsMjkgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogCiAgICAgICAg
ICAgICBzeW5jZXIucHVsbEJ1aWxkYm90KDMpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0u
dXJsLCAnL2pzb24vYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzL3BlbmRp
bmdCdWlsZHMnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcv
YXBpL3YyL2J1aWxkZXJzLzEwMi9idWlsZHJlcXVlc3RzP2NvbXBsZXRlPWZhbHNlJmNsYWltZWQ9
ZmFsc2UnKTsKICAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoW10pOwogICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRlcnMvQUJU
ZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMiZz
ZWxlY3Q9LTMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0udXJs
LCAnL2FwaS92Mi9idWlsZGVycy8xMDIvYnVpbGRzP2xpbWl0PTMmb3JkZXI9LW51bWJlciZwcm9w
ZXJ0eT0qJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3No
b3VsZCBjcmVhdGUgQnVpbGRib3RCdWlsZEVudHJ5IGZvciBwZW5kaW5nIGJ1aWxkcycsICgpID0+
IHsKICAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhN
b2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFd
OwogICAgICAgICAgICAgbGV0IHByb21pc2UgPSBzeW5jZXIucHVsbEJ1aWxkYm90KCk7Ci0gICAg
ICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKFtzYW1wbGVQZW5kaW5nQnVpbGQoKV0pOworICAg
ICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZShzYW1wbGVQZW5kaW5nQnVpbGQoKSk7CiAgICAg
ICAgICAgICByZXR1cm4gcHJvbWlzZS50aGVuKChlbnRyaWVzKSA9PiB7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGVudHJpZXMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBsZXQg
ZW50cnkgPSBlbnRyaWVzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0
YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeURlcHJlY2F0ZWQpOworICAgICAgICAgICAgICAgIGFz
c2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeSk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5idWlsZE51bWJlcigpKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQub2soIWVudHJ5LnNsYXZlTmFtZSgpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZW50cnkuYnVpbGRSZXF1ZXN0SWQoKSwgMTY3MzMpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5vayhlbnRyeS5pc1BlbmRpbmcoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRy
eS5pc0luUHJvZ3Jlc3MoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5oYXNG
aW5pc2hlZCgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmst
VGVzdHMvJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE2NzMzJyk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTEyNjAsMTkgKzEwOTcsMTkgQEAgZGVzY3JpYmUoJ0J1
aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZShb
XSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDIpOwotICAgICAgICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoe1stMV06IHNhbXBsZUlu
UHJvZ3Jlc3NCdWlsZCgpfSk7CisgICAgICAgICAgICAgICAgcmVxdWVzdHNbMV0ucmVzb2x2ZShz
YW1wbGVJblByb2dyZXNzQnVpbGQoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHByb21pc2U7
CiAgICAgICAgICAgICB9KS50aGVuKChlbnRyaWVzKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGVudHJpZXMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBsZXQgZW50cnkg
PSBlbnRyaWVzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9m
IEJ1aWxkYm90QnVpbGRFbnRyeURlcHJlY2F0ZWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5v
ayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeSk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkTnVtYmVyKCksIDYxNCk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGVudHJ5LnNsYXZlTmFtZSgpLCAnQUJUZXN0LWlQYWQtMCcpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZFJlcXVlc3RJZCgpLCAxNjczMyk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc1BlbmRpbmcoKSk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0Lm9rKGVudHJ5LmlzSW5Qcm9ncmVzcygpKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQub2soIWVudHJ5Lmhhc0ZpbmlzaGVkKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL0FCVGVz
dC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy9idWlsZHMvNjE0Jyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWls
ZGVycy8xMDIvYnVpbGRzLzYxNCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBA
IC0xMjg0LDE5ICsxMTIxLDE5IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsK
ICAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoW10pOwogICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICBy
ZXF1ZXN0c1sxXS5yZXNvbHZlKHtbLTFdOiBzYW1wbGVGaW5pc2hlZEJ1aWxkKCl9KTsKKyAgICAg
ICAgICAgICAgICByZXF1ZXN0c1sxXS5yZXNvbHZlKHNhbXBsZUZpbmlzaGVkQnVpbGQoKSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHByb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKChlbnRy
aWVzKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChlbnRyaWVzLmxlbmd0
aCwgMSk7CiAgICAgICAgICAgICAgICAgbGV0IGVudHJ5ID0gZW50cmllc1swXTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnlEZXBy
ZWNhdGVkKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWls
ZGJvdEJ1aWxkRW50cnkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWls
ZE51bWJlcigpLCAxNzU1KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuc2xh
dmVOYW1lKCksICdBQlRlc3QtaVBhZC0wJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGVudHJ5LmJ1aWxkUmVxdWVzdElkKCksIDE4OTM1KTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
b2soIWVudHJ5LmlzUGVuZGluZygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5
LmlzSW5Qcm9ncmVzcygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkuaGFzRmlu
aXNoZWQoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRl
c3RzL2J1aWxkcy8xNzU1Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVy
bCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xMDIvYnVpbGRzLzE3NTUn
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMTMwNiw0NCArMTE0Myw0NCBA
QCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBsZXQgcHJv
bWlzZSA9IHN5bmNlci5wdWxsQnVpbGRib3QoNSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAxKTsKIAotICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZShb
c2FtcGxlUGVuZGluZ0J1aWxkKDEyMyldKTsKKyAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29s
dmUoc2FtcGxlUGVuZGluZ0J1aWxkKDEyMykpOwogCiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIHJlcXVlc3Rz
WzFdLnJlc29sdmUoe1stMV06IHNhbXBsZUZpbmlzaGVkQnVpbGQoKSwgWy0yXTogeydlcnJvcic6
ICdOb3QgYXZhaWxhYmxlJ30sIFstNF06IHNhbXBsZUluUHJvZ3Jlc3NCdWlsZCgpfSk7CisgICAg
ICAgICAgICAgICAgcmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtzYW1wbGVGaW5pc2hl
ZEJ1aWxkRGF0YSgpLCBzYW1wbGVJblByb2dyZXNzQnVpbGREYXRhKCldfSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIHByb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKChlbnRyaWVzKSA9PiB7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChlbnRyaWVzLmxlbmd0aCwgMyk7CiAK
ICAgICAgICAgICAgICAgICBsZXQgZW50cnkgPSBlbnRyaWVzWzBdOwotICAgICAgICAgICAgICAg
IGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeURlcHJlY2F0ZWQp
OworICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVp
bGRFbnRyeSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkTnVtYmVy
KCksIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5zbGF2ZU5hbWUo
KSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkUmVxdWVz
dElkKCksIDEyMyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5LmlzUGVuZGluZygp
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5LmlzSW5Qcm9ncmVzcygpKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5Lmhhc0ZpbmlzaGVkKCkpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
L2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy8nKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8j
L2J1aWxkcmVxdWVzdHMvMTIzJyk7CiAKICAgICAgICAgICAgICAgICBlbnRyeSA9IGVudHJpZXNb
MV07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RC
dWlsZEVudHJ5RGVwcmVjYXRlZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGlu
c3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZW50cnkuYnVpbGROdW1iZXIoKSwgNjE0KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZW50cnkuc2xhdmVOYW1lKCksICdBQlRlc3QtaVBhZC0wJyk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkUmVxdWVzdElkKCksIDE2NzMzKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQub2soIWVudHJ5LmlzUGVuZGluZygpKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQub2soZW50cnkuaXNJblByb2dyZXNzKCkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vaygh
ZW50cnkuaGFzRmluaXNoZWQoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5
LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVu
QmVuY2htYXJrLVRlc3RzL2J1aWxkcy82MTQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEwMi9i
dWlsZHMvNjE0Jyk7CiAKICAgICAgICAgICAgICAgICBlbnRyeSA9IGVudHJpZXNbMl07Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5
RGVwcmVjYXRlZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2Yg
QnVpbGRib3RCdWlsZEVudHJ5KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnku
YnVpbGROdW1iZXIoKSwgMTc1NSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5
LnNsYXZlTmFtZSgpLCAnQUJUZXN0LWlQYWQtMCcpOwogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChlbnRyeS5idWlsZFJlcXVlc3RJZCgpLCAxODkzNSk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0Lm9rKCFlbnRyeS5pc1BlbmRpbmcoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFl
bnRyeS5pc0luUHJvZ3Jlc3MoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5Lmhh
c0ZpbmlzaGVkKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwg
J2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFy
ay1UZXN0cy9idWlsZHMvMTc1NScpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRy
eS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMTAyL2J1aWxkcy8x
NzU1Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTEzNTMsNTQgKzExOTAs
NTQgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgbGV0
IHByb21pc2UgPSBzeW5jZXIucHVsbEJ1aWxkYm90KDUpOwogICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CiAKLSAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29s
dmUoW3NhbXBsZVBlbmRpbmdCdWlsZCg0NTYsIDIpLCBzYW1wbGVQZW5kaW5nQnVpbGQoMTIzLCAx
KV0pOworICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZSh7ImJ1aWxkcmVxdWVzdHMiOiBb
c2FtcGxlUGVuZGluZ0J1aWxkRGF0YSg0NTYsIDIpLCBzYW1wbGVQZW5kaW5nQnVpbGREYXRhKDEy
MywgMSldfSk7CiAKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgcmVxdWVzdHNbMV0ucmVzb2x2ZSh7Wy0zXTog
c2FtcGxlRmluaXNoZWRCdWlsZCgpLCBbLTFdOiB7J2Vycm9yJzogJ05vdCBhdmFpbGFibGUnfSwg
Wy0yXTogc2FtcGxlSW5Qcm9ncmVzc0J1aWxkKCl9KTsKKyAgICAgICAgICAgICAgICByZXF1ZXN0
c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzogW3NhbXBsZUZpbmlzaGVkQnVpbGREYXRhKCksIHNhbXBs
ZUluUHJvZ3Jlc3NCdWlsZERhdGEoKV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gcHJvbWlz
ZTsKICAgICAgICAgICAgIH0pLnRoZW4oKGVudHJpZXMpID0+IHsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGVudHJpZXMubGVuZ3RoLCA0KTsKIAogICAgICAgICAgICAgICAgIGxl
dCBlbnRyeSA9IGVudHJpZXNbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGlu
c3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5RGVwcmVjYXRlZCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5KTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGROdW1iZXIoKSwgbnVsbCk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnNsYXZlTmFtZSgpLCBudWxsKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGRSZXF1ZXN0SWQoKSwgMTIzKTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQub2soZW50cnkuaXNQZW5kaW5nKCkpOwogICAgICAgICAgICAgICAg
IGFzc2VydC5vayghZW50cnkuaXNJblByb2dyZXNzKCkpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5vayghZW50cnkuaGFzRmluaXNoZWQoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvQUJUZXN0LWlQ
YWQtUnVuQmVuY2htYXJrLVRlc3RzLycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChl
bnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xMjMn
KTsKIAogICAgICAgICAgICAgICAgIGVudHJ5ID0gZW50cmllc1sxXTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnlEZXByZWNhdGVk
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1
aWxkRW50cnkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZE51bWJl
cigpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuc2xhdmVOYW1l
KCksIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZFJlcXVl
c3RJZCgpLCA0NTYpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeS5pc1BlbmRpbmco
KSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc0luUHJvZ3Jlc3MoKSk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5oYXNGaW5pc2hlZCgpKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcv
Iy9idWlsZHJlcXVlc3RzLzQ1NicpOwogCiAgICAgICAgICAgICAgICAgZW50cnkgPSBlbnRyaWVz
WzJdOwotICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90
QnVpbGRFbnRyeURlcHJlY2F0ZWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBp
bnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGVudHJ5LmJ1aWxkTnVtYmVyKCksIDYxNCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGVudHJ5LnNsYXZlTmFtZSgpLCAnQUJUZXN0LWlQYWQtMCcpOwogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChlbnRyeS5idWlsZFJlcXVlc3RJZCgpLCAxNjczMyk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc1BlbmRpbmcoKSk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0Lm9rKGVudHJ5LmlzSW5Qcm9ncmVzcygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2so
IWVudHJ5Lmhhc0ZpbmlzaGVkKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRy
eS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1
bkJlbmNobWFyay1UZXN0cy9idWlsZHMvNjE0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xMDIv
YnVpbGRzLzYxNCcpOwogCiAgICAgICAgICAgICAgICAgZW50cnkgPSBlbnRyaWVzWzNdOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRy
eURlcHJlY2F0ZWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9m
IEJ1aWxkYm90QnVpbGRFbnRyeSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5
LmJ1aWxkTnVtYmVyKCksIDE3NTUpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRy
eS5zbGF2ZU5hbWUoKSwgJ0FCVGVzdC1pUGFkLTAnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZW50cnkuYnVpbGRSZXF1ZXN0SWQoKSwgMTg5MzUpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5vayghZW50cnkuaXNQZW5kaW5nKCkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vaygh
ZW50cnkuaXNJblByb2dyZXNzKCkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeS5o
YXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCks
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1h
cmstVGVzdHMvYnVpbGRzLzE3NTUnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50
cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEwMi9idWlsZHMv
MTc1NScpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0xNDEwLDI0ICsxMjQ3
LDI0IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGxl
dCBwcm9taXNlID0gc3luY2VyLnB1bGxCdWlsZGJvdCg1KTsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwogCi0gICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNv
bHZlKFtzYW1wbGVQZW5kaW5nQnVpbGQoKV0pOworICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVz
b2x2ZShzYW1wbGVQZW5kaW5nQnVpbGQoKSk7CiAKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgcmVxdWVzdHNb
MV0ucmVzb2x2ZSh7Wy0xXTogc2FtcGxlSW5Qcm9ncmVzc0J1aWxkKCl9KTsKKyAgICAgICAgICAg
ICAgICByZXF1ZXN0c1sxXS5yZXNvbHZlKHNhbXBsZUluUHJvZ3Jlc3NCdWlsZCgpKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gcHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKGVudHJpZXMp
ID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cmllcy5sZW5ndGgsIDEpOwog
CiAgICAgICAgICAgICAgICAgbGV0IGVudHJ5ID0gZW50cmllc1swXTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnlEZXByZWNhdGVk
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1
aWxkRW50cnkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZE51bWJl
cigpLCA2MTQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5zbGF2ZU5hbWUo
KSwgJ0FCVGVzdC1pUGFkLTAnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnku
YnVpbGRSZXF1ZXN0SWQoKSwgMTY3MzMpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50
cnkuaXNQZW5kaW5nKCkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeS5pc0luUHJv
Z3Jlc3MoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5oYXNGaW5pc2hlZCgp
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVp
bGRzLzYxNCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0
dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMTAyL2J1aWxkcy82MTQnKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMTQzNywyNCArMTI3NCwyNCBAQCBkZXNjcmli
ZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBsZXQgcHJvbWlzZSA9IHN5
bmNlci5wdWxsQnVpbGRib3QoNSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAxKTsKIAotICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZShbc2FtcGxlUGVu
ZGluZ0J1aWxkKCldKTsKKyAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoc2FtcGxlUGVu
ZGluZ0J1aWxkKCkpOwogCiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoe1st
MV06IHNhbXBsZUZpbmlzaGVkQnVpbGQoMTY3MzMpfSk7CisgICAgICAgICAgICAgICAgcmVxdWVz
dHNbMV0ucmVzb2x2ZShzYW1wbGVGaW5pc2hlZEJ1aWxkKDE2NzMzKSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHByb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKChlbnRyaWVzKSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJpZXMubGVuZ3RoLCAxKTsKIAogICAgICAg
ICAgICAgICAgIGxldCBlbnRyeSA9IGVudHJpZXNbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5RGVwcmVjYXRlZCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGROdW1iZXIoKSwgMTc1
NSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnNsYXZlTmFtZSgpLCAnQUJU
ZXN0LWlQYWQtMCcpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZFJl
cXVlc3RJZCgpLCAxNjczMyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc1Bl
bmRpbmcoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc0luUHJvZ3Jlc3Mo
KSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5Lmhhc0ZpbmlzaGVkKCkpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJr
aXQub3JnL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy9idWlsZHMvMTc1
NScpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9i
dWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMTAyL2J1aWxkcy8xNzU1Jyk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xNDY1LDE4ICsxMzAyLDIzIEBAIGRlc2Ny
aWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKIAogICAgICAgICAgICAgY29uc3Qgd2FpdEZv
clJlcXVlc3QgPSBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICBj
b25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBob25l
LCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKLSAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJl
cXVlc3REZXByZWNhdGVkKHJlcXVlc3QsIFtyZXF1ZXN0XSwgJ3NvbWUtc2xhdmUnKTsKKyAgICAg
ICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3QocmVxdWVzdCwgW3JlcXVlc3RdLCAnc29tZS1z
bGF2ZScpOwogICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JSZXF1ZXN0LnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvYnVpbGRlcnMvQUJUZXN0
LWlQaG9uZS1SdW5CZW5jaG1hcmstVGVzdHMvZm9yY2UnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvQUJUZXN0
LWlQaG9uZS1SdW5CZW5jaG1hcmstVGVzdHMtRm9yY2VTY2hlZHVsZXInKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0ubWV0aG9kLCAnUE9TVCcpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMF0uZGF0YSwgewotICAgICAgICAgICAg
ICAgICAgICAnYnVpbGRfcmVxdWVzdF9pZCc6ICcxNjczMy0nICsgTW9ja01vZGVscy5pcGhvbmUu
aWQoKSwKLSAgICAgICAgICAgICAgICAgICAgJ2Rlc2lyZWRfaW1hZ2UnOiAnMTNBNDUyJywKLSAg
ICAgICAgICAgICAgICAgICAgIm9wZW5zb3VyY2UiOiAiMTk3NDYzIiwKLSAgICAgICAgICAgICAg
ICAgICAgJ2ZvcmNlc2NoZWR1bGVyJzogJ0FCVGVzdC1pUGhvbmUtUnVuQmVuY2htYXJrLVRlc3Rz
LUZvcmNlU2NoZWR1bGVyJywKLSAgICAgICAgICAgICAgICAgICAgJ3NsYXZlbmFtZSc6ICdzb21l
LXNsYXZlJywKLSAgICAgICAgICAgICAgICAgICAgJ3Rlc3RfbmFtZSc6ICdzcGVlZG9tZXRlcicK
KyAgICAgICAgICAgICAgICAgICAgJ2lkJzogJzE2NzMzLScgKyBNb2NrTW9kZWxzLmlwaG9uZS5p
ZCgpLAorICAgICAgICAgICAgICAgICAgICAnanNvbnJwYyc6ICcyLjAnLAorICAgICAgICAgICAg
ICAgICAgICAnbWV0aG9kJzogJ2ZvcmNlJywKKyAgICAgICAgICAgICAgICAgICAgJ3BhcmFtcyc6
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdidWlsZF9yZXF1ZXN0X2lkJzogJzE2NzMzLScg
KyBNb2NrTW9kZWxzLmlwaG9uZS5pZCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2Rlc2ly
ZWRfaW1hZ2UnOiAnMTNBNDUyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdvcGVuc291cmNl
JzogJzE5NzQ2MycsCisgICAgICAgICAgICAgICAgICAgICAgICAnZm9yY2VzY2hlZHVsZXInOiAn
QUJUZXN0LWlQaG9uZS1SdW5CZW5jaG1hcmstVGVzdHMtRm9yY2VTY2hlZHVsZXInLAorICAgICAg
ICAgICAgICAgICAgICAgICAgJ3NsYXZlbmFtZSc6ICdzb21lLXNsYXZlJywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICd0ZXN0X25hbWUnOiAnc3BlZWRvbWV0ZXInCisgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsK
QEAgLTE1MDQsMjkgKzEzNDYsMzEgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4g
ewogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVl
c3QoTW9ja01vZGVscy5zb21lUGxhdGZvcm0sIE1vY2tNb2RlbHMuc29tZVRlc3QpOwogICAgICAg
ICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUocmVxdWVz
dCwgW3JlcXVlc3RdKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAn
L2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2ZvcmNlJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL3NvbWUtYnVp
bGRlci1Gb3JjZVNjaGVkdWxlcicpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0c1swXS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXF1ZXN0c1swXS5kYXRhLCB7aWQ6ICcxNjczMy0nICsgTW9ja01vZGVscy5zb21lUGxhdGZv
cm0uaWQoKSwgJ29zJzogJzEzQTQ1MicsICd3ayc6ICcxOTc0NjMnfSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1swXS5kYXRhLCB7aWQ6ICcxNjczMy0nICsgTW9j
a01vZGVscy5zb21lUGxhdGZvcm0uaWQoKSwgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdm
b3JjZScsCisgICAgICAgICAgICAgICAgICAgICdwYXJhbXMnOiB7aWQ6ICcxNjczMy0nICsgTW9j
a01vZGVscy5zb21lUGxhdGZvcm0uaWQoKSwgJ2ZvcmNlc2NoZWR1bGVyJzogJ3NvbWUtYnVpbGRl
ci1Gb3JjZVNjaGVkdWxlcicsICdvcyc6ICcxM0E0NTInLCAnd2snOiAnMTk3NDYzJ319KTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHNjaGVkdWxl
IGEgYnVpbGQgaWYgYnVpbGRlciBvbmx5IGhhcyBmaW5pc2hlZCBidWlsZHMgaWYgc2xhdmVMaXN0
IGlzIG5vdCBzcGVjaWZpZWQnLCAoKSA9PiB7CiAgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc21hbGxDb25maWd1cmF0aW9u
KCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVswXTsKIAotICAgICAgICAgICAgcmV0dXJuIHB1bGxC
dWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge1stMV06IHNtYWxsRmluaXNoZWRCdWls
ZCgpfSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFz
c2VydGlvbihzeW5jZXIsIFtdLCBzbWFsbEZpbmlzaGVkQnVpbGQoKSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChN
b2NrTW9kZWxzLnNvbWVQbGF0Zm9ybSwgTW9ja01vZGVscy5zb21lVGVzdCk7CiAgICAgICAgICAg
ICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShyZXF1ZXN0LCBb
cmVxdWVzdF0pOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvYnVp
bGRlcnMvc29tZSUyMGJ1aWxkZXIvZm9yY2UnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbMF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvc29tZS1idWlsZGVy
LUZvcmNlU2NoZWR1bGVyJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzBdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJl
cXVlc3RzWzBdLmRhdGEsIHtpZDogJzE2NzMzLScgKyBNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybS5p
ZCgpLCAnb3MnOiAnMTNBNDUyJywgJ3drJzogJzE5NzQ2Myd9KTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzBdLmRhdGEsIHtpZDogJzE2NzMzLScgKyBNb2NrTW9k
ZWxzLnNvbWVQbGF0Zm9ybS5pZCgpLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNl
JywKKyAgICAgICAgICAgICAgICAgICAgJ3BhcmFtcyc6IHtpZDogJzE2NzMzLScgKyBNb2NrTW9k
ZWxzLnNvbWVQbGF0Zm9ybS5pZCgpLCAnZm9yY2VzY2hlZHVsZXInOiAnc29tZS1idWlsZGVyLUZv
cmNlU2NoZWR1bGVyJywgJ29zJzogJzEzQTQ1MicsICd3ayc6ICcxOTc0NjMnfX0pOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgbm90IHNjaGVkdWxl
IGEgYnVpbGQgaWYgYnVpbGRlciBoYXMgYSBwZW5kaW5nIGJ1aWxkIGlmIHNsYXZlTGlzdCBpcyBu
b3Qgc3BlY2lmaWVkJywgKCkgPT4gewogICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90
U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNtYWxsQ29uZmlndXJhdGlvbigpLCBi
dWlsZGVyTmFtZVRvSURNYXAoKSlbMF07CiAKLSAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRi
b3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW3NtYWxsUGVuZGluZ0J1aWxkKCldLCB7fSkudGhlbigo
KSA9PiB7CisgICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5j
ZXIsIHNtYWxsUGVuZGluZ0J1aWxkKCksIHt9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0SW5Hcm91cElmQXZhaWxhYmxlKGNyZWF0ZVNhbXBsZUJ1
aWxkUmVxdWVzdChNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybSwgTW9ja01vZGVscy5zb21lVGVzdCkp
OwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDApOwogICAg
ICAgICAgICAgfSk7CkBAIC0xNTM5LDcgKzEzODMsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5j
ZXInLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBs
ZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwaG9uZSwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7
CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdEluR3JvdXBJZkF2YWlsYWJs
ZShyZXF1ZXN0LCBbcmVxdWVzdF0sIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0c1swXS51cmwsICcvYnVpbGRlcnMvQUJUZXN0LWlQaG9uZS1SdW5CZW5jaG1hcmstVGVzdHMv
Zm9yY2UnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAn
L2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvQUJUZXN0LWlQaG9uZS1SdW5CZW5jaG1hcmstVGVzdHMt
Rm9yY2VTY2hlZHVsZXInKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNb
MF0ubWV0aG9kLCAnUE9TVCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtMTU0
NywxMSArMTM5MSwxMSBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAg
ICAgIGl0KCdzaG91bGQgc2NoZWR1bGUgYSBidWlsZCBpZiBidWlsZGVyIG9ubHkgaGFzIGZpbmlz
aGVkIGJ1aWxkcyBvbiB0aGUgbWF0Y2hpbmcgc2xhdmUnLCAoKSA9PiB7CiAgICAgICAgICAgICBs
ZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2Ft
cGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAotICAgICAgICAgICAg
cHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7Wy0xXTogc2FtcGxlRmluaXNo
ZWRCdWlsZCgpfSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICBwdWxsQnVpbGRib3RXaXRoQXNz
ZXJ0aW9uKHN5bmNlciwgW10sIHNhbXBsZUZpbmlzaGVkQnVpbGQoKSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChN
b2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwogICAgICAgICAgICAgICAg
IHN5bmNlci5zY2hlZHVsZVJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUocmVxdWVzdCwgW3JlcXVl
c3RdLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2J1
aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy9mb3JjZScpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1
bGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMtRm9yY2VTY2hlZHVsZXInKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0ubWV0aG9kLCAnUE9TVCcpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtMTU1OSw3ICsxNDAzLDcgQEAgZGVzY3Jp
YmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICBpdCgnc2hvdWxkIG5vdCBzY2hl
ZHVsZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgaGFzIGEgcGVuZGluZyBidWlsZCBvbiB0aGUgbWFjaGlu
ZyBzbGF2ZScsICgpID0+IHsKICAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5h
bWVUb0lETWFwKCkpWzFdOwogCi0gICAgICAgICAgICBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9u
KHN5bmNlciwgW3NhbXBsZVBlbmRpbmdCdWlsZCgpXSwge30pLnRoZW4oKCkgPT4geworICAgICAg
ICAgICAgcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIHNhbXBsZVBlbmRpbmdCdWls
ZCgpLCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNy
ZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRv
bWV0ZXIpOwogICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3RJbkdyb3VwSWZB
dmFpbGFibGUocmVxdWVzdCwgW3JlcXVlc3RdLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAwKTsKQEAgLTE1NjksNyArMTQxMyw3IEBAIGRlc2Ny
aWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgaXQoJ3Nob3VsZCBzY2hlZHVs
ZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgb25seSBoYXMgYSBwZW5kaW5nIGJ1aWxkIG9uIGEgbm9uLW1h
Y2hpbmcgc2xhdmUnLCAoKSA9PiB7CiAgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RT
eW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxk
ZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAotICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdp
dGhBc3NlcnRpb24oc3luY2VyLCBbc2FtcGxlUGVuZGluZ0J1aWxkKDEsIDEsICdhbm90aGVyLXNs
YXZlJyldLCB7fSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90
V2l0aEFzc2VydGlvbihzeW5jZXIsIHNhbXBsZVBlbmRpbmdCdWlsZCgxLCAxLCAnYW5vdGhlci1z
bGF2ZScpLCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9
IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3Bl
ZWRvbWV0ZXIpOwogICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3RJbkdyb3Vw
SWZBdmFpbGFibGUocmVxdWVzdCwgW3JlcXVlc3RdLCBudWxsKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKQEAgLTE1NzksNyArMTQyMyw3IEBAIGRl
c2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgaXQoJ3Nob3VsZCBzY2hl
ZHVsZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgb25seSBoYXMgYW4gaW4tcHJvZ3Jlc3MgYnVpbGQgb24g
dGhlIG1hdGNoaW5nIHNsYXZlJywgKCkgPT4gewogICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1
aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygp
LCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKLSAgICAgICAgICAgIHJldHVybiBwdWxsQnVp
bGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10sIHtbLTFdOiBzYW1wbGVJblByb2dyZXNzQnVp
bGQoKX0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhB
c3NlcnRpb24oc3luY2VyLCBbXSwgc2FtcGxlSW5Qcm9ncmVzc0J1aWxkKCkpLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVl
c3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKICAgICAgICAgICAg
ICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0SW5Hcm91cElmQXZhaWxhYmxlKHJlcXVlc3QsIFty
ZXF1ZXN0XSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMSk7CkBAIC0xNTg5LDcgKzE0MzMsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXIn
LCAoKSA9PiB7CiAgICAgICAgIGl0KCdzaG91bGQgc2NoZWR1bGUgYSBidWlsZCBpZiBidWlsZGVy
IGhhcyBhbiBpbi1wcm9ncmVzcyBidWlsZCBvbiBhbm90aGVyIHNsYXZlJywgKCkgPT4gewogICAg
ICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1v
dGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKLSAg
ICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10sIHtb
LTFdOiBzYW1wbGVJblByb2dyZXNzQnVpbGQoJ290aGVyLXNsYXZlJyl9KS50aGVuKCgpID0+IHsK
KyAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10s
IHNhbXBsZUluUHJvZ3Jlc3NCdWlsZCgnb3RoZXItc2xhdmUnKSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2Nr
TW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwogICAgICAgICAgICAgICAgIHN5
bmNlci5zY2hlZHVsZVJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUocmVxdWVzdCwgW3JlcXVlc3Rd
LCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAx
KTsKQEAgLTE2MTEsOSArMTQ1NSw5IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+
IHsKIAogICAgICAgICAgICAgcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgbGV0IHJlcXVlc3QgPSBjcmVhdGVTYW1w
bGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsK
LSAgICAgICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0RGVwcmVjYXRlZChyZXF1ZXN0
LCBbcmVxdWVzdF0sICdBQlRlc3QtaVBhZC0wJyk7CisgICAgICAgICAgICAgICAgc3luY2VyLnNj
aGVkdWxlUmVxdWVzdChyZXF1ZXN0LCBbcmVxdWVzdF0sICdBQlRlc3QtaVBhZC0wJyk7CiAgICAg
ICAgICAgICAgICAgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxz
LmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwotICAgICAgICAgICAgICAgIHN5bmNlci5z
Y2hlZHVsZVJlcXVlc3REZXByZWNhdGVkKHJlcXVlc3QsIFtyZXF1ZXN0XSwgJ0FCVGVzdC1pUGFk
LTEnKTsKKyAgICAgICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0KHJlcXVlc3QsIFty
ZXF1ZXN0XSwgJ0FCVGVzdC1pUGFkLTEnKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAgICAg
ICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01v
ZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKQEAgLTE2MjksNyArMTQ3Myw3IEBA
IGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKIAogICAgICAgICAgICAgcmV0dXJu
IHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge30pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIGxldCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1v
Y2tNb2RlbHMuaXBhZCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7Ci0gICAgICAgICAgICAgICAg
c3luY2VyLnNjaGVkdWxlUmVxdWVzdERlcHJlY2F0ZWQocmVxdWVzdCwgW3JlcXVlc3RdLCAnQUJU
ZXN0LWlQYWQtMCcpOworICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3QocmVx
dWVzdCwgW3JlcXVlc3RdLCAnQUJUZXN0LWlQYWQtMCcpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIHJlcXVlc3QgPSBj
cmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVk
b21ldGVyKQogICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3RJbkdyb3VwSWZB
dmFpbGFibGUocmVxdWVzdCwgW3JlcXVlc3RdLCAnQUJUZXN0LWlQYWQtMScpOwpAQCAtMTY0Miw3
ICsxNDg2LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogCiAgICAgICAg
ICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7fSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgbGV0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWls
ZFJlcXVlc3QoTW9ja01vZGVscy5zb21lUGxhdGZvcm0sIE1vY2tNb2RlbHMuc29tZVRlc3QpOwot
ICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3REZXByZWNhdGVkKHJlcXVlc3Qs
IFtyZXF1ZXN0XSwgbnVsbCk7CisgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVz
dChyZXF1ZXN0LCBbcmVxdWVzdF0sIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIHJlcXVlc3QgPSBjcmVhdGVT
YW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5zb21lUGxhdGZvcm0sIE1vY2tNb2RlbHMuc29t
ZVRlc3QpOwogICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3RJbkdyb3VwSWZB
dmFpbGFibGUocmVxdWVzdCwgW3JlcXVlc3RdLCBudWxsKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332791</attachid>
            <date>2018-01-31 12:12:22 -0800</date>
            <delta_ts>2018-02-07 13:18:51 -0800</delta_ts>
            <desc>Patch to switch to Buildbot 0.9</desc>
            <filename>buildbot_perf_update_v4.patch</filename>
            <type>text/plain</type>
            <size>194823</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvQ2hhbmdlTG9nCmluZGV4IDBkZmZjMjdjN2RmLi5jMWU2NWUzODM2
OSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZworKysgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTgt
MDEtMjkgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgorCisgICAgICAgIFVw
ZGF0ZSBQZXJmIGJ1aWxkYm90IHN5bmNpbmcgc2NyaXB0cyBmb3IgQnVpbGRib3QgMC45CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzU5NjkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRvb2xzL2pzL2J1
aWxkYm90LXRyaWdnZXJhYmxlLmpzOgorICAgICAgICAoQnVpbGRib3RUcmlnZ2VyYWJsZS5wcm90
b3R5cGUuaW5pdFN5bmNlcnMpOiBTd2l0Y2ggZnJvbSBEZXByZWNhdGVkIHZlcnNpb24gdG8gbmV3
IHZlcnNpb24gb2YgZ2V0QnVpbGRlck5hbWVUb0lETWFwLgorICAgICAgICAqIHRvb2xzL2pzL2J1
aWxkYm90LXN5bmNlci5qczoKKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLnByb3RvdHlwZS5zY2hl
ZHVsZVJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUpOiBTd2l0Y2ggZnJvbSBEZXByZWNhdGVkIHZl
cnNpb24gdG8gbmV3IHZlcnNpb24gb2Ygc2NoZWR1bGVSZXF1ZXN0LgorICAgICAgICAoQnVpbGRi
b3RTeW5jZXIucHJvdG90eXBlLnB1bGxCdWlsZGJvdCk6IFN3aXRjaCBmcm9tIERlcHJlY2F0ZWQg
dmVyc2lvbiB0byBuZXcgdmVyc2lvbiBvZiBwYXRoRm9yUGVuZGluZ0J1aWxkcywgX3B1bGxSZWNl
bnRCdWlsZHMgCisgICAgICAgIGFuZCBCdWlsZGJvdEJ1aWxkRW50cnkuIFBhcnNlIHRoZSBwZW5k
aW5nIGJ1aWxkLXJlcXVlc3RzIGRhdGEgaW4gQnVpbGRib3QgMC45IGZvcm1hdC4KKyAgICAgICAg
KiB1bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qczogVXBkYXRlZCBhcyBwZXIgQnVp
bGRib3QgMC45IGNvZGUuIEFsbCB0ZXN0IHBhc3MgZXhjZXB0IAorICAgICAgICB0aGUgdGVzdCAi
c2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVpbGRlciBvbmx5IGhhcyBhIHBlbmRpbmcgYnVp
bGQgb24gYSBub24tbWFjaGluZyBzbGF2ZSIuCisgICAgICAgICogc2VydmVyLXRlc3RzL3Rvb2xz
LXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanM6IERpdHRvLiBBbGwgdGVzdCBwYXNz
LgorICAgICAgICAqIHNlcnZlci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0
cy5qczogRGl0dG8uIEFsbCB0ZXN0IHBhc3MuCisgICAgICAgICogc2VydmVyLXRlc3RzL3Jlc291
cmNlcy9tb2NrLWRhdGEuanM6IERpdHRvLgorCiAyMDE4LTAxLTI0ICBEZXdlaSBaaHUgIDxkZXdl
aV96aHVAYXBwbGUuY29tPgogCiAgICAgICAgIENoZWNrIGV4aXN0ZW5jZSBvZiAnbm9kZV9tb2R1
bGVzX2RpcicgYmVmb3JlIGNyZWF0aW5nIGl0LgpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzCmluZGV4
IGJlMWM3MzQ5OTc1Li4wYTMxNDE3MDIyNCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcwpAQCAt
MTksNiArMTksOCBAQCBNb2NrRGF0YSA9IHsKICAgICBzaGFyZWRSZXBvc2l0b3J5SWQoKSB7IHJl
dHVybiAxNDsgfSwKICAgICBidWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpIHtyZXR1cm4g
Jy9qc29uL2J1aWxkZXJzJ30sCiAgICAgYnVpbGRib3RCdWlsZGVyc1VSTCgpIHtyZXR1cm4gJy9h
cGkvdjIvYnVpbGRlcnMnfSwKKyAgICBwZW5kaW5nQnVpbGRzVXJsOiBmdW5jdGlvbiAoYnVpbGRl
cklkKSB7IHJldHVybiBgL2FwaS92Mi9idWlsZGVycy8ke2J1aWxkZXJJZH0vYnVpbGRyZXF1ZXN0
cz9jb21wbGV0ZT1mYWxzZSZjbGFpbWVkPWZhbHNlYDsgfSwKKyAgICByZWNlbnRCdWlsZHNVcmw6
IGZ1bmN0aW9uIChidWlsZGVySWQsIGNvdW50KSB7IHJldHVybiBgL2FwaS92Mi9idWlsZGVycy8k
e2J1aWxkZXJJZH0vYnVpbGRzP2xpbWl0PSR7Y291bnR9Jm9yZGVyPS1udW1iZXImcHJvcGVydHk9
KmA7IH0sCiAgICAgYWRkTW9ja0NvbmZpZ3VyYXRpb246IGZ1bmN0aW9uIChkYikKICAgICB7CiAg
ICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbCkBAIC0xODAsNyArMTgyLDggQEAgTW9ja0RhdGEg
PSB7CiAgICAgICAgICAgICAgICAgJ3NvbWUtdGVzdCc6IHsndGVzdCc6IFsnc29tZSB0ZXN0J119
CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgJ2J1aWxkZXJzJzogewotICAgICAgICAgICAg
ICAgICdidWlsZGVyLTEnOiB7J2J1aWxkZXInOiAnc29tZS1idWlsZGVyLTEnfSwKKyAgICAgICAg
ICAgICAgICAnYnVpbGRlci0xJzogeydidWlsZGVyJzogJ3NvbWUtYnVpbGRlci0xJywKKyAgICAg
ICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtmb3JjZXNjaGVkdWxlcjogJ2ZvcmNlLXNvbWUt
YnVpbGRlci0xJ319CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgJ3Rlc3RDb25maWd1cmF0
aW9ucyc6IFsKICAgICAgICAgICAgICAgICB7CkBAIC0yMTAsOCArMjEzLDggQEAgTW9ja0RhdGEg
PSB7CiAgICAgICAgICAgICAgICAgJ3NvbWUtdGVzdCc6IHsndGVzdCc6IFsnc29tZSB0ZXN0J119
LAogICAgICAgICAgICAgfSwKICAgICAgICAgICAgICdidWlsZGVycyc6IHsKLSAgICAgICAgICAg
ICAgICAnYnVpbGRlci0xJzogeydidWlsZGVyJzogJ3NvbWUtYnVpbGRlci0xJ30sCi0gICAgICAg
ICAgICAgICAgJ2J1aWxkZXItMic6IHsnYnVpbGRlcic6ICdzb21lIGJ1aWxkZXIgMid9LAorICAg
ICAgICAgICAgICAgICdidWlsZGVyLTEnOiB7J2J1aWxkZXInOiAnc29tZS1idWlsZGVyLTEnLCBw
cm9wZXJ0aWVzOiB7Zm9yY2VzY2hlZHVsZXI6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSwKKyAg
ICAgICAgICAgICAgICAnYnVpbGRlci0yJzogeydidWlsZGVyJzogJ3NvbWUgYnVpbGRlciAyJywg
cHJvcGVydGllczoge2ZvcmNlc2NoZWR1bGVyOiAnZm9yY2Utc29tZS1idWlsZGVyLTInfX0sCiAg
ICAgICAgICAgICB9LAogICAgICAgICAgICAgJ3Rlc3RDb25maWd1cmF0aW9ucyc6IFsKICAgICAg
ICAgICAgICAgICB7CkBAIC0yNzYsNzcgKzI3OSw5MCBAQCBNb2NrRGF0YSA9IHsKICAgICAgICAg
ICAgIF0KICAgICAgICAgfQogICAgIH0sCisgICAgcGVuZGluZ0J1aWxkRGF0YShvcHRpb25zKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICJidWlsZGVyaWQiOiBvcHRpb25z
LmJ1aWxkZXJJZCB8fCAyLAorICAgICAgICAgICAgImJ1aWxkcmVxdWVzdGlkIjogKG9wdGlvbnMu
YnVpbGRSZXF1ZXN0SWQgfHwgNzAyKS50b1N0cmluZygpLAorICAgICAgICAgICAgImJ1aWxkc2V0
aWQiOiA4OTQ3MjAsCisgICAgICAgICAgICAiY2xhaW1lZCI6IGZhbHNlLAorICAgICAgICAgICAg
ImNsYWltZWRfYXQiOiBudWxsLAorICAgICAgICAgICAgImNsYWltZWRfYnlfbWFzdGVyaWQiOiBu
dWxsLAorICAgICAgICAgICAgImNvbXBsZXRlIjogZmFsc2UsCisgICAgICAgICAgICAiY29tcGxl
dGVfYXQiOiBudWxsLAorICAgICAgICAgICAgInByaW9yaXR5IjogMCwKKyAgICAgICAgICAgICJy
ZXN1bHRzIjogLTEsCisgICAgICAgICAgICAic3VibWl0dGVkX2F0Ijogb3B0aW9ucy5idWlsZFRp
bWUgfHwgMTQ1ODcwNDk4MywKKyAgICAgICAgICAgICJ3YWl0ZWRfZm9yIjogZmFsc2UKKyAgICAg
ICAgfTsKKyAgICB9LAogICAgIHBlbmRpbmdCdWlsZChvcHRpb25zKQogICAgIHsKICAgICAgICAg
b3B0aW9ucyA9IG9wdGlvbnMgfHwge307CiAgICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICAn
YnVpbGRlck5hbWUnOiBvcHRpb25zLmJ1aWxkZXIgfHwgJ3NvbWUtYnVpbGRlci0xJywKLSAgICAg
ICAgICAgICdidWlsZHMnOiBbXSwKLSAgICAgICAgICAgICdwcm9wZXJ0aWVzJzogWwotICAgICAg
ICAgICAgICAgIFsnd2snLCBvcHRpb25zLndlYmtpdFJldmlzaW9uIHx8ICcxOTE2MjInXSwKLSAg
ICAgICAgICAgICAgICBbJ29zJywgb3B0aW9ucy5vc3hSZXZpc2lvbiB8fCAnMTAuMTEgMTVBMjg0
J10sCi0gICAgICAgICAgICAgICAgWydidWlsZC1yZXF1ZXN0LWlkJywgKG9wdGlvbnMuYnVpbGRS
ZXF1ZXN0SWQgfHwgNzAyKS50b1N0cmluZygpLCBdCi0gICAgICAgICAgICBdLAotICAgICAgICAg
ICAgJ3NvdXJjZSc6IHsKLSAgICAgICAgICAgICAgICAnYnJhbmNoJzogJycsCi0gICAgICAgICAg
ICAgICAgJ2NoYW5nZXMnOiBbXSwKLSAgICAgICAgICAgICAgICAnY29kZWJhc2UnOiAnV2ViS2l0
JywKLSAgICAgICAgICAgICAgICAnaGFzUGF0Y2gnOiBmYWxzZSwKLSAgICAgICAgICAgICAgICAn
cHJvamVjdCc6ICcnLAotICAgICAgICAgICAgICAgICdyZXBvc2l0b3J5JzogJycsCi0gICAgICAg
ICAgICAgICAgJ3JldmlzaW9uJzogJycKLSAgICAgICAgICAgIH0sCisgICAgICAgICAgICAiYnVp
bGRyZXF1ZXN0cyI6IFt0aGlzLnBlbmRpbmdCdWlsZERhdGEob3B0aW9ucyldCiAgICAgICAgIH07
CiAgICAgfSwKLSAgICBydW5uaW5nQnVpbGQob3B0aW9ucykKKyAgICBzYW1wbGVCdWlsZERhdGEo
b3B0aW9ucykKICAgICB7CiAgICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwogICAgICAg
ICByZXR1cm4gewotICAgICAgICAgICAgJ2J1aWxkZXJOYW1lJzogb3B0aW9ucy5idWlsZGVyIHx8
ICdzb21lLWJ1aWxkZXItMScsCi0gICAgICAgICAgICAnYnVpbGRzJzogW10sCi0gICAgICAgICAg
ICAncHJvcGVydGllcyc6IFsKLSAgICAgICAgICAgICAgICBbJ3drJywgb3B0aW9ucy53ZWJraXRS
ZXZpc2lvbiB8fCAnMTkyNzM2J10sCi0gICAgICAgICAgICAgICAgWydvcycsIG9wdGlvbnMub3N4
UmV2aXNpb24gfHwgJzEwLjExIDE1QTI4NCddLAotICAgICAgICAgICAgICAgIFsnYnVpbGQtcmVx
dWVzdC1pZCcsIChvcHRpb25zLmJ1aWxkUmVxdWVzdElkIHx8IDcwMSkudG9TdHJpbmcoKSwgXQot
ICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICdjdXJyZW50U3RlcCc6IHt9LAotICAgICAgICAg
ICAgJ2V0YSc6IDcyMSwKLSAgICAgICAgICAgICdudW1iZXInOiBvcHRpb25zLmJ1aWxkTnVtYmVy
IHx8IDEyNCwKLSAgICAgICAgICAgICdzb3VyY2UnOiB7Ci0gICAgICAgICAgICAgICAgJ2JyYW5j
aCc6ICcnLAotICAgICAgICAgICAgICAgICdjaGFuZ2VzJzogW10sCi0gICAgICAgICAgICAgICAg
J2NvZGViYXNlJzogJ1dlYktpdCcsCi0gICAgICAgICAgICAgICAgJ2hhc1BhdGNoJzogZmFsc2Us
Ci0gICAgICAgICAgICAgICAgJ3Byb2plY3QnOiAnJywKLSAgICAgICAgICAgICAgICAncmVwb3Np
dG9yeSc6ICcnLAotICAgICAgICAgICAgICAgICdyZXZpc2lvbic6ICcnCi0gICAgICAgICAgICB9
LAorICAgICAgICAgICAgImJ1aWxkZXJpZCI6IG9wdGlvbnMuYnVpbGRlcklkIHx8IDIsCisgICAg
ICAgICAgICAibnVtYmVyIjogIG9wdGlvbnMuYnVpbGROdW1iZXIgfHwgMTI0LCAKKyAgICAgICAg
ICAgICJidWlsZHJlcXVlc3RpZCI6IChvcHRpb25zLmJ1aWxkUmVxdWVzdElkIHx8IDcwMSkudG9T
dHJpbmcoKSwKKyAgICAgICAgICAgICJjb21wbGV0ZSI6IG9wdGlvbnMuaXNDb21wbGV0ZSwKKyAg
ICAgICAgICAgICJjb21wbGV0ZV9hdCI6IG51bGwsCisgICAgICAgICAgICAiYnVpbGRpZCI6IDQx
ODc0NCwKKyAgICAgICAgICAgICJtYXN0ZXJpZCI6IDEsCisgICAgICAgICAgICAicmVzdWx0cyI6
IG51bGwsCisgICAgICAgICAgICAic3RhcnRlZF9hdCI6IDE1MTM3MjUxMDksCisgICAgICAgICAg
ICAic3RhdGVfc3RyaW5nIjogImJ1aWxkaW5nIiwKKyAgICAgICAgICAgICJ3b3JrZXJpZCI6IDQx
LAorICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CisgICAgICAgICAgICAgICAgIm9zIjogW29w
dGlvbnMub3N4UmV2aXNpb24gfHwgJzEwLjExIDE1QTI4NCcsICJVbmtub3duIl0sCisgICAgICAg
ICAgICAgICAgIndrIjogW29wdGlvbnMud2Via2l0UmV2aXNpb24gfHwgJzE5MjczNicsICJVbmtu
b3duIl0sCisgICAgICAgICAgICAgICAgInByb2plY3QiOiBbJycsICJVbmtub3duIl0sCisgICAg
ICAgICAgICAgICAgInJlcG9zaXRvcnkiOiBbJycsICJVbmtub3duIl0sCisgICAgICAgICAgICAg
ICAgInJldmlzaW9uIjogWycnLCAiVW5rbm93biJdLAorICAgICAgICAgICAgICAgICJzbGF2ZW5h
bWUiOiBbb3B0aW9ucy53b3JrZXJOYW1lIHx8ICJib3QyMDIiLCAiV29ya2VyIChkZXByZWNhdGVk
KSJdLAorICAgICAgICAgICAgICAgICJ3b3JrZXJuYW1lIjogW29wdGlvbnMud29ya2VyTmFtZSB8
fCAiYm90MjAyIiwgIldvcmtlciJdCisgICAgICAgICAgICB9CisgICAgICAgIH07ICAgCisgICAg
fSwKKyAgICBydW5uaW5nQnVpbGREYXRhKG9wdGlvbnMpCisgICAgeworICAgICAgICBvcHRpb25z
ID0gb3B0aW9ucyB8fCB7fTsKKyAgICAgICAgb3B0aW9ucy5pc0NvbXBsZXRlID0gZmFsc2U7Cisg
ICAgICAgIGlmICghb3B0aW9ucy5idWlsZFJlcXVlc3RJZCkKKyAgICAgICAgICAgIG9wdGlvbnMu
YnVpbGRSZXF1ZXN0SWQgPSA3MDE7CisgICAgICAgIGlmICghb3B0aW9ucy5idWlsZE51bWJlcikK
KyAgICAgICAgICAgIG9wdGlvbnMuYnVpbGROdW1iZXIgPSAxMjQ7CisgICAgICAgIGlmICghb3B0
aW9ucy53ZWJraXRSZXZpc2lvbikKKyAgICAgICAgICAgIG9wdGlvbnMud2Via2l0UmV2aXNpb24g
PSAnMTkyNzM2JzsKKyAgICAgICAgcmV0dXJuIHRoaXMuc2FtcGxlQnVpbGREYXRhKG9wdGlvbnMp
OworICAgIH0sCisgICAgcnVubmluZ0J1aWxkKG9wdGlvbnMpCisgICAgeworICAgICAgICByZXR1
cm4geworICAgICAgICAgICAgImJ1aWxkcyI6IFt0aGlzLnJ1bm5pbmdCdWlsZERhdGEob3B0aW9u
cyldCiAgICAgICAgIH07CiAgICAgfSwKLSAgICBmaW5pc2hlZEJ1aWxkKG9wdGlvbnMpCisgICAg
ZmluaXNoZWRCdWlsZERhdGEob3B0aW9ucykKICAgICB7CiAgICAgICAgIG9wdGlvbnMgPSBvcHRp
b25zIHx8IHt9OworICAgICAgICBvcHRpb25zLmlzQ29tcGxldGUgPSB0cnVlOworICAgICAgICBp
ZiAoIW9wdGlvbnMuYnVpbGRSZXF1ZXN0SWQpCisgICAgICAgICAgICBvcHRpb25zLmJ1aWxkUmVx
dWVzdElkID0gNzAwOworICAgICAgICBpZiAoIW9wdGlvbnMuYnVpbGROdW1iZXIpCisgICAgICAg
ICAgICBvcHRpb25zLmJ1aWxkTnVtYmVyID0gMTIzOworICAgICAgICBpZiAoIW9wdGlvbnMud2Vi
a2l0UmV2aXNpb24pCisgICAgICAgICAgICBvcHRpb25zLndlYmtpdFJldmlzaW9uID0gJzE5MTYy
Mic7CisgICAgICAgIHJldHVybiB0aGlzLnNhbXBsZUJ1aWxkRGF0YShvcHRpb25zKTsKKyAgICB9
LAorICAgIGZpbmlzaGVkQnVpbGQob3B0aW9ucykKKyAgICB7CiAgICAgICAgIHJldHVybiB7Ci0g
ICAgICAgICAgICAnYnVpbGRlck5hbWUnOiBvcHRpb25zLmJ1aWxkZXIgfHwgJ3NvbWUtYnVpbGRl
ci0xJywKLSAgICAgICAgICAgICdidWlsZHMnOiBbXSwKLSAgICAgICAgICAgICdwcm9wZXJ0aWVz
JzogWwotICAgICAgICAgICAgICAgIFsnd2snLCBvcHRpb25zLndlYmtpdFJldmlzaW9uIHx8ICcx
OTE2MjInXSwKLSAgICAgICAgICAgICAgICBbJ29zJywgb3B0aW9ucy5vc3hSZXZpc2lvbiB8fCAn
MTAuMTEgMTVBMjg0J10sCi0gICAgICAgICAgICAgICAgWydidWlsZC1yZXF1ZXN0LWlkJywgKG9w
dGlvbnMuYnVpbGRSZXF1ZXN0SWQgfHwgNzAwKS50b1N0cmluZygpLCBdCi0gICAgICAgICAgICBd
LAotICAgICAgICAgICAgJ2N1cnJlbnRTdGVwJzogbnVsbCwKLSAgICAgICAgICAgICdldGEnOiBu
dWxsLAotICAgICAgICAgICAgJ251bWJlcic6IG9wdGlvbnMuYnVpbGROdW1iZXIgfHwgMTIzLAot
ICAgICAgICAgICAgJ3NvdXJjZSc6IHsKLSAgICAgICAgICAgICAgICAnYnJhbmNoJzogJycsCi0g
ICAgICAgICAgICAgICAgJ2NoYW5nZXMnOiBbXSwKLSAgICAgICAgICAgICAgICAnY29kZWJhc2Un
OiAnV2ViS2l0JywKLSAgICAgICAgICAgICAgICAnaGFzUGF0Y2gnOiBmYWxzZSwKLSAgICAgICAg
ICAgICAgICAncHJvamVjdCc6ICcnLAotICAgICAgICAgICAgICAgICdyZXBvc2l0b3J5JzogJycs
Ci0gICAgICAgICAgICAgICAgJ3JldmlzaW9uJzogJycKLSAgICAgICAgICAgIH0sCi0gICAgICAg
ICAgICAndGltZXMnOiBbMCwgMV0sCisgICAgICAgICAgICAiYnVpbGRzIjogW3RoaXMuZmluaXNo
ZWRCdWlsZERhdGEob3B0aW9ucyldCiAgICAgICAgIH07CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1idWlsZGJvdC10cmln
Z2VyYWJsZS10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
dG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanMKaW5kZXggZjMzMWZiZTVlY2IuLjg5
MjFjODYwNDYwIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVz
dHMuanMKQEAgLTM2LDcgKzM2LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdz
eW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIGNvbnN0
IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAg
ICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkg
PT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVz
dEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1
aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxk
ZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2
ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWls
ZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpA
QCAtNDYsMjkgKzQ2LDMwIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxk
cycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShb
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpKTsKKyAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXIt
MS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCgp
LCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKCl9KTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgyLCAyKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoKSwgTW9ja0Rh
dGEuZmluaXNoZWRCdWlsZERhdGEoKV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0
aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLnVybCwgJy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9mb3JjZScpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5k
YXRhLCB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVz
dC1pZCc6ICc3MDInfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1i
dWlsZGVyLTEnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6IDcwMiwgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhv
ZCc6ICdmb3JjZScsICdwYXJhbXMnOiB7CisgICAgICAgICAgICAgICAgICAgICd3ayc6ICcxOTE2
MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiA3MDIsICdmb3Jj
ZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7CiAgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxk
ZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1szXS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoKV0pCisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKDIpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzNdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKCkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRl
ci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxk
KCksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoKX0pOworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKDIsIDIpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzRdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSgpLCBNb2Nr
RGF0YS5maW5pc2hlZEJ1aWxkRGF0YSgpXX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5j
UHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJl
dHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5
bmNDb25maWdXaXRoU2luZ2xlQnVpbGRlcigpLnRyaWdnZXJhYmxlTmFtZSk7CkBAIC05MiwyOCAr
OTMsMjggQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICAgICAgbGV0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3
b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBsZXQgdHJpZ2dlcmFibGUgPSBuZXcg
QnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tS
ZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlz
ZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5j
T25jZSgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERl
cHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOwor
ICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRh
Lm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCAn
L2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGlu
Z0J1aWxkKCldKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOworICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5n
QnVpbGQoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwg
Jy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0t
MicpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7
Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKCksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVp
bGQoKX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDIsIDIpKTsKKyAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnIDogW01vY2tE
YXRhLnJ1bm5pbmdCdWlsZERhdGEoKSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoKV19KTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVp
bGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKCld
KQorICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
LnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSk7CisgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCgpKQog
ICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWls
ZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoe1stMV06IE1vY2tE
YXRhLnJ1bm5pbmdCdWlsZCgpLCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKCl9KTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSk7CisgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHsnYnVpbGRzJyA6IFtNb2NrRGF0YS5ydW5uaW5n
QnVpbGREYXRhKCksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKCldfSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQp
OwpAQCAtMTQyLDUwICsxNDMsNTEgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdz
eW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIGNvbnN0
IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAg
ICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkg
PT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVz
dEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1
aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxk
ZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2
ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWls
ZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEv
cGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogOTk5fSld
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOworICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1
aWxkUmVxdWVzdElkOiA5OTl9KSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoW10pOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgzKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5y
ZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0t
MSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1szXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMywgMikp
OwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7fSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwg
Jy9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvZm9yY2UnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeyd3ayc6ICcx
OTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAwJ30p
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRd
LnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRd
LmRhdGEsIHsnaWQnOiAnNzAwJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScs
ICdwYXJhbXMnOiB7CisgICAgICAgICAgICAgICAgICAgICd3ayc6ICcxOTE2MjInLCAnb3MnOiAn
MTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAwJywgJ2ZvcmNlc2NoZWR1bGVy
JzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0yJ319KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgNyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVy
LTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNV0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogOTk5
fSldKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s1XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOworICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQo
e2J1aWxkUmVxdWVzdElkOiA5OTl9KSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCAnL2pzb24vYnVpbGRl
cnMvc29tZSUyMGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7
YnVpbGRlcjogJ3NvbWUgYnVpbGRlciAyJywgYnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDMpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzZdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6
IDMsIGJ1aWxkUmVxdWVzdElkOiA3MDB9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgOSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbN10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEv
YnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoMiwgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVz
b2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbOF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxk
ZXIlMjAyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKDMsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzhdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpAQCAtMjAyLDcgKzIwNCw3IEBAIGRlc2NyaWJlKCdC
dWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5s
ZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9i
dWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi8nKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJs
KCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvNzAwJyk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1
cygpLCAncGVuZGluZycpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycp
OwpAQCAtMjIzLDQzICsyMjUsNDMgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgbGV0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3lu
Yy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBsZXQgdHJp
Z2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAg
ICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0
cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5k
UmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRi
b3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNE
ZXByZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJz
VVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAy
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5k
aW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5y
ZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV0pOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSk7CisgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRS
ZXF1ZXN0SWQ6IDcwMH0pKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9zb21l
JTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZShbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKDMpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29s
dmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
LnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNl
bGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDIsIDIpKTsKICAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgzLCAyKSk7CiAg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvanNv
bi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVp
bGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgyKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZl
KE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s1XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxk
cycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZShb
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDMpKTsKKyAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDgpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUt
YnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKDIsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzZdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgzLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s3XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1By
b21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKQEAgLTI3Niw3ICsyNzgsNyBAQCBk
ZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuYWxsKCkubGVuZ3RoLCA0KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCks
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS8nKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3Rh
dHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvNzAwJyk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEp
LnN0YXR1cygpLCAncGVuZGluZycpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVu
ZGluZycpOwpAQCAtMjk3LDUwICsyOTksNTEgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFi
bGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25h
bWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAg
IGNvbnN0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAg
ICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRo
ZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tE
YXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJv
dEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5k
UmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRi
b3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWls
ZGVyLTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ucmVzb2x2ZShbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpKTsK
KyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9wZW5k
aW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5y
ZXNvbHZlKFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMykpOworICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRl
cnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0
YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgWy0yXTogTW9ja0RhdGEuZmlu
aXNoZWRCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoMiwgMikpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0ucmVzb2x2ZSh7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRS
ZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0
SWQ6IDcwMH0pXX0pOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBi
dWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgzLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA1KTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5t
ZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbNF0udXJsLCAnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2ZvcmNlJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRd
LmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1
ZXN0LWlkJzogJzcwMid9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21l
LWJ1aWxkZXItMScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7J2lkJzogJzcwMicsICdqc29ucnBjJzogJzIuMCcsICdt
ZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzogeworICAgICAgICAgICAgICAgICAgICAnd2snOiAn
MTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMics
ICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKCdPSycpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgJy9qc29uL2J1aWxk
ZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVp
bGRSZXF1ZXN0SWQ6IDcwMn0pXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpKTsK
KyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoTW9ja0Rh
dGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAyfSkpOwogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVy
bCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9wZW5kaW5nQnVpbGRzJyk7Ci0g
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKFtdKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmws
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMykpOworICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgOSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVy
LTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQo
e2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVp
bGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikp
OworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZSh7J2J1
aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0p
LCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXX0pOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzhdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWls
ZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgz
LCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5yZXNvbHZl
KHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKQEAgLTM1NywxMSArMzYwLDExIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRy
aWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQp
OwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAw
KS5zdGF0dXMoKSwgJ2ZhaWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQu
b3JnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8xMjMnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzIvYnVpbGRzLzEyMycpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMo
KSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWls
ZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1
aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8yL2J1aWxkcy8xMjQnKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdzY2hl
ZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMikuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9z
b21lLWJ1aWxkZXItMS8nKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8j
L2J1aWxkcmVxdWVzdHMvNzAyJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwg
bnVsbCk7CiAgICAgICAgICAgICB9KTsKQEAgLTM3OCwzMiArMzgxLDMyIEBAIGRlc2NyaWJlKCdC
dWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGxldCBz
bGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CiAg
ICAgICAgICAgICAgICAgbGV0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUo
Y29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8s
IGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0
U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwg
J0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRh
Lm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9j
a0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVy
cygpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCAnL2pzb24vYnVpbGRl
cnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWls
ZFJlcXVlc3RJZDogNzAwfSldKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOwor
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShNb2NrRGF0
YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29t
ZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoMiwgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGlu
Z0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVz
b2x2ZShbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpKTsKKyAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJz
L3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEu
cnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSl9KTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgyLCAyKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1szXS5yZXNvbHZlKE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0p
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFs
bCgpLmxlbmd0aCwgNCk7CkBAIC00MTksNyArNDIyLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJp
Z2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDAp
LnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQu
b3JnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzIvYnVpbGRzLzEyNCcpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMo
KSwgJ3BlbmRpbmcnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsK
QEAgLTQ0Myw1MCArNDQ2LDUxIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3lu
Yy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCB0
cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAg
ICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+
IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RB
bmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWls
ZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVy
c0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRl
cnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDIpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3Bl
bmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
LnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMn0pXSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpKTsKKyAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWls
ZFJlcXVlc3RJZDogNzAyfSkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjBidWlsZGVyJTIwMi9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoMykpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVz
b2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEm
c2VsZWN0PS0yJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5y
ZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDF9
KSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pfSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
dXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikpOworICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVu
bmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1
aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXX0pOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9
LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgzLCAyKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCA1KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2J1aWxkZXJzL3NvbWUl
MjBidWlsZGVyJTIwMi9mb3JjZScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7J3drJzogJzE5MTYyMicsICdvcyc6ICcx
MC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MTAnfSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2FwaS92Mi9m
b3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTInKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeydpZCc6ICc3
MTAnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6IHsKKyAg
ICAgICAgICAgICAgICAgICAgJ3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAn
YnVpbGQtcmVxdWVzdC1pZCc6ICc3MTAnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1i
dWlsZGVyLTInfX0pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0u
cmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s1XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRz
Jyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKFtN
b2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDJ9KV0pOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgyKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s1XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6
IDcwMn0pKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRl
ciUyMDIvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbNl0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBi
dWlsZGVyIDInLCBidWlsZFJlcXVlc3RJZDogNzEwfSldKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoMykpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0u
cmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogMywgYnVpbGRSZXF1ZXN0
SWQ6IDcxMH0pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA5KTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s3XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0t
MSZzZWxlY3Q9LTInKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzdd
LnJlc29sdmUoe1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcw
MX0pLCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSl9
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSk7CisgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZlKHsnYnVpbGRzJyA6IFtNb2NrRGF0YS5y
dW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIE1vY2tEYXRhLmZpbmlzaGVk
QnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAwfSldfSk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCAn
L2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzhdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDMsIDIpKTsKICAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnJlc29sdmUoe30pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpAQCAt
NTExLDE1ICs1MTUsMTUgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnY29tcGxl
dGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29t
ZS1idWlsZGVyLTEvYnVpbGRzLzEyMycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJr
aXQub3JnLyMvYnVpbGRlcnMvMi9idWlsZHMvMTIzJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5z
dGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUtYnVpbGRl
ci0xL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8j
L2J1aWxkZXJzLzIvYnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNV
cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xLycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAy
KS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy83
MDInKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCks
ICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcxMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWls
ZGVycy9zb21lJTIwYnVpbGRlciUyMDIvJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzcxMCcpOwogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3Rh
dHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKQEAgLTU0Myw1NSArNTQ3LDU3
IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3Jk
OiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBC
dWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1Jl
bW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNl
ID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNP
bmNlKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVw
cmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEu
bW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
LnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoW10pOworICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9i
dWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZShbXSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKDMpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/
c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVl
c3RJZDogNzEwfSl9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSk7CisgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKE1vY2tEYXRhLnJ1
bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcv
anNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0
PS0yJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZl
KHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXIgMics
IGJ1aWxkUmVxdWVzdElkOiA3MDB9KX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDMs
IDIpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUo
TW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IDMsIGJ1aWxkUmVxdWVzdElkOiA3MDB9
KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVy
bCwgJy9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvZm9yY2UnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeyd3ayc6
ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAx
J30pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzRdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzRdLmRhdGEsIHsnaWQnOiAnNzAxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3Jj
ZScsICdwYXJhbXMnOiB7CisgICAgICAgICAgICAgICAgICAgICd3ayc6ICcxOTI3MzYnLCAnb3Mn
OiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAxJywgJ2ZvcmNlc2NoZWR1
bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0yJ319KTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgJy9i
dWlsZGVycy9zb21lLWJ1aWxkZXItMS9mb3JjZScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5kYXRhLCB7J3drJzogJzE5MjczNics
ICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MTEnfSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCAn
L2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0uZGF0YSwg
eydpZCc6ICc3MTEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFt
cyc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ3drJzogJzE5MjczNicsICdvcyc6ICcxMC4xMSAx
NUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MTEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9y
Y2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbNV0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA4
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s2XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5k
aW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5y
ZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MTF9KV0pOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSk7CisgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRS
ZXF1ZXN0SWQ6IDcxMX0pKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsICcvanNvbi9idWlsZGVycy9zb21l
JTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVy
OiAnc29tZSBidWlsZGVyIDInLGJ1aWxkUmVxdWVzdElkOiA3MDF9KV0pOworICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgzKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s3XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiAzLCBidWls
ZFJlcXVlc3RJZDogNzAxfSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEwKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s4XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMv
P3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzhdLnJlc29sdmUoe1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1
ZXN0SWQ6IDcxMH0pfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikpOworICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ucmVzb2x2ZShNb2NrRGF0YS5y
dW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MTB9KSk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0udXJsLCAn
L2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0ucmVzb2x2
ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyIDIn
LCBidWlsZFJlcXVlc3RJZDogNzAwfSl9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s5XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgz
LCAyKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s5XS5yZXNvbHZl
KE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiAzLCBidWlsZFJlcXVlc3RJZDogNzAw
fSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
YWxsKCkubGVuZ3RoLCA4KTsKQEAgLTYxNSwxNyArNjIxLDE3IEBAIGRlc2NyaWJlKCdCdWlsZGJv
dFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgs
IDgpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAwKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Vi
a2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvYnVpbGRzLzEyNCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNV
cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMy9idWlsZHMvMTI0Jyk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEp
LnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyLycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgJ2h0dHA6
Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy83MDEnKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5k
aW5nJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcxMCkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1
aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLzEyNCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0
dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMi9idWlsZHMvMTI0
Jyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MTEpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1c1VybCgpLCAnaHR0cDov
L2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzcxMScpOwogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcxMikuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKQEAgLTY0Niwy
NiArNjUyLDI3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScs
IHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJs
ZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEko
KSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5
bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJh
YmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZl
KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0
ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAg
ICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzBdLCAnR0VUJywgTW9j
a0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVy
cygpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJs
LCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShbXSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgyKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5y
ZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9i
dWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikpOwogICAg
ICAgICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAz
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0ubWV0aG9kLCAnUE9T
VCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS51cmwsICcvYnVp
bGRlcnMvc29tZS1idWlsZGVyLTEvZm9yY2UnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlcXVlc3RzWzJdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1
QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMCd9KTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Ut
c29tZS1idWlsZGVyLTEnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVl
c3RzWzJdLmRhdGEsIHsnaWQnOiAnNzAwJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdm
b3JjZScsICdwYXJhbXMnOiB7CisgICAgICAgICAgICAgICAgICAgICd3ayc6ICcxOTE2MjInLCAn
b3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAwJywgJ2ZvcmNlc2No
ZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319KTsKICAgICAgICAgICAgICAgICByZXR1
cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTApKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDMpOwpAQCAtNjc0LDEzICs2ODEsMTMgQEAgZGVzY3JpYmUoJ0J1aWxk
Ym90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxk
ZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVp
bGRSZXF1ZXN0SWQ6IDcwMH0pXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzNdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSk7CisgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWls
ZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNSk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS51cmwsICcvanNvbi9idWlsZGVycy9z
b21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoMiwgMikpOwogICAgICAgICAgICAgICAgIHJlcXVlc3RzWzRdLnJlc29sdmUoe30pOwogICAg
ICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewpAQCAtNjg4LDcgKzY5NSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwg
J3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxk
ZXJzL3NvbWUtYnVpbGRlci0xLycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQu
b3JnLyMvYnVpbGRyZXF1ZXN0cy83MDAnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7CkBAIC03MjMsNTQgKzczMCw1NSBAQCBk
ZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
ICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bh
c3N3b3JkJ307CiAgICAgICAgICAgICAgICAgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmln
Z2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNs
YXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJh
YmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1swXSwgJ0dFVCcs
IE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tC
dWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1
ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRl
cnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1swXSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAg
ICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgyKSwge30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1sxXSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTIn
LAotICAgICAgICAgICAgICAgICAgICB7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWls
ZFJlcXVlc3RJZDogNzAwfSksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkUmVx
dWVzdElkOiA3MTB9KX0pOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZl
KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDIsIDIpLAorICAg
ICAgICAgICAgICAgICAgICB7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7
YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRS
ZXF1ZXN0SWQ6IDcxMH0pXX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1syXSwgJ1BPU1QnLCAnL2J1aWxkZXJz
L3NvbWUtYnVpbGRlci0xL2ZvcmNlJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXF1ZXN0c1syXS5kYXRhLCB7J3drJzogJzE5MjczNicsICdvcyc6ICcxMC4xMSAxNUEyODQn
LCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDEnfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVx
dWVzdEFuZFJlc29sdmUocmVxdWVzdHNbMl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVs
ZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLmRhdGEsIHsnaWQnOiAnNzAxJywgJ2pzb25y
cGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOiB7CisgICAgICAgICAgICAg
ICAgICAgICd3ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVl
c3QtaWQnOiAnNzAxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFu
ZFJlc29sdmUocmVxdWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVy
LTEvcGVuZGluZ0J1aWxkcycsCi0gICAgICAgICAgICAgICAgICAgIFtNb2NrRGF0YS5wZW5kaW5n
QnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDF9KV0pOworICAgICAgICAgICAgICAgIGFzc2VydFJl
cXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgyKSwKKyAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWls
ZFJlcXVlc3RJZDogNzAxfSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA1KTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLAotICAgICAg
ICAgICAgICAgICAgICB7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJ
ZDogNzAwfSksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3
MTB9KX0pOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3Rz
WzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDIsIDIpLAorICAgICAgICAgICAg
ICAgICAgICB7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVl
c3RJZDogNzAwfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDog
NzEwfSldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2Vy
YWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbNV0sICdHRVQn
LCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2Nr
QnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVx
dWVzdEFuZFJlc29sdmUocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxk
ZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCA3KTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0
c1s2XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRz
JywgW10pOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3Rz
WzZdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSwge30pOwogICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCA4KTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1
ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3Nl
bGVjdD0tMSZzZWxlY3Q9LTInLAotICAgICAgICAgICAgICAgICAgICB7Wy0xXTogTW9ja0RhdGEu
cnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIFstMl06IE1vY2tEYXRhLnJ1bm5p
bmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoMiwgMiksCisgICAgICAgICAgICAgICAgICAgIHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1
bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgTW9ja0RhdGEucnVubmluZ0J1
aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXX0pOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsK
LSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s4XSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJywgW10pOwor
ICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzhdLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSwge30pOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAx
MCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbOV0s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEm
c2VsZWN0PS0yJywKLSAgICAgICAgICAgICAgICAgICAge1stMV06IE1vY2tEYXRhLnJ1bm5pbmdC
dWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBbLTJdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQo
e2J1aWxkUmVxdWVzdElkOiA3MDB9KX0pOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RB
bmRSZXNvbHZlKHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDIs
IDIpLAorICAgICAgICAgICAgICAgICAgICB7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVp
bGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEo
e2J1aWxkUmVxdWVzdElkOiA3MDB9KV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1By
b21pc2U7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC03ODYsMzggKzc5NCwzOSBA
QCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDog
J3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBuZXcgQnVp
bGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1v
dGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9
IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25j
ZSgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJl
Y2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAg
ICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1v
Y2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVz
ZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51
cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKFtdKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEv
YnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoMiwgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVz
b2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnUE9T
VCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnVybCwgJy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9mb3JjZScpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5kYXRhLCB7J3dr
JzogJzE5MjczNicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3
MDEnfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0uZGF0YSwgeydpZCc6ICc3MDEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2Zv
cmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ3drJzogJzE5MjczNicsICdv
cyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDEnLCAnZm9yY2VzY2hl
ZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1
aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1szXS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElk
OiA3MDF9KV0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSk7CisgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdC
dWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVu
Z3RoLCA1KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXIt
MS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgyLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5y
ZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKQEAgLTgzNiw3ICs4NDUsNyBAQCBkZXNjcmliZSgnQnVpbGRi
b3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdmYWlsZWQnKTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVz
VXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgJ2h0dHA6
Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xLycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwo
KSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy83MDEnKTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVz
KCksICdwZW5kaW5nJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7
CkBAIC04NTUsMzEgKzg2NCwzMSBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5
bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAgICAgY29uc3Qg
dHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAg
ICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9
PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0
QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVp
bGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRl
cnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZl
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxk
ZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCAxKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9w
ZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5yZXNvbHZlKFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOworICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVp
bGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgMyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVy
LTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ucmVzb2x2ZShbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpKTsKKyAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29u
L2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVy
bCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDIsIDIpKTsKICAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVy
biBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpAQCAtOTEyLDI2ICs5
MjEsMjggQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFz
c3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlID0g
bmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBN
b2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgc3luY1By
b21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUu
c3luY09uY2UoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNV
UkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgp
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2Nr
RGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAn
R0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycp
OwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShbXSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpKTsKKyAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVp
bGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKDIsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhv
ZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS51cmwsICcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvZm9yY2UnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0
YSwgeyd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3Qt
aWQnOiAnNzEwJ30pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVp
bGRlci0xJyk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MTAnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0
aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ3drJzogJzE5
MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MTAnLCAn
Zm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAg
IH0pOwogICAgICAgICB9KTsKQEAgLTEwMDAsNyArMTAxMSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJv
dFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZl
SW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAg
ICAgICAgICAgICBjb25zdCBidWlsZGJvdFRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dl
cmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2
ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGVQcm9taXNl
ID0gYnVpbGRib3RUcmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gYnVpbGRib3RU
cmlnZ2VyYWJsZS51cGRhdGVUcmlnZ2VyYWJsZSgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRS
ZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0Rh
dGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90
QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRS
ZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJv
dEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAg
ICAgICAgICAgIHJldHVybiB0cmlnZ2VyYWJsZVByb21pc2U7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHJlZmV0Y2hNYW5pZmVzdCgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoVHJpZ2dlcmFibGUuYWxsKCkubGVuZ3RoLCAxKTsKQEAgLTEwMjcsNyArMTAz
OCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3
b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCBidWlsZGJvdFRyaWdnZXJh
YmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAg
Y29uc3QgdHJpZ2dlcmFibGVQcm9taXNlID0gYnVpbGRib3RUcmlnZ2VyYWJsZS5pbml0U3luY2Vy
cygpLnRoZW4oKCkgPT4gYnVpbGRib3RUcmlnZ2VyYWJsZS51cGRhdGVUcmlnZ2VyYWJsZSgpKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQo
KSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAg
ICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0s
ICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWls
ZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cmlnZ2VyYWJsZVByb21p
c2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHJlZmV0Y2hNYW5pZmVzdCgpKS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dlcmFibGUuYWxsKCkubGVu
Z3RoLCAxKTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qcyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlv
bi10ZXN0cy5qcwppbmRleCAxYTU3NTVhMDExYS4uZmQwZGU2NDFiZmIgMTAwNjQ0Ci0tLSBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1p
bnRlZ3JhdGlvbi10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanMKQEAgLTE1NCw3
ICsxNTQsNyBAQCBmdW5jdGlvbiBjcmVhdGVUcmlnZ2VyYWJsZShjb25maWcgPSBjb25maWdXaXRo
T25lVGVzdGVyVHdvQnVpbGRlcnMpCiAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgIHRyaWdn
ZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bh
c3N3b3JkJ30sIG5ldyBNb2NrTG9nZ2VyKTsKICAgICAgICAgY29uc3Qgc3luY1Byb21pc2UgPSB0
cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUudXBkYXRlVHJp
Z2dlcmFibGUoKSk7Ci0gICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVj
YXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdH
RVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJv
dEJ1aWxkZXJzKCkpOwogICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgIHJl
dHVybiBzeW5jUHJvbWlzZTsKICAgICB9KS50aGVuKCgpID0+IE1hbmlmZXN0LmZldGNoKCkpLnRo
ZW4oKCkgPT4gewpAQCAtMjQ5LDMyICsyNDksMzMgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3Qn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB0YXNrSWQgPSBmaXJzdFRlc3RHcm91cC50YXNr
KCkuaWQoKTsKICAgICAgICAgICAgIGFub3RoZXJUYXNrSWQgPSBzZWNvbmRUZXN0R3JvdXAudGFz
aygpLmlkKCk7CiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5j
ZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRi
b3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNE
ZXByZWNhdGVkKCkpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1v
Y2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgp
OwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAyKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycs
IFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIHRlc3RlcicsIGJ1aWxkUmVx
dWVzdElkOiA1fSldKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL2Fub3RoZXIlMjB0ZXN0ZXIvcGVuZGluZ0J1
aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg1KSwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkKHtidWlsZGVySWQ6IDUsIGJ1aWxkUmVxdWVzdElkOiA1fSkpOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKDYpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRl
c3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7Ci0gICAgICAgICAgICAgICAgWy0x
XTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSB0ZXN0ZXInLCBidWlsZFJl
cXVlc3RJZDogMX0pfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9hbm90aGVyJTIwdGVzdGVyL2J1aWxkcy8/
c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDUsIDIp
LAorICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiA1LCBi
dWlsZFJlcXVlc3RJZDogMX0pKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDYsIDIpLCB7fSk7
CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDYpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
NF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywg
W10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdH
RVQnLCAnL2pzb24vYnVpbGRlcnMvYW5vdGhlciUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJyxbXSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNSksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCg2KSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA4KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVp
bGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAgICAgICAgICAgICAgIFstMV06IE1vY2tE
YXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgdGVzdGVyJywgYnVpbGRSZXF1ZXN0SWQ6
IDV9KSwKLSAgICAgICAgICAgICAgICBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWls
ZGVyOiAnc29tZSB0ZXN0ZXInLCBidWlsZFJlcXVlc3RJZDogMX0pCisgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCg1LCAyKSwgeworICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCisgICAgICAgICAg
ICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkZXJJZDogNSwgYnVpbGRS
ZXF1ZXN0SWQ6IDV9KSwKKyAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWls
ZERhdGEoe2J1aWxkZXJJZDogNSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KV0KICAgICAgICAgICAgIH0p
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvYW5vdGhlciUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg2LCAyKSwge30pOwogICAgICAg
ICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CkBAIC0z
NjMsNDEgKzM2NCw0MSBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVz
KCksIFtdKTsKIAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3lu
Y2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxk
Ym90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJz
RGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5t
b2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQo
KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1swXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMn
LCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10p
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Cisg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNSksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgxKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
Ml0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCB7fSk7CiAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwot
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAn
L2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTIn
LCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZz
ZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNSwgMiks
IHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDEsIDIpLCB7fSk7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCg0LCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYnVpbGRlcnMvc29tZSUyMGJ1aWxk
ZXIvZm9yY2UnLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNb
Nl0uZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAnd2stcGF0Y2gnOiBSZW1vdGVBUEkudXJsKCcvYXBp
L3VwbG9hZGVkLWZpbGUvMS5kYXQnKSwKLSAgICAgICAgICAgICAgICAnYnVpbGQtcmVxdWVzdC1p
ZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdjaGVja2JveCc6
ICdidWlsZC13ayd9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMn
LCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwg
eydpZCc6ICcxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMn
OiB7CisgICAgICAgICAgICAgICAgJ3drJzogJzE5MTYyMicsICd3ay1wYXRjaCc6IFJlbW90ZUFQ
SS51cmwoJy9hcGkvdXBsb2FkZWQtZmlsZS8xLmRhdCcpLCAnY2hlY2tib3gnOiAnYnVpbGQtd2sn
LCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1
aWxkcyd9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDEwKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGlu
Z0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWls
ZHMnLAotICAgICAgICAgICAgICAgIFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXI6ICdz
b21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pXSk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhl
ciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCg1KSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
OF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDEpLAorICAgICAgICAgICAgICAg
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDogMX0p
KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg0KSwge30pOwogICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7Ci0gICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCAnL2pzb24v
YnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0
PS0yJywgewotICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVp
bGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSkKLSAgICAgICAgICAgIH0p
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNSwgMiksIHt9KTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgxLCAyKSwKKyAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5u
aW5nQnVpbGQoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KQorICAgICAgICAgICAg
KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg0LCAyKSwge30pOwogICAgICAgICAgICAgcmV0
dXJuIHN5bmNQcm9taXNlOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CkBAIC00MTEsNyArNDEy
LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRl
cnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVp
bGRlcnMvMS9idWlsZHMvMTI0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTQ0OCw3ICs0NDksNyBAQCBkZXNjcmliZSgnc3lu
Yy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVl
c3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgp
KTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwg
J0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVy
L2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEy
NCcpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29t
bWl0U2V0KCk7CkBAIC00NzYsNDIgKzQ3Nyw0NCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcs
IGZ1bmN0aW9uICgpIHsKIAogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAg
ICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkg
PT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxE
ZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsK
KyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywg
TW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWls
ZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0g
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVpbGRl
cnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoNSksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgxKSwge30pOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7Ci0g
ICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ3Nv
bWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSkKLSAgICAgICAgICAgIH0pOwotICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCAnL2pzb24v
YnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9
KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDUsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgxLCAyKSwKKyAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHti
dWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAxfSkKKyAgICAgICAgICAgICk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCg0LCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYnVpbGRlcnMvc29tZSUy
MGJ1aWxkZXIvZm9yY2UnLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVx
dWVzdHNbNl0uZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcyJywg
J2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdjaGVja2JveCc6ICdidWlsZC13
ayd9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAn
UE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcy
JywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOiB7CisgICAg
ICAgICAgICAgICAgJ3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9y
Y2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJ319
KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMTApOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRz
JywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtd
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDUpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoMSksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg0KSwge30pOwogICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9
LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sx
MV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9
LTEmc2VsZWN0PS0yJywgewotICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLnJ1bm5pbmdC
dWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAyfSksCi0gICAg
ICAgICAgICAgICAgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUg
YnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSksCisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
NSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgxLCAyKSwgeworICAgICAgICAg
ICAgICAgICdidWlsZHMnOiBbCisgICAgICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdC
dWlsZERhdGEoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDJ9KSwKKyAgICAgICAgICAg
ICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkZXJJZDogMSwgYnVpbGRS
ZXF1ZXN0SWQ6IDF9KV0KICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIw
YnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoNCwgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZl
dGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAtNTI1LDcgKzUyOCw3IEBAIGRlc2NyaWJlKCdz
eW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVx
dWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0
KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxk
ZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMS9idWlsZHMv
MTI0Jyk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKQEAgLTU0Miw3ICs1NDUsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1
aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7
CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwo
KSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBi
dWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMv
MS9idWlsZHMvMTI0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQg
PSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTU2NCw3ICs1NjcsNyBAQCBkZXNj
cmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChi
dWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUl
MjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEv
YnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJl
cXVlc3QuY29tbWl0U2V0KCk7CkBAIC01ODEsNyArNTg0LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVp
bGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVl
c3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNU
ZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJz
L3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMv
YnVpbGRlcnMvMS9idWlsZHMvMTI0Jyk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3Ro
ZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTYzNiw0MSAr
NjM5LDQyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10p
OwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCku
dGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWls
ZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNh
dGVkKCkpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0s
ICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWls
ZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsK
LSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywg
Jy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCg1KSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDEpLCB7
fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNCksIHt9KTsKICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0gICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsK
LSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywg
Jy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0t
MicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVd
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0t
MSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1LCAyKSwge30pOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKDQsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9mb3Jj
ZScsICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRh
LCB7J3drJzogJzE5MTYyMicsICd3ay1wYXRjaCc6IFJlbW90ZUFQSS51cmwoJy9hcGkvdXBsb2Fk
ZWQtZmlsZS8xLmRhdCcpLAotICAgICAgICAgICAgICAgICdidWlsZC1yZXF1ZXN0LWlkJzogJzEn
LCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ2NoZWNrYm94JzogJ2J1aWxk
LXdrJywgJ3BsYXRmb3JtLW5hbWUnOiAnc29tZSBwbGF0Zm9ybSd9KTsKKyAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNl
c2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcxJywgJ2pzb25ycGMnOiAnMi4wJywg
J21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOiB7CisgICAgICAgICAgICAgICAgJ3drJzogJzE5
MTYyMicsICd3ay1wYXRjaCc6IFJlbW90ZUFQSS51cmwoJy9hcGkvdXBsb2FkZWQtZmlsZS8xLmRh
dCcpLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFi
LWJ1aWxkcycsCisgICAgICAgICAgICAgICAgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ3BsYXRm
b3JtLW5hbWUnOiAnc29tZSBwbGF0Zm9ybSd9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUl
MjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLAotICAgICAgICAgICAgICAgIFtNb2NrRGF0YS5wZW5k
aW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pXSk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCg1KSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KDEpLAorICAgICAgICAgICAgICAgIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiAx
LCBidWlsZFJlcXVlc3RJZDogMX0pKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg0KSwge30p
OwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAxMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1sxMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVp
bGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAgICAgICAgICAgICAgIFstMV06IE1vY2tE
YXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElk
OiAxfSkKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMTJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9i
dWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoNSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgxLCAyKSwKKyAgICAgICAg
ICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0
SWQ6IDF9KQorICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg0LCAyKSwg
e30pOwogICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwg
dHJ1ZSk7CkBAIC02ODQsNyArNjg4LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1
aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9i
dWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMS9idWlsZHMvMTI0Jyk7CiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAg
IGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTcyMSw3ICs3
MjUsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCgh
YnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1
aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8j
L2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRT
ZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC03NDksNDIgKzc1Myw0NCBAQCBkZXNj
cmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5p
bml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRh
LmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1
aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2Nr
RGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1swXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdC
dWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1sxXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRz
JywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNSksIHt9KTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgxKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCB7fSk7CiAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDYpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdH
RVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInLCB7Ci0gICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEuZmluaXNo
ZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSkKLSAg
ICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDUsIDIpLCB7
fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgxLCAyKSwKKyAgICAgICAgICAgICAgICBNb2Nr
RGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAxfSkKKyAg
ICAgICAgICAgICk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg0LCAyKSwge30pOwogICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9T
VCcsICcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvZm9yY2UnLCAnT0snKTsKLSAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAnYnVp
bGQtcmVxdWVzdC1pZCc6ICcyJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycs
ICdjaGVja2JveCc6ICdidWlsZC13aycsICdwbGF0Zm9ybS1uYW1lJzogJ3NvbWUgcGxhdGZvcm0n
fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BP
U1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMics
ICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzogeworICAgICAg
ICAgICAgICAgICd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcyJywgJ2ZvcmNl
c2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdjaGVja2JveCc6ICdidWlsZC13aycsICdw
bGF0Zm9ybS1uYW1lJzogJ3NvbWUgcGxhdGZvcm0nfX0pOwogICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7Ci0gICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9z
b21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIl
MjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
NSksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhd
LCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgxKSwge30pOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKDQpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIw
dGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7Ci0gICAgICAg
ICAgICAgICAgWy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWls
ZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDJ9KSwKLSAgICAgICAgICAgICAgICBbLTJdOiBNb2NrRGF0
YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6
IDF9KSwKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwg
J0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1LCAyKSwge30pOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKDEsIDIpLCB7CisgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKKyAgICAg
ICAgICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRlcklkOiAxLCBi
dWlsZFJlcXVlc3RJZDogMn0pLAorICAgICAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hl
ZEJ1aWxkRGF0YSh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDogMX0pXQogICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0x
JnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzEyXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg0LCAyKSwge30pOwog
ICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7
CkBAIC03OTgsNyArODA0LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQu
d2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxk
LndlYmtpdC5vcmcvIy9idWlsZGVycy8xL2J1aWxkcy8xMjQnKTsKICAgICAgICAgICAgIGFzc2Vy
dC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAg
Y29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAtODE1LDcgKzgy
MSw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1
aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xL2J1aWxkcy8xMjQnKTsKICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAg
ICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpOwpAQCAtODM3LDcgKzg0Myw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDov
L2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6
Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMS9idWlsZHMvMTI0Jyk7CiAgICAgICAgICAg
ICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAg
ICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTg1
NCw3ICs4NjAsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAn
aHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEy
NCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xL2J1aWxkcy8xMjQnKTsK
ICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAtOTI1LDQ2ICs5MzEsNDggQEAgZGVzY3JpYmUoJ3N5bmMt
YnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJS
b290cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlclJvb3Rz
WzBdLmZpbGVuYW1lKCksICdyb290NDYuZGF0Jyk7CiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9
IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25j
ZSgpKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAn
R0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEu
bW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxk
ZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0
ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVy
L3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVu
ZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg1KSwge30pOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKDEpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
NCksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/
c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVy
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAgICAgICBbLTFdOiBN
b2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1
ZXN0SWQ6IDF9KSwKLSAgICAgICAgICAgICAgICBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxk
KHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDJ9KSwKKyAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKDUsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgxLCAy
KSwgeworICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCisgICAgICAgICAgICAgICAgICAgIE1v
Y2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAx
fSksCisgICAgICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWls
ZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAyfSldCiAgICAgICAgICAgICB9KTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg0LCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYnVpbGRl
cnMvc29tZSUyMHRlc3Rlci9mb3JjZScsICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J3Rlc3QnOiAnc29tZS10ZXN0JywgJ3drJzogJzE5MTYy
MicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzMnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWIt
dGVzdHMnLAotICAgICAgICAgICAgICAgICdyb290cyc6IEpTT04uc3RyaW5naWZ5KFt7dXJsOiBm
aXJzdFJvb3QudXJsKCl9XSl9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi10
ZXN0cycsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5k
YXRhLCB7J2lkJzogJzMnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3Bh
cmFtcyc6IHsKKyAgICAgICAgICAgICAgICAndGVzdCc6ICdzb21lLXRlc3QnLCAnd2snOiAnMTkx
NjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMycsJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFi
LXRlc3RzJywgJ3Jvb3RzJzogSlNPTi5zdHJpbmdpZnkoW3t1cmw6IGZpcnN0Um9vdC51cmwoKX1d
KX19KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMTApOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVp
bGRzJywgWwotICAgICAgICAgICAgICAgIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcjog
J3NvbWUgdGVzdGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDN9KSwKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCg1KSwgWworICAgICAgICAgICAgICAgIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRl
cklkOiA1LCBidWlsZFJlcXVlc3RJZDogM30pLAogICAgICAgICAgICAgXSk7Ci0gICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
b3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoMSksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg0KSwge30pOwogICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAx
Myk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdH
RVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJywgewotICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLmZpbmlz
aGVkQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pLAot
ICAgICAgICAgICAgICAgIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdz
b21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMn0pLAorICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKDUsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMSwgMiksIHsKKyAgICAg
ICAgICAgICAgICAnYnVpbGRzJzogWworICAgICAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5p
c2hlZEJ1aWxkRGF0YSh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDogMX0pLAorICAgICAg
ICAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRlcklkOiAxLCBi
dWlsZFJlcXVlc3RJZDogMn0pXQogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3Ro
ZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCg0LCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9t
aXNlOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTk5OCwzOCArMTAwNiw0MSBAQCBkZXNjcmli
ZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBzeW5j
UHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJs
ZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwg
TW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWls
ZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIFByb21p
c2UuYWxsKFtNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCksIHVwbG9hZFJvb3QoMSwgMTIz
KV0pOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5n
QnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxk
cycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJd
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywg
W10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDUpLCB7fSk7CisgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoMSksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg0KSwge30pOwogICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA2KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2Vs
ZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJywgewotICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLnJ1bm5p
bmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAyfSksCi0g
ICAgICAgICAgICAgICAgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ3Nv
bWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSksCisgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCg1LCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMSwgMiksIHsKKyAgICAgICAg
ICAgICAgICAnYnVpbGRzJzogWworICAgICAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5n
QnVpbGREYXRhKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAyfSksCisgICAgICAgICAg
ICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZGVySWQ6IDEsIGJ1aWxk
UmVxdWVzdElkOiAxfSkKKyAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICB9KTsKLSAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgJy9qc29u
L2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7
fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg0LCAyKSwge30pOwogICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKLSAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgJy9qc29u
L2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxk
ZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9v
dGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCg1KSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDEpLCB7fSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoNCksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIpOwotICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAg
ICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUg
YnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAyLCBidWlsZE51bWJlcjogMTAwMn0pLAotICAgICAg
ICAgICAgICAgIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1
aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pLAorICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNSwg
MiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEw
XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgxLCAyKSwgeworICAgICAgICAgICAg
ICAgICdidWlsZHMnOiBbCisgICAgICAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVp
bGREYXRhKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAyLCBidWlsZE51bWJlcjogMTAw
Mn0pLAorICAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1
aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KV0KICAgICAgICAgICAgIH0pOwotICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29u
L2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7
fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiksIHt9KTsKICAgICAgICAgICAgIHJl
dHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAtMTA1MCw3ICsx
MDYxLDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFz
c2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8v
YnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTAwMicpOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAn
aHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xL2J1aWxkcy8xMDAyJyk7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsK
ICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xMDg0LDM2ICsxMDk1LDM2IEBAIGRlc2NyaWJlKCdz
eW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIHN5bmNQcm9t
aXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5
bmNPbmNlKCkpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2Nr
RGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90
QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1
aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRl
ci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDUpLCB7fSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMSksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCg0KSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVp
bGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1
aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
b3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAg
ICAgICAgICBbLTFdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnb3RoZXIgYnVp
bGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZE51bWJlcjogMzEyfSksCi0gICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDUsIDIpLCB7fSk7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgxLCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiksCisg
ICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcklkOiA0LCBidWls
ZFJlcXVlc3RJZDogMSwgYnVpbGROdW1iZXI6IDMxMn0pCisgICAgICAgICAgICApOwogICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCg1KSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDEpLCB7fSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNCksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIpOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0g
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCAn
L2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0y
Jywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFd
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0t
MSZzZWxlY3Q9LTInLCB7Ci0gICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEuZmluaXNoZWRC
dWlsZCh7YnVpbGRlcjogJ290aGVyIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMSwgYnVpbGRO
dW1iZXI6IDMxMn0pLAotICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1
LCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDEsIDIpLCB7fSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiksCisgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNo
ZWRCdWlsZCh7YnVpbGRlcklkOiA0LCBidWlsZFJlcXVlc3RJZDogMSwgYnVpbGROdW1iZXI6IDMx
Mn0pCisgICAgICAgICAgICApOwogICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hG
b3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CkBAIC0xMTI0LDcgKzExMzUsNyBAQCBkZXNjcmliZSgnc3lu
Yy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcWV1
c3RzWzBdLmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxZXVzdHNbMF0u
aXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxZXVzdHNbMF0uc3Rh
dHVzTGFiZWwoKSwgJ0ZhaWxlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
ZXVzdHNbMF0uc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9v
dGhlciUyMGJ1aWxkZXIvYnVpbGRzLzMxMicpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxZXVzdHNbMF0uc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1
aWxkZXJzLzQvYnVpbGRzLzMxMicpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
ZXVzdHNbMF0uYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVx
ZXVzdHNbMV0uaXNCdWlsZCgpKTsKQEAgLTExOTIsNDAgKzEyMDMsNDIgQEAgZGVzY3JpYmUoJ3N5
bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHN5bmNQ
cm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxl
LnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBN
b2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxk
Ym90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVp
bGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDUpLCB7
fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMSksIHt9KTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCg0KSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIv
YnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRl
cnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKDUsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgxLCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiksIHt9KTsKICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Nyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BP
U1QnLCAnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2ZvcmNlJywgJ09LJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ2J1
aWxkLXJlcXVlc3QtaWQnOiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMn
LCAnb3duZWQtY29tbWl0cyc6IGB7IldlYktpdCI6W3sicmV2aXNpb24iOiJvd25lZC1qc2MtNjE2
MSIsInJlcG9zaXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93bmVyUmV2aXNpb24iOiIxOTE2MjIi
fV19YH0pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0s
ICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycp
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzog
JzEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6IHsKKyAg
ICAgICAgICAgICAgICAnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMScsICdm
b3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLAorICAgICAgICAgICAgICAgICdvd25l
ZC1jb21taXRzJzogYHsiV2ViS2l0IjpbeyJyZXZpc2lvbiI6Im93bmVkLWpzYy02MTYxIiwicmVw
b3NpdG9yeSI6IkphdmFTY3JpcHRDb3JlIiwib3duZXJSZXZpc2lvbiI6IjE5MTYyMiJ9XX1gfX0p
OwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMn
LCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywKLSAg
ICAgICAgICAgICAgICBbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWls
ZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KV0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWls
ZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNSksIHt9
KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgxKSwKKyAgICAgICAgICAgICAgICBNb2NrRGF0
YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CisgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoNCksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29u
L2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsK
LSAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdz
b21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pCi0gICAgICAgICAgICB9KTsKLSAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywg
e30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDUsIDIpLCB7fSk7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoMSwgMiksCisgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxk
KHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAxfSkKKyAgICAgICAgICAgICk7CisgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBzeW5j
UHJvbWlzZTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAtMTI0MCw3ICsxMjUzLDcgQEAg
ZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3Nl
cnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVx
dWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMv
MS9idWlsZHMvMTI0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVx
dWVzdC5jb21taXRTZXQoKTsKQEAgLTEyODAsNyArMTI5Myw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1
aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29t
cGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVp
bGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMS9idWlsZHMvMTI0Jyk7
CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRT
ZXQoKTsKQEAgLTEzMTMsNDIgKzEzMjYsNDQgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBm
dW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAg
ICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+
IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVw
cmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7Cisg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1v
Y2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRl
cnMoKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCAnL2pz
b24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKDUpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMSksIHt9KTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCg0KSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAg
ICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdzb21l
IGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pCi0gICAgICAgICAgICB9KTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1LCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoMSwgMiksCisgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVp
bGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDogMX0pCisgICAgICAgICAgICApOworICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoNCwgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2J1aWxkZXJzL3NvbWUlMjBi
dWlsZGVyL2ZvcmNlJywgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVl
c3RzWzZdLmRhdGEsIHsnd2snOiAnMTkyNzM2JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdm
b3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnb3duZWQtY29tbWl0cyc6IGB7Ildl
YktpdCI6W3sicmV2aXNpb24iOiJvd25lZC1qc2MtOTE5MSIsInJlcG9zaXRvcnkiOiJKYXZhU2Ny
aXB0Q29yZSIsIm93bmVyUmV2aXNpb24iOiIxOTI3MzYifV19YH0pOworICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2Vz
Y2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzInLCAnanNvbnJwYyc6ICcyLjAnLCAn
bWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAnd2snOiAnMTky
NzM2JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1h
Yi1idWlsZHMnLCAnb3duZWQtY29tbWl0cyc6IGB7IldlYktpdCI6W3sicmV2aXNpb24iOiJvd25l
ZC1qc2MtOTE5MSIsInJlcG9zaXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93bmVyUmV2aXNpb24i
OiIxOTI3MzYifV19YH19KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rl
ci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVu
ZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5n
QnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDUpLCB7fSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoMSksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg0KSwg
e30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAxMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3Nl
bGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIv
YnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAgICAgICAgICAgICAgIFstMV06IE1v
Y2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVz
dElkOiAyfSksCi0gICAgICAgICAgICAgICAgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7
YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSksCisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoNSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgxLCAy
KSwgeworICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCisgICAgICAgICAgICAgICAgICAgIE1v
Y2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDJ9
KSwKKyAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxk
ZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KV0KICAgICAgICAgICAgIH0pOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQn
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVy
biBzeW5jUHJvbWlzZTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAtMTM2Myw3ICsxMzc4
LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWls
ZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9i
dWlsZGVycy8xL2J1aWxkcy8xMjQnKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWls
ZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0
ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAtMTM4Myw3ICsxMzk4LDcgQEAgZGVzY3Jp
YmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQob3Ro
ZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWls
ZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Vi
a2l0Lm9yZy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNv
bnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC0x
NDA4LDcgKzE0MjMsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAg
IGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJr
aXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Vi
a2l0Lm9yZy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgYXNzZXJ0Lm5v
dEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25z
dCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC0xNDI4LDcgKzE0NDMs
NyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0
KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1
aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xL2J1aWxkcy8xMjQnKTsKICAgICAgICAg
ICAgIGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwog
CiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOwpAQCAtMTQ5MSw0MCArMTUwNiw0MSBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJv
dCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21t
aXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0
cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2Uo
KSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dF
VCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1v
Y2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVy
c1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVz
dGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9w
ZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRp
bmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNSksIHt9KTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgxKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQp
LCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3Nl
bGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9i
dWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUy
MGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoNSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDEsIDIpLCB7
fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg0LCAyKSwge30pOwogICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYnVp
bGRlcnMvc29tZSUyMGJ1aWxkZXIvZm9yY2UnLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVz
dC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdvd25lZC1j
b21taXRzJzogYHsiV2ViS2l0IjpbeyJyZXZpc2lvbiI6Im93bmVkLWpzYy02MTYxIiwicmVwb3Np
dG9yeSI6IkphdmFTY3JpcHRDb3JlIiwib3duZXJSZXZpc2lvbiI6IjE5MTYyMiJ9XX1gfSk7Cisg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAn
L2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMScsICdqc29u
cnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzogeworICAgICAgICAgICAg
ICAgICd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1
bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdvd25lZC1jb21taXRzJzogYHsiV2ViS2l0IjpbeyJy
ZXZpc2lvbiI6Im93bmVkLWpzYy02MTYxIiwicmVwb3NpdG9yeSI6IkphdmFTY3JpcHRDb3JlIiwi
b3duZXJSZXZpc2lvbiI6IjE5MTYyMiJ9XX1gfX0pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7Ci0gICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21l
JTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywKLSAgICAgICAgICAgICAgICBbTW9ja0RhdGEucGVu
ZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KV0p
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Cisg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNSksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgxKSwKKyAgICAgICAgICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDog
MSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNCksIHt9
KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMTMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1
aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAgICAgICBbLTFdOiBNb2Nr
RGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJ
ZDogMX0pCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIv
YnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKDUsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMSwgMiksCisgICAgICAg
ICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVz
dElkOiAxfSkKKyAgICAgICAgICAgICk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiks
IHt9KTsKICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQs
IHRydWUpOwpAQCAtMTUzOSw3ICsxNTU1LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7
CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDov
L2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6
Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMS9idWlsZHMvMTI0Jyk7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAg
ICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTE1Nzks
NyArMTU5NSw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNz
ZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
L2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRT
ZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC0xNjIwLDcgKzE2MzYsNyBAQCBkZXNj
cmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChi
dWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUl
MjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEv
YnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJl
cXVlc3QuY29tbWl0U2V0KCk7CkBAIC0xNjUzLDQyICsxNjY5LDQ0IEBAIGRlc2NyaWJlKCdzeW5j
LWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
c2V0KCk7CiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJz
KCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RC
dWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXBy
ZWNhdGVkKCkpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tC
dWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwog
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBd
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtd
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0g
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCg1KSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDEp
LCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNCksIHt9KTsKICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0gICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicsIHsKLSAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHti
dWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KQotICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2Vs
ZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNSwgMiksIHt9KTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKDEsIDIpLAorICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlz
aGVkQnVpbGQoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KQorICAgICAgICAgICAg
KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDQsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwotICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9idWls
ZGVycy9zb21lJTIwYnVpbGRlci9mb3JjZScsICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J3drJzogJzE5MjczNicsICdidWlsZC1yZXF1ZXN0
LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ293bmVkLWNv
bW1pdHMnOiBgeyJXZWJLaXQiOlt7InJldmlzaW9uIjoib3duZWQtanNjLTkxOTEiLCJyZXBvc2l0
b3J5IjoiSmF2YVNjcmlwdENvcmUiLCJvd25lclJldmlzaW9uIjoiMTkyNzM2In1dfWB9KTsKKyAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcv
YXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcyJywgJ2pzb25y
cGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOiB7CisgICAgICAgICAgICAg
ICAgJ3drJzogJzE5MjczNicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVs
ZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ293bmVkLWNvbW1pdHMnOiBgeyJXZWJLaXQiOlt7InJl
dmlzaW9uIjoib3duZWQtanNjLTkxOTEiLCJyZXBvc2l0b3J5IjoiSmF2YVNjcmlwdENvcmUiLCJv
d25lclJldmlzaW9uIjoiMTkyNzM2In1dfWB9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUl
MjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1
aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg1KSwg
e30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDEpLCB7fSk7CisgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoNCksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0
ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAg
ICAgICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXIn
LCBidWlsZFJlcXVlc3RJZDogMn0pLAotICAgICAgICAgICAgICAgIFstMl06IE1vY2tEYXRhLmZp
bmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0p
LAorICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDUsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoMSwgMiksIHsKKyAgICAgICAgICAgICAgICAnYnVpbGRzJzogWworICAgICAgICAg
ICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZGVySWQ6IDEsIGJ1aWxk
UmVxdWVzdElkOiAyfSksCisgICAgICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVp
bGREYXRhKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAxfSldCiAgICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2Vs
ZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMTJdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDQsIDIpLCB7fSk7CiAgICAg
ICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKQEAg
LTE3MDMsNyArMTcyMSw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnLyMvYnVpbGRlcnMvMS9idWlsZHMvMTI0Jyk7CiAgICAgICAgICAgICBhc3NlcnQu
bm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNv
bnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTE3MjMsNyArMTc0
MSw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1
aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xL2J1aWxkcy8xMjQnKTsKICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAg
ICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpOwpAQCAtMTc0OCw3ICsxNzY2LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7
CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRw
Oi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xL2J1aWxkcy8xMjQnKTsKICAgICAgICAg
ICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAg
ICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAt
MTc2OCw3ICsxNzg2LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMv
MTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcp
OwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJl
cXVlc3QuY29tbWl0U2V0KCk7CkBAIC0xNzk0LDcgKzE4MTIsNyBAQCBkZXNjcmliZSgnc3luYy1i
dWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3Qu
aXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsK
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0Nv
bXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1
aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcp
OwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0
U2V0KCk7CkBAIC0xODE0LDcgKzE4MzIsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxk
KCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwg
J0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1
aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8x
L2J1aWxkcy8xMjQnKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNl
dCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMKaW5kZXggYzEyZjFiNDky
MjQuLjU0N2I4NDVkM2U4IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9v
bHMvanMvYnVpbGRib3Qtc3luY2VyLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90
b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMKQEAgLTIxNSwxOCArMjE1LDE4IEBAIGNsYXNzIEJ1
aWxkYm90U3luY2VyIHsKICAgICAgICAgaWYgKCF0aGlzLl9zbGF2ZUxpc3QgfHwgaGFzUGVuZGlu
Z0J1aWxkc1dpdGhvdXRTbGF2ZU5hbWVTcGVjaWZpZWQpIHsKICAgICAgICAgICAgIGlmICh1c2Vk
U2xhdmVzLnNpemUgfHwgdGhpcy5fc2xhdmVzV2l0aE5ld1JlcXVlc3RzLnNpemUpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgICAgICByZXR1cm4gdGhpcy5zY2hlZHVsZVJl
cXVlc3REZXByZWNhdGVkKG5ld1JlcXVlc3QsIHJlcXVlc3RzSW5Hcm91cCwgbnVsbCk7CisgICAg
ICAgICAgICByZXR1cm4gdGhpcy5zY2hlZHVsZVJlcXVlc3QobmV3UmVxdWVzdCwgcmVxdWVzdHNJ
bkdyb3VwLCBudWxsKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChzbGF2ZU5hbWUpIHsKICAg
ICAgICAgICAgIGlmICghdXNlZFNsYXZlcy5oYXMoc2xhdmVOYW1lKSAmJiAhdGhpcy5fc2xhdmVz
V2l0aE5ld1JlcXVlc3RzLmhhcyhzbGF2ZU5hbWUpKQotICAgICAgICAgICAgICAgIHJldHVybiB0
aGlzLnNjaGVkdWxlUmVxdWVzdERlcHJlY2F0ZWQobmV3UmVxdWVzdCwgcmVxdWVzdHNJbkdyb3Vw
LCBzbGF2ZU5hbWUpOworICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNjaGVkdWxlUmVxdWVz
dChuZXdSZXF1ZXN0LCByZXF1ZXN0c0luR3JvdXAsIHNsYXZlTmFtZSk7CiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbDsKICAgICAgICAgfQogCiAgICAgICAgIGZvciAobGV0IHNsYXZlTmFtZSBvZiB0
aGlzLl9zbGF2ZUxpc3QpIHsKICAgICAgICAgICAgIGlmICghdXNlZFNsYXZlcy5oYXMoc2xhdmVO
YW1lKSAmJiAhdGhpcy5fc2xhdmVzV2l0aE5ld1JlcXVlc3RzLmhhcyhzbGF2ZU5hbWUpKQotICAg
ICAgICAgICAgICAgIHJldHVybiB0aGlzLnNjaGVkdWxlUmVxdWVzdERlcHJlY2F0ZWQobmV3UmVx
dWVzdCwgcmVxdWVzdHNJbkdyb3VwLCBzbGF2ZU5hbWUpOworICAgICAgICAgICAgICAgIHJldHVy
biB0aGlzLnNjaGVkdWxlUmVxdWVzdChuZXdSZXF1ZXN0LCByZXF1ZXN0c0luR3JvdXAsIHNsYXZl
TmFtZSk7CiAgICAgICAgIH0KIAogICAgICAgICByZXR1cm4gbnVsbDsKQEAgLTIzNCw5ICsyMzQs
MTEgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogCiAgICAgcHVsbEJ1aWxkYm90KGNvdW50KQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3JlbW90ZS5nZXRKU09OKHRoaXMucGF0aEZvclBl
bmRpbmdCdWlsZHNKU09ORGVwcmVjYXRlZCgpKS50aGVuKChjb250ZW50KSA9PiB7Ci0gICAgICAg
ICAgICBsZXQgcGVuZGluZ0VudHJpZXMgPSBjb250ZW50Lm1hcCgoZW50cnkpID0+IG5ldyBCdWls
ZGJvdEJ1aWxkRW50cnlEZXByZWNhdGVkKHRoaXMsIGVudHJ5KSk7Ci0gICAgICAgICAgICByZXR1
cm4gdGhpcy5fcHVsbFJlY2VudEJ1aWxkc0RlcHJlY2F0ZWQoY291bnQpLnRoZW4oKGVudHJpZXMp
ID0+IHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3JlbW90ZS5nZXRKU09OKHRoaXMucGF0aEZvclBl
bmRpbmdCdWlsZHMoKSkudGhlbigoY29udGVudCkgPT4geworICAgICAgICAgICAgbGV0IHBlbmRp
bmdFbnRyaWVzID0gW107CisgICAgICAgICAgICBpZiAoJ2J1aWxkcmVxdWVzdHMnIGluIGNvbnRl
bnQpCisgICAgICAgICAgICAgICAgcGVuZGluZ0VudHJpZXMgPSBjb250ZW50LmJ1aWxkcmVxdWVz
dHMubWFwKChlbnRyeSkgPT4gbmV3IEJ1aWxkYm90QnVpbGRFbnRyeSh0aGlzLCBlbnRyeSkpOwor
ICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3B1bGxSZWNlbnRCdWlsZHMoY291bnQpLnRoZW4oKGVu
dHJpZXMpID0+IHsKICAgICAgICAgICAgICAgICBsZXQgZW50cnlCeVJlcXVlc3QgPSB7fTsKIAog
ICAgICAgICAgICAgICAgIGZvciAobGV0IGVudHJ5IG9mIHBlbmRpbmdFbnRyaWVzKQpkaWZmIC0t
Z2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJh
YmxlLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdn
ZXJhYmxlLmpzCmluZGV4IDg5OTI4NDA2OWNhLi5kZDg1MDkyMmIzYiAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCisr
KyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJs
ZS5qcwpAQCAtNTUsNyArNTUsNyBAQCBjbGFzcyBCdWlsZGJvdFRyaWdnZXJhYmxlIHsKIAogICAg
IGluaXRTeW5jZXJzKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLmdldEJ1aWxkZXJOYW1l
VG9JRE1hcERlcHJlY2F0ZWQoKS50aGVuKChidWlsZGVyTmFtZVRvSURNYXApID0+IHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuZ2V0QnVpbGRlck5hbWVUb0lETWFwKCkudGhlbigoYnVpbGRlck5hbWVU
b0lETWFwKSA9PiB7CiAgICAgICAgICAgICB0aGlzLl9zeW5jZXJzID0gQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcodGhpcy5fYnVpbGRib3RSZW1vdGUsIHRoaXMuX2NvbmZpZywgYnVpbGRlck5h
bWVUb0lETWFwKTsKICAgICAgICAgfSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzCmlu
ZGV4IDUyNzY3ZDg5MDU2Li42NDU3NzMzYmE1YiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzCisrKyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qcwpA
QCAtNiw3ICs2LDcgQEAgcmVxdWlyZSgnLi4vdG9vbHMvanMvdjMtbW9kZWxzLmpzJyk7CiBsZXQg
TW9ja1JlbW90ZUFQSSA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL21vY2stcmVtb3RlLWFwaS5qcycp
Lk1vY2tSZW1vdGVBUEk7CiBsZXQgTW9ja01vZGVscyA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL21v
Y2stdjMtbW9kZWxzLmpzJykuTW9ja01vZGVsczsKIAotbGV0IEJ1aWxkYm90QnVpbGRFbnRyeURl
cHJlY2F0ZWQgPSByZXF1aXJlKCcuLi90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMnKS5CdWls
ZGJvdEJ1aWxkRW50cnlEZXByZWNhdGVkOworbGV0IEJ1aWxkYm90QnVpbGRFbnRyeSA9IHJlcXVp
cmUoJy4uL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcycpLkJ1aWxkYm90QnVpbGRFbnRyeTsK
IGxldCBCdWlsZGJvdFN5bmNlciA9IHJlcXVpcmUoJy4uL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNl
ci5qcycpLkJ1aWxkYm90U3luY2VyOwogCiBmdW5jdGlvbiBzYW1wbGVpT1NDb25maWcoKQpAQCAt
MTMzLDYgKzEzMyw3IEBAIGZ1bmN0aW9uIHNtYWxsQ29uZmlndXJhdGlvbigpCiAgICAgICAgICdi
dWlsZGVycyc6IHsKICAgICAgICAgICAgICdzb21lLWJ1aWxkZXInOiB7CiAgICAgICAgICAgICAg
ICAgJ2J1aWxkZXInOiAnc29tZSBidWlsZGVyJywKKyAgICAgICAgICAgICAgICAncHJvcGVydGll
cyc6IHsnZm9yY2VzY2hlZHVsZXInOiAnc29tZS1idWlsZGVyLUZvcmNlU2NoZWR1bGVyJ30KICAg
ICAgICAgICAgIH0KICAgICAgICAgfSwKICAgICAgICAgJ3Rlc3RDb25maWd1cmF0aW9ucyc6IFt7
CkBAIC0xNTMsNjggKzE1NCwyMiBAQCBmdW5jdGlvbiBidWlsZGVyTmFtZVRvSURNYXAoKQogICAg
ICAgICAnaVBob25lIEFCIFRlc3RzJyA6ICcxMDQnLAogICAgICAgICAnaVBob25lIDIgQUIgVGVz
dHMnOiAnMTA1JywKICAgICAgICAgJ2lQYWQgQUIgVGVzdHMnOiAnMTA2JwotICAgIH0gICAgCisg
ICAgfQogfQogCiBmdW5jdGlvbiBzbWFsbFBlbmRpbmdCdWlsZCgpCiB7Ci0gICAgcmV0dXJuIHsK
LSAgICAgICAgJ2J1aWxkZXJOYW1lJzogJ3NvbWUgYnVpbGRlcicsCi0gICAgICAgICdidWlsZHMn
OiBbXSwKLSAgICAgICAgJ3Byb3BlcnRpZXMnOiBbXSwKLSAgICAgICAgJ3NvdXJjZSc6IHsKLSAg
ICAgICAgICAgICdicmFuY2gnOiAnJywKLSAgICAgICAgICAgICdjaGFuZ2VzJzogW10sCi0gICAg
ICAgICAgICAnY29kZWJhc2UnOiAnV2ViS2l0JywKLSAgICAgICAgICAgICdoYXNQYXRjaCc6IGZh
bHNlLAotICAgICAgICAgICAgJ3Byb2plY3QnOiAnJywKLSAgICAgICAgICAgICdyZXBvc2l0b3J5
JzogJycsCi0gICAgICAgICAgICAncmV2aXNpb24nOiAnJwotICAgICAgICB9LAotICAgIH07Cisg
ICAgcmV0dXJuIHNhbXBsZVBlbmRpbmdCdWlsZChudWxsLCBudWxsLCAic29tZSBidWlsZGVyIik7
CiB9CiAKIGZ1bmN0aW9uIHNtYWxsSW5Qcm9ncmVzc0J1aWxkKCkKIHsKLSAgICByZXR1cm4gewot
ICAgICAgICAnYnVpbGRlck5hbWUnOiAnc29tZSBidWlsZGVyJywKLSAgICAgICAgJ2J1aWxkcyc6
IFtdLAotICAgICAgICAncHJvcGVydGllcyc6IFtdLAotICAgICAgICAnY3VycmVudFN0ZXAnOiB7
IH0sCi0gICAgICAgICdldGEnOiAxMjMsCi0gICAgICAgICdudW1iZXInOiA0NTYsCi0gICAgICAg
ICdzb3VyY2UnOiB7Ci0gICAgICAgICAgICAnYnJhbmNoJzogJycsCi0gICAgICAgICAgICAnY2hh
bmdlcyc6IFtdLAotICAgICAgICAgICAgJ2NvZGViYXNlJzogJ1dlYktpdCcsCi0gICAgICAgICAg
ICAnaGFzUGF0Y2gnOiBmYWxzZSwKLSAgICAgICAgICAgICdwcm9qZWN0JzogJycsCi0gICAgICAg
ICAgICAncmVwb3NpdG9yeSc6ICcnLAotICAgICAgICAgICAgJ3JldmlzaW9uJzogJycKLSAgICAg
ICAgfSwKLSAgICB9OworICAgIHJldHVybiBzYW1wbGVJblByb2dyZXNzQnVpbGQoKTsKIH0KIAog
ZnVuY3Rpb24gc21hbGxGaW5pc2hlZEJ1aWxkKCkKIHsKLSAgICByZXR1cm4gewotICAgICAgICAn
YnVpbGRlck5hbWUnOiAnc29tZSBidWlsZGVyJywKLSAgICAgICAgJ2J1aWxkcyc6IFtdLAotICAg
ICAgICAncHJvcGVydGllcyc6IFtdLAotICAgICAgICAnY3VycmVudFN0ZXAnOiBudWxsLAotICAg
ICAgICAnZXRhJzogbnVsbCwKLSAgICAgICAgJ251bWJlcic6IDc4OSwKLSAgICAgICAgJ3NvdXJj
ZSc6IHsKLSAgICAgICAgICAgICdicmFuY2gnOiAnJywKLSAgICAgICAgICAgICdjaGFuZ2VzJzog
W10sCi0gICAgICAgICAgICAnY29kZWJhc2UnOiAnV2ViS2l0JywKLSAgICAgICAgICAgICdoYXNQ
YXRjaCc6IGZhbHNlLAotICAgICAgICAgICAgJ3Byb2plY3QnOiAnJywKLSAgICAgICAgICAgICdy
ZXBvc2l0b3J5JzogJycsCi0gICAgICAgICAgICAncmV2aXNpb24nOiAnJwotICAgICAgICB9LAot
ICAgICAgICAndGltZXMnOiBbMCwgMV0sCi0gICAgfTsKKyAgICByZXR1cm4gc2FtcGxlRmluaXNo
ZWRCdWlsZChudWxsLCBudWxsLCAic29tZSBidWlsZGVyIik7CiB9CiAKIGZ1bmN0aW9uIGNyZWF0
ZVNhbXBsZUJ1aWxkUmVxdWVzdChwbGF0Zm9ybSwgdGVzdCkKQEAgLTI5NSwxOTQgKzI1MCw3NiBA
QCBmdW5jdGlvbiBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3RXaXRoT3duZWRDb21taXRBbmRQYXRj
aChwbGF0Zm9ybSwgdGVzdCwgb3JkZXIpCiAgICAgICAgICdjb21taXRTZXQnOiBjb21taXRTZXQs
ICdzdGF0dXMnOiAncGVuZGluZycsICdwbGF0Zm9ybSc6IHBsYXRmb3JtLCAndGVzdCc6IHRlc3Qs
ICdvcmRlcic6IG9yZGVyfSk7CiB9CiAKLWZ1bmN0aW9uIHNhbXBsZVBlbmRpbmdCdWlsZChidWls
ZFJlcXVlc3RJZCwgYnVpbGRUaW1lLCBzbGF2ZU5hbWUpCitmdW5jdGlvbiBzYW1wbGVQZW5kaW5n
QnVpbGREYXRhKGJ1aWxkUmVxdWVzdElkLCBidWlsZFRpbWUsIGJ1aWxkZXJJZCkKIHsKICAgICBy
ZXR1cm4gewotICAgICAgICAnYnVpbGRlck5hbWUnOiAnQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJr
LVRlc3RzJywKLSAgICAgICAgJ2J1aWxkcyc6IFtdLAotICAgICAgICAncHJvcGVydGllcyc6IFsK
LSAgICAgICAgICAgIFsnYnVpbGRfcmVxdWVzdF9pZCcsIGJ1aWxkUmVxdWVzdElkIHx8ICcxNjcz
MycsICdGb3JjZSBCdWlsZCBGb3JtJ10sCi0gICAgICAgICAgICBbJ2Rlc2lyZWRfaW1hZ2UnLCAn
MTNBNDUyJywgJ0ZvcmNlIEJ1aWxkIEZvcm0nXSwKLSAgICAgICAgICAgIFsnb3duZXInLCAnPHVu
a25vd24+JywgJ0ZvcmNlIEJ1aWxkIEZvcm0nXSwKLSAgICAgICAgICAgIFsndGVzdF9uYW1lJywg
J3NwZWVkb21ldGVyJywgJ0ZvcmNlIEJ1aWxkIEZvcm0nXSwKLSAgICAgICAgICAgIFsncmVhc29u
JywgJ2ZvcmNlIGJ1aWxkJywnRm9yY2UgQnVpbGQgRm9ybSddLAotICAgICAgICAgICAgWydzbGF2
ZW5hbWUnLCBzbGF2ZU5hbWUsICcnXSwKLSAgICAgICAgICAgIFsnc2NoZWR1bGVyJywgJ0FCVGVz
dC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy1Gb3JjZVNjaGVkdWxlcicsICdTY2hlZHVsZXInXQot
ICAgICAgICBdLAotICAgICAgICAnc291cmNlJzogewotICAgICAgICAgICAgJ2JyYW5jaCc6ICcn
LAotICAgICAgICAgICAgJ2NoYW5nZXMnOiBbXSwKLSAgICAgICAgICAgICdjb2RlYmFzZSc6ICdj
b21waWxlci1ydCcsCi0gICAgICAgICAgICAnaGFzUGF0Y2gnOiBmYWxzZSwKLSAgICAgICAgICAg
ICdwcm9qZWN0JzogJycsCi0gICAgICAgICAgICAncmVwb3NpdG9yeSc6ICcnLAotICAgICAgICAg
ICAgJ3JldmlzaW9uJzogJycKLSAgICAgICAgfSwKLSAgICAgICAgJ3N1Ym1pdHRlZEF0JzogYnVp
bGRUaW1lIHx8IDE0NTg3MDQ5ODMKKyAgICAgICAgImJ1aWxkZXJpZCI6IGJ1aWxkZXJJZCB8fCAx
MDIsCisgICAgICAgICJidWlsZHJlcXVlc3RpZCI6IGJ1aWxkUmVxdWVzdElkIHx8IDE2NzMzLAor
ICAgICAgICAiYnVpbGRzZXRpZCI6IDg5NDcyMCwKKyAgICAgICAgImNsYWltZWQiOiBmYWxzZSwK
KyAgICAgICAgImNsYWltZWRfYXQiOiBudWxsLAorICAgICAgICAiY2xhaW1lZF9ieV9tYXN0ZXJp
ZCI6IG51bGwsCisgICAgICAgICJjb21wbGV0ZSI6IGZhbHNlLAorICAgICAgICAiY29tcGxldGVf
YXQiOiBudWxsLAorICAgICAgICAicHJpb3JpdHkiOiAwLAorICAgICAgICAicmVzdWx0cyI6IC0x
LAorICAgICAgICAic3VibWl0dGVkX2F0IjogYnVpbGRUaW1lIHx8IDE0NTg3MDQ5ODMsCisgICAg
ICAgICJ3YWl0ZWRfZm9yIjogZmFsc2UKICAgICB9OwogfQogCi1mdW5jdGlvbiBzYW1wbGVJblBy
b2dyZXNzQnVpbGQoc2xhdmVOYW1lKQorZnVuY3Rpb24gc2FtcGxlUGVuZGluZ0J1aWxkKGJ1aWxk
UmVxdWVzdElkLCBidWlsZFRpbWUsIGJ1aWxkZXJOYW1lKQogewogICAgIHJldHVybiB7Ci0gICAg
ICAgICdibGFtZSc6IFtdLAotICAgICAgICAnYnVpbGRlck5hbWUnOiAnQUJUZXN0LWlQYWQtUnVu
QmVuY2htYXJrLVRlc3RzJywKLSAgICAgICAgJ2N1cnJlbnRTdGVwJzogewotICAgICAgICAgICAg
J2V0YSc6IDAuMjY1NDgwNjc2OTg0NjA1NjUsCi0gICAgICAgICAgICAnZXhwZWN0YXRpb25zJzog
W1snb3V0cHV0JywgODQ1LCAxMzE1LjBdXSwKLSAgICAgICAgICAgICdoaWRkZW4nOiBmYWxzZSwK
LSAgICAgICAgICAgICdpc0ZpbmlzaGVkJzogZmFsc2UsCi0gICAgICAgICAgICAnaXNTdGFydGVk
JzogdHJ1ZSwKLSAgICAgICAgICAgICdsb2dzJzogW1snc3RkaW8nLCAnaHR0cHM6Ly9idWlsZC53
ZWJraXQub3JnL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy9idWlsZHMv
NjE0L3N0ZXBzL1NvbWUlMjBzdGVwL2xvZ3Mvc3RkaW8nXV0sCi0gICAgICAgICAgICAnbmFtZSc6
ICdTb21lIHN0ZXAnLAotICAgICAgICAgICAgJ3Jlc3VsdHMnOiBbbnVsbCxbXV0sCi0gICAgICAg
ICAgICAnc3RhdGlzdGljcyc6IHt9LAotICAgICAgICAgICAgJ3N0ZXBfbnVtYmVyJzogMSwKLSAg
ICAgICAgICAgICd0ZXh0JzogWycnXSwKLSAgICAgICAgICAgICd0aW1lcyc6IFsxNDU4NzE4NjU3
LjU4MTYyOCwgbnVsbF0sCi0gICAgICAgICAgICAndXJscyc6IHt9Ci0gICAgICAgIH0sCi0gICAg
ICAgICdldGEnOiA2NDk3Ljk5MTYxMjQzNDM4NywKLSAgICAgICAgJ2xvZ3MnOiBbWydzdGRpbycs
J2h0dHBzOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1h
cmstVGVzdHMvYnVpbGRzLzYxNC9zdGVwcy9zaGVsbC9sb2dzL3N0ZGlvJ11dLAotICAgICAgICAn
bnVtYmVyJzogNjE0LAotICAgICAgICAncHJvcGVydGllcyc6IFsKLSAgICAgICAgICAgIFsnYnVp
bGRfcmVxdWVzdF9pZCcsICcxNjczMycsICdGb3JjZSBCdWlsZCBGb3JtJ10sCi0gICAgICAgICAg
ICBbJ2J1aWxkZXJuYW1lJywgJ0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cycsICdCdWls
ZGVyJ10sCi0gICAgICAgICAgICBbJ2J1aWxkbnVtYmVyJywgNjE0LCAnQnVpbGQnXSwKLSAgICAg
ICAgICAgIFsnZGVzaXJlZF9pbWFnZScsICcxM0E0NTInLCAnRm9yY2UgQnVpbGQgRm9ybSddLAot
ICAgICAgICAgICAgWydvd25lcicsICc8dW5rbm93bj4nLCAnRm9yY2UgQnVpbGQgRm9ybSddLAot
ICAgICAgICAgICAgWydyZWFzb24nLCAnZm9yY2UgYnVpbGQnLCAnRm9yY2UgQnVpbGQgRm9ybSdd
LAotICAgICAgICAgICAgWydzY2hlZHVsZXInLCAnQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRl
c3RzLUZvcmNlU2NoZWR1bGVyJywgJ1NjaGVkdWxlciddLAotICAgICAgICAgICAgWydzbGF2ZW5h
bWUnLCBzbGF2ZU5hbWUgfHwgJ0FCVGVzdC1pUGFkLTAnLCAnQnVpbGRTbGF2ZSddLAotICAgICAg
ICBdLAotICAgICAgICAncmVhc29uJzogJ0EgYnVpbGQgd2FzIGZvcmNlZCBieSBcJzx1bmtub3du
PlwnOiBmb3JjZSBidWlsZCcsCi0gICAgICAgICdyZXN1bHRzJzogbnVsbCwKLSAgICAgICAgJ3Ns
YXZlJzogJ0FCVGVzdC1pUGFkLTAnLAotICAgICAgICAnc291cmNlU3RhbXBzJzogW3snYnJhbmNo
JzogJycsICdjaGFuZ2VzJzogW10sICdjb2RlYmFzZSc6ICdjb21waWxlci1ydCcsICdoYXNQYXRj
aCc6IGZhbHNlLCAncHJvamVjdCc6ICcnLCAncmVwb3NpdG9yeSc6ICcnLCAncmV2aXNpb24nOiAn
J31dLAotICAgICAgICAnc3RlcHMnOiBbCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
J2V0YSc6IG51bGwsCi0gICAgICAgICAgICAgICAgJ2V4cGVjdGF0aW9ucyc6IFtbJ291dHB1dCcs
MjMwOSwyMzA5LjBdXSwKLSAgICAgICAgICAgICAgICAnaGlkZGVuJzogZmFsc2UsCi0gICAgICAg
ICAgICAgICAgJ2lzRmluaXNoZWQnOiB0cnVlLAotICAgICAgICAgICAgICAgICdpc1N0YXJ0ZWQn
OiB0cnVlLAotICAgICAgICAgICAgICAgICdsb2dzJzogW1snc3RkaW8nLCAnaHR0cHM6Ly9idWls
ZC53ZWJraXQub3JnL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy9idWls
ZHMvNjE0L3N0ZXBzL3NoZWxsL2xvZ3Mvc3RkaW8nXV0sCi0gICAgICAgICAgICAgICAgJ25hbWUn
OiAnRmluaXNoZWQgc3RlcCcsCi0gICAgICAgICAgICAgICAgJ3Jlc3VsdHMnOiBbMCwgW11dLAot
ICAgICAgICAgICAgICAgICdzdGF0aXN0aWNzJzoge30sCi0gICAgICAgICAgICAgICAgJ3N0ZXBf
bnVtYmVyJzogMCwKLSAgICAgICAgICAgICAgICAndGV4dCc6IFsnJ10sCi0gICAgICAgICAgICAg
ICAgJ3RpbWVzJzogWzE0NTg3MTg2NTUuNDE5ODY1LCAxNDU4NzE4NjU1LjQ1MzYzM10sCi0gICAg
ICAgICAgICAgICAgJ3VybHMnOiB7fQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAnZXRhJzogMC4yNjU0ODA2NzY5ODQ2MDU2NSwKLSAgICAgICAgICAgICAg
ICAnZXhwZWN0YXRpb25zJzogW1snb3V0cHV0JywgODQ1LCAxMzE1LjBdXSwKLSAgICAgICAgICAg
ICAgICAnaGlkZGVuJzogZmFsc2UsCi0gICAgICAgICAgICAgICAgJ2lzRmluaXNoZWQnOiBmYWxz
ZSwKLSAgICAgICAgICAgICAgICAnaXNTdGFydGVkJzogdHJ1ZSwKLSAgICAgICAgICAgICAgICAn
bG9ncyc6IFtbJ3N0ZGlvJywgJ2h0dHBzOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9BQlRl
c3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVpbGRzLzYxNC9zdGVwcy9Tb21lJTIwc3RlcC9s
b2dzL3N0ZGlvJ11dLAotICAgICAgICAgICAgICAgICduYW1lJzogJ1NvbWUgc3RlcCcsCi0gICAg
ICAgICAgICAgICAgJ3Jlc3VsdHMnOiBbbnVsbCxbXV0sCi0gICAgICAgICAgICAgICAgJ3N0YXRp
c3RpY3MnOiB7fSwKLSAgICAgICAgICAgICAgICAnc3RlcF9udW1iZXInOiAxLAotICAgICAgICAg
ICAgICAgICd0ZXh0JzogWycnXSwKLSAgICAgICAgICAgICAgICAndGltZXMnOiBbMTQ1ODcxODY1
Ny41ODE2MjgsIG51bGxdLAotICAgICAgICAgICAgICAgICd1cmxzJzoge30KLSAgICAgICAgICAg
IH0sCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgJ2V0YSc6IG51bGwsCi0gICAgICAg
ICAgICAgICAgJ2V4cGVjdGF0aW9ucyc6IFtbJ291dHB1dCcsIG51bGwsIG51bGxdXSwKLSAgICAg
ICAgICAgICAgICAnaGlkZGVuJzogZmFsc2UsCi0gICAgICAgICAgICAgICAgJ2lzRmluaXNoZWQn
OiBmYWxzZSwKLSAgICAgICAgICAgICAgICAnaXNTdGFydGVkJzogZmFsc2UsCi0gICAgICAgICAg
ICAgICAgJ2xvZ3MnOiBbXSwKLSAgICAgICAgICAgICAgICAnbmFtZSc6ICdTb21lIG90aGVyIHN0
ZXAnLAotICAgICAgICAgICAgICAgICdyZXN1bHRzJzogW251bGwsIFtdXSwKLSAgICAgICAgICAg
ICAgICAnc3RhdGlzdGljcyc6IHt9LAotICAgICAgICAgICAgICAgICdzdGVwX251bWJlcic6IDIs
Ci0gICAgICAgICAgICAgICAgJ3RleHQnOiBbXSwKLSAgICAgICAgICAgICAgICAndGltZXMnOiBb
bnVsbCwgbnVsbF0sCi0gICAgICAgICAgICAgICAgJ3VybHMnOiB7fQotICAgICAgICAgICAgfSwK
LSAgICAgICAgXSwKLSAgICAgICAgJ3RleHQnOiBbXSwKLSAgICAgICAgJ3RpbWVzJzogWzE0NTg3
MTg2NTUuNDE1ODIxLCBudWxsXQorICAgICAgICAiYnVpbGRyZXF1ZXN0cyIgOiBbc2FtcGxlUGVu
ZGluZ0J1aWxkRGF0YShidWlsZFJlcXVlc3RJZCwgYnVpbGRUaW1lLCBidWlsZGVyTmFtZVRvSURN
YXAoKVtidWlsZGVyTmFtZV0pXQogICAgIH07CiB9CiAKLWZ1bmN0aW9uIHNhbXBsZUZpbmlzaGVk
QnVpbGQoYnVpbGRSZXF1ZXN0SWQsIHNsYXZlTmFtZSkKK2Z1bmN0aW9uIHNhbXBsZUJ1aWxkRGF0
YSh3b3JrZXJOYW1lLCBpc0NvbXBsZXRlLCBidWlsZFJlcXVlc3RJZCwgYnVpbGROdW1iZXIsIGJ1
aWxkZXJJZCkKIHsKICAgICByZXR1cm4gewotICAgICAgICAnYmxhbWUnOiBbXSwKLSAgICAgICAg
J2J1aWxkZXJOYW1lJzogJ0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cycsCi0gICAgICAg
ICdjdXJyZW50U3RlcCc6IG51bGwsCi0gICAgICAgICdldGEnOiBudWxsLAotICAgICAgICAnbG9n
cyc6IFtbJ3N0ZGlvJywnaHR0cHM6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL0FCVGVzdC1p
UGFkLVJ1bkJlbmNobWFyay1UZXN0cy9idWlsZHMvMTc1NS9zdGVwcy9zaGVsbC9sb2dzL3N0ZGlv
J11dLAotICAgICAgICAnbnVtYmVyJzogMTc1NSwKLSAgICAgICAgJ3Byb3BlcnRpZXMnOiBbCi0g
ICAgICAgICAgICBbJ2J1aWxkX3JlcXVlc3RfaWQnLCBidWlsZFJlcXVlc3RJZCB8fCAnMTg5MzUn
LCAnRm9yY2UgQnVpbGQgRm9ybSddLAotICAgICAgICAgICAgWydidWlsZGVybmFtZScsICdBQlRl
c3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMnLCAnQnVpbGRlciddLAotICAgICAgICAgICAgWydi
dWlsZG51bWJlcicsIDE3NTUsICdCdWlsZCddLAotICAgICAgICAgICAgWydkZXNpcmVkX2ltYWdl
JywgJzEzQTQ1MicsICdGb3JjZSBCdWlsZCBGb3JtJ10sCi0gICAgICAgICAgICBbJ293bmVyJywg
Jzx1bmtub3duPicsICdGb3JjZSBCdWlsZCBGb3JtJ10sCi0gICAgICAgICAgICBbJ3JlYXNvbics
ICdmb3JjZSBidWlsZCcsICdGb3JjZSBCdWlsZCBGb3JtJ10sCi0gICAgICAgICAgICBbJ3NjaGVk
dWxlcicsICdBQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMtRm9yY2VTY2hlZHVsZXInLCAn
U2NoZWR1bGVyJ10sCi0gICAgICAgICAgICBbJ3NsYXZlbmFtZScsIHNsYXZlTmFtZSB8fCAnQUJU
ZXN0LWlQYWQtMCcsICdCdWlsZFNsYXZlJ10sCi0gICAgICAgIF0sCi0gICAgICAgICdyZWFzb24n
OiAnQSBidWlsZCB3YXMgZm9yY2VkIGJ5IFwnPHVua25vd24+XCc6IGZvcmNlIGJ1aWxkJywKLSAg
ICAgICAgJ3Jlc3VsdHMnOiAyLAotICAgICAgICAnc2xhdmUnOiAnQUJUZXN0LWlQYWQtMCcsCi0g
ICAgICAgICdzb3VyY2VTdGFtcHMnOiBbeydicmFuY2gnOiAnJywgJ2NoYW5nZXMnOiBbXSwgJ2Nv
ZGViYXNlJzogJ2NvbXBpbGVyLXJ0JywgJ2hhc1BhdGNoJzogZmFsc2UsICdwcm9qZWN0JzogJycs
ICdyZXBvc2l0b3J5JzogJycsICdyZXZpc2lvbic6ICcnfV0sCi0gICAgICAgICdzdGVwcyc6IFsK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAnZXRhJzogbnVsbCwKLSAgICAgICAgICAg
ICAgICAnZXhwZWN0YXRpb25zJzogW1snb3V0cHV0JywyMzA5LDIzMDkuMF1dLAotICAgICAgICAg
ICAgICAgICdoaWRkZW4nOiBmYWxzZSwKLSAgICAgICAgICAgICAgICAnaXNGaW5pc2hlZCc6IHRy
dWUsCi0gICAgICAgICAgICAgICAgJ2lzU3RhcnRlZCc6IHRydWUsCi0gICAgICAgICAgICAgICAg
J2xvZ3MnOiBbWydzdGRpbycsICdodHRwczovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvQUJU
ZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzL2J1aWxkcy82MTQvc3RlcHMvc2hlbGwvbG9ncy9z
dGRpbyddXSwKLSAgICAgICAgICAgICAgICAnbmFtZSc6ICdGaW5pc2hlZCBzdGVwJywKLSAgICAg
ICAgICAgICAgICAncmVzdWx0cyc6IFswLCBbXV0sCi0gICAgICAgICAgICAgICAgJ3N0YXRpc3Rp
Y3MnOiB7fSwKLSAgICAgICAgICAgICAgICAnc3RlcF9udW1iZXInOiAwLAotICAgICAgICAgICAg
ICAgICd0ZXh0JzogWycnXSwKLSAgICAgICAgICAgICAgICAndGltZXMnOiBbMTQ1ODcxODY1NS40
MTk4NjUsIDE0NTg3MTg2NTUuNDUzNjMzXSwKLSAgICAgICAgICAgICAgICAndXJscyc6IHt9Ci0g
ICAgICAgICAgICB9LAotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICdldGEnOiBudWxs
LAotICAgICAgICAgICAgICAgICdleHBlY3RhdGlvbnMnOiBbWydvdXRwdXQnLCA4NDUsIDEzMTUu
MF1dLAotICAgICAgICAgICAgICAgICdoaWRkZW4nOiBmYWxzZSwKLSAgICAgICAgICAgICAgICAn
aXNGaW5pc2hlZCc6IHRydWUsCi0gICAgICAgICAgICAgICAgJ2lzU3RhcnRlZCc6IHRydWUsCi0g
ICAgICAgICAgICAgICAgJ2xvZ3MnOiBbWydzdGRpbycsICdodHRwczovL2J1aWxkLndlYmtpdC5v
cmcvYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzL2J1aWxkcy82MTQvc3Rl
cHMvU29tZSUyMHN0ZXAvbG9ncy9zdGRpbyddXSwKLSAgICAgICAgICAgICAgICAnbmFtZSc6ICdT
b21lIHN0ZXAnLAotICAgICAgICAgICAgICAgICdyZXN1bHRzJzogW251bGwsW11dLAotICAgICAg
ICAgICAgICAgICdzdGF0aXN0aWNzJzoge30sCi0gICAgICAgICAgICAgICAgJ3N0ZXBfbnVtYmVy
JzogMSwKLSAgICAgICAgICAgICAgICAndGV4dCc6IFsnJ10sCi0gICAgICAgICAgICAgICAgJ3Rp
bWVzJzogWzE0NTg3MTg2NTcuNTgxNjI4LCBudWxsXSwKLSAgICAgICAgICAgICAgICAndXJscyc6
IHt9Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICdldGEn
OiBudWxsLAotICAgICAgICAgICAgICAgICdleHBlY3RhdGlvbnMnOiBbWydvdXRwdXQnLCBudWxs
LCBudWxsXV0sCi0gICAgICAgICAgICAgICAgJ2hpZGRlbic6IGZhbHNlLAotICAgICAgICAgICAg
ICAgICdpc0ZpbmlzaGVkJzogdHJ1ZSwKLSAgICAgICAgICAgICAgICAnaXNTdGFydGVkJzogdHJ1
ZSwKLSAgICAgICAgICAgICAgICAnbG9ncyc6IFtdLAotICAgICAgICAgICAgICAgICduYW1lJzog
J1NvbWUgb3RoZXIgc3RlcCcsCi0gICAgICAgICAgICAgICAgJ3Jlc3VsdHMnOiBbbnVsbCwgW11d
LAotICAgICAgICAgICAgICAgICdzdGF0aXN0aWNzJzoge30sCi0gICAgICAgICAgICAgICAgJ3N0
ZXBfbnVtYmVyJzogMiwKLSAgICAgICAgICAgICAgICAndGV4dCc6IFtdLAotICAgICAgICAgICAg
ICAgICd0aW1lcyc6IFtudWxsLCBudWxsXSwKLSAgICAgICAgICAgICAgICAndXJscyc6IHt9Ci0g
ICAgICAgICAgICB9LAotICAgICAgICBdLAotICAgICAgICAndGV4dCc6IFtdLAotICAgICAgICAn
dGltZXMnOiBbMTQ1ODkzNzQ3OC4yNTgzNywgMTQ1ODk0NjE0Ny4xNzM3ODVdCisgICAgICAgICJi
dWlsZGVyaWQiOiBidWlsZGVySWQgfHwgMTAyLAorICAgICAgICAibnVtYmVyIjogYnVpbGROdW1i
ZXIgfHwgNjE0LAorICAgICAgICAiYnVpbGRyZXF1ZXN0aWQiOiBidWlsZFJlcXVlc3RJZCB8fCAx
NjczMywKKyAgICAgICAgImNvbXBsZXRlIjogaXNDb21wbGV0ZSwKKyAgICAgICAgImNvbXBsZXRl
X2F0IjogbnVsbCwKKyAgICAgICAgImJ1aWxkaWQiOiA0MTg3NDQsCisgICAgICAgICJtYXN0ZXJp
ZCI6IDEsCisgICAgICAgICJyZXN1bHRzIjogbnVsbCwKKyAgICAgICAgInN0YXJ0ZWRfYXQiOiAx
NTEzNzI1MTA5LAorICAgICAgICAic3RhdGVfc3RyaW5nIjogImJ1aWxkaW5nIiwKKyAgICAgICAg
IndvcmtlcmlkIjogNDEsCisgICAgICAgICJwcm9wZXJ0aWVzIjogeworICAgICAgICAgICAgInBs
YXRmb3JtIjogWyJtYWMiLCAiVW5rbm93biJdLAorICAgICAgICAgICAgInNjaGVkdWxlciI6IFsi
QUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzLUZvcmNlU2NoZWR1bGVyIiwgIlNjaGVkdWxl
ciJdLAorICAgICAgICAgICAgInNsYXZlbmFtZSI6IFt3b3JrZXJOYW1lIHx8ICJBQlRlc3QtaVBh
ZC0wIiwgIldvcmtlciAoZGVwcmVjYXRlZCkiXSwKKyAgICAgICAgICAgICJ3b3JrZXJuYW1lIjog
W3dvcmtlck5hbWUgfHwgIkFCVGVzdC1pUGFkLTAiLCAiV29ya2VyIgorICAgICAgICAgICAgXQor
ICAgICAgICB9CisgICAgfTsKK30KKworZnVuY3Rpb24gc2FtcGxlSW5Qcm9ncmVzc0J1aWxkRGF0
YSh3b3JrZXJOYW1lKQoreworICAgIHJldHVybiBzYW1wbGVCdWlsZERhdGEod29ya2VyTmFtZSwg
ZmFsc2UpOworfQorCitmdW5jdGlvbiBzYW1wbGVJblByb2dyZXNzQnVpbGQod29ya2VyTmFtZSkK
K3sKKyAgICByZXR1cm4geworICAgICAgICAiYnVpbGRzIjogW3NhbXBsZUluUHJvZ3Jlc3NCdWls
ZERhdGEod29ya2VyTmFtZSldCisgICAgfTsKK30KKworZnVuY3Rpb24gc2FtcGxlRmluaXNoZWRC
dWlsZERhdGEoYnVpbGRSZXF1ZXN0SWQsIHdvcmtlck5hbWUsIGJ1aWxkZXJOYW1lKQoreworICAg
IHJldHVybiBzYW1wbGVCdWlsZERhdGEod29ya2VyTmFtZSwgdHJ1ZSwgYnVpbGRSZXF1ZXN0SWQg
fHwgMTg5MzUsIDE3NTUsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpW2J1aWxkZXJOYW1lXSk7Cit9CisK
K2Z1bmN0aW9uIHNhbXBsZUZpbmlzaGVkQnVpbGQoYnVpbGRSZXF1ZXN0SWQsIHdvcmtlck5hbWUs
IGJ1aWxkZXJOYW1lKQoreworICAgIHJldHVybiB7CisgICAgICAgICJidWlsZHMiOiBbc2FtcGxl
RmluaXNoZWRCdWlsZERhdGEoYnVpbGRSZXF1ZXN0SWQsIHdvcmtlck5hbWUsIGJ1aWxkZXJOYW1l
KV0KICAgICB9OwogfQogCkBAIC0xMjAwLDggKzEwMzcsOCBAQCBkZXNjcmliZSgnQnVpbGRib3RT
eW5jZXInLCAoKSA9PiB7CiAgICAgICAgIGl0KCdzaG91bGQgZmV0Y2ggcGVuZGluZyBidWlsZHMg
ZnJvbSB0aGUgcmlnaHQgVVJMJywgKCkgPT4gewogICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1
aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygp
LCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc3lu
Y2VyLmJ1aWxkZXJOYW1lKCksICdBQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMnKTsKLSAg
ICAgICAgICAgIGxldCBleHBlY3RlZFVSTCA9ICcvanNvbi9idWlsZGVycy9BQlRlc3QtaVBhZC1S
dW5CZW5jaG1hcmstVGVzdHMvcGVuZGluZ0J1aWxkcyc7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc3luY2VyLnBhdGhGb3JQZW5kaW5nQnVpbGRzSlNPTkRlcHJlY2F0ZWQoKSwgZXhwZWN0ZWRV
UkwpOworICAgICAgICAgICAgbGV0IGV4cGVjdGVkVVJMID0gJy9hcGkvdjIvYnVpbGRlcnMvMTAy
L2J1aWxkcmVxdWVzdHM/Y29tcGxldGU9ZmFsc2UmY2xhaW1lZD1mYWxzZSc7CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc3luY2VyLnBhdGhGb3JQZW5kaW5nQnVpbGRzKCksIGV4cGVjdGVkVVJM
KTsKICAgICAgICAgICAgIHN5bmNlci5wdWxsQnVpbGRib3QoKTsKICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzBdLnVybCwgZXhwZWN0ZWRVUkwpOwpAQCAtMTIxMywxMSArMTA1MCwxMSBAQCBkZXNj
cmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAKICAgICAgICAgICAgIHN5bmNlci5wdWxs
QnVpbGRib3QoMSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWls
ZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvcGVuZGluZ0J1aWxkcycpOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9hcGkvdjIvYnVpbGRlcnMv
MTAyL2J1aWxkcmVxdWVzdHM/Y29tcGxldGU9ZmFsc2UmY2xhaW1lZD1mYWxzZScpOwogICAgICAg
ICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5j
aG1hcmstVGVzdHMvYnVpbGRzLz9zZWxlY3Q9LTEnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbMV0udXJsLCAnL2FwaS92Mi9idWlsZGVycy8xMDIvYnVpbGRzP2xpbWl0
PTEmb3JkZXI9LW51bWJlciZwcm9wZXJ0eT0qJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
fSk7CiAKQEAgLTEyMjYsMjkgKzEwNjMsMjkgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywg
KCkgPT4gewogCiAgICAgICAgICAgICBzeW5jZXIucHVsbEJ1aWxkYm90KDMpOwogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2pzb24vYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVu
Y2htYXJrLVRlc3RzL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1swXS51cmwsICcvYXBpL3YyL2J1aWxkZXJzLzEwMi9idWlsZHJlcXVlc3RzP2NvbXBs
ZXRlPWZhbHNlJmNsYWltZWQ9ZmFsc2UnKTsKICAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29s
dmUoW10pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0udXJsLCAn
L2pzb24vYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMiZzZWxlY3Q9LTMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbMV0udXJsLCAnL2FwaS92Mi9idWlsZGVycy8xMDIvYnVpbGRzP2xpbWl0PTMm
b3JkZXI9LW51bWJlciZwcm9wZXJ0eT0qJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7
CiAKICAgICAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgQnVpbGRib3RCdWlsZEVudHJ5IGZvciBwZW5k
aW5nIGJ1aWxkcycsICgpID0+IHsKICAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRl
ck5hbWVUb0lETWFwKCkpWzFdOwogICAgICAgICAgICAgbGV0IHByb21pc2UgPSBzeW5jZXIucHVs
bEJ1aWxkYm90KCk7Ci0gICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKFtzYW1wbGVQZW5k
aW5nQnVpbGQoKV0pOworICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZShzYW1wbGVQZW5k
aW5nQnVpbGQoKSk7CiAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS50aGVuKChlbnRyaWVzKSA9
PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJpZXMubGVuZ3RoLCAxKTsKICAg
ICAgICAgICAgICAgICBsZXQgZW50cnkgPSBlbnRyaWVzWzBdOwotICAgICAgICAgICAgICAgIGFz
c2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeURlcHJlY2F0ZWQpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRF
bnRyeSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5idWlsZE51bWJlcigpKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5LnNsYXZlTmFtZSgpKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGRSZXF1ZXN0SWQoKSwgMTY3MzMpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeS5pc1BlbmRpbmcoKSk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc0luUHJvZ3Jlc3MoKSk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0Lm9rKCFlbnRyeS5oYXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9BQlRlc3Qt
aVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE2
NzMzJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTEyNjAsMTkgKzEwOTcs
MTkgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgcmVx
dWVzdHNbMF0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29s
dmUoe1stMV06IHNhbXBsZUluUHJvZ3Jlc3NCdWlsZCgpfSk7CisgICAgICAgICAgICAgICAgcmVx
dWVzdHNbMV0ucmVzb2x2ZShzYW1wbGVJblByb2dyZXNzQnVpbGQoKSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHByb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKChlbnRyaWVzKSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJpZXMubGVuZ3RoLCAxKTsKICAgICAgICAg
ICAgICAgICBsZXQgZW50cnkgPSBlbnRyaWVzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5v
ayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeURlcHJlY2F0ZWQpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeSk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkTnVtYmVyKCksIDYxNCk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnNsYXZlTmFtZSgpLCAnQUJUZXN0
LWlQYWQtMCcpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZFJlcXVl
c3RJZCgpLCAxNjczMyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc1BlbmRp
bmcoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5LmlzSW5Qcm9ncmVzcygpKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5Lmhhc0ZpbmlzaGVkKCkpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQu
b3JnL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy9idWlsZHMvNjE0Jyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxk
LndlYmtpdC5vcmcvIy9idWlsZGVycy8xMDIvYnVpbGRzLzYxNCcpOwogICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0pOwogCkBAIC0xMjg0LDE5ICsxMTIxLDE5IEBAIGRlc2NyaWJlKCdCdWlsZGJv
dFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoW10pOwog
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsK
LSAgICAgICAgICAgICAgICByZXF1ZXN0c1sxXS5yZXNvbHZlKHtbLTFdOiBzYW1wbGVGaW5pc2hl
ZEJ1aWxkKCl9KTsKKyAgICAgICAgICAgICAgICByZXF1ZXN0c1sxXS5yZXNvbHZlKHNhbXBsZUZp
bmlzaGVkQnVpbGQoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHByb21pc2U7CiAgICAgICAg
ICAgICB9KS50aGVuKChlbnRyaWVzKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChlbnRyaWVzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgbGV0IGVudHJ5ID0gZW50
cmllc1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWls
ZGJvdEJ1aWxkRW50cnlEZXByZWNhdGVkKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50
cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnkpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChlbnRyeS5idWlsZE51bWJlcigpLCAxNzU1KTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZW50cnkuc2xhdmVOYW1lKCksICdBQlRlc3QtaVBhZC0wJyk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkUmVxdWVzdElkKCksIDE4OTM1KTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5LmlzUGVuZGluZygpKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQub2soIWVudHJ5LmlzSW5Qcm9ncmVzcygpKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQub2soZW50cnkuaGFzRmluaXNoZWQoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvQUJUZXN0LWlQ
YWQtUnVuQmVuY2htYXJrLVRlc3RzL2J1aWxkcy8xNzU1Jyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVy
cy8xMDIvYnVpbGRzLzE3NTUnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAt
MTMwNiw0NCArMTE0Myw0NCBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAg
ICAgICAgICAgICBsZXQgcHJvbWlzZSA9IHN5bmNlci5wdWxsQnVpbGRib3QoNSk7CiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKIAotICAgICAgICAgICAgcmVx
dWVzdHNbMF0ucmVzb2x2ZShbc2FtcGxlUGVuZGluZ0J1aWxkKDEyMyldKTsKKyAgICAgICAgICAg
IHJlcXVlc3RzWzBdLnJlc29sdmUoc2FtcGxlUGVuZGluZ0J1aWxkKDEyMykpOwogCiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAg
ICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoe1stMV06IHNhbXBsZUZpbmlzaGVkQnVpbGQo
KSwgWy0yXTogeydlcnJvcic6ICdOb3QgYXZhaWxhYmxlJ30sIFstNF06IHNhbXBsZUluUHJvZ3Jl
c3NCdWlsZCgpfSk7CisgICAgICAgICAgICAgICAgcmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxk
cyc6IFtzYW1wbGVGaW5pc2hlZEJ1aWxkRGF0YSgpLCBzYW1wbGVJblByb2dyZXNzQnVpbGREYXRh
KCldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHByb21pc2U7CiAgICAgICAgICAgICB9KS50
aGVuKChlbnRyaWVzKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChlbnRy
aWVzLmxlbmd0aCwgMyk7CiAKICAgICAgICAgICAgICAgICBsZXQgZW50cnkgPSBlbnRyaWVzWzBd
OwotICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVp
bGRFbnRyeURlcHJlY2F0ZWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0
YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGVudHJ5LmJ1aWxkTnVtYmVyKCksIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChlbnRyeS5zbGF2ZU5hbWUoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGVudHJ5LmJ1aWxkUmVxdWVzdElkKCksIDEyMyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9r
KGVudHJ5LmlzUGVuZGluZygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5Lmlz
SW5Qcm9ncmVzcygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5Lmhhc0Zpbmlz
aGVkKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6
Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0
cy8nKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8v
YnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTIzJyk7CiAKICAgICAgICAgICAgICAg
ICBlbnRyeSA9IGVudHJpZXNbMV07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGlu
c3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5RGVwcmVjYXRlZCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5KTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGROdW1iZXIoKSwgNjE0KTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuc2xhdmVOYW1lKCksICdBQlRlc3QtaVBhZC0wJyk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkUmVxdWVzdElkKCksIDE2
NzMzKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5LmlzUGVuZGluZygpKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkuaXNJblByb2dyZXNzKCkpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5vayghZW50cnkuaGFzRmluaXNoZWQoKSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRl
cnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzL2J1aWxkcy82MTQnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy8jL2J1aWxkZXJzLzEwMi9idWlsZHMvNjE0Jyk7CiAKICAgICAgICAgICAgICAgICBlbnRyeSA9
IGVudHJpZXNbMl07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2Yg
QnVpbGRib3RCdWlsZEVudHJ5RGVwcmVjYXRlZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0Lm9r
KGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5KTsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZW50cnkuYnVpbGROdW1iZXIoKSwgMTc1NSk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGVudHJ5LnNsYXZlTmFtZSgpLCAnQUJUZXN0LWlQYWQtMCcpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZFJlcXVlc3RJZCgpLCAxODkzNSk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc1BlbmRpbmcoKSk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc0luUHJvZ3Jlc3MoKSk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0Lm9rKGVudHJ5Lmhhc0ZpbmlzaGVkKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL0FCVGVz
dC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy9idWlsZHMvMTc1NScpOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVp
bGRlcnMvMTAyL2J1aWxkcy8xNzU1Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAK
QEAgLTEzNTMsNTQgKzExOTAsNTQgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4g
ewogICAgICAgICAgICAgbGV0IHByb21pc2UgPSBzeW5jZXIucHVsbEJ1aWxkYm90KDUpOwogICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CiAKLSAgICAgICAgICAg
IHJlcXVlc3RzWzBdLnJlc29sdmUoW3NhbXBsZVBlbmRpbmdCdWlsZCg0NTYsIDIpLCBzYW1wbGVQ
ZW5kaW5nQnVpbGQoMTIzLCAxKV0pOworICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZSh7
ImJ1aWxkcmVxdWVzdHMiOiBbc2FtcGxlUGVuZGluZ0J1aWxkRGF0YSg0NTYsIDIpLCBzYW1wbGVQ
ZW5kaW5nQnVpbGREYXRhKDEyMywgMSldfSk7CiAKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgcmVxdWVzdHNb
MV0ucmVzb2x2ZSh7Wy0zXTogc2FtcGxlRmluaXNoZWRCdWlsZCgpLCBbLTFdOiB7J2Vycm9yJzog
J05vdCBhdmFpbGFibGUnfSwgWy0yXTogc2FtcGxlSW5Qcm9ncmVzc0J1aWxkKCl9KTsKKyAgICAg
ICAgICAgICAgICByZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzogW3NhbXBsZUZpbmlzaGVk
QnVpbGREYXRhKCksIHNhbXBsZUluUHJvZ3Jlc3NCdWlsZERhdGEoKV19KTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gcHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKGVudHJpZXMpID0+IHsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGVudHJpZXMubGVuZ3RoLCA0KTsKIAog
ICAgICAgICAgICAgICAgIGxldCBlbnRyeSA9IGVudHJpZXNbMF07Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5RGVwcmVjYXRlZCk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWls
ZEVudHJ5KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGROdW1iZXIo
KSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnNsYXZlTmFtZSgp
LCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGRSZXF1ZXN0
SWQoKSwgMTIzKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkuaXNQZW5kaW5nKCkp
OwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaXNJblByb2dyZXNzKCkpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaGFzRmluaXNoZWQoKSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcv
YnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzLycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMv
YnVpbGRyZXF1ZXN0cy8xMjMnKTsKIAogICAgICAgICAgICAgICAgIGVudHJ5ID0gZW50cmllc1sx
XTsKLSAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1
aWxkRW50cnlEZXByZWNhdGVkKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5z
dGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChlbnRyeS5idWlsZE51bWJlcigpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZW50cnkuc2xhdmVOYW1lKCksIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChlbnRyeS5idWlsZFJlcXVlc3RJZCgpLCA0NTYpOwogICAgICAgICAgICAgICAgIGFzc2VydC5v
ayhlbnRyeS5pc1BlbmRpbmcoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5p
c0luUHJvZ3Jlc3MoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5oYXNGaW5p
c2hlZCgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRw
Oi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVz
dHMvJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDov
L2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzQ1NicpOwogCiAgICAgICAgICAgICAg
ICAgZW50cnkgPSBlbnRyaWVzWzJdOwotICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBp
bnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeURlcHJlY2F0ZWQpOworICAgICAgICAgICAgICAg
IGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeSk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkTnVtYmVyKCksIDYxNCk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnNsYXZlTmFtZSgpLCAnQUJUZXN0LWlQYWQtMCcp
OwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZFJlcXVlc3RJZCgpLCAx
NjczMyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc1BlbmRpbmcoKSk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5LmlzSW5Qcm9ncmVzcygpKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQub2soIWVudHJ5Lmhhc0ZpbmlzaGVkKCkpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxk
ZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy9idWlsZHMvNjE0Jyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvIy9idWlsZGVycy8xMDIvYnVpbGRzLzYxNCcpOwogCiAgICAgICAgICAgICAgICAgZW50cnkg
PSBlbnRyaWVzWzNdOwotICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9m
IEJ1aWxkYm90QnVpbGRFbnRyeURlcHJlY2F0ZWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5v
ayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeSk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkTnVtYmVyKCksIDE3NTUpOwogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChlbnRyeS5zbGF2ZU5hbWUoKSwgJ0FCVGVzdC1pUGFkLTAnKTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGRSZXF1ZXN0SWQoKSwgMTg5MzUpOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaXNQZW5kaW5nKCkpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5vayghZW50cnkuaXNJblByb2dyZXNzKCkpOwogICAgICAgICAgICAgICAg
IGFzc2VydC5vayhlbnRyeS5oYXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9BQlRl
c3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVpbGRzLzE3NTUnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1
aWxkZXJzLzEwMi9idWlsZHMvMTc1NScpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwog
CkBAIC0xNDEwLDI0ICsxMjQ3LDI0IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+
IHsKICAgICAgICAgICAgIGxldCBwcm9taXNlID0gc3luY2VyLnB1bGxCdWlsZGJvdCg1KTsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwogCi0gICAgICAgICAg
ICByZXF1ZXN0c1swXS5yZXNvbHZlKFtzYW1wbGVQZW5kaW5nQnVpbGQoKV0pOworICAgICAgICAg
ICAgcmVxdWVzdHNbMF0ucmVzb2x2ZShzYW1wbGVQZW5kaW5nQnVpbGQoKSk7CiAKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAg
ICAgICAgICAgcmVxdWVzdHNbMV0ucmVzb2x2ZSh7Wy0xXTogc2FtcGxlSW5Qcm9ncmVzc0J1aWxk
KCl9KTsKKyAgICAgICAgICAgICAgICByZXF1ZXN0c1sxXS5yZXNvbHZlKHNhbXBsZUluUHJvZ3Jl
c3NCdWlsZCgpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZTsKICAgICAgICAgICAg
IH0pLnRoZW4oKGVudHJpZXMpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50
cmllcy5sZW5ndGgsIDEpOwogCiAgICAgICAgICAgICAgICAgbGV0IGVudHJ5ID0gZW50cmllc1sw
XTsKLSAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1
aWxkRW50cnlEZXByZWNhdGVkKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5z
dGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChlbnRyeS5idWlsZE51bWJlcigpLCA2MTQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChlbnRyeS5zbGF2ZU5hbWUoKSwgJ0FCVGVzdC1pUGFkLTAnKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZW50cnkuYnVpbGRSZXF1ZXN0SWQoKSwgMTY3MzMpOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5vayghZW50cnkuaXNQZW5kaW5nKCkpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5vayhlbnRyeS5pc0luUHJvZ3Jlc3MoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFl
bnRyeS5oYXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnku
dXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5C
ZW5jaG1hcmstVGVzdHMvYnVpbGRzLzYxNCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMTAyL2J1
aWxkcy82MTQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMTQzNywyNCAr
MTI3NCwyNCBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAg
ICBsZXQgcHJvbWlzZSA9IHN5bmNlci5wdWxsQnVpbGRib3QoNSk7CiAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKIAotICAgICAgICAgICAgcmVxdWVzdHNbMF0u
cmVzb2x2ZShbc2FtcGxlUGVuZGluZ0J1aWxkKCldKTsKKyAgICAgICAgICAgIHJlcXVlc3RzWzBd
LnJlc29sdmUoc2FtcGxlUGVuZGluZ0J1aWxkKCkpOwogCiAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIHJlcXVl
c3RzWzFdLnJlc29sdmUoe1stMV06IHNhbXBsZUZpbmlzaGVkQnVpbGQoMTY3MzMpfSk7CisgICAg
ICAgICAgICAgICAgcmVxdWVzdHNbMV0ucmVzb2x2ZShzYW1wbGVGaW5pc2hlZEJ1aWxkKDE2NzMz
KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHByb21pc2U7CiAgICAgICAgICAgICB9KS50aGVu
KChlbnRyaWVzKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJpZXMubGVu
Z3RoLCAxKTsKIAogICAgICAgICAgICAgICAgIGxldCBlbnRyeSA9IGVudHJpZXNbMF07Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5
RGVwcmVjYXRlZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2Yg
QnVpbGRib3RCdWlsZEVudHJ5KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnku
YnVpbGROdW1iZXIoKSwgMTc1NSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5
LnNsYXZlTmFtZSgpLCAnQUJUZXN0LWlQYWQtMCcpOwogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChlbnRyeS5idWlsZFJlcXVlc3RJZCgpLCAxNjczMyk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0Lm9rKCFlbnRyeS5pc1BlbmRpbmcoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFl
bnRyeS5pc0luUHJvZ3Jlc3MoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5Lmhh
c0ZpbmlzaGVkKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwg
J2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFy
ay1UZXN0cy9idWlsZHMvMTc1NScpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRy
eS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMTAyL2J1aWxkcy8x
NzU1Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0xNDY1LDE4
ICsxMzAyLDIzIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKIAogICAgICAg
ICAgICAgY29uc3Qgd2FpdEZvclJlcXVlc3QgPSBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0
KE1vY2tNb2RlbHMuaXBob25lLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKLSAgICAgICAgICAg
IHN5bmNlci5zY2hlZHVsZVJlcXVlc3REZXByZWNhdGVkKHJlcXVlc3QsIFtyZXF1ZXN0XSwgJ3Nv
bWUtc2xhdmUnKTsKKyAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3QocmVxdWVzdCwg
W3JlcXVlc3RdLCAnc29tZS1zbGF2ZScpOwogICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JSZXF1
ZXN0LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmws
ICcvYnVpbGRlcnMvQUJUZXN0LWlQaG9uZS1SdW5CZW5jaG1hcmstVGVzdHMvZm9yY2UnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2FwaS92Mi9mb3Jj
ZXNjaGVkdWxlcnMvQUJUZXN0LWlQaG9uZS1SdW5CZW5jaG1hcmstVGVzdHMtRm9yY2VTY2hlZHVs
ZXInKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0ubWV0aG9kLCAn
UE9TVCcpOwogICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMF0uZGF0
YSwgewotICAgICAgICAgICAgICAgICAgICAnYnVpbGRfcmVxdWVzdF9pZCc6ICcxNjczMy0nICsg
TW9ja01vZGVscy5pcGhvbmUuaWQoKSwKLSAgICAgICAgICAgICAgICAgICAgJ2Rlc2lyZWRfaW1h
Z2UnOiAnMTNBNDUyJywKLSAgICAgICAgICAgICAgICAgICAgIm9wZW5zb3VyY2UiOiAiMTk3NDYz
IiwKLSAgICAgICAgICAgICAgICAgICAgJ2ZvcmNlc2NoZWR1bGVyJzogJ0FCVGVzdC1pUGhvbmUt
UnVuQmVuY2htYXJrLVRlc3RzLUZvcmNlU2NoZWR1bGVyJywKLSAgICAgICAgICAgICAgICAgICAg
J3NsYXZlbmFtZSc6ICdzb21lLXNsYXZlJywKLSAgICAgICAgICAgICAgICAgICAgJ3Rlc3RfbmFt
ZSc6ICdzcGVlZG9tZXRlcicKKyAgICAgICAgICAgICAgICAgICAgJ2lkJzogJzE2NzMzLScgKyBN
b2NrTW9kZWxzLmlwaG9uZS5pZCgpLAorICAgICAgICAgICAgICAgICAgICAnanNvbnJwYyc6ICcy
LjAnLAorICAgICAgICAgICAgICAgICAgICAnbWV0aG9kJzogJ2ZvcmNlJywKKyAgICAgICAgICAg
ICAgICAgICAgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdidWlsZF9yZXF1
ZXN0X2lkJzogJzE2NzMzLScgKyBNb2NrTW9kZWxzLmlwaG9uZS5pZCgpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgJ2Rlc2lyZWRfaW1hZ2UnOiAnMTNBNDUyJywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICdvcGVuc291cmNlJzogJzE5NzQ2MycsCisgICAgICAgICAgICAgICAgICAgICAgICAn
Zm9yY2VzY2hlZHVsZXInOiAnQUJUZXN0LWlQaG9uZS1SdW5CZW5jaG1hcmstVGVzdHMtRm9yY2VT
Y2hlZHVsZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NsYXZlbmFtZSc6ICdzb21lLXNs
YXZlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICd0ZXN0X25hbWUnOiAnc3BlZWRvbWV0ZXIn
CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAg
IH0pOwogICAgICAgICB9KTsKQEAgLTE1MDQsMjkgKzEzNDYsMzEgQEAgZGVzY3JpYmUoJ0J1aWxk
Ym90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVh
dGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5zb21lUGxhdGZvcm0sIE1vY2tNb2RlbHMu
c29tZVRlc3QpOwogICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3RJbkdyb3Vw
SWZBdmFpbGFibGUocmVxdWVzdCwgW3JlcXVlc3RdKTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbMF0udXJsLCAnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2ZvcmNlJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9hcGkvdjIvZm9yY2Vz
Y2hlZHVsZXJzL3NvbWUtYnVpbGRlci1Gb3JjZVNjaGVkdWxlcicpOwogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1swXS5kYXRhLCB7aWQ6ICcxNjczMy0nICsgTW9j
a01vZGVscy5zb21lUGxhdGZvcm0uaWQoKSwgJ29zJzogJzEzQTQ1MicsICd3ayc6ICcxOTc0NjMn
fSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1swXS5kYXRhLCB7
aWQ6ICcxNjczMy0nICsgTW9ja01vZGVscy5zb21lUGxhdGZvcm0uaWQoKSwgJ2pzb25ycGMnOiAn
Mi4wJywgJ21ldGhvZCc6ICdmb3JjZScsCisgICAgICAgICAgICAgICAgICAgICdwYXJhbXMnOiB7
aWQ6ICcxNjczMy0nICsgTW9ja01vZGVscy5zb21lUGxhdGZvcm0uaWQoKSwgJ2ZvcmNlc2NoZWR1
bGVyJzogJ3NvbWUtYnVpbGRlci1Gb3JjZVNjaGVkdWxlcicsICdvcyc6ICcxM0E0NTInLCAnd2sn
OiAnMTk3NDYzJ319KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIAogICAgICAgICBp
dCgnc2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVpbGRlciBvbmx5IGhhcyBmaW5pc2hlZCBi
dWlsZHMgaWYgc2xhdmVMaXN0IGlzIG5vdCBzcGVjaWZpZWQnLCAoKSA9PiB7CiAgICAgICAgICAg
ICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
c21hbGxDb25maWd1cmF0aW9uKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVswXTsKIAotICAgICAg
ICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge1stMV06
IHNtYWxsRmluaXNoZWRCdWlsZCgpfSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICByZXR1cm4g
cHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCBzbWFsbEZpbmlzaGVkQnVpbGQo
KSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNh
bXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybSwgTW9ja01vZGVscy5zb21l
VGVzdCk7CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdEluR3JvdXBJZkF2
YWlsYWJsZShyZXF1ZXN0LCBbcmVxdWVzdF0pOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0c1swXS51cmwsICcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvZm9yY2UnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVk
dWxlcnMvc29tZS1idWlsZGVyLUZvcmNlU2NoZWR1bGVyJyk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzBdLmRhdGEsIHtpZDogJzE2NzMzLScgKyBNb2NrTW9k
ZWxzLnNvbWVQbGF0Zm9ybS5pZCgpLCAnb3MnOiAnMTNBNDUyJywgJ3drJzogJzE5NzQ2Myd9KTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzBdLmRhdGEsIHtpZDog
JzE2NzMzLScgKyBNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybS5pZCgpLCAnanNvbnJwYyc6ICcyLjAn
LCAnbWV0aG9kJzogJ2ZvcmNlJywKKyAgICAgICAgICAgICAgICAgICAgJ3BhcmFtcyc6IHtpZDog
JzE2NzMzLScgKyBNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybS5pZCgpLCAnZm9yY2VzY2hlZHVsZXIn
OiAnc29tZS1idWlsZGVyLUZvcmNlU2NoZWR1bGVyJywgJ29zJzogJzEzQTQ1MicsICd3ayc6ICcx
OTc0NjMnfX0pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdz
aG91bGQgbm90IHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVpbGRlciBoYXMgYSBwZW5kaW5nIGJ1aWxk
IGlmIHNsYXZlTGlzdCBpcyBub3Qgc3BlY2lmaWVkJywgKCkgPT4gewogICAgICAgICAgICAgbGV0
IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNtYWxs
Q29uZmlndXJhdGlvbigpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMF07CiAKLSAgICAgICAgICAg
IHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW3NtYWxsUGVuZGluZ0J1
aWxkKCldLCB7fSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90
V2l0aEFzc2VydGlvbihzeW5jZXIsIHNtYWxsUGVuZGluZ0J1aWxkKCksIHt9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0SW5Hcm91cElmQXZhaWxh
YmxlKGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybSwgTW9j
a01vZGVscy5zb21lVGVzdCkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDApOwogICAgICAgICAgICAgfSk7CkBAIC0xNTM5LDcgKzEzODMsNyBAQCBkZXNj
cmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVx
dWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwaG9uZSwgTW9ja01v
ZGVscy5zcGVlZG9tZXRlcik7CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVz
dEluR3JvdXBJZkF2YWlsYWJsZShyZXF1ZXN0LCBbcmVxdWVzdF0sIG51bGwpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvYnVpbGRlcnMvQUJUZXN0LWlQaG9uZS1S
dW5CZW5jaG1hcmstVGVzdHMvZm9yY2UnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbMF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvQUJUZXN0LWlQaG9uZS1S
dW5CZW5jaG1hcmstVGVzdHMtRm9yY2VTY2hlZHVsZXInKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbMF0ubWV0aG9kLCAnUE9TVCcpOwogICAgICAgICAgICAgfSk7CiAg
ICAgICAgIH0pOwpAQCAtMTU0NywxMSArMTM5MSwxMSBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5j
ZXInLCAoKSA9PiB7CiAgICAgICAgIGl0KCdzaG91bGQgc2NoZWR1bGUgYSBidWlsZCBpZiBidWls
ZGVyIG9ubHkgaGFzIGZpbmlzaGVkIGJ1aWxkcyBvbiB0aGUgbWF0Y2hpbmcgc2xhdmUnLCAoKSA9
PiB7CiAgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWco
TW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsx
XTsKIAotICAgICAgICAgICAgcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7
Wy0xXTogc2FtcGxlRmluaXNoZWRCdWlsZCgpfSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICBw
dWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10sIHNhbXBsZUZpbmlzaGVkQnVpbGQo
KSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNh
bXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIp
OwogICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3RJbkdyb3VwSWZBdmFpbGFi
bGUocmVxdWVzdCwgW3JlcXVlc3RdLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbMF0udXJsLCAnL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy9m
b3JjZScpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcv
YXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMtRm9y
Y2VTY2hlZHVsZXInKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0u
bWV0aG9kLCAnUE9TVCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtMTU1OSw3
ICsxNDAzLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICBp
dCgnc2hvdWxkIG5vdCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgaGFzIGEgcGVuZGluZyBi
dWlsZCBvbiB0aGUgbWFjaGluZyBzbGF2ZScsICgpID0+IHsKICAgICAgICAgICAgIGxldCBzeW5j
ZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1ND
b25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogCi0gICAgICAgICAgICBwdWxsQnVp
bGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW3NhbXBsZVBlbmRpbmdCdWlsZCgpXSwge30pLnRo
ZW4oKCkgPT4geworICAgICAgICAgICAgcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIs
IHNhbXBsZVBlbmRpbmdCdWlsZCgpLCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAg
Y29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQs
IE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwogICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVs
ZVJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUocmVxdWVzdCwgW3JlcXVlc3RdLCBudWxsKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAwKTsKQEAgLTE1Njks
NyArMTQxMyw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAg
aXQoJ3Nob3VsZCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgb25seSBoYXMgYSBwZW5kaW5n
IGJ1aWxkIG9uIGEgbm9uLW1hY2hpbmcgc2xhdmUnLCAoKSA9PiB7CiAgICAgICAgICAgICBsZXQg
c3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxl
aU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAotICAgICAgICAgICAgcmV0
dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbc2FtcGxlUGVuZGluZ0J1aWxk
KDEsIDEsICdhbm90aGVyLXNsYXZlJyldLCB7fSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICBy
ZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIHNhbXBsZVBlbmRpbmdCdWls
ZCgxLCAxLCAnYW5vdGhlci1zbGF2ZScpLCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlw
YWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwogICAgICAgICAgICAgICAgIHN5bmNlci5zY2hl
ZHVsZVJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUocmVxdWVzdCwgW3JlcXVlc3RdLCBudWxsKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKQEAgLTE1
NzksNyArMTQyMyw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAg
ICAgaXQoJ3Nob3VsZCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgb25seSBoYXMgYW4gaW4t
cHJvZ3Jlc3MgYnVpbGQgb24gdGhlIG1hdGNoaW5nIHNsYXZlJywgKCkgPT4gewogICAgICAgICAg
ICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEks
IHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKLSAgICAgICAg
ICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10sIHtbLTFdOiBz
YW1wbGVJblByb2dyZXNzQnVpbGQoKX0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgcmV0dXJu
IHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwgc2FtcGxlSW5Qcm9ncmVzc0J1
aWxkKCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVh
dGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVkb21l
dGVyKTsKICAgICAgICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0SW5Hcm91cElmQXZh
aWxhYmxlKHJlcXVlc3QsIFtyZXF1ZXN0XSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CkBAIC0xNTg5LDcgKzE0MzMsNyBAQCBkZXNjcmli
ZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIGl0KCdzaG91bGQgc2NoZWR1bGUg
YSBidWlsZCBpZiBidWlsZGVyIGhhcyBhbiBpbi1wcm9ncmVzcyBidWlsZCBvbiBhbm90aGVyIHNs
YXZlJywgKCkgPT4gewogICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRv
SURNYXAoKSlbMV07CiAKLSAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0
aW9uKHN5bmNlciwgW10sIHtbLTFdOiBzYW1wbGVJblByb2dyZXNzQnVpbGQoJ290aGVyLXNsYXZl
Jyl9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNz
ZXJ0aW9uKHN5bmNlciwgW10sIHNhbXBsZUluUHJvZ3Jlc3NCdWlsZCgnb3RoZXItc2xhdmUnKSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBs
ZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwog
ICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUo
cmVxdWVzdCwgW3JlcXVlc3RdLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAxKTsKQEAgLTE2MTEsOSArMTQ1NSw5IEBAIGRlc2NyaWJlKCdCdWls
ZGJvdFN5bmNlcicsICgpID0+IHsKIAogICAgICAgICAgICAgcHVsbEJ1aWxkYm90V2l0aEFzc2Vy
dGlvbihzeW5jZXIsIFtdLCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgbGV0IHJl
cXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9k
ZWxzLnNwZWVkb21ldGVyKTsKLSAgICAgICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0
RGVwcmVjYXRlZChyZXF1ZXN0LCBbcmVxdWVzdF0sICdBQlRlc3QtaVBhZC0wJyk7CisgICAgICAg
ICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdChyZXF1ZXN0LCBbcmVxdWVzdF0sICdBQlRl
c3QtaVBhZC0wJyk7CiAgICAgICAgICAgICAgICAgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxk
UmVxdWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwotICAgICAg
ICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3REZXByZWNhdGVkKHJlcXVlc3QsIFtyZXF1
ZXN0XSwgJ0FCVGVzdC1pUGFkLTEnKTsKKyAgICAgICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVS
ZXF1ZXN0KHJlcXVlc3QsIFtyZXF1ZXN0XSwgJ0FCVGVzdC1pUGFkLTEnKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDIpOwogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVC
dWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKQEAg
LTE2MjksNyArMTQ3Myw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKIAog
ICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwg
e30pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGxldCByZXF1ZXN0ID0gY3JlYXRlU2Ft
cGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7
Ci0gICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdERlcHJlY2F0ZWQocmVxdWVz
dCwgW3JlcXVlc3RdLCAnQUJUZXN0LWlQYWQtMCcpOworICAgICAgICAgICAgICAgIHN5bmNlci5z
Y2hlZHVsZVJlcXVlc3QocmVxdWVzdCwgW3JlcXVlc3RdLCAnQUJUZXN0LWlQYWQtMCcpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwogICAgICAgICAg
ICAgICAgIHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFk
LCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKQogICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVs
ZVJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUocmVxdWVzdCwgW3JlcXVlc3RdLCAnQUJUZXN0LWlQ
YWQtMScpOwpAQCAtMTY0Miw3ICsxNDg2LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywg
KCkgPT4gewogCiAgICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihz
eW5jZXIsIFtdLCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgbGV0IHJlcXVlc3Qg
PSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5zb21lUGxhdGZvcm0sIE1vY2tN
b2RlbHMuc29tZVRlc3QpOwotICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3RE
ZXByZWNhdGVkKHJlcXVlc3QsIFtyZXF1ZXN0XSwgbnVsbCk7CisgICAgICAgICAgICAgICAgc3lu
Y2VyLnNjaGVkdWxlUmVxdWVzdChyZXF1ZXN0LCBbcmVxdWVzdF0sIG51bGwpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAg
IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5zb21lUGxhdGZv
cm0sIE1vY2tNb2RlbHMuc29tZVRlc3QpOwogICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVs
ZVJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUocmVxdWVzdCwgW3JlcXVlc3RdLCBudWxsKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333309</attachid>
            <date>2018-02-07 13:18:51 -0800</date>
            <delta_ts>2018-03-10 08:50:05 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>buildbot_perf_update_v4.patch</filename>
            <type>text/plain</type>
            <size>178346</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjI4MjM5KQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIzIEBACisyMDE4LTAyLTA3ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBVcGRhdGUgUGVyZiBidWlsZGJvdCBzeW5jaW5nIHNjcmlwdHMgZm9yIEJ1
aWxkYm90IDAuOQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc1OTY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB0b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qczoKKyAgICAgICAgKEJ1aWxkYm90
VHJpZ2dlcmFibGUucHJvdG90eXBlLmluaXRTeW5jZXJzKTogU3dpdGNoIGZyb20gRGVwcmVjYXRl
ZCB2ZXJzaW9uIHRvIG5ldyB2ZXJzaW9uIG9mIGdldEJ1aWxkZXJOYW1lVG9JRE1hcC4KKyAgICAg
ICAgKiB0b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanM6CisgICAgICAgIChCdWlsZGJvdFN5bmNl
ci5wcm90b3R5cGUuc2NoZWR1bGVSZXF1ZXN0SW5Hcm91cElmQXZhaWxhYmxlKTogU3dpdGNoIGZy
b20gRGVwcmVjYXRlZCB2ZXJzaW9uIHRvIG5ldyB2ZXJzaW9uIG9mIHNjaGVkdWxlUmVxdWVzdC4K
KyAgICAgICAgKEJ1aWxkYm90U3luY2VyLnByb3RvdHlwZS5wdWxsQnVpbGRib3QpOiBTd2l0Y2gg
ZnJvbSBEZXByZWNhdGVkIHZlcnNpb24gdG8gbmV3IHZlcnNpb24gb2YgcGF0aEZvclBlbmRpbmdC
dWlsZHMsIF9wdWxsUmVjZW50QnVpbGRzIAorICAgICAgICBhbmQgQnVpbGRib3RCdWlsZEVudHJ5
LiBQYXJzZSB0aGUgcGVuZGluZyBidWlsZC1yZXF1ZXN0cyBkYXRhIGluIEJ1aWxkYm90IDAuOSBm
b3JtYXQuCisgICAgICAgICogdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanM6IFVw
ZGF0ZWQgYXMgcGVyIEJ1aWxkYm90IDAuOSBjb2RlLgorICAgICAgICAqIHNlcnZlci10ZXN0cy90
b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzOiBEaXR0by4KKyAgICAgICAg
KiBzZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanM6IERpdHRv
LgorICAgICAgICAqIHNlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzOiBEaXR0by4K
KyAgICAgICAgKE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwpOiBNZXRob2QgdG8gY29uc3RydWN0
IHBlbmRpbmdCdWlsZHNVcmwgaW4gQnVpbGRib3QgMC45IGZvcm1hdC4KKyAgICAgICAgKE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCk6IERpdHRvIGZvciByZWNlbnRCdWlsZHNVcmwuCisKIDIwMTgt
MDItMDIgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciBzdWJtaXR0aW5nIGJ1aWxkIHJlcXVlc3QgdG8gQnVpbGRib3QgMC45IHNl
cnZlciBpbiBCdWlsZGJvdFN5bmNlcgpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90
LXRyaWdnZXJhYmxlLXRlc3RzLmpzCShyZXZpc2lvbiAyMjgyMzkpCisrKyBXZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3Rz
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRy
aWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAgICAgICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7
bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAg
ICAgY29uc3QgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsK
ICAgICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCku
dGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9j
a0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxk
Ym90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RB
bmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWls
ZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7CkBAIC00NiwyOSArNDYsMzAgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUn
LCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1
aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2
ZShbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpKTsKKyAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxk
ZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWls
ZCgpLCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKCl9KTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgyLCAyKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoKSwgTW9j
a0RhdGEuZmluaXNoZWRCdWlsZERhdGEoKV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
bWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnVybCwgJy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9mb3JjZScpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5kYXRhLCB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVx
dWVzdC1pZCc6ICc3MDInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEn
fSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0uZGF0YSwgeydpZCc6IDcwMiwgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScs
ICdwYXJhbXMnOiB7CisgICAgICAgICAgICAgICAgICAgICd3ayc6ICcxOTE2MjInLCAnb3MnOiAn
MTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiA3MDIsICdmb3JjZXNjaGVkdWxlcic6
ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS5yZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5n
QnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNv
bHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoKV0pCisgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKDIpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29s
dmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzRdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/
c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbNF0ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKCksIFstMl06IE1v
Y2tEYXRhLmZpbmlzaGVkQnVpbGQoKX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDIs
IDIpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUo
eydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSgpLCBNb2NrRGF0YS5maW5pc2hl
ZEJ1aWxkRGF0YSgpXX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJl
cXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRo
U2luZ2xlQnVpbGRlcigpLnRyaWdnZXJhYmxlTmFtZSk7CkBAIC05MiwyOCArOTMsMjggQEAgZGVz
Y3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGxl
dCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307
CiAgICAgICAgICAgICAgICAgbGV0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFi
bGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUlu
Zm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5p
bml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tE
YXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywg
TW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWls
ZGVycygpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJzL3Nv
bWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCgpXSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKCkpOwogICAgICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9z
b21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe1stMV06IE1vY2tEYXRhLnJ1
bm5pbmdCdWlsZCgpLCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKCl9KTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRzJyA6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGRE
YXRhKCksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKCldfSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRl
ci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCgpXSkKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoMikpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoKSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVy
LTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQo
KSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCgpfSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoMiwgMikpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
M10ucmVzb2x2ZSh7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSgpLCBNb2Nr
RGF0YS5maW5pc2hlZEJ1aWxkRGF0YSgpXX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5j
UHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKQEAgLTE0Miw1MCArMTQz
LDUxIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAgICAg
ICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDog
J3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBuZXcgQnVp
bGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1v
dGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9
IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25j
ZSgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJl
Y2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAg
ICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1v
Y2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVz
ZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51
cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKFtNb2NrRGF0YS5w
ZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA5OTl9KV0pOworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgyKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDk5OX0pKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVu
ZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
cmVzb2x2ZShbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDMpKTsKKyAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9qc29uL2J1aWxk
ZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKDIsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1
aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51
cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgzLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCA1KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2J1aWxkZXJzL3NvbWUlMjBidWls
ZGVyJTIwMi9mb3JjZScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAx
NUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDAnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9y
Y2Utc29tZS1idWlsZGVyLTInfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Ut
c29tZS1idWlsZGVyLTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeydpZCc6ICc3MDAnLCAnanNvbnJwYyc6ICcyLjAn
LCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ3dr
JzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3
MDAnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTInfX0pOwogICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZSgnT0snKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcvanNvbi9i
dWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQo
e2J1aWxkUmVxdWVzdElkOiA5OTl9KV0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgy
KSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDk5OX0pKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2
XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycp
OwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ucmVzb2x2ZShbTW9j
a0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyIDInLCBidWlsZFJlcXVl
c3RJZDogNzAwfSldKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMykpOworICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ucmVzb2x2ZShNb2NrRGF0YS5wZW5k
aW5nQnVpbGQoe2J1aWxkZXJJZDogMywgYnVpbGRSZXF1ZXN0SWQ6IDcwMH0pKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCA5KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsICcvanNvbi9idWls
ZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsICcvanNvbi9i
dWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0u
dXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMywgMikpOwogICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC0yMDIsNyAr
MjA0LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNV
cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIw
Mi8nKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVz
dHMvNzAwJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1
cygpLCAncGVuZGluZycpOwpAQCAtMjIzLDQzICsyMjUsNDMgQEAgZGVzY3JpYmUoJ0J1aWxkYm90
VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGxldCBzbGF2ZUluZm8gPSB7
bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAg
ICAgbGV0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAg
ICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRo
ZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tE
YXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJv
dEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5k
UmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRi
b3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWls
ZGVyLTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDog
NzAwfSldKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOworICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVp
bGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVp
bGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoW10pOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgzKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3Nl
bGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSk7
CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvYnVp
bGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
MywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2
ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnR0VUJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0u
dXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwotICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZShbTW9ja0RhdGEu
cGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSldKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoMikpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NF0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KSk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbNV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL3Bl
bmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVd
LnJlc29sdmUoW10pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzVdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgzKSk7CisgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKHt9KTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCA4KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsICcvanNvbi9idWls
ZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsICcvanNvbi9i
dWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10u
dXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMywgMikpOwogICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC0yNzYsNyAr
Mjc4LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNV
cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xLycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAw
KS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy83
MDAnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCks
ICdwZW5kaW5nJyk7CkBAIC0yOTcsNTAgKzI5OSw1MSBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmln
Z2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25h
bWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAg
IGNvbnN0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAg
ICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRo
ZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tE
YXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJv
dEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5k
UmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRi
b3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWls
ZGVyLTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ucmVzb2x2ZShbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpKTsK
KyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9wZW5k
aW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5y
ZXNvbHZlKFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMykpOworICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRl
cnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0
YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgWy0yXTogTW9ja0RhdGEuZmlu
aXNoZWRCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoMiwgMikpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0ucmVzb2x2ZSh7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRS
ZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0
SWQ6IDcwMH0pXX0pOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBi
dWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgzLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA1KTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5t
ZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbNF0udXJsLCAnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2ZvcmNlJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRd
LmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1
ZXN0LWlkJzogJzcwMicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0
XS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0
XS5kYXRhLCB7J2lkJzogJzcwMicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2Un
LCAncGFyYW1zJzogeworICAgICAgICAgICAgICAgICAgICAnd2snOiAnMTkxNjIyJywgJ29zJzog
JzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMicsICdmb3JjZXNjaGVkdWxl
cic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDcpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzVdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRl
ci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzVdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcw
Mn0pXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpKTsKKyAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxk
KHtidWlsZFJlcXVlc3RJZDogNzAyfSkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgJy9qc29uL2J1aWxk
ZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKFtdKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoMykpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Nl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOSk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbN10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s3XS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElk
OiA3MDF9KSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcw
MH0pfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbN10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikpOworICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZSh7J2J1aWxkcycgOiBbTW9ja0Rh
dGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5maW5p
c2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXX0pOwogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVy
bCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZz
ZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgzLCAyKSk7CiAgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5yZXNvbHZlKHt9KTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
QEAgLTM1NywxMSArMzYwLDExIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVu
Y3Rpb24KICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdmYWlsZWQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lLWJ1
aWxkZXItMS9idWlsZHMvMTIzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvIy9idWlsZGVycy8yL2J1aWxkcy8xMjMnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1
c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEv
YnVpbGRzLzEyNCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVp
bGRlcnMvMi9idWlsZHMvMTI0Jyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgp
LCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0
YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzcwMicp
OwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAz
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAg
fSk7CkBAIC0zNzgsMzIgKzM4MSwzMiBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScs
IGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgbGV0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1z
bGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBsZXQgdHJpZ2dl
cmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAgICAg
ICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmln
Z2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVz
b2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RC
dWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXBy
ZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJM
KCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5n
QnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNv
bHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV0pOworICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1
ZXN0SWQ6IDcwMH0pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSk7CiAg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvanNv
bi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKFtdKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoMikpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbM10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1szXS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVz
dElkOiA3MDB9KX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDIsIDIpKTsKKyAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoTW9ja0RhdGEucnVu
bmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSkpOwogICAgICAgICAgICAgICAgIHJldHVy
biBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKQEAgLTQxOSw3
ICs0MjIsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNV
cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1
aWxkcy8xMjQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxk
ZXJzLzIvYnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51
bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKQEAgLTQ0Myw1MCArNDQ2LDUxIEBAIGRlc2NyaWJl
KCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAgICAgICAgICAgICBjb25zdCBz
bGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CiAg
ICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJs
ZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5m
bywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmlu
aXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
LCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0Rh
dGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIGFz
c2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBN
b2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxk
ZXJzKCkpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWls
ZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1
aWxkUmVxdWVzdElkOiA3MDJ9KV0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSk7
CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKE1vY2tE
YXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMn0pKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51
cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycpOwot
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZShbXSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJs
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDMpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRl
ci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxk
KHtidWlsZFJlcXVlc3RJZDogNzAxfSksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1
aWxkUmVxdWVzdElkOiA3MDB9KX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDIsIDIp
KTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoeydi
dWlsZHMnIDogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDF9
KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV19KTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvYnVp
bGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
MywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2
ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRd
LnVybCwgJy9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvZm9yY2UnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeyd3
ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAn
NzEwJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0yJ30pOworICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9h
cGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsn
aWQnOiAnNzEwJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMn
OiB7CisgICAgICAgICAgICAgICAgICAgICd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVB
Mjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzEwJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNl
LXNvbWUtYnVpbGRlci0yJ319KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzRdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNyk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbNV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGlu
Z0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ucmVz
b2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAyfSldKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmws
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOworICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVx
dWVzdElkOiA3MDJ9KSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzZdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcjog
J3NvbWUgYnVpbGRlciAyJywgYnVpbGRSZXF1ZXN0SWQ6IDcxMH0pXSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKDMpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzZdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IDMsIGJ1aWxk
UmVxdWVzdElkOiA3MTB9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOSk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbN10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s3XS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVz
dElkOiA3MDF9KSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6
IDcwMH0pfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbN10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikpOworICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZSh7J2J1aWxkcycgOiBbTW9j
a0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5m
aW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXX0pOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhd
LnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0t
MSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgzLCAyKSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5yZXNvbHZlKHt9KTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKQEAgLTUxMSwxNSArNTE1LDE1IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywg
ZnVuY3Rpb24KICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdjb21w
bGV0ZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9z
b21lLWJ1aWxkZXItMS9idWlsZHMvMTIzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvIy9idWlsZGVycy8yL2J1aWxkcy8xMjMnKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEp
LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZS1idWls
ZGVyLTEvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
LyMvYnVpbGRlcnMvMi9idWlsZHMvMTI0Jyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1
c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEv
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDIpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3Rz
LzcwMicpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0dXMo
KSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1
aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi8nKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQu
d2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvNzEwJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAncGVuZGluZycpOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5z
dGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOwpAQCAtNTQzLDU1ICs1NDcs
NTcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAg
ICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAn
cGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWls
ZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90
ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0g
dHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNl
KCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVj
YXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9j
a0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNl
dCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVy
bCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoW10pOworICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWls
ZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZShbXSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKDMpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJ
ZDogNzEwfSl9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSk7CisgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKE1vY2tEYXRhLnJ1bm5p
bmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pKTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcvanNv
bi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0y
Jyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHtb
LTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXIgMicsIGJ1
aWxkUmVxdWVzdElkOiA3MDB9KX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDMsIDIp
KTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoTW9j
a0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IDMsIGJ1aWxkUmVxdWVzdElkOiA3MDB9KSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwg
Jy9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvZm9yY2UnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeyd3ayc6ICcx
OTI3MzYnLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAxJywg
J2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0yJ30pOworICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9hcGkvdjIv
Zm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsnaWQnOiAn
NzAxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOiB7Cisg
ICAgICAgICAgICAgICAgICAgICd3ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEgMTVBMjg0Jywg
J2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUt
YnVpbGRlci0yJ319KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRd
LnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgJy9idWlsZGVycy9zb21lLWJ1aWxk
ZXItMS9mb3JjZScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s1XS5kYXRhLCB7J3drJzogJzE5MjczNicsICdvcyc6ICcxMC4xMSAxNUEy
ODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MTEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Ut
c29tZS1idWlsZGVyLTEnfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNV0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29t
ZS1idWlsZGVyLTEnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNV0uZGF0YSwgeydpZCc6ICc3MTEnLCAnanNvbnJwYyc6ICcyLjAnLCAn
bWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ3drJzog
JzE5MjczNicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MTEn
LCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCA4KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsICcvanNvbi9idWls
ZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1
aWxkUmVxdWVzdElkOiA3MTF9KV0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSk7
CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKE1vY2tE
YXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMX0pKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51
cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycpOwot
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZShbTW9ja0Rh
dGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyIDInLGJ1aWxkUmVxdWVzdElk
OiA3MDF9KV0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzddLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgzKSk7CisgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdC
dWlsZCh7YnVpbGRlcklkOiAzLCBidWlsZFJlcXVlc3RJZDogNzAxfSkpOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsICcvanNvbi9idWlsZGVy
cy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnJlc29sdmUoe1stMV06IE1vY2tEYXRh
LnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pfSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoMiwgMikpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbOF0ucmVzb2x2ZShNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MTB9
KSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
OV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbOV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAy
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbOV0ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHti
dWlsZGVyOiAnc29tZSBidWlsZGVyIDInLCBidWlsZFJlcXVlc3RJZDogNzAwfSl9KTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s5XS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgzLCAyKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s5XS5yZXNvbHZlKE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklk
OiAzLCBidWlsZFJlcXVlc3RJZDogNzAwfSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5j
UHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKQEAgLTYxNSwxNyArNjIx
LDE3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgp
LCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL2J1
aWxkcy8xMjQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxk
ZXJzLzMvYnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwg
J2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi8nKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSku
c3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvNzAx
Jyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3
MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAn
cGVuZGluZycpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1cygpLCAncnVubmluZycpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5zdGF0
dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0x
L2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcxMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1
aWxkZXJzLzIvYnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXNVcmwo
KSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xLycpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5z
dGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy83MTEn
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcx
Mikuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdw
ZW5kaW5nJyk7CkBAIC02NDYsMjYgKzY1MiwyNyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2Vy
YWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6
ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIGNv
bnN0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAg
ICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4o
KCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVx
dWVzdEFuZFJlc29sdmUocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxk
ZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0
ZWQoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNb
MF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tC
dWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQo
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVp
bGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZl
KFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3Nv
bWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgyLCAyKSk7CiAgICAgICAgICAgICAgICAgcmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sy
XS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzJdLnVybCwgJy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9mb3JjZScpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMl0uZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAn
b3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAwJywgJ2ZvcmNlc2No
ZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ30pOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0c1syXS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1z
b21lLWJ1aWxkZXItMScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVz
dHNbMl0uZGF0YSwgeydpZCc6ICc3MDAnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2Zv
cmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ3drJzogJzE5MTYyMicsICdv
cyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDAnLCAnZm9yY2VzY2hl
ZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAgICAgICAgIHJldHVy
biBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMCkpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMyk7CkBAIC02NzQsMTMgKzY4MSwxMyBAQCBkZXNjcmliZSgnQnVpbGRi
b3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3Nv
bWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1
ZXN0SWQ6IDcwMH0pXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNd
LnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSk7CisgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVp
bGRSZXF1ZXN0SWQ6IDcwMH0pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNSk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1
aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbNF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwg
MikpOwogICAgICAgICAgICAgICAgIHJlcXVlc3RzWzRdLnJlc29sdmUoe30pOwogICAgICAgICAg
ICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpA
QCAtNjg4LDcgKzY5NSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rp
b24KICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lLWJ1
aWxkZXItMS8nKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxk
cmVxdWVzdHMvNzAwJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIp
LnN0YXR1cygpLCAncGVuZGluZycpOwpAQCAtNzIzLDU0ICs3MzAsNTUgQEAgZGVzY3JpYmUoJ0J1
aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZl
SW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAg
ICAgICAgICAgICB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywg
VGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIp
OwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMo
KS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgICAgIGFz
c2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRi
b3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNE
ZXByZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJl
cXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0
YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydFJl
cXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUt
YnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVx
dWVzdEFuZFJlc29sdmUocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKDIpLCB7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsCi0gICAgICAgICAgICAg
ICAgICAgIHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9
KSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pfSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbMV0sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMiksCisgICAgICAgICAgICAgICAgICAg
IHsnYnVpbGRzJyA6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDog
NzAwfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzEwfSld
fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RB
bmRSZXNvbHZlKHJlcXVlc3RzWzJdLCAnUE9TVCcsICcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEv
Zm9yY2UnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzJdLmRh
dGEsIHsnd2snOiAnMTkyNzM2JywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0
LWlkJzogJzcwMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9KTsK
KyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1syXSwgJ1BP
U1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
ZGF0YSwgeydpZCc6ICc3MDEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywg
J3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ3drJzogJzE5MjczNicsICdvcyc6ICcx
MC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDEnLCAnZm9yY2VzY2hlZHVsZXIn
OiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1szXSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJywKLSAgICAgICAgICAg
ICAgICAgICAgW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pXSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbM10sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpLAorICAgICAgICAgICAgICAgICAgICBN
b2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDUpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVl
c3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMicsCi0gICAgICAgICAgICAgICAgICAgIHtbLTFdOiBNb2NrRGF0YS5y
dW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KSwgWy0yXTogTW9ja0RhdGEuZmluaXNo
ZWRCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoMiwgMiksCisgICAgICAgICAgICAgICAgICAgIHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1
bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDB9KSwgTW9ja0RhdGEuZmluaXNoZWRC
dWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MTB9KV19KTsKICAgICAgICAgICAgICAgICByZXR1
cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
ICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0
cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5k
UmVzb2x2ZShyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxE
ZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s1XSwgJ0dF
VCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90
QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzZdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbNl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKDIpLCB7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDgpOwotICAgICAgICAgICAgICAgIGFz
c2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsCi0gICAgICAgICAg
ICAgICAgICAgIHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3
MDF9KSwgWy0yXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSl9
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s3XSwg
J0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSwKKyAgICAgICAgICAgICAgICAg
ICAgeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6
IDcwMX0pLCBNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAwfSld
fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RB
bmRSZXNvbHZlKHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRl
ci0xL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFu
ZFJlc29sdmUocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIp
LCB7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1
ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s5XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lLWJ1
aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLAotICAgICAgICAgICAgICAgICAg
ICB7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIFst
Ml06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbOV0sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMiksCisgICAgICAgICAgICAgICAgICAgIHsnYnVp
bGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwg
TW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXX0pOwogICAg
ICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICB9KTsKQEAgLTc4NiwzOCArNzk0LDM5IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxl
JywgZnVuY3Rpb24KICAgICAgICAgICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5
bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAgICAgY29uc3Qg
dHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAg
ICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9
PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0
QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVp
bGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRl
cnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZl
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxk
ZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCAxKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9w
ZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5yZXNvbHZlKFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOworICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVp
bGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgMyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9m
b3JjZScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS5kYXRhLCB7J3drJzogJzE5MjczNicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAn
YnVpbGQtcmVxdWVzdC1pZCc6ICc3MDEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1i
dWlsZGVyLTEnfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWls
ZGVyLTEnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MDEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9k
JzogJ2ZvcmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ3drJzogJzE5Mjcz
NicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDEnLCAnZm9y
Y2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWlsZGVycy9z
b21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVx
dWVzdElkOiA3MDF9KV0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSk7CisgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKE1vY2tEYXRhLnBl
bmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCA1KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1
aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgyLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s0XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKQEAgLTgzNiw3ICs4NDUsNyBAQCBkZXNjcmliZSgn
QnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnZmFpbGVkJyk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1
c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksICdodHRw
Oi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS8nKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJs
KCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvNzAxJyk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1
cygpLCAncGVuZGluZycpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycp
OwpAQCAtODU1LDMxICs4NjQsMzEgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBm
dW5jdGlvbgogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1z
bGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmln
Z2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1v
dGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAg
ICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRy
aWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRS
ZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJv
dEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0Rl
cHJlY2F0ZWQoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNV
UkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEp
OwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
Lm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRp
bmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJl
c29sdmUoW10pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgyKSk7CisgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVy
cy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgyLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCAzKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9w
ZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5yZXNvbHZlKFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMikpOworICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCAnL2pzb24vYnVp
bGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMiwgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5
bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC05MTIsMjYgKzkyMSwy
OCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAg
ICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdw
YXNzd29yZCd9OwogICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxk
Ym90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3Rl
QVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0
cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2Uo
KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNh
dGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2Nr
QnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0
KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJs
LCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShbXSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKDIpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDIpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1
aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KDIsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29s
dmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1Qn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS51cmwsICcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvZm9yY2UnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeyd3ayc6
ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzEw
JywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ30pOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9hcGkv
djIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7CisKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydp
ZCc6ICc3MTAnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6
IHsKKyAgICAgICAgICAgICAgICAgICAgJ3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEy
ODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MTAnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Ut
c29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKQEAgLTEw
MDAsNyArMTAxMSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24K
ICAgICAgICAgICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBw
YXNzd29yZDogJ3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAgICAgY29uc3QgYnVpbGRib3RUcmln
Z2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1v
dGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAg
ICAgIGNvbnN0IHRyaWdnZXJhYmxlUHJvbWlzZSA9IGJ1aWxkYm90VHJpZ2dlcmFibGUuaW5pdFN5
bmNlcnMoKS50aGVuKCgpID0+IGJ1aWxkYm90VHJpZ2dlcmFibGUudXBkYXRlVHJpZ2dlcmFibGUo
KSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNh
dGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2Nr
QnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlcmFibGVQ
cm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiByZWZldGNoTWFuaWZlc3QoKSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmFsbCgp
Lmxlbmd0aCwgMSk7CkBAIC0xMDI3LDcgKzEwMzgsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmln
Z2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25h
bWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAg
IGNvbnN0IGJ1aWxkYm90VHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25m
aWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9n
Z2VyKTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZVByb21pc2UgPSBidWlsZGJv
dFRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiBidWlsZGJvdFRyaWdnZXJhYmxl
LnVwZGF0ZVRyaWdnZXJhYmxlKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRS
ZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJv
dEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0Rl
cHJlY2F0ZWQoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNV
UkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIHRyaWdnZXJhYmxlUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gcmVm
ZXRjaE1hbmlmZXN0KCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDEpOwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3Rz
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
dG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qcwkocmV2aXNpb24gMjI4MjM5
KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1
aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNTQsNyArMTU0
LDcgQEAgZnVuY3Rpb24gY3JlYXRlVHJpZ2dlcmFibGUoY29uZmlnID0gY29uZgogICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxl
KGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwge25hbWU6ICdz
eW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9LCBuZXcgTW9ja0xvZ2dlcik7CiAgICAg
ICAgIGNvbnN0IHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgp
ID0+IHRyaWdnZXJhYmxlLnVwZGF0ZVRyaWdnZXJhYmxlKCkpOwotICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEu
YnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVp
bGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VS
TCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXNldCgpOwogICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgfSkudGhlbigo
KSA9PiBNYW5pZmVzdC5mZXRjaCgpKS50aGVuKCgpID0+IHsKQEAgLTI0OSwzMiArMjQ5LDMzIEBA
IGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdGFz
a0lkID0gZmlyc3RUZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAgICAgICAgICBhbm90aGVyVGFz
a0lkID0gc2Vjb25kVGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAgICAgICAgICAgc3luY1Byb21p
c2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3lu
Y09uY2UoKSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sw
XSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tE
YXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RC
dWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21l
JTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVy
OiAnc29tZSB0ZXN0ZXInLCBidWlsZFJlcXVlc3RJZDogNX0pXSk7Ci0gICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9h
bm90aGVyJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoNSksIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiA1LCBidWlsZFJlcXVl
c3RJZDogNX0pKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg2KSwge30pOwogICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsK
LSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywg
Jy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0y
JywgewotICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRl
cjogJ3NvbWUgdGVzdGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KX0pOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
YW5vdGhlciUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCg1LCAyKSwKKyAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5u
aW5nQnVpbGQoe2J1aWxkZXJJZDogNSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCg2LCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUl
MjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL2Fub3RoZXIlMjB0
ZXN0ZXIvcGVuZGluZ0J1aWxkcycsW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDUpLCB7
fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNiksIHt9KTsKICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOCk7Ci0gICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAg
ICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21l
IHRlc3RlcicsIGJ1aWxkUmVxdWVzdElkOiA1fSksCi0gICAgICAgICAgICAgICAgWy0yXTogTW9j
a0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgdGVzdGVyJywgYnVpbGRSZXF1ZXN0
SWQ6IDF9KQorICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0s
ICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNSwgMiksIHsKKyAgICAgICAgICAgICAg
ICAnYnVpbGRzJzogWworICAgICAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGRE
YXRhKHtidWlsZGVySWQ6IDUsIGJ1aWxkUmVxdWVzdElkOiA1fSksCisgICAgICAgICAgICAgICAg
ICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZGVySWQ6IDUsIGJ1aWxkUmVxdWVz
dElkOiAxfSldCiAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL2Fub3RoZXIlMjB0ZXN0
ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoNiwgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9y
VGFzayh0YXNrSWQsIHRydWUpOwpAQCAtMzYzLDQxICszNjQsNDEgQEAgZGVzY3JpYmUoJ3N5bmMt
YnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90
aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHN5bmNQcm9t
aXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5
bmNPbmNlKCkpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2Nr
RGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90
QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1
aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRl
ci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDUpLCB7fSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMSksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCg0KSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVp
bGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1
aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
b3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKDUsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgx
LCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
NV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiksIHt9KTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1Qn
LCAnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2ZvcmNlJywgJ09LJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ3drLXBh
dGNoJzogUmVtb3RlQVBJLnVybCgnL2FwaS91cGxvYWRlZC1maWxlLzEuZGF0JyksCi0gICAgICAg
ICAgICAgICAgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3Jj
ZS1hYi1idWlsZHMnLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snfSk7CisgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNj
aGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMScsICdqc29ucnBjJzogJzIuMCcsICdt
ZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzogeworICAgICAgICAgICAgICAgICd3ayc6ICcxOTE2
MjInLCAnd2stcGF0Y2gnOiBSZW1vdGVBUEkudXJsKCcvYXBpL3VwbG9hZGVkLWZpbGUvMS5kYXQn
KSwgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMScsICdmb3Jj
ZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnfX0pOwogICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7Ci0gICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9z
b21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywKLSAgICAgICAgICAgICAgICBbTW9ja0RhdGEu
cGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9
KV0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdH
RVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNSksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgxKSwKKyAgICAgICAgICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJ
ZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNCks
IHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMTMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVy
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAgICAgICBbLTFdOiBN
b2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVl
c3RJZDogMX0pCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxk
ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKDUsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMSwgMiksCisgICAg
ICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVx
dWVzdElkOiAxfSkKKyAgICAgICAgICAgICk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwg
MiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNr
SWQsIHRydWUpOwpAQCAtNDExLDcgKzQxMiw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90Jywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6
Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRw
Oi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcpOwogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAg
ICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC00NDgs
NyArNDQ5LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvIy9idWlsZGVycy8xL2J1aWxkcy8xMjQnKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29t
bWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAtNDc2LDQyICs0NzcsNDQgQEAg
ZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFi
bGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2Nr
RGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRi
b3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwg
TW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5k
aW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1
aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRz
JywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDUpLCB7fSk7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoMSksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg0KSwge30pOwog
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCA2KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNd
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEm
c2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLmZp
bmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0p
Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMv
P3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1LCAy
KSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0s
ICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMSwgMiksCisgICAgICAgICAgICAgICAg
TW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDogMX0p
CisgICAgICAgICAgICApOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiksIHt9KTsKICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwg
J1BPU1QnLCAnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2ZvcmNlJywgJ09LJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywg
J2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWls
ZHMnLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snfSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMv
Zm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJl
cXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAn
Zm9yY2UnLCAncGFyYW1zJzogeworICAgICAgICAgICAgICAgICd3ayc6ICcxOTE2MjInLCAnYnVp
bGQtcmVxdWVzdC1pZCc6ICcyJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycs
ICdjaGVja2JveCc6ICdidWlsZC13ayd9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKLSAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBi
dWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxk
ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg1KSwge30p
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDEpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoNCksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIv
YnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUl
MjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAgICAg
ICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBi
dWlsZFJlcXVlc3RJZDogMn0pLAotICAgICAgICAgICAgICAgIFstMl06IE1vY2tEYXRhLmZpbmlz
aGVkQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pLAor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDUsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoMSwgMiksIHsKKyAgICAgICAgICAgICAgICAnYnVpbGRzJzogWworICAgICAgICAgICAg
ICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVx
dWVzdElkOiAyfSksCisgICAgICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGRE
YXRhKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAxfSldCiAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0
PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MTJdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDQsIDIpLCB7fSk7CiAgICAgICAg
ICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKQEAgLTUy
NSw3ICs1MjgsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFz
c2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQu
b3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0
Lm9yZy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVx
dWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBj
b21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC01NDIsNyArNTQ1LDcgQEAg
ZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3Nl
cnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3Ro
ZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Vi
a2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAg
ICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7
CkBAIC01NjQsNyArNTY3LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQu
d2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxk
LndlYmtpdC5vcmcvIy9idWlsZGVycy8xL2J1aWxkcy8xMjQnKTsKICAgICAgICAgICAgIGFzc2Vy
dC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAg
Y29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAtNTgxLDcgKzU4
NCw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8v
YnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcpOwogICAgICAg
ICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7
CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCk7CkBAIC02MzYsNDEgKzYzOSw0MiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJv
dCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21t
aXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0
cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2Uo
KSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dF
VCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1v
Y2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVy
c1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVz
dGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9w
ZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRp
bmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNSksIHt9KTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgxKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQp
LCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3Nl
bGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9i
dWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUy
MGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoNSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDEsIDIpLCB7
fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg0LCAyKSwge30pOwogICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYnVp
bGRlcnMvc29tZSUyMGJ1aWxkZXIvZm9yY2UnLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAnd2stcGF0Y2gnOiBS
ZW1vdGVBUEkudXJsKCcvYXBpL3VwbG9hZGVkLWZpbGUvMS5kYXQnKSwKLSAgICAgICAgICAgICAg
ICAnYnVpbGQtcmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1
aWxkcycsICdjaGVja2JveCc6ICdidWlsZC13aycsICdwbGF0Zm9ybS1uYW1lJzogJ3NvbWUgcGxh
dGZvcm0nfSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2
XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09L
Jyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQn
OiAnMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzogewor
ICAgICAgICAgICAgICAgICd3ayc6ICcxOTE2MjInLCAnd2stcGF0Y2gnOiBSZW1vdGVBUEkudXJs
KCcvYXBpL3VwbG9hZGVkLWZpbGUvMS5kYXQnKSwgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMScsICdm
b3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLAorICAgICAgICAgICAgICAgICdjaGVj
a2JveCc6ICdidWlsZC13aycsICdwbGF0Zm9ybS1uYW1lJzogJ3NvbWUgcGxhdGZvcm0nfX0pOwog
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3
XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBb
XSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywKLSAgICAg
ICAgICAgICAgICBbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVy
JywgYnVpbGRSZXF1ZXN0SWQ6IDF9KV0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVy
L3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNSksIHt9KTsK
KyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgxKSwKKyAgICAgICAgICAgICAgICBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoNCksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwotICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAg
ICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21l
IGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pCi0gICAgICAgICAgICB9KTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30p
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDUsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoMSwgMiksCisgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkKHti
dWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAxfSkKKyAgICAgICAgICAgICk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBzeW5jUHJv
bWlzZTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdy
b3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAtNjg0LDcgKzY4OCw3IEBAIGRlc2Ny
aWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3Qu
aXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNM
YWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBi
dWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEvYnVp
bGRzLzEyNCcpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCk7CkBAIC03MjEsNyArNzI1LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3Qn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQo
KSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAn
aHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xL2J1aWxkcy8xMjQnKTsKICAgICAg
ICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAog
ICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpA
QCAtNzQ5LDQyICs3NTMsNDQgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAo
KSB7CiAKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHN5
bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJh
YmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgp
LCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1
aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCAnL2pzb24vYnVpbGRl
cnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIw
YnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDUp
LCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMSksIHt9KTsKKyAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCg0KSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0
ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAgICAgICAgICAg
ICAgIFstMV06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXIn
LCBidWlsZFJlcXVlc3RJZDogMX0pCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290
aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCg1LCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMSwg
MiksCisgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcklkOiAx
LCBidWlsZFJlcXVlc3RJZDogMX0pCisgICAgICAgICAgICApOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoNCwgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2Zv
cmNlJywgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRh
dGEsIHsnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVk
dWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snLCAncGxhdGZv
cm0tbmFtZSc6ICdzb21lIHBsYXRmb3JtJ30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2Zv
cmNlLWFiLWJ1aWxkcycsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1
ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzInLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2Zv
cmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAnd2snOiAnMTkxNjIyJywgJ2J1aWxk
LXJlcXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAn
Y2hlY2tib3gnOiAnYnVpbGQtd2snLCAncGxhdGZvcm0tbmFtZSc6ICdzb21lIHBsYXRmb3JtJ319
KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMTApOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRz
JywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtd
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDUpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoMSksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg0KSwge30pOwogICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9
LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sx
MV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9
LTEmc2VsZWN0PS0yJywgewotICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLnJ1bm5pbmdC
dWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAyfSksCi0gICAg
ICAgICAgICAgICAgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUg
YnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSksCisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
NSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgxLCAyKSwgeworICAgICAgICAg
ICAgICAgICdidWlsZHMnOiBbCisgICAgICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdC
dWlsZERhdGEoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDJ9KSwKKyAgICAgICAgICAg
ICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkZXJJZDogMSwgYnVpbGRS
ZXF1ZXN0SWQ6IDF9KV0KICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIw
YnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoNCwgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZl
dGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAtNzk4LDcgKzgwNCw3IEBAIGRlc2NyaWJlKCdz
eW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVx
dWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0
KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxk
ZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMS9idWlsZHMv
MTI0Jyk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKQEAgLTgxNSw3ICs4MjEsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1
aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7
CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwo
KSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBi
dWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMv
MS9idWlsZHMvMTI0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQg
PSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTgzNyw3ICs4NDMsNyBAQCBkZXNj
cmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChi
dWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUl
MjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEv
YnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJl
cXVlc3QuY29tbWl0U2V0KCk7CkBAIC04NTQsNyArODYwLDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVp
bGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVl
c3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNU
ZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJz
L3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMv
YnVpbGRlcnMvMS9idWlsZHMvMTI0Jyk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3Ro
ZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTkyNSw0NiAr
OTMxLDQ4IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyUm9vdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwob3RoZXJSb290c1swXS5maWxlbmFtZSgpLCAncm9vdDQ2LmRhdCcpOwog
ICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4o
KCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNV
UkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgp
KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VU
JywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RC
dWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoNSksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgxKSwge30pOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRl
cnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7
Ci0gICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjog
J3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSksCi0gICAgICAgICAgICAgICAgWy0y
XTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxk
UmVxdWVzdElkOiAyfSksCisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1LCAyKSwge30pOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoMSwgMiksIHsKKyAgICAgICAgICAgICAgICAnYnVpbGRzJzog
WworICAgICAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRl
cklkOiAxLCBidWlsZFJlcXVlc3RJZDogMX0pLAorICAgICAgICAgICAgICAgICAgICBNb2NrRGF0
YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDogMn0pXQog
ICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiks
IHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s2XSwgJ1BPU1QnLCAnL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvZm9yY2UnLCAnT0snKTsK
LSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeyd0ZXN0Jzog
J3NvbWUtdGVzdCcsICd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICczJywgJ2Zv
cmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLXRlc3RzJywKLSAgICAgICAgICAgICAgICAncm9vdHMn
OiBKU09OLnN0cmluZ2lmeShbe3VybDogZmlyc3RSb290LnVybCgpfV0pfSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9m
b3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItdGVzdHMnLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICczJywgJ2pzb25ycGMnOiAnMi4w
JywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOiB7CisgICAgICAgICAgICAgICAgJ3Rlc3Qn
OiAnc29tZS10ZXN0JywgJ3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzMnLCdm
b3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi10ZXN0cycsICdyb290cyc6IEpTT04uc3RyaW5naWZ5
KFt7dXJsOiBmaXJzdFJvb3QudXJsKCl9XSl9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFsKLSAgICAgICAgICAgICAgICBNb2NrRGF0
YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIHRlc3RlcicsIGJ1aWxkUmVxdWVzdElkOiAz
fSksCisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNSksIFsKKyAgICAgICAgICAgICAgICBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogNSwgYnVpbGRSZXF1ZXN0SWQ6IDN9KSwKICAg
ICAgICAgICAgIF0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxk
cycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzld
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywg
W10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDEpLCB7fSk7CisgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoNCksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0
ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAg
ICAgICBbLTFdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVy
JywgYnVpbGRSZXF1ZXN0SWQ6IDF9KSwKLSAgICAgICAgICAgICAgICBbLTJdOiBNb2NrRGF0YS5m
aW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDJ9
KSwKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1LCAyKSwge30pOworICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKDEsIDIpLCB7CisgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKKyAgICAgICAg
ICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkZXJJZDogMSwgYnVp
bGRSZXF1ZXN0SWQ6IDF9KSwKKyAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRC
dWlsZERhdGEoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDJ9KV0KICAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZz
ZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxMl0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwgMiksIHt9KTsKICAg
ICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC05
OTgsMzggKzEwMDYsNDEgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKIAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2Vy
cygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90
QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVw
cmVjYXRlZCgpKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2Nr
QnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsK
ICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpLCB1cGxvYWRSb290KDEsIDEyMyldKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29uL2J1aWxk
ZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUy
MGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg1
KSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDEpLCB7fSk7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoNCksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVz
dGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAg
ICAgICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXIn
LCBidWlsZFJlcXVlc3RJZDogMn0pLAotICAgICAgICAgICAgICAgIFstMl06IE1vY2tEYXRhLmZp
bmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0p
LAorICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQn
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKDEsIDIpLCB7CisgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKKyAgICAgICAgICAg
ICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRlcklkOiAxLCBidWlsZFJl
cXVlc3RJZDogMn0pLAorICAgICAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxk
RGF0YSh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDogMX0pCisgICAgICAgICAgICAgICAg
XQogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRz
Lz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwg
MiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgOSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s2XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdC
dWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRz
JywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNSksIHt9KTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgxKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCB7fSk7CiAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDEyKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2Vs
ZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5ydW5u
aW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMiwgYnVp
bGROdW1iZXI6IDEwMDJ9KSwKLSAgICAgICAgICAgICAgICBbLTJdOiBNb2NrRGF0YS5maW5pc2hl
ZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KSwKKyAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKDUsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoMSwgMiksIHsKKyAgICAgICAgICAgICAgICAnYnVpbGRzJzogWworICAgICAgICAgICAgICAg
ICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVl
c3RJZDogMiwgYnVpbGROdW1iZXI6IDEwMDJ9KSwKKyAgICAgICAgICAgICAgICAgICAgIE1vY2tE
YXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAxfSld
CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzExXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRz
Lz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDQs
IDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFz
a0lkLCB0cnVlKTsKQEAgLTEwNTAsNyArMTA2MSw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90
JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgp
KTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUy
MGJ1aWxkZXIvYnVpbGRzLzEwMDInKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRl
cnMvMS9idWlsZHMvMTAwMicpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAtMTA4NCwz
NiArMTA5NSwzNiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCku
dGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWls
ZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNh
dGVkKCkpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0s
ICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWls
ZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsK
LSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywg
Jy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCg1KSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDEpLCB7
fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNCksIHt9KTsKICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0gICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsK
LSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywg
Jy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0t
MicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVd
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0t
MSZzZWxlY3Q9LTInLCB7Ci0gICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEuZmluaXNoZWRC
dWlsZCh7YnVpbGRlcjogJ290aGVyIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMSwgYnVpbGRO
dW1iZXI6IDMxMn0pLAotICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1
LCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
NF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMSwgMiksIHt9KTsKKyAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKDQsIDIpLAorICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVk
QnVpbGQoe2J1aWxkZXJJZDogNCwgYnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkTnVtYmVyOiAzMTJ9
KQorICAgICAgICAgICAgKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVy
L3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5k
aW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdC
dWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s2XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNSksIHt9KTsKKyAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgxKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCB7
fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDEyKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1
aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUy
MGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAgICAgICAgICAgICAg
IFstMV06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdvdGhlciBidWlsZGVyJywg
YnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkTnVtYmVyOiAzMTJ9KSwKLSAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgxLCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDQsIDIpLAorICAgICAg
ICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXJJZDogNCwgYnVpbGRSZXF1
ZXN0SWQ6IDEsIGJ1aWxkTnVtYmVyOiAzMTJ9KQorICAgICAgICAgICAgKTsKICAgICAgICAgICAg
IHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAtMTEyNCw3
ICsxMTM1LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICBhc3NlcnQoYnVpbGRSZXFldXN0c1swXS5pc0J1aWxkKCkpOwogICAgICAgICAgICAg
YXNzZXJ0KCFidWlsZFJlcWV1c3RzWzBdLmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcWV1c3RzWzBdLnN0YXR1c0xhYmVsKCksICdGYWlsZWQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcWV1c3RzWzBdLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1
aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8zMTInKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcWV1c3RzWzBdLnN0YXR1c1VybCgpLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy80L2J1aWxkcy8zMTInKTsKICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcWV1c3RzWzBdLmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAg
ICAgICAgICAgIGFzc2VydChidWlsZFJlcWV1c3RzWzFdLmlzQnVpbGQoKSk7CkBAIC0xMTkyLDQw
ICsxMjAzLDQyIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwg
W10pOwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJz
KCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RC
dWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXBy
ZWNhdGVkKCkpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tC
dWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwog
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBd
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtd
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0g
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCg1KSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDEp
LCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNCksIHt9KTsKICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0gICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1LCAyKSwge30p
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQn
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoMSwgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKDQsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9m
b3JjZScsICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5k
YXRhLCB7J3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2VzY2hl
ZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ293bmVkLWNvbW1pdHMnOiBgeyJXZWJLaXQiOlt7
InJldmlzaW9uIjoib3duZWQtanNjLTYxNjEiLCJyZXBvc2l0b3J5IjoiSmF2YVNjcmlwdENvcmUi
LCJvd25lclJldmlzaW9uIjoiMTkxNjIyIn1dfWB9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVy
cy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
cmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6
ICdmb3JjZScsICdwYXJhbXMnOiB7CisgICAgICAgICAgICAgICAgJ3drJzogJzE5MTYyMicsICdi
dWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRz
JywKKyAgICAgICAgICAgICAgICAnb3duZWQtY29tbWl0cyc6IGB7IldlYktpdCI6W3sicmV2aXNp
b24iOiJvd25lZC1qc2MtNjE2MSIsInJlcG9zaXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93bmVy
UmV2aXNpb24iOiIxOTE2MjIifV19YH19KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwotICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1
aWxkZXIvcGVuZGluZ0J1aWxkcycsCi0gICAgICAgICAgICAgICAgW01vY2tEYXRhLnBlbmRpbmdC
dWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSldKTsKLSAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKDUpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMSks
CisgICAgICAgICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IDEsIGJ1
aWxkUmVxdWVzdElkOiAxfSkpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCB7fSk7CiAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDEzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEw
XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0x
JnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzExXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMv
P3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7Ci0gICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEu
cnVubmluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9
KQotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxk
cy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1
LCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDEsIDIpLAorICAgICAgICAgICAg
ICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDog
MX0pCisgICAgICAgICAgICApOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMTJdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDQsIDIpLCB7fSk7
CiAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVl
KTsKQEAgLTEyNDAsNyArMTI1Myw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAg
ICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBj
b25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC0xMjgwLDcgKzEy
OTMsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCgh
YnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1
aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8j
L2J1aWxkZXJzLzEvYnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRT
ZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC0xMzEzLDQyICsxMzI2LDQ0IEBAIGRl
c2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxl
LmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0Rh
dGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90
QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1v
Y2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGlu
Z0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWls
ZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sy
XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycs
IFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAn
R0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCg1KSwge30pOworICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKDEpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNCksIHt9KTsKICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNl
bGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5maW5p
c2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KQot
ICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNSwgMiks
IHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDEsIDIpLAorICAgICAgICAgICAgICAgIE1v
Y2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KQor
ICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDQsIDIpLCB7fSk7CiAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDcpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQ
T1NUJywgJy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9mb3JjZScsICdPSycpOwotICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J3drJzogJzE5MjczNicsICdi
dWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRz
JywgJ293bmVkLWNvbW1pdHMnOiBgeyJXZWJLaXQiOlt7InJldmlzaW9uIjoib3duZWQtanNjLTkx
OTEiLCJyZXBvc2l0b3J5IjoiSmF2YVNjcmlwdENvcmUiLCJvd25lclJldmlzaW9uIjoiMTkyNzM2
In1dfWB9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZd
LCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0sn
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6
ICcyJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOiB7Cisg
ICAgICAgICAgICAgICAgJ3drJzogJzE5MjczNicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAn
Zm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ293bmVkLWNvbW1pdHMnOiBgeyJX
ZWJLaXQiOlt7InJldmlzaW9uIjoib3duZWQtanNjLTkxOTEiLCJyZXBvc2l0b3J5IjoiSmF2YVNj
cmlwdENvcmUiLCJvd25lclJldmlzaW9uIjoiMTkyNzM2In1dfWB9fSk7CiAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKLSAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCg1KSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDEpLCB7fSk7CisgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoNCksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29u
L2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsK
LSAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdz
b21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMn0pLAotICAgICAgICAgICAgICAgIFstMl06
IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJl
cXVlc3RJZDogMX0pLAorICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDUsIDIpLCB7fSk7CisgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoMSwgMiksIHsKKyAgICAgICAgICAgICAgICAnYnVpbGRzJzog
WworICAgICAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZGVy
SWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAyfSksCisgICAgICAgICAgICAgICAgICAgIE1vY2tEYXRh
LmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAxfSldCiAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzEyXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDQsIDIp
LCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lk
LCB0cnVlKTsKQEAgLTEzNjMsNyArMTM3OCw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90Jywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcp
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0
dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMS9idWlsZHMvMTI0Jyk7CiAgICAgICAg
ICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAg
ICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAg
LTEzODMsNyArMTM5OCw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAg
ICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycp
OwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRz
LzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xL2J1aWxkcy8xMjQn
KTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAtMTQwOCw3ICsxNDIzLDcgQEAgZGVzY3JpYmUoJ3N5bmMt
YnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0
LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7
CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdD
b21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9i
dWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xL2J1aWxkcy8xMjQn
KTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpOwpAQCAtMTQyOCw3ICsxNDQzLDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWls
ZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCks
ICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBi
dWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMv
MS9idWlsZHMvMTI0Jyk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRT
ZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTE0OTEsNDAgKzE1MDYsNDEg
QEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAg
ICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgp
ID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJM
RGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcs
IE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVp
bGRlcnMoKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwot
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCAn
L2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCAnL2pzb24v
YnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgJy9qc29uL2J1aWxk
ZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKDUpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMSksIHt9KTsKKyAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCg0KSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24v
YnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30p
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDUsIDIpLCB7fSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgxLCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoNCwg
MiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2ZvcmNlJywgJ09L
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnd2sn
OiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdm
b3JjZS1hYi1idWlsZHMnLCAnb3duZWQtY29tbWl0cyc6IGB7IldlYktpdCI6W3sicmV2aXNpb24i
OiJvd25lZC1qc2MtNjE2MSIsInJlcG9zaXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93bmVyUmV2
aXNpb24iOiIxOTE2MjIifV19YH0pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFi
LWJ1aWxkcycsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2
XS5kYXRhLCB7J2lkJzogJzEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywg
J3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVl
c3QtaWQnOiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnb3duZWQt
Y29tbWl0cyc6IGB7IldlYktpdCI6W3sicmV2aXNpb24iOiJvd25lZC1qc2MtNjE2MSIsInJlcG9z
aXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93bmVyUmV2aXNpb24iOiIxOTE2MjIifV19YH19KTsK
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMTApOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
N10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywg
W10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdH
RVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsCi0gICAg
ICAgICAgICAgICAgW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRl
cicsIGJ1aWxkUmVxdWVzdElkOiAxfSldKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRl
ci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDUpLCB7fSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoMSksCisgICAgICAgICAgICAgICAgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAxfSkpOworICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKLSAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9z
b21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7Ci0g
ICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVyOiAnc29t
ZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KQotICAgICAgICAgICAgfSk7Ci0gICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCAnL2pzb24v
YnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9
KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1LCAyKSwge30pOworICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKDEsIDIpLAorICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7
YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDogMX0pCisgICAgICAgICAgICApOworICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKDQsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gc3luY1By
b21pc2U7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RH
cm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKQEAgLTE1MzksNyArMTU1NSw3IEBAIGRl
c2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0
KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVl
c3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUl
MjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEv
YnVpbGRzLzEyNCcpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVl
c3QuY29tbWl0U2V0KCk7CkBAIC0xNTc5LDcgKzE1OTUsNyBAQCBkZXNjcmliZSgnc3luYy1idWls
ZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNC
dWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5p
bmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMv
MTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xL2J1aWxkcy8xMjQnKTsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAog
ICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpA
QCAtMTYyMCw3ICsxNjM2LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQu
d2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxk
LndlYmtpdC5vcmcvIy9idWlsZGVycy8xL2J1aWxkcy8xMjQnKTsKICAgICAgICAgICAgIGFzc2Vy
dC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAg
Y29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAtMTY1Myw0MiAr
MTY2OSw0NCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKIAogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgc3luY1Byb21pc2Ug
PSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09u
Y2UoKSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwg
J0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRh
Lm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWls
ZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIw
dGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRl
ci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3Bl
bmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoNSksIHt9KTsKKyAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgxKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KDQpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMv
P3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRl
ci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7Ci0gICAgICAgICAgICAgICAgWy0xXTog
TW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVx
dWVzdElkOiAxfSkKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWls
ZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKDUsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgxLCAyKSwKKyAgICAg
ICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVx
dWVzdElkOiAxfSkKKyAgICAgICAgICAgICk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg0LCAy
KSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA3KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzZdLCAnUE9TVCcsICcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvZm9yY2UnLCAnT0sn
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeyd3ayc6
ICcxOTI3MzYnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcyJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2Zv
cmNlLWFiLWJ1aWxkcycsICdvd25lZC1jb21taXRzJzogYHsiV2ViS2l0IjpbeyJyZXZpc2lvbiI6
Im93bmVkLWpzYy05MTkxIiwicmVwb3NpdG9yeSI6IkphdmFTY3JpcHRDb3JlIiwib3duZXJSZXZp
c2lvbiI6IjE5MjczNiJ9XX1gfSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWIt
YnVpbGRzJywgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZd
LmRhdGEsIHsnaWQnOiAnMicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAn
cGFyYW1zJzogeworICAgICAgICAgICAgICAgICd3ayc6ICcxOTI3MzYnLCAnYnVpbGQtcmVxdWVz
dC1pZCc6ICcyJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdvd25lZC1j
b21taXRzJzogYHsiV2ViS2l0IjpbeyJyZXZpc2lvbiI6Im93bmVkLWpzYy05MTkxIiwicmVwb3Np
dG9yeSI6IkphdmFTY3JpcHRDb3JlIiwib3duZXJSZXZpc2lvbiI6IjE5MjczNiJ9XX1gfX0pOwog
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3
XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBb
XSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwot
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCAn
L2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoNSksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgx
KSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKDQpLCB7fSk7CiAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKLSAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMics
IHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZz
ZWxlY3Q9LTInLCB7Ci0gICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxk
KHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDJ9KSwKLSAgICAgICAg
ICAgICAgICBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWls
ZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KSwKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCg1LCAy
KSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFd
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKDEsIDIpLCB7CisgICAgICAgICAgICAg
ICAgJ2J1aWxkcyc6IFsKKyAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxk
RGF0YSh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDogMn0pLAorICAgICAgICAgICAgICAg
ICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVl
c3RJZDogMX0pXQogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWls
ZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCg0LCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hG
b3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CkBAIC0xNzAzLDcgKzE3MjEsNyBAQCBkZXNjcmliZSgnc3lu
Yy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVl
c3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgp
KTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwg
J0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVy
L2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEvYnVpbGRzLzEy
NCcpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29t
bWl0U2V0KCk7CkBAIC0xNzIzLDcgKzE3NDEsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1
aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7
CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwo
KSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBi
dWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMv
MS9idWlsZHMvMTI0Jyk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQg
PSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTE3NDgsNyArMTc2Niw3IEBAIGRl
c2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0
KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVl
c3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMv
MS9idWlsZHMvMTI0Jyk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxk
UmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTE3NjgsNyArMTc4Niw3IEBAIGRlc2NyaWJlKCdzeW5j
LWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRS
ZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRl
cnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcv
Iy9idWlsZGVycy8xL2J1aWxkcy8xMjQnKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhl
ckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAtMTc5NCw3ICsx
ODEyLDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQo
IWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcv
Iy9idWlsZGVycy8xL2J1aWxkcy8xMjQnKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChi
dWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0
U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAtMTgxNCw3ICsxODMyLDcgQEAgZGVz
Y3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQo
b3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJC
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJr
aXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMS9idWlsZHMvMTI0Jyk7CiAgICAgICAgICAgICBhc3Nl
cnQubm90RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAg
ICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2Vz
L21vY2stZGF0YS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMJKHJldmlzaW9uIDIyODIzOSkKKysrIFdl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5q
cwkod29ya2luZyBjb3B5KQpAQCAtMTksNiArMTksOCBAQCBNb2NrRGF0YSA9IHsKICAgICBzaGFy
ZWRSZXBvc2l0b3J5SWQoKSB7IHJldHVybiAxNDsgfSwKICAgICBidWlsZGJvdEJ1aWxkZXJzVVJM
RGVwcmVjYXRlZCgpIHtyZXR1cm4gJy9qc29uL2J1aWxkZXJzJ30sCiAgICAgYnVpbGRib3RCdWls
ZGVyc1VSTCgpIHtyZXR1cm4gJy9hcGkvdjIvYnVpbGRlcnMnfSwKKyAgICBwZW5kaW5nQnVpbGRz
VXJsOiBmdW5jdGlvbiAoYnVpbGRlcklkKSB7IHJldHVybiBgL2FwaS92Mi9idWlsZGVycy8ke2J1
aWxkZXJJZH0vYnVpbGRyZXF1ZXN0cz9jb21wbGV0ZT1mYWxzZSZjbGFpbWVkPWZhbHNlYDsgfSwK
KyAgICByZWNlbnRCdWlsZHNVcmw6IGZ1bmN0aW9uIChidWlsZGVySWQsIGNvdW50KSB7IHJldHVy
biBgL2FwaS92Mi9idWlsZGVycy8ke2J1aWxkZXJJZH0vYnVpbGRzP2xpbWl0PSR7Y291bnR9Jm9y
ZGVyPS1udW1iZXImcHJvcGVydHk9KmA7IH0sCiAgICAgYWRkTW9ja0NvbmZpZ3VyYXRpb246IGZ1
bmN0aW9uIChkYikKICAgICB7CiAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbCkBAIC0xOTcs
NyArMTk5LDcgQEAgTW9ja0RhdGEgPSB7CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgJ2J1
aWxkZXJzJzogewogICAgICAgICAgICAgICAgICdidWlsZGVyLTEnOiB7J2J1aWxkZXInOiAnc29t
ZS1idWlsZGVyLTEnLAotICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczoge2ZvcmNlc2No
ZWR1bGVyOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0gCisgICAgICAgICAgICAgICAgICAgICBw
cm9wZXJ0aWVzOiB7Zm9yY2VzY2hlZHVsZXI6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fQogICAg
ICAgICAgICAgfSwKICAgICAgICAgICAgICd0ZXN0Q29uZmlndXJhdGlvbnMnOiBbCiAgICAgICAg
ICAgICAgICAgewpAQCAtMjkzLDEwICsyOTUsMzQgQEAgTW9ja0RhdGEgPSB7CiAgICAgICAgICAg
ICBdCiAgICAgICAgIH0KICAgICB9LAorICAgIHBlbmRpbmdCdWlsZERhdGEob3B0aW9ucykKKyAg
ICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAiYnVpbGRlcmlkIjogb3B0aW9ucy5i
dWlsZGVySWQgfHwgMiwKKyAgICAgICAgICAgICJidWlsZHJlcXVlc3RpZCI6IChvcHRpb25zLmJ1
aWxkUmVxdWVzdElkIHx8IDcwMikudG9TdHJpbmcoKSwKKyAgICAgICAgICAgICJidWlsZHNldGlk
IjogODk0NzIwLAorICAgICAgICAgICAgImNsYWltZWQiOiBmYWxzZSwKKyAgICAgICAgICAgICJj
bGFpbWVkX2F0IjogbnVsbCwKKyAgICAgICAgICAgICJjbGFpbWVkX2J5X21hc3RlcmlkIjogbnVs
bCwKKyAgICAgICAgICAgICJjb21wbGV0ZSI6IGZhbHNlLAorICAgICAgICAgICAgImNvbXBsZXRl
X2F0IjogbnVsbCwKKyAgICAgICAgICAgICJwcmlvcml0eSI6IDAsCisgICAgICAgICAgICAicmVz
dWx0cyI6IC0xLAorICAgICAgICAgICAgInN1Ym1pdHRlZF9hdCI6IG9wdGlvbnMuYnVpbGRUaW1l
IHx8IDE0NTg3MDQ5ODMsCisgICAgICAgICAgICAid2FpdGVkX2ZvciI6IGZhbHNlCisgICAgICAg
IH07CisgICAgfSwKICAgICBwZW5kaW5nQnVpbGQob3B0aW9ucykKICAgICB7CiAgICAgICAgIG9w
dGlvbnMgPSBvcHRpb25zIHx8IHt9OwogICAgICAgICByZXR1cm4geworICAgICAgICAgICAgImJ1
aWxkcmVxdWVzdHMiOiBbdGhpcy5wZW5kaW5nQnVpbGREYXRhKG9wdGlvbnMpXQorICAgICAgICB9
OworICAgIH0sCisgICAgcGVuZGluZ0J1aWxkRGVwcmVjYXRlZChvcHRpb25zKQorICAgIHsKKyAg
ICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CisgICAgICAgIHJldHVybiB7CiAgICAgICAg
ICAgICAnYnVpbGRlck5hbWUnOiBvcHRpb25zLmJ1aWxkZXIgfHwgJ3NvbWUtYnVpbGRlci0xJywK
ICAgICAgICAgICAgICdidWlsZHMnOiBbXSwKICAgICAgICAgICAgICdwcm9wZXJ0aWVzJzogWwpA
QCAtMzE1LDggKzM0MSw1MiBAQCBNb2NrRGF0YSA9IHsKICAgICAgICAgICAgIH0sCiAgICAgICAg
IH07CiAgICAgfSwKKyAgICBzYW1wbGVCdWlsZERhdGEob3B0aW9ucykKKyAgICB7CisgICAgICAg
IG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OworICAgICAgICByZXR1cm4geworICAgICAgICAgICAg
ImJ1aWxkZXJpZCI6IG9wdGlvbnMuYnVpbGRlcklkIHx8IDIsCisgICAgICAgICAgICAibnVtYmVy
IjogIG9wdGlvbnMuYnVpbGROdW1iZXIgfHwgMTI0LCAKKyAgICAgICAgICAgICJidWlsZHJlcXVl
c3RpZCI6IChvcHRpb25zLmJ1aWxkUmVxdWVzdElkIHx8IDcwMSkudG9TdHJpbmcoKSwKKyAgICAg
ICAgICAgICJjb21wbGV0ZSI6IG9wdGlvbnMuaXNDb21wbGV0ZSwKKyAgICAgICAgICAgICJjb21w
bGV0ZV9hdCI6IG51bGwsCisgICAgICAgICAgICAiYnVpbGRpZCI6IDQxODc0NCwKKyAgICAgICAg
ICAgICJtYXN0ZXJpZCI6IDEsCisgICAgICAgICAgICAicmVzdWx0cyI6IG51bGwsCisgICAgICAg
ICAgICAic3RhcnRlZF9hdCI6IDE1MTM3MjUxMDksCisgICAgICAgICAgICAic3RhdGVfc3RyaW5n
IjogImJ1aWxkaW5nIiwKKyAgICAgICAgICAgICJ3b3JrZXJpZCI6IDQxLAorICAgICAgICAgICAg
InByb3BlcnRpZXMiOiB7CisgICAgICAgICAgICAgICAgIm9zIjogW29wdGlvbnMub3N4UmV2aXNp
b24gfHwgJzEwLjExIDE1QTI4NCcsICJVbmtub3duIl0sCisgICAgICAgICAgICAgICAgIndrIjog
W29wdGlvbnMud2Via2l0UmV2aXNpb24gfHwgJzE5MjczNicsICJVbmtub3duIl0sCisgICAgICAg
ICAgICAgICAgInByb2plY3QiOiBbJycsICJVbmtub3duIl0sCisgICAgICAgICAgICAgICAgInJl
cG9zaXRvcnkiOiBbJycsICJVbmtub3duIl0sCisgICAgICAgICAgICAgICAgInJldmlzaW9uIjog
WycnLCAiVW5rbm93biJdLAorICAgICAgICAgICAgICAgICJzbGF2ZW5hbWUiOiBbb3B0aW9ucy53
b3JrZXJOYW1lIHx8ICJib3QyMDIiLCAiV29ya2VyIChkZXByZWNhdGVkKSJdLAorICAgICAgICAg
ICAgICAgICJ3b3JrZXJuYW1lIjogW29wdGlvbnMud29ya2VyTmFtZSB8fCAiYm90MjAyIiwgIldv
cmtlciJdCisgICAgICAgICAgICB9CisgICAgICAgIH07ICAgCisgICAgfSwKKyAgICBydW5uaW5n
QnVpbGREYXRhKG9wdGlvbnMpCisgICAgeworICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7
fTsKKyAgICAgICAgb3B0aW9ucy5pc0NvbXBsZXRlID0gZmFsc2U7CisgICAgICAgIGlmICghb3B0
aW9ucy5idWlsZFJlcXVlc3RJZCkKKyAgICAgICAgICAgIG9wdGlvbnMuYnVpbGRSZXF1ZXN0SWQg
PSA3MDE7CisgICAgICAgIGlmICghb3B0aW9ucy5idWlsZE51bWJlcikKKyAgICAgICAgICAgIG9w
dGlvbnMuYnVpbGROdW1iZXIgPSAxMjQ7CisgICAgICAgIGlmICghb3B0aW9ucy53ZWJraXRSZXZp
c2lvbikKKyAgICAgICAgICAgIG9wdGlvbnMud2Via2l0UmV2aXNpb24gPSAnMTkyNzM2JzsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuc2FtcGxlQnVpbGREYXRhKG9wdGlvbnMpOworICAgIH0sCiAgICAg
cnVubmluZ0J1aWxkKG9wdGlvbnMpCiAgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAg
ICAgImJ1aWxkcyI6IFt0aGlzLnJ1bm5pbmdCdWlsZERhdGEob3B0aW9ucyldCisgICAgICAgIH07
CisgICAgfSwKKyAgICBydW5uaW5nQnVpbGREZXByZWNhdGVkKG9wdGlvbnMpCisgICAgewogICAg
ICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsKICAgICAgICAgcmV0dXJuIHsKICAgICAgICAg
ICAgICdidWlsZGVyTmFtZSc6IG9wdGlvbnMuYnVpbGRlciB8fCAnc29tZS1idWlsZGVyLTEnLApA
QCAtMzQwLDggKzQxMCwyNiBAQCBNb2NrRGF0YSA9IHsKICAgICAgICAgICAgIH0sCiAgICAgICAg
IH07CiAgICAgfSwKKyAgICBmaW5pc2hlZEJ1aWxkRGF0YShvcHRpb25zKQorICAgIHsKKyAgICAg
ICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CisgICAgICAgIG9wdGlvbnMuaXNDb21wbGV0ZSA9
IHRydWU7CisgICAgICAgIGlmICghb3B0aW9ucy5idWlsZFJlcXVlc3RJZCkKKyAgICAgICAgICAg
IG9wdGlvbnMuYnVpbGRSZXF1ZXN0SWQgPSA3MDA7CisgICAgICAgIGlmICghb3B0aW9ucy5idWls
ZE51bWJlcikKKyAgICAgICAgICAgIG9wdGlvbnMuYnVpbGROdW1iZXIgPSAxMjM7CisgICAgICAg
IGlmICghb3B0aW9ucy53ZWJraXRSZXZpc2lvbikKKyAgICAgICAgICAgIG9wdGlvbnMud2Via2l0
UmV2aXNpb24gPSAnMTkxNjIyJzsKKyAgICAgICAgcmV0dXJuIHRoaXMuc2FtcGxlQnVpbGREYXRh
KG9wdGlvbnMpOworICAgIH0sCiAgICAgZmluaXNoZWRCdWlsZChvcHRpb25zKQogICAgIHsKKyAg
ICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICJidWlsZHMiOiBbdGhpcy5maW5pc2hlZEJ1aWxk
RGF0YShvcHRpb25zKV0KKyAgICAgICAgfTsKKyAgICB9LAorICAgIGZpbmlzaGVkQnVpbGREZXBy
ZWNhdGVkKG9wdGlvbnMpCisgICAgewogICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsK
ICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICdidWlsZGVyTmFtZSc6IG9wdGlvbnMuYnVp
bGRlciB8fCAnc29tZS1idWlsZGVyLTEnLApJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzCShyZXZpc2lvbiAyMjgyMzkp
CisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0xNDksNyArMTQ5LDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIg
ewogICAgICAgICAgICAgcHJvcGVydGllc1t0aGlzLl9wbGF0Zm9ybVByb3BlcnR5TmFtZV0gPSBu
ZXdSZXF1ZXN0LnBsYXRmb3JtKCkubmFtZSgpOwogCiAgICAgICAgIHRoaXMuX3NsYXZlc1dpdGhO
ZXdSZXF1ZXN0cy5hZGQoc2xhdmVOYW1lKTsKLSAgICAgICAgcmV0dXJuIHRoaXMuc2NoZWR1bGVC
dWlsZE9uQnVpbGRib3REZXByZWNhdGVkKHByb3BlcnRpZXMpOworICAgICAgICByZXR1cm4gdGhp
cy5zY2hlZHVsZUJ1aWxkT25CdWlsZGJvdChwcm9wZXJ0aWVzKTsKICAgICB9CiAKICAgICBzY2hl
ZHVsZUJ1aWxkT25CdWlsZGJvdERlcHJlY2F0ZWQocHJvcGVydGllcykKQEAgLTIwOSw5ICsyMDks
MTEgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogCiAgICAgcHVsbEJ1aWxkYm90KGNvdW50KQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3JlbW90ZS5nZXRKU09OKHRoaXMucGF0aEZvclBl
bmRpbmdCdWlsZHNKU09ORGVwcmVjYXRlZCgpKS50aGVuKChjb250ZW50KSA9PiB7Ci0gICAgICAg
ICAgICBsZXQgcGVuZGluZ0VudHJpZXMgPSBjb250ZW50Lm1hcCgoZW50cnkpID0+IG5ldyBCdWls
ZGJvdEJ1aWxkRW50cnlEZXByZWNhdGVkKHRoaXMsIGVudHJ5KSk7Ci0gICAgICAgICAgICByZXR1
cm4gdGhpcy5fcHVsbFJlY2VudEJ1aWxkc0RlcHJlY2F0ZWQoY291bnQpLnRoZW4oKGVudHJpZXMp
ID0+IHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3JlbW90ZS5nZXRKU09OKHRoaXMucGF0aEZvclBl
bmRpbmdCdWlsZHMoKSkudGhlbigoY29udGVudCkgPT4geworICAgICAgICAgICAgbGV0IHBlbmRp
bmdFbnRyaWVzID0gW107CisgICAgICAgICAgICBpZiAoJ2J1aWxkcmVxdWVzdHMnIGluIGNvbnRl
bnQpCisgICAgICAgICAgICAgICAgcGVuZGluZ0VudHJpZXMgPSBjb250ZW50LmJ1aWxkcmVxdWVz
dHMubWFwKChlbnRyeSkgPT4gbmV3IEJ1aWxkYm90QnVpbGRFbnRyeSh0aGlzLCBlbnRyeSkpOwor
ICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3B1bGxSZWNlbnRCdWlsZHMoY291bnQpLnRoZW4oKGVu
dHJpZXMpID0+IHsKICAgICAgICAgICAgICAgICBsZXQgZW50cnlCeVJlcXVlc3QgPSB7fTsKIAog
ICAgICAgICAgICAgICAgIGZvciAobGV0IGVudHJ5IG9mIHBlbmRpbmdFbnRyaWVzKQpJbmRleDog
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJv
dC10cmlnZ2VyYWJsZS5qcwkocmV2aXNpb24gMjI4MjM5KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC01NSw3ICs1NSw3IEBAIGNsYXNzIEJ1aWxkYm90VHJpZ2dlcmFibGUgewogCiAgICAgaW5pdFN5
bmNlcnMoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QnVpbGRlck5hbWVUb0lETWFw
RGVwcmVjYXRlZCgpLnRoZW4oKGJ1aWxkZXJOYW1lVG9JRE1hcCkgPT4geworICAgICAgICByZXR1
cm4gdGhpcy5nZXRCdWlsZGVyTmFtZVRvSURNYXAoKS50aGVuKChidWlsZGVyTmFtZVRvSURNYXAp
ID0+IHsKICAgICAgICAgICAgIHRoaXMuX3N5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyh0aGlzLl9idWlsZGJvdFJlbW90ZSwgdGhpcy5fY29uZmlnLCBidWlsZGVyTmFtZVRvSURN
YXApOwogICAgICAgICB9KTsKICAgICB9CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
dW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzCShy
ZXZpc2lvbiAyMjgyMzkpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9i
dWlsZGJvdC1zeW5jZXItdGVzdHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTE1NSwxMSArMTU1LDE2
IEBAIGZ1bmN0aW9uIGJ1aWxkZXJOYW1lVG9JRE1hcCgpCiAgICAgICAgICdpUGhvbmUgQUIgVGVz
dHMnIDogJzEwNCcsCiAgICAgICAgICdpUGhvbmUgMiBBQiBUZXN0cyc6ICcxMDUnLAogICAgICAg
ICAnaVBhZCBBQiBUZXN0cyc6ICcxMDYnCi0gICAgfSAgICAKKyAgICB9CiB9CiAKIGZ1bmN0aW9u
IHNtYWxsUGVuZGluZ0J1aWxkKCkKIHsKKyAgICByZXR1cm4gc2FtcGxlUGVuZGluZ0J1aWxkKG51
bGwsIG51bGwsICJzb21lIGJ1aWxkZXIiKTsKK30KKworZnVuY3Rpb24gc21hbGxQZW5kaW5nQnVp
bGREZXByZWNhdGVkKCkKK3sKICAgICByZXR1cm4gewogICAgICAgICAnYnVpbGRlck5hbWUnOiAn
c29tZSBidWlsZGVyJywKICAgICAgICAgJ2J1aWxkcyc6IFtdLApAQCAtMTc4LDYgKzE4MywxMSBA
QCBmdW5jdGlvbiBzbWFsbFBlbmRpbmdCdWlsZCgpCiAKIGZ1bmN0aW9uIHNtYWxsSW5Qcm9ncmVz
c0J1aWxkKCkKIHsKKyAgICByZXR1cm4gc2FtcGxlSW5Qcm9ncmVzc0J1aWxkKCk7Cit9CisKK2Z1
bmN0aW9uIHNtYWxsSW5Qcm9ncmVzc0J1aWxkRGVwcmVjYXRlZCgpCit7CiAgICAgcmV0dXJuIHsK
ICAgICAgICAgJ2J1aWxkZXJOYW1lJzogJ3NvbWUgYnVpbGRlcicsCiAgICAgICAgICdidWlsZHMn
OiBbXSwKQEAgLTE5OSw2ICsyMDksMTEgQEAgZnVuY3Rpb24gc21hbGxJblByb2dyZXNzQnVpbGQo
KQogCiBmdW5jdGlvbiBzbWFsbEZpbmlzaGVkQnVpbGQoKQogeworICAgIHJldHVybiBzYW1wbGVG
aW5pc2hlZEJ1aWxkKG51bGwsIG51bGwsICJzb21lIGJ1aWxkZXIiKTsKK30KKworZnVuY3Rpb24g
c21hbGxGaW5pc2hlZEJ1aWxkRGVwcmVjYXRlZCgpCit7CiAgICAgcmV0dXJuIHsKICAgICAgICAg
J2J1aWxkZXJOYW1lJzogJ3NvbWUgYnVpbGRlcicsCiAgICAgICAgICdidWlsZHMnOiBbXSwKQEAg
LTE0MTUsOCArMTQzMCw4IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAg
ICAgICAgaXQoJ3Nob3VsZCBmZXRjaCBwZW5kaW5nIGJ1aWxkcyBmcm9tIHRoZSByaWdodCBVUkwn
LCAoKSA9PiB7CiAgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRD
b25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1h
cCgpKVsxXTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzeW5jZXIuYnVpbGRlck5hbWUoKSwg
J0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cycpOwotICAgICAgICAgICAgbGV0IGV4cGVj
dGVkVVJMID0gJy9qc29uL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy9w
ZW5kaW5nQnVpbGRzJzsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChzeW5jZXIucGF0aEZvclBl
bmRpbmdCdWlsZHNKU09ORGVwcmVjYXRlZCgpLCBleHBlY3RlZFVSTCk7CisgICAgICAgICAgICBs
ZXQgZXhwZWN0ZWRVUkwgPSAnL2FwaS92Mi9idWlsZGVycy8xMDIvYnVpbGRyZXF1ZXN0cz9jb21w
bGV0ZT1mYWxzZSZjbGFpbWVkPWZhbHNlJzsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChzeW5j
ZXIucGF0aEZvclBlbmRpbmdCdWlsZHMoKSwgZXhwZWN0ZWRVUkwpOwogICAgICAgICAgICAgc3lu
Y2VyLnB1bGxCdWlsZGJvdCgpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCBleHBl
Y3RlZFVSTCk7CkBAIC0xNDI4LDExICsxNDQzLDExIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNl
cicsICgpID0+IHsKIAogICAgICAgICAgICAgc3luY2VyLnB1bGxCdWlsZGJvdCgxKTsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1
bkJlbmNobWFyay1UZXN0cy9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHNbMF0udXJsLCAnL2FwaS92Mi9idWlsZGVycy8xMDIvYnVpbGRyZXF1ZXN0cz9j
b21wbGV0ZT1mYWxzZSZjbGFpbWVkPWZhbHNlJyk7CiAgICAgICAgICAgICByZXF1ZXN0c1swXS5y
ZXNvbHZlKFtdKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVy
bCwgJy9qc29uL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy9idWlsZHMv
P3NlbGVjdD0tMScpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS51
cmwsICcvYXBpL3YyL2J1aWxkZXJzLzEwMi9idWlsZHM/bGltaXQ9MSZvcmRlcj0tbnVtYmVyJnBy
b3BlcnR5PSonKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMTQ0MSwyOSAr
MTQ1NiwyOSBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAKICAgICAgICAg
ICAgIHN5bmNlci5wdWxsQnVpbGRib3QoMyk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51
cmwsICcvanNvbi9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvcGVuZGlu
Z0J1aWxkcycpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9h
cGkvdjIvYnVpbGRlcnMvMTAyL2J1aWxkcmVxdWVzdHM/Y29tcGxldGU9ZmFsc2UmY2xhaW1lZD1m
YWxzZScpOwogICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9BQlRl
c3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJnNl
bGVjdD0tMycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS51cmws
ICcvYXBpL3YyL2J1aWxkZXJzLzEwMi9idWlsZHM/bGltaXQ9MyZvcmRlcj0tbnVtYmVyJnByb3Bl
cnR5PSonKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hv
dWxkIGNyZWF0ZSBCdWlsZGJvdEJ1aWxkRW50cnkgZm9yIHBlbmRpbmcgYnVpbGRzJywgKCkgPT4g
ewogICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1v
Y2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07
CiAgICAgICAgICAgICBsZXQgcHJvbWlzZSA9IHN5bmNlci5wdWxsQnVpbGRib3QoKTsKLSAgICAg
ICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoW3NhbXBsZVBlbmRpbmdCdWlsZERlcHJlY2F0ZWQo
KV0pOworICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZShzYW1wbGVQZW5kaW5nQnVpbGQo
KSk7CiAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS50aGVuKChlbnRyaWVzKSA9PiB7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJpZXMubGVuZ3RoLCAxKTsKICAgICAgICAgICAg
ICAgICBsZXQgZW50cnkgPSBlbnRyaWVzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5vayhl
bnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeURlcHJlY2F0ZWQpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeSk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5idWlsZE51bWJlcigpKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQub2soIWVudHJ5LnNsYXZlTmFtZSgpKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZW50cnkuYnVpbGRSZXF1ZXN0SWQoKSwgMTY3MzMpOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5vayhlbnRyeS5pc1BlbmRpbmcoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
Lm9rKCFlbnRyeS5pc0luUHJvZ3Jlc3MoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFl
bnRyeS5oYXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnku
dXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5C
ZW5jaG1hcmstVGVzdHMvJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVy
bCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE2NzMzJyk7CiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTE0NzUsMTkgKzE0OTAsMTkgQEAgZGVz
Y3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgcmVxdWVzdHNbMF0u
cmVzb2x2ZShbXSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoe1stMV06
IHNhbXBsZUluUHJvZ3Jlc3NCdWlsZERlcHJlY2F0ZWQoKX0pOworICAgICAgICAgICAgICAgIHJl
cXVlc3RzWzFdLnJlc29sdmUoc2FtcGxlSW5Qcm9ncmVzc0J1aWxkKCkpOwogICAgICAgICAgICAg
ICAgIHJldHVybiBwcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoZW50cmllcykgPT4gewog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyaWVzLmxlbmd0aCwgMSk7CiAgICAgICAg
ICAgICAgICAgbGV0IGVudHJ5ID0gZW50cmllc1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
b2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnlEZXByZWNhdGVkKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnkp
OwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZE51bWJlcigpLCA2MTQp
OwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5zbGF2ZU5hbWUoKSwgJ0FCVGVz
dC1pUGFkLTAnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGRSZXF1
ZXN0SWQoKSwgMTY3MzMpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaXNQZW5k
aW5nKCkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeS5pc0luUHJvZ3Jlc3MoKSk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5oYXNGaW5pc2hlZCgpKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0
Lm9yZy9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVpbGRzLzYxNCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMTAyL2J1aWxkcy82MTQnKTsKICAgICAgICAgICAgIH0p
OwogICAgICAgICB9KTsKIApAQCAtMTQ5OSwxOSArMTUxNCwxOSBAQCBkZXNjcmliZSgnQnVpbGRi
b3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKFtdKTsK
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7
Ci0gICAgICAgICAgICAgICAgcmVxdWVzdHNbMV0ucmVzb2x2ZSh7Wy0xXTogc2FtcGxlRmluaXNo
ZWRCdWlsZERlcHJlY2F0ZWQoKX0pOworICAgICAgICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29s
dmUoc2FtcGxlRmluaXNoZWRCdWlsZCgpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gcHJvbWlz
ZTsKICAgICAgICAgICAgIH0pLnRoZW4oKGVudHJpZXMpID0+IHsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGVudHJpZXMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBsZXQg
ZW50cnkgPSBlbnRyaWVzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0
YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeURlcHJlY2F0ZWQpOworICAgICAgICAgICAgICAgIGFz
c2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeSk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkTnVtYmVyKCksIDE3NTUpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5zbGF2ZU5hbWUoKSwgJ0FCVGVzdC1pUGFkLTAnKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGRSZXF1ZXN0SWQoKSwgMTg5
MzUpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaXNQZW5kaW5nKCkpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaXNJblByb2dyZXNzKCkpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5vayhlbnRyeS5oYXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVy
cy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVpbGRzLzE3NTUnKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy8jL2J1aWxkZXJzLzEwMi9idWlsZHMvMTc1NScpOwogICAgICAgICAgICAgfSk7CiAgICAgICAg
IH0pOwogCkBAIC0xNTIxLDQ0ICsxNTM2LDQ0IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcics
ICgpID0+IHsKICAgICAgICAgICAgIGxldCBwcm9taXNlID0gc3luY2VyLnB1bGxCdWlsZGJvdCg1
KTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwogCi0gICAg
ICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKFtzYW1wbGVQZW5kaW5nQnVpbGREZXByZWNhdGVk
KDEyMyldKTsKKyAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoc2FtcGxlUGVuZGluZ0J1
aWxkKDEyMykpOwogCiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoe1stMV06
IHNhbXBsZUZpbmlzaGVkQnVpbGREZXByZWNhdGVkKCksIFstMl06IHsnZXJyb3InOiAnTm90IGF2
YWlsYWJsZSd9LCBbLTRdOiBzYW1wbGVJblByb2dyZXNzQnVpbGREZXByZWNhdGVkKCl9KTsKKyAg
ICAgICAgICAgICAgICByZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzogW3NhbXBsZUZpbmlz
aGVkQnVpbGREYXRhKCksIHNhbXBsZUluUHJvZ3Jlc3NCdWlsZERhdGEoKV19KTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gcHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKGVudHJpZXMpID0+
IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGVudHJpZXMubGVuZ3RoLCAzKTsK
IAogICAgICAgICAgICAgICAgIGxldCBlbnRyeSA9IGVudHJpZXNbMF07Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5RGVwcmVjYXRl
ZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RC
dWlsZEVudHJ5KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGROdW1i
ZXIoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnNsYXZlTmFt
ZSgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGRSZXF1
ZXN0SWQoKSwgMTIzKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkuaXNQZW5kaW5n
KCkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaXNJblByb2dyZXNzKCkpOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaGFzRmluaXNoZWQoKSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzLycpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
LyMvYnVpbGRyZXF1ZXN0cy8xMjMnKTsKIAogICAgICAgICAgICAgICAgIGVudHJ5ID0gZW50cmll
c1sxXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJv
dEJ1aWxkRW50cnlEZXByZWNhdGVkKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkg
aW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChlbnRyeS5idWlsZE51bWJlcigpLCA2MTQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChlbnRyeS5zbGF2ZU5hbWUoKSwgJ0FCVGVzdC1pUGFkLTAnKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGRSZXF1ZXN0SWQoKSwgMTY3MzMpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5vayghZW50cnkuaXNQZW5kaW5nKCkpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5vayhlbnRyeS5pc0luUHJvZ3Jlc3MoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9r
KCFlbnRyeS5oYXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50
cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9BQlRlc3QtaVBhZC1S
dW5CZW5jaG1hcmstVGVzdHMvYnVpbGRzLzYxNCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMTAy
L2J1aWxkcy82MTQnKTsKIAogICAgICAgICAgICAgICAgIGVudHJ5ID0gZW50cmllc1syXTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50
cnlEZXByZWNhdGVkKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2Vv
ZiBCdWlsZGJvdEJ1aWxkRW50cnkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRy
eS5idWlsZE51bWJlcigpLCAxNzU1KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50
cnkuc2xhdmVOYW1lKCksICdBQlRlc3QtaVBhZC0wJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGVudHJ5LmJ1aWxkUmVxdWVzdElkKCksIDE4OTM1KTsKICAgICAgICAgICAgICAgICBh
c3NlcnQub2soIWVudHJ5LmlzUGVuZGluZygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2so
IWVudHJ5LmlzSW5Qcm9ncmVzcygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnku
aGFzRmluaXNoZWQoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgp
LCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2ht
YXJrLVRlc3RzL2J1aWxkcy8xNzU1Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVu
dHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xMDIvYnVpbGRz
LzE3NTUnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMTU2OCw1NCArMTU4
Myw1NCBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBs
ZXQgcHJvbWlzZSA9IHN5bmNlci5wdWxsQnVpbGRib3QoNSk7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKIAotICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVz
b2x2ZShbc2FtcGxlUGVuZGluZ0J1aWxkRGVwcmVjYXRlZCg0NTYsIDIpLCBzYW1wbGVQZW5kaW5n
QnVpbGREZXByZWNhdGVkKDEyMywgMSldKTsKKyAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29s
dmUoeyJidWlsZHJlcXVlc3RzIjogW3NhbXBsZVBlbmRpbmdCdWlsZERhdGEoNDU2LCAyKSwgc2Ft
cGxlUGVuZGluZ0J1aWxkRGF0YSgxMjMsIDEpXX0pOwogCiAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIHJlcXVl
c3RzWzFdLnJlc29sdmUoe1stM106IHNhbXBsZUZpbmlzaGVkQnVpbGREZXByZWNhdGVkKCksIFst
MV06IHsnZXJyb3InOiAnTm90IGF2YWlsYWJsZSd9LCBbLTJdOiBzYW1wbGVJblByb2dyZXNzQnVp
bGREZXByZWNhdGVkKCl9KTsKKyAgICAgICAgICAgICAgICByZXF1ZXN0c1sxXS5yZXNvbHZlKHsn
YnVpbGRzJzogW3NhbXBsZUZpbmlzaGVkQnVpbGREYXRhKCksIHNhbXBsZUluUHJvZ3Jlc3NCdWls
ZERhdGEoKV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZTsKICAgICAgICAgICAg
IH0pLnRoZW4oKGVudHJpZXMpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGVudHJpZXMubGVuZ3RoLCA0KTsKIAogICAgICAgICAgICAgICAgIGxldCBlbnRyeSA9IGVudHJp
ZXNbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRi
b3RCdWlsZEVudHJ5RGVwcmVjYXRlZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5
IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5KTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZW50cnkuYnVpbGROdW1iZXIoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGVudHJ5LnNsYXZlTmFtZSgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZW50cnkuYnVpbGRSZXF1ZXN0SWQoKSwgMTIzKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQub2soZW50cnkuaXNQZW5kaW5nKCkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50
cnkuaXNJblByb2dyZXNzKCkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaGFz
RmluaXNoZWQoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAn
aHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJr
LVRlc3RzLycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0
dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xMjMnKTsKIAogICAgICAgICAg
ICAgICAgIGVudHJ5ID0gZW50cmllc1sxXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50
cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnlEZXByZWNhdGVkKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnkpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZE51bWJlcigpLCBudWxsKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuc2xhdmVOYW1lKCksIG51bGwpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZFJlcXVlc3RJZCgpLCA0NTYpOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeS5pc1BlbmRpbmcoKSk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc0luUHJvZ3Jlc3MoKSk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0Lm9rKCFlbnRyeS5oYXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9BQlRl
c3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3Rz
LzQ1NicpOwogCiAgICAgICAgICAgICAgICAgZW50cnkgPSBlbnRyaWVzWzJdOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeURlcHJl
Y2F0ZWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxk
Ym90QnVpbGRFbnRyeSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxk
TnVtYmVyKCksIDYxNCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnNsYXZl
TmFtZSgpLCAnQUJUZXN0LWlQYWQtMCcpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChl
bnRyeS5idWlsZFJlcXVlc3RJZCgpLCAxNjczMyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9r
KCFlbnRyeS5pc1BlbmRpbmcoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5Lmlz
SW5Qcm9ncmVzcygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5Lmhhc0Zpbmlz
aGVkKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6
Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0
cy9idWlsZHMvNjE0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgp
LCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xMDIvYnVpbGRzLzYxNCcpOwog
CiAgICAgICAgICAgICAgICAgZW50cnkgPSBlbnRyaWVzWzNdOwotICAgICAgICAgICAgICAgIGFz
c2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeURlcHJlY2F0ZWQpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRF
bnRyeSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkTnVtYmVyKCks
IDE3NTUpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5zbGF2ZU5hbWUoKSwg
J0FCVGVzdC1pUGFkLTAnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVp
bGRSZXF1ZXN0SWQoKSwgMTg5MzUpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnku
aXNQZW5kaW5nKCkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaXNJblByb2dy
ZXNzKCkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeS5oYXNGaW5pc2hlZCgpKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQu
d2Via2l0Lm9yZy9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVpbGRz
LzE3NTUnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRw
Oi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEwMi9idWlsZHMvMTc1NScpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0xNjI1LDI0ICsxNjQwLDI0IEBAIGRlc2NyaWJl
KCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGxldCBwcm9taXNlID0gc3lu
Y2VyLnB1bGxCdWlsZGJvdCg1KTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDEpOwogCi0gICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKFtzYW1wbGVQZW5k
aW5nQnVpbGREZXByZWNhdGVkKCldKTsKKyAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUo
c2FtcGxlUGVuZGluZ0J1aWxkKCkpOwogCiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIHJlcXVlc3RzWzFdLnJl
c29sdmUoe1stMV06IHNhbXBsZUluUHJvZ3Jlc3NCdWlsZERlcHJlY2F0ZWQoKX0pOworICAgICAg
ICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoc2FtcGxlSW5Qcm9ncmVzc0J1aWxkKCkpOwog
ICAgICAgICAgICAgICAgIHJldHVybiBwcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoZW50
cmllcykgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyaWVzLmxlbmd0aCwg
MSk7CiAKICAgICAgICAgICAgICAgICBsZXQgZW50cnkgPSBlbnRyaWVzWzBdOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeURlcHJl
Y2F0ZWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxk
Ym90QnVpbGRFbnRyeSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxk
TnVtYmVyKCksIDYxNCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnNsYXZl
TmFtZSgpLCAnQUJUZXN0LWlQYWQtMCcpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChl
bnRyeS5idWlsZFJlcXVlc3RJZCgpLCAxNjczMyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9r
KCFlbnRyeS5pc1BlbmRpbmcoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5Lmlz
SW5Qcm9ncmVzcygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5Lmhhc0Zpbmlz
aGVkKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6
Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0
cy9idWlsZHMvNjE0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgp
LCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xMDIvYnVpbGRzLzYxNCcpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0xNjUyLDI0ICsxNjY3LDI0IEBAIGRl
c2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGxldCBwcm9taXNl
ID0gc3luY2VyLnB1bGxCdWlsZGJvdCg1KTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDEpOwogCi0gICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKFtzYW1w
bGVQZW5kaW5nQnVpbGREZXByZWNhdGVkKCldKTsKKyAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJl
c29sdmUoc2FtcGxlUGVuZGluZ0J1aWxkKCkpOwogCiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIHJlcXVlc3Rz
WzFdLnJlc29sdmUoe1stMV06IHNhbXBsZUZpbmlzaGVkQnVpbGREZXByZWNhdGVkKDE2NzMzKX0p
OworICAgICAgICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoc2FtcGxlRmluaXNoZWRCdWls
ZCgxNjczMykpOwogICAgICAgICAgICAgICAgIHJldHVybiBwcm9taXNlOwogICAgICAgICAgICAg
fSkudGhlbigoZW50cmllcykgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRy
aWVzLmxlbmd0aCwgMSk7CiAKICAgICAgICAgICAgICAgICBsZXQgZW50cnkgPSBlbnRyaWVzWzBd
OwotICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVp
bGRFbnRyeURlcHJlY2F0ZWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0
YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGVudHJ5LmJ1aWxkTnVtYmVyKCksIDE3NTUpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChlbnRyeS5zbGF2ZU5hbWUoKSwgJ0FCVGVzdC1pUGFkLTAnKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZW50cnkuYnVpbGRSZXF1ZXN0SWQoKSwgMTY3MzMpOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5vayghZW50cnkuaXNQZW5kaW5nKCkpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5vayghZW50cnkuaXNJblByb2dyZXNzKCkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayhl
bnRyeS5oYXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnku
dXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5C
ZW5jaG1hcmstVGVzdHMvYnVpbGRzLzE3NTUnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEwMi9i
dWlsZHMvMTc1NScpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpAQCAt
MTcxMCwxNSArMTcyNSwyMCBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAg
ICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0KHJlcXVlc3QsIFtyZXF1ZXN0XSwgJ3Nv
bWUtc2xhdmUnKTsKICAgICAgICAgICAgIHJldHVybiB3YWl0Rm9yUmVxdWVzdC50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2J1aWxkZXJzL0FC
VGVzdC1pUGhvbmUtUnVuQmVuY2htYXJrLVRlc3RzL2ZvcmNlJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL0FC
VGVzdC1pUGhvbmUtUnVuQmVuY2htYXJrLVRlc3RzLUZvcmNlU2NoZWR1bGVyJyk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLm1ldGhvZCwgJ1BPU1QnKTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzBdLmRhdGEsIHsKLSAgICAgICAg
ICAgICAgICAgICAgJ2J1aWxkX3JlcXVlc3RfaWQnOiAnMTY3MzMtJyArIE1vY2tNb2RlbHMuaXBo
b25lLmlkKCksCi0gICAgICAgICAgICAgICAgICAgICdkZXNpcmVkX2ltYWdlJzogJzEzQTQ1Mics
Ci0gICAgICAgICAgICAgICAgICAgICJvcGVuc291cmNlIjogIjE5NzQ2MyIsCi0gICAgICAgICAg
ICAgICAgICAgICdmb3JjZXNjaGVkdWxlcic6ICdBQlRlc3QtaVBob25lLVJ1bkJlbmNobWFyay1U
ZXN0cy1Gb3JjZVNjaGVkdWxlcicsCi0gICAgICAgICAgICAgICAgICAgICdzbGF2ZW5hbWUnOiAn
c29tZS1zbGF2ZScsCi0gICAgICAgICAgICAgICAgICAgICd0ZXN0X25hbWUnOiAnc3BlZWRvbWV0
ZXInCisgICAgICAgICAgICAgICAgICAgICdpZCc6ICcxNjczMy0nICsgTW9ja01vZGVscy5pcGhv
bmUuaWQoKSwKKyAgICAgICAgICAgICAgICAgICAgJ2pzb25ycGMnOiAnMi4wJywKKyAgICAgICAg
ICAgICAgICAgICAgJ21ldGhvZCc6ICdmb3JjZScsCisgICAgICAgICAgICAgICAgICAgICdwYXJh
bXMnOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAnYnVpbGRfcmVxdWVzdF9pZCc6ICcxNjcz
My0nICsgTW9ja01vZGVscy5pcGhvbmUuaWQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdk
ZXNpcmVkX2ltYWdlJzogJzEzQTQ1MicsCisgICAgICAgICAgICAgICAgICAgICAgICAnb3BlbnNv
dXJjZSc6ICcxOTc0NjMnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvcmNlc2NoZWR1bGVy
JzogJ0FCVGVzdC1pUGhvbmUtUnVuQmVuY2htYXJrLVRlc3RzLUZvcmNlU2NoZWR1bGVyJywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICdzbGF2ZW5hbWUnOiAnc29tZS1zbGF2ZScsCisgICAgICAg
ICAgICAgICAgICAgICAgICAndGVzdF9uYW1lJzogJ3NwZWVkb21ldGVyJworICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
fSk7CkBAIC0xNzQ2LDI5ICsxNzY2LDMxIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgp
ID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRS
ZXF1ZXN0KE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLCBNb2NrTW9kZWxzLnNvbWVUZXN0KTsKICAg
ICAgICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0SW5Hcm91cElmQXZhaWxhYmxlKHJl
cXVlc3QsIFtyZXF1ZXN0XSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVy
bCwgJy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9mb3JjZScpOworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9zb21l
LWJ1aWxkZXItRm9yY2VTY2hlZHVsZXInKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbMF0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwocmVxdWVzdHNbMF0uZGF0YSwge2lkOiAnMTY3MzMtJyArIE1vY2tNb2RlbHMuc29tZVBs
YXRmb3JtLmlkKCksICdvcyc6ICcxM0E0NTInLCAnd2snOiAnMTk3NDYzJywgJ2ZvcmNlc2NoZWR1
bGVyJzogJ3NvbWUtYnVpbGRlci1Gb3JjZVNjaGVkdWxlcid9KTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzBdLmRhdGEsIHtpZDogJzE2NzMzLScgKyBNb2NrTW9k
ZWxzLnNvbWVQbGF0Zm9ybS5pZCgpLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNl
JywKKyAgICAgICAgICAgICAgICAgICAgJ3BhcmFtcyc6IHtpZDogJzE2NzMzLScgKyBNb2NrTW9k
ZWxzLnNvbWVQbGF0Zm9ybS5pZCgpLCAnZm9yY2VzY2hlZHVsZXInOiAnc29tZS1idWlsZGVyLUZv
cmNlU2NoZWR1bGVyJywgJ29zJzogJzEzQTQ1MicsICd3ayc6ICcxOTc0NjMnfX0pOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgc2NoZWR1bGUgYSBi
dWlsZCBpZiBidWlsZGVyIG9ubHkgaGFzIGZpbmlzaGVkIGJ1aWxkcyBpZiBzbGF2ZUxpc3QgaXMg
bm90IHNwZWNpZmllZCcsICgpID0+IHsKICAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzbWFsbENvbmZpZ3VyYXRpb24oKSwg
YnVpbGRlck5hbWVUb0lETWFwKCkpWzBdOwogCi0gICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxk
Ym90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7Wy0xXTogc21hbGxGaW5pc2hlZEJ1aWxkKCl9
KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0
aW9uKHN5bmNlciwgW10sIHNtYWxsRmluaXNoZWRCdWlsZCgpKS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tN
b2RlbHMuc29tZVBsYXRmb3JtLCBNb2NrTW9kZWxzLnNvbWVUZXN0KTsKICAgICAgICAgICAgICAg
ICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0SW5Hcm91cElmQXZhaWxhYmxlKHJlcXVlc3QsIFtyZXF1
ZXN0XSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9idWlsZGVy
cy9zb21lJTIwYnVpbGRlci9mb3JjZScpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1swXS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9zb21lLWJ1aWxkZXItRm9y
Y2VTY2hlZHVsZXInKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0u
bWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVz
dHNbMF0uZGF0YSwge2lkOiAnMTY3MzMtJyArIE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLmlkKCks
ICdvcyc6ICcxM0E0NTInLCAnd2snOiAnMTk3NDYzJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ3NvbWUt
YnVpbGRlci1Gb3JjZVNjaGVkdWxlcid9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHJlcXVlc3RzWzBdLmRhdGEsIHtpZDogJzE2NzMzLScgKyBNb2NrTW9kZWxzLnNvbWVQbGF0
Zm9ybS5pZCgpLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywKKyAgICAgICAg
ICAgICAgICAgICAgJ3BhcmFtcyc6IHtpZDogJzE2NzMzLScgKyBNb2NrTW9kZWxzLnNvbWVQbGF0
Zm9ybS5pZCgpLCAnZm9yY2VzY2hlZHVsZXInOiAnc29tZS1idWlsZGVyLUZvcmNlU2NoZWR1bGVy
JywgJ29zJzogJzEzQTQ1MicsICd3ayc6ICcxOTc0NjMnfX0pOwogICAgICAgICAgICAgfSk7CiAg
ICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgbm90IHNjaGVkdWxlIGEgYnVpbGQgaWYg
YnVpbGRlciBoYXMgYSBwZW5kaW5nIGJ1aWxkIGlmIHNsYXZlTGlzdCBpcyBub3Qgc3BlY2lmaWVk
JywgKCkgPT4gewogICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKE1vY2tSZW1vdGVBUEksIHNtYWxsQ29uZmlndXJhdGlvbigpLCBidWlsZGVyTmFtZVRv
SURNYXAoKSlbMF07CiAKLSAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0
aW9uKHN5bmNlciwgW3NtYWxsUGVuZGluZ0J1aWxkKCldLCB7fSkudGhlbigoKSA9PiB7CisgICAg
ICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIHNtYWxsUGVu
ZGluZ0J1aWxkKCksIHt9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBzeW5jZXIuc2No
ZWR1bGVSZXF1ZXN0SW5Hcm91cElmQXZhaWxhYmxlKGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChN
b2NrTW9kZWxzLnNvbWVQbGF0Zm9ybSwgTW9ja01vZGVscy5zb21lVGVzdCkpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDApOwogICAgICAgICAgICAgfSk7
CkBAIC0xNzgxLDcgKzE4MDMsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7
CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVz
dChNb2NrTW9kZWxzLmlwaG9uZSwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CiAgICAgICAgICAg
ICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShyZXF1ZXN0LCBb
cmVxdWVzdF0sIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmws
ICcvYnVpbGRlcnMvQUJUZXN0LWlQaG9uZS1SdW5CZW5jaG1hcmstVGVzdHMvZm9yY2UnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2FwaS92Mi9mb3Jj
ZXNjaGVkdWxlcnMvQUJUZXN0LWlQaG9uZS1SdW5CZW5jaG1hcmstVGVzdHMtRm9yY2VTY2hlZHVs
ZXInKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0ubWV0aG9kLCAn
UE9TVCcpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtMTc4OSwxMSArMTgxMSwx
MSBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIGl0KCdzaG91
bGQgc2NoZWR1bGUgYSBidWlsZCBpZiBidWlsZGVyIG9ubHkgaGFzIGZpbmlzaGVkIGJ1aWxkcyBv
biB0aGUgbWF0Y2hpbmcgc2xhdmUnLCAoKSA9PiB7CiAgICAgICAgICAgICBsZXQgc3luY2VyID0g
QnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmln
KCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAotICAgICAgICAgICAgcHVsbEJ1aWxkYm90
V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7Wy0xXTogc2FtcGxlRmluaXNoZWRCdWlsZERlcHJl
Y2F0ZWQoKX0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgcHVsbEJ1aWxkYm90V2l0aEFzc2Vy
dGlvbihzeW5jZXIsIFtdLCBzYW1wbGVGaW5pc2hlZEJ1aWxkKCkpLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9j
a01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKICAgICAgICAgICAgICAgICBz
eW5jZXIuc2NoZWR1bGVSZXF1ZXN0SW5Hcm91cElmQXZhaWxhYmxlKHJlcXVlc3QsIFtyZXF1ZXN0
XSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9idWls
ZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvZm9yY2UnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxl
cnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzLUZvcmNlU2NoZWR1bGVyJyk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLm1ldGhvZCwgJ1BPU1QnKTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KTsKQEAgLTE4MDEsMjcgKzE4MjMsMTcgQEAgZGVzY3Jp
YmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICBpdCgnc2hvdWxkIG5vdCBzY2hl
ZHVsZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgaGFzIGEgcGVuZGluZyBidWlsZCBvbiB0aGUgbWFjaGlu
ZyBzbGF2ZScsICgpID0+IHsKICAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5h
bWVUb0lETWFwKCkpWzFdOwogCi0gICAgICAgICAgICBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9u
KHN5bmNlciwgW3NhbXBsZVBlbmRpbmdCdWlsZERlcHJlY2F0ZWQoKV0sIHt9KS50aGVuKCgpID0+
IHsKKyAgICAgICAgICAgIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBzYW1wbGVQ
ZW5kaW5nQnVpbGQoKSwge30pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IHJl
cXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9k
ZWxzLnNwZWVkb21ldGVyKTsKICAgICAgICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0
SW5Hcm91cElmQXZhaWxhYmxlKHJlcXVlc3QsIFtyZXF1ZXN0XSwgbnVsbCk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMCk7CiAgICAgICAgICAgICB9KTsK
ICAgICAgICAgfSk7CiAKLSAgICAgICAgaXQoJ3Nob3VsZCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGJ1
aWxkZXIgb25seSBoYXMgYSBwZW5kaW5nIGJ1aWxkIG9uIGEgbm9uLW1hY2hpbmcgc2xhdmUnLCAo
KSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgp
KVsxXTsKLQotICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3lu
Y2VyLCBbc2FtcGxlUGVuZGluZ0J1aWxkRGVwcmVjYXRlZCgxLCAxLCAnYW5vdGhlci1zbGF2ZScp
XSwge30pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVh
dGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVkb21l
dGVyKTsKLSAgICAgICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0SW5Hcm91cElmQXZh
aWxhYmxlKHJlcXVlc3QsIFtyZXF1ZXN0XSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7
Ci0KICAgICAgICAgaXQoJ3Nob3VsZCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgb25seSBo
YXMgYW4gaW4tcHJvZ3Jlc3MgYnVpbGQgb24gdGhlIG1hdGNoaW5nIHNsYXZlJywgKCkgPT4gewog
ICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tS
ZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAK
LSAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10s
IHtbLTFdOiBzYW1wbGVJblByb2dyZXNzQnVpbGREZXByZWNhdGVkKCl9KS50aGVuKCgpID0+IHsK
KyAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10s
IHNhbXBsZUluUHJvZ3Jlc3NCdWlsZCgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBj
b25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwg
TW9ja01vZGVscy5zcGVlZG9tZXRlcik7CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxl
UmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShyZXF1ZXN0LCBbcmVxdWVzdF0sIG51bGwpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwpAQCAtMTgzMSw3
ICsxODQzLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICBp
dCgnc2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVpbGRlciBoYXMgYW4gaW4tcHJvZ3Jlc3Mg
YnVpbGQgb24gYW5vdGhlciBzbGF2ZScsICgpID0+IHsKICAgICAgICAgICAgIGxldCBzeW5jZXIg
PSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25m
aWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogCi0gICAgICAgICAgICByZXR1cm4gcHVs
bEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7Wy0xXTogc2FtcGxlSW5Qcm9ncmVz
c0J1aWxkRGVwcmVjYXRlZCgnb3RoZXItc2xhdmUnKX0pLnRoZW4oKCkgPT4geworICAgICAgICAg
ICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwgc2FtcGxlSW5Q
cm9ncmVzc0J1aWxkKCdvdGhlci1zbGF2ZScpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBh
ZCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVk
dWxlUmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShyZXF1ZXN0LCBbcmVxdWVzdF0sIG51bGwpOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335513</attachid>
            <date>2018-03-10 08:50:05 -0800</date>
            <delta_ts>2018-03-16 15:57:58 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>buildbot_perf_update_v5.patch</filename>
            <type>text/plain</type>
            <size>185817</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjI5NDk2KQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIzIEBACisyMDE4LTAzLTA5ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBVcGRhdGUgUGVyZiBidWlsZGJvdCBzeW5jaW5nIHNjcmlwdHMgZm9yIEJ1
aWxkYm90IDAuOQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc1OTY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB0b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qczoKKyAgICAgICAgKEJ1aWxkYm90
VHJpZ2dlcmFibGUucHJvdG90eXBlLmluaXRTeW5jZXJzKTogU3dpdGNoIGZyb20gRGVwcmVjYXRl
ZCB2ZXJzaW9uIHRvIG5ldyB2ZXJzaW9uIG9mIGdldEJ1aWxkZXJOYW1lVG9JRE1hcC4KKyAgICAg
ICAgKiB0b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanM6CisgICAgICAgIChCdWlsZGJvdFN5bmNl
ci5wcm90b3R5cGUuc2NoZWR1bGVSZXF1ZXN0SW5Hcm91cElmQXZhaWxhYmxlKTogU3dpdGNoIGZy
b20gRGVwcmVjYXRlZCB2ZXJzaW9uIHRvIG5ldyB2ZXJzaW9uIG9mIHNjaGVkdWxlUmVxdWVzdC4K
KyAgICAgICAgKEJ1aWxkYm90U3luY2VyLnByb3RvdHlwZS5wdWxsQnVpbGRib3QpOiBTd2l0Y2gg
ZnJvbSBEZXByZWNhdGVkIHZlcnNpb24gdG8gbmV3IHZlcnNpb24gb2YgcGF0aEZvclBlbmRpbmdC
dWlsZHMsIF9wdWxsUmVjZW50QnVpbGRzIAorICAgICAgICBhbmQgQnVpbGRib3RCdWlsZEVudHJ5
LiBQYXJzZSB0aGUgcGVuZGluZyBidWlsZC1yZXF1ZXN0cyBkYXRhIGluIEJ1aWxkYm90IDAuOSBm
b3JtYXQuCisgICAgICAgICogdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanM6IFVw
ZGF0ZWQgYXMgcGVyIEJ1aWxkYm90IDAuOSBjb2RlLgorICAgICAgICAqIHNlcnZlci10ZXN0cy90
b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzOiBEaXR0by4KKyAgICAgICAg
KiBzZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanM6IERpdHRv
LgorICAgICAgICAqIHNlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzOiBEaXR0by4K
KyAgICAgICAgKE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwpOiBNZXRob2QgdG8gY29uc3RydWN0
IHBlbmRpbmdCdWlsZHNVcmwgaW4gQnVpbGRib3QgMC45IGZvcm1hdC4KKyAgICAgICAgKE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCk6IERpdHRvIGZvciByZWNlbnRCdWlsZHNVcmwuCisKIDIwMTgt
MDMtMDQgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEJ1
aWxkYm90QnVpbGRFbnRyeSBmb3IgYnVpbGRib3QgMC45IHVzZXMgaW5jb3JyZWN0IGJ1aWxkcmVx
dWVzdGlkCkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xz
LWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVz
dHMuanMJKHJldmlzaW9uIDIyOTQ5NikKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDcgKzM2LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5j
dGlvbgogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2
ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2Vy
YWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVB
UEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAg
IHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdn
ZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNv
bHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1
aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJl
Y2F0ZWQoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwo
KSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKQEAgLTQ2LDI5
ICs0NiwzMCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1
cygpLCAncGVuZGluZycpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmws
ICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKFtdKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRl
ci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxk
KCksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoKX0pOworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1
aWxkRGF0YSgpLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSgpXX0pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2J1aWxkZXJzL3NvbWUtYnVpbGRl
ci0xL2ZvcmNlJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4
NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1z
b21lLWJ1aWxkZXItMSd9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21l
LWJ1aWxkZXItMScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS5kYXRhLCB7J2lkJzogNzAyLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0
aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ3drJzogJzE5
MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6IDcwMiwgJ2Zv
cmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319KTsKICAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVp
bGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzNdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCgpXSkKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoKSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2pzb24vYnVp
bGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKHtbLTFdOiBNb2Nr
RGF0YS5ydW5uaW5nQnVpbGQoKSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCgpfSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJs
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtN
b2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKCksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKCld
fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZv
clRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhTaW5nbGVCdWlsZGVy
KCkudHJpZ2dlcmFibGVOYW1lKTsKQEAgLTkyLDI4ICs5MywyOCBAQCBkZXNjcmliZSgnQnVpbGRi
b3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgbGV0IHNsYXZlSW5mbyA9
IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAg
ICAgICBsZXQgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsK
ICAgICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCku
dGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9j
a0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxk
Ym90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RB
bmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWls
ZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEv
cGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKCldKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoKSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJz
L3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEu
cnVubmluZ0J1aWxkKCksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoKX0pOworICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnIDogW01vY2tE
YXRhLnJ1bm5pbmdCdWlsZERhdGEoKSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoKV19KTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVp
bGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKCld
KQorICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
LnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKE1vY2tEYXRhLnBl
bmRpbmdCdWlsZCgpKQogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51
cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29s
dmUoe1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCgpLCBbLTJdOiBNb2NrRGF0YS5maW5pc2hl
ZEJ1aWxkKCl9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
LCAyKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZl
KHsnYnVpbGRzJyA6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKCksIE1vY2tEYXRhLmZpbmlz
aGVkQnVpbGREYXRhKCldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwpAQCAtMTQyLDUwICsxNDMsNTEgQEAgZGVz
Y3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGNv
bnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQn
fTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdn
ZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xh
dmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFi
bGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAg
ICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBN
b2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dF
VCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90
QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9qc29u
L2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWls
ZCh7YnVpbGRSZXF1ZXN0SWQ6IDk5OX0pXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogOTk5
fSkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIw
Mi9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5yZXNvbHZlKFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlciAyJykpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVz
b2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEm
c2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2
ZSh7fSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIl
MjAyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDUpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAy
L2ZvcmNlJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzRdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcs
ICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMCcsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21l
LWJ1aWxkZXItMid9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s0XS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1
aWxkZXItMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s0XS5kYXRhLCB7J2lkJzogJzcwMCcsICdqc29ucnBjJzogJzIuMCcsICdtZXRo
b2QnOiAnZm9yY2UnLCAncGFyYW1zJzogeworICAgICAgICAgICAgICAgICAgICAnd2snOiAnMTkx
NjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMCcsICdm
b3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMid9fSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKCdPSycpOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgJy9qc29uL2J1aWxkZXJz
L3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRS
ZXF1ZXN0SWQ6IDk5OX0pXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJl
c29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogOTk5fSkpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzZdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9wZW5kaW5n
QnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNv
bHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXIgMicsIGJ1
aWxkUmVxdWVzdElkOiA3MDB9KV0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2
XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiAzLCBidWlsZFJlcXVl
c3RJZDogNzAwfSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDkpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzddLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnJl
c29sdmUoe30pOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWls
ZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s4XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4g
c3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKQEAgLTIwMiw3ICsyMDQs
NyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgp
LCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyLycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAw
KS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsRm9yUGVuZGluZ0J1aWxkcyg3MDApKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSku
c3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5k
aW5nJyk7CkBAIC0yMjMsNDMgKzIyNSw0MyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJs
ZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgbGV0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3lu
Yy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBsZXQgdHJp
Z2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAg
ICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0
cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5k
UmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRi
b3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNE
ZXByZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJz
VVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAy
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5k
aW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5y
ZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV0pOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRp
bmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pKTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNv
bi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZShbXSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUt
YnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9
LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7
CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9KTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcv
anNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5n
QnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV0pOworICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s0XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6
IDcwMH0pKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRl
ciUyMDIvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbNV0ucmVzb2x2ZShbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVd
LnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDgpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzZdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnJl
c29sdmUoe30pOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWls
ZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4g
c3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKQEAgLTI3Niw3ICsyNzgs
NyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgp
LCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0
YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmxGb3JQZW5kaW5nQnVpbGRzKDcwMCkpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0
dXMoKSwgJ3BlbmRpbmcnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKQEAgLTI5Nyw1MCArMjk5LDUxIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywg
ZnVuY3Rpb24KICAgICAgICAgICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMt
c2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAgICAgY29uc3QgdHJp
Z2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAg
ICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0
cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5k
UmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRi
b3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNE
ZXByZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJz
VVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAy
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5k
aW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5y
ZXNvbHZlKFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0x
JykpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7
fSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAy
L3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLnJlc29sdmUoW10pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWls
ZGVyIDInKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNv
bHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZz
ZWxlY3Q9LTInKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJl
c29sdmUoe1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0p
LCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSl9KTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51
cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHsnYnVpbGRzJyA6
IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIE1vY2tE
YXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAwfSldfSk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAn
R0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbM10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1
aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNd
LnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwg
J1BPU1QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s0XS51cmwsICcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvZm9yY2UnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwg
eyd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQn
OiAnNzAyJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ30pOworICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwg
Jy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEs
IHsnaWQnOiAnNzAyJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJh
bXMnOiB7CisgICAgICAgICAgICAgICAgICAgICd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEg
MTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAyJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2Zv
cmNlLXNvbWUtYnVpbGRlci0xJ319KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzRdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
Nyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVu
ZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0u
cmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAyfSldKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZShNb2NrRGF0YS5wZW5k
aW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDJ9KSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCAnL2pz
b24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnJlc29sdmUoW10pOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHMubGVuZ3RoLCA5KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsICcvanNvbi9idWlsZGVycy9zb21l
LWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnJlc29sdmUoe1stMV06IE1vY2tEYXRhLnJ1bm5p
bmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1
aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSl9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s3XS5yZXNvbHZlKHsnYnVpbGRzJyA6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRh
KHtidWlsZFJlcXVlc3RJZDogNzAxfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWls
ZFJlcXVlc3RJZDogNzAwfSldfSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbOF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMGJ1aWxkZXIlMjAyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnJlc29sdmUoe30pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpAQCAt
MzU3LDExICszNjAsMTEgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlv
bgogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2ZhaWxlZCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5z
dGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUtYnVpbGRl
ci0xL2J1aWxkcy8xMjMnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1i
dWlsZGVyLTEnLCAxMjMpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLzEyNCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAx
KS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyNCkp
OwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAy
KS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJr
aXQub3JnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xLycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEu
c3RhdHVzVXJsRm9yUGVuZGluZ0J1aWxkcyg3MDIpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0
YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgIH0pOwpAQCAtMzc4LDMyICszODEsMzIgQEAg
ZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAg
IGxldCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3Jk
J307CiAgICAgICAgICAgICAgICAgbGV0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dl
cmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2
ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJs
ZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1v
Y2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VU
JywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RC
dWlsZGVycygpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCAnL2pzb24v
YnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxk
KHtidWlsZFJlcXVlc3RJZDogNzAwfSldKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9
KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJs
LCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0
PS0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikp
OwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAn
L2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZShbXSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUt
YnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmlu
Z0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSl9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1szXS5yZXNvbHZlKE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0
SWQ6IDcwMH0pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CkBAIC00MTksNyArNDIyLDcgQEAgZGVzY3JpYmUoJ0J1
aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgs
IDQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
NzAwKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Vi
a2l0Lm9yZy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvMTI0Jyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMTI0KSk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAn
cGVuZGluZycpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwpAQCAt
NDQzLDUwICs0NDYsNTEgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlv
bgogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScs
IHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJs
ZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEko
KSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5
bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJh
YmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZl
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxk
ZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0
ZWQoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwg
TW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWls
ZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUo
W01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMn0pXSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxk
KHtidWlsZFJlcXVlc3RJZDogNzAyfSkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxk
ZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKFtdKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgNCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVy
LTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQo
e2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVp
bGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUt
YnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0ucmVzb2x2ZSh7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRS
ZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0
SWQ6IDcwMH0pXX0pOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBi
dWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCA1KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2J1aWxkZXJzL3NvbWUlMjBidWls
ZGVyJTIwMi9mb3JjZScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAx
NUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MTAnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9y
Y2Utc29tZS1idWlsZGVyLTInfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Ut
c29tZS1idWlsZGVyLTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeydpZCc6ICc3MTAnLCAnanNvbnJwYyc6ICcyLjAn
LCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ3dr
JzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3
MTAnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTInfX0pOwogICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZSgnT0snKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcvanNvbi9i
dWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQo
e2J1aWxkUmVxdWVzdElkOiA3MDJ9KV0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s1XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMn0p
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s2XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIv
cGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Nl0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVy
IDInLCBidWlsZFJlcXVlc3RJZDogNzEwfSldKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbNl0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogMywgYnVp
bGRSZXF1ZXN0SWQ6IDcxMH0pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA5KTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s3XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMv
P3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzddLnJlc29sdmUoe1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1
ZXN0SWQ6IDcwMX0pLCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZFJlcXVlc3RJ
ZDogNzAwfSl9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
LCAyKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZl
KHsnYnVpbGRzJyA6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDog
NzAxfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAwfSld
fSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
OF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbOF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAy
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzhdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJv
bWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpAQCAtNTExLDE1ICs1MTUsMTUgQEAg
ZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5h
bGwoKS5sZW5ndGgsIDgpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgJ2h0
dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8xMjMn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjMp
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MSkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwg
TW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyNCkpOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3Nj
aGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJz
L3NvbWUtYnVpbGRlci0xLycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsRm9yUGVu
ZGluZ0J1aWxkcyg3MDIpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1VybCgpLCBudWxs
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcx
MCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Vi
a2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1c1VybCgpLCBNb2Nr
RGF0YS5zdGF0dXNVcmxGb3JQZW5kaW5nQnVpbGRzKDcxMCkpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcx
MSkuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzEyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKQEAgLTU0Myw1NSAr
NTQ3LDU3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAg
ICAgICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29y
ZDogJ3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBuZXcg
QnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tS
ZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlz
ZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5j
T25jZSgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERl
cHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOwor
ICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRh
Lm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0g
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKFtdKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmws
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMn
KTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoW10p
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvanNvbi9i
dWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe1stMV06IE1v
Y2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pfSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZShNb2NrRGF0YS5ydW5uaW5nQnVpbGQo
e2J1aWxkUmVxdWVzdElkOiA3MTB9KSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCAnL2pzb24vYnVpbGRl
cnMvc29tZSUyMGJ1aWxkZXIlMjAyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7Wy0xXTogTW9j
a0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyIDInLCBidWlsZFJlcXVl
c3RJZDogNzAwfSl9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVy
IDInLCAyKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNv
bHZlKE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiAzLCBidWlsZFJlcXVlc3RJZDog
NzAwfSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDYpOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1Qn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0
XS51cmwsICcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL2ZvcmNlJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsn
d2snOiAnMTkyNzM2JywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzog
JzcwMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMid9KTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcv
YXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMicpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7
J2lkJzogJzcwMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1z
JzogeworICAgICAgICAgICAgICAgICAgICAnd2snOiAnMTkyNzM2JywgJ29zJzogJzEwLjExIDE1
QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3Jj
ZS1zb21lLWJ1aWxkZXItMid9fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s0XS5yZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcvYnVpbGRlcnMvc29t
ZS1idWlsZGVyLTEvZm9yY2UnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbNV0uZGF0YSwgeyd3ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAu
MTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzExJywgJ2ZvcmNlc2NoZWR1bGVyJzog
J2ZvcmNlLXNvbWUtYnVpbGRlci0xJ30pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2Zv
cmNlLXNvbWUtYnVpbGRlci0xJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLmRhdGEsIHsnaWQnOiAnNzExJywgJ2pzb25ycGMnOiAn
Mi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOiB7CisgICAgICAgICAgICAgICAgICAg
ICd3ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQn
OiAnNzExJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319KTsKICAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoJ09LJyk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCAnL2pz
b24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1
aWxkKHtidWlsZFJlcXVlc3RJZDogNzExfSldKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbNl0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3
MTF9KSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbN10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIl
MjAyL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzddLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVp
bGRlciAyJyxidWlsZFJlcXVlc3RJZDogNzAxfSldKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbN10ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDogMywg
YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAx
MCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
OF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbOF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVp
bGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s4XS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxk
UmVxdWVzdElkOiA3MTB9KX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1
aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhd
LnJlc29sdmUoTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzEwfSkpOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzldLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzldLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWls
ZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzldLnJlc29sdmUoe1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRl
cjogJ3NvbWUgYnVpbGRlciAyJywgYnVpbGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0udXJsLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0ucmVzb2x2ZShNb2NrRGF0YS5ydW5uaW5nQnVpbGQo
e2J1aWxkZXJJZDogMywgYnVpbGRSZXF1ZXN0SWQ6IDcwMH0pKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CkBAIC02
MTUsMTcgKzYyMSwxNyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9u
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAncnVubmluZycpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5z
dGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWls
ZGVyJTIwMi9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3Nv
bWUgYnVpbGRlciAyJywgMTI0KSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgp
LCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyLycp
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAx
KS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsRm9yUGVuZGluZ0J1aWxkcyg3MDEpKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMiku
c3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5k
aW5nJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDMpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1c1Vy
bCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVp
bGRzLzEyNCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzEwKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXIt
MScsIDEyNCkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzExKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9i
dWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xLycpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzExKS5zdGF0dXNVcmwoKSwg
TW9ja0RhdGEuc3RhdHVzVXJsRm9yUGVuZGluZ0J1aWxkcyg3MTEpKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzKCksICdwZW5k
aW5nJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MTIpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CkBAIC02NDYs
MjYgKzY1MiwyNyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAg
ICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFz
c3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlID0g
bmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBN
b2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgc3luY1By
b21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUu
c3luY09uY2UoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVx
dWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgp
LCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0
YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkp
OwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcv
anNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKFtdKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUt
YnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgcmVxdWVzdHNbMV0ucmVzb2x2
ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzJdLnVybCwgJy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9mb3JjZScpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMl0uZGF0YSwgeyd3ayc6
ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAw
JywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ30pOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1
bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwocmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MDAnLCAnanNvbnJwYyc6ICcyLjAnLCAn
bWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ3drJzog
JzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDAn
LCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAg
ICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZl
LCAxMCkpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CkBAIC02NzQsMTMgKzY4MSwxMyBAQCBkZXNj
cmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLnVybCwgJy9qc29u
L2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWls
ZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVy
LTEnKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZl
KE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzRdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS51
cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAg
ICAgICAgIHJlcXVlc3RzWzRdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBz
eW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpAQCAtNjg4LDcgKzY5NSw3
IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuYWxsKCkubGVuZ3RoLCA4KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCks
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS8nKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3Rh
dHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybEZvclBlbmRpbmdCdWlsZHMoNzAwKSk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1
cygpLCAncGVuZGluZycpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycp
OwpAQCAtNzIzLDU0ICs3MzAsNTUgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBm
dW5jdGlvbgogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1z
bGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICB0cmlnZ2VyYWJs
ZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEko
KSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5
bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJh
YmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZl
KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0
ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAg
ICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzBdLCAnR0VUJywgTW9j
a0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVy
cygpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVl
c3RzWzBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWls
ZHMnLCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVz
dHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScp
LCB7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVl
c3RBbmRSZXNvbHZlKHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVp
bGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsCi0gICAgICAgICAgICAgICAgICAg
IHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KSwgWy0y
XTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pfSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbMV0sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMiksCisgICAgICAgICAg
ICAgICAgICAgIHsnYnVpbGRzJyA6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJl
cXVlc3RJZDogNzAwfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJ
ZDogNzEwfSldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzJdLCAnUE9TVCcsICcvYnVpbGRlcnMvc29tZS1i
dWlsZGVyLTEvZm9yY2UnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVl
c3RzWzJdLmRhdGEsIHsnd2snOiAnMTkyNzM2JywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWls
ZC1yZXF1ZXN0LWlkJzogJzcwMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxk
ZXItMSd9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0
c1syXSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVy
LTEnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MDEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzog
J2ZvcmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ3drJzogJzE5MjczNics
ICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDEnLCAnZm9yY2Vz
Y2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1szXSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJywKLSAg
ICAgICAgICAgICAgICAgICAgW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6
IDcwMX0pXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVz
dHNbM10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScp
LAorICAgICAgICAgICAgICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVz
dElkOiA3MDF9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDUpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsCi0gICAgICAgICAgICAg
ICAgICAgIHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9
KSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pfSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbNF0sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMiksCisgICAg
ICAgICAgICAgICAgICAgIHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1
aWxkUmVxdWVzdElkOiA3MDB9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVx
dWVzdElkOiA3MTB9KV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9
IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25j
ZSgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s1
XSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tE
YXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxk
Ym90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDcpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZl
KHJlcXVlc3RzWzZdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRp
bmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUo
cmVxdWVzdHNbNl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScpLCB7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDgpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsCi0gICAgICAgICAgICAg
ICAgICAgIHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDF9
KSwgWy0yXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSl9KTsK
KyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s3XSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSwKKyAgICAg
ICAgICAgICAgICAgICAgeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVp
bGRSZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVl
c3RJZDogNzAwfSldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwotICAgICAgICAgICAgICAgIGFz
c2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpLCB7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s5XSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInLAotICAgICAgICAgICAgICAgICAgICB7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxk
KHtidWlsZFJlcXVlc3RJZDogNzAxfSksIFstMl06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVp
bGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJl
c29sdmUocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUt
YnVpbGRlci0xJywgMiksCisgICAgICAgICAgICAgICAgICAgIHsnYnVpbGRzJzogW01vY2tEYXRh
LnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgTW9ja0RhdGEucnVubmlu
Z0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXX0pOwogICAgICAgICAgICAgICAgIHJl
dHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKQEAgLTc4Niwz
OCArNzk0LDM5IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAg
ICAgICAgICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNz
d29yZDogJ3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBu
ZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1v
Y2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5jUHJv
bWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5z
eW5jT25jZSgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VS
TERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkp
OworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tE
YXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7
Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKFtdKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVp
bGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9idWlsZGVycy9z
b21lLWJ1aWxkZXItMS9mb3JjZScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5kYXRhLCB7J3drJzogJzE5MjczNicsICdvcyc6ICcx
MC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDEnLCAnZm9yY2VzY2hlZHVsZXIn
OiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMv
Zm9yY2Utc29tZS1idWlsZGVyLTEnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MDEnLCAnanNvbnJwYyc6
ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAg
ICAgJ3drJzogJzE5MjczNicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1p
ZCc6ICc3MDEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSgnT0snKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcv
anNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5n
QnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDF9KV0pOworICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1szXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6
IDcwMX0pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA1KTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0
XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZz
ZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s0XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
LCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZl
KHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKQEAgLTgzNiw3ICs4NDUsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmln
Z2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnZmFpbGVkJyk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBudWxs
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MSkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Vi
a2l0Lm9yZy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS8nKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIE1vY2tEYXRh
LnN0YXR1c1VybEZvclBlbmRpbmdCdWlsZHMoNzAxKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5z
dGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVuZGluZycpOwpAQCAtODU1LDMxICs4NjQs
MzEgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAg
ICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAn
cGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWls
ZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90
ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0g
dHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNl
KCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVj
YXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9j
a0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNl
dCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVy
bCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoW10pOworICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9z
b21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvanNvbi9idWlsZGVycy9zb21l
LWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS5yZXNvbHZlKFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbM10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUt
YnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
M10ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CkBAIC05MTIsMjYgKzkyMSwyOCBAQCBkZXNjcmliZSgn
QnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgY29uc3Qgc2xh
dmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAg
ICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUo
Y29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8s
IGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0
U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwg
J0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRh
Lm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9j
a0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVy
cygpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCAnL2pzb24vYnVpbGRl
cnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDIpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1
aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMp
OwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
Lm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvZm9yY2UnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0uZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJl
cXVlc3QtaWQnOiAnNzEwJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0x
J30pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0xJyk7
CisKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0uZGF0YSwgeydpZCc6ICc3MTAnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2Zv
cmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ3drJzogJzE5MTYyMicsICdv
cyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MTAnLCAnZm9yY2VzY2hl
ZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgIH0pOwogICAg
ICAgICB9KTsKQEAgLTEwMDAsNyArMTAxMSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJh
YmxlJywgZnVuY3Rpb24KICAgICAgICAgICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTog
J3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAgICAgY29u
c3QgYnVpbGRib3RUcmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywg
VGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIp
OwogICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlUHJvbWlzZSA9IGJ1aWxkYm90VHJp
Z2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IGJ1aWxkYm90VHJpZ2dlcmFibGUudXBk
YXRlVHJpZ2dlcmFibGUoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29s
dmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVp
bGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVj
YXRlZCgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgp
LCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gdHJpZ2dlcmFibGVQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiByZWZldGNo
TWFuaWZlc3QoKSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRy
aWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMSk7CkBAIC0xMDI3LDcgKzEwMzgsNyBAQCBkZXNjcmli
ZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgY29uc3Qg
c2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9Owog
ICAgICAgICAgICAgICAgIGNvbnN0IGJ1aWxkYm90VHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RU
cmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEks
IHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZVBy
b21pc2UgPSBidWlsZGJvdFRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiBidWls
ZGJvdFRyaWdnZXJhYmxlLnVwZGF0ZVRyaWdnZXJhYmxlKCkpOwotICAgICAgICAgICAgICAgIGFz
c2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0sICdHRVQnLCBN
b2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVp
bGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVz
dEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1
aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHRyaWdnZXJhYmxlUHJvbWlzZTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gcmVmZXRjaE1hbmlmZXN0KCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDEpOwpJbmRleDogV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWlu
dGVncmF0aW9uLXRlc3RzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qcwko
cmV2aXNpb24gMjI5NDk2KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0xNTQsNyArMTU0LDcgQEAgZnVuY3Rpb24gY3JlYXRlVHJpZ2dlcmFibGUoY29uZmlnID0g
Y29uZgogICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICB0cmlnZ2VyYWJsZSA9IG5ldyBCdWls
ZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90
ZUFQSSwge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9LCBuZXcgTW9j
a0xvZ2dlcik7CiAgICAgICAgIGNvbnN0IHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5
bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnVwZGF0ZVRyaWdnZXJhYmxlKCkpOwotICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAn
R0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEu
bW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVp
bGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7
CiAgICAgfSkudGhlbigoKSA9PiBNYW5pZmVzdC5mZXRjaCgpKS50aGVuKCgpID0+IHsKQEAgLTI0
OSwzMiArMjQ5LDMzIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgdGFza0lkID0gZmlyc3RUZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAgICAg
ICAgICBhbm90aGVyVGFza0lkID0gc2Vjb25kVGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAgICAg
ICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4g
dHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXBy
ZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9j
a0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVy
cygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbTW9ja0RhdGEucGVuZGlu
Z0J1aWxkKHtidWlsZGVyOiAnc29tZSB0ZXN0ZXInLCBidWlsZFJlcXVlc3RJZDogNX0pXSk7Ci0g
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9hbm90aGVyJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZCh7YnVpbGRlcklkOiA1LCBidWlsZFJlcXVlc3RJZDogNX0pKTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnYW5vdGhlciB0ZXN0ZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAgICAgICAg
ICAgICAgIFstMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgdGVzdGVy
JywgYnVpbGRSZXF1ZXN0SWQ6IDF9KX0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvYW5vdGhlciUyMHRlc3Rl
ci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZSB0ZXN0ZXInLCAyKSwKKyAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5n
QnVpbGQoe2J1aWxkZXJJZDogNSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnYW5vdGhlciB0ZXN0ZXInLCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L2Fub3RoZXIlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsW10pOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ2Fu
b3RoZXIgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOCk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVz
dGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAgICAgICBbLTFd
OiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIHRlc3RlcicsIGJ1aWxkUmVx
dWVzdElkOiA1fSksCi0gICAgICAgICAgICAgICAgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWls
ZCh7YnVpbGRlcjogJ3NvbWUgdGVzdGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KQorICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHsKKyAgICAgICAgICAgICAgICAnYnVp
bGRzJzogWworICAgICAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHti
dWlsZGVySWQ6IDUsIGJ1aWxkUmVxdWVzdElkOiA1fSksCisgICAgICAgICAgICAgICAgICAgIE1v
Y2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZGVySWQ6IDUsIGJ1aWxkUmVxdWVzdElkOiAx
fSldCiAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL2Fub3RoZXIlMjB0ZXN0ZXIvYnVp
bGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J2Fub3RoZXIgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlz
ZTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3Vw
LmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAtMzYzLDQxICszNjQsNDEgQEAgZGVzY3Jp
YmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAg
IHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdn
ZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRl
ZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRh
LmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7
CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVy
JTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lIHRlc3RlcicpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVp
bGRlcicpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwg
e30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVp
bGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBi
dWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSBidWlsZGVyJywgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhl
ciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVy
L2ZvcmNlJywgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZd
LmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ3drLXBhdGNoJzogUmVtb3RlQVBJLnVybCgnL2FwaS91
cGxvYWRlZC1maWxlLzEuZGF0JyksCi0gICAgICAgICAgICAgICAgJ2J1aWxkLXJlcXVlc3QtaWQn
OiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hlY2tib3gnOiAn
YnVpbGQtd2snfSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywg
J09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsn
aWQnOiAnMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzog
eworICAgICAgICAgICAgICAgICd3ayc6ICcxOTE2MjInLCAnd2stcGF0Y2gnOiBSZW1vdGVBUEku
dXJsKCcvYXBpL3VwbG9hZGVkLWZpbGUvMS5kYXQnKSwgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywg
J2J1aWxkLXJlcXVlc3QtaWQnOiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWls
ZHMnfX0pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdC
dWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s4XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRz
JywKLSAgICAgICAgICAgICAgICBbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29t
ZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KV0pOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIl
MjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUgdGVzdGVyJyksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWls
ZGVyJyksCisgICAgICAgICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6
IDEsIGJ1aWxkUmVxdWVzdElkOiAxfSkpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhl
ciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0
ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAg
ICAgICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXIn
LCBidWlsZFJlcXVlc3RJZDogMX0pCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9v
dGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAorICAgICAgICAgICAgICAgIE1vY2tEYXRh
LnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDogMX0pCisgICAgICAg
ICAgICApOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJd
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9
KTsKICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRy
dWUpOwpAQCAtNDExLDcgKzQxMiw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAg
ICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0
YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1p
dFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTQ0OCw3ICs0NDksNyBAQCBkZXNj
cmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChi
dWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUl
MjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0
KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKTsKQEAgLTQ3Niw0MiArNDc3LDQ0IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90Jywg
ZnVuY3Rpb24gKCkgewogCiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAg
ICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9
PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERl
cHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBN
b2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxk
ZXJzKCkpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXInKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWls
ZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxk
cy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWls
ZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAgICAgICBbLTFd
OiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRS
ZXF1ZXN0SWQ6IDF9KQotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1
aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lIGJ1aWxkZXInLCAyKSwKKyAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1
aWxkKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAxfSkKKyAgICAgICAgICAgICk7Cisg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcp
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NU
JywgJy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9mb3JjZScsICdPSycpOwotICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J3drJzogJzE5MTYyMicsICdidWls
ZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywg
J2NoZWNrYm94JzogJ2J1aWxkLXdrJ30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNl
LWFiLWJ1aWxkcycsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0
c1s2XS5kYXRhLCB7J2lkJzogJzInLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNl
JywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJl
cXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hl
Y2tib3gnOiAnYnVpbGQtd2snfX0pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIw
dGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRl
ci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbOV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3Bl
bmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVy
JyksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhd
LCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsK
KyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEz
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzExXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInLCB7Ci0gICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEucnVubmlu
Z0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDJ9KSwKLSAg
ICAgICAgICAgICAgICBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29t
ZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KSwKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXInLCAyKSwgeworICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCisgICAgICAgICAg
ICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkZXJJZDogMSwgYnVpbGRS
ZXF1ZXN0SWQ6IDJ9KSwKKyAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWls
ZERhdGEoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KV0KICAgICAgICAgICAgIH0p
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1sxMl0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAy
KSwge30pOwogICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJ
ZCwgdHJ1ZSk7CkBAIC01MjUsNyArNTI4LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7
CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRw
Oi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2Nr
RGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0
Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBj
b25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC01NDIsNyArNTQ1
LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2Vy
dCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tE
YXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAg
Y29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAg
LTU2NCw3ICs1NjcsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAg
IGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJr
aXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1Vy
bCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVp
bGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNl
dCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTU4MSw3ICs1ODQsNyBAQCBkZXNjcmli
ZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChvdGhl
ckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxk
UmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNV
cmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90
aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC02MzYsNDEg
KzYzOSw0MiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtd
KTsKIAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2Vycygp
LnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVp
bGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVj
YXRlZCgpKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBd
LCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVp
bGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pz
b24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
b3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRl
c3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9z
b21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30p
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQn
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30pOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYnVpbGRl
cnMvc29tZSUyMGJ1aWxkZXIvZm9yY2UnLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAnd2stcGF0Y2gnOiBSZW1v
dGVBUEkudXJsKCcvYXBpL3VwbG9hZGVkLWZpbGUvMS5kYXQnKSwKLSAgICAgICAgICAgICAgICAn
YnVpbGQtcmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxk
cycsICdjaGVja2JveCc6ICdidWlsZC13aycsICdwbGF0Zm9ybS1uYW1lJzogJ3NvbWUgcGxhdGZv
cm0nfSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwg
J1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAn
MScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzogeworICAg
ICAgICAgICAgICAgICd3ayc6ICcxOTE2MjInLCAnd2stcGF0Y2gnOiBSZW1vdGVBUEkudXJsKCcv
YXBpL3VwbG9hZGVkLWZpbGUvMS5kYXQnKSwgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMScsICdmb3Jj
ZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLAorICAgICAgICAgICAgICAgICdjaGVja2Jv
eCc6ICdidWlsZC13aycsICdwbGF0Zm9ybS1uYW1lJzogJ3NvbWUgcGxhdGZvcm0nfX0pOwogICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywKLSAgICAgICAg
ICAgICAgICBbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywg
YnVpbGRSZXF1ZXN0SWQ6IDF9KV0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbOV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3Bl
bmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVy
JyksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhd
LCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksCisgICAg
ICAgICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVx
dWVzdElkOiAxfSkpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyks
IHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMTMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVy
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAgICAgICBbLTFdOiBN
b2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVl
c3RJZDogMX0pCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxk
ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlcicsIDIpLAorICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWls
ZCh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDogMX0pCisgICAgICAgICAgICApOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAg
ICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAtNjg0
LDcgKzY4OCw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAg
ICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNz
ZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
L2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29t
ZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxk
UmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTcyMSw3ICs3MjUsNyBAQCBkZXNjcmliZSgnc3luYy1i
dWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3Qu
aXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsK
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0Nv
bXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1
aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAg
ICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAg
ICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAg
LTc0OSw0MiArNzUzLDQ0IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkg
ewogCiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBzeW5j
UHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJs
ZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwg
TW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWls
ZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUl
MjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1
aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIn
KSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsK
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sz
XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0x
JnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/
c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5m
aW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9
KQotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRz
Lz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUgdGVzdGVyJywgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxk
ZXInLCAyKSwKKyAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVy
SWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAxfSkKKyAgICAgICAgICAgICk7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9idWlsZGVy
cy9zb21lJTIwYnVpbGRlci9mb3JjZScsICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlk
JzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ2NoZWNrYm94Jzog
J2J1aWxkLXdrJywgJ3BsYXRmb3JtLW5hbWUnOiAnc29tZSBwbGF0Zm9ybSd9KTsKKyAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3Yy
L2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcyJywgJ2pzb25ycGMnOiAn
Mi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOiB7CisgICAgICAgICAgICAgICAgJ3dr
JzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAn
Zm9yY2UtYWItYnVpbGRzJywgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ3BsYXRmb3JtLW5hbWUn
OiAnc29tZSBwbGF0Zm9ybSd9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0
ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVy
L3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s5XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVu
ZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXIn
KSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMp
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0
PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5n
QnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMn0pLAotICAg
ICAgICAgICAgICAgIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdzb21l
IGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pLAorICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlcicsIDIpLCB7CisgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKKyAgICAgICAgICAg
ICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRlcklkOiAxLCBidWlsZFJl
cXVlc3RJZDogMn0pLAorICAgICAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxk
RGF0YSh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDogMX0pXQogICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzEyXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIp
LCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lk
LCB0cnVlKTsKQEAgLTc5OCw3ICs4MDQsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsK
ICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6
Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tE
YXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQu
bm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNv
bnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTgxNSw3ICs4MjEs
NyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0
KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0Rh
dGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBj
b25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAt
ODM3LDcgKzg0Myw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAg
YXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJs
KCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWls
ZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0
ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAtODU0LDcgKzg2MCw3IEBAIGRlc2NyaWJl
KCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KG90aGVy
QnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRS
ZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1Vy
bCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3Ro
ZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTkyNSw0NiAr
OTMxLDQ4IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyUm9vdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwob3RoZXJSb290c1swXS5maWxlbmFtZSgpLCAncm9vdDQ2LmRhdCcpOwog
ICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4o
KCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNV
UkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgp
KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VU
JywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RC
dWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSBidWlsZGVyJyksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIg
YnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9i
dWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIw
YnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7Ci0gICAgICAgICAgICAgICAg
Wy0xXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1
aWxkUmVxdWVzdElkOiAxfSksCi0gICAgICAgICAgICAgICAgWy0yXTogTW9ja0RhdGEuZmluaXNo
ZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAyfSksCisg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOworICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CisgICAgICAgICAgICAgICAgJ2J1
aWxkcyc6IFsKKyAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEo
e2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSwKKyAgICAgICAgICAgICAgICAgICAg
TW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6
IDJ9KV0KICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1
aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2J1aWxkZXJzL3NvbWUlMjB0
ZXN0ZXIvZm9yY2UnLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVz
dHNbNl0uZGF0YSwgeyd0ZXN0JzogJ3NvbWUtdGVzdCcsICd3ayc6ICcxOTE2MjInLCAnYnVpbGQt
cmVxdWVzdC1pZCc6ICczJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLXRlc3RzJywKLSAg
ICAgICAgICAgICAgICAncm9vdHMnOiBKU09OLnN0cmluZ2lmeShbe3VybDogZmlyc3RSb290LnVy
bCgpfV0pfSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2
XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItdGVzdHMnLCAnT0sn
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6
ICczJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOiB7Cisg
ICAgICAgICAgICAgICAgJ3Rlc3QnOiAnc29tZS10ZXN0JywgJ3drJzogJzE5MTYyMicsICdidWls
ZC1yZXF1ZXN0LWlkJzogJzMnLCdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi10ZXN0cycsICdy
b290cyc6IEpTT04uc3RyaW5naWZ5KFt7dXJsOiBmaXJzdFJvb3QudXJsKCl9XSl9fSk7CiAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDEwKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFsKLSAg
ICAgICAgICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIHRlc3Rl
cicsIGJ1aWxkUmVxdWVzdElkOiAzfSksCisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
dGVzdGVyJyksIFsKKyAgICAgICAgICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxk
ZXJJZDogNSwgYnVpbGRSZXF1ZXN0SWQ6IDN9KSwKICAgICAgICAgICAgIF0pOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdv
dGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0
ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAg
ICAgICAgICBbLTFdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWls
ZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KSwKLSAgICAgICAgICAgICAgICBbLTJdOiBNb2NrRGF0
YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6
IDJ9KSwKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwg
J0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwgeworICAgICAgICAg
ICAgICAgICdidWlsZHMnOiBbCisgICAgICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVk
QnVpbGREYXRhKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAxfSksCisgICAgICAgICAg
ICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZGVySWQ6IDEsIGJ1aWxk
UmVxdWVzdElkOiAyfSldCiAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUy
MGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVy
biBzeW5jUHJvbWlzZTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC05OTgsMzggKzEwMDYsNDEg
QEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAg
ICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4g
dHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXBy
ZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9j
a0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVy
cygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJl
dHVybiBQcm9taXNlLmFsbChbTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpLCB1cGxvYWRS
b290KDEsIDEyMyldKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0
ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3Bl
bmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGlu
Z0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwg
e30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdH
RVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0g
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMics
IHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNl
bGVjdD0tMicsIHsKLSAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQo
e2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMn0pLAotICAgICAgICAg
ICAgICAgIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxk
ZXInLCBidWlsZFJlcXVlc3RJZDogMX0pLAorICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUg
dGVzdGVyJywgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIn
LCAyKSwgeworICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCisgICAgICAgICAgICAgICAgICAg
IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6
IDJ9KSwKKyAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1
aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KQorICAgICAgICAgICAgICAgIF0KICAgICAg
ICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
NV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWls
ZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3Bl
bmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5n
QnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWls
ZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2
XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsK
KyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKKyAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKLSAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgJy9qc29u
L2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30p
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicsIHsKLSAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1
aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMiwgYnVpbGROdW1iZXI6IDEw
MDJ9KSwKLSAgICAgICAgICAgICAgICBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWls
ZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KSwKKyAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CisgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKKyAg
ICAgICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkZXJJZDog
MSwgYnVpbGRSZXF1ZXN0SWQ6IDIsIGJ1aWxkTnVtYmVyOiAxMDAyfSksCisgICAgICAgICAgICAg
ICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRlcklkOiAxLCBidWlsZFJl
cXVlc3RJZDogMX0pXQogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBi
dWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2Vu
dEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4g
c3luY1Byb21pc2U7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKQEAgLTEwNTAsNyArMTA2MSw3
IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAg
YXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQo
IW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxk
LndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEwMDInKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0Rh
dGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMDAyKSk7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CkBAIC0xMDg0LDM2ICsxMDk1LDM2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90Jywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFi
bGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2Nr
RGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRi
b3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwg
TW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5k
aW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1
aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRz
JywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7Cisg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwot
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCAn
L2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0y
Jywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0x
JnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5maW5pc2hlZEJ1
aWxkKHtidWlsZGVyOiAnb3RoZXIgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZE51
bWJlcjogMzEyfSksCi0gICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lIHRlc3RlcicsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWls
ZGVyJywgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywg
MiksCisgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcklkOiA0
LCBidWlsZFJlcXVlc3RJZDogMSwgYnVpbGROdW1iZXI6IDMxMn0pCisgICAgICAgICAgICApOwog
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCA5KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZd
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtd
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0g
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOworICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIpOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCAnL2pzb24vYnVpbGRl
cnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTIn
LCB7Ci0gICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRl
cjogJ290aGVyIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMSwgYnVpbGROdW1iZXI6IDMxMn0p
LAotICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXIn
LCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwg
e30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksCisgICAg
ICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcklkOiA0LCBidWlsZFJl
cXVlc3RJZDogMSwgYnVpbGROdW1iZXI6IDMxMn0pCisgICAgICAgICAgICApOwogICAgICAgICAg
ICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CkBAIC0xMTI0
LDcgKzExMzUsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGFzc2VydChidWlsZFJlcWV1c3RzWzBdLmlzQnVpbGQoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQoIWJ1aWxkUmVxZXVzdHNbMF0uaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxZXVzdHNbMF0uc3RhdHVzTGFiZWwoKSwgJ0ZhaWxlZCcpOwotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxZXVzdHNbMF0uc3RhdHVzVXJsKCksICdodHRwOi8v
YnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLzMxMicpOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxZXVzdHNbMF0uc3RhdHVzVXJsKCksIE1v
Y2tEYXRhLnN0YXR1c1VybCgnb3RoZXIgYnVpbGRlcicsIDMxMikpOwogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxZXVzdHNbMF0uYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAg
ICAgYXNzZXJ0KGJ1aWxkUmVxZXVzdHNbMV0uaXNCdWlsZCgpKTsKQEAgLTExOTIsNDAgKzEyMDMs
NDIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAK
ICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVu
KCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJz
VVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQo
KSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dF
VCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90
QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMp
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCAnL2pz
b24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVy
IGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIv
YnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRl
cnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2J1aWxkZXJzL3Nv
bWUlMjBidWlsZGVyL2ZvcmNlJywgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHJlcXVlc3RzWzZdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAn
MScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnb3duZWQtY29tbWl0cyc6
IGB7IldlYktpdCI6W3sicmV2aXNpb24iOiJvd25lZC1qc2MtNjE2MSIsInJlcG9zaXRvcnkiOiJK
YXZhU2NyaXB0Q29yZSIsIm93bmVyUmV2aXNpb24iOiIxOTE2MjIifV19YH0pOworICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIv
Zm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzEnLCAnanNvbnJwYyc6ICcy
LjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAnd2sn
OiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdm
b3JjZS1hYi1idWlsZHMnLAorICAgICAgICAgICAgICAgICdvd25lZC1jb21taXRzJzogYHsiV2Vi
S2l0IjpbeyJyZXZpc2lvbiI6Im93bmVkLWpzYy02MTYxIiwicmVwb3NpdG9yeSI6IkphdmFTY3Jp
cHRDb3JlIiwib3duZXJSZXZpc2lvbiI6IjE5MTYyMiJ9XX1gfX0pOwogICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7Ci0gICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywKLSAgICAgICAgICAgICAgICBbTW9j
a0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0
SWQ6IDF9KV0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
OV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMn
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKKyAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksCisgICAgICAgICAgICAgICAg
TW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAxfSkp
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MTMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2Vs
ZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5ydW5u
aW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pCi0g
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzEyXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
IHRlc3RlcicsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
cicsIDIpLAorICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklk
OiAxLCBidWlsZFJlcXVlc3RJZDogMX0pCisgICAgICAgICAgICApOworICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBz
eW5jUHJvbWlzZTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4g
VGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAtMTI0MCw3ICsxMjUzLDcg
QEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBh
c3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxk
UmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMv
c29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXIn
LCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOwpAQCAtMTI4MCw3ICsxMjkzLDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3Qn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQo
KSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNz
ZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAg
ICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC0xMzEzLDQy
ICsxMzI2LDQ0IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogCiAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBzeW5jUHJvbWlz
ZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5j
T25jZSgpKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBd
LCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0Rh
dGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1
aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUl
MjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWls
ZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIv
cGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0
ZXInKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30p
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Nik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5maW5pc2hl
ZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KQotICAg
ICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVz
dGVyJywgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAy
KSwKKyAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVySWQ6IDEs
IGJ1aWxkUmVxdWVzdElkOiAxfSkKKyAgICAgICAgICAgICk7CisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9idWlsZGVycy9zb21l
JTIwYnVpbGRlci9mb3JjZScsICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChy
ZXF1ZXN0c1s2XS5kYXRhLCB7J3drJzogJzE5MjczNicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzIn
LCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ293bmVkLWNvbW1pdHMnOiBg
eyJXZWJLaXQiOlt7InJldmlzaW9uIjoib3duZWQtanNjLTkxOTEiLCJyZXBvc2l0b3J5IjoiSmF2
YVNjcmlwdENvcmUiLCJvd25lclJldmlzaW9uIjoiMTkyNzM2In1dfWB9KTsKKyAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2Zv
cmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcyJywgJ2pzb25ycGMnOiAnMi4w
JywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOiB7CisgICAgICAgICAgICAgICAgJ3drJzog
JzE5MjczNicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9y
Y2UtYWItYnVpbGRzJywgJ293bmVkLWNvbW1pdHMnOiBgeyJXZWJLaXQiOlt7InJldmlzaW9uIjoi
b3duZWQtanNjLTkxOTEiLCJyZXBvc2l0b3J5IjoiSmF2YVNjcmlwdENvcmUiLCJvd25lclJldmlz
aW9uIjoiMTkyNzM2In1dfWB9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0
ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVy
L3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s5XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVu
ZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXIn
KSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMp
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0
PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5n
QnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMn0pLAotICAg
ICAgICAgICAgICAgIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdzb21l
IGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pLAorICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlcicsIDIpLCB7CisgICAgICAgICAgICAgICAgJ2J1aWxkcyc6IFsKKyAgICAgICAgICAg
ICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRlcklkOiAxLCBidWlsZFJl
cXVlc3RJZDogMn0pLAorICAgICAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxk
RGF0YSh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDogMX0pXQogICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzEyXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIp
LCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lk
LCB0cnVlKTsKQEAgLTEzNjMsNyArMTM3OCw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90Jywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcp
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2Vy
dC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAg
Y29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAtMTM4Myw3ICsx
Mzk4LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFz
c2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8v
YnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1v
Y2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAg
ICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsK
QEAgLTE0MDgsNyArMTQyMyw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAg
ICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxk
LndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3Rh
dHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29t
bWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAtMTQyOCw3ICsxNDQzLDcgQEAg
ZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3Nl
cnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3Ro
ZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEu
c3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBj
b25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAt
MTQ5MSw0MCArMTUwNiw0MSBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZp
bGVzKCksIFtdKTsKIAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0
U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1
aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxk
ZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0
YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVz
ZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1swXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWls
ZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sx
XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywg
W10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdH
RVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKKyAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0
PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
M10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9
KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30pOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsK
LSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcs
ICcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvZm9yY2UnLCAnT0snKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAnYnVpbGQt
cmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdv
d25lZC1jb21taXRzJzogYHsiV2ViS2l0IjpbeyJyZXZpc2lvbiI6Im93bmVkLWpzYy02MTYxIiwi
cmVwb3NpdG9yeSI6IkphdmFTY3JpcHRDb3JlIiwib3duZXJSZXZpc2lvbiI6IjE5MTYyMiJ9XX1g
fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BP
U1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMScs
ICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzogeworICAgICAg
ICAgICAgICAgICd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNl
c2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdvd25lZC1jb21taXRzJzogYHsiV2ViS2l0
IjpbeyJyZXZpc2lvbiI6Im93bmVkLWpzYy02MTYxIiwicmVwb3NpdG9yeSI6IkphdmFTY3JpcHRD
b3JlIiwib3duZXJSZXZpc2lvbiI6IjE5MTYyMiJ9XX1gfX0pOwogICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7Ci0gICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywKLSAgICAgICAgICAgICAgICBbTW9ja0Rh
dGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6
IDF9KV0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksCisgICAgICAgICAgICAgICAgTW9j
a0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAxfSkpOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMp
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0
PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5n
QnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pCi0gICAg
ICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzEyXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRl
c3RlcicsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcics
IDIpLAorICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiAx
LCBidWlsZFJlcXVlc3RJZDogMX0pCisgICAgICAgICAgICApOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBzeW5j
UHJvbWlzZTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVz
dEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAtMTUzOSw3ICsxNTU1LDcgQEAg
ZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3Nl
cnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVx
dWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAx
MjQpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpOwpAQCAtMTU3OSw3ICsxNTk1LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7
CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDov
L2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0Rh
dGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qg
Y29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAtMTYyMCw3ICsxNjM2LDcg
QEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBh
c3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxk
UmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVy
cy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRl
cicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVl
c3QuY29tbWl0U2V0KCk7CkBAIC0xNjUzLDQyICsxNjY5LDQ0IEBAIGRlc2NyaWJlKCdzeW5jLWJ1
aWxkYm90JywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0
KCk7CiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCku
dGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWls
ZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNh
dGVkKCkpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0s
ICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWls
ZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsK
LSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywg
Jy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdv
dGhlciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVz
dGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAg
ICAgICBbLTFdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVy
JywgYnVpbGRSZXF1ZXN0SWQ6IDF9KQotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9v
dGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKKyAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKKyAgICAgICAgICAgICAgICBNb2NrRGF0YS5m
aW5pc2hlZEJ1aWxkKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAxfSkKKyAgICAgICAg
ICAgICk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwg
J0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7
CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDcpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
Nl0sICdQT1NUJywgJy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9mb3JjZScsICdPSycpOwotICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J3drJzogJzE5Mjcz
NicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWIt
YnVpbGRzJywgJ293bmVkLWNvbW1pdHMnOiBgeyJXZWJLaXQiOlt7InJldmlzaW9uIjoib3duZWQt
anNjLTkxOTEiLCJyZXBvc2l0b3J5IjoiSmF2YVNjcmlwdENvcmUiLCJvd25lclJldmlzaW9uIjoi
MTkyNzM2In1dfWB9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMn
LCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwg
eydpZCc6ICcyJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMn
OiB7CisgICAgICAgICAgICAgICAgJ3drJzogJzE5MjczNicsICdidWlsZC1yZXF1ZXN0LWlkJzog
JzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ293bmVkLWNvbW1pdHMn
OiBgeyJXZWJLaXQiOlt7InJldmlzaW9uIjoib3duZWQtanNjLTkxOTEiLCJyZXBvc2l0b3J5Ijoi
SmF2YVNjcmlwdENvcmUiLCJvd25lclJldmlzaW9uIjoiMTkyNzM2In1dfWB9fSk7CiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEw
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXInKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhl
ciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0
ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAg
ICAgICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXIn
LCBidWlsZFJlcXVlc3RJZDogMn0pLAotICAgICAgICAgICAgICAgIFstMl06IE1vY2tEYXRhLmZp
bmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0p
LAorICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CisgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CisgICAgICAgICAgICAg
ICAgJ2J1aWxkcyc6IFsKKyAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxk
RGF0YSh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDogMn0pLAorICAgICAgICAgICAgICAg
ICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVl
c3RJZDogMX0pXQogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWls
ZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gc3lu
Y1Byb21pc2U7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRl
c3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKQEAgLTE3MDMsNyArMTcyMSw3IEBA
IGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNz
ZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJl
cXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5z
dGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMv
c29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXIn
LCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0
LmNvbW1pdFNldCgpOwpAQCAtMTcyMyw3ICsxNzQxLDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRi
b3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3Qu
aXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0
KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xh
YmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21l
JTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVy
JywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVp
bGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhl
ckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTE3NDgsNyArMTc2Niw3IEBAIGRlc2NyaWJl
KCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxk
UmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNU
ZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1
aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsK
ICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNl
dCgpOwpAQCAtMTc2OCw3ICsxNzg2LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgp
KTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdS
dW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRl
ci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7
CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBu
dWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVx
dWVzdC5jb21taXRTZXQoKTsKQEAgLTE3OTQsNyArMTgxMiw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1
aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOwog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29t
cGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVp
bGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAg
ICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAg
ICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAt
MTgxNCw3ICsxODMyLDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAg
ICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxk
cy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAg
ICAgICAgIGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0
LmNvbW1pdFNldCgpOwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcwkocmV2aXNpb24gMjI5
NDk2KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMv
bW9jay1kYXRhLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xOSw2ICsxOSwxMCBAQCBNb2NrRGF0YSA9
IHsKICAgICBzaGFyZWRSZXBvc2l0b3J5SWQoKSB7IHJldHVybiAxNDsgfSwKICAgICBidWlsZGJv
dEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpIHtyZXR1cm4gJy9qc29uL2J1aWxkZXJzJ30sCiAgICAg
YnVpbGRib3RCdWlsZGVyc1VSTCgpIHtyZXR1cm4gJy9hcGkvdjIvYnVpbGRlcnMnfSwKKyAgICBw
ZW5kaW5nQnVpbGRzVXJsOiBmdW5jdGlvbiAoYnVpbGRlck5hbWUpIHsgcmV0dXJuICcvYXBpL3Yy
L2J1aWxkZXJzLycgKyB0aGlzLmdldEJ1aWxkZXJJZEZvck5hbWUoYnVpbGRlck5hbWUpICsgJy9i
dWlsZHJlcXVlc3RzP2NvbXBsZXRlPWZhbHNlJmNsYWltZWQ9ZmFsc2UmcHJvcGVydHk9Kic7IH0s
CisgICAgcmVjZW50QnVpbGRzVXJsOiBmdW5jdGlvbiAoYnVpbGRlck5hbWUsIGNvdW50KSB7IHJl
dHVybiAnL2FwaS92Mi9idWlsZGVycy8nICsgdGhpcy5nZXRCdWlsZGVySWRGb3JOYW1lKGJ1aWxk
ZXJOYW1lKSArIGAvYnVpbGRzP2xpbWl0PSR7Y291bnR9Jm9yZGVyPS1udW1iZXImcHJvcGVydHk9
KmA7IH0sCisgICAgc3RhdHVzVXJsOiBmdW5jdGlvbiAoYnVpbGRlck5hbWUsIGJ1aWxkSWQpIHsg
cmV0dXJuICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLycgKyB0aGlzLmdldEJ1
aWxkZXJJZEZvck5hbWUoYnVpbGRlck5hbWUpICsgYC9idWlsZHMvJHtidWlsZElkfWA7IH0sCisg
ICAgc3RhdHVzVXJsRm9yUGVuZGluZ0J1aWxkczogZnVuY3Rpb24gKGJ1aWxkUmVxdWVzdElkKSB7
IHJldHVybiBgaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLyR7YnVpbGRS
ZXF1ZXN0SWR9YDsgfSwKICAgICBhZGRNb2NrQ29uZmlndXJhdGlvbjogZnVuY3Rpb24gKGRiKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsKQEAgLTE5Nyw3ICsyMDEsNyBAQCBN
b2NrRGF0YSA9IHsKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAnYnVpbGRlcnMnOiB7CiAg
ICAgICAgICAgICAgICAgJ2J1aWxkZXItMSc6IHsnYnVpbGRlcic6ICdzb21lLWJ1aWxkZXItMScs
Ci0gICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7Zm9yY2VzY2hlZHVsZXI6ICdmb3Jj
ZS1zb21lLWJ1aWxkZXItMSd9fSAKKyAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtm
b3JjZXNjaGVkdWxlcjogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319CiAgICAgICAgICAgICB9LAog
ICAgICAgICAgICAgJ3Rlc3RDb25maWd1cmF0aW9ucyc6IFsKICAgICAgICAgICAgICAgICB7CkBA
IC0yOTMsMTAgKzI5Nyw1MSBAQCBNb2NrRGF0YSA9IHsKICAgICAgICAgICAgIF0KICAgICAgICAg
fQogICAgIH0sCisgICAgZ2V0QnVpbGRlcklkRm9yTmFtZTogZnVuY3Rpb24oYnVpbGRlck5hbWUp
CisgICAgeworICAgICAgICBjb25zdCBidWlsZGVycyA9IHRoaXMubW9ja0J1aWxkYm90QnVpbGRl
cnMoKS5idWlsZGVyczsKKyAgICAgICAgY29uc3QgYnVpbGRlck5hbWVUb0lETWFwID0ge307IAor
ICAgICAgICBmb3IgKGNvbnN0IGJ1aWxkZXIgb2YgYnVpbGRlcnMpCisgICAgICAgICAgICBidWls
ZGVyTmFtZVRvSURNYXBbYnVpbGRlci5uYW1lXSA9IGJ1aWxkZXIuYnVpbGRlcmlkOworCisgICAg
ICAgIHJldHVybiBidWlsZGVyTmFtZVRvSURNYXBbYnVpbGRlck5hbWVdOworICAgIH0sCisgICAg
cGVuZGluZ0J1aWxkRGF0YShvcHRpb25zKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAg
ICAgICAgICJidWlsZGVyaWQiOiBvcHRpb25zLmJ1aWxkZXJJZCB8fCAyLAorICAgICAgICAgICAg
ImJ1aWxkcmVxdWVzdGlkIjogMTcsCisgICAgICAgICAgICAiYnVpbGRzZXRpZCI6IDg5NDcyMCwK
KyAgICAgICAgICAgICJjbGFpbWVkIjogZmFsc2UsCisgICAgICAgICAgICAiY2xhaW1lZF9hdCI6
IG51bGwsCisgICAgICAgICAgICAiY2xhaW1lZF9ieV9tYXN0ZXJpZCI6IG51bGwsCisgICAgICAg
ICAgICAiY29tcGxldGUiOiBmYWxzZSwKKyAgICAgICAgICAgICJjb21wbGV0ZV9hdCI6IG51bGws
CisgICAgICAgICAgICAicHJpb3JpdHkiOiAwLAorICAgICAgICAgICAgInJlc3VsdHMiOiAtMSwK
KyAgICAgICAgICAgICJzdWJtaXR0ZWRfYXQiOiBvcHRpb25zLmJ1aWxkVGltZSB8fCAxNDU4NzA0
OTgzLAorICAgICAgICAgICAgIndhaXRlZF9mb3IiOiBmYWxzZSwKKyAgICAgICAgICAgICJwcm9w
ZXJ0aWVzIjogeworICAgICAgICAgICAgICAgICJidWlsZC1yZXF1ZXN0LWlkIjogWyhvcHRpb25z
LmJ1aWxkUmVxdWVzdElkIHx8IDcwMikudG9TdHJpbmcoKSwgIkZvcmNlIEJ1aWxkIEZvcm0iXSwK
KyAgICAgICAgICAgICAgICAic2NoZWR1bGVyIjogWyJBQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmst
VGVzdHMtRm9yY2VTY2hlZHVsZXIiLCAiU2NoZWR1bGVyIl0sCisgICAgICAgICAgICAgICAgIndr
IjogW29wdGlvbnMud2Via2l0UmV2aXNpb24gfHwgJzE5MTYyMicsICJVbmtub3duIl0sCisgICAg
ICAgICAgICAgICAgIm9zIjogW29wdGlvbnMub3N4UmV2aXNpb24gfHwgJzEwLjExIDE1QTI4NCcs
ICJVbmtub3duIl0sCisgICAgICAgICAgICAgICAgInNsYXZlbmFtZSI6IFtvcHRpb25zLndvcmtl
ck5hbWUgfHwgImJvdDIwMiIsICJXb3JrZXIgKGRlcHJlY2F0ZWQpIl0sCisgICAgICAgICAgICAg
ICAgIndvcmtlcm5hbWUiOiBbb3B0aW9ucy53b3JrZXJOYW1lIHx8ICJib3QyMDIiLCAiV29ya2Vy
Il0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9LAogICAgIHBlbmRpbmdCdWlsZChv
cHRpb25zKQogICAgIHsKICAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CiAgICAgICAg
IHJldHVybiB7CisgICAgICAgICAgICAiYnVpbGRyZXF1ZXN0cyI6IFt0aGlzLnBlbmRpbmdCdWls
ZERhdGEob3B0aW9ucyldCisgICAgICAgIH07CisgICAgfSwKKyAgICBwZW5kaW5nQnVpbGREZXBy
ZWNhdGVkKG9wdGlvbnMpCisgICAgeworICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsK
KyAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICdidWlsZGVyTmFtZSc6IG9wdGlvbnMuYnVp
bGRlciB8fCAnc29tZS1idWlsZGVyLTEnLAogICAgICAgICAgICAgJ2J1aWxkcyc6IFtdLAogICAg
ICAgICAgICAgJ3Byb3BlcnRpZXMnOiBbCkBAIC0zMTUsOCArMzYwLDUzIEBAIE1vY2tEYXRhID0g
ewogICAgICAgICAgICAgfSwKICAgICAgICAgfTsKICAgICB9LAorICAgIHNhbXBsZUJ1aWxkRGF0
YShvcHRpb25zKQorICAgIHsKKyAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CisgICAg
ICAgIHJldHVybiB7CisgICAgICAgICAgICAiYnVpbGRlcmlkIjogb3B0aW9ucy5idWlsZGVySWQg
fHwgMiwKKyAgICAgICAgICAgICJudW1iZXIiOiAgb3B0aW9ucy5idWlsZE51bWJlciB8fCAxMjQs
IAorICAgICAgICAgICAgImJ1aWxkcmVxdWVzdGlkIjogMTcsCisgICAgICAgICAgICAiY29tcGxl
dGUiOiBvcHRpb25zLmlzQ29tcGxldGUsCisgICAgICAgICAgICAiY29tcGxldGVfYXQiOiBudWxs
LAorICAgICAgICAgICAgImJ1aWxkaWQiOiA0MTg3NDQsCisgICAgICAgICAgICAibWFzdGVyaWQi
OiAxLAorICAgICAgICAgICAgInJlc3VsdHMiOiBudWxsLAorICAgICAgICAgICAgInN0YXJ0ZWRf
YXQiOiAxNTEzNzI1MTA5LAorICAgICAgICAgICAgInN0YXRlX3N0cmluZyI6ICJidWlsZGluZyIs
CisgICAgICAgICAgICAid29ya2VyaWQiOiA0MSwKKyAgICAgICAgICAgICJwcm9wZXJ0aWVzIjog
eworICAgICAgICAgICAgICAgICJidWlsZC1yZXF1ZXN0LWlkIjogWyhvcHRpb25zLmJ1aWxkUmVx
dWVzdElkIHx8IDcwMSkudG9TdHJpbmcoKSwgIkZvcmNlIEJ1aWxkIEZvcm0iXSwKKyAgICAgICAg
ICAgICAgICAib3MiOiBbb3B0aW9ucy5vc3hSZXZpc2lvbiB8fCAnMTAuMTEgMTVBMjg0JywgIlVu
a25vd24iXSwKKyAgICAgICAgICAgICAgICAid2siOiBbb3B0aW9ucy53ZWJraXRSZXZpc2lvbiB8
fCAnMTkyNzM2JywgIlVua25vd24iXSwKKyAgICAgICAgICAgICAgICAicHJvamVjdCI6IFsnJywg
IlVua25vd24iXSwKKyAgICAgICAgICAgICAgICAicmVwb3NpdG9yeSI6IFsnJywgIlVua25vd24i
XSwKKyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiBbJycsICJVbmtub3duIl0sCisgICAgICAg
ICAgICAgICAgInNsYXZlbmFtZSI6IFtvcHRpb25zLndvcmtlck5hbWUgfHwgImJvdDIwMiIsICJX
b3JrZXIgKGRlcHJlY2F0ZWQpIl0sCisgICAgICAgICAgICAgICAgIndvcmtlcm5hbWUiOiBbb3B0
aW9ucy53b3JrZXJOYW1lIHx8ICJib3QyMDIiLCAiV29ya2VyIl0KKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfTsgICAKKyAgICB9LAorICAgIHJ1bm5pbmdCdWlsZERhdGEob3B0aW9ucykKKyAgICB7
CisgICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OworICAgICAgICBvcHRpb25zLmlzQ29t
cGxldGUgPSBmYWxzZTsKKyAgICAgICAgaWYgKCFvcHRpb25zLmJ1aWxkUmVxdWVzdElkKQorICAg
ICAgICAgICAgb3B0aW9ucy5idWlsZFJlcXVlc3RJZCA9IDcwMTsKKyAgICAgICAgaWYgKCFvcHRp
b25zLmJ1aWxkTnVtYmVyKQorICAgICAgICAgICAgb3B0aW9ucy5idWlsZE51bWJlciA9IDEyNDsK
KyAgICAgICAgaWYgKCFvcHRpb25zLndlYmtpdFJldmlzaW9uKQorICAgICAgICAgICAgb3B0aW9u
cy53ZWJraXRSZXZpc2lvbiA9ICcxOTI3MzYnOworICAgICAgICByZXR1cm4gdGhpcy5zYW1wbGVC
dWlsZERhdGEob3B0aW9ucyk7CisgICAgfSwKICAgICBydW5uaW5nQnVpbGQob3B0aW9ucykKICAg
ICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAiYnVpbGRzIjogW3RoaXMucnVubmlu
Z0J1aWxkRGF0YShvcHRpb25zKV0KKyAgICAgICAgfTsKKyAgICB9LAorICAgIHJ1bm5pbmdCdWls
ZERlcHJlY2F0ZWQob3B0aW9ucykKKyAgICB7CiAgICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8
IHt9OwogICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgJ2J1aWxkZXJOYW1lJzogb3B0aW9u
cy5idWlsZGVyIHx8ICdzb21lLWJ1aWxkZXItMScsCkBAIC0zNDAsOCArNDMwLDI2IEBAIE1vY2tE
YXRhID0gewogICAgICAgICAgICAgfSwKICAgICAgICAgfTsKICAgICB9LAorICAgIGZpbmlzaGVk
QnVpbGREYXRhKG9wdGlvbnMpCisgICAgeworICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7
fTsKKyAgICAgICAgb3B0aW9ucy5pc0NvbXBsZXRlID0gdHJ1ZTsKKyAgICAgICAgaWYgKCFvcHRp
b25zLmJ1aWxkUmVxdWVzdElkKQorICAgICAgICAgICAgb3B0aW9ucy5idWlsZFJlcXVlc3RJZCA9
IDcwMDsKKyAgICAgICAgaWYgKCFvcHRpb25zLmJ1aWxkTnVtYmVyKQorICAgICAgICAgICAgb3B0
aW9ucy5idWlsZE51bWJlciA9IDEyMzsKKyAgICAgICAgaWYgKCFvcHRpb25zLndlYmtpdFJldmlz
aW9uKQorICAgICAgICAgICAgb3B0aW9ucy53ZWJraXRSZXZpc2lvbiA9ICcxOTE2MjInOworICAg
ICAgICByZXR1cm4gdGhpcy5zYW1wbGVCdWlsZERhdGEob3B0aW9ucyk7CisgICAgfSwKICAgICBm
aW5pc2hlZEJ1aWxkKG9wdGlvbnMpCiAgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAg
ICAgImJ1aWxkcyI6IFt0aGlzLmZpbmlzaGVkQnVpbGREYXRhKG9wdGlvbnMpXQorICAgICAgICB9
OworICAgIH0sCisgICAgZmluaXNoZWRCdWlsZERlcHJlY2F0ZWQob3B0aW9ucykKKyAgICB7CiAg
ICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwogICAgICAgICByZXR1cm4gewogICAgICAg
ICAgICAgJ2J1aWxkZXJOYW1lJzogb3B0aW9ucy5idWlsZGVyIHx8ICdzb21lLWJ1aWxkZXItMScs
CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qtc3luY2Vy
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWls
ZGJvdC1zeW5jZXIuanMJKHJldmlzaW9uIDIyOTQ5NikKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTE1MCw3
ICsxNTAsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgICAgICBwcm9wZXJ0aWVz
W3RoaXMuX3BsYXRmb3JtUHJvcGVydHlOYW1lXSA9IG5ld1JlcXVlc3QucGxhdGZvcm0oKS5uYW1l
KCk7CiAKICAgICAgICAgdGhpcy5fc2xhdmVzV2l0aE5ld1JlcXVlc3RzLmFkZChzbGF2ZU5hbWUp
OwotICAgICAgICByZXR1cm4gdGhpcy5zY2hlZHVsZUJ1aWxkT25CdWlsZGJvdERlcHJlY2F0ZWQo
cHJvcGVydGllcyk7CisgICAgICAgIHJldHVybiB0aGlzLnNjaGVkdWxlQnVpbGRPbkJ1aWxkYm90
KHByb3BlcnRpZXMpOwogICAgIH0KIAogICAgIHNjaGVkdWxlQnVpbGRPbkJ1aWxkYm90RGVwcmVj
YXRlZChwcm9wZXJ0aWVzKQpAQCAtMjEwLDkgKzIxMCw5IEBAIGNsYXNzIEJ1aWxkYm90U3luY2Vy
IHsKIAogICAgIHB1bGxCdWlsZGJvdChjb3VudCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlz
Ll9yZW1vdGUuZ2V0SlNPTih0aGlzLnBhdGhGb3JQZW5kaW5nQnVpbGRzSlNPTkRlcHJlY2F0ZWQo
KSkudGhlbigoY29udGVudCkgPT4gewotICAgICAgICAgICAgbGV0IHBlbmRpbmdFbnRyaWVzID0g
Y29udGVudC5tYXAoKGVudHJ5KSA9PiBuZXcgQnVpbGRib3RCdWlsZEVudHJ5RGVwcmVjYXRlZCh0
aGlzLCBlbnRyeSkpOwotICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3B1bGxSZWNlbnRCdWlsZHNE
ZXByZWNhdGVkKGNvdW50KS50aGVuKChlbnRyaWVzKSA9PiB7CisgICAgICAgIHJldHVybiB0aGlz
Ll9yZW1vdGUuZ2V0SlNPTih0aGlzLnBhdGhGb3JQZW5kaW5nQnVpbGRzKCkpLnRoZW4oKGNvbnRl
bnQpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHBlbmRpbmdFbnRyaWVzID0gKGNvbnRlbnQuYnVp
bGRyZXF1ZXN0cyB8fCBbXSkubWFwKChlbnRyeSkgPT4gbmV3IEJ1aWxkYm90QnVpbGRFbnRyeSh0
aGlzLCBlbnRyeSkpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3B1bGxSZWNlbnRCdWlsZHMo
Y291bnQpLnRoZW4oKGVudHJpZXMpID0+IHsKICAgICAgICAgICAgICAgICBsZXQgZW50cnlCeVJl
cXVlc3QgPSB7fTsKIAogICAgICAgICAgICAgICAgIGZvciAobGV0IGVudHJ5IG9mIHBlbmRpbmdF
bnRyaWVzKQpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90
LXRyaWdnZXJhYmxlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90
b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcwkocmV2aXNpb24gMjI5NDk2KQorKysgV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC01NSw3ICs1NSw3IEBAIGNsYXNzIEJ1aWxkYm90VHJpZ2dlcmFibGUg
ewogCiAgICAgaW5pdFN5bmNlcnMoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QnVp
bGRlck5hbWVUb0lETWFwRGVwcmVjYXRlZCgpLnRoZW4oKGJ1aWxkZXJOYW1lVG9JRE1hcCkgPT4g
eworICAgICAgICByZXR1cm4gdGhpcy5nZXRCdWlsZGVyTmFtZVRvSURNYXAoKS50aGVuKChidWls
ZGVyTmFtZVRvSURNYXApID0+IHsKICAgICAgICAgICAgIHRoaXMuX3N5bmNlcnMgPSBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyh0aGlzLl9idWlsZGJvdFJlbW90ZSwgdGhpcy5fY29uZmlnLCBi
dWlsZGVyTmFtZVRvSURNYXApOwogICAgICAgICB9KTsKICAgICB9CkluZGV4OiBXZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3lu
Y2VyLXRlc3RzLmpzCShyZXZpc2lvbiAyMjk0OTYpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMJKHdvcmtpbmcgY29weSkKQEAg
LTE1NSwxMSArMTU1LDE2IEBAIGZ1bmN0aW9uIGJ1aWxkZXJOYW1lVG9JRE1hcCgpCiAgICAgICAg
ICdpUGhvbmUgQUIgVGVzdHMnIDogJzEwNCcsCiAgICAgICAgICdpUGhvbmUgMiBBQiBUZXN0cyc6
ICcxMDUnLAogICAgICAgICAnaVBhZCBBQiBUZXN0cyc6ICcxMDYnCi0gICAgfSAgICAKKyAgICB9
OwogfQogCiBmdW5jdGlvbiBzbWFsbFBlbmRpbmdCdWlsZCgpCiB7CisgICAgcmV0dXJuIHNhbXBs
ZVBlbmRpbmdCdWlsZFJlcXVlc3RzKG51bGwsIG51bGwsIG51bGwsICJzb21lIGJ1aWxkZXIiKTsK
K30KKworZnVuY3Rpb24gc21hbGxQZW5kaW5nQnVpbGREZXByZWNhdGVkKCkKK3sKICAgICByZXR1
cm4gewogICAgICAgICAnYnVpbGRlck5hbWUnOiAnc29tZSBidWlsZGVyJywKICAgICAgICAgJ2J1
aWxkcyc6IFtdLApAQCAtMTc4LDYgKzE4MywxMSBAQCBmdW5jdGlvbiBzbWFsbFBlbmRpbmdCdWls
ZCgpCiAKIGZ1bmN0aW9uIHNtYWxsSW5Qcm9ncmVzc0J1aWxkKCkKIHsKKyAgICByZXR1cm4gc2Ft
cGxlSW5Qcm9ncmVzc0J1aWxkKCk7Cit9CisKK2Z1bmN0aW9uIHNtYWxsSW5Qcm9ncmVzc0J1aWxk
RGVwcmVjYXRlZCgpCit7CiAgICAgcmV0dXJuIHsKICAgICAgICAgJ2J1aWxkZXJOYW1lJzogJ3Nv
bWUgYnVpbGRlcicsCiAgICAgICAgICdidWlsZHMnOiBbXSwKQEAgLTE5OSw2ICsyMDksMTEgQEAg
ZnVuY3Rpb24gc21hbGxJblByb2dyZXNzQnVpbGQoKQogCiBmdW5jdGlvbiBzbWFsbEZpbmlzaGVk
QnVpbGQoKQogeworICAgIHJldHVybiBzYW1wbGVGaW5pc2hlZEJ1aWxkKG51bGwsIG51bGwsICJz
b21lIGJ1aWxkZXIiKTsKK30KKworZnVuY3Rpb24gc21hbGxGaW5pc2hlZEJ1aWxkRGVwcmVjYXRl
ZCgpCit7CiAgICAgcmV0dXJuIHsKICAgICAgICAgJ2J1aWxkZXJOYW1lJzogJ3NvbWUgYnVpbGRl
cicsCiAgICAgICAgICdidWlsZHMnOiBbXSwKQEAgLTE0MjEsOCArMTQzNiw4IEBAIGRlc2NyaWJl
KCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgaXQoJ3Nob3VsZCBmZXRjaCBwZW5k
aW5nIGJ1aWxkcyBmcm9tIHRoZSByaWdodCBVUkwnLCAoKSA9PiB7CiAgICAgICAgICAgICBsZXQg
c3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxl
aU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzeW5jZXIuYnVpbGRlck5hbWUoKSwgJ0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1U
ZXN0cycpOwotICAgICAgICAgICAgbGV0IGV4cGVjdGVkVVJMID0gJy9qc29uL2J1aWxkZXJzL0FC
VGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy9wZW5kaW5nQnVpbGRzJzsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzeW5jZXIucGF0aEZvclBlbmRpbmdCdWlsZHNKU09ORGVwcmVjYXRlZCgp
LCBleHBlY3RlZFVSTCk7CisgICAgICAgICAgICBsZXQgZXhwZWN0ZWRVUkwgPSAnL2FwaS92Mi9i
dWlsZGVycy8xMDIvYnVpbGRyZXF1ZXN0cz9jb21wbGV0ZT1mYWxzZSZjbGFpbWVkPWZhbHNlJnBy
b3BlcnR5PSonOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlci5wYXRoRm9yUGVuZGlu
Z0J1aWxkcygpLCBleHBlY3RlZFVSTCk7CiAgICAgICAgICAgICBzeW5jZXIucHVsbEJ1aWxkYm90
KCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsIGV4cGVjdGVkVVJMKTsKQEAgLTE0
MzQsMTEgKzE0NDksMTEgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogCiAg
ICAgICAgICAgICBzeW5jZXIucHVsbEJ1aWxkYm90KDEpOwogICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbMF0udXJsLCAnL2pzb24vYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3Rz
L3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51
cmwsICcvYXBpL3YyL2J1aWxkZXJzLzEwMi9idWlsZHJlcXVlc3RzP2NvbXBsZXRlPWZhbHNlJmNs
YWltZWQ9ZmFsc2UmcHJvcGVydHk9KicpOwogICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2
ZShbXSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS51cmwsICcv
anNvbi9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVpbGRzLz9zZWxl
Y3Q9LTEnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0udXJsLCAn
L2FwaS92Mi9idWlsZGVycy8xMDIvYnVpbGRzP2xpbWl0PTEmb3JkZXI9LW51bWJlciZwcm9wZXJ0
eT0qJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTE0NDcsMjkgKzE0NjIs
MjkgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogCiAgICAgICAgICAgICBz
eW5jZXIucHVsbEJ1aWxkYm90KDMpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAn
L2pzb24vYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzL3BlbmRpbmdCdWls
ZHMnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvYXBpL3Yy
L2J1aWxkZXJzLzEwMi9idWlsZHJlcXVlc3RzP2NvbXBsZXRlPWZhbHNlJmNsYWltZWQ9ZmFsc2Um
cHJvcGVydHk9KicpOwogICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZShbXSk7CiAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVy
cy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0
PS0yJnNlbGVjdD0tMycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sx
XS51cmwsICcvYXBpL3YyL2J1aWxkZXJzLzEwMi9idWlsZHM/bGltaXQ9MyZvcmRlcj0tbnVtYmVy
JnByb3BlcnR5PSonKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIAogICAgICAgICBp
dCgnc2hvdWxkIGNyZWF0ZSBCdWlsZGJvdEJ1aWxkRW50cnkgZm9yIHBlbmRpbmcgYnVpbGRzJywg
KCkgPT4gewogICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAo
KSlbMV07CiAgICAgICAgICAgICBsZXQgcHJvbWlzZSA9IHN5bmNlci5wdWxsQnVpbGRib3QoKTsK
LSAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoW3NhbXBsZVBlbmRpbmdCdWlsZFJlcXVl
c3REZXByZWNhdGVkKCldKTsKKyAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoc2FtcGxl
UGVuZGluZ0J1aWxkUmVxdWVzdHMoKSk7CiAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS50aGVu
KChlbnRyaWVzKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJpZXMubGVu
Z3RoLCAxKTsKICAgICAgICAgICAgICAgICBsZXQgZW50cnkgPSBlbnRyaWVzWzBdOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeURl
cHJlY2F0ZWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1
aWxkYm90QnVpbGRFbnRyeSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5idWls
ZE51bWJlcigpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5LnNsYXZlTmFtZSgp
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGRSZXF1ZXN0SWQoKSwg
MTY3MzMpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeS5pc1BlbmRpbmcoKSk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc0luUHJvZ3Jlc3MoKSk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5oYXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWls
ZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWls
ZHJlcXVlc3RzLzE2NzMzJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTE0
ODEsMTkgKzE0OTYsMTkgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAg
ICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIHJlcXVl
c3RzWzFdLnJlc29sdmUoe1stMV06IHNhbXBsZUluUHJvZ3Jlc3NCdWlsZERlcHJlY2F0ZWQoKX0p
OworICAgICAgICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoc2FtcGxlSW5Qcm9ncmVzc0J1
aWxkKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBwcm9taXNlOwogICAgICAgICAgICAgfSku
dGhlbigoZW50cmllcykgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyaWVz
Lmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgbGV0IGVudHJ5ID0gZW50cmllc1swXTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50
cnlEZXByZWNhdGVkKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2Vv
ZiBCdWlsZGJvdEJ1aWxkRW50cnkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRy
eS5idWlsZE51bWJlcigpLCA2MTQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRy
eS5zbGF2ZU5hbWUoKSwgJ0FCVGVzdC1pUGFkLTAnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZW50cnkuYnVpbGRSZXF1ZXN0SWQoKSwgMTY3MzMpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5vayghZW50cnkuaXNQZW5kaW5nKCkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayhl
bnRyeS5pc0luUHJvZ3Jlc3MoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5o
YXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCks
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1h
cmstVGVzdHMvYnVpbGRzLzYxNCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRy
eS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMTAyL2J1aWxkcy82
MTQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMTUwNSwxOSArMTUyMCwx
OSBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICByZXF1
ZXN0c1swXS5yZXNvbHZlKFtdKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgcmVxdWVzdHNbMV0ucmVzb2x2
ZSh7Wy0xXTogc2FtcGxlRmluaXNoZWRCdWlsZERlcHJlY2F0ZWQoKX0pOworICAgICAgICAgICAg
ICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoc2FtcGxlRmluaXNoZWRCdWlsZCgpKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gcHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKGVudHJpZXMpID0+
IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGVudHJpZXMubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgICAgICBsZXQgZW50cnkgPSBlbnRyaWVzWzBdOwotICAgICAgICAgICAgICAg
IGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeURlcHJlY2F0ZWQp
OworICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVp
bGRFbnRyeSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkTnVtYmVy
KCksIDE3NTUpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5zbGF2ZU5hbWUo
KSwgJ0FCVGVzdC1pUGFkLTAnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnku
YnVpbGRSZXF1ZXN0SWQoKSwgMTg5MzUpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50
cnkuaXNQZW5kaW5nKCkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaXNJblBy
b2dyZXNzKCkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeS5oYXNGaW5pc2hlZCgp
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVp
bGRzLzE3NTUnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkZXJzLzEwMi9idWlsZHMvMTc1NScpOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0xNTI3LDQ0ICsxNTQyLDQ0IEBAIGRlc2Ny
aWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGxldCBwcm9taXNlID0g
c3luY2VyLnB1bGxCdWlsZGJvdCg1KTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDEpOwogCi0gICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKFtzYW1wbGVQ
ZW5kaW5nQnVpbGRSZXF1ZXN0RGVwcmVjYXRlZCgxMjMpXSk7CisgICAgICAgICAgICByZXF1ZXN0
c1swXS5yZXNvbHZlKHNhbXBsZVBlbmRpbmdCdWlsZFJlcXVlc3RzKDEyMykpOwogCiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAg
ICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoe1stMV06IHNhbXBsZUZpbmlzaGVkQnVpbGRE
ZXByZWNhdGVkKCksIFstMl06IHsnZXJyb3InOiAnTm90IGF2YWlsYWJsZSd9LCBbLTRdOiBzYW1w
bGVJblByb2dyZXNzQnVpbGREZXByZWNhdGVkKCl9KTsKKyAgICAgICAgICAgICAgICByZXF1ZXN0
c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzogW3NhbXBsZUZpbmlzaGVkQnVpbGREYXRhKCksIHNhbXBs
ZUluUHJvZ3Jlc3NCdWlsZERhdGEoKV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gcHJvbWlz
ZTsKICAgICAgICAgICAgIH0pLnRoZW4oKGVudHJpZXMpID0+IHsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGVudHJpZXMubGVuZ3RoLCAzKTsKIAogICAgICAgICAgICAgICAgIGxl
dCBlbnRyeSA9IGVudHJpZXNbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGlu
c3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5RGVwcmVjYXRlZCk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5KTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGROdW1iZXIoKSwgbnVsbCk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnNsYXZlTmFtZSgpLCBudWxsKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGRSZXF1ZXN0SWQoKSwgMTIzKTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQub2soZW50cnkuaXNQZW5kaW5nKCkpOwogICAgICAgICAgICAgICAg
IGFzc2VydC5vayghZW50cnkuaXNJblByb2dyZXNzKCkpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5vayghZW50cnkuaGFzRmluaXNoZWQoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvQUJUZXN0LWlQ
YWQtUnVuQmVuY2htYXJrLVRlc3RzLycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChl
bnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xMjMn
KTsKIAogICAgICAgICAgICAgICAgIGVudHJ5ID0gZW50cmllc1sxXTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnlEZXByZWNhdGVk
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1
aWxkRW50cnkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZE51bWJl
cigpLCA2MTQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5zbGF2ZU5hbWUo
KSwgJ0FCVGVzdC1pUGFkLTAnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnku
YnVpbGRSZXF1ZXN0SWQoKSwgMTY3MzMpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50
cnkuaXNQZW5kaW5nKCkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeS5pc0luUHJv
Z3Jlc3MoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5oYXNGaW5pc2hlZCgp
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVp
bGRzLzYxNCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0
dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMTAyL2J1aWxkcy82MTQnKTsKIAogICAg
ICAgICAgICAgICAgIGVudHJ5ID0gZW50cmllc1syXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
b2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnlEZXByZWNhdGVkKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnkp
OwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZE51bWJlcigpLCAxNzU1
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuc2xhdmVOYW1lKCksICdBQlRl
c3QtaVBhZC0wJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkUmVx
dWVzdElkKCksIDE4OTM1KTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5LmlzUGVu
ZGluZygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5LmlzSW5Qcm9ncmVzcygp
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkuaGFzRmluaXNoZWQoKSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzL2J1aWxkcy8xNzU1
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1
aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xMDIvYnVpbGRzLzE3NTUnKTsKICAgICAgICAgICAg
IH0pOwogICAgICAgICB9KTsKIApAQCAtMTU3NCw1NCArMTU4OSw1NCBAQCBkZXNjcmliZSgnQnVp
bGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBsZXQgcHJvbWlzZSA9IHN5bmNlci5w
dWxsQnVpbGRib3QoNSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAxKTsKIAotICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZShbc2FtcGxlUGVuZGluZ0J1
aWxkUmVxdWVzdERlcHJlY2F0ZWQoNDU2LCAyKSwgc2FtcGxlUGVuZGluZ0J1aWxkUmVxdWVzdERl
cHJlY2F0ZWQoMTIzLCAxKV0pOworICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZSh7ImJ1
aWxkcmVxdWVzdHMiOiBbc2FtcGxlUGVuZGluZ0J1aWxkUmVxdWVzdERhdGEoNDU2LCAyKSwgc2Ft
cGxlUGVuZGluZ0J1aWxkUmVxdWVzdERhdGEoMTIzLCAxKV19KTsKIAogICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAg
ICByZXF1ZXN0c1sxXS5yZXNvbHZlKHtbLTNdOiBzYW1wbGVGaW5pc2hlZEJ1aWxkRGVwcmVjYXRl
ZCgpLCBbLTFdOiB7J2Vycm9yJzogJ05vdCBhdmFpbGFibGUnfSwgWy0yXTogc2FtcGxlSW5Qcm9n
cmVzc0J1aWxkRGVwcmVjYXRlZCgpfSk7CisgICAgICAgICAgICAgICAgcmVxdWVzdHNbMV0ucmVz
b2x2ZSh7J2J1aWxkcyc6IFtzYW1wbGVGaW5pc2hlZEJ1aWxkRGF0YSgpLCBzYW1wbGVJblByb2dy
ZXNzQnVpbGREYXRhKCldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHByb21pc2U7CiAgICAg
ICAgICAgICB9KS50aGVuKChlbnRyaWVzKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChlbnRyaWVzLmxlbmd0aCwgNCk7CiAKICAgICAgICAgICAgICAgICBsZXQgZW50cnkg
PSBlbnRyaWVzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9m
IEJ1aWxkYm90QnVpbGRFbnRyeURlcHJlY2F0ZWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5v
ayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeSk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkTnVtYmVyKCksIG51bGwpOwogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChlbnRyeS5zbGF2ZU5hbWUoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkUmVxdWVzdElkKCksIDEyMyk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0Lm9rKGVudHJ5LmlzUGVuZGluZygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
b2soIWVudHJ5LmlzSW5Qcm9ncmVzcygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVu
dHJ5Lmhhc0ZpbmlzaGVkKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51
cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJl
bmNobWFyay1UZXN0cy8nKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJs
KCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTIzJyk7CiAKICAg
ICAgICAgICAgICAgICBlbnRyeSA9IGVudHJpZXNbMV07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5RGVwcmVjYXRlZCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGROdW1iZXIoKSwgbnVs
bCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnNsYXZlTmFtZSgpLCBudWxs
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGRSZXF1ZXN0SWQoKSwg
NDU2KTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkuaXNQZW5kaW5nKCkpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaXNJblByb2dyZXNzKCkpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5vayghZW50cnkuaGFzRmluaXNoZWQoKSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRl
cnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzLycpOworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRy
ZXF1ZXN0cy80NTYnKTsKIAogICAgICAgICAgICAgICAgIGVudHJ5ID0gZW50cmllc1syXTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50
cnlEZXByZWNhdGVkKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2Vv
ZiBCdWlsZGJvdEJ1aWxkRW50cnkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRy
eS5idWlsZE51bWJlcigpLCA2MTQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRy
eS5zbGF2ZU5hbWUoKSwgJ0FCVGVzdC1pUGFkLTAnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZW50cnkuYnVpbGRSZXF1ZXN0SWQoKSwgMTY3MzMpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5vayghZW50cnkuaXNQZW5kaW5nKCkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayhl
bnRyeS5pc0luUHJvZ3Jlc3MoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5o
YXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCks
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1h
cmstVGVzdHMvYnVpbGRzLzYxNCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRy
eS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMTAyL2J1aWxkcy82
MTQnKTsKIAogICAgICAgICAgICAgICAgIGVudHJ5ID0gZW50cmllc1szXTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnlEZXByZWNh
dGVkKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJv
dEJ1aWxkRW50cnkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZE51
bWJlcigpLCAxNzU1KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuc2xhdmVO
YW1lKCksICdBQlRlc3QtaVBhZC0wJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVu
dHJ5LmJ1aWxkUmVxdWVzdElkKCksIDE4OTM1KTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2so
IWVudHJ5LmlzUGVuZGluZygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5Lmlz
SW5Qcm9ncmVzcygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkuaGFzRmluaXNo
ZWQoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDov
L2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3Rz
L2J1aWxkcy8xNzU1Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgp
LCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xMDIvYnVpbGRzLzE3NTUnKTsK
ICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMTYzMSwyNCArMTY0NiwyNCBAQCBk
ZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBsZXQgcHJvbWlz
ZSA9IHN5bmNlci5wdWxsQnVpbGRib3QoNSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAxKTsKIAotICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZShbc2Ft
cGxlUGVuZGluZ0J1aWxkUmVxdWVzdERlcHJlY2F0ZWQoKV0pOworICAgICAgICAgICAgcmVxdWVz
dHNbMF0ucmVzb2x2ZShzYW1wbGVQZW5kaW5nQnVpbGRSZXF1ZXN0cygpKTsKIAogICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAgICAgICAg
ICAgICAgICByZXF1ZXN0c1sxXS5yZXNvbHZlKHtbLTFdOiBzYW1wbGVJblByb2dyZXNzQnVpbGRE
ZXByZWNhdGVkKCl9KTsKKyAgICAgICAgICAgICAgICByZXF1ZXN0c1sxXS5yZXNvbHZlKHNhbXBs
ZUluUHJvZ3Jlc3NCdWlsZCgpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKGVudHJpZXMpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZW50cmllcy5sZW5ndGgsIDEpOwogCiAgICAgICAgICAgICAgICAgbGV0IGVudHJ5ID0g
ZW50cmllc1swXTsKLSAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBC
dWlsZGJvdEJ1aWxkRW50cnlEZXByZWNhdGVkKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQub2so
ZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnkpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChlbnRyeS5idWlsZE51bWJlcigpLCA2MTQpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChlbnRyeS5zbGF2ZU5hbWUoKSwgJ0FCVGVzdC1pUGFkLTAnKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGRSZXF1ZXN0SWQoKSwgMTY3MzMpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaXNQZW5kaW5nKCkpOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5vayhlbnRyeS5pc0luUHJvZ3Jlc3MoKSk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0Lm9rKCFlbnRyeS5oYXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9BQlRlc3Qt
aVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVpbGRzLzYxNCcpOworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRl
cnMvMTAyL2J1aWxkcy82MTQnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAt
MTY1OCwyNCArMTY3MywyNCBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAg
ICAgICAgICAgICBsZXQgcHJvbWlzZSA9IHN5bmNlci5wdWxsQnVpbGRib3QoNSk7CiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKIAotICAgICAgICAgICAgcmVx
dWVzdHNbMF0ucmVzb2x2ZShbc2FtcGxlUGVuZGluZ0J1aWxkUmVxdWVzdERlcHJlY2F0ZWQoKV0p
OworICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZShzYW1wbGVQZW5kaW5nQnVpbGRSZXF1
ZXN0cygpKTsKIAogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICByZXF1ZXN0c1sxXS5yZXNvbHZlKHtbLTFdOiBz
YW1wbGVGaW5pc2hlZEJ1aWxkRGVwcmVjYXRlZCgxNjczMyl9KTsKKyAgICAgICAgICAgICAgICBy
ZXF1ZXN0c1sxXS5yZXNvbHZlKHNhbXBsZUZpbmlzaGVkQnVpbGQoMTY3MzMpKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gcHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKGVudHJpZXMpID0+
IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cmllcy5sZW5ndGgsIDEpOwogCiAg
ICAgICAgICAgICAgICAgbGV0IGVudHJ5ID0gZW50cmllc1swXTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnlEZXByZWNhdGVkKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxk
RW50cnkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZE51bWJlcigp
LCAxNzU1KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuc2xhdmVOYW1lKCks
ICdBQlRlc3QtaVBhZC0wJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1
aWxkUmVxdWVzdElkKCksIDE2NzMzKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5
LmlzUGVuZGluZygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5LmlzSW5Qcm9n
cmVzcygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkuaGFzRmluaXNoZWQoKSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxk
LndlYmtpdC5vcmcvYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzL2J1aWxk
cy8xNzU1Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xMDIvYnVpbGRzLzE3NTUnKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTE3MTYsMTUgKzE3MzEsMjAgQEAg
ZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgc3luY2VyLnNj
aGVkdWxlUmVxdWVzdChyZXF1ZXN0LCBbcmVxdWVzdF0sICdzb21lLXNsYXZlJyk7CiAgICAgICAg
ICAgICByZXR1cm4gd2FpdEZvclJlcXVlc3QudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9idWlsZGVycy9BQlRlc3QtaVBob25lLVJ1bkJlbmNo
bWFyay1UZXN0cy9mb3JjZScpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1swXS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9BQlRlc3QtaVBob25lLVJ1bkJlbmNo
bWFyay1UZXN0cy1Gb3JjZVNjaGVkdWxlcicpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1swXS5tZXRob2QsICdQT1NUJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXF1ZXN0c1swXS5kYXRhLCB7Ci0gICAgICAgICAgICAgICAgICAgICdidWlsZF9y
ZXF1ZXN0X2lkJzogJzE2NzMzLScgKyBNb2NrTW9kZWxzLmlwaG9uZS5pZCgpLAotICAgICAgICAg
ICAgICAgICAgICAnZGVzaXJlZF9pbWFnZSc6ICcxM0E0NTInLAotICAgICAgICAgICAgICAgICAg
ICAib3BlbnNvdXJjZSI6ICIxOTc0NjMiLAotICAgICAgICAgICAgICAgICAgICAnZm9yY2VzY2hl
ZHVsZXInOiAnQUJUZXN0LWlQaG9uZS1SdW5CZW5jaG1hcmstVGVzdHMtRm9yY2VTY2hlZHVsZXIn
LAotICAgICAgICAgICAgICAgICAgICAnc2xhdmVuYW1lJzogJ3NvbWUtc2xhdmUnLAotICAgICAg
ICAgICAgICAgICAgICAndGVzdF9uYW1lJzogJ3NwZWVkb21ldGVyJworICAgICAgICAgICAgICAg
ICAgICAnaWQnOiAnMTY3MzMtJyArIE1vY2tNb2RlbHMuaXBob25lLmlkKCksCisgICAgICAgICAg
ICAgICAgICAgICdqc29ucnBjJzogJzIuMCcsCisgICAgICAgICAgICAgICAgICAgICdtZXRob2Qn
OiAnZm9yY2UnLAorICAgICAgICAgICAgICAgICAgICAncGFyYW1zJzogeworICAgICAgICAgICAg
ICAgICAgICAgICAgJ2J1aWxkX3JlcXVlc3RfaWQnOiAnMTY3MzMtJyArIE1vY2tNb2RlbHMuaXBo
b25lLmlkKCksCisgICAgICAgICAgICAgICAgICAgICAgICAnZGVzaXJlZF9pbWFnZSc6ICcxM0E0
NTInLAorICAgICAgICAgICAgICAgICAgICAgICAgJ29wZW5zb3VyY2UnOiAnMTk3NDYzJywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICdmb3JjZXNjaGVkdWxlcic6ICdBQlRlc3QtaVBob25lLVJ1
bkJlbmNobWFyay1UZXN0cy1Gb3JjZVNjaGVkdWxlcicsCisgICAgICAgICAgICAgICAgICAgICAg
ICAnc2xhdmVuYW1lJzogJ3NvbWUtc2xhdmUnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3Rl
c3RfbmFtZSc6ICdzcGVlZG9tZXRlcicKKyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgIH0pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtMTc0OCwzMyArMTc2
OCwzNSBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIGl0KCdz
aG91bGQgc2NoZWR1bGUgYSBidWlsZCBpZiBidWlsZGVyIGhhcyBubyBidWlsZHMgaWYgc2xhdmVM
aXN0IGlzIG5vdCBzcGVjaWZpZWQnLCAoKSA9PiB7CiAgICAgICAgICAgICBsZXQgc3luY2VyID0g
QnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc21hbGxDb25maWd1cmF0
aW9uKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVswXTsKIAotICAgICAgICAgICAgcmV0dXJuIHB1
bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge30pLnRoZW4oKCkgPT4geworICAg
ICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCB7fSwge30p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1w
bGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5zb21lUGxhdGZvcm0sIE1vY2tNb2RlbHMuc29tZVRl
c3QpOwogICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3RJbkdyb3VwSWZBdmFp
bGFibGUocmVxdWVzdCwgW3JlcXVlc3RdKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbMF0udXJsLCAnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2ZvcmNlJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVs
ZXJzL3NvbWUtYnVpbGRlci1Gb3JjZVNjaGVkdWxlcicpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0c1swXS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1swXS5kYXRhLCB7aWQ6ICcxNjczMy0nICsgTW9ja01vZGVs
cy5zb21lUGxhdGZvcm0uaWQoKSwgJ29zJzogJzEzQTQ1MicsICd3ayc6ICcxOTc0NjMnLCAnZm9y
Y2VzY2hlZHVsZXInOiAnc29tZS1idWlsZGVyLUZvcmNlU2NoZWR1bGVyJ30pOworICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMF0uZGF0YSwge2lkOiAnMTY3MzMtJyAr
IE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLmlkKCksICdqc29ucnBjJzogJzIuMCcsICdtZXRob2Qn
OiAnZm9yY2UnLAorICAgICAgICAgICAgICAgICAgICAncGFyYW1zJzoge2lkOiAnMTY3MzMtJyAr
IE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLmlkKCksICdmb3JjZXNjaGVkdWxlcic6ICdzb21lLWJ1
aWxkZXItRm9yY2VTY2hlZHVsZXInLCAnb3MnOiAnMTNBNDUyJywgJ3drJzogJzE5NzQ2Myd9fSk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBzY2hl
ZHVsZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgb25seSBoYXMgZmluaXNoZWQgYnVpbGRzIGlmIHNsYXZl
TGlzdCBpcyBub3Qgc3BlY2lmaWVkJywgKCkgPT4gewogICAgICAgICAgICAgbGV0IHN5bmNlciA9
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNtYWxsQ29uZmlndXJh
dGlvbigpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMF07CiAKLSAgICAgICAgICAgIHJldHVybiBw
dWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10sIHtbLTFdOiBzbWFsbEZpbmlzaGVk
QnVpbGQoKX0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdp
dGhBc3NlcnRpb24oc3luY2VyLCB7fSwgc21hbGxGaW5pc2hlZEJ1aWxkKCkpLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVl
c3QoTW9ja01vZGVscy5zb21lUGxhdGZvcm0sIE1vY2tNb2RlbHMuc29tZVRlc3QpOwogICAgICAg
ICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUocmVxdWVz
dCwgW3JlcXVlc3RdKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAn
L2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2ZvcmNlJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL3NvbWUtYnVp
bGRlci1Gb3JjZVNjaGVkdWxlcicpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0c1swXS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXF1ZXN0c1swXS5kYXRhLCB7aWQ6ICcxNjczMy0nICsgTW9ja01vZGVscy5zb21lUGxhdGZv
cm0uaWQoKSwgJ29zJzogJzEzQTQ1MicsICd3ayc6ICcxOTc0NjMnLCAnZm9yY2VzY2hlZHVsZXIn
OiAnc29tZS1idWlsZGVyLUZvcmNlU2NoZWR1bGVyJ30pOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVxdWVzdHNbMF0uZGF0YSwge2lkOiAnMTY3MzMtJyArIE1vY2tNb2RlbHMu
c29tZVBsYXRmb3JtLmlkKCksICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLAor
ICAgICAgICAgICAgICAgICAgICAncGFyYW1zJzoge2lkOiAnMTY3MzMtJyArIE1vY2tNb2RlbHMu
c29tZVBsYXRmb3JtLmlkKCksICdmb3JjZXNjaGVkdWxlcic6ICdzb21lLWJ1aWxkZXItRm9yY2VT
Y2hlZHVsZXInLCAnb3MnOiAnMTNBNDUyJywgJ3drJzogJzE5NzQ2Myd9fSk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBub3Qgc2NoZWR1bGUgYSBi
dWlsZCBpZiBidWlsZGVyIGhhcyBhIHBlbmRpbmcgYnVpbGQgaWYgc2xhdmVMaXN0IGlzIG5vdCBz
cGVjaWZpZWQnLCAoKSA9PiB7CiAgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc21hbGxDb25maWd1cmF0aW9uKCksIGJ1aWxk
ZXJOYW1lVG9JRE1hcCgpKVswXTsKIAotICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdp
dGhBc3NlcnRpb24oc3luY2VyLCBbc21hbGxQZW5kaW5nQnVpbGQoKV0sIHt9KS50aGVuKCgpID0+
IHsKKyAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwg
c21hbGxQZW5kaW5nQnVpbGQoKSwge30pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHN5
bmNlci5zY2hlZHVsZVJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUoY3JlYXRlU2FtcGxlQnVpbGRS
ZXF1ZXN0KE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLCBNb2NrTW9kZWxzLnNvbWVUZXN0KSk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMCk7CiAgICAgICAg
ICAgICB9KTsKQEAgLTE3ODMsMTEgKzE4MDUsMTEgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2Vy
JywgKCkgPT4gewogICAgICAgICBpdCgnc2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVpbGRl
ciBkb2VzIG5vdCBoYXZlIHBlbmRpbmcgb3IgY29tcGxldGVkIGJ1aWxkcyBvbiB0aGUgbWF0Y2hp
bmcgc2xhdmUnLCAoKSA9PiB7CiAgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJO
YW1lVG9JRE1hcCgpKVswXTsKIAotICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhB
c3NlcnRpb24oc3luY2VyLCBbXSwge30pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgcmV0dXJu
IHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCB7fSwge30pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3Qo
TW9ja01vZGVscy5pcGhvbmUsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwogICAgICAgICAgICAg
ICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUocmVxdWVzdCwgW3Jl
cXVlc3RdLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAn
L2J1aWxkZXJzL0FCVGVzdC1pUGhvbmUtUnVuQmVuY2htYXJrLVRlc3RzL2ZvcmNlJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9hcGkvdjIvZm9yY2Vz
Y2hlZHVsZXJzL0FCVGVzdC1pUGhvbmUtUnVuQmVuY2htYXJrLVRlc3RzLUZvcmNlU2NoZWR1bGVy
Jyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLm1ldGhvZCwgJ1BP
U1QnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKQEAgLTE3OTUsMTEgKzE4MTcsMTEg
QEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICBpdCgnc2hvdWxk
IHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVpbGRlciBvbmx5IGhhcyBmaW5pc2hlZCBidWlsZHMgb24g
dGhlIG1hdGNoaW5nIHNsYXZlJywgKCkgPT4gewogICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1
aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygp
LCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKLSAgICAgICAgICAgIHB1bGxCdWlsZGJvdFdp
dGhBc3NlcnRpb24oc3luY2VyLCBbXSwge1stMV06IHNhbXBsZUZpbmlzaGVkQnVpbGREZXByZWNh
dGVkKCl9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRp
b24oc3luY2VyLCB7fSwgc2FtcGxlRmluaXNoZWRCdWlsZCgpKS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tN
b2RlbHMuaXBhZCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CiAgICAgICAgICAgICAgICAgc3lu
Y2VyLnNjaGVkdWxlUmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShyZXF1ZXN0LCBbcmVxdWVzdF0s
IG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvYnVpbGRl
cnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzL2ZvcmNlJyk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJz
L0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy1Gb3JjZVNjaGVkdWxlcicpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5tZXRob2QsICdQT1NUJyk7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC0xODA3LDcgKzE4MjksNyBAQCBkZXNjcmliZSgn
QnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIGl0KCdzaG91bGQgbm90IHNjaGVkdWxl
IGEgYnVpbGQgaWYgYnVpbGRlciBoYXMgYSBwZW5kaW5nIGJ1aWxkIG9uIHRoZSBtYWNoaW5nIHNs
YXZlJywgKCkgPT4gewogICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRv
SURNYXAoKSlbMV07CiAKLSAgICAgICAgICAgIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3lu
Y2VyLCBbc2FtcGxlUGVuZGluZ0J1aWxkUmVxdWVzdERlcHJlY2F0ZWQoKV0sIHt9KS50aGVuKCgp
ID0+IHsKKyAgICAgICAgICAgIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBzYW1w
bGVQZW5kaW5nQnVpbGRSZXF1ZXN0cygpLCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlw
YWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwogICAgICAgICAgICAgICAgIHN5bmNlci5zY2hl
ZHVsZVJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUocmVxdWVzdCwgW3JlcXVlc3RdLCBudWxsKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAwKTsKQEAgLTE4
MTcsNyArMTgzOSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAg
ICAgaXQoJ3Nob3VsZCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgb25seSBoYXMgYSBwZW5k
aW5nIGJ1aWxkIG9uIGEgbm9uLW1hY2hpbmcgc2xhdmUnLCAoKSA9PiB7CiAgICAgICAgICAgICBs
ZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2Ft
cGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAotICAgICAgICAgICAg
cmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbc2FtcGxlUGVuZGluZ0J1
aWxkUmVxdWVzdERlcHJlY2F0ZWQoMSwgMSwgJ2Fub3RoZXItc2xhdmUnKV0sIHt9KS50aGVuKCgp
ID0+IHsKKyAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNl
ciwgc2FtcGxlUGVuZGluZ0J1aWxkUmVxdWVzdHMoMSwgMSwgJ2Fub3RoZXItc2xhdmUnKSwge30p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1w
bGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsK
ICAgICAgICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0SW5Hcm91cElmQXZhaWxhYmxl
KHJlcXVlc3QsIFtyZXF1ZXN0XSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMSk7CkBAIC0xODI3LDcgKzE4NDksNyBAQCBkZXNjcmliZSgnQnVp
bGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIGl0KCdzaG91bGQgc2NoZWR1bGUgYSBidWls
ZCBpZiBidWlsZGVyIG9ubHkgaGFzIGFuIGluLXByb2dyZXNzIGJ1aWxkIG9uIHRoZSBtYXRjaGlu
ZyBzbGF2ZScsICgpID0+IHsKICAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5h
bWVUb0lETWFwKCkpWzFdOwogCi0gICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFz
c2VydGlvbihzeW5jZXIsIFtdLCB7Wy0xXTogc2FtcGxlSW5Qcm9ncmVzc0J1aWxkRGVwcmVjYXRl
ZCgpfSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFz
c2VydGlvbihzeW5jZXIsIHt9LCBzYW1wbGVJblByb2dyZXNzQnVpbGQoKSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVz
dChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwogICAgICAgICAgICAg
ICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUocmVxdWVzdCwgW3Jl
cXVlc3RdLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAxKTsKQEAgLTE4MzcsNyArMTg1OSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcics
ICgpID0+IHsKICAgICAgICAgaXQoJ3Nob3VsZCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGJ1aWxkZXIg
aGFzIGFuIGluLXByb2dyZXNzIGJ1aWxkIG9uIGFub3RoZXIgc2xhdmUnLCAoKSA9PiB7CiAgICAg
ICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90
ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAotICAg
ICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge1st
MV06IHNhbXBsZUluUHJvZ3Jlc3NCdWlsZERlcHJlY2F0ZWQoJ290aGVyLXNsYXZlJyl9KS50aGVu
KCgpID0+IHsKKyAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5
bmNlciwge30sIHNhbXBsZUluUHJvZ3Jlc3NCdWlsZCgnb3RoZXItc2xhdmUnKSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVx
dWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwogICAgICAgICAg
ICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUocmVxdWVzdCwg
W3JlcXVlc3RdLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAxKTsKQEAgLTE4NDcsNyArMTg2OSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNl
cicsICgpID0+IHsKICAgICAgICAgaXQoJ3Nob3VsZCBub3Qgc2NoZWR1bGUgYSBidWlsZCBpZiB0
aGUgcmVxdWVzdCBkb2VzIG5vdCBtYXRjaCBhbnkgY29uZmlndXJhdGlvbicsICgpID0+IHsKICAg
ICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVt
b3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzBdOwogCi0g
ICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7
fSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2Vy
dGlvbihzeW5jZXIsIHt9LCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3Qg
cmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tN
b2RlbHMuc3BlZWRvbWV0ZXIpOwogICAgICAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVl
c3RJbkdyb3VwSWZBdmFpbGFibGUocmVxdWVzdCwgW3JlcXVlc3RdLCBudWxsKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAwKTsKQEAgLTE4NTcsNyArMTg3
OSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgaXQoJ3No
b3VsZCBub3Qgc2NoZWR1bGUgYSBidWlsZCBpZiBhIG5ldyByZXF1ZXN0IGhhZCBiZWVuIHN1Ym1p
dHRlZCB0byB0aGUgc2FtZSBzbGF2ZScsIChkb25lKSA9PiB7CiAgICAgICAgICAgICBsZXQgc3lu
Y2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9T
Q29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAotICAgICAgICAgICAgcHVsbEJ1
aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7fSkudGhlbigoKSA9PiB7CisgICAgICAg
ICAgICBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwge30sIHt9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICBsZXQgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVz
dChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwogICAgICAgICAgICAg
ICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3QocmVxdWVzdCwgW3JlcXVlc3RdLCAnQUJUZXN0LWlQ
YWQtMCcpOwogICAgICAgICAgICAgICAgIHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVl
c3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKQEAgLTE4NzUsNyAr
MTg5Nyw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgaXQo
J3Nob3VsZCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGEgbmV3IHJlcXVlc3QgaGFkIGJlZW4gc3VibWl0
dGVkIHRvIGFub3RoZXIgc2xhdmUnLCAoKSA9PiB7CiAgICAgICAgICAgICBsZXQgc3luY2VyID0g
QnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmln
KCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAotICAgICAgICAgICAgcmV0dXJuIHB1bGxC
dWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge30pLnRoZW4oKCkgPT4geworICAgICAg
ICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCB7fSwge30pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGxldCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVp
bGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CiAgICAg
ICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdChyZXF1ZXN0LCBbcmVxdWVzdF0sICdB
QlRlc3QtaVBhZC0wJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMSk7CkBAIC0xODg4LDcgKzE5MTAsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXIn
LCAoKSA9PiB7CiAgICAgICAgIGl0KCdzaG91bGQgbm90IHNjaGVkdWxlIGEgYnVpbGQgaWYgYSBu
ZXcgcmVxdWVzdCBoYWQgYmVlbiBzdWJtaXR0ZWQgdG8gdGhlIHNhbWUgYnVpbGRlciB3aXRob3V0
IHNsYXZlTGlzdCcsICgpID0+IHsKICAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzbWFsbENvbmZpZ3VyYXRpb24oKSwgYnVp
bGRlck5hbWVUb0lETWFwKCkpWzBdOwogCi0gICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90
V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7fSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICBy
ZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIHt9LCB7fSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgbGV0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVl
c3QoTW9ja01vZGVscy5zb21lUGxhdGZvcm0sIE1vY2tNb2RlbHMuc29tZVRlc3QpOwogICAgICAg
ICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3QocmVxdWVzdCwgW3JlcXVlc3RdLCBudWxs
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335979</attachid>
            <date>2018-03-16 15:57:58 -0700</date>
            <delta_ts>2018-03-19 16:03:47 -0700</delta_ts>
            <desc>Updated patch rebased on TOT</desc>
            <filename>buildbot_perf_update_v6.patch</filename>
            <type>text/plain</type>
            <size>186131</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjI5Njg0KQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI1IEBACisyMDE4LTAzLTA5ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBVcGRhdGUgUGVyZiBidWlsZGJvdCBzeW5jaW5nIHNjcmlwdHMgZm9yIEJ1
aWxkYm90IDAuOQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc1OTY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB0b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qczoKKyAgICAgICAgKEJ1aWxkYm90
VHJpZ2dlcmFibGUucHJvdG90eXBlLmluaXRTeW5jZXJzKTogU3dpdGNoIGZyb20gRGVwcmVjYXRl
ZCB2ZXJzaW9uIHRvIG5ldyB2ZXJzaW9uIG9mIGdldEJ1aWxkZXJOYW1lVG9JRE1hcC4KKyAgICAg
ICAgKiB0b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanM6CisgICAgICAgIChCdWlsZGJvdFN5bmNl
ci5wcm90b3R5cGUuc2NoZWR1bGVSZXF1ZXN0SW5Hcm91cElmQXZhaWxhYmxlKTogU3dpdGNoIGZy
b20gRGVwcmVjYXRlZCB2ZXJzaW9uIHRvIG5ldyB2ZXJzaW9uIG9mIHNjaGVkdWxlUmVxdWVzdC4K
KyAgICAgICAgKEJ1aWxkYm90U3luY2VyLnByb3RvdHlwZS5wdWxsQnVpbGRib3QpOiBTd2l0Y2gg
ZnJvbSBEZXByZWNhdGVkIHZlcnNpb24gdG8gbmV3IHZlcnNpb24gb2YgcGF0aEZvclBlbmRpbmdC
dWlsZHMsIF9wdWxsUmVjZW50QnVpbGRzIAorICAgICAgICBhbmQgQnVpbGRib3RCdWlsZEVudHJ5
LiBQYXJzZSB0aGUgcGVuZGluZyBidWlsZC1yZXF1ZXN0cyBkYXRhIGluIEJ1aWxkYm90IDAuOSBm
b3JtYXQuCisgICAgICAgICogdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanM6IFVw
ZGF0ZWQgYXMgcGVyIEJ1aWxkYm90IDAuOSBjb2RlLgorICAgICAgICAqIHNlcnZlci10ZXN0cy90
b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzOiBEaXR0by4KKyAgICAgICAg
KiBzZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanM6IERpdHRv
LgorICAgICAgICAqIHNlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzOiBEaXR0by4K
KyAgICAgICAgKE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwpOiBNZXRob2QgdG8gY29uc3RydWN0
IHBlbmRpbmdCdWlsZHNVcmwgaW4gQnVpbGRib3QgMC45IGZvcm1hdC4KKyAgICAgICAgKE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCk6IERpdHRvIGZvciByZWNlbnQgYnVpbGRzIHVybC4KKyAgICAg
ICAgKE1vY2tEYXRhLnN0YXR1c1VybCk6IERpdHRvIGZvciBzdGF0dXMgdXJsLgorICAgICAgICAo
TW9ja0RhdGEuc3RhdHVzVXJsRm9yUGVuZGluZ0J1aWxkcyk6IERpdHRvIGZvciBzdGF0dXMgdXJs
IGZvciBwZW5kaW5nIGJ1aWxkcy4KKwogMjAxOC0wMy0xNCAgQWFrYXNoIEphaW4gIDxhYWthc2hf
amFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGJvb2xlYW4gcHJvcGVy
dGllcyBpbiBCdWlsZGJvdFN5bmNlciB3aGlsZSBzdWJtaXR0aW5nIGJ1aWxkIHJlcXVlc3QgdG8g
QnVpbGRib3QgMC45IHNlcnZlcgpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRy
aWdnZXJhYmxlLXRlc3RzLmpzCShyZXZpc2lvbiAyMjk2ODQpCisrKyBXZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdn
ZXJhYmxlJywgZnVuY3Rpb24KICAgICAgICAgICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFt
ZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAgICAg
Y29uc3QgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAg
ICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhl
bigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRS
ZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0Rh
dGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90
QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRS
ZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJv
dEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7CkBAIC00NiwyOSArNDYsMzAgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBm
dW5jdGlvbgogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxk
cycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShb
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVy
cy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe1stMV06IE1vY2tEYXRh
LnJ1bm5pbmdCdWlsZCgpLCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKCl9KTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tE
YXRhLnJ1bm5pbmdCdWlsZERhdGEoKSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoKV19KTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9idWlsZGVy
cy9zb21lLWJ1aWxkZXItMS9mb3JjZScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5kYXRhLCB7J3drJzogJzE5MTYyMicsICdvcyc6
ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDInLCAnZm9yY2VzY2hlZHVs
ZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxl
cnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6IDcwMiwgJ2pzb25ycGMn
OiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOiB7CisgICAgICAgICAgICAgICAg
ICAgICd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3Qt
aWQnOiA3MDIsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7CiAg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKCdPSycpOwog
ICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWls
ZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoKV0p
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoTW9ja0RhdGEucGVu
ZGluZ0J1aWxkKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVy
bCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2
ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKCksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVk
QnVpbGQoKX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScs
IDIpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUo
eydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSgpLCBNb2NrRGF0YS5maW5pc2hl
ZEJ1aWxkRGF0YSgpXX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJl
cXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRo
U2luZ2xlQnVpbGRlcigpLnRyaWdnZXJhYmxlTmFtZSk7CkBAIC05MiwyOCArOTMsMjggQEAgZGVz
Y3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGxl
dCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307
CiAgICAgICAgICAgICAgICAgbGV0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFi
bGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUlu
Zm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5p
bml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tE
YXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywg
TW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWls
ZGVycygpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJzL3Nv
bWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCgpXSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1
aWxkKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcv
anNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTIn
KTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe1st
MV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCgpLCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxk
KCl9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7
CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVp
bGRzJyA6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKCksIE1vY2tEYXRhLmZpbmlzaGVkQnVp
bGREYXRhKCldfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVy
bCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoW01vY2tEYXRhLnBl
bmRpbmdCdWlsZCgpXSkKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJykpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2
ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbM10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1szXS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoKSwgWy0yXTogTW9j
a0RhdGEuZmluaXNoZWRCdWlsZCgpfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbM10ucmVzb2x2ZSh7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSgpLCBN
b2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSgpXX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBz
eW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKQEAgLTE0Miw1MCAr
MTQzLDUxIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAg
ICAgICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29y
ZDogJ3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBuZXcg
QnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tS
ZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlz
ZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5j
T25jZSgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERl
cHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOwor
ICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRh
Lm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0g
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKFtNb2NrRGF0
YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA5OTl9KV0pOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRS
ZXF1ZXN0SWQ6IDk5OX0pKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9zb21l
JTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZShbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQp
OwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
Lm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxk
cy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCA1KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2J1aWxkZXJzL3NvbWUl
MjBidWlsZGVyJTIwMi9mb3JjZScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5kYXRhLCB7J3drJzogJzE5MTYyMicsICdvcyc6ICcx
MC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDAnLCAnZm9yY2VzY2hlZHVsZXIn
OiAnZm9yY2Utc29tZS1idWlsZGVyLTInfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMv
Zm9yY2Utc29tZS1idWlsZGVyLTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeydpZCc6ICc3MDAnLCAnanNvbnJwYyc6
ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAg
ICAgJ3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1p
ZCc6ICc3MDAnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTInfX0pOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZSgnT0snKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcv
anNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5n
QnVpbGQoe2J1aWxkUmVxdWVzdElkOiA5OTl9KV0pOworICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s1XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6
IDk5OX0pKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRl
ciUyMDIvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbNl0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBi
dWlsZGVyIDInLCBidWlsZFJlcXVlc3RJZDogNzAwfSldKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbNl0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXJJZDog
MywgYnVpbGRSZXF1ZXN0SWQ6IDcwMH0pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCA5KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s3XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9i
dWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s3XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsICcvanNvbi9idWlsZGVy
cy9zb21lJTIwYnVpbGRlciUyMDIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CkBA
IC0yMDIsNyArMjA0LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlv
bgogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAw
KS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBi
dWlsZGVyJTIwMi8nKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybEZvclBlbmRpbmdC
dWlsZHMoMTcpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcwMSkuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3Rh
dHVzKCksICdwZW5kaW5nJyk7CkBAIC0yMjMsNDMgKzIyNSw0MyBAQCBkZXNjcmliZSgnQnVpbGRi
b3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgbGV0IHNsYXZlSW5mbyA9
IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAg
ICAgICBsZXQgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsK
ICAgICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCku
dGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9j
a0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxk
Ym90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RB
bmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWls
ZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1
aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElk
OiA3MDB9KV0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
KSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycp
OwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZShbXSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9qc29uL2J1
aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1szXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWls
ZGVyIDInLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5y
ZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA2KTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s0XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7
Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKFtNb2Nr
RGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV0pOworICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVp
bGRSZXF1ZXN0SWQ6IDcwMH0pKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcvanNvbi9idWlsZGVycy9z
b21lJTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZShbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzVdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDgpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzZdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1
aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdzb21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzZdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKQEAg
LTI3Niw3ICsyNzgsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9u
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDAp
LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZS1idWls
ZGVyLTEvJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmxGb3JQZW5kaW5nQnVpbGRz
KDE3KSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDEpLnN0YXR1cygpLCAncGVuZGluZycpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1cygp
LCAncGVuZGluZycpOwpAQCAtMjk3LDUwICsyOTksNTEgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJp
Z2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtu
YW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAg
ICBjb25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwog
ICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50
aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2Nr
RGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRi
b3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFu
ZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxk
Ym90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVp
bGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLnJlc29sdmUoW10pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIw
YnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ucmVzb2x2ZShbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/
c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVl
c3RJZDogNzAxfSksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkUmVxdWVzdElk
OiA3MDB9KX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScs
IDIpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUo
eydidWlsZHMnIDogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3
MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV19
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sz
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIv
YnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbM10ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
NSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NF0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9mb3JjZScp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s0XS5kYXRhLCB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQt
cmVxdWVzdC1pZCc6ICc3MDInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVy
LTEnfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNF0uZGF0YSwgeydpZCc6ICc3MDInLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2Zv
cmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ3drJzogJzE5MTYyMicsICdv
cyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDInLCAnZm9yY2VzY2hl
ZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1
aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s1XS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElk
OiA3MDJ9KV0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzVdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
KSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMn0pKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2
XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycp
OwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ucmVzb2x2ZShbXSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0u
dXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnJlc29sdmUoe30pOwogICAgICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgJy9qc29uL2J1
aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZSh7Wy0xXTogTW9j
a0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIFstMl06IE1vY2tEYXRh
LmZpbmlzaGVkQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KX0pOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzddLnJlc29sdmUoeydidWlsZHMnIDogW01vY2tEYXRhLnJ1bm5p
bmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWls
ZERhdGEoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV19KTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsICcvanNv
bi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0y
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
OF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwog
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ucmVzb2x2ZSh7fSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7CkBAIC0zNTcsMTEgKzM2MCwxMSBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJs
ZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1cygpLCAn
ZmFpbGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMv
c29tZS1idWlsZGVyLTEvYnVpbGRzLzEyMycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVz
VXJsKCdzb21lLWJ1aWxkZXItMScsIDEyMykpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVz
VXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9i
dWlsZHMvMTI0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRl
ci0xJywgMTI0KSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDIpLnN0YXR1cygpLCAnc2NoZWR1bGVkJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgpLCAnaHR0cDov
L2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDIpLnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmxGb3JQZW5kaW5nQnVpbGRzKDE3KSk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygpLCAncGVu
ZGluZycpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICB9KTsKQEAgLTM3OCwzMiAr
MzgxLDMyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAg
ICAgICAgICAgICBsZXQgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6
ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIGxldCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWls
ZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90
ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0g
dHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNl
KCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVj
YXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9j
a0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNl
dCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVy
bCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoW01vY2tEYXRhLnBl
bmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVl
c3RJZDogNzAwfSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJl
c29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsK
LSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoW10pOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWls
ZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoe1stMV06IE1vY2tE
YXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZShNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1
aWxkUmVxdWVzdElkOiA3MDB9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNl
OwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwpAQCAtNDE5LDcgKzQyMiw3IEBAIGRl
c2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxs
KCkubGVuZ3RoLCA0KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdydW5uaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCAnaHR0cDov
L2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLzEyNCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAwKS5z
dGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lLWJ1aWxkZXItMScsIDEyNCkpOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5z
dGF0dXMoKSwgJ3BlbmRpbmcnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRp
bmcnKTsKQEAgLTQ0Myw1MCArNDQ2LDUxIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxl
JywgZnVuY3Rpb24KICAgICAgICAgICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5
bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAgICAgY29uc3Qg
dHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAg
ICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9
PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0
QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVp
bGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRl
cnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZl
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxk
ZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9w
ZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDJ9KV0p
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
LnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKE1vY2tEYXRhLnBl
bmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMn0pKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcv
anNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycpOwotICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZShbXSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9qc29uL2J1aWxkZXJzL3Nv
bWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVu
bmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVk
QnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLnJlc29sdmUoeydidWlsZHMnIDogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERh
dGEoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1
aWxkUmVxdWVzdElkOiA3MDB9KV19KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWlsZGVy
cy9zb21lJTIwYnVpbGRlciUyMDIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwogICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9idWlsZGVycy9z
b21lJTIwYnVpbGRlciUyMDIvZm9yY2UnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAnb3Mn
OiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzEwJywgJ2ZvcmNlc2NoZWR1
bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0yJ30pOworICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVs
ZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsnaWQnOiAnNzEwJywgJ2pzb25y
cGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOiB7CisgICAgICAgICAgICAg
ICAgICAgICd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVl
c3QtaWQnOiAnNzEwJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0yJ319
KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoJ09L
Jyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNyk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJs
LCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZShbTW9ja0RhdGEucGVu
ZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAyfSldKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbNV0ucmVzb2x2ZShNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVz
dElkOiA3MDJ9KSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1
aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzZdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcjogJ3Nv
bWUgYnVpbGRlciAyJywgYnVpbGRSZXF1ZXN0SWQ6IDcxMH0pXSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzZdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVy
SWQ6IDMsIGJ1aWxkUmVxdWVzdElkOiA3MTB9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgOSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVy
LTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQo
e2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVp
bGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUt
YnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
N10ucmVzb2x2ZSh7J2J1aWxkcycgOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRS
ZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0
SWQ6IDcwMH0pXX0pOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBi
dWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1
cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKQEAgLTUxMSwxNSAr
NTE1LDE1IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVz
VXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9i
dWlsZHMvMTIzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDApLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUtYnVpbGRl
ci0xJywgMTIzKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9i
dWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8xMjQnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3Rh
dHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAxMjQpKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3Rh
dHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9y
Zy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS8nKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1
c1VybEZvclBlbmRpbmdCdWlsZHMoMTcpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1c1Vy
bCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDcxMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzVXJsKCksICdodHRwOi8v
YnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1c1Vy
bCgpLCBNb2NrRGF0YS5zdGF0dXNVcmxGb3JQZW5kaW5nQnVpbGRzKDE3KSk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTEpLnN0YXR1cygpLCAn
cGVuZGluZycpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoNzExKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTIpLnN0YXR1cygpLCAncGVuZGluZycpOwpAQCAt
NTQzLDU1ICs1NDcsNTcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlv
bgogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScs
IHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJs
ZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEko
KSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5
bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJh
YmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZl
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxk
ZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0
ZWQoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwg
TW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWls
ZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUo
W10pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7Cisg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRo
b2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGlu
Z0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVz
b2x2ZShbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicp
KTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30p
OwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwg
Jy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0t
MicpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7
Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzEwfSl9KTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKE1vY2tEYXRhLnJ1bm5p
bmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pKTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcvanNv
bi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0y
Jyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHtb
LTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXIgMicsIGJ1
aWxkUmVxdWVzdElkOiA3MDB9KX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzNdLnJlc29sdmUoTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IDMsIGJ1aWxkUmVx
dWVzdElkOiA3MDB9KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNik7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9k
LCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzRdLnVybCwgJy9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvZm9yY2UnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0u
ZGF0YSwgeyd3ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVl
c3QtaWQnOiAnNzAxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0yJ30p
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRd
LnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRd
LmRhdGEsIHsnaWQnOiAnNzAxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScs
ICdwYXJhbXMnOiB7CisgICAgICAgICAgICAgICAgICAgICd3ayc6ICcxOTI3MzYnLCAnb3MnOiAn
MTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAxJywgJ2ZvcmNlc2NoZWR1bGVy
JzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0yJ319KTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgJy9idWls
ZGVycy9zb21lLWJ1aWxkZXItMS9mb3JjZScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5kYXRhLCB7J3drJzogJzE5MjczNicsICdv
cyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MTEnLCAnZm9yY2VzY2hl
ZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVk
dWxlcnMvZm9yY2Utc29tZS1idWlsZGVyLTEnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0uZGF0YSwgeydpZCc6ICc3MTEnLCAnanNv
bnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAg
ICAgICAgICAgJ3drJzogJzE5MjczNicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVx
dWVzdC1pZCc6ICc3MTEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEn
fX0pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZSgn
T0snKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA4KTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51
cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKFtNb2NrRGF0YS5w
ZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MTF9KV0pOworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1
ZXN0SWQ6IDcxMX0pKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIw
YnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbN10ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAn
c29tZSBidWlsZGVyIDInLGJ1aWxkUmVxdWVzdElkOiA3MDF9KV0pOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRl
cklkOiAzLCBidWlsZFJlcXVlc3RJZDogNzAxfSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDEwKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxk
ZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzhdLnJlc29sdmUoe1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWls
ZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbOF0ucmVzb2x2ZShNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3
MTB9KSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbOV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbOV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIl
MjAyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbOV0ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxk
KHtidWlsZGVyOiAnc29tZSBidWlsZGVyIDInLCBidWlsZFJlcXVlc3RJZDogNzAwfSl9KTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s5XS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s5XS5yZXNvbHZlKE1vY2tEYXRhLnJ1bm5p
bmdCdWlsZCh7YnVpbGRlcklkOiAzLCBidWlsZFJlcXVlc3RJZDogNzAwfSkpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4
KTsKQEAgLTYxNSwxNyArNjIxLDE3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywg
ZnVuY3Rpb24KICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdydW5u
aW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDApLnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIlMjAyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1
c1VybCgnc29tZSBidWlsZGVyIDInLCAxMjQpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSkuc3Rh
dHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRl
ciUyMDIvJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg3MDEpLnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmxGb3JQZW5kaW5nQnVpbGRz
KDE3KSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJ
ZCg3MDIpLnN0YXR1cygpLCAncGVuZGluZycpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMpLnN0YXR1cygp
LCAncGVuZGluZycpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAzKS5zdGF0dXNVcmwoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MTApLnN0YXR1cygpLCAncnVubmluZycpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzEwKS5z
dGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUtYnVpbGRl
ci0xL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcxMCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1i
dWlsZGVyLTEnLCAxMjQpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVzVXJsKCksICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS8nKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMSkuc3RhdHVz
VXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybEZvclBlbmRpbmdCdWlsZHMoMTcpKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMikuc3RhdHVzKCks
ICdwZW5kaW5nJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg3MTIpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcxMykuc3RhdHVzKCksICdwZW5kaW5nJyk7CkBA
IC02NDYsMjYgKzY1MiwyNyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0
aW9uCiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZl
JywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJh
YmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAg
c3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dl
cmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29s
dmUocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVj
YXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbMF0sICdHRVQnLCBN
b2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxk
ZXJzKCkpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51
cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKFtdKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJz
L3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgcmVxdWVzdHNbMV0u
cmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLnVybCwgJy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9mb3Jj
ZScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMl0uZGF0YSwg
eyd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQn
OiAnNzAwJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ30pOworICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS51cmwsICcvYXBpL3YyL2ZvcmNl
c2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwocmVxdWVzdHNbMl0uZGF0YSwgeydpZCc6ICc3MDAnLCAnanNvbnJwYyc6ICcy
LjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAgICAg
J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6
ICc3MDAnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0pOwogICAg
ICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChy
ZXNvbHZlLCAxMCkpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CkBAIC02NzQsMTMgKzY4MSwxMyBA
QCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCA0KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLnVybCwg
Jy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRp
bmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1i
dWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5y
ZXNvbHZlKE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzRdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1s0XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0t
MSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNF0u
dXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAg
ICAgICAgICAgICAgIHJlcXVlc3RzWzRdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJl
dHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpAQCAtNjg4LDcg
KzY5NSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdzY2hlZHVsZWQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVz
VXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS8n
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
MCkuc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybEZvclBlbmRpbmdCdWlsZHMoMTcpKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMSku
c3RhdHVzKCksICdwZW5kaW5nJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1c1VybCgpLCBudWxsKTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5k
aW5nJyk7CkBAIC03MjMsNTQgKzczMCw1NSBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJs
ZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdz
eW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIHRyaWdn
ZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAg
ICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJp
Z2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJl
c29sdmUocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVw
cmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbMF0sICdHRVQn
LCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1
aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUo
cmVxdWVzdHNbMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGlu
Z0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShy
ZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJyksIHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywKLSAgICAgICAgICAgICAg
ICAgICAge1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0p
LCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZFJlcXVlc3RJZDogNzEwfSl9KTsK
KyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1sxXSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSwKKyAgICAg
ICAgICAgICAgICAgICAgeydidWlsZHMnIDogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1
aWxkUmVxdWVzdElkOiA3MDB9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVx
dWVzdElkOiA3MTB9KV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbMl0sICdQT1NUJywgJy9idWlsZGVycy9z
b21lLWJ1aWxkZXItMS9mb3JjZScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
cmVxdWVzdHNbMl0uZGF0YSwgeyd3ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEgMTVBMjg0Jywg
J2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUt
YnVpbGRlci0xJ30pOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJl
cXVlc3RzWzJdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1
aWxkZXItMScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS5kYXRhLCB7J2lkJzogJzcwMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRo
b2QnOiAnZm9yY2UnLCAncGFyYW1zJzogeworICAgICAgICAgICAgICAgICAgICAnd2snOiAnMTky
NzM2JywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMScsICdm
b3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3Rz
WzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMn
LAotICAgICAgICAgICAgICAgICAgICBbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVl
c3RJZDogNzAxfSldKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShy
ZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJyksCisgICAgICAgICAgICAgICAgICAgIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRS
ZXF1ZXN0SWQ6IDcwMX0pKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNSk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRl
cnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywKLSAgICAgICAg
ICAgICAgICAgICAge1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6
IDcwMH0pLCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZFJlcXVlc3RJZDogNzEw
fSl9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s0
XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSwK
KyAgICAgICAgICAgICAgICAgICAgeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0
YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVp
bGRSZXF1ZXN0SWQ6IDcxMH0pXX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlz
ZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHN5bmNQcm9t
aXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5
bmNPbmNlKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVl
c3RzWzVdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwg
TW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAg
ICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEu
YnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJl
c29sdmUocmVxdWVzdHNbNl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEv
cGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVz
b2x2ZShyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUt
YnVpbGRlci0xJyksIHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRl
cnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywKLSAgICAgICAg
ICAgICAgICAgICAge1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6
IDcwMX0pLCBbLTJdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9
KX0pOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzdd
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpLAor
ICAgICAgICAgICAgICAgICAgICB7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRh
KHtidWlsZFJlcXVlc3RJZDogNzAxfSksIE1vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxk
UmVxdWVzdElkOiA3MDB9KV19KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJyksIHt9KTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MTApOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzld
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0x
JnNlbGVjdD0tMicsCi0gICAgICAgICAgICAgICAgICAgIHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5n
QnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgWy0yXTogTW9ja0RhdGEucnVubmluZ0J1aWxk
KHtidWlsZFJlcXVlc3RJZDogNzAwfSl9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0
QW5kUmVzb2x2ZShyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZS1idWlsZGVyLTEnLCAyKSwKKyAgICAgICAgICAgICAgICAgICAgeydidWlsZHMnOiBbTW9j
a0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBNb2NrRGF0YS5y
dW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogNzAwfSldfSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAt
Nzg2LDM4ICs3OTQsMzkgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlv
bgogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScs
IHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJs
ZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEko
KSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5
bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJh
YmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZl
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxk
ZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0
ZWQoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwg
TW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWls
ZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUo
W10pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7Cisg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNv
bi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51
cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2J1aWxk
ZXJzL3NvbWUtYnVpbGRlci0xL2ZvcmNlJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLmRhdGEsIHsnd2snOiAnMTkyNzM2JywgJ29z
JzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMScsICdmb3JjZXNjaGVk
dWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1
bGVycy9mb3JjZS1zb21lLWJ1aWxkZXItMScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5kYXRhLCB7J2lkJzogJzcwMScsICdqc29u
cnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzogeworICAgICAgICAgICAg
ICAgICAgICAnd2snOiAnMTkyNzM2JywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1
ZXN0LWlkJzogJzcwMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9
fSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKCdP
SycpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVy
bCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoW01vY2tEYXRhLnBl
bmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pXSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVl
c3RJZDogNzAxfSkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzRdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzRdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxk
ZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJl
c29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewpAQCAtODM2LDcgKzg0NSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJv
dFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVp
bGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzKCksICdmYWlsZWQnKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMCkuc3RhdHVzVXJsKCks
IG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoNzAxKS5zdGF0dXMoKSwgJ3NjaGVkdWxlZCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xLycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAxKS5zdGF0dXNVcmwoKSwgTW9j
a0RhdGEuc3RhdHVzVXJsRm9yUGVuZGluZ0J1aWxkcygxNykpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3BlbmRpbmcn
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcw
Mikuc3RhdHVzVXJsKCksIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWls
ZFJlcXVlc3QuZmluZEJ5SWQoNzAzKS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKQEAgLTg1NSwzMSAr
ODY0LDMxIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAg
ICAgICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29y
ZDogJ3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBuZXcg
QnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tS
ZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlz
ZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5j
T25jZSgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERl
cHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOwor
ICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRh
Lm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQn
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0g
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKFtdKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmws
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRl
cnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwogICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMv
c29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZShbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQp
OwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNd
Lm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxk
cy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lLWJ1aWxkZXItMScsIDIpKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzNdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewpAQCAtOTEyLDI2ICs5MjEsMjggQEAgZGVzY3Jp
YmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGNvbnN0
IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsK
ICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJh
YmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJ
bmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUu
aW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAg
ICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2Nr
RGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcs
IE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVp
bGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1
aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoW10pOworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVu
Z3RoLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXIt
MS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCAzKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2ZvcmNl
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWls
ZC1yZXF1ZXN0LWlkJzogJzcxMCcsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1zb21lLWJ1aWxk
ZXItMSd9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS51cmwsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1zb21lLWJ1aWxkZXIt
MScpOworCisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLmRhdGEsIHsnaWQnOiAnNzEwJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6
ICdmb3JjZScsICdwYXJhbXMnOiB7CisgICAgICAgICAgICAgICAgICAgICd3ayc6ICcxOTE2MjIn
LCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzEwJywgJ2ZvcmNl
c2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319KTsKICAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICB9KTsK
ICAgICAgICAgfSk7CkBAIC0xMDAwLDcgKzEwMTEsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmln
Z2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25h
bWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAg
IGNvbnN0IGJ1aWxkYm90VHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25m
aWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9n
Z2VyKTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZVByb21pc2UgPSBidWlsZGJv
dFRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiBidWlsZGJvdFRyaWdnZXJhYmxl
LnVwZGF0ZVRyaWdnZXJhYmxlKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRS
ZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJv
dEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0Rl
cHJlY2F0ZWQoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNV
UkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIHRyaWdnZXJhYmxlUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gcmVm
ZXRjaE1hbmlmZXN0KCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDEpOwpAQCAtMTAyNyw3ICsxMDM4LDcgQEAgZGVz
Y3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGNv
bnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQn
fTsKICAgICAgICAgICAgICAgICBjb25zdCBidWlsZGJvdFRyaWdnZXJhYmxlID0gbmV3IEJ1aWxk
Ym90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3Rl
QVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFi
bGVQcm9taXNlID0gYnVpbGRib3RUcmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4g
YnVpbGRib3RUcmlnZ2VyYWJsZS51cGRhdGVUcmlnZ2VyYWJsZSgpKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLCAnR0VU
JywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9j
a0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJl
cXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0
YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkp
OwogICAgICAgICAgICAgICAgIHJldHVybiB0cmlnZ2VyYWJsZVByb21pc2U7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHJlZmV0Y2hNYW5pZmVzdCgpKS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dlcmFibGUuYWxsKCkubGVuZ3RoLCAxKTsKSW5kZXg6
IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJv
dC1pbnRlZ3JhdGlvbi10ZXN0cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMu
anMJKHJldmlzaW9uIDIyOTY4NCkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qcwkod29ya2luZyBj
b3B5KQpAQCAtMTU3LDcgKzE1Nyw3IEBAIGZ1bmN0aW9uIGNyZWF0ZVRyaWdnZXJhYmxlKGNvbmZp
ZyA9IGNvbmYKICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgdHJpZ2dlcmFibGUgPSBuZXcg
QnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tS
ZW1vdGVBUEksIHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfSwgbmV3
IE1vY2tMb2dnZXIpOwogICAgICAgICBjb25zdCBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmlu
aXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS51cGRhdGVUcmlnZ2VyYWJsZSgpKTsK
LSAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tE
YXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRh
LmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7
CiAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgcmV0dXJuIHN5bmNQcm9t
aXNlOwogICAgIH0pLnRoZW4oKCkgPT4gTWFuaWZlc3QuZmV0Y2goKSkudGhlbigoKSA9PiB7CkBA
IC0yNTIsMzIgKzI1MiwzMyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIHRhc2tJZCA9IGZpcnN0VGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAg
ICAgICAgICAgYW5vdGhlclRhc2tJZCA9IHNlY29uZFRlc3RHcm91cC50YXNrKCkuaWQoKTsKICAg
ICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgp
ID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJM
RGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcs
IE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVp
bGRlcnMoKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwot
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCAn
L2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW01vY2tEYXRhLnBl
bmRpbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgdGVzdGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDV9KV0p
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvYW5vdGhlciUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGQoe2J1aWxkZXJJZDogNSwgYnVpbGRSZXF1ZXN0SWQ6IDV9KSk7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ2Fub3RoZXIgdGVzdGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7Ci0gICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAg
ICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIHRl
c3RlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSl9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL2Fub3RoZXIlMjB0
ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksCisgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVu
bmluZ0J1aWxkKHtidWlsZGVySWQ6IDUsIGJ1aWxkUmVxdWVzdElkOiAxfSkpOworICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ2Fub3RoZXIgdGVzdGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0gICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9hbm90aGVyJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLFtdKTsKKyAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdhbm90aGVyIHRlc3RlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDgpOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7Ci0gICAgICAgICAgICAgICAg
Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSB0ZXN0ZXInLCBidWls
ZFJlcXVlc3RJZDogNX0pLAotICAgICAgICAgICAgICAgIFstMl06IE1vY2tEYXRhLmZpbmlzaGVk
QnVpbGQoe2J1aWxkZXI6ICdzb21lIHRlc3RlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSkKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7CisgICAgICAgICAgICAgICAg
J2J1aWxkcyc6IFsKKyAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0
YSh7YnVpbGRlcklkOiA1LCBidWlsZFJlcXVlc3RJZDogNX0pLAorICAgICAgICAgICAgICAgICAg
ICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRlcklkOiA1LCBidWlsZFJlcXVlc3RJ
ZDogMX0pXQogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9hbm90aGVyJTIwdGVzdGVy
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdhbm90aGVyIHRlc3RlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gc3luY1By
b21pc2U7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RH
cm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKQEAgLTM2Niw0MSArMzY3LDQxIEBAIGRl
c2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAg
ICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0
cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJl
Y2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2Nr
RGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJz
KCkpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29u
L2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxk
ZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9v
dGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZSB0ZXN0ZXInKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXInKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVy
JyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/
c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVy
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVy
JTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
b3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9idWlsZGVycy9zb21lJTIwYnVp
bGRlci9mb3JjZScsICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0
c1s2XS5kYXRhLCB7J3drJzogJzE5MTYyMicsICd3ay1wYXRjaCc6IFJlbW90ZUFQSS51cmwoJy9h
cGkvdXBsb2FkZWQtZmlsZS8xLmRhdCcpLAotICAgICAgICAgICAgICAgICdidWlsZC1yZXF1ZXN0
LWlkJzogJzEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ2NoZWNrYm94
JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXdrJzogdHJ1ZX0pOworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVs
ZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzEnLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9k
JzogJ2ZvcmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAnd2snOiAnMTkxNjIyJywg
J3drLXBhdGNoJzogUmVtb3RlQVBJLnVybCgnL2FwaS91cGxvYWRlZC1maWxlLzEuZGF0JyksICdj
aGVja2JveCc6ICdidWlsZC13aycsICdidWlsZC13ayc6IHRydWUsICdidWlsZC1yZXF1ZXN0LWlk
JzogJzEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJ319KTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTAp
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pz
b24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsCi0gICAgICAgICAgICAg
ICAgW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxk
UmVxdWVzdElkOiAxfSldKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5n
QnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7
fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLAorICAgICAgICAg
ICAgICAgIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJ
ZDogMX0pKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzld
LCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7
CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDEzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzEwXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzExXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWls
ZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7Ci0gICAgICAgICAgICAgICAgWy0xXTogTW9ja0Rh
dGEucnVubmluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6
IDF9KQotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1sxMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1
aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXInLCAyKSwKKyAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1
aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KQorICAgICAgICAgICAgKTsKKyAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICBy
ZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
cmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKQEAgLTQxNCw3ICs0
MTUsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCgh
YnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWls
ZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVl
c3QuY29tbWl0U2V0KCk7CkBAIC00NTEsNyArNDUyLDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRi
b3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0
ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMv
MTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAg
YXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAg
ICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC00Nzks
NDIgKzQ4MCw0NCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKIAog
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgc3luY1Byb21p
c2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3lu
Y09uY2UoKSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sw
XSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tE
YXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RC
dWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21l
JTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVp
bGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVy
L3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVz
dGVyJyksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9
KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDYpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdH
RVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInLCB7Ci0gICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEuZmluaXNo
ZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSkKLSAg
ICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRl
c3RlcicsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywg
MiksCisgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcklkOiAx
LCBidWlsZFJlcXVlc3RJZDogMX0pCisgICAgICAgICAgICApOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIvZm9yY2UnLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
cmVxdWVzdHNbNl0uZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcy
JywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdjaGVja2JveCc6ICdidWls
ZC13aycsICdidWlsZC13ayc6IHRydWV9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3Jj
ZS1hYi1idWlsZHMnLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVz
dHNbNl0uZGF0YSwgeydpZCc6ICcyJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3Jj
ZScsICdwYXJhbXMnOiB7CisgICAgICAgICAgICAgICAgJ3drJzogJzE5MTYyMicsICdidWlsZC1y
ZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ2No
ZWNrYm94JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXdrJzogdHJ1ZX19KTsKICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwotICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pz
b24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlcicpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxk
ZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAxMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1sxMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWls
ZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1
aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAgICAgICAgICAgICAgIFst
MV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxk
UmVxdWVzdElkOiAyfSksCi0gICAgICAgICAgICAgICAgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRC
dWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSksCisgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKKyAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHsKKyAgICAgICAgICAgICAgICAnYnVp
bGRzJzogWworICAgICAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHti
dWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAyfSksCisgICAgICAgICAgICAgICAgICAgIE1v
Y2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAx
fSldCiAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzEyXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVp
bGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJs
KCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlz
ZTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3Vw
LmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAtNTI4LDcgKzUzMSw3IEBAIGRlc2NyaWJl
KCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxk
UmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNU
ZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnQ29tcGxldGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1
aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsK
ICAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxs
KTsKIAogICAgICAgICAgICAgY29uc3QgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNl
dCgpOwpAQCAtNTQ1LDcgKzU0OCw3IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7
CiAgICAgICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVu
bmluZycpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIv
YnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVl
c3QuY29tbWl0U2V0KCk7CkBAIC01NjcsNyArNTcwLDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRi
b3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0
ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMv
MTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAg
YXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAg
ICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC01ODQs
NyArNTg3LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAg
IGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0
dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAg
IGFzc2VydC5ub3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAg
ICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1p
dFNldCgpOwpAQCAtNjM5LDQxICs2NDIsNDIgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0
LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dl
cmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwot
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBN
b2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVp
bGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwo
KSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9w
ZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGlu
Z0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVp
bGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
MF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29u
L2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30p
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0
PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
NV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3Rl
cicsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiks
IHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsK
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2
XSwgJ1BPU1QnLCAnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2ZvcmNlJywgJ09LJyk7Ci0gICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnd2snOiAnMTkxNjIy
JywgJ3drLXBhdGNoJzogUmVtb3RlQVBJLnVybCgnL2FwaS91cGxvYWRlZC1maWxlLzEuZGF0Jyks
Ci0gICAgICAgICAgICAgICAgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMScsICdmb3JjZXNjaGVkdWxl
cic6ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snLCAnYnVpbGQtd2sn
OiB0cnVlLCAncGxhdGZvcm0tbmFtZSc6ICdzb21lIHBsYXRmb3JtJ30pOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9y
Y2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzEnLCAnanNvbnJwYyc6ICcyLjAn
LCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAnd2snOiAn
MTkxNjIyJywgJ3drLXBhdGNoJzogUmVtb3RlQVBJLnVybCgnL2FwaS91cGxvYWRlZC1maWxlLzEu
ZGF0JyksICdidWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Ut
YWItYnVpbGRzJywKKyAgICAgICAgICAgICAgICAnY2hlY2tib3gnOiAnYnVpbGQtd2snLCAnYnVp
bGQtd2snOiB0cnVlLCAncGxhdGZvcm0tbmFtZSc6ICdzb21lIHBsYXRmb3JtJ319KTsKICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MTApOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdH
RVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwot
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCAn
L2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsCi0gICAgICAgICAg
ICAgICAgW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1
aWxkUmVxdWVzdElkOiAxfSldKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5k
aW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3Rlcicp
LCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLAorICAgICAg
ICAgICAgICAgIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVl
c3RJZDogMX0pKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7
fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDEzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzEwXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9i
dWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7Ci0gICAgICAgICAgICAgICAgWy0xXTogTW9j
a0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0
SWQ6IDF9KQotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVy
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXInLCAyKSwKKyAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQo
e2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KQorICAgICAgICAgICAgKTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAg
ICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKQEAgLTY4Nyw3
ICs2OTEsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2Vy
dCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJl
cXVlc3QuY29tbWl0U2V0KCk7CkBAIC03MjQsNyArNzI4LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVp
bGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21w
bGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWls
ZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1Vy
bCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAg
ICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAg
ICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC03
NTIsNDIgKzc1Niw0NCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsK
IAogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgc3luY1By
b21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUu
c3luY09uY2UoKSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1v
Y2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRi
b3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9z
b21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIw
YnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWls
ZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUg
dGVzdGVyJyksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyks
IHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAn
R0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDYpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZz
ZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3Nl
bGVjdD0tMSZzZWxlY3Q9LTInLCB7Ci0gICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEuZmlu
aXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSkK
LSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/
c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
IHRlc3RlcicsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVy
JywgMiksCisgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcklk
OiAxLCBidWlsZFJlcXVlc3RJZDogMX0pCisgICAgICAgICAgICApOworICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYnVpbGRlcnMv
c29tZSUyMGJ1aWxkZXIvZm9yY2UnLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVxdWVzdHNbNl0uZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6
ICcyJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdjaGVja2JveCc6ICdi
dWlsZC13aycsICdidWlsZC13ayc6IHRydWUsICdwbGF0Zm9ybS1uYW1lJzogJ3NvbWUgcGxhdGZv
cm0nfSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwg
J1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7
CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAn
MicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzogeworICAg
ICAgICAgICAgICAgICd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcyJywgJ2Zv
cmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdjaGVja2JveCc6ICdidWlsZC13aycs
ICdidWlsZC13ayc6IHRydWUsICdwbGF0Zm9ybS1uYW1lJzogJ3NvbWUgcGxhdGZvcm0nfX0pOwog
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3
XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBb
XSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwot
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCAn
L2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKKyAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21l
JTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7Ci0gICAg
ICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBi
dWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDJ9KSwKLSAgICAgICAgICAgICAgICBbLTJdOiBNb2Nr
RGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0
SWQ6IDF9KSwKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEw
XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30p
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VU
JywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwgeworICAgICAg
ICAgICAgICAgICdidWlsZHMnOiBbCisgICAgICAgICAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5p
bmdCdWlsZERhdGEoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDJ9KSwKKyAgICAgICAg
ICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkZXJJZDogMSwgYnVp
bGRSZXF1ZXN0SWQ6IDF9KV0KICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVy
JTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAgICAgICAgcmV0
dXJuIHN5bmNQcm9taXNlOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJl
dHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CkBAIC04MDEsNyArODA3
LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWls
ZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5i
dWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJl
cXVlc3QuY29tbWl0U2V0KCk7CkBAIC04MTgsNyArODI0LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVp
bGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVl
c3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNU
ZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9z
b21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWls
ZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgY29uc3Qgb3RoZXJDb21taXRTZXQgPSBv
dGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTg0MCw3ICs4NDYsNyBAQCBkZXNjcmli
ZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChidWls
ZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0Lmlz
VGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBi
dWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7
CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRT
ZXQoKTsKQEAgLTg1Nyw3ICs4NjMsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkp
OwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0Nv
bXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxk
ZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkp
OwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWls
ZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC05MjgsNDYgKzkzNCw0OCBAQCBkZXNjcmliZSgnc3lu
Yy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
clJvb3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyUm9v
dHNbMF0uZmlsZW5hbWUoKSwgJ3Jvb3Q0Ni5kYXQnKTsKICAgICAgICAgICAgIHN5bmNQcm9taXNl
ID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNP
bmNlKCkpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0s
ICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0
YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVp
bGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxk
ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9w
ZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3Rl
cicpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sx
XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0
PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
NF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9
LTEmc2VsZWN0PS0yJywgewotICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLmZpbmlzaGVk
QnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pLAotICAg
ICAgICAgICAgICAgIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdzb21l
IGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMn0pLAorICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgdGVzdGVyJywgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1
aWxkZXInLCAyKSwgeworICAgICAgICAgICAgICAgICdidWlsZHMnOiBbCisgICAgICAgICAgICAg
ICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVx
dWVzdElkOiAxfSksCisgICAgICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGRE
YXRhKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAyfSldCiAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywg
Jy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9
LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1
XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7
fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDcpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbNl0sICdQT1NUJywgJy9idWlsZGVycy9zb21lJTIwdGVzdGVyL2ZvcmNlJywgJ09LJyk7Ci0g
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsndGVzdCc6ICdz
b21lLXRlc3QnLCAnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMycsICdmb3Jj
ZXNjaGVkdWxlcic6ICdmb3JjZS1hYi10ZXN0cycsCi0gICAgICAgICAgICAgICAgJ3Jvb3RzJzog
SlNPTi5zdHJpbmdpZnkoW3t1cmw6IGZpcnN0Um9vdC51cmwoKX1dKX0pOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9y
Y2VzY2hlZHVsZXJzL2ZvcmNlLWFiLXRlc3RzJywgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMycsICdqc29ucnBjJzogJzIuMCcs
ICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzogeworICAgICAgICAgICAgICAgICd0ZXN0Jzog
J3NvbWUtdGVzdCcsICd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICczJywnZm9y
Y2VzY2hlZHVsZXInOiAnZm9yY2UtYWItdGVzdHMnLCAncm9vdHMnOiBKU09OLnN0cmluZ2lmeShb
e3VybDogZmlyc3RSb290LnVybCgpfV0pfX0pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7Ci0gICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9z
b21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbCi0gICAgICAgICAgICAgICAgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSB0ZXN0ZXInLCBidWlsZFJlcXVlc3RJZDogM30p
LAorICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCBbCisgICAgICAgICAg
ICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVySWQ6IDUsIGJ1aWxkUmVxdWVzdElk
OiAzfSksCiAgICAgICAgICAgICBdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3Bl
bmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s5XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGlu
Z0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyks
IHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAn
R0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDEzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEw
XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0x
JnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzExXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMv
P3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7Ci0gICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEu
ZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAx
fSksCi0gICAgICAgICAgICAgICAgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRl
cjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAyfSksCisgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSBidWlsZGVyJywgMiksIHsKKyAgICAgICAgICAgICAgICAnYnVpbGRzJzogWworICAg
ICAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRlcklkOiAx
LCBidWlsZFJlcXVlc3RJZDogMX0pLAorICAgICAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5p
c2hlZEJ1aWxkRGF0YSh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDogMn0pXQogICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sx
Ml0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzEyXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVp
bGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAg
IH0pOwogICAgIH0pOwpAQCAtMTAwMSwzOCArMTAwOSw0MSBAQCBkZXNjcmliZSgnc3luYy1idWls
ZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRy
aWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgp
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VU
JywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9j
a0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJz
VVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCksIHVwbG9hZFJvb3QoMSwgMTIzKV0pOwogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10p
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CisgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0
ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAgICAgICAg
ICAgICAgIFstMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRl
cicsIGJ1aWxkUmVxdWVzdElkOiAyfSksCi0gICAgICAgICAgICAgICAgWy0yXTogTW9ja0RhdGEu
ZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAx
fSksCisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CisgICAgICAgICAgICAg
ICAgJ2J1aWxkcyc6IFsKKyAgICAgICAgICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxk
RGF0YSh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDogMn0pLAorICAgICAgICAgICAgICAg
ICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVl
c3RJZDogMX0pCisgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwogICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXInKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhl
ciBidWlsZGVyJyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rl
ci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAgICAgICAgICAg
ICAgIFstMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcics
IGJ1aWxkUmVxdWVzdElkOiAyLCBidWlsZE51bWJlcjogMTAwMn0pLAotICAgICAgICAgICAgICAg
IFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBi
dWlsZFJlcXVlc3RJZDogMX0pLAorICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVy
JywgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiks
IHsKKyAgICAgICAgICAgICAgICAnYnVpbGRzJzogWworICAgICAgICAgICAgICAgICAgICAgTW9j
a0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRlcklkOiAxLCBidWlsZFJlcXVlc3RJZDogMiwg
YnVpbGROdW1iZXI6IDEwMDJ9KSwKKyAgICAgICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlz
aGVkQnVpbGREYXRhKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAxfSldCiAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEx
XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9
LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWls
ZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFz
ayh0YXNrSWQsIHRydWUpOwpAQCAtMTA1Myw3ICsxMDY0LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVp
bGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVl
c3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNU
ZXN0KCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdSdW5uaW5nJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9z
b21lJTIwYnVpbGRlci9idWlsZHMvMTAwMicpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlcicsIDEwMDIpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTEwODcsMzYgKzEw
OTgsMzYgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAog
ICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4o
KCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNV
UkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgp
KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VU
JywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RC
dWlsZGVycygpKTsKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSBidWlsZGVyJyksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIg
YnVpbGRlcicpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9i
dWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIw
YnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAgICAg
ICAgICAgICAgIFstMV06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdvdGhlciBi
dWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkTnVtYmVyOiAzMTJ9KSwKLSAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10s
ICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsK
KyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30pOworICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwKKyAgICAgICAgICAgICAgICBN
b2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVySWQ6IDQsIGJ1aWxkUmVxdWVzdElkOiAxLCBi
dWlsZE51bWJlcjogMzEyfSkKKyAgICAgICAgICAgICk7CiAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwotICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCAnL2pzb24vYnVpbGRl
cnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIw
YnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lIHRlc3RlcicpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
cicpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4
XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30p
OwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAxMik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s5XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWls
ZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBi
dWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKLSAgICAgICAgICAgICAgICBb
LTFdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnb3RoZXIgYnVpbGRlcicsIGJ1
aWxkUmVxdWVzdElkOiAxLCBidWlsZE51bWJlcjogMzEyfSksCi0gICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwKKyAgICAgICAgICAgICAgICBNb2NrRGF0YS5m
aW5pc2hlZEJ1aWxkKHtidWlsZGVySWQ6IDQsIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZE51bWJl
cjogMzEyfSkKKyAgICAgICAgICAgICk7CiAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5m
ZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKQEAgLTExMjcsNyArMTEzOCw3IEBAIGRlc2NyaWJl
KCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0KGJ1aWxk
UmVxZXVzdHNbMF0uaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXFldXN0
c1swXS5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXFldXN0c1sw
XS5zdGF0dXNMYWJlbCgpLCAnRmFpbGVkJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXFldXN0c1swXS5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxk
ZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvMzEyJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXFldXN0c1swXS5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdvdGhl
ciBidWlsZGVyJywgMzEyKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXFldXN0
c1swXS5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXFldXN0
c1sxXS5pc0J1aWxkKCkpOwpAQCAtMTE5NSw0MCArMTIwNiw0MiBAQCBkZXNjcmliZSgnc3luYy1i
dWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3Ro
ZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgc3luY1Byb21p
c2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3lu
Y09uY2UoKSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sw
XSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tE
YXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RC
dWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21l
JTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVp
bGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVy
L3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVz
dGVyJyksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9
KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CiAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDYpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdH
RVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVp
bGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgdGVzdGVyJywgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1
aWxkZXInLCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXIn
LCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvZm9yY2UnLCAn
T0snKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeyd3
ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzog
J2ZvcmNlLWFiLWJ1aWxkcycsICdvd25lZC1jb21taXRzJzogYHsiV2ViS2l0IjpbeyJyZXZpc2lv
biI6Im93bmVkLWpzYy02MTYxIiwicmVwb3NpdG9yeSI6IkphdmFTY3JpcHRDb3JlIiwib3duZXJS
ZXZpc2lvbiI6IjE5MTYyMiJ9XX1gfSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2Ut
YWItYnVpbGRzJywgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3Rz
WzZdLmRhdGEsIHsnaWQnOiAnMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2Un
LCAncGFyYW1zJzogeworICAgICAgICAgICAgICAgICd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVx
dWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsCisgICAg
ICAgICAgICAgICAgJ293bmVkLWNvbW1pdHMnOiBgeyJXZWJLaXQiOlt7InJldmlzaW9uIjoib3du
ZWQtanNjLTYxNjEiLCJyZXBvc2l0b3J5IjoiSmF2YVNjcmlwdENvcmUiLCJvd25lclJldmlzaW9u
IjoiMTkxNjIyIn1dfWB9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0
ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3Bl
bmRpbmdCdWlsZHMnLAotICAgICAgICAgICAgICAgIFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1
aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pXSk7Ci0gICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lIGJ1aWxkZXInKSwKKyAgICAgICAgICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQo
e2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7Ci0gICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24v
YnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewot
ICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3Nv
bWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSkKLSAgICAgICAgICAgIH0pOwotICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgJy9qc29u
L2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7
fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKKyAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCisgICAgICAgICAgICAg
ICAgTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAx
fSkKKyAgICAgICAgICAgICk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxMl0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxk
ZXInLCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNr
KHRhc2tJZCwgdHJ1ZSk7CkBAIC0xMjQzLDcgKzEyNTYsNyBAQCBkZXNjcmliZSgnc3luYy1idWls
ZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNC
dWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5p
bmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMv
MTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAg
ICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC0xMjgzLDcg
KzEyOTYsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2Vy
dCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
L2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29t
ZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTEzMTYsNDIgKzEzMjksNDQgQEAgZGVzY3JpYmUo
J3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVzZXQoKTsKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5
bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWls
ZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVy
c0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEu
bW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0
KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRz
JywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtd
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAg
ICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdzb21l
IGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pCi0gICAgICAgICAgICB9KTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOworICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAorICAgICAgICAgICAgICAgIE1v
Y2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KQor
ICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywg
MiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2ZvcmNlJywgJ09L
Jyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnd2sn
OiAnMTkyNzM2JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVkdWxlcic6ICdm
b3JjZS1hYi1idWlsZHMnLCAnb3duZWQtY29tbWl0cyc6IGB7IldlYktpdCI6W3sicmV2aXNpb24i
OiJvd25lZC1qc2MtOTE5MSIsInJlcG9zaXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93bmVyUmV2
aXNpb24iOiIxOTI3MzYifV19YH0pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFi
LWJ1aWxkcycsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2
XS5kYXRhLCB7J2lkJzogJzInLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywg
J3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAnd2snOiAnMTkyNzM2JywgJ2J1aWxkLXJlcXVl
c3QtaWQnOiAnMicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnb3duZWQt
Y29tbWl0cyc6IGB7IldlYktpdCI6W3sicmV2aXNpb24iOiJvd25lZC1qc2MtOTE5MSIsInJlcG9z
aXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93bmVyUmV2aXNpb24iOiIxOTI3MzYifV19YH19KTsK
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMTApOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
N10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywg
W10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdH
RVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsK
LSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywg
Jy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAg
ICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUg
YnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAyfSksCi0gICAgICAgICAgICAgICAgWy0yXTogTW9j
a0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVz
dElkOiAxfSksCisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sx
MF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9
KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHsKKyAgICAg
ICAgICAgICAgICAnYnVpbGRzJzogWworICAgICAgICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5u
aW5nQnVpbGREYXRhKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAyfSksCisgICAgICAg
ICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZGVySWQ6IDEsIGJ1
aWxkUmVxdWVzdElkOiAxfSldCiAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhl
ciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJl
dHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAtMTM2Niw3ICsx
MzgxLDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
ICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQo
IWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWls
ZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC0xMzg2LDcgKzE0MDEsNyBAQCBkZXNjcmliZSgnc3lu
Yy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxk
UmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVz
dC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxk
ZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21l
IGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNl
dCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAtMTQxMSw3ICsxNDI2LDcgQEAg
ZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3Nl
cnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVx
dWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9z
b21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcics
IDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCk7CkBAIC0xNDMxLDcgKzE0NDYsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJv
dCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5p
c0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3Qo
KSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRl
cicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0IG90aGVyQ29tbWl0U2V0ID0g
b3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC0xNDk0LDQwICsxNTA5LDQxIEBAIGRl
c2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAg
ICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0
cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJl
Y2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2Nr
RGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJz
KCkpOwogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29u
L2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxk
ZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9v
dGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZSB0ZXN0ZXInKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXInKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVy
JyksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgNik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/
c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVy
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVy
JTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
b3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9idWlsZGVycy9zb21lJTIwYnVp
bGRlci9mb3JjZScsICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0
c1s2XS5kYXRhLCB7J3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9y
Y2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ293bmVkLWNvbW1pdHMnOiBgeyJXZWJL
aXQiOlt7InJldmlzaW9uIjoib3duZWQtanNjLTYxNjEiLCJyZXBvc2l0b3J5IjoiSmF2YVNjcmlw
dENvcmUiLCJvd25lclJldmlzaW9uIjoiMTkxNjIyIn1dfWB9KTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2No
ZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21l
dGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOiB7CisgICAgICAgICAgICAgICAgJ3drJzogJzE5MTYy
MicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWIt
YnVpbGRzJywgJ293bmVkLWNvbW1pdHMnOiBgeyJXZWJLaXQiOlt7InJldmlzaW9uIjoib3duZWQt
anNjLTYxNjEiLCJyZXBvc2l0b3J5IjoiSmF2YVNjcmlwdENvcmUiLCJvd25lclJldmlzaW9uIjoi
MTkxNjIyIn1dfWB9fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIv
cGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRp
bmdCdWlsZHMnLAotICAgICAgICAgICAgICAgIFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxk
ZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pXSk7Ci0gICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXInKSwKKyAgICAgICAgICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1
aWxkZXJJZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KSk7CisgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAg
ICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUg
YnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSkKLSAgICAgICAgICAgIH0pOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQn
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCisgICAgICAgICAgICAgICAg
TW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAxfSkK
KyAgICAgICAgICAgICk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxMl0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXIn
LCAyKSwge30pOwogICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRh
c2tJZCwgdHJ1ZSk7CkBAIC0xNTQyLDcgKzE1NTgsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJv
dCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWls
ZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcn
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdo
dHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0
Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBj
b25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC0xNTgyLDcgKzE1
OTgsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
ICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCgh
YnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWls
ZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVl
c3QuY29tbWl0U2V0KCk7CkBAIC0xNjIzLDcgKzE2MzksNyBAQCBkZXNjcmliZSgnc3luYy1idWls
ZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNC
dWlsZCgpKTsKICAgICAgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBs
ZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxk
cy8xMjQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CiAgICAgICAgICAg
ICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAg
ICAgICAgIGNvbnN0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKQEAgLTE2
NTYsNDIgKzE2NzIsNDQgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7
CiAKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHN5bmNQ
cm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxl
LnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBN
b2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxk
Ym90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVp
bGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IHRlc3RlcicpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicp
LCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwog
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCA2KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNd
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEm
c2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLmZp
bmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0p
Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMv
P3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInLCAyKSwge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
cicsIDIpLAorICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXJJ
ZDogMSwgYnVpbGRSZXF1ZXN0SWQ6IDF9KQorICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2J1aWxkZXJz
L3NvbWUlMjBidWlsZGVyL2ZvcmNlJywgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnd2snOiAnMTkyNzM2JywgJ2J1aWxkLXJlcXVlc3QtaWQn
OiAnMicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnb3duZWQtY29tbWl0
cyc6IGB7IldlYktpdCI6W3sicmV2aXNpb24iOiJvd25lZC1qc2MtOTE5MSIsInJlcG9zaXRvcnki
OiJKYXZhU2NyaXB0Q29yZSIsIm93bmVyUmV2aXNpb24iOiIxOTI3MzYifV19YH0pOworICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkv
djIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzInLCAnanNvbnJwYyc6
ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6IHsKKyAgICAgICAgICAgICAgICAn
d2snOiAnMTkyNzM2JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVkdWxlcic6
ICdmb3JjZS1hYi1idWlsZHMnLCAnb3duZWQtY29tbWl0cyc6IGB7IldlYktpdCI6W3sicmV2aXNp
b24iOiJvd25lZC1qc2MtOTE5MSIsInJlcG9zaXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93bmVy
UmV2aXNpb24iOiIxOTI3MzYifV19YH19KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwotICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1
aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRl
ci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRl
c3RlcicpLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7
fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOwogICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAxMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZz
ZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLnJ1
bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAyfSks
Ci0gICAgICAgICAgICAgICAgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjog
J3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSksCisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSBidWlsZGVyJywgMiksIHsKKyAgICAgICAgICAgICAgICAnYnVpbGRzJzogWworICAgICAg
ICAgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZGVySWQ6IDEsIGJ1
aWxkUmVxdWVzdElkOiAyfSksCisgICAgICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVk
QnVpbGREYXRhKHtidWlsZGVySWQ6IDEsIGJ1aWxkUmVxdWVzdElkOiAxfSldCiAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEm
c2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMTJdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVy
JywgMiksIHt9KTsKICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0
YXNrSWQsIHRydWUpOwpAQCAtMTcwNiw3ICsxNzI0LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRi
b3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVp
bGQoKSk7CiAgICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0
ZWQnKTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMv
MTI0Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAg
YXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAg
ICAgICBjb25zdCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC0xNzI2
LDcgKzE3NDQsNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0
dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAg
ICAgICAgICBjb25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNl
dCgpOwpAQCAtMTc1MSw3ICsxNzY5LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAg
ICAgICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8v
YnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0
YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5v
dEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25z
dCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC0xNzcxLDcgKzE3ODks
NyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
IGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0
KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8xMjQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0Rh
dGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBj
b25zdCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOwpAQCAt
MTc5Nyw3ICsxODE1LDcgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CiAgICAgICAgICAg
ICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Vi
a2l0Lm9yZy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvMTI0Jyk7CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNV
cmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBjb25zdCBjb21taXRT
ZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkBAIC0xODE3LDcgKzE4MzUsNyBAQCBkZXNj
cmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydChv
dGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwogICAgICAgICAgICAgYXNzZXJ0KCFvdGhlckJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOwotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLzEyNCcpOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0
dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOwogICAgICAgICAgICAgYXNzZXJ0Lm5vdEVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIGNvbnN0
IG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CkluZGV4OiBX
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9y
ZXNvdXJjZXMvbW9jay1kYXRhLmpzCShyZXZpc2lvbiAyMjk2ODQpCisrKyBXZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTE5LDYgKzE5LDEwIEBAIE1vY2tEYXRhID0gewogICAgIHNoYXJlZFJlcG9zaXRv
cnlJZCgpIHsgcmV0dXJuIDE0OyB9LAogICAgIGJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVk
KCkge3JldHVybiAnL2pzb24vYnVpbGRlcnMnfSwKICAgICBidWlsZGJvdEJ1aWxkZXJzVVJMKCkg
e3JldHVybiAnL2FwaS92Mi9idWlsZGVycyd9LAorICAgIHBlbmRpbmdCdWlsZHNVcmw6IGZ1bmN0
aW9uIChidWlsZGVyTmFtZSkgeyByZXR1cm4gJy9hcGkvdjIvYnVpbGRlcnMvJyArIHRoaXMuZ2V0
QnVpbGRlcklkRm9yTmFtZShidWlsZGVyTmFtZSkgKyAnL2J1aWxkcmVxdWVzdHM/Y29tcGxldGU9
ZmFsc2UmY2xhaW1lZD1mYWxzZSZwcm9wZXJ0eT0qJzsgfSwKKyAgICByZWNlbnRCdWlsZHNVcmw6
IGZ1bmN0aW9uIChidWlsZGVyTmFtZSwgY291bnQpIHsgcmV0dXJuICcvYXBpL3YyL2J1aWxkZXJz
LycgKyB0aGlzLmdldEJ1aWxkZXJJZEZvck5hbWUoYnVpbGRlck5hbWUpICsgYC9idWlsZHM/bGlt
aXQ9JHtjb3VudH0mb3JkZXI9LW51bWJlciZwcm9wZXJ0eT0qYDsgfSwKKyAgICBzdGF0dXNVcmw6
IGZ1bmN0aW9uIChidWlsZGVyTmFtZSwgYnVpbGRJZCkgeyByZXR1cm4gJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnLyMvYnVpbGRlcnMvJyArIHRoaXMuZ2V0QnVpbGRlcklkRm9yTmFtZShidWlsZGVy
TmFtZSkgKyBgL2J1aWxkcy8ke2J1aWxkSWR9YDsgfSwKKyAgICBzdGF0dXNVcmxGb3JQZW5kaW5n
QnVpbGRzOiBmdW5jdGlvbiAoYnVpbGRSZXF1ZXN0SWQpIHsgcmV0dXJuIGBodHRwOi8vYnVpbGQu
d2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvJHtidWlsZFJlcXVlc3RJZH1gOyB9LAogICAgIGFk
ZE1vY2tDb25maWd1cmF0aW9uOiBmdW5jdGlvbiAoZGIpCiAgICAgewogICAgICAgICByZXR1cm4g
UHJvbWlzZS5hbGwoWwpAQCAtMTk3LDcgKzIwMSw3IEBAIE1vY2tEYXRhID0gewogICAgICAgICAg
ICAgfSwKICAgICAgICAgICAgICdidWlsZGVycyc6IHsKICAgICAgICAgICAgICAgICAnYnVpbGRl
ci0xJzogeydidWlsZGVyJzogJ3NvbWUtYnVpbGRlci0xJywKLSAgICAgICAgICAgICAgICAgICAg
IHByb3BlcnRpZXM6IHtmb3JjZXNjaGVkdWxlcjogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319IAor
ICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczoge2ZvcmNlc2NoZWR1bGVyOiAnZm9yY2Ut
c29tZS1idWlsZGVyLTEnfX0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAndGVzdENvbmZp
Z3VyYXRpb25zJzogWwogICAgICAgICAgICAgICAgIHsKQEAgLTI5MywxMCArMjk3LDUxIEBAIE1v
Y2tEYXRhID0gewogICAgICAgICAgICAgXQogICAgICAgICB9CiAgICAgfSwKKyAgICBnZXRCdWls
ZGVySWRGb3JOYW1lOiBmdW5jdGlvbihidWlsZGVyTmFtZSkKKyAgICB7CisgICAgICAgIGNvbnN0
IGJ1aWxkZXJzID0gdGhpcy5tb2NrQnVpbGRib3RCdWlsZGVycygpLmJ1aWxkZXJzOworICAgICAg
ICBjb25zdCBidWlsZGVyTmFtZVRvSURNYXAgPSB7fTsgCisgICAgICAgIGZvciAoY29uc3QgYnVp
bGRlciBvZiBidWlsZGVycykKKyAgICAgICAgICAgIGJ1aWxkZXJOYW1lVG9JRE1hcFtidWlsZGVy
Lm5hbWVdID0gYnVpbGRlci5idWlsZGVyaWQ7CisKKyAgICAgICAgcmV0dXJuIGJ1aWxkZXJOYW1l
VG9JRE1hcFtidWlsZGVyTmFtZV07CisgICAgfSwKKyAgICBwZW5kaW5nQnVpbGREYXRhKG9wdGlv
bnMpCisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgImJ1aWxkZXJpZCI6IG9w
dGlvbnMuYnVpbGRlcklkIHx8IDIsCisgICAgICAgICAgICAiYnVpbGRyZXF1ZXN0aWQiOiAxNywK
KyAgICAgICAgICAgICJidWlsZHNldGlkIjogODk0NzIwLAorICAgICAgICAgICAgImNsYWltZWQi
OiBmYWxzZSwKKyAgICAgICAgICAgICJjbGFpbWVkX2F0IjogbnVsbCwKKyAgICAgICAgICAgICJj
bGFpbWVkX2J5X21hc3RlcmlkIjogbnVsbCwKKyAgICAgICAgICAgICJjb21wbGV0ZSI6IGZhbHNl
LAorICAgICAgICAgICAgImNvbXBsZXRlX2F0IjogbnVsbCwKKyAgICAgICAgICAgICJwcmlvcml0
eSI6IDAsCisgICAgICAgICAgICAicmVzdWx0cyI6IC0xLAorICAgICAgICAgICAgInN1Ym1pdHRl
ZF9hdCI6IG9wdGlvbnMuYnVpbGRUaW1lIHx8IDE0NTg3MDQ5ODMsCisgICAgICAgICAgICAid2Fp
dGVkX2ZvciI6IGZhbHNlLAorICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CisgICAgICAgICAg
ICAgICAgImJ1aWxkLXJlcXVlc3QtaWQiOiBbKG9wdGlvbnMuYnVpbGRSZXF1ZXN0SWQgfHwgNzAy
KS50b1N0cmluZygpLCAiRm9yY2UgQnVpbGQgRm9ybSJdLAorICAgICAgICAgICAgICAgICJzY2hl
ZHVsZXIiOiBbIkFCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy1Gb3JjZVNjaGVkdWxlciIs
ICJTY2hlZHVsZXIiXSwKKyAgICAgICAgICAgICAgICAid2siOiBbb3B0aW9ucy53ZWJraXRSZXZp
c2lvbiB8fCAnMTkxNjIyJywgIlVua25vd24iXSwKKyAgICAgICAgICAgICAgICAib3MiOiBbb3B0
aW9ucy5vc3hSZXZpc2lvbiB8fCAnMTAuMTEgMTVBMjg0JywgIlVua25vd24iXSwKKyAgICAgICAg
ICAgICAgICAic2xhdmVuYW1lIjogW29wdGlvbnMud29ya2VyTmFtZSB8fCAiYm90MjAyIiwgIldv
cmtlciAoZGVwcmVjYXRlZCkiXSwKKyAgICAgICAgICAgICAgICAid29ya2VybmFtZSI6IFtvcHRp
b25zLndvcmtlck5hbWUgfHwgImJvdDIwMiIsICJXb3JrZXIiXQorICAgICAgICAgICAgfQorICAg
ICAgICB9OworICAgIH0sCiAgICAgcGVuZGluZ0J1aWxkKG9wdGlvbnMpCiAgICAgewogICAgICAg
ICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsKICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAg
ICJidWlsZHJlcXVlc3RzIjogW3RoaXMucGVuZGluZ0J1aWxkRGF0YShvcHRpb25zKV0KKyAgICAg
ICAgfTsKKyAgICB9LAorICAgIHBlbmRpbmdCdWlsZERlcHJlY2F0ZWQob3B0aW9ucykKKyAgICB7
CisgICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OworICAgICAgICByZXR1cm4gewogICAg
ICAgICAgICAgJ2J1aWxkZXJOYW1lJzogb3B0aW9ucy5idWlsZGVyIHx8ICdzb21lLWJ1aWxkZXIt
MScsCiAgICAgICAgICAgICAnYnVpbGRzJzogW10sCiAgICAgICAgICAgICAncHJvcGVydGllcyc6
IFsKQEAgLTMxNSw4ICszNjAsNTMgQEAgTW9ja0RhdGEgPSB7CiAgICAgICAgICAgICB9LAogICAg
ICAgICB9OwogICAgIH0sCisgICAgc2FtcGxlQnVpbGREYXRhKG9wdGlvbnMpCisgICAgeworICAg
ICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAg
ICAgICJidWlsZGVyaWQiOiBvcHRpb25zLmJ1aWxkZXJJZCB8fCAyLAorICAgICAgICAgICAgIm51
bWJlciI6ICBvcHRpb25zLmJ1aWxkTnVtYmVyIHx8IDEyNCwgCisgICAgICAgICAgICAiYnVpbGRy
ZXF1ZXN0aWQiOiAxNywKKyAgICAgICAgICAgICJjb21wbGV0ZSI6IG9wdGlvbnMuaXNDb21wbGV0
ZSwKKyAgICAgICAgICAgICJjb21wbGV0ZV9hdCI6IG51bGwsCisgICAgICAgICAgICAiYnVpbGRp
ZCI6IDQxODc0NCwKKyAgICAgICAgICAgICJtYXN0ZXJpZCI6IDEsCisgICAgICAgICAgICAicmVz
dWx0cyI6IG51bGwsCisgICAgICAgICAgICAic3RhcnRlZF9hdCI6IDE1MTM3MjUxMDksCisgICAg
ICAgICAgICAic3RhdGVfc3RyaW5nIjogImJ1aWxkaW5nIiwKKyAgICAgICAgICAgICJ3b3JrZXJp
ZCI6IDQxLAorICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7CisgICAgICAgICAgICAgICAgImJ1
aWxkLXJlcXVlc3QtaWQiOiBbKG9wdGlvbnMuYnVpbGRSZXF1ZXN0SWQgfHwgNzAxKS50b1N0cmlu
ZygpLCAiRm9yY2UgQnVpbGQgRm9ybSJdLAorICAgICAgICAgICAgICAgICJvcyI6IFtvcHRpb25z
Lm9zeFJldmlzaW9uIHx8ICcxMC4xMSAxNUEyODQnLCAiVW5rbm93biJdLAorICAgICAgICAgICAg
ICAgICJ3ayI6IFtvcHRpb25zLndlYmtpdFJldmlzaW9uIHx8ICcxOTI3MzYnLCAiVW5rbm93biJd
LAorICAgICAgICAgICAgICAgICJwcm9qZWN0IjogWycnLCAiVW5rbm93biJdLAorICAgICAgICAg
ICAgICAgICJyZXBvc2l0b3J5IjogWycnLCAiVW5rbm93biJdLAorICAgICAgICAgICAgICAgICJy
ZXZpc2lvbiI6IFsnJywgIlVua25vd24iXSwKKyAgICAgICAgICAgICAgICAic2xhdmVuYW1lIjog
W29wdGlvbnMud29ya2VyTmFtZSB8fCAiYm90MjAyIiwgIldvcmtlciAoZGVwcmVjYXRlZCkiXSwK
KyAgICAgICAgICAgICAgICAid29ya2VybmFtZSI6IFtvcHRpb25zLndvcmtlck5hbWUgfHwgImJv
dDIwMiIsICJXb3JrZXIiXQorICAgICAgICAgICAgfQorICAgICAgICB9OyAgIAorICAgIH0sCisg
ICAgcnVubmluZ0J1aWxkRGF0YShvcHRpb25zKQorICAgIHsKKyAgICAgICAgb3B0aW9ucyA9IG9w
dGlvbnMgfHwge307CisgICAgICAgIG9wdGlvbnMuaXNDb21wbGV0ZSA9IGZhbHNlOworICAgICAg
ICBpZiAoIW9wdGlvbnMuYnVpbGRSZXF1ZXN0SWQpCisgICAgICAgICAgICBvcHRpb25zLmJ1aWxk
UmVxdWVzdElkID0gNzAxOworICAgICAgICBpZiAoIW9wdGlvbnMuYnVpbGROdW1iZXIpCisgICAg
ICAgICAgICBvcHRpb25zLmJ1aWxkTnVtYmVyID0gMTI0OworICAgICAgICBpZiAoIW9wdGlvbnMu
d2Via2l0UmV2aXNpb24pCisgICAgICAgICAgICBvcHRpb25zLndlYmtpdFJldmlzaW9uID0gJzE5
MjczNic7CisgICAgICAgIHJldHVybiB0aGlzLnNhbXBsZUJ1aWxkRGF0YShvcHRpb25zKTsKKyAg
ICB9LAogICAgIHJ1bm5pbmdCdWlsZChvcHRpb25zKQogICAgIHsKKyAgICAgICAgcmV0dXJuIHsK
KyAgICAgICAgICAgICJidWlsZHMiOiBbdGhpcy5ydW5uaW5nQnVpbGREYXRhKG9wdGlvbnMpXQor
ICAgICAgICB9OworICAgIH0sCisgICAgcnVubmluZ0J1aWxkRGVwcmVjYXRlZChvcHRpb25zKQor
ICAgIHsKICAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CiAgICAgICAgIHJldHVybiB7
CiAgICAgICAgICAgICAnYnVpbGRlck5hbWUnOiBvcHRpb25zLmJ1aWxkZXIgfHwgJ3NvbWUtYnVp
bGRlci0xJywKQEAgLTM0MCw4ICs0MzAsMjYgQEAgTW9ja0RhdGEgPSB7CiAgICAgICAgICAgICB9
LAogICAgICAgICB9OwogICAgIH0sCisgICAgZmluaXNoZWRCdWlsZERhdGEob3B0aW9ucykKKyAg
ICB7CisgICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OworICAgICAgICBvcHRpb25zLmlz
Q29tcGxldGUgPSB0cnVlOworICAgICAgICBpZiAoIW9wdGlvbnMuYnVpbGRSZXF1ZXN0SWQpCisg
ICAgICAgICAgICBvcHRpb25zLmJ1aWxkUmVxdWVzdElkID0gNzAwOworICAgICAgICBpZiAoIW9w
dGlvbnMuYnVpbGROdW1iZXIpCisgICAgICAgICAgICBvcHRpb25zLmJ1aWxkTnVtYmVyID0gMTIz
OworICAgICAgICBpZiAoIW9wdGlvbnMud2Via2l0UmV2aXNpb24pCisgICAgICAgICAgICBvcHRp
b25zLndlYmtpdFJldmlzaW9uID0gJzE5MTYyMic7CisgICAgICAgIHJldHVybiB0aGlzLnNhbXBs
ZUJ1aWxkRGF0YShvcHRpb25zKTsKKyAgICB9LAogICAgIGZpbmlzaGVkQnVpbGQob3B0aW9ucykK
ICAgICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAiYnVpbGRzIjogW3RoaXMuZmlu
aXNoZWRCdWlsZERhdGEob3B0aW9ucyldCisgICAgICAgIH07CisgICAgfSwKKyAgICBmaW5pc2hl
ZEJ1aWxkRGVwcmVjYXRlZChvcHRpb25zKQorICAgIHsKICAgICAgICAgb3B0aW9ucyA9IG9wdGlv
bnMgfHwge307CiAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAnYnVpbGRlck5hbWUnOiBv
cHRpb25zLmJ1aWxkZXIgfHwgJ3NvbWUtYnVpbGRlci0xJywKSW5kZXg6IFdlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcwkocmV2aXNp
b24gMjI5Njg0KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90
LXN5bmNlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMTUwLDcgKzE1MCw3IEBAIGNsYXNzIEJ1aWxk
Ym90U3luY2VyIHsKICAgICAgICAgICAgIHByb3BlcnRpZXNbdGhpcy5fcGxhdGZvcm1Qcm9wZXJ0
eU5hbWVdID0gbmV3UmVxdWVzdC5wbGF0Zm9ybSgpLm5hbWUoKTsKIAogICAgICAgICB0aGlzLl9z
bGF2ZXNXaXRoTmV3UmVxdWVzdHMuYWRkKHNsYXZlTmFtZSk7Ci0gICAgICAgIHJldHVybiB0aGlz
LnNjaGVkdWxlQnVpbGRPbkJ1aWxkYm90RGVwcmVjYXRlZChwcm9wZXJ0aWVzKTsKKyAgICAgICAg
cmV0dXJuIHRoaXMuc2NoZWR1bGVCdWlsZE9uQnVpbGRib3QocHJvcGVydGllcyk7CiAgICAgfQog
CiAgICAgc2NoZWR1bGVCdWlsZE9uQnVpbGRib3REZXByZWNhdGVkKHByb3BlcnRpZXMpCkBAIC0y
MTAsOSArMjEwLDkgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogCiAgICAgcHVsbEJ1aWxkYm90
KGNvdW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3JlbW90ZS5nZXRKU09OKHRoaXMu
cGF0aEZvclBlbmRpbmdCdWlsZHNKU09ORGVwcmVjYXRlZCgpKS50aGVuKChjb250ZW50KSA9PiB7
Ci0gICAgICAgICAgICBsZXQgcGVuZGluZ0VudHJpZXMgPSBjb250ZW50Lm1hcCgoZW50cnkpID0+
IG5ldyBCdWlsZGJvdEJ1aWxkRW50cnlEZXByZWNhdGVkKHRoaXMsIGVudHJ5KSk7Ci0gICAgICAg
ICAgICByZXR1cm4gdGhpcy5fcHVsbFJlY2VudEJ1aWxkc0RlcHJlY2F0ZWQoY291bnQpLnRoZW4o
KGVudHJpZXMpID0+IHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3JlbW90ZS5nZXRKU09OKHRoaXMu
cGF0aEZvclBlbmRpbmdCdWlsZHMoKSkudGhlbigoY29udGVudCkgPT4geworICAgICAgICAgICAg
Y29uc3QgcGVuZGluZ0VudHJpZXMgPSAoY29udGVudC5idWlsZHJlcXVlc3RzIHx8IFtdKS5tYXAo
KGVudHJ5KSA9PiBuZXcgQnVpbGRib3RCdWlsZEVudHJ5KHRoaXMsIGVudHJ5KSk7CisgICAgICAg
ICAgICByZXR1cm4gdGhpcy5fcHVsbFJlY2VudEJ1aWxkcyhjb3VudCkudGhlbigoZW50cmllcykg
PT4gewogICAgICAgICAgICAgICAgIGxldCBlbnRyeUJ5UmVxdWVzdCA9IHt9OwogCiAgICAgICAg
ICAgICAgICAgZm9yIChsZXQgZW50cnkgb2YgcGVuZGluZ0VudHJpZXMpCkluZGV4OiBXZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdn
ZXJhYmxlLmpzCShyZXZpc2lvbiAyMjk2ODQpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
dG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTU1LDcg
KzU1LDcgQEAgY2xhc3MgQnVpbGRib3RUcmlnZ2VyYWJsZSB7CiAKICAgICBpbml0U3luY2Vycygp
CiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5nZXRCdWlsZGVyTmFtZVRvSURNYXBEZXByZWNh
dGVkKCkudGhlbigoYnVpbGRlck5hbWVUb0lETWFwKSA9PiB7CisgICAgICAgIHJldHVybiB0aGlz
LmdldEJ1aWxkZXJOYW1lVG9JRE1hcCgpLnRoZW4oKGJ1aWxkZXJOYW1lVG9JRE1hcCkgPT4gewog
ICAgICAgICAgICAgdGhpcy5fc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKHRo
aXMuX2J1aWxkYm90UmVtb3RlLCB0aGlzLl9jb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCk7CiAg
ICAgICAgIH0pOwogICAgIH0KSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRl
c3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMJKHJldmlzaW9u
IDIyOTY4NCkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2J1aWxkYm90
LXN5bmNlci10ZXN0cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMTU1LDExICsxNTUsMTYgQEAgZnVu
Y3Rpb24gYnVpbGRlck5hbWVUb0lETWFwKCkKICAgICAgICAgJ2lQaG9uZSBBQiBUZXN0cycgOiAn
MTA0JywKICAgICAgICAgJ2lQaG9uZSAyIEFCIFRlc3RzJzogJzEwNScsCiAgICAgICAgICdpUGFk
IEFCIFRlc3RzJzogJzEwNicKLSAgICB9ICAgIAorICAgIH07CiB9CiAKIGZ1bmN0aW9uIHNtYWxs
UGVuZGluZ0J1aWxkKCkKIHsKKyAgICByZXR1cm4gc2FtcGxlUGVuZGluZ0J1aWxkUmVxdWVzdHMo
bnVsbCwgbnVsbCwgbnVsbCwgInNvbWUgYnVpbGRlciIpOworfQorCitmdW5jdGlvbiBzbWFsbFBl
bmRpbmdCdWlsZERlcHJlY2F0ZWQoKQorewogICAgIHJldHVybiB7CiAgICAgICAgICdidWlsZGVy
TmFtZSc6ICdzb21lIGJ1aWxkZXInLAogICAgICAgICAnYnVpbGRzJzogW10sCkBAIC0xNzgsNiAr
MTgzLDExIEBAIGZ1bmN0aW9uIHNtYWxsUGVuZGluZ0J1aWxkKCkKIAogZnVuY3Rpb24gc21hbGxJ
blByb2dyZXNzQnVpbGQoKQogeworICAgIHJldHVybiBzYW1wbGVJblByb2dyZXNzQnVpbGQoKTsK
K30KKworZnVuY3Rpb24gc21hbGxJblByb2dyZXNzQnVpbGREZXByZWNhdGVkKCkKK3sKICAgICBy
ZXR1cm4gewogICAgICAgICAnYnVpbGRlck5hbWUnOiAnc29tZSBidWlsZGVyJywKICAgICAgICAg
J2J1aWxkcyc6IFtdLApAQCAtMTk5LDYgKzIwOSwxMSBAQCBmdW5jdGlvbiBzbWFsbEluUHJvZ3Jl
c3NCdWlsZCgpCiAKIGZ1bmN0aW9uIHNtYWxsRmluaXNoZWRCdWlsZCgpCiB7CisgICAgcmV0dXJu
IHNhbXBsZUZpbmlzaGVkQnVpbGQobnVsbCwgbnVsbCwgInNvbWUgYnVpbGRlciIpOworfQorCitm
dW5jdGlvbiBzbWFsbEZpbmlzaGVkQnVpbGREZXByZWNhdGVkKCkKK3sKICAgICByZXR1cm4gewog
ICAgICAgICAnYnVpbGRlck5hbWUnOiAnc29tZSBidWlsZGVyJywKICAgICAgICAgJ2J1aWxkcyc6
IFtdLApAQCAtMTQzMyw4ICsxNDQ4LDggQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkg
PT4gewogICAgICAgICBpdCgnc2hvdWxkIGZldGNoIHBlbmRpbmcgYnVpbGRzIGZyb20gdGhlIHJp
Z2h0IFVSTCcsICgpID0+IHsKICAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5h
bWVUb0lETWFwKCkpWzFdOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlci5idWlsZGVy
TmFtZSgpLCAnQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzJyk7Ci0gICAgICAgICAgICBs
ZXQgZXhwZWN0ZWRVUkwgPSAnL2pzb24vYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJr
LVRlc3RzL3BlbmRpbmdCdWlsZHMnOwotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlci5w
YXRoRm9yUGVuZGluZ0J1aWxkc0pTT05EZXByZWNhdGVkKCksIGV4cGVjdGVkVVJMKTsKKyAgICAg
ICAgICAgIGxldCBleHBlY3RlZFVSTCA9ICcvYXBpL3YyL2J1aWxkZXJzLzEwMi9idWlsZHJlcXVl
c3RzP2NvbXBsZXRlPWZhbHNlJmNsYWltZWQ9ZmFsc2UmcHJvcGVydHk9Kic7CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoc3luY2VyLnBhdGhGb3JQZW5kaW5nQnVpbGRzKCksIGV4cGVjdGVkVVJM
KTsKICAgICAgICAgICAgIHN5bmNlci5wdWxsQnVpbGRib3QoKTsKICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzBdLnVybCwgZXhwZWN0ZWRVUkwpOwpAQCAtMTQ0NiwxMSArMTQ2MSwxMSBAQCBkZXNj
cmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAKICAgICAgICAgICAgIHN5bmNlci5wdWxs
QnVpbGRib3QoMSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAx
KTsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWls
ZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvcGVuZGluZ0J1aWxkcycpOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9hcGkvdjIvYnVpbGRlcnMv
MTAyL2J1aWxkcmVxdWVzdHM/Y29tcGxldGU9ZmFsc2UmY2xhaW1lZD1mYWxzZSZwcm9wZXJ0eT0q
Jyk7CiAgICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKFtdKTsKICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL0FCVGVzdC1p
UGFkLVJ1bkJlbmNobWFyay1UZXN0cy9idWlsZHMvP3NlbGVjdD0tMScpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sxXS51cmwsICcvYXBpL3YyL2J1aWxkZXJzLzEwMi9i
dWlsZHM/bGltaXQ9MSZvcmRlcj0tbnVtYmVyJnByb3BlcnR5PSonKTsKICAgICAgICAgICAgIH0p
OwogICAgICAgICB9KTsKIApAQCAtMTQ1OSwyOSArMTQ3NCwyOSBAQCBkZXNjcmliZSgnQnVpbGRi
b3RTeW5jZXInLCAoKSA9PiB7CiAKICAgICAgICAgICAgIHN5bmNlci5wdWxsQnVpbGRib3QoMyk7
CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWlsZGVycy9BQlRlc3Qt
aVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9hcGkvdjIvYnVpbGRlcnMvMTAyL2J1aWxkcmVx
dWVzdHM/Y29tcGxldGU9ZmFsc2UmY2xhaW1lZD1mYWxzZSZwcm9wZXJ0eT0qJyk7CiAgICAgICAg
ICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKFtdKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNo
bWFyay1UZXN0cy9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTImc2VsZWN0PS0zJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgJy9hcGkvdjIvYnVpbGRl
cnMvMTAyL2J1aWxkcz9saW1pdD0zJm9yZGVyPS1udW1iZXImcHJvcGVydHk9KicpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgY3JlYXRlIEJ1aWxk
Ym90QnVpbGRFbnRyeSBmb3IgcGVuZGluZyBidWlsZHMnLCAoKSA9PiB7CiAgICAgICAgICAgICBs
ZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2Ft
cGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKICAgICAgICAgICAgIGxl
dCBwcm9taXNlID0gc3luY2VyLnB1bGxCdWlsZGJvdCgpOwotICAgICAgICAgICAgcmVxdWVzdHNb
MF0ucmVzb2x2ZShbc2FtcGxlUGVuZGluZ0J1aWxkUmVxdWVzdERlcHJlY2F0ZWQoKV0pOworICAg
ICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZShzYW1wbGVQZW5kaW5nQnVpbGRSZXF1ZXN0cygp
KTsKICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnRoZW4oKGVudHJpZXMpID0+IHsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cmllcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAg
ICAgIGxldCBlbnRyeSA9IGVudHJpZXNbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVu
dHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5RGVwcmVjYXRlZCk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5KTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5LmJ1aWxkTnVtYmVyKCkpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5vayghZW50cnkuc2xhdmVOYW1lKCkpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChlbnRyeS5idWlsZFJlcXVlc3RJZCgpLCAxNjczMyk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0Lm9rKGVudHJ5LmlzUGVuZGluZygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
b2soIWVudHJ5LmlzSW5Qcm9ncmVzcygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVu
dHJ5Lmhhc0ZpbmlzaGVkKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51
cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJl
bmNobWFyay1UZXN0cy8nKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJs
KCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxkcmVxdWVzdHMvMTcnKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9KTsKIApAQCAtMTQ5MywxOSArMTUwOCwxOSBAQCBkZXNjcmli
ZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNv
bHZlKFtdKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgcmVxdWVzdHNbMV0ucmVzb2x2ZSh7Wy0xXTogc2Ft
cGxlSW5Qcm9ncmVzc0J1aWxkRGVwcmVjYXRlZCgpfSk7CisgICAgICAgICAgICAgICAgcmVxdWVz
dHNbMV0ucmVzb2x2ZShzYW1wbGVJblByb2dyZXNzQnVpbGQoKSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIHByb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKChlbnRyaWVzKSA9PiB7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJpZXMubGVuZ3RoLCAxKTsKICAgICAgICAgICAg
ICAgICBsZXQgZW50cnkgPSBlbnRyaWVzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5vayhl
bnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeURlcHJlY2F0ZWQpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeSk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkTnVtYmVyKCksIDYxNCk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnNsYXZlTmFtZSgpLCAnQUJUZXN0LWlQ
YWQtMCcpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZFJlcXVlc3RJ
ZCgpLCAxNjczMyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc1BlbmRpbmco
KSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5LmlzSW5Qcm9ncmVzcygpKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5Lmhhc0ZpbmlzaGVkKCkpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
L2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy9idWlsZHMvNjE0Jyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvIy9idWlsZGVycy8xMDIvYnVpbGRzLzYxNCcpOwogICAgICAgICAgICAgfSk7CiAg
ICAgICAgIH0pOwogCkBAIC0xNTE3LDE5ICsxNTMyLDE5IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5
bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoW10pOwogICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAg
ICAgICAgICAgICAgICByZXF1ZXN0c1sxXS5yZXNvbHZlKHtbLTFdOiBzYW1wbGVGaW5pc2hlZEJ1
aWxkRGVwcmVjYXRlZCgpfSk7CisgICAgICAgICAgICAgICAgcmVxdWVzdHNbMV0ucmVzb2x2ZShz
YW1wbGVGaW5pc2hlZEJ1aWxkKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBwcm9taXNlOwog
ICAgICAgICAgICAgfSkudGhlbigoZW50cmllcykgPT4gewogICAgICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwoZW50cmllcy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgICAgIGxldCBlbnRy
eSA9IGVudHJpZXNbMF07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNl
b2YgQnVpbGRib3RCdWlsZEVudHJ5RGVwcmVjYXRlZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5KTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGROdW1iZXIoKSwgMTc1NSk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnNsYXZlTmFtZSgpLCAnQUJUZXN0LWlQYWQtMCcpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZFJlcXVlc3RJZCgpLCAxODkzNSk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc1BlbmRpbmcoKSk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc0luUHJvZ3Jlc3MoKSk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0Lm9rKGVudHJ5Lmhhc0ZpbmlzaGVkKCkpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL0FC
VGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy9idWlsZHMvMTc1NScpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMv
YnVpbGRlcnMvMTAyL2J1aWxkcy8xNzU1Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7
CiAKQEAgLTE1MzksNDQgKzE1NTQsNDQgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkg
PT4gewogICAgICAgICAgICAgbGV0IHByb21pc2UgPSBzeW5jZXIucHVsbEJ1aWxkYm90KDUpOwog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CiAKLSAgICAgICAg
ICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoW3NhbXBsZVBlbmRpbmdCdWlsZFJlcXVlc3REZXByZWNh
dGVkKDEyMyldKTsKKyAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoc2FtcGxlUGVuZGlu
Z0J1aWxkUmVxdWVzdHMoMTIzKSk7CiAKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgcmVxdWVzdHNbMV0ucmVz
b2x2ZSh7Wy0xXTogc2FtcGxlRmluaXNoZWRCdWlsZERlcHJlY2F0ZWQoKSwgWy0yXTogeydlcnJv
cic6ICdOb3QgYXZhaWxhYmxlJ30sIFstNF06IHNhbXBsZUluUHJvZ3Jlc3NCdWlsZERlcHJlY2F0
ZWQoKX0pOworICAgICAgICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBb
c2FtcGxlRmluaXNoZWRCdWlsZERhdGEoKSwgc2FtcGxlSW5Qcm9ncmVzc0J1aWxkRGF0YSgpXX0p
OwogICAgICAgICAgICAgICAgIHJldHVybiBwcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigo
ZW50cmllcykgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZW50cmllcy5s
ZW5ndGgsIDMpOwogCiAgICAgICAgICAgICAgICAgbGV0IGVudHJ5ID0gZW50cmllc1swXTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50
cnlEZXByZWNhdGVkKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2Vv
ZiBCdWlsZGJvdEJ1aWxkRW50cnkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRy
eS5idWlsZE51bWJlcigpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50
cnkuc2xhdmVOYW1lKCksIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRy
eS5idWlsZFJlcXVlc3RJZCgpLCAxMjMpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRy
eS5pc1BlbmRpbmcoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc0luUHJv
Z3Jlc3MoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5oYXNGaW5pc2hlZCgp
KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVp
bGQud2Via2l0Lm9yZy9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxk
LndlYmtpdC5vcmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7CiAKICAgICAgICAgICAgICAgICBlbnRy
eSA9IGVudHJpZXNbMV07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNl
b2YgQnVpbGRib3RCdWlsZEVudHJ5RGVwcmVjYXRlZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5KTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGROdW1iZXIoKSwgNjE0KTsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZW50cnkuc2xhdmVOYW1lKCksICdBQlRlc3QtaVBhZC0wJyk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkUmVxdWVzdElkKCksIDE2NzMzKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5LmlzUGVuZGluZygpKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQub2soZW50cnkuaXNJblByb2dyZXNzKCkpOwogICAgICAgICAgICAgICAg
IGFzc2VydC5vayghZW50cnkuaGFzRmluaXNoZWQoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvQUJU
ZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzL2J1aWxkcy82MTQnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1
aWxkZXJzLzEwMi9idWlsZHMvNjE0Jyk7CiAKICAgICAgICAgICAgICAgICBlbnRyeSA9IGVudHJp
ZXNbMl07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRi
b3RCdWlsZEVudHJ5RGVwcmVjYXRlZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5
IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5KTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZW50cnkuYnVpbGROdW1iZXIoKSwgMTc1NSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGVudHJ5LnNsYXZlTmFtZSgpLCAnQUJUZXN0LWlQYWQtMCcpOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZFJlcXVlc3RJZCgpLCAxODkzNSk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc1BlbmRpbmcoKSk7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0Lm9rKCFlbnRyeS5pc0luUHJvZ3Jlc3MoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
Lm9rKGVudHJ5Lmhhc0ZpbmlzaGVkKCkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChl
bnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL0FCVGVzdC1pUGFk
LVJ1bkJlbmNobWFyay1UZXN0cy9idWlsZHMvMTc1NScpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMv
MTAyL2J1aWxkcy8xNzU1Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKQEAgLTE1
ODYsNTQgKzE2MDEsNTQgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAg
ICAgICAgICAgbGV0IHByb21pc2UgPSBzeW5jZXIucHVsbEJ1aWxkYm90KDUpOwogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CiAKLSAgICAgICAgICAgIHJlcXVl
c3RzWzBdLnJlc29sdmUoW3NhbXBsZVBlbmRpbmdCdWlsZFJlcXVlc3REZXByZWNhdGVkKDQ1Niwg
MiksIHNhbXBsZVBlbmRpbmdCdWlsZFJlcXVlc3REZXByZWNhdGVkKDEyMywgMSldKTsKKyAgICAg
ICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoeyJidWlsZHJlcXVlc3RzIjogW3NhbXBsZVBlbmRp
bmdCdWlsZFJlcXVlc3REYXRhKDQ1NiwgMiksIHNhbXBsZVBlbmRpbmdCdWlsZFJlcXVlc3REYXRh
KDEyMywgMSldfSk7CiAKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgcmVxdWVzdHNbMV0ucmVzb2x2ZSh7Wy0z
XTogc2FtcGxlRmluaXNoZWRCdWlsZERlcHJlY2F0ZWQoKSwgWy0xXTogeydlcnJvcic6ICdOb3Qg
YXZhaWxhYmxlJ30sIFstMl06IHNhbXBsZUluUHJvZ3Jlc3NCdWlsZERlcHJlY2F0ZWQoKX0pOwor
ICAgICAgICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbc2FtcGxlRmlu
aXNoZWRCdWlsZERhdGEoKSwgc2FtcGxlSW5Qcm9ncmVzc0J1aWxkRGF0YSgpXX0pOwogICAgICAg
ICAgICAgICAgIHJldHVybiBwcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoZW50cmllcykg
PT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoZW50cmllcy5sZW5ndGgsIDQp
OwogCiAgICAgICAgICAgICAgICAgbGV0IGVudHJ5ID0gZW50cmllc1swXTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJvdEJ1aWxkRW50cnlEZXByZWNh
dGVkKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQub2soZW50cnkgaW5zdGFuY2VvZiBCdWlsZGJv
dEJ1aWxkRW50cnkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZE51
bWJlcigpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuc2xhdmVO
YW1lKCksIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZFJl
cXVlc3RJZCgpLCAxMjMpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeS5pc1BlbmRp
bmcoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc0luUHJvZ3Jlc3MoKSk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5oYXNGaW5pc2hlZCgpKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0
Lm9yZy9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvIy9idWlsZHJlcXVlc3RzLzE3Jyk7CiAKICAgICAgICAgICAgICAgICBlbnRyeSA9IGVudHJp
ZXNbMV07Ci0gICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5IGluc3RhbmNlb2YgQnVpbGRi
b3RCdWlsZEVudHJ5RGVwcmVjYXRlZCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5
IGluc3RhbmNlb2YgQnVpbGRib3RCdWlsZEVudHJ5KTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZW50cnkuYnVpbGROdW1iZXIoKSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGVudHJ5LnNsYXZlTmFtZSgpLCBudWxsKTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoZW50cnkuYnVpbGRSZXF1ZXN0SWQoKSwgNDU2KTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQub2soZW50cnkuaXNQZW5kaW5nKCkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50
cnkuaXNJblByb2dyZXNzKCkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaGFz
RmluaXNoZWQoKSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAn
aHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJr
LVRlc3RzLycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0
dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRyZXF1ZXN0cy8xNycpOwogCiAgICAgICAgICAg
ICAgICAgZW50cnkgPSBlbnRyaWVzWzJdOwotICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRy
eSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeURlcHJlY2F0ZWQpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeSk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkTnVtYmVyKCksIDYxNCk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnNsYXZlTmFtZSgpLCAnQUJUZXN0LWlQYWQt
MCcpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5idWlsZFJlcXVlc3RJZCgp
LCAxNjczMyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRyeS5pc1BlbmRpbmcoKSk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5LmlzSW5Qcm9ncmVzcygpKTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5Lmhhc0ZpbmlzaGVkKCkpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1
aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy9idWlsZHMvNjE0Jyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvIy9idWlsZGVycy8xMDIvYnVpbGRzLzYxNCcpOwogCiAgICAgICAgICAgICAgICAgZW50
cnkgPSBlbnRyaWVzWzNdOwotICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5j
ZW9mIEJ1aWxkYm90QnVpbGRFbnRyeURlcHJlY2F0ZWQpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeSk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkTnVtYmVyKCksIDE3NTUpOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChlbnRyeS5zbGF2ZU5hbWUoKSwgJ0FCVGVzdC1pUGFkLTAnKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGRSZXF1ZXN0SWQoKSwgMTg5MzUp
OwogICAgICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaXNQZW5kaW5nKCkpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaXNJblByb2dyZXNzKCkpOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5vayhlbnRyeS5oYXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9B
QlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVpbGRzLzE3NTUnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8j
L2J1aWxkZXJzLzEwMi9idWlsZHMvMTc1NScpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwogCkBAIC0xNjQzLDI0ICsxNjU4LDI0IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgp
ID0+IHsKICAgICAgICAgICAgIGxldCBwcm9taXNlID0gc3luY2VyLnB1bGxCdWlsZGJvdCg1KTsK
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwogCi0gICAgICAg
ICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKFtzYW1wbGVQZW5kaW5nQnVpbGRSZXF1ZXN0RGVwcmVj
YXRlZCgpXSk7CisgICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKHNhbXBsZVBlbmRpbmdC
dWlsZFJlcXVlc3RzKCkpOwogCiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUo
e1stMV06IHNhbXBsZUluUHJvZ3Jlc3NCdWlsZERlcHJlY2F0ZWQoKX0pOworICAgICAgICAgICAg
ICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoc2FtcGxlSW5Qcm9ncmVzc0J1aWxkKCkpOwogICAgICAg
ICAgICAgICAgIHJldHVybiBwcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoZW50cmllcykg
PT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyaWVzLmxlbmd0aCwgMSk7CiAK
ICAgICAgICAgICAgICAgICBsZXQgZW50cnkgPSBlbnRyaWVzWzBdOwotICAgICAgICAgICAgICAg
IGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeURlcHJlY2F0ZWQp
OworICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVp
bGRFbnRyeSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkTnVtYmVy
KCksIDYxNCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnNsYXZlTmFtZSgp
LCAnQUJUZXN0LWlQYWQtMCcpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS5i
dWlsZFJlcXVlc3RJZCgpLCAxNjczMyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKCFlbnRy
eS5pc1BlbmRpbmcoKSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0Lm9rKGVudHJ5LmlzSW5Qcm9n
cmVzcygpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQub2soIWVudHJ5Lmhhc0ZpbmlzaGVkKCkp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChlbnRyeS51cmwoKSwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnL2J1aWxkZXJzL0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy9idWls
ZHMvNjE0Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGVudHJ5LnVybCgpLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvIy9idWlsZGVycy8xMDIvYnVpbGRzLzYxNCcpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwogCkBAIC0xNjcwLDI0ICsxNjg1LDI0IEBAIGRlc2NyaWJl
KCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGxldCBwcm9taXNlID0gc3lu
Y2VyLnB1bGxCdWlsZGJvdCg1KTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDEpOwogCi0gICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKFtzYW1wbGVQZW5k
aW5nQnVpbGRSZXF1ZXN0RGVwcmVjYXRlZCgpXSk7CisgICAgICAgICAgICByZXF1ZXN0c1swXS5y
ZXNvbHZlKHNhbXBsZVBlbmRpbmdCdWlsZFJlcXVlc3RzKCkpOwogCiAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAg
IHJlcXVlc3RzWzFdLnJlc29sdmUoe1stMV06IHNhbXBsZUZpbmlzaGVkQnVpbGREZXByZWNhdGVk
KDE2NzMzKX0pOworICAgICAgICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoc2FtcGxlRmlu
aXNoZWRCdWlsZCgxNjczMykpOwogICAgICAgICAgICAgICAgIHJldHVybiBwcm9taXNlOwogICAg
ICAgICAgICAgfSkudGhlbigoZW50cmllcykgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChlbnRyaWVzLmxlbmd0aCwgMSk7CiAKICAgICAgICAgICAgICAgICBsZXQgZW50cnkgPSBl
bnRyaWVzWzBdOwotICAgICAgICAgICAgICAgIGFzc2VydC5vayhlbnRyeSBpbnN0YW5jZW9mIEJ1
aWxkYm90QnVpbGRFbnRyeURlcHJlY2F0ZWQpOworICAgICAgICAgICAgICAgIGFzc2VydC5vayhl
bnRyeSBpbnN0YW5jZW9mIEJ1aWxkYm90QnVpbGRFbnRyeSk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGVudHJ5LmJ1aWxkTnVtYmVyKCksIDE3NTUpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChlbnRyeS5zbGF2ZU5hbWUoKSwgJ0FCVGVzdC1pUGFkLTAnKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoZW50cnkuYnVpbGRSZXF1ZXN0SWQoKSwgMTY3MzMpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5vayghZW50cnkuaXNQZW5kaW5nKCkpOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5vayghZW50cnkuaXNJblByb2dyZXNzKCkpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5vayhlbnRyeS5oYXNGaW5pc2hlZCgpKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9BQlRlc3Qt
aVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvYnVpbGRzLzE3NTUnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoZW50cnkudXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1aWxk
ZXJzLzEwMi9idWlsZHMvMTc1NScpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAg
IH0pOwpAQCAtMTcyOCwxNSArMTc0MywyMCBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAo
KSA9PiB7CiAgICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0KHJlcXVlc3QsIFtyZXF1
ZXN0XSwgJ3NvbWUtc2xhdmUnKTsKICAgICAgICAgICAgIHJldHVybiB3YWl0Rm9yUmVxdWVzdC50
aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2J1
aWxkZXJzL0FCVGVzdC1pUGhvbmUtUnVuQmVuY2htYXJrLVRlc3RzL2ZvcmNlJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hl
ZHVsZXJzL0FCVGVzdC1pUGhvbmUtUnVuQmVuY2htYXJrLVRlc3RzLUZvcmNlU2NoZWR1bGVyJyk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLm1ldGhvZCwgJ1BPU1Qn
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzBdLmRhdGEsIHsK
LSAgICAgICAgICAgICAgICAgICAgJ2J1aWxkX3JlcXVlc3RfaWQnOiAnMTY3MzMtJyArIE1vY2tN
b2RlbHMuaXBob25lLmlkKCksCi0gICAgICAgICAgICAgICAgICAgICdkZXNpcmVkX2ltYWdlJzog
JzEzQTQ1MicsCi0gICAgICAgICAgICAgICAgICAgICJvcGVuc291cmNlIjogIjE5NzQ2MyIsCi0g
ICAgICAgICAgICAgICAgICAgICdmb3JjZXNjaGVkdWxlcic6ICdBQlRlc3QtaVBob25lLVJ1bkJl
bmNobWFyay1UZXN0cy1Gb3JjZVNjaGVkdWxlcicsCi0gICAgICAgICAgICAgICAgICAgICdzbGF2
ZW5hbWUnOiAnc29tZS1zbGF2ZScsCi0gICAgICAgICAgICAgICAgICAgICd0ZXN0X25hbWUnOiAn
c3BlZWRvbWV0ZXInCisgICAgICAgICAgICAgICAgICAgICdpZCc6ICcxNjczMy0nICsgTW9ja01v
ZGVscy5pcGhvbmUuaWQoKSwKKyAgICAgICAgICAgICAgICAgICAgJ2pzb25ycGMnOiAnMi4wJywK
KyAgICAgICAgICAgICAgICAgICAgJ21ldGhvZCc6ICdmb3JjZScsCisgICAgICAgICAgICAgICAg
ICAgICdwYXJhbXMnOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAnYnVpbGRfcmVxdWVzdF9p
ZCc6ICcxNjczMy0nICsgTW9ja01vZGVscy5pcGhvbmUuaWQoKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICdkZXNpcmVkX2ltYWdlJzogJzEzQTQ1MicsCisgICAgICAgICAgICAgICAgICAgICAg
ICAnb3BlbnNvdXJjZSc6ICcxOTc0NjMnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvcmNl
c2NoZWR1bGVyJzogJ0FCVGVzdC1pUGhvbmUtUnVuQmVuY2htYXJrLVRlc3RzLUZvcmNlU2NoZWR1
bGVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdzbGF2ZW5hbWUnOiAnc29tZS1zbGF2ZScs
CisgICAgICAgICAgICAgICAgICAgICAgICAndGVzdF9uYW1lJzogJ3NwZWVkb21ldGVyJworICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9KTsK
ICAgICAgICAgfSk7CkBAIC0xNzYwLDMzICsxNzgwLDM1IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5
bmNlcicsICgpID0+IHsKICAgICAgICAgaXQoJ3Nob3VsZCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGJ1
aWxkZXIgaGFzIG5vIGJ1aWxkcyBpZiBzbGF2ZUxpc3QgaXMgbm90IHNwZWNpZmllZCcsICgpID0+
IHsKICAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhN
b2NrUmVtb3RlQVBJLCBzbWFsbENvbmZpZ3VyYXRpb24oKSwgYnVpbGRlck5hbWVUb0lETWFwKCkp
WzBdOwogCi0gICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5j
ZXIsIFtdLCB7fSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90
V2l0aEFzc2VydGlvbihzeW5jZXIsIHt9LCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLnNv
bWVQbGF0Zm9ybSwgTW9ja01vZGVscy5zb21lVGVzdCk7CiAgICAgICAgICAgICAgICAgc3luY2Vy
LnNjaGVkdWxlUmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShyZXF1ZXN0LCBbcmVxdWVzdF0pOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvYnVpbGRlcnMvc29tZSUy
MGJ1aWxkZXIvZm9yY2UnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNb
MF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvc29tZS1idWlsZGVyLUZvcmNlU2NoZWR1
bGVyJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLm1ldGhvZCwg
J1BPU1QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzBdLmRh
dGEsIHtpZDogJzE2NzMzLScgKyBNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybS5pZCgpLCAnb3MnOiAn
MTNBNDUyJywgJ3drJzogJzE5NzQ2MycsICdmb3JjZXNjaGVkdWxlcic6ICdzb21lLWJ1aWxkZXIt
Rm9yY2VTY2hlZHVsZXInfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1
ZXN0c1swXS5kYXRhLCB7aWQ6ICcxNjczMy0nICsgTW9ja01vZGVscy5zb21lUGxhdGZvcm0uaWQo
KSwgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsCisgICAgICAgICAgICAgICAg
ICAgICdwYXJhbXMnOiB7aWQ6ICcxNjczMy0nICsgTW9ja01vZGVscy5zb21lUGxhdGZvcm0uaWQo
KSwgJ2ZvcmNlc2NoZWR1bGVyJzogJ3NvbWUtYnVpbGRlci1Gb3JjZVNjaGVkdWxlcicsICdvcyc6
ICcxM0E0NTInLCAnd2snOiAnMTk3NDYzJ319KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9
KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVpbGRlciBvbmx5
IGhhcyBmaW5pc2hlZCBidWlsZHMgaWYgc2xhdmVMaXN0IGlzIG5vdCBzcGVjaWZpZWQnLCAoKSA9
PiB7CiAgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWco
TW9ja1JlbW90ZUFQSSwgc21hbGxDb25maWd1cmF0aW9uKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgp
KVswXTsKIAotICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3lu
Y2VyLCBbXSwge1stMV06IHNtYWxsRmluaXNoZWRCdWlsZCgpfSkudGhlbigoKSA9PiB7CisgICAg
ICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIHt9LCBzbWFs
bEZpbmlzaGVkQnVpbGQoKSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVx
dWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybSwg
TW9ja01vZGVscy5zb21lVGVzdCk7CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVx
dWVzdEluR3JvdXBJZkF2YWlsYWJsZShyZXF1ZXN0LCBbcmVxdWVzdF0pOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvZm9y
Y2UnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2Fw
aS92Mi9mb3JjZXNjaGVkdWxlcnMvc29tZS1idWlsZGVyLUZvcmNlU2NoZWR1bGVyJyk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLm1ldGhvZCwgJ1BPU1QnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzBdLmRhdGEsIHtpZDogJzE2
NzMzLScgKyBNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybS5pZCgpLCAnb3MnOiAnMTNBNDUyJywgJ3dr
JzogJzE5NzQ2MycsICdmb3JjZXNjaGVkdWxlcic6ICdzb21lLWJ1aWxkZXItRm9yY2VTY2hlZHVs
ZXInfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1swXS5kYXRh
LCB7aWQ6ICcxNjczMy0nICsgTW9ja01vZGVscy5zb21lUGxhdGZvcm0uaWQoKSwgJ2pzb25ycGMn
OiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsCisgICAgICAgICAgICAgICAgICAgICdwYXJhbXMn
OiB7aWQ6ICcxNjczMy0nICsgTW9ja01vZGVscy5zb21lUGxhdGZvcm0uaWQoKSwgJ2ZvcmNlc2No
ZWR1bGVyJzogJ3NvbWUtYnVpbGRlci1Gb3JjZVNjaGVkdWxlcicsICdvcyc6ICcxM0E0NTInLCAn
d2snOiAnMTk3NDYzJ319KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIAogICAgICAg
ICBpdCgnc2hvdWxkIG5vdCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgaGFzIGEgcGVuZGlu
ZyBidWlsZCBpZiBzbGF2ZUxpc3QgaXMgbm90IHNwZWNpZmllZCcsICgpID0+IHsKICAgICAgICAg
ICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJ
LCBzbWFsbENvbmZpZ3VyYXRpb24oKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzBdOwogCi0gICAg
ICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtzbWFsbFBl
bmRpbmdCdWlsZCgpXSwge30pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgcmV0dXJuIHB1bGxC
dWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBzbWFsbFBlbmRpbmdCdWlsZCgpLCB7fSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdEluR3JvdXBJ
ZkF2YWlsYWJsZShjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5zb21lUGxhdGZv
cm0sIE1vY2tNb2RlbHMuc29tZVRlc3QpKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAwKTsKICAgICAgICAgICAgIH0pOwpAQCAtMTc5NSwxMSArMTgxNywx
MSBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIGl0KCdzaG91
bGQgc2NoZWR1bGUgYSBidWlsZCBpZiBidWlsZGVyIGRvZXMgbm90IGhhdmUgcGVuZGluZyBvciBj
b21wbGV0ZWQgYnVpbGRzIG9uIHRoZSBtYXRjaGluZyBzbGF2ZScsICgpID0+IHsKICAgICAgICAg
ICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJ
LCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzBdOwogCi0gICAgICAg
ICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7fSkudGhl
bigoKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihz
eW5jZXIsIHt9LCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVz
dCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwaG9uZSwgTW9ja01vZGVs
cy5zcGVlZG9tZXRlcik7CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdElu
R3JvdXBJZkF2YWlsYWJsZShyZXF1ZXN0LCBbcmVxdWVzdF0sIG51bGwpOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvYnVpbGRlcnMvQUJUZXN0LWlQaG9uZS1SdW5C
ZW5jaG1hcmstVGVzdHMvZm9yY2UnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbMF0udXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvQUJUZXN0LWlQaG9uZS1SdW5C
ZW5jaG1hcmstVGVzdHMtRm9yY2VTY2hlZHVsZXInKTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbMF0ubWV0aG9kLCAnUE9TVCcpOwogICAgICAgICAgICAgfSk7CiAgICAg
ICAgIH0pOwpAQCAtMTgwNywxMSArMTgyOSwxMSBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXIn
LCAoKSA9PiB7CiAgICAgICAgIGl0KCdzaG91bGQgc2NoZWR1bGUgYSBidWlsZCBpZiBidWlsZGVy
IG9ubHkgaGFzIGZpbmlzaGVkIGJ1aWxkcyBvbiB0aGUgbWF0Y2hpbmcgc2xhdmUnLCAoKSA9PiB7
CiAgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsK
IAotICAgICAgICAgICAgcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7Wy0x
XTogc2FtcGxlRmluaXNoZWRCdWlsZERlcHJlY2F0ZWQoKX0pLnRoZW4oKCkgPT4geworICAgICAg
ICAgICAgcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIHt9LCBzYW1wbGVGaW5pc2hl
ZEJ1aWxkKCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBj
cmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVk
b21ldGVyKTsKICAgICAgICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0SW5Hcm91cElm
QXZhaWxhYmxlKHJlcXVlc3QsIFtyZXF1ZXN0XSwgbnVsbCk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzBdLnVybCwgJy9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmst
VGVzdHMvZm9yY2UnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0u
dXJsLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRl
c3RzLUZvcmNlU2NoZWR1bGVyJyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzBdLm1ldGhvZCwgJ1BPU1QnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKQEAg
LTE4MTksNyArMTg0MSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAg
ICAgICAgaXQoJ3Nob3VsZCBub3Qgc2NoZWR1bGUgYSBidWlsZCBpZiBidWlsZGVyIGhhcyBhIHBl
bmRpbmcgYnVpbGQgb24gdGhlIG1hY2hpbmcgc2xhdmUnLCAoKSA9PiB7CiAgICAgICAgICAgICBs
ZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2Ft
cGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAotICAgICAgICAgICAg
cHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtzYW1wbGVQZW5kaW5nQnVpbGRSZXF1
ZXN0RGVwcmVjYXRlZCgpXSwge30pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgcHVsbEJ1aWxk
Ym90V2l0aEFzc2VydGlvbihzeW5jZXIsIHNhbXBsZVBlbmRpbmdCdWlsZFJlcXVlc3RzKCksIHt9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2Ft
cGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7
CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdEluR3JvdXBJZkF2YWlsYWJs
ZShyZXF1ZXN0LCBbcmVxdWVzdF0sIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDApOwpAQCAtMTgyOSw3ICsxODUxLDcgQEAgZGVzY3JpYmUoJ0J1
aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICBpdCgnc2hvdWxkIHNjaGVkdWxlIGEgYnVp
bGQgaWYgYnVpbGRlciBvbmx5IGhhcyBhIHBlbmRpbmcgYnVpbGQgb24gYSBub24tbWFjaGluZyBz
bGF2ZScsICgpID0+IHsKICAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVU
b0lETWFwKCkpWzFdOwogCi0gICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2Vy
dGlvbihzeW5jZXIsIFtzYW1wbGVQZW5kaW5nQnVpbGRSZXF1ZXN0RGVwcmVjYXRlZCgxLCAxLCAn
YW5vdGhlci1zbGF2ZScpXSwge30pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgcmV0dXJuIHB1
bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBzYW1wbGVQZW5kaW5nQnVpbGRSZXF1ZXN0
cygxLCAxLCAnYW5vdGhlci1zbGF2ZScpLCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlw
YWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwogICAgICAgICAgICAgICAgIHN5bmNlci5zY2hl
ZHVsZVJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUocmVxdWVzdCwgW3JlcXVlc3RdLCBudWxsKTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKQEAgLTE4
MzksNyArMTg2MSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAg
ICAgaXQoJ3Nob3VsZCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgb25seSBoYXMgYW4gaW4t
cHJvZ3Jlc3MgYnVpbGQgb24gdGhlIG1hdGNoaW5nIHNsYXZlJywgKCkgPT4gewogICAgICAgICAg
ICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEks
IHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKLSAgICAgICAg
ICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10sIHtbLTFdOiBz
YW1wbGVJblByb2dyZXNzQnVpbGREZXByZWNhdGVkKCl9KS50aGVuKCgpID0+IHsKKyAgICAgICAg
ICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwge30sIHNhbXBsZUlu
UHJvZ3Jlc3NCdWlsZCgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1
ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01vZGVs
cy5zcGVlZG9tZXRlcik7CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdElu
R3JvdXBJZkF2YWlsYWJsZShyZXF1ZXN0LCBbcmVxdWVzdF0sIG51bGwpOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwpAQCAtMTg0OSw3ICsxODcxLDcg
QEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICBpdCgnc2hvdWxk
IHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVpbGRlciBoYXMgYW4gaW4tcHJvZ3Jlc3MgYnVpbGQgb24g
YW5vdGhlciBzbGF2ZScsICgpID0+IHsKICAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVp
bGRlck5hbWVUb0lETWFwKCkpWzFdOwogCi0gICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90
V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7Wy0xXTogc2FtcGxlSW5Qcm9ncmVzc0J1aWxkRGVw
cmVjYXRlZCgnb3RoZXItc2xhdmUnKX0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgcmV0dXJu
IHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCB7fSwgc2FtcGxlSW5Qcm9ncmVzc0J1
aWxkKCdvdGhlci1zbGF2ZScpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBy
ZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01v
ZGVscy5zcGVlZG9tZXRlcik7CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVz
dEluR3JvdXBJZkF2YWlsYWJsZShyZXF1ZXN0LCBbcmVxdWVzdF0sIG51bGwpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwpAQCAtMTg1OSw3ICsxODgx
LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICBpdCgnc2hv
dWxkIG5vdCBzY2hlZHVsZSBhIGJ1aWxkIGlmIHRoZSByZXF1ZXN0IGRvZXMgbm90IG1hdGNoIGFu
eSBjb25maWd1cmF0aW9uJywgKCkgPT4gewogICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxk
Ym90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBi
dWlsZGVyTmFtZVRvSURNYXAoKSlbMF07CiAKLSAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRi
b3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10sIHt9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAg
IHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwge30sIHt9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRS
ZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CiAgICAgICAg
ICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShyZXF1ZXN0
LCBbcmVxdWVzdF0sIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDApOwpAQCAtMTg2OSw3ICsxODkxLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3lu
Y2VyJywgKCkgPT4gewogICAgICAgICBpdCgnc2hvdWxkIG5vdCBzY2hlZHVsZSBhIGJ1aWxkIGlm
IGEgbmV3IHJlcXVlc3QgaGFkIGJlZW4gc3VibWl0dGVkIHRvIHRoZSBzYW1lIHNsYXZlJywgKGRv
bmUpID0+IHsKICAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFw
KCkpWzFdOwogCi0gICAgICAgICAgICBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwg
W10sIHt9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRp
b24oc3luY2VyLCB7fSwge30pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGxldCByZXF1
ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01vZGVs
cy5zcGVlZG9tZXRlcik7CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdChy
ZXF1ZXN0LCBbcmVxdWVzdF0sICdBQlRlc3QtaVBhZC0wJyk7CiAgICAgICAgICAgICAgICAgcmVx
dWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2Rl
bHMuc3BlZWRvbWV0ZXIpOwpAQCAtMTg4Nyw3ICsxOTA5LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90
U3luY2VyJywgKCkgPT4gewogICAgICAgICBpdCgnc2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgaWYg
YSBuZXcgcmVxdWVzdCBoYWQgYmVlbiBzdWJtaXR0ZWQgdG8gYW5vdGhlciBzbGF2ZScsICgpID0+
IHsKICAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhN
b2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFd
OwogCi0gICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIs
IFtdLCB7fSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0
aEFzc2VydGlvbihzeW5jZXIsIHt9LCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAg
bGV0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBN
b2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKICAgICAgICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVS
ZXF1ZXN0KHJlcXVlc3QsIFtyZXF1ZXN0XSwgJ0FCVGVzdC1pUGFkLTAnKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKQEAgLTE5MDAsNyArMTkyMiw3
IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgaXQoJ3Nob3Vs
ZCBub3Qgc2NoZWR1bGUgYSBidWlsZCBpZiBhIG5ldyByZXF1ZXN0IGhhZCBiZWVuIHN1Ym1pdHRl
ZCB0byB0aGUgc2FtZSBidWlsZGVyIHdpdGhvdXQgc2xhdmVMaXN0JywgKCkgPT4gewogICAgICAg
ICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVB
UEksIHNtYWxsQ29uZmlndXJhdGlvbigpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMF07CiAKLSAg
ICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10sIHt9
KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0
aW9uKHN5bmNlciwge30sIHt9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBsZXQgcmVx
dWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybSwg
TW9ja01vZGVscy5zb21lVGVzdCk7CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVx
dWVzdChyZXF1ZXN0LCBbcmVxdWVzdF0sIG51bGwpOwogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwo=
</data>
<flag name="review"
          id="354540"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>