<?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>218413</bug_id>
          
          <creation_ts>2020-10-30 22:46:48 -0700</creation_ts>
          <short_desc>Performance dashboard should avoid building same configuration under one analysis task.</short_desc>
          <delta_ts>2020-11-16 20:32:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>dewei_zhu</reporter>
          <assigned_to>dewei_zhu</assigned_to>
          <cc>dewei_zhu</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1703311</commentid>
    <comment_count>0</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2020-10-30 22:46:48 -0700</bug_when>
    <thetext>Performance dashboard should avoid building same configuration under one analysis task.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703312</commentid>
    <comment_count>1</comment_count>
      <attachid>412832</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2020-10-30 22:57:58 -0700</bug_when>
    <thetext>Created attachment 412832
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703313</commentid>
    <comment_count>2</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2020-10-30 22:59:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/70429799&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703856</commentid>
    <comment_count>3</comment_count>
      <attachid>412832</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-11-03 01:15:11 -0800</bug_when>
    <thetext>Comment on attachment 412832
Patch

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

&gt; Websites/perf.webkit.org/public/api/build-requests.php:50
&gt; +        $reuse_build_request_id = array_get($info, &apos;reuseBuildRequest&apos;);

reuseBuildRequest sounds like a boolean.
How about rootSourceBuildRequest or buildRequestToReuseRootFrom or something?
Or maybe buildRequestForRoots?

&gt; Websites/perf.webkit.org/public/api/build-requests.php:170
&gt; +    if ($reused_root_for_patch != count($root_by_commit_and_patch) || $reused_root_for_owned_commit != count($root_by_owned_commit)) {
&gt; +        return array(&apos;status&apos; =&gt; &apos;NotAllBuiltRootAreUsedFromSourceCommitSet&apos;, &apos;details&apos; =&gt; array(&apos;reusedRootByPatchCount&apos; =&gt; $reused_root_for_patch,

Why don&apos;t we check that commit sets are identical other than commitset_root_file,
or at least ones that require commitset_requires_build?

We can then simply check that all commit_set_items which need commitset_root_file are satisfied at the end.
It seems like we can dramatically simplify the logic here.

&gt; Websites/perf.webkit.org/public/v3/models/build-request.js:90
&gt; +    async sameBuildTypeBuildRequestUnderSameAnalysisTask() {

Nit: { should be on the new line.
This is a rather confusingly named function.
It basically finds a build request which have the same roots to build, right?
Why don&apos;t just say that: findBuildRequestForSameRoots?
Or maybe buildRequestWithSamePatches?
I think the fact it&apos;s in the same analysis task is kind of unimportant.
If we wanted to, we can make it support build request from another analysis task in the future and there is no issue there.

&gt; Websites/perf.webkit.org/public/v3/models/build-request.js:95
&gt; +        const allTestGroupsInTask = await TestGroup.fetchForTask(this.analysisTaskId(), true);

It&apos;s rather subtle that this has to ignore the cache. Perhaps we should add a comment here.
Do we also have a test for this cache ignoring behavior?

&gt; Websites/perf.webkit.org/public/v3/models/build-request.js:102
&gt; +                if (!buildRequest.platform().group() &amp;&amp; !this.platform().group()

Can we just add a helper to Platform to do these two comparisons of group &amp; platform: e.g.
buildRequest.platform().isInSameGroupAs(this.platform())

&gt; Websites/perf.webkit.org/public/v3/models/build-request.js:108
&gt; +                if (!buildRequest.commitSet().equals(this.commitSet(), true))

This &quot;true&quot; here is super confusing. Can&apos;t we just add a helper method like equalsIgnoringRoot instead?

&gt; Websites/perf.webkit.org/public/v3/models/build-request.js:113
&gt; +                if (buildRequest.isScheduled() &amp;&amp; !scheduledBuildRequest)
&gt; +                    scheduledBuildRequest = buildRequest;

It seems like this will override it with whichever build request that comes last?
That doesn&apos;t seem right. We should probably prefer whichever was scheduled earliest.

&gt; Websites/perf.webkit.org/public/v3/models/build-request.js:115
&gt; +                if (buildRequest.status() == &apos;running&apos; &amp;&amp; !runningBuildRequest)
&gt; +                    runningBuildRequest = buildRequest;

Ditto.

&gt; Websites/perf.webkit.org/public/v3/models/commit-set.js:105
&gt; -    equals(other)
&gt; +    equals(other, ignoreBuiltRoot)

Then you can add one liner here which just calls equals with this argument set to true.
Also, please define the default argument value instead of making undefined argument implicitly treated as false.

&gt; Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js:-84
&gt; -

What happened here?

&gt; Websites/perf.webkit.org/tools/js/buildbot-triggerable.js:96
&gt; +            const promise = nextRequest.sameBuildTypeBuildRequestUnderSameAnalysisTask().then((sameBuildTypeBuildRequest) =&gt; {

Can we extract this portion as another helper async function?

&gt; Websites/perf.webkit.org/tools/js/buildbot-triggerable.js:119
&gt; +        updates = await this._pullBuildbotOnAllSyncers(buildReqeustsByGroup);
&gt; +        updates = {
&gt; +            ...rootReuseUpdates,
&gt; +            ...updates
&gt; +        };

I think this is dangerous. There is a race here between us noticing there is a build request we can re-use and polling it again from builedbot.
Between those two times, the state of build request may have changed; e.g. user has canceled it.
We at minimum, we should check that condition in the server side API.
It&apos;s also possible that the root we previously found has already been purged here. That too has to be checked.
It also makes a bit uneasy that we&apos;re trying to reconcile things from buildbot &amp; our own logic at the same time.
That seems unsafe. Maybe we should sanity check here that we&apos;re not trying to update both at the same time, and error out if we&apos;re.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704658</commentid>
    <comment_count>4</comment_count>
      <attachid>412832</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2020-11-04 16:37:38 -0800</bug_when>
    <thetext>Comment on attachment 412832
Patch

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

&gt;&gt; Websites/perf.webkit.org/public/api/build-requests.php:170
&gt;&gt; +        return array(&apos;status&apos; =&gt; &apos;NotAllBuiltRootAreUsedFromSourceCommitSet&apos;, &apos;details&apos; =&gt; array(&apos;reusedRootByPatchCount&apos; =&gt; $reused_root_for_patch,
&gt; 
&gt; Why don&apos;t we check that commit sets are identical other than commitset_root_file,
&gt; or at least ones that require commitset_requires_build?
&gt; 
&gt; We can then simply check that all commit_set_items which need commitset_root_file are satisfied at the end.
&gt; It seems like we can dramatically simplify the logic here.

Sure, will do.

&gt;&gt; Websites/perf.webkit.org/public/v3/models/build-request.js:95
&gt;&gt; +        const allTestGroupsInTask = await TestGroup.fetchForTask(this.analysisTaskId(), true);
&gt; 
&gt; It&apos;s rather subtle that this has to ignore the cache. Perhaps we should add a comment here.
&gt; Do we also have a test for this cache ignoring behavior?

Will add one.

&gt;&gt; Websites/perf.webkit.org/tools/js/buildbot-triggerable.js:96
&gt;&gt; +            const promise = nextRequest.sameBuildTypeBuildRequestUnderSameAnalysisTask().then((sameBuildTypeBuildRequest) =&gt; {
&gt; 
&gt; Can we extract this portion as another helper async function?

Will do.

&gt;&gt; Websites/perf.webkit.org/tools/js/buildbot-triggerable.js:119
&gt;&gt; +        };
&gt; 
&gt; I think this is dangerous. There is a race here between us noticing there is a build request we can re-use and polling it again from builedbot.
&gt; Between those two times, the state of build request may have changed; e.g. user has canceled it.
&gt; We at minimum, we should check that condition in the server side API.
&gt; It&apos;s also possible that the root we previously found has already been purged here. That too has to be checked.
&gt; It also makes a bit uneasy that we&apos;re trying to reconcile things from buildbot &amp; our own logic at the same time.
&gt; That seems unsafe. Maybe we should sanity check here that we&apos;re not trying to update both at the same time, and error out if we&apos;re.

On the build-requests api, there is a check to ensure the rootSourceBuildRequest is &apos;completed&apos; and there is a corresponding unit test named `should fail request with &quot;CanOnlyReuseCompletedBuildRequest&quot; if build request to reuse is not completed`.
Will add a check on the api to ensure the roots to reuse are not deleted. And will add a test for it.

Regarding `update both at the same time`, after discussed with Ryosuke in person, we both agreed on we should use buildbot status as the ground truth. If there a build request has updates both on `updates` and `rootReuseUpdates`, `updates` will overwrite it.
Current patch is doing that, will add a comment on for line 116 - 119.
Furthermore, there is a unit test name `should not reuse the root when same build request is avaialble but the build request has been scheduled` which tests this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704659</commentid>
    <comment_count>5</comment_count>
      <attachid>413222</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2020-11-04 16:38:39 -0800</bug_when>
    <thetext>Created attachment 413222
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705138</commentid>
    <comment_count>6</comment_count>
      <attachid>413222</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-11-05 22:26:50 -0800</bug_when>
    <thetext>Comment on attachment 413222
Patch

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

&gt; Websites/perf.webkit.org/public/api/build-requests.php:103
&gt; +function reuse_roots_in_commit_set($source_id, $destination_id, $db) {

$db should be the first argument by convention.

&gt; Websites/perf.webkit.org/public/api/build-requests.php:111
&gt; +    foreach ($commit_set_items_destination as &amp;$commit_set_item_destination) {

Why not just $destination_item?

&gt; Websites/perf.webkit.org/public/api/build-requests.php:112
&gt; +        $matching_commit_set_item = NULL;

Ditto: $source_item. It&apos;s clear that it&apos;s matching one.
What&apos;s not clear where it&apos;s used is whether this is for the source or the designation.

&gt; Websites/perf.webkit.org/public/api/build-requests.php:130
&gt; +        $root_file_row = $db-&gt;select_first_row(&apos;uploaded_files&apos;, &apos;file&apos;, array(&apos;id&apos; =&gt; $matching_commit_set_item[&apos;commitset_root_file&apos;]));
&gt; +        if ($root_file_row[&apos;file_deleted_at&apos;])
&gt; +            return array(&apos;status&apos; =&gt; &apos;CannotReuseDeletedRoot&apos;, &apos;details&apos; =&gt; array(&apos;commitSet&apos; =&gt; $destination_id, &apos;rootFile&apos; =&gt; $root_file_id));

There is a race here. It&apos;s possible that between the time we check this condition
and the new add commit_set_items, prune_old_files would have ran.

&gt; Websites/perf.webkit.org/public/api/build-requests.php:133
&gt; +        $db-&gt;update_row(&apos;commit_set_items&apos;, &apos;commitset&apos;, array(&apos;set&apos; =&gt; $destination_id, &apos;commit&apos; =&gt; $commit_set_item_destination[&apos;commitset_commit&apos;]),
&gt; +            array(&apos;root_file&apos; =&gt; $root_file_id), &apos;set&apos;);

We probably need to check the above condition again after running this query.
Maybe add a comment clarifying that race condition too.

&gt; Websites/perf.webkit.org/public/v3/models/build-request.js:90
&gt; +    async findBuildRequestForSameRoots()

Maybe this should be called findBuildRequest*With*SameRoots.

&gt; Websites/perf.webkit.org/public/v3/models/commit-set.js:77
&gt; +    allBuiltRootsAvailable()

A function that answers a question like this should be of that form.
e.g. areAllRootsAvailable.

&gt; Websites/perf.webkit.org/public/v3/models/commit-set.js:120
&gt; +    _equalsWithCondition(other, ignoreBuiltRoot)

&quot;Condition&quot; is very vague term. Why not _equalsOptionallyIgnoringRoot?

&gt; Websites/perf.webkit.org/public/v3/models/platform.js:30
&gt; +        if (!this.group() &amp;&amp; !other.group() &amp;&amp; this.id() != other.id())
&gt; +            return false;

I think it&apos;s clear to say:
if (!this.group() &amp;&amp; !other.group())
    return this == other;
Because this is a DataModelObject, we shouldn&apos;t have multiple platforms of the same ID.

&gt; Websites/perf.webkit.org/server-tests/api-build-requests-tests.js:68
&gt; +    it(&apos;should reuse roots from existing commit set if build requests are the same&apos;, async () =&gt; {

You mean &quot;reuse roots from existing build requests if the commits sets are equal except the existence of roots&quot;.

&gt; Websites/perf.webkit.org/server-tests/api-build-requests-tests.js:293
&gt; +    it(&apos;should fail request with &quot;FailedToFindReuseBuildRequest&quot; is reuse request is invalid&apos;, async () =&gt; {

Nit: is -&gt; if.
Also, &quot;reuse request is valid&quot; sounds tautological. All test cases that fail are due to the precondition being invalid.
How about &quot;if the build request to reuse does not exist&quot;?

&gt; Websites/perf.webkit.org/server-tests/resources/mock-data.js:91
&gt; +    addReusableBuildRequestsMockData(db, statusList, needsNotification=true, addMockConfiguration=true)

Nit: By convention, this should be named addMockBuildRequestsWithRoots.
These functions shouldn&apos;t be named after what they&apos;re used for but after what they add.

&gt; Websites/perf.webkit.org/server-tests/resources/mock-data.js:217
&gt; +    addReusableTestGroupWithOwnedCommits(db)

Ditto.

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

Isn&apos;t the significance here that webkit-svn accepts patch?
We should name these functions after what&apos;s important.
Probably mockTestSyncConfigWithPatchAcceptingBuilder

&gt; Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js:950
&gt; +        it(&apos;should reuse root from completed build request for same build request&apos;, async () =&gt; {

reuse *the roots* from *a* completed build request with *the same commit sets*?

&gt; Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js:1036
&gt; +        it(&apos;should defer scheduling the build request if there is another same build request is &quot;running&quot;, but should schedule if &quot;running&quot; build request fails afterwards&apos;, async () =&gt; {

I don&apos;t follow this description.

&gt; Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js:1157
&gt; +            assert.deepEqual(MockRemoteAPI.requests[0].data, {&apos;id&apos;: 900, &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;wk-patch&apos;: &apos;http://localhost:8180/api/uploaded-file/100.txt&apos;,
&gt; +                        &apos;build-request-id&apos;: &apos;900&apos;, &apos;forcescheduler&apos;: &apos;force-some-builder-2&apos;}});

Nit: Wrong indentation. Always 4 spaces.

&gt; Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js:1160
&gt; +        it(&apos;should not reuse the root when same build request is avaialble but the build request has been scheduled&apos;, async () =&gt; {

&quot;same build request&quot; is super confusing term.
We should say &quot;a build request with the same commit sets&quot;.

&gt; Websites/perf.webkit.org/tools/js/buildbot-triggerable.js:97
&gt; +            const promise = this._reuseRootIfAvailbleElseTrySchedule(group, nextRequest, rootReuseUpdates);
&gt; +            promiseList.push(promise);

It seems like we can do this in a single line?

&gt; Websites/perf.webkit.org/tools/js/buildbot-triggerable.js:103
&gt; +        // Use buildbot status as ground truth, if a build request has updates on both
&gt; +        // &apos;rootReuseUpdates&apos; and &apos;updates&apos;, &apos;updates&apos; should overwrite &apos;rootReuseUpdates&apos;.

This is very wordy way of saying &quot;rootReuseUpdates will be overridden by status fetched from buildbot&quot;

&gt; Websites/perf.webkit.org/tools/js/buildbot-triggerable.js:114
&gt; +    async _reuseRootIfAvailbleElseTrySchedule(testGroup, buildRequest, updates)

This function is mostly about scheduling it on buildbot.
In the case if it&apos;s one requesting to build roots, then it can optionally re-use the old one.
But one could argue that it&apos;s also a part of &quot;scheduling&quot; it anyway.
So why not just _scheduleRequest?

&gt; Websites/perf.webkit.org/tools/js/buildbot-triggerable.js:116
&gt; +        const rootSourceBuildRequest = await buildRequest.findBuildRequestForSameRoots();

I think it&apos;s more descriptive to call this existingBuildRequestWithRoots or something.

&gt; Websites/perf.webkit.org/tools/js/buildbot-triggerable.js:118
&gt; +            return await this._scheduleRequestIfSlaveIsAvailable(buildRequest, testGroup.requests,

We need a patch to replace all these non-inclusive terminology...

&gt; Websites/perf.webkit.org/unit-tests/build-request-tests.js:410
&gt; +        const requests = MockRemoteAPI.inject(&apos;https://perf.webkit.org&apos;, NodePrivilegedAPI);
&gt; +        beforeEach(() =&gt; {
&gt; +            PrivilegedAPI.configure(&apos;test&apos;, &apos;password&apos;);
&gt; +        });

Why do we need to configure to mock privileged API at all here? We&apos;re not using any privileged API are we?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705484</commentid>
    <comment_count>7</comment_count>
      <attachid>413502</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2020-11-06 17:25:32 -0800</bug_when>
    <thetext>Created attachment 413502
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707123</commentid>
    <comment_count>8</comment_count>
      <attachid>413502</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-11-12 22:17:46 -0800</bug_when>
    <thetext>Comment on attachment 413502
Patch

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

&gt; Websites/perf.webkit.org/public/api/build-requests.php:50
&gt; +        $root_source_build_request_id = array_get($info, &apos;rootSourceBuildRequest&apos;);

Hm... I think this name is quite confusing still. How about buildRequestForRootReuse?

&gt; Websites/perf.webkit.org/public/api/build-requests.php:105
&gt; +    $commit_set_items_source = $db-&gt;select_rows(&apos;commit_set_items&apos;, &apos;commitset&apos;, array(&apos;set&apos; =&gt; $source_id, &apos;requires_build&apos; =&gt; TRUE));
&gt; +    $commit_set_items_destination = $db-&gt;select_rows(&apos;commit_set_items&apos;, &apos;commitset&apos;, array(&apos;set&apos; =&gt; $destination_id, &apos;requires_build&apos; =&gt; TRUE));

This isn&apos;t right. We need to also check that other commit set items are identical.

&gt; Websites/perf.webkit.org/public/api/build-requests.php:107
&gt; +        return array(&apos;status&apos; =&gt; &apos;CannotReuseRootFromCommitSetWithDifferentNumberOfItems&apos;, &apos;details&apos; =&gt; array(&apos;sourceCommitSet&apos; =&gt; $source_id,

This error name is wordy. How about just CannotReuseRootWithNonMatchingCommitSets?

&gt; Websites/perf.webkit.org/public/v3/models/build-request.js:91
&gt; +    async findBuildRequestWithSameRoots()
&gt; +    {

Hm... it occurs to me that it&apos;s a bit problematic to grab whatever root which has the same set of commit set item is a bit problematic.
Some of the test groups in this analysis task can be very old.
We really want two roots to be coming from the test group so that they&apos;re built together.
Also, do we have a guarantee that very old root will work with the latest OS?

&gt; Websites/perf.webkit.org/tools/js/buildbot-triggerable.js:93
&gt; +        for (const group of testGroupList) {
&gt; +            const nextRequest = this._nextRequestInGroup(group, updates);

Maybe it&apos;s better to write this as:
await Promise.all(testGroupList.map((group) =&gt; this._nextRequestInGroup(group, updates))
    .filter((request) =&gt; validRequests.has(request))
    .map((request) =&gt; this._scheduleRequest(group, nextRequest, rootReuseUpdates)));

&gt; Websites/perf.webkit.org/tools/js/buildbot-triggerable.js:115
&gt; +        const rootSourceBuildRequest = await buildRequest.findBuildRequestWithSameRoots();
&gt; +        if (!rootSourceBuildRequest) {

The standard convention in WebKit is that the normal code path move forward &amp; special case will be nested in if.
Here, the case of having a root is more of a special case so I&apos;d put that inside this if instead.

&gt; Websites/perf.webkit.org/unit-tests/build-request-tests.js:61
&gt; +function oneTestGroup() {

Nit: { on the next line.
Can we give it a more descriptive name?

&gt; Websites/perf.webkit.org/unit-tests/build-request-tests.js:165
&gt; +function threeTestGroups(secondTestGroupOverrides, thirdTestGroupOverrides) {

Ditto.

&gt; Websites/perf.webkit.org/unit-tests/build-request-tests.js:407
&gt; +        const requests = MockRemoteAPI.inject(&apos;https://perf.webkit.org&apos;, NodePrivilegedAPI);

I don&apos;t think we need to pass in NodePrivilegedAPI here. We&apos;re not using it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707876</commentid>
    <comment_count>9</comment_count>
      <attachid>413502</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2020-11-16 10:16:55 -0800</bug_when>
    <thetext>Comment on attachment 413502
Patch

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

&gt;&gt; Websites/perf.webkit.org/public/api/build-requests.php:105
&gt;&gt; +    $commit_set_items_destination = $db-&gt;select_rows(&apos;commit_set_items&apos;, &apos;commitset&apos;, array(&apos;set&apos; =&gt; $destination_id, &apos;requires_build&apos; =&gt; TRUE));
&gt; 
&gt; This isn&apos;t right. We need to also check that other commit set items are identical.

$commit_set_items_source = $db-&gt;query_and_fetch_all(&apos;SELECT * FROM commit_set_items WHERE commitset_set = $1 AND commitset_commit IS NOT NULL&apos;, array($source_id));
$commit_set_items_destination = $db-&gt;query_and_fetch_all(&apos;SELECT * FROM commit_set_items WHERE commitset_set = $1 AND commitset_commit IS NOT NULL&apos;, array($destination_id));
Will exclude all the custom roots (which will have commitset_commit to be null) and check if the remaining commit set items are equal, just like what we did on findBuildRequestWithSameRoots

&gt;&gt; Websites/perf.webkit.org/public/v3/models/build-request.js:91
&gt;&gt; +    {
&gt; 
&gt; Hm... it occurs to me that it&apos;s a bit problematic to grab whatever root which has the same set of commit set item is a bit problematic.
&gt; Some of the test groups in this analysis task can be very old.
&gt; We really want two roots to be coming from the test group so that they&apos;re built together.
&gt; Also, do we have a guarantee that very old root will work with the latest OS?

Discussed in person, the OS needs to be the same otherwise the CommitSet equal check will fail.
Current root reuse policy may miss some cases that we can reuse the root, but we think this might be a good compromise.

&gt;&gt; Websites/perf.webkit.org/tools/js/buildbot-triggerable.js:93
&gt;&gt; +            const nextRequest = this._nextRequestInGroup(group, updates);
&gt; 
&gt; Maybe it&apos;s better to write this as:
&gt; await Promise.all(testGroupList.map((group) =&gt; this._nextRequestInGroup(group, updates))
&gt;     .filter((request) =&gt; validRequests.has(request))
&gt;     .map((request) =&gt; this._scheduleRequest(group, nextRequest, rootReuseUpdates)));

This might not work as  the first argument of `_scheduleRequest` is referring to the first argument `group` in the lambda for first map.
We may return both (group, request) pair for the first lambda.
```
await Promise.all(testGroupList.map((group) =&gt; [group, this._nextRequestInGroup(group, updates)])
    .filter(([group, request]) =&gt; validRequests.has(request)).
    .map(([group, request]) =&gt; this._scheduleRequest(group, request, rootReuseUpdates)));
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708108</commentid>
    <comment_count>10</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2020-11-16 20:32:24 -0800</bug_when>
    <thetext>Landed in r269871.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412832</attachid>
            <date>2020-10-30 22:57:58 -0700</date>
            <delta_ts>2020-11-04 16:38:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218413-20201030225756.patch</filename>
            <type>text/plain</type>
            <size>89052</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MjIwCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA3OTI0ODY3NWRiNmRjYzU5ZmFmN2MyMTVmMmM0NGYwNzY1ODYwMWVjLi45MjkwZjA5NDhj
ZGE3OGEwMjFjN2IwZTkyNTJmY2ExZTM3YzllYTY2IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAyMC0xMC0zMCAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBQZXJmb3JtYW5jZSBkYXNoYm9hcmQgc2hvdWxkIGF2b2lk
IGJ1aWxkaW5nIHNhbWUgY29uZmlndXJhdGlvbiB1bmRlciBvbmUgYW5hbHlzaXMgdGFzay4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODQxMworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsb2dpYyBp
biBzeW5jaW5nIHNjcmlwdCB0byByZXVzZSBhbHJlYWR5IGJ1aWx0IHJvb3RzIGZyb20gc2FtZSBi
dWlsZCByZXF1ZXN0IHVuZGVyIGN1cnJlbnQgYW5hbHlzaXMgdGFzay4KKyAgICAgICAgSWYgdGhl
cmUgaXMgYW5vdGhlciBzYW1lIGJ1aWxkIHJlcXVlc3Qgc2NoZWR1bGVkL3J1bm5pbmcsIHdpbGwg
ZGVmZXIgc2NoZWR1bGluZyBjdXJyZW50IGJ1aWxkIHJlcXVlc3QuCisKKyAgICAgICAgKiBwdWJs
aWMvYWRtaW4vcGxhdGZvcm1zLnBocDogRml4ZWQgbmV3ZXIgdmVyc2lvbiBvZiBQSFAgd2FybnMg
b24gYWNjZXNzaW5nIGludmFsaWQga2V5IGluIGFuIGFycmF5LgorICAgICAgICAqIHB1YmxpYy9h
ZG1pbi90ZXN0cy5waHA6IEFkZGVkIGEgbnVsbCBjaGVjayBhZ2FpbnN0ICRzZWxlY3RlZF9wYXJl
bnQuCisgICAgICAgICogcHVibGljL2FwaS9idWlsZC1yZXF1ZXN0cy5waHA6IEV4dGVuZGVkIHRo
aXMgQVBJIHRvIGFsbG93IHJldXNpbmcgcm9vdHMgZnJvbSBleGlzdGluZyBidWlsZCByZXF1ZXN0
LgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvYnVpbGQtcmVxdWVzdC5qczoKKyAgICAgICAg
KEJ1aWxkUmVxdWVzdC5wcm90b3R5cGUuYXN5bmMgc2FtZUJ1aWxkVHlwZUJ1aWxkUmVxdWVzdFVu
ZGVyU2FtZUFuYWx5c2lzVGFzayk6IEZpbmQgc2FtZSBidWlsZCB0eXBlIGJ1aWxkCisgICAgICAg
IHJlcXVlc3Qgd2hpY2ggY2FuL3dpbGwgYmUgcmV1c2VkIHVuZGVyIGN1cnJlbnQgYW5hbHlzaXMg
dGFzay4KKyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1zZXQuanM6CisgICAgICAg
IChDb21taXRTZXQucHJvdG90eXBlLmVxdWFscyk6IEV4dGVuZCBlcXVhbHMgdG8gYmUgYWJsZSB0
byBpZ25vcmUgYnVpbHQgcm9vdC4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLWJ1aWxkLXJl
cXVlc3RzLXRlc3RzLmpzOiBBZGRlZCB1bml0IHRlc3RzLgorICAgICAgICAqIHNlcnZlci10ZXN0
cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzOiBBZGRlZCBuZXcgbW9jayBkYXRhIGZvciBuZXcgdW5p
dCB0ZXN0cy4KKyAgICAgICAgKE1vY2tEYXRhLmFkZE1vY2tDb25maWd1cmF0aW9uKToKKyAgICAg
ICAgKE1vY2tEYXRhLmFkZE1vY2tEYXRhKToKKyAgICAgICAgKE1vY2tEYXRhLnNldCBhZGRSZXVz
YWJsZUJ1aWxkUmVxdWVzdHNNb2NrRGF0YSk6CisgICAgICAgIChNb2NrRGF0YS5zZXQgYWRkUmV1
c2FibGVUZXN0R3JvdXBXaXRoT3duZWRDb21taXRzKToKKyAgICAgICAgKE1vY2tEYXRhLm1vY2tU
ZXN0U3luY0NvbmZpZ1dpdGhUd29CdWlsZGVyc09uZVRlc3Rlcik6CisgICAgICAgICogc2VydmVy
LXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzOiBBZGRlZCB1bml0IHRl
c3RzLgorICAgICAgICAqIHRvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzOgorICAgICAg
ICAoQnVpbGRib3RUcmlnZ2VyYWJsZS5wcm90b3R5cGUuYXN5bmMgc3luY09uY2UpOiBBZGRlZCBs
b2dpYyB0byByZXVzZSB0aGUgcm9vdHMgaWYgdGhlcmUgYXJlIGJ1aWx0IHJvb3RzCisgICAgICAg
IGF2YWlsYWJsZSBmb3Igc2FtZSBidWlsZCB0eXBlIGJ1aWxkIHJlcXVlc3QuIElmIHRoZXJlIGlz
IGFub3RoZXIgYnVpbGQgc2NoZWR1bGVkIGZvciBzYW1lIGJ1aWxkIHJlcXVlc3QsCisgICAgICAg
IHdpbGwgZGVmZXIgc2NoZWR1bGluZyB0aGUgYnVpbGQgcmVxdWVzdC4KKyAgICAgICAgKiB1bml0
LXRlc3RzL2J1aWxkLXJlcXVlc3QtdGVzdHMuanM6IEFkZCB1bml0IHRlc3RzLgorCiAyMDIwLTEw
LTI3ICBEZXdlaSBaaHUgIDxkZXdlaV96aHVAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZmFjdG9y
ICdwbGF0Zm9ybXMnIHRhYmxlIHRvIGNvbnRhaW4gZ3JvdXAgaW5mb3JtYXRpb24uCmRpZmYgLS1n
aXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FkbWluL3BsYXRmb3Jtcy5waHAg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FkbWluL3BsYXRmb3Jtcy5waHAKaW5k
ZXggNmYzMDY3ZGFmODEwMmUxNmVkNWIyODJiNjY0ZjBmYjMxNjEwZGIyOS4uOWQ5NTQ5NjdiMGQ4
ZGE1ZmJkMjVhMTdiNjJlMGNiMDYyYWE4ZTQzOSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy9hZG1pbi9wbGF0Zm9ybXMucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvYWRtaW4vcGxhdGZvcm1zLnBocApAQCAtMTAyLDcgKzEwMiw3IEBA
IEVORDsKICAgICB7CiAgICAgICAgIGdsb2JhbCAkcGxhdGZvcm1fZ3JvdXBfb3B0aW9uczsKICAg
ICAgICAgJGlkID0gaW50dmFsKCRwbGF0Zm9ybV9yb3dbJ3BsYXRmb3JtX2lkJ10pOwotICAgICAg
ICAkcGxhdGZvcm1fZ3JvdXBfaWQgPSAkcGxhdGZvcm1fcm93WydwbGF0Zm9ybV9ncm91cCddOwor
ICAgICAgICAkcGxhdGZvcm1fZ3JvdXBfaWQgPSBhcnJheV9nZXQoJHBsYXRmb3JtX3JvdywgJ3Bs
YXRmb3JtX2dyb3VwJyk7CiAgICAgICAgICRjb250ZW50ID0gPDw8IEVORAogPGZvcm0gbWV0aG9k
PSJQT1NUIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpZCIgdmFsdWU9IiRpZCI+CiA8c2Vs
ZWN0IG5hbWU9Imdyb3VwIj4KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvYWRtaW4vdGVzdHMucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9h
ZG1pbi90ZXN0cy5waHAKaW5kZXggMWYyYjQ5NGFkMThhYzFjMGY1YzlhNjY1MDExMjE1MGIzMWQ3
ZmExNC4uZDBlZGJlZWQ4MDVmMTAyOWM3OTg4Zjc2NzBmMTViM2YwZDhlYjhkNSAxMDA2NDQKLS0t
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9hZG1pbi90ZXN0cy5waHAKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9hZG1pbi90ZXN0cy5waHAKQEAgLTY0LDcg
KzY0LDcgQEAgaWYgKCRkYikgewogPD9waHAKIAogICAgICAgICBmb3JlYWNoICgkdGVzdF9uYW1l
X3Jlc29sdmVyLT50ZXN0cygpIGFzICR0ZXN0KSB7Ci0gICAgICAgICAgICBpZiAoJHRlc3RbJ3Rl
c3RfcGFyZW50J10gIT0gJHNlbGVjdGVkX3BhcmVudFsndGVzdF9pZCddKQorICAgICAgICAgICAg
aWYgKCRzZWxlY3RlZF9wYXJlbnQgJiYgJHRlc3RbJ3Rlc3RfcGFyZW50J10gIT0gJHNlbGVjdGVk
X3BhcmVudFsndGVzdF9pZCddKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAg
ICAgICAkdGVzdF9pZCA9ICR0ZXN0Wyd0ZXN0X2lkJ107CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL2FwaS9idWlsZC1yZXF1ZXN0cy5waHAgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL2FwaS9idWlsZC1yZXF1ZXN0cy5waHAKaW5kZXggZjRjMzY2
MjlkOWQyMjZhZDg0ZTdiOWU1MTMxZGEzMjhlODg4YmMyNi4uODQwZDNiMmRhMWYwODQ3OTU1NTM3
MDVjY2M0NWM2YzE4NjRlZmY2ZCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy9hcGkvYnVpbGQtcmVxdWVzdHMucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvYXBpL2J1aWxkLXJlcXVlc3RzLnBocApAQCAtNDcsNiArNDcsNyBAQCBmdW5j
dGlvbiB1cGRhdGVfYnVpbGRzKCRkYiwgJHVwZGF0ZXMpIHsKICAgICAgICAgJHN0YXR1cyA9ICRp
bmZvWydzdGF0dXMnXTsKICAgICAgICAgJHVybCA9IGFycmF5X2dldCgkaW5mbywgJ3VybCcpOwog
ICAgICAgICAkc3RhdHVzX2Rlc2NyaXB0aW9uID0gYXJyYXlfZ2V0KCRpbmZvLCAnc3RhdHVzRGVz
Y3JpcHRpb24nKTsKKyAgICAgICAgJHJldXNlX2J1aWxkX3JlcXVlc3RfaWQgPSBhcnJheV9nZXQo
JGluZm8sICdyZXVzZUJ1aWxkUmVxdWVzdCcpOwogICAgICAgICAkcmVxdWVzdF9yb3cgPSAkZGIt
PnNlbGVjdF9maXJzdF9yb3coJ2J1aWxkX3JlcXVlc3RzJywgJ3JlcXVlc3QnLCBhcnJheSgnaWQn
ID0+ICRpZCkpOwogICAgICAgICBpZiAoJHN0YXR1cyA9PSAnZmFpbGVkSWZOb3RDb21wbGV0ZWQn
KSB7CiAgICAgICAgICAgICBpZiAoISRyZXF1ZXN0X3JvdykgewpAQCAtNjgsNiArNjksMjMgQEAg
ZnVuY3Rpb24gdXBkYXRlX2J1aWxkcygkZGIsICR1cGRhdGVzKSB7CiAgICAgICAgICAgICAgICAg
ZXhpdF93aXRoX2Vycm9yKCdVbmtub3duQnVpbGRSZXF1ZXN0U3RhdHVzJywgYXJyYXkoJ2J1aWxk
UmVxdWVzdCcgPT4gJGlkLCAnc3RhdHVzJyA9PiAkc3RhdHVzKSk7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAkZGItPnVwZGF0ZV9yb3coJ2J1aWxkX3JlcXVlc3RzJywgJ3JlcXVlc3QnLCBh
cnJheSgnaWQnID0+ICRpZCksIGFycmF5KCdzdGF0dXMnID0+ICRzdGF0dXMsICd1cmwnID0+ICR1
cmwsICdzdGF0dXNfZGVzY3JpcHRpb24nID0+ICRzdGF0dXNfZGVzY3JpcHRpb24pKTsKKyAgICAg
ICAgICAgIGlmICgkcmV1c2VfYnVpbGRfcmVxdWVzdF9pZCkgeworICAgICAgICAgICAgICAgIGlm
ICgkc3RhdHVzICE9ICdjb21wbGV0ZWQnKSB7CisgICAgICAgICAgICAgICAgICAgICRkYi0+cm9s
bGJhY2tfdHJhbnNhY3Rpb24oKTsKKyAgICAgICAgICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9y
KCdDYW5Pbmx5UmV1c2VDb21wbGV0ZWRCdWlsZFJlcXVlc3QnLCBhcnJheSgnYnVpbGRSZXF1ZXN0
JyA9PiAkaWQsICdzdGF0dXMnID0+ICRzdGF0dXMpKTsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgJHJldXNlX2J1aWxkX3JlcXVlc3RfaWQgPSBpbnR2YWwoJHJldXNlX2J1aWxk
X3JlcXVlc3RfaWQpOworICAgICAgICAgICAgICAgICRyZXVzYWJsZV9yZXF1ZXN0X3JvdyA9ICRk
Yi0+c2VsZWN0X2ZpcnN0X3JvdygnYnVpbGRfcmVxdWVzdHMnLCAncmVxdWVzdCcsIGFycmF5KCdp
ZCcgPT4gJHJldXNlX2J1aWxkX3JlcXVlc3RfaWQpKTsKKyAgICAgICAgICAgICAgICBpZiAoISRy
ZXVzYWJsZV9yZXF1ZXN0X3JvdykgeworICAgICAgICAgICAgICAgICAgICAkZGItPnJvbGxiYWNr
X3RyYW5zYWN0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignRmFp
bGVkVG9GaW5kUmV1c2VCdWlsZFJlcXVlc3QnLCBhcnJheSgnYnVpbGRSZXF1ZXN0JyA9PiAkcmV1
c2VfYnVpbGRfcmVxdWVzdF9pZCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAkZXJyb3IgPSByZXVzZV9yb290c19pbl9jb21taXRfc2V0KCRyZXVzYWJsZV9yZXF1ZXN0X3Jv
d1sncmVxdWVzdF9jb21taXRfc2V0J10sICRyZXF1ZXN0X3Jvd1sncmVxdWVzdF9jb21taXRfc2V0
J10sICRkYik7CisgICAgICAgICAgICAgICAgaWYgKCRlcnJvcikgeworICAgICAgICAgICAgICAg
ICAgICAkZGItPnJvbGxiYWNrX3RyYW5zYWN0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIGV4
aXRfd2l0aF9lcnJvcigkZXJyb3JbJ3N0YXR1cyddLCAkZXJyb3JbJ2RldGFpbHMnXSk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKCRzdGF0dXMgIT0g
J2ZhaWxlZCcpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KQEAgLTgyLDgg
KzEwMCw4MiBAQCBmdW5jdGlvbiB1cGRhdGVfYnVpbGRzKCRkYiwgJHVwZGF0ZXMpIHsKICAgICAk
ZGItPmNvbW1pdF90cmFuc2FjdGlvbigpOwogfQogCitmdW5jdGlvbiByZXVzZV9yb290c19pbl9j
b21taXRfc2V0KCRzb3VyY2VfaWQsICRkZXN0aW5hdGlvbl9pZCwgJGRiKSB7CisgICAgJGNvbW1p
dF9zZXRfaXRlbXNfc291cmNlID0gJGRiLT5zZWxlY3Rfcm93cygnY29tbWl0X3NldF9pdGVtcycs
ICdjb21taXRzZXQnLCBhcnJheSgnc2V0JyA9PiAkc291cmNlX2lkLCAncmVxdWlyZXNfYnVpbGQn
ID0+IFRSVUUpKTsKKyAgICAkY29tbWl0X3NldF9pdGVtc19kZXN0aW5hdGlvbiA9ICRkYi0+c2Vs
ZWN0X3Jvd3MoJ2NvbW1pdF9zZXRfaXRlbXMnLCAnY29tbWl0c2V0JywgYXJyYXkoJ3NldCcgPT4g
JGRlc3RpbmF0aW9uX2lkLCAncmVxdWlyZXNfYnVpbGQnID0+IFRSVUUpKTsKKyAgICBpZiAoY291
bnQoJGNvbW1pdF9zZXRfaXRlbXNfc291cmNlKSAhPSBjb3VudCgkY29tbWl0X3NldF9pdGVtc19k
ZXN0aW5hdGlvbikpIHsKKyAgICAgICAgcmV0dXJuIGFycmF5KCdzdGF0dXMnID0+ICdDYW5ub3RS
ZXVzZVJvb3RGcm9tQ29tbWl0U2V0V2l0aERpZmZlcmVudE51bWJlck9mSXRlbXMnLCAnZGV0YWls
cycgPT4gYXJyYXkoJ3NvdXJjZUNvbW1pdFNldCcgPT4gJHNvdXJjZV9pZCwKKyAgICAgICAgICAg
ICdkZXN0aW5hdGlvbkNvbW1pdFNldCcgPT4gJGRlc3RpbmF0aW9uX2lkKSk7CisgICAgfQorICAg
ICRyb290X2J5X2NvbW1pdF9hbmRfcGF0Y2ggPSBhcnJheSgpOworICAgICRyb290X2J5X293bmVk
X2NvbW1pdCA9IGFycmF5KCk7CisgICAgZm9yZWFjaCAoJGNvbW1pdF9zZXRfaXRlbXNfc291cmNl
IGFzICYkY29tbWl0X3NldF9pdGVtKSB7CisgICAgICAgICRwYXRjaF9pZCA9ICRjb21taXRfc2V0
X2l0ZW1bJ2NvbW1pdHNldF9wYXRjaF9maWxlJ107CisgICAgICAgIGlmICgkcGF0Y2hfaWQpIHsK
KyAgICAgICAgICAgIGlmICghJGNvbW1pdF9zZXRfaXRlbVsnY29tbWl0c2V0X3Jvb3RfZmlsZSdd
KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGFycmF5KCdzdGF0dXMnID0+ICdNaXNzaW5nUm9v
dEZpbGVGb3JQYXRjaCcsICdkZXRhaWxzJyA9PiBhcnJheSgncGF0Y2gnID0+ICRwYXRjaF9pZCwK
KyAgICAgICAgICAgICAgICAgICAgJ2NvbW1pdFNldCcgPT4gJHNvdXJjZV9pZCkpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgJGtleSA9ICRjb21taXRfc2V0X2l0ZW1bJ2NvbW1pdHNldF9j
b21taXQnXSAuICctJyAuICRwYXRjaF9pZDsKKyAgICAgICAgICAgICRyb290X2J5X2NvbW1pdF9h
bmRfcGF0Y2hbJGtleV0gPSAkY29tbWl0X3NldF9pdGVtWydjb21taXRzZXRfcm9vdF9maWxlJ107
CisgICAgICAgIH0KKyAgICAgICAgaWYgKCRjb21taXRfc2V0X2l0ZW1bJ2NvbW1pdHNldF9jb21t
aXRfb3duZXInXSkgeworICAgICAgICAgICAgaWYgKCEkY29tbWl0X3NldF9pdGVtWydjb21taXRz
ZXRfcm9vdF9maWxlJ10pCisgICAgICAgICAgICAgICAgcmV0dXJuIGFycmF5KCdzdGF0dXMnID0+
ICdNaXNzaW5nUm9vdEZpbGVGb3JPd25lZENvbW1pdCcsICdkZXRhaWxzJyA9PiBhcnJheSgncGF0
Y2gnID0+ICRwYXRjaF9pZCwKKyAgICAgICAgICAgICAgICAgICAgJ2NvbW1pdFNldCcgPT4gJHNv
dXJjZV9pZCkpOworICAgICAgICAgICAgJHJvb3RfYnlfb3duZWRfY29tbWl0WyRjb21taXRfc2V0
X2l0ZW1bJ2NvbW1pdHNldF9jb21taXQnXV0gPSAkY29tbWl0X3NldF9pdGVtWydjb21taXRzZXRf
cm9vdF9maWxlJ107CisgICAgICAgIH0KKyAgICB9CisKKyAgICAkcmV1c2VkX3Jvb3RfZm9yX3Bh
dGNoID0gMDsKKyAgICAkcmV1c2VkX3Jvb3RfZm9yX293bmVkX2NvbW1pdCA9IDA7CisgICAgZm9y
ZWFjaCgkY29tbWl0X3NldF9pdGVtc19kZXN0aW5hdGlvbiBhcyAmJGNvbW1pdF9zZXRfaXRlbSkg
eworICAgICAgICAkcGF0Y2hfaWQgPSAkY29tbWl0X3NldF9pdGVtWydjb21taXRzZXRfcGF0Y2hf
ZmlsZSddOworICAgICAgICBpZiAoJHBhdGNoX2lkKSB7CisgICAgICAgICAgICAkY29tbWl0X2lk
ID0gJGNvbW1pdF9zZXRfaXRlbVsnY29tbWl0c2V0X2NvbW1pdCddOworICAgICAgICAgICAgJGtl
eSA9ICRjb21taXRfaWQgLiAnLScgLiAkcGF0Y2hfaWQ7CisgICAgICAgICAgICBpZiAoIWFycmF5
X2tleV9leGlzdHMoJGtleSwgJHJvb3RfYnlfY29tbWl0X2FuZF9wYXRjaCkpIHsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gYXJyYXkoJ3N0YXR1cycgPT4gJ05vUm9vdEZvclBhdGNoRnJvbVNvdXJj
ZUNvbW1pdCcsICdkZXRhaWxzJyA9PiBhcnJheSgncGF0Y2gnID0+ICRwYXRjaF9pZCwKKyAgICAg
ICAgICAgICAgICAgICAgJ3NvdXJjZUNvbW1pdFNldCcgPT4gJHNvdXJjZV9pZCwgJ2Rlc3RpbmF0
aW9uQ29tbWl0U2V0JyA9PiAkZGVzdGluYXRpb25faWQpKTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgaWYgKCRjb21taXRfc2V0X2l0ZW1bJ2NvbW1pdHNldF9yb290X2ZpbGUnXSkgewor
ICAgICAgICAgICAgICAgIHJldHVybiBhcnJheSgnc3RhdHVzJyA9PiAnRGVzdGluYXRpb25Db21t
aXRTZXRIYXNSb290Rm9yUGF0Y2gnLCAnZGV0YWlscycgPT4gYXJyYXkoJ3BhdGNoJyA9PiAkcGF0
Y2hfaWQsCisgICAgICAgICAgICAgICAgICAgICdzb3VyY2VDb21taXRTZXQnID0+ICRzb3VyY2Vf
aWQsICdkZXN0aW5hdGlvbkNvbW1pdFNldCcgPT4gJGRlc3RpbmF0aW9uX2lkKSk7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICRyb290X2lkID0gJHJvb3RfYnlfY29tbWl0X2FuZF9wYXRj
aFska2V5XTsKKyAgICAgICAgICAgICRkYi0+dXBkYXRlX3JvdygnY29tbWl0X3NldF9pdGVtcycs
ICdjb21taXRzZXQnLCBhcnJheSgnc2V0JyA9PiAkZGVzdGluYXRpb25faWQsICdjb21taXQnID0+
ICRjb21taXRfaWQpLCBhcnJheSgncm9vdF9maWxlJyA9PiAkcm9vdF9pZCksICdzZXQnKTsKKyAg
ICAgICAgICAgICRyZXVzZWRfcm9vdF9mb3JfcGF0Y2ggKz0gMTsKKyAgICAgICAgfQorICAgICAg
ICBpZiAoJGNvbW1pdF9zZXRfaXRlbVsnY29tbWl0c2V0X2NvbW1pdF9vd25lciddKSB7CisgICAg
ICAgICAgICAkY29tbWl0X2lkID0gJGNvbW1pdF9zZXRfaXRlbVsnY29tbWl0c2V0X2NvbW1pdCdd
OworICAgICAgICAgICAgaWYgKCFhcnJheV9rZXlfZXhpc3RzKCRjb21taXRfaWQsICRyb290X2J5
X293bmVkX2NvbW1pdCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYXJyYXkoJ3N0YXR1cycg
PT4gJ05vUm9vdEZvck93bmVkQ29tbWl0RnJvbVNvdXJjZUNvbW1pdCcsICdkZXRhaWxzJyA9PiBh
cnJheSgnY29tbWl0JyA9PiAkY29tbWl0X2lkLAorICAgICAgICAgICAgICAgICAgICAnc291cmNl
Q29tbWl0U2V0JyA9PiAkc291cmNlX2lkLCAnZGVzdGluYXRpb25Db21taXRTZXQnID0+ICRkZXN0
aW5hdGlvbl9pZCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoJGNvbW1pdF9z
ZXRfaXRlbVsnY29tbWl0c2V0X3Jvb3RfZmlsZSddKSB7CisgICAgICAgICAgICAgICAgcmV0dXJu
IGFycmF5KCdzdGF0dXMnID0+ICdEZXN0aW5hdGlvbkNvbW1pdFNldEhhc1Jvb3RGb3JPd25lZENv
bW1pdCcsICdkZXRhaWxzJyA9PiBhcnJheSgnY29tbWl0JyA9PiAkY29tbWl0X2lkLAorICAgICAg
ICAgICAgICAgICAgICAnc291cmNlQ29tbWl0U2V0JyA9PiAkc291cmNlX2lkLCAnZGVzdGluYXRp
b25Db21taXRTZXQnID0+ICRkZXN0aW5hdGlvbl9pZCkpOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAkcm9vdF9pZCA9ICRyb290X2J5X293bmVkX2NvbW1pdFskY29tbWl0X2lkXTsKKyAg
ICAgICAgICAgICRkYi0+dXBkYXRlX3JvdygnY29tbWl0X3NldF9pdGVtcycsICdjb21taXRzZXQn
LCBhcnJheSgnc2V0JyA9PiAkZGVzdGluYXRpb25faWQsICdjb21taXQnID0+ICRjb21taXRfaWQp
LCBhcnJheSgncm9vdF9maWxlJyA9PiAkcm9vdF9pZCksICdzZXQnKTsKKyAgICAgICAgICAgICRy
ZXVzZWRfcm9vdF9mb3Jfb3duZWRfY29tbWl0ICs9IDE7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBpZiAoJHJldXNlZF9yb290X2Zvcl9wYXRjaCAhPSBjb3VudCgkcm9vdF9ieV9jb21taXRfYW5k
X3BhdGNoKSB8fCAkcmV1c2VkX3Jvb3RfZm9yX293bmVkX2NvbW1pdCAhPSBjb3VudCgkcm9vdF9i
eV9vd25lZF9jb21taXQpKSB7CisgICAgICAgIHJldHVybiBhcnJheSgnc3RhdHVzJyA9PiAnTm90
QWxsQnVpbHRSb290QXJlVXNlZEZyb21Tb3VyY2VDb21taXRTZXQnLCAnZGV0YWlscycgPT4gYXJy
YXkoJ3JldXNlZFJvb3RCeVBhdGNoQ291bnQnID0+ICRyZXVzZWRfcm9vdF9mb3JfcGF0Y2gsCisg
ICAgICAgICAgICAncmV1c2VkUm9vdEJ5T3duZWRDb21taXRDb3VudCcgPT4gJHJldXNlZF9yb290
X2Zvcl9vd25lZF9jb21taXQsICdleHBlY3RlZFJldXNlZFJvb3RCeVBhdGNoQ291bnQnID0+IGNv
dW50KCRyb290X2J5X2NvbW1pdF9hbmRfcGF0Y2gpLAorICAgICAgICAgICAgJ2V4cGVjdGVkUmV1
c2VkUm9vdEJ5T3duZWRDb21taXRDb3VudCcgPT4gY291bnQoJHJvb3RfYnlfb3duZWRfY29tbWl0
KSkpOworICAgIH0KKyAgICByZXR1cm4gTlVMTDsKK30KKwogbWFpbihhcnJheV9nZXQoJF9HRVQs
ICdpZCcpLAogICAgIGFycmF5X2tleV9leGlzdHMoJ1BBVEhfSU5GTycsICRfU0VSVkVSKSA/IGV4
cGxvZGUoJy8nLCB0cmltKCRfU0VSVkVSWydQQVRIX0lORk8nXSwgJy8nKSkgOiBhcnJheSgpLAog
ICAgIGZpbGVfZ2V0X2NvbnRlbnRzKCJwaHA6Ly9pbnB1dCIpKTsKIAotPz4KKz8+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy92My9tb2RlbHMvYnVpbGQtcmVxdWVzdC5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2J1aWxkLXJlcXVlc3QuanMKaW5kZXggMmRiMGQ1YmI0Mzc4
Y2UzNWUzYzQ5YWRmM2FlNTAzODAxMzFkMzJmZC4uZDk5ODJkODM1ODA4MzE0YTU4MTMyY2FkZjJk
ODc2NzFkOWZjNWQ2ZCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9tb2RlbHMvYnVpbGQtcmVxdWVzdC5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YzL21vZGVscy9idWlsZC1yZXF1ZXN0LmpzCkBAIC04Nyw2ICs4NywzNiBAQCBj
bGFzcyBCdWlsZFJlcXVlc3QgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogCiAgICAgYnVpbGRJ
ZCgpIHsgcmV0dXJuIHRoaXMuX2J1aWxkSWQ7IH0KICAgICBjcmVhdGVkQXQoKSB7IHJldHVybiB0
aGlzLl9jcmVhdGVkQXQ7IH0KKyAgICBhc3luYyBzYW1lQnVpbGRUeXBlQnVpbGRSZXF1ZXN0VW5k
ZXJTYW1lQW5hbHlzaXNUYXNrKCkgeworICAgICAgICBpZiAoIXRoaXMuaXNCdWlsZCgpKQorICAg
ICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIGxldCBzY2hlZHVsZWRCdWlsZFJlcXVlc3Qg
PSBudWxsOworICAgICAgICBsZXQgcnVubmluZ0J1aWxkUmVxdWVzdCA9IG51bGw7CisgICAgICAg
IGNvbnN0IGFsbFRlc3RHcm91cHNJblRhc2sgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNr
KHRoaXMuYW5hbHlzaXNUYXNrSWQoKSwgdHJ1ZSk7CisgICAgICAgIGZvciAoY29uc3QgZ3JvdXAg
b2YgYWxsVGVzdEdyb3Vwc0luVGFzaykgeworICAgICAgICAgICAgaWYgKGdyb3VwLmlkKCkgPT0g
dGhpcy50ZXN0R3JvdXBJZCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgZm9yIChjb25zdCBidWlsZFJlcXVlc3Qgb2YgZ3JvdXAuYnVpbGRSZXF1ZXN0cygpKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKCFidWlsZFJlcXVlc3QuaXNCdWlsZCgpKQorICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAoIWJ1aWxkUmVxdWVzdC5wbGF0
Zm9ybSgpLmdyb3VwKCkgJiYgIXRoaXMucGxhdGZvcm0oKS5ncm91cCgpCisgICAgICAgICAgICAg
ICAgICAgICYmIGJ1aWxkUmVxdWVzdC5wbGF0Zm9ybSgpICE9IHRoaXMucGxhdGZvcm0oKSkKKyAg
ICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKGJ1aWxkUmVx
dWVzdC5wbGF0Zm9ybSgpLmdyb3VwKCkgJiYgdGhpcy5wbGF0Zm9ybSgpLmdyb3VwKCkKKyAgICAg
ICAgICAgICAgICAgICAgJiYgYnVpbGRSZXF1ZXN0LnBsYXRmb3JtKCkuZ3JvdXAoKSAhPSB0aGlz
LnBsYXRmb3JtKCkuZ3JvdXAoKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgICAgICAgICAgaWYgKCFidWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuZXF1YWxzKHRoaXMuY29t
bWl0U2V0KCksIHRydWUpKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
ICAgICAgICBpZiAoYnVpbGRSZXF1ZXN0Lmhhc0NvbXBsZXRlZCgpKQorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gYnVpbGRSZXF1ZXN0OworICAgICAgICAgICAgICAgIGlmIChidWlsZFJlcXVl
c3QuaXNTY2hlZHVsZWQoKSAmJiAhc2NoZWR1bGVkQnVpbGRSZXF1ZXN0KQorICAgICAgICAgICAg
ICAgICAgICBzY2hlZHVsZWRCdWlsZFJlcXVlc3QgPSBidWlsZFJlcXVlc3Q7CisgICAgICAgICAg
ICAgICAgaWYgKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSA9PSAncnVubmluZycgJiYgIXJ1bm5pbmdC
dWlsZFJlcXVlc3QpCisgICAgICAgICAgICAgICAgICAgIHJ1bm5pbmdCdWlsZFJlcXVlc3QgPSBi
dWlsZFJlcXVlc3Q7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJ1
bm5pbmdCdWlsZFJlcXVlc3QgfHwgc2NoZWR1bGVkQnVpbGRSZXF1ZXN0OworICAgIH0KIAogICAg
IHN0YXRpYyBmb3JtYXRUaW1lSW50ZXJ2YWwoaW50ZXJ2YWxJbk1pbGxpb25TZWNvbmRzKSB7CiAg
ICAgICAgIGxldCBpbnRlcnZhbEluU2Vjb25kcyA9IGludGVydmFsSW5NaWxsaW9uU2Vjb25kcyAv
IDEwMDA7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21v
ZGVscy9jb21taXQtc2V0LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9t
b2RlbHMvY29tbWl0LXNldC5qcwppbmRleCAzYjM3YjQzNGJmYmIyMDc0MDc4YjUzYzJmOWZjNWM0
YmRlM2E3ZGY5Li5mYzUxYjM2ZGM3ZmVhOWI1ZDhkZTRjYWYxMWI2NzVmOWJmYWRiNmZjIDEwMDY0
NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQt
c2V0LmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2Nv
bW1pdC1zZXQuanMKQEAgLTEwMiw3ICsxMDIsNyBAQCBjbGFzcyBDb21taXRTZXQgZXh0ZW5kcyBE
YXRhTW9kZWxPYmplY3QgewogICAgICAgICByZXR1cm4gdGhpcy5fbGF0ZXN0Q29tbWl0VGltZTsK
ICAgICB9CiAKLSAgICBlcXVhbHMob3RoZXIpCisgICAgZXF1YWxzKG90aGVyLCBpZ25vcmVCdWls
dFJvb3QpCiAgICAgewogICAgICAgICBpZiAodGhpcy5fcmVwb3NpdG9yaWVzLmxlbmd0aCAhPSBv
dGhlci5fcmVwb3NpdG9yaWVzLmxlbmd0aCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTExMSw3ICsxMTEsNyBAQCBjbGFzcyBDb21taXRTZXQgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3Qg
ewogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGlmICh0aGlzLnBh
dGNoRm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5KSAhPSBvdGhlci5wYXRjaEZvclJlcG9zaXRvcnko
cmVwb3NpdG9yeSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAg
aWYgKHRoaXMucm9vdEZvclJlcG9zaXRvcnkocmVwb3NpdG9yeSkgIT0gb3RoZXIucm9vdEZvclJl
cG9zaXRvcnkocmVwb3NpdG9yeSkpCisgICAgICAgICAgICBpZiAodGhpcy5yb290Rm9yUmVwb3Np
dG9yeShyZXBvc2l0b3J5KSAhPSBvdGhlci5yb290Rm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5KSAm
JiAhaWdub3JlQnVpbHRSb290KQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgICAgIGlmICh0aGlzLm93bmVyQ29tbWl0Rm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5KSAhPSBv
dGhlci5vd25lckNvbW1pdEZvclJlcG9zaXRvcnkocmVwb3NpdG9yeSkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9hcGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcwppbmRleCAw
N2RmNThkNDhlMTkxNmI1YzRhY2I5NzE0ZTJlOTc5MWM4MzJlNzNlLi4yNGU1ZjAxMDI1OTIzZGY2
OTIzMTg5M2Q3NzcwNWMyMzcyYTkxMDY2IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcworKysgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0
cy5qcwpAQCAtNSw2ICs1LDcgQEAgbGV0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpOwogbGV0
IE1vY2tEYXRhID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvbW9jay1kYXRhLmpzJyk7CiBsZXQgVGVz
dFNlcnZlciA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpzJyk7CiBjb25zdCBw
cmVwYXJlU2VydmVyVGVzdCA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25z
LmpzJykucHJlcGFyZVNlcnZlclRlc3Q7Citjb25zdCBhc3NlcnRUaHJvd3MgPSByZXF1aXJlKCcu
Li9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zJykuYXNzZXJ0VGhyb3dz
OwogCiBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICBw
cmVwYXJlU2VydmVyVGVzdCh0aGlzKTsKQEAgLTY0LDYgKzY1LDIzMiBAQCBkZXNjcmliZSgnL2Fw
aS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICB9KTsKICAgICB9KTsKIAor
ICAgIGl0KCdzaG91bGQgcmV1c2Ugcm9vdHMgZnJvbSBleGlzdGluZyBjb21taXQgc2V0IGlmIGJ1
aWxkIHJlcXVlc3RzIGFyZSB0aGUgc2FtZScsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQg
TW9ja0RhdGEuYWRkUmV1c2FibGVCdWlsZFJlcXVlc3RzTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRh
YmFzZSgpKTsKKyAgICAgICAgbGV0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcp
OworCisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgp
LCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1
cGxvYWRlZEZpbGVzJ10pOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRz
J11bMF0uaWQsIDUwMCk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRz
J11bMl0uaWQsIDYwMCk7CisKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21t
aXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICAgICAge2NvbW1pdDogJzg3ODMy
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwg
cm9vdEZpbGU6IG51bGx9LAorICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3du
ZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9
XSk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJl
dmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVy
OiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxs
fSwKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRj
aDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsKKworICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7CisgICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDgwMCk7Cisg
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0
LCA1MDApOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsK
KyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCwgOTAw
KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21t
aXRTZXQsIDYwMCk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bNF0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzRdLnVybCwgbnVsbCk7CisKKyAgICAgICAgY29uc3QgdXBkYXRlcyA9
IHs5MDA6IHsKKyAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LnN0YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCByZXVzZUJ1aWxk
UmVxdWVzdDogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07CisgICAgICAgIGNvbnN0
IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0
dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0JywgeworICAgICAgICAgICAgJ3Ns
YXZlTmFtZSc6ICdzeW5jLXNsYXZlJywKKyAgICAgICAgICAgICdzbGF2ZVBhc3N3b3JkJzogJ3Bh
c3N3b3JkJywKKyAgICAgICAgICAgICdidWlsZFJlcXVlc3RVcGRhdGVzJzogdXBkYXRlcworICAg
ICAgICB9KTsKKworICAgICAgICBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsK
KyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOwor
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA1MDApOwor
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkLCA2MDApOwor
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lv
bkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVs
bCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCisg
ICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEw
MCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1dKTsKKyAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWworICAg
ICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxs
LCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAorICAgICAgICAgICAge2Nv
bW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVp
bGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOworICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNTAwKTsKKyAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQn
KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmws
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7CisgICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA2MDApOworICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ2NvbXBs
ZXRlZCcpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRd
LnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICB9KTsKKworICAg
IGl0KCdzaG91bGQgcmV1c2Ugcm9vdCBidWlsdCBmb3Igb3duZWQgY29tbWl0IGlmIHNhbWUgY29t
cGxldGVkIGJ1aWxkIHJlcXVlc3QgZXhpc3RzJywgYXN5bmMgKCkgPT4geworICAgICAgICBhd2Fp
dCBNb2NrRGF0YS5hZGRSZXVzYWJsZVRlc3RHcm91cFdpdGhPd25lZENvbW1pdHMoVGVzdFNlcnZl
ci5kYXRhYmFzZSgpKTsKKyAgICAgICAgbGV0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdl
YmtpdCcpOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNv
cnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMn
LCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXS5sZW5ndGgsIDQpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddWzBdLmlkLCA0MDMpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddWzJdLmlkLCA0MDUpOworCisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsn
Y29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc4
NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFs
c2UsIHJvb3RGaWxlOiBudWxsfSwKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1p
dE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxl
OiBudWxsfSwKKyAgICAgICAgICAgIHtjb21taXQ6ICcxNzk3JywgY29tbWl0T3duZXI6ICc5MzEx
NicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0pOwor
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lv
bkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVs
bCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCisg
ICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCisgICAgICAgICAgICB7
Y29tbWl0OiAnMTc5NycsIGNvbW1pdE93bmVyOiAnOTMxMTYnLCBwYXRjaDogbnVsbCwgcmVxdWly
ZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOworICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA3MDQpOworICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNDAzKTsKKyAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21w
bGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVsw
XS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDcwOCk7CisgICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA0MDUpOwor
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywg
J3BlbmRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVs0XS51cmwsIG51bGwpOworCisgICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7NzA4OiB7CisgICAg
ICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1
cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIHJldXNlQnVpbGRSZXF1ZXN0OiA3
MDR9fTsKKworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtp
dCcsIHsKKyAgICAgICAgICAgICdzbGF2ZU5hbWUnOiAnc3luYy1zbGF2ZScsCisgICAgICAgICAg
ICAnc2xhdmVQYXNzd29yZCc6ICdwYXNzd29yZCcsCisgICAgICAgICAgICAnYnVpbGRSZXF1ZXN0
VXBkYXRlcyc6IHVwZGF0ZXMKKyAgICAgICAgfSk7CisKKyAgICAgICAgY29udGVudCA9IGF3YWl0
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVx
dWVzdHMvYnVpbGQtd2Via2l0Jyk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0Lmtl
eXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21t
aXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQsIDQwMyk7CisgICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQsIDQwNSk7CisKKyAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICAg
ICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1
aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAorICAgICAgICAgICAge2NvbW1pdDog
JzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBm
YWxzZSwgcm9vdEZpbGU6IG51bGx9LAorICAgICAgICAgICAge2NvbW1pdDogJzE3OTcnLCBjb21t
aXRPd25lcjogJzkzMTE2JywgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RG
aWxlOiAxMDF9XSk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNv
bW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RG
aWxlOiBudWxsfSwKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBu
dWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwK
KyAgICAgICAgICAgIHtjb21taXQ6ICcxNzk3JywgY29tbWl0T3duZXI6ICc5MzExNicsIHBhdGNo
OiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0pOworCisgICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKKyAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgNzA0KTsKKyAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQs
IDQwMyk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
c3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwor
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA3MDgp
OworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1p
dFNldCwgNDA1KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVs0XS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8x
Jyk7CisgICAgfSk7CisKKyAgICBpdCgnc2hvdWxkIGZhaWwgcmVxdWVzdCB3aXRoICJDYW5ub3RS
ZXVzZVJvb3RGcm9tQ29tbWl0U2V0V2l0aERpZmZlcmVudE51bWJlck9mSXRlbXMiIGlmIGJ1aWxk
IHJlcXVlc3QgdG8gcmV1c2UgZG9lcyBub3QgaGF2ZSBwYXRjaCcsIGFzeW5jICgpID0+IHsKKyAg
ICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpLCBb
J2NvbXBsZXRlZCcsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZyddLCB0cnVlLCBbJ2h0
dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzInLCBudWxsLCBudWxsLCBudWxsXSk7CisgICAg
ICAgIGF3YWl0IE1vY2tEYXRhLmFkZFJldXNhYmxlQnVpbGRSZXF1ZXN0c01vY2tEYXRhKFRlc3RT
ZXJ2ZXIuZGF0YWJhc2UoKSwgWydydW5uaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5k
aW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnXSwgdHJ1ZSwg
ZmFsc2UpOworICAgICAgICBsZXQgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7
CisKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDYp
OworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA0MDEp
OworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzRdLmlkLCA2MDAp
OworCisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJl
dmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVy
OiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxs
fSwKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRj
aDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfV0pOworICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5yZXZpc2lvbkl0ZW1z
LCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0
Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCisgICAgICAg
ICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVx
dWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7CisKKyAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDEyKTsKKyAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgNzAwKTsKKyAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDQwMSk7Cisg
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAn
Y29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMicpOworICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmlkLCA5MDApOworICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmNvbW1pdFNldCwgNjAw
KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5zdGF0
dXMsICdwZW5kaW5nJyk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bOF0udXJsLCBudWxsKTsKKworICAgICAgICBjb25zdCB1cGRhdGVzID0gezkwMDogewor
ICAgICAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1
cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCByZXVzZUJ1aWxkUmVxdWVz
dDogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07CisKKyAgICAgICAgYXdhaXQgYXNz
ZXJ0VGhyb3dzKCdDYW5ub3RSZXVzZVJvb3RGcm9tQ29tbWl0U2V0V2l0aERpZmZlcmVudE51bWJl
ck9mSXRlbXMnLCAoKSA9PiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1
cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnLCB7CisgICAgICAgICAgICAnc2xh
dmVOYW1lJzogJ3N5bmMtc2xhdmUnLAorICAgICAgICAgICAgJ3NsYXZlUGFzc3dvcmQnOiAncGFz
c3dvcmQnLAorICAgICAgICAgICAgJ2J1aWxkUmVxdWVzdFVwZGF0ZXMnOiB1cGRhdGVzCisgICAg
ICAgIH0pKTsKKyAgICB9KTsKKworICAgIGl0KCdzaG91bGQgZmFpbCByZXF1ZXN0IHdpdGggIkNh
bk9ubHlSZXVzZUNvbXBsZXRlZEJ1aWxkUmVxdWVzdCIgaWYgYnVpZGwgcmVxdWVzdCB0byByZXVz
ZSBpcyBub3QgY29tcGxldGVkJywgYXN5bmMgKCkgPT4geworICAgICAgICBhd2FpdCBNb2NrRGF0
YS5hZGRSZXVzYWJsZUJ1aWxkUmVxdWVzdHNNb2NrRGF0YShUZXN0U2VydmVyLmRhdGFiYXNlKCks
IFsncnVubmluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywg
J3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJ10pOworICAgICAgICBsZXQgY29udGVudCA9
IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVp
bGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7CisKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChP
YmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRz
JywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMnXSk7CisgICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0KTsKKyAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNTAwKTsKKyAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCwgNjAwKTsKKworICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisg
ICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCisgICAgICAgICAgICB7
Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNC
dWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1dKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChj
b250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWworICAgICAgICAgICAge2Nv
bW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1
aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAorICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJv
b3RGaWxlOiBudWxsfV0pOworCisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJl
cXVlc3RzJ10ubGVuZ3RoLCA4KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS5pZCwgODAwKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7CisgICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAncnVubmluZycpOworICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWls
ZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVs0XS5pZCwgOTAwKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQsIDYwMCk7CisgICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVybCwgbnVsbCk7CisK
KyAgICAgICAgY29uc3QgdXBkYXRlcyA9IHs5MDA6IHsKKyAgICAgICAgICAgICAgICBzdGF0dXM6
IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLnVybCwgcmV1c2VCdWlsZFJlcXVlc3Q6IGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVswXS5pZH19OworICAgICAgICBhd2FpdCBhc3NlcnRUaHJvd3MoJ0Nhbk9ubHlSZXVzZUNv
bXBsZXRlZEJ1aWxkUmVxdWVzdCcsICgpID0+IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKKyAgICAg
ICAgICAgICdzbGF2ZU5hbWUnOiAnc3luYy1zbGF2ZScsCisgICAgICAgICAgICAnc2xhdmVQYXNz
d29yZCc6ICdwYXNzd29yZCcsCisgICAgICAgICAgICAnYnVpbGRSZXF1ZXN0VXBkYXRlcyc6IHVw
ZGF0ZXMKKyAgICAgICAgfSkpOworICAgIH0pOworCisgICAgaXQoJ3Nob3VsZCBmYWlsIHJlcXVl
c3Qgd2l0aCAiRmFpbGVkVG9GaW5kUmV1c2VCdWlsZFJlcXVlc3QiIGlzIHJldXNlIHJlcXVlc3Qg
aXMgaW52YWxpZCcsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkUmV1
c2FibGVCdWlsZFJlcXVlc3RzTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpKTsKKyAgICAg
ICAgbGV0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRo
U3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOworCisKKyAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCksIFsnYnVpbGRSZXF1
ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3VwbG9hZGVkRmlsZXMn
XSk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ10ubGVuZ3RoLCA0
KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5pZCwgNTAw
KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5pZCwgNjAw
KTsKKworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5y
ZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25l
cjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVs
bH0sCisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0
Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1dKTsKKyAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywg
WworICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNo
OiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAorICAgICAgICAg
ICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVp
cmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOworCisgICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKKyAgICAgICAgYXNzZXJ0LmVx
dWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgODAwKTsKKyAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDUwMCk7CisgICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29t
cGxldGVkJyk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA5MDApOworICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1pdFNldCwgNjAwKTsK
KyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMs
ICdwZW5kaW5nJyk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bNF0udXJsLCBudWxsKTsKKworICAgICAgICBjb25zdCB1cGRhdGVzID0gezkwMDogeworICAg
ICAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywg
dXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCByZXVzZUJ1aWxkUmVxdWVzdDog
OTk5fX07CisKKyAgICAgICAgYXdhaXQgYXNzZXJ0VGhyb3dzKCdGYWlsZWRUb0ZpbmRSZXVzZUJ1
aWxkUmVxdWVzdCcsICgpID0+IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3Rh
dHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKKyAgICAgICAgICAgICdz
bGF2ZU5hbWUnOiAnc3luYy1zbGF2ZScsCisgICAgICAgICAgICAnc2xhdmVQYXNzd29yZCc6ICdw
YXNzd29yZCcsCisgICAgICAgICAgICAnYnVpbGRSZXF1ZXN0VXBkYXRlcyc6IHVwZGF0ZXMKKyAg
ICAgICAgfSkpOworICAgIH0pOworCiAgICAgaXQoJ3Nob3VsZCByZXR1cm4gYnVpbGQgcmVxdWVz
dHMgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4gdHJpZ2dlcmFibGUgd2l0aCBhcHByb3ByaWF0ZSBj
b21taXRzIGFuZCBjb21taXRTZXRzJywgKCkgPT4gewogICAgICAgICByZXR1cm4gTW9ja0RhdGEu
YWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpKS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBp
L2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzCmlu
ZGV4IDkyMDg0ZTRmOTcwZGZhYmY5ZDdjMDlmZjdjOGZkMzcwNzQ0ODVkOTIuLmE4NTdlOWZiZmJi
NzlkOGYwNmFmNDFjNmU0MzU3Mzg5ZmMzNjFlOWIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcworKysgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMK
QEAgLTQwLDkgKzQwLDkgQEAgTW9ja0RhdGEgPSB7CiAgICAgICAgICAgICBkYi5pbnNlcnQoJ3Jl
cG9zaXRvcmllcycsIHtpZDogdGhpcy5zaGFyZWRSZXBvc2l0b3J5SWQoKSwgbmFtZTogJ1NoYXJl
ZCd9KSwKICAgICAgICAgICAgIGRiLmluc2VydCgncmVwb3NpdG9yaWVzJywge2lkOiB0aGlzLm93
bmVkSlNDUmVwb3NpdG9yeUlkKCksIG93bmVyOiB0aGlzLndlYmtpdFJlcG9zaXRvcnlJZCgpLCBu
YW1lOiAnSmF2YVNjcmlwdENvcmUnfSksCiAgICAgICAgICAgICBkYi5pbnNlcnQoJ3JlcG9zaXRv
cmllcycsIHtpZDogdGhpcy5qc2NSZXBvc2l0b3J5SWQoKSwgbmFtZTogJ0phdmFTY3JpcHRDb3Jl
J30pLAotICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3Vw
cycsIHtpZDogMjAwMSwgbmFtZTogJ3dlYmtpdC1zdm4nLCB0cmlnZ2VyYWJsZTogMTAwMH0pLAor
ICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycsIHtp
ZDogMjAwMSwgbmFtZTogJ3dlYmtpdC1zdm4nLCB0cmlnZ2VyYWJsZTogMTAwMCwgYWNjZXB0c19y
b290czogdHJ1ZX0pLAogICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0
b3JpZXMnLCB7cmVwb3NpdG9yeTogdGhpcy5tYWNvc1JlcG9zaXRvcnlJZCgpLCBncm91cDogMjAw
MX0pLAotICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCB7
cmVwb3NpdG9yeTogdGhpcy53ZWJraXRSZXBvc2l0b3J5SWQoKSwgZ3JvdXA6IDIwMDF9KSwKKyAg
ICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzJywge3JlcG9zaXRv
cnk6IHRoaXMud2Via2l0UmVwb3NpdG9yeUlkKCksIGdyb3VwOiAyMDAxLCBhY2NlcHRzX3BhdGNo
OiB0cnVlfSksCiAgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7aWQ6IDg3ODMyLCBy
ZXBvc2l0b3J5OiB0aGlzLm1hY29zUmVwb3NpdG9yeUlkKCksIHJldmlzaW9uOiAnMTAuMTEgMTVB
Mjg0J30pLAogICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRzJywge2lkOiA5MzExNiwgcmVw
b3NpdG9yeTogdGhpcy53ZWJraXRSZXBvc2l0b3J5SWQoKSwgcmV2aXNpb246ICcxOTE2MjInLCB0
aW1lOiAobmV3IERhdGUoMTQ0NTk0NTgxNjg3OCkpLnRvSVNPU3RyaW5nKCl9KSwKICAgICAgICAg
ICAgIGRiLmluc2VydCgnY29tbWl0cycsIHtpZDogOTYzMzYsIHJlcG9zaXRvcnk6IHRoaXMud2Vi
a2l0UmVwb3NpdG9yeUlkKCksIHJldmlzaW9uOiAnMTkyNzM2JywgdGltZTogKG5ldyBEYXRlKDE0
NDgyMjUzMjU2NTApKS50b0lTT1N0cmluZygpfSksCkBAIC02NCwxMCArNjQsMTIgQEAgTW9ja0Rh
dGEgPSB7CiAgICAgICAgICAgICBkYi5pbnNlcnQoJ3Rlc3RfcnVucycsIHtpZDogODAxLCBjb25m
aWc6IDMwMSwgYnVpbGQ6IDkwMSwgbWVhbl9jYWNoZTogMTAwfSksCiAgICAgICAgIF0pOwogICAg
IH0sCi0gICAgYWRkTW9ja0RhdGE6IGZ1bmN0aW9uIChkYiwgc3RhdHVzTGlzdCwgbmVlZHNOb3Rp
ZmljYXRpb249dHJ1ZSkKKyAgICBhZGRNb2NrRGF0YTogZnVuY3Rpb24gKGRiLCBzdGF0dXNMaXN0
LCBuZWVkc05vdGlmaWNhdGlvbj10cnVlLCB1cmxMaXN0PVtdKQogICAgIHsKICAgICAgICAgaWYg
KCFzdGF0dXNMaXN0KQogICAgICAgICAgICAgc3RhdHVzTGlzdCA9IFsncGVuZGluZycsICdwZW5k
aW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZyddOworICAgICAgICBpZiAoIXVybExpc3QpCisgICAg
ICAgICAgICB1cmxMaXN0ID0gW251bGwsIG51bGwsIG51bGwsIG51bGxdOwogICAgICAgICByZXR1
cm4gUHJvbWlzZS5hbGwoWwogICAgICAgICAgICAgdGhpcy5hZGRNb2NrQ29uZmlndXJhdGlvbihk
YiksCiAgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdF9zZXRzJywge2lkOiA0MDF9KSwKQEAg
LTgwLDEwICs4Miw1MCBAQCBNb2NrRGF0YSA9IHsKICAgICAgICAgICAgICAgICBzdGFydF9ydW46
IDgwMSwgc3RhcnRfcnVuX3RpbWU6ICcyMDE1LTEwLTI3VDEyOjA1OjI3LjFaJywKICAgICAgICAg
ICAgICAgICBlbmRfcnVuOiA4MDEsIGVuZF9ydW5fdGltZTogJzIwMTUtMTAtMjdUMTI6MDU6Mjcu
MVonfSksCiAgICAgICAgICAgICBkYi5pbnNlcnQoJ2FuYWx5c2lzX3Rlc3RfZ3JvdXBzJywge2lk
OiA2MDAsIHRhc2s6IDUwMCwgbmFtZTogJ3NvbWUgdGVzdCBncm91cCcsIGluaXRpYWxfcmVwZXRp
dGlvbl9jb3VudDogNCwgbmVlZHNfbm90aWZpY2F0aW9uOiBuZWVkc05vdGlmaWNhdGlvbn0pLAot
ICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1ZXN0cycsIHtpZDogNzAwLCBzdGF0dXM6
IHN0YXR1c0xpc3RbMF0sIHRyaWdnZXJhYmxlOiAxMDAwLCByZXBvc2l0b3J5X2dyb3VwOiAyMDAx
LCBwbGF0Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3JvdXA6IDYwMCwgb3JkZXI6IDAsIGNvbW1pdF9z
ZXQ6IDQwMX0pLAotICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1ZXN0cycsIHtpZDog
NzAxLCBzdGF0dXM6IHN0YXR1c0xpc3RbMV0sIHRyaWdnZXJhYmxlOiAxMDAwLCByZXBvc2l0b3J5
X2dyb3VwOiAyMDAxLCBwbGF0Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3JvdXA6IDYwMCwgb3JkZXI6
IDEsIGNvbW1pdF9zZXQ6IDQwMn0pLAotICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1
ZXN0cycsIHtpZDogNzAyLCBzdGF0dXM6IHN0YXR1c0xpc3RbMl0sIHRyaWdnZXJhYmxlOiAxMDAw
LCByZXBvc2l0b3J5X2dyb3VwOiAyMDAxLCBwbGF0Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3JvdXA6
IDYwMCwgb3JkZXI6IDIsIGNvbW1pdF9zZXQ6IDQwMX0pLAotICAgICAgICAgICAgZGIuaW5zZXJ0
KCdidWlsZF9yZXF1ZXN0cycsIHtpZDogNzAzLCBzdGF0dXM6IHN0YXR1c0xpc3RbM10sIHRyaWdn
ZXJhYmxlOiAxMDAwLCByZXBvc2l0b3J5X2dyb3VwOiAyMDAxLCBwbGF0Zm9ybTogNjUsIHRlc3Q6
IDIwMCwgZ3JvdXA6IDYwMCwgb3JkZXI6IDMsIGNvbW1pdF9zZXQ6IDQwMn0pLAorICAgICAgICAg
ICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1ZXN0cycsIHtpZDogNzAwLCBzdGF0dXM6IHN0YXR1c0xp
c3RbMF0sIHVybDogdXJsTGlzdFswXSwgdHJpZ2dlcmFibGU6IDEwMDAsIHJlcG9zaXRvcnlfZ3Jv
dXA6IDIwMDEsIHBsYXRmb3JtOiA2NSwgdGVzdDogMjAwLCBncm91cDogNjAwLCBvcmRlcjogMCwg
Y29tbWl0X3NldDogNDAxfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2J1aWxkX3JlcXVlc3Rz
Jywge2lkOiA3MDEsIHN0YXR1czogc3RhdHVzTGlzdFsxXSwgdXJsOiB1cmxMaXN0WzFdLCB0cmln
Z2VyYWJsZTogMTAwMCwgcmVwb3NpdG9yeV9ncm91cDogMjAwMSwgcGxhdGZvcm06IDY1LCB0ZXN0
OiAyMDAsIGdyb3VwOiA2MDAsIG9yZGVyOiAxLCBjb21taXRfc2V0OiA0MDJ9KSwKKyAgICAgICAg
ICAgIGRiLmluc2VydCgnYnVpbGRfcmVxdWVzdHMnLCB7aWQ6IDcwMiwgc3RhdHVzOiBzdGF0dXNM
aXN0WzJdLCB1cmw6IHVybExpc3RbMl0sIHRyaWdnZXJhYmxlOiAxMDAwLCByZXBvc2l0b3J5X2dy
b3VwOiAyMDAxLCBwbGF0Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3JvdXA6IDYwMCwgb3JkZXI6IDIs
IGNvbW1pdF9zZXQ6IDQwMX0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1ZXN0
cycsIHtpZDogNzAzLCBzdGF0dXM6IHN0YXR1c0xpc3RbM10sIHVybDogdXJsTGlzdFszXSwgdHJp
Z2dlcmFibGU6IDEwMDAsIHJlcG9zaXRvcnlfZ3JvdXA6IDIwMDEsIHBsYXRmb3JtOiA2NSwgdGVz
dDogMjAwLCBncm91cDogNjAwLCBvcmRlcjogMywgY29tbWl0X3NldDogNDAyfSksCisgICAgICAg
IF0pOworICAgIH0sCisgICAgYWRkUmV1c2FibGVCdWlsZFJlcXVlc3RzTW9ja0RhdGEoZGIsIHN0
YXR1c0xpc3QsIG5lZWRzTm90aWZpY2F0aW9uPXRydWUsIGFkZE1vY2tDb25maWd1cmF0aW9uPXRy
dWUpCisgICAgeworICAgICAgICBjb25zdCBzZXR1cFN0ZXBzID0gYWRkTW9ja0NvbmZpZ3VyYXRp
b24gPyBbdGhpcy5hZGRNb2NrQ29uZmlndXJhdGlvbihkYildIDogW107CisgICAgICAgIGlmICgh
c3RhdHVzTGlzdCkKKyAgICAgICAgICAgIHN0YXR1c0xpc3QgPSBbJ2NvbXBsZXRlZCcsICdydW5u
aW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGlu
ZycsICdwZW5kaW5nJ107CisgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbCisgICAgICAgICAg
ICAuLi5zZXR1cFN0ZXBzLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCd1cGxvYWRlZF9maWxlcycs
IHtpZDogMTAwLCBmaWxlbmFtZTogJ3BhdGNoLTEwMCcsIGV4dGVuc2lvbjogJy50eHQnLCBzaXpl
OiAxLCBzaGEyNTY6IGNyeXB0by5jcmVhdGVIYXNoKCdzaGEyNTYnKS51cGRhdGUoJ3BhdGNoLTEw
MCcpLmRpZ2VzdCgnaGV4Jyl9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgndXBsb2FkZWRfZmls
ZXMnLCB7aWQ6IDEwMSwgZmlsZW5hbWU6ICdyb290LTEwMScsIGV4dGVuc2lvbjogJy50Z3onLCBz
aXplOiAxLCBzaGEyNTY6IGNyeXB0by5jcmVhdGVIYXNoKCdzaGEyNTYnKS51cGRhdGUoJ3Jvb3Qt
MTAxJykuZGlnZXN0KCdoZXgnKX0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCd1cGxvYWRlZF9m
aWxlcycsIHtpZDogMTAyLCBmaWxlbmFtZTogJ3BhdGNoLTEwMicsIGV4dGVuc2lvbjogJy50eHQn
LCBzaXplOiAxLCBzaGEyNTY6IGNyeXB0by5jcmVhdGVIYXNoKCdzaGEyNTYnKS51cGRhdGUoJ3Bh
dGNoLTEwMicpLmRpZ2VzdCgnaGV4Jyl9KSwKKworICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21t
aXRfc2V0cycsIHtpZDogNTAwfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdF9zZXRf
aXRlbXMnLCB7c2V0OiA1MDAsIGNvbW1pdDogODc4MzJ9KSwKKyAgICAgICAgICAgIGRiLmluc2Vy
dCgnY29tbWl0X3NldF9pdGVtcycsIHtzZXQ6IDUwMCwgY29tbWl0OiA5MzExNiwgcGF0Y2hfZmls
ZTogMTAwLCByZXF1aXJlc19idWlsZDogdHJ1ZSwgcm9vdF9maWxlOiAxMDF9KSwKKyAgICAgICAg
ICAgIGRiLmluc2VydCgnY29tbWl0X3NldHMnLCB7aWQ6IDUwMX0pLAorICAgICAgICAgICAgZGIu
aW5zZXJ0KCdjb21taXRfc2V0X2l0ZW1zJywge3NldDogNTAxLCBjb21taXQ6IDg3ODMyfSksCisg
ICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdF9zZXRfaXRlbXMnLCB7c2V0OiA1MDEsIGNvbW1p
dDogOTYzMzYsIHBhdGNoX2ZpbGU6IDEwMiwgcmVxdWlyZXNfYnVpbGQ6IHRydWV9KSwKKworICAg
ICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRfc2V0cycsIHtpZDogNjAwfSksCisgICAgICAgICAg
ICBkYi5pbnNlcnQoJ2NvbW1pdF9zZXRfaXRlbXMnLCB7c2V0OiA2MDAsIGNvbW1pdDogODc4MzJ9
KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0X3NldF9pdGVtcycsIHtzZXQ6IDYwMCwg
Y29tbWl0OiA5MzExNiwgcGF0Y2hfZmlsZTogMTAwLCByZXF1aXJlc19idWlsZDogdHJ1ZX0pLAor
ICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRfc2V0cycsIHtpZDogNjAxfSksCisgICAgICAg
ICAgICBkYi5pbnNlcnQoJ2NvbW1pdF9zZXRfaXRlbXMnLCB7c2V0OiA2MDEsIGNvbW1pdDogODc4
MzJ9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0X3NldF9pdGVtcycsIHtzZXQ6IDYw
MSwgY29tbWl0OiA5NjMzNiwgcGF0Y2hfZmlsZTogMTAyLCByZXF1aXJlc19idWlsZDogdHJ1ZX0p
LAorCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2FuYWx5c2lzX3Rhc2tzJywge2lkOiA2MDAsIG5h
bWU6ICdhbm90aGVyIHRhc2snfSksCisKKyAgICAgICAgICAgIGRiLmluc2VydCgnYW5hbHlzaXNf
dGVzdF9ncm91cHMnLCB7aWQ6IDcwMCwgdGFzazogNjAwLCBuYW1lOiAndGVzdCB3aXRoIHJvb3Qg
YnVpbHQnLCBpbml0aWFsX3JlcGV0aXRpb25fY291bnQ6IDEsIG5lZWRzX25vdGlmaWNhdGlvbjog
bmVlZHNOb3RpZmljYXRpb259KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRfcmVxdWVz
dHMnLCB7aWQ6IDgwMCwgc3RhdHVzOiBzdGF0dXNMaXN0WzBdLCB0cmlnZ2VyYWJsZTogMTAwMCwg
cmVwb3NpdG9yeV9ncm91cDogMjAwMSwgcGxhdGZvcm06IDY1LCBncm91cDogNzAwLCBvcmRlcjog
LTIsIGNvbW1pdF9zZXQ6IDUwMCwgdXJsOiAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMv
MSd9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRfcmVxdWVzdHMnLCB7aWQ6IDgwMSwg
c3RhdHVzOiBzdGF0dXNMaXN0WzFdLCB0cmlnZ2VyYWJsZTogMTAwMCwgcmVwb3NpdG9yeV9ncm91
cDogMjAwMSwgcGxhdGZvcm06IDY1LCBncm91cDogNzAwLCBvcmRlcjogLTEsIGNvbW1pdF9zZXQ6
IDUwMX0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1ZXN0cycsIHtpZDogODAy
LCBzdGF0dXM6IHN0YXR1c0xpc3RbMl0sIHRyaWdnZXJhYmxlOiAxMDAwLCByZXBvc2l0b3J5X2dy
b3VwOiAyMDAxLCBwbGF0Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3JvdXA6IDcwMCwgb3JkZXI6IDAs
IGNvbW1pdF9zZXQ6IDUwMH0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1ZXN0
cycsIHtpZDogODAzLCBzdGF0dXM6IHN0YXR1c0xpc3RbM10sIHRyaWdnZXJhYmxlOiAxMDAwLCBy
ZXBvc2l0b3J5X2dyb3VwOiAyMDAxLCBwbGF0Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3JvdXA6IDcw
MCwgb3JkZXI6IDEsIGNvbW1pdF9zZXQ6IDUwMX0pLAorCisgICAgICAgICAgICBkYi5pbnNlcnQo
J2FuYWx5c2lzX3Rlc3RfZ3JvdXBzJywge2lkOiA3MDEsIHRhc2s6IDYwMCwgbmFtZTogJ3Rlc3Qg
d2lsbCByZXVzZSByb290JywgaW5pdGlhbF9yZXBldGl0aW9uX2NvdW50OiAxLCBuZWVkc19ub3Rp
ZmljYXRpb246IG5lZWRzTm90aWZpY2F0aW9ufSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2J1
aWxkX3JlcXVlc3RzJywge2lkOiA5MDAsIHN0YXR1czogc3RhdHVzTGlzdFs0XSwgdHJpZ2dlcmFi
bGU6IDEwMDAsIHJlcG9zaXRvcnlfZ3JvdXA6IDIwMDEsIHBsYXRmb3JtOiA2NSwgZ3JvdXA6IDcw
MSwgb3JkZXI6IC0yLCBjb21taXRfc2V0OiA2MDB9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgn
YnVpbGRfcmVxdWVzdHMnLCB7aWQ6IDkwMSwgc3RhdHVzOiBzdGF0dXNMaXN0WzVdLCB0cmlnZ2Vy
YWJsZTogMTAwMCwgcmVwb3NpdG9yeV9ncm91cDogMjAwMSwgcGxhdGZvcm06IDY1LCBncm91cDog
NzAxLCBvcmRlcjogLTEsIGNvbW1pdF9zZXQ6IDYwMX0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0
KCdidWlsZF9yZXF1ZXN0cycsIHtpZDogOTAyLCBzdGF0dXM6IHN0YXR1c0xpc3RbNl0sIHRyaWdn
ZXJhYmxlOiAxMDAwLCByZXBvc2l0b3J5X2dyb3VwOiAyMDAxLCBwbGF0Zm9ybTogNjUsIHRlc3Q6
IDIwMCwgZ3JvdXA6IDcwMSwgb3JkZXI6IDAsIGNvbW1pdF9zZXQ6IDYwMH0pLAorICAgICAgICAg
ICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1ZXN0cycsIHtpZDogOTAzLCBzdGF0dXM6IHN0YXR1c0xp
c3RbN10sIHRyaWdnZXJhYmxlOiAxMDAwLCByZXBvc2l0b3J5X2dyb3VwOiAyMDAxLCBwbGF0Zm9y
bTogNjUsIHRlc3Q6IDIwMCwgZ3JvdXA6IDcwMSwgb3JkZXI6IDEsIGNvbW1pdF9zZXQ6IDYwMX0p
LAogICAgICAgICBdKTsKICAgICB9LAogICAgIGFkZEFub3RoZXJUcmlnZ2VyYWJsZShkYikgewpA
QCAtMTcyLDYgKzIxNCw0NSBAQCBNb2NrRGF0YSA9IHsKICAgICAgICAgICAgIGRiLmluc2VydCgn
YnVpbGRfcmVxdWVzdHMnLCB7aWQ6IDcwNywgc3RhdHVzOiBzdGF0dXNMaXN0WzNdLCB0cmlnZ2Vy
YWJsZTogMTAwMCwgcmVwb3NpdG9yeV9ncm91cDogMjAwMSwgcGxhdGZvcm06IDY1LCB0ZXN0OiAy
MDAsIGdyb3VwOiA5MDAsIG9yZGVyOiAzLCBjb21taXRfc2V0OiA0MDR9KSwKICAgICAgICAgXSk7
CiAgICAgfSwKKyAgICBhZGRSZXVzYWJsZVRlc3RHcm91cFdpdGhPd25lZENvbW1pdHMoZGIpCisg
ICAgeworICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgdGhpcy5hZGRN
b2NrQ29uZmlndXJhdGlvbihkYiksCisgICAgICAgICAgICB0aGlzLmFkZEFub3RoZXJUcmlnZ2Vy
YWJsZShkYiksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2FuYWx5c2lzX3Rhc2tzJywge2lkOiAx
MDgwLCBwbGF0Zm9ybTogNjUsIG1ldHJpYzogMzAwLCBuYW1lOiAnc29tZSB0YXNrIHdpdGggY29t
cG9uZW50IHRlc3QnLAorICAgICAgICAgICAgICAgIHN0YXJ0X3J1bjogODAxLCBzdGFydF9ydW5f
dGltZTogJzIwMTUtMTAtMjdUMTI6MDU6MjcuMVonLAorICAgICAgICAgICAgICAgIGVuZF9ydW46
IDgwMSwgZW5kX3J1bl90aW1lOiAnMjAxNS0xMC0yN1QxMjowNToyNy4xWid9KSwKKworICAgICAg
ICAgICAgZGIuaW5zZXJ0KCd1cGxvYWRlZF9maWxlcycsIHtpZDogMTAxLCBmaWxlbmFtZTogJ3Jv
b3QtMTAxJywgc2l6ZTogMSwgc2hhMjU2OiBjcnlwdG8uY3JlYXRlSGFzaCgnc2hhMjU2JykudXBk
YXRlKCdyb290LTEwMScpLmRpZ2VzdCgnaGV4JyksIH0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0
KCdhbmFseXNpc190ZXN0X2dyb3VwcycsIHtpZDogOTAwLCB0YXNrOiAxMDgwLCBuYW1lOiAnc29t
ZSB0ZXN0IGdyb3VwIHdpdGggY29tcG9uZW50IHRlc3Qocm9vdCBidWlsdCknLCBpbml0aWFsX3Jl
cGV0aXRpb25fY291bnQ6IDF9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0X3NldHMn
LCB7aWQ6IDQwM30pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRfc2V0X2l0ZW1zJywg
e3NldDogNDAzLCBjb21taXQ6IDg3ODMyfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1p
dF9zZXRfaXRlbXMnLCB7c2V0OiA0MDMsIGNvbW1pdDogOTMxMTZ9KSwKKyAgICAgICAgICAgIGRi
Lmluc2VydCgnY29tbWl0X3NldF9pdGVtcycsIHtzZXQ6IDQwMywgY29tbWl0OiAxNzk3LCBjb21t
aXRfb3duZXI6IDkzMTE2LCByZXF1aXJlc19idWlsZDogdHJ1ZSwgcm9vdF9maWxlOiAxMDF9KSwK
KyAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0X3NldHMnLCB7aWQ6IDQwNH0pLAorICAgICAg
ICAgICAgZGIuaW5zZXJ0KCdjb21taXRfc2V0X2l0ZW1zJywge3NldDogNDA0LCBjb21taXQ6IDg3
ODMyfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdF9zZXRfaXRlbXMnLCB7c2V0OiA0
MDQsIGNvbW1pdDogOTYzMzZ9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0X3NldF9p
dGVtcycsIHtzZXQ6IDQwNCwgY29tbWl0OiAyMDE3LCBjb21taXRfb3duZXI6IDk2MzM2LCByZXF1
aXJlc19idWlsZDogdHJ1ZX0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1ZXN0
cycsIHtpZDogNzA0LCBzdGF0dXM6ICdjb21wbGV0ZWQnLCB0cmlnZ2VyYWJsZTogMTAwMCwgcmVw
b3NpdG9yeV9ncm91cDogMjAwMSwgcGxhdGZvcm06IDY1LCBncm91cDogOTAwLCBvcmRlcjogLTIs
IGNvbW1pdF9zZXQ6IDQwMywgdXJsOiAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMSd9
KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRfcmVxdWVzdHMnLCB7aWQ6IDcwNSwgc3Rh
dHVzOiAncGVuZGluZycsIHRyaWdnZXJhYmxlOiAxMDAwLCByZXBvc2l0b3J5X2dyb3VwOiAyMDAx
LCBwbGF0Zm9ybTogNjUsIGdyb3VwOiA5MDAsIG9yZGVyOiAtMSwgY29tbWl0X3NldDogNDA0fSks
CisgICAgICAgICAgICBkYi5pbnNlcnQoJ2J1aWxkX3JlcXVlc3RzJywge2lkOiA3MDYsIHN0YXR1
czogJ3BlbmRpbmcnLCB0cmlnZ2VyYWJsZTogMTAwMCwgcmVwb3NpdG9yeV9ncm91cDogMjAwMSwg
cGxhdGZvcm06IDY1LCB0ZXN0OiAyMDAsIGdyb3VwOiA5MDAsIG9yZGVyOiAwLCBjb21taXRfc2V0
OiA0MDN9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRfcmVxdWVzdHMnLCB7aWQ6IDcw
Nywgc3RhdHVzOiAncGVuZGluZycsIHRyaWdnZXJhYmxlOiAxMDAwLCByZXBvc2l0b3J5X2dyb3Vw
OiAyMDAxLCBwbGF0Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3JvdXA6IDkwMCwgb3JkZXI6IDEsIGNv
bW1pdF9zZXQ6IDQwNH0pLAorCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2FuYWx5c2lzX3Rlc3Rf
Z3JvdXBzJywge2lkOiA5MDEsIHRhc2s6IDEwODAsIG5hbWU6ICdzb21lIHRlc3QgZ3JvdXAgd2l0
aCBjb21wb25lbnQgdGVzdCcsIGluaXRpYWxfcmVwZXRpdGlvbl9jb3VudDogMX0pLAorICAgICAg
ICAgICAgZGIuaW5zZXJ0KCdjb21taXRfc2V0cycsIHtpZDogNDA1fSksCisgICAgICAgICAgICBk
Yi5pbnNlcnQoJ2NvbW1pdF9zZXRfaXRlbXMnLCB7c2V0OiA0MDUsIGNvbW1pdDogODc4MzJ9KSwK
KyAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0X3NldF9pdGVtcycsIHtzZXQ6IDQwNSwgY29t
bWl0OiA5MzExNn0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRfc2V0X2l0ZW1zJywg
e3NldDogNDA1LCBjb21taXQ6IDE3OTcsIGNvbW1pdF9vd25lcjogOTMxMTYsIHJlcXVpcmVzX2J1
aWxkOiB0cnVlfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdF9zZXRzJywge2lkOiA0
MDZ9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0X3NldF9pdGVtcycsIHtzZXQ6IDQw
NiwgY29tbWl0OiA4NzgzMn0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRfc2V0X2l0
ZW1zJywge3NldDogNDA2LCBjb21taXQ6IDk2MzM2fSksCisgICAgICAgICAgICBkYi5pbnNlcnQo
J2NvbW1pdF9zZXRfaXRlbXMnLCB7c2V0OiA0MDYsIGNvbW1pdDogMjAxNywgY29tbWl0X293bmVy
OiA5NjMzNiwgcmVxdWlyZXNfYnVpbGQ6IHRydWV9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgn
YnVpbGRfcmVxdWVzdHMnLCB7aWQ6IDcwOCwgc3RhdHVzOiAncGVuZGluZycsIHRyaWdnZXJhYmxl
OiAxMDAwLCByZXBvc2l0b3J5X2dyb3VwOiAyMDAxLCBwbGF0Zm9ybTogNjUsIGdyb3VwOiA5MDEs
IG9yZGVyOiAtMiwgY29tbWl0X3NldDogNDA1fSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2J1
aWxkX3JlcXVlc3RzJywge2lkOiA3MDksIHN0YXR1czogJ3BlbmRpbmcnLCB0cmlnZ2VyYWJsZTog
MTAwMCwgcmVwb3NpdG9yeV9ncm91cDogMjAwMSwgcGxhdGZvcm06IDY1LCBncm91cDogOTAxLCBv
cmRlcjogLTEsIGNvbW1pdF9zZXQ6IDQwNn0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWls
ZF9yZXF1ZXN0cycsIHtpZDogNzEwLCBzdGF0dXM6ICdwZW5kaW5nJywgdHJpZ2dlcmFibGU6IDEw
MDAsIHJlcG9zaXRvcnlfZ3JvdXA6IDIwMDEsIHBsYXRmb3JtOiA2NSwgdGVzdDogMjAwLCBncm91
cDogOTAxLCBvcmRlcjogMCwgY29tbWl0X3NldDogNDA1fSksCisgICAgICAgICAgICBkYi5pbnNl
cnQoJ2J1aWxkX3JlcXVlc3RzJywge2lkOiA3MTEsIHN0YXR1czogJ3BlbmRpbmcnLCB0cmlnZ2Vy
YWJsZTogMTAwMCwgcmVwb3NpdG9yeV9ncm91cDogMjAwMSwgcGxhdGZvcm06IDY1LCB0ZXN0OiAy
MDAsIGdyb3VwOiA5MDEsIG9yZGVyOiAxLCBjb21taXRfc2V0OiA0MDZ9KSwKKyAgICAgICAgXSk7
CisgICAgfSwKICAgICBhZGRUZXN0R3JvdXBXaXRoT3duZXJDb21taXROb3RJbkNvbW1pdFNldChk
YikKICAgICB7CiAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbCkBAIC0yMTksNiArMzAwLDUx
IEBAIE1vY2tEYXRhID0gewogICAgICAgICAgICAgXQogICAgICAgICB9CiAgICAgfSwKKyAgICBt
b2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVpbGRlcnNPbmVUZXN0ZXI6IGZ1bmN0aW9uICgpCisg
ICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgJ3RyaWdnZXJhYmxlTmFtZSc6ICdi
dWlsZC13ZWJraXQnLAorICAgICAgICAgICAgJ2xvb2tiYWNrQ291bnQnOiAyLAorICAgICAgICAg
ICAgJ2J1aWxkUmVxdWVzdEFyZ3VtZW50JzogJ2J1aWxkLXJlcXVlc3QtaWQnLAorICAgICAgICAg
ICAgJ3JlcG9zaXRvcnlHcm91cHMnOiB7CisgICAgICAgICAgICAgICAgJ3dlYmtpdC1zdm4nOiB7
CisgICAgICAgICAgICAgICAgICAgICdyZXBvc2l0b3JpZXMnOiB7J1dlYktpdCc6IHsnYWNjZXB0
c1BhdGNoJzogdHJ1ZX0sICdtYWNPUyc6IHt9fSwKKyAgICAgICAgICAgICAgICAgICAgJ2FjY2Vw
dHNSb290cyc6IHRydWUsCisgICAgICAgICAgICAgICAgICAgICd0ZXN0UHJvcGVydGllcyc6IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICdvcyc6IHsncmV2aXNpb24nOiAnbWFjT1MnfSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICd3ayc6IHsncmV2aXNpb24nOiAnV2ViS2l0J30sCisgICAg
ICAgICAgICAgICAgICAgICAgICAncm9vdHMnOiB7InJvb3RzIjoge319LAorICAgICAgICAgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAnYnVpbGRQcm9wZXJ0aWVzJzogeworICAg
ICAgICAgICAgICAgICAgICAgICAgJ29zJzogeydyZXZpc2lvbic6ICdtYWNPUyd9LAorICAgICAg
ICAgICAgICAgICAgICAgICAgJ3drJzogeydyZXZpc2lvbic6ICdXZWJLaXQnfSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICd3ay1wYXRjaCc6IHsncGF0Y2gnOiAnV2ViS2l0J30sCisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgJ3R5cGVzJzogeworICAgICAgICAgICAgICAgICdzb21lLXRlc3QnOiB7J3Rlc3QnOiBb
J3NvbWUgdGVzdCddfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdidWlsZGVycyc6IHsK
KyAgICAgICAgICAgICAgICAndGVzdGVyJzogeydidWlsZGVyJzogJ3NvbWUgdGVzdGVyJywgcHJv
cGVydGllczoge2ZvcmNlc2NoZWR1bGVyOiAnZm9yY2Utc29tZS10ZXN0ZXInfX0sCisgICAgICAg
ICAgICAgICAgJ2J1aWxkZXItMSc6IHsnYnVpbGRlcic6ICdzb21lLWJ1aWxkZXItMScsIHByb3Bl
cnRpZXM6IHtmb3JjZXNjaGVkdWxlcjogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319LAorICAgICAg
ICAgICAgICAgICdidWlsZGVyLTInOiB7J2J1aWxkZXInOiAnc29tZSBidWlsZGVyIDInLCBwcm9w
ZXJ0aWVzOiB7Zm9yY2VzY2hlZHVsZXI6ICdmb3JjZS1zb21lLWJ1aWxkZXItMid9fSwKKyAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAndGVzdENvbmZpZ3VyYXRpb25zJzogWworICAgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ3BsYXRmb3Jtcyc6IFsnc29tZSBwbGF0Zm9y
bSddLAorICAgICAgICAgICAgICAgICAgICAndHlwZXMnOiBbJ3NvbWUtdGVzdCddLAorICAgICAg
ICAgICAgICAgICAgICAnYnVpbGRlcnMnOiBbJ3Rlc3RlciddLAorICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAnYnVpbGRDb25maWd1cmF0aW9ucyc6IFsKKyAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdwbGF0Zm9ybXMnOiBbJ3NvbWUg
cGxhdGZvcm0nXSwKKyAgICAgICAgICAgICAgICAgICAgJ2J1aWxkZXJzJzogWydidWlsZGVyLTEn
LCAnYnVpbGRlci0yJ10sCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXQorICAgICAg
ICB9CisgICAgfSwKICAgICBtb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVpbGRlcnM6IGZ1bmN0
aW9uICgpCiAgICAgewogICAgICAgICByZXR1cm4gewpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0
cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRi
b3QtdHJpZ2dlcmFibGUtdGVzdHMuanMKaW5kZXggOWMzY2FiNDQ0YjkwMzk3N2ZiZjlmMTQ4Yjk0
ODFiM2M1ZjU0NzRjMi4uZDkwM2UxNDAyNTkxYWExOGFlNDM5MDhmYjJhMmI5YjVjYTQ0ZjhhNyAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1i
dWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzCkBAIC04
MSw3ICs4MSw2IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAz
KS5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKLQog
ICAgICAgICBpdCgnc2hvdWxkIG5vdCBzY2hlZHVsZSB0aGUgbmV4dCBidWlsZCByZXF1ZXN0IHdo
ZW4gdGhlcmUgaXMgYSBwZW5kaW5nIGJ1aWxkJywgKCkgPT4gewogICAgICAgICAgICAgY29uc3Qg
ZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CiAgICAgICAgICAgICBsZXQgc3luY1Byb21pc2U7
CkBAIC05NDYsNiArOTQ1LDMwMCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJl
c29sdmUoJ09LJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CisKKyAgICAgICAgaXQo
J3Nob3VsZCByZXVzZSByb290IGZyb20gY29tcGxldGVkIGJ1aWxkIHJlcXVlc3QgZm9yIHNhbWUg
YnVpbGQgcmVxdWVzdCcsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRh
LmFkZFJldXNhYmxlQnVpbGRSZXF1ZXN0c01vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSk7
CisgICAgICAgICAgICBhd2FpdCBNYW5pZmVzdC5mZXRjaCgpOworICAgICAgICAgICAgY29uc3Qg
Y29uZmlnID0gTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzT25lVGVz
dGVyKCk7CisgICAgICAgICAgICBjb25zdCBsb2dnZXIgPSBuZXcgTW9ja0xvZ2dlcjsKKyAgICAg
ICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAn
cGFzc3dvcmQnfTsKKyAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90
VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJ
LCBzbGF2ZUluZm8sIGxvZ2dlcik7CisgICAgICAgICAgICBjb25zdCBzeW5jUHJvbWlzZSA9IHRy
aWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgp
KTsKKyAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRh
Lm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNl
dCgpOworICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwor
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7
CisgICAgICAgICAgICBsZXQgYnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDgw
MCk7CisgICAgICAgICAgICBsZXQgYW5vdGhlckJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg5MDApOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMv
MScpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIG51bGwpOworICAgICAgICAgICAgbGV0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKKyAgICAgICAgICAgIGxldCBhbm90aGVyQ29tbWl0U2V0ID0gYW5vdGhlckJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgICAgIGFzc2VydC5vayhjb21taXRTZXQu
ZXF1YWxzKGFub3RoZXJDb21taXRTZXQsIHRydWUpKTsKKyAgICAgICAgICAgIGFzc2VydC5vaygh
Y29tbWl0U2V0LmVxdWFscyhhbm90aGVyQ29tbWl0U2V0LCBmYWxzZSkpOworCisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOworICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEu
cGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXNldCgpOworICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0
ZXInLCAyKSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUo
e30pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0u
bWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
LCAyKSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydi
dWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0p
LCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMH0pXX0pOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7
CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOworICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOworICAgICAgICAgICAgYXdhaXQgTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
c29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
LnJlc29sdmUoe30pOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOworICAgICAg
ICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51
cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CisgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEu
cnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0pLCBNb2NrRGF0YS5maW5pc2hl
ZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMH0pXX0pOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOworICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXNldCgpOworCisgICAgICAgICAgICBhd2FpdCBzeW5jUHJvbWlzZTsKKyAgICAgICAg
ICAgIGF3YWl0IEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tU
ZXN0U3luY0NvbmZpZ1dpdGhUd29CdWlsZGVyc09uZVRlc3RlcigpLnRyaWdnZXJhYmxlTmFtZSk7
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7
CisgICAgICAgICAgICBidWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoODAwKTsK
KyAgICAgICAgICAgIGFub3RoZXJCdWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
OTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdj
b21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgIH0pOworCisgICAg
ICAgIGl0KCdzaG91bGQgZGVmZXIgc2NoZWR1bGluZyB0aGUgYnVpbGQgcmVxdWVzdCBpZiB0aGVy
ZSBpcyBhbm90aGVyIHNhbWUgYnVpbGQgcmVxdWVzdCBpcyAicnVubmluZyIsIGJ1dCBzaG91bGQg
c2NoZWR1bGUgaWYgInJ1bm5pbmciIGJ1aWxkIHJlcXVlc3QgZmFpbHMgYWZ0ZXJ3YXJkcycsIGFz
eW5jICgpID0+IHsKKyAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZFJldXNhYmxlQnVpbGRS
ZXF1ZXN0c01vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSwgIFsncnVubmluZycsICdzY2hl
ZHVsZWQnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5k
aW5nJywgJ3BlbmRpbmcnXSk7CisgICAgICAgICAgICBhd2FpdCBNYW5pZmVzdC5mZXRjaCgpOwor
ICAgICAgICAgICAgY29uc3QgY29uZmlnID0gTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0
aFR3b0J1aWxkZXJzT25lVGVzdGVyKCk7CisgICAgICAgICAgICBjb25zdCBsb2dnZXIgPSBuZXcg
TW9ja0xvZ2dlcjsKKyAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1z
bGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKKyAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJh
YmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CisgICAgICAgICAgICBjb25z
dCBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmln
Z2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZl
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxk
ZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOworICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOworICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmFsbCgpLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBsZXQgYnVpbGRSZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDgwMCk7CisgICAgICAgICAgICBsZXQgYW5vdGhlckJ1aWxkUmVxdWVz
dCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg5MDApOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGxldCBjb21taXRTZXQg
PSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CisgICAgICAgICAgICBsZXQgYW5vdGhlckNvbW1p
dFNldCA9IGFub3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CisgICAgICAgICAgICBhc3Nl
cnQub2soY29tbWl0U2V0LmVxdWFscyhhbm90aGVyQ29tbWl0U2V0LCB0cnVlKSk7CisKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CisgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmws
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRh
LnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0pXX0pOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVzZXQoKTsKKyAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUg
dGVzdGVyJywgMikpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNv
bHZlKHt9KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJywgMikpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZl
KHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4
MDB9KV19KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
ciAyJywgMikpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZl
KHt9KTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKKyAgICAgICAgICAgIGF3
YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQo
KTsKKyAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAz
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1l
dGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikp
OworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwg
J0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOwor
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzog
W01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDF9KSwgTW9ja0Rh
dGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDB9KV19KTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcp
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJs
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKKworICAgICAgICAgICAgYXdhaXQgc3luY1Byb21pc2U7
CisgICAgICAgICAgICBhd2FpdCBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2Nr
RGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVpbGRlcnNPbmVUZXN0ZXIoKS50cmlnZ2Vy
YWJsZU5hbWUpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5s
ZW5ndGgsIDgpOworICAgICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDgwMCk7CisgICAgICAgICAgICBhbm90aGVyQnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDkwMCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1cygpLCAnZmFpbGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVy
LTEnLCAxMjMpKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBudWxsKTsKKworICAgICAgICAgICAgY29uc3Qgc2Vjb25kU3luY1Byb21p
c2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3lu
Y09uY2UoKSk7CisgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBN
b2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVzZXQoKTsKKyAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRl
c3RlcicpKTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7
fSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5t
ZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEn
KSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOwor
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKKyAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKKyAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1
aWxkUmVxdWVzdElkOiA4MDF9KV19KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsK
KyAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhv
ZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0y
Jyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0uZGF0YSwgeydpZCc6IDkwMCwgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScs
ICdwYXJhbXMnOgorICAgICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdvcyc6ICcx
MC4xMSAxNUEyODQnLCAnd2stcGF0Y2gnOiAnaHR0cDovL2xvY2FsaG9zdDo4MTgwL2FwaS91cGxv
YWRlZC1maWxlLzEwMC50eHQnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2J1aWxkLXJlcXVl
c3QtaWQnOiAnOTAwJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0yJ319
KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBub3QgcmV1c2UgdGhlIHJvb3Qg
d2hlbiBzYW1lIGJ1aWxkIHJlcXVlc3QgaXMgYXZhaWFsYmxlIGJ1dCB0aGUgYnVpbGQgcmVxdWVz
dCBoYXMgYmVlbiBzY2hlZHVsZWQnLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBhd2FpdCBN
b2NrRGF0YS5hZGRSZXVzYWJsZUJ1aWxkUmVxdWVzdHNNb2NrRGF0YShUZXN0U2VydmVyLmRhdGFi
YXNlKCkpOworICAgICAgICAgICAgYXdhaXQgTWFuaWZlc3QuZmV0Y2goKTsKKyAgICAgICAgICAg
IGNvbnN0IGNvbmZpZyA9IE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhUd29CdWlsZGVy
c09uZVRlc3RlcigpOworICAgICAgICAgICAgY29uc3QgbG9nZ2VyID0gbmV3IE1vY2tMb2dnZXI7
CisgICAgICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNz
d29yZDogJ3Bhc3N3b3JkJ307CisgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBC
dWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1Jl
bW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOworICAgICAgICAgICAgY29uc3Qgc3luY1Byb21p
c2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3lu
Y09uY2UoKSk7CisgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBN
b2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVzZXQoKTsKKyAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5n
dGgsIDgpOworICAgICAgICAgICAgbGV0IGJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg4MDApOworICAgICAgICAgICAgbGV0IGFub3RoZXJCdWlsZFJlcXVlc3QgPSBCdWlsZFJl
cXVlc3QuZmluZEJ5SWQoOTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
L2J1aWRzLzEnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGxldCBjb21taXRTZXQgPSBidWlsZFJl
cXVlc3QuY29tbWl0U2V0KCk7CisgICAgICAgICAgICBsZXQgYW5vdGhlckNvbW1pdFNldCA9IGFu
b3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CisgICAgICAgICAgICBhc3NlcnQub2soY29t
bWl0U2V0LmVxdWFscyhhbm90aGVyQ29tbWl0U2V0LCB0cnVlKSk7CisKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
c2V0KCk7CisgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3Rlcics
IDIpKTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIp
KTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxk
cyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAxfSksIE1v
Y2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAwfSldfSk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CisgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CisgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLnJlc29sdmUoe30pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVz
b2x2ZSh7fSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CisgICAgICAgICAg
ICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKKyAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5u
aW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAxfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVp
bGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAwfSldfSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVp
bGREYXRhKHtidWlsZFJlcXVlc3RJZDogOTAwLCBidWlsZGVySWQ6IDN9KV19KTsKKyAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKKworICAgICAgICAgICAgYXdhaXQgc3luY1Byb21p
c2U7CisgICAgICAgICAgICBhd2FpdCBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShN
b2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVpbGRlcnNPbmVUZXN0ZXIoKS50cmln
Z2VyYWJsZU5hbWUpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwo
KS5sZW5ndGgsIDgpOworICAgICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDgwMCk7CisgICAgICAgICAgICBhbm90aGVyQnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDkwMCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlkcy8xJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMvMy9idWlsZHMv
MTI0Jyk7CisgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAgZGVzY3JpYmUoJ3VwZGF0ZVRyaWdn
ZXJhYmxlcycsICgpID0+IHsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90
b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcwppbmRleCA5ZWVkMTA2NTVhMWRlN2Qz
YWFjMDkxMGEzZWQ5MzdkYTRjMzVjYzkyLi4xZTE4ZjU3NDQwNzgxZjM0ODAxZjc5MTUxMzVlYWRl
ODcyMzBjYTY1IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMv
YnVpbGRib3QtdHJpZ2dlcmFibGUuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rv
b2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCkBAIC03Nyw0MiArNzcsNTAgQEAgY2xhc3Mg
QnVpbGRib3RUcmlnZ2VyYWJsZSB7CiAgICAgICAgICAgICB9KX0pOwogICAgIH0KIAotICAgIHN5
bmNPbmNlKCkKKyAgICBhc3luYyBzeW5jT25jZSgpCiAgICAgewotICAgICAgICBsZXQgc3luY2Vy
TGlzdCA9IHRoaXMuX3N5bmNlcnM7Ci0gICAgICAgIGxldCBidWlsZFJlcWV1c3RzQnlHcm91cCA9
IG5ldyBNYXA7Ci0KICAgICAgICAgdGhpcy5fbG9nZ2VyLmxvZyhgRmV0Y2hpbmcgYnVpbGQgcmVx
dWVzdHMgZm9yICR7dGhpcy5fbmFtZX0uLi5gKTsKLSAgICAgICAgbGV0IHZhbGlkUmVxdWVzdHM7
Ci0gICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZSh0aGlzLl9u
YW1lKS50aGVuKChidWlsZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAgICAgICB2YWxpZFJlcXVlc3Rz
ID0gdGhpcy5fdmFsaWRhdGVSZXF1ZXN0cyhidWlsZFJlcXVlc3RzKTsKLSAgICAgICAgICAgIGJ1
aWxkUmVxZXVzdHNCeUdyb3VwID0gQnVpbGRib3RUcmlnZ2VyYWJsZS5fdGVzdEdyb3VwTWFwRm9y
QnVpbGRSZXF1ZXN0cyhidWlsZFJlcXVlc3RzKTsKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9w
dWxsQnVpbGRib3RPbkFsbFN5bmNlcnMoYnVpbGRSZXFldXN0c0J5R3JvdXApOwotICAgICAgICB9
KS50aGVuKCh1cGRhdGVzKSA9PiB7Ci0gICAgICAgICAgICB0aGlzLl9sb2dnZXIubG9nKCdTY2hl
ZHVsaW5nIGJ1aWxkcycpOwotICAgICAgICAgICAgY29uc3QgcHJvbWlzdExpc3QgPSBbXTsKLSAg
ICAgICAgICAgIGNvbnN0IHRlc3RHcm91cExpc3QgPSBBcnJheS5mcm9tKGJ1aWxkUmVxZXVzdHNC
eUdyb3VwLnZhbHVlcygpKS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBhLmdyb3VwT3Jk
ZXIgLSBiLmdyb3VwT3JkZXI7IH0pOwotICAgICAgICAgICAgZm9yIChjb25zdCBncm91cCBvZiB0
ZXN0R3JvdXBMaXN0KSB7Ci0gICAgICAgICAgICAgICAgY29uc3QgbmV4dFJlcXVlc3QgPSB0aGlz
Ll9uZXh0UmVxdWVzdEluR3JvdXAoZ3JvdXAsIHVwZGF0ZXMpOwotICAgICAgICAgICAgICAgIGlm
ICghdmFsaWRSZXF1ZXN0cy5oYXMobmV4dFJlcXVlc3QpKQotICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgICAgICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5fc2NoZWR1bGVS
ZXF1ZXN0SWZTbGF2ZUlzQXZhaWxhYmxlKG5leHRSZXF1ZXN0LCBncm91cC5yZXF1ZXN0cywKLSAg
ICAgICAgICAgICAgICAgICAgbmV4dFJlcXVlc3QuaXNCdWlsZCgpID8gZ3JvdXAuYnVpbGRTeW5j
ZXIgOiBncm91cC50ZXN0U3luY2VyLAotICAgICAgICAgICAgICAgICAgICBuZXh0UmVxdWVzdC5p
c0J1aWxkKCkgPyBncm91cC5idWlsZFNsYXZlTmFtZSA6IGdyb3VwLnRlc3RTbGF2ZU5hbWUpOwot
ICAgICAgICAgICAgICAgIGlmIChwcm9taXNlKQotICAgICAgICAgICAgICAgICAgICBwcm9taXN0
TGlzdC5wdXNoKHByb21pc2UpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIFBy
b21pc2UuYWxsKHByb21pc3RMaXN0KTsKLSAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAvLyBQdWxsIGFsbCBidWlsZGJvdHMgZm9yIHRoZSBzZWNvbmQgdGltZSBzaW5jZSB0aGUg
cHJldmlvdXMgc3RlcCBtYXkgaGF2ZSBzY2hlZHVsZWQgbW9yZSBidWlsZHMuCi0gICAgICAgICAg
ICByZXR1cm4gdGhpcy5fcHVsbEJ1aWxkYm90T25BbGxTeW5jZXJzKGJ1aWxkUmVxZXVzdHNCeUdy
b3VwKTsKLSAgICAgICAgfSkudGhlbigodXBkYXRlcykgPT4gewotICAgICAgICAgICAgLy8gRklY
TUU6IEFkZCBhIG5ldyBBUEkgdGhhdCBqdXN0IHVwZGF0ZXMgdGhlIHJlcXVlc3RzLgotICAgICAg
ICAgICAgcmV0dXJuIHRoaXMuX3JlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoYC9hcGkvYnVpbGQt
cmVxdWVzdHMvJHt0aGlzLl9uYW1lfWAsIHsKLSAgICAgICAgICAgICAgICAnc2xhdmVOYW1lJzog
dGhpcy5fc2xhdmVJbmZvLm5hbWUsCi0gICAgICAgICAgICAgICAgJ3NsYXZlUGFzc3dvcmQnOiB0
aGlzLl9zbGF2ZUluZm8ucGFzc3dvcmQsCi0gICAgICAgICAgICAgICAgJ2J1aWxkUmVxdWVzdFVw
ZGF0ZXMnOiB1cGRhdGVzfSk7Ci0gICAgICAgIH0pOworCisgICAgICAgIGNvbnN0IGJ1aWxkUmVx
dWVzdHMgPSBhd2FpdCBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZSh0aGlzLl9uYW1l
KTsKKyAgICAgICAgY29uc3QgdmFsaWRSZXF1ZXN0cyA9IHRoaXMuX3ZhbGlkYXRlUmVxdWVzdHMo
YnVpbGRSZXF1ZXN0cyk7CisgICAgICAgIGNvbnN0IGJ1aWxkUmVxZXVzdHNCeUdyb3VwID0gQnVp
bGRib3RUcmlnZ2VyYWJsZS5fdGVzdEdyb3VwTWFwRm9yQnVpbGRSZXF1ZXN0cyhidWlsZFJlcXVl
c3RzKTsKKyAgICAgICAgbGV0IHVwZGF0ZXMgPSBhd2FpdCB0aGlzLl9wdWxsQnVpbGRib3RPbkFs
bFN5bmNlcnMoYnVpbGRSZXFldXN0c0J5R3JvdXApOworICAgICAgICBsZXQgcm9vdFJldXNlVXBk
YXRlcyA9IHt9CisgICAgICAgIHRoaXMuX2xvZ2dlci5sb2coJ1NjaGVkdWxpbmcgYnVpbGRzJyk7
CisgICAgICAgIGNvbnN0IHByb21pc2VMaXN0ID0gW107CisgICAgICAgIGNvbnN0IHRlc3RHcm91
cExpc3QgPSBBcnJheS5mcm9tKGJ1aWxkUmVxZXVzdHNCeUdyb3VwLnZhbHVlcygpKS5zb3J0KGZ1
bmN0aW9uIChhLCBiKSB7IHJldHVybiBhLmdyb3VwT3JkZXIgLSBiLmdyb3VwT3JkZXI7IH0pOwor
ICAgICAgICBmb3IgKGNvbnN0IGdyb3VwIG9mIHRlc3RHcm91cExpc3QpIHsKKyAgICAgICAgICAg
IGNvbnN0IG5leHRSZXF1ZXN0ID0gdGhpcy5fbmV4dFJlcXVlc3RJbkdyb3VwKGdyb3VwLCB1cGRh
dGVzKTsKKyAgICAgICAgICAgIGlmICghdmFsaWRSZXF1ZXN0cy5oYXMobmV4dFJlcXVlc3QpKQor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IG5l
eHRSZXF1ZXN0LnNhbWVCdWlsZFR5cGVCdWlsZFJlcXVlc3RVbmRlclNhbWVBbmFseXNpc1Rhc2so
KS50aGVuKChzYW1lQnVpbGRUeXBlQnVpbGRSZXF1ZXN0KSA9PiB7CisgICAgICAgICAgICAgICAg
aWYgKCFzYW1lQnVpbGRUeXBlQnVpbGRSZXF1ZXN0KSB7CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB0aGlzLl9zY2hlZHVsZVJlcXVlc3RJZlNsYXZlSXNBdmFpbGFibGUobmV4dFJlcXVlc3Qs
IGdyb3VwLnJlcXVlc3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFJlcXVlc3QuaXNC
dWlsZCgpID8gZ3JvdXAuYnVpbGRTeW5jZXIgOiBncm91cC50ZXN0U3luY2VyLAorICAgICAgICAg
ICAgICAgICAgICAgICAgbmV4dFJlcXVlc3QuaXNCdWlsZCgpID8gZ3JvdXAuYnVpbGRTbGF2ZU5h
bWUgOiBncm91cC50ZXN0U2xhdmVOYW1lKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNh
bWVCdWlsZFR5cGVCdWlsZFJlcXVlc3QuaGFzQ29tcGxldGVkKCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgdGhpcy5fbG9nZ2VyLmxvZyhgV2lsbCByZXVzZSBleGlzdGluZyByb290IGJ1aWx0IGZy
b20gJHtzYW1lQnVpbGRUeXBlQnVpbGRSZXF1ZXN0LmlkKCl9IGZvciAke25leHRSZXF1ZXN0Lmlk
KCl9YCk7CisgICAgICAgICAgICAgICAgICAgIHJvb3RSZXVzZVVwZGF0ZXNbbmV4dFJlcXVlc3Qu
aWQoKV0gPSB7c3RhdHVzOiAnY29tcGxldGVkJywgdXJsOiBzYW1lQnVpbGRUeXBlQnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzRGVzY3JpcHRp
b246IHNhbWVCdWlsZFR5cGVCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJldXNlQnVpbGRSZXF1ZXN0OiBzYW1lQnVpbGRUeXBlQnVpbGRS
ZXF1ZXN0LmlkKCl9OworCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAgICAgdGhpcy5fbG9nZ2VyLmxvZygnRm91bmQgYnVpbGQgcmVxdWVzdCBidWlsZGluZyBzYW1l
IHJvb3QsIHdpbGwgd2FpdCB1bnRpbCBpdCBmaW5pc2hlcy4nKTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHByb21pc2VMaXN0LnB1c2gocHJvbWlzZSk7
CisgICAgICAgIH0KKyAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZUxpc3QpOworCisg
ICAgICAgIHVwZGF0ZXMgPSBhd2FpdCB0aGlzLl9wdWxsQnVpbGRib3RPbkFsbFN5bmNlcnMoYnVp
bGRSZXFldXN0c0J5R3JvdXApOworICAgICAgICB1cGRhdGVzID0geworICAgICAgICAgICAgLi4u
cm9vdFJldXNlVXBkYXRlcywKKyAgICAgICAgICAgIC4uLnVwZGF0ZXMKKyAgICAgICAgfTsKKyAg
ICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX3JlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoYC9hcGkv
YnVpbGQtcmVxdWVzdHMvJHt0aGlzLl9uYW1lfWAsIHsKKyAgICAgICAgICAgICdzbGF2ZU5hbWUn
OiB0aGlzLl9zbGF2ZUluZm8ubmFtZSwKKyAgICAgICAgICAgICdzbGF2ZVBhc3N3b3JkJzogdGhp
cy5fc2xhdmVJbmZvLnBhc3N3b3JkLAorICAgICAgICAgICAgJ2J1aWxkUmVxdWVzdFVwZGF0ZXMn
OiB1cGRhdGVzfSk7CiAgICAgfQogCiAgICAgX3ZhbGlkYXRlUmVxdWVzdHMoYnVpbGRSZXF1ZXN0
cykKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2J1aWxk
LXJlcXVlc3QtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9i
dWlsZC1yZXF1ZXN0LXRlc3RzLmpzCmluZGV4IGYwOTI5NTViYTM1MmE3YThhNzZlZjgwYjA2ODJi
NDI3ZTU4NGNiZjEuLmU2NTE2Y2QxMmMzOWQxNmRhZjQ2ZTQ5ODg1ZWI5YjBkMDJjNjNlYmYgMTAw
NjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2J1aWxkLXJlcXVl
c3QtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVp
bGQtcmVxdWVzdC10ZXN0cy5qcwpAQCAtMyw3ICszLDkgQEAKIGNvbnN0IGFzc2VydCA9IHJlcXVp
cmUoJ2Fzc2VydCcpOwogCiByZXF1aXJlKCcuLi90b29scy9qcy92My1tb2RlbHMuanMnKTsKLWxl
dCBNb2NrTW9kZWxzID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvbW9jay12My1tb2RlbHMuanMnKS5N
b2NrTW9kZWxzOworY29uc3QgTW9ja01vZGVscyA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL21vY2st
djMtbW9kZWxzLmpzJykuTW9ja01vZGVsczsKK2NvbnN0IE5vZGVQcml2aWxlZ2VkQVBJID0gcmVx
dWlyZSgnLi4vdG9vbHMvanMvcHJpdmlsZWdlZC1hcGkuanMnKS5Qcml2aWxlZ2VkQVBJOworY29u
c3QgTW9ja1JlbW90ZUFQSSA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL21vY2stcmVtb3RlLWFwaS5q
cycpLk1vY2tSZW1vdGVBUEk7CiAKIGZ1bmN0aW9uIHNhbXBsZUJ1aWxkUmVxdWVzdERhdGEoKQog
ewpAQCAtNTYsOSArNTgsNDczIEBAIGZ1bmN0aW9uIHNhbXBsZUJ1aWxkUmVxdWVzdERhdGEoKQog
ICAgIH07CiB9CiAKK2Z1bmN0aW9uIG9uZVRlc3RHcm91cCgpIHsKKyAgICByZXR1cm4geworICAg
ICAgICAidGVzdEdyb3VwcyI6IFt7CisgICAgICAgICAgICAiaWQiOiAiMjEyOCIsCisgICAgICAg
ICAgICAidGFzayI6ICIxMzc2IiwKKyAgICAgICAgICAgICJwbGF0Zm9ybSI6ICIzMSIsCisgICAg
ICAgICAgICAibmFtZSI6ICJDb25maXJtIiwKKyAgICAgICAgICAgICJhdXRob3IiOiAicm5pd2Ei
LAorICAgICAgICAgICAgImNyZWF0ZWRBdCI6IDE0NTg2ODg1MTQwMDAsCisgICAgICAgICAgICAi
aGlkZGVuIjogZmFsc2UsCisgICAgICAgICAgICAibmVlZHNOb3RpZmljYXRpb24iOiB0cnVlLAor
ICAgICAgICAgICAgImJ1aWxkUmVxdWVzdHMiOiBbIjE2OTg1IiwgIjE2OTg2IiwgIjE2OTg3Iiwg
IjE2OTg4Il0sCisgICAgICAgICAgICAiY29tbWl0U2V0cyI6IFsiNDI1NSIsICI0MjU2Il0sCisg
ICAgICAgICAgICAibm90aWZpY2F0aW9uU2VudEF0IjogbnVsbCwKKyAgICAgICAgICAgICdpbml0
aWFsUmVwZXRpdGlvbkNvdW50JzogMQorICAgICAgICB9XSwKKyAgICAgICAgImJ1aWxkUmVxdWVz
dHMiOiBbeworICAgICAgICAgICAgImlkIjogIjE2OTg1IiwKKyAgICAgICAgICAgICJ0cmlnZ2Vy
YWJsZSI6ICIzIiwKKyAgICAgICAgICAgICJ0YXNrIjogIjEzNzYiLAorICAgICAgICAgICAgInRl
c3QiOiAiODQ0IiwKKyAgICAgICAgICAgICJwbGF0Zm9ybSI6ICIzMSIsCisgICAgICAgICAgICAi
dGVzdEdyb3VwIjogIjIxMjgiLAorICAgICAgICAgICAgIm9yZGVyIjogIi0yIiwKKyAgICAgICAg
ICAgICJjb21taXRTZXQiOiAiNDI1NSIsCisgICAgICAgICAgICAic3RhdHVzIjogInBlbmRpbmci
LAorICAgICAgICAgICAgInVybCI6IG51bGwsCisgICAgICAgICAgICAiYnVpbGQiOiBudWxsLAor
ICAgICAgICAgICAgImNyZWF0ZWRBdCI6IDE0NTg2ODg1MTQwMDAKKyAgICAgICAgfSwgeworICAg
ICAgICAgICAgImlkIjogIjE2OTg2IiwKKyAgICAgICAgICAgICJ0cmlnZ2VyYWJsZSI6ICIzIiwK
KyAgICAgICAgICAgICJ0YXNrIjogIjEzNzYiLAorICAgICAgICAgICAgInRlc3QiOiAiODQ0IiwK
KyAgICAgICAgICAgICJwbGF0Zm9ybSI6ICIzMSIsCisgICAgICAgICAgICAidGVzdEdyb3VwIjog
IjIxMjgiLAorICAgICAgICAgICAgIm9yZGVyIjogIi0xIiwKKyAgICAgICAgICAgICJjb21taXRT
ZXQiOiAiNDI1NiIsCisgICAgICAgICAgICAic3RhdHVzIjogInBlbmRpbmciLAorICAgICAgICAg
ICAgInVybCI6IG51bGwsCisgICAgICAgICAgICAiYnVpbGQiOiBudWxsLAorICAgICAgICAgICAg
ImNyZWF0ZWRBdCI6IDE0NTg2ODg1MTQwMDAKKyAgICAgICAgfSwgeworICAgICAgICAgICAgImlk
IjogIjE2OTg3IiwKKyAgICAgICAgICAgICJ0cmlnZ2VyYWJsZSI6ICIzIiwKKyAgICAgICAgICAg
ICJ0YXNrIjogIjEzNzYiLAorICAgICAgICAgICAgInRlc3QiOiAiODQ0IiwKKyAgICAgICAgICAg
ICJwbGF0Zm9ybSI6ICIzMSIsCisgICAgICAgICAgICAidGVzdEdyb3VwIjogIjIxMjgiLAorICAg
ICAgICAgICAgIm9yZGVyIjogIjAiLAorICAgICAgICAgICAgImNvbW1pdFNldCI6ICI0MjU1IiwK
KyAgICAgICAgICAgICJzdGF0dXMiOiAicGVuZGluZyIsCisgICAgICAgICAgICAidXJsIjogbnVs
bCwKKyAgICAgICAgICAgICJidWlsZCI6IG51bGwsCisgICAgICAgICAgICAiY3JlYXRlZEF0Ijog
MTQ1ODY4ODUxNDAwMAorICAgICAgICB9LCB7CisgICAgICAgICAgICAiaWQiOiAiMTY5ODgiLAor
ICAgICAgICAgICAgInRyaWdnZXJhYmxlIjogIjMiLAorICAgICAgICAgICAgInRhc2siOiAiMTM3
NiIsCisgICAgICAgICAgICAidGVzdCI6ICI4NDQiLAorICAgICAgICAgICAgInBsYXRmb3JtIjog
IjMxIiwKKyAgICAgICAgICAgICJ0ZXN0R3JvdXAiOiAiMjEyOCIsCisgICAgICAgICAgICAib3Jk
ZXIiOiAiMyIsCisgICAgICAgICAgICAiY29tbWl0U2V0IjogIjQyNTYiLAorICAgICAgICAgICAg
InN0YXR1cyI6ICJwZW5kaW5nIiwKKyAgICAgICAgICAgICJ1cmwiOiBudWxsLAorICAgICAgICAg
ICAgImJ1aWxkIjogbnVsbCwKKyAgICAgICAgICAgICJjcmVhdGVkQXQiOiAxNDU4Njg4NTE0MDAw
CisgICAgICAgIH1dLAorICAgICAgICAiY29tbWl0U2V0cyI6IFt7CisgICAgICAgICAgICAiaWQi
OiAiNDI1NSIsCisgICAgICAgICAgICAicmV2aXNpb25JdGVtcyI6IFt7ImNvbW1pdCI6ICI4Nzgz
MiJ9LCB7ImNvbW1pdCI6ICI5MzExNiJ9XSwKKyAgICAgICAgICAgICJjdXN0b21Sb290cyI6IFtd
LAorICAgICAgICB9LCB7CisgICAgICAgICAgICAiaWQiOiAiNDI1NiIsCisgICAgICAgICAgICAi
cmV2aXNpb25JdGVtcyI6IFt7ImNvbW1pdCI6ICI4NzgzMiJ9LCB7ImNvbW1pdCI6ICI5NjMzNiJ9
XSwKKyAgICAgICAgICAgICJjdXN0b21Sb290cyI6IFtdLAorICAgICAgICB9XSwKKyAgICAgICAg
ImNvbW1pdHMiOiBbeworICAgICAgICAgICAgImlkIjogIjg3ODMyIiwKKyAgICAgICAgICAgICJy
ZXBvc2l0b3J5IjogIjkiLAorICAgICAgICAgICAgInJldmlzaW9uIjogIjEwLjExIDE1QTI4NCIs
CisgICAgICAgICAgICAidGltZSI6IDAKKyAgICAgICAgfSwgeworICAgICAgICAgICAgImlkIjog
IjkzMTE2IiwKKyAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIjExIiwKKyAgICAgICAgICAgICJy
ZXZpc2lvbiI6ICIxOTE2MjIiLAorICAgICAgICAgICAgInRpbWUiOiAxNDQ1OTQ1ODE2ODc4Cisg
ICAgICAgIH0sIHsKKyAgICAgICAgICAgICJpZCI6ICI4NzgzMiIsCisgICAgICAgICAgICAicmVw
b3NpdG9yeSI6ICI5IiwKKyAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxMC4xMSAxNUEyODQiLAor
ICAgICAgICAgICAgInRpbWUiOiAwCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgICJpZCI6ICI5
NjMzNiIsCisgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICIxMSIsCisgICAgICAgICAgICAicmV2
aXNpb24iOiAiMTkyNzM2IiwKKyAgICAgICAgICAgICJ0aW1lIjogMTQ0ODIyNTMyNTY1MAorICAg
ICAgICB9XSwKKyAgICAgICAgInVwbG9hZGVkRmlsZXMiOiBbXSwKKyAgICAgICAgInN0YXR1cyI6
ICJPSyIKKyAgICB9OworfQorCitmdW5jdGlvbiB0aHJlZVRlc3RHcm91cHMoc2Vjb25kVGVzdEdy
b3VwT3ZlcnJpZGVzLCB0aGlyZFRlc3RHcm91cE92ZXJyaWRlcykgeworICAgIGlmICghc2Vjb25k
VGVzdEdyb3VwT3ZlcnJpZGVzKQorICAgICAgICBzZWNvbmRUZXN0R3JvdXBPdmVycmlkZXMgPSB7
fTsKKyAgICBpZiAoIXRoaXJkVGVzdEdyb3VwT3ZlcnJpZGVzKQorICAgICAgICB0aGlyZFRlc3RH
cm91cE92ZXJyaWRlcyA9IHt9OworICAgIHJldHVybiB7CisgICAgICAgICJ0ZXN0R3JvdXBzIjog
W3sKKyAgICAgICAgICAgICJpZCI6ICIyMTI4IiwKKyAgICAgICAgICAgICJ0YXNrIjogIjEzNzYi
LAorICAgICAgICAgICAgInBsYXRmb3JtIjogIjMxIiwKKyAgICAgICAgICAgICJuYW1lIjogIkNv
bmZpcm0iLAorICAgICAgICAgICAgImF1dGhvciI6ICJybml3YSIsCisgICAgICAgICAgICAiY3Jl
YXRlZEF0IjogMTQ1ODY4ODUxNDAwMCwKKyAgICAgICAgICAgICJoaWRkZW4iOiBmYWxzZSwKKyAg
ICAgICAgICAgICJuZWVkc05vdGlmaWNhdGlvbiI6IHRydWUsCisgICAgICAgICAgICAiYnVpbGRS
ZXF1ZXN0cyI6IFsiMTY5ODUiLCAiMTY5ODYiLCAiMTY5ODciLCAiMTY5ODgiXSwKKyAgICAgICAg
ICAgICJjb21taXRTZXRzIjogWyI0MjU1IiwgIjQyNTYiXSwKKyAgICAgICAgICAgICJub3RpZmlj
YXRpb25TZW50QXQiOiBudWxsLAorICAgICAgICAgICAgJ2luaXRpYWxSZXBldGl0aW9uQ291bnQn
OiAxCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgICJpZCI6ICIyMTI5IiwKKyAgICAgICAgICAg
ICJ0YXNrIjogc2Vjb25kVGVzdEdyb3VwT3ZlcnJpZGVzLnRhc2sgfHwgJzEzNzYnLAorICAgICAg
ICAgICAgInBsYXRmb3JtIjogc2Vjb25kVGVzdEdyb3VwT3ZlcnJpZGVzLnBsYXRmb3JtIHx8ICcz
MScsCisgICAgICAgICAgICAibmFtZSI6ICJDb25maXJtIiwKKyAgICAgICAgICAgICJhdXRob3Ii
OiAicm5pd2EiLAorICAgICAgICAgICAgImNyZWF0ZWRBdCI6IDE0NTg2ODg1MTQwMDAsCisgICAg
ICAgICAgICAiaGlkZGVuIjogZmFsc2UsCisgICAgICAgICAgICAibmVlZHNOb3RpZmljYXRpb24i
OiB0cnVlLAorICAgICAgICAgICAgImJ1aWxkUmVxdWVzdHMiOiBbIjE2OTg5IiwgIjE2OTkwIiwg
IjE2OTkxIiwgIjE2OTkyIl0sCisgICAgICAgICAgICAiY29tbWl0U2V0cyI6IFsiNDI1NSIsICI0
MjU2Il0sCisgICAgICAgICAgICAibm90aWZpY2F0aW9uU2VudEF0IjogbnVsbCwKKyAgICAgICAg
ICAgICdpbml0aWFsUmVwZXRpdGlvbkNvdW50JzogMQorICAgICAgICB9LCB7CisgICAgICAgICAg
ICAiaWQiOiAiMjEzMCIsCisgICAgICAgICAgICAidGFzayI6IHRoaXJkVGVzdEdyb3VwT3ZlcnJp
ZGVzLnRhc2sgfHwgJzEzNzYnLAorICAgICAgICAgICAgInBsYXRmb3JtIjogdGhpcmRUZXN0R3Jv
dXBPdmVycmlkZXMucGxhdGZvcm0gfHwgJzMxJywKKyAgICAgICAgICAgICJuYW1lIjogIkNvbmZp
cm0iLAorICAgICAgICAgICAgImF1dGhvciI6ICJybml3YSIsCisgICAgICAgICAgICAiY3JlYXRl
ZEF0IjogMTQ1ODY4ODUxNDAwMCwKKyAgICAgICAgICAgICJoaWRkZW4iOiBmYWxzZSwKKyAgICAg
ICAgICAgICJuZWVkc05vdGlmaWNhdGlvbiI6IHRydWUsCisgICAgICAgICAgICAiYnVpbGRSZXF1
ZXN0cyI6IFsiMTY5OTMiLCAiMTY5OTQiLCAiMTY5OTUiLCAiMTY5OTYiXSwKKyAgICAgICAgICAg
ICJjb21taXRTZXRzIjogWyI0MjU1IiwgIjQyNTYiXSwKKyAgICAgICAgICAgICJub3RpZmljYXRp
b25TZW50QXQiOiBudWxsLAorICAgICAgICAgICAgJ2luaXRpYWxSZXBldGl0aW9uQ291bnQnOiAx
CisgICAgICAgIH1dLAorICAgICAgICAiYnVpbGRSZXF1ZXN0cyI6IFt7CisgICAgICAgICAgICAi
aWQiOiAiMTY5ODUiLAorICAgICAgICAgICAgInRyaWdnZXJhYmxlIjogIjMiLAorICAgICAgICAg
ICAgInRhc2siOiAiMTM3NiIsCisgICAgICAgICAgICAidGVzdCI6ICI4NDQiLAorICAgICAgICAg
ICAgInBsYXRmb3JtIjogIjMxIiwKKyAgICAgICAgICAgICJ0ZXN0R3JvdXAiOiAiMjEyOCIsCisg
ICAgICAgICAgICAib3JkZXIiOiAiLTIiLAorICAgICAgICAgICAgImNvbW1pdFNldCI6ICI0MjU1
IiwKKyAgICAgICAgICAgICJzdGF0dXMiOiAicGVuZGluZyIsCisgICAgICAgICAgICAidXJsIjog
bnVsbCwKKyAgICAgICAgICAgICJidWlsZCI6IG51bGwsCisgICAgICAgICAgICAiY3JlYXRlZEF0
IjogMTQ1ODY4ODUxNDAwMAorICAgICAgICB9LCB7CisgICAgICAgICAgICAiaWQiOiAiMTY5ODYi
LAorICAgICAgICAgICAgInRyaWdnZXJhYmxlIjogIjMiLAorICAgICAgICAgICAgInRhc2siOiAi
MTM3NiIsCisgICAgICAgICAgICAidGVzdCI6ICI4NDQiLAorICAgICAgICAgICAgInBsYXRmb3Jt
IjogIjMxIiwKKyAgICAgICAgICAgICJ0ZXN0R3JvdXAiOiAiMjEyOCIsCisgICAgICAgICAgICAi
b3JkZXIiOiAiLTEiLAorICAgICAgICAgICAgImNvbW1pdFNldCI6ICI0MjU2IiwKKyAgICAgICAg
ICAgICJzdGF0dXMiOiAicGVuZGluZyIsCisgICAgICAgICAgICAidXJsIjogbnVsbCwKKyAgICAg
ICAgICAgICJidWlsZCI6IG51bGwsCisgICAgICAgICAgICAiY3JlYXRlZEF0IjogMTQ1ODY4ODUx
NDAwMAorICAgICAgICB9LCB7CisgICAgICAgICAgICAiaWQiOiAiMTY5ODciLAorICAgICAgICAg
ICAgInRyaWdnZXJhYmxlIjogIjMiLAorICAgICAgICAgICAgInRhc2siOiAiMTM3NiIsCisgICAg
ICAgICAgICAidGVzdCI6ICI4NDQiLAorICAgICAgICAgICAgInBsYXRmb3JtIjogIjMxIiwKKyAg
ICAgICAgICAgICJ0ZXN0R3JvdXAiOiAiMjEyOCIsCisgICAgICAgICAgICAib3JkZXIiOiAiMCIs
CisgICAgICAgICAgICAiY29tbWl0U2V0IjogIjQyNTUiLAorICAgICAgICAgICAgInN0YXR1cyI6
ICJwZW5kaW5nIiwKKyAgICAgICAgICAgICJ1cmwiOiBudWxsLAorICAgICAgICAgICAgImJ1aWxk
IjogbnVsbCwKKyAgICAgICAgICAgICJjcmVhdGVkQXQiOiAxNDU4Njg4NTE0MDAwCisgICAgICAg
IH0sIHsKKyAgICAgICAgICAgICJpZCI6ICIxNjk4OCIsCisgICAgICAgICAgICAidHJpZ2dlcmFi
bGUiOiAiMyIsCisgICAgICAgICAgICAidGFzayI6ICIxMzc2IiwKKyAgICAgICAgICAgICJ0ZXN0
IjogIjg0NCIsCisgICAgICAgICAgICAicGxhdGZvcm0iOiAiMzEiLAorICAgICAgICAgICAgInRl
c3RHcm91cCI6ICIyMTI4IiwKKyAgICAgICAgICAgICJvcmRlciI6ICIxIiwKKyAgICAgICAgICAg
ICJjb21taXRTZXQiOiAiNDI1NiIsCisgICAgICAgICAgICAic3RhdHVzIjogInBlbmRpbmciLAor
ICAgICAgICAgICAgInVybCI6IG51bGwsCisgICAgICAgICAgICAiYnVpbGQiOiBudWxsLAorICAg
ICAgICAgICAgImNyZWF0ZWRBdCI6IDE0NTg2ODg1MTQwMDAKKyAgICAgICAgfSwgeworICAgICAg
ICAgICAgImlkIjogIjE2OTg5IiwKKyAgICAgICAgICAgICJ0cmlnZ2VyYWJsZSI6ICIzIiwKKyAg
ICAgICAgICAgICJ0YXNrIjogc2Vjb25kVGVzdEdyb3VwT3ZlcnJpZGVzLnRhc2sgfHwgJzEzNzYn
LAorICAgICAgICAgICAgInRlc3QiOiAiODQ0IiwKKyAgICAgICAgICAgICJwbGF0Zm9ybSI6IHNl
Y29uZFRlc3RHcm91cE92ZXJyaWRlcy5wbGF0Zm9ybSB8fCAnMzEnLAorICAgICAgICAgICAgInRl
c3RHcm91cCI6ICIyMTI5IiwKKyAgICAgICAgICAgICJvcmRlciI6ICItMiIsCisgICAgICAgICAg
ICAiY29tbWl0U2V0IjogIjQyNTUiLAorICAgICAgICAgICAgInN0YXR1cyI6IHNlY29uZFRlc3RH
cm91cE92ZXJyaWRlcy5zdGF0dXMgJiYgc2Vjb25kVGVzdEdyb3VwT3ZlcnJpZGVzLnN0YXR1c1sw
XSB8fCAncGVuZGluZycsCisgICAgICAgICAgICAidXJsIjogbnVsbCwKKyAgICAgICAgICAgICJi
dWlsZCI6IG51bGwsCisgICAgICAgICAgICAiY3JlYXRlZEF0IjogMTQ1ODY4ODUxNDAwMAorICAg
ICAgICB9LCB7CisgICAgICAgICAgICAiaWQiOiAiMTY5OTAiLAorICAgICAgICAgICAgInRyaWdn
ZXJhYmxlIjogIjMiLAorICAgICAgICAgICAgInRhc2siOiBzZWNvbmRUZXN0R3JvdXBPdmVycmlk
ZXMudGFzayB8fCAnMTM3NicsCisgICAgICAgICAgICAidGVzdCI6ICI4NDQiLAorICAgICAgICAg
ICAgInBsYXRmb3JtIjogc2Vjb25kVGVzdEdyb3VwT3ZlcnJpZGVzLnBsYXRmb3JtIHx8ICczMScs
CisgICAgICAgICAgICAidGVzdEdyb3VwIjogIjIxMjkiLAorICAgICAgICAgICAgIm9yZGVyIjog
Ii0xIiwKKyAgICAgICAgICAgICJjb21taXRTZXQiOiAiNDI1NiIsCisgICAgICAgICAgICAic3Rh
dHVzIjogc2Vjb25kVGVzdEdyb3VwT3ZlcnJpZGVzLnN0YXR1cyAmJiBzZWNvbmRUZXN0R3JvdXBP
dmVycmlkZXMuc3RhdHVzWzFdIHx8ICdwZW5kaW5nJywKKyAgICAgICAgICAgICJ1cmwiOiBudWxs
LAorICAgICAgICAgICAgImJ1aWxkIjogbnVsbCwKKyAgICAgICAgICAgICJjcmVhdGVkQXQiOiAx
NDU4Njg4NTE0MDAwCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgICJpZCI6ICIxNjk5MSIsCisg
ICAgICAgICAgICAidHJpZ2dlcmFibGUiOiAiMyIsCisgICAgICAgICAgICAidGFzayI6IHNlY29u
ZFRlc3RHcm91cE92ZXJyaWRlcy50YXNrIHx8ICcxMzc2JywKKyAgICAgICAgICAgICJ0ZXN0Ijog
Ijg0NCIsCisgICAgICAgICAgICAicGxhdGZvcm0iOiBzZWNvbmRUZXN0R3JvdXBPdmVycmlkZXMu
cGxhdGZvcm0gfHwgJzMxJywKKyAgICAgICAgICAgICJ0ZXN0R3JvdXAiOiAiMjEyOSIsCisgICAg
ICAgICAgICAib3JkZXIiOiAiMCIsCisgICAgICAgICAgICAiY29tbWl0U2V0IjogIjQyNTUiLAor
ICAgICAgICAgICAgInN0YXR1cyI6IHNlY29uZFRlc3RHcm91cE92ZXJyaWRlcy5zdGF0dXMgJiYg
c2Vjb25kVGVzdEdyb3VwT3ZlcnJpZGVzLnN0YXR1c1syXSB8fCAncGVuZGluZycsCisgICAgICAg
ICAgICAidXJsIjogbnVsbCwKKyAgICAgICAgICAgICJidWlsZCI6IG51bGwsCisgICAgICAgICAg
ICAiY3JlYXRlZEF0IjogMTQ1ODY4ODUxNDAwMAorICAgICAgICB9LCB7CisgICAgICAgICAgICAi
aWQiOiAiMTY5OTIiLAorICAgICAgICAgICAgInRyaWdnZXJhYmxlIjogIjMiLAorICAgICAgICAg
ICAgInRhc2siOiBzZWNvbmRUZXN0R3JvdXBPdmVycmlkZXMudGFzayB8fCAnMTM3NicsCisgICAg
ICAgICAgICAidGVzdCI6ICI4NDQiLAorICAgICAgICAgICAgInBsYXRmb3JtIjogc2Vjb25kVGVz
dEdyb3VwT3ZlcnJpZGVzLnBsYXRmb3JtIHx8ICczMScsCisgICAgICAgICAgICAidGVzdEdyb3Vw
IjogIjIxMjkiLAorICAgICAgICAgICAgIm9yZGVyIjogIjMiLAorICAgICAgICAgICAgImNvbW1p
dFNldCI6ICI0MjU2IiwKKyAgICAgICAgICAgICJzdGF0dXMiOiBzZWNvbmRUZXN0R3JvdXBPdmVy
cmlkZXMuc3RhdHVzICYmIHNlY29uZFRlc3RHcm91cE92ZXJyaWRlcy5zdGF0dXNbM10gfHwgJ3Bl
bmRpbmcnLAorICAgICAgICAgICAgInVybCI6IG51bGwsCisgICAgICAgICAgICAiYnVpbGQiOiBu
dWxsLAorICAgICAgICAgICAgImNyZWF0ZWRBdCI6IDE0NTg2ODg1MTQwMDAKKyAgICAgICAgfSwg
eworICAgICAgICAgICAgImlkIjogIjE2OTkzIiwKKyAgICAgICAgICAgICJ0cmlnZ2VyYWJsZSI6
ICIzIiwKKyAgICAgICAgICAgICJ0YXNrIjogdGhpcmRUZXN0R3JvdXBPdmVycmlkZXMudGFzayB8
fCAnMTM3NicsCisgICAgICAgICAgICAidGVzdCI6ICI4NDQiLAorICAgICAgICAgICAgInBsYXRm
b3JtIjogdGhpcmRUZXN0R3JvdXBPdmVycmlkZXMucGxhdGZvcm0gfHwgJzMxJywKKyAgICAgICAg
ICAgICJ0ZXN0R3JvdXAiOiAiMjEzMCIsCisgICAgICAgICAgICAib3JkZXIiOiAiLTIiLAorICAg
ICAgICAgICAgImNvbW1pdFNldCI6ICI0MjU1IiwKKyAgICAgICAgICAgICJzdGF0dXMiOiB0aGly
ZFRlc3RHcm91cE92ZXJyaWRlcy5zdGF0dXMgJiYgdGhpcmRUZXN0R3JvdXBPdmVycmlkZXMuc3Rh
dHVzWzBdIHx8ICdwZW5kaW5nJywKKyAgICAgICAgICAgICJ1cmwiOiBudWxsLAorICAgICAgICAg
ICAgImJ1aWxkIjogbnVsbCwKKyAgICAgICAgICAgICJjcmVhdGVkQXQiOiAxNDU4Njg4NTE0MDAw
CisgICAgICAgIH0sIHsKKyAgICAgICAgICAgICJpZCI6ICIxNjk5NCIsCisgICAgICAgICAgICAi
dHJpZ2dlcmFibGUiOiAiMyIsCisgICAgICAgICAgICAidGFzayI6IHRoaXJkVGVzdEdyb3VwT3Zl
cnJpZGVzLnRhc2sgfHwgJzEzNzYnLAorICAgICAgICAgICAgInRlc3QiOiAiODQ0IiwKKyAgICAg
ICAgICAgICJwbGF0Zm9ybSI6IHRoaXJkVGVzdEdyb3VwT3ZlcnJpZGVzLnBsYXRmb3JtIHx8ICcz
MScsCisgICAgICAgICAgICAidGVzdEdyb3VwIjogIjIxMzAiLAorICAgICAgICAgICAgIm9yZGVy
IjogIi0xIiwKKyAgICAgICAgICAgICJjb21taXRTZXQiOiAiNDI1NiIsCisgICAgICAgICAgICAi
c3RhdHVzIjogdGhpcmRUZXN0R3JvdXBPdmVycmlkZXMuc3RhdHVzICYmIHRoaXJkVGVzdEdyb3Vw
T3ZlcnJpZGVzLnN0YXR1c1sxXSB8fCAncGVuZGluZycsCisgICAgICAgICAgICAidXJsIjogbnVs
bCwKKyAgICAgICAgICAgICJidWlsZCI6IG51bGwsCisgICAgICAgICAgICAiY3JlYXRlZEF0Ijog
MTQ1ODY4ODUxNDAwMAorICAgICAgICB9LCB7CisgICAgICAgICAgICAiaWQiOiAiMTY5OTUiLAor
ICAgICAgICAgICAgInRyaWdnZXJhYmxlIjogIjMiLAorICAgICAgICAgICAgInRhc2siOiB0aGly
ZFRlc3RHcm91cE92ZXJyaWRlcy50YXNrIHx8ICcxMzc2JywKKyAgICAgICAgICAgICJ0ZXN0Ijog
Ijg0NCIsCisgICAgICAgICAgICAicGxhdGZvcm0iOiB0aGlyZFRlc3RHcm91cE92ZXJyaWRlcy5w
bGF0Zm9ybSB8fCAnMzEnLAorICAgICAgICAgICAgInRlc3RHcm91cCI6ICIyMTMwIiwKKyAgICAg
ICAgICAgICJvcmRlciI6ICIwIiwKKyAgICAgICAgICAgICJjb21taXRTZXQiOiAiNDI1NSIsCisg
ICAgICAgICAgICAic3RhdHVzIjogdGhpcmRUZXN0R3JvdXBPdmVycmlkZXMuc3RhdHVzICYmIHRo
aXJkVGVzdEdyb3VwT3ZlcnJpZGVzLnN0YXR1c1syXSB8fCAncGVuZGluZycsCisgICAgICAgICAg
ICAidXJsIjogbnVsbCwKKyAgICAgICAgICAgICJidWlsZCI6IG51bGwsCisgICAgICAgICAgICAi
Y3JlYXRlZEF0IjogMTQ1ODY4ODUxNDAwMAorICAgICAgICB9LCB7CisgICAgICAgICAgICAiaWQi
OiAiMTY5OTYiLAorICAgICAgICAgICAgInRyaWdnZXJhYmxlIjogIjMiLAorICAgICAgICAgICAg
InRhc2siOiBzZWNvbmRUZXN0R3JvdXBPdmVycmlkZXMudGFzayB8fCAnMTM3NicsCisgICAgICAg
ICAgICAidGVzdCI6ICI4NDQiLAorICAgICAgICAgICAgInBsYXRmb3JtIjogc2Vjb25kVGVzdEdy
b3VwT3ZlcnJpZGVzLnBsYXRmb3JtIHx8ICczMScsCisgICAgICAgICAgICAidGVzdEdyb3VwIjog
IjIxMzAiLAorICAgICAgICAgICAgIm9yZGVyIjogIjEiLAorICAgICAgICAgICAgImNvbW1pdFNl
dCI6ICI0MjU2IiwKKyAgICAgICAgICAgICJzdGF0dXMiOiB0aGlyZFRlc3RHcm91cE92ZXJyaWRl
cy5zdGF0dXMgJiYgdGhpcmRUZXN0R3JvdXBPdmVycmlkZXMuc3RhdHVzWzNdIHx8ICdwZW5kaW5n
JywKKyAgICAgICAgICAgICJ1cmwiOiBudWxsLAorICAgICAgICAgICAgImJ1aWxkIjogbnVsbCwK
KyAgICAgICAgICAgICJjcmVhdGVkQXQiOiAxNDU4Njg4NTE0MDAwCisgICAgICAgIH1dLAorICAg
ICAgICAiY29tbWl0U2V0cyI6IFt7CisgICAgICAgICAgICAiaWQiOiAiNDI1NSIsCisgICAgICAg
ICAgICAicmV2aXNpb25JdGVtcyI6IFt7ImNvbW1pdCI6ICI4NzgzMiJ9LCB7ImNvbW1pdCI6ICI5
MzExNiJ9XSwKKyAgICAgICAgICAgICJjdXN0b21Sb290cyI6IFtdLAorICAgICAgICB9LCB7Cisg
ICAgICAgICAgICAiaWQiOiAiNDI1NiIsCisgICAgICAgICAgICAicmV2aXNpb25JdGVtcyI6IFt7
ImNvbW1pdCI6ICI4NzgzMiJ9LCB7ImNvbW1pdCI6ICI5NjMzNiJ9XSwKKyAgICAgICAgICAgICJj
dXN0b21Sb290cyI6IFtdLAorICAgICAgICB9XSwKKyAgICAgICAgImNvbW1pdHMiOiBbeworICAg
ICAgICAgICAgImlkIjogIjg3ODMyIiwKKyAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIjkiLAor
ICAgICAgICAgICAgInJldmlzaW9uIjogIjEwLjExIDE1QTI4NCIsCisgICAgICAgICAgICAidGlt
ZSI6IDAKKyAgICAgICAgfSwgeworICAgICAgICAgICAgImlkIjogIjkzMTE2IiwKKyAgICAgICAg
ICAgICJyZXBvc2l0b3J5IjogIjExIiwKKyAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxOTE2MjIi
LAorICAgICAgICAgICAgInRpbWUiOiAxNDQ1OTQ1ODE2ODc4CisgICAgICAgIH0sIHsKKyAgICAg
ICAgICAgICJpZCI6ICI4NzgzMiIsCisgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICI5IiwKKyAg
ICAgICAgICAgICJyZXZpc2lvbiI6ICIxMC4xMSAxNUEyODQiLAorICAgICAgICAgICAgInRpbWUi
OiAwCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgICJpZCI6ICI5NjMzNiIsCisgICAgICAgICAg
ICAicmVwb3NpdG9yeSI6ICIxMSIsCisgICAgICAgICAgICAicmV2aXNpb24iOiAiMTkyNzM2IiwK
KyAgICAgICAgICAgICJ0aW1lIjogMTQ0ODIyNTMyNTY1MAorICAgICAgICB9XSwKKyAgICAgICAg
InVwbG9hZGVkRmlsZXMiOiBbXSwKKyAgICAgICAgInN0YXR1cyI6ICJPSyIKKyAgICB9OworfQor
CiBkZXNjcmliZSgnQnVpbGRSZXF1ZXN0JywgZnVuY3Rpb24gKCkgewogICAgIE1vY2tNb2RlbHMu
aW5qZWN0KCk7CiAKKyAgICBkZXNjcmliZSgnc2FtZUJ1aWxkVHlwZUJ1aWxkUmVxdWVzdFVuZGVy
U2FtZUFuYWx5c2lzVGFzaycsICgpID0+IHsKKyAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBNb2Nr
UmVtb3RlQVBJLmluamVjdCgnaHR0cHM6Ly9wZXJmLndlYmtpdC5vcmcnLCBOb2RlUHJpdmlsZWdl
ZEFQSSk7CisgICAgICAgIGJlZm9yZUVhY2goKCkgPT4geworICAgICAgICAgICAgUHJpdmlsZWdl
ZEFQSS5jb25maWd1cmUoJ3Rlc3QnLCAncGFzc3dvcmQnKTsKKyAgICAgICAgfSk7CisKKyAgICAg
ICAgaXQoJ3Nob3VsZCByZXR1cm4gbnVsbCB3aGVuIHRoZSBidWlsZCByZXF1ZXN0IGlzIG5vdCBi
dWlsZCB0eXBlIGJ1aWxkIHJlcXVlc3QnLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBjb25z
dCBkYXRhID0gc2FtcGxlQnVpbGRSZXF1ZXN0RGF0YSgpOworICAgICAgICAgICAgY29uc3QgcmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5jb25zdHJ1Y3RCdWlsZFJlcXVlc3RzRnJvbURhdGEoZGF0YSlb
MF07CisgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXF1ZXN0LnNhbWVCdWlsZFR5
cGVCdWlsZFJlcXVlc3RVbmRlclNhbWVBbmFseXNpc1Rhc2soKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHQsIG51bGwpOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxk
IHJldHVybiBudWxsIGlmIHRoaXMgdGhlcmUgaXMgbm8gb3RoZXIgdGVzdCBncm91cCB1bmRlciBj
dXJyZW50IGFuYWx5c2lzIHRhc2snLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBk
YXRhID0gb25lVGVzdEdyb3VwKCk7CisgICAgICAgICAgICBjb25zdCBwbGF0Zm9ybUlkID0gZGF0
YS5idWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtOworICAgICAgICAgICAgUGxhdGZvcm0uZW5zdXJl
U2luZ2xldG9uKHBsYXRmb3JtSWQsIHtpZDogcGxhdGZvcm1JZCwgbWV0cmljczogW10sIG5hbWU6
ICdzb21lIHBsYXRmb3JtJ30pOworICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IEJ1aWxkUmVx
dWVzdC5jb25zdHJ1Y3RCdWlsZFJlcXVlc3RzRnJvbURhdGEoZGF0YSlbMF07CisgICAgICAgICAg
ICBjb25zdCBwcm9taXNlID0gcmVxdWVzdC5zYW1lQnVpbGRUeXBlQnVpbGRSZXF1ZXN0VW5kZXJT
YW1lQW5hbHlzaXNUYXNrKCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAxKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9h
cGkvdGVzdC1ncm91cHM/dGFzaz0xMzc2Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZl
KG9uZVRlc3RHcm91cCgpKTsKKworICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcHJv
bWlzZTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHQsIG51bGwpOworICAgICAgICB9
KTsKKworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiBjb21wbGV0ZWQgYnVpbGQgcmVxdWVzdCBp
ZiBhIGNvbXBsZXRlZCByZXVzYWJsZSBidWlsZCByZXF1ZXN0IGZvdW5kJywgYXN5bmMgKCkgPT4g
eworICAgICAgICAgICAgY29uc3Qgb3ZlcnJpZGVzID0geworICAgICAgICAgICAgICAgIHRhc2s6
ICcxMzc2JywKKyAgICAgICAgICAgICAgICBwbGF0Zm9ybTogJzMxJywKKyAgICAgICAgICAgICAg
ICBzdGF0dXM6IFsnY29tcGxldGVkJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJ10K
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB0aHJlZVRlc3RHcm91cHMo
b3ZlcnJpZGVzKTsKKyAgICAgICAgICAgIGNvbnN0IHBsYXRmb3JtSWQgPSBkYXRhLmJ1aWxkUmVx
dWVzdHNbMF0ucGxhdGZvcm07CisgICAgICAgICAgICBQbGF0Zm9ybS5lbnN1cmVTaW5nbGV0b24o
cGxhdGZvcm1JZCwge2lkOiBwbGF0Zm9ybUlkLCBtZXRyaWNzOiBbXSwgbmFtZTogJ3NvbWUgcGxh
dGZvcm0nfSk7CisgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmNvbnN0
cnVjdEJ1aWxkUmVxdWVzdHNGcm9tRGF0YShkYXRhKVswXTsKKyAgICAgICAgICAgIGNvbnN0IHBy
b21pc2UgPSByZXF1ZXN0LnNhbWVCdWlsZFR5cGVCdWlsZFJlcXVlc3RVbmRlclNhbWVBbmFseXNp
c1Rhc2soKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwor
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2FwaS90ZXN0LWdy
b3Vwcz90YXNrPTEzNzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5t
ZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUodGhyZWVUZXN0
R3JvdXBzKG92ZXJyaWRlcykpOworCisgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBw
cm9taXNlOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdCwgQnVpbGRSZXF1ZXN0LmZp
bmRCeUlkKDE2OTg5KSkKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBvbmx5IGFs
bG93IGlkZW50aWNhbCBwbGF0Zm9ybSBpZiB0aGUgcGxhdGZvcm0gaXMgbm90IHVuZGVyIGEgcGxh
dGZvcm0gZ3JvdXAnLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBvdmVycmlkZXMg
PSB7CisgICAgICAgICAgICAgICAgdGFzazogJzEzNzYnLAorICAgICAgICAgICAgICAgIHBsYXRm
b3JtOiAnMzInLAorICAgICAgICAgICAgICAgIHN0YXR1czogWydjb21wbGV0ZWQnLCAncGVuZGlu
ZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnXQorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGNv
bnN0IGRhdGEgPSB0aHJlZVRlc3RHcm91cHMob3ZlcnJpZGVzKTsKKyAgICAgICAgICAgIGNvbnN0
IHBsYXRmb3JtSWQgPSBkYXRhLmJ1aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm07CisgICAgICAgICAg
ICBQbGF0Zm9ybS5lbnN1cmVTaW5nbGV0b24ocGxhdGZvcm1JZCwge2lkOiBwbGF0Zm9ybUlkLCBt
ZXRyaWNzOiBbXSwgbmFtZTogJ3NvbWUgcGxhdGZvcm0nfSk7CisgICAgICAgICAgICBQbGF0Zm9y
bS5lbnN1cmVTaW5nbGV0b24oJzMyJywge2lkOiAnMzInLCBtZXRyaWNzOiBbXSwgbmFtZTogJ2Fu
b3RoZXIgcGxhdGZvcm0nfSk7CisgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0LmNvbnN0cnVjdEJ1aWxkUmVxdWVzdHNGcm9tRGF0YShkYXRhKVswXTsKKyAgICAgICAgICAg
IGNvbnN0IHByb21pc2UgPSByZXF1ZXN0LnNhbWVCdWlsZFR5cGVCdWlsZFJlcXVlc3RVbmRlclNh
bWVBbmFseXNpc1Rhc2soKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDEpOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2Fw
aS90ZXN0LWdyb3Vwcz90YXNrPTEzNzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUo
dGhyZWVUZXN0R3JvdXBzKG92ZXJyaWRlcykpOworCisgICAgICAgICAgICBjb25zdCByZXN1bHQg
PSBhd2FpdCBwcm9taXNlOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdCwgbnVsbCk7
CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgYWxsb3cgZGlmZmVyZW50IHBsYXRm
b3JtIGlmIHRoZSBwbGF0Zm9ybXMgYXJlIHVuZGVyIHRoZSBzYW1lIHBsYXRmb3JtIGdyb3VwJywg
YXN5bmMgKCkgPT4geworICAgICAgICAgICAgY29uc3Qgb3ZlcnJpZGVzID0geworICAgICAgICAg
ICAgICAgIHRhc2s6ICcxMzc2JywKKyAgICAgICAgICAgICAgICBwbGF0Zm9ybTogJzMyJywKKyAg
ICAgICAgICAgICAgICBzdGF0dXM6IFsnY29tcGxldGVkJywgJ3BlbmRpbmcnLCAncGVuZGluZycs
ICdwZW5kaW5nJ10KKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBjb25zdCBkYXRhID0gdGhy
ZWVUZXN0R3JvdXBzKG92ZXJyaWRlcyk7CisgICAgICAgICAgICBjb25zdCBwbGF0Zm9ybUlkID0g
ZGF0YS5idWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtOworICAgICAgICAgICAgY29uc3QgcGxhdGZv
cm1Hcm91cCA9IFBsYXRmb3JtR3JvdXAuZW5zdXJlU2luZ2xldG9uKCcxJywge2lkOiAxLCBuYW1l
OiAnc29tZSBwbGF0Zm9ybSBncm91cCd9KTsKKyAgICAgICAgICAgIFBsYXRmb3JtLmVuc3VyZVNp
bmdsZXRvbihwbGF0Zm9ybUlkLCB7aWQ6IHBsYXRmb3JtSWQsIG1ldHJpY3M6IFtdLCBuYW1lOiAn
c29tZSBwbGF0Zm9ybScsIGdyb3VwOiBwbGF0Zm9ybUdyb3VwfSk7CisgICAgICAgICAgICBQbGF0
Zm9ybS5lbnN1cmVTaW5nbGV0b24oJzMyJywge2lkOiAnMzInLCBtZXRyaWNzOiBbXSwgbmFtZTog
J2Fub3RoZXIgcGxhdGZvcm0nLCBncm91cDogcGxhdGZvcm1Hcm91cH0pOworICAgICAgICAgICAg
Y29uc3QgcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5jb25zdHJ1Y3RCdWlsZFJlcXVlc3RzRnJvbURh
dGEoZGF0YSlbMF07CisgICAgICAgICAgICBjb25zdCBwcm9taXNlID0gcmVxdWVzdC5zYW1lQnVp
bGRUeXBlQnVpbGRSZXF1ZXN0VW5kZXJTYW1lQW5hbHlzaXNUYXNrKCk7CisgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzBdLnVybCwgJy9hcGkvdGVzdC1ncm91cHM/dGFzaz0xMzc2Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAg
ICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKHRocmVlVGVzdEdyb3VwcyhvdmVycmlkZXMpKTsKKwor
ICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcHJvbWlzZTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXN1bHQsIEJ1aWxkUmVxdWVzdC5maW5kQnlJZCgxNjk4OSkpCisgICAgICAg
IH0pOworCisgICAgICAgIGl0KCdzaG91bGQgaW5mYXZvciBvZiBydW5uaW5nIGJ1aWxkIHJlcXVl
c3Qgb3ZlciBzY2hlZHVsZWQgYnVpbGQgcmVxdWVzdCcsIGFzeW5jICgpID0+IHsKKyAgICAgICAg
ICAgIGNvbnN0IHNlY29uZE92ZXJyaWRlcyA9IHsKKyAgICAgICAgICAgICAgICB0YXNrOiAnMTM3
NicsCisgICAgICAgICAgICAgICAgcGxhdGZvcm06ICczMScsCisgICAgICAgICAgICAgICAgc3Rh
dHVzOiBbJ3NjaGVkdWxlZCcsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZyddCisgICAg
ICAgICAgICB9OworICAgICAgICAgICAgY29uc3QgdGhpcmRPdmVycmlkZXMgPSB7CisgICAgICAg
ICAgICAgICAgdGFzazogJzEzNzYnLAorICAgICAgICAgICAgICAgIHBsYXRmb3JtOiAnMzEnLAor
ICAgICAgICAgICAgICAgIHN0YXR1czogWydydW5uaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycs
ICdwZW5kaW5nJ10KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB0aHJl
ZVRlc3RHcm91cHMoc2Vjb25kT3ZlcnJpZGVzLCB0aGlyZE92ZXJyaWRlcyk7CisgICAgICAgICAg
ICBjb25zdCBwbGF0Zm9ybUlkID0gZGF0YS5idWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtOworICAg
ICAgICAgICAgUGxhdGZvcm0uZW5zdXJlU2luZ2xldG9uKHBsYXRmb3JtSWQsIHtpZDogcGxhdGZv
cm1JZCwgbWV0cmljczogW10sIG5hbWU6ICdzb21lIHBsYXRmb3JtJ30pOworICAgICAgICAgICAg
Y29uc3QgcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5jb25zdHJ1Y3RCdWlsZFJlcXVlc3RzRnJvbURh
dGEoZGF0YSlbMF07CisgICAgICAgICAgICBjb25zdCBwcm9taXNlID0gcmVxdWVzdC5zYW1lQnVp
bGRUeXBlQnVpbGRSZXF1ZXN0VW5kZXJTYW1lQW5hbHlzaXNUYXNrKCk7CisgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzBdLnVybCwgJy9hcGkvdGVzdC1ncm91cHM/dGFzaz0xMzc2Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAg
ICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKHRocmVlVGVzdEdyb3VwcyhzZWNvbmRPdmVycmlkZXMs
IHRoaXJkT3ZlcnJpZGVzKSk7CisKKyAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBy
b21pc2U7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0LCBCdWlsZFJlcXVlc3QuZmlu
ZEJ5SWQoMTY5OTMpKQorICAgICAgICB9KTsKKyAgICB9KTsKKwogICAgIGRlc2NyaWJlKCd3YWl0
aW5nVGltZScsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gIjAgbWlu
dXRlcyIgd2hlbiB0aGUgcmVmZXJlbmNlIHRpbWUgaXMgaWRlbnRpY2FsbHkgZXF1YWwgdG8gY3Jl
YXRlZEF0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgZGF0YSA9IHNhbXBsZUJ1
aWxkUmVxdWVzdERhdGEoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413222</attachid>
            <date>2020-11-04 16:38:39 -0800</date>
            <delta_ts>2020-11-06 17:21:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218413-20201104163838.patch</filename>
            <type>text/plain</type>
            <size>94273</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MjIwCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA3OTI0ODY3NWRiNmRjYzU5ZmFmN2MyMTVmMmM0NGYwNzY1ODYwMWVjLi44Y2RhMTI5Y2Nj
MjEwMmMyMzBjOTk4NzVhMDIyMGFlYmRlMTZkZTc4IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAyMC0xMC0zMCAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBQZXJmb3JtYW5jZSBkYXNoYm9hcmQgc2hvdWxkIGF2b2lk
IGJ1aWxkaW5nIHNhbWUgY29uZmlndXJhdGlvbiB1bmRlciBvbmUgYW5hbHlzaXMgdGFzay4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODQxMworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsb2dpYyBp
biBzeW5jaW5nIHNjcmlwdCB0byByZXVzZSBhbHJlYWR5IGJ1aWx0IHJvb3RzIGZyb20gc2FtZSBi
dWlsZCByZXF1ZXN0IHVuZGVyIGN1cnJlbnQgYW5hbHlzaXMgdGFzay4KKyAgICAgICAgSWYgdGhl
cmUgaXMgYW5vdGhlciBzYW1lIGJ1aWxkIHJlcXVlc3Qgc2NoZWR1bGVkL3J1bm5pbmcsIHdpbGwg
ZGVmZXIgc2NoZWR1bGluZyBjdXJyZW50IGJ1aWxkIHJlcXVlc3QuCisKKyAgICAgICAgKiBwdWJs
aWMvYWRtaW4vcGxhdGZvcm1zLnBocDogRml4ZWQgbmV3ZXIgdmVyc2lvbiBvZiBQSFAgd2FybnMg
b24gYWNjZXNzaW5nIGludmFsaWQga2V5IGluIGFuIGFycmF5LgorICAgICAgICAqIHB1YmxpYy9h
ZG1pbi90ZXN0cy5waHA6IEFkZGVkIGEgbnVsbCBjaGVjayBhZ2FpbnN0ICRzZWxlY3RlZF9wYXJl
bnQuCisgICAgICAgICogcHVibGljL2FwaS9idWlsZC1yZXF1ZXN0cy5waHA6IEV4dGVuZGVkIHRo
aXMgQVBJIHRvIGFsbG93IHJldXNpbmcgcm9vdHMgZnJvbSBleGlzdGluZyBidWlsZCByZXF1ZXN0
LgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvYnVpbGQtcmVxdWVzdC5qczoKKyAgICAgICAg
KEJ1aWxkUmVxdWVzdC5wcm90b3R5cGUuYXN5bmMgc2FtZUJ1aWxkVHlwZUJ1aWxkUmVxdWVzdFVu
ZGVyU2FtZUFuYWx5c2lzVGFzayk6IEZpbmQgc2FtZSBidWlsZCB0eXBlIGJ1aWxkCisgICAgICAg
IHJlcXVlc3Qgd2hpY2ggY2FuL3dpbGwgYmUgcmV1c2VkIHVuZGVyIGN1cnJlbnQgYW5hbHlzaXMg
dGFzay4KKyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1zZXQuanM6CisgICAgICAg
IChDb21taXRTZXQucHJvdG90eXBlLmVxdWFsc0lnbm9yaW5nUm9vdCk6IEFkZGVkIGEgaGVscGVy
IGZ1bmN0aW9uIHdoaWNoIGNoZWNrcyBjb21taXQgc2V0IGVxdWFsaXR5IGlnbm9yaW5nIHRoZSBy
b290LgorICAgICAgICAoQ29tbWl0U2V0LnByb3RvdHlwZS5lcXVhbHMpOiBVc2UgJ2VxdWFsc1dp
dGhDb25kaXRpb24nIGFzIHVuZGVybHlpbmcgaW1wbGVtZW50YXRpb24uCisgICAgICAgIChDb21t
aXRTZXQucHJvdG90eXBlLl9lcXVhbHNXaXRoQ29uZGl0aW9uKTogSW1wbGVtZW50YXRpb24gZm9y
IGJvdGggZXF1YWxzIGFuZCBlcXVhbHNJbmdub3JpbmdSb290LgorICAgICAgICAqIHNlcnZlci10
ZXN0cy9hcGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanM6IEFkZGVkIHVuaXQgdGVzdHMuCisgICAg
ICAgICogc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanM6IEFkZGVkIG5ldyBtb2Nr
IGRhdGEgZm9yIG5ldyB1bml0IHRlc3RzLgorICAgICAgICAoTW9ja0RhdGEuYWRkTW9ja0NvbmZp
Z3VyYXRpb24pOgorICAgICAgICAoTW9ja0RhdGEuYWRkTW9ja0RhdGEpOgorICAgICAgICAoTW9j
a0RhdGEuc2V0IGFkZFJldXNhYmxlQnVpbGRSZXF1ZXN0c01vY2tEYXRhKToKKyAgICAgICAgKE1v
Y2tEYXRhLnNldCBhZGRSZXVzYWJsZVRlc3RHcm91cFdpdGhPd25lZENvbW1pdHMpOgorICAgICAg
ICAoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzT25lVGVzdGVyKToK
KyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMu
anM6IEFkZGVkIHVuaXQgdGVzdHMuCisgICAgICAgICogdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dl
cmFibGUuanM6CisgICAgICAgIChCdWlsZGJvdFRyaWdnZXJhYmxlLnByb3RvdHlwZS5hc3luYyBz
eW5jT25jZSk6CisgICAgICAgIChCdWlsZGJvdFRyaWdnZXJhYmxlLnByb3RvdHlwZS5hc3luYyBf
cmV1c2VSb290SWZBdmFpbGJsZUVsc2VUcnlTY2hlZHVsZSk6IEEgaGVscGVyIGZ1bmN0aW9uIHRv
IHJldXNlIHRoZSByb290cworICAgICAgICBpZiB0aGVyZSBhcmUgYnVpbHQgcm9vdHMgYXZhaWxh
YmxlIGZvciBzYW1lIGJ1aWxkIHR5cGUgYnVpbGQgcmVxdWVzdC4gSWYgdGhlcmUgaXMgYW5vdGhl
ciBidWlsZCBzY2hlZHVsZWQgZm9yCisgICAgICAgIHNhbWUgYnVpbGQgcmVxdWVzdCwgd2lsbCBk
ZWZlciBzY2hlZHVsaW5nIHRoZSBidWlsZCByZXF1ZXN0LgorICAgICAgICAqIHVuaXQtdGVzdHMv
YnVpbGQtcmVxdWVzdC10ZXN0cy5qczogQWRkIHVuaXQgdGVzdHMuCisKIDIwMjAtMTAtMjcgIERl
d2VpIFpodSAgPGRld2VpX3podUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVmYWN0b3IgJ3BsYXRm
b3JtcycgdGFibGUgdG8gY29udGFpbiBncm91cCBpbmZvcm1hdGlvbi4KZGlmZiAtLWdpdCBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYWRtaW4vcGxhdGZvcm1zLnBocCBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYWRtaW4vcGxhdGZvcm1zLnBocAppbmRleCA2ZjMw
NjdkYWY4MTAyZTE2ZWQ1YjI4MmI2NjRmMGZiMzE2MTBkYjI5Li45ZDk1NDk2N2IwZDhkYTVmYmQy
NWExN2I2MmUwY2IwNjJhYThlNDM5IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL2FkbWluL3BsYXRmb3Jtcy5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy9hZG1pbi9wbGF0Zm9ybXMucGhwCkBAIC0xMDIsNyArMTAyLDcgQEAgRU5EOwog
ICAgIHsKICAgICAgICAgZ2xvYmFsICRwbGF0Zm9ybV9ncm91cF9vcHRpb25zOwogICAgICAgICAk
aWQgPSBpbnR2YWwoJHBsYXRmb3JtX3Jvd1sncGxhdGZvcm1faWQnXSk7Ci0gICAgICAgICRwbGF0
Zm9ybV9ncm91cF9pZCA9ICRwbGF0Zm9ybV9yb3dbJ3BsYXRmb3JtX2dyb3VwJ107CisgICAgICAg
ICRwbGF0Zm9ybV9ncm91cF9pZCA9IGFycmF5X2dldCgkcGxhdGZvcm1fcm93LCAncGxhdGZvcm1f
Z3JvdXAnKTsKICAgICAgICAgJGNvbnRlbnQgPSA8PDwgRU5ECiA8Zm9ybSBtZXRob2Q9IlBPU1Qi
PjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlkIiB2YWx1ZT0iJGlkIj4KIDxzZWxlY3QgbmFt
ZT0iZ3JvdXAiPgpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9h
ZG1pbi90ZXN0cy5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FkbWluL3Rl
c3RzLnBocAppbmRleCAxZjJiNDk0YWQxOGFjMWMwZjVjOWE2NjUwMTEyMTUwYjMxZDdmYTE0Li5k
MGVkYmVlZDgwNWYxMDI5Yzc5ODhmNzY3MGYxNWIzZjBkOGViOGQ1IDEwMDY0NAotLS0gYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FkbWluL3Rlc3RzLnBocAorKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FkbWluL3Rlc3RzLnBocApAQCAtNjQsNyArNjQsNyBA
QCBpZiAoJGRiKSB7CiA8P3BocAogCiAgICAgICAgIGZvcmVhY2ggKCR0ZXN0X25hbWVfcmVzb2x2
ZXItPnRlc3RzKCkgYXMgJHRlc3QpIHsKLSAgICAgICAgICAgIGlmICgkdGVzdFsndGVzdF9wYXJl
bnQnXSAhPSAkc2VsZWN0ZWRfcGFyZW50Wyd0ZXN0X2lkJ10pCisgICAgICAgICAgICBpZiAoJHNl
bGVjdGVkX3BhcmVudCAmJiAkdGVzdFsndGVzdF9wYXJlbnQnXSAhPSAkc2VsZWN0ZWRfcGFyZW50
Wyd0ZXN0X2lkJ10pCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgICR0
ZXN0X2lkID0gJHRlc3RbJ3Rlc3RfaWQnXTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvYXBpL2J1aWxkLXJlcXVlc3RzLnBocCBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvYXBpL2J1aWxkLXJlcXVlc3RzLnBocAppbmRleCBmNGMzNjYyOWQ5ZDIy
NmFkODRlN2I5ZTUxMzFkYTMyOGU4ODhiYzI2Li5hZDZjN2RlM2E2ZGM3OTcxZGI3MjZmYmMxNDY4
NDgxYmI4MGQ5NDM2IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L2FwaS9idWlsZC1yZXF1ZXN0cy5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy9hcGkvYnVpbGQtcmVxdWVzdHMucGhwCkBAIC00Nyw2ICs0Nyw3IEBAIGZ1bmN0aW9uIHVw
ZGF0ZV9idWlsZHMoJGRiLCAkdXBkYXRlcykgewogICAgICAgICAkc3RhdHVzID0gJGluZm9bJ3N0
YXR1cyddOwogICAgICAgICAkdXJsID0gYXJyYXlfZ2V0KCRpbmZvLCAndXJsJyk7CiAgICAgICAg
ICRzdGF0dXNfZGVzY3JpcHRpb24gPSBhcnJheV9nZXQoJGluZm8sICdzdGF0dXNEZXNjcmlwdGlv
bicpOworICAgICAgICAkcm9vdF9zb3VyY2VfYnVpbGRfcmVxdWVzdF9pZCA9IGFycmF5X2dldCgk
aW5mbywgJ3Jvb3RTb3VyY2VCdWlsZFJlcXVlc3QnKTsKICAgICAgICAgJHJlcXVlc3Rfcm93ID0g
JGRiLT5zZWxlY3RfZmlyc3Rfcm93KCdidWlsZF9yZXF1ZXN0cycsICdyZXF1ZXN0JywgYXJyYXko
J2lkJyA9PiAkaWQpKTsKICAgICAgICAgaWYgKCRzdGF0dXMgPT0gJ2ZhaWxlZElmTm90Q29tcGxl
dGVkJykgewogICAgICAgICAgICAgaWYgKCEkcmVxdWVzdF9yb3cpIHsKQEAgLTY4LDYgKzY5LDIz
IEBAIGZ1bmN0aW9uIHVwZGF0ZV9idWlsZHMoJGRiLCAkdXBkYXRlcykgewogICAgICAgICAgICAg
ICAgIGV4aXRfd2l0aF9lcnJvcignVW5rbm93bkJ1aWxkUmVxdWVzdFN0YXR1cycsIGFycmF5KCdi
dWlsZFJlcXVlc3QnID0+ICRpZCwgJ3N0YXR1cycgPT4gJHN0YXR1cykpOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgJGRiLT51cGRhdGVfcm93KCdidWlsZF9yZXF1ZXN0cycsICdyZXF1ZXN0
JywgYXJyYXkoJ2lkJyA9PiAkaWQpLCBhcnJheSgnc3RhdHVzJyA9PiAkc3RhdHVzLCAndXJsJyA9
PiAkdXJsLCAnc3RhdHVzX2Rlc2NyaXB0aW9uJyA9PiAkc3RhdHVzX2Rlc2NyaXB0aW9uKSk7Cisg
ICAgICAgICAgICBpZiAoJHJvb3Rfc291cmNlX2J1aWxkX3JlcXVlc3RfaWQpIHsKKyAgICAgICAg
ICAgICAgICAkcm9vdF9zb3VyY2VfYnVpbGRfcmVxdWVzdF9pZCA9IGludHZhbCgkcm9vdF9zb3Vy
Y2VfYnVpbGRfcmVxdWVzdF9pZCk7CisgICAgICAgICAgICAgICAgJHJvb3Rfc291cmNlX2J1aWxk
X3JlcXVlc3QgPSAkZGItPnNlbGVjdF9maXJzdF9yb3coJ2J1aWxkX3JlcXVlc3RzJywgJ3JlcXVl
c3QnLCBhcnJheSgnaWQnID0+ICRyb290X3NvdXJjZV9idWlsZF9yZXF1ZXN0X2lkKSk7CisgICAg
ICAgICAgICAgICAgaWYgKCEkcm9vdF9zb3VyY2VfYnVpbGRfcmVxdWVzdCkgeworICAgICAgICAg
ICAgICAgICAgICAkZGItPnJvbGxiYWNrX3RyYW5zYWN0aW9uKCk7CisgICAgICAgICAgICAgICAg
ICAgIGV4aXRfd2l0aF9lcnJvcignRmFpbGVkVG9GaW5kUm9vdFNvdXJjZUJ1aWxkUmVxdWVzdCcs
IGFycmF5KCdidWlsZFJlcXVlc3QnID0+ICRyb290X3NvdXJjZV9idWlsZF9yZXF1ZXN0X2lkKSk7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgkcm9vdF9zb3VyY2VfYnVp
bGRfcmVxdWVzdFsncmVxdWVzdF9zdGF0dXMnXSAhPSAnY29tcGxldGVkJykgeworICAgICAgICAg
ICAgICAgICAgICAkZGItPnJvbGxiYWNrX3RyYW5zYWN0aW9uKCk7CisgICAgICAgICAgICAgICAg
ICAgIGV4aXRfd2l0aF9lcnJvcignQ2FuT25seVJldXNlQ29tcGxldGVkQnVpbGRSZXF1ZXN0Jywg
YXJyYXkoJ2J1aWxkUmVxdWVzdCcgPT4gJHJvb3Rfc291cmNlX2J1aWxkX3JlcXVlc3RfaWQsICdz
dGF0dXMnID0+ICRyb290X3NvdXJjZV9idWlsZF9yZXF1ZXN0WydyZXF1ZXN0X3N0YXR1cyddKSk7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICRlcnJvciA9IHJldXNlX3Jvb3Rz
X2luX2NvbW1pdF9zZXQoJHJvb3Rfc291cmNlX2J1aWxkX3JlcXVlc3RbJ3JlcXVlc3RfY29tbWl0
X3NldCddLCAkcmVxdWVzdF9yb3dbJ3JlcXVlc3RfY29tbWl0X3NldCddLCAkZGIpOworICAgICAg
ICAgICAgICAgIGlmICgkZXJyb3IpIHsKKyAgICAgICAgICAgICAgICAgICAgJGRiLT5yb2xsYmFj
a190cmFuc2FjdGlvbigpOworICAgICAgICAgICAgICAgICAgICBleGl0X3dpdGhfZXJyb3IoJGVy
cm9yWydzdGF0dXMnXSwgJGVycm9yWydkZXRhaWxzJ10pOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGlmICgkc3RhdHVzICE9ICdmYWlsZWQnKQogICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CkBAIC04Miw4ICsxMDAsNDQgQEAgZnVuY3Rp
b24gdXBkYXRlX2J1aWxkcygkZGIsICR1cGRhdGVzKSB7CiAgICAgJGRiLT5jb21taXRfdHJhbnNh
Y3Rpb24oKTsKIH0KIAorZnVuY3Rpb24gcmV1c2Vfcm9vdHNfaW5fY29tbWl0X3NldCgkc291cmNl
X2lkLCAkZGVzdGluYXRpb25faWQsICRkYikgeworICAgICRjb21taXRfc2V0X2l0ZW1zX3NvdXJj
ZSA9ICRkYi0+c2VsZWN0X3Jvd3MoJ2NvbW1pdF9zZXRfaXRlbXMnLCAnY29tbWl0c2V0JywgYXJy
YXkoJ3NldCcgPT4gJHNvdXJjZV9pZCwgJ3JlcXVpcmVzX2J1aWxkJyA9PiBUUlVFKSk7CisgICAg
JGNvbW1pdF9zZXRfaXRlbXNfZGVzdGluYXRpb24gPSAkZGItPnNlbGVjdF9yb3dzKCdjb21taXRf
c2V0X2l0ZW1zJywgJ2NvbW1pdHNldCcsIGFycmF5KCdzZXQnID0+ICRkZXN0aW5hdGlvbl9pZCwg
J3JlcXVpcmVzX2J1aWxkJyA9PiBUUlVFKSk7CisgICAgaWYgKGNvdW50KCRjb21taXRfc2V0X2l0
ZW1zX3NvdXJjZSkgIT0gY291bnQoJGNvbW1pdF9zZXRfaXRlbXNfZGVzdGluYXRpb24pKSB7Cisg
ICAgICAgIHJldHVybiBhcnJheSgnc3RhdHVzJyA9PiAnQ2Fubm90UmV1c2VSb290RnJvbUNvbW1p
dFNldFdpdGhEaWZmZXJlbnROdW1iZXJPZkl0ZW1zJywgJ2RldGFpbHMnID0+IGFycmF5KCdzb3Vy
Y2VDb21taXRTZXQnID0+ICRzb3VyY2VfaWQsCisgICAgICAgICAgICAnZGVzdGluYXRpb25Db21t
aXRTZXQnID0+ICRkZXN0aW5hdGlvbl9pZCkpOworICAgIH0KKworICAgIGZvcmVhY2ggKCRjb21t
aXRfc2V0X2l0ZW1zX2Rlc3RpbmF0aW9uIGFzICYkY29tbWl0X3NldF9pdGVtX2Rlc3RpbmF0aW9u
KSB7CisgICAgICAgICRtYXRjaGluZ19jb21taXRfc2V0X2l0ZW0gPSBOVUxMOworICAgICAgICBm
b3JlYWNoICgkY29tbWl0X3NldF9pdGVtc19zb3VyY2UgYXMgJiRjb21taXRfc2V0X2l0ZW1fc291
cmNlKSB7CisgICAgICAgICAgICBpZiAoJGNvbW1pdF9zZXRfaXRlbV9kZXN0aW5hdGlvblsnY29t
bWl0c2V0X2NvbW1pdCddID09ICRjb21taXRfc2V0X2l0ZW1fc291cmNlWydjb21taXRzZXRfY29t
bWl0J10KKyAgICAgICAgICAgICAgICAmJiAkY29tbWl0X3NldF9pdGVtX2Rlc3RpbmF0aW9uWydj
b21taXRzZXRfcGF0Y2hfZmlsZSddID09ICRjb21taXRfc2V0X2l0ZW1fc291cmNlWydjb21taXRz
ZXRfcGF0Y2hfZmlsZSddCisgICAgICAgICAgICAgICAgJiYgJGNvbW1pdF9zZXRfaXRlbV9kZXN0
aW5hdGlvblsnY29tbWl0c2V0X2NvbW1pdF9vd25lciddID09ICRjb21taXRfc2V0X2l0ZW1fc291
cmNlWydjb21taXRzZXRfY29tbWl0X293bmVyJ10pIHsKKyAgICAgICAgICAgICAgICAkbWF0Y2hp
bmdfY29tbWl0X3NldF9pdGVtID0gJGNvbW1pdF9zZXRfaXRlbV9zb3VyY2U7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCEkbWF0
Y2hpbmdfY29tbWl0X3NldF9pdGVtKQorICAgICAgICAgICAgcmV0dXJuIGFycmF5KCdzdGF0dXMn
ID0+ICdOb01hdGNoaW5nQ29tbWl0U2V0SXRlbScsICdkZXRhaWxzJyA9PiBhcnJheSgnY29tbWl0
U2V0JyA9PiAkc291cmNlX2lkKSk7CisKKyAgICAgICAgJHJvb3RfZmlsZV9pZCA9ICRtYXRjaGlu
Z19jb21taXRfc2V0X2l0ZW1bJ2NvbW1pdHNldF9yb290X2ZpbGUnXTsKKyAgICAgICAgaWYgKCEk
cm9vdF9maWxlX2lkKQorICAgICAgICAgICAgcmV0dXJuIGFycmF5KCdzdGF0dXMnID0+ICdNaXNz
aW5nUm9vdEZpbGVGcm9tU291cmNlQ29tbWl0U2V0JywgJ2RldGFpbHMnID0+IGFycmF5KCdjb21t
aXRTZXQnID0+ICRkZXN0aW5hdGlvbl9pZCwgJ3Jvb3RGaWxlJyA9PiAkcm9vdF9maWxlX2lkKSk7
CisKKyAgICAgICAgJHJvb3RfZmlsZV9yb3cgPSAkZGItPnNlbGVjdF9maXJzdF9yb3coJ3VwbG9h
ZGVkX2ZpbGVzJywgJ2ZpbGUnLCBhcnJheSgnaWQnID0+ICRtYXRjaGluZ19jb21taXRfc2V0X2l0
ZW1bJ2NvbW1pdHNldF9yb290X2ZpbGUnXSkpOworICAgICAgICBpZiAoJHJvb3RfZmlsZV9yb3db
J2ZpbGVfZGVsZXRlZF9hdCddKQorICAgICAgICAgICAgcmV0dXJuIGFycmF5KCdzdGF0dXMnID0+
ICdDYW5ub3RSZXVzZURlbGV0ZWRSb290JywgJ2RldGFpbHMnID0+IGFycmF5KCdjb21taXRTZXQn
ID0+ICRkZXN0aW5hdGlvbl9pZCwgJ3Jvb3RGaWxlJyA9PiAkcm9vdF9maWxlX2lkKSk7CisKKyAg
ICAgICAgJGRiLT51cGRhdGVfcm93KCdjb21taXRfc2V0X2l0ZW1zJywgJ2NvbW1pdHNldCcsIGFy
cmF5KCdzZXQnID0+ICRkZXN0aW5hdGlvbl9pZCwgJ2NvbW1pdCcgPT4gJGNvbW1pdF9zZXRfaXRl
bV9kZXN0aW5hdGlvblsnY29tbWl0c2V0X2NvbW1pdCddKSwKKyAgICAgICAgICAgIGFycmF5KCdy
b290X2ZpbGUnID0+ICRyb290X2ZpbGVfaWQpLCAnc2V0Jyk7CisgICAgfQorCisgICAgcmV0dXJu
IE5VTEw7Cit9CisKIG1haW4oYXJyYXlfZ2V0KCRfR0VULCAnaWQnKSwKICAgICBhcnJheV9rZXlf
ZXhpc3RzKCdQQVRIX0lORk8nLCAkX1NFUlZFUikgPyBleHBsb2RlKCcvJywgdHJpbSgkX1NFUlZF
UlsnUEFUSF9JTkZPJ10sICcvJykpIDogYXJyYXkoKSwKICAgICBmaWxlX2dldF9jb250ZW50cygi
cGhwOi8vaW5wdXQiKSk7CiAKLT8+Cis/PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2J1aWxk
LXJlcXVlc3QuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9i
dWlsZC1yZXF1ZXN0LmpzCmluZGV4IDJkYjBkNWJiNDM3OGNlMzVlM2M0OWFkZjNhZTUwMzgwMTMx
ZDMyZmQuLjdjMTY2ZTBlMWNiMTNjOTY0M2ViOGUzMzcxZjQ5Y2RlOWM4NmVjMDIgMTAwNjQ0Ci0t
LSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2J1aWxkLXJlcXVl
c3QuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvYnVp
bGQtcmVxdWVzdC5qcwpAQCAtODcsOCArODcsNDUgQEAgY2xhc3MgQnVpbGRSZXF1ZXN0IGV4dGVu
ZHMgRGF0YU1vZGVsT2JqZWN0IHsKIAogICAgIGJ1aWxkSWQoKSB7IHJldHVybiB0aGlzLl9idWls
ZElkOyB9CiAgICAgY3JlYXRlZEF0KCkgeyByZXR1cm4gdGhpcy5fY3JlYXRlZEF0OyB9CisgICAg
YXN5bmMgZmluZEJ1aWxkUmVxdWVzdEZvclNhbWVSb290cygpCisgICAgeworICAgICAgICBpZiAo
IXRoaXMuaXNCdWlsZCgpKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIGxldCBz
Y2hlZHVsZWRCdWlsZFJlcXVlc3QgPSBudWxsOworICAgICAgICBsZXQgcnVubmluZ0J1aWxkUmVx
dWVzdCA9IG51bGw7CisgICAgICAgIC8vIFNldCBpZ25vcmVDYWNoZSA9IHRydWUgYXMgbGF0ZXN0
IHN0YXR1cyBvZiB0ZXN0IGdyb3VwcyBpcyBleHBlY3RlZC4KKyAgICAgICAgY29uc3QgYWxsVGVz
dEdyb3Vwc0luVGFzayA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGhpcy5hbmFseXNp
c1Rhc2tJZCgpLCB0cnVlKTsKKyAgICAgICAgZm9yIChjb25zdCBncm91cCBvZiBhbGxUZXN0R3Jv
dXBzSW5UYXNrKSB7CisgICAgICAgICAgICBpZiAoZ3JvdXAuaWQoKSA9PSB0aGlzLnRlc3RHcm91
cElkKCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBpZiAoZ3JvdXAu
aXNIaWRkZW4oKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGZvciAo
Y29uc3QgYnVpbGRSZXF1ZXN0IG9mIGdyb3VwLmJ1aWxkUmVxdWVzdHMoKSkgeworICAgICAgICAg
ICAgICAgIGlmICghYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSkKKyAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKCF0aGlzLnBsYXRmb3JtKCkuaXNJblNhbWVH
cm91cEFzKGJ1aWxkUmVxdWVzdC5wbGF0Zm9ybSgpKSkKKyAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICAgICAgaWYgKCFidWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuZXF1
YWxzSWdub3JpbmdSb290KHRoaXMuY29tbWl0U2V0KCkpKQorICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAoIWJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKS5h
bGxCdWlsdFJvb3RzQXZhaWxhYmxlKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICAgICAgICAgIGlmIChidWlsZFJlcXVlc3QuaGFzQ29tcGxldGVkKCkpCisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBidWlsZFJlcXVlc3Q7CisgICAgICAgICAgICAgICAgaWYgKGJ1
aWxkUmVxdWVzdC5pc1NjaGVkdWxlZCgpCisgICAgICAgICAgICAgICAgICAgICYmICghc2NoZWR1
bGVkQnVpbGRSZXF1ZXN0IHx8IGJ1aWxkUmVxdWVzdC5jcmVhdGVkQXQoKSA8IHNjaGVkdWxlZEJ1
aWxkUmVxdWVzdC5jcmVhdGVkQXQoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgc2NoZWR1bGVk
QnVpbGRSZXF1ZXN0ID0gYnVpbGRSZXF1ZXN0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBpZiAoYnVpbGRSZXF1ZXN0LnN0YXR1cygpID09ICdydW5uaW5nJworICAgICAgICAg
ICAgICAgICAgICAmJiAoIXJ1bm5pbmdCdWlsZFJlcXVlc3QgfHwgYnVpbGRSZXF1ZXN0LmNyZWF0
ZWRBdCgpIDwgcnVubmluZ0J1aWxkUmVxdWVzdC5jcmVhdGVkQXQoKSkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgcnVubmluZ0J1aWxkUmVxdWVzdCA9IGJ1aWxkUmVxdWVzdDsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJ1bm5pbmdC
dWlsZFJlcXVlc3QgfHwgc2NoZWR1bGVkQnVpbGRSZXF1ZXN0OworICAgIH0KIAotICAgIHN0YXRp
YyBmb3JtYXRUaW1lSW50ZXJ2YWwoaW50ZXJ2YWxJbk1pbGxpb25TZWNvbmRzKSB7CisgICAgc3Rh
dGljIGZvcm1hdFRpbWVJbnRlcnZhbChpbnRlcnZhbEluTWlsbGlvblNlY29uZHMpCisgICAgewog
ICAgICAgICBsZXQgaW50ZXJ2YWxJblNlY29uZHMgPSBpbnRlcnZhbEluTWlsbGlvblNlY29uZHMg
LyAxMDAwOwogICAgICAgICBjb25zdCB1bml0cyA9IFsKICAgICAgICAgICAgIHt1bml0OiAnd2Vl
aycsIGxlbmd0aDogNyAqIDI0ICogMzYwMH0sCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21taXQtc2V0LmpzIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LXNldC5qcwppbmRleCAzYjM3YjQzNGJm
YmIyMDc0MDc4YjUzYzJmOWZjNWM0YmRlM2E3ZGY5Li41YTQyYTMxOWIyZjNlOWExYzViMGMzNDAy
M2Q0MTE0MTYxZTU2ZThjIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL21vZGVscy9jb21taXQtc2V0LmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1zZXQuanMKQEAgLTc0LDYgKzc0LDExIEBAIGNsYXNz
IENvbW1pdFNldCBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgY29tbWl0c1dpdGhUZXN0
YWJpbGl0eSgpIHsgcmV0dXJuIHRoaXMuY29tbWl0cygpLmZpbHRlcigoY29tbWl0KSA9PiAhIWNv
bW1pdC50ZXN0YWJpbGl0eSgpKTsgfQogICAgIGNvbW1pdHMoKSB7IHJldHVybiAgQXJyYXkuZnJv
bSh0aGlzLl9yZXBvc2l0b3J5VG9Db21taXRNYXAudmFsdWVzKCkpOyB9CiAKKyAgICBhbGxCdWls
dFJvb3RzQXZhaWxhYmxlKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmFsbFJvb3RGaWxl
cygpLmV2ZXJ5KHJvb3RGaWxlID0+ICFyb290RmlsZS5kZWxldGVkQXQoKSB8fCB0aGlzLmN1c3Rv
bVJvb3RzKCkuZmluZChyb290RmlsZSkpOworICAgIH0KKwogICAgIHJldmlzaW9uRm9yUmVwb3Np
dG9yeShyZXBvc2l0b3J5KQogICAgIHsKICAgICAgICAgdmFyIGNvbW1pdCA9IHRoaXMuX3JlcG9z
aXRvcnlUb0NvbW1pdE1hcC5nZXQocmVwb3NpdG9yeSk7CkBAIC0xMDIsNyArMTA3LDE3IEBAIGNs
YXNzIENvbW1pdFNldCBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CiAgICAgICAgIHJldHVybiB0
aGlzLl9sYXRlc3RDb21taXRUaW1lOwogICAgIH0KIAorICAgIGVxdWFsc0lnbm9yaW5nUm9vdChv
dGhlcikKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9lcXVhbHNXaXRoQ29uZGl0aW9uKG90
aGVyLCB0cnVlKTsKKyAgICB9CisKICAgICBlcXVhbHMob3RoZXIpCisgICAgeworICAgICAgICBy
ZXR1cm4gdGhpcy5fZXF1YWxzV2l0aENvbmRpdGlvbihvdGhlciwgZmFsc2UpOworICAgIH0KKwor
ICAgIF9lcXVhbHNXaXRoQ29uZGl0aW9uKG90aGVyLCBpZ25vcmVCdWlsdFJvb3QpCiAgICAgewog
ICAgICAgICBpZiAodGhpcy5fcmVwb3NpdG9yaWVzLmxlbmd0aCAhPSBvdGhlci5fcmVwb3NpdG9y
aWVzLmxlbmd0aCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTExMSw3ICsxMjYsNyBA
QCBjbGFzcyBDb21taXRTZXQgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGlmICh0aGlzLnBhdGNoRm9yUmVwb3NpdG9y
eShyZXBvc2l0b3J5KSAhPSBvdGhlci5wYXRjaEZvclJlcG9zaXRvcnkocmVwb3NpdG9yeSkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKHRoaXMucm9vdEZv
clJlcG9zaXRvcnkocmVwb3NpdG9yeSkgIT0gb3RoZXIucm9vdEZvclJlcG9zaXRvcnkocmVwb3Np
dG9yeSkpCisgICAgICAgICAgICBpZiAodGhpcy5yb290Rm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5
KSAhPSBvdGhlci5yb290Rm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5KSAmJiAhaWdub3JlQnVpbHRS
b290KQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGlmICh0aGlz
Lm93bmVyQ29tbWl0Rm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5KSAhPSBvdGhlci5vd25lckNvbW1p
dEZvclJlcG9zaXRvcnkocmVwb3NpdG9yeSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMv
cGxhdGZvcm0uanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9w
bGF0Zm9ybS5qcwppbmRleCBmMDFkYzI1ZmFkNmI5MzQwZmYxM2E1OTFlYjgxZTdkNWMyNWZkYzJm
Li5hNGFkODE3M2U5YzM2ZDZmNGMxMjIwNzk1YzI2ZjhmYWVmYzg0MWM1IDEwMDY0NAotLS0gYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9wbGF0Zm9ybS5qcworKysg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9wbGF0Zm9ybS5qcwpA
QCAtMjQsNiArMjQsMTMgQEAgY2xhc3MgUGxhdGZvcm0gZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsK
ICAgICAgICAgcmV0dXJuIG1hcCA/IG1hcFtuYW1lXSA6IG51bGw7CiAgICAgfQogCisgICAgaXNJ
blNhbWVHcm91cEFzKG90aGVyKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmdyb3VwKCkgJiYg
IW90aGVyLmdyb3VwKCkgJiYgdGhpcy5pZCgpICE9IG90aGVyLmlkKCkpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB0aGlzLmdyb3VwKCkgPT0gb3RoZXIuZ3JvdXAo
KTsKKyAgICB9CisKICAgICBoYXNUZXN0KHRlc3QpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMu
X2NvbnRhaW5pbmdUZXN0cykgewpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy9hcGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcwppbmRl
eCAwN2RmNThkNDhlMTkxNmI1YzRhY2I5NzE0ZTJlOTc5MWM4MzJlNzNlLi5jMTA3YTQ1NmUzZWVk
ZmQ5MDE1YjNlMWMwOGNkYjI3YTk2OGY1NGY1IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcworKysgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0cy10
ZXN0cy5qcwpAQCAtNSw2ICs1LDcgQEAgbGV0IGFzc2VydCA9IHJlcXVpcmUoJ2Fzc2VydCcpOwog
bGV0IE1vY2tEYXRhID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvbW9jay1kYXRhLmpzJyk7CiBsZXQg
VGVzdFNlcnZlciA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpzJyk7CiBjb25z
dCBwcmVwYXJlU2VydmVyVGVzdCA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRp
b25zLmpzJykucHJlcGFyZVNlcnZlclRlc3Q7Citjb25zdCBhc3NlcnRUaHJvd3MgPSByZXF1aXJl
KCcuLi9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zJykuYXNzZXJ0VGhy
b3dzOwogCiBkZXNjcmliZSgnL2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAg
ICBwcmVwYXJlU2VydmVyVGVzdCh0aGlzKTsKQEAgLTY0LDYgKzY1LDI2NyBAQCBkZXNjcmliZSgn
L2FwaS9idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uICgpIHsKICAgICAgICB9KTsKICAgICB9KTsK
IAorICAgIGl0KCdzaG91bGQgcmV1c2Ugcm9vdHMgZnJvbSBleGlzdGluZyBjb21taXQgc2V0IGlm
IGJ1aWxkIHJlcXVlc3RzIGFyZSB0aGUgc2FtZScsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdh
aXQgTW9ja0RhdGEuYWRkUmV1c2FibGVCdWlsZFJlcXVlc3RzTW9ja0RhdGEoVGVzdFNlcnZlci5k
YXRhYmFzZSgpKTsKKyAgICAgICAgbGV0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtp
dCcpOworCisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29y
dCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycs
ICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ11bMF0uaWQsIDUwMCk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ11bMl0uaWQsIDYwMCk7CisKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydj
b21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICAgICAge2NvbW1pdDogJzg3
ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxz
ZSwgcm9vdEZpbGU6IG51bGx9LAorICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0
T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAx
MDF9XSk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJd
LnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93
bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBu
dWxsfSwKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBw
YXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsKKworICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7Cisg
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDgwMCk7
CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0
U2V0LCA1MDApOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEn
KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCwg
OTAwKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5j
b21taXRTZXQsIDYwMCk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bNF0uc3RhdHVzLCAncGVuZGluZycpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnYnVpbGRSZXF1ZXN0cyddWzRdLnVybCwgbnVsbCk7CisKKyAgICAgICAgY29uc3QgdXBkYXRl
cyA9IHs5MDA6IHsKKyAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLnN0YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCByb290U291
cmNlQnVpbGRSZXF1ZXN0OiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWR9fTsKKyAgICAg
ICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09O
V2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnLCB7CisgICAgICAg
ICAgICAnc2xhdmVOYW1lJzogJ3N5bmMtc2xhdmUnLAorICAgICAgICAgICAgJ3NsYXZlUGFzc3dv
cmQnOiAncGFzc3dvcmQnLAorICAgICAgICAgICAgJ2J1aWxkUmVxdWVzdFVwZGF0ZXMnOiB1cGRh
dGVzCisgICAgICAgIH0pOworCisgICAgICAgIGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdl
YmtpdCcpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0
aCwgNCk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQs
IDUwMCk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQs
IDYwMCk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBd
LnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93
bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBu
dWxsfSwKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBw
YXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0pOworICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1z
LCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0
Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCisgICAgICAg
ICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVx
dWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1dKTsKKworICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7CisgICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDgwMCk7CisgICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA1MDApOworICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2Nv
bXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCwgOTAwKTsKKyAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQsIDYwMCk7
CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVz
LCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVl
c3RzJ11bNF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgIH0p
OworCisgICAgaXQoJ3Nob3VsZCByZXVzZSByb290IGJ1aWx0IGZvciBvd25lZCBjb21taXQgaWYg
c2FtZSBjb21wbGV0ZWQgYnVpbGQgcmVxdWVzdCBleGlzdHMnLCBhc3luYyAoKSA9PiB7CisgICAg
ICAgIGF3YWl0IE1vY2tEYXRhLmFkZFJldXNhYmxlVGVzdEdyb3VwV2l0aE93bmVkQ29tbWl0cyhU
ZXN0U2VydmVyLmRhdGFiYXNlKCkpOworICAgICAgICBsZXQgY29udGVudCA9IGF3YWl0IFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMv
YnVpbGQtd2Via2l0Jyk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29u
dGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywg
J3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVu
dFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMF0uaWQsIDQwMyk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
Wydjb21taXRTZXRzJ11bMl0uaWQsIDQwNSk7CisKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChj
b250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICAgICAge2Nv
bW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1
aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAorICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2
JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwg
cm9vdEZpbGU6IG51bGx9LAorICAgICAgICAgICAge2NvbW1pdDogJzE3OTcnLCBjb21taXRPd25l
cjogJzkzMTE2JywgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAx
MDF9XSk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJd
LnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93
bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBu
dWxsfSwKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBw
YXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKKyAgICAg
ICAgICAgIHtjb21taXQ6ICcxNzk3JywgY29tbWl0T3duZXI6ICc5MzExNicsIHBhdGNoOiBudWxs
LCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsKKworICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7CisgICAgICAgIGFz
c2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDcwNCk7CisgICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA0MDMp
OworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1
cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCwgNzA4KTsKKyAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQs
IDQwNSk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0u
c3RhdHVzLCAncGVuZGluZycpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzRdLnVybCwgbnVsbCk7CisKKyAgICAgICAgY29uc3QgdXBkYXRlcyA9IHs3MDg6
IHsKKyAgICAgICAgICAgICAgICBzdGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5z
dGF0dXMsIHVybDogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgcm9vdFNvdXJjZUJ1
aWxkUmVxdWVzdDogNzA0fX07CisKKyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0
cy9idWlsZC13ZWJraXQnLCB7CisgICAgICAgICAgICAnc2xhdmVOYW1lJzogJ3N5bmMtc2xhdmUn
LAorICAgICAgICAgICAgJ3NsYXZlUGFzc3dvcmQnOiAncGFzc3dvcmQnLAorICAgICAgICAgICAg
J2J1aWxkUmVxdWVzdFVwZGF0ZXMnOiB1cGRhdGVzCisgICAgICAgIH0pOworCisgICAgICAgIGNv
bnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcv
YXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOworICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1p
dFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOworICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA0MDMpOworICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkLCA0MDUpOworCisgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMs
IFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRj
aDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKKyAgICAgICAg
ICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVx
dWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKKyAgICAgICAgICAgIHtjb21taXQ6
ICcxNzk3JywgY29tbWl0T3duZXI6ICc5MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxk
OiB0cnVlLCByb290RmlsZTogMTAxfV0pOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRl
bnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0
OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6
IGZhbHNlLCByb290RmlsZTogbnVsbH0sCisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBj
b21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290
RmlsZTogbnVsbH0sCisgICAgICAgICAgICB7Y29tbWl0OiAnMTc5NycsIGNvbW1pdE93bmVyOiAn
OTMxMTYnLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1d
KTsKKworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0
aCwgOCk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
aWQsIDcwNCk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0uY29tbWl0U2V0LCA0MDMpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3Jn
L2J1aWRzLzEnKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVs0XS5pZCwgNzA4KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVs0XS5jb21taXRTZXQsIDQwNSk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvYnVpZHMvMScpOworICAgIH0pOworCisgICAgaXQoJ3Nob3VsZCBmYWlsIHJlcXVlc3Qg
d2l0aCAiQ2Fubm90UmV1c2VEZWxldGVkUm9vdCIgaWYgYW55IHJvb3QgdG8gcmV1c2UgaXMgZGVs
ZXRlZCcsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkUmV1c2FibGVC
dWlsZFJlcXVlc3RzTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpKTsKKyAgICAgICAgYXdh
aXQgVGVzdFNlcnZlci5kYXRhYmFzZSgpLnF1ZXJ5KCJVUERBVEUgdXBsb2FkZWRfZmlsZXMgU0VU
IGZpbGVfZGVsZXRlZF9hdCA9IG5vdygpIGF0IHRpbWUgem9uZSAndXRjJyBXSEVSRSBmaWxlX2lk
PTEwMSIpOworICAgICAgICBsZXQgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7
CisKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhjb250ZW50KS5zb3J0KCks
IFsnYnVpbGRSZXF1ZXN0cycsICdjb21taXRTZXRzJywgJ2NvbW1pdHMnLCAnc3RhdHVzJywgJ3Vw
bG9hZGVkRmlsZXMnXSk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRz
J10ubGVuZ3RoLCA0KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XVswXS5pZCwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XVsyXS5pZCwgNjAwKTsKKworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1p
dFNldHMnXVswXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzIn
LCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCBy
b290RmlsZTogbnVsbH0sCisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25l
cjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1d
KTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2
aXNpb25JdGVtcywgWworICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6
IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9
LAorICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNo
OiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiBudWxsfV0pOworCisgICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKKyAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgODAwKTsKKyAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQs
IDUwMCk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
c3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwor
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA5MDAp
OworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1p
dFNldCwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVs0XS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydi
dWlsZFJlcXVlc3RzJ11bNF0udXJsLCBudWxsKTsKKworICAgICAgICBjb25zdCB1cGRhdGVzID0g
ezkwMDogeworICAgICAgICAgICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLnN0YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCByb290U291
cmNlQnVpbGRSZXF1ZXN0OiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWR9fTsKKyAgICAg
ICAgYXdhaXQgYXNzZXJ0VGhyb3dzKCdDYW5ub3RSZXVzZURlbGV0ZWRSb290JywgKCkgPT4gVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVz
dHMvYnVpbGQtd2Via2l0JywgeworICAgICAgICAgICAgJ3NsYXZlTmFtZSc6ICdzeW5jLXNsYXZl
JywKKyAgICAgICAgICAgICdzbGF2ZVBhc3N3b3JkJzogJ3Bhc3N3b3JkJywKKyAgICAgICAgICAg
ICdidWlsZFJlcXVlc3RVcGRhdGVzJzogdXBkYXRlcworICAgICAgICB9KSk7CisgICAgfSk7CisK
KyAgICBpdCgnc2hvdWxkIGZhaWwgcmVxdWVzdCB3aXRoICJDYW5ub3RSZXVzZVJvb3RGcm9tQ29t
bWl0U2V0V2l0aERpZmZlcmVudE51bWJlck9mSXRlbXMiIGlmIGJ1aWxkIHJlcXVlc3QgdG8gcmV1
c2UgZG9lcyBub3QgaGF2ZSBwYXRjaCcsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgTW9j
a0RhdGEuYWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpLCBbJ2NvbXBsZXRlZCcsICdw
ZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZyddLCB0cnVlLCBbJ2h0dHA6Ly9idWlsZC53ZWJr
aXQub3JnL2J1aWRzLzInLCBudWxsLCBudWxsLCBudWxsXSk7CisgICAgICAgIGF3YWl0IE1vY2tE
YXRhLmFkZFJldXNhYmxlQnVpbGRSZXF1ZXN0c01vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJhc2Uo
KSwgWydydW5uaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcn
LCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnXSwgdHJ1ZSwgZmFsc2UpOworICAgICAg
ICBsZXQgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhT
dGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7CisKKyAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDYpOworICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA0MDEpOworICAgICAgICBhc3Nl
cnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzRdLmlkLCA2MDApOworCisgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsK
KyAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDog
bnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKKyAgICAgICAgICAg
IHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWly
ZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfV0pOworICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVs0XS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgICAg
ICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVp
cmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCisgICAgICAgICAgICB7Y29tbWl0OiAn
OTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1
ZSwgcm9vdEZpbGU6IG51bGx9XSk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDEyKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgNzAwKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQsIDQwMSk7CisgICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCAnY29tcGxldGVkJyk7Cisg
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0
cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMicpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmlkLCA5MDApOworICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLmNvbW1pdFNldCwgNjAwKTsKKyAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS5zdGF0dXMsICdwZW5kaW5nJyk7
CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bOF0udXJsLCBu
dWxsKTsKKworICAgICAgICBjb25zdCB1cGRhdGVzID0gezkwMDogeworICAgICAgICAgICAgICAg
IHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCByb290U291cmNlQnVpbGRSZXF1ZXN0OiBjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0uaWR9fTsKKworICAgICAgICBhd2FpdCBhc3NlcnRUaHJvd3Mo
J0Nhbm5vdFJldXNlUm9vdEZyb21Db21taXRTZXRXaXRoRGlmZmVyZW50TnVtYmVyT2ZJdGVtcycs
ICgpID0+IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1
aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKKyAgICAgICAgICAgICdzbGF2ZU5hbWUnOiAn
c3luYy1zbGF2ZScsCisgICAgICAgICAgICAnc2xhdmVQYXNzd29yZCc6ICdwYXNzd29yZCcsCisg
ICAgICAgICAgICAnYnVpbGRSZXF1ZXN0VXBkYXRlcyc6IHVwZGF0ZXMKKyAgICAgICAgfSkpOwor
ICAgIH0pOworCisgICAgaXQoJ3Nob3VsZCBmYWlsIHJlcXVlc3Qgd2l0aCAiQ2FuT25seVJldXNl
Q29tcGxldGVkQnVpbGRSZXF1ZXN0IiBpZiBidWlsZCByZXF1ZXN0IHRvIHJldXNlIGlzIG5vdCBj
b21wbGV0ZWQnLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZFJldXNh
YmxlQnVpbGRSZXF1ZXN0c01vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSwgWydydW5uaW5n
JywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycs
ICdwZW5kaW5nJywgJ3BlbmRpbmcnXSk7CisgICAgICAgIGxldCBjb250ZW50ID0gYXdhaXQgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0
cy9idWlsZC13ZWJraXQnKTsKKworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlz
KGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0
cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA1MDApOworICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnY29tbWl0U2V0cyddWzJdLmlkLCA2MDApOworCisgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAg
IHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWly
ZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKKyAgICAgICAgICAgIHtjb21taXQ6ICc5
MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVl
LCByb290RmlsZTogMTAxfV0pOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnODc4
MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNl
LCByb290RmlsZTogbnVsbH0sCisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRP
d25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51
bGx9XSk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5s
ZW5ndGgsIDgpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzBdLmlkLCA4MDApOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzBdLmNvbW1pdFNldCwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdydW5uaW5nJyk7CisgICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvYnVpZHMvMScpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0
cyddWzRdLmlkLCA5MDApOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1
ZXN0cyddWzRdLmNvbW1pdFNldCwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVs0XS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCBudWxsKTsKKworICAgICAgICBj
b25zdCB1cGRhdGVzID0gezkwMDogeworICAgICAgICAgICAgICAgIHN0YXR1czogY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0udXJsLCByb290U291cmNlQnVpbGRSZXF1ZXN0OiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11b
MF0uaWR9fTsKKyAgICAgICAgYXdhaXQgYXNzZXJ0VGhyb3dzKCdDYW5Pbmx5UmV1c2VDb21wbGV0
ZWRCdWlsZFJlcXVlc3QnLCAoKSA9PiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0
aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnLCB7CisgICAgICAgICAg
ICAnc2xhdmVOYW1lJzogJ3N5bmMtc2xhdmUnLAorICAgICAgICAgICAgJ3NsYXZlUGFzc3dvcmQn
OiAncGFzc3dvcmQnLAorICAgICAgICAgICAgJ2J1aWxkUmVxdWVzdFVwZGF0ZXMnOiB1cGRhdGVz
CisgICAgICAgIH0pKTsKKyAgICB9KTsKKworICAgIGl0KCdzaG91bGQgZmFpbCByZXF1ZXN0IHdp
dGggIkZhaWxlZFRvRmluZFJldXNlQnVpbGRSZXF1ZXN0IiBpcyByZXVzZSByZXF1ZXN0IGlzIGlu
dmFsaWQnLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZFJldXNhYmxl
QnVpbGRSZXF1ZXN0c01vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSk7CisgICAgICAgIGxl
dCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1
cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsKKworICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywg
J2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOworICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA1MDApOworICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkLCA2MDApOworCisg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9u
SXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxs
LCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKKyAg
ICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogMTAw
LCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0pOworICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAg
ICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGws
IHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCisgICAgICAgICAgICB7Y29t
bWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWls
ZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOworICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNTAwKTsKKyAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQn
KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmws
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7CisgICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA2MDApOworICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3BlbmRp
bmcnKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS51
cmwsIG51bGwpOworCisgICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7OTAwOiB7CisgICAgICAgICAg
ICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uc3RhdHVzLCB1cmw6IGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIHJvb3RTb3VyY2VCdWlsZFJlcXVlc3Q6IDk5
OX19OworCisgICAgICAgIGF3YWl0IGFzc2VydFRocm93cygnRmFpbGVkVG9GaW5kUm9vdFNvdXJj
ZUJ1aWxkUmVxdWVzdCcsICgpID0+IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRo
U3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKKyAgICAgICAgICAg
ICdzbGF2ZU5hbWUnOiAnc3luYy1zbGF2ZScsCisgICAgICAgICAgICAnc2xhdmVQYXNzd29yZCc6
ICdwYXNzd29yZCcsCisgICAgICAgICAgICAnYnVpbGRSZXF1ZXN0VXBkYXRlcyc6IHVwZGF0ZXMK
KyAgICAgICAgfSkpOworICAgIH0pOworCiAgICAgaXQoJ3Nob3VsZCByZXR1cm4gYnVpbGQgcmVx
dWVzdHMgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4gdHJpZ2dlcmFibGUgd2l0aCBhcHByb3ByaWF0
ZSBjb21taXRzIGFuZCBjb21taXRTZXRzJywgKCkgPT4gewogICAgICAgICByZXR1cm4gTW9ja0Rh
dGEuYWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpKS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRoU3RhdHVzKCcv
YXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpz
CmluZGV4IDkyMDg0ZTRmOTcwZGZhYmY5ZDdjMDlmZjdjOGZkMzcwNzQ0ODVkOTIuLmE4NTdlOWZi
ZmJiNzlkOGYwNmFmNDFjNmU0MzU3Mzg5ZmMzNjFlOWIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcworKysgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEu
anMKQEAgLTQwLDkgKzQwLDkgQEAgTW9ja0RhdGEgPSB7CiAgICAgICAgICAgICBkYi5pbnNlcnQo
J3JlcG9zaXRvcmllcycsIHtpZDogdGhpcy5zaGFyZWRSZXBvc2l0b3J5SWQoKSwgbmFtZTogJ1No
YXJlZCd9KSwKICAgICAgICAgICAgIGRiLmluc2VydCgncmVwb3NpdG9yaWVzJywge2lkOiB0aGlz
Lm93bmVkSlNDUmVwb3NpdG9yeUlkKCksIG93bmVyOiB0aGlzLndlYmtpdFJlcG9zaXRvcnlJZCgp
LCBuYW1lOiAnSmF2YVNjcmlwdENvcmUnfSksCiAgICAgICAgICAgICBkYi5pbnNlcnQoJ3JlcG9z
aXRvcmllcycsIHtpZDogdGhpcy5qc2NSZXBvc2l0b3J5SWQoKSwgbmFtZTogJ0phdmFTY3JpcHRD
b3JlJ30pLAotICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dy
b3VwcycsIHtpZDogMjAwMSwgbmFtZTogJ3dlYmtpdC1zdm4nLCB0cmlnZ2VyYWJsZTogMTAwMH0p
LAorICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3Vwcycs
IHtpZDogMjAwMSwgbmFtZTogJ3dlYmtpdC1zdm4nLCB0cmlnZ2VyYWJsZTogMTAwMCwgYWNjZXB0
c19yb290czogdHJ1ZX0pLAogICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBv
c2l0b3JpZXMnLCB7cmVwb3NpdG9yeTogdGhpcy5tYWNvc1JlcG9zaXRvcnlJZCgpLCBncm91cDog
MjAwMX0pLAotICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMn
LCB7cmVwb3NpdG9yeTogdGhpcy53ZWJraXRSZXBvc2l0b3J5SWQoKSwgZ3JvdXA6IDIwMDF9KSwK
KyAgICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzJywge3JlcG9z
aXRvcnk6IHRoaXMud2Via2l0UmVwb3NpdG9yeUlkKCksIGdyb3VwOiAyMDAxLCBhY2NlcHRzX3Bh
dGNoOiB0cnVlfSksCiAgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7aWQ6IDg3ODMy
LCByZXBvc2l0b3J5OiB0aGlzLm1hY29zUmVwb3NpdG9yeUlkKCksIHJldmlzaW9uOiAnMTAuMTEg
MTVBMjg0J30pLAogICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRzJywge2lkOiA5MzExNiwg
cmVwb3NpdG9yeTogdGhpcy53ZWJraXRSZXBvc2l0b3J5SWQoKSwgcmV2aXNpb246ICcxOTE2MjIn
LCB0aW1lOiAobmV3IERhdGUoMTQ0NTk0NTgxNjg3OCkpLnRvSVNPU3RyaW5nKCl9KSwKICAgICAg
ICAgICAgIGRiLmluc2VydCgnY29tbWl0cycsIHtpZDogOTYzMzYsIHJlcG9zaXRvcnk6IHRoaXMu
d2Via2l0UmVwb3NpdG9yeUlkKCksIHJldmlzaW9uOiAnMTkyNzM2JywgdGltZTogKG5ldyBEYXRl
KDE0NDgyMjUzMjU2NTApKS50b0lTT1N0cmluZygpfSksCkBAIC02NCwxMCArNjQsMTIgQEAgTW9j
a0RhdGEgPSB7CiAgICAgICAgICAgICBkYi5pbnNlcnQoJ3Rlc3RfcnVucycsIHtpZDogODAxLCBj
b25maWc6IDMwMSwgYnVpbGQ6IDkwMSwgbWVhbl9jYWNoZTogMTAwfSksCiAgICAgICAgIF0pOwog
ICAgIH0sCi0gICAgYWRkTW9ja0RhdGE6IGZ1bmN0aW9uIChkYiwgc3RhdHVzTGlzdCwgbmVlZHNO
b3RpZmljYXRpb249dHJ1ZSkKKyAgICBhZGRNb2NrRGF0YTogZnVuY3Rpb24gKGRiLCBzdGF0dXNM
aXN0LCBuZWVkc05vdGlmaWNhdGlvbj10cnVlLCB1cmxMaXN0PVtdKQogICAgIHsKICAgICAgICAg
aWYgKCFzdGF0dXNMaXN0KQogICAgICAgICAgICAgc3RhdHVzTGlzdCA9IFsncGVuZGluZycsICdw
ZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZyddOworICAgICAgICBpZiAoIXVybExpc3QpCisg
ICAgICAgICAgICB1cmxMaXN0ID0gW251bGwsIG51bGwsIG51bGwsIG51bGxdOwogICAgICAgICBy
ZXR1cm4gUHJvbWlzZS5hbGwoWwogICAgICAgICAgICAgdGhpcy5hZGRNb2NrQ29uZmlndXJhdGlv
bihkYiksCiAgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdF9zZXRzJywge2lkOiA0MDF9KSwK
QEAgLTgwLDEwICs4Miw1MCBAQCBNb2NrRGF0YSA9IHsKICAgICAgICAgICAgICAgICBzdGFydF9y
dW46IDgwMSwgc3RhcnRfcnVuX3RpbWU6ICcyMDE1LTEwLTI3VDEyOjA1OjI3LjFaJywKICAgICAg
ICAgICAgICAgICBlbmRfcnVuOiA4MDEsIGVuZF9ydW5fdGltZTogJzIwMTUtMTAtMjdUMTI6MDU6
MjcuMVonfSksCiAgICAgICAgICAgICBkYi5pbnNlcnQoJ2FuYWx5c2lzX3Rlc3RfZ3JvdXBzJywg
e2lkOiA2MDAsIHRhc2s6IDUwMCwgbmFtZTogJ3NvbWUgdGVzdCBncm91cCcsIGluaXRpYWxfcmVw
ZXRpdGlvbl9jb3VudDogNCwgbmVlZHNfbm90aWZpY2F0aW9uOiBuZWVkc05vdGlmaWNhdGlvbn0p
LAotICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1ZXN0cycsIHtpZDogNzAwLCBzdGF0
dXM6IHN0YXR1c0xpc3RbMF0sIHRyaWdnZXJhYmxlOiAxMDAwLCByZXBvc2l0b3J5X2dyb3VwOiAy
MDAxLCBwbGF0Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3JvdXA6IDYwMCwgb3JkZXI6IDAsIGNvbW1p
dF9zZXQ6IDQwMX0pLAotICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1ZXN0cycsIHtp
ZDogNzAxLCBzdGF0dXM6IHN0YXR1c0xpc3RbMV0sIHRyaWdnZXJhYmxlOiAxMDAwLCByZXBvc2l0
b3J5X2dyb3VwOiAyMDAxLCBwbGF0Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3JvdXA6IDYwMCwgb3Jk
ZXI6IDEsIGNvbW1pdF9zZXQ6IDQwMn0pLAotICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZF9y
ZXF1ZXN0cycsIHtpZDogNzAyLCBzdGF0dXM6IHN0YXR1c0xpc3RbMl0sIHRyaWdnZXJhYmxlOiAx
MDAwLCByZXBvc2l0b3J5X2dyb3VwOiAyMDAxLCBwbGF0Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3Jv
dXA6IDYwMCwgb3JkZXI6IDIsIGNvbW1pdF9zZXQ6IDQwMX0pLAotICAgICAgICAgICAgZGIuaW5z
ZXJ0KCdidWlsZF9yZXF1ZXN0cycsIHtpZDogNzAzLCBzdGF0dXM6IHN0YXR1c0xpc3RbM10sIHRy
aWdnZXJhYmxlOiAxMDAwLCByZXBvc2l0b3J5X2dyb3VwOiAyMDAxLCBwbGF0Zm9ybTogNjUsIHRl
c3Q6IDIwMCwgZ3JvdXA6IDYwMCwgb3JkZXI6IDMsIGNvbW1pdF9zZXQ6IDQwMn0pLAorICAgICAg
ICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1ZXN0cycsIHtpZDogNzAwLCBzdGF0dXM6IHN0YXR1
c0xpc3RbMF0sIHVybDogdXJsTGlzdFswXSwgdHJpZ2dlcmFibGU6IDEwMDAsIHJlcG9zaXRvcnlf
Z3JvdXA6IDIwMDEsIHBsYXRmb3JtOiA2NSwgdGVzdDogMjAwLCBncm91cDogNjAwLCBvcmRlcjog
MCwgY29tbWl0X3NldDogNDAxfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2J1aWxkX3JlcXVl
c3RzJywge2lkOiA3MDEsIHN0YXR1czogc3RhdHVzTGlzdFsxXSwgdXJsOiB1cmxMaXN0WzFdLCB0
cmlnZ2VyYWJsZTogMTAwMCwgcmVwb3NpdG9yeV9ncm91cDogMjAwMSwgcGxhdGZvcm06IDY1LCB0
ZXN0OiAyMDAsIGdyb3VwOiA2MDAsIG9yZGVyOiAxLCBjb21taXRfc2V0OiA0MDJ9KSwKKyAgICAg
ICAgICAgIGRiLmluc2VydCgnYnVpbGRfcmVxdWVzdHMnLCB7aWQ6IDcwMiwgc3RhdHVzOiBzdGF0
dXNMaXN0WzJdLCB1cmw6IHVybExpc3RbMl0sIHRyaWdnZXJhYmxlOiAxMDAwLCByZXBvc2l0b3J5
X2dyb3VwOiAyMDAxLCBwbGF0Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3JvdXA6IDYwMCwgb3JkZXI6
IDIsIGNvbW1pdF9zZXQ6IDQwMX0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1
ZXN0cycsIHtpZDogNzAzLCBzdGF0dXM6IHN0YXR1c0xpc3RbM10sIHVybDogdXJsTGlzdFszXSwg
dHJpZ2dlcmFibGU6IDEwMDAsIHJlcG9zaXRvcnlfZ3JvdXA6IDIwMDEsIHBsYXRmb3JtOiA2NSwg
dGVzdDogMjAwLCBncm91cDogNjAwLCBvcmRlcjogMywgY29tbWl0X3NldDogNDAyfSksCisgICAg
ICAgIF0pOworICAgIH0sCisgICAgYWRkUmV1c2FibGVCdWlsZFJlcXVlc3RzTW9ja0RhdGEoZGIs
IHN0YXR1c0xpc3QsIG5lZWRzTm90aWZpY2F0aW9uPXRydWUsIGFkZE1vY2tDb25maWd1cmF0aW9u
PXRydWUpCisgICAgeworICAgICAgICBjb25zdCBzZXR1cFN0ZXBzID0gYWRkTW9ja0NvbmZpZ3Vy
YXRpb24gPyBbdGhpcy5hZGRNb2NrQ29uZmlndXJhdGlvbihkYildIDogW107CisgICAgICAgIGlm
ICghc3RhdHVzTGlzdCkKKyAgICAgICAgICAgIHN0YXR1c0xpc3QgPSBbJ2NvbXBsZXRlZCcsICdy
dW5uaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVu
ZGluZycsICdwZW5kaW5nJ107CisgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbCisgICAgICAg
ICAgICAuLi5zZXR1cFN0ZXBzLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCd1cGxvYWRlZF9maWxl
cycsIHtpZDogMTAwLCBmaWxlbmFtZTogJ3BhdGNoLTEwMCcsIGV4dGVuc2lvbjogJy50eHQnLCBz
aXplOiAxLCBzaGEyNTY6IGNyeXB0by5jcmVhdGVIYXNoKCdzaGEyNTYnKS51cGRhdGUoJ3BhdGNo
LTEwMCcpLmRpZ2VzdCgnaGV4Jyl9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgndXBsb2FkZWRf
ZmlsZXMnLCB7aWQ6IDEwMSwgZmlsZW5hbWU6ICdyb290LTEwMScsIGV4dGVuc2lvbjogJy50Z3on
LCBzaXplOiAxLCBzaGEyNTY6IGNyeXB0by5jcmVhdGVIYXNoKCdzaGEyNTYnKS51cGRhdGUoJ3Jv
b3QtMTAxJykuZGlnZXN0KCdoZXgnKX0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCd1cGxvYWRl
ZF9maWxlcycsIHtpZDogMTAyLCBmaWxlbmFtZTogJ3BhdGNoLTEwMicsIGV4dGVuc2lvbjogJy50
eHQnLCBzaXplOiAxLCBzaGEyNTY6IGNyeXB0by5jcmVhdGVIYXNoKCdzaGEyNTYnKS51cGRhdGUo
J3BhdGNoLTEwMicpLmRpZ2VzdCgnaGV4Jyl9KSwKKworICAgICAgICAgICAgZGIuaW5zZXJ0KCdj
b21taXRfc2V0cycsIHtpZDogNTAwfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdF9z
ZXRfaXRlbXMnLCB7c2V0OiA1MDAsIGNvbW1pdDogODc4MzJ9KSwKKyAgICAgICAgICAgIGRiLmlu
c2VydCgnY29tbWl0X3NldF9pdGVtcycsIHtzZXQ6IDUwMCwgY29tbWl0OiA5MzExNiwgcGF0Y2hf
ZmlsZTogMTAwLCByZXF1aXJlc19idWlsZDogdHJ1ZSwgcm9vdF9maWxlOiAxMDF9KSwKKyAgICAg
ICAgICAgIGRiLmluc2VydCgnY29tbWl0X3NldHMnLCB7aWQ6IDUwMX0pLAorICAgICAgICAgICAg
ZGIuaW5zZXJ0KCdjb21taXRfc2V0X2l0ZW1zJywge3NldDogNTAxLCBjb21taXQ6IDg3ODMyfSks
CisgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdF9zZXRfaXRlbXMnLCB7c2V0OiA1MDEsIGNv
bW1pdDogOTYzMzYsIHBhdGNoX2ZpbGU6IDEwMiwgcmVxdWlyZXNfYnVpbGQ6IHRydWV9KSwKKwor
ICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRfc2V0cycsIHtpZDogNjAwfSksCisgICAgICAg
ICAgICBkYi5pbnNlcnQoJ2NvbW1pdF9zZXRfaXRlbXMnLCB7c2V0OiA2MDAsIGNvbW1pdDogODc4
MzJ9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0X3NldF9pdGVtcycsIHtzZXQ6IDYw
MCwgY29tbWl0OiA5MzExNiwgcGF0Y2hfZmlsZTogMTAwLCByZXF1aXJlc19idWlsZDogdHJ1ZX0p
LAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRfc2V0cycsIHtpZDogNjAxfSksCisgICAg
ICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdF9zZXRfaXRlbXMnLCB7c2V0OiA2MDEsIGNvbW1pdDog
ODc4MzJ9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0X3NldF9pdGVtcycsIHtzZXQ6
IDYwMSwgY29tbWl0OiA5NjMzNiwgcGF0Y2hfZmlsZTogMTAyLCByZXF1aXJlc19idWlsZDogdHJ1
ZX0pLAorCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2FuYWx5c2lzX3Rhc2tzJywge2lkOiA2MDAs
IG5hbWU6ICdhbm90aGVyIHRhc2snfSksCisKKyAgICAgICAgICAgIGRiLmluc2VydCgnYW5hbHlz
aXNfdGVzdF9ncm91cHMnLCB7aWQ6IDcwMCwgdGFzazogNjAwLCBuYW1lOiAndGVzdCB3aXRoIHJv
b3QgYnVpbHQnLCBpbml0aWFsX3JlcGV0aXRpb25fY291bnQ6IDEsIG5lZWRzX25vdGlmaWNhdGlv
bjogbmVlZHNOb3RpZmljYXRpb259KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRfcmVx
dWVzdHMnLCB7aWQ6IDgwMCwgc3RhdHVzOiBzdGF0dXNMaXN0WzBdLCB0cmlnZ2VyYWJsZTogMTAw
MCwgcmVwb3NpdG9yeV9ncm91cDogMjAwMSwgcGxhdGZvcm06IDY1LCBncm91cDogNzAwLCBvcmRl
cjogLTIsIGNvbW1pdF9zZXQ6IDUwMCwgdXJsOiAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVp
ZHMvMSd9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRfcmVxdWVzdHMnLCB7aWQ6IDgw
MSwgc3RhdHVzOiBzdGF0dXNMaXN0WzFdLCB0cmlnZ2VyYWJsZTogMTAwMCwgcmVwb3NpdG9yeV9n
cm91cDogMjAwMSwgcGxhdGZvcm06IDY1LCBncm91cDogNzAwLCBvcmRlcjogLTEsIGNvbW1pdF9z
ZXQ6IDUwMX0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1ZXN0cycsIHtpZDog
ODAyLCBzdGF0dXM6IHN0YXR1c0xpc3RbMl0sIHRyaWdnZXJhYmxlOiAxMDAwLCByZXBvc2l0b3J5
X2dyb3VwOiAyMDAxLCBwbGF0Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3JvdXA6IDcwMCwgb3JkZXI6
IDAsIGNvbW1pdF9zZXQ6IDUwMH0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1
ZXN0cycsIHtpZDogODAzLCBzdGF0dXM6IHN0YXR1c0xpc3RbM10sIHRyaWdnZXJhYmxlOiAxMDAw
LCByZXBvc2l0b3J5X2dyb3VwOiAyMDAxLCBwbGF0Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3JvdXA6
IDcwMCwgb3JkZXI6IDEsIGNvbW1pdF9zZXQ6IDUwMX0pLAorCisgICAgICAgICAgICBkYi5pbnNl
cnQoJ2FuYWx5c2lzX3Rlc3RfZ3JvdXBzJywge2lkOiA3MDEsIHRhc2s6IDYwMCwgbmFtZTogJ3Rl
c3Qgd2lsbCByZXVzZSByb290JywgaW5pdGlhbF9yZXBldGl0aW9uX2NvdW50OiAxLCBuZWVkc19u
b3RpZmljYXRpb246IG5lZWRzTm90aWZpY2F0aW9ufSksCisgICAgICAgICAgICBkYi5pbnNlcnQo
J2J1aWxkX3JlcXVlc3RzJywge2lkOiA5MDAsIHN0YXR1czogc3RhdHVzTGlzdFs0XSwgdHJpZ2dl
cmFibGU6IDEwMDAsIHJlcG9zaXRvcnlfZ3JvdXA6IDIwMDEsIHBsYXRmb3JtOiA2NSwgZ3JvdXA6
IDcwMSwgb3JkZXI6IC0yLCBjb21taXRfc2V0OiA2MDB9KSwKKyAgICAgICAgICAgIGRiLmluc2Vy
dCgnYnVpbGRfcmVxdWVzdHMnLCB7aWQ6IDkwMSwgc3RhdHVzOiBzdGF0dXNMaXN0WzVdLCB0cmln
Z2VyYWJsZTogMTAwMCwgcmVwb3NpdG9yeV9ncm91cDogMjAwMSwgcGxhdGZvcm06IDY1LCBncm91
cDogNzAxLCBvcmRlcjogLTEsIGNvbW1pdF9zZXQ6IDYwMX0pLAorICAgICAgICAgICAgZGIuaW5z
ZXJ0KCdidWlsZF9yZXF1ZXN0cycsIHtpZDogOTAyLCBzdGF0dXM6IHN0YXR1c0xpc3RbNl0sIHRy
aWdnZXJhYmxlOiAxMDAwLCByZXBvc2l0b3J5X2dyb3VwOiAyMDAxLCBwbGF0Zm9ybTogNjUsIHRl
c3Q6IDIwMCwgZ3JvdXA6IDcwMSwgb3JkZXI6IDAsIGNvbW1pdF9zZXQ6IDYwMH0pLAorICAgICAg
ICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1ZXN0cycsIHtpZDogOTAzLCBzdGF0dXM6IHN0YXR1
c0xpc3RbN10sIHRyaWdnZXJhYmxlOiAxMDAwLCByZXBvc2l0b3J5X2dyb3VwOiAyMDAxLCBwbGF0
Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3JvdXA6IDcwMSwgb3JkZXI6IDEsIGNvbW1pdF9zZXQ6IDYw
MX0pLAogICAgICAgICBdKTsKICAgICB9LAogICAgIGFkZEFub3RoZXJUcmlnZ2VyYWJsZShkYikg
ewpAQCAtMTcyLDYgKzIxNCw0NSBAQCBNb2NrRGF0YSA9IHsKICAgICAgICAgICAgIGRiLmluc2Vy
dCgnYnVpbGRfcmVxdWVzdHMnLCB7aWQ6IDcwNywgc3RhdHVzOiBzdGF0dXNMaXN0WzNdLCB0cmln
Z2VyYWJsZTogMTAwMCwgcmVwb3NpdG9yeV9ncm91cDogMjAwMSwgcGxhdGZvcm06IDY1LCB0ZXN0
OiAyMDAsIGdyb3VwOiA5MDAsIG9yZGVyOiAzLCBjb21taXRfc2V0OiA0MDR9KSwKICAgICAgICAg
XSk7CiAgICAgfSwKKyAgICBhZGRSZXVzYWJsZVRlc3RHcm91cFdpdGhPd25lZENvbW1pdHMoZGIp
CisgICAgeworICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgdGhpcy5h
ZGRNb2NrQ29uZmlndXJhdGlvbihkYiksCisgICAgICAgICAgICB0aGlzLmFkZEFub3RoZXJUcmln
Z2VyYWJsZShkYiksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2FuYWx5c2lzX3Rhc2tzJywge2lk
OiAxMDgwLCBwbGF0Zm9ybTogNjUsIG1ldHJpYzogMzAwLCBuYW1lOiAnc29tZSB0YXNrIHdpdGgg
Y29tcG9uZW50IHRlc3QnLAorICAgICAgICAgICAgICAgIHN0YXJ0X3J1bjogODAxLCBzdGFydF9y
dW5fdGltZTogJzIwMTUtMTAtMjdUMTI6MDU6MjcuMVonLAorICAgICAgICAgICAgICAgIGVuZF9y
dW46IDgwMSwgZW5kX3J1bl90aW1lOiAnMjAxNS0xMC0yN1QxMjowNToyNy4xWid9KSwKKworICAg
ICAgICAgICAgZGIuaW5zZXJ0KCd1cGxvYWRlZF9maWxlcycsIHtpZDogMTAxLCBmaWxlbmFtZTog
J3Jvb3QtMTAxJywgc2l6ZTogMSwgc2hhMjU2OiBjcnlwdG8uY3JlYXRlSGFzaCgnc2hhMjU2Jyku
dXBkYXRlKCdyb290LTEwMScpLmRpZ2VzdCgnaGV4JyksIH0pLAorICAgICAgICAgICAgZGIuaW5z
ZXJ0KCdhbmFseXNpc190ZXN0X2dyb3VwcycsIHtpZDogOTAwLCB0YXNrOiAxMDgwLCBuYW1lOiAn
c29tZSB0ZXN0IGdyb3VwIHdpdGggY29tcG9uZW50IHRlc3Qocm9vdCBidWlsdCknLCBpbml0aWFs
X3JlcGV0aXRpb25fY291bnQ6IDF9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0X3Nl
dHMnLCB7aWQ6IDQwM30pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRfc2V0X2l0ZW1z
Jywge3NldDogNDAzLCBjb21taXQ6IDg3ODMyfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2Nv
bW1pdF9zZXRfaXRlbXMnLCB7c2V0OiA0MDMsIGNvbW1pdDogOTMxMTZ9KSwKKyAgICAgICAgICAg
IGRiLmluc2VydCgnY29tbWl0X3NldF9pdGVtcycsIHtzZXQ6IDQwMywgY29tbWl0OiAxNzk3LCBj
b21taXRfb3duZXI6IDkzMTE2LCByZXF1aXJlc19idWlsZDogdHJ1ZSwgcm9vdF9maWxlOiAxMDF9
KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0X3NldHMnLCB7aWQ6IDQwNH0pLAorICAg
ICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRfc2V0X2l0ZW1zJywge3NldDogNDA0LCBjb21taXQ6
IDg3ODMyfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdF9zZXRfaXRlbXMnLCB7c2V0
OiA0MDQsIGNvbW1pdDogOTYzMzZ9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0X3Nl
dF9pdGVtcycsIHtzZXQ6IDQwNCwgY29tbWl0OiAyMDE3LCBjb21taXRfb3duZXI6IDk2MzM2LCBy
ZXF1aXJlc19idWlsZDogdHJ1ZX0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1
ZXN0cycsIHtpZDogNzA0LCBzdGF0dXM6ICdjb21wbGV0ZWQnLCB0cmlnZ2VyYWJsZTogMTAwMCwg
cmVwb3NpdG9yeV9ncm91cDogMjAwMSwgcGxhdGZvcm06IDY1LCBncm91cDogOTAwLCBvcmRlcjog
LTIsIGNvbW1pdF9zZXQ6IDQwMywgdXJsOiAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMv
MSd9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRfcmVxdWVzdHMnLCB7aWQ6IDcwNSwg
c3RhdHVzOiAncGVuZGluZycsIHRyaWdnZXJhYmxlOiAxMDAwLCByZXBvc2l0b3J5X2dyb3VwOiAy
MDAxLCBwbGF0Zm9ybTogNjUsIGdyb3VwOiA5MDAsIG9yZGVyOiAtMSwgY29tbWl0X3NldDogNDA0
fSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2J1aWxkX3JlcXVlc3RzJywge2lkOiA3MDYsIHN0
YXR1czogJ3BlbmRpbmcnLCB0cmlnZ2VyYWJsZTogMTAwMCwgcmVwb3NpdG9yeV9ncm91cDogMjAw
MSwgcGxhdGZvcm06IDY1LCB0ZXN0OiAyMDAsIGdyb3VwOiA5MDAsIG9yZGVyOiAwLCBjb21taXRf
c2V0OiA0MDN9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRfcmVxdWVzdHMnLCB7aWQ6
IDcwNywgc3RhdHVzOiAncGVuZGluZycsIHRyaWdnZXJhYmxlOiAxMDAwLCByZXBvc2l0b3J5X2dy
b3VwOiAyMDAxLCBwbGF0Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3JvdXA6IDkwMCwgb3JkZXI6IDEs
IGNvbW1pdF9zZXQ6IDQwNH0pLAorCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2FuYWx5c2lzX3Rl
c3RfZ3JvdXBzJywge2lkOiA5MDEsIHRhc2s6IDEwODAsIG5hbWU6ICdzb21lIHRlc3QgZ3JvdXAg
d2l0aCBjb21wb25lbnQgdGVzdCcsIGluaXRpYWxfcmVwZXRpdGlvbl9jb3VudDogMX0pLAorICAg
ICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRfc2V0cycsIHtpZDogNDA1fSksCisgICAgICAgICAg
ICBkYi5pbnNlcnQoJ2NvbW1pdF9zZXRfaXRlbXMnLCB7c2V0OiA0MDUsIGNvbW1pdDogODc4MzJ9
KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0X3NldF9pdGVtcycsIHtzZXQ6IDQwNSwg
Y29tbWl0OiA5MzExNn0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRfc2V0X2l0ZW1z
Jywge3NldDogNDA1LCBjb21taXQ6IDE3OTcsIGNvbW1pdF9vd25lcjogOTMxMTYsIHJlcXVpcmVz
X2J1aWxkOiB0cnVlfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdF9zZXRzJywge2lk
OiA0MDZ9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0X3NldF9pdGVtcycsIHtzZXQ6
IDQwNiwgY29tbWl0OiA4NzgzMn0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRfc2V0
X2l0ZW1zJywge3NldDogNDA2LCBjb21taXQ6IDk2MzM2fSksCisgICAgICAgICAgICBkYi5pbnNl
cnQoJ2NvbW1pdF9zZXRfaXRlbXMnLCB7c2V0OiA0MDYsIGNvbW1pdDogMjAxNywgY29tbWl0X293
bmVyOiA5NjMzNiwgcmVxdWlyZXNfYnVpbGQ6IHRydWV9KSwKKyAgICAgICAgICAgIGRiLmluc2Vy
dCgnYnVpbGRfcmVxdWVzdHMnLCB7aWQ6IDcwOCwgc3RhdHVzOiAncGVuZGluZycsIHRyaWdnZXJh
YmxlOiAxMDAwLCByZXBvc2l0b3J5X2dyb3VwOiAyMDAxLCBwbGF0Zm9ybTogNjUsIGdyb3VwOiA5
MDEsIG9yZGVyOiAtMiwgY29tbWl0X3NldDogNDA1fSksCisgICAgICAgICAgICBkYi5pbnNlcnQo
J2J1aWxkX3JlcXVlc3RzJywge2lkOiA3MDksIHN0YXR1czogJ3BlbmRpbmcnLCB0cmlnZ2VyYWJs
ZTogMTAwMCwgcmVwb3NpdG9yeV9ncm91cDogMjAwMSwgcGxhdGZvcm06IDY1LCBncm91cDogOTAx
LCBvcmRlcjogLTEsIGNvbW1pdF9zZXQ6IDQwNn0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdi
dWlsZF9yZXF1ZXN0cycsIHtpZDogNzEwLCBzdGF0dXM6ICdwZW5kaW5nJywgdHJpZ2dlcmFibGU6
IDEwMDAsIHJlcG9zaXRvcnlfZ3JvdXA6IDIwMDEsIHBsYXRmb3JtOiA2NSwgdGVzdDogMjAwLCBn
cm91cDogOTAxLCBvcmRlcjogMCwgY29tbWl0X3NldDogNDA1fSksCisgICAgICAgICAgICBkYi5p
bnNlcnQoJ2J1aWxkX3JlcXVlc3RzJywge2lkOiA3MTEsIHN0YXR1czogJ3BlbmRpbmcnLCB0cmln
Z2VyYWJsZTogMTAwMCwgcmVwb3NpdG9yeV9ncm91cDogMjAwMSwgcGxhdGZvcm06IDY1LCB0ZXN0
OiAyMDAsIGdyb3VwOiA5MDEsIG9yZGVyOiAxLCBjb21taXRfc2V0OiA0MDZ9KSwKKyAgICAgICAg
XSk7CisgICAgfSwKICAgICBhZGRUZXN0R3JvdXBXaXRoT3duZXJDb21taXROb3RJbkNvbW1pdFNl
dChkYikKICAgICB7CiAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbCkBAIC0yMTksNiArMzAw
LDUxIEBAIE1vY2tEYXRhID0gewogICAgICAgICAgICAgXQogICAgICAgICB9CiAgICAgfSwKKyAg
ICBtb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVpbGRlcnNPbmVUZXN0ZXI6IGZ1bmN0aW9uICgp
CisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgJ3RyaWdnZXJhYmxlTmFtZSc6
ICdidWlsZC13ZWJraXQnLAorICAgICAgICAgICAgJ2xvb2tiYWNrQ291bnQnOiAyLAorICAgICAg
ICAgICAgJ2J1aWxkUmVxdWVzdEFyZ3VtZW50JzogJ2J1aWxkLXJlcXVlc3QtaWQnLAorICAgICAg
ICAgICAgJ3JlcG9zaXRvcnlHcm91cHMnOiB7CisgICAgICAgICAgICAgICAgJ3dlYmtpdC1zdm4n
OiB7CisgICAgICAgICAgICAgICAgICAgICdyZXBvc2l0b3JpZXMnOiB7J1dlYktpdCc6IHsnYWNj
ZXB0c1BhdGNoJzogdHJ1ZX0sICdtYWNPUyc6IHt9fSwKKyAgICAgICAgICAgICAgICAgICAgJ2Fj
Y2VwdHNSb290cyc6IHRydWUsCisgICAgICAgICAgICAgICAgICAgICd0ZXN0UHJvcGVydGllcyc6
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdvcyc6IHsncmV2aXNpb24nOiAnbWFjT1MnfSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICd3ayc6IHsncmV2aXNpb24nOiAnV2ViS2l0J30sCisg
ICAgICAgICAgICAgICAgICAgICAgICAncm9vdHMnOiB7InJvb3RzIjoge319LAorICAgICAgICAg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAnYnVpbGRQcm9wZXJ0aWVzJzogewor
ICAgICAgICAgICAgICAgICAgICAgICAgJ29zJzogeydyZXZpc2lvbic6ICdtYWNPUyd9LAorICAg
ICAgICAgICAgICAgICAgICAgICAgJ3drJzogeydyZXZpc2lvbic6ICdXZWJLaXQnfSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICd3ay1wYXRjaCc6IHsncGF0Y2gnOiAnV2ViS2l0J30sCisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgJ3R5cGVzJzogeworICAgICAgICAgICAgICAgICdzb21lLXRlc3QnOiB7J3Rlc3Qn
OiBbJ3NvbWUgdGVzdCddfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdidWlsZGVycyc6
IHsKKyAgICAgICAgICAgICAgICAndGVzdGVyJzogeydidWlsZGVyJzogJ3NvbWUgdGVzdGVyJywg
cHJvcGVydGllczoge2ZvcmNlc2NoZWR1bGVyOiAnZm9yY2Utc29tZS10ZXN0ZXInfX0sCisgICAg
ICAgICAgICAgICAgJ2J1aWxkZXItMSc6IHsnYnVpbGRlcic6ICdzb21lLWJ1aWxkZXItMScsIHBy
b3BlcnRpZXM6IHtmb3JjZXNjaGVkdWxlcjogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319LAorICAg
ICAgICAgICAgICAgICdidWlsZGVyLTInOiB7J2J1aWxkZXInOiAnc29tZSBidWlsZGVyIDInLCBw
cm9wZXJ0aWVzOiB7Zm9yY2VzY2hlZHVsZXI6ICdmb3JjZS1zb21lLWJ1aWxkZXItMid9fSwKKyAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICAndGVzdENvbmZpZ3VyYXRpb25zJzogWworICAgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ3BsYXRmb3Jtcyc6IFsnc29tZSBwbGF0
Zm9ybSddLAorICAgICAgICAgICAgICAgICAgICAndHlwZXMnOiBbJ3NvbWUtdGVzdCddLAorICAg
ICAgICAgICAgICAgICAgICAnYnVpbGRlcnMnOiBbJ3Rlc3RlciddLAorICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAnYnVpbGRDb25maWd1cmF0aW9ucyc6IFsK
KyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdwbGF0Zm9ybXMnOiBbJ3Nv
bWUgcGxhdGZvcm0nXSwKKyAgICAgICAgICAgICAgICAgICAgJ2J1aWxkZXJzJzogWydidWlsZGVy
LTEnLCAnYnVpbGRlci0yJ10sCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXQorICAg
ICAgICB9CisgICAgfSwKICAgICBtb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVpbGRlcnM6IGZ1
bmN0aW9uICgpCiAgICAgewogICAgICAgICByZXR1cm4gewpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10
ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVp
bGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanMKaW5kZXggOWMzY2FiNDQ0YjkwMzk3N2ZiZjlmMTQ4
Yjk0ODFiM2M1ZjU0NzRjMi4uNTRjMTkwZTUyOGJmYTNkZTRlNTVmOTM2YzE1YjQyZmRkNDk5MzNm
YSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29s
cy1idWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzCkBA
IC05NDYsNiArOTQ2LDMwMiBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29s
dmUoJ09LJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3No
b3VsZCByZXVzZSByb290IGZyb20gY29tcGxldGVkIGJ1aWxkIHJlcXVlc3QgZm9yIHNhbWUgYnVp
bGQgcmVxdWVzdCcsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFk
ZFJldXNhYmxlQnVpbGRSZXF1ZXN0c01vY2tEYXRhKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSk7Cisg
ICAgICAgICAgICBhd2FpdCBNYW5pZmVzdC5mZXRjaCgpOworICAgICAgICAgICAgY29uc3QgY29u
ZmlnID0gTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzT25lVGVzdGVy
KCk7CisgICAgICAgICAgICBjb25zdCBsb2dnZXIgPSBuZXcgTW9ja0xvZ2dlcjsKKyAgICAgICAg
ICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFz
c3dvcmQnfTsKKyAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJp
Z2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBz
bGF2ZUluZm8sIGxvZ2dlcik7CisgICAgICAgICAgICBjb25zdCBzeW5jUHJvbWlzZSA9IHRyaWdn
ZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsK
KyAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1v
Y2tCdWlsZGJvdEJ1aWxkZXJzKCkpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgp
OworICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7Cisg
ICAgICAgICAgICBsZXQgYnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDgwMCk7
CisgICAgICAgICAgICBsZXQgYW5vdGhlckJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5k
QnlJZCg5MDApOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMo
KSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScp
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksIG51bGwpOworICAgICAgICAgICAgbGV0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKTsKKyAgICAgICAgICAgIGxldCBhbm90aGVyQ29tbWl0U2V0ID0gYW5vdGhlckJ1aWxk
UmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgICAgIGFzc2VydC5vayhjb21taXRTZXQuZXF1
YWxzSWdub3JpbmdSb290KGFub3RoZXJDb21taXRTZXQpKTsKKyAgICAgICAgICAgIGFzc2VydC5v
ayghY29tbWl0U2V0LmVxdWFscyhhbm90aGVyQ29tbWl0U2V0KSk7CisKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
c2V0KCk7CisgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0
aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3Rlcics
IDIpKTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRo
b2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIp
KTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxk
cyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAxfSksIE1v
Y2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAwfSldfSk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
LnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CisgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CisgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLnJlc29sdmUoe30pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21l
IGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVz
b2x2ZSh7fSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CisgICAgICAgICAg
ICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKKyAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5ydW5u
aW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAxfSksIE1vY2tEYXRhLmZpbmlzaGVkQnVp
bGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAwfSldfSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlc2V0KCk7CisKKyAgICAgICAgICAgIGF3YWl0IHN5bmNQcm9taXNlOworICAgICAgICAgICAg
YXdhaXQgQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RT
eW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzT25lVGVzdGVyKCkudHJpZ2dlcmFibGVOYW1lKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAg
ICAgICAgICAgIGJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg4MDApOworICAg
ICAgICAgICAgYW5vdGhlckJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg5MDAp
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBs
ZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3Rh
dHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVl
c3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0
dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAg
aXQoJ3Nob3VsZCBkZWZlciBzY2hlZHVsaW5nIHRoZSBidWlsZCByZXF1ZXN0IGlmIHRoZXJlIGlz
IGFub3RoZXIgc2FtZSBidWlsZCByZXF1ZXN0IGlzICJydW5uaW5nIiwgYnV0IHNob3VsZCBzY2hl
ZHVsZSBpZiAicnVubmluZyIgYnVpbGQgcmVxdWVzdCBmYWlscyBhZnRlcndhcmRzJywgYXN5bmMg
KCkgPT4geworICAgICAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkUmV1c2FibGVCdWlsZFJlcXVl
c3RzTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpLCAgWydydW5uaW5nJywgJ3NjaGVkdWxl
ZCcsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcn
LCAncGVuZGluZyddKTsKKyAgICAgICAgICAgIGF3YWl0IE1hbmlmZXN0LmZldGNoKCk7CisgICAg
ICAgICAgICBjb25zdCBjb25maWcgPSBNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdv
QnVpbGRlcnNPbmVUZXN0ZXIoKTsKKyAgICAgICAgICAgIGNvbnN0IGxvZ2dlciA9IG5ldyBNb2Nr
TG9nZ2VyOworICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZl
JywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OworICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUg
PSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCks
IE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKKyAgICAgICAgICAgIGNvbnN0IHN5
bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJh
YmxlLnN5bmNPbmNlKCkpOworICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNV
UkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CisgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlc2V0KCk7CisgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxs
KCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGxldCBidWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVl
c3QuZmluZEJ5SWQoODAwKTsKKyAgICAgICAgICAgIGxldCBhbm90aGVyQnVpbGRSZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDkwMCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1cygpLCAncnVubmluZycpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtp
dC5vcmcvYnVpZHMvMScpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICAgICAgbGV0IGNvbW1pdFNldCA9IGJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgICAgIGxldCBhbm90aGVyQ29tbWl0U2V0
ID0gYW5vdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgICAgIGFzc2VydC5v
ayhjb21taXRTZXQuZXF1YWxzSWdub3JpbmdSb290KGFub3RoZXJDb21taXRTZXQpKTsKKyAgICAg
ICAgICAgIGFzc2VydC5vayghY29tbWl0U2V0LmVxdWFscyhhbm90aGVyQ29tbWl0U2V0KSk7CisK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
Myk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5t
ZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7
CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAn
R0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzogW01v
Y2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0pXX0pOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmws
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVzZXQoKTsKKyAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwo
J3NvbWUgdGVzdGVyJywgMikpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUt
YnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5y
ZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVz
dElkOiA4MDB9KV19KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUg
YnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5y
ZXNvbHZlKHt9KTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKKyAgICAgICAg
ICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcp
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJs
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVzZXQoKTsKKyAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVu
Z3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVy
JywgMikpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1l
dGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywg
MikpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVp
bGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDF9KSwg
TW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDB9KV19KTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwg
J0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOwor
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKKyAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKKworICAgICAgICAgICAgYXdhaXQgc3luY1By
b21pc2U7CisgICAgICAgICAgICBhd2FpdCBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJs
ZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoVHdvQnVpbGRlcnNPbmVUZXN0ZXIoKS50
cmlnZ2VyYWJsZU5hbWUpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5h
bGwoKS5sZW5ndGgsIDgpOworICAgICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
LmZpbmRCeUlkKDgwMCk7CisgICAgICAgICAgICBhbm90aGVyQnVpbGRSZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDkwMCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1cygpLCAnZmFpbGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1i
dWlsZGVyLTEnLCAxMjMpKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKworICAgICAgICAgICAgY29uc3Qgc2Vjb25kU3lu
Y1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFi
bGUuc3luY09uY2UoKSk7CisgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VS
TCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKKyAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVzZXQoKTsKKyAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lIHRlc3RlcicpKTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVz
b2x2ZSh7fSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWls
ZGVyLTEnKSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUo
e30pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
bWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAy
JykpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsK
KyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKKyAgICAgICAgICAgIGF3YWl0IE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOworICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERh
dGEoe2J1aWxkUmVxdWVzdElkOiA4MDF9KV19KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVz
ZXQoKTsKKyAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
KworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
Lm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVp
bGRlci0yJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0uZGF0YSwgeydpZCc6IDkwMCwgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdm
b3JjZScsICdwYXJhbXMnOgorICAgICAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdv
cyc6ICcxMC4xMSAxNUEyODQnLCAnd2stcGF0Y2gnOiAnaHR0cDovL2xvY2FsaG9zdDo4MTgwL2Fw
aS91cGxvYWRlZC1maWxlLzEwMC50eHQnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2J1aWxk
LXJlcXVlc3QtaWQnOiAnOTAwJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRl
ci0yJ319KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBub3QgcmV1c2UgdGhl
IHJvb3Qgd2hlbiBzYW1lIGJ1aWxkIHJlcXVlc3QgaXMgYXZhaWFsYmxlIGJ1dCB0aGUgYnVpbGQg
cmVxdWVzdCBoYXMgYmVlbiBzY2hlZHVsZWQnLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBh
d2FpdCBNb2NrRGF0YS5hZGRSZXVzYWJsZUJ1aWxkUmVxdWVzdHNNb2NrRGF0YShUZXN0U2VydmVy
LmRhdGFiYXNlKCkpOworICAgICAgICAgICAgYXdhaXQgTWFuaWZlc3QuZmV0Y2goKTsKKyAgICAg
ICAgICAgIGNvbnN0IGNvbmZpZyA9IE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhUd29C
dWlsZGVyc09uZVRlc3RlcigpOworICAgICAgICAgICAgY29uc3QgbG9nZ2VyID0gbmV3IE1vY2tM
b2dnZXI7CisgICAgICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUn
LCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CisgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9
IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwg
TW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOworICAgICAgICAgICAgY29uc3Qgc3lu
Y1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFi
bGUuc3luY09uY2UoKSk7CisgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VS
TCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKKyAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVzZXQoKTsKKyAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwo
KS5sZW5ndGgsIDgpOworICAgICAgICAgICAgbGV0IGJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVz
dC5maW5kQnlJZCg4MDApOworICAgICAgICAgICAgbGV0IGFub3RoZXJCdWlsZFJlcXVlc3QgPSBC
dWlsZFJlcXVlc3QuZmluZEJ5SWQoOTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzKCksICdjb21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1cygpLCAncGVuZGluZycpOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJr
aXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgICAgIGxldCBjb21taXRTZXQgPSBi
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CisgICAgICAgICAgICBsZXQgYW5vdGhlckNvbW1pdFNl
dCA9IGFub3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CisgICAgICAgICAgICBhc3NlcnQu
b2soY29tbWl0U2V0LmVxdWFsc0lnbm9yaW5nUm9vdChhbm90aGVyQ29tbWl0U2V0KSk7CisgICAg
ICAgICAgICBhc3NlcnQub2soIWNvbW1pdFNldC5lcXVhbHMoYW5vdGhlckNvbW1pdFNldCkpOwor
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDMpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
bWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykp
OworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwg
J0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOworICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOworICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSB0ZXN0ZXInLCAyKSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLnJlc29sdmUoe30pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29t
ZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1
ZXN0SWQ6IDgwMX0pLCBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6
IDgwMH0pXX0pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWls
ZGVyIDInLCAyKSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29s
dmUoe30pOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOworICAgICAgICAgICAg
YXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOworICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNl
dCgpOworICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwor
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDMpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
bWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAy
KSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7
CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMn
OiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0pLCBNb2Nr
RGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMH0pXX0pOworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51
cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoeydidWlsZHMnOiBbTW9j
a0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDkwMCwgYnVpbGRlcklkOiAz
fSldfSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CisKKyAgICAgICAgICAg
IGF3YWl0IHN5bmNQcm9taXNlOworICAgICAgICAgICAgYXdhaXQgQnVpbGRSZXF1ZXN0LmZldGNo
Rm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJz
T25lVGVzdGVyKCkudHJpZ2dlcmFibGVOYW1lKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChC
dWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGJ1aWxkUmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg4MDApOworICAgICAgICAgICAgYW5vdGhlckJ1aWxkUmVx
dWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg5MDApOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzKCksICdydW5uaW5nJyk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1
aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy8jL2J1
aWxkZXJzLzMvYnVpbGRzLzEyNCcpOworICAgICAgICB9KTsKICAgICB9KTsKIAogICAgIGRlc2Ny
aWJlKCd1cGRhdGVUcmlnZ2VyYWJsZXMnLCAoKSA9PiB7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMKaW5kZXgg
OWVlZDEwNjU1YTFkZTdkM2FhYzA5MTBhM2VkOTM3ZGE0YzM1Y2M5Mi4uMWJhM2IyZjczZjk4ZmQ1
ODdkMDZhYjJmMmJjNjNkZThlNGYxYjQ5MyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCisrKyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcwpAQCAtNzcsNDIg
Kzc3LDU4IEBAIGNsYXNzIEJ1aWxkYm90VHJpZ2dlcmFibGUgewogICAgICAgICAgICAgfSl9KTsK
ICAgICB9CiAKLSAgICBzeW5jT25jZSgpCisgICAgYXN5bmMgc3luY09uY2UoKQogICAgIHsKLSAg
ICAgICAgbGV0IHN5bmNlckxpc3QgPSB0aGlzLl9zeW5jZXJzOwotICAgICAgICBsZXQgYnVpbGRS
ZXFldXN0c0J5R3JvdXAgPSBuZXcgTWFwOwotCiAgICAgICAgIHRoaXMuX2xvZ2dlci5sb2coYEZl
dGNoaW5nIGJ1aWxkIHJlcXVlc3RzIGZvciAke3RoaXMuX25hbWV9Li4uYCk7Ci0gICAgICAgIGxl
dCB2YWxpZFJlcXVlc3RzOwotICAgICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJp
Z2dlcmFibGUodGhpcy5fbmFtZSkudGhlbigoYnVpbGRSZXF1ZXN0cykgPT4gewotICAgICAgICAg
ICAgdmFsaWRSZXF1ZXN0cyA9IHRoaXMuX3ZhbGlkYXRlUmVxdWVzdHMoYnVpbGRSZXF1ZXN0cyk7
Ci0gICAgICAgICAgICBidWlsZFJlcWV1c3RzQnlHcm91cCA9IEJ1aWxkYm90VHJpZ2dlcmFibGUu
X3Rlc3RHcm91cE1hcEZvckJ1aWxkUmVxdWVzdHMoYnVpbGRSZXF1ZXN0cyk7Ci0gICAgICAgICAg
ICByZXR1cm4gdGhpcy5fcHVsbEJ1aWxkYm90T25BbGxTeW5jZXJzKGJ1aWxkUmVxZXVzdHNCeUdy
b3VwKTsKLSAgICAgICAgfSkudGhlbigodXBkYXRlcykgPT4gewotICAgICAgICAgICAgdGhpcy5f
bG9nZ2VyLmxvZygnU2NoZWR1bGluZyBidWlsZHMnKTsKLSAgICAgICAgICAgIGNvbnN0IHByb21p
c3RMaXN0ID0gW107Ci0gICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXBMaXN0ID0gQXJyYXkuZnJv
bShidWlsZFJlcWV1c3RzQnlHcm91cC52YWx1ZXMoKSkuc29ydChmdW5jdGlvbiAoYSwgYikgeyBy
ZXR1cm4gYS5ncm91cE9yZGVyIC0gYi5ncm91cE9yZGVyOyB9KTsKLSAgICAgICAgICAgIGZvciAo
Y29uc3QgZ3JvdXAgb2YgdGVzdEdyb3VwTGlzdCkgewotICAgICAgICAgICAgICAgIGNvbnN0IG5l
eHRSZXF1ZXN0ID0gdGhpcy5fbmV4dFJlcXVlc3RJbkdyb3VwKGdyb3VwLCB1cGRhdGVzKTsKLSAg
ICAgICAgICAgICAgICBpZiAoIXZhbGlkUmVxdWVzdHMuaGFzKG5leHRSZXF1ZXN0KSkKLSAgICAg
ICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9
IHRoaXMuX3NjaGVkdWxlUmVxdWVzdElmU2xhdmVJc0F2YWlsYWJsZShuZXh0UmVxdWVzdCwgZ3Jv
dXAucmVxdWVzdHMsCi0gICAgICAgICAgICAgICAgICAgIG5leHRSZXF1ZXN0LmlzQnVpbGQoKSA/
IGdyb3VwLmJ1aWxkU3luY2VyIDogZ3JvdXAudGVzdFN5bmNlciwKLSAgICAgICAgICAgICAgICAg
ICAgbmV4dFJlcXVlc3QuaXNCdWlsZCgpID8gZ3JvdXAuYnVpbGRTbGF2ZU5hbWUgOiBncm91cC50
ZXN0U2xhdmVOYW1lKTsKLSAgICAgICAgICAgICAgICBpZiAocHJvbWlzZSkKLSAgICAgICAgICAg
ICAgICAgICAgcHJvbWlzdExpc3QucHVzaChwcm9taXNlKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIHJldHVybiBQcm9taXNlLmFsbChwcm9taXN0TGlzdCk7Ci0gICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgLy8gUHVsbCBhbGwgYnVpbGRib3RzIGZvciB0aGUgc2Vjb25k
IHRpbWUgc2luY2UgdGhlIHByZXZpb3VzIHN0ZXAgbWF5IGhhdmUgc2NoZWR1bGVkIG1vcmUgYnVp
bGRzLgotICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3B1bGxCdWlsZGJvdE9uQWxsU3luY2Vycyhi
dWlsZFJlcWV1c3RzQnlHcm91cCk7Ci0gICAgICAgIH0pLnRoZW4oKHVwZGF0ZXMpID0+IHsKLSAg
ICAgICAgICAgIC8vIEZJWE1FOiBBZGQgYSBuZXcgQVBJIHRoYXQganVzdCB1cGRhdGVzIHRoZSBy
ZXF1ZXN0cy4KLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9yZW1vdGUucG9zdEpTT05XaXRoU3Rh
dHVzKGAvYXBpL2J1aWxkLXJlcXVlc3RzLyR7dGhpcy5fbmFtZX1gLCB7Ci0gICAgICAgICAgICAg
ICAgJ3NsYXZlTmFtZSc6IHRoaXMuX3NsYXZlSW5mby5uYW1lLAotICAgICAgICAgICAgICAgICdz
bGF2ZVBhc3N3b3JkJzogdGhpcy5fc2xhdmVJbmZvLnBhc3N3b3JkLAotICAgICAgICAgICAgICAg
ICdidWlsZFJlcXVlc3RVcGRhdGVzJzogdXBkYXRlc30pOwotICAgICAgICB9KTsKKworICAgICAg
ICBjb25zdCBidWlsZFJlcXVlc3RzID0gYXdhaXQgQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dl
cmFibGUodGhpcy5fbmFtZSk7CisgICAgICAgIGNvbnN0IHZhbGlkUmVxdWVzdHMgPSB0aGlzLl92
YWxpZGF0ZVJlcXVlc3RzKGJ1aWxkUmVxdWVzdHMpOworICAgICAgICBjb25zdCBidWlsZFJlcWV1
c3RzQnlHcm91cCA9IEJ1aWxkYm90VHJpZ2dlcmFibGUuX3Rlc3RHcm91cE1hcEZvckJ1aWxkUmVx
dWVzdHMoYnVpbGRSZXF1ZXN0cyk7CisgICAgICAgIGxldCB1cGRhdGVzID0gYXdhaXQgdGhpcy5f
cHVsbEJ1aWxkYm90T25BbGxTeW5jZXJzKGJ1aWxkUmVxZXVzdHNCeUdyb3VwKTsKKyAgICAgICAg
bGV0IHJvb3RSZXVzZVVwZGF0ZXMgPSB7fQorICAgICAgICB0aGlzLl9sb2dnZXIubG9nKCdTY2hl
ZHVsaW5nIGJ1aWxkcycpOworICAgICAgICBjb25zdCBwcm9taXNlTGlzdCA9IFtdOworICAgICAg
ICBjb25zdCB0ZXN0R3JvdXBMaXN0ID0gQXJyYXkuZnJvbShidWlsZFJlcWV1c3RzQnlHcm91cC52
YWx1ZXMoKSkuc29ydChmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gYS5ncm91cE9yZGVyIC0gYi5n
cm91cE9yZGVyOyB9KTsKKyAgICAgICAgZm9yIChjb25zdCBncm91cCBvZiB0ZXN0R3JvdXBMaXN0
KSB7CisgICAgICAgICAgICBjb25zdCBuZXh0UmVxdWVzdCA9IHRoaXMuX25leHRSZXF1ZXN0SW5H
cm91cChncm91cCwgdXBkYXRlcyk7CisgICAgICAgICAgICBpZiAoIXZhbGlkUmVxdWVzdHMuaGFz
KG5leHRSZXF1ZXN0KSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGNv
bnN0IHByb21pc2UgPSB0aGlzLl9yZXVzZVJvb3RJZkF2YWlsYmxlRWxzZVRyeVNjaGVkdWxlKGdy
b3VwLCBuZXh0UmVxdWVzdCwgcm9vdFJldXNlVXBkYXRlcyk7CisgICAgICAgICAgICBwcm9taXNl
TGlzdC5wdXNoKHByb21pc2UpOworICAgICAgICB9CisgICAgICAgIGF3YWl0IFByb21pc2UuYWxs
KHByb21pc2VMaXN0KTsKKyAgICAgICAgdXBkYXRlcyA9IGF3YWl0IHRoaXMuX3B1bGxCdWlsZGJv
dE9uQWxsU3luY2VycyhidWlsZFJlcWV1c3RzQnlHcm91cCk7CisKKyAgICAgICAgLy8gVXNlIGJ1
aWxkYm90IHN0YXR1cyBhcyBncm91bmQgdHJ1dGgsIGlmIGEgYnVpbGQgcmVxdWVzdCBoYXMgdXBk
YXRlcyBvbiBib3RoCisgICAgICAgIC8vICdyb290UmV1c2VVcGRhdGVzJyBhbmQgJ3VwZGF0ZXMn
LCAndXBkYXRlcycgc2hvdWxkIG92ZXJ3cml0ZSAncm9vdFJldXNlVXBkYXRlcycuCisgICAgICAg
IHVwZGF0ZXMgPSB7CisgICAgICAgICAgICAuLi5yb290UmV1c2VVcGRhdGVzLAorICAgICAgICAg
ICAgLi4udXBkYXRlcworICAgICAgICB9OworICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fcmVt
b3RlLnBvc3RKU09OV2l0aFN0YXR1cyhgL2FwaS9idWlsZC1yZXF1ZXN0cy8ke3RoaXMuX25hbWV9
YCwgeworICAgICAgICAgICAgJ3NsYXZlTmFtZSc6IHRoaXMuX3NsYXZlSW5mby5uYW1lLAorICAg
ICAgICAgICAgJ3NsYXZlUGFzc3dvcmQnOiB0aGlzLl9zbGF2ZUluZm8ucGFzc3dvcmQsCisgICAg
ICAgICAgICAnYnVpbGRSZXF1ZXN0VXBkYXRlcyc6IHVwZGF0ZXN9KTsKKyAgICB9CisKKyAgICBh
c3luYyBfcmV1c2VSb290SWZBdmFpbGJsZUVsc2VUcnlTY2hlZHVsZSh0ZXN0R3JvdXAsIGJ1aWxk
UmVxdWVzdCwgdXBkYXRlcykKKyAgICB7CisgICAgICAgIGNvbnN0IHJvb3RTb3VyY2VCdWlsZFJl
cXVlc3QgPSBhd2FpdCBidWlsZFJlcXVlc3QuZmluZEJ1aWxkUmVxdWVzdEZvclNhbWVSb290cygp
OworICAgICAgICBpZiAoIXJvb3RTb3VyY2VCdWlsZFJlcXVlc3QpIHsKKyAgICAgICAgICAgIHJl
dHVybiBhd2FpdCB0aGlzLl9zY2hlZHVsZVJlcXVlc3RJZlNsYXZlSXNBdmFpbGFibGUoYnVpbGRS
ZXF1ZXN0LCB0ZXN0R3JvdXAucmVxdWVzdHMsCisgICAgICAgICAgICAgICAgYnVpbGRSZXF1ZXN0
LmlzQnVpbGQoKSA/IHRlc3RHcm91cC5idWlsZFN5bmNlciA6IHRlc3RHcm91cC50ZXN0U3luY2Vy
LAorICAgICAgICAgICAgICAgIGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkgPyB0ZXN0R3JvdXAuYnVp
bGRTbGF2ZU5hbWUgOiB0ZXN0R3JvdXAudGVzdFNsYXZlTmFtZSk7CisgICAgICAgIH0KKworICAg
ICAgICBpZiAoIXJvb3RTb3VyY2VCdWlsZFJlcXVlc3QuaGFzQ29tcGxldGVkKCkpIHsKKyAgICAg
ICAgICAgIHRoaXMuX2xvZ2dlci5sb2coYEZvdW5kIGJ1aWxkIHJlcXVlc3QgJHtyb290U291cmNl
QnVpbGRSZXF1ZXN0LmlkKCl9IGlzIGJ1aWxkaW5nIHRoZSBzYW1lIHJvb3QsIHdpbGwgd2FpdCB1
bnRpbCBpdCBmaW5pc2hlcy5gKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIHRoaXMuX2xvZ2dlci5sb2coYFdpbGwgcmV1c2UgZXhpc3Rpbmcgcm9vdCBidWlsdCBm
cm9tICR7cm9vdFNvdXJjZUJ1aWxkUmVxdWVzdC5pZCgpfSBmb3IgJHtidWlsZFJlcXVlc3QuaWQo
KX1gKTsKKyAgICAgICAgdXBkYXRlc1tidWlsZFJlcXVlc3QuaWQoKV0gPSB7c3RhdHVzOiAnY29t
cGxldGVkJywgdXJsOiByb290U291cmNlQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLAorICAgICAg
ICAgICAgc3RhdHVzRGVzY3JpcHRpb246IHJvb3RTb3VyY2VCdWlsZFJlcXVlc3Quc3RhdHVzRGVz
Y3JpcHRpb24oKSwKKyAgICAgICAgICAgIHJvb3RTb3VyY2VCdWlsZFJlcXVlc3Q6IHJvb3RTb3Vy
Y2VCdWlsZFJlcXVlc3QuaWQoKX07CiAgICAgfQogCiAgICAgX3ZhbGlkYXRlUmVxdWVzdHMoYnVp
bGRSZXF1ZXN0cykKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRl
c3RzL2J1aWxkLXJlcXVlc3QtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5p
dC10ZXN0cy9idWlsZC1yZXF1ZXN0LXRlc3RzLmpzCmluZGV4IGYwOTI5NTViYTM1MmE3YThhNzZl
ZjgwYjA2ODJiNDI3ZTU4NGNiZjEuLjI5NDE2MGM2ZTUyZDI1ZDcyMTUxZmQ3NjRhZWFkNzFkNWEx
NmRhZmEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2J1
aWxkLXJlcXVlc3QtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQt
dGVzdHMvYnVpbGQtcmVxdWVzdC10ZXN0cy5qcwpAQCAtMyw3ICszLDkgQEAKIGNvbnN0IGFzc2Vy
dCA9IHJlcXVpcmUoJ2Fzc2VydCcpOwogCiByZXF1aXJlKCcuLi90b29scy9qcy92My1tb2RlbHMu
anMnKTsKLWxldCBNb2NrTW9kZWxzID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvbW9jay12My1tb2Rl
bHMuanMnKS5Nb2NrTW9kZWxzOworY29uc3QgTW9ja01vZGVscyA9IHJlcXVpcmUoJy4vcmVzb3Vy
Y2VzL21vY2stdjMtbW9kZWxzLmpzJykuTW9ja01vZGVsczsKK2NvbnN0IE5vZGVQcml2aWxlZ2Vk
QVBJID0gcmVxdWlyZSgnLi4vdG9vbHMvanMvcHJpdmlsZWdlZC1hcGkuanMnKS5Qcml2aWxlZ2Vk
QVBJOworY29uc3QgTW9ja1JlbW90ZUFQSSA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL21vY2stcmVt
b3RlLWFwaS5qcycpLk1vY2tSZW1vdGVBUEk7CiAKIGZ1bmN0aW9uIHNhbXBsZUJ1aWxkUmVxdWVz
dERhdGEoKQogewpAQCAtNTYsOSArNTgsNTMyIEBAIGZ1bmN0aW9uIHNhbXBsZUJ1aWxkUmVxdWVz
dERhdGEoKQogICAgIH07CiB9CiAKK2Z1bmN0aW9uIG9uZVRlc3RHcm91cCgpIHsKKyAgICByZXR1
cm4geworICAgICAgICAidGVzdEdyb3VwcyI6IFt7CisgICAgICAgICAgICAiaWQiOiAiMjEyOCIs
CisgICAgICAgICAgICAidGFzayI6ICIxMzc2IiwKKyAgICAgICAgICAgICJwbGF0Zm9ybSI6ICIz
MSIsCisgICAgICAgICAgICAibmFtZSI6ICJDb25maXJtIiwKKyAgICAgICAgICAgICJhdXRob3Ii
OiAicm5pd2EiLAorICAgICAgICAgICAgImNyZWF0ZWRBdCI6IDE0NTg2ODg1MTQwMDAsCisgICAg
ICAgICAgICAiaGlkZGVuIjogZmFsc2UsCisgICAgICAgICAgICAibmVlZHNOb3RpZmljYXRpb24i
OiB0cnVlLAorICAgICAgICAgICAgImJ1aWxkUmVxdWVzdHMiOiBbIjE2OTg1IiwgIjE2OTg2Iiwg
IjE2OTg3IiwgIjE2OTg4Il0sCisgICAgICAgICAgICAiY29tbWl0U2V0cyI6IFsiNDI1NSIsICI0
MjU2Il0sCisgICAgICAgICAgICAibm90aWZpY2F0aW9uU2VudEF0IjogbnVsbCwKKyAgICAgICAg
ICAgICdpbml0aWFsUmVwZXRpdGlvbkNvdW50JzogMQorICAgICAgICB9XSwKKyAgICAgICAgImJ1
aWxkUmVxdWVzdHMiOiBbeworICAgICAgICAgICAgImlkIjogIjE2OTg1IiwKKyAgICAgICAgICAg
ICJ0cmlnZ2VyYWJsZSI6ICIzIiwKKyAgICAgICAgICAgICJ0YXNrIjogIjEzNzYiLAorICAgICAg
ICAgICAgInRlc3QiOiAiODQ0IiwKKyAgICAgICAgICAgICJwbGF0Zm9ybSI6ICIzMSIsCisgICAg
ICAgICAgICAidGVzdEdyb3VwIjogIjIxMjgiLAorICAgICAgICAgICAgIm9yZGVyIjogIi0yIiwK
KyAgICAgICAgICAgICJjb21taXRTZXQiOiAiNDI1NSIsCisgICAgICAgICAgICAic3RhdHVzIjog
InBlbmRpbmciLAorICAgICAgICAgICAgInVybCI6IG51bGwsCisgICAgICAgICAgICAiYnVpbGQi
OiBudWxsLAorICAgICAgICAgICAgImNyZWF0ZWRBdCI6IDE0NTg2ODg1MTQwMDAKKyAgICAgICAg
fSwgeworICAgICAgICAgICAgImlkIjogIjE2OTg2IiwKKyAgICAgICAgICAgICJ0cmlnZ2VyYWJs
ZSI6ICIzIiwKKyAgICAgICAgICAgICJ0YXNrIjogIjEzNzYiLAorICAgICAgICAgICAgInRlc3Qi
OiAiODQ0IiwKKyAgICAgICAgICAgICJwbGF0Zm9ybSI6ICIzMSIsCisgICAgICAgICAgICAidGVz
dEdyb3VwIjogIjIxMjgiLAorICAgICAgICAgICAgIm9yZGVyIjogIi0xIiwKKyAgICAgICAgICAg
ICJjb21taXRTZXQiOiAiNDI1NiIsCisgICAgICAgICAgICAic3RhdHVzIjogInBlbmRpbmciLAor
ICAgICAgICAgICAgInVybCI6IG51bGwsCisgICAgICAgICAgICAiYnVpbGQiOiBudWxsLAorICAg
ICAgICAgICAgImNyZWF0ZWRBdCI6IDE0NTg2ODg1MTQwMDAKKyAgICAgICAgfSwgeworICAgICAg
ICAgICAgImlkIjogIjE2OTg3IiwKKyAgICAgICAgICAgICJ0cmlnZ2VyYWJsZSI6ICIzIiwKKyAg
ICAgICAgICAgICJ0YXNrIjogIjEzNzYiLAorICAgICAgICAgICAgInRlc3QiOiAiODQ0IiwKKyAg
ICAgICAgICAgICJwbGF0Zm9ybSI6ICIzMSIsCisgICAgICAgICAgICAidGVzdEdyb3VwIjogIjIx
MjgiLAorICAgICAgICAgICAgIm9yZGVyIjogIjAiLAorICAgICAgICAgICAgImNvbW1pdFNldCI6
ICI0MjU1IiwKKyAgICAgICAgICAgICJzdGF0dXMiOiAicGVuZGluZyIsCisgICAgICAgICAgICAi
dXJsIjogbnVsbCwKKyAgICAgICAgICAgICJidWlsZCI6IG51bGwsCisgICAgICAgICAgICAiY3Jl
YXRlZEF0IjogMTQ1ODY4ODUxNDAwMAorICAgICAgICB9LCB7CisgICAgICAgICAgICAiaWQiOiAi
MTY5ODgiLAorICAgICAgICAgICAgInRyaWdnZXJhYmxlIjogIjMiLAorICAgICAgICAgICAgInRh
c2siOiAiMTM3NiIsCisgICAgICAgICAgICAidGVzdCI6ICI4NDQiLAorICAgICAgICAgICAgInBs
YXRmb3JtIjogIjMxIiwKKyAgICAgICAgICAgICJ0ZXN0R3JvdXAiOiAiMjEyOCIsCisgICAgICAg
ICAgICAib3JkZXIiOiAiMyIsCisgICAgICAgICAgICAiY29tbWl0U2V0IjogIjQyNTYiLAorICAg
ICAgICAgICAgInN0YXR1cyI6ICJwZW5kaW5nIiwKKyAgICAgICAgICAgICJ1cmwiOiBudWxsLAor
ICAgICAgICAgICAgImJ1aWxkIjogbnVsbCwKKyAgICAgICAgICAgICJjcmVhdGVkQXQiOiAxNDU4
Njg4NTE0MDAwCisgICAgICAgIH1dLAorICAgICAgICAiY29tbWl0U2V0cyI6IFt7CisgICAgICAg
ICAgICAiaWQiOiAiNDI1NSIsCisgICAgICAgICAgICAicmV2aXNpb25JdGVtcyI6IFt7ImNvbW1p
dCI6ICI4NzgzMiJ9LCB7ImNvbW1pdCI6ICI5MzExNiJ9XSwKKyAgICAgICAgICAgICJjdXN0b21S
b290cyI6IFtdLAorICAgICAgICB9LCB7CisgICAgICAgICAgICAiaWQiOiAiNDI1NiIsCisgICAg
ICAgICAgICAicmV2aXNpb25JdGVtcyI6IFt7ImNvbW1pdCI6ICI4NzgzMiJ9LCB7ImNvbW1pdCI6
ICI5NjMzNiJ9XSwKKyAgICAgICAgICAgICJjdXN0b21Sb290cyI6IFtdLAorICAgICAgICB9XSwK
KyAgICAgICAgImNvbW1pdHMiOiBbeworICAgICAgICAgICAgImlkIjogIjg3ODMyIiwKKyAgICAg
ICAgICAgICJyZXBvc2l0b3J5IjogIjkiLAorICAgICAgICAgICAgInJldmlzaW9uIjogIjEwLjEx
IDE1QTI4NCIsCisgICAgICAgICAgICAidGltZSI6IDAKKyAgICAgICAgfSwgeworICAgICAgICAg
ICAgImlkIjogIjkzMTE2IiwKKyAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIjExIiwKKyAgICAg
ICAgICAgICJyZXZpc2lvbiI6ICIxOTE2MjIiLAorICAgICAgICAgICAgInRpbWUiOiAxNDQ1OTQ1
ODE2ODc4CisgICAgICAgIH0sIHsKKyAgICAgICAgICAgICJpZCI6ICI4NzgzMiIsCisgICAgICAg
ICAgICAicmVwb3NpdG9yeSI6ICI5IiwKKyAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxMC4xMSAx
NUEyODQiLAorICAgICAgICAgICAgInRpbWUiOiAwCisgICAgICAgIH0sIHsKKyAgICAgICAgICAg
ICJpZCI6ICI5NjMzNiIsCisgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICIxMSIsCisgICAgICAg
ICAgICAicmV2aXNpb24iOiAiMTkyNzM2IiwKKyAgICAgICAgICAgICJ0aW1lIjogMTQ0ODIyNTMy
NTY1MAorICAgICAgICB9XSwKKyAgICAgICAgInVwbG9hZGVkRmlsZXMiOiBbXSwKKyAgICAgICAg
InN0YXR1cyI6ICJPSyIKKyAgICB9OworfQorCitmdW5jdGlvbiB0aHJlZVRlc3RHcm91cHMoc2Vj
b25kVGVzdEdyb3VwT3ZlcnJpZGVzLCB0aGlyZFRlc3RHcm91cE92ZXJyaWRlcykgeworICAgIGlm
ICghc2Vjb25kVGVzdEdyb3VwT3ZlcnJpZGVzKQorICAgICAgICBzZWNvbmRUZXN0R3JvdXBPdmVy
cmlkZXMgPSB7fTsKKyAgICBpZiAoIXRoaXJkVGVzdEdyb3VwT3ZlcnJpZGVzKQorICAgICAgICB0
aGlyZFRlc3RHcm91cE92ZXJyaWRlcyA9IHt9OworICAgIHJldHVybiB7CisgICAgICAgICJ0ZXN0
R3JvdXBzIjogW3sKKyAgICAgICAgICAgICJpZCI6ICIyMTI4IiwKKyAgICAgICAgICAgICJ0YXNr
IjogIjEzNzYiLAorICAgICAgICAgICAgInBsYXRmb3JtIjogIjMyIiwKKyAgICAgICAgICAgICJu
YW1lIjogIkNvbmZpcm0iLAorICAgICAgICAgICAgImF1dGhvciI6ICJybml3YSIsCisgICAgICAg
ICAgICAiY3JlYXRlZEF0IjogMTQ1ODY4ODUxNDAwMCwKKyAgICAgICAgICAgICJoaWRkZW4iOiBm
YWxzZSwKKyAgICAgICAgICAgICJuZWVkc05vdGlmaWNhdGlvbiI6IHRydWUsCisgICAgICAgICAg
ICAiYnVpbGRSZXF1ZXN0cyI6IFsiMTY5ODUiLCAiMTY5ODYiLCAiMTY5ODciLCAiMTY5ODgiXSwK
KyAgICAgICAgICAgICJjb21taXRTZXRzIjogWyI0MjU1IiwgIjQyNTYiXSwKKyAgICAgICAgICAg
ICJub3RpZmljYXRpb25TZW50QXQiOiBudWxsLAorICAgICAgICAgICAgJ2luaXRpYWxSZXBldGl0
aW9uQ291bnQnOiAxCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgICJpZCI6ICIyMTI5IiwKKyAg
ICAgICAgICAgICJ0YXNrIjogc2Vjb25kVGVzdEdyb3VwT3ZlcnJpZGVzLnRhc2sgfHwgJzEzNzYn
LAorICAgICAgICAgICAgInBsYXRmb3JtIjogc2Vjb25kVGVzdEdyb3VwT3ZlcnJpZGVzLnBsYXRm
b3JtIHx8ICczMicsCisgICAgICAgICAgICAibmFtZSI6ICJDb25maXJtIiwKKyAgICAgICAgICAg
ICJhdXRob3IiOiAicm5pd2EiLAorICAgICAgICAgICAgImNyZWF0ZWRBdCI6IDE0NTg2ODg1MTQw
MDAsCisgICAgICAgICAgICAiaGlkZGVuIjogZmFsc2UsCisgICAgICAgICAgICAibmVlZHNOb3Rp
ZmljYXRpb24iOiB0cnVlLAorICAgICAgICAgICAgImJ1aWxkUmVxdWVzdHMiOiBbIjE2OTg5Iiwg
IjE2OTkwIiwgIjE2OTkxIiwgIjE2OTkyIl0sCisgICAgICAgICAgICAiY29tbWl0U2V0cyI6IFsi
NDI1NSIsICI0MjU2Il0sCisgICAgICAgICAgICAibm90aWZpY2F0aW9uU2VudEF0IjogbnVsbCwK
KyAgICAgICAgICAgICdpbml0aWFsUmVwZXRpdGlvbkNvdW50JzogMQorICAgICAgICB9LCB7Cisg
ICAgICAgICAgICAiaWQiOiAiMjEzMCIsCisgICAgICAgICAgICAidGFzayI6IHRoaXJkVGVzdEdy
b3VwT3ZlcnJpZGVzLnRhc2sgfHwgJzEzNzYnLAorICAgICAgICAgICAgInBsYXRmb3JtIjogdGhp
cmRUZXN0R3JvdXBPdmVycmlkZXMucGxhdGZvcm0gfHwgJzMyJywKKyAgICAgICAgICAgICJuYW1l
IjogIkNvbmZpcm0iLAorICAgICAgICAgICAgImF1dGhvciI6ICJybml3YSIsCisgICAgICAgICAg
ICAiY3JlYXRlZEF0IjogMTQ1ODY4ODUxNDAwMCwKKyAgICAgICAgICAgICJoaWRkZW4iOiBmYWxz
ZSwKKyAgICAgICAgICAgICJuZWVkc05vdGlmaWNhdGlvbiI6IHRydWUsCisgICAgICAgICAgICAi
YnVpbGRSZXF1ZXN0cyI6IFsiMTY5OTMiLCAiMTY5OTQiLCAiMTY5OTUiLCAiMTY5OTYiXSwKKyAg
ICAgICAgICAgICJjb21taXRTZXRzIjogWyI0MjU1IiwgIjQyNTYiXSwKKyAgICAgICAgICAgICJu
b3RpZmljYXRpb25TZW50QXQiOiBudWxsLAorICAgICAgICAgICAgJ2luaXRpYWxSZXBldGl0aW9u
Q291bnQnOiAxCisgICAgICAgIH1dLAorICAgICAgICAiYnVpbGRSZXF1ZXN0cyI6IFt7CisgICAg
ICAgICAgICAiaWQiOiAiMTY5ODUiLAorICAgICAgICAgICAgInRyaWdnZXJhYmxlIjogIjMiLAor
ICAgICAgICAgICAgInRhc2siOiAiMTM3NiIsCisgICAgICAgICAgICAidGVzdCI6ICI4NDQiLAor
ICAgICAgICAgICAgInBsYXRmb3JtIjogIjMyIiwKKyAgICAgICAgICAgICJ0ZXN0R3JvdXAiOiAi
MjEyOCIsCisgICAgICAgICAgICAib3JkZXIiOiAiLTIiLAorICAgICAgICAgICAgImNvbW1pdFNl
dCI6ICI0MjU1IiwKKyAgICAgICAgICAgICJzdGF0dXMiOiAicGVuZGluZyIsCisgICAgICAgICAg
ICAidXJsIjogbnVsbCwKKyAgICAgICAgICAgICJidWlsZCI6IG51bGwsCisgICAgICAgICAgICAi
Y3JlYXRlZEF0IjogMTQ1ODY4ODUxNDAwMAorICAgICAgICB9LCB7CisgICAgICAgICAgICAiaWQi
OiAiMTY5ODYiLAorICAgICAgICAgICAgInRyaWdnZXJhYmxlIjogIjMiLAorICAgICAgICAgICAg
InRhc2siOiAiMTM3NiIsCisgICAgICAgICAgICAidGVzdCI6ICI4NDQiLAorICAgICAgICAgICAg
InBsYXRmb3JtIjogIjMyIiwKKyAgICAgICAgICAgICJ0ZXN0R3JvdXAiOiAiMjEyOCIsCisgICAg
ICAgICAgICAib3JkZXIiOiAiLTEiLAorICAgICAgICAgICAgImNvbW1pdFNldCI6ICI0MjU2IiwK
KyAgICAgICAgICAgICJzdGF0dXMiOiAicGVuZGluZyIsCisgICAgICAgICAgICAidXJsIjogbnVs
bCwKKyAgICAgICAgICAgICJidWlsZCI6IG51bGwsCisgICAgICAgICAgICAiY3JlYXRlZEF0Ijog
MTQ1ODY4ODUxNDAwMAorICAgICAgICB9LCB7CisgICAgICAgICAgICAiaWQiOiAiMTY5ODciLAor
ICAgICAgICAgICAgInRyaWdnZXJhYmxlIjogIjMiLAorICAgICAgICAgICAgInRhc2siOiAiMTM3
NiIsCisgICAgICAgICAgICAidGVzdCI6ICI4NDQiLAorICAgICAgICAgICAgInBsYXRmb3JtIjog
IjMyIiwKKyAgICAgICAgICAgICJ0ZXN0R3JvdXAiOiAiMjEyOCIsCisgICAgICAgICAgICAib3Jk
ZXIiOiAiMCIsCisgICAgICAgICAgICAiY29tbWl0U2V0IjogIjQyNTUiLAorICAgICAgICAgICAg
InN0YXR1cyI6ICJwZW5kaW5nIiwKKyAgICAgICAgICAgICJ1cmwiOiBudWxsLAorICAgICAgICAg
ICAgImJ1aWxkIjogbnVsbCwKKyAgICAgICAgICAgICJjcmVhdGVkQXQiOiAxNDU4Njg4NTE0MDAw
CisgICAgICAgIH0sIHsKKyAgICAgICAgICAgICJpZCI6ICIxNjk4OCIsCisgICAgICAgICAgICAi
dHJpZ2dlcmFibGUiOiAiMyIsCisgICAgICAgICAgICAidGFzayI6ICIxMzc2IiwKKyAgICAgICAg
ICAgICJ0ZXN0IjogIjg0NCIsCisgICAgICAgICAgICAicGxhdGZvcm0iOiAiMzIiLAorICAgICAg
ICAgICAgInRlc3RHcm91cCI6ICIyMTI4IiwKKyAgICAgICAgICAgICJvcmRlciI6ICIxIiwKKyAg
ICAgICAgICAgICJjb21taXRTZXQiOiAiNDI1NiIsCisgICAgICAgICAgICAic3RhdHVzIjogInBl
bmRpbmciLAorICAgICAgICAgICAgInVybCI6IG51bGwsCisgICAgICAgICAgICAiYnVpbGQiOiBu
dWxsLAorICAgICAgICAgICAgImNyZWF0ZWRBdCI6IDE0NTg2ODg1MTQwMDAKKyAgICAgICAgfSwg
eworICAgICAgICAgICAgImlkIjogIjE2OTg5IiwKKyAgICAgICAgICAgICJ0cmlnZ2VyYWJsZSI6
ICIzIiwKKyAgICAgICAgICAgICJ0YXNrIjogc2Vjb25kVGVzdEdyb3VwT3ZlcnJpZGVzLnRhc2sg
fHwgJzEzNzYnLAorICAgICAgICAgICAgInRlc3QiOiAiODQ0IiwKKyAgICAgICAgICAgICJwbGF0
Zm9ybSI6IHNlY29uZFRlc3RHcm91cE92ZXJyaWRlcy5wbGF0Zm9ybSB8fCAnMzInLAorICAgICAg
ICAgICAgInRlc3RHcm91cCI6ICIyMTI5IiwKKyAgICAgICAgICAgICJvcmRlciI6ICItMiIsCisg
ICAgICAgICAgICAiY29tbWl0U2V0IjogIjQyNTUiLAorICAgICAgICAgICAgInN0YXR1cyI6IHNl
Y29uZFRlc3RHcm91cE92ZXJyaWRlcy5zdGF0dXMgJiYgc2Vjb25kVGVzdEdyb3VwT3ZlcnJpZGVz
LnN0YXR1c1swXSB8fCAncGVuZGluZycsCisgICAgICAgICAgICAidXJsIjogbnVsbCwKKyAgICAg
ICAgICAgICJidWlsZCI6IG51bGwsCisgICAgICAgICAgICAiY3JlYXRlZEF0IjogMTQ1ODY4ODUx
NDAwMAorICAgICAgICB9LCB7CisgICAgICAgICAgICAiaWQiOiAiMTY5OTAiLAorICAgICAgICAg
ICAgInRyaWdnZXJhYmxlIjogIjMiLAorICAgICAgICAgICAgInRhc2siOiBzZWNvbmRUZXN0R3Jv
dXBPdmVycmlkZXMudGFzayB8fCAnMTM3NicsCisgICAgICAgICAgICAidGVzdCI6ICI4NDQiLAor
ICAgICAgICAgICAgInBsYXRmb3JtIjogc2Vjb25kVGVzdEdyb3VwT3ZlcnJpZGVzLnBsYXRmb3Jt
IHx8ICczMicsCisgICAgICAgICAgICAidGVzdEdyb3VwIjogIjIxMjkiLAorICAgICAgICAgICAg
Im9yZGVyIjogIi0xIiwKKyAgICAgICAgICAgICJjb21taXRTZXQiOiAiNDI1NiIsCisgICAgICAg
ICAgICAic3RhdHVzIjogc2Vjb25kVGVzdEdyb3VwT3ZlcnJpZGVzLnN0YXR1cyAmJiBzZWNvbmRU
ZXN0R3JvdXBPdmVycmlkZXMuc3RhdHVzWzFdIHx8ICdwZW5kaW5nJywKKyAgICAgICAgICAgICJ1
cmwiOiBudWxsLAorICAgICAgICAgICAgImJ1aWxkIjogbnVsbCwKKyAgICAgICAgICAgICJjcmVh
dGVkQXQiOiAxNDU4Njg4NTE0MDAwCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgICJpZCI6ICIx
Njk5MSIsCisgICAgICAgICAgICAidHJpZ2dlcmFibGUiOiAiMyIsCisgICAgICAgICAgICAidGFz
ayI6IHNlY29uZFRlc3RHcm91cE92ZXJyaWRlcy50YXNrIHx8ICcxMzc2JywKKyAgICAgICAgICAg
ICJ0ZXN0IjogIjg0NCIsCisgICAgICAgICAgICAicGxhdGZvcm0iOiBzZWNvbmRUZXN0R3JvdXBP
dmVycmlkZXMucGxhdGZvcm0gfHwgJzMyJywKKyAgICAgICAgICAgICJ0ZXN0R3JvdXAiOiAiMjEy
OSIsCisgICAgICAgICAgICAib3JkZXIiOiAiMCIsCisgICAgICAgICAgICAiY29tbWl0U2V0Ijog
IjQyNTUiLAorICAgICAgICAgICAgInN0YXR1cyI6IHNlY29uZFRlc3RHcm91cE92ZXJyaWRlcy5z
dGF0dXMgJiYgc2Vjb25kVGVzdEdyb3VwT3ZlcnJpZGVzLnN0YXR1c1syXSB8fCAncGVuZGluZycs
CisgICAgICAgICAgICAidXJsIjogbnVsbCwKKyAgICAgICAgICAgICJidWlsZCI6IG51bGwsCisg
ICAgICAgICAgICAiY3JlYXRlZEF0IjogMTQ1ODY4ODUxNDAwMAorICAgICAgICB9LCB7CisgICAg
ICAgICAgICAiaWQiOiAiMTY5OTIiLAorICAgICAgICAgICAgInRyaWdnZXJhYmxlIjogIjMiLAor
ICAgICAgICAgICAgInRhc2siOiBzZWNvbmRUZXN0R3JvdXBPdmVycmlkZXMudGFzayB8fCAnMTM3
NicsCisgICAgICAgICAgICAidGVzdCI6ICI4NDQiLAorICAgICAgICAgICAgInBsYXRmb3JtIjog
c2Vjb25kVGVzdEdyb3VwT3ZlcnJpZGVzLnBsYXRmb3JtIHx8ICczMicsCisgICAgICAgICAgICAi
dGVzdEdyb3VwIjogIjIxMjkiLAorICAgICAgICAgICAgIm9yZGVyIjogIjMiLAorICAgICAgICAg
ICAgImNvbW1pdFNldCI6ICI0MjU2IiwKKyAgICAgICAgICAgICJzdGF0dXMiOiBzZWNvbmRUZXN0
R3JvdXBPdmVycmlkZXMuc3RhdHVzICYmIHNlY29uZFRlc3RHcm91cE92ZXJyaWRlcy5zdGF0dXNb
M10gfHwgJ3BlbmRpbmcnLAorICAgICAgICAgICAgInVybCI6IG51bGwsCisgICAgICAgICAgICAi
YnVpbGQiOiBudWxsLAorICAgICAgICAgICAgImNyZWF0ZWRBdCI6IDE0NTg2ODg1MTQwMDAKKyAg
ICAgICAgfSwgeworICAgICAgICAgICAgImlkIjogIjE2OTkzIiwKKyAgICAgICAgICAgICJ0cmln
Z2VyYWJsZSI6ICIzIiwKKyAgICAgICAgICAgICJ0YXNrIjogdGhpcmRUZXN0R3JvdXBPdmVycmlk
ZXMudGFzayB8fCAnMTM3NicsCisgICAgICAgICAgICAidGVzdCI6ICI4NDQiLAorICAgICAgICAg
ICAgInBsYXRmb3JtIjogdGhpcmRUZXN0R3JvdXBPdmVycmlkZXMucGxhdGZvcm0gfHwgJzMyJywK
KyAgICAgICAgICAgICJ0ZXN0R3JvdXAiOiAiMjEzMCIsCisgICAgICAgICAgICAib3JkZXIiOiAi
LTIiLAorICAgICAgICAgICAgImNvbW1pdFNldCI6ICI0MjU1IiwKKyAgICAgICAgICAgICJzdGF0
dXMiOiB0aGlyZFRlc3RHcm91cE92ZXJyaWRlcy5zdGF0dXMgJiYgdGhpcmRUZXN0R3JvdXBPdmVy
cmlkZXMuc3RhdHVzWzBdIHx8ICdwZW5kaW5nJywKKyAgICAgICAgICAgICJ1cmwiOiBudWxsLAor
ICAgICAgICAgICAgImJ1aWxkIjogbnVsbCwKKyAgICAgICAgICAgICJjcmVhdGVkQXQiOiAxNDU4
Njg4NTEzMDAwCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgICJpZCI6ICIxNjk5NCIsCisgICAg
ICAgICAgICAidHJpZ2dlcmFibGUiOiAiMyIsCisgICAgICAgICAgICAidGFzayI6IHRoaXJkVGVz
dEdyb3VwT3ZlcnJpZGVzLnRhc2sgfHwgJzEzNzYnLAorICAgICAgICAgICAgInRlc3QiOiAiODQ0
IiwKKyAgICAgICAgICAgICJwbGF0Zm9ybSI6IHRoaXJkVGVzdEdyb3VwT3ZlcnJpZGVzLnBsYXRm
b3JtIHx8ICczMicsCisgICAgICAgICAgICAidGVzdEdyb3VwIjogIjIxMzAiLAorICAgICAgICAg
ICAgIm9yZGVyIjogIi0xIiwKKyAgICAgICAgICAgICJjb21taXRTZXQiOiAiNDI1NiIsCisgICAg
ICAgICAgICAic3RhdHVzIjogdGhpcmRUZXN0R3JvdXBPdmVycmlkZXMuc3RhdHVzICYmIHRoaXJk
VGVzdEdyb3VwT3ZlcnJpZGVzLnN0YXR1c1sxXSB8fCAncGVuZGluZycsCisgICAgICAgICAgICAi
dXJsIjogbnVsbCwKKyAgICAgICAgICAgICJidWlsZCI6IG51bGwsCisgICAgICAgICAgICAiY3Jl
YXRlZEF0IjogMTQ1ODY4ODUxNDAwMAorICAgICAgICB9LCB7CisgICAgICAgICAgICAiaWQiOiAi
MTY5OTUiLAorICAgICAgICAgICAgInRyaWdnZXJhYmxlIjogIjMiLAorICAgICAgICAgICAgInRh
c2siOiB0aGlyZFRlc3RHcm91cE92ZXJyaWRlcy50YXNrIHx8ICcxMzc2JywKKyAgICAgICAgICAg
ICJ0ZXN0IjogIjg0NCIsCisgICAgICAgICAgICAicGxhdGZvcm0iOiB0aGlyZFRlc3RHcm91cE92
ZXJyaWRlcy5wbGF0Zm9ybSB8fCAnMzInLAorICAgICAgICAgICAgInRlc3RHcm91cCI6ICIyMTMw
IiwKKyAgICAgICAgICAgICJvcmRlciI6ICIwIiwKKyAgICAgICAgICAgICJjb21taXRTZXQiOiAi
NDI1NSIsCisgICAgICAgICAgICAic3RhdHVzIjogdGhpcmRUZXN0R3JvdXBPdmVycmlkZXMuc3Rh
dHVzICYmIHRoaXJkVGVzdEdyb3VwT3ZlcnJpZGVzLnN0YXR1c1syXSB8fCAncGVuZGluZycsCisg
ICAgICAgICAgICAidXJsIjogbnVsbCwKKyAgICAgICAgICAgICJidWlsZCI6IG51bGwsCisgICAg
ICAgICAgICAiY3JlYXRlZEF0IjogMTQ1ODY4ODUxNDAwMAorICAgICAgICB9LCB7CisgICAgICAg
ICAgICAiaWQiOiAiMTY5OTYiLAorICAgICAgICAgICAgInRyaWdnZXJhYmxlIjogIjMiLAorICAg
ICAgICAgICAgInRhc2siOiBzZWNvbmRUZXN0R3JvdXBPdmVycmlkZXMudGFzayB8fCAnMTM3Nics
CisgICAgICAgICAgICAidGVzdCI6ICI4NDQiLAorICAgICAgICAgICAgInBsYXRmb3JtIjogc2Vj
b25kVGVzdEdyb3VwT3ZlcnJpZGVzLnBsYXRmb3JtIHx8ICczMicsCisgICAgICAgICAgICAidGVz
dEdyb3VwIjogIjIxMzAiLAorICAgICAgICAgICAgIm9yZGVyIjogIjEiLAorICAgICAgICAgICAg
ImNvbW1pdFNldCI6ICI0MjU2IiwKKyAgICAgICAgICAgICJzdGF0dXMiOiB0aGlyZFRlc3RHcm91
cE92ZXJyaWRlcy5zdGF0dXMgJiYgdGhpcmRUZXN0R3JvdXBPdmVycmlkZXMuc3RhdHVzWzNdIHx8
ICdwZW5kaW5nJywKKyAgICAgICAgICAgICJ1cmwiOiBudWxsLAorICAgICAgICAgICAgImJ1aWxk
IjogbnVsbCwKKyAgICAgICAgICAgICJjcmVhdGVkQXQiOiAxNDU4Njg4NTE0MDAwCisgICAgICAg
IH1dLAorICAgICAgICAiY29tbWl0U2V0cyI6IFt7CisgICAgICAgICAgICAiaWQiOiAiNDI1NSIs
CisgICAgICAgICAgICAicmV2aXNpb25JdGVtcyI6IFt7ImNvbW1pdCI6ICI4NzgzMiJ9LCB7ImNv
bW1pdCI6ICI5MzExNiJ9XSwKKyAgICAgICAgICAgICJjdXN0b21Sb290cyI6IFtdLAorICAgICAg
ICB9LCB7CisgICAgICAgICAgICAiaWQiOiAiNDI1NiIsCisgICAgICAgICAgICAicmV2aXNpb25J
dGVtcyI6IFt7ImNvbW1pdCI6ICI4NzgzMiJ9LCB7ImNvbW1pdCI6ICI5NjMzNiJ9XSwKKyAgICAg
ICAgICAgICJjdXN0b21Sb290cyI6IFtdLAorICAgICAgICB9XSwKKyAgICAgICAgImNvbW1pdHMi
OiBbeworICAgICAgICAgICAgImlkIjogIjg3ODMyIiwKKyAgICAgICAgICAgICJyZXBvc2l0b3J5
IjogIjkiLAorICAgICAgICAgICAgInJldmlzaW9uIjogIjEwLjExIDE1QTI4NCIsCisgICAgICAg
ICAgICAidGltZSI6IDAKKyAgICAgICAgfSwgeworICAgICAgICAgICAgImlkIjogIjkzMTE2IiwK
KyAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIjExIiwKKyAgICAgICAgICAgICJyZXZpc2lvbiI6
ICIxOTE2MjIiLAorICAgICAgICAgICAgInRpbWUiOiAxNDQ1OTQ1ODE2ODc4CisgICAgICAgIH0s
IHsKKyAgICAgICAgICAgICJpZCI6ICI4NzgzMiIsCisgICAgICAgICAgICAicmVwb3NpdG9yeSI6
ICI5IiwKKyAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxMC4xMSAxNUEyODQiLAorICAgICAgICAg
ICAgInRpbWUiOiAwCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgICJpZCI6ICI5NjMzNiIsCisg
ICAgICAgICAgICAicmVwb3NpdG9yeSI6ICIxMSIsCisgICAgICAgICAgICAicmV2aXNpb24iOiAi
MTkyNzM2IiwKKyAgICAgICAgICAgICJ0aW1lIjogMTQ0ODIyNTMyNTY1MAorICAgICAgICB9XSwK
KyAgICAgICAgInVwbG9hZGVkRmlsZXMiOiBbXSwKKyAgICAgICAgInN0YXR1cyI6ICJPSyIKKyAg
ICB9OworfQorCiBkZXNjcmliZSgnQnVpbGRSZXF1ZXN0JywgZnVuY3Rpb24gKCkgewogICAgIE1v
Y2tNb2RlbHMuaW5qZWN0KCk7CiAKKyAgICBkZXNjcmliZSgnZmluZEJ1aWxkUmVxdWVzdEZvclNh
bWVSb290cycsICgpID0+IHsKKyAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBNb2NrUmVtb3RlQVBJ
LmluamVjdCgnaHR0cHM6Ly9wZXJmLndlYmtpdC5vcmcnLCBOb2RlUHJpdmlsZWdlZEFQSSk7Cisg
ICAgICAgIGJlZm9yZUVhY2goKCkgPT4geworICAgICAgICAgICAgUHJpdmlsZWdlZEFQSS5jb25m
aWd1cmUoJ3Rlc3QnLCAncGFzc3dvcmQnKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3No
b3VsZCByZXR1cm4gbnVsbCB3aGVuIHRoZSBidWlsZCByZXF1ZXN0IGlzIG5vdCBidWlsZCB0eXBl
IGJ1aWxkIHJlcXVlc3QnLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBkYXRhID0g
c2FtcGxlQnVpbGRSZXF1ZXN0RGF0YSgpOworICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IEJ1
aWxkUmVxdWVzdC5jb25zdHJ1Y3RCdWlsZFJlcXVlc3RzRnJvbURhdGEoZGF0YSlbMF07CisgICAg
ICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXF1ZXN0LmZpbmRCdWlsZFJlcXVlc3RGb3JT
YW1lUm9vdHMoKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHQsIG51bGwpOworICAg
ICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiBudWxsIGlmIHRoaXMgdGhlcmUg
aXMgbm8gb3RoZXIgdGVzdCBncm91cCB1bmRlciBjdXJyZW50IGFuYWx5c2lzIHRhc2snLCBhc3lu
YyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBkYXRhID0gb25lVGVzdEdyb3VwKCk7CisgICAg
ICAgICAgICBjb25zdCBwbGF0Zm9ybUlkID0gZGF0YS5idWlsZFJlcXVlc3RzWzBdLnBsYXRmb3Jt
OworICAgICAgICAgICAgUGxhdGZvcm0uZW5zdXJlU2luZ2xldG9uKHBsYXRmb3JtSWQsIHtpZDog
cGxhdGZvcm1JZCwgbWV0cmljczogW10sIG5hbWU6ICdzb21lIHBsYXRmb3JtJ30pOworICAgICAg
ICAgICAgY29uc3QgcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5jb25zdHJ1Y3RCdWlsZFJlcXVlc3Rz
RnJvbURhdGEoZGF0YSlbMF07CisgICAgICAgICAgICBjb25zdCBwcm9taXNlID0gcmVxdWVzdC5m
aW5kQnVpbGRSZXF1ZXN0Rm9yU2FtZVJvb3RzKCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAxKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzBdLnVybCwgJy9hcGkvdGVzdC1ncm91cHM/dGFzaz0xMzc2Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICByZXF1ZXN0
c1swXS5yZXNvbHZlKG9uZVRlc3RHcm91cCgpKTsKKworICAgICAgICAgICAgY29uc3QgcmVzdWx0
ID0gYXdhaXQgcHJvbWlzZTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHQsIG51bGwp
OworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiBjb21wbGV0ZWQgYnVp
bGQgcmVxdWVzdCBpZiBhIGNvbXBsZXRlZCByZXVzYWJsZSBidWlsZCByZXF1ZXN0IGZvdW5kJywg
YXN5bmMgKCkgPT4geworICAgICAgICAgICAgY29uc3Qgb3ZlcnJpZGVzID0geworICAgICAgICAg
ICAgICAgIHRhc2s6ICcxMzc2JywKKyAgICAgICAgICAgICAgICBwbGF0Zm9ybTogJzMyJywKKyAg
ICAgICAgICAgICAgICBzdGF0dXM6IFsnY29tcGxldGVkJywgJ3BlbmRpbmcnLCAncGVuZGluZycs
ICdwZW5kaW5nJ10KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB0aHJl
ZVRlc3RHcm91cHMob3ZlcnJpZGVzKTsKKyAgICAgICAgICAgIGNvbnN0IHBsYXRmb3JtSWQgPSBk
YXRhLmJ1aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm07CisgICAgICAgICAgICBQbGF0Zm9ybS5lbnN1
cmVTaW5nbGV0b24ocGxhdGZvcm1JZCwge2lkOiBwbGF0Zm9ybUlkLCBtZXRyaWNzOiBbXSwgbmFt
ZTogJ3NvbWUgcGxhdGZvcm0nfSk7CisgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0LmNvbnN0cnVjdEJ1aWxkUmVxdWVzdHNGcm9tRGF0YShkYXRhKVswXTsKKyAgICAgICAg
ICAgIGNvbnN0IHByb21pc2UgPSByZXF1ZXN0LmZpbmRCdWlsZFJlcXVlc3RGb3JTYW1lUm9vdHMo
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOworCisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2FwaS90ZXN0LWdyb3Vwcz90
YXNrPTEzNzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUodGhyZWVUZXN0R3JvdXBz
KG92ZXJyaWRlcykpOworCisgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwcm9taXNl
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdCwgQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDE2OTg5KSkKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBub3QgdXNlIGNhY2hl
IHdoaWxlIGZldGNoaW5nIHRlc3QgZ3JvdXBzIHVuZGVyIGFuYWx5c2lzIHRhc2snLCBhc3luYyAo
KSA9PiB7CisgICAgICAgICAgICBjb25zdCBvdmVycmlkZXMgPSB7CisgICAgICAgICAgICAgICAg
dGFzazogJzEzNzYnLAorICAgICAgICAgICAgICAgIHBsYXRmb3JtOiAnMzInLAorICAgICAgICAg
ICAgICAgIHN0YXR1czogWydjb21wbGV0ZWQnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRp
bmcnXQorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB0aHJlZVRlc3RH
cm91cHMob3ZlcnJpZGVzKTsKKyAgICAgICAgICAgIGNvbnN0IHBsYXRmb3JtSWQgPSBkYXRhLmJ1
aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm07CisgICAgICAgICAgICBQbGF0Zm9ybS5lbnN1cmVTaW5n
bGV0b24ocGxhdGZvcm1JZCwge2lkOiBwbGF0Zm9ybUlkLCBtZXRyaWNzOiBbXSwgbmFtZTogJ3Nv
bWUgcGxhdGZvcm0nfSk7CisgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0
LmNvbnN0cnVjdEJ1aWxkUmVxdWVzdHNGcm9tRGF0YShkYXRhKVswXTsKKyAgICAgICAgICAgIGxl
dCBwcm9taXNlID0gcmVxdWVzdC5maW5kQnVpbGRSZXF1ZXN0Rm9yU2FtZVJvb3RzKCk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKKworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9hcGkvdGVzdC1ncm91cHM/dGFzaz0xMzc2
Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKHRocmVlVGVzdEdyb3VwcyhvdmVycmlk
ZXMpKTsKKworICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IHByb21pc2U7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVzdWx0LCBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoMTY5ODkpKQor
CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CisgICAgICAgICAgICBwcm9taXNl
ID0gcmVxdWVzdC5maW5kQnVpbGRSZXF1ZXN0Rm9yU2FtZVJvb3RzKCk7CisgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzWzBdLnVybCwgJy9hcGkvdGVzdC1ncm91cHM/dGFzaz0xMzc2Jyk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAg
ICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKHRocmVlVGVzdEdyb3VwcyhvdmVycmlkZXMpKTsKKwor
ICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgcHJvbWlzZTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXN1bHQsIEJ1aWxkUmVxdWVzdC5maW5kQnlJZCgxNjk4OSkpCisgICAgICAgIH0pOwor
CisgICAgICAgIGl0KCdzaG91bGQgb25seSBhbGxvdyBpZGVudGljYWwgcGxhdGZvcm0gaWYgdGhl
IHBsYXRmb3JtIGlzIG5vdCB1bmRlciBhIHBsYXRmb3JtIGdyb3VwJywgYXN5bmMgKCkgPT4gewor
ICAgICAgICAgICAgY29uc3Qgb3ZlcnJpZGVzID0geworICAgICAgICAgICAgICAgIHRhc2s6ICcx
Mzc2JywKKyAgICAgICAgICAgICAgICBwbGF0Zm9ybTogJzMzJywKKyAgICAgICAgICAgICAgICBz
dGF0dXM6IFsnY29tcGxldGVkJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJ10KKyAg
ICAgICAgICAgIH07CisgICAgICAgICAgICBjb25zdCBkYXRhID0gdGhyZWVUZXN0R3JvdXBzKG92
ZXJyaWRlcyk7CisgICAgICAgICAgICBjb25zdCBwbGF0Zm9ybUlkID0gZGF0YS5idWlsZFJlcXVl
c3RzWzBdLnBsYXRmb3JtOworICAgICAgICAgICAgUGxhdGZvcm0uZW5zdXJlU2luZ2xldG9uKHBs
YXRmb3JtSWQsIHtpZDogcGxhdGZvcm1JZCwgbWV0cmljczogW10sIG5hbWU6ICdzb21lIHBsYXRm
b3JtJ30pOworICAgICAgICAgICAgUGxhdGZvcm0uZW5zdXJlU2luZ2xldG9uKCczMycsIHtpZDog
JzMzJywgbWV0cmljczogW10sIG5hbWU6ICdhbm90aGVyIHBsYXRmb3JtJ30pOworICAgICAgICAg
ICAgY29uc3QgcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5jb25zdHJ1Y3RCdWlsZFJlcXVlc3RzRnJv
bURhdGEoZGF0YSlbMF07CisgICAgICAgICAgICBjb25zdCBwcm9taXNlID0gcmVxdWVzdC5maW5k
QnVpbGRSZXF1ZXN0Rm9yU2FtZVJvb3RzKCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAxKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBd
LnVybCwgJy9hcGkvdGVzdC1ncm91cHM/dGFzaz0xMzc2Jyk7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICByZXF1ZXN0c1sw
XS5yZXNvbHZlKHRocmVlVGVzdEdyb3VwcyhvdmVycmlkZXMpKTsKKworICAgICAgICAgICAgY29u
c3QgcmVzdWx0ID0gYXdhaXQgcHJvbWlzZTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1
bHQsIG51bGwpOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIGFsbG93IGRpZmZl
cmVudCBwbGF0Zm9ybSBpZiB0aGUgcGxhdGZvcm1zIGFyZSB1bmRlciB0aGUgc2FtZSBwbGF0Zm9y
bSBncm91cCcsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IG92ZXJyaWRlcyA9IHsK
KyAgICAgICAgICAgICAgICB0YXNrOiAnMTM3NicsCisgICAgICAgICAgICAgICAgcGxhdGZvcm06
ICczMycsCisgICAgICAgICAgICAgICAgc3RhdHVzOiBbJ2NvbXBsZXRlZCcsICdwZW5kaW5nJywg
J3BlbmRpbmcnLCAncGVuZGluZyddCisgICAgICAgICAgICB9OworICAgICAgICAgICAgY29uc3Qg
ZGF0YSA9IHRocmVlVGVzdEdyb3VwcyhvdmVycmlkZXMpOworICAgICAgICAgICAgY29uc3QgcGxh
dGZvcm1JZCA9IGRhdGEuYnVpbGRSZXF1ZXN0c1swXS5wbGF0Zm9ybTsKKyAgICAgICAgICAgIGNv
bnN0IHBsYXRmb3JtR3JvdXAgPSBQbGF0Zm9ybUdyb3VwLmVuc3VyZVNpbmdsZXRvbignMScsIHtp
ZDogMSwgbmFtZTogJ3NvbWUgcGxhdGZvcm0gZ3JvdXAnfSk7CisgICAgICAgICAgICBQbGF0Zm9y
bS5lbnN1cmVTaW5nbGV0b24ocGxhdGZvcm1JZCwge2lkOiBwbGF0Zm9ybUlkLCBtZXRyaWNzOiBb
XSwgbmFtZTogJ3NvbWUgcGxhdGZvcm0nLCBncm91cDogcGxhdGZvcm1Hcm91cH0pOworICAgICAg
ICAgICAgUGxhdGZvcm0uZW5zdXJlU2luZ2xldG9uKCczMycsIHtpZDogJzMzJywgbWV0cmljczog
W10sIG5hbWU6ICdhbm90aGVyIHBsYXRmb3JtJywgZ3JvdXA6IHBsYXRmb3JtR3JvdXB9KTsKKyAg
ICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuY29uc3RydWN0QnVpbGRSZXF1
ZXN0c0Zyb21EYXRhKGRhdGEpWzBdOworICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHJlcXVl
c3QuZmluZEJ1aWxkUmVxdWVzdEZvclNhbWVSb290cygpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0c1swXS51cmwsICcvYXBpL3Rlc3QtZ3JvdXBzP3Rhc2s9MTM3NicpOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgcmVx
dWVzdHNbMF0ucmVzb2x2ZSh0aHJlZVRlc3RHcm91cHMob3ZlcnJpZGVzKSk7CisKKyAgICAgICAg
ICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHByb21pc2U7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVzdWx0LCBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoMTY5ODkpKQorICAgICAgICB9KTsKKwor
ICAgICAgICBpdCgnc2hvdWxkIGluIGZhdm9yIG9mIHJ1bm5pbmcgYnVpbGQgcmVxdWVzdCBvdmVy
IHNjaGVkdWxlZCBidWlsZCByZXF1ZXN0JywgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgY29u
c3Qgc2Vjb25kT3ZlcnJpZGVzID0geworICAgICAgICAgICAgICAgIHRhc2s6ICcxMzc2JywKKyAg
ICAgICAgICAgICAgICBwbGF0Zm9ybTogJzMyJywKKyAgICAgICAgICAgICAgICBzdGF0dXM6IFsn
c2NoZWR1bGVkJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJ10KKyAgICAgICAgICAg
IH07CisgICAgICAgICAgICBjb25zdCB0aGlyZE92ZXJyaWRlcyA9IHsKKyAgICAgICAgICAgICAg
ICB0YXNrOiAnMTM3NicsCisgICAgICAgICAgICAgICAgcGxhdGZvcm06ICczMicsCisgICAgICAg
ICAgICAgICAgc3RhdHVzOiBbJ3J1bm5pbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRp
bmcnXQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY29uc3QgZGF0YSA9IHRocmVlVGVzdEdy
b3VwcyhzZWNvbmRPdmVycmlkZXMsIHRoaXJkT3ZlcnJpZGVzKTsKKyAgICAgICAgICAgIGNvbnN0
IHBsYXRmb3JtSWQgPSBkYXRhLmJ1aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm07CisgICAgICAgICAg
ICBQbGF0Zm9ybS5lbnN1cmVTaW5nbGV0b24ocGxhdGZvcm1JZCwge2lkOiBwbGF0Zm9ybUlkLCBt
ZXRyaWNzOiBbXSwgbmFtZTogJ3NvbWUgcGxhdGZvcm0nfSk7CisgICAgICAgICAgICBjb25zdCBy
ZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmNvbnN0cnVjdEJ1aWxkUmVxdWVzdHNGcm9tRGF0YShkYXRh
KVswXTsKKyAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSByZXF1ZXN0LmZpbmRCdWlsZFJlcXVl
c3RGb3JTYW1lUm9vdHMoKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDEpOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2Fw
aS90ZXN0LWdyb3Vwcz90YXNrPTEzNzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUo
dGhyZWVUZXN0R3JvdXBzKHNlY29uZE92ZXJyaWRlcywgdGhpcmRPdmVycmlkZXMpKTsKKworICAg
ICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcHJvbWlzZTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXN1bHQsIEJ1aWxkUmVxdWVzdC5maW5kQnlJZCgxNjk5MykpCisgICAgICAgIH0p
OworCisgICAgICAgIGl0KCdzaG91bGQgaW4gZmF2b3Igb2YgcnVubmluZyBidWlsZCByZXF1ZXN0
IHdoaWNoIGhhcyBlYXJsaWVyIGNyZWF0aW9uIHRpbWUnLCBhc3luYyAoKSA9PiB7CisgICAgICAg
ICAgICBjb25zdCBzZWNvbmRPdmVycmlkZXMgPSB7CisgICAgICAgICAgICAgICAgdGFzazogJzEz
NzYnLAorICAgICAgICAgICAgICAgIHBsYXRmb3JtOiAnMzInLAorICAgICAgICAgICAgICAgIHN0
YXR1czogWydydW5uaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJ10KKyAgICAg
ICAgICAgIH07CisgICAgICAgICAgICBjb25zdCB0aGlyZE92ZXJyaWRlcyA9IHsKKyAgICAgICAg
ICAgICAgICB0YXNrOiAnMTM3NicsCisgICAgICAgICAgICAgICAgcGxhdGZvcm06ICczMicsCisg
ICAgICAgICAgICAgICAgc3RhdHVzOiBbJ3J1bm5pbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywg
J3BlbmRpbmcnXQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY29uc3QgZGF0YSA9IHRocmVl
VGVzdEdyb3VwcyhzZWNvbmRPdmVycmlkZXMsIHRoaXJkT3ZlcnJpZGVzKTsKKyAgICAgICAgICAg
IGNvbnN0IHBsYXRmb3JtSWQgPSBkYXRhLmJ1aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm07CisgICAg
ICAgICAgICBQbGF0Zm9ybS5lbnN1cmVTaW5nbGV0b24ocGxhdGZvcm1JZCwge2lkOiBwbGF0Zm9y
bUlkLCBtZXRyaWNzOiBbXSwgbmFtZTogJ3NvbWUgcGxhdGZvcm0nfSk7CisgICAgICAgICAgICBj
b25zdCByZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmNvbnN0cnVjdEJ1aWxkUmVxdWVzdHNGcm9tRGF0
YShkYXRhKVswXTsKKyAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSByZXF1ZXN0LmZpbmRCdWls
ZFJlcXVlc3RGb3JTYW1lUm9vdHMoKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDEpOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJs
LCAnL2FwaS90ZXN0LWdyb3Vwcz90YXNrPTEzNzYnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJl
c29sdmUodGhyZWVUZXN0R3JvdXBzKHNlY29uZE92ZXJyaWRlcywgdGhpcmRPdmVycmlkZXMpKTsK
KworICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcHJvbWlzZTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXN1bHQsIEJ1aWxkUmVxdWVzdC5maW5kQnlJZCgxNjk5MykpOworICAg
ICAgICAgICAgYXNzZXJ0Lm9rKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCgxNjk5MykuY3JlYXRlZEF0
KCkgPCBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoMTY5ODkpLmNyZWF0ZWRBdCgpKTsKKyAgICAgICAg
fSk7CisgICAgfSk7CisKICAgICBkZXNjcmliZSgnd2FpdGluZ1RpbWUnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIGl0KCdzaG91bGQgcmV0dXJuICIwIG1pbnV0ZXMiIHdoZW4gdGhlIHJlZmVyZW5j
ZSB0aW1lIGlzIGlkZW50aWNhbGx5IGVxdWFsIHRvIGNyZWF0ZWRBdCcsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBzYW1wbGVCdWlsZFJlcXVlc3REYXRhKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413502</attachid>
            <date>2020-11-06 17:25:32 -0800</date>
            <delta_ts>2020-11-12 22:17:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218413-20201106172531.patch</filename>
            <type>text/plain</type>
            <size>97365</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NDA1CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA3OTI0ODY3NWRiNmRjYzU5ZmFmN2MyMTVmMmM0NGYwNzY1ODYwMWVjLi5jM2E5NmM3Mzgx
ZjQ2OTkyNTU1NzE3NGUzMTg0ODk0ODZiMDFkNTdlIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAyMC0xMC0zMCAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBQZXJmb3JtYW5jZSBkYXNoYm9hcmQgc2hvdWxkIGF2b2lk
IGJ1aWxkaW5nIHNhbWUgY29uZmlndXJhdGlvbiB1bmRlciBvbmUgYW5hbHlzaXMgdGFzay4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODQxMworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsb2dpYyBp
biBzeW5jaW5nIHNjcmlwdCB0byByZXVzZSBhbHJlYWR5IGJ1aWx0IHJvb3RzIGZyb20gc2FtZSBi
dWlsZCByZXF1ZXN0IHVuZGVyIGN1cnJlbnQgYW5hbHlzaXMgdGFzay4KKyAgICAgICAgSWYgdGhl
cmUgaXMgYW5vdGhlciBzYW1lIGJ1aWxkIHJlcXVlc3Qgc2NoZWR1bGVkL3J1bm5pbmcsIHdpbGwg
ZGVmZXIgc2NoZWR1bGluZyBjdXJyZW50IGJ1aWxkIHJlcXVlc3QuCisKKyAgICAgICAgKiBwdWJs
aWMvYWRtaW4vcGxhdGZvcm1zLnBocDogRml4ZWQgbmV3ZXIgdmVyc2lvbiBvZiBQSFAgd2FybnMg
b24gYWNjZXNzaW5nIGludmFsaWQga2V5IGluIGFuIGFycmF5LgorICAgICAgICAqIHB1YmxpYy9h
ZG1pbi90ZXN0cy5waHA6IEFkZGVkIGEgbnVsbCBjaGVjayBhZ2FpbnN0ICRzZWxlY3RlZF9wYXJl
bnQuCisgICAgICAgICogcHVibGljL2FwaS9idWlsZC1yZXF1ZXN0cy5waHA6IEV4dGVuZGVkIHRo
aXMgQVBJIHRvIGFsbG93IHJldXNpbmcgcm9vdHMgZnJvbSBleGlzdGluZyBidWlsZCByZXF1ZXN0
LgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvYnVpbGQtcmVxdWVzdC5qczoKKyAgICAgICAg
KEJ1aWxkUmVxdWVzdC5wcm90b3R5cGUuYXN5bmMgZmluZEJ1aWxkUmVxdWVzdFdpdGhTYW1lUm9v
dHMpOiBGaW5kIGJ1aWxkIHR5cGUgYnVpbGQgcmVxdWVzdCB3aXRoIHNhbWUgY29tbWl0IHNldAor
ICAgICAgICB3aGljaCBjYW4vd2lsbCBiZSByZXVzZWQgdW5kZXIgY3VycmVudCBhbmFseXNpcyB0
YXNrLgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvY29tbWl0LXNldC5qczoKKyAgICAgICAg
KENvbW1pdFNldC5wcm90b3R5cGUuZXF1YWxzSWdub3JpbmdSb290KTogQWRkZWQgYSBoZWxwZXIg
ZnVuY3Rpb24gd2hpY2ggY2hlY2tzIGNvbW1pdCBzZXQgZXF1YWxpdHkgaWdub3JpbmcgdGhlIHJv
b3QuCisgICAgICAgIChDb21taXRTZXQucHJvdG90eXBlLmVxdWFscyk6IFVzZSAnX2VxdWFsc09w
dGlvbmFsbHlJZ25vcmluZ1Jvb3QnIGFzIHVuZGVybHlpbmcgaW1wbGVtZW50YXRpb24uCisgICAg
ICAgIChDb21taXRTZXQucHJvdG90eXBlLl9lcXVhbHNPcHRpb25hbGx5SWdub3JpbmdSb290KTog
SW1wbGVtZW50YXRpb24gZm9yIGJvdGggZXF1YWxzIGFuZCBlcXVhbHNJbmdub3JpbmdSb290Lgor
ICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktYnVpbGQtcmVxdWVzdHMtdGVzdHMuanM6IEFkZGVk
IHVuaXQgdGVzdHMuCisgICAgICAgICogc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEu
anM6IEFkZGVkIG5ldyBtb2NrIGRhdGEgZm9yIG5ldyB1bml0IHRlc3RzLgorICAgICAgICAoTW9j
a0RhdGEuYWRkTW9ja0NvbmZpZ3VyYXRpb24pOgorICAgICAgICAoTW9ja0RhdGEuYWRkTW9ja0Rh
dGEpOgorICAgICAgICAoTW9ja0RhdGEuc2V0IGFkZE1vY2tCdWlsZFJlcXVlc3RzV2l0aFJvb3Rz
KToKKyAgICAgICAgKE1vY2tEYXRhLnNldCBhZGRUd29Nb2NrVGVzdEdyb3VwV2l0aE93bmVkQ29t
bWl0cyk6CisgICAgICAgIChNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoUGF0Y2hBY2Nl
cHRpbmdCdWlsZGVyKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJp
Z2dlcmFibGUtdGVzdHMuanM6IEFkZGVkIHVuaXQgdGVzdHMuCisgICAgICAgICogdG9vbHMvanMv
YnVpbGRib3QtdHJpZ2dlcmFibGUuanM6CisgICAgICAgIChCdWlsZGJvdFRyaWdnZXJhYmxlLnBy
b3RvdHlwZS5hc3luYyBzeW5jT25jZSk6CisgICAgICAgIChCdWlsZGJvdFRyaWdnZXJhYmxlLnBy
b3RvdHlwZS5hc3luYyBfc2NoZWR1bGVSZXF1ZXN0KTogQSBoZWxwZXIgZnVuY3Rpb24gdG8gcmV1
c2UgdGhlIHJvb3RzIGlmIHRoZXJlIGFyZSBidWlsdAorICAgICAgICByb290cyBhdmFpbGFibGUg
Zm9yIHNhbWUgYnVpbGQgdHlwZSBidWlsZCByZXF1ZXN0LiBJZiB0aGVyZSBpcyBhbm90aGVyIGJ1
aWxkIHNjaGVkdWxlZCBmb3Igc2FtZSBidWlsZCByZXF1ZXN0LAorICAgICAgICB3aWxsIGRlZmVy
IHNjaGVkdWxpbmcgdGhlIGJ1aWxkIHJlcXVlc3QuCisgICAgICAgICogdW5pdC10ZXN0cy9idWls
ZC1yZXF1ZXN0LXRlc3RzLmpzOiBBZGQgdW5pdCB0ZXN0cy4KKwogMjAyMC0xMC0yNyAgRGV3ZWkg
Wmh1ICA8ZGV3ZWlfemh1QGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3RvciAncGxhdGZvcm1z
JyB0YWJsZSB0byBjb250YWluIGdyb3VwIGluZm9ybWF0aW9uLgpkaWZmIC0tZ2l0IGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9hZG1pbi9wbGF0Zm9ybXMucGhwIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy9hZG1pbi9wbGF0Zm9ybXMucGhwCmluZGV4IDZmMzA2N2Rh
ZjgxMDJlMTZlZDViMjgyYjY2NGYwZmIzMTYxMGRiMjkuLjlkOTU0OTY3YjBkOGRhNWZiZDI1YTE3
YjYyZTBjYjA2MmFhOGU0MzkgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvYWRtaW4vcGxhdGZvcm1zLnBocAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL2FkbWluL3BsYXRmb3Jtcy5waHAKQEAgLTEwMiw3ICsxMDIsNyBAQCBFTkQ7CiAgICAg
ewogICAgICAgICBnbG9iYWwgJHBsYXRmb3JtX2dyb3VwX29wdGlvbnM7CiAgICAgICAgICRpZCA9
IGludHZhbCgkcGxhdGZvcm1fcm93WydwbGF0Zm9ybV9pZCddKTsKLSAgICAgICAgJHBsYXRmb3Jt
X2dyb3VwX2lkID0gJHBsYXRmb3JtX3Jvd1sncGxhdGZvcm1fZ3JvdXAnXTsKKyAgICAgICAgJHBs
YXRmb3JtX2dyb3VwX2lkID0gYXJyYXlfZ2V0KCRwbGF0Zm9ybV9yb3csICdwbGF0Zm9ybV9ncm91
cCcpOwogICAgICAgICAkY29udGVudCA9IDw8PCBFTkQKIDxmb3JtIG1ldGhvZD0iUE9TVCI+PGlu
cHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaWQiIHZhbHVlPSIkaWQiPgogPHNlbGVjdCBuYW1lPSJn
cm91cCI+CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FkbWlu
L3Rlc3RzLnBocCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYWRtaW4vdGVzdHMu
cGhwCmluZGV4IDFmMmI0OTRhZDE4YWMxYzBmNWM5YTY2NTAxMTIxNTBiMzFkN2ZhMTQuLmQwZWRi
ZWVkODA1ZjEwMjljNzk4OGY3NjcwZjE1YjNmMGQ4ZWI4ZDUgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYWRtaW4vdGVzdHMucGhwCisrKyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvYWRtaW4vdGVzdHMucGhwCkBAIC02NCw3ICs2NCw3IEBAIGlm
ICgkZGIpIHsKIDw/cGhwCiAKICAgICAgICAgZm9yZWFjaCAoJHRlc3RfbmFtZV9yZXNvbHZlci0+
dGVzdHMoKSBhcyAkdGVzdCkgewotICAgICAgICAgICAgaWYgKCR0ZXN0Wyd0ZXN0X3BhcmVudCdd
ICE9ICRzZWxlY3RlZF9wYXJlbnRbJ3Rlc3RfaWQnXSkKKyAgICAgICAgICAgIGlmICgkc2VsZWN0
ZWRfcGFyZW50ICYmICR0ZXN0Wyd0ZXN0X3BhcmVudCddICE9ICRzZWxlY3RlZF9wYXJlbnRbJ3Rl
c3RfaWQnXSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgJHRlc3Rf
aWQgPSAkdGVzdFsndGVzdF9pZCddOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy9hcGkvYnVpbGQtcmVxdWVzdHMucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy9hcGkvYnVpbGQtcmVxdWVzdHMucGhwCmluZGV4IGY0YzM2NjI5ZDlkMjI2YWQ4
NGU3YjllNTEzMWRhMzI4ZTg4OGJjMjYuLjhkYzc1Mjk2MTMzMDU4Y2M2MWMwMTA0YTI4ZmFmYjBj
MTRhZDZjOTIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYXBp
L2J1aWxkLXJlcXVlc3RzLnBocAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L2FwaS9idWlsZC1yZXF1ZXN0cy5waHAKQEAgLTQ3LDYgKzQ3LDcgQEAgZnVuY3Rpb24gdXBkYXRl
X2J1aWxkcygkZGIsICR1cGRhdGVzKSB7CiAgICAgICAgICRzdGF0dXMgPSAkaW5mb1snc3RhdHVz
J107CiAgICAgICAgICR1cmwgPSBhcnJheV9nZXQoJGluZm8sICd1cmwnKTsKICAgICAgICAgJHN0
YXR1c19kZXNjcmlwdGlvbiA9IGFycmF5X2dldCgkaW5mbywgJ3N0YXR1c0Rlc2NyaXB0aW9uJyk7
CisgICAgICAgICRyb290X3NvdXJjZV9idWlsZF9yZXF1ZXN0X2lkID0gYXJyYXlfZ2V0KCRpbmZv
LCAncm9vdFNvdXJjZUJ1aWxkUmVxdWVzdCcpOwogICAgICAgICAkcmVxdWVzdF9yb3cgPSAkZGIt
PnNlbGVjdF9maXJzdF9yb3coJ2J1aWxkX3JlcXVlc3RzJywgJ3JlcXVlc3QnLCBhcnJheSgnaWQn
ID0+ICRpZCkpOwogICAgICAgICBpZiAoJHN0YXR1cyA9PSAnZmFpbGVkSWZOb3RDb21wbGV0ZWQn
KSB7CiAgICAgICAgICAgICBpZiAoISRyZXF1ZXN0X3JvdykgewpAQCAtNjgsNiArNjksMjMgQEAg
ZnVuY3Rpb24gdXBkYXRlX2J1aWxkcygkZGIsICR1cGRhdGVzKSB7CiAgICAgICAgICAgICAgICAg
ZXhpdF93aXRoX2Vycm9yKCdVbmtub3duQnVpbGRSZXF1ZXN0U3RhdHVzJywgYXJyYXkoJ2J1aWxk
UmVxdWVzdCcgPT4gJGlkLCAnc3RhdHVzJyA9PiAkc3RhdHVzKSk7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAkZGItPnVwZGF0ZV9yb3coJ2J1aWxkX3JlcXVlc3RzJywgJ3JlcXVlc3QnLCBh
cnJheSgnaWQnID0+ICRpZCksIGFycmF5KCdzdGF0dXMnID0+ICRzdGF0dXMsICd1cmwnID0+ICR1
cmwsICdzdGF0dXNfZGVzY3JpcHRpb24nID0+ICRzdGF0dXNfZGVzY3JpcHRpb24pKTsKKyAgICAg
ICAgICAgIGlmICgkcm9vdF9zb3VyY2VfYnVpbGRfcmVxdWVzdF9pZCkgeworICAgICAgICAgICAg
ICAgICRyb290X3NvdXJjZV9idWlsZF9yZXF1ZXN0X2lkID0gaW50dmFsKCRyb290X3NvdXJjZV9i
dWlsZF9yZXF1ZXN0X2lkKTsKKyAgICAgICAgICAgICAgICAkcm9vdF9zb3VyY2VfYnVpbGRfcmVx
dWVzdCA9ICRkYi0+c2VsZWN0X2ZpcnN0X3JvdygnYnVpbGRfcmVxdWVzdHMnLCAncmVxdWVzdCcs
IGFycmF5KCdpZCcgPT4gJHJvb3Rfc291cmNlX2J1aWxkX3JlcXVlc3RfaWQpKTsKKyAgICAgICAg
ICAgICAgICBpZiAoISRyb290X3NvdXJjZV9idWlsZF9yZXF1ZXN0KSB7CisgICAgICAgICAgICAg
ICAgICAgICRkYi0+cm9sbGJhY2tfdHJhbnNhY3Rpb24oKTsKKyAgICAgICAgICAgICAgICAgICAg
ZXhpdF93aXRoX2Vycm9yKCdGYWlsZWRUb0ZpbmRSb290U291cmNlQnVpbGRSZXF1ZXN0JywgYXJy
YXkoJ2J1aWxkUmVxdWVzdCcgPT4gJHJvb3Rfc291cmNlX2J1aWxkX3JlcXVlc3RfaWQpKTsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCRyb290X3NvdXJjZV9idWlsZF9y
ZXF1ZXN0WydyZXF1ZXN0X3N0YXR1cyddICE9ICdjb21wbGV0ZWQnKSB7CisgICAgICAgICAgICAg
ICAgICAgICRkYi0+cm9sbGJhY2tfdHJhbnNhY3Rpb24oKTsKKyAgICAgICAgICAgICAgICAgICAg
ZXhpdF93aXRoX2Vycm9yKCdDYW5Pbmx5UmV1c2VDb21wbGV0ZWRCdWlsZFJlcXVlc3QnLCBhcnJh
eSgnYnVpbGRSZXF1ZXN0JyA9PiAkcm9vdF9zb3VyY2VfYnVpbGRfcmVxdWVzdF9pZCwgJ3N0YXR1
cycgPT4gJHJvb3Rfc291cmNlX2J1aWxkX3JlcXVlc3RbJ3JlcXVlc3Rfc3RhdHVzJ10pKTsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgJGVycm9yID0gcmV1c2Vfcm9vdHNfaW5f
Y29tbWl0X3NldCgkZGIsICRyb290X3NvdXJjZV9idWlsZF9yZXF1ZXN0WydyZXF1ZXN0X2NvbW1p
dF9zZXQnXSwgJHJlcXVlc3Rfcm93WydyZXF1ZXN0X2NvbW1pdF9zZXQnXSk7CisgICAgICAgICAg
ICAgICAgaWYgKCRlcnJvcikgeworICAgICAgICAgICAgICAgICAgICAkZGItPnJvbGxiYWNrX3Ry
YW5zYWN0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcigkZXJyb3Jb
J3N0YXR1cyddLCAkZXJyb3JbJ2RldGFpbHMnXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQogICAgICAgICAgICAgaWYgKCRzdGF0dXMgIT0gJ2ZhaWxlZCcpCiAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgIH0KQEAgLTgyLDggKzEwMCw1NSBAQCBmdW5jdGlvbiB1
cGRhdGVfYnVpbGRzKCRkYiwgJHVwZGF0ZXMpIHsKICAgICAkZGItPmNvbW1pdF90cmFuc2FjdGlv
bigpOwogfQogCitmdW5jdGlvbiByZXVzZV9yb290c19pbl9jb21taXRfc2V0KCRkYiwgJHNvdXJj
ZV9pZCwgJGRlc3RpbmF0aW9uX2lkKSB7CisgICAgJGNvbW1pdF9zZXRfaXRlbXNfc291cmNlID0g
JGRiLT5zZWxlY3Rfcm93cygnY29tbWl0X3NldF9pdGVtcycsICdjb21taXRzZXQnLCBhcnJheSgn
c2V0JyA9PiAkc291cmNlX2lkLCAncmVxdWlyZXNfYnVpbGQnID0+IFRSVUUpKTsKKyAgICAkY29t
bWl0X3NldF9pdGVtc19kZXN0aW5hdGlvbiA9ICRkYi0+c2VsZWN0X3Jvd3MoJ2NvbW1pdF9zZXRf
aXRlbXMnLCAnY29tbWl0c2V0JywgYXJyYXkoJ3NldCcgPT4gJGRlc3RpbmF0aW9uX2lkLCAncmVx
dWlyZXNfYnVpbGQnID0+IFRSVUUpKTsKKyAgICBpZiAoY291bnQoJGNvbW1pdF9zZXRfaXRlbXNf
c291cmNlKSAhPSBjb3VudCgkY29tbWl0X3NldF9pdGVtc19kZXN0aW5hdGlvbikpIHsKKyAgICAg
ICAgcmV0dXJuIGFycmF5KCdzdGF0dXMnID0+ICdDYW5ub3RSZXVzZVJvb3RGcm9tQ29tbWl0U2V0
V2l0aERpZmZlcmVudE51bWJlck9mSXRlbXMnLCAnZGV0YWlscycgPT4gYXJyYXkoJ3NvdXJjZUNv
bW1pdFNldCcgPT4gJHNvdXJjZV9pZCwKKyAgICAgICAgICAgICdkZXN0aW5hdGlvbkNvbW1pdFNl
dCcgPT4gJGRlc3RpbmF0aW9uX2lkKSk7CisgICAgfQorCisgICAgJHJvb3RfZmlsZV9pZHMgPSBh
cnJheSgpOworICAgIGZvcmVhY2ggKCRjb21taXRfc2V0X2l0ZW1zX2Rlc3RpbmF0aW9uIGFzICYk
ZGVzdGluYXRpb25faXRlbSkgeworICAgICAgICAkc291cmNlX2l0ZW0gPSBOVUxMOworICAgICAg
ICBmb3JlYWNoICgkY29tbWl0X3NldF9pdGVtc19zb3VyY2UgYXMgJiRzb3VyY2VfaXRlbSkgewor
ICAgICAgICAgICAgaWYgKCRkZXN0aW5hdGlvbl9pdGVtWydjb21taXRzZXRfY29tbWl0J10gPT0g
JHNvdXJjZV9pdGVtWydjb21taXRzZXRfY29tbWl0J10KKyAgICAgICAgICAgICAgICAmJiAkZGVz
dGluYXRpb25faXRlbVsnY29tbWl0c2V0X3BhdGNoX2ZpbGUnXSA9PSAkc291cmNlX2l0ZW1bJ2Nv
bW1pdHNldF9wYXRjaF9maWxlJ10KKyAgICAgICAgICAgICAgICAmJiAkZGVzdGluYXRpb25faXRl
bVsnY29tbWl0c2V0X2NvbW1pdF9vd25lciddID09ICRzb3VyY2VfaXRlbVsnY29tbWl0c2V0X2Nv
bW1pdF9vd25lciddKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKCEkc291cmNlX2l0ZW0pCisgICAgICAgICAgICByZXR1cm4g
YXJyYXkoJ3N0YXR1cycgPT4gJ05vTWF0Y2hpbmdDb21taXRTZXRJdGVtJywgJ2RldGFpbHMnID0+
IGFycmF5KCdjb21taXRTZXQnID0+ICRzb3VyY2VfaWQpKTsKKworICAgICAgICAkcm9vdF9maWxl
X2lkID0gJHNvdXJjZV9pdGVtWydjb21taXRzZXRfcm9vdF9maWxlJ107CisgICAgICAgIGlmICgh
JHJvb3RfZmlsZV9pZCkKKyAgICAgICAgICAgIHJldHVybiBhcnJheSgnc3RhdHVzJyA9PiAnTWlz
c2luZ1Jvb3RGaWxlRnJvbVNvdXJjZUNvbW1pdFNldCcsICdkZXRhaWxzJyA9PiBhcnJheSgnY29t
bWl0U2V0JyA9PiAkZGVzdGluYXRpb25faWQsICdyb290RmlsZScgPT4gJHJvb3RfZmlsZV9pZCkp
OworCisgICAgICAgICRyb290X2ZpbGVfcm93ID0gJGRiLT5zZWxlY3RfZmlyc3Rfcm93KCd1cGxv
YWRlZF9maWxlcycsICdmaWxlJywgYXJyYXkoJ2lkJyA9PiAkcm9vdF9maWxlX2lkKSk7CisgICAg
ICAgIGlmICgkcm9vdF9maWxlX3Jvd1snZmlsZV9kZWxldGVkX2F0J10pCisgICAgICAgICAgICBy
ZXR1cm4gYXJyYXkoJ3N0YXR1cycgPT4gJ0Nhbm5vdFJldXNlRGVsZXRlZFJvb3QnLCAnZGV0YWls
cycgPT4gYXJyYXkoJ2NvbW1pdFNldCcgPT4gJGRlc3RpbmF0aW9uX2lkLCAncm9vdEZpbGUnID0+
ICRyb290X2ZpbGVfaWQpKTsKKworICAgICAgICAkZGItPnVwZGF0ZV9yb3coJ2NvbW1pdF9zZXRf
aXRlbXMnLCAnY29tbWl0c2V0JywgYXJyYXkoJ3NldCcgPT4gJGRlc3RpbmF0aW9uX2lkLCAnY29t
bWl0JyA9PiAkZGVzdGluYXRpb25faXRlbVsnY29tbWl0c2V0X2NvbW1pdCddKSwKKyAgICAgICAg
ICAgIGFycmF5KCdyb290X2ZpbGUnID0+ICRyb290X2ZpbGVfaWQpLCAnc2V0Jyk7CisKKyAgICAg
ICAgYXJyYXlfcHVzaCgkcm9vdF9maWxlX2lkcywgJHJvb3RfZmlsZV9pZCk7CisgICAgfQorCisg
ICAgLy8gVGhlcmUgY291bGQgYmUgYSByYWNlIHRoYXQgdGhvc2Ugcm9vdCBmaWxlcyBnZXQgcHVy
Z2VkIGFmdGVyIHVwZGF0aW5nIGNvbW1pdF9zZXRfaXRlbXMuCisgICAgLy8gQWRkIGFub3RoZXIg
cm91bmQgb2YgY2hlY2sgdG8gZW5zdXJlIHRoZXkgYXJlIG5vdCBkZWxldGVkIGJ5IHRoZSBlbmQg
b2YgdGhpcyBmdW5jdGlvbiB0bworICAgIC8vIG1pdGlnYXRlIHRoZSByYWNlIGNvbmRpdGlvbi4K
KyAgICBmb3JlYWNoICgkcm9vdF9maWxlX2lkcyBhcyAmJHJvb3RfZmlsZV9pZCkgeworICAgICAg
ICAkcm9vdF9maWxlX3JvdyA9ICRkYi0+c2VsZWN0X2ZpcnN0X3JvdygndXBsb2FkZWRfZmlsZXMn
LCAnZmlsZScsIGFycmF5KCdpZCcgPT4gJHJvb3RfZmlsZV9pZCkpOworICAgICAgICBpZiAoJHJv
b3RfZmlsZV9yb3dbJ2ZpbGVfZGVsZXRlZF9hdCddKQorICAgICAgICAgICAgcmV0dXJuIGFycmF5
KCdzdGF0dXMnID0+ICdDYW5ub3RSZXVzZURlbGV0ZWRSb290JywgJ2RldGFpbHMnID0+IGFycmF5
KCdjb21taXRTZXQnID0+ICRkZXN0aW5hdGlvbl9pZCwgJ3Jvb3RGaWxlJyA9PiAkcm9vdF9maWxl
X2lkKSk7CisgICAgfQorCisgICAgcmV0dXJuIE5VTEw7Cit9CisKIG1haW4oYXJyYXlfZ2V0KCRf
R0VULCAnaWQnKSwKICAgICBhcnJheV9rZXlfZXhpc3RzKCdQQVRIX0lORk8nLCAkX1NFUlZFUikg
PyBleHBsb2RlKCcvJywgdHJpbSgkX1NFUlZFUlsnUEFUSF9JTkZPJ10sICcvJykpIDogYXJyYXko
KSwKICAgICBmaWxlX2dldF9jb250ZW50cygicGhwOi8vaW5wdXQiKSk7CiAKLT8+Cis/PgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2J1aWxkLXJlcXVlc3QuanMgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9idWlsZC1yZXF1ZXN0LmpzCmluZGV4IDJkYjBkNWJi
NDM3OGNlMzVlM2M0OWFkZjNhZTUwMzgwMTMxZDMyZmQuLmEzMzFiMGJiZWNiZDIwODA2M2YzOGEw
N2UyODhhYjIxMGQyYTcxMmYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvdjMvbW9kZWxzL2J1aWxkLXJlcXVlc3QuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9tb2RlbHMvYnVpbGQtcmVxdWVzdC5qcwpAQCAtODcsOCArODcsNDUg
QEAgY2xhc3MgQnVpbGRSZXF1ZXN0IGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKIAogICAgIGJ1
aWxkSWQoKSB7IHJldHVybiB0aGlzLl9idWlsZElkOyB9CiAgICAgY3JlYXRlZEF0KCkgeyByZXR1
cm4gdGhpcy5fY3JlYXRlZEF0OyB9CisgICAgYXN5bmMgZmluZEJ1aWxkUmVxdWVzdFdpdGhTYW1l
Um9vdHMoKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmlzQnVpbGQoKSkKKyAgICAgICAgICAg
IHJldHVybiBudWxsOworICAgICAgICBsZXQgc2NoZWR1bGVkQnVpbGRSZXF1ZXN0ID0gbnVsbDsK
KyAgICAgICAgbGV0IHJ1bm5pbmdCdWlsZFJlcXVlc3QgPSBudWxsOworICAgICAgICAvLyBTZXQg
aWdub3JlQ2FjaGUgPSB0cnVlIGFzIGxhdGVzdCBzdGF0dXMgb2YgdGVzdCBncm91cHMgaXMgZXhw
ZWN0ZWQuCisgICAgICAgIGNvbnN0IGFsbFRlc3RHcm91cHNJblRhc2sgPSBhd2FpdCBUZXN0R3Jv
dXAuZmV0Y2hGb3JUYXNrKHRoaXMuYW5hbHlzaXNUYXNrSWQoKSwgdHJ1ZSk7CisgICAgICAgIGZv
ciAoY29uc3QgZ3JvdXAgb2YgYWxsVGVzdEdyb3Vwc0luVGFzaykgeworICAgICAgICAgICAgaWYg
KGdyb3VwLmlkKCkgPT0gdGhpcy50ZXN0R3JvdXBJZCgpKQorICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICAgICAgaWYgKGdyb3VwLmlzSGlkZGVuKCkpCisgICAgICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgICAgICBmb3IgKGNvbnN0IGJ1aWxkUmVxdWVzdCBvZiBncm91cC5i
dWlsZFJlcXVlc3RzKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWJ1aWxkUmVxdWVzdC5pc0J1
aWxkKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlm
ICghdGhpcy5wbGF0Zm9ybSgpLmlzSW5TYW1lR3JvdXBBcyhidWlsZFJlcXVlc3QucGxhdGZvcm0o
KSkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmICgh
YnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpLmVxdWFsc0lnbm9yaW5nUm9vdCh0aGlzLmNvbW1pdFNl
dCgpKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYg
KCFidWlsZFJlcXVlc3QuY29tbWl0U2V0KCkuYXJlQWxsUm9vdHNBdmFpbGFibGUoKSkKKyAgICAg
ICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKGJ1aWxkUmVxdWVz
dC5oYXNDb21wbGV0ZWQoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJ1aWxkUmVxdWVz
dDsKKyAgICAgICAgICAgICAgICBpZiAoYnVpbGRSZXF1ZXN0LmlzU2NoZWR1bGVkKCkKKyAgICAg
ICAgICAgICAgICAgICAgJiYgKCFzY2hlZHVsZWRCdWlsZFJlcXVlc3QgfHwgYnVpbGRSZXF1ZXN0
LmNyZWF0ZWRBdCgpIDwgc2NoZWR1bGVkQnVpbGRSZXF1ZXN0LmNyZWF0ZWRBdCgpKSkgeworICAg
ICAgICAgICAgICAgICAgICBzY2hlZHVsZWRCdWlsZFJlcXVlc3QgPSBidWlsZFJlcXVlc3Q7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChidWlsZFJlcXVlc3Quc3RhdHVz
KCkgPT0gJ3J1bm5pbmcnCisgICAgICAgICAgICAgICAgICAgICYmICghcnVubmluZ0J1aWxkUmVx
dWVzdCB8fCBidWlsZFJlcXVlc3QuY3JlYXRlZEF0KCkgPCBydW5uaW5nQnVpbGRSZXF1ZXN0LmNy
ZWF0ZWRBdCgpKSkgeworICAgICAgICAgICAgICAgICAgICBydW5uaW5nQnVpbGRSZXF1ZXN0ID0g
YnVpbGRSZXF1ZXN0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgICAgICByZXR1cm4gcnVubmluZ0J1aWxkUmVxdWVzdCB8fCBzY2hlZHVsZWRCdWlsZFJl
cXVlc3Q7CisgICAgfQogCi0gICAgc3RhdGljIGZvcm1hdFRpbWVJbnRlcnZhbChpbnRlcnZhbElu
TWlsbGlvblNlY29uZHMpIHsKKyAgICBzdGF0aWMgZm9ybWF0VGltZUludGVydmFsKGludGVydmFs
SW5NaWxsaW9uU2Vjb25kcykKKyAgICB7CiAgICAgICAgIGxldCBpbnRlcnZhbEluU2Vjb25kcyA9
IGludGVydmFsSW5NaWxsaW9uU2Vjb25kcyAvIDEwMDA7CiAgICAgICAgIGNvbnN0IHVuaXRzID0g
WwogICAgICAgICAgICAge3VuaXQ6ICd3ZWVrJywgbGVuZ3RoOiA3ICogMjQgKiAzNjAwfSwKZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1p
dC1zZXQuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9jb21t
aXQtc2V0LmpzCmluZGV4IDNiMzdiNDM0YmZiYjIwNzQwNzhiNTNjMmY5ZmM1YzRiZGUzYTdkZjku
LmYxYTg1NzgyOWFhYzcxZGQ0NGRmNzRjYjkzODYwZTQ0NzM2YWQ0OWMgMTAwNjQ0Ci0tLSBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL2NvbW1pdC1zZXQuanMKKysr
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvY29tbWl0LXNldC5q
cwpAQCAtNzQsNiArNzQsMTEgQEAgY2xhc3MgQ29tbWl0U2V0IGV4dGVuZHMgRGF0YU1vZGVsT2Jq
ZWN0IHsKICAgICBjb21taXRzV2l0aFRlc3RhYmlsaXR5KCkgeyByZXR1cm4gdGhpcy5jb21taXRz
KCkuZmlsdGVyKChjb21taXQpID0+ICEhY29tbWl0LnRlc3RhYmlsaXR5KCkpOyB9CiAgICAgY29t
bWl0cygpIHsgcmV0dXJuICBBcnJheS5mcm9tKHRoaXMuX3JlcG9zaXRvcnlUb0NvbW1pdE1hcC52
YWx1ZXMoKSk7IH0KIAorICAgIGFyZUFsbFJvb3RzQXZhaWxhYmxlKCkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLmFsbFJvb3RGaWxlcygpLmV2ZXJ5KHJvb3RGaWxlID0+ICFyb290RmlsZS5k
ZWxldGVkQXQoKSB8fCB0aGlzLmN1c3RvbVJvb3RzKCkuZmluZChyb290RmlsZSkpOworICAgIH0K
KwogICAgIHJldmlzaW9uRm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5KQogICAgIHsKICAgICAgICAg
dmFyIGNvbW1pdCA9IHRoaXMuX3JlcG9zaXRvcnlUb0NvbW1pdE1hcC5nZXQocmVwb3NpdG9yeSk7
CkBAIC0xMDIsNyArMTA3LDE3IEBAIGNsYXNzIENvbW1pdFNldCBleHRlbmRzIERhdGFNb2RlbE9i
amVjdCB7CiAgICAgICAgIHJldHVybiB0aGlzLl9sYXRlc3RDb21taXRUaW1lOwogICAgIH0KIAor
ICAgIGVxdWFsc0lnbm9yaW5nUm9vdChvdGhlcikKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
Ll9lcXVhbHNPcHRpb25hbGx5SWdub3JpbmdSb290KG90aGVyLCB0cnVlKTsKKyAgICB9CisKICAg
ICBlcXVhbHMob3RoZXIpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fZXF1YWxzT3B0aW9u
YWxseUlnbm9yaW5nUm9vdChvdGhlciwgZmFsc2UpOworICAgIH0KKworICAgIF9lcXVhbHNPcHRp
b25hbGx5SWdub3JpbmdSb290KG90aGVyLCBpZ25vcmluZ1Jvb3QpCiAgICAgewogICAgICAgICBp
ZiAodGhpcy5fcmVwb3NpdG9yaWVzLmxlbmd0aCAhPSBvdGhlci5fcmVwb3NpdG9yaWVzLmxlbmd0
aCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTExMSw3ICsxMjYsNyBAQCBjbGFzcyBD
b21taXRTZXQgZXh0ZW5kcyBEYXRhTW9kZWxPYmplY3QgewogICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgICAgIGlmICh0aGlzLnBhdGNoRm9yUmVwb3NpdG9yeShyZXBvc2l0
b3J5KSAhPSBvdGhlci5wYXRjaEZvclJlcG9zaXRvcnkocmVwb3NpdG9yeSkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKHRoaXMucm9vdEZvclJlcG9zaXRv
cnkocmVwb3NpdG9yeSkgIT0gb3RoZXIucm9vdEZvclJlcG9zaXRvcnkocmVwb3NpdG9yeSkpCisg
ICAgICAgICAgICBpZiAodGhpcy5yb290Rm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5KSAhPSBvdGhl
ci5yb290Rm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5KSAmJiAhaWdub3JpbmdSb290KQogICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGlmICh0aGlzLm93bmVyQ29tbWl0
Rm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5KSAhPSBvdGhlci5vd25lckNvbW1pdEZvclJlcG9zaXRv
cnkocmVwb3NpdG9yeSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvcGxhdGZvcm0uanMg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9wbGF0Zm9ybS5qcwpp
bmRleCBmMDFkYzI1ZmFkNmI5MzQwZmYxM2E1OTFlYjgxZTdkNWMyNWZkYzJmLi4zYTZkNThjYzQ4
YmEzNjBkMGMzOWE0MTc0YmVlZTg1YWJlYjhjNjAzIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9wbGF0Zm9ybS5qcworKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9wbGF0Zm9ybS5qcwpAQCAtMjQsNiArMjQs
MTMgQEAgY2xhc3MgUGxhdGZvcm0gZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICAgICAgcmV0
dXJuIG1hcCA/IG1hcFtuYW1lXSA6IG51bGw7CiAgICAgfQogCisgICAgaXNJblNhbWVHcm91cEFz
KG90aGVyKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmdyb3VwKCkgJiYgIW90aGVyLmdyb3Vw
KCkpCisgICAgICAgICAgICByZXR1cm4gdGhpcyA9PSBvdGhlcjsKKyAgICAgICAgcmV0dXJuIHRo
aXMuZ3JvdXAoKSA9PSBvdGhlci5ncm91cCgpOworICAgIH0KKwogICAgIGhhc1Rlc3QodGVzdCkK
ICAgICB7CiAgICAgICAgIGlmICghdGhpcy5fY29udGFpbmluZ1Rlc3RzKSB7CmRpZmYgLS1naXQg
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1idWlsZC1yZXF1ZXN0
cy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWJ1
aWxkLXJlcXVlc3RzLXRlc3RzLmpzCmluZGV4IDA3ZGY1OGQ0OGUxOTE2YjVjNGFjYjk3MTRlMmU5
NzkxYzgzMmU3M2UuLmUwNWEyMTcyYTY3ZWZlYTMxMjFiNzJjZWIzZjU2MTU0YTRmOGM2NzcgMTAw
NjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWJ1aWxk
LXJlcXVlc3RzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvYXBpLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCkBAIC01LDYgKzUsNyBAQCBsZXQgYXNz
ZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7CiBsZXQgTW9ja0RhdGEgPSByZXF1aXJlKCcuL3Jlc291
cmNlcy9tb2NrLWRhdGEuanMnKTsKIGxldCBUZXN0U2VydmVyID0gcmVxdWlyZSgnLi9yZXNvdXJj
ZXMvdGVzdC1zZXJ2ZXIuanMnKTsKIGNvbnN0IHByZXBhcmVTZXJ2ZXJUZXN0ID0gcmVxdWlyZSgn
Li9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMnKS5wcmVwYXJlU2VydmVyVGVzdDsKK2Nv
bnN0IGFzc2VydFRocm93cyA9IHJlcXVpcmUoJy4uL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvY29t
bW9uLW9wZXJhdGlvbnMnKS5hc3NlcnRUaHJvd3M7CiAKIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJl
cXVlc3RzJywgZnVuY3Rpb24gKCkgewogICAgIHByZXBhcmVTZXJ2ZXJUZXN0KHRoaXMpOwpAQCAt
NjQsNiArNjUsMzExIEBAIGRlc2NyaWJlKCcvYXBpL2J1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24g
KCkgewogICAgICAgIH0pOwogICAgIH0pOwogCisgICAgaXQoJ3JldXNlIHJvb3RzIGZyb20gZXhp
c3RpbmcgYnVpbGQgcmVxdWVzdHMgaWYgdGhlIGNvbW1pdHMgc2V0cyBhcmUgZXF1YWwgZXhjZXB0
IHRoZSBleGlzdGVuY2Ugb2Ygcm9vdHMnLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IE1v
Y2tEYXRhLmFkZE1vY2tCdWlsZFJlcXVlc3RzV2l0aFJvb3RzKFRlc3RTZXJ2ZXIuZGF0YWJhc2Uo
KSk7CisgICAgICAgIGxldCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5n
ZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsKKwor
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydi
dWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2Fk
ZWRGaWxlcyddKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5s
ZW5ndGgsIDQpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBd
LmlkLCA1MDApOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJd
LmlkLCA2MDApOworCisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNv
bW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RG
aWxlOiBudWxsfSwKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBu
dWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0pOwor
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lv
bkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVs
bCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCisg
ICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEw
MCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7CisKKyAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOworICAgICAgICBh
c3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOworICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNTAw
KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0
dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAg
ICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7Cisg
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0
LCA2MDApOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRd
LnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVs0XS51cmwsIG51bGwpOworCisgICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7OTAw
OiB7CisgICAgICAgICAgICBzdGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0
dXMsIHVybDogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgcm9vdFNvdXJjZUJ1aWxk
UmVxdWVzdDogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07CisgICAgICAgIGNvbnN0
IHJlc3BvbnNlID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0
dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0JywgeworICAgICAgICAgICAgJ3Ns
YXZlTmFtZSc6ICdzeW5jLXNsYXZlJywKKyAgICAgICAgICAgICdzbGF2ZVBhc3N3b3JkJzogJ3Bh
c3N3b3JkJywKKyAgICAgICAgICAgICdidWlsZFJlcXVlc3RVcGRhdGVzJzogdXBkYXRlcworICAg
ICAgICB9KTsKKworICAgICAgICBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsK
KyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOwor
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA1MDApOwor
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkLCA2MDApOwor
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVswXS5yZXZpc2lv
bkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVs
bCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCisg
ICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEw
MCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IDEwMX1dKTsKKyAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0ucmV2aXNpb25JdGVtcywgWworICAg
ICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxs
LCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAorICAgICAgICAgICAge2Nv
bW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiAxMDAsIHJlcXVpcmVzQnVp
bGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRl
bnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOworICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNTAwKTsKKyAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQn
KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmws
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7CisgICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA2MDApOworICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ2NvbXBs
ZXRlZCcpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRd
LnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICB9KTsKKworICAg
IGl0KCdzaG91bGQgcmV1c2Ugcm9vdCBidWlsdCBmb3Igb3duZWQgY29tbWl0IGlmIHNhbWUgY29t
cGxldGVkIGJ1aWxkIHJlcXVlc3QgZXhpc3RzJywgYXN5bmMgKCkgPT4geworICAgICAgICBhd2Fp
dCBNb2NrRGF0YS5hZGRUd29Nb2NrVGVzdEdyb3VwV2l0aE93bmVkQ29tbWl0cyhUZXN0U2VydmVy
LmRhdGFiYXNlKCkpOworICAgICAgICBsZXQgY29udGVudCA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Vi
a2l0Jyk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29y
dCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycs
ICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ11bMF0uaWQsIDQwMyk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRT
ZXRzJ11bMl0uaWQsIDQwNSk7CisKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydj
b21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICAgICAge2NvbW1pdDogJzg3
ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxz
ZSwgcm9vdEZpbGU6IG51bGx9LAorICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0
T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6
IG51bGx9LAorICAgICAgICAgICAge2NvbW1pdDogJzE3OTcnLCBjb21taXRPd25lcjogJzkzMTE2
JywgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7Cisg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9u
SXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxs
LCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKKyAg
ICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVs
bCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKKyAgICAgICAgICAgIHtj
b21taXQ6ICcxNzk3JywgY29tbWl0T3duZXI6ICc5MzExNicsIHBhdGNoOiBudWxsLCByZXF1aXJl
c0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsKKworICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7CisgICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDcwNCk7CisgICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA0MDMpOworICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBs
ZXRlZCcpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCwgNzA4KTsKKyAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQsIDQwNSk7Cisg
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAn
cGVuZGluZycpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzRdLnVybCwgbnVsbCk7CisKKyAgICAgICAgY29uc3QgdXBkYXRlcyA9IHs3MDg6IHsKKyAgICAg
ICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCByb290U291cmNlQnVpbGRSZXF1ZXN0OiA3
MDR9fTsKKworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtp
dCcsIHsKKyAgICAgICAgICAgICdzbGF2ZU5hbWUnOiAnc3luYy1zbGF2ZScsCisgICAgICAgICAg
ICAnc2xhdmVQYXNzd29yZCc6ICdwYXNzd29yZCcsCisgICAgICAgICAgICAnYnVpbGRSZXF1ZXN0
VXBkYXRlcyc6IHVwZGF0ZXMKKyAgICAgICAgfSk7CisKKyAgICAgICAgY29udGVudCA9IGF3YWl0
IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVx
dWVzdHMvYnVpbGQtd2Via2l0Jyk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0Lmtl
eXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVzdHMnLCAnY29tbWl0U2V0cycsICdjb21t
aXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10pOworICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7CisgICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQsIDQwMyk7CisgICAgICAgIGFzc2VydC5lcXVhbChj
b250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQsIDQwNSk7CisKKyAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAgICAgICAg
ICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1
aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAorICAgICAgICAgICAge2NvbW1pdDog
JzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBm
YWxzZSwgcm9vdEZpbGU6IG51bGx9LAorICAgICAgICAgICAge2NvbW1pdDogJzE3OTcnLCBjb21t
aXRPd25lcjogJzkzMTE2JywgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RG
aWxlOiAxMDF9XSk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0
cyddWzJdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNv
bW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RG
aWxlOiBudWxsfSwKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBu
dWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwK
KyAgICAgICAgICAgIHtjb21taXQ6ICcxNzk3JywgY29tbWl0T3duZXI6ICc5MzExNicsIHBhdGNo
OiBudWxsLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0pOworCisgICAgICAg
IGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ10ubGVuZ3RoLCA4KTsKKyAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZCwgNzA0KTsKKyAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5jb21taXRTZXQs
IDQwMyk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0u
c3RhdHVzLCAnY29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWls
ZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwor
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlkLCA3MDgp
OworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmNvbW1p
dFNldCwgNDA1KTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMn
XVs0XS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRb
J2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8x
Jyk7CisgICAgfSk7CisKKyAgICBpdCgnc2hvdWxkIGZhaWwgcmVxdWVzdCB3aXRoICJDYW5ub3RS
ZXVzZURlbGV0ZWRSb290IiBpZiBhbnkgcm9vdCB0byByZXVzZSBpcyBkZWxldGVkJywgYXN5bmMg
KCkgPT4geworICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrQnVpbGRSZXF1ZXN0c1dpdGhS
b290cyhUZXN0U2VydmVyLmRhdGFiYXNlKCkpOworICAgICAgICBhd2FpdCBUZXN0U2VydmVyLmRh
dGFiYXNlKCkucXVlcnkoIlVQREFURSB1cGxvYWRlZF9maWxlcyBTRVQgZmlsZV9kZWxldGVkX2F0
ID0gbm93KCkgYXQgdGltZSB6b25lICd1dGMnIFdIRVJFIGZpbGVfaWQ9MTAxIik7CisgICAgICAg
IGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLmdldEpTT05XaXRo
U3RhdHVzKCcvYXBpL2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcpOworCisgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoT2JqZWN0LmtleXMoY29udGVudCkuc29ydCgpLCBbJ2J1aWxkUmVxdWVz
dHMnLCAnY29tbWl0U2V0cycsICdjb21taXRzJywgJ3N0YXR1cycsICd1cGxvYWRlZEZpbGVzJ10p
OworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNCk7
CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQsIDUwMCk7
CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMl0uaWQsIDYwMCk7
CisKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2
aXNpb25JdGVtcywgWworICAgICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6
IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9
LAorICAgICAgICAgICAge2NvbW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNo
OiAxMDAsIHJlcXVpcmVzQnVpbGQ6IHRydWUsIHJvb3RGaWxlOiAxMDF9XSk7CisgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLnJldmlzaW9uSXRlbXMsIFsK
KyAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDog
bnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKKyAgICAgICAgICAg
IHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJl
c0J1aWxkOiB0cnVlLCByb290RmlsZTogbnVsbH1dKTsKKworICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddLmxlbmd0aCwgOCk7CisgICAgICAgIGFzc2VydC5lcXVh
bChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWQsIDgwMCk7CisgICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uY29tbWl0U2V0LCA1MDApOworICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgJ2NvbXBs
ZXRlZCcpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBd
LnVybCwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnKTsKKyAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5pZCwgOTAwKTsKKyAgICAgICAgYXNz
ZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0XS5jb21taXRTZXQsIDYwMCk7Cisg
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uc3RhdHVzLCAn
cGVuZGluZycpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzRdLnVybCwgbnVsbCk7CisKKyAgICAgICAgY29uc3QgdXBkYXRlcyA9IHs5MDA6IHsKKyAgICAg
ICAgICAgIHN0YXR1czogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnN0YXR1cywgdXJsOiBj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCByb290U291cmNlQnVpbGRSZXF1ZXN0OiBj
b250ZW50WydidWlsZFJlcXVlc3RzJ11bMF0uaWR9fTsKKyAgICAgICAgYXdhaXQgYXNzZXJ0VGhy
b3dzKCdDYW5ub3RSZXVzZURlbGV0ZWRSb290JywgKCkgPT4gVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jywg
eworICAgICAgICAgICAgJ3NsYXZlTmFtZSc6ICdzeW5jLXNsYXZlJywKKyAgICAgICAgICAgICdz
bGF2ZVBhc3N3b3JkJzogJ3Bhc3N3b3JkJywKKyAgICAgICAgICAgICdidWlsZFJlcXVlc3RVcGRh
dGVzJzogdXBkYXRlcworICAgICAgICB9KSk7CisgICAgfSk7CisKKyAgICBpdCgnc2hvdWxkIGZh
aWwgcmVxdWVzdCB3aXRoICJDYW5ub3RSZXVzZURlbGV0ZWRSb290IiBpZiBhbnkgcm9vdCB0byBy
ZXVzZSBpcyBkZWxldGVkIHdoaWxlIHVwZGF0aW5nIGNvbW1pdCBzZXQgaXRlbXMgJywgYXN5bmMg
KCkgPT4geworICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrQnVpbGRSZXF1ZXN0c1dpdGhS
b290cyhUZXN0U2VydmVyLmRhdGFiYXNlKCkpOworICAgICAgICBhd2FpdCBUZXN0U2VydmVyLmRh
dGFiYXNlKCkucXVlcnkoYENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGVtdW5sYXRlX2ZpbGVf
cHVyZ2UoKSBSRVRVUk5TIFRSSUdHRVIgQVMgJGVtdW5sYXRlX2ZpbGVfcHVyZ2UkCisgICAgICAg
ICAgICBCRUdJTgorICAgICAgICAgICAgICAgIFVQREFURSB1cGxvYWRlZF9maWxlcyBTRVQgZmls
ZV9kZWxldGVkX2F0ID0gKENVUlJFTlRfVElNRVNUQU1QIEFUIFRJTUUgWk9ORSAnVVRDJykgV0hF
UkUgZmlsZV9pZCA9IE5FVy5jb21taXRzZXRfcm9vdF9maWxlOworICAgICAgICAgICAgICAgIFJF
VFVSTiBOVUxMOworICAgICAgICAgICAgRU5EOworICAgICAgICAgICAgJGVtdW5sYXRlX2ZpbGVf
cHVyZ2UkIExBTkdVQUdFIHBscGdzcWw7YCk7CisgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIuZGF0
YWJhc2UoKS5xdWVyeShgQ1JFQVRFIFRSSUdHRVIgZW11bmxhdGVfZmlsZV9wdXJnZSBBRlRFUiBV
UERBVEUgT0YgY29tbWl0c2V0X3Jvb3RfZmlsZSBPTiBjb21taXRfc2V0X2l0ZW1zCisgICAgICAg
ICAgICBGT1IgRUFDSCBST1cgRVhFQ1VURSBQUk9DRURVUkUgZW11bmxhdGVfZmlsZV9wdXJnZSgp
O2ApOworICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsK
KworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwg
WydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBs
b2FkZWRGaWxlcyddKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XS5sZW5ndGgsIDQpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cydd
WzBdLmlkLCA1MDApOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cydd
WzJdLmlkLCA2MDApOworCisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0
U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMics
IGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJv
b3RGaWxlOiBudWxsfSwKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVy
OiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0p
OworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZp
c2lvbkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjog
bnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0s
CisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6
IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7CisKKyAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOworICAgICAg
ICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOworICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwg
NTAwKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5z
dGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxk
UmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7Cisg
ICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7
CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0
U2V0LCA2MDApOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cydd
WzRdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1
aWxkUmVxdWVzdHMnXVs0XS51cmwsIG51bGwpOworCisgICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7
OTAwOiB7CisgICAgICAgICAgICBzdGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5z
dGF0dXMsIHVybDogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgcm9vdFNvdXJjZUJ1
aWxkUmVxdWVzdDogY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkfX07CisKKyAgICAgICAg
YXdhaXQgYXNzZXJ0VGhyb3dzKCdDYW5ub3RSZXVzZURlbGV0ZWRSb290JywgKCkgPT4gVGVzdFNl
cnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMv
YnVpbGQtd2Via2l0JywgeworICAgICAgICAgICAgJ3NsYXZlTmFtZSc6ICdzeW5jLXNsYXZlJywK
KyAgICAgICAgICAgICdzbGF2ZVBhc3N3b3JkJzogJ3Bhc3N3b3JkJywKKyAgICAgICAgICAgICdi
dWlsZFJlcXVlc3RVcGRhdGVzJzogdXBkYXRlcworICAgICAgICB9KSk7CisgICAgfSk7CisKKyAg
ICBpdCgnc2hvdWxkIGZhaWwgcmVxdWVzdCB3aXRoICJDYW5ub3RSZXVzZVJvb3RGcm9tQ29tbWl0
U2V0V2l0aERpZmZlcmVudE51bWJlck9mSXRlbXMiIGlmIGJ1aWxkIHJlcXVlc3QgdG8gcmV1c2Ug
ZG9lcyBub3QgaGF2ZSBwYXRjaCcsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgTW9ja0Rh
dGEuYWRkTW9ja0RhdGEoVGVzdFNlcnZlci5kYXRhYmFzZSgpLCBbJ2NvbXBsZXRlZCcsICdwZW5k
aW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZyddLCB0cnVlLCBbJ2h0dHA6Ly9idWlsZC53ZWJraXQu
b3JnL2J1aWRzLzInLCBudWxsLCBudWxsLCBudWxsXSk7CisgICAgICAgIGF3YWl0IE1vY2tEYXRh
LmFkZE1vY2tCdWlsZFJlcXVlc3RzV2l0aFJvb3RzKFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKSwgWydy
dW5uaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVu
ZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnXSwgdHJ1ZSwgZmFsc2UpOworICAgICAgICBjb25z
dCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1
cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsKKworICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddLmxlbmd0aCwgNik7CisgICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0uaWQsIDQwMSk7CisgICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bNF0uaWQsIDYwMCk7CisKKyAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb250ZW50Wydjb21taXRTZXRzJ11bMF0ucmV2aXNpb25JdGVtcywgWworICAg
ICAgICAgICAge2NvbW1pdDogJzg3ODMyJywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxs
LCByZXF1aXJlc0J1aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9LAorICAgICAgICAgICAge2Nv
bW1pdDogJzkzMTE2JywgY29tbWl0T3duZXI6IG51bGwsIHBhdGNoOiBudWxsLCByZXF1aXJlc0J1
aWxkOiBmYWxzZSwgcm9vdEZpbGU6IG51bGx9XSk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29udGVudFsnY29tbWl0U2V0cyddWzRdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtj
b21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNC
dWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzEx
NicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCBy
b290RmlsZTogbnVsbH1dKTsKKworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddLmxlbmd0aCwgMTIpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVp
bGRSZXF1ZXN0cyddWzBdLmlkLCA3MDApOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsn
YnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNDAxKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFs
KGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0ZWQnKTsKKyAgICAg
ICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsICdodHRwOi8v
YnVpbGQud2Via2l0Lm9yZy9idWlkcy8yJyk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bOF0uaWQsIDkwMCk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bOF0uY29tbWl0U2V0LCA2MDApOworICAgICAgICBhc3NlcnQu
ZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzhdLnN0YXR1cywgJ3BlbmRpbmcnKTsKKyAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs4XS51cmwsIG51bGwp
OworCisgICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7OTAwOiB7CisgICAgICAgICAgICBzdGF0dXM6
IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLnVybCwgcm9vdFNvdXJjZUJ1aWxkUmVxdWVzdDogY29udGVudFsnYnVpbGRS
ZXF1ZXN0cyddWzBdLmlkfX07CisKKyAgICAgICAgYXdhaXQgYXNzZXJ0VGhyb3dzKCdDYW5ub3RS
ZXVzZVJvb3RGcm9tQ29tbWl0U2V0V2l0aERpZmZlcmVudE51bWJlck9mSXRlbXMnLCAoKSA9PiBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1
ZXN0cy9idWlsZC13ZWJraXQnLCB7CisgICAgICAgICAgICAnc2xhdmVOYW1lJzogJ3N5bmMtc2xh
dmUnLAorICAgICAgICAgICAgJ3NsYXZlUGFzc3dvcmQnOiAncGFzc3dvcmQnLAorICAgICAgICAg
ICAgJ2J1aWxkUmVxdWVzdFVwZGF0ZXMnOiB1cGRhdGVzCisgICAgICAgIH0pKTsKKyAgICB9KTsK
KworICAgIGl0KCdzaG91bGQgZmFpbCByZXF1ZXN0IHdpdGggIkNhbk9ubHlSZXVzZUNvbXBsZXRl
ZEJ1aWxkUmVxdWVzdCIgaWYgYnVpbGQgcmVxdWVzdCB0byByZXVzZSBpcyBub3QgY29tcGxldGVk
JywgYXN5bmMgKCkgPT4geworICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrQnVpbGRSZXF1
ZXN0c1dpdGhSb290cyhUZXN0U2VydmVyLmRhdGFiYXNlKCksIFsncnVubmluZycsICdwZW5kaW5n
JywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycs
ICdwZW5kaW5nJ10pOworICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13
ZWJraXQnKTsKKworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQp
LnNvcnQoKSwgWydidWlsZFJlcXVlc3RzJywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0
dXMnLCAndXBsb2FkZWRGaWxlcyddKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2Nv
bW1pdFNldHMnXS5sZW5ndGgsIDQpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddWzBdLmlkLCA1MDApOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29t
bWl0U2V0cyddWzJdLmlkLCA2MDApOworCisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVu
dFsnY29tbWl0U2V0cyddWzBdLnJldmlzaW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6
ICc4NzgzMicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDog
ZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwKKyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNv
bW1pdE93bmVyOiBudWxsLCBwYXRjaDogMTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290Rmls
ZTogMTAxfV0pOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMn
XVsyXS5yZXZpc2lvbkl0ZW1zLCBbCisgICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21t
aXRPd25lcjogbnVsbCwgcGF0Y2g6IG51bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290Rmls
ZTogbnVsbH0sCisgICAgICAgICAgICB7Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVs
bCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNCdWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7CisK
KyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgp
OworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4
MDApOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNv
bW1pdFNldCwgNTAwKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVz
dHMnXVswXS5zdGF0dXMsICdydW5uaW5nJyk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250ZW50
WydidWlsZFJlcXVlc3RzJ11bMF0udXJsLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMv
MScpOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLmlk
LCA5MDApOworICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRd
LmNvbW1pdFNldCwgNjAwKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVx
dWVzdHMnXVs0XS5zdGF0dXMsICdwZW5kaW5nJyk7CisgICAgICAgIGFzc2VydC5lcXVhbChjb250
ZW50WydidWlsZFJlcXVlc3RzJ11bNF0udXJsLCBudWxsKTsKKworICAgICAgICBjb25zdCB1cGRh
dGVzID0gezkwMDogeworICAgICAgICAgICAgc3RhdHVzOiBjb250ZW50WydidWlsZFJlcXVlc3Rz
J11bMF0uc3RhdHVzLCB1cmw6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51cmwsIHJvb3RT
b3VyY2VCdWlsZFJlcXVlc3Q6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5pZH19OworICAg
ICAgICBhd2FpdCBhc3NlcnRUaHJvd3MoJ0Nhbk9ubHlSZXVzZUNvbXBsZXRlZEJ1aWxkUmVxdWVz
dCcsICgpID0+IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBp
L2J1aWxkLXJlcXVlc3RzL2J1aWxkLXdlYmtpdCcsIHsKKyAgICAgICAgICAgICdzbGF2ZU5hbWUn
OiAnc3luYy1zbGF2ZScsCisgICAgICAgICAgICAnc2xhdmVQYXNzd29yZCc6ICdwYXNzd29yZCcs
CisgICAgICAgICAgICAnYnVpbGRSZXF1ZXN0VXBkYXRlcyc6IHVwZGF0ZXMKKyAgICAgICAgfSkp
OworICAgIH0pOworCisgICAgaXQoJ3Nob3VsZCBmYWlsIHJlcXVlc3Qgd2l0aCAiRmFpbGVkVG9G
aW5kUmV1c2VCdWlsZFJlcXVlc3QiIGlmIHRoZSBidWlsZCByZXF1ZXN0IHRvIHJldXNlIGRvZXMg
bm90IGV4aXN0JywgYXN5bmMgKCkgPT4geworICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2Nr
QnVpbGRSZXF1ZXN0c1dpdGhSb290cyhUZXN0U2VydmVyLmRhdGFiYXNlKCkpOworICAgICAgICBj
b25zdCBjb250ZW50ID0gYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5nZXRKU09OV2l0aFN0
YXR1cygnL2FwaS9idWlsZC1yZXF1ZXN0cy9idWlsZC13ZWJraXQnKTsKKworICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKGNvbnRlbnQpLnNvcnQoKSwgWydidWlsZFJlcXVlc3Rz
JywgJ2NvbW1pdFNldHMnLCAnY29tbWl0cycsICdzdGF0dXMnLCAndXBsb2FkZWRGaWxlcyddKTsK
KyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXS5sZW5ndGgsIDQpOwor
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLmlkLCA1MDApOwor
ICAgICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzJdLmlkLCA2MDApOwor
CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29udGVudFsnY29tbWl0U2V0cyddWzBdLnJldmlz
aW9uSXRlbXMsIFsKKyAgICAgICAgICAgIHtjb21taXQ6ICc4NzgzMicsIGNvbW1pdE93bmVyOiBu
dWxsLCBwYXRjaDogbnVsbCwgcmVxdWlyZXNCdWlsZDogZmFsc2UsIHJvb3RGaWxlOiBudWxsfSwK
KyAgICAgICAgICAgIHtjb21taXQ6ICc5MzExNicsIGNvbW1pdE93bmVyOiBudWxsLCBwYXRjaDog
MTAwLCByZXF1aXJlc0J1aWxkOiB0cnVlLCByb290RmlsZTogMTAxfV0pOworICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbnRlbnRbJ2NvbW1pdFNldHMnXVsyXS5yZXZpc2lvbkl0ZW1zLCBbCisg
ICAgICAgICAgICB7Y29tbWl0OiAnODc4MzInLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IG51
bGwsIHJlcXVpcmVzQnVpbGQ6IGZhbHNlLCByb290RmlsZTogbnVsbH0sCisgICAgICAgICAgICB7
Y29tbWl0OiAnOTMxMTYnLCBjb21taXRPd25lcjogbnVsbCwgcGF0Y2g6IDEwMCwgcmVxdWlyZXNC
dWlsZDogdHJ1ZSwgcm9vdEZpbGU6IG51bGx9XSk7CisKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bnRlbnRbJ2J1aWxkUmVxdWVzdHMnXS5sZW5ndGgsIDgpOworICAgICAgICBhc3NlcnQuZXF1YWwo
Y29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmlkLCA4MDApOworICAgICAgICBhc3NlcnQuZXF1
YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLmNvbW1pdFNldCwgNTAwKTsKKyAgICAgICAg
YXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsICdjb21wbGV0
ZWQnKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS51
cmwsICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgIGFzc2VydC5l
cXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uaWQsIDkwMCk7CisgICAgICAgIGFzc2Vy
dC5lcXVhbChjb250ZW50WydidWlsZFJlcXVlc3RzJ11bNF0uY29tbWl0U2V0LCA2MDApOworICAg
ICAgICBhc3NlcnQuZXF1YWwoY29udGVudFsnYnVpbGRSZXF1ZXN0cyddWzRdLnN0YXR1cywgJ3Bl
bmRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVs0
XS51cmwsIG51bGwpOworCisgICAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7OTAwOiB7CisgICAgICAg
ICAgICBzdGF0dXM6IGNvbnRlbnRbJ2J1aWxkUmVxdWVzdHMnXVswXS5zdGF0dXMsIHVybDogY29u
dGVudFsnYnVpbGRSZXF1ZXN0cyddWzBdLnVybCwgcm9vdFNvdXJjZUJ1aWxkUmVxdWVzdDogOTk5
fX07CisKKyAgICAgICAgYXdhaXQgYXNzZXJ0VGhyb3dzKCdGYWlsZWRUb0ZpbmRSb290U291cmNl
QnVpbGRSZXF1ZXN0JywgKCkgPT4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhT
dGF0dXMoJy9hcGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0JywgeworICAgICAgICAgICAg
J3NsYXZlTmFtZSc6ICdzeW5jLXNsYXZlJywKKyAgICAgICAgICAgICdzbGF2ZVBhc3N3b3JkJzog
J3Bhc3N3b3JkJywKKyAgICAgICAgICAgICdidWlsZFJlcXVlc3RVcGRhdGVzJzogdXBkYXRlcwor
ICAgICAgICB9KSk7CisgICAgfSk7CisKICAgICBpdCgnc2hvdWxkIHJldHVybiBidWlsZCByZXF1
ZXN0cyBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiB0cmlnZ2VyYWJsZSB3aXRoIGFwcHJvcHJpYXRl
IGNvbW1pdHMgYW5kIGNvbW1pdFNldHMnLCAoKSA9PiB7CiAgICAgICAgIHJldHVybiBNb2NrRGF0
YS5hZGRNb2NrRGF0YShUZXN0U2VydmVyLmRhdGFiYXNlKCkpLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkuZ2V0SlNPTldpdGhTdGF0dXMoJy9h
cGkvYnVpbGQtcmVxdWVzdHMvYnVpbGQtd2Via2l0Jyk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMK
aW5kZXggOTIwODRlNGY5NzBkZmFiZjlkN2MwOWZmN2M4ZmQzNzA3NDQ4NWQ5Mi4uNGI0N2YyMzBi
MzZlZTIwNTEzYTQ0ZDVlNjNkZDgwYWQzMjMwZmIyOSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5q
cwpAQCAtNDAsOSArNDAsOSBAQCBNb2NrRGF0YSA9IHsKICAgICAgICAgICAgIGRiLmluc2VydCgn
cmVwb3NpdG9yaWVzJywge2lkOiB0aGlzLnNoYXJlZFJlcG9zaXRvcnlJZCgpLCBuYW1lOiAnU2hh
cmVkJ30pLAogICAgICAgICAgICAgZGIuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7aWQ6IHRoaXMu
b3duZWRKU0NSZXBvc2l0b3J5SWQoKSwgb3duZXI6IHRoaXMud2Via2l0UmVwb3NpdG9yeUlkKCks
IG5hbWU6ICdKYXZhU2NyaXB0Q29yZSd9KSwKICAgICAgICAgICAgIGRiLmluc2VydCgncmVwb3Np
dG9yaWVzJywge2lkOiB0aGlzLmpzY1JlcG9zaXRvcnlJZCgpLCBuYW1lOiAnSmF2YVNjcmlwdENv
cmUnfSksCi0gICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3Jv
dXBzJywge2lkOiAyMDAxLCBuYW1lOiAnd2Via2l0LXN2bicsIHRyaWdnZXJhYmxlOiAxMDAwfSks
CisgICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywg
e2lkOiAyMDAxLCBuYW1lOiAnd2Via2l0LXN2bicsIHRyaWdnZXJhYmxlOiAxMDAwLCBhY2NlcHRz
X3Jvb3RzOiB0cnVlfSksCiAgICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9z
aXRvcmllcycsIHtyZXBvc2l0b3J5OiB0aGlzLm1hY29zUmVwb3NpdG9yeUlkKCksIGdyb3VwOiAy
MDAxfSksCi0gICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcmllcycs
IHtyZXBvc2l0b3J5OiB0aGlzLndlYmtpdFJlcG9zaXRvcnlJZCgpLCBncm91cDogMjAwMX0pLAor
ICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCB7cmVwb3Np
dG9yeTogdGhpcy53ZWJraXRSZXBvc2l0b3J5SWQoKSwgZ3JvdXA6IDIwMDEsIGFjY2VwdHNfcGF0
Y2g6IHRydWV9KSwKICAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0cycsIHtpZDogODc4MzIs
IHJlcG9zaXRvcnk6IHRoaXMubWFjb3NSZXBvc2l0b3J5SWQoKSwgcmV2aXNpb246ICcxMC4xMSAx
NUEyODQnfSksCiAgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdHMnLCB7aWQ6IDkzMTE2LCBy
ZXBvc2l0b3J5OiB0aGlzLndlYmtpdFJlcG9zaXRvcnlJZCgpLCByZXZpc2lvbjogJzE5MTYyMics
IHRpbWU6IChuZXcgRGF0ZSgxNDQ1OTQ1ODE2ODc4KSkudG9JU09TdHJpbmcoKX0pLAogICAgICAg
ICAgICAgZGIuaW5zZXJ0KCdjb21taXRzJywge2lkOiA5NjMzNiwgcmVwb3NpdG9yeTogdGhpcy53
ZWJraXRSZXBvc2l0b3J5SWQoKSwgcmV2aXNpb246ICcxOTI3MzYnLCB0aW1lOiAobmV3IERhdGUo
MTQ0ODIyNTMyNTY1MCkpLnRvSVNPU3RyaW5nKCl9KSwKQEAgLTY0LDEwICs2NCwxMiBAQCBNb2Nr
RGF0YSA9IHsKICAgICAgICAgICAgIGRiLmluc2VydCgndGVzdF9ydW5zJywge2lkOiA4MDEsIGNv
bmZpZzogMzAxLCBidWlsZDogOTAxLCBtZWFuX2NhY2hlOiAxMDB9KSwKICAgICAgICAgXSk7CiAg
ICAgfSwKLSAgICBhZGRNb2NrRGF0YTogZnVuY3Rpb24gKGRiLCBzdGF0dXNMaXN0LCBuZWVkc05v
dGlmaWNhdGlvbj10cnVlKQorICAgIGFkZE1vY2tEYXRhOiBmdW5jdGlvbiAoZGIsIHN0YXR1c0xp
c3QsIG5lZWRzTm90aWZpY2F0aW9uPXRydWUsIHVybExpc3Q9W10pCiAgICAgewogICAgICAgICBp
ZiAoIXN0YXR1c0xpc3QpCiAgICAgICAgICAgICBzdGF0dXNMaXN0ID0gWydwZW5kaW5nJywgJ3Bl
bmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJ107CisgICAgICAgIGlmICghdXJsTGlzdCkKKyAg
ICAgICAgICAgIHVybExpc3QgPSBbbnVsbCwgbnVsbCwgbnVsbCwgbnVsbF07CiAgICAgICAgIHJl
dHVybiBQcm9taXNlLmFsbChbCiAgICAgICAgICAgICB0aGlzLmFkZE1vY2tDb25maWd1cmF0aW9u
KGRiKSwKICAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0X3NldHMnLCB7aWQ6IDQwMX0pLApA
QCAtODAsMTAgKzgyLDUwIEBAIE1vY2tEYXRhID0gewogICAgICAgICAgICAgICAgIHN0YXJ0X3J1
bjogODAxLCBzdGFydF9ydW5fdGltZTogJzIwMTUtMTAtMjdUMTI6MDU6MjcuMVonLAogICAgICAg
ICAgICAgICAgIGVuZF9ydW46IDgwMSwgZW5kX3J1bl90aW1lOiAnMjAxNS0xMC0yN1QxMjowNToy
Ny4xWid9KSwKICAgICAgICAgICAgIGRiLmluc2VydCgnYW5hbHlzaXNfdGVzdF9ncm91cHMnLCB7
aWQ6IDYwMCwgdGFzazogNTAwLCBuYW1lOiAnc29tZSB0ZXN0IGdyb3VwJywgaW5pdGlhbF9yZXBl
dGl0aW9uX2NvdW50OiA0LCBuZWVkc19ub3RpZmljYXRpb246IG5lZWRzTm90aWZpY2F0aW9ufSks
Ci0gICAgICAgICAgICBkYi5pbnNlcnQoJ2J1aWxkX3JlcXVlc3RzJywge2lkOiA3MDAsIHN0YXR1
czogc3RhdHVzTGlzdFswXSwgdHJpZ2dlcmFibGU6IDEwMDAsIHJlcG9zaXRvcnlfZ3JvdXA6IDIw
MDEsIHBsYXRmb3JtOiA2NSwgdGVzdDogMjAwLCBncm91cDogNjAwLCBvcmRlcjogMCwgY29tbWl0
X3NldDogNDAxfSksCi0gICAgICAgICAgICBkYi5pbnNlcnQoJ2J1aWxkX3JlcXVlc3RzJywge2lk
OiA3MDEsIHN0YXR1czogc3RhdHVzTGlzdFsxXSwgdHJpZ2dlcmFibGU6IDEwMDAsIHJlcG9zaXRv
cnlfZ3JvdXA6IDIwMDEsIHBsYXRmb3JtOiA2NSwgdGVzdDogMjAwLCBncm91cDogNjAwLCBvcmRl
cjogMSwgY29tbWl0X3NldDogNDAyfSksCi0gICAgICAgICAgICBkYi5pbnNlcnQoJ2J1aWxkX3Jl
cXVlc3RzJywge2lkOiA3MDIsIHN0YXR1czogc3RhdHVzTGlzdFsyXSwgdHJpZ2dlcmFibGU6IDEw
MDAsIHJlcG9zaXRvcnlfZ3JvdXA6IDIwMDEsIHBsYXRmb3JtOiA2NSwgdGVzdDogMjAwLCBncm91
cDogNjAwLCBvcmRlcjogMiwgY29tbWl0X3NldDogNDAxfSksCi0gICAgICAgICAgICBkYi5pbnNl
cnQoJ2J1aWxkX3JlcXVlc3RzJywge2lkOiA3MDMsIHN0YXR1czogc3RhdHVzTGlzdFszXSwgdHJp
Z2dlcmFibGU6IDEwMDAsIHJlcG9zaXRvcnlfZ3JvdXA6IDIwMDEsIHBsYXRmb3JtOiA2NSwgdGVz
dDogMjAwLCBncm91cDogNjAwLCBvcmRlcjogMywgY29tbWl0X3NldDogNDAyfSksCisgICAgICAg
ICAgICBkYi5pbnNlcnQoJ2J1aWxkX3JlcXVlc3RzJywge2lkOiA3MDAsIHN0YXR1czogc3RhdHVz
TGlzdFswXSwgdXJsOiB1cmxMaXN0WzBdLCB0cmlnZ2VyYWJsZTogMTAwMCwgcmVwb3NpdG9yeV9n
cm91cDogMjAwMSwgcGxhdGZvcm06IDY1LCB0ZXN0OiAyMDAsIGdyb3VwOiA2MDAsIG9yZGVyOiAw
LCBjb21taXRfc2V0OiA0MDF9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRfcmVxdWVz
dHMnLCB7aWQ6IDcwMSwgc3RhdHVzOiBzdGF0dXNMaXN0WzFdLCB1cmw6IHVybExpc3RbMV0sIHRy
aWdnZXJhYmxlOiAxMDAwLCByZXBvc2l0b3J5X2dyb3VwOiAyMDAxLCBwbGF0Zm9ybTogNjUsIHRl
c3Q6IDIwMCwgZ3JvdXA6IDYwMCwgb3JkZXI6IDEsIGNvbW1pdF9zZXQ6IDQwMn0pLAorICAgICAg
ICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1ZXN0cycsIHtpZDogNzAyLCBzdGF0dXM6IHN0YXR1
c0xpc3RbMl0sIHVybDogdXJsTGlzdFsyXSwgdHJpZ2dlcmFibGU6IDEwMDAsIHJlcG9zaXRvcnlf
Z3JvdXA6IDIwMDEsIHBsYXRmb3JtOiA2NSwgdGVzdDogMjAwLCBncm91cDogNjAwLCBvcmRlcjog
MiwgY29tbWl0X3NldDogNDAxfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2J1aWxkX3JlcXVl
c3RzJywge2lkOiA3MDMsIHN0YXR1czogc3RhdHVzTGlzdFszXSwgdXJsOiB1cmxMaXN0WzNdLCB0
cmlnZ2VyYWJsZTogMTAwMCwgcmVwb3NpdG9yeV9ncm91cDogMjAwMSwgcGxhdGZvcm06IDY1LCB0
ZXN0OiAyMDAsIGdyb3VwOiA2MDAsIG9yZGVyOiAzLCBjb21taXRfc2V0OiA0MDJ9KSwKKyAgICAg
ICAgXSk7CisgICAgfSwKKyAgICBhZGRNb2NrQnVpbGRSZXF1ZXN0c1dpdGhSb290cyhkYiwgc3Rh
dHVzTGlzdCwgbmVlZHNOb3RpZmljYXRpb249dHJ1ZSwgYWRkTW9ja0NvbmZpZ3VyYXRpb249dHJ1
ZSkKKyAgICB7CisgICAgICAgIGNvbnN0IHNldHVwU3RlcHMgPSBhZGRNb2NrQ29uZmlndXJhdGlv
biA/IFt0aGlzLmFkZE1vY2tDb25maWd1cmF0aW9uKGRiKV0gOiBbXTsKKyAgICAgICAgaWYgKCFz
dGF0dXNMaXN0KQorICAgICAgICAgICAgc3RhdHVzTGlzdCA9IFsnY29tcGxldGVkJywgJ3J1bm5p
bmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5n
JywgJ3BlbmRpbmcnXTsKKyAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsKKyAgICAgICAgICAg
IC4uLnNldHVwU3RlcHMsCisgICAgICAgICAgICBkYi5pbnNlcnQoJ3VwbG9hZGVkX2ZpbGVzJywg
e2lkOiAxMDAsIGZpbGVuYW1lOiAncGF0Y2gtMTAwJywgZXh0ZW5zaW9uOiAnLnR4dCcsIHNpemU6
IDEsIHNoYTI1NjogY3J5cHRvLmNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZSgncGF0Y2gtMTAw
JykuZGlnZXN0KCdoZXgnKX0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCd1cGxvYWRlZF9maWxl
cycsIHtpZDogMTAxLCBmaWxlbmFtZTogJ3Jvb3QtMTAxJywgZXh0ZW5zaW9uOiAnLnRneicsIHNp
emU6IDEsIHNoYTI1NjogY3J5cHRvLmNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZSgncm9vdC0x
MDEnKS5kaWdlc3QoJ2hleCcpfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ3VwbG9hZGVkX2Zp
bGVzJywge2lkOiAxMDIsIGZpbGVuYW1lOiAncGF0Y2gtMTAyJywgZXh0ZW5zaW9uOiAnLnR4dCcs
IHNpemU6IDEsIHNoYTI1NjogY3J5cHRvLmNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZSgncGF0
Y2gtMTAyJykuZGlnZXN0KCdoZXgnKX0pLAorCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1p
dF9zZXRzJywge2lkOiA1MDB9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0X3NldF9p
dGVtcycsIHtzZXQ6IDUwMCwgY29tbWl0OiA4NzgzMn0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0
KCdjb21taXRfc2V0X2l0ZW1zJywge3NldDogNTAwLCBjb21taXQ6IDkzMTE2LCBwYXRjaF9maWxl
OiAxMDAsIHJlcXVpcmVzX2J1aWxkOiB0cnVlLCByb290X2ZpbGU6IDEwMX0pLAorICAgICAgICAg
ICAgZGIuaW5zZXJ0KCdjb21taXRfc2V0cycsIHtpZDogNTAxfSksCisgICAgICAgICAgICBkYi5p
bnNlcnQoJ2NvbW1pdF9zZXRfaXRlbXMnLCB7c2V0OiA1MDEsIGNvbW1pdDogODc4MzJ9KSwKKyAg
ICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0X3NldF9pdGVtcycsIHtzZXQ6IDUwMSwgY29tbWl0
OiA5NjMzNiwgcGF0Y2hfZmlsZTogMTAyLCByZXF1aXJlc19idWlsZDogdHJ1ZX0pLAorCisgICAg
ICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdF9zZXRzJywge2lkOiA2MDB9KSwKKyAgICAgICAgICAg
IGRiLmluc2VydCgnY29tbWl0X3NldF9pdGVtcycsIHtzZXQ6IDYwMCwgY29tbWl0OiA4NzgzMn0p
LAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRfc2V0X2l0ZW1zJywge3NldDogNjAwLCBj
b21taXQ6IDkzMTE2LCBwYXRjaF9maWxlOiAxMDAsIHJlcXVpcmVzX2J1aWxkOiB0cnVlfSksCisg
ICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdF9zZXRzJywge2lkOiA2MDF9KSwKKyAgICAgICAg
ICAgIGRiLmluc2VydCgnY29tbWl0X3NldF9pdGVtcycsIHtzZXQ6IDYwMSwgY29tbWl0OiA4Nzgz
Mn0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRfc2V0X2l0ZW1zJywge3NldDogNjAx
LCBjb21taXQ6IDk2MzM2LCBwYXRjaF9maWxlOiAxMDIsIHJlcXVpcmVzX2J1aWxkOiB0cnVlfSks
CisKKyAgICAgICAgICAgIGRiLmluc2VydCgnYW5hbHlzaXNfdGFza3MnLCB7aWQ6IDYwMCwgbmFt
ZTogJ2Fub3RoZXIgdGFzayd9KSwKKworICAgICAgICAgICAgZGIuaW5zZXJ0KCdhbmFseXNpc190
ZXN0X2dyb3VwcycsIHtpZDogNzAwLCB0YXNrOiA2MDAsIG5hbWU6ICd0ZXN0IHdpdGggcm9vdCBi
dWlsdCcsIGluaXRpYWxfcmVwZXRpdGlvbl9jb3VudDogMSwgbmVlZHNfbm90aWZpY2F0aW9uOiBu
ZWVkc05vdGlmaWNhdGlvbn0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1ZXN0
cycsIHtpZDogODAwLCBzdGF0dXM6IHN0YXR1c0xpc3RbMF0sIHRyaWdnZXJhYmxlOiAxMDAwLCBy
ZXBvc2l0b3J5X2dyb3VwOiAyMDAxLCBwbGF0Zm9ybTogNjUsIGdyb3VwOiA3MDAsIG9yZGVyOiAt
MiwgY29tbWl0X3NldDogNTAwLCB1cmw6ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8x
J30pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1ZXN0cycsIHtpZDogODAxLCBz
dGF0dXM6IHN0YXR1c0xpc3RbMV0sIHRyaWdnZXJhYmxlOiAxMDAwLCByZXBvc2l0b3J5X2dyb3Vw
OiAyMDAxLCBwbGF0Zm9ybTogNjUsIGdyb3VwOiA3MDAsIG9yZGVyOiAtMSwgY29tbWl0X3NldDog
NTAxfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2J1aWxkX3JlcXVlc3RzJywge2lkOiA4MDIs
IHN0YXR1czogc3RhdHVzTGlzdFsyXSwgdHJpZ2dlcmFibGU6IDEwMDAsIHJlcG9zaXRvcnlfZ3Jv
dXA6IDIwMDEsIHBsYXRmb3JtOiA2NSwgdGVzdDogMjAwLCBncm91cDogNzAwLCBvcmRlcjogMCwg
Y29tbWl0X3NldDogNTAwfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2J1aWxkX3JlcXVlc3Rz
Jywge2lkOiA4MDMsIHN0YXR1czogc3RhdHVzTGlzdFszXSwgdHJpZ2dlcmFibGU6IDEwMDAsIHJl
cG9zaXRvcnlfZ3JvdXA6IDIwMDEsIHBsYXRmb3JtOiA2NSwgdGVzdDogMjAwLCBncm91cDogNzAw
LCBvcmRlcjogMSwgY29tbWl0X3NldDogNTAxfSksCisKKyAgICAgICAgICAgIGRiLmluc2VydCgn
YW5hbHlzaXNfdGVzdF9ncm91cHMnLCB7aWQ6IDcwMSwgdGFzazogNjAwLCBuYW1lOiAndGVzdCB3
aWxsIHJldXNlIHJvb3QnLCBpbml0aWFsX3JlcGV0aXRpb25fY291bnQ6IDEsIG5lZWRzX25vdGlm
aWNhdGlvbjogbmVlZHNOb3RpZmljYXRpb259KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnYnVp
bGRfcmVxdWVzdHMnLCB7aWQ6IDkwMCwgc3RhdHVzOiBzdGF0dXNMaXN0WzRdLCB0cmlnZ2VyYWJs
ZTogMTAwMCwgcmVwb3NpdG9yeV9ncm91cDogMjAwMSwgcGxhdGZvcm06IDY1LCBncm91cDogNzAx
LCBvcmRlcjogLTIsIGNvbW1pdF9zZXQ6IDYwMH0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdi
dWlsZF9yZXF1ZXN0cycsIHtpZDogOTAxLCBzdGF0dXM6IHN0YXR1c0xpc3RbNV0sIHRyaWdnZXJh
YmxlOiAxMDAwLCByZXBvc2l0b3J5X2dyb3VwOiAyMDAxLCBwbGF0Zm9ybTogNjUsIGdyb3VwOiA3
MDEsIG9yZGVyOiAtMSwgY29tbWl0X3NldDogNjAxfSksCisgICAgICAgICAgICBkYi5pbnNlcnQo
J2J1aWxkX3JlcXVlc3RzJywge2lkOiA5MDIsIHN0YXR1czogc3RhdHVzTGlzdFs2XSwgdHJpZ2dl
cmFibGU6IDEwMDAsIHJlcG9zaXRvcnlfZ3JvdXA6IDIwMDEsIHBsYXRmb3JtOiA2NSwgdGVzdDog
MjAwLCBncm91cDogNzAxLCBvcmRlcjogMCwgY29tbWl0X3NldDogNjAwfSksCisgICAgICAgICAg
ICBkYi5pbnNlcnQoJ2J1aWxkX3JlcXVlc3RzJywge2lkOiA5MDMsIHN0YXR1czogc3RhdHVzTGlz
dFs3XSwgdHJpZ2dlcmFibGU6IDEwMDAsIHJlcG9zaXRvcnlfZ3JvdXA6IDIwMDEsIHBsYXRmb3Jt
OiA2NSwgdGVzdDogMjAwLCBncm91cDogNzAxLCBvcmRlcjogMSwgY29tbWl0X3NldDogNjAxfSks
CiAgICAgICAgIF0pOwogICAgIH0sCiAgICAgYWRkQW5vdGhlclRyaWdnZXJhYmxlKGRiKSB7CkBA
IC0xNzIsNiArMjE0LDQ1IEBAIE1vY2tEYXRhID0gewogICAgICAgICAgICAgZGIuaW5zZXJ0KCdi
dWlsZF9yZXF1ZXN0cycsIHtpZDogNzA3LCBzdGF0dXM6IHN0YXR1c0xpc3RbM10sIHRyaWdnZXJh
YmxlOiAxMDAwLCByZXBvc2l0b3J5X2dyb3VwOiAyMDAxLCBwbGF0Zm9ybTogNjUsIHRlc3Q6IDIw
MCwgZ3JvdXA6IDkwMCwgb3JkZXI6IDMsIGNvbW1pdF9zZXQ6IDQwNH0pLAogICAgICAgICBdKTsK
ICAgICB9LAorICAgIGFkZFR3b01vY2tUZXN0R3JvdXBXaXRoT3duZWRDb21taXRzKGRiKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgIHRoaXMuYWRkTW9j
a0NvbmZpZ3VyYXRpb24oZGIpLAorICAgICAgICAgICAgdGhpcy5hZGRBbm90aGVyVHJpZ2dlcmFi
bGUoZGIpLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdhbmFseXNpc190YXNrcycsIHtpZDogMTA4
MCwgcGxhdGZvcm06IDY1LCBtZXRyaWM6IDMwMCwgbmFtZTogJ3NvbWUgdGFzayB3aXRoIGNvbXBv
bmVudCB0ZXN0JywKKyAgICAgICAgICAgICAgICBzdGFydF9ydW46IDgwMSwgc3RhcnRfcnVuX3Rp
bWU6ICcyMDE1LTEwLTI3VDEyOjA1OjI3LjFaJywKKyAgICAgICAgICAgICAgICBlbmRfcnVuOiA4
MDEsIGVuZF9ydW5fdGltZTogJzIwMTUtMTAtMjdUMTI6MDU6MjcuMVonfSksCisKKyAgICAgICAg
ICAgIGRiLmluc2VydCgndXBsb2FkZWRfZmlsZXMnLCB7aWQ6IDEwMSwgZmlsZW5hbWU6ICdyb290
LTEwMScsIHNpemU6IDEsIHNoYTI1NjogY3J5cHRvLmNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0
ZSgncm9vdC0xMDEnKS5kaWdlc3QoJ2hleCcpLCB9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgn
YW5hbHlzaXNfdGVzdF9ncm91cHMnLCB7aWQ6IDkwMCwgdGFzazogMTA4MCwgbmFtZTogJ3NvbWUg
dGVzdCBncm91cCB3aXRoIGNvbXBvbmVudCB0ZXN0KHJvb3QgYnVpbHQpJywgaW5pdGlhbF9yZXBl
dGl0aW9uX2NvdW50OiAxfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdF9zZXRzJywg
e2lkOiA0MDN9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0X3NldF9pdGVtcycsIHtz
ZXQ6IDQwMywgY29tbWl0OiA4NzgzMn0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRf
c2V0X2l0ZW1zJywge3NldDogNDAzLCBjb21taXQ6IDkzMTE2fSksCisgICAgICAgICAgICBkYi5p
bnNlcnQoJ2NvbW1pdF9zZXRfaXRlbXMnLCB7c2V0OiA0MDMsIGNvbW1pdDogMTc5NywgY29tbWl0
X293bmVyOiA5MzExNiwgcmVxdWlyZXNfYnVpbGQ6IHRydWUsIHJvb3RfZmlsZTogMTAxfSksCisg
ICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdF9zZXRzJywge2lkOiA0MDR9KSwKKyAgICAgICAg
ICAgIGRiLmluc2VydCgnY29tbWl0X3NldF9pdGVtcycsIHtzZXQ6IDQwNCwgY29tbWl0OiA4Nzgz
Mn0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRfc2V0X2l0ZW1zJywge3NldDogNDA0
LCBjb21taXQ6IDk2MzM2fSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdF9zZXRfaXRl
bXMnLCB7c2V0OiA0MDQsIGNvbW1pdDogMjAxNywgY29tbWl0X293bmVyOiA5NjMzNiwgcmVxdWly
ZXNfYnVpbGQ6IHRydWV9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRfcmVxdWVzdHMn
LCB7aWQ6IDcwNCwgc3RhdHVzOiAnY29tcGxldGVkJywgdHJpZ2dlcmFibGU6IDEwMDAsIHJlcG9z
aXRvcnlfZ3JvdXA6IDIwMDEsIHBsYXRmb3JtOiA2NSwgZ3JvdXA6IDkwMCwgb3JkZXI6IC0yLCBj
b21taXRfc2V0OiA0MDMsIHVybDogJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWRzLzEnfSks
CisgICAgICAgICAgICBkYi5pbnNlcnQoJ2J1aWxkX3JlcXVlc3RzJywge2lkOiA3MDUsIHN0YXR1
czogJ3BlbmRpbmcnLCB0cmlnZ2VyYWJsZTogMTAwMCwgcmVwb3NpdG9yeV9ncm91cDogMjAwMSwg
cGxhdGZvcm06IDY1LCBncm91cDogOTAwLCBvcmRlcjogLTEsIGNvbW1pdF9zZXQ6IDQwNH0pLAor
ICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWlsZF9yZXF1ZXN0cycsIHtpZDogNzA2LCBzdGF0dXM6
ICdwZW5kaW5nJywgdHJpZ2dlcmFibGU6IDEwMDAsIHJlcG9zaXRvcnlfZ3JvdXA6IDIwMDEsIHBs
YXRmb3JtOiA2NSwgdGVzdDogMjAwLCBncm91cDogOTAwLCBvcmRlcjogMCwgY29tbWl0X3NldDog
NDAzfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2J1aWxkX3JlcXVlc3RzJywge2lkOiA3MDcs
IHN0YXR1czogJ3BlbmRpbmcnLCB0cmlnZ2VyYWJsZTogMTAwMCwgcmVwb3NpdG9yeV9ncm91cDog
MjAwMSwgcGxhdGZvcm06IDY1LCB0ZXN0OiAyMDAsIGdyb3VwOiA5MDAsIG9yZGVyOiAxLCBjb21t
aXRfc2V0OiA0MDR9KSwKKworICAgICAgICAgICAgZGIuaW5zZXJ0KCdhbmFseXNpc190ZXN0X2dy
b3VwcycsIHtpZDogOTAxLCB0YXNrOiAxMDgwLCBuYW1lOiAnc29tZSB0ZXN0IGdyb3VwIHdpdGgg
Y29tcG9uZW50IHRlc3QnLCBpbml0aWFsX3JlcGV0aXRpb25fY291bnQ6IDF9KSwKKyAgICAgICAg
ICAgIGRiLmluc2VydCgnY29tbWl0X3NldHMnLCB7aWQ6IDQwNX0pLAorICAgICAgICAgICAgZGIu
aW5zZXJ0KCdjb21taXRfc2V0X2l0ZW1zJywge3NldDogNDA1LCBjb21taXQ6IDg3ODMyfSksCisg
ICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdF9zZXRfaXRlbXMnLCB7c2V0OiA0MDUsIGNvbW1p
dDogOTMxMTZ9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0X3NldF9pdGVtcycsIHtz
ZXQ6IDQwNSwgY29tbWl0OiAxNzk3LCBjb21taXRfb3duZXI6IDkzMTE2LCByZXF1aXJlc19idWls
ZDogdHJ1ZX0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdjb21taXRfc2V0cycsIHtpZDogNDA2
fSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2NvbW1pdF9zZXRfaXRlbXMnLCB7c2V0OiA0MDYs
IGNvbW1pdDogODc4MzJ9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnY29tbWl0X3NldF9pdGVt
cycsIHtzZXQ6IDQwNiwgY29tbWl0OiA5NjMzNn0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdj
b21taXRfc2V0X2l0ZW1zJywge3NldDogNDA2LCBjb21taXQ6IDIwMTcsIGNvbW1pdF9vd25lcjog
OTYzMzYsIHJlcXVpcmVzX2J1aWxkOiB0cnVlfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ2J1
aWxkX3JlcXVlc3RzJywge2lkOiA3MDgsIHN0YXR1czogJ3BlbmRpbmcnLCB0cmlnZ2VyYWJsZTog
MTAwMCwgcmVwb3NpdG9yeV9ncm91cDogMjAwMSwgcGxhdGZvcm06IDY1LCBncm91cDogOTAxLCBv
cmRlcjogLTIsIGNvbW1pdF9zZXQ6IDQwNX0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCdidWls
ZF9yZXF1ZXN0cycsIHtpZDogNzA5LCBzdGF0dXM6ICdwZW5kaW5nJywgdHJpZ2dlcmFibGU6IDEw
MDAsIHJlcG9zaXRvcnlfZ3JvdXA6IDIwMDEsIHBsYXRmb3JtOiA2NSwgZ3JvdXA6IDkwMSwgb3Jk
ZXI6IC0xLCBjb21taXRfc2V0OiA0MDZ9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgnYnVpbGRf
cmVxdWVzdHMnLCB7aWQ6IDcxMCwgc3RhdHVzOiAncGVuZGluZycsIHRyaWdnZXJhYmxlOiAxMDAw
LCByZXBvc2l0b3J5X2dyb3VwOiAyMDAxLCBwbGF0Zm9ybTogNjUsIHRlc3Q6IDIwMCwgZ3JvdXA6
IDkwMSwgb3JkZXI6IDAsIGNvbW1pdF9zZXQ6IDQwNX0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0
KCdidWlsZF9yZXF1ZXN0cycsIHtpZDogNzExLCBzdGF0dXM6ICdwZW5kaW5nJywgdHJpZ2dlcmFi
bGU6IDEwMDAsIHJlcG9zaXRvcnlfZ3JvdXA6IDIwMDEsIHBsYXRmb3JtOiA2NSwgdGVzdDogMjAw
LCBncm91cDogOTAxLCBvcmRlcjogMSwgY29tbWl0X3NldDogNDA2fSksCisgICAgICAgIF0pOwor
ICAgIH0sCiAgICAgYWRkVGVzdEdyb3VwV2l0aE93bmVyQ29tbWl0Tm90SW5Db21taXRTZXQoZGIp
CiAgICAgewogICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoWwpAQCAtMjE5LDYgKzMwMCw1MSBA
QCBNb2NrRGF0YSA9IHsKICAgICAgICAgICAgIF0KICAgICAgICAgfQogICAgIH0sCisgICAgbW9j
a1Rlc3RTeW5jQ29uZmlnV2l0aFBhdGNoQWNjZXB0aW5nQnVpbGRlcjogZnVuY3Rpb24gKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAndHJpZ2dlcmFibGVOYW1lJzogJ2J1
aWxkLXdlYmtpdCcsCisgICAgICAgICAgICAnbG9va2JhY2tDb3VudCc6IDIsCisgICAgICAgICAg
ICAnYnVpbGRSZXF1ZXN0QXJndW1lbnQnOiAnYnVpbGQtcmVxdWVzdC1pZCcsCisgICAgICAgICAg
ICAncmVwb3NpdG9yeUdyb3Vwcyc6IHsKKyAgICAgICAgICAgICAgICAnd2Via2l0LXN2bic6IHsK
KyAgICAgICAgICAgICAgICAgICAgJ3JlcG9zaXRvcmllcyc6IHsnV2ViS2l0JzogeydhY2NlcHRz
UGF0Y2gnOiB0cnVlfSwgJ21hY09TJzoge319LAorICAgICAgICAgICAgICAgICAgICAnYWNjZXB0
c1Jvb3RzJzogdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgJ3Rlc3RQcm9wZXJ0aWVzJzogewor
ICAgICAgICAgICAgICAgICAgICAgICAgJ29zJzogeydyZXZpc2lvbic6ICdtYWNPUyd9LAorICAg
ICAgICAgICAgICAgICAgICAgICAgJ3drJzogeydyZXZpc2lvbic6ICdXZWJLaXQnfSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICdyb290cyc6IHsicm9vdHMiOiB7fX0sCisgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICdidWlsZFByb3BlcnRpZXMnOiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAnb3MnOiB7J3JldmlzaW9uJzogJ21hY09TJ30sCisgICAgICAg
ICAgICAgICAgICAgICAgICAnd2snOiB7J3JldmlzaW9uJzogJ1dlYktpdCd9LAorICAgICAgICAg
ICAgICAgICAgICAgICAgJ3drLXBhdGNoJzogeydwYXRjaCc6ICdXZWJLaXQnfSwKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICAndHlwZXMnOiB7CisgICAgICAgICAgICAgICAgJ3NvbWUtdGVzdCc6IHsndGVzdCc6IFsn
c29tZSB0ZXN0J119CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2J1aWxkZXJzJzogewor
ICAgICAgICAgICAgICAgICd0ZXN0ZXInOiB7J2J1aWxkZXInOiAnc29tZSB0ZXN0ZXInLCBwcm9w
ZXJ0aWVzOiB7Zm9yY2VzY2hlZHVsZXI6ICdmb3JjZS1zb21lLXRlc3Rlcid9fSwKKyAgICAgICAg
ICAgICAgICAnYnVpbGRlci0xJzogeydidWlsZGVyJzogJ3NvbWUtYnVpbGRlci0xJywgcHJvcGVy
dGllczoge2ZvcmNlc2NoZWR1bGVyOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0sCisgICAgICAg
ICAgICAgICAgJ2J1aWxkZXItMic6IHsnYnVpbGRlcic6ICdzb21lIGJ1aWxkZXIgMicsIHByb3Bl
cnRpZXM6IHtmb3JjZXNjaGVkdWxlcjogJ2ZvcmNlLXNvbWUtYnVpbGRlci0yJ319LAorICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgICd0ZXN0Q29uZmlndXJhdGlvbnMnOiBbCisgICAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAncGxhdGZvcm1zJzogWydzb21lIHBsYXRmb3Jt
J10sCisgICAgICAgICAgICAgICAgICAgICd0eXBlcyc6IFsnc29tZS10ZXN0J10sCisgICAgICAg
ICAgICAgICAgICAgICdidWlsZGVycyc6IFsndGVzdGVyJ10sCisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICdidWlsZENvbmZpZ3VyYXRpb25zJzogWworICAg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ3BsYXRmb3Jtcyc6IFsnc29tZSBw
bGF0Zm9ybSddLAorICAgICAgICAgICAgICAgICAgICAnYnVpbGRlcnMnOiBbJ2J1aWxkZXItMScs
ICdidWlsZGVyLTInXSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAg
IH0KKyAgICB9LAogICAgIG1vY2tUZXN0U3luY0NvbmZpZ1dpdGhUd29CdWlsZGVyczogZnVuY3Rp
b24gKCkKICAgICB7CiAgICAgICAgIHJldHVybiB7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3Rz
LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1idWlsZGJv
dC10cmlnZ2VyYWJsZS10ZXN0cy5qcwppbmRleCA5YzNjYWI0NDRiOTAzOTc3ZmJmOWYxNDhiOTQ4
MWIzYzVmNTQ3NGMyLi4xMDgyYTY4MmIyMmI0ZGE0Y2MyZDIzOTcyMTA5M2Q5ZTc3ZjU5ZmQ1IDEw
MDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1
aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanMKQEAgLTk0
Niw2ICs5NDYsMzAyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSgn
T0snKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxk
IHJldXNlIHRoZSByb290cyBmcm9tIGEgY29tcGxldGVkIGJ1aWxkIHJlcXVlc3Qgd2l0aCB0aGUg
c2FtZSBjb21taXQgc2V0JywgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgYXdhaXQgTW9ja0Rh
dGEuYWRkTW9ja0J1aWxkUmVxdWVzdHNXaXRoUm9vdHMoVGVzdFNlcnZlci5kYXRhYmFzZSgpKTsK
KyAgICAgICAgICAgIGF3YWl0IE1hbmlmZXN0LmZldGNoKCk7CisgICAgICAgICAgICBjb25zdCBj
b25maWcgPSBNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRoUGF0Y2hBY2NlcHRpbmdCdWls
ZGVyKCk7CisgICAgICAgICAgICBjb25zdCBsb2dnZXIgPSBuZXcgTW9ja0xvZ2dlcjsKKyAgICAg
ICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAn
cGFzc3dvcmQnfTsKKyAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90
VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJ
LCBzbGF2ZUluZm8sIGxvZ2dlcik7CisgICAgICAgICAgICBjb25zdCBzeW5jUHJvbWlzZSA9IHRy
aWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgp
KTsKKyAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRh
Lm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNl
dCgpOworICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwor
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7
CisgICAgICAgICAgICBsZXQgYnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDgw
MCk7CisgICAgICAgICAgICBsZXQgYW5vdGhlckJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5m
aW5kQnlJZCg5MDApOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0
dXMoKSwgJ2NvbXBsZXRlZCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzKCksICdwZW5kaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
YnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMv
MScpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVz
VXJsKCksIG51bGwpOworICAgICAgICAgICAgbGV0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5j
b21taXRTZXQoKTsKKyAgICAgICAgICAgIGxldCBhbm90aGVyQ29tbWl0U2V0ID0gYW5vdGhlckJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgICAgIGFzc2VydC5vayhjb21taXRTZXQu
ZXF1YWxzSWdub3JpbmdSb290KGFub3RoZXJDb21taXRTZXQpKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5vayghY29tbWl0U2V0LmVxdWFscyhhbm90aGVyQ29tbWl0U2V0KSk7CisKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVy
bCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CisgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlc2V0KCk7CisgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3Rl
cicsIDIpKTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7
fSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5t
ZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScs
IDIpKTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1
aWxkcyc6IFtNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAxfSks
IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAwfSldfSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnVybCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsK
KyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CisgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CisgICAgICAgICAgICBhd2FpdCBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLnJlc29sdmUoe30pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUtYnVpbGRlci0xJykpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXIgMicpKTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0u
cmVzb2x2ZSh7fSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CisgICAgICAg
ICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQn
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVy
bCwgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpKTsKKyAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lLWJ1aWxkZXItMScsIDIpKTsKKyAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7J2J1aWxkcyc6IFtNb2NrRGF0YS5y
dW5uaW5nQnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAxfSksIE1vY2tEYXRhLmZpbmlzaGVk
QnVpbGREYXRhKHtidWlsZFJlcXVlc3RJZDogODAwfSldfSk7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXIgMicsIDIpKTsKKyAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlc2V0KCk7CisKKyAgICAgICAgICAgIGF3YWl0IHN5bmNQcm9taXNlOworICAgICAgICAg
ICAgYXdhaXQgQnVpbGRSZXF1ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUoTW9ja0RhdGEubW9ja1Rl
c3RTeW5jQ29uZmlnV2l0aFBhdGNoQWNjZXB0aW5nQnVpbGRlcigpLnRyaWdnZXJhYmxlTmFtZSk7
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7
CisgICAgICAgICAgICBidWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoODAwKTsK
KyAgICAgICAgICAgIGFub3RoZXJCdWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
OTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzKCksICdj
b21wbGV0ZWQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCAnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpZHMvMScpOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGFub3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
ICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgIH0pOworCisgICAg
ICAgIGl0KCdzaG91bGQgZGVmZXIgc2NoZWR1bGluZyBhIGJ1aWxkIHJlcXVlc3QgaWYgdGhlcmUg
aXMgYSAicnVubmluZyIgYnVpbGQgcmVxdWVzdCB3aXRoIHNhbWUgY29tbWl0IHNldCwgYnV0IHNo
b3VsZCBzY2hlZHVsZSB0aGUgYnVpbGQgcmVxdWVzdCBpZiAicnVubmluZyIgYnVpbGQgcmVxdWVz
dCB3aXRoIHNhbWUgY29tbWl0IHNldCBmYWlscyBsYXRlciBvbicsIGFzeW5jICgpID0+IHsKKyAg
ICAgICAgICAgIGF3YWl0IE1vY2tEYXRhLmFkZE1vY2tCdWlsZFJlcXVlc3RzV2l0aFJvb3RzKFRl
c3RTZXJ2ZXIuZGF0YWJhc2UoKSwgIFsncnVubmluZycsICdzY2hlZHVsZWQnLCAncGVuZGluZycs
ICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnXSk7
CisgICAgICAgICAgICBhd2FpdCBNYW5pZmVzdC5mZXRjaCgpOworICAgICAgICAgICAgY29uc3Qg
Y29uZmlnID0gTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFBhdGNoQWNjZXB0aW5nQnVp
bGRlcigpOworICAgICAgICAgICAgY29uc3QgbG9nZ2VyID0gbmV3IE1vY2tMb2dnZXI7CisgICAg
ICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDog
J3Bhc3N3b3JkJ307CisgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJv
dFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQ
SSwgc2xhdmVJbmZvLCBsb2dnZXIpOworICAgICAgICAgICAgY29uc3Qgc3luY1Byb21pc2UgPSB0
cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2Uo
KSk7CisgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0
YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVz
ZXQoKTsKKyAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
KworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDgp
OworICAgICAgICAgICAgbGV0IGJ1aWxkUmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg4
MDApOworICAgICAgICAgICAgbGV0IGFub3RoZXJCdWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoOTAwKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3Rh
dHVzKCksICdydW5uaW5nJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChi
dWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlkcy8x
Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgbnVsbCk7CisgICAgICAgICAgICBsZXQgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOworICAgICAgICAgICAgbGV0IGFub3RoZXJDb21taXRTZXQgPSBhbm90aGVyQnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKGNvbW1pdFNldC5l
cXVhbHNJZ25vcmluZ1Jvb3QoYW5vdGhlckNvbW1pdFNldCkpOworICAgICAgICAgICAgYXNzZXJ0
Lm9rKCFjb21taXRTZXQuZXF1YWxzKGFub3RoZXJDb21taXRTZXQpKTsKKworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcp
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJs
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0RhdGEucGVuZGlu
Z0J1aWxkKHtidWlsZFJlcXVlc3RJZDogODAxfSldfSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXNldCgpOworICAgICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXIn
LCAyKSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30p
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0
aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAy
KSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWls
ZHMnOiBbTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMH0pXX0p
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0
aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAy
KSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwor
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOworICAgICAgICAgICAgYXdhaXQgTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJykpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lLWJ1aWxkZXItMScpKTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnc29tZSBidWlsZGVyIDInKSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnJlc29sdmUoe30pOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOworICAg
ICAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAn
R0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS51cmwsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSk7CisgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoe30pOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmws
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnLCAyKSk7CisgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoeydidWlsZHMnOiBbTW9ja0Rh
dGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMX0pLCBNb2NrRGF0YS5maW5p
c2hlZEJ1aWxkRGF0YSh7YnVpbGRSZXF1ZXN0SWQ6IDgwMH0pXX0pOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyIDInLCAyKSk7CisgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOworICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOworCisgICAgICAgICAgICBhd2FpdCBzeW5jUHJvbWlzZTsKKyAgICAg
ICAgICAgIGF3YWl0IEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1v
Y2tUZXN0U3luY0NvbmZpZ1dpdGhQYXRjaEFjY2VwdGluZ0J1aWxkZXIoKS50cmlnZ2VyYWJsZU5h
bWUpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgs
IDgpOworICAgICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDgw
MCk7CisgICAgICAgICAgICBhbm90aGVyQnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDkwMCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1cygp
LCAnZmFpbGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZS1idWlsZGVyLTEnLCAx
MjMpKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChhbm90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c1VybCgpLCBudWxsKTsKKworICAgICAgICAgICAgY29uc3Qgc2Vjb25kU3luY1Byb21pc2UgPSB0
cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2Uo
KSk7CisgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0
YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVz
ZXQoKTsKKyAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
KworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3Rlcicp
KTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7Cisg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51
cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKKyAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgdGVzdGVyJywgMikpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUtYnVpbGRlci0xJywgMikpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVx
dWVzdElkOiA4MDF9KV19KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKKyAgICAg
ICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ1BP
U1QnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
LnVybCwgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLXNvbWUtYnVpbGRlci0yJyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0uZGF0
YSwgeydpZCc6IDkwMCwgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJh
bXMnOgorICAgICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4
NCcsICd3ay1wYXRjaCc6ICdodHRwOi8vbG9jYWxob3N0OjgxODAvYXBpL3VwbG9hZGVkLWZpbGUv
MTAwLnR4dCcsCisgICAgICAgICAgICAgICAgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnOTAwJywgJ2Zv
cmNlc2NoZWR1bGVyJzogJ2ZvcmNlLXNvbWUtYnVpbGRlci0yJ319KTsKKyAgICAgICAgfSk7CisK
KyAgICAgICAgaXQoJ3Nob3VsZCBub3QgcmV1c2UgdGhlIHJvb3Qgd2hlbiBhIGJ1aWxkIHJlcXVl
c3Qgd2l0aCBzYW1lIGNvbW1pdCBzZXQgaXMgYXZhaWFsYmxlIGJ1dCB0aGUgYnVpbGQgcmVxdWVz
dCBoYXMgYmVlbiBzY2hlZHVsZWQnLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBhd2FpdCBN
b2NrRGF0YS5hZGRNb2NrQnVpbGRSZXF1ZXN0c1dpdGhSb290cyhUZXN0U2VydmVyLmRhdGFiYXNl
KCkpOworICAgICAgICAgICAgYXdhaXQgTWFuaWZlc3QuZmV0Y2goKTsKKyAgICAgICAgICAgIGNv
bnN0IGNvbmZpZyA9IE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhQYXRjaEFjY2VwdGlu
Z0J1aWxkZXIoKTsKKyAgICAgICAgICAgIGNvbnN0IGxvZ2dlciA9IG5ldyBNb2NrTG9nZ2VyOwor
ICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dv
cmQ6ICdwYXNzd29yZCd9OworICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBuZXcgQnVp
bGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1v
dGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKKyAgICAgICAgICAgIGNvbnN0IHN5bmNQcm9taXNl
ID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNP
bmNlKCkpOworICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9j
a0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlc2V0KCk7CisgICAgICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3Ro
LCA4KTsKKyAgICAgICAgICAgIGxldCBidWlsZFJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuZmluZEJ5
SWQoODAwKTsKKyAgICAgICAgICAgIGxldCBhbm90aGVyQnVpbGRSZXF1ZXN0ID0gQnVpbGRSZXF1
ZXN0LmZpbmRCeUlkKDkwMCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRSZXF1ZXN0
LnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhl
ckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3BlbmRpbmcnKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9i
dWlkcy8xJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5z
dGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgICAgICBsZXQgY29tbWl0U2V0ID0gYnVpbGRSZXF1
ZXN0LmNvbW1pdFNldCgpOworICAgICAgICAgICAgbGV0IGFub3RoZXJDb21taXRTZXQgPSBhbm90
aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAgICAgICAgICAgYXNzZXJ0Lm9rKGNvbW1p
dFNldC5lcXVhbHNJZ25vcmluZ1Jvb3QoYW5vdGhlckNvbW1pdFNldCkpOworICAgICAgICAgICAg
YXNzZXJ0Lm9rKCFjb21taXRTZXQuZXF1YWxzKGFub3RoZXJDb21taXRTZXQpKTsKKworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwg
J0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0udXJsLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVzZXQoKTsKKyAgICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUg
dGVzdGVyJywgMikpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNv
bHZlKHt9KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRl
ci0xJywgMikpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZl
KHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4
MDF9KSwgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDB9KV19
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1l
dGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywg
MikpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsK
KyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKKyAgICAgICAgICAgIGF3YWl0IE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpKTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZS1idWlsZGVyLTEnKSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnJlc29sdmUoe30pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlciAyJykpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKKyAg
ICAgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwg
J0dFVCcpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0udXJsLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMikpOworICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKHt9KTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcp
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJs
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUtYnVpbGRlci0xJywgMikpOworICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tE
YXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDF9KSwgTW9ja0RhdGEuZmlu
aXNoZWRCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA4MDB9KV19KTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCBNb2Nr
RGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlciAyJywgMikpOworICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHsnYnVpbGRzJzogW01vY2tEYXRhLnJ1
bm5pbmdCdWlsZERhdGEoe2J1aWxkUmVxdWVzdElkOiA5MDAsIGJ1aWxkZXJJZDogM30pXX0pOwor
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOworCisgICAgICAgICAgICBhd2FpdCBz
eW5jUHJvbWlzZTsKKyAgICAgICAgICAgIGF3YWl0IEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdn
ZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhQYXRjaEFjY2VwdGluZ0J1aWxk
ZXIoKS50cmlnZ2VyYWJsZU5hbWUpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVx
dWVzdC5hbGwoKS5sZW5ndGgsIDgpOworICAgICAgICAgICAgYnVpbGRSZXF1ZXN0ID0gQnVpbGRS
ZXF1ZXN0LmZpbmRCeUlkKDgwMCk7CisgICAgICAgICAgICBhbm90aGVyQnVpbGRSZXF1ZXN0ID0g
QnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDkwMCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1cygpLCAnY29tcGxldGVkJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoYW5vdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksICdodHRwOi8vYnVpbGQud2Vi
a2l0Lm9yZy9idWlkcy8xJyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYW5vdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnLyMvYnVpbGRlcnMv
My9idWlsZHMvMTI0Jyk7CisgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAgZGVzY3JpYmUoJ3Vw
ZGF0ZVRyaWdnZXJhYmxlcycsICgpID0+IHsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcwppbmRleCA5ZWVkMTA2
NTVhMWRlN2QzYWFjMDkxMGEzZWQ5MzdkYTRjMzVjYzkyLi42YmE5ZDNmOTlmMjhmYmMxNDZhNTIy
ZDNkMDNhODNlNDFjODc3YjQ5IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
dG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCkBAIC03Nyw0MiArNzcsNTYg
QEAgY2xhc3MgQnVpbGRib3RUcmlnZ2VyYWJsZSB7CiAgICAgICAgICAgICB9KX0pOwogICAgIH0K
IAotICAgIHN5bmNPbmNlKCkKKyAgICBhc3luYyBzeW5jT25jZSgpCiAgICAgewotICAgICAgICBs
ZXQgc3luY2VyTGlzdCA9IHRoaXMuX3N5bmNlcnM7Ci0gICAgICAgIGxldCBidWlsZFJlcWV1c3Rz
QnlHcm91cCA9IG5ldyBNYXA7Ci0KICAgICAgICAgdGhpcy5fbG9nZ2VyLmxvZyhgRmV0Y2hpbmcg
YnVpbGQgcmVxdWVzdHMgZm9yICR7dGhpcy5fbmFtZX0uLi5gKTsKLSAgICAgICAgbGV0IHZhbGlk
UmVxdWVzdHM7Ci0gICAgICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJs
ZSh0aGlzLl9uYW1lKS50aGVuKChidWlsZFJlcXVlc3RzKSA9PiB7Ci0gICAgICAgICAgICB2YWxp
ZFJlcXVlc3RzID0gdGhpcy5fdmFsaWRhdGVSZXF1ZXN0cyhidWlsZFJlcXVlc3RzKTsKLSAgICAg
ICAgICAgIGJ1aWxkUmVxZXVzdHNCeUdyb3VwID0gQnVpbGRib3RUcmlnZ2VyYWJsZS5fdGVzdEdy
b3VwTWFwRm9yQnVpbGRSZXF1ZXN0cyhidWlsZFJlcXVlc3RzKTsKLSAgICAgICAgICAgIHJldHVy
biB0aGlzLl9wdWxsQnVpbGRib3RPbkFsbFN5bmNlcnMoYnVpbGRSZXFldXN0c0J5R3JvdXApOwot
ICAgICAgICB9KS50aGVuKCh1cGRhdGVzKSA9PiB7Ci0gICAgICAgICAgICB0aGlzLl9sb2dnZXIu
bG9nKCdTY2hlZHVsaW5nIGJ1aWxkcycpOwotICAgICAgICAgICAgY29uc3QgcHJvbWlzdExpc3Qg
PSBbXTsKLSAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cExpc3QgPSBBcnJheS5mcm9tKGJ1aWxk
UmVxZXVzdHNCeUdyb3VwLnZhbHVlcygpKS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBh
Lmdyb3VwT3JkZXIgLSBiLmdyb3VwT3JkZXI7IH0pOwotICAgICAgICAgICAgZm9yIChjb25zdCBn
cm91cCBvZiB0ZXN0R3JvdXBMaXN0KSB7Ci0gICAgICAgICAgICAgICAgY29uc3QgbmV4dFJlcXVl
c3QgPSB0aGlzLl9uZXh0UmVxdWVzdEluR3JvdXAoZ3JvdXAsIHVwZGF0ZXMpOwotICAgICAgICAg
ICAgICAgIGlmICghdmFsaWRSZXF1ZXN0cy5oYXMobmV4dFJlcXVlc3QpKQotICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5f
c2NoZWR1bGVSZXF1ZXN0SWZTbGF2ZUlzQXZhaWxhYmxlKG5leHRSZXF1ZXN0LCBncm91cC5yZXF1
ZXN0cywKLSAgICAgICAgICAgICAgICAgICAgbmV4dFJlcXVlc3QuaXNCdWlsZCgpID8gZ3JvdXAu
YnVpbGRTeW5jZXIgOiBncm91cC50ZXN0U3luY2VyLAotICAgICAgICAgICAgICAgICAgICBuZXh0
UmVxdWVzdC5pc0J1aWxkKCkgPyBncm91cC5idWlsZFNsYXZlTmFtZSA6IGdyb3VwLnRlc3RTbGF2
ZU5hbWUpOwotICAgICAgICAgICAgICAgIGlmIChwcm9taXNlKQotICAgICAgICAgICAgICAgICAg
ICBwcm9taXN0TGlzdC5wdXNoKHByb21pc2UpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
cmV0dXJuIFByb21pc2UuYWxsKHByb21pc3RMaXN0KTsKLSAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAvLyBQdWxsIGFsbCBidWlsZGJvdHMgZm9yIHRoZSBzZWNvbmQgdGltZSBz
aW5jZSB0aGUgcHJldmlvdXMgc3RlcCBtYXkgaGF2ZSBzY2hlZHVsZWQgbW9yZSBidWlsZHMuCi0g
ICAgICAgICAgICByZXR1cm4gdGhpcy5fcHVsbEJ1aWxkYm90T25BbGxTeW5jZXJzKGJ1aWxkUmVx
ZXVzdHNCeUdyb3VwKTsKLSAgICAgICAgfSkudGhlbigodXBkYXRlcykgPT4gewotICAgICAgICAg
ICAgLy8gRklYTUU6IEFkZCBhIG5ldyBBUEkgdGhhdCBqdXN0IHVwZGF0ZXMgdGhlIHJlcXVlc3Rz
LgotICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3JlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoYC9h
cGkvYnVpbGQtcmVxdWVzdHMvJHt0aGlzLl9uYW1lfWAsIHsKLSAgICAgICAgICAgICAgICAnc2xh
dmVOYW1lJzogdGhpcy5fc2xhdmVJbmZvLm5hbWUsCi0gICAgICAgICAgICAgICAgJ3NsYXZlUGFz
c3dvcmQnOiB0aGlzLl9zbGF2ZUluZm8ucGFzc3dvcmQsCi0gICAgICAgICAgICAgICAgJ2J1aWxk
UmVxdWVzdFVwZGF0ZXMnOiB1cGRhdGVzfSk7Ci0gICAgICAgIH0pOworCisgICAgICAgIGNvbnN0
IGJ1aWxkUmVxdWVzdHMgPSBhd2FpdCBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZSh0
aGlzLl9uYW1lKTsKKyAgICAgICAgY29uc3QgdmFsaWRSZXF1ZXN0cyA9IHRoaXMuX3ZhbGlkYXRl
UmVxdWVzdHMoYnVpbGRSZXF1ZXN0cyk7CisgICAgICAgIGNvbnN0IGJ1aWxkUmVxZXVzdHNCeUdy
b3VwID0gQnVpbGRib3RUcmlnZ2VyYWJsZS5fdGVzdEdyb3VwTWFwRm9yQnVpbGRSZXF1ZXN0cyhi
dWlsZFJlcXVlc3RzKTsKKyAgICAgICAgbGV0IHVwZGF0ZXMgPSBhd2FpdCB0aGlzLl9wdWxsQnVp
bGRib3RPbkFsbFN5bmNlcnMoYnVpbGRSZXFldXN0c0J5R3JvdXApOworICAgICAgICBsZXQgcm9v
dFJldXNlVXBkYXRlcyA9IHt9CisgICAgICAgIHRoaXMuX2xvZ2dlci5sb2coJ1NjaGVkdWxpbmcg
YnVpbGRzJyk7CisgICAgICAgIGNvbnN0IHByb21pc2VMaXN0ID0gW107CisgICAgICAgIGNvbnN0
IHRlc3RHcm91cExpc3QgPSBBcnJheS5mcm9tKGJ1aWxkUmVxZXVzdHNCeUdyb3VwLnZhbHVlcygp
KS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBhLmdyb3VwT3JkZXIgLSBiLmdyb3VwT3Jk
ZXI7IH0pOworICAgICAgICBmb3IgKGNvbnN0IGdyb3VwIG9mIHRlc3RHcm91cExpc3QpIHsKKyAg
ICAgICAgICAgIGNvbnN0IG5leHRSZXF1ZXN0ID0gdGhpcy5fbmV4dFJlcXVlc3RJbkdyb3VwKGdy
b3VwLCB1cGRhdGVzKTsKKyAgICAgICAgICAgIGlmICghdmFsaWRSZXF1ZXN0cy5oYXMobmV4dFJl
cXVlc3QpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgcHJvbWlzZUxp
c3QucHVzaCh0aGlzLl9zY2hlZHVsZVJlcXVlc3QoZ3JvdXAsIG5leHRSZXF1ZXN0LCByb290UmV1
c2VVcGRhdGVzKSk7CisgICAgICAgIH0KKyAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlz
ZUxpc3QpOworICAgICAgICB1cGRhdGVzID0gYXdhaXQgdGhpcy5fcHVsbEJ1aWxkYm90T25BbGxT
eW5jZXJzKGJ1aWxkUmVxZXVzdHNCeUdyb3VwKTsKKworICAgICAgICAvLyByb290UmV1c2VVcGRh
dGVzIHdpbGwgYmUgb3ZlcnJpZGRlbiBieSBzdGF0dXMgZmV0Y2hlZCBmcm9tIGJ1aWxkYm90Lgor
ICAgICAgICB1cGRhdGVzID0geworICAgICAgICAgICAgLi4ucm9vdFJldXNlVXBkYXRlcywKKyAg
ICAgICAgICAgIC4uLnVwZGF0ZXMKKyAgICAgICAgfTsKKyAgICAgICAgcmV0dXJuIGF3YWl0IHRo
aXMuX3JlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoYC9hcGkvYnVpbGQtcmVxdWVzdHMvJHt0aGlz
Ll9uYW1lfWAsIHsKKyAgICAgICAgICAgICdzbGF2ZU5hbWUnOiB0aGlzLl9zbGF2ZUluZm8ubmFt
ZSwKKyAgICAgICAgICAgICdzbGF2ZVBhc3N3b3JkJzogdGhpcy5fc2xhdmVJbmZvLnBhc3N3b3Jk
LAorICAgICAgICAgICAgJ2J1aWxkUmVxdWVzdFVwZGF0ZXMnOiB1cGRhdGVzfSk7CisgICAgfQor
CisgICAgYXN5bmMgX3NjaGVkdWxlUmVxdWVzdCh0ZXN0R3JvdXAsIGJ1aWxkUmVxdWVzdCwgdXBk
YXRlcykKKyAgICB7CisgICAgICAgIGNvbnN0IHJvb3RTb3VyY2VCdWlsZFJlcXVlc3QgPSBhd2Fp
dCBidWlsZFJlcXVlc3QuZmluZEJ1aWxkUmVxdWVzdFdpdGhTYW1lUm9vdHMoKTsKKyAgICAgICAg
aWYgKCFyb290U291cmNlQnVpbGRSZXF1ZXN0KSB7CisgICAgICAgICAgICByZXR1cm4gYXdhaXQg
dGhpcy5fc2NoZWR1bGVSZXF1ZXN0SWZTbGF2ZUlzQXZhaWxhYmxlKGJ1aWxkUmVxdWVzdCwgdGVz
dEdyb3VwLnJlcXVlc3RzLAorICAgICAgICAgICAgICAgIGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkg
PyB0ZXN0R3JvdXAuYnVpbGRTeW5jZXIgOiB0ZXN0R3JvdXAudGVzdFN5bmNlciwKKyAgICAgICAg
ICAgICAgICBidWlsZFJlcXVlc3QuaXNCdWlsZCgpID8gdGVzdEdyb3VwLmJ1aWxkU2xhdmVOYW1l
IDogdGVzdEdyb3VwLnRlc3RTbGF2ZU5hbWUpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFy
b290U291cmNlQnVpbGRSZXF1ZXN0Lmhhc0NvbXBsZXRlZCgpKSB7CisgICAgICAgICAgICB0aGlz
Ll9sb2dnZXIubG9nKGBGb3VuZCBidWlsZCByZXF1ZXN0ICR7cm9vdFNvdXJjZUJ1aWxkUmVxdWVz
dC5pZCgpfSBpcyBidWlsZGluZyB0aGUgc2FtZSByb290LCB3aWxsIHdhaXQgdW50aWwgaXQgZmlu
aXNoZXMuYCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB0aGlz
Ll9sb2dnZXIubG9nKGBXaWxsIHJldXNlIGV4aXN0aW5nIHJvb3QgYnVpbHQgZnJvbSAke3Jvb3RT
b3VyY2VCdWlsZFJlcXVlc3QuaWQoKX0gZm9yICR7YnVpbGRSZXF1ZXN0LmlkKCl9YCk7CisgICAg
ICAgIHVwZGF0ZXNbYnVpbGRSZXF1ZXN0LmlkKCldID0ge3N0YXR1czogJ2NvbXBsZXRlZCcsIHVy
bDogcm9vdFNvdXJjZUJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwKKyAgICAgICAgICAgIHN0YXR1
c0Rlc2NyaXB0aW9uOiByb290U291cmNlQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCks
CisgICAgICAgICAgICByb290U291cmNlQnVpbGRSZXF1ZXN0OiByb290U291cmNlQnVpbGRSZXF1
ZXN0LmlkKCl9OwogICAgIH0KIAogICAgIF92YWxpZGF0ZVJlcXVlc3RzKGJ1aWxkUmVxdWVzdHMp
CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZC1y
ZXF1ZXN0LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVp
bGQtcmVxdWVzdC10ZXN0cy5qcwppbmRleCBmMDkyOTU1YmEzNTJhN2E4YTc2ZWY4MGIwNjgyYjQy
N2U1ODRjYmYxLi5mYmNjYWM2MTE5YWZmMzM5ODUwZGEzMDQzNTY0YTI0MDQzMjRkMzQ1IDEwMDY0
NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZC1yZXF1ZXN0
LXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2J1aWxk
LXJlcXVlc3QtdGVzdHMuanMKQEAgLTMsNyArMyw5IEBACiBjb25zdCBhc3NlcnQgPSByZXF1aXJl
KCdhc3NlcnQnKTsKIAogcmVxdWlyZSgnLi4vdG9vbHMvanMvdjMtbW9kZWxzLmpzJyk7Ci1sZXQg
TW9ja01vZGVscyA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL21vY2stdjMtbW9kZWxzLmpzJykuTW9j
a01vZGVsczsKK2NvbnN0IE1vY2tNb2RlbHMgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9tb2NrLXYz
LW1vZGVscy5qcycpLk1vY2tNb2RlbHM7Citjb25zdCBOb2RlUHJpdmlsZWdlZEFQSSA9IHJlcXVp
cmUoJy4uL3Rvb2xzL2pzL3ByaXZpbGVnZWQtYXBpLmpzJykuUHJpdmlsZWdlZEFQSTsKK2NvbnN0
IE1vY2tSZW1vdGVBUEkgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9tb2NrLXJlbW90ZS1hcGkuanMn
KS5Nb2NrUmVtb3RlQVBJOwogCiBmdW5jdGlvbiBzYW1wbGVCdWlsZFJlcXVlc3REYXRhKCkKIHsK
QEAgLTU2LDkgKzU4LDUyOSBAQCBmdW5jdGlvbiBzYW1wbGVCdWlsZFJlcXVlc3REYXRhKCkKICAg
ICB9OwogfQogCitmdW5jdGlvbiBvbmVUZXN0R3JvdXAoKSB7CisgICAgcmV0dXJuIHsKKyAgICAg
ICAgInRlc3RHcm91cHMiOiBbeworICAgICAgICAgICAgImlkIjogIjIxMjgiLAorICAgICAgICAg
ICAgInRhc2siOiAiMTM3NiIsCisgICAgICAgICAgICAicGxhdGZvcm0iOiAiMzEiLAorICAgICAg
ICAgICAgIm5hbWUiOiAiQ29uZmlybSIsCisgICAgICAgICAgICAiYXV0aG9yIjogInJuaXdhIiwK
KyAgICAgICAgICAgICJjcmVhdGVkQXQiOiAxNDU4Njg4NTE0MDAwLAorICAgICAgICAgICAgImhp
ZGRlbiI6IGZhbHNlLAorICAgICAgICAgICAgIm5lZWRzTm90aWZpY2F0aW9uIjogdHJ1ZSwKKyAg
ICAgICAgICAgICJidWlsZFJlcXVlc3RzIjogWyIxNjk4NSIsICIxNjk4NiIsICIxNjk4NyIsICIx
Njk4OCJdLAorICAgICAgICAgICAgImNvbW1pdFNldHMiOiBbIjQyNTUiLCAiNDI1NiJdLAorICAg
ICAgICAgICAgIm5vdGlmaWNhdGlvblNlbnRBdCI6IG51bGwsCisgICAgICAgICAgICAnaW5pdGlh
bFJlcGV0aXRpb25Db3VudCc6IDEKKyAgICAgICAgfV0sCisgICAgICAgICJidWlsZFJlcXVlc3Rz
IjogW3sKKyAgICAgICAgICAgICJpZCI6ICIxNjk4NSIsCisgICAgICAgICAgICAidHJpZ2dlcmFi
bGUiOiAiMyIsCisgICAgICAgICAgICAidGFzayI6ICIxMzc2IiwKKyAgICAgICAgICAgICJ0ZXN0
IjogIjg0NCIsCisgICAgICAgICAgICAicGxhdGZvcm0iOiAiMzEiLAorICAgICAgICAgICAgInRl
c3RHcm91cCI6ICIyMTI4IiwKKyAgICAgICAgICAgICJvcmRlciI6ICItMiIsCisgICAgICAgICAg
ICAiY29tbWl0U2V0IjogIjQyNTUiLAorICAgICAgICAgICAgInN0YXR1cyI6ICJwZW5kaW5nIiwK
KyAgICAgICAgICAgICJ1cmwiOiBudWxsLAorICAgICAgICAgICAgImJ1aWxkIjogbnVsbCwKKyAg
ICAgICAgICAgICJjcmVhdGVkQXQiOiAxNDU4Njg4NTE0MDAwCisgICAgICAgIH0sIHsKKyAgICAg
ICAgICAgICJpZCI6ICIxNjk4NiIsCisgICAgICAgICAgICAidHJpZ2dlcmFibGUiOiAiMyIsCisg
ICAgICAgICAgICAidGFzayI6ICIxMzc2IiwKKyAgICAgICAgICAgICJ0ZXN0IjogIjg0NCIsCisg
ICAgICAgICAgICAicGxhdGZvcm0iOiAiMzEiLAorICAgICAgICAgICAgInRlc3RHcm91cCI6ICIy
MTI4IiwKKyAgICAgICAgICAgICJvcmRlciI6ICItMSIsCisgICAgICAgICAgICAiY29tbWl0U2V0
IjogIjQyNTYiLAorICAgICAgICAgICAgInN0YXR1cyI6ICJwZW5kaW5nIiwKKyAgICAgICAgICAg
ICJ1cmwiOiBudWxsLAorICAgICAgICAgICAgImJ1aWxkIjogbnVsbCwKKyAgICAgICAgICAgICJj
cmVhdGVkQXQiOiAxNDU4Njg4NTE0MDAwCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgICJpZCI6
ICIxNjk4NyIsCisgICAgICAgICAgICAidHJpZ2dlcmFibGUiOiAiMyIsCisgICAgICAgICAgICAi
dGFzayI6ICIxMzc2IiwKKyAgICAgICAgICAgICJ0ZXN0IjogIjg0NCIsCisgICAgICAgICAgICAi
cGxhdGZvcm0iOiAiMzEiLAorICAgICAgICAgICAgInRlc3RHcm91cCI6ICIyMTI4IiwKKyAgICAg
ICAgICAgICJvcmRlciI6ICIwIiwKKyAgICAgICAgICAgICJjb21taXRTZXQiOiAiNDI1NSIsCisg
ICAgICAgICAgICAic3RhdHVzIjogInBlbmRpbmciLAorICAgICAgICAgICAgInVybCI6IG51bGws
CisgICAgICAgICAgICAiYnVpbGQiOiBudWxsLAorICAgICAgICAgICAgImNyZWF0ZWRBdCI6IDE0
NTg2ODg1MTQwMDAKKyAgICAgICAgfSwgeworICAgICAgICAgICAgImlkIjogIjE2OTg4IiwKKyAg
ICAgICAgICAgICJ0cmlnZ2VyYWJsZSI6ICIzIiwKKyAgICAgICAgICAgICJ0YXNrIjogIjEzNzYi
LAorICAgICAgICAgICAgInRlc3QiOiAiODQ0IiwKKyAgICAgICAgICAgICJwbGF0Zm9ybSI6ICIz
MSIsCisgICAgICAgICAgICAidGVzdEdyb3VwIjogIjIxMjgiLAorICAgICAgICAgICAgIm9yZGVy
IjogIjMiLAorICAgICAgICAgICAgImNvbW1pdFNldCI6ICI0MjU2IiwKKyAgICAgICAgICAgICJz
dGF0dXMiOiAicGVuZGluZyIsCisgICAgICAgICAgICAidXJsIjogbnVsbCwKKyAgICAgICAgICAg
ICJidWlsZCI6IG51bGwsCisgICAgICAgICAgICAiY3JlYXRlZEF0IjogMTQ1ODY4ODUxNDAwMAor
ICAgICAgICB9XSwKKyAgICAgICAgImNvbW1pdFNldHMiOiBbeworICAgICAgICAgICAgImlkIjog
IjQyNTUiLAorICAgICAgICAgICAgInJldmlzaW9uSXRlbXMiOiBbeyJjb21taXQiOiAiODc4MzIi
fSwgeyJjb21taXQiOiAiOTMxMTYifV0sCisgICAgICAgICAgICAiY3VzdG9tUm9vdHMiOiBbXSwK
KyAgICAgICAgfSwgeworICAgICAgICAgICAgImlkIjogIjQyNTYiLAorICAgICAgICAgICAgInJl
dmlzaW9uSXRlbXMiOiBbeyJjb21taXQiOiAiODc4MzIifSwgeyJjb21taXQiOiAiOTYzMzYifV0s
CisgICAgICAgICAgICAiY3VzdG9tUm9vdHMiOiBbXSwKKyAgICAgICAgfV0sCisgICAgICAgICJj
b21taXRzIjogW3sKKyAgICAgICAgICAgICJpZCI6ICI4NzgzMiIsCisgICAgICAgICAgICAicmVw
b3NpdG9yeSI6ICI5IiwKKyAgICAgICAgICAgICJyZXZpc2lvbiI6ICIxMC4xMSAxNUEyODQiLAor
ICAgICAgICAgICAgInRpbWUiOiAwCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgICJpZCI6ICI5
MzExNiIsCisgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICIxMSIsCisgICAgICAgICAgICAicmV2
aXNpb24iOiAiMTkxNjIyIiwKKyAgICAgICAgICAgICJ0aW1lIjogMTQ0NTk0NTgxNjg3OAorICAg
ICAgICB9LCB7CisgICAgICAgICAgICAiaWQiOiAiODc4MzIiLAorICAgICAgICAgICAgInJlcG9z
aXRvcnkiOiAiOSIsCisgICAgICAgICAgICAicmV2aXNpb24iOiAiMTAuMTEgMTVBMjg0IiwKKyAg
ICAgICAgICAgICJ0aW1lIjogMAorICAgICAgICB9LCB7CisgICAgICAgICAgICAiaWQiOiAiOTYz
MzYiLAorICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiMTEiLAorICAgICAgICAgICAgInJldmlz
aW9uIjogIjE5MjczNiIsCisgICAgICAgICAgICAidGltZSI6IDE0NDgyMjUzMjU2NTAKKyAgICAg
ICAgfV0sCisgICAgICAgICJ1cGxvYWRlZEZpbGVzIjogW10sCisgICAgICAgICJzdGF0dXMiOiAi
T0siCisgICAgfTsKK30KKworZnVuY3Rpb24gdGhyZWVUZXN0R3JvdXBzKHNlY29uZFRlc3RHcm91
cE92ZXJyaWRlcywgdGhpcmRUZXN0R3JvdXBPdmVycmlkZXMpIHsKKyAgICBpZiAoIXNlY29uZFRl
c3RHcm91cE92ZXJyaWRlcykKKyAgICAgICAgc2Vjb25kVGVzdEdyb3VwT3ZlcnJpZGVzID0ge307
CisgICAgaWYgKCF0aGlyZFRlc3RHcm91cE92ZXJyaWRlcykKKyAgICAgICAgdGhpcmRUZXN0R3Jv
dXBPdmVycmlkZXMgPSB7fTsKKyAgICByZXR1cm4geworICAgICAgICAidGVzdEdyb3VwcyI6IFt7
CisgICAgICAgICAgICAiaWQiOiAiMjEyOCIsCisgICAgICAgICAgICAidGFzayI6ICIxMzc2IiwK
KyAgICAgICAgICAgICJwbGF0Zm9ybSI6ICIzMiIsCisgICAgICAgICAgICAibmFtZSI6ICJDb25m
aXJtIiwKKyAgICAgICAgICAgICJhdXRob3IiOiAicm5pd2EiLAorICAgICAgICAgICAgImNyZWF0
ZWRBdCI6IDE0NTg2ODg1MTQwMDAsCisgICAgICAgICAgICAiaGlkZGVuIjogZmFsc2UsCisgICAg
ICAgICAgICAibmVlZHNOb3RpZmljYXRpb24iOiB0cnVlLAorICAgICAgICAgICAgImJ1aWxkUmVx
dWVzdHMiOiBbIjE2OTg1IiwgIjE2OTg2IiwgIjE2OTg3IiwgIjE2OTg4Il0sCisgICAgICAgICAg
ICAiY29tbWl0U2V0cyI6IFsiNDI1NSIsICI0MjU2Il0sCisgICAgICAgICAgICAibm90aWZpY2F0
aW9uU2VudEF0IjogbnVsbCwKKyAgICAgICAgICAgICdpbml0aWFsUmVwZXRpdGlvbkNvdW50Jzog
MQorICAgICAgICB9LCB7CisgICAgICAgICAgICAiaWQiOiAiMjEyOSIsCisgICAgICAgICAgICAi
dGFzayI6IHNlY29uZFRlc3RHcm91cE92ZXJyaWRlcy50YXNrIHx8ICcxMzc2JywKKyAgICAgICAg
ICAgICJwbGF0Zm9ybSI6IHNlY29uZFRlc3RHcm91cE92ZXJyaWRlcy5wbGF0Zm9ybSB8fCAnMzIn
LAorICAgICAgICAgICAgIm5hbWUiOiAiQ29uZmlybSIsCisgICAgICAgICAgICAiYXV0aG9yIjog
InJuaXdhIiwKKyAgICAgICAgICAgICJjcmVhdGVkQXQiOiAxNDU4Njg4NTE0MDAwLAorICAgICAg
ICAgICAgImhpZGRlbiI6IGZhbHNlLAorICAgICAgICAgICAgIm5lZWRzTm90aWZpY2F0aW9uIjog
dHJ1ZSwKKyAgICAgICAgICAgICJidWlsZFJlcXVlc3RzIjogWyIxNjk4OSIsICIxNjk5MCIsICIx
Njk5MSIsICIxNjk5MiJdLAorICAgICAgICAgICAgImNvbW1pdFNldHMiOiBbIjQyNTUiLCAiNDI1
NiJdLAorICAgICAgICAgICAgIm5vdGlmaWNhdGlvblNlbnRBdCI6IG51bGwsCisgICAgICAgICAg
ICAnaW5pdGlhbFJlcGV0aXRpb25Db3VudCc6IDEKKyAgICAgICAgfSwgeworICAgICAgICAgICAg
ImlkIjogIjIxMzAiLAorICAgICAgICAgICAgInRhc2siOiB0aGlyZFRlc3RHcm91cE92ZXJyaWRl
cy50YXNrIHx8ICcxMzc2JywKKyAgICAgICAgICAgICJwbGF0Zm9ybSI6IHRoaXJkVGVzdEdyb3Vw
T3ZlcnJpZGVzLnBsYXRmb3JtIHx8ICczMicsCisgICAgICAgICAgICAibmFtZSI6ICJDb25maXJt
IiwKKyAgICAgICAgICAgICJhdXRob3IiOiAicm5pd2EiLAorICAgICAgICAgICAgImNyZWF0ZWRB
dCI6IDE0NTg2ODg1MTQwMDAsCisgICAgICAgICAgICAiaGlkZGVuIjogZmFsc2UsCisgICAgICAg
ICAgICAibmVlZHNOb3RpZmljYXRpb24iOiB0cnVlLAorICAgICAgICAgICAgImJ1aWxkUmVxdWVz
dHMiOiBbIjE2OTkzIiwgIjE2OTk0IiwgIjE2OTk1IiwgIjE2OTk2Il0sCisgICAgICAgICAgICAi
Y29tbWl0U2V0cyI6IFsiNDI1NSIsICI0MjU2Il0sCisgICAgICAgICAgICAibm90aWZpY2F0aW9u
U2VudEF0IjogbnVsbCwKKyAgICAgICAgICAgICdpbml0aWFsUmVwZXRpdGlvbkNvdW50JzogMQor
ICAgICAgICB9XSwKKyAgICAgICAgImJ1aWxkUmVxdWVzdHMiOiBbeworICAgICAgICAgICAgImlk
IjogIjE2OTg1IiwKKyAgICAgICAgICAgICJ0cmlnZ2VyYWJsZSI6ICIzIiwKKyAgICAgICAgICAg
ICJ0YXNrIjogIjEzNzYiLAorICAgICAgICAgICAgInRlc3QiOiAiODQ0IiwKKyAgICAgICAgICAg
ICJwbGF0Zm9ybSI6ICIzMiIsCisgICAgICAgICAgICAidGVzdEdyb3VwIjogIjIxMjgiLAorICAg
ICAgICAgICAgIm9yZGVyIjogIi0yIiwKKyAgICAgICAgICAgICJjb21taXRTZXQiOiAiNDI1NSIs
CisgICAgICAgICAgICAic3RhdHVzIjogInBlbmRpbmciLAorICAgICAgICAgICAgInVybCI6IG51
bGwsCisgICAgICAgICAgICAiYnVpbGQiOiBudWxsLAorICAgICAgICAgICAgImNyZWF0ZWRBdCI6
IDE0NTg2ODg1MTQwMDAKKyAgICAgICAgfSwgeworICAgICAgICAgICAgImlkIjogIjE2OTg2IiwK
KyAgICAgICAgICAgICJ0cmlnZ2VyYWJsZSI6ICIzIiwKKyAgICAgICAgICAgICJ0YXNrIjogIjEz
NzYiLAorICAgICAgICAgICAgInRlc3QiOiAiODQ0IiwKKyAgICAgICAgICAgICJwbGF0Zm9ybSI6
ICIzMiIsCisgICAgICAgICAgICAidGVzdEdyb3VwIjogIjIxMjgiLAorICAgICAgICAgICAgIm9y
ZGVyIjogIi0xIiwKKyAgICAgICAgICAgICJjb21taXRTZXQiOiAiNDI1NiIsCisgICAgICAgICAg
ICAic3RhdHVzIjogInBlbmRpbmciLAorICAgICAgICAgICAgInVybCI6IG51bGwsCisgICAgICAg
ICAgICAiYnVpbGQiOiBudWxsLAorICAgICAgICAgICAgImNyZWF0ZWRBdCI6IDE0NTg2ODg1MTQw
MDAKKyAgICAgICAgfSwgeworICAgICAgICAgICAgImlkIjogIjE2OTg3IiwKKyAgICAgICAgICAg
ICJ0cmlnZ2VyYWJsZSI6ICIzIiwKKyAgICAgICAgICAgICJ0YXNrIjogIjEzNzYiLAorICAgICAg
ICAgICAgInRlc3QiOiAiODQ0IiwKKyAgICAgICAgICAgICJwbGF0Zm9ybSI6ICIzMiIsCisgICAg
ICAgICAgICAidGVzdEdyb3VwIjogIjIxMjgiLAorICAgICAgICAgICAgIm9yZGVyIjogIjAiLAor
ICAgICAgICAgICAgImNvbW1pdFNldCI6ICI0MjU1IiwKKyAgICAgICAgICAgICJzdGF0dXMiOiAi
cGVuZGluZyIsCisgICAgICAgICAgICAidXJsIjogbnVsbCwKKyAgICAgICAgICAgICJidWlsZCI6
IG51bGwsCisgICAgICAgICAgICAiY3JlYXRlZEF0IjogMTQ1ODY4ODUxNDAwMAorICAgICAgICB9
LCB7CisgICAgICAgICAgICAiaWQiOiAiMTY5ODgiLAorICAgICAgICAgICAgInRyaWdnZXJhYmxl
IjogIjMiLAorICAgICAgICAgICAgInRhc2siOiAiMTM3NiIsCisgICAgICAgICAgICAidGVzdCI6
ICI4NDQiLAorICAgICAgICAgICAgInBsYXRmb3JtIjogIjMyIiwKKyAgICAgICAgICAgICJ0ZXN0
R3JvdXAiOiAiMjEyOCIsCisgICAgICAgICAgICAib3JkZXIiOiAiMSIsCisgICAgICAgICAgICAi
Y29tbWl0U2V0IjogIjQyNTYiLAorICAgICAgICAgICAgInN0YXR1cyI6ICJwZW5kaW5nIiwKKyAg
ICAgICAgICAgICJ1cmwiOiBudWxsLAorICAgICAgICAgICAgImJ1aWxkIjogbnVsbCwKKyAgICAg
ICAgICAgICJjcmVhdGVkQXQiOiAxNDU4Njg4NTE0MDAwCisgICAgICAgIH0sIHsKKyAgICAgICAg
ICAgICJpZCI6ICIxNjk4OSIsCisgICAgICAgICAgICAidHJpZ2dlcmFibGUiOiAiMyIsCisgICAg
ICAgICAgICAidGFzayI6IHNlY29uZFRlc3RHcm91cE92ZXJyaWRlcy50YXNrIHx8ICcxMzc2JywK
KyAgICAgICAgICAgICJ0ZXN0IjogIjg0NCIsCisgICAgICAgICAgICAicGxhdGZvcm0iOiBzZWNv
bmRUZXN0R3JvdXBPdmVycmlkZXMucGxhdGZvcm0gfHwgJzMyJywKKyAgICAgICAgICAgICJ0ZXN0
R3JvdXAiOiAiMjEyOSIsCisgICAgICAgICAgICAib3JkZXIiOiAiLTIiLAorICAgICAgICAgICAg
ImNvbW1pdFNldCI6ICI0MjU1IiwKKyAgICAgICAgICAgICJzdGF0dXMiOiBzZWNvbmRUZXN0R3Jv
dXBPdmVycmlkZXMuc3RhdHVzICYmIHNlY29uZFRlc3RHcm91cE92ZXJyaWRlcy5zdGF0dXNbMF0g
fHwgJ3BlbmRpbmcnLAorICAgICAgICAgICAgInVybCI6IG51bGwsCisgICAgICAgICAgICAiYnVp
bGQiOiBudWxsLAorICAgICAgICAgICAgImNyZWF0ZWRBdCI6IDE0NTg2ODg1MTQwMDAKKyAgICAg
ICAgfSwgeworICAgICAgICAgICAgImlkIjogIjE2OTkwIiwKKyAgICAgICAgICAgICJ0cmlnZ2Vy
YWJsZSI6ICIzIiwKKyAgICAgICAgICAgICJ0YXNrIjogc2Vjb25kVGVzdEdyb3VwT3ZlcnJpZGVz
LnRhc2sgfHwgJzEzNzYnLAorICAgICAgICAgICAgInRlc3QiOiAiODQ0IiwKKyAgICAgICAgICAg
ICJwbGF0Zm9ybSI6IHNlY29uZFRlc3RHcm91cE92ZXJyaWRlcy5wbGF0Zm9ybSB8fCAnMzInLAor
ICAgICAgICAgICAgInRlc3RHcm91cCI6ICIyMTI5IiwKKyAgICAgICAgICAgICJvcmRlciI6ICIt
MSIsCisgICAgICAgICAgICAiY29tbWl0U2V0IjogIjQyNTYiLAorICAgICAgICAgICAgInN0YXR1
cyI6IHNlY29uZFRlc3RHcm91cE92ZXJyaWRlcy5zdGF0dXMgJiYgc2Vjb25kVGVzdEdyb3VwT3Zl
cnJpZGVzLnN0YXR1c1sxXSB8fCAncGVuZGluZycsCisgICAgICAgICAgICAidXJsIjogbnVsbCwK
KyAgICAgICAgICAgICJidWlsZCI6IG51bGwsCisgICAgICAgICAgICAiY3JlYXRlZEF0IjogMTQ1
ODY4ODUxNDAwMAorICAgICAgICB9LCB7CisgICAgICAgICAgICAiaWQiOiAiMTY5OTEiLAorICAg
ICAgICAgICAgInRyaWdnZXJhYmxlIjogIjMiLAorICAgICAgICAgICAgInRhc2siOiBzZWNvbmRU
ZXN0R3JvdXBPdmVycmlkZXMudGFzayB8fCAnMTM3NicsCisgICAgICAgICAgICAidGVzdCI6ICI4
NDQiLAorICAgICAgICAgICAgInBsYXRmb3JtIjogc2Vjb25kVGVzdEdyb3VwT3ZlcnJpZGVzLnBs
YXRmb3JtIHx8ICczMicsCisgICAgICAgICAgICAidGVzdEdyb3VwIjogIjIxMjkiLAorICAgICAg
ICAgICAgIm9yZGVyIjogIjAiLAorICAgICAgICAgICAgImNvbW1pdFNldCI6ICI0MjU1IiwKKyAg
ICAgICAgICAgICJzdGF0dXMiOiBzZWNvbmRUZXN0R3JvdXBPdmVycmlkZXMuc3RhdHVzICYmIHNl
Y29uZFRlc3RHcm91cE92ZXJyaWRlcy5zdGF0dXNbMl0gfHwgJ3BlbmRpbmcnLAorICAgICAgICAg
ICAgInVybCI6IG51bGwsCisgICAgICAgICAgICAiYnVpbGQiOiBudWxsLAorICAgICAgICAgICAg
ImNyZWF0ZWRBdCI6IDE0NTg2ODg1MTQwMDAKKyAgICAgICAgfSwgeworICAgICAgICAgICAgImlk
IjogIjE2OTkyIiwKKyAgICAgICAgICAgICJ0cmlnZ2VyYWJsZSI6ICIzIiwKKyAgICAgICAgICAg
ICJ0YXNrIjogc2Vjb25kVGVzdEdyb3VwT3ZlcnJpZGVzLnRhc2sgfHwgJzEzNzYnLAorICAgICAg
ICAgICAgInRlc3QiOiAiODQ0IiwKKyAgICAgICAgICAgICJwbGF0Zm9ybSI6IHNlY29uZFRlc3RH
cm91cE92ZXJyaWRlcy5wbGF0Zm9ybSB8fCAnMzInLAorICAgICAgICAgICAgInRlc3RHcm91cCI6
ICIyMTI5IiwKKyAgICAgICAgICAgICJvcmRlciI6ICIzIiwKKyAgICAgICAgICAgICJjb21taXRT
ZXQiOiAiNDI1NiIsCisgICAgICAgICAgICAic3RhdHVzIjogc2Vjb25kVGVzdEdyb3VwT3ZlcnJp
ZGVzLnN0YXR1cyAmJiBzZWNvbmRUZXN0R3JvdXBPdmVycmlkZXMuc3RhdHVzWzNdIHx8ICdwZW5k
aW5nJywKKyAgICAgICAgICAgICJ1cmwiOiBudWxsLAorICAgICAgICAgICAgImJ1aWxkIjogbnVs
bCwKKyAgICAgICAgICAgICJjcmVhdGVkQXQiOiAxNDU4Njg4NTE0MDAwCisgICAgICAgIH0sIHsK
KyAgICAgICAgICAgICJpZCI6ICIxNjk5MyIsCisgICAgICAgICAgICAidHJpZ2dlcmFibGUiOiAi
MyIsCisgICAgICAgICAgICAidGFzayI6IHRoaXJkVGVzdEdyb3VwT3ZlcnJpZGVzLnRhc2sgfHwg
JzEzNzYnLAorICAgICAgICAgICAgInRlc3QiOiAiODQ0IiwKKyAgICAgICAgICAgICJwbGF0Zm9y
bSI6IHRoaXJkVGVzdEdyb3VwT3ZlcnJpZGVzLnBsYXRmb3JtIHx8ICczMicsCisgICAgICAgICAg
ICAidGVzdEdyb3VwIjogIjIxMzAiLAorICAgICAgICAgICAgIm9yZGVyIjogIi0yIiwKKyAgICAg
ICAgICAgICJjb21taXRTZXQiOiAiNDI1NSIsCisgICAgICAgICAgICAic3RhdHVzIjogdGhpcmRU
ZXN0R3JvdXBPdmVycmlkZXMuc3RhdHVzICYmIHRoaXJkVGVzdEdyb3VwT3ZlcnJpZGVzLnN0YXR1
c1swXSB8fCAncGVuZGluZycsCisgICAgICAgICAgICAidXJsIjogbnVsbCwKKyAgICAgICAgICAg
ICJidWlsZCI6IG51bGwsCisgICAgICAgICAgICAiY3JlYXRlZEF0IjogMTQ1ODY4ODUxMzAwMAor
ICAgICAgICB9LCB7CisgICAgICAgICAgICAiaWQiOiAiMTY5OTQiLAorICAgICAgICAgICAgInRy
aWdnZXJhYmxlIjogIjMiLAorICAgICAgICAgICAgInRhc2siOiB0aGlyZFRlc3RHcm91cE92ZXJy
aWRlcy50YXNrIHx8ICcxMzc2JywKKyAgICAgICAgICAgICJ0ZXN0IjogIjg0NCIsCisgICAgICAg
ICAgICAicGxhdGZvcm0iOiB0aGlyZFRlc3RHcm91cE92ZXJyaWRlcy5wbGF0Zm9ybSB8fCAnMzIn
LAorICAgICAgICAgICAgInRlc3RHcm91cCI6ICIyMTMwIiwKKyAgICAgICAgICAgICJvcmRlciI6
ICItMSIsCisgICAgICAgICAgICAiY29tbWl0U2V0IjogIjQyNTYiLAorICAgICAgICAgICAgInN0
YXR1cyI6IHRoaXJkVGVzdEdyb3VwT3ZlcnJpZGVzLnN0YXR1cyAmJiB0aGlyZFRlc3RHcm91cE92
ZXJyaWRlcy5zdGF0dXNbMV0gfHwgJ3BlbmRpbmcnLAorICAgICAgICAgICAgInVybCI6IG51bGws
CisgICAgICAgICAgICAiYnVpbGQiOiBudWxsLAorICAgICAgICAgICAgImNyZWF0ZWRBdCI6IDE0
NTg2ODg1MTQwMDAKKyAgICAgICAgfSwgeworICAgICAgICAgICAgImlkIjogIjE2OTk1IiwKKyAg
ICAgICAgICAgICJ0cmlnZ2VyYWJsZSI6ICIzIiwKKyAgICAgICAgICAgICJ0YXNrIjogdGhpcmRU
ZXN0R3JvdXBPdmVycmlkZXMudGFzayB8fCAnMTM3NicsCisgICAgICAgICAgICAidGVzdCI6ICI4
NDQiLAorICAgICAgICAgICAgInBsYXRmb3JtIjogdGhpcmRUZXN0R3JvdXBPdmVycmlkZXMucGxh
dGZvcm0gfHwgJzMyJywKKyAgICAgICAgICAgICJ0ZXN0R3JvdXAiOiAiMjEzMCIsCisgICAgICAg
ICAgICAib3JkZXIiOiAiMCIsCisgICAgICAgICAgICAiY29tbWl0U2V0IjogIjQyNTUiLAorICAg
ICAgICAgICAgInN0YXR1cyI6IHRoaXJkVGVzdEdyb3VwT3ZlcnJpZGVzLnN0YXR1cyAmJiB0aGly
ZFRlc3RHcm91cE92ZXJyaWRlcy5zdGF0dXNbMl0gfHwgJ3BlbmRpbmcnLAorICAgICAgICAgICAg
InVybCI6IG51bGwsCisgICAgICAgICAgICAiYnVpbGQiOiBudWxsLAorICAgICAgICAgICAgImNy
ZWF0ZWRBdCI6IDE0NTg2ODg1MTQwMDAKKyAgICAgICAgfSwgeworICAgICAgICAgICAgImlkIjog
IjE2OTk2IiwKKyAgICAgICAgICAgICJ0cmlnZ2VyYWJsZSI6ICIzIiwKKyAgICAgICAgICAgICJ0
YXNrIjogc2Vjb25kVGVzdEdyb3VwT3ZlcnJpZGVzLnRhc2sgfHwgJzEzNzYnLAorICAgICAgICAg
ICAgInRlc3QiOiAiODQ0IiwKKyAgICAgICAgICAgICJwbGF0Zm9ybSI6IHNlY29uZFRlc3RHcm91
cE92ZXJyaWRlcy5wbGF0Zm9ybSB8fCAnMzInLAorICAgICAgICAgICAgInRlc3RHcm91cCI6ICIy
MTMwIiwKKyAgICAgICAgICAgICJvcmRlciI6ICIxIiwKKyAgICAgICAgICAgICJjb21taXRTZXQi
OiAiNDI1NiIsCisgICAgICAgICAgICAic3RhdHVzIjogdGhpcmRUZXN0R3JvdXBPdmVycmlkZXMu
c3RhdHVzICYmIHRoaXJkVGVzdEdyb3VwT3ZlcnJpZGVzLnN0YXR1c1szXSB8fCAncGVuZGluZycs
CisgICAgICAgICAgICAidXJsIjogbnVsbCwKKyAgICAgICAgICAgICJidWlsZCI6IG51bGwsCisg
ICAgICAgICAgICAiY3JlYXRlZEF0IjogMTQ1ODY4ODUxNDAwMAorICAgICAgICB9XSwKKyAgICAg
ICAgImNvbW1pdFNldHMiOiBbeworICAgICAgICAgICAgImlkIjogIjQyNTUiLAorICAgICAgICAg
ICAgInJldmlzaW9uSXRlbXMiOiBbeyJjb21taXQiOiAiODc4MzIifSwgeyJjb21taXQiOiAiOTMx
MTYifV0sCisgICAgICAgICAgICAiY3VzdG9tUm9vdHMiOiBbXSwKKyAgICAgICAgfSwgeworICAg
ICAgICAgICAgImlkIjogIjQyNTYiLAorICAgICAgICAgICAgInJldmlzaW9uSXRlbXMiOiBbeyJj
b21taXQiOiAiODc4MzIifSwgeyJjb21taXQiOiAiOTYzMzYifV0sCisgICAgICAgICAgICAiY3Vz
dG9tUm9vdHMiOiBbXSwKKyAgICAgICAgfV0sCisgICAgICAgICJjb21taXRzIjogW3sKKyAgICAg
ICAgICAgICJpZCI6ICI4NzgzMiIsCisgICAgICAgICAgICAicmVwb3NpdG9yeSI6ICI5IiwKKyAg
ICAgICAgICAgICJyZXZpc2lvbiI6ICIxMC4xMSAxNUEyODQiLAorICAgICAgICAgICAgInRpbWUi
OiAwCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgICJpZCI6ICI5MzExNiIsCisgICAgICAgICAg
ICAicmVwb3NpdG9yeSI6ICIxMSIsCisgICAgICAgICAgICAicmV2aXNpb24iOiAiMTkxNjIyIiwK
KyAgICAgICAgICAgICJ0aW1lIjogMTQ0NTk0NTgxNjg3OAorICAgICAgICB9LCB7CisgICAgICAg
ICAgICAiaWQiOiAiODc4MzIiLAorICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiOSIsCisgICAg
ICAgICAgICAicmV2aXNpb24iOiAiMTAuMTEgMTVBMjg0IiwKKyAgICAgICAgICAgICJ0aW1lIjog
MAorICAgICAgICB9LCB7CisgICAgICAgICAgICAiaWQiOiAiOTYzMzYiLAorICAgICAgICAgICAg
InJlcG9zaXRvcnkiOiAiMTEiLAorICAgICAgICAgICAgInJldmlzaW9uIjogIjE5MjczNiIsCisg
ICAgICAgICAgICAidGltZSI6IDE0NDgyMjUzMjU2NTAKKyAgICAgICAgfV0sCisgICAgICAgICJ1
cGxvYWRlZEZpbGVzIjogW10sCisgICAgICAgICJzdGF0dXMiOiAiT0siCisgICAgfTsKK30KKwog
ZGVzY3JpYmUoJ0J1aWxkUmVxdWVzdCcsIGZ1bmN0aW9uICgpIHsKICAgICBNb2NrTW9kZWxzLmlu
amVjdCgpOwogCisgICAgZGVzY3JpYmUoJ2ZpbmRCdWlsZFJlcXVlc3RXaXRoU2FtZVJvb3RzJywg
KCkgPT4geworICAgICAgICBjb25zdCByZXF1ZXN0cyA9IE1vY2tSZW1vdGVBUEkuaW5qZWN0KCdo
dHRwczovL3BlcmYud2Via2l0Lm9yZycsIE5vZGVQcml2aWxlZ2VkQVBJKTsKKworICAgICAgICBp
dCgnc2hvdWxkIHJldHVybiBudWxsIHdoZW4gdGhlIGJ1aWxkIHJlcXVlc3QgaXMgbm90IGJ1aWxk
IHR5cGUgYnVpbGQgcmVxdWVzdCcsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IGRh
dGEgPSBzYW1wbGVCdWlsZFJlcXVlc3REYXRhKCk7CisgICAgICAgICAgICBjb25zdCByZXF1ZXN0
ID0gQnVpbGRSZXF1ZXN0LmNvbnN0cnVjdEJ1aWxkUmVxdWVzdHNGcm9tRGF0YShkYXRhKVswXTsK
KyAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlcXVlc3QuZmluZEJ1aWxkUmVxdWVz
dFdpdGhTYW1lUm9vdHMoKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHQsIG51bGwp
OworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiBudWxsIGlmIHRoaXMg
dGhlcmUgaXMgbm8gb3RoZXIgdGVzdCBncm91cCB1bmRlciBjdXJyZW50IGFuYWx5c2lzIHRhc2sn
LCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBkYXRhID0gb25lVGVzdEdyb3VwKCk7
CisgICAgICAgICAgICBjb25zdCBwbGF0Zm9ybUlkID0gZGF0YS5idWlsZFJlcXVlc3RzWzBdLnBs
YXRmb3JtOworICAgICAgICAgICAgUGxhdGZvcm0uZW5zdXJlU2luZ2xldG9uKHBsYXRmb3JtSWQs
IHtpZDogcGxhdGZvcm1JZCwgbWV0cmljczogW10sIG5hbWU6ICdzb21lIHBsYXRmb3JtJ30pOwor
ICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5jb25zdHJ1Y3RCdWlsZFJl
cXVlc3RzRnJvbURhdGEoZGF0YSlbMF07CisgICAgICAgICAgICBjb25zdCBwcm9taXNlID0gcmVx
dWVzdC5maW5kQnVpbGRSZXF1ZXN0V2l0aFNhbWVSb290cygpOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1swXS51cmwsICcvYXBpL3Rlc3QtZ3JvdXBzP3Rhc2s9MTM3NicpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
cmVxdWVzdHNbMF0ucmVzb2x2ZShvbmVUZXN0R3JvdXAoKSk7CisKKyAgICAgICAgICAgIGNvbnN0
IHJlc3VsdCA9IGF3YWl0IHByb21pc2U7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0
LCBudWxsKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gY29tcGxl
dGVkIGJ1aWxkIHJlcXVlc3QgaWYgYSBjb21wbGV0ZWQgcmV1c2FibGUgYnVpbGQgcmVxdWVzdCBm
b3VuZCcsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IG92ZXJyaWRlcyA9IHsKKyAg
ICAgICAgICAgICAgICB0YXNrOiAnMTM3NicsCisgICAgICAgICAgICAgICAgcGxhdGZvcm06ICcz
MicsCisgICAgICAgICAgICAgICAgc3RhdHVzOiBbJ2NvbXBsZXRlZCcsICdwZW5kaW5nJywgJ3Bl
bmRpbmcnLCAncGVuZGluZyddCisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb25zdCBkYXRh
ID0gdGhyZWVUZXN0R3JvdXBzKG92ZXJyaWRlcyk7CisgICAgICAgICAgICBjb25zdCBwbGF0Zm9y
bUlkID0gZGF0YS5idWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtOworICAgICAgICAgICAgUGxhdGZv
cm0uZW5zdXJlU2luZ2xldG9uKHBsYXRmb3JtSWQsIHtpZDogcGxhdGZvcm1JZCwgbWV0cmljczog
W10sIG5hbWU6ICdzb21lIHBsYXRmb3JtJ30pOworICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9
IEJ1aWxkUmVxdWVzdC5jb25zdHJ1Y3RCdWlsZFJlcXVlc3RzRnJvbURhdGEoZGF0YSlbMF07Cisg
ICAgICAgICAgICBjb25zdCBwcm9taXNlID0gcmVxdWVzdC5maW5kQnVpbGRSZXF1ZXN0V2l0aFNh
bWVSb290cygpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7
CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvYXBpL3Rlc3Qt
Z3JvdXBzP3Rhc2s9MTM3NicpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBd
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZSh0aHJlZVRl
c3RHcm91cHMob3ZlcnJpZGVzKSk7CisKKyAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0
IHByb21pc2U7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0LCBCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoMTY5ODkpKQorICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIG5vdCB1
c2UgY2FjaGUgd2hpbGUgZmV0Y2hpbmcgdGVzdCBncm91cHMgdW5kZXIgYW5hbHlzaXMgdGFzaycs
IGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IG92ZXJyaWRlcyA9IHsKKyAgICAgICAg
ICAgICAgICB0YXNrOiAnMTM3NicsCisgICAgICAgICAgICAgICAgcGxhdGZvcm06ICczMicsCisg
ICAgICAgICAgICAgICAgc3RhdHVzOiBbJ2NvbXBsZXRlZCcsICdwZW5kaW5nJywgJ3BlbmRpbmcn
LCAncGVuZGluZyddCisgICAgICAgICAgICB9OworICAgICAgICAgICAgY29uc3QgZGF0YSA9IHRo
cmVlVGVzdEdyb3VwcyhvdmVycmlkZXMpOworICAgICAgICAgICAgY29uc3QgcGxhdGZvcm1JZCA9
IGRhdGEuYnVpbGRSZXF1ZXN0c1swXS5wbGF0Zm9ybTsKKyAgICAgICAgICAgIFBsYXRmb3JtLmVu
c3VyZVNpbmdsZXRvbihwbGF0Zm9ybUlkLCB7aWQ6IHBsYXRmb3JtSWQsIG1ldHJpY3M6IFtdLCBu
YW1lOiAnc29tZSBwbGF0Zm9ybSd9KTsKKyAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBCdWls
ZFJlcXVlc3QuY29uc3RydWN0QnVpbGRSZXF1ZXN0c0Zyb21EYXRhKGRhdGEpWzBdOworICAgICAg
ICAgICAgbGV0IHByb21pc2UgPSByZXF1ZXN0LmZpbmRCdWlsZFJlcXVlc3RXaXRoU2FtZVJvb3Rz
KCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKKworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLnVybCwgJy9hcGkvdGVzdC1ncm91cHM/
dGFzaz0xMzc2Jyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMF0ubWV0aG9k
LCAnR0VUJyk7CisgICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKHRocmVlVGVzdEdyb3Vw
cyhvdmVycmlkZXMpKTsKKworICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IHByb21pc2U7
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0LCBCdWlsZFJlcXVlc3QuZmluZEJ5SWQo
MTY5ODkpKQorCisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CisgICAgICAgICAg
ICBwcm9taXNlID0gcmVxdWVzdC5maW5kQnVpbGRSZXF1ZXN0V2l0aFNhbWVSb290cygpOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CisKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvYXBpL3Rlc3QtZ3JvdXBzP3Rhc2s9MTM3
NicpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcp
OworICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZSh0aHJlZVRlc3RHcm91cHMob3ZlcnJp
ZGVzKSk7CisKKyAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IHByb21pc2U7CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0LCBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoMTY5ODkpKQorICAg
ICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIG9ubHkgYWxsb3cgaWRlbnRpY2FsIHBsYXRm
b3JtIGlmIHRoZSBwbGF0Zm9ybSBpcyBub3QgdW5kZXIgYSBwbGF0Zm9ybSBncm91cCcsIGFzeW5j
ICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IG92ZXJyaWRlcyA9IHsKKyAgICAgICAgICAgICAg
ICB0YXNrOiAnMTM3NicsCisgICAgICAgICAgICAgICAgcGxhdGZvcm06ICczMycsCisgICAgICAg
ICAgICAgICAgc3RhdHVzOiBbJ2NvbXBsZXRlZCcsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVu
ZGluZyddCisgICAgICAgICAgICB9OworICAgICAgICAgICAgY29uc3QgZGF0YSA9IHRocmVlVGVz
dEdyb3VwcyhvdmVycmlkZXMpOworICAgICAgICAgICAgY29uc3QgcGxhdGZvcm1JZCA9IGRhdGEu
YnVpbGRSZXF1ZXN0c1swXS5wbGF0Zm9ybTsKKyAgICAgICAgICAgIFBsYXRmb3JtLmVuc3VyZVNp
bmdsZXRvbihwbGF0Zm9ybUlkLCB7aWQ6IHBsYXRmb3JtSWQsIG1ldHJpY3M6IFtdLCBuYW1lOiAn
c29tZSBwbGF0Zm9ybSd9KTsKKyAgICAgICAgICAgIFBsYXRmb3JtLmVuc3VyZVNpbmdsZXRvbign
MzMnLCB7aWQ6ICczMycsIG1ldHJpY3M6IFtdLCBuYW1lOiAnYW5vdGhlciBwbGF0Zm9ybSd9KTsK
KyAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBCdWlsZFJlcXVlc3QuY29uc3RydWN0QnVpbGRS
ZXF1ZXN0c0Zyb21EYXRhKGRhdGEpWzBdOworICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHJl
cXVlc3QuZmluZEJ1aWxkUmVxdWVzdFdpdGhTYW1lUm9vdHMoKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbMF0udXJsLCAnL2FwaS90ZXN0LWdyb3Vwcz90YXNrPTEzNzYnKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAg
IHJlcXVlc3RzWzBdLnJlc29sdmUodGhyZWVUZXN0R3JvdXBzKG92ZXJyaWRlcykpOworCisgICAg
ICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwcm9taXNlOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlc3VsdCwgbnVsbCk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQg
YWxsb3cgZGlmZmVyZW50IHBsYXRmb3JtIGlmIHRoZSBwbGF0Zm9ybXMgYXJlIHVuZGVyIHRoZSBz
YW1lIHBsYXRmb3JtIGdyb3VwJywgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgY29uc3Qgb3Zl
cnJpZGVzID0geworICAgICAgICAgICAgICAgIHRhc2s6ICcxMzc2JywKKyAgICAgICAgICAgICAg
ICBwbGF0Zm9ybTogJzMzJywKKyAgICAgICAgICAgICAgICBzdGF0dXM6IFsnY29tcGxldGVkJywg
J3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJ10KKyAgICAgICAgICAgIH07CisgICAgICAg
ICAgICBjb25zdCBkYXRhID0gdGhyZWVUZXN0R3JvdXBzKG92ZXJyaWRlcyk7CisgICAgICAgICAg
ICBjb25zdCBwbGF0Zm9ybUlkID0gZGF0YS5idWlsZFJlcXVlc3RzWzBdLnBsYXRmb3JtOworICAg
ICAgICAgICAgY29uc3QgcGxhdGZvcm1Hcm91cCA9IFBsYXRmb3JtR3JvdXAuZW5zdXJlU2luZ2xl
dG9uKCcxJywge2lkOiAxLCBuYW1lOiAnc29tZSBwbGF0Zm9ybSBncm91cCd9KTsKKyAgICAgICAg
ICAgIFBsYXRmb3JtLmVuc3VyZVNpbmdsZXRvbihwbGF0Zm9ybUlkLCB7aWQ6IHBsYXRmb3JtSWQs
IG1ldHJpY3M6IFtdLCBuYW1lOiAnc29tZSBwbGF0Zm9ybScsIGdyb3VwOiBwbGF0Zm9ybUdyb3Vw
fSk7CisgICAgICAgICAgICBQbGF0Zm9ybS5lbnN1cmVTaW5nbGV0b24oJzMzJywge2lkOiAnMzMn
LCBtZXRyaWNzOiBbXSwgbmFtZTogJ2Fub3RoZXIgcGxhdGZvcm0nLCBncm91cDogcGxhdGZvcm1H
cm91cH0pOworICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5jb25zdHJ1
Y3RCdWlsZFJlcXVlc3RzRnJvbURhdGEoZGF0YSlbMF07CisgICAgICAgICAgICBjb25zdCBwcm9t
aXNlID0gcmVxdWVzdC5maW5kQnVpbGRSZXF1ZXN0V2l0aFNhbWVSb290cygpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CisKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0c1swXS51cmwsICcvYXBpL3Rlc3QtZ3JvdXBzP3Rhc2s9MTM3NicpOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAg
ICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZSh0aHJlZVRlc3RHcm91cHMob3ZlcnJpZGVzKSk7
CisKKyAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHByb21pc2U7CisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVzdWx0LCBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoMTY5ODkpKQorICAg
ICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIGluIGZhdm9yIG9mIHJ1bm5pbmcgYnVpbGQg
cmVxdWVzdCBvdmVyIHNjaGVkdWxlZCBidWlsZCByZXF1ZXN0JywgYXN5bmMgKCkgPT4geworICAg
ICAgICAgICAgY29uc3Qgc2Vjb25kT3ZlcnJpZGVzID0geworICAgICAgICAgICAgICAgIHRhc2s6
ICcxMzc2JywKKyAgICAgICAgICAgICAgICBwbGF0Zm9ybTogJzMyJywKKyAgICAgICAgICAgICAg
ICBzdGF0dXM6IFsnc2NoZWR1bGVkJywgJ3BlbmRpbmcnLCAncGVuZGluZycsICdwZW5kaW5nJ10K
KyAgICAgICAgICAgIH07CisgICAgICAgICAgICBjb25zdCB0aGlyZE92ZXJyaWRlcyA9IHsKKyAg
ICAgICAgICAgICAgICB0YXNrOiAnMTM3NicsCisgICAgICAgICAgICAgICAgcGxhdGZvcm06ICcz
MicsCisgICAgICAgICAgICAgICAgc3RhdHVzOiBbJ3J1bm5pbmcnLCAncGVuZGluZycsICdwZW5k
aW5nJywgJ3BlbmRpbmcnXQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY29uc3QgZGF0YSA9
IHRocmVlVGVzdEdyb3VwcyhzZWNvbmRPdmVycmlkZXMsIHRoaXJkT3ZlcnJpZGVzKTsKKyAgICAg
ICAgICAgIGNvbnN0IHBsYXRmb3JtSWQgPSBkYXRhLmJ1aWxkUmVxdWVzdHNbMF0ucGxhdGZvcm07
CisgICAgICAgICAgICBQbGF0Zm9ybS5lbnN1cmVTaW5nbGV0b24ocGxhdGZvcm1JZCwge2lkOiBw
bGF0Zm9ybUlkLCBtZXRyaWNzOiBbXSwgbmFtZTogJ3NvbWUgcGxhdGZvcm0nfSk7CisgICAgICAg
ICAgICBjb25zdCByZXF1ZXN0ID0gQnVpbGRSZXF1ZXN0LmNvbnN0cnVjdEJ1aWxkUmVxdWVzdHNG
cm9tRGF0YShkYXRhKVswXTsKKyAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSByZXF1ZXN0LmZp
bmRCdWlsZFJlcXVlc3RXaXRoU2FtZVJvb3RzKCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAxKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzBdLnVybCwgJy9hcGkvdGVzdC1ncm91cHM/dGFzaz0xMzc2Jyk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICByZXF1ZXN0
c1swXS5yZXNvbHZlKHRocmVlVGVzdEdyb3VwcyhzZWNvbmRPdmVycmlkZXMsIHRoaXJkT3ZlcnJp
ZGVzKSk7CisKKyAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHByb21pc2U7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVzdWx0LCBCdWlsZFJlcXVlc3QuZmluZEJ5SWQoMTY5OTMp
KQorICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIGluIGZhdm9yIG9mIHJ1bm5pbmcg
YnVpbGQgcmVxdWVzdCB3aGljaCBoYXMgZWFybGllciBjcmVhdGlvbiB0aW1lJywgYXN5bmMgKCkg
PT4geworICAgICAgICAgICAgY29uc3Qgc2Vjb25kT3ZlcnJpZGVzID0geworICAgICAgICAgICAg
ICAgIHRhc2s6ICcxMzc2JywKKyAgICAgICAgICAgICAgICBwbGF0Zm9ybTogJzMyJywKKyAgICAg
ICAgICAgICAgICBzdGF0dXM6IFsncnVubmluZycsICdwZW5kaW5nJywgJ3BlbmRpbmcnLCAncGVu
ZGluZyddCisgICAgICAgICAgICB9OworICAgICAgICAgICAgY29uc3QgdGhpcmRPdmVycmlkZXMg
PSB7CisgICAgICAgICAgICAgICAgdGFzazogJzEzNzYnLAorICAgICAgICAgICAgICAgIHBsYXRm
b3JtOiAnMzInLAorICAgICAgICAgICAgICAgIHN0YXR1czogWydydW5uaW5nJywgJ3BlbmRpbmcn
LCAncGVuZGluZycsICdwZW5kaW5nJ10KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbnN0
IGRhdGEgPSB0aHJlZVRlc3RHcm91cHMoc2Vjb25kT3ZlcnJpZGVzLCB0aGlyZE92ZXJyaWRlcyk7
CisgICAgICAgICAgICBjb25zdCBwbGF0Zm9ybUlkID0gZGF0YS5idWlsZFJlcXVlc3RzWzBdLnBs
YXRmb3JtOworICAgICAgICAgICAgUGxhdGZvcm0uZW5zdXJlU2luZ2xldG9uKHBsYXRmb3JtSWQs
IHtpZDogcGxhdGZvcm1JZCwgbWV0cmljczogW10sIG5hbWU6ICdzb21lIHBsYXRmb3JtJ30pOwor
ICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IEJ1aWxkUmVxdWVzdC5jb25zdHJ1Y3RCdWlsZFJl
cXVlc3RzRnJvbURhdGEoZGF0YSlbMF07CisgICAgICAgICAgICBjb25zdCBwcm9taXNlID0gcmVx
dWVzdC5maW5kQnVpbGRSZXF1ZXN0V2l0aFNhbWVSb290cygpOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0c1swXS51cmwsICcvYXBpL3Rlc3QtZ3JvdXBzP3Rhc2s9MTM3NicpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAg
cmVxdWVzdHNbMF0ucmVzb2x2ZSh0aHJlZVRlc3RHcm91cHMoc2Vjb25kT3ZlcnJpZGVzLCB0aGly
ZE92ZXJyaWRlcykpOworCisgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwcm9taXNl
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdCwgQnVpbGRSZXF1ZXN0LmZpbmRCeUlk
KDE2OTkzKSk7CisgICAgICAgICAgICBhc3NlcnQub2soQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDE2
OTkzKS5jcmVhdGVkQXQoKSA8IEJ1aWxkUmVxdWVzdC5maW5kQnlJZCgxNjk4OSkuY3JlYXRlZEF0
KCkpOworICAgICAgICB9KTsKKyAgICB9KTsKKwogICAgIGRlc2NyaWJlKCd3YWl0aW5nVGltZScs
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gIjAgbWludXRlcyIgd2hl
biB0aGUgcmVmZXJlbmNlIHRpbWUgaXMgaWRlbnRpY2FsbHkgZXF1YWwgdG8gY3JlYXRlZEF0Jywg
ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgY29uc3QgZGF0YSA9IHNhbXBsZUJ1aWxkUmVxdWVz
dERhdGEoKTsK
</data>
<flag name="review"
          id="430111"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>