<?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>229545</bug_id>
          
          <creation_ts>2021-08-26 02:09:17 -0700</creation_ts>
          <short_desc>Add &apos;paired-parallel&apos; repetition type for A/B testing.</short_desc>
          <delta_ts>2021-11-02 17:22:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1787514</commentid>
    <comment_count>0</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2021-08-26 02:09:17 -0700</bug_when>
    <thetext>Add &apos;parallel&apos; repetition type for A/B testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787519</commentid>
    <comment_count>1</comment_count>
      <attachid>436484</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-08-26 02:47:06 -0700</bug_when>
    <thetext>Created attachment 436484
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789258</commentid>
    <comment_count>2</comment_count>
      <attachid>436484</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-09-01 01:37:07 -0700</bug_when>
    <thetext>Comment on attachment 436484
Patch

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

As a high level comment, there seems to be a confusion as to which class / object / abstraction is responsible for knowing what types of repetitions are supported. Is it per triggerable? Is it per test-platform pair? We need to stick to one model and implement accordingly.

Secondly, we really need to minimize the number of places where we define the default set of repetition types. Ideally, it would be only in the database but there is a fair bit of custom code throughout frontend &amp; backend so that might be hard. But we should try to consolidate to few key places. If this concept is defined per Triggerable, perhaps Triggerable should know what repetition types are supported.

&gt; Websites/perf.webkit.org/ChangeLog:3
&gt; +        Add &apos;parallel&apos; repetition type for A/B testing.

Use double quotation marks?

&gt; Websites/perf.webkit.org/ChangeLog:8
&gt; +        Add &apos;parallel&apos; repetition type for A/B testing.

Hm... maybe parallel isn&apos;t really a good internal name depending on what we&apos;re gonna do with this.

&gt; Websites/perf.webkit.org/ChangeLog:9
&gt; +        Tied repetition type to triggerable configuraion.

Tied each repetition type to a specific triggerable configuration?

I think you should mention that this patch also introduces a ID for each test configuration

&gt; Websites/perf.webkit.org/init-database.sql:278
&gt; +    triggerable_config INTEGER NOT NULL REFERENCES triggerable_configurations ON DELETE CASCADE,
&gt; +    config_repetition_type analysis_test_group_repetition_type NOT NULL,

For consistency, let&apos;s call these
configrepetition_config
configrepetition_type

But why does this need to be per configuation given we only support one set of repetition types per triggerable?

&gt; Websites/perf.webkit.org/migrate-database.sql:59
&gt;  \ No newline at end of file

Need a new line at the end.

&gt; Websites/perf.webkit.org/public/api/update-triggerable.php:47
&gt; +            if(!$db-&gt;insert_row(&apos;triggerable_configuration_repetition_types&apos;, NULL,

Nit: Need a space between if and (.

&gt; Websites/perf.webkit.org/public/include/json-header.php:198
&gt; +    $triggerable_to_config_id = array();
&gt; +    foreach ($results as $row)
&gt; +        $triggerable_to_config_id[$row[&apos;triggerable&apos;]] = $row[&apos;config_id&apos;];

I&apos;m a bit confused here.
Are we assuming that the repetition types for different configurations are all the same?
Doesn&apos;t that mean all configurations for each triggerable support the same set of repetition types?
If so, we&apos;re overcomplicating this by adding new table per triggerable configuration.
Otherwise, I don&apos;t think this code makes much sense
since some repetition type may not be available for whatever test/platform pair we happen to pick.

&gt; Websites/perf.webkit.org/public/include/manifest-generator.php:279
&gt; +                if (!array_key_exists($row[&apos;trigconfig_id&apos;], $repetition_types_by_config))
&gt; +                    $repetition_types = array(&apos;alternating&apos;, &apos;sequential&apos;);
&gt; +                else
&gt; +                    $repetition_types = $repetition_types_by_config[$row[&apos;trigconfig_id&apos;]];

Let&apos;s not do this during manifest generation. That&apos;s highly confusing!
We should add this to the database and add a migration rule.

&gt; Websites/perf.webkit.org/public/v3/components/custom-configuration-test-group-form.js:58
&gt; +                const supportedRepetitionTypes = Triggerable.supportedRepetitionTypesByConfiguration(tests[0], platform);

I&apos;d call this: supportedRepetitionTypes*For*Configuration.

&gt; Websites/perf.webkit.org/public/v3/components/test-group-form.js:8
&gt; +        this._supportedRepetitionTypes = [&apos;alternating&apos;, &apos;sequential&apos;];

I don&apos;t think we want this kind of hard-coding in UI code.
We should get this information from the backend instead.

&gt; Websites/perf.webkit.org/public/v3/components/test-group-form.js:26
&gt; +    setSupportedRepetitionTypes(supportedRepetitionTypes)
&gt; +    {
&gt; +        this._supportedRepetitionTypes = supportedRepetitionTypes;

It&apos;s very confusing that this is only used by a specific subclass.
Maybe a better design is to let a subclass override the repetition part of the UI.
Yet another alternative is to have a function which returns a set of supported types and a subclass override it.

Also, we need to validate that it&apos;s one of the three types we know of.

&gt; Websites/perf.webkit.org/public/v3/models/manifest.js:91
&gt; +                const [testId, platformId, repetitionTypes] = configuration;
&gt; +                return {test: Test.findById(testId), platform: Platform.findById(platformId), repetitionTypes};

supportedRepetitionTypes?

&gt; Websites/perf.webkit.org/public/v3/models/test-group.js:350
&gt; +        const {retryCount, stopFutureRetries} = await (this.repetitionType() == &apos;sequential&apos; ?
&gt; +            this._createSequentialRetriesForTestGroup(repetitionLimit): this._createAlternatingRetriesForTestGroup(repetitionLimit));

Why are we making this change? Please explain it in the change log.

&gt; Websites/perf.webkit.org/public/v3/models/triggerable.js:22
&gt; +            console.assert(!(key in supportedRepetitionTypesMap))
&gt; +            supportedRepetitionTypesMap[key] = config.repetitionTypes;

Why are we overriding it? Don&apos;t we need to take the union of what we have already with new ones?

&gt; Websites/perf.webkit.org/public/v3/models/triggerable.js:33
&gt; +    static supportedRepetitionTypesByConfiguration(test, platform)
&gt; +    {

Either this doesn&apos;t make sense to be static because it&apos;s specific to each triggerable or the above comment needs to be addressed.

&gt; Websites/perf.webkit.org/public/v3/pages/analysis-task-page.js:134
&gt; +            const supportedRepetitionTypes = Triggerable.supportedRepetitionTypesByConfiguration(testGroup.test(), testGroup.platform());
&gt; +            form.setSupportedRepetitionTypes(supportedRepetitionTypes);

Why is this AnalysisTaskResultsPane&apos;s responsibility?
It seems like there is quite a bit of confusion as to which class is responsible
for figuring out what repetition types are supported.

&gt; Websites/perf.webkit.org/public/v3/pages/analysis-task-page.js:382
&gt; +            const retryForm = this.part(&apos;retry-form&apos;);
&gt; +            retryForm.setRepetitionCount(currentGroup.initialRepetitionCount());
&gt; +            retryForm.setSupportedRepetitionTypes(supportedRepetitionTypes);
&gt; +            retryForm.setRepetitionType(currentGroup.repetitionType());
&gt; +            retryForm.enqueueToRender();

Let&apos;s not repeat all this code multiple times.

&gt; Websites/perf.webkit.org/public/v3/pages/chart-pane.js:107
&gt; +        this._repetitionType = &apos;alternating&apos;;

Again, the number of types I&apos;ve seen either this default or the list of default repetition types is alarming.
This kind of magic string spread across multiple files, subsystems, and components will inevitably lead to bugs.

&gt; Websites/perf.webkit.org/public/v3/pages/chart-pane.js:351
&gt; +        const explanationByRepetitionTypes = [[&apos;alternating&apos;, &apos;alternate (ABAB)&apos;], [&apos;sequential&apos;, &apos;sequence (AABB)&apos;],
&gt; +            [&apos;parallel&apos;, &apos;parallel&apos;]].filter((entry) =&gt; repetitionTypes.includes(entry[0]))

Ditto.

&gt; Websites/perf.webkit.org/tools/js/buildbot-syncer.js:90
&gt; +        assert(Array.isArray(repetitionTypes));

Let&apos;s assert the values too.

&gt; Websites/perf.webkit.org/tools/js/buildbot-syncer.js:114
&gt; +        return this._configurations.some((config) =&gt; config.platform == request.platform() &amp;&amp; config.test == request.test()
&gt; +            &amp;&amp; (!this.isTester() || (config.repetitionTypes.includes(request.testGroup().repetitionType())
&gt; +                    &amp;&amp; this._supportedTestRepetitionTypes.includes(request.testGroup().repetitionType()))));

This is getting way too long to be an inline function.
Please use { ~ } and if statements to make it clear.

&gt; Websites/perf.webkit.org/tools/js/buildbot-syncer.js:395
&gt; +                if (Array.isArray(type)) {

Why does this need to be an array instead of a regular property in type?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789259</commentid>
    <comment_count>3</comment_count>
      <attachid>436484</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-09-01 01:38:27 -0700</bug_when>
    <thetext>Comment on attachment 436484
Patch

r- because there are enough design issues &amp; code that&apos;s highly suspicious of major bugs that I don&apos;t think this path is landable as is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789486</commentid>
    <comment_count>4</comment_count>
      <attachid>436484</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-09-01 14:31:12 -0700</bug_when>
    <thetext>Comment on attachment 436484
Patch

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

&gt;&gt; Websites/perf.webkit.org/public/include/json-header.php:198
&gt;&gt; +        $triggerable_to_config_id[$row[&apos;triggerable&apos;]] = $row[&apos;config_id&apos;];
&gt; 
&gt; I&apos;m a bit confused here.
&gt; Are we assuming that the repetition types for different configurations are all the same?
&gt; Doesn&apos;t that mean all configurations for each triggerable support the same set of repetition types?
&gt; If so, we&apos;re overcomplicating this by adding new table per triggerable configuration.
&gt; Otherwise, I don&apos;t think this code makes much sense
&gt; since some repetition type may not be available for whatever test/platform pair we happen to pick.

Nice catch, what I meant to do is
```
    $test_to_trigconfig = array();
    foreach ($results as $row)
        $test_to_trigconfig[$row[&apos;test&apos;]] = $row[&apos;config_id&apos;];
```

&gt;&gt; Websites/perf.webkit.org/public/include/manifest-generator.php:279
&gt;&gt; +                    $repetition_types = $repetition_types_by_config[$row[&apos;trigconfig_id&apos;]];
&gt; 
&gt; Let&apos;s not do this during manifest generation. That&apos;s highly confusing!
&gt; We should add this to the database and add a migration rule.

Sure.

&gt;&gt; Websites/perf.webkit.org/public/v3/models/triggerable.js:33
&gt;&gt; +    {
&gt; 
&gt; Either this doesn&apos;t make sense to be static because it&apos;s specific to each triggerable or the above comment needs to be addressed.

Each triggerable_configurations is keyed by (test, platform), so supported repetition types can be determined by (test, platform) pair.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789642</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-02 02:14:47 -0700</bug_when>
    <thetext>&lt;rdar://problem/82665951&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806566</commentid>
    <comment_count>6</comment_count>
      <attachid>441865</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-10-20 04:35:17 -0700</bug_when>
    <thetext>Created attachment 441865
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808945</commentid>
    <comment_count>7</comment_count>
      <attachid>441865</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2021-10-26 11:09:05 -0700</bug_when>
    <thetext>Comment on attachment 441865
Patch

Looks like all feedback was addressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809101</commentid>
    <comment_count>8</comment_count>
      <attachid>441865</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-10-26 16:32:17 -0700</bug_when>
    <thetext>Comment on attachment 441865
Patch

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

&gt; Websites/perf.webkit.org/public/include/json-header.php:206
&gt; +            $rows = $db-&gt;select_rows(&apos;triggerable_configuration_repetition_types&apos;, &apos;configrepetition&apos;, array(&apos;config&apos; =&gt; $config_id));
&gt; +            foreach ($rows as $row)
&gt; +                array_push($supported_repetition_types, $row[&apos;configrepetition_type&apos;]);

This will run the query for every test.
Why not do this in the above foreach loop?

&gt; Websites/perf.webkit.org/public/include/manifest-generator.php:266
&gt; +        foreach($repetition_types_by_configuration as &amp;$row)

Nit: Need a space between foreach and (.

&gt; Websites/perf.webkit.org/public/privileged-api/add-build-requests.php:44
&gt;          add_alternating_build_requests($db, $existing_test_type_build_requests, $additional_build_request_count, $current_order);

Does it really make sense for build requests to be alternating when requests are parallelized?

&gt; Websites/perf.webkit.org/public/v3/components/repetition-type-selection.js:4
&gt; +    #triggerableConfiguration;
&gt; +    #selectedRepetitionType;
&gt; +    #renderRepetitionTypeListLazily;

Nice!

&gt; Websites/perf.webkit.org/public/v3/components/repetition-type-selection.js:27
&gt; +    set disabled(value) {this.content(&apos;repetition-type&apos;).disabled = value;}

Nit: Need spaces around { ~ };
Maybe we should ensure the value is a boolean?

&gt; Websites/perf.webkit.org/public/v3/components/repetition-type-selection.js:33
&gt; +        if (this.#triggerableConfiguration &amp;&amp; !this.#triggerableConfiguration.supportedRepetitionTypes.includes(this.#selectedRepetitionType))
&gt; +            this.#selectedRepetitionType = this.#triggerableConfiguration.supportedRepetitionTypes[0];

Don&apos;t we need to reset selectedRepetitionType if triggerableConfiguration is null / undefined?

&gt; Websites/perf.webkit.org/public/v3/components/repetition-type-selection.js:53
&gt; +    _renderRepetitionTypeList(supportedRepetitionTypes, selectedRepetitionType)

Given the semantics of LazilyEvaluatedFunction, we should probably do: selectedRepetitionType, ...supportedRepetitionTypes
so that each value of supportedRepetitionTypes will be checked instead of the array as a whole.

&gt; Websites/perf.webkit.org/public/v3/components/repetition-type-selection.js:56
&gt; +            this.createElement(&apos;option&apos;,{selected: repetitionType == selectedRepetitionType, value: repetitionType},

Nit: Need a space after , as well as before-after { ~ }.

&gt; Websites/perf.webkit.org/public/v3/components/repetition-type-selection.js:66
&gt; +        return `
&gt; +            &lt;select id=&quot;repetition-type&quot;&gt;
&gt; +            &lt;/select&gt;
&gt; +        `;

Seems like we can just do: `&lt;select id=&quot;repetition-type&quot;&gt;&lt;/select&gt;`.

&gt; Websites/perf.webkit.org/public/v3/models/triggerable.js:56
&gt; +    static REPETITION_TYPES = [&apos;alternating&apos;, &apos;sequential&apos;, &apos;parallel&apos;];

We don&apos;t typically use ALL_CAP names for this. Please use CamelCase instead.
Also, maybe we should call this validRepetitionTypes,
or maybe even add a static function: isValidRepetitionType instead?

&gt; Websites/perf.webkit.org/public/v3/models/triggerable.js:74
&gt; +        const configurationMap = this.ensureNamedStaticMap(&apos;triggerableConfigurations&apos;);
&gt; +        const key = `${object.test.id()}-${object.platform.id()}`;
&gt; +        console.assert(!(key in configurationMap));
&gt; +        configurationMap[key] = this;

This isn&apos;t right. We&apos;re adding each TriggerableConfiguration using config.id as well as this key.
We should be creating a unique key and calling TriggerableConfiguration.ensureSingleton with it.
So add a new static method like createForTriggerable() which calls ensureSingleton.
i.e. id of this object should be this key instead.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:184
&gt; +async function createTestGroupWithPatch(repetitionType=&apos;alternating&apos;)

Nit: space around =.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809111</commentid>
    <comment_count>9</comment_count>
      <attachid>441865</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-10-26 16:58:17 -0700</bug_when>
    <thetext>Comment on attachment 441865
Patch

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

&gt;&gt; Websites/perf.webkit.org/public/privileged-api/add-build-requests.php:44
&gt;&gt;          add_alternating_build_requests($db, $existing_test_type_build_requests, $additional_build_request_count, $current_order);
&gt; 
&gt; Does it really make sense for build requests to be alternating when requests are parallelized?

I think this code is used for adding retry build requests. I guess the name `add_alternating_build_requests` is no longer accurate here. May be rename it to `add_non_sequential_build_requests`?

&gt;&gt; Websites/perf.webkit.org/public/v3/models/triggerable.js:74
&gt;&gt; +        configurationMap[key] = this;
&gt; 
&gt; This isn&apos;t right. We&apos;re adding each TriggerableConfiguration using config.id as well as this key.
&gt; We should be creating a unique key and calling TriggerableConfiguration.ensureSingleton with it.
&gt; So add a new static method like createForTriggerable() which calls ensureSingleton.
&gt; i.e. id of this object should be this key instead.

Got it. It looks like we don&apos;t need even expose `ctriggerableConfigurationId` in the return of `api/manifest` at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809113</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-10-26 17:00:49 -0700</bug_when>
    <thetext>(In reply to dewei_zhu from comment #9)
&gt; Comment on attachment 441865 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=441865&amp;action=review
&gt; 
&gt; &gt;&gt; Websites/perf.webkit.org/public/privileged-api/add-build-requests.php:44
&gt; &gt;&gt;          add_alternating_build_requests($db, $existing_test_type_build_requests, $additional_build_request_count, $current_order);
&gt; &gt; 
&gt; &gt; Does it really make sense for build requests to be alternating when requests are parallelized?
&gt; 
&gt; I think this code is used for adding retry build requests. I guess the name
&gt; `add_alternating_build_requests` is no longer accurate here. May be rename
&gt; it to `add_non_sequential_build_requests`?

But ordering is still affected, right? Like... should we be using ABABAB... for parallel builds or AAA...BBB...?

Are we pairing up each AB pair to a separate device, or are they full parallel in that A &amp; B could run in any random device somewhere?

&gt; &gt;&gt; Websites/perf.webkit.org/public/v3/models/triggerable.js:74
&gt; &gt;&gt; +        configurationMap[key] = this;
&gt; &gt; 
&gt; &gt; This isn&apos;t right. We&apos;re adding each TriggerableConfiguration using config.id as well as this key.
&gt; &gt; We should be creating a unique key and calling TriggerableConfiguration.ensureSingleton with it.
&gt; &gt; So add a new static method like createForTriggerable() which calls ensureSingleton.
&gt; &gt; i.e. id of this object should be this key instead.
&gt; 
&gt; Got it. It looks like we don&apos;t need even expose
&gt; `ctriggerableConfigurationId` in the return of `api/manifest` at all.

oh, ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809117</commentid>
    <comment_count>11</comment_count>
      <attachid>441865</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-10-26 17:17:04 -0700</bug_when>
    <thetext>Comment on attachment 441865
Patch

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

&gt;&gt;&gt;&gt; Websites/perf.webkit.org/public/privileged-api/add-build-requests.php:44
&gt;&gt;&gt;&gt;          add_alternating_build_requests($db, $existing_test_type_build_requests, $additional_build_request_count, $current_order);
&gt;&gt;&gt; 
&gt;&gt;&gt; Does it really make sense for build requests to be alternating when requests are parallelized?
&gt;&gt; 
&gt;&gt; I think this code is used for adding retry build requests. I guess the name `add_alternating_build_requests` is no longer accurate here. May be rename it to `add_non_sequential_build_requests`?
&gt; 
&gt; But ordering is still affected, right? Like... should we be using ABABAB... for parallel builds or AAA...BBB...?
&gt; 
&gt; Are we pairing up each AB pair to a separate device, or are they full parallel in that A &amp; B could run in any random device somewhere?

Current plan is to pair one iteration A with one iteration B. So, when retry, it behaves more like ABABAB.
You made a very good point here. If we completely select random devices, then the retry would be close to AABB but a bit more complicated.

Another approach is to have the syncing script automatically reschedule failed runs without adding new build requests. And only fail if retry is exhausted. With this approach, we should reject adding retry for parallelized test group.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809129</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-10-26 17:40:28 -0700</bug_when>
    <thetext>(In reply to dewei_zhu from comment #11)
&gt; Comment on attachment 441865 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=441865&amp;action=review
&gt; 
&gt; &gt;&gt;&gt;&gt; Websites/perf.webkit.org/public/privileged-api/add-build-requests.php:44
&gt; &gt;&gt;&gt;&gt;          add_alternating_build_requests($db, $existing_test_type_build_requests, $additional_build_request_count, $current_order);
&gt; &gt;&gt;&gt; 
&gt; &gt;&gt;&gt; Does it really make sense for build requests to be alternating when requests are parallelized?
&gt; &gt;&gt; 
&gt; &gt;&gt; I think this code is used for adding retry build requests. I guess the name `add_alternating_build_requests` is no longer accurate here. May be rename it to `add_non_sequential_build_requests`?
&gt; &gt; 
&gt; &gt; But ordering is still affected, right? Like... should we be using ABABAB... for parallel builds or AAA...BBB...?
&gt; &gt; 
&gt; &gt; Are we pairing up each AB pair to a separate device, or are they full parallel in that A &amp; B could run in any random device somewhere?
&gt; 
&gt; Current plan is to pair one iteration A with one iteration B. So, when
&gt; retry, it behaves more like ABABAB.

I see. Then alternating order makes sense.

&gt; You made a very good point here. If we completely select random devices,
&gt; then the retry would be close to AABB but a bit more complicated.
&gt; 
&gt; Another approach is to have the syncing script automatically reschedule
&gt; failed runs without adding new build requests. And only fail if retry is
&gt; exhausted. With this approach, we should reject adding retry for
&gt; parallelized test group.

Yeah, those are both valid options. I guess we should figure out which model makes most sense in the long term since changing this behavior later after deployment would be highly problematic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809135</commentid>
    <comment_count>13</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2021-10-26 18:06:27 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #12)
&gt; (In reply to dewei_zhu from comment #11)
&gt; &gt; Comment on attachment 441865 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=441865&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt;&gt;&gt; Websites/perf.webkit.org/public/privileged-api/add-build-requests.php:44
&gt; &gt; &gt;&gt;&gt;&gt;          add_alternating_build_requests($db, $existing_test_type_build_requests, $additional_build_request_count, $current_order);
&gt; &gt; &gt;&gt;&gt; 
&gt; &gt; &gt;&gt;&gt; Does it really make sense for build requests to be alternating when requests are parallelized?
&gt; &gt; &gt;&gt; 
&gt; &gt; &gt;&gt; I think this code is used for adding retry build requests. I guess the name `add_alternating_build_requests` is no longer accurate here. May be rename it to `add_non_sequential_build_requests`?
&gt; &gt; &gt; 
&gt; &gt; &gt; But ordering is still affected, right? Like... should we be using ABABAB... for parallel builds or AAA...BBB...?
&gt; &gt; &gt; 
&gt; &gt; &gt; Are we pairing up each AB pair to a separate device, or are they full parallel in that A &amp; B could run in any random device somewhere?
&gt; &gt; 
&gt; &gt; Current plan is to pair one iteration A with one iteration B. So, when
&gt; &gt; retry, it behaves more like ABABAB.
&gt; 
&gt; I see. Then alternating order makes sense.
&gt; 
&gt; &gt; You made a very good point here. If we completely select random devices,
&gt; &gt; then the retry would be close to AABB but a bit more complicated.
&gt; &gt; 
&gt; &gt; Another approach is to have the syncing script automatically reschedule
&gt; &gt; failed runs without adding new build requests. And only fail if retry is
&gt; &gt; exhausted. With this approach, we should reject adding retry for
&gt; &gt; parallelized test group.
&gt; 
&gt; Yeah, those are both valid options. I guess we should figure out which model
&gt; makes most sense in the long term since changing this behavior later after
&gt; deployment would be highly problematic.
Now I think about it more, we are talking about two types of parallelized AB: parallel with paired iterations and parallel without pairing.

For now, we should stay with `parallel with paired A/B` the retry logic is the same as alternating. And this is how those build requests are ordered in current patch. Maybe I should update the description to be something like &apos;parallel (paired iteration)&apos;.

When we get to implementing the other one in the future, I think we can add another repetition type which behaves more like a sequential test on retry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809188</commentid>
    <comment_count>14</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-10-26 23:20:00 -0700</bug_when>
    <thetext>(In reply to dewei_zhu from comment #13)
&gt; (In reply to Ryosuke Niwa from comment #12)
&gt;
&gt; &gt; Yeah, those are both valid options. I guess we should figure out which model
&gt; &gt; makes most sense in the long term since changing this behavior later after
&gt; &gt; deployment would be highly problematic.
&gt; Now I think about it more, we are talking about two types of parallelized
&gt; AB: parallel with paired iterations and parallel without pairing.
&gt; 
&gt; For now, we should stay with `parallel with paired A/B` the retry logic is
&gt; the same as alternating. And this is how those build requests are ordered in
&gt; current patch. Maybe I should update the description to be something like
&gt; &apos;parallel (paired iteration)&apos;.
&gt; 
&gt; When we get to implementing the other one in the future, I think we can add
&gt; another repetition type which behaves more like a sequential test on retry.

Hm... there is also an option of being fully parallel as well. Perhaps we should call this mode &quot;paired parallel&quot; and call it that in triggerable_configuration_repetition_types as well.
Otherwise updating the database schema is gonna be annoying.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809531</commentid>
    <comment_count>15</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2021-10-27 18:56:20 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #14)
&gt; (In reply to dewei_zhu from comment #13)
&gt; &gt; (In reply to Ryosuke Niwa from comment #12)
&gt; &gt;
&gt; &gt; &gt; Yeah, those are both valid options. I guess we should figure out which model
&gt; &gt; &gt; makes most sense in the long term since changing this behavior later after
&gt; &gt; &gt; deployment would be highly problematic.
&gt; &gt; Now I think about it more, we are talking about two types of parallelized
&gt; &gt; AB: parallel with paired iterations and parallel without pairing.
&gt; &gt; 
&gt; &gt; For now, we should stay with `parallel with paired A/B` the retry logic is
&gt; &gt; the same as alternating. And this is how those build requests are ordered in
&gt; &gt; current patch. Maybe I should update the description to be something like
&gt; &gt; &apos;parallel (paired iteration)&apos;.
&gt; &gt; 
&gt; &gt; When we get to implementing the other one in the future, I think we can add
&gt; &gt; another repetition type which behaves more like a sequential test on retry.
&gt; 
&gt; Hm... there is also an option of being fully parallel as well. Perhaps we
&gt; should call this mode &quot;paired parallel&quot; and call it that in
&gt; triggerable_configuration_repetition_types as well.
&gt; Otherwise updating the database schema is gonna be annoying.
I agree. Renaming enum is supported if we upgrade Postgres to 10 or newer: https://www.postgresql.org/docs/10/sql-altertype.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809559</commentid>
    <comment_count>16</comment_count>
      <attachid>442669</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-10-27 21:03:15 -0700</bug_when>
    <thetext>Created attachment 442669
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809856</commentid>
    <comment_count>17</comment_count>
      <attachid>442669</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-10-28 15:01:44 -0700</bug_when>
    <thetext>Comment on attachment 442669
Patch

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

&gt; Websites/perf.webkit.org/browser-tests/test-group-form-tests.js:40
&gt; +        testGroupForm.part(&apos;repetition-type-selection&apos;).selectedRepetitionType = &apos;sequential&apos;;

This should probably be repetition-type or repetition-type-selector?

&gt; Websites/perf.webkit.org/migrate-database.sql:29
&gt; +    PRIMARY KEY (configrepetition_config, configrepetition_type));
&gt; +

We should probably also insert &apos;alternating&apos; and &apos;sequential&apos; as supported types for all existing triggerables?

&gt; Websites/perf.webkit.org/public/include/json-header.php:199
&gt; +    $configrepetition_rows = $db-&gt;select_rows(&apos;triggerable_configuration_repetition_types&apos;, &apos;configrepetition&apos;, array());

I guess this is okay because we expect triggerable_configuration_repetition_types to be a very small table.

&gt; Websites/perf.webkit.org/public/privileged-api/add-build-requests.php:37
&gt; +        exit_with_error(&apos;CommitSetNotSupportedForNonSequentialRepetitionType&apos;);

We can just say CommitSetNotSupportedRepetitionType in the error name but then spit out the repetition type.
That way, we can diagnose what got sent to the server when we see this error message. Maybe also spit out the commit set ID?

&gt; Websites/perf.webkit.org/public/privileged-api/create-test-group.php:84
&gt; +            $supported_repetition_types = array();
&gt; +            $rows = $db-&gt;select_rows(&apos;triggerable_configuration_repetition_types&apos;, NULL, array(&apos;configrepetition_config&apos; =&gt; $triggerable_configuration[&apos;trigconfig_id&apos;]));
&gt; +            foreach ($rows as $row)
&gt; +                array_push($supported_repetition_types, $row[&apos;configrepetition_type&apos;]);
&gt; +        }

Why don&apos;t we just query the database directly instead of fetching the entire table &amp; looping over the result?
i.e. $is_repetition_type_supported = !!$db-&gt;select_first_row(&apos;triggerable_configuration_repetition_types&apos;,
    &apos;configrepetition&apos;, array(&apos;config&apos; =&gt; $triggerable_configuration[&apos;trigconfig_id&apos;], &apos;type&apos; =&gt; $repetition_type));

&gt; Websites/perf.webkit.org/public/v3/components/repetition-type-selection.js:17
&gt; +        const repetitionType = this.content(&apos;repetition-type&apos;);
&gt; +        repetitionType.onchange = () =&gt; this.#selectedRepetitionType = repetitionType.value;

Seems like we can just do:
this.content(&apos;repetition-type&apos;).onchange = ~

&gt; Websites/perf.webkit.org/public/v3/models/triggerable.js:31
&gt; +        if (!triggerableConfiguration)
&gt;              return null;
&gt; -        for (; test; test = test.parentTest()) {
&gt; -            const key = `${test.id()}-${platform.id()}`;
&gt; -            if (key in configurationMap)
&gt; -                return configurationMap[key];
&gt; -        }
&gt; -        return null;
&gt; +        return triggerableConfiguration.triggerable;

Now we can do this:
TriggerableConfiguration.findByTestAndPlatform(test, platform).?triggerable;

&gt; Websites/perf.webkit.org/public/v3/models/triggerable.js:69
&gt; +    static createIdForTestAndPlatform(test, platform) { return `${test.id()}-${platform.id()}`; }

Maybe just say idForTestAndPlatform? We&apos;re not really creating any object here.

&gt; Websites/perf.webkit.org/public/v3/models/triggerable.js:76
&gt; +        return TriggerableConfiguration.ensureSingleton(id, {
&gt; +            test, platform, supportedRepetitionTypes, triggerable
&gt; +        });

Seems like can it this in a single line?

&gt; Websites/perf.webkit.org/server-tests/api-update-triggerable-tests.js:482
&gt; +        let result = await db.query(&apos;SELECT configrepetition_type AS repetition_type FROM triggerable_configuration_repetition_types&apos;);

Why not selectAll?

&gt; Websites/perf.webkit.org/server-tests/api-update-triggerable-tests.js:484
&gt; +        assert.deepEqual(result.rows.map(row =&gt; row[&apos;repetition_type&apos;]).sort(), [&apos;alternating&apos;, &apos;sequential&apos;]);

Seems like we should just sort by type when we query the database?

&gt; Websites/perf.webkit.org/server-tests/privileged-api-create-analysis-task-tests.js:882
&gt; +    it(&apos;should reject with &quot;UnsupportedRepetitionType&quot; when repetition type is not supported under triggerable configuration&apos;, async () =&gt; {

We should probably add another test for rejecting sequential as well as invalid string just as sanity check.

&gt; Websites/perf.webkit.org/server-tests/privileged-api-create-test-group-tests.js:1468
&gt; +    it(&apos;should reject with &quot;InvalidRepetitionType&quot; if repetition type is not &quot;alternating&quot;, &quot;sequential&quot; or &quot;parallel&quot;&apos;, async () =&gt; {

Use Oxford comma? I think that&apos;s WebKit standard.

&gt; Websites/perf.webkit.org/server-tests/privileged-api-create-test-group-tests.js:1480
&gt; +    it(&apos;should reject with &quot;UnsupportedRepetitionType&quot; if repetition type is &quot;parallel&quot; but triggerable configuration only supports &quot;sequential&quot; and &quot;alternating&quot;&apos;, async () =&gt; {

Nit: parallel -&gt; paired-parallel

&gt; Websites/perf.webkit.org/server-tests/resources/mock-data.js:328
&gt; +            &apos;repetitionTypesForScheduling&apos;: [&apos;alternating&apos;, &apos;sequential&apos;],

Why not just repetitionTypes?

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:17
&gt; +function configWithOneTesterTwoBuilders(testConfigurationsOverride=[{types: [&apos;some&apos;], platforms: [&apos;some platform&apos;], builders: [&apos;builder-1&apos;]}]) {

Nit: Need spaces around =.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:688
&gt; +    it(&apos;should build root but bot schedule tests for &quot;paired-parallel&quot; test group on triggerable that only schedules tests for &quot;alternating&quot; and &quot;sequential&quot; test groups&apos;, async () =&gt; {

I don&apos;t understand this description.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809857</commentid>
    <comment_count>18</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-10-28 15:02:09 -0700</bug_when>
    <thetext>As we discussed, let&apos;s fold the repetition type into builder configurations for buildbot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810025</commentid>
    <comment_count>19</comment_count>
      <attachid>442804</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-10-29 04:05:47 -0700</bug_when>
    <thetext>Created attachment 442804
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810391</commentid>
    <comment_count>20</comment_count>
      <attachid>442903</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-10-29 22:46:50 -0700</bug_when>
    <thetext>Created attachment 442903
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810914</commentid>
    <comment_count>21</comment_count>
      <attachid>442903</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-11-01 15:27:19 -0700</bug_when>
    <thetext>Comment on attachment 442903
Patch

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

&gt; Websites/perf.webkit.org/ChangeLog:9
&gt; +        Add &apos;TriggerableConfiguration&apos; model to store repetition types information for each (platform, test) pair.

Nit: store repetition *type* information

&gt; Websites/perf.webkit.org/ChangeLog:12
&gt; +        schedule A/B testing for builder supported repetition types.

Nit: schedule A/B testing on a builder which supports a given repetition type.

&gt; Websites/perf.webkit.org/migrate-database.sql:66
&gt; +ALTER TYPE analysis_test_group_repetition_type ADD VALUE IF NOT EXISTS &apos;paired-parallel&apos;;

This is very nice!

&gt; Websites/perf.webkit.org/public/privileged-api/create-test-group.php:86
&gt; +                exit_with_error(&apos;UnsupportedRepetitionType&apos;, array(&apos;repetitionType&apos; =&gt; $repetition_type));

Let&apos;s also emit the triggerable ID. Otherwise, this error would be undistingushiable from the above error.
Maybe also rename this to UnsupportedRepetitionTypeForTriggerable?

&gt; Websites/perf.webkit.org/public/v3/components/repetition-type-selection.js:24
&gt; +        this.#selectedRepetitionType = repetitionType;

We should schedule to render here.

&gt; Websites/perf.webkit.org/public/v3/components/repetition-type-selection.js:30
&gt; +        this.content(&apos;repetition-type&apos;).disabled = value;

This should be done in render() function.

&gt; Websites/perf.webkit.org/public/v3/components/repetition-type-selection.js:37
&gt; +        if (!this.#triggerableConfiguration)
&gt; +            this.#selectedRepetitionType = null;

Can we turn this into an early return?

&gt; Websites/perf.webkit.org/public/v3/components/repetition-type-selection.js:38
&gt; +        else if (this.#triggerableConfiguration &amp;&amp; !this.#triggerableConfiguration.isSupportedRepetitionType(this.#selectedRepetitionType))

That way, we don&apos;t have to check the nullity for the second time here.

&gt; Websites/perf.webkit.org/public/v3/components/repetition-type-selection.js:40
&gt; +    }

We should schedule to render here.

&gt; Websites/perf.webkit.org/public/v3/components/repetition-type-selection.js:55
&gt; +        if (!this.#triggerableConfiguration)
&gt; +            return;

Wouldn&apos;t this leave the stale list of repetition types?
I think we should clear out select elements regardless of whether we have #triggerableConfiguration or not.

&gt; Websites/perf.webkit.org/public/v3/components/repetition-type-selection.js:56
&gt; +        this.#renderRepetitionTypeListLazily.evaluate( this.#selectedRepetitionType, ...this.#triggerableConfiguration.supportedRepetitionTypes);

So do this: (this.#triggerableConfiguration?.supportedRepetitionTypes || [])

&gt; Websites/perf.webkit.org/public/v3/components/repetition-type-selection.js:62
&gt; +            this.createElement(&apos;option&apos;,{ selected: repetitionType == selectedRepetitionType, value: repetitionType },

Nit: Need a space between , and {.

&gt; Websites/perf.webkit.org/public/v3/components/test-group-form.js:25
&gt; +        if (!testGroup)
&gt; +            return;

Why are we ignoring null? This will mean we&apos;d leave the stale result, right?
We should clear out values and schedule to render even when testGroup is null.
If this is not expected to happen, then we should simply assert that instead of exiting early.

&gt; Websites/perf.webkit.org/public/v3/models/triggerable.js:13
&gt;          for (const config of object.configurations) {

Maybe we should just do this:
this._triggerableConfigurationList = object.configurations.map((config) =&gt; {
    this._acceptedTests.add(config.test);
    return TriggerableConfiguration.createForTriggerable(this, config.test, config.platform, config.supportedRepetitionTypes);
});

&gt; Websites/perf.webkit.org/public/v3/models/triggerable.js:26
&gt; +    static findByTestConfiguration(test, platform) { return TriggerableConfiguration.findByTestAndPlatform(test, platform)?.triggerable; }

Nice!

&gt; Websites/perf.webkit.org/public/v3/models/triggerable.js:60
&gt; +    get supportedRepetitionTypes() { return this.#supportedRepetitionTypes; }

Instead of returning the internal array (which allows mutations by the caller), can we return a copy like so:
return [...this.#supportedRepetitionTypes];

&gt; Websites/perf.webkit.org/public/v3/models/triggerable.js:68
&gt; +        return TriggerableConfiguration.ensureSingleton(id, { test, platform, supportedRepetitionTypes, triggerable });

I don&apos;t think we normally places a space at the beginning and at the end of { ~ } for a dictionary like this?

&gt; Websites/perf.webkit.org/server-tests/api-update-triggerable-tests.js:480
&gt; +        const initialUpdate = createUpdateWithRepetitionTypes([&apos;alternating&apos;, &apos;sequential&apos;]);
&gt; +        await addWorkerForReport(initialUpdate);
&gt; +        await TestServer.remoteAPI().postJSONWithStatus(&apos;/api/update-triggerable&apos;, initialUpdate);

Maybe also test an empty array or not specifying it at all and make sure it doesn&apos;t blow up?

&gt; Websites/perf.webkit.org/server-tests/privileged-api-create-analysis-task-tests.js:882
&gt; +    it(&apos;should reject with &quot;UnsupportedRepetitionType&quot; when &quot;paired-parallel&quot; is not supported under triggerable configuration&apos;, async () =&gt; {

Nit: Maybe just &quot;is not supported by the triggerable&quot;?

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:17
&gt; +function configWithOneTesterTwoBuilders(testConfigurationsOverride=[{types: [&apos;some&apos;], platforms: [&apos;some platform&apos;], builders: [&apos;builder-1&apos;],

Nit: Need a space around =.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:18
&gt; +    supportedRepetitionTypes: [&apos;alternating&apos;, &apos;sequential&apos;]}]) {

Nit: { should be on the next line.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:712
&gt; +    it(&apos;should respected &quot;supportedRepetitionTypes&quot; specified by build and test configurations&apos;, async () =&gt; {

Did you mean something like this?: should be able to schedule a &quot;paired-parallel&quot; build request for building a patch on buildbot

This test is getting so long that we should probably add some helper function to shorten it so that can understand the core logic of the test.
Also, don&apos;t we need a test for syncing script taking &quot;build&quot; request but not &quot;test&quot; request?

&gt; Websites/perf.webkit.org/tools/js/buildbot-syncer.js:398
&gt; -            for (const type of entry[&apos;types&apos;]) {
&gt; +            for (let type of entry[&apos;types&apos;]) {

Keep const?

&gt; Websites/perf.webkit.org/tools/js/buildbot-triggerable.js:87
&gt; +        await Promise.all(Array.from(testGroupIds).map(testGroupId =&gt; TestGroup.fetchById(testGroupId, /* ignoreCache */ true)));

Why did we have to move this here?
Please explain in the change log.

&gt; Websites/perf.webkit.org/unit-tests/buildbot-syncer-tests.js:1806
&gt; +            const syncer = BuildbotSyncer._loadConfig(MockRemoteAPI, smallConfigurationWithCustomRepetitionTypes(), builderNameToIDMap())[0];

Maybe smallConfigurationWithCustomRepetitionTypes should take an array as an input?

&gt; Websites/perf.webkit.org/unit-tests/buildbot-syncer-tests.js:1809
&gt; +            syncer.scheduleRequestInGroupIfAvailable(request, [request], null);

Check that this function returns null?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811059</commentid>
    <comment_count>22</comment_count>
      <attachid>442903</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-11-02 01:32:06 -0700</bug_when>
    <thetext>Comment on attachment 442903
Patch

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

Thanks for the review.

&gt;&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:712
&gt;&gt; +    it(&apos;should respected &quot;supportedRepetitionTypes&quot; specified by build and test configurations&apos;, async () =&gt; {
&gt; 
&gt; Did you mean something like this?: should be able to schedule a &quot;paired-parallel&quot; build request for building a patch on buildbot
&gt; 
&gt; This test is getting so long that we should probably add some helper function to shorten it so that can understand the core logic of the test.
&gt; Also, don&apos;t we need a test for syncing script taking &quot;build&quot; request but not &quot;test&quot; request?

This test also ensures test type `paired-parallel` build request is not scheduled. That&apos;s why it looks gigantic. Will try to make it smaller.

&gt;&gt; Websites/perf.webkit.org/tools/js/buildbot-triggerable.js:87
&gt;&gt; +        await Promise.all(Array.from(testGroupIds).map(testGroupId =&gt; TestGroup.fetchById(testGroupId, /* ignoreCache */ true)));
&gt; 
&gt; Why did we have to move this here?
&gt; Please explain in the change log.

We need fetch all related test groups before `_validateRequests` where repetition type from test group will be used in `BuildbotSyncer.matchesConfiguration`. Will add that into ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811326</commentid>
    <comment_count>23</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2021-11-02 17:22:24 -0700</bug_when>
    <thetext>Landed in r285189.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436484</attachid>
            <date>2021-08-26 02:47:06 -0700</date>
            <delta_ts>2021-10-20 04:35:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229545-20210826024705.patch</filename>
            <type>text/plain</type>
            <size>83803</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNjE2CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA5YWMyYzljZDQwNDM5OGJjMTBlNzg3ZWNkNDQzMjdmMThmYWU5N2M2Li40OWI2YWRmYjhj
NzRkOTM1YzM1NTY4Nzk3YTY1ODIxNzhkODQyYWFhIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw4MyBAQAorMjAyMS0wOC0yNiAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgJ3BhcmFsbGVsJyByZXBldGl0aW9uIHR5cGUgZm9y
IEEvQiB0ZXN0aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI5NTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkICdwYXJhbGxlbCcgcmVwZXRpdGlvbiB0eXBlIGZvciBBL0IgdGVzdGluZy4KKyAg
ICAgICAgVGllZCByZXBldGl0aW9uIHR5cGUgdG8gdHJpZ2dlcmFibGUgY29uZmlndXJhaW9uLgor
ICAgICAgICBVcGRhdGUgQS9CIHRlc3RpbmcgVUkgdG8gcmVuZGVyIHN1cHBvcnRlZCByZXBldGl0
aW9uIHR5cGVzIHdpdGggZGlmZmVyZW50IHRlc3QgY29uZmlndXJhdGlvbi4KKyAgICAgICAgRXh0
ZW5kIEEvQiB0ZXN0aW5nIHN5bmNpbmcgc2NyaXB0IHRvIHVwZGF0ZSByZXBldGl0aW9uIHR5cGVz
IGZvciBlYWNoIHRyaWdnZXJhYmxlIGNvbmZpZ3VyYXRpb24KKyAgICAgICAgYW5kIG9ubHkgc2No
ZWR1bGUgQS9CIHRlc3RpbmcgZm9yIHN1cHBvcnRlZCByZXBldGl0aW9uIHR5cGVzLgorCisgICAg
ICAgICogaW5pdC1kYXRhYmFzZS5zcWw6IEFkZGVkICd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9u
X3JlcGV0aXRpb25fdHlwZXMnIHRhYmxlIHRvIHN0b3JlIHN1cHBvcnRlZAorICAgICAgICByZXBl
dGl0aW9uIHR5cGVzIGZvciBlYWNoIHRyaWdnZXJhYmxlIGNvbmZpZ3VyYXRpb24uCisgICAgICAg
IEFkZGVkICdwYXJhbGxlbCcgcmVwZXRpdGlvbiB0eXBlLgorICAgICAgICAqIG1pZ3JhdGUtZGF0
YWJhc2Uuc3FsOiBVcGRhdGVkIG1pZ3JhdGlvbiBzY3JpcHRzLgorICAgICAgICAqIHB1YmxpYy9h
cGkvdXBkYXRlLXRyaWdnZXJhYmxlLnBocDogQWRkZWQgbG9naWMgdG8gdXBkYXRlIHJlcGV0aXRp
b24gdHlwZXMgZm9yIGVhY2ggdGlyZ2dlcmFibGUKKyAgICAgICAgY29uZmlndXJhdGlvbnMuCisg
ICAgICAgICogcHVibGljL2luY2x1ZGUvY29tbWl0LXNldHMtaGVscGVycy5waHA6IEFkZGVkIHN1
cHBvcnQgZm9yICdwYXJhbGxlbCcgcmVwZXRpdGlvbiB0eXBlLgorICAgICAgICAqIHB1YmxpYy9p
bmNsdWRlL2pzb24taGVhZGVyLnBocDogRXh0ZW5kZWQgJ2ZpbmRfdHJpZ2dlcmFibGVfZm9yX3Rh
c2snIHRvIGluY2x1ZGUgc3VwcG9ydGVkCisgICAgICAgIHJlcGV0aXRpb24gdHlwZXMgaW4gdGhl
IHJldHVybi4KKyAgICAgICAgKiBwdWJsaWMvaW5jbHVkZS9tYW5pZmVzdC1nZW5lcmF0b3IucGhw
OiBBZGRlZCBsb2dpYyB0byBpbmNsdWRlIHN1cHBvcnRlZCByZXBldGl0aW9uIHR5cGVzIGluIG1h
bmlmZXN0LgorICAgICAgICAqIHB1YmxpYy9wcml2aWxlZ2VkLWFwaS9hZGQtYnVpbGQtcmVxdWVz
dHMucGhwOiBFeHRlbmRlZCBBUEkgdG8gc3VwcG9ydCAncGFyYWxsZWwnIHJlcGV0aXRpb24gdHlw
ZS4KKyAgICAgICAgKiBwdWJsaWMvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2su
cGhwOiBFeHRlbmRlZCBBUEkgdG8gc3VwcG9ydCAncGFyYWxsZWwnIHJlcGV0aXRpb24gdHlwZS4K
KyAgICAgICAgKiBwdWJsaWMvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAucGhwOiBF
eHRlbmRlZCBBUEkgdG8gc3VwcG9ydCAncGFyYWxsZWwnIHJlcGV0aXRpb24gdHlwZS4KKyAgICAg
ICAgKiBwdWJsaWMvdjMvY29tcG9uZW50cy9hbmFseXNpcy1yZXN1bHRzLXZpZXdlci5qczoKKyAg
ICAgICAgKEFuYWx5c2lzUmVzdWx0c1ZpZXdlci5wcm90b3R5cGUuY3VycmVudFRlc3RHcm91cCk6
IEFkZGVkIG1ldGhvZCB0byBleHBvc2UgY3VycmVudCB0ZXN0IGdyb3VwLgorICAgICAgICAqIHB1
YmxpYy92My9jb21wb25lbnRzL2N1c3RvbS1jb25maWd1cmF0aW9uLXRlc3QtZ3JvdXAtZm9ybS5q
czoKKyAgICAgICAgKEN1c3RvbUNvbmZpZ3VyYXRpb25UZXN0R3JvdXBGb3JtLnByb3RvdHlwZS5k
aWRDb25zdHJ1Y3RTaGFkb3dUcmVlKTogQWRkZWQgbG9naWMgdG8gdXBkYXRlIHN1cHBvcnRlZAor
ICAgICAgICByZXBldGl0aW9uIHR5cGUuCisgICAgICAgICogcHVibGljL3YzL2NvbXBvbmVudHMv
dGVzdC1ncm91cC1mb3JtLmpzOiBBZGRlZCBzdXBwb3J0IHRvIHJlbmRlciBzdXBwb3J0ZWQgcmVw
ZXRpdGlvbiB0eXBlcy4KKyAgICAgICAgKFRlc3RHcm91cEZvcm0pOgorICAgICAgICAoVGVzdEdy
b3VwRm9ybS5wcm90b3R5cGUuc2V0UmVwZXRpdGlvblR5cGUpOgorICAgICAgICAoVGVzdEdyb3Vw
Rm9ybS5wcm90b3R5cGUuc2V0U3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzKToKKyAgICAgICAgKFRl
c3RHcm91cEZvcm0ucHJvdG90eXBlLnJlbmRlcik6CisgICAgICAgIChUZXN0R3JvdXBGb3JtLnBy
b3RvdHlwZS5fcmVuZGVyUmVwZXRpdGlvblR5cGVzKToKKyAgICAgICAgKFRlc3RHcm91cEZvcm0u
cHJvdG90eXBlLmRpZENvbnN0cnVjdFNoYWRvd1RyZWUpOgorICAgICAgICAoVGVzdEdyb3VwRm9y
bS5wcm90b3R5cGUuc3RhcnRUZXN0aW5nKToKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9kZWxzL21h
bmlmZXN0LmpzOiBBZGRlZCByZXBldGl0aW9uIHR5cGVzIHdoZW4gY3JlYXRpbmcgdHJpZ2dlcmFi
bGVzLgorICAgICAgICAoTWFuaWZlc3QuX2RpZEZldGNoTWFuaWZlc3QpOgorICAgICAgICAoTWFu
aWZlc3QpOgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvdGVzdC1ncm91cC5qczogQWRkZWQg
c3VwcG9ydCBmb3IgJ3BhcmFsbGVsJyByZXBldGl0aW9uIHR5cGUuCisgICAgICAgIChUZXN0R3Jv
dXAucHJvdG90eXBlLmFzeW5jIHNjaGVkdWxlTW9yZVJlcXVlc3RzT3JDbGVhckZsYWcpOgorICAg
ICAgICAqIHB1YmxpYy92My9tb2RlbHMvdHJpZ2dlcmFibGUuanM6IEFkZGVkIG1ldGhvZCB0byBm
aW5kIHN1cHBvcnRlZCByZXBldGl0aW9uIHR5cGVzIGZvciBhIHRlc3QgYW5kIHBsYXRmb3JtIHBh
aXIuCisgICAgICAgIChUcmlnZ2VyYWJsZSk6CisgICAgICAgIChUcmlnZ2VyYWJsZS5zdXBwb3J0
ZWRSZXBldGl0aW9uVHlwZXNCeUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIHB1YmxpYy92My9w
YWdlcy9hbmFseXNpcy10YXNrLXBhZ2UuanM6IEFkZGVkIGxvZ2ljIHRvIHJlbmRlciBzdXBwb3J0
ZWQgcmVwZXRpdGlvbiB0eXBlcy4KKyAgICAgICAgKEFuYWx5c2lzVGFza1Jlc3VsdHNQYW5lLnBy
b3RvdHlwZS5yZW5kZXIpOgorICAgICAgICAoQW5hbHlzaXNUYXNrVGVzdEdyb3VwUGFuZS5wcm90
b3R5cGUuX3JlbmRlckN1cnJlbnRUZXN0R3JvdXApOgorICAgICAgICAqIHB1YmxpYy92My9wYWdl
cy9jaGFydC1wYW5lLmpzOiBBZGRlZCBsb2dpYyB0byByZW5kZXIgc3VwcG9ydGVkIHJlcGV0aXRp
b24gdHlwZXMuCisgICAgICAgIChDaGFydFBhbmUpOgorICAgICAgICAoQ2hhcnRQYW5lLnByb3Rv
dHlwZS5kaWRDb25zdHJ1Y3RTaGFkb3dUcmVlKToKKyAgICAgICAgKENoYXJ0UGFuZS5wcm90b3R5
cGUuYXN5bmMgX2FuYWx5emVSYW5nZSk6CisgICAgICAgIChDaGFydFBhbmUucHJvdG90eXBlLl9y
ZW5kZXJBY3Rpb25Ub29sYmFyKToKKyAgICAgICAgKENoYXJ0UGFuZS5wcm90b3R5cGUuX3JlbmRl
clJlcGV0aXRpb25UeXBlcyk6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1tYW5pZmVzdC10
ZXN0cy5qczogQWRkZWQgdW5pdCB0ZXN0cy4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXVw
ZGF0ZS10cmlnZ2VyYWJsZS10ZXN0cy5qczogQWRkZWQgYW5kIHVwZGF0ZWQgdW5pdCB0ZXN0cy4K
KyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXVwbG9hZC1yb290LXRlc3RzLmpzOiBVcGRhdGVk
IHVuaXQgdGVzdHMuCisgICAgICAgICogc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWFkZC1i
dWlsZC1yZXF1ZXN0cy10ZXN0cy5qczogVXBkYXRlZCB1bml0IHRlc3RzLgorICAgICAgICAqIHNl
cnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtYW5hbHlzaXMtdGFzay10ZXN0cy5qczog
VXBkYXRlZCB1bml0IHRlc3RzLgorICAgICAgICAqIHNlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFw
aS1jcmVhdGUtdGVzdC1ncm91cC10ZXN0cy5qczogQWRkZWQgYW5kIHVwZGF0ZWQgdW5pdCB0ZXN0
cy4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBkYXRlLXRlc3QtZ3Jv
dXAtdGVzdHMuanM6IEFkZGVkIGFuZCB1cGRhdGVkIHVuaXQgdGVzdHMuCisgICAgICAgICogc2Vy
dmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanM6IEFkZGVkIG1vY2sgZGF0YSBlbnRyaWVz
IGZvciAndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJyB0YWJsZS4K
KyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10
ZXN0cy5qczoKKyAgICAgICAgKiB0b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanM6IEFkZGVkIHN1
cHBvcnQgZm9yIHVwZGF0aW5nIHN1cHBvcnRlZCByZXBldGl0aW9uIHR5cGVzIGZvciB0cmlnZ2Vy
YWJsZSBjb25maWd1cmF0aW9ucy4KKyAgICAgICAgKEJ1aWxkYm90U3luY2VyKToKKyAgICAgICAg
KEJ1aWxkYm90U3luY2VyLnByb3RvdHlwZS5hZGRUZXN0Q29uZmlndXJhdGlvbik6CisgICAgICAg
IChCdWlsZGJvdFN5bmNlci5wcm90b3R5cGUubWF0Y2hlc0NvbmZpZ3VyYXRpb24pOgorICAgICAg
ICAoQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcpOgorICAgICAgICAqIHRvb2xzL2pzL2J1aWxk
Ym90LXRyaWdnZXJhYmxlLmpzOiBBZGRlZCBzdXBwb3J0IGZvciByZXBldGl0aW9uIHR5cGVzLgor
ICAgICAgICAoQnVpbGRib3RUcmlnZ2VyYWJsZS5wcm90b3R5cGUudXBkYXRlVHJpZ2dlcmFibGUp
OgorICAgICAgICAoQnVpbGRib3RUcmlnZ2VyYWJsZS5wcm90b3R5cGUuYXN5bmMgc3luY09uY2Up
OgorICAgICAgICAqIHVuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzOiBVcGRhdGVk
IGFuZCBhZGRlZCB1bml0IHRlc3RzLgorICAgICAgICAoc2FtcGxlaU9TQ29uZmlnKToKKyAgICAg
ICAgKHNhbXBsZWlPU0NvbmZpZ1dpdGhFeHBhbnNpb25zKToKKyAgICAgICAgKHNtYWxsQ29uZmln
dXJhdGlvbik6CisgICAgICAgIChzbWFsbENvbmZpZ3VyYXRpb25XaXRoQ3VzdG9tUmVwZXRpdGlv
blR5cGVzKToKKyAgICAgICAgKGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdCk6CisKIDIwMjEtMDct
MjAgIERld2VpIFpodSAgPGRld2VpX3podUBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIGJpZ2lu
dCBmb3IgJ2NvbW1pdF9vcmRlcicgZmllbGQgaW4gJ2NvbW1pdHMnIHRhYmxlIHRvIHN1cHBvcnQg
bGFyZ2VyIHJhbmdlLgpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQt
ZGF0YWJhc2Uuc3FsIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3Fs
CmluZGV4IDA1Yzc4NGFkZTRhY2JhOGUxNTU3OTY0OGI2M2ViOTFjZmQ2MTM0NDcuLjIzMmY5YmM5
YTEzMDQzYzliYjIxY2JhNDk0NDdhNWI0NWVjN2Q3M2UgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwKQEAgLTI0LDYgKzI0LDcgQEAgRFJPUCBUQUJMRSBJRiBF
WElTVFMgYW5hbHlzaXNfc3RyYXRlZ2llcyBDQVNDQURFOwogRFJPUCBUWVBFIElGIEVYSVNUUyBh
bmFseXNpc190YXNrX3Jlc3VsdF90eXBlIENBU0NBREU7CiBEUk9QIFRBQkxFIElGIEVYSVNUUyBi
dWlsZF90cmlnZ2VyYWJsZXMgQ0FTQ0FERTsKIERST1AgVEFCTEUgSUYgRVhJU1RTIHRyaWdnZXJh
YmxlX2NvbmZpZ3VyYXRpb25zIENBU0NBREU7CitEUk9QIFRBQkxFIElGIEVYSVNUUyB0cmlnZ2Vy
YWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMgQ0FTQ0FERTsKIERST1AgVEFCTEUg
SUYgRVhJU1RTIHRyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzIENBU0NBREU7CiBEUk9QIFRB
QkxFIElGIEVYSVNUUyB0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMgQ0FTQ0FERTsKIERST1AgVEFC
TEUgSUYgRVhJU1RTIHVwbG9hZGVkX2ZpbGVzIENBU0NBREU7CkBAIC0yNjUsMTEgKzI2NiwxOCBA
QCBDUkVBVEUgVEFCTEUgdHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzICgKICAgICBDT05TVFJBSU5U
IHJlcG9zaXRvcnlfbXVzdF9iZV91bmlxdWVfZm9yX3JlcG9zaXRvcnlfZ3JvdXAgVU5JUVVFKHRy
aWdyZXBvX3JlcG9zaXRvcnksIHRyaWdyZXBvX2dyb3VwKSk7CiAKIENSRUFURSBUQUJMRSB0cmln
Z2VyYWJsZV9jb25maWd1cmF0aW9ucyAoCisgICAgdHJpZ2NvbmZpZ19pZCBzZXJpYWwgUFJJTUFS
WSBLRVksCiAgICAgdHJpZ2NvbmZpZ190ZXN0IGludGVnZXIgUkVGRVJFTkNFUyB0ZXN0cyBOT1Qg
TlVMTCwKICAgICB0cmlnY29uZmlnX3BsYXRmb3JtIGludGVnZXIgUkVGRVJFTkNFUyBwbGF0Zm9y
bXMgTk9UIE5VTEwsCiAgICAgdHJpZ2NvbmZpZ190cmlnZ2VyYWJsZSBpbnRlZ2VyIFJFRkVSRU5D
RVMgYnVpbGRfdHJpZ2dlcmFibGVzIE5PVCBOVUxMLAogICAgIENPTlNUUkFJTlQgdHJpZ2dlcmFi
bGVfbXVzdF9iZV91bmlxdWVfZm9yX3Rlc3RfYW5kX3BsYXRmb3JtIFVOSVFVRSh0cmlnY29uZmln
X3Rlc3QsIHRyaWdjb25maWdfcGxhdGZvcm0pKTsKIAorQ1JFQVRFIFRZUEUgYW5hbHlzaXNfdGVz
dF9ncm91cF9yZXBldGl0aW9uX3R5cGUgYXMgRU5VTSAoJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRp
YWwnLCAncGFyYWxsZWwnKTsKK0NSRUFURSBUQUJMRSB0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9u
X3JlcGV0aXRpb25fdHlwZXMgKAorICAgIHRyaWdnZXJhYmxlX2NvbmZpZyBJTlRFR0VSIE5PVCBO
VUxMIFJFRkVSRU5DRVMgdHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMgT04gREVMRVRFIENBU0NB
REUsCisgICAgY29uZmlnX3JlcGV0aXRpb25fdHlwZSBhbmFseXNpc190ZXN0X2dyb3VwX3JlcGV0
aXRpb25fdHlwZSBOT1QgTlVMTCwKKyAgICBQUklNQVJZIEtFWSAodHJpZ2dlcmFibGVfY29uZmln
LCBjb25maWdfcmVwZXRpdGlvbl90eXBlKSk7CisKIENSRUFURSBUQUJMRSB1cGxvYWRlZF9maWxl
cyAoCiAgICAgZmlsZV9pZCBzZXJpYWwgUFJJTUFSWSBLRVksCiAgICAgZmlsZV9jcmVhdGVkX2F0
IHRpbWVzdGFtcCBOT1QgTlVMTCBERUZBVUxUIChDVVJSRU5UX1RJTUVTVEFNUCBBVCBUSU1FIFpP
TkUgJ1VUQycpLApAQCAtMjgzLDcgKzI5MSw2IEBAIENSRUFURSBUQUJMRSB1cGxvYWRlZF9maWxl
cyAoCiBDUkVBVEUgSU5ERVggZmlsZV9hdXRob3JfaW5kZXggT04gdXBsb2FkZWRfZmlsZXMoZmls
ZV9hdXRob3IpOwogQ1JFQVRFIFVOSVFVRSBJTkRFWCBmaWxlX3NoYTI1Nl9pbmRleCBPTiB1cGxv
YWRlZF9maWxlcyhmaWxlX3NoYTI1NikgV0hFUkUgZmlsZV9kZWxldGVkX2F0IGlzIE5VTEw7CiAK
LUNSRUFURSBUWVBFIGFuYWx5c2lzX3Rlc3RfZ3JvdXBfcmVwZXRpdGlvbl90eXBlIGFzIEVOVU0g
KCdhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJyk7CiBDUkVBVEUgVEFCTEUgYW5hbHlzaXNfdGVz
dF9ncm91cHMgKAogICAgIHRlc3Rncm91cF9pZCBzZXJpYWwgUFJJTUFSWSBLRVksCiAgICAgdGVz
dGdyb3VwX3Rhc2sgaW50ZWdlciBSRUZFUkVOQ0VTIGFuYWx5c2lzX3Rhc2tzIE5PVCBOVUxMLApk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL21pZ3JhdGUtZGF0YWJhc2Uuc3Fs
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL21pZ3JhdGUtZGF0YWJhc2Uuc3FsCmluZGV4IGJk
MWZjMjRjYTVmYTZiZDY0ZTY5NDBjNGM0M2U0YWFjMzBlODM2NmUuLmYxNjQ0MjE0YmVmZDdlMTY3
ODg1OWQwNDU5OTc0NDEyZTQ2M2VmZjEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9taWdyYXRlLWRhdGFiYXNlLnNxbAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
bWlncmF0ZS1kYXRhYmFzZS5zcWwKQEAgLTMsNyArMyw3IEBAIERPICQkCiBCRUdJTgogCiBJRiBO
T1QgRVhJU1RTIChTRUxFQ1QgTlVMTCBGUk9NIHBnX3R5cGUgV0hFUkUgdHlwbmFtZSA9ICdhbmFs
eXNpc190ZXN0X2dyb3VwX3JlcGV0aXRpb25fdHlwZScpIFRIRU4KLSAgICBDUkVBVEUgVFlQRSBh
bmFseXNpc190ZXN0X2dyb3VwX3JlcGV0aXRpb25fdHlwZSBhcyBFTlVNICgnYWx0ZXJuYXRpbmcn
LCAnc2VxdWVudGlhbCcpOworICAgIENSRUFURSBUWVBFIGFuYWx5c2lzX3Rlc3RfZ3JvdXBfcmVw
ZXRpdGlvbl90eXBlIGFzIEVOVU0gKCdhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJywgJ3BhcmFs
bGVsJyk7CiBFTkQgSUY7CiAKIEFMVEVSIFRBQkxFIGJ1aWxkX3JlcXVlc3RzIEFERCBDT0xVTU4g
SUYgTk9UIEVYSVNUUyByZXF1ZXN0X3N0YXR1c19kZXNjcmlwdGlvbiB2YXJjaGFyKDEwMjQpIERF
RkFVTFQgTlVMTDsKQEAgLTIyLDYgKzIyLDExIEBAIENSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RT
IHBsYXRmb3JtX2dyb3VwcyAoCiAgICAgcGxhdGZvcm1ncm91cF9uYW1lIHZhcmNoYXIoNjQpIE5P
VCBOVUxMLAogICAgIENPTlNUUkFJTlQgcGxhdGZvcm1fZ3JvdXBfbmFtZV9tdXN0X2JlX3VuaXF1
ZSBVTklRVUUgKHBsYXRmb3JtZ3JvdXBfbmFtZSkpOwogCitDUkVBVEUgVEFCTEUgSUYgTk9UIEVY
SVNUUyB0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMgKAorICAgIHRy
aWdnZXJhYmxlX2NvbmZpZyBJTlRFR0VSIE5PVCBOVUxMIFJFRkVSRU5DRVMgdHJpZ2dlcmFibGVf
Y29uZmlndXJhdGlvbnMgT04gREVMRVRFIENBU0NBREUsCisgICAgY29uZmlnX3JlcGV0aXRpb25f
dHlwZSBhbmFseXNpc190ZXN0X2dyb3VwX3JlcGV0aXRpb25fdHlwZSBOT1QgTlVMTCwKKyAgICBQ
UklNQVJZIEtFWSAodHJpZ2dlcmFibGVfY29uZmlnLCBjb25maWdfcmVwZXRpdGlvbl90eXBlKSk7
CisKIEFMVEVSIFRBQkxFIHBsYXRmb3JtcyBBREQgQ09MVU1OIElGIE5PVCBFWElTVFMgcGxhdGZv
cm1fZ3JvdXAgaW50ZWdlciBSRUZFUkVOQ0VTIHBsYXRmb3JtX2dyb3VwcyBERUZBVUxUIE5VTEw7
CiAKIElGIEVYSVNUUyAoU0VMRUNUIE5VTEwgRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1u
cyBXSEVSRSBUQUJMRV9OQU1FID0gJ2J1aWxkcycgQU5EIENPTFVNTl9OQU1FID0gJ2J1aWxkX251
bWJlcicpIFRIRU4KQEAgLTQ2LDQgKzUxLDcgQEAgSUYgRVhJU1RTIChTRUxFQ1QgTlVMTCBGUk9N
IGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5zIFdIRVJFIFRBQkxFX05BTUUgPSAnYnVpbGQKICAg
ICBBTFRFUiBUQUJMRSBidWlsZF9zbGF2ZXMgUkVOQU1FIFRPIGJ1aWxkX3dvcmtlcnM7CiBFTkQg
SUY7CiAKLUVORCQkOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK0VORCQkOworCitBTFRF
UiBUQUJMRSB0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucyBBREQgQ09MVU1OIElGIE5PVCBFWElT
VFMgdHJpZ2NvbmZpZ19pZCBzZXJpYWwgUFJJTUFSWSBLRVk7CitBTFRFUiBUWVBFIGFuYWx5c2lz
X3Rlc3RfZ3JvdXBfcmVwZXRpdGlvbl90eXBlIEFERCBWQUxVRSBJRiBOT1QgRVhJU1RTICdwYXJh
bGxlbCc7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLnBocCBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS5waHAKaW5k
ZXggOTJlZGI2ZjhkNTcwMzJlMmVlYTFhYWQ1ZGFmNmEzNjFiNjQzM2E2MC4uOGNiOWM1NmIzMWQ3
MzJjMjYwZmQ4OTZiMTJkYzRmYmE0MDVlZWY4ZSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLnBocAorKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUucGhwCkBAIC0z
NywxMCArMzcsMTkgQEAgZnVuY3Rpb24gbWFpbigkcG9zdF9kYXRhKQogCiAgICAgZm9yZWFjaCAo
JGNvbmZpZ3VyYXRpb25zIGFzICYkZW50cnkpIHsKICAgICAgICAgJGNvbmZpZ19pbmZvID0gYXJy
YXkoJ3Rlc3QnID0+ICRlbnRyeVsndGVzdCddLCAncGxhdGZvcm0nID0+ICRlbnRyeVsncGxhdGZv
cm0nXSwgJ3RyaWdnZXJhYmxlJyA9PiAkdHJpZ2dlcmFibGVfaWQpOwotICAgICAgICBpZiAoISRk
Yi0+aW5zZXJ0X3JvdygndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCAndHJpZ2NvbmZpZycs
ICRjb25maWdfaW5mbywgbnVsbCkpIHsKKyAgICAgICAgJG5ld190cmlnZ2VyYWJsZV9pZCA9ICRk
Yi0+aW5zZXJ0X3JvdygndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCAndHJpZ2NvbmZpZycs
ICRjb25maWdfaW5mbyk7CisgICAgICAgIGlmICghJG5ld190cmlnZ2VyYWJsZV9pZCkgewogICAg
ICAgICAgICAgJGRiLT5yb2xsYmFja190cmFuc2FjdGlvbigpOwogICAgICAgICAgICAgZXhpdF93
aXRoX2Vycm9yKCdGYWlsZWRUb0luc2VydENvbmZpZ3VyYXRpb24nLCBhcnJheSgnZW50cnknID0+
ICRlbnRyeSkpOwogICAgICAgICB9CisgICAgICAgICRyZXBldGl0aW9uX3R5cGVzID0gYXJyYXlf
Z2V0KCRlbnRyeSwgJ3JlcGV0aXRpb25UeXBlcycsIGFycmF5KCkpOworICAgICAgICBmb3JlYWNo
ICgkcmVwZXRpdGlvbl90eXBlcyBhcyAkcmVwZXRpdGlvbl90eXBlKSB7CisgICAgICAgICAgICBp
ZighJGRiLT5pbnNlcnRfcm93KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25f
dHlwZXMnLCBOVUxMLAorICAgICAgICAgICAgICAgIGFycmF5KCd0cmlnZ2VyYWJsZV9jb25maWcn
ID0+ICRuZXdfdHJpZ2dlcmFibGVfaWQsICdjb25maWdfcmVwZXRpdGlvbl90eXBlJyA9PiAkcmVw
ZXRpdGlvbl90eXBlKSwgTlVMTCkpIHsKKyAgICAgICAgICAgICAgICAkZGItPnJvbGxiYWNrX3Ry
YW5zYWN0aW9uKCk7CisgICAgICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdGYWlsZWRUb0lu
c2VydFJlcGV0aXRpb25UeXBlRm9yVHJpZ2dlcmFibGVDb25maWcnKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQogICAgIH0KIAogICAgIGZvcmVhY2ggKCRyZXBvc2l0b3J5X2dyb3VwcyBhcyAm
JGdyb3VwKSB7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2lu
Y2x1ZGUvY29tbWl0LXNldHMtaGVscGVycy5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL2luY2x1ZGUvY29tbWl0LXNldHMtaGVscGVycy5waHAKaW5kZXggNzc3N2UxYWQ2MmFm
ZGFjNzZjNzMxNDMzNTIyYzFiMjZhMDI3Yzg0YS4uMjMwZDM3ZDAxZmU5MmNjN2FjODhlYjdmYjU5
YmRiMTAwN2Q1ZmRjNiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy9pbmNsdWRlL2NvbW1pdC1zZXRzLWhlbHBlcnMucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtc2V0cy1oZWxwZXJzLnBocApAQCAtNiw3ICs2
LDcgQEAgcmVxdWlyZV9vbmNlKCdjb21taXQtbG9nLWZldGNoZXIucGhwJyk7CiAjIEZJWE1FOiBT
aG91bGQgY3JlYXRlIGEgaGVscGVyIGNsYXNzIGZvciBiZWxvdyAzIGhlbHBlciBmdW5jdGlvbnMg
dG8gYXZvaWQgcGFzc2luZyBsb25nIGFyZ3VtZW50IGxpc3QuCiBmdW5jdGlvbiBjcmVhdGVfdGVz
dF9ncm91cF9hbmRfYnVpbGRfcmVxdWVzdHMoJGRiLCAkY29tbWl0X3NldHMsICR0YXNrX2lkLCAk
bmFtZSwgJGF1dGhvciwgJHRyaWdnZXJhYmxlX2lkLCAkcGxhdGZvcm1faWQsICR0ZXN0X2lkLCAk
cmVwZXRpdGlvbl9jb3VudCwgJHJlcGV0aXRpb25fdHlwZSwgJG5lZWRzX25vdGlmaWNhdGlvbikK
IHsKLSAgICBhc3NlcnQoaW5fYXJyYXkoJHJlcGV0aXRpb25fdHlwZSwgYXJyYXkoJ2FsdGVybmF0
aW5nJywgJ3NlcXVlbnRpYWwnKSkpOworICAgIGFzc2VydChpbl9hcnJheSgkcmVwZXRpdGlvbl90
eXBlLCBhcnJheSgnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCcsICdwYXJhbGxlbCcpKSk7CiAg
ICAgbGlzdCAoJGJ1aWxkX2NvbmZpZ3VyYXRpb25fbGlzdCwgJHRlc3RfY29uZmlndXJhdGlvbl9s
aXN0KSA9IGluc2VydF9jb21taXRfc2V0c19hbmRfY29uc3RydWN0X2NvbmZpZ3VyYXRpb25fbGlz
dCgkZGIsICRjb21taXRfc2V0cyk7CiAKICAgICAkZ3JvdXBfaWQgPSAkZGItPmluc2VydF9yb3co
J2FuYWx5c2lzX3Rlc3RfZ3JvdXBzJywgJ3Rlc3Rncm91cCcsCkBAIC0yNCw3ICsyNCw3IEBAIGZ1
bmN0aW9uIGNyZWF0ZV90ZXN0X2dyb3VwX2FuZF9idWlsZF9yZXF1ZXN0cygkZGIsICRjb21taXRf
c2V0cywgJHRhc2tfaWQsICRuYW1lCiAgICAgICAgICAgICAgICAgaW5zZXJ0X2J1aWxkX3JlcXVl
c3RfZm9yX2NvbmZpZ3VyYXRpb24oJGRiLCAkdGVzdF9jb25maWd1cmF0aW9uLCAkb3JkZXIrKywg
JHRyaWdnZXJhYmxlX2lkLCAkcGxhdGZvcm1faWQsICR0ZXN0X2lkLCAkZ3JvdXBfaWQpOwogICAg
ICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAgYXNzZXJ0KCRyZXBldGl0aW9uX3R5cGUgPT0g
J2FsdGVybmF0aW5nJyk7CisgICAgICAgIGFzc2VydCgkcmVwZXRpdGlvbl90eXBlID09ICdhbHRl
cm5hdGluZycgfHwgJHJlcGV0aXRpb25fdHlwZSA9PSAncGFyYWxsZWwnKTsKICAgICAgICAgZm9y
ICgkaSA9IDA7ICRpIDwgJHJlcGV0aXRpb25fY291bnQ7ICRpKyspIHsKICAgICAgICAgICAgIGZv
cmVhY2ggKCR0ZXN0X2NvbmZpZ3VyYXRpb25fbGlzdCBhcyAkdGVzdF9jb25maWd1cmF0aW9uKQog
ICAgICAgICAgICAgICAgIGluc2VydF9idWlsZF9yZXF1ZXN0X2Zvcl9jb25maWd1cmF0aW9uKCRk
YiwgJHRlc3RfY29uZmlndXJhdGlvbiwgJG9yZGVyKyssICR0cmlnZ2VyYWJsZV9pZCwgJHBsYXRm
b3JtX2lkLCAkdGVzdF9pZCwgJGdyb3VwX2lkKTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9qc29uLWhlYWRlci5waHAgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvanNvbi1oZWFkZXIucGhwCmluZGV4IDc4ZThkMGJl
MjhlNjQ3NTM0YWNkMjkwMGQxZmNmZmE3MDcwZDQ4MzIuLmNkMWI1YTEzMjA2ZWI5ZDUyNzkyZjcw
MDE4M2E5ZGQ0NDM3MWZhMGMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvaW5jbHVkZS9qc29uLWhlYWRlci5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy9pbmNsdWRlL2pzb24taGVhZGVyLnBocApAQCAtMTgyLDkgKzE4MiwxMCBAQCBm
dW5jdGlvbiBmaW5kX3RyaWdnZXJhYmxlX2Zvcl90YXNrKCRkYiwgJHRhc2tfaWQpIHsKICAgICAk
cGF0aF9yZXNvbHZlciA9IG5ldyBUZXN0UGF0aFJlc29sdmVyKCRkYik7CiAgICAgJHRlc3RfaWRz
ID0gJHBhdGhfcmVzb2x2ZXItPmFuY2VzdG9yc19mb3JfdGVzdCgkdGFyZ2V0X3Rlc3RfaWQpOwog
Ci0gICAgJHJlc3VsdHMgPSAkZGItPnF1ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCB0cmlnY29u
ZmlnX3RyaWdnZXJhYmxlIEFTICJ0cmlnZ2VyYWJsZSIsIHRyaWdjb25maWdfdGVzdCBBUyAidGVz
dCIKLSAgICAgICAgRlJPTSB0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucyBXSEVSRSB0cmlnY29u
ZmlnX3BsYXRmb3JtID0gJDEgQU5EIHRyaWdjb25maWdfdGVzdCA9IEFOWSgkMiknLAotICAgICAg
ICBhcnJheSgkcGxhdGZvcm1faWQsICd7JyAuIGltcGxvZGUoJywgJywgJHRlc3RfaWRzKSAuICd9
JykpOworICAgICRyZXN1bHRzID0gJGRiLT5xdWVyeV9hbmRfZmV0Y2hfYWxsKCdTRUxFQ1QgdHJp
Z2NvbmZpZ19pZCBBUyAiY29uZmlnX2lkIiwKKyAgICAgICAgIHRyaWdjb25maWdfdHJpZ2dlcmFi
bGUgQVMgInRyaWdnZXJhYmxlIiwgdHJpZ2NvbmZpZ190ZXN0IEFTICJ0ZXN0IgorICAgICAgICAg
RlJPTSB0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucyBXSEVSRSB0cmlnY29uZmlnX3BsYXRmb3Jt
ID0gJDEgQU5EIHRyaWdjb25maWdfdGVzdCA9IEFOWSgkMiknLAorICAgICAgICAgYXJyYXkoJHBs
YXRmb3JtX2lkLCAneycgLiBpbXBsb2RlKCcsICcsICR0ZXN0X2lkcykgLiAnfScpKTsKICAgICBp
ZiAoISRyZXN1bHRzKQogICAgICAgICByZXR1cm4gTlVMTDsKIApAQCAtMTkyLDEwICsxOTMsMjAg
QEAgZnVuY3Rpb24gZmluZF90cmlnZ2VyYWJsZV9mb3JfdGFzaygkZGIsICR0YXNrX2lkKSB7CiAg
ICAgZm9yZWFjaCAoJHJlc3VsdHMgYXMgJHJvdykKICAgICAgICAgJHRlc3RfdG9fdHJpZ2dlcmFi
bGVbJHJvd1sndGVzdCddXSA9ICRyb3dbJ3RyaWdnZXJhYmxlJ107CiAKKyAgICAkdHJpZ2dlcmFi
bGVfdG9fY29uZmlnX2lkID0gYXJyYXkoKTsKKyAgICBmb3JlYWNoICgkcmVzdWx0cyBhcyAkcm93
KQorICAgICAgICAkdHJpZ2dlcmFibGVfdG9fY29uZmlnX2lkWyRyb3dbJ3RyaWdnZXJhYmxlJ11d
ID0gJHJvd1snY29uZmlnX2lkJ107CisKICAgICBmb3JlYWNoICgkdGVzdF9pZHMgYXMgJHRlc3Rf
aWQpIHsKICAgICAgICAgJHRyaWdnZXJhYmxlID0gYXJyYXlfZ2V0KCR0ZXN0X3RvX3RyaWdnZXJh
YmxlLCAkdGVzdF9pZCk7Ci0gICAgICAgIGlmICgkdHJpZ2dlcmFibGUpCi0gICAgICAgICAgICBy
ZXR1cm4gYXJyYXkoJ2lkJyA9PiAkdHJpZ2dlcmFibGUsICd0ZXN0JyA9PiAkdGVzdF9pZCwgJ3Bs
YXRmb3JtJyA9PiAkcGxhdGZvcm1faWQpOworICAgICAgICBpZiAoJHRyaWdnZXJhYmxlKSB7Cisg
ICAgICAgICAgICAkY29uZmlnX2lkID0gJHRyaWdnZXJhYmxlX3RvX2NvbmZpZ19pZFskdHJpZ2dl
cmFibGVdOworICAgICAgICAgICAgJHJlcGV0aXRpb25fdHlwZXMgPSBhcnJheSgpOworICAgICAg
ICAgICAgJHJvd3MgPSAkZGItPnNlbGVjdF9yb3dzKCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9u
X3JlcGV0aXRpb25fdHlwZXMnLCBOVUxMLCBhcnJheSgndHJpZ2dlcmFibGVfY29uZmlnJyA9PiAk
Y29uZmlnX2lkKSk7CisgICAgICAgICAgICBmb3JlYWNoICgkcm93cyBhcyAkcm93KQorICAgICAg
ICAgICAgICAgIGFycmF5X3B1c2goJHJlcGV0aXRpb25fdHlwZXMsICRyb3dbJ2NvbmZpZ19yZXBl
dGl0aW9uX3R5cGUnXSk7CisgICAgICAgICAgICByZXR1cm4gYXJyYXkoJ2lkJyA9PiAkdHJpZ2dl
cmFibGUsICd0ZXN0JyA9PiAkdGVzdF9pZCwgJ3BsYXRmb3JtJyA9PiAkcGxhdGZvcm1faWQsICdy
ZXBldGl0aW9uVHlwZXMnID0+ICRyZXBldGl0aW9uX3R5cGVzKTsKKyAgICAgICAgfQogICAgIH0K
IAogICAgIHJldHVybiBOVUxMOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy9pbmNsdWRlL21hbmlmZXN0LWdlbmVyYXRvci5waHAgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL2luY2x1ZGUvbWFuaWZlc3QtZ2VuZXJhdG9yLnBocAppbmRleCAxNmRi
ZDdkZjlhNGExM2EwOGQ4MTdkNmM4MjZjOTEwNWQwMzViYzdlLi41NTI3NmQxY2JiYjY0ODI3OTM2
OGQ3ZTQ2ZmNjZDMwYjFlM2I0ZDI1IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL2luY2x1ZGUvbWFuaWZlc3QtZ2VuZXJhdG9yLnBocAorKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvbWFuaWZlc3QtZ2VuZXJhdG9yLnBocApAQCAt
MjYxLDYgKzI2MSwxMSBAQCBjbGFzcyBNYW5pZmVzdEdlbmVyYXRvciB7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KIAorICAgICAgICAkcmVwZXRpdGlvbl90eXBlc19ieV9jb25maWd1cmF0aW9u
ID0gJGRiLT5mZXRjaF90YWJsZSgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9u
X3R5cGVzJyk7CisgICAgICAgICRyZXBldGl0aW9uX3R5cGVzX2J5X2NvbmZpZyA9IGFycmF5KCk7
CisgICAgICAgIGZvcmVhY2goJHJlcGV0aXRpb25fdHlwZXNfYnlfY29uZmlndXJhdGlvbiBhcyAm
JHJvdykKKyAgICAgICAgICAgIGFycmF5X3B1c2goYXJyYXlfZW5zdXJlX2l0ZW1faGFzX2FycmF5
KCRyZXBldGl0aW9uX3R5cGVzX2J5X2NvbmZpZywgJHJvd1sndHJpZ2dlcmFibGVfY29uZmlnJ10p
LCAkcm93Wydjb25maWdfcmVwZXRpdGlvbl90eXBlJ10pOworCiAgICAgICAgICRjb25maWd1cmF0
aW9uX21hcCA9ICRkYi0+ZmV0Y2hfdGFibGUoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJyk7
CiAgICAgICAgIGlmICgkY29uZmlndXJhdGlvbl9tYXApIHsKICAgICAgICAgICAgIGZvcmVhY2gg
KCRjb25maWd1cmF0aW9uX21hcCBhcyAmJHJvdykgewpAQCAtMjY4LDcgKzI3MywxMSBAQCBjbGFz
cyBNYW5pZmVzdEdlbmVyYXRvciB7CiAgICAgICAgICAgICAgICAgaWYgKCFhcnJheV9rZXlfZXhp
c3RzKCR0cmlnZ2VyYWJsZV9pZCwgJGlkX3RvX3RyaWdnZXJhYmxlKSkKICAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgJHRyaWdnZXJhYmxlID0gJiRpZF90b190
cmlnZ2VyYWJsZVskdHJpZ2dlcmFibGVfaWRdOwotICAgICAgICAgICAgICAgIGFycmF5X3B1c2go
JHRyaWdnZXJhYmxlWydjb25maWd1cmF0aW9ucyddLCBhcnJheSgkcm93Wyd0cmlnY29uZmlnX3Rl
c3QnXSwgJHJvd1sndHJpZ2NvbmZpZ19wbGF0Zm9ybSddKSk7CisgICAgICAgICAgICAgICAgaWYg
KCFhcnJheV9rZXlfZXhpc3RzKCRyb3dbJ3RyaWdjb25maWdfaWQnXSwgJHJlcGV0aXRpb25fdHlw
ZXNfYnlfY29uZmlnKSkKKyAgICAgICAgICAgICAgICAgICAgJHJlcGV0aXRpb25fdHlwZXMgPSBh
cnJheSgnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCcpOworICAgICAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgJHJlcGV0aXRpb25fdHlwZXMgPSAkcmVwZXRpdGlvbl90eXBl
c19ieV9jb25maWdbJHJvd1sndHJpZ2NvbmZpZ19pZCddXTsKKyAgICAgICAgICAgICAgICBhcnJh
eV9wdXNoKCR0cmlnZ2VyYWJsZVsnY29uZmlndXJhdGlvbnMnXSwgYXJyYXkoJHJvd1sndHJpZ2Nv
bmZpZ190ZXN0J10sICRyb3dbJ3RyaWdjb25maWdfcGxhdGZvcm0nXSwgJHJlcGV0aXRpb25fdHlw
ZXMpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3ByaXZpbGVnZWQtYXBpL2FkZC1idWlsZC1yZXF1ZXN0cy5w
aHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3ByaXZpbGVnZWQtYXBpL2FkZC1i
dWlsZC1yZXF1ZXN0cy5waHAKaW5kZXggOTU3YTlmNDczMTQ1NzA1ZmFjNTIyZGI3Mjk1Y2NiODA3
YzI0NGNhNy4uNjZhNjlmYTU5ZDkwMjhhYTJkMWViZmYzYTU3M2YzNmI0ZmZmOGRmNSAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9hZGQt
YnVpbGQtcmVxdWVzdHMucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
cHJpdmlsZWdlZC1hcGkvYWRkLWJ1aWxkLXJlcXVlc3RzLnBocApAQCAtMzEsMTYgKzMxLDE2IEBA
IGZ1bmN0aW9uIG1haW4oKSB7CiAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignTm9UZXN0aW5nQnVp
bGRSZXF1ZXN0cycpOwogCiAgICAgJHJlcGV0aXRpb25fdHlwZSA9ICR0ZXN0X2dyb3VwWyd0ZXN0
Z3JvdXBfcmVwZXRpdGlvbl90eXBlJ107Ci0gICAgYXNzZXJ0KGluX2FycmF5KCRyZXBldGl0aW9u
X3R5cGUsIFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddKSk7Ci0gICAgJGlzX2FsdGVybmF0
aW5nX3R5cGUgPSAkcmVwZXRpdGlvbl90eXBlID09ICdhbHRlcm5hdGluZyc7Ci0gICAgaWYgKCRp
c19hbHRlcm5hdGluZ190eXBlICYmICRjb21taXRfc2V0X2lkKQotICAgICAgICBleGl0X3dpdGhf
ZXJyb3IoJ0NvbW1pdFNldE5vdFN1cHBvcnRlZEZvckFsdGVybmF0aW5nUmVwZXRpdGlvblR5cGUn
KTsKKyAgICBhc3NlcnQoaW5fYXJyYXkoJHJlcGV0aXRpb25fdHlwZSwgWydhbHRlcm5hdGluZycs
ICdzZXF1ZW50aWFsJywgJ3BhcmFsbGVsJ10pKTsKKyAgICAkaXNfc2VxdWVudGlhbF90eXBlID0g
JHJlcGV0aXRpb25fdHlwZSA9PSAnc2VxdWVudGlhbCc7CisgICAgaWYgKCEkaXNfc2VxdWVudGlh
bF90eXBlICYmICRjb21taXRfc2V0X2lkKQorICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ0NvbW1p
dFNldE5vdFN1cHBvcnRlZEZvck5vblNlcXVlbnRpYWxSZXBldGl0aW9uVHlwZScpOwogCiAgICAg
JGV4aXN0aW5nX3Rlc3RfdHlwZV9idWlsZF9yZXF1ZXN0cyA9IGFycmF5X2ZpbHRlcigkZXhpc3Rp
bmdfYnVpbGRfcmVxdWVzdHMsIGZ1bmN0aW9uKCRidWlsZF9yZXF1ZXN0KSB7CiAgICAgICAgIHJl
dHVybiAkYnVpbGRfcmVxdWVzdFsncmVxdWVzdF9vcmRlciddID49IDA7CiAgICAgfSk7CiAKLSAg
ICBpZiAoJGlzX2FsdGVybmF0aW5nX3R5cGUpCisgICAgaWYgKCEkaXNfc2VxdWVudGlhbF90eXBl
KQogICAgICAgICBhZGRfYWx0ZXJuYXRpbmdfYnVpbGRfcmVxdWVzdHMoJGRiLCAkZXhpc3Rpbmdf
dGVzdF90eXBlX2J1aWxkX3JlcXVlc3RzLCAkYWRkaXRpb25hbF9idWlsZF9yZXF1ZXN0X2NvdW50
LCAkY3VycmVudF9vcmRlcik7CiAgICAgZWxzZSB7CiAgICAgICAgIGlmICgkY29tbWl0X3NldF9p
ZCkKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdl
ZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzay5waHAKaW5kZXggMmRj
NzQ3Y2JkZTI2NzllM2Y5NmFkNTkwMGIwNmRmMzJhMzc4ZTFhMy4uOWMwZmZjNmJjZWQ5OWViN2Fj
ZGJkNTM3NjhkODI4ODkwM2I3OTc1YSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzay5waHAKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5h
bHlzaXMtdGFzay5waHAKQEAgLTIxLDcgKzIxLDcgQEAgZnVuY3Rpb24gbWFpbigpIHsKICAgICBp
ZiAoISRuYW1lKQogICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ01pc3NpbmdOYW1lJywgYXJyYXko
J25hbWUnID0+ICRuYW1lKSk7CiAKLSAgICBpZiAoIWluX2FycmF5KCRyZXBldGl0aW9uX3R5cGUs
IGFycmF5KCdhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJykpKQorICAgIGlmICghaW5fYXJyYXko
JHJlcGV0aXRpb25fdHlwZSwgYXJyYXkoJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnLCAncGFy
YWxsZWwnKSkpCiAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignSW52YWxpZFJlcGV0aXRpb25UeXBl
JywgYXJyYXkoJ3JlcGV0aXRpb25UeXBlJyA9PiAkcmVwZXRpdGlvbl90eXBlKSk7CiAKICAgICAk
cmFuZ2UgPSB2YWxpZGF0ZV9hcmd1bWVudHMoJGRhdGEsIGFycmF5KCdzdGFydFJ1bicgPT4gJ2lu
dCcsICdlbmRSdW4nID0+ICdpbnQnKSk7CkBAIC04Niw2ICs4NiwxMCBAQCBmdW5jdGlvbiBtYWlu
KCkgewogICAgICAgICAgICAgJGRiLT5yb2xsYmFja190cmFuc2FjdGlvbigpOwogICAgICAgICAg
ICAgZXhpdF93aXRoX2Vycm9yKCdJbmNvbnNpc3RlbnRQbGF0Zm9ybScsIGFycmF5KCdjb25maWdQ
bGF0Zm9ybScgPT4gJGNvbmZpZ1snY29uZmlnX3BsYXRmb3JtJ10sICd0YXNrUGxhdGZvcm0nID0+
ICR0cmlnZ2VyYWJsZVsncGxhdGZvcm0nXSkpOwogICAgICAgICB9CisgICAgICAgIGlmICghaW5f
YXJyYXkoJHJlcGV0aXRpb25fdHlwZSwgJHRyaWdnZXJhYmxlWydyZXBldGl0aW9uVHlwZXMnXSkp
IHsKKyAgICAgICAgICAgICRkYi0+cm9sbGJhY2tfdHJhbnNhY3Rpb24oKTsKKyAgICAgICAgICAg
IGV4aXRfd2l0aF9lcnJvcignVW5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZScsIGFycmF5KCdyZXBl
dGl0aW9uVHlwZScgPT4gJHJlcGV0aXRpb25fdHlwZSkpOworICAgICAgICB9CiAgICAgICAgICR0
cmlnZ2VyYWJsZV9pZCA9ICR0cmlnZ2VyYWJsZVsnaWQnXTsKICAgICAgICAgJHRlc3RfaWQgPSAk
dHJpZ2dlcmFibGVbJ3Rlc3QnXTsKICAgICAgICAgJGNvbW1pdF9zZXRzID0gY29tbWl0X3NldHNf
ZnJvbV9yZXZpc2lvbl9zZXRzKCRkYiwgJHRyaWdnZXJhYmxlX2lkLCAkcmV2aXNpb25fc2V0X2xp
c3QpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxl
Z2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cC5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwLnBocAppbmRleCBkMjNiMmZm
OTY2ODFjOGZhODhlYzBmOTczZDEwZWJmZjM3Mjg4ODUzLi5mNzlmYjJkNTljYWQ5OWU4MDFjMTk4
YTFlNWUyZjhkMGY5NDIyYTlkIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwLnBocAorKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3Vw
LnBocApAQCAtNDMsMTAgKzQzLDExIEBAIGZ1bmN0aW9uIG1haW4oKQogICAgIGVsc2UgaWYgKCRy
ZXBldGl0aW9uX2NvdW50IDwgMSkKICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdJbnZhbGlkUmVw
ZXRpdGlvbkNvdW50JywgYXJyYXkoJ3JlcGV0aXRpb25Db3VudCcgPT4gJHJlcGV0aXRpb25fY291
bnQpKTsKIAotICAgIGlmICghaW5fYXJyYXkoJHJlcGV0aXRpb25fdHlwZSwgYXJyYXkoJ2FsdGVy
bmF0aW5nJywgJ3NlcXVlbnRpYWwnKSkpCisgICAgaWYgKCFpbl9hcnJheSgkcmVwZXRpdGlvbl90
eXBlLCBhcnJheSgnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCcsICdwYXJhbGxlbCcpKSkKICAg
ICAgICAgZXhpdF93aXRoX2Vycm9yKCdJbnZhbGlkUmVwZXRpdGlvblR5cGUnLCBhcnJheSgncmVw
ZXRpdGlvblR5cGUnID0+ICRyZXBldGl0aW9uX3R5cGUpKTsKIAogICAgICR0cmlnZ2VyYWJsZV9p
ZCA9IE5VTEw7CisgICAgJHN1cHBvcnRlZF9yZXBldGl0aW9uX3R5cGVzID0gTlVMTDsKICAgICBp
ZiAoJHRhc2tfaWQpIHsKICAgICAgICAgJHRhc2sgPSAkZGItPnNlbGVjdF9maXJzdF9yb3coJ2Fu
YWx5c2lzX3Rhc2tzJywgJ3Rhc2snLCBhcnJheSgnaWQnID0+ICR0YXNrX2lkKSk7CiAgICAgICAg
IGlmICghJHRhc2spCkBAIC01OSw2ICs2MCw3IEBAIGZ1bmN0aW9uIG1haW4oKQogICAgICAgICAk
dHJpZ2dlcmFibGUgPSBmaW5kX3RyaWdnZXJhYmxlX2Zvcl90YXNrKCRkYiwgJHRhc2tfaWQpOwog
ICAgICAgICBpZiAoJHRyaWdnZXJhYmxlKSB7CiAgICAgICAgICAgICAkdHJpZ2dlcmFibGVfaWQg
PSAkdHJpZ2dlcmFibGVbJ2lkJ107CisgICAgICAgICAgICAkc3VwcG9ydGVkX3JlcGV0aXRpb25f
dHlwZXMgPSAkdHJpZ2dlcmFibGVbJ3JlcGV0aXRpb25UeXBlcyddOwogICAgICAgICAgICAgaWYg
KCEkcGxhdGZvcm1faWQgJiYgISR0ZXN0X2lkKSB7CiAgICAgICAgICAgICAgICAgJHBsYXRmb3Jt
X2lkID0gJHRyaWdnZXJhYmxlWydwbGF0Zm9ybSddOwogICAgICAgICAgICAgICAgICR0ZXN0X2lk
ID0gJHRyaWdnZXJhYmxlWyd0ZXN0J107CkBAIC03MywxMyArNzUsMjEgQEAgZnVuY3Rpb24gbWFp
bigpCiAgICAgaWYgKCEkdHJpZ2dlcmFibGVfaWQgJiYgJHBsYXRmb3JtX2lkICYmICR0ZXN0X2lk
KSB7CiAgICAgICAgICR0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uID0gJGRiLT5zZWxlY3RfZmly
c3Rfcm93KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsICd0cmlnY29uZmlnJywKICAgICAg
ICAgICAgIGFycmF5KCd0ZXN0JyA9PiAkdGVzdF9pZCwgJ3BsYXRmb3JtJyA9PiAkcGxhdGZvcm1f
aWQpKTsKLSAgICAgICAgaWYgKCR0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uKQorICAgICAgICBp
ZiAoJHRyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb24pIHsKICAgICAgICAgICAgICR0cmlnZ2VyYWJs
ZV9pZCA9ICR0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uWyd0cmlnY29uZmlnX3RyaWdnZXJhYmxl
J107CisgICAgICAgICAgICAkc3VwcG9ydGVkX3JlcGV0aXRpb25fdHlwZXMgPSBhcnJheSgpOwor
ICAgICAgICAgICAgJHJvd3MgPSAkZGItPnNlbGVjdF9yb3dzKCd0cmlnZ2VyYWJsZV9jb25maWd1
cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMnLCBOVUxMLCBhcnJheSgndHJpZ2dlcmFibGVfY29uZmln
JyA9PiAkdHJpZ2dlcmFibGVfY29uZmlndXJhdGlvblsndHJpZ2NvbmZpZ19pZCddKSk7CisgICAg
ICAgICAgICBmb3JlYWNoICgkcm93cyBhcyAkcm93KQorICAgICAgICAgICAgICAgIGFycmF5X3B1
c2goJHN1cHBvcnRlZF9yZXBldGl0aW9uX3R5cGVzLCAkcm93Wydjb25maWdfcmVwZXRpdGlvbl90
eXBlJ10pOworICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKCEkdHJpZ2dlcmFibGVfaWQpCiAg
ICAgICAgIGV4aXRfd2l0aF9lcnJvcignVHJpZ2dlcmFibGVOb3RGb3VuZEZvclRhc2snLCBhcnJh
eSgndGFzaycgPT4gJHRhc2tfaWQsICdwbGF0Zm9ybScgPT4gJHBsYXRmb3JtX2lkLCAndGVzdCcg
PT4gJHRlc3RfaWQpKTsKIAorICAgIGlmICghaW5fYXJyYXkoJHJlcGV0aXRpb25fdHlwZSwgJHN1
cHBvcnRlZF9yZXBldGl0aW9uX3R5cGVzKSkKKyAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdVbnN1
cHBvcnRlZFJlcGV0aXRpb25UeXBlJywgYXJyYXkoJ3JlcGV0aXRpb25UeXBlJyA9PiAkcmVwZXRp
dGlvbl90eXBlKSk7CisKICAgICBpZiAoJHJldmlzaW9uX3NldF9saXN0KQogICAgICAgICAkY29t
bWl0X3NldHMgPSBjb21taXRfc2V0c19mcm9tX3JldmlzaW9uX3NldHMoJGRiLCAkdHJpZ2dlcmFi
bGVfaWQsICRyZXZpc2lvbl9zZXRfbGlzdCk7CiAgICAgZWxzZSAvLyBWMiBVSSBjb21wYXRpYmls
aXR5CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBv
bmVudHMvYW5hbHlzaXMtcmVzdWx0cy12aWV3ZXIuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YzL2NvbXBvbmVudHMvYW5hbHlzaXMtcmVzdWx0cy12aWV3ZXIuanMKaW5kZXgg
MGJjOGMyODZkOGM2M2M4ZTFjMTIxZjMwYmRjNzcyMzg4MTJkOWE0My4uZTNhODVlYzQ5MzE1Mjky
N2EwMWI1NThhMzFkYWI4ZmQ0YjdiNTA4ZiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL2FuYWx5c2lzLXJlc3VsdHMtdmlld2VyLmpzCisr
KyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9hbmFseXNp
cy1yZXN1bHRzLXZpZXdlci5qcwpAQCAtMTksNiArMTksNyBAQCBjbGFzcyBBbmFseXNpc1Jlc3Vs
dHNWaWV3ZXIgZXh0ZW5kcyBSZXN1bHRzVGFibGUgewogCiAgICAgc2V0UmFuZ2VTZWxlY3Rvckxh
YmVscyhsYWJlbHMpIHsgdGhpcy5fcmFuZ2VTZWxlY3RvckxhYmVscyA9IGxhYmVsczsgfQogICAg
IHNlbGVjdGVkUmFuZ2UoKSB7IHJldHVybiB0aGlzLl9zZWxlY3RlZFJhbmdlOyB9CisgICAgY3Vy
cmVudFRlc3RHcm91cCgpIHsgcmV0dXJuIHRoaXMuX2N1cnJlbnRUZXN0R3JvdXA7IH0KIAogICAg
IHNldFBvaW50cyhzdGFydFBvaW50LCBlbmRQb2ludCwgbWV0cmljKQogICAgIHsKZGlmZiAtLWdp
dCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b20t
Y29uZmlndXJhdGlvbi10ZXN0LWdyb3VwLWZvcm0uanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YzL2NvbXBvbmVudHMvY3VzdG9tLWNvbmZpZ3VyYXRpb24tdGVzdC1ncm91cC1m
b3JtLmpzCmluZGV4IDU1OThmZGQwYmRjMzk0ZGI2ZWQxOGU1ZGJkNGUwYzUwZGE5MzMxNTkuLjUw
N2QxZGZjYTRmMmYzOTY4ZmNmYmI3ZGVlNWViOWExNzJmMDljMWYgMTAwNjQ0Ci0tLSBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b20tY29uZmlndXJh
dGlvbi10ZXN0LWdyb3VwLWZvcm0uanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9jb21wb25lbnRzL2N1c3RvbS1jb25maWd1cmF0aW9uLXRlc3QtZ3JvdXAtZm9ybS5q
cwpAQCAtNTAsNyArNTAsMTcgQEAgY2xhc3MgQ3VzdG9tQ29uZmlndXJhdGlvblRlc3RHcm91cEZv
cm0gZXh0ZW5kcyBUZXN0R3JvdXBGb3JtIHsKICAgICB7CiAgICAgICAgIHN1cGVyLmRpZENvbnN0
cnVjdFNoYWRvd1RyZWUoKTsKIAotICAgICAgICB0aGlzLnBhcnQoJ2NvbmZpZ3VyYXRvcicpLmxp
c3RlblRvQWN0aW9uKCd0ZXN0Q29uZmlnQ2hhbmdlJywgKCkgPT4gdGhpcy5lbnF1ZXVlVG9SZW5k
ZXIoKSk7CisgICAgICAgIHRoaXMucGFydCgnY29uZmlndXJhdG9yJykubGlzdGVuVG9BY3Rpb24o
J3Rlc3RDb25maWdDaGFuZ2UnLCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBjb25maWd1cmF0
b3IgPSB0aGlzLnBhcnQoJ2NvbmZpZ3VyYXRvcicpOworICAgICAgICAgICAgY29uc3QgdGVzdHMg
PSBjb25maWd1cmF0b3IudGVzdHMoKTsKKyAgICAgICAgICAgIGNvbnN0IHBsYXRmb3JtID0gY29u
ZmlndXJhdG9yLnBsYXRmb3JtKCk7CisgICAgICAgICAgICBpZiAocGxhdGZvcm0gJiYgdGVzdHMu
bGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgY29uc3Qgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVz
ID0gVHJpZ2dlcmFibGUuc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzQnlDb25maWd1cmF0aW9uKHRl
c3RzWzBdLCBwbGF0Zm9ybSk7CisgICAgICAgICAgICAgICAgdGhpcy5zZXRTdXBwb3J0ZWRSZXBl
dGl0aW9uVHlwZXMoc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzKTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgdGhpcy5lbnF1ZXVlVG9SZW5kZXIoKTsKKyAgICAgICAgfSk7CiAKICAgICAg
ICAgdGhpcy5jb250ZW50KCd0YXNrLW5hbWUnKS5vbmlucHV0ID0gKCkgPT4gdGhpcy5lbnF1ZXVl
VG9SZW5kZXIoKTsKICAgICAgICAgdGhpcy5jb250ZW50KCdncm91cC1uYW1lJykub25pbnB1dCA9
ICgpID0+IHRoaXMuZW5xdWV1ZVRvUmVuZGVyKCk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvdGVzdC1ncm91cC1mb3JtLmpzIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL3Rlc3QtZ3JvdXAtZm9y
bS5qcwppbmRleCA4MzViNjA3ODEzZTU4NmVkZjdjODIwNTEzMDNkOWEzMWU2YTllOWZkLi5lZGFj
MzU1NDBjMjQ2M2U4YWVjMzllNDFiYzM5YmMwMGY1MDAxOTA0IDEwMDY0NAotLS0gYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvdGVzdC1ncm91cC1mb3JtLmpz
CisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy90ZXN0
LWdyb3VwLWZvcm0uanMKQEAgLTUsNyArNSw5IEBAIGNsYXNzIFRlc3RHcm91cEZvcm0gZXh0ZW5k
cyBDb21wb25lbnRCYXNlIHsKICAgICB7CiAgICAgICAgIHN1cGVyKG5hbWUgfHwgJ3Rlc3QtZ3Jv
dXAtZm9ybScpOwogICAgICAgICB0aGlzLl9yZXBldGl0aW9uQ291bnQgPSA0OworICAgICAgICB0
aGlzLl9zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMgPSBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRp
YWwnXTsKICAgICAgICAgdGhpcy5fbm90aWZ5T25Db21wbGV0aW9uID0gdHJ1ZTsKKyAgICAgICAg
dGhpcy5fcmVwZXRpdGlvblR5cGUgPSAnYWx0ZXJuYXRpbmcnOwogICAgIH0KIAogICAgIHNldFJl
cGV0aXRpb25Db3VudChjb3VudCkKQEAgLTE0LDYgKzE2LDMyIEBAIGNsYXNzIFRlc3RHcm91cEZv
cm0gZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsKICAgICAgICAgdGhpcy5fcmVwZXRpdGlvbkNvdW50
ID0gY291bnQ7CiAgICAgfQogCisgICAgc2V0UmVwZXRpdGlvblR5cGUocmVwZXRpdGlvblR5cGUp
CisgICAgeworICAgICAgICB0aGlzLl9yZXBldGl0aW9uVHlwZSA9IHJlcGV0aXRpb25UeXBlOwor
ICAgIH0KKworICAgIHNldFN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcyhzdXBwb3J0ZWRSZXBldGl0
aW9uVHlwZXMpCisgICAgeworICAgICAgICB0aGlzLl9zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMg
PSBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM7CisgICAgfQorCisgICAgcmVuZGVyKCkKKyAgICB7
CisgICAgICAgIHN1cGVyLnJlbmRlcigpOworICAgICAgICB0aGlzLl9yZW5kZXJSZXBldGl0aW9u
VHlwZXModGhpcy5fc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzKTsKKyAgICB9CisKKyAgICBfcmVu
ZGVyUmVwZXRpdGlvblR5cGVzKHJlcGV0aXRpb25UeXBlcykKKyAgICB7CisgICAgICAgIGNvbnN0
IGV4cGxhbmF0aW9uQnlSZXBldGl0aW9uVHlwZXMgPSBbWydhbHRlcm5hdGluZycsICdhbHRlcm5h
dGUgKEFCQUIpJ10sIFsnc2VxdWVudGlhbCcsICdzZXF1ZW5jZSAoQUFCQiknXSwKKyAgICAgICAg
ICAgIFsncGFyYWxsZWwnLCAncGFyYWxsZWwnXV0uZmlsdGVyKChlbnRyeSkgPT4gcmVwZXRpdGlv
blR5cGVzLmluY2x1ZGVzKGVudHJ5WzBdKSk7CisgICAgICAgIHRoaXMucmVuZGVyUmVwbGFjZSh0
aGlzLmNvbnRlbnQoJ3JlcGV0aXRpb24tdHlwZScpLAorICAgICAgICAgICAgZXhwbGFuYXRpb25C
eVJlcGV0aXRpb25UeXBlcy5tYXAoKFt2YWx1ZSwgZGVzY3JpcHRpb25dKSA9PgorICAgICAgICAg
ICAgICAgIHRoaXMuY3JlYXRlRWxlbWVudCgnb3B0aW9uJywge3NlbGVjdGVkOiB2YWx1ZSA9PSB0
aGlzLl9yZXBldGl0aW9uVHlwZSwgdmFsdWU6IHZhbHVlfSwgZGVzY3JpcHRpb24pCisgICAgICAg
ICAgICApKTsKKyAgICB9CisKICAgICBkaWRDb25zdHJ1Y3RTaGFkb3dUcmVlKCkKICAgICB7CiAg
ICAgICAgIGNvbnN0IHJlcGV0aXRpb25Db3VudFNlbGVjdCA9IHRoaXMuY29udGVudCgncmVwZXRp
dGlvbi1jb3VudCcpOwpAQCAtMjIsMTMgKzUwLDE0IEBAIGNsYXNzIFRlc3RHcm91cEZvcm0gZXh0
ZW5kcyBDb21wb25lbnRCYXNlIHsKICAgICAgICAgfTsKICAgICAgICAgY29uc3Qgbm90aWZ5T25D
b21wbGV0aW9uQ2hlY2tCb3ggPSB0aGlzLmNvbnRlbnQoJ25vdGlmeS1vbi1jb21wbGV0aW9uLWNo
ZWNrYm94Jyk7CiAgICAgICAgIG5vdGlmeU9uQ29tcGxldGlvbkNoZWNrQm94Lm9uY2hhbmdlID0g
KCkgPT4gdGhpcy5fbm90aWZ5T25Db21wbGV0aW9uID0gbm90aWZ5T25Db21wbGV0aW9uQ2hlY2tC
b3guY2hlY2tlZDsKKyAgICAgICAgY29uc3QgcmVwZXRpdGlvblR5cGUgPSB0aGlzLmNvbnRlbnQo
J3JlcGV0aXRpb24tdHlwZScpOworICAgICAgICByZXBldGl0aW9uVHlwZS5vbmNoYW5nZSA9ICgp
ID0+IHRoaXMuX3JlcGV0aXRpb25UeXBlID0gcmVwZXRpdGlvblR5cGUudmFsdWU7CiAgICAgICAg
IHRoaXMuY29udGVudCgnZm9ybScpLm9uc3VibWl0ID0gdGhpcy5jcmVhdGVFdmVudEhhbmRsZXIo
KCkgPT4gdGhpcy5zdGFydFRlc3RpbmcoKSk7CiAgICAgfQogCiAgICAgc3RhcnRUZXN0aW5nKCkK
ICAgICB7Ci0gICAgICAgIGNvbnN0IHJlcGV0aXRpb25UeXBlID0gdGhpcy5jb250ZW50KCdyZXBl
dGl0aW9uLXR5cGUnKS52YWx1ZTsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc3RhcnRU
ZXN0aW5nJywgdGhpcy5fcmVwZXRpdGlvbkNvdW50LCByZXBldGl0aW9uVHlwZSwgdGhpcy5fbm90
aWZ5T25Db21wbGV0aW9uKTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc3RhcnRUZXN0
aW5nJywgdGhpcy5fcmVwZXRpdGlvbkNvdW50LCB0aGlzLl9yZXBldGl0aW9uVHlwZSwgdGhpcy5f
bm90aWZ5T25Db21wbGV0aW9uKTsKICAgICB9CiAKICAgICBzdGF0aWMgaHRtbFRlbXBsYXRlKCkK
ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL21h
bmlmZXN0LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvbWFu
aWZlc3QuanMKaW5kZXggOWRkZDUxNDczYjcyY2Q3NGQ3MTJiYjNkYjk3YmZmZWE4YmE1M2JmMS4u
YzYyNjUwY2RhMmY5YzE2NzY1ZjRkZTlkYjBiNmViZDE2ZDIwNDcxNyAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvbWFuaWZlc3QuanMKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvbWFuaWZlc3QuanMKQEAg
LTg3LDggKzg3LDggQEAgY2xhc3MgTWFuaWZlc3QgewogICAgICAgICAgICAgICAgIHJldHVybiBU
cmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5lbnN1cmVTaW5nbGV0b24oZ3JvdXAuaWQsIGdyb3Vw
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgcmF3LmNvbmZpZ3VyYXRpb25zID0gcmF3
LmNvbmZpZ3VyYXRpb25zLm1hcCgoY29uZmlndXJhdGlvbikgPT4gewotICAgICAgICAgICAgICAg
IGNvbnN0IFt0ZXN0SWQsIHBsYXRmb3JtSWRdID0gY29uZmlndXJhdGlvbjsKLSAgICAgICAgICAg
ICAgICByZXR1cm4ge3Rlc3Q6IFRlc3QuZmluZEJ5SWQodGVzdElkKSwgcGxhdGZvcm06IFBsYXRm
b3JtLmZpbmRCeUlkKHBsYXRmb3JtSWQpfTsKKyAgICAgICAgICAgICAgICBjb25zdCBbdGVzdElk
LCBwbGF0Zm9ybUlkLCByZXBldGl0aW9uVHlwZXNdID0gY29uZmlndXJhdGlvbjsKKyAgICAgICAg
ICAgICAgICByZXR1cm4ge3Rlc3Q6IFRlc3QuZmluZEJ5SWQodGVzdElkKSwgcGxhdGZvcm06IFBs
YXRmb3JtLmZpbmRCeUlkKHBsYXRmb3JtSWQpLCByZXBldGl0aW9uVHlwZXN9OwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOwogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YzL21vZGVscy90ZXN0LWdyb3VwLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy92My9tb2RlbHMvdGVzdC1ncm91cC5qcwppbmRleCAzYTNjODg2MTZmYWYzMThk
OGNiZjUyYTY3YTM3YjZkODlhNjU0M2Q1Li43OTEzMGZjM2M3OWJjNTU0OGI4NzI4NDJjODgwYzY2
NTM1OTYxNjU5IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3Yz
L21vZGVscy90ZXN0LWdyb3VwLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjMvbW9kZWxzL3Rlc3QtZ3JvdXAuanMKQEAgLTM0NCwxMCArMzQ0LDEwIEBAIGNsYXNzIFRl
c3RHcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgICAgIH0KIAotICAgICAgICBjb25zb2xlLmFzc2VydChbJ2FsdGVybmF0aW5nJywgJ3NlcXVl
bnRpYWwnXS5pbmNsdWRlcyh0aGlzLnJlcGV0aXRpb25UeXBlKCkpKTsKKyAgICAgICAgY29uc29s
ZS5hc3NlcnQoWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJywgJ3BhcmFsbGVsJ10uaW5jbHVk
ZXModGhpcy5yZXBldGl0aW9uVHlwZSgpKSk7CiAgICAgICAgIGNvbnN0IHJlcGV0aXRpb25MaW1p
dCA9IG1heFJldHJ5RmFjdG9yICogdGhpcy5pbml0aWFsUmVwZXRpdGlvbkNvdW50KCk7Ci0gICAg
ICAgIGNvbnN0IHtyZXRyeUNvdW50LCBzdG9wRnV0dXJlUmV0cmllc30gPSBhd2FpdCAodGhpcy5y
ZXBldGl0aW9uVHlwZSgpID09ICdhbHRlcm5hdGluZycgPwotICAgICAgICAgICAgdGhpcy5fY3Jl
YXRlQWx0ZXJuYXRpbmdSZXRyaWVzRm9yVGVzdEdyb3VwKHJlcGV0aXRpb25MaW1pdCkgOiB0aGlz
Ll9jcmVhdGVTZXF1ZW50aWFsUmV0cmllc0ZvclRlc3RHcm91cChyZXBldGl0aW9uTGltaXQpKTsK
KyAgICAgICAgY29uc3Qge3JldHJ5Q291bnQsIHN0b3BGdXR1cmVSZXRyaWVzfSA9IGF3YWl0ICh0
aGlzLnJlcGV0aXRpb25UeXBlKCkgPT0gJ3NlcXVlbnRpYWwnID8KKyAgICAgICAgICAgIHRoaXMu
X2NyZWF0ZVNlcXVlbnRpYWxSZXRyaWVzRm9yVGVzdEdyb3VwKHJlcGV0aXRpb25MaW1pdCk6IHRo
aXMuX2NyZWF0ZUFsdGVybmF0aW5nUmV0cmllc0ZvclRlc3RHcm91cChyZXBldGl0aW9uTGltaXQp
KTsKIAogICAgICAgICBpZiAoc3RvcEZ1dHVyZVJldHJpZXMpCiAgICAgICAgICAgICBhd2FpdCB0
aGlzLmNsZWFyTWF5TmVlZE1vcmVCdWlsZFJlcXVlc3RzKCk7CmRpZmYgLS1naXQgYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90cmlnZ2VyYWJsZS5qcyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3RyaWdnZXJhYmxlLmpzCmluZGV4
IGQ1ZmYzYzQ4YzMyOWY5YjRkNjhlODQyMDMwZDIwYmQyYTg3ZTVhOGQuLjU1MDk5YWU5N2M3MjAw
YWI1ZjIzNzk3NGI5ZTBjNzg2NGY1NmM1ZGEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3RyaWdnZXJhYmxlLmpzCisrKyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3RyaWdnZXJhYmxlLmpzCkBAIC0xMSwxMSAr
MTEsMTUgQEAgY2xhc3MgVHJpZ2dlcmFibGUgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICAg
ICAgdGhpcy5fYWNjZXB0ZWRUZXN0cyA9IG5ldyBTZXQ7CiAKICAgICAgICAgY29uc3QgY29uZmln
dXJhdGlvbk1hcCA9IHRoaXMuZW5zdXJlTmFtZWRTdGF0aWNNYXAoJ3Rlc3RDb25maWd1cmF0aW9u
cycpOworICAgICAgICBjb25zdCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXNNYXAgPSB0aGlzLmVu
c3VyZU5hbWVkU3RhdGljTWFwKCdzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMnKTsKICAgICAgICAg
Zm9yIChjb25zdCBjb25maWcgb2Ygb2JqZWN0LmNvbmZpZ3VyYXRpb25zKSB7CiAgICAgICAgICAg
ICBjb25zdCBrZXkgPSBgJHtjb25maWcudGVzdC5pZCgpfS0ke2NvbmZpZy5wbGF0Zm9ybS5pZCgp
fWA7CiAgICAgICAgICAgICB0aGlzLl9hY2NlcHRlZFRlc3RzLmFkZChjb25maWcudGVzdCk7CiAg
ICAgICAgICAgICBjb25zb2xlLmFzc2VydCghKGtleSBpbiBjb25maWd1cmF0aW9uTWFwKSk7CiAg
ICAgICAgICAgICBjb25maWd1cmF0aW9uTWFwW2tleV0gPSB0aGlzOworCisgICAgICAgICAgICBj
b25zb2xlLmFzc2VydCghKGtleSBpbiBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXNNYXApKQorICAg
ICAgICAgICAgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzTWFwW2tleV0gPSBjb25maWcucmVwZXRp
dGlvblR5cGVzOwogICAgICAgICB9CiAgICAgfQogCkBAIC0yNSw2ICsyOSwxOSBAQCBjbGFzcyBU
cmlnZ2VyYWJsZSBleHRlbmRzIExhYmVsZWRPYmplY3QgewogCiAgICAgYWNjZXB0ZWRUZXN0cygp
IHsgcmV0dXJuIHRoaXMuX2FjY2VwdGVkVGVzdHM7IH0KIAorICAgIHN0YXRpYyBzdXBwb3J0ZWRS
ZXBldGl0aW9uVHlwZXNCeUNvbmZpZ3VyYXRpb24odGVzdCwgcGxhdGZvcm0pCisgICAgeworICAg
ICAgICBsZXQgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzTWFwID0gdGhpcy5lbnN1cmVOYW1lZFN0
YXRpY01hcCgnc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzJyk7CisgICAgICAgIGlmICghc3VwcG9y
dGVkUmVwZXRpdGlvblR5cGVzTWFwKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAg
IGZvciAoOyB0ZXN0OyB0ZXN0ID0gdGVzdC5wYXJlbnRUZXN0KCkpIHsKKyAgICAgICAgICAgIGNv
bnN0IGtleSA9IGAke3Rlc3QuaWQoKX0tJHtwbGF0Zm9ybS5pZCgpfWA7CisgICAgICAgICAgICBp
ZiAoa2V5IGluIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlc01hcCkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzTWFwW2tleV07CisgICAgICAgIH0KKyAgICAg
ICAgcmV0dXJuIFtdOworICAgIH0KKwogICAgIHN0YXRpYyBmaW5kQnlUZXN0Q29uZmlndXJhdGlv
bih0ZXN0LCBwbGF0Zm9ybSkKICAgICB7CiAgICAgICAgIGxldCBjb25maWd1cmF0aW9uTWFwID0g
dGhpcy5lbnN1cmVOYW1lZFN0YXRpY01hcCgndGVzdENvbmZpZ3VyYXRpb25zJyk7CmRpZmYgLS1n
aXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2FuYWx5c2lzLXRh
c2stcGFnZS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvYW5h
bHlzaXMtdGFzay1wYWdlLmpzCmluZGV4IGZiZDA0MGJmMWUzZWY4YzRjYjI5ODcxZGRkMDJhMWMx
MWUwYjVjNzAuLjgyZmNmYzUxYmZhMjE1ZjQwMjg2MDg4NmY1NzE2NjQxMGVjMGQzNDEgMTAwNjQ0
Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvYW5hbHlzaXMt
dGFzay1wYWdlLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFn
ZXMvYW5hbHlzaXMtdGFzay1wYWdlLmpzCkBAIC0xMjgsNiArMTI4LDExIEBAIGNsYXNzIEFuYWx5
c2lzVGFza1Jlc3VsdHNQYW5lIGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CiAgICAgICAgIGNvbnN0
IGZpcnN0Q29tbWl0U2V0ID0gc2VsZWN0ZWRSYW5nZVsnQSddOwogICAgICAgICBjb25zdCBzZWNv
bmRDb21taXRTZXQgPSBzZWxlY3RlZFJhbmdlWydCJ107CiAgICAgICAgIGNvbnN0IGZvcm0gPSB0
aGlzLnBhcnQoJ2Zvcm0nKTsKKyAgICAgICAgY29uc3QgdGVzdEdyb3VwID0gcmVzdWx0c1ZpZXdl
ci5jdXJyZW50VGVzdEdyb3VwKCk7CisgICAgICAgIGlmICh0ZXN0R3JvdXApIHsKKyAgICAgICAg
ICAgIGNvbnN0IHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcyA9IFRyaWdnZXJhYmxlLnN1cHBvcnRl
ZFJlcGV0aXRpb25UeXBlc0J5Q29uZmlndXJhdGlvbih0ZXN0R3JvdXAudGVzdCgpLCB0ZXN0R3Jv
dXAucGxhdGZvcm0oKSk7CisgICAgICAgICAgICBmb3JtLnNldFN1cHBvcnRlZFJlcGV0aXRpb25U
eXBlcyhzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMpOworICAgICAgICB9CiAgICAgICAgIGZvcm0u
c2V0Q29tbWl0U2V0TWFwKGZpcnN0Q29tbWl0U2V0ICYmIHNlY29uZENvbW1pdFNldCA/IHsnQSc6
IGZpcnN0Q29tbWl0U2V0LCAnQic6IHNlY29uZENvbW1pdFNldH0gOiBudWxsKTsKICAgICAgICAg
Zm9ybS5lbnF1ZXVlVG9SZW5kZXIoKTsKICAgICB9CkBAIC0zNjgsOCArMzczLDE5IEBAIGNsYXNz
IEFuYWx5c2lzVGFza1Rlc3RHcm91cFBhbmUgZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsKIAogICAg
ICAgICBpZiAoY3VycmVudEdyb3VwKSB7CiAgICAgICAgICAgICB0aGlzLl90ZXN0R3JvdXBNYXAu
Z2V0KGN1cnJlbnRHcm91cCkubGlzdEl0ZW0uY2xhc3NMaXN0LmFkZCgnc2VsZWN0ZWQnKTsKLSAg
ICAgICAgICAgIHRoaXMucGFydCgncmV0cnktZm9ybScpLnNldFJlcGV0aXRpb25Db3VudChjdXJy
ZW50R3JvdXAuaW5pdGlhbFJlcGV0aXRpb25Db3VudCgpKTsKLSAgICAgICAgICAgIHRoaXMucGFy
dCgnYmlzZWN0LWZvcm0nKS5zZXRSZXBldGl0aW9uQ291bnQoY3VycmVudEdyb3VwLmluaXRpYWxS
ZXBldGl0aW9uQ291bnQoKSk7CisKKyAgICAgICAgICAgIGNvbnN0IHN1cHBvcnRlZFJlcGV0aXRp
b25UeXBlcyA9IFRyaWdnZXJhYmxlLnN1cHBvcnRlZFJlcGV0aXRpb25UeXBlc0J5Q29uZmlndXJh
dGlvbihjdXJyZW50R3JvdXAudGVzdCgpLCBjdXJyZW50R3JvdXAucGxhdGZvcm0oKSk7CisgICAg
ICAgICAgICBjb25zdCByZXRyeUZvcm0gPSB0aGlzLnBhcnQoJ3JldHJ5LWZvcm0nKTsKKyAgICAg
ICAgICAgIHJldHJ5Rm9ybS5zZXRSZXBldGl0aW9uQ291bnQoY3VycmVudEdyb3VwLmluaXRpYWxS
ZXBldGl0aW9uQ291bnQoKSk7CisgICAgICAgICAgICByZXRyeUZvcm0uc2V0U3VwcG9ydGVkUmVw
ZXRpdGlvblR5cGVzKHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcyk7CisgICAgICAgICAgICByZXRy
eUZvcm0uc2V0UmVwZXRpdGlvblR5cGUoY3VycmVudEdyb3VwLnJlcGV0aXRpb25UeXBlKCkpOwor
ICAgICAgICAgICAgcmV0cnlGb3JtLmVucXVldWVUb1JlbmRlcigpOworCisgICAgICAgICAgICBj
b25zdCBiaXNlY3RGb3JtID0gdGhpcy5wYXJ0KCdiaXNlY3QtZm9ybScpOworICAgICAgICAgICAg
YmlzZWN0Rm9ybS5zZXRSZXBldGl0aW9uQ291bnQoY3VycmVudEdyb3VwLmluaXRpYWxSZXBldGl0
aW9uQ291bnQoKSk7CisgICAgICAgICAgICBiaXNlY3RGb3JtLnNldFN1cHBvcnRlZFJlcGV0aXRp
b25UeXBlcyhzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMpOworICAgICAgICAgICAgYmlzZWN0Rm9y
bS5zZXRSZXBldGl0aW9uVHlwZShjdXJyZW50R3JvdXAucmVwZXRpdGlvblR5cGUoKSk7CisgICAg
ICAgICAgICBiaXNlY3RGb3JtLmVucXVldWVUb1JlbmRlcigpOwogCiAgICAgICAgICAgICBpZiAo
Y3VycmVudEdyb3VwLmhhc1JldHJpZXMoKSkKICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlclJl
cGxhY2UodGhpcy5jb250ZW50KCdyZXRyeS1zdW1tYXJ5JyksIHRoaXMuX3JldHJ5U3VtbWFyeShj
dXJyZW50R3JvdXApKTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjMvcGFnZXMvY2hhcnQtcGFuZS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjMvcGFnZXMvY2hhcnQtcGFuZS5qcwppbmRleCBiNThjZTI2ODZjZDFkZjlkMjliZmU2ZDQw
YzljOWNlMGU0NDhiOGJjLi4xZjA0NDNkMjg1MDg5MjE5MzNjZWI5NjQwNGFmOWE5YWI3NDI4N2Ux
IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2No
YXJ0LXBhbmUuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdl
cy9jaGFydC1wYW5lLmpzCkBAIC0xMDQsMTAgKzEwNCwxMiBAQCBjbGFzcyBDaGFydFBhbmUgZXh0
ZW5kcyBDaGFydFBhbmVCYXNlIHsKICAgICAgICAgdGhpcy5fbWFpbkNoYXJ0SW5kaWNhdG9yV2Fz
TG9ja2VkID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX2NoYXJ0c1BhZ2UgPSBjaGFydHNQYWdlOwog
ICAgICAgICB0aGlzLl9sb2NrZWRQb3BvdmVyID0gbnVsbDsKKyAgICAgICAgdGhpcy5fcmVwZXRp
dGlvblR5cGUgPSAnYWx0ZXJuYXRpbmcnOwogICAgICAgICB0aGlzLl90cmVuZExpbmVUeXBlID0g
bnVsbDsKICAgICAgICAgdGhpcy5fdHJlbmRMaW5lUGFyYW1ldGVycyA9IFtdOwogICAgICAgICB0
aGlzLl90cmVuZExpbmVWZXJzaW9uID0gMDsKICAgICAgICAgdGhpcy5fcmVuZGVyZWRUcmVuZExp
bmVPcHRpb25zID0gZmFsc2U7CisgICAgICAgIHRoaXMuX3JlbmRlclJlcGV0aXRpb25UeXBlc0xh
emlseSA9IG5ldyBMYXppbHlFdmFsdWF0ZWRGdW5jdGlvbih0aGlzLl9yZW5kZXJSZXBldGl0aW9u
VHlwZXMuYmluZCh0aGlzKSk7CiAKICAgICAgICAgdGhpcy5jb25maWd1cmUocGxhdGZvcm1JZCwg
bWV0cmljSWQpOwogICAgIH0KQEAgLTEyMSw2ICsxMjMsNyBAQCBjbGFzcyBDaGFydFBhbmUgZXh0
ZW5kcyBDaGFydFBhbmVCYXNlIHsKICAgICAgICAgY29uc3QgcmVwZXRpdGlvbkNvdW50ID0gdGhp
cy5jb250ZW50KCdjb25maXJtLXJlcGV0aXRpb24nKTsKICAgICAgICAgY29uc3Qgbm90aWZ5T25D
b21wbGV0aW9uID0gdGhpcy5jb250ZW50KCdub3RpZnktb24tY29tcGxldGlvbicpOwogICAgICAg
ICBjb25zdCByZXBldGl0aW9uVHlwZSA9IHRoaXMuY29udGVudCgncmVwZXRpdGlvbi10eXBlJyk7
CisgICAgICAgIHJlcGV0aXRpb25UeXBlLm9uY2hhbmdlID0gKCkgPT4gdGhpcy5fcmVwZXRpdGlv
blR5cGUgPSByZXBldGl0aW9uVHlwZS52YWx1ZTsKICAgICAgICAgY3JlYXRlV2l0aFRlc3RHcm91
cENoZWNrYm94Lm9uY2hhbmdlID0gKCkgPT4gewogICAgICAgICAgICAgLy8gRklYTUU6IHNob3Vs
ZCBpbnZva2UgImVucXVldWVUb1JlbmRlciIgaW5zdGVhZC4KICAgICAgICAgICAgIGNvbnN0IHNo
b3VsZERpc2FibGUgPSAhY3JlYXRlV2l0aFRlc3RHcm91cENoZWNrYm94LmNoZWNrZWQ7CkBAIC0y
NDYsMTEgKzI0OSwxMCBAQCBjbGFzcyBDaGFydFBhbmUgZXh0ZW5kcyBDaGFydFBhbmVCYXNlIHsK
ICAgICAgICAgY29uc3QgY3JlYXRlV2l0aFRlc3RHcm91cCA9IHRoaXMuY29udGVudCgnY3JlYXRl
LXdpdGgtdGVzdC1ncm91cCcpLmNoZWNrZWQ7CiAgICAgICAgIGNvbnN0IHJlcGV0aXRpb25Db3Vu
dCA9IHRoaXMuY29udGVudCgnY29uZmlybS1yZXBldGl0aW9uJykudmFsdWU7CiAgICAgICAgIGNv
bnN0IG5vdGlmeU9uQ29tcGxldGlvbiA9IHRoaXMuY29udGVudCgnbm90aWZ5LW9uLWNvbXBsZXRp
b24nKS5jaGVja2VkOwotICAgICAgICBjb25zdCByZXBldGl0aW9uVHlwZSA9IHRoaXMuY29udGVu
dCgncmVwZXRpdGlvbi10eXBlJykudmFsdWU7CiAKICAgICAgICAgdHJ5IHsKICAgICAgICAgICAg
IGNvbnN0IGFuYWx5c2lzVGFzayA9IGF3YWl0IChjcmVhdGVXaXRoVGVzdEdyb3VwID8KLSAgICAg
ICAgICAgICAgICBBbmFseXNpc1Rhc2suY3JlYXRlKG5hbWUsIHN0YXJ0UG9pbnQsIGVuZFBvaW50
LCAnQ29uZmlybScsIHJlcGV0aXRpb25Db3VudCwgcmVwZXRpdGlvblR5cGUsIG5vdGlmeU9uQ29t
cGxldGlvbikgOiBBbmFseXNpc1Rhc2suY3JlYXRlKG5hbWUsIHN0YXJ0UG9pbnQsIGVuZFBvaW50
KSk7CisgICAgICAgICAgICAgICAgQW5hbHlzaXNUYXNrLmNyZWF0ZShuYW1lLCBzdGFydFBvaW50
LCBlbmRQb2ludCwgJ0NvbmZpcm0nLCByZXBldGl0aW9uQ291bnQsIHRoaXMuX3JlcGV0aXRpb25U
eXBlLCBub3RpZnlPbkNvbXBsZXRpb24pIDogQW5hbHlzaXNUYXNrLmNyZWF0ZShuYW1lLCBzdGFy
dFBvaW50LCBlbmRQb2ludCkpOwogICAgICAgICAgICAgbmV3V2luZG93LmxvY2F0aW9uLmhyZWYg
PSByb3V0ZXIudXJsKCdhbmFseXNpcy90YXNrLycgKyBhbmFseXNpc1Rhc2suaWQoKSk7CiAgICAg
ICAgICAgICB0aGlzLmZldGNoQW5hbHlzaXNUYXNrcyh0cnVlKTsKICAgICAgICAgfSBjYXRjaChl
cnJvcikgewpAQCAtMzIwLDYgKzMyMiw4IEBAIGNsYXNzIENoYXJ0UGFuZSBleHRlbmRzIENoYXJ0
UGFuZUJhc2UgewogICAgICAgICBjb25zdCBoYXNTZWxlY3RlZFBvaW50cyA9IHNlbGVjdGVkUG9p
bnRzICYmIHNlbGVjdGVkUG9pbnRzLmxlbmd0aCgpOwogICAgICAgICBpZiAoaGFzU2VsZWN0ZWRQ
b2ludHMpIHsKICAgICAgICAgICAgIGFjdGlvbnMucHVzaCh0aGlzLl9tYWtlUG9wb3ZlckFjdGlv
bkl0ZW0oYW5hbHl6ZVBvcG92ZXIsICdBbmFseXplJywgZmFsc2UpKTsKKyAgICAgICAgICAgIGNv
bnN0IHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcyA9IFRyaWdnZXJhYmxlLnN1cHBvcnRlZFJlcGV0
aXRpb25UeXBlc0J5Q29uZmlndXJhdGlvbihtZXRyaWMudGVzdCgpLCBwbGF0Zm9ybSk7CisgICAg
ICAgICAgICB0aGlzLl9yZW5kZXJSZXBldGl0aW9uVHlwZXNMYXppbHkuZXZhbHVhdGUoc3VwcG9y
dGVkUmVwZXRpdGlvblR5cGVzKTsKICAgICAgICAgICAgIGFuYWx5emVQb3BvdmVyLm9uc3VibWl0
ID0gdGhpcy5jcmVhdGVFdmVudEhhbmRsZXIoKCkgPT4gewogICAgICAgICAgICAgICAgIHRoaXMu
X2FuYWx5emVSYW5nZShzZWxlY3RlZFBvaW50cy5maXJzdFBvaW50KCksIHNlbGVjdGVkUG9pbnRz
Lmxhc3RQb2ludCgpKTsKICAgICAgICAgICAgIH0pOwpAQCAtMzQxLDYgKzM0NSwxNiBAQCBjbGFz
cyBDaGFydFBhbmUgZXh0ZW5kcyBDaGFydFBhbmVCYXNlIHsKICAgICAgICAgdGhpcy5yZW5kZXJS
ZXBsYWNlKHRoaXMuY29udGVudCgpLnF1ZXJ5U2VsZWN0b3IoJy5jaGFydC1wYW5lLWFjdGlvbi1i
dXR0b25zJyksIGFjdGlvbnMpOwogICAgIH0KIAorICAgIF9yZW5kZXJSZXBldGl0aW9uVHlwZXMo
cmVwZXRpdGlvblR5cGVzKQorICAgIHsKKyAgICAgICAgY29uc3QgZXhwbGFuYXRpb25CeVJlcGV0
aXRpb25UeXBlcyA9IFtbJ2FsdGVybmF0aW5nJywgJ2FsdGVybmF0ZSAoQUJBQiknXSwgWydzZXF1
ZW50aWFsJywgJ3NlcXVlbmNlIChBQUJCKSddLAorICAgICAgICAgICAgWydwYXJhbGxlbCcsICdw
YXJhbGxlbCddXS5maWx0ZXIoKGVudHJ5KSA9PiByZXBldGl0aW9uVHlwZXMuaW5jbHVkZXMoZW50
cnlbMF0pKQorICAgICAgICB0aGlzLnJlbmRlclJlcGxhY2UodGhpcy5jb250ZW50KCdyZXBldGl0
aW9uLXR5cGUnKSwKKyAgICAgICAgICAgIGV4cGxhbmF0aW9uQnlSZXBldGl0aW9uVHlwZXMubWFw
KChbdmFsdWUsIGRlc2NyaXB0aW9uXSkgPT4KKyAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUVs
ZW1lbnQoJ29wdGlvbicsIHtzZWxlY3RlZDogdGhpcy5fcmVwZXRpdGlvblR5cGUgPT0gdmFsdWUs
IHZhbHVlOiB2YWx1ZX0sIGRlc2NyaXB0aW9uKQorICAgICAgICApKTsKKyAgICB9CisKICAgICBf
bWFrZVBvcG92ZXJBY3Rpb25JdGVtKHBvcG92ZXIsIGxhYmVsLCBzaG91bGRSZXNwb25kVG9Ib3Zl
cikKICAgICB7CiAgICAgICAgIHZhciBzZWxmID0gdGhpczsKZGlmZiAtLWdpdCBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpzIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWFuaWZlc3QtdGVzdHMuanMK
aW5kZXggY2FhMGIyY2U2MWNhMTJmMjU1NTE2NTBlODE2MjY5MjA3NjhhZGFkNS4uYjgwZmZiODEw
ZTJlNTQxY2NiNzYzYTY5MDdiODYzZTgwYTQwNGJmZCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWFuaWZlc3QtdGVzdHMuanMKKysrIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWFuaWZlc3QtdGVzdHMuanMK
QEAgLTM2NCwxMiArMzY0LDI0IEBAIGRlc2NyaWJlKCcvYXBpL21hbmlmZXN0JywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCB7
Z3JvdXA6IDMwMiwgcmVwb3NpdG9yeTogOX0pLAogICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmln
Z2VyYWJsZV9yZXBvc2l0b3JpZXMnLCB7Z3JvdXA6IDMwMywgcmVwb3NpdG9yeTogOX0pLAogICAg
ICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCB7Z3JvdXA6IDMw
NCwgcmVwb3NpdG9yeTogMTZ9KSwKLSAgICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVf
Y29uZmlndXJhdGlvbnMnLCB7dHJpZ2dlcmFibGU6IDIwMCwgdGVzdDogMSwgcGxhdGZvcm06IDQ2
fSksCi0gICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywg
e3RyaWdnZXJhYmxlOiAyMDAsIHRlc3Q6IDIsIHBsYXRmb3JtOiA0Nn0pLAotICAgICAgICAgICAg
ZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHt0cmlnZ2VyYWJsZTogMjAx
LCB0ZXN0OiAxLCBwbGF0Zm9ybTogMjN9KSwKLSAgICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dl
cmFibGVfY29uZmlndXJhdGlvbnMnLCB7dHJpZ2dlcmFibGU6IDIwMSwgdGVzdDogMiwgcGxhdGZv
cm06IDIzfSksCi0gICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRp
b25zJywge3RyaWdnZXJhYmxlOiAyMDIsIHRlc3Q6IDEsIHBsYXRmb3JtOiAxMDR9KSwKLSAgICAg
ICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCB7dHJpZ2dlcmFi
bGU6IDIwMiwgdGVzdDogMiwgcGxhdGZvcm06IDEwNH0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0
KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHtpZDogMSwgdHJpZ2dlcmFibGU6IDIwMCwg
dGVzdDogMSwgcGxhdGZvcm06IDQ2fSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJh
YmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcycsIHt0cmlnZ2VyYWJsZV9jb25maWc6
IDEsIGNvbmZpZ19yZXBldGl0aW9uX3R5cGU6ICdhbHRlcm5hdGluZyd9KSwKKyAgICAgICAgICAg
IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywg
e3RyaWdnZXJhYmxlX2NvbmZpZzogMSwgY29uZmlnX3JlcGV0aXRpb25fdHlwZTogJ3NlcXVlbnRp
YWwnfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25z
Jywge2lkOiAyLCB0cmlnZ2VyYWJsZTogMjAwLCB0ZXN0OiAyLCBwbGF0Zm9ybTogNDZ9KSwKKyAg
ICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9u
X3R5cGVzJywge3RyaWdnZXJhYmxlX2NvbmZpZzogMiwgY29uZmlnX3JlcGV0aXRpb25fdHlwZTog
J2FsdGVybmF0aW5nJ30pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25m
aWd1cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMnLCB7dHJpZ2dlcmFibGVfY29uZmlnOiAyLCBjb25m
aWdfcmVwZXRpdGlvbl90eXBlOiAnc2VxdWVudGlhbCd9KSwKKyAgICAgICAgICAgIGRiLmluc2Vy
dCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCB7aWQ6IDMsIHRyaWdnZXJhYmxlOiAyMDEs
IHRlc3Q6IDEsIHBsYXRmb3JtOiAyM30pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2Vy
YWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMnLCB7dHJpZ2dlcmFibGVfY29uZmln
OiAzLCBjb25maWdfcmVwZXRpdGlvbl90eXBlOiAnYWx0ZXJuYXRpbmcnfSksCisgICAgICAgICAg
ICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcycs
IHt0cmlnZ2VyYWJsZV9jb25maWc6IDMsIGNvbmZpZ19yZXBldGl0aW9uX3R5cGU6ICdzZXF1ZW50
aWFsJ30pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9u
cycsIHtpZDogNCwgdHJpZ2dlcmFibGU6IDIwMSwgdGVzdDogMiwgcGxhdGZvcm06IDIzfSksCisg
ICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlv
bl90eXBlcycsIHt0cmlnZ2VyYWJsZV9jb25maWc6IDQsIGNvbmZpZ19yZXBldGl0aW9uX3R5cGU6
ICdhbHRlcm5hdGluZyd9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29u
ZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywge3RyaWdnZXJhYmxlX2NvbmZpZzogNCwgY29u
ZmlnX3JlcGV0aXRpb25fdHlwZTogJ3NlcXVlbnRpYWwnfSksCisgICAgICAgICAgICBkYi5pbnNl
cnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywge2lkOiA1LCB0cmlnZ2VyYWJsZTogMjAy
LCB0ZXN0OiAxLCBwbGF0Zm9ybTogMTA0fSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdn
ZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcycsIHt0cmlnZ2VyYWJsZV9jb25m
aWc6IDUsIGNvbmZpZ19yZXBldGl0aW9uX3R5cGU6ICdhbHRlcm5hdGluZyd9KSwKKyAgICAgICAg
ICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVz
Jywge3RyaWdnZXJhYmxlX2NvbmZpZzogNSwgY29uZmlnX3JlcGV0aXRpb25fdHlwZTogJ3NlcXVl
bnRpYWwnfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRp
b25zJywge2lkOiA2LCB0cmlnZ2VyYWJsZTogMjAyLCB0ZXN0OiAyLCBwbGF0Zm9ybTogMTA0fSks
CisgICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRp
dGlvbl90eXBlcycsIHt0cmlnZ2VyYWJsZV9jb25maWc6IDYsIGNvbmZpZ19yZXBldGl0aW9uX3R5
cGU6ICdhbHRlcm5hdGluZyd9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVf
Y29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywge3RyaWdnZXJhYmxlX2NvbmZpZzogNiwg
Y29uZmlnX3JlcGV0aXRpb25fdHlwZTogJ3NlcXVlbnRpYWwnfSksCiAgICAgICAgIF0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZldGNoKCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZl
ci10ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLXRlc3RzLmpzCmlu
ZGV4IDFhMzUyYjM4NGFjMzFjODIxOWEzNTAzMzE3ODY1MzA3YjAxNzY0NGEuLmM1NTEwOTQzMDQ2
NmQzNzk5YWU4NzcyOGVjMjYzZmQyMDEzNWY0ZDEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwZGF0ZS10cmlnZ2VyYWJsZS10ZXN0cy5qcwor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGRhdGUtdHJp
Z2dlcmFibGUtdGVzdHMuanMKQEAgLTgsNiArOCw3IEBAIGNvbnN0IFRlc3RTZXJ2ZXIgPSByZXF1
aXJlKCcuL3Jlc291cmNlcy90ZXN0LXNlcnZlci5qcycpOwogY29uc3QgTW9ja0RhdGEgPSByZXF1
aXJlKCcuL3Jlc291cmNlcy9tb2NrLWRhdGEuanMnKTsKIGNvbnN0IGFkZFdvcmtlckZvclJlcG9y
dCA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzJykuYWRkV29ya2Vy
Rm9yUmVwb3J0OwogY29uc3QgcHJlcGFyZVNlcnZlclRlc3QgPSByZXF1aXJlKCcuL3Jlc291cmNl
cy9jb21tb24tb3BlcmF0aW9ucy5qcycpLnByZXBhcmVTZXJ2ZXJUZXN0OworY29uc3QgYXNzZXJ0
VGhyb3dzID0gcmVxdWlyZSgnLi4vc2VydmVyLXRlc3RzL3Jlc291cmNlcy9jb21tb24tb3BlcmF0
aW9ucycpLmFzc2VydFRocm93czsKIAogZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxl
LycsIGZ1bmN0aW9uICgpIHsKICAgICBwcmVwYXJlU2VydmVyVGVzdCh0aGlzKTsKQEAgLTE5LDE0
ICsyMCwxNiBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24g
KCkgewogICAgICAgICAnY29uZmlndXJhdGlvbnMnOiBbXSwKICAgICB9OwogCi0gICAgY29uc3Qg
c21hbGxVcGRhdGUgPSB7Ci0gICAgICAgICd3b3JrZXJOYW1lJzogJ3NvbWVXb3JrZXInLAotICAg
ICAgICAnd29ya2VyUGFzc3dvcmQnOiAnc29tZVBhc3N3b3JkJywKLSAgICAgICAgJ3RyaWdnZXJh
YmxlJzogJ2J1aWxkLXdlYmtpdCcsCi0gICAgICAgICdjb25maWd1cmF0aW9ucyc6IFsKLSAgICAg
ICAgICAgIHt0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5z
b21lUGxhdGZvcm1JZCgpfQotICAgICAgICBdLAotICAgIH07CisgICAgZnVuY3Rpb24gY3JlYXRl
VXBkYXRlV2l0aFJlcGV0aXRpb25UeXBlcyhyZXBldGl0aW9uVHlwZXMpIHsKKyAgICAgICAgcmV0
dXJuIHsKKyAgICAgICAgICAgICd3b3JrZXJOYW1lJzogJ3NvbWVXb3JrZXInLAorICAgICAgICAg
ICAgJ3dvcmtlclBhc3N3b3JkJzogJ3NvbWVQYXNzd29yZCcsCisgICAgICAgICAgICAndHJpZ2dl
cmFibGUnOiAnYnVpbGQtd2Via2l0JywKKyAgICAgICAgICAgICdjb25maWd1cmF0aW9ucyc6IFt7
dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRm
b3JtSWQoKSwgcmVwZXRpdGlvblR5cGVzfV0sCisgICAgICAgIH0KKyAgICB9CisKKyAgICBjb25z
dCBzbWFsbFVwZGF0ZSA9IGNyZWF0ZVVwZGF0ZVdpdGhSZXBldGl0aW9uVHlwZXMoWydhbHRlcm5h
dGluZycsICdzZXF1ZW50aWFsJ10pOwogCiAgICAgaXQoJ3Nob3VsZCByZWplY3Qgd2hlbiB3b3Jr
ZXIgbmFtZSBpcyBtaXNzaW5nJywgKCkgPT4gewogICAgICAgICByZXR1cm4gVGVzdFNlcnZlci5y
ZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywge30pLnRoZW4o
KHJlc3BvbnNlKSA9PiB7CkBAIC0xMTksNyArMTIyLDcgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRl
LXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICd3b3JrZXJQYXNzd29y
ZCc6ICdzb21lUGFzc3dvcmQnLAogICAgICAgICAgICAgJ3RyaWdnZXJhYmxlJzogJ2VtcHR5LXRy
aWdnZXJhYmxlJywKICAgICAgICAgICAgICdjb25maWd1cmF0aW9ucyc6IFsKLSAgICAgICAgICAg
ICAgICB7dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29t
ZVBsYXRmb3JtSWQoKX0KKyAgICAgICAgICAgICAgICB7dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJ
ZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSwgcmVwZXRpdGlvblR5cGVz
OiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXX0KICAgICAgICAgICAgIF0sCiAgICAgICAg
ICAgICAncmVwb3NpdG9yeUdyb3Vwcyc6IFsKICAgICAgICAgICAgICAgICB7bmFtZTogJ3N5c3Rl
bS1vbmx5JywgcmVwb3NpdG9yaWVzOiBbCkBAIC0yNTMsNiArMjU2LDggQEAgZGVzY3JpYmUoJy9h
cGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigo
cmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBjb25zdCBbaW5pdGlhbENvbmZpZ3VyYXRpb25zLCBp
bml0aWFsUmVwb3NpdG9yeUdyb3Vwc10gPSBpbml0aWFsUmVzdWx0OwogICAgICAgICAgICAgY29u
c3QgW2NvbmZpZ3VyYXRpb25zLCByZXBvc2l0b3J5R3JvdXBzXSA9IHJlc3VsdDsKKyAgICAgICAg
ICAgIGluaXRpYWxDb25maWd1cmF0aW9ucy5mb3JFYWNoKGNvbmZpZyA9PiBkZWxldGUgY29uZmln
LmlkKTsKKyAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25zLmZvckVhY2goY29uZmlnID0+IGRlbGV0
ZSBjb25maWcuaWQpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb25maWd1
cmF0aW9ucywgaW5pdGlhbENvbmZpZ3VyYXRpb25zKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVw
U3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3VwcywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHMpOwog
ICAgICAgICB9KQpAQCAtMjc1LDYgKzI4MCw4IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmln
Z2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewog
ICAgICAgICAgICAgY29uc3QgW2luaXRpYWxDb25maWd1cmF0aW9ucywgaW5pdGlhbFJlcG9zaXRv
cnlHcm91cHNdID0gaW5pdGlhbFJlc3VsdDsKICAgICAgICAgICAgIGNvbnN0IFtjb25maWd1cmF0
aW9ucywgcmVwb3NpdG9yeUdyb3Vwc10gPSByZXN1bHQ7CisgICAgICAgICAgICBpbml0aWFsQ29u
ZmlndXJhdGlvbnMuZm9yRWFjaChjb25maWcgPT4gZGVsZXRlIGNvbmZpZy5pZCk7CisgICAgICAg
ICAgICBjb25maWd1cmF0aW9ucy5mb3JFYWNoKGNvbmZpZyA9PiBkZWxldGUgY29uZmlnLmlkKTsK
ICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29uZmlndXJhdGlvbnMsIGluaXRp
YWxDb25maWd1cmF0aW9ucyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJl
cG9zaXRvcnlHcm91cHMsIGluaXRpYWxSZXBvc2l0b3J5R3JvdXBzKTsKICAgICAgICAgfSkKQEAg
LTMwOCw3ICszMTUsNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgJ3dvcmtlclBhc3N3b3JkJzogJ3NvbWVQYXNzd29yZCcs
CiAgICAgICAgICAgICAndHJpZ2dlcmFibGUnOiAnZW1wdHktdHJpZ2dlcmFibGUnLAogICAgICAg
ICAgICAgJ2NvbmZpZ3VyYXRpb25zJzogWwotICAgICAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0
YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpfQorICAg
ICAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2Nr
RGF0YS5zb21lUGxhdGZvcm1JZCgpLCByZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAn
c2VxdWVudGlhbCddfQogICAgICAgICAgICAgXSwKICAgICAgICAgICAgICdyZXBvc2l0b3J5R3Jv
dXBzJzogWwogICAgICAgICAgICAgICAgIHtuYW1lOiAnc3lzdGVtLW9ubHknLCByZXBvc2l0b3Jp
ZXM6IFt7cmVwb3NpdG9yeTogTW9ja0RhdGEubWFjb3NSZXBvc2l0b3J5SWQoKX1dfSwKQEAgLTQ2
NSw0ICs0NzIsMjIgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKKyAgICBpdCgnc2hvdWxkIGFsbG93IGFk
ZGluZyAicGFyYWxsZWwiIHJlcGV0aXRpb24gdHlwZSB0byB0cmlnZ2VyYWJsZSBjb25maWd1cmF0
aW9uJywgYXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJh
c2UoKTsKKyAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEoZGIpOworICAgICAgICBj
b25zdCBpbml0aWFsVXBkYXRlID0gY3JlYXRlVXBkYXRlV2l0aFJlcGV0aXRpb25UeXBlcyhbJ2Fs
dGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXSk7CisgICAgICAgIGF3YWl0IGFkZFdvcmtlckZvclJl
cG9ydChpbml0aWFsVXBkYXRlKTsKKyAgICAgICAgYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlJywgaW5pdGlhbFVw
ZGF0ZSk7CisKKyAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IGRiLnF1ZXJ5KCdTRUxFQ1QgY29u
ZmlnX3JlcGV0aXRpb25fdHlwZSBBUyByZXBldGl0aW9uX3R5cGUgRlJPTSB0cmlnZ2VyYWJsZV9j
b25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHJlc3VsdC5yb3dzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVz
dWx0LnJvd3MubWFwKHJvdyA9PiByb3dbJ3JlcGV0aXRpb25fdHlwZSddKS5zb3J0KCksIFsnYWx0
ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddKTsKKworICAgICAgICBjb25zdCB1cGRhdGVXaXRoUGFy
YWxsZWxSZXBldGl0aW9uID0gY3JlYXRlVXBkYXRlV2l0aFJlcGV0aXRpb25UeXBlcyhbJ2FsdGVy
bmF0aW5nJywgJ3NlcXVlbnRpYWwnLCAncGFyYWxsZWwnXSk7CisgICAgICAgIGF3YWl0IFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3VwZGF0ZS10cmlnZ2Vy
YWJsZScsIHVwZGF0ZVdpdGhQYXJhbGxlbFJlcGV0aXRpb24pOworICAgICAgICByZXN1bHQgPSBh
d2FpdCBkYi5xdWVyeSgnU0VMRUNUIGNvbmZpZ19yZXBldGl0aW9uX3R5cGUgQVMgcmVwZXRpdGlv
bl90eXBlIEZST00gdHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJyk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQucm93cy5sZW5ndGgsIDMpOworICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdC5yb3dzLm1hcChyb3cgPT4gcm93WydyZXBldGl0
aW9uX3R5cGUnXSkuc29ydCgpLCBbJ2FsdGVybmF0aW5nJywgJ3BhcmFsbGVsJywgJ3NlcXVlbnRp
YWwnXSk7CisgICAgfSk7CisKIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy9hcGktdXBsb2FkLXJvb3QtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGxvYWQtcm9vdC10ZXN0cy5qcwppbmRleCA2
NzVkNTk0ODc0Y2ExNmRjN2U4OTY2ODA0Y2ZlZjQxODY1ZjI1MmRjLi4wMTQ5OWM4OGQzNGEyMDBl
YmExZjkzZjkwZjBkYzY5YWRiMjBkYzBhIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGxvYWQtcm9vdC10ZXN0cy5qcworKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGxvYWQtcm9vdC10ZXN0cy5qcwpA
QCAtMzgsNyArMzgsNyBAQCBmdW5jdGlvbiBjcmVhdGVUZXN0R3JvdXBXaWhQYXRjaCgpCiAgICAg
ICAgICd3b3JrZXJQYXNzd29yZCc6ICdwYXNzd29yZCcsCiAgICAgICAgICd0cmlnZ2VyYWJsZSc6
ICdidWlsZC13ZWJraXQnLAogICAgICAgICAnY29uZmlndXJhdGlvbnMnOiBbCi0gICAgICAgICAg
ICB7dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBs
YXRmb3JtSWQoKX0sCisgICAgICAgICAgICB7dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBw
bGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSwgcmVwZXRpdGlvblR5cGVzOiBbJ2Fs
dGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXX0sCiAgICAgICAgIF0sCiAgICAgICAgICdyZXBvc2l0
b3J5R3JvdXBzJzogWwogICAgICAgICAgICAge25hbWU6ICd3ZWJraXQnLCByZXBvc2l0b3JpZXM6
IFsKQEAgLTgwLDcgKzgwLDcgQEAgZnVuY3Rpb24gY3JlYXRlVGVzdEdyb3VwV2l0aFBhdGNoQW5k
T3duZWRDb21taXRzKCkKICAgICAgICAgJ3dvcmtlclBhc3N3b3JkJzogJ3Bhc3N3b3JkJywKICAg
ICAgICAgJ3RyaWdnZXJhYmxlJzogJ2J1aWxkLXdlYmtpdCcsCiAgICAgICAgICdjb25maWd1cmF0
aW9ucyc6IFsKLSAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRm
b3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpfSwKKyAgICAgICAgICAgIHt0ZXN0OiBNb2Nr
RGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpLCBy
ZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddfSwKICAgICAgICAg
XSwKICAgICAgICAgJ3JlcG9zaXRvcnlHcm91cHMnOiBbCiAgICAgICAgICAgICB7bmFtZTogJ3dl
YmtpdCcsIHJlcG9zaXRvcmllczogWwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1hZGQtYnVpbGQtcmVxdWVzdHMtdGVzdHMu
anMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBp
LWFkZC1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcwppbmRleCBmOWM0NDY0NWEyYTc0Mzc0ZGI5YzU1
NTk0MDk4Y2EyM2I5MmI3MzVjLi5jZDZkMjUyOTU4Yjg3YjkzNDUyNGE5NjdiZDljYTYxMWQxM2Ez
OTVjIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3By
aXZpbGVnZWQtYXBpLWFkZC1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWFkZC1idWlsZC1yZXF1
ZXN0cy10ZXN0cy5qcwpAQCAtOTYsOCArOTYsOCBAQCBhc3luYyBmdW5jdGlvbiBhZGRUcmlnZ2Vy
YWJsZUFuZENyZWF0ZVRhc2sobmFtZSwgd2Via2l0UmV2aXNpb25zKQogICAgICAgICAnd29ya2Vy
UGFzc3dvcmQnOiAnYW5vdGhlclBhc3N3b3JkJywKICAgICAgICAgJ3RyaWdnZXJhYmxlJzogJ2J1
aWxkLXdlYmtpdCcsCiAgICAgICAgICdjb25maWd1cmF0aW9ucyc6IFsKLSAgICAgICAgICAgIHt0
ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZv
cm1JZCgpfSwKLSAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRm
b3JtOiBNb2NrRGF0YS5vdGhlclBsYXRmb3JtSWQoKX0sCisgICAgICAgICAgICB7dGVzdDogTW9j
a0RhdGEuc29tZVRlc3RJZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSwg
cmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXX0sCisgICAgICAg
ICAgICB7dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEub3Ro
ZXJQbGF0Zm9ybUlkKCksIHJlcGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1ZW50
aWFsJ119LAogICAgICAgICBdLAogICAgICAgICAncmVwb3NpdG9yeUdyb3Vwcyc6IFsKICAgICAg
ICAgICAgIHtuYW1lOiAnb3Mtb25seScsIGFjY2VwdHNSb290OiB0cnVlLCByZXBvc2l0b3JpZXM6
IFsKQEAgLTE5MCw3ICsxOTAsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2FkZC1idWls
ZC1yZXF1ZXN0cycsIGZ1bmN0aW9uKCkgewogICAgICAgICBhd2FpdCBhc3NlcnRUaHJvd3MoJ0Nh
bm5vdEFkZFRvSGlkZGVuVGVzdEdyb3VwJywgYXN5bmMgKCkgPT4gYXdhaXQgUHJpdmlsZWdlZEFQ
SS5zZW5kUmVxdWVzdCgnYWRkLWJ1aWxkLXJlcXVlc3RzJywge2dyb3VwOiBpbnNlcnRlZEdyb3Vw
SWQsIGFkZENvdW50OiAyfSkpCiAgICAgfSk7CiAKLSAgICBpdCgnc2hvdWxkIHJlamVjdCB3aXRo
ICJDb21taXRTZXROb3RTdXBwb3J0ZWRGb3JBbHRlcm5hdGluZ1JlcGV0aXRpb25UeXBlIiB3aGVu
IGFkZGluZyBidWlsZCByZXF1ZXN0cyBmb3Igb25lIGNvbW1pdCBzZXQgaW4gYW4gYWx0ZXJuYXRp
bmcgdGVzdCBncm91cCcsIGFzeW5jICgpID0+IHsKKyAgICBpdCgnc2hvdWxkIHJlamVjdCB3aXRo
ICJDb21taXRTZXROb3RTdXBwb3J0ZWRGb3JOb25TZXF1ZW50aWFsUmVwZXRpdGlvblR5cGUiIHdo
ZW4gYWRkaW5nIGJ1aWxkIHJlcXVlc3RzIGZvciBvbmUgY29tbWl0IHNldCBpbiBhbiBhbHRlcm5h
dGluZyB0ZXN0IGdyb3VwJywgYXN5bmMgKCkgPT4gewogICAgICAgICBhd2FpdCBhZGRUcmlnZ2Vy
YWJsZUFuZENyZWF0ZVRhc2soJ3NvbWUgdGFzaycpOwogICAgICAgICBjb25zdCB3ZWJraXQgPSBS
ZXBvc2l0b3J5LmFsbCgpLmZpbHRlcigocmVwb3NpdG9yeSkgPT4gcmVwb3NpdG9yeS5uYW1lKCkg
PT0gJ1dlYktpdCcpWzBdOwogICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBbe1t3ZWJraXQu
aWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9fSwge1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjog
JzE5MTYyMyd9fV07CkBAIC0yMTgsNyArMjE4LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS9hZGQtYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbigpIHsKICAgICAgICAgY29uc3Qgc2Vjb25k
Q29tbWl0U2V0ID0gZ3JvdXAucmVxdWVzdGVkQ29tbWl0U2V0cygpWzFdOwogICAgICAgICBhc3Nl
cnRPcmRlck9mUmVxdWVzdHMoZ3JvdXAucmVxdWVzdHNGb3JDb21taXRTZXQoc2Vjb25kQ29tbWl0
U2V0KSwgWzEsIDNdKTsKIAotICAgICAgICBhd2FpdCBhc3NlcnRUaHJvd3MoJ0NvbW1pdFNldE5v
dFN1cHBvcnRlZEZvckFsdGVybmF0aW5nUmVwZXRpdGlvblR5cGUnLCAoKSA9PiB7CisgICAgICAg
IGF3YWl0IGFzc2VydFRocm93cygnQ29tbWl0U2V0Tm90U3VwcG9ydGVkRm9yTm9uU2VxdWVudGlh
bFJlcGV0aXRpb25UeXBlJywgKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRB
UEkuc2VuZFJlcXVlc3QoJ2FkZC1idWlsZC1yZXF1ZXN0cycsCiAgICAgICAgICAgICAgICAge2dy
b3VwOiBpbnNlcnRlZEdyb3VwSWQsIGFkZENvdW50OiAyLCBjb21taXRTZXQ6IHNlY29uZENvbW1p
dFNldC5pZCgpfSkKICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS1hbmFseXNpcy10YXNrLXRl
c3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2Vk
LWFwaS1jcmVhdGUtYW5hbHlzaXMtdGFzay10ZXN0cy5qcwppbmRleCAyYTE3MTc4ZTQzNDIzMjJl
ZmNjMGJmZmQyN2YyOTgyMzVmNDMyNmRiLi45MGFlMzRkMDk2YmNjMmQ4YzVhNDVjYWU5MmY1OTYw
NTAyMDYwY2IxIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS1hbmFseXNpcy10YXNrLXRlc3RzLmpzCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRl
LWFuYWx5c2lzLXRhc2stdGVzdHMuanMKQEAgLTQxNSw3ICs0MTUsOCBAQCBkZXNjcmliZSgnL3By
aXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2Vk
IGFwaScsIGZ1bgogICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2J1aWxkX3RyaWdnZXJhYmxlcycs
IHtpZDogMTIzNCwgbmFtZTogJ3Rlc3QtdHJpZ2dlcmFibGUnfSk7CiAgICAgICAgIGF3YWl0IGRi
Lmluc2VydCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91cHMnLCB7aWQ6IDIzNDUsIG5hbWU6
ICd3ZWJraXQtb25seScsIHRyaWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlkfSk7CiAgICAgICAgIGF3
YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzJywge3JlcG9zaXRvcnk6IHdl
YmtpdElkLCBncm91cDogMjM0NX0pOwotICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJh
YmxlX2NvbmZpZ3VyYXRpb25zJywge3Rlc3Q6IHRlc3QxSWQsIHBsYXRmb3JtOiBwbGF0Zm9ybUlk
LCB0cmlnZ2VyYWJsZTogdHJpZ2dlcmFibGVJZH0pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQo
J3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywge2lkOiAxLCB0ZXN0OiB0ZXN0MUlkLCBwbGF0
Zm9ybTogcGxhdGZvcm1JZCwgdHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxlSWR9KTsKKyAgICAgICAg
YXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlw
ZXMnLCB7dHJpZ2dlcmFibGVfY29uZmlnOiAxLCBjb25maWdfcmVwZXRpdGlvbl90eXBlOiAnYWx0
ZXJuYXRpbmcnfSk7CiAgICAgICAgIGF3YWl0IGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0
aFJldmlzaW9uWzBdKTsKIAogICAgICAgICBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2aXNpb24pOwpAQCAtNTM3LDcgKzUz
OCw4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0
aCBub2RlIHByaXZpbGVnZWQgYXBpJywgZnVuY3RpCiAgICAgICAgIGF3YWl0IGRiLmluc2VydCgn
YnVpbGRfdHJpZ2dlcmFibGVzJywge2lkOiAxMjM0LCBuYW1lOiAndGVzdC10cmlnZ2VyYWJsZSd9
KTsKICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3Vw
cycsIHtpZDogMjM0NSwgbmFtZTogJ3dlYmtpdC1vbmx5JywgdHJpZ2dlcmFibGU6IHRyaWdnZXJh
YmxlSWR9KTsKICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3Jp
ZXMnLCB7cmVwb3NpdG9yeTogd2Via2l0SWQsIGdyb3VwOiAyMzQ1fSk7Ci0gICAgICAgIGF3YWl0
IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCB7dGVzdDogdGVzdDFJZCwg
cGxhdGZvcm06IHBsYXRmb3JtSWQsIHRyaWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlkfSk7CisgICAg
ICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCB7aWQ6IDEs
IHRlc3Q6IHRlc3QxSWQsIHBsYXRmb3JtOiBwbGF0Zm9ybUlkLCB0cmlnZ2VyYWJsZTogdHJpZ2dl
cmFibGVJZH0pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3Vy
YXRpb25fcmVwZXRpdGlvbl90eXBlcycsIHt0cmlnZ2VyYWJsZV9jb25maWc6IDEsIGNvbmZpZ19y
ZXBldGl0aW9uX3R5cGU6ICdhbHRlcm5hdGluZyd9KTsKICAgICAgICAgYXdhaXQgYWRkQnVpbGRl
ckZvclJlcG9ydChyZXBvcnRXaXRoUmV2aXNpb25bMF0pOwogCiAgICAgICAgIGF3YWl0IFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZp
c2lvbik7CkBAIC02MTcsNyArNjE5LDggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVh
dGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBhcGknLCBmdW5jdGkKICAgICAg
ICAgYXdhaXQgZGIuaW5zZXJ0KCdidWlsZF90cmlnZ2VyYWJsZXMnLCB7aWQ6IDEyMzQsIG5hbWU6
ICd0ZXN0LXRyaWdnZXJhYmxlJ30pOwogICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJh
YmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywge2lkOiAyMzQ1LCBuYW1lOiAnd2Via2l0LW9ubHknLCB0
cmlnZ2VyYWJsZTogdHJpZ2dlcmFibGVJZH0pOwogICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3Ry
aWdnZXJhYmxlX3JlcG9zaXRvcmllcycsIHtyZXBvc2l0b3J5OiB3ZWJraXRJZCwgZ3JvdXA6IDIz
NDV9KTsKLSAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9u
cycsIHt0ZXN0OiB0ZXN0MUlkLCBwbGF0Zm9ybTogcGxhdGZvcm1JZCwgdHJpZ2dlcmFibGU6IHRy
aWdnZXJhYmxlSWR9KTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25m
aWd1cmF0aW9ucycsIHtpZDogMSwgdGVzdDogdGVzdDFJZCwgcGxhdGZvcm06IHBsYXRmb3JtSWQs
IHRyaWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlkfSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgn
dHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywge3RyaWdnZXJhYmxl
X2NvbmZpZzogMSwgY29uZmlnX3JlcGV0aXRpb25fdHlwZTogJ2FsdGVybmF0aW5nJ30pOwogICAg
ICAgICBhd2FpdCBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhSZXZpc2lvblswXSk7CiAK
ICAgICAgICAgYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBv
cnQvJywgcmVwb3J0V2l0aFJldmlzaW9uKTsKQEAgLTY5Nyw3ICs3MDAsOSBAQCBkZXNjcmliZSgn
L3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggbm9kZSBwcml2aWxlZ2Vk
IGFwaScsIGZ1bmN0aQogICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2J1aWxkX3RyaWdnZXJhYmxl
cycsIHtpZDogMTIzNCwgbmFtZTogJ3Rlc3QtdHJpZ2dlcmFibGUnfSk7CiAgICAgICAgIGF3YWl0
IGRiLmluc2VydCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91cHMnLCB7aWQ6IDIzNDUsIG5h
bWU6ICd3ZWJraXQtb25seScsIHRyaWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlkfSk7CiAgICAgICAg
IGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzJywge3JlcG9zaXRvcnk6
IHdlYmtpdElkLCBncm91cDogMjM0NX0pOwotICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdn
ZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywge3Rlc3Q6IHRlc3RJZCwgcGxhdGZvcm06IHBsYXRmb3Jt
SWQsIHRyaWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlkfSk7CisgICAgICAgIGF3YWl0IGRiLmluc2Vy
dCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCB7aWQ6IDEsIHRlc3Q6IHRlc3RJZCwgcGxh
dGZvcm06IHBsYXRmb3JtSWQsIHRyaWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlkfSk7CisgICAgICAg
IGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5
cGVzJywge3RyaWdnZXJhYmxlX2NvbmZpZzogMSwgY29uZmlnX3JlcGV0aXRpb25fdHlwZTogJ2Fs
dGVybmF0aW5nJ30pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZp
Z3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcycsIHt0cmlnZ2VyYWJsZV9jb25maWc6IDEsIGNvbmZp
Z19yZXBldGl0aW9uX3R5cGU6ICdzZXF1ZW50aWFsJ30pOwogICAgICAgICBhd2FpdCBhZGRCdWls
ZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhSZXZpc2lvblswXSk7CiAKICAgICAgICAgYXdhaXQgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFJl
dmlzaW9uKTsKQEAgLTc1NSw3ICs3NjAsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2Ny
ZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggbm9kZSBwcml2aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRv
cnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMycpOwogICAgIH0pOwogCi0g
ICAgaXQoJ3Nob3VsZCByZWplY3Qgd2l0aCAiSW52YWxpZFJlcGV0aXRpb25UeXBlIiB3aGVuIHJl
cGV0aXRpb24gdHlwZSBpcyBub3QgImFsdGVybmF0aW5nIiBvciAic2VxdWVudGlhbCInLCBhc3lu
YyAoKSA9PiB7CisgICAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIGNyZWF0ZSBhbiBhbmFseXNpcyB0
YXNrIHdpdGggYSBwYXJhbGxlbCB0ZXN0IGdyb3VwJywgYXN5bmMgKCkgPT4gewogICAgICAgICBj
b25zdCB3ZWJraXRJZCA9IDE7CiAgICAgICAgIGNvbnN0IHBsYXRmb3JtSWQgPSAxOwogICAgICAg
ICBjb25zdCB0cmlnZ2VyYWJsZUlkID0gMTIzNDsKQEAgLTc2OSw3ICs3NzQsODMgQEAgZGVzY3Jp
YmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJpdmls
ZWdlZCBhcGknLCBmdW5jdGkKICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdidWlsZF90cmlnZ2Vy
YWJsZXMnLCB7aWQ6IDEyMzQsIG5hbWU6ICd0ZXN0LXRyaWdnZXJhYmxlJ30pOwogICAgICAgICBh
d2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywge2lkOiAyMzQ1
LCBuYW1lOiAnd2Via2l0LW9ubHknLCB0cmlnZ2VyYWJsZTogdHJpZ2dlcmFibGVJZH0pOwogICAg
ICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcmllcycsIHtyZXBvc2l0
b3J5OiB3ZWJraXRJZCwgZ3JvdXA6IDIzNDV9KTsKLSAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0
cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHt0ZXN0OiB0ZXN0SWQsIHBsYXRmb3JtOiBwbGF0
Zm9ybUlkLCB0cmlnZ2VyYWJsZTogdHJpZ2dlcmFibGVJZH0pOworICAgICAgICBhd2FpdCBkYi5p
bnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywge2lkOiAxLCB0ZXN0OiB0ZXN0SWQs
IHBsYXRmb3JtOiBwbGF0Zm9ybUlkLCB0cmlnZ2VyYWJsZTogdHJpZ2dlcmFibGVJZH0pOworICAg
ICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlv
bl90eXBlcycsIHt0cmlnZ2VyYWJsZV9jb25maWc6IDEsIGNvbmZpZ19yZXBldGl0aW9uX3R5cGU6
ICdhbHRlcm5hdGluZyd9KTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9j
b25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMnLCB7dHJpZ2dlcmFibGVfY29uZmlnOiAxLCBj
b25maWdfcmVwZXRpdGlvbl90eXBlOiAnc2VxdWVudGlhbCd9KTsKKyAgICAgICAgYXdhaXQgZGIu
aW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMnLCB7dHJp
Z2dlcmFibGVfY29uZmlnOiAxLCBjb25maWdfcmVwZXRpdGlvbl90eXBlOiAncGFyYWxsZWwnfSk7
CisgICAgICAgIGF3YWl0IGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uWzBd
KTsKKworICAgICAgICBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBp
L3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2aXNpb24pOworICAgICAgICBhd2FpdCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBhbm90aGVyUmVwb3J0V2l0aFJl
dmlzaW9uKTsKKyAgICAgICAgYXdhaXQgTWFuaWZlc3QuZmV0Y2goKTsKKworICAgICAgICBjb25z
dCB0ZXN0ID0gVGVzdC5maW5kQnlJZCh0ZXN0SWQpOworICAgICAgICBjb25zdCBzb21lUGxhdGZv
cm0gPSBQbGF0Zm9ybS5maW5kQnlJZChwbGF0Zm9ybUlkKTsKKyAgICAgICAgY29uc3QgY29uZmln
Um93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0
cmljOiB0ZXN0Lm1ldHJpY3MoKVswXS5pZCgpLCBwbGF0Zm9ybTogc29tZVBsYXRmb3JtLmlkKCl9
KTsKKyAgICAgICAgY29uc3QgdGVzdFJ1bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1
bnMnLCB7Y29uZmlnOiBjb25maWdSb3dbJ2lkJ119KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisKKyAgICAgICAgY29uc3Qgb25lUmV2aXNpb25TZXQg
PSB7W3dlYmtpdElkXToge3JldmlzaW9uOiAnMTkxNjIyJ319OworICAgICAgICBjb25zdCBhbm90
aGVyUmV2aXNpb25TZXQgPSB7W3dlYmtpdElkXToge3JldmlzaW9uOiAnMTkxNjIzJ319OworCisg
ICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdj
cmVhdGUtYW5hbHlzaXMtdGFzaycsIHtuYW1lOiAnY29uZmlybScsIHJlcGV0aXRpb25Db3VudDog
MiwKKyAgICAgICAgICAgIHRlc3RHcm91cE5hbWU6ICdDb25maXJtJywgcmV2aXNpb25TZXRzOiBb
b25lUmV2aXNpb25TZXQsIGFub3RoZXJSZXZpc2lvblNldF0sCisgICAgICAgICAgICBzdGFydFJ1
bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVuZFJ1bjogdGVzdFJ1bnNbMV1bJ2lkJ10sIG5lZWRzTm90
aWZpY2F0aW9uOiB0cnVlLCByZXBldGl0aW9uVHlwZTogJ3BhcmFsbGVsJ30pOworCisgICAgICAg
IGNvbnN0IHRhc2sgPSBhd2FpdCBBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKGNvbnRlbnRbJ3Rhc2tJ
ZCddKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2submFtZSgpLCAnY29uZmlybScp
OworICAgICAgICBhc3NlcnQoIXRhc2suaGFzUmVzdWx0cygpKTsKKyAgICAgICAgYXNzZXJ0KHRh
c2suaGFzUGVuZGluZ1JlcXVlc3RzKCkpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFs
KHRhc2suYnVncygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5j
YXVzZXMoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRhc2suZml4ZXMo
KSwgW10pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5jaGFuZ2VUeXBlKCksIG51
bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5wbGF0Zm9ybSgpLmxhYmVsKCks
ICdzb21lIHBsYXRmb3JtJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm1ldHJp
YygpLnRlc3QoKS5sYWJlbCgpLCAnU3VpdGUnKTsKKworICAgICAgICBjb25zdCB0ZXN0R3JvdXBz
ID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrLmlkKCkpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBjb25zdCB0ZXN0
R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdy
b3VwLm5hbWUoKSwgJ0NvbmZpcm0nKTsKKyAgICAgICAgYXNzZXJ0Lm9rKHRlc3RHcm91cC5uZWVk
c05vdGlmaWNhdGlvbigpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5y
ZXBldGl0aW9uVHlwZSgpLCAncGFyYWxsZWwnKQorICAgICAgICBmb3IgKGNvbnN0IGNvbW1pdFNl
dCBvZiB0ZXN0R3JvdXAucmVxdWVzdGVkQ29tbWl0U2V0cygpKQorICAgICAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKHRlc3RHcm91cC5yZXBldGl0aW9uQ291bnRGb3JDb21taXRTZXQoY29tbWl0
U2V0KSwgMik7CisKKyAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0cyA9IHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxl
bmd0aCwgNCk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0u
b3JkZXIoKSwgMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFd
Lm9yZGVyKCksIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sy
XS5vcmRlcigpLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNb
M10ub3JkZXIoKSwgMyk7CisKKyAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdHNbMF0uY29tbWl0
U2V0KCkuZXF1YWxzKGJ1aWxkUmVxdWVzdHNbMl0uY29tbWl0U2V0KCkpKTsKKyAgICAgICAgYXNz
ZXJ0KGJ1aWxkUmVxdWVzdHNbMV0uY29tbWl0U2V0KCkuZXF1YWxzKGJ1aWxkUmVxdWVzdHNbM10u
Y29tbWl0U2V0KCkpKTsKKworICAgICAgICBjb25zdCBmaXJzdENvbW1pdFNldCA9IGJ1aWxkUmVx
dWVzdHNbMF0uY29tbWl0U2V0KCk7CisgICAgICAgIGNvbnN0IHNlY29uZENvbW1pdFNldCA9IGJ1
aWxkUmVxdWVzdHNbMV0uY29tbWl0U2V0KCk7CisgICAgICAgIGNvbnN0IHdlYmtpdFJlcG9zaXRv
cnkgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKHdlYmtpdElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9y
eSkucmV2aXNpb24oKSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vj
b25kQ29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNp
b24oKSwgJzE5MTYyMycpOworICAgIH0pOworCisgICAgaXQoJ3Nob3VsZCByZWplY3Qgd2l0aCAi
SW52YWxpZFJlcGV0aXRpb25UeXBlIiB3aGVuIHJlcGV0aXRpb24gdHlwZSBpcyBub3QgImFsdGVy
bmF0aW5nIiwgInNlcXVlbnRpYWwiIG9yICJwYXJhbGxlbCInLCBhc3luYyAoKSA9PiB7CisgICAg
ICAgIGNvbnN0IHdlYmtpdElkID0gMTsKKyAgICAgICAgY29uc3QgcGxhdGZvcm1JZCA9IDE7Cisg
ICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlSWQgPSAxMjM0OworCisgICAgICAgIGNvbnN0IGRiID0g
VGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3Rlc3RzJywg
e25hbWU6ICdTdWl0ZSd9KTsKKyAgICAgICAgY29uc3QgdGVzdFJvdyA9IGF3YWl0IGRiLnNlbGVj
dEZpcnN0Um93KCd0ZXN0cycsIHtuYW1lOiAnU3VpdGUnfSk7CisgICAgICAgIGNvbnN0IHRlc3RJ
ZCA9IHRlc3RSb3cuaWQ7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgncmVwb3NpdG9yaWVzJywg
e2lkOiB3ZWJraXRJZCwgbmFtZTogJ1dlYktpdCd9KTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0
KCdwbGF0Zm9ybXMnLCB7aWQ6IHBsYXRmb3JtSWQsIG5hbWU6ICdzb21lIHBsYXRmb3JtJ30pOwor
ICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2J1aWxkX3RyaWdnZXJhYmxlcycsIHtpZDogMTIzNCwg
bmFtZTogJ3Rlc3QtdHJpZ2dlcmFibGUnfSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJp
Z2dlcmFibGVfcmVwb3NpdG9yeV9ncm91cHMnLCB7aWQ6IDIzNDUsIG5hbWU6ICd3ZWJraXQtb25s
eScsIHRyaWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlkfSk7CisgICAgICAgIGF3YWl0IGRiLmluc2Vy
dCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzJywge3JlcG9zaXRvcnk6IHdlYmtpdElkLCBncm91
cDogMjM0NX0pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3Vy
YXRpb25zJywge2lkOiAxLCB0ZXN0OiB0ZXN0SWQsIHBsYXRmb3JtOiBwbGF0Zm9ybUlkLCB0cmln
Z2VyYWJsZTogdHJpZ2dlcmFibGVJZH0pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdn
ZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcycsIHt0cmlnZ2VyYWJsZV9jb25m
aWc6IDEsIGNvbmZpZ19yZXBldGl0aW9uX3R5cGU6ICdhbHRlcm5hdGluZyd9KTsKICAgICAgICAg
YXdhaXQgYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoUmV2aXNpb25bMF0pOwogCiAgICAg
ICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0Lycs
IHJlcG9ydFdpdGhSZXZpc2lvbik7CkBAIC03OTcsNCArODc4LDQ4IEBAIGRlc2NyaWJlKCcvcHJp
dmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBub2RlIHByaXZpbGVnZWQgYXBp
JywgZnVuY3RpCiAgICAgICAgICAgICB9KQogICAgICAgICB9KTsKICAgICB9KTsKKworICAgIGl0
KCdzaG91bGQgcmVqZWN0IHdpdGggIlVuc3VwcG9ydGVkUmVwZXRpdGlvblR5cGUiIHdoZW4gcmVw
ZXRpdGlvbiB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQgdW5kZXIgdHJpZ2dlcmFibGUgY29uZmlndXJh
dGlvbicsIGFzeW5jICgpID0+IHsKKyAgICAgICAgY29uc3Qgd2Via2l0SWQgPSAxOworICAgICAg
ICBjb25zdCBwbGF0Zm9ybUlkID0gMTsKKyAgICAgICAgY29uc3QgdHJpZ2dlcmFibGVJZCA9IDEy
MzQ7CisKKyAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAg
IGF3YWl0IGRiLmluc2VydCgndGVzdHMnLCB7bmFtZTogJ1N1aXRlJ30pOworICAgICAgICBjb25z
dCB0ZXN0Um93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3RzJywge25hbWU6ICdTdWl0
ZSd9KTsKKyAgICAgICAgY29uc3QgdGVzdElkID0gdGVzdFJvdy5pZDsKKyAgICAgICAgYXdhaXQg
ZGIuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7aWQ6IHdlYmtpdElkLCBuYW1lOiAnV2ViS2l0J30p
OworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3BsYXRmb3JtcycsIHtpZDogcGxhdGZvcm1JZCwg
bmFtZTogJ3NvbWUgcGxhdGZvcm0nfSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgnYnVpbGRf
dHJpZ2dlcmFibGVzJywge2lkOiAxMjM0LCBuYW1lOiAndGVzdC10cmlnZ2VyYWJsZSd9KTsKKyAg
ICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycsIHtp
ZDogMjM0NSwgbmFtZTogJ3dlYmtpdC1vbmx5JywgdHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxlSWR9
KTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCB7
cmVwb3NpdG9yeTogd2Via2l0SWQsIGdyb3VwOiAyMzQ1fSk7CisgICAgICAgIGF3YWl0IGRiLmlu
c2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCB7aWQ6IDEsIHRlc3Q6IHRlc3RJZCwg
cGxhdGZvcm06IHBsYXRmb3JtSWQsIHRyaWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlkfSk7CisgICAg
ICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9u
X3R5cGVzJywge3RyaWdnZXJhYmxlX2NvbmZpZzogMSwgY29uZmlnX3JlcGV0aXRpb25fdHlwZTog
J2FsdGVybmF0aW5nJ30pOworICAgICAgICBhd2FpdCBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9y
dFdpdGhSZXZpc2lvblswXSk7CisKKyAgICAgICAgYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFJldmlzaW9uKTsKKyAgICAgICAg
YXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgYW5v
dGhlclJlcG9ydFdpdGhSZXZpc2lvbik7CisgICAgICAgIGF3YWl0IE1hbmlmZXN0LmZldGNoKCk7
CisKKyAgICAgICAgY29uc3QgdGVzdCA9IFRlc3QuZmluZEJ5SWQodGVzdElkKTsKKyAgICAgICAg
Y29uc3Qgc29tZVBsYXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5SWQocGxhdGZvcm1JZCk7CisgICAg
ICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93KCd0ZXN0X2NvbmZp
Z3VyYXRpb25zJywge21ldHJpYzogdGVzdC5tZXRyaWNzKClbMF0uaWQoKSwgcGxhdGZvcm06IHNv
bWVQbGF0Zm9ybS5pZCgpfSk7CisgICAgICAgIGNvbnN0IHRlc3RSdW5zID0gYXdhaXQgZGIuc2Vs
ZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93WydpZCddfSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworCisgICAgICAgIGNvbnN0
IG9uZVJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5MTYyMid9fTsKKyAg
ICAgICAgY29uc3QgYW5vdGhlclJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjog
JzE5MTYyMyd9fTsKKyAgICAgICAgYXdhaXQgYXNzZXJ0VGhyb3dzKCdVbnN1cHBvcnRlZFJlcGV0
aXRpb25UeXBlJywgKCkgPT4geworICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2Vu
ZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywgeworICAgICAgICAgICAgICAgIG5hbWU6
ICdjb25maXJtJywKKyAgICAgICAgICAgICAgICByZXBldGl0aW9uQ291bnQ6IDIsCisgICAgICAg
ICAgICAgICAgdGVzdEdyb3VwTmFtZTogJ0NvbmZpcm0nLAorICAgICAgICAgICAgICAgIHJldmlz
aW9uU2V0czogW29uZVJldmlzaW9uU2V0LCBhbm90aGVyUmV2aXNpb25TZXRdLAorICAgICAgICAg
ICAgICAgIHJlcGV0aXRpb25UeXBlOiAncGFyYWxsZWwnLAorICAgICAgICAgICAgICAgIHN0YXJ0
UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwKKyAgICAgICAgICAgICAgICBlbmRSdW46IHRlc3RSdW5z
WzFdWydpZCddLAorICAgICAgICAgICAgICAgIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlCisgICAg
ICAgICAgICB9KQorICAgICAgICB9KTsKKyAgICB9KTsKIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtdGVz
dC1ncm91cC10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
cHJpdmlsZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMKaW5kZXggYmIyMjQyOTYz
MDUyZDE4ZjA1NzdhZGRkNDRjZTNjMzYxZGYxNDRkOS4uY2UyMTNhZmJmYTgxZmJhZjIxMGI2NzRh
MzcwYmFkODMwYTQzNTdkNSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtdGVzdC1ncm91cC10ZXN0cy5qcworKysg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNy
ZWF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzCkBAIC0xMDEsOCArMTAxLDggQEAgZnVuY3Rpb24gYWRk
VHJpZ2dlcmFibGVBbmRDcmVhdGVUYXNrKG5hbWUsIHdlYmtpdFJldmlzaW9ucykKICAgICAgICAg
J3dvcmtlclBhc3N3b3JkJzogJ2Fub3RoZXJQYXNzd29yZCcsCiAgICAgICAgICd0cmlnZ2VyYWJs
ZSc6ICdidWlsZC13ZWJraXQnLAogICAgICAgICAnY29uZmlndXJhdGlvbnMnOiBbCi0gICAgICAg
ICAgICB7dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29t
ZVBsYXRmb3JtSWQoKX0sCi0gICAgICAgICAgICB7dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgp
LCBwbGF0Zm9ybTogTW9ja0RhdGEub3RoZXJQbGF0Zm9ybUlkKCl9LAorICAgICAgICAgICAge3Rl
c3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9y
bUlkKCksIHJlcGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ119LAor
ICAgICAgICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06IE1vY2tE
YXRhLm90aGVyUGxhdGZvcm1JZCgpLCByZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAn
c2VxdWVudGlhbCddfSwKICAgICAgICAgXSwKICAgICAgICAgJ3JlcG9zaXRvcnlHcm91cHMnOiBb
CiAgICAgICAgICAgICB7bmFtZTogJ29zLW9ubHknLCBhY2NlcHRzUm9vdDogdHJ1ZSwgcmVwb3Np
dG9yaWVzOiBbCkBAIC0xNDY1LDcgKzE0NjUsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBp
L2NyZWF0ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoc2V0MS5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOwogICAg
IH0pOwogCi0gICAgaXQoJ3Nob3VsZCByZWplY3Qgd2l0aCAiSW52YWxpZFJlcGV0aXRpb25UeXBl
IiBpZiByZXBldGl0aW9uIHR5cGUgaXMgbm90ICJhbHRlcm5hdGluZyIgb3IgInNlcXVlbnRpYWwi
JywgYXN5bmMgKCkgPT4geworICAgIGl0KCdzaG91bGQgcmVqZWN0IHdpdGggIkludmFsaWRSZXBl
dGl0aW9uVHlwZSIgaWYgcmVwZXRpdGlvbiB0eXBlIGlzIG5vdCAiYWx0ZXJuYXRpbmciLCAic2Vx
dWVudGlhbCIgb3IgInBhcmFsbGVsIicsIGFzeW5jICgpID0+IHsKICAgICAgICAgYXdhaXQgYWRk
VHJpZ2dlcmFibGVBbmRDcmVhdGVUYXNrKCdzb21lIHRhc2snKTsKICAgICAgICAgY29uc3Qgd2Vi
a2l0ID0gUmVwb3NpdG9yeS5hbGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJlcG9zaXRvcnku
bmFtZSgpID09ICdXZWJLaXQnKVswXTsKICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gW3tb
d2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInfX0sIHtbd2Via2l0LmlkKCldOiB7cmV2
aXNpb246ICcxOTE2MjMnfX1dOwpAQCAtMTQ3Nyw2ICsxNDc3LDE4IEBAIGRlc2NyaWJlKCcvcHJp
dmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0p
OwogICAgIH0pOwogCisgICAgaXQoJ3Nob3VsZCByZWplY3Qgd2l0aCAiVW5zdXBwb3J0ZWRSZXBl
dGl0aW9uVHlwZSIgaWYgcmVwZXRpdGlvbiB0eXBlIGlzICJwYXJhbGxlbCIgYnV0IHRyaWdnZXJh
YmxlIGNvbmZpZ3VyYXRpb24gb25seSBzdXBwb3J0cyAic2VxdWVudGlhbCIgYW5kICJhbHRlcm5h
dGluZyInLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZFRyaWdnZXJhYmxlQW5kQ3Jl
YXRlVGFzaygnc29tZSB0YXNrJyk7CisgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnku
YWxsKCkuZmlsdGVyKChyZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5Lm5hbWUoKSA9PSAnV2ViS2l0
JylbMF07CisgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IFt7W3dlYmtpdC5pZCgpXToge3Jl
dmlzaW9uOiAnMTkxNjIyJ319LCB7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIzJ319
XTsKKworICAgICAgICBhd2FpdCBhc3NlcnRUaHJvd3MoJ1Vuc3VwcG9ydGVkUmVwZXRpdGlvblR5
cGUnLCAoKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVz
dCgnY3JlYXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrTmFtZTogJ290aGVyIHRh
c2snLAorICAgICAgICAgICAgICAgIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgp
LCB0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksCisgICAgICAgICAgICAgICAgbmVlZHNOb3Rp
ZmljYXRpb246IHRydWUsIHJlcGV0aXRpb25UeXBlOiAncGFyYWxsZWwnLCByZXBldGl0aW9uQ291
bnQ6IDIsIHJldmlzaW9uU2V0c30pCisgICAgICAgIH0pOworICAgIH0pOworCiAgICAgaXQoJ3No
b3VsZCByZWplY3Qgd2l0aCAiSW52YWxpZFJlcGV0aXRpb25UeXBlIiB3aGVuIGNyZWF0aW5nIGEg
dGVzdCBncm91cCB3aXRoIGEgYmFkIHJlcGV0aXRpb24gdHlwZSBmb3IgYW4gZXhpc3RpbmcgYW5h
bHlzaXMgdGFzaycsIGFzeW5jICgpID0+IHsKICAgICAgICAgY29uc3QgdGFza0lkID0gYXdhaXQg
YWRkVHJpZ2dlcmFibGVBbmRDcmVhdGVUYXNrKCdzb21lIHRhc2snKTsKICAgICAgICAgY29uc3Qg
d2Via2l0ID0gUmVwb3NpdG9yeS5hbGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJlcG9zaXRv
cnkubmFtZSgpID09ICdXZWJLaXQnKVswXTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBkYXRlLXRlc3QtZ3JvdXAtdGVz
dHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQt
YXBpLXVwZGF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzCmluZGV4IGI2ZGNhZTJmMjE4NjUyZmM5Mjk3
ZGRjYTUzODcyMDVmM2JjOWIzMDguLjgzZGMzOWIyYjg5Yjc0ODdhNDg5NjEzNGE3NzA5YWM4ZmUw
ZDdhZDYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
cHJpdmlsZWdlZC1hcGktdXBkYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGRhdGUtdGVzdC1n
cm91cC10ZXN0cy5qcwpAQCAtOTYsOCArOTYsOCBAQCBhc3luYyBmdW5jdGlvbiBhZGRUcmlnZ2Vy
YWJsZUFuZENyZWF0ZVRhc2sobmFtZSwgd2Via2l0UmV2aXNpb25zKQogICAgICAgICAnd29ya2Vy
UGFzc3dvcmQnOiAnYW5vdGhlclBhc3N3b3JkJywKICAgICAgICAgJ3RyaWdnZXJhYmxlJzogJ2J1
aWxkLXdlYmtpdCcsCiAgICAgICAgICdjb25maWd1cmF0aW9ucyc6IFsKLSAgICAgICAgICAgIHt0
ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZv
cm1JZCgpfSwKLSAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRm
b3JtOiBNb2NrRGF0YS5vdGhlclBsYXRmb3JtSWQoKX0sCisgICAgICAgICAgICB7dGVzdDogTW9j
a0RhdGEuc29tZVRlc3RJZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSwg
cmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXX0sCisgICAgICAg
ICAgICB7dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEub3Ro
ZXJQbGF0Zm9ybUlkKCksIHJlcGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1ZW50
aWFsJ119LAogICAgICAgICBdLAogICAgICAgICAncmVwb3NpdG9yeUdyb3Vwcyc6IFsKICAgICAg
ICAgICAgIHtuYW1lOiAnb3Mtb25seScsIGFjY2VwdHNSb290OiB0cnVlLCByZXBvc2l0b3JpZXM6
IFsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVz
b3VyY2VzL21vY2stZGF0YS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcwppbmRleCBlYWVlODFhMzQwYjE4NjJiMWZhMTJiMzY3
MjY3ZGNhODUzYzFjMzY0Li5iY2YxN2JkNzI3MDc4MGRkOWE3ZjkyNDAxZjdmZjZmMjQ3ZmUzMjM0
IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291
cmNlcy9tb2NrLWRhdGEuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzCkBAIC0zMjUsNiArMzI1LDcgQEAgTW9ja0RhdGEg
PSB7CiAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAndHJpZ2dlcmFibGVOYW1lJzogJ2J1
aWxkLXdlYmtpdCcsCiAgICAgICAgICAgICAnbG9va2JhY2tDb3VudCc6IDIsCisgICAgICAgICAg
ICAnc3VwcG9ydGVkVGVzdFJlcGV0aXRpb25UeXBlcyc6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVu
dGlhbCddLAogICAgICAgICAgICAgJ2J1aWxkUmVxdWVzdEFyZ3VtZW50JzogJ2J1aWxkLXJlcXVl
c3QtaWQnLAogICAgICAgICAgICAgJ3JlcG9zaXRvcnlHcm91cHMnOiB7CiAgICAgICAgICAgICAg
ICAgJ3dlYmtpdC1zdm4nOiB7CkBAIC0zNTYsNiArMzU3LDcgQEAgTW9ja0RhdGEgPSB7CiAgICAg
ICAgIHJldHVybiB7CiAgICAgICAgICAgICAndHJpZ2dlcmFibGVOYW1lJzogJ2J1aWxkLXdlYmtp
dCcsCiAgICAgICAgICAgICAnbG9va2JhY2tDb3VudCc6IDIsCisgICAgICAgICAgICAnc3VwcG9y
dGVkVGVzdFJlcGV0aXRpb25UeXBlcyc6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddLAog
ICAgICAgICAgICAgJ2J1aWxkUmVxdWVzdEFyZ3VtZW50JzogJ2J1aWxkLXJlcXVlc3QtaWQnLAog
ICAgICAgICAgICAgJ3JlcG9zaXRvcnlHcm91cHMnOiB7CiAgICAgICAgICAgICAgICAgJ3dlYmtp
dC1zdm4nOiB7CkBAIC00MDEsNiArNDAzLDcgQEAgTW9ja0RhdGEgPSB7CiAgICAgICAgIHJldHVy
biB7CiAgICAgICAgICAgICAndHJpZ2dlcmFibGVOYW1lJzogJ2J1aWxkLXdlYmtpdCcsCiAgICAg
ICAgICAgICAnbG9va2JhY2tDb3VudCc6IDIsCisgICAgICAgICAgICAnc3VwcG9ydGVkVGVzdFJl
cGV0aXRpb25UeXBlcyc6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddLAogICAgICAgICAg
ICAgJ2J1aWxkUmVxdWVzdEFyZ3VtZW50JzogJ2J1aWxkLXJlcXVlc3QtaWQnLAogICAgICAgICAg
ICAgJ3JlcG9zaXRvcnlHcm91cHMnOiB7CiAgICAgICAgICAgICAgICAgJ3dlYmtpdC1zdm4nOiB7
CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xz
LXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMu
anMKaW5kZXggNmRhZjUzNTRkZDJmNzIwNzQ3Zjk2ZDUzYmM0YTMxY2UwNWQ4ODI2Ny4uNmQ5OGVl
NWEzYzc0ZjZiOWE3NmM2YzQ5NzIwZWFmMmJkMjU1ZDQ2ZiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0
aW9uLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
dG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qcwpAQCAtMTgsNiArMTgsNyBA
QCBjb25zdCBjb25maWdXaXRoT25lVGVzdGVyVHdvQnVpbGRlcnMgPSB7CiAgICAgdHJpZ2dlcmFi
bGVOYW1lOiAnYnVpbGQtd2Via2l0JywKICAgICBsb29rYmFja0NvdW50OiAyLAogICAgIGJ1aWxk
UmVxdWVzdEFyZ3VtZW50OiAnYnVpbGQtcmVxdWVzdC1pZCcsCisgICAgc3VwcG9ydGVkVGVzdFJl
cGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ10sCiAgICAgd29ya2Vy
TmFtZTogJ3N5bmMtd29ya2VyJywKICAgICB3b3JrZXJQYXNzd29yZDogJ3Bhc3N3b3JkJywKICAg
ICByZXBvc2l0b3J5R3JvdXBzOiB7CkBAIC02Myw2ICs2NCw3IEBAIGNvbnN0IGNvbmZpZ1dpdGhQ
bGF0Zm9ybU5hbWUgPSB7CiAgICAgdHJpZ2dlcmFibGVOYW1lOiAnYnVpbGQtd2Via2l0JywKICAg
ICBsb29rYmFja0NvdW50OiAyLAogICAgIGJ1aWxkUmVxdWVzdEFyZ3VtZW50OiAnYnVpbGQtcmVx
dWVzdC1pZCcsCisgICAgc3VwcG9ydGVkVGVzdFJlcGV0aXRpb25UeXBlczogWydhbHRlcm5hdGlu
ZycsICdzZXF1ZW50aWFsJ10sCiAgICAgd29ya2VyTmFtZTogJ3N5bmMtd29ya2VyJywKICAgICB3
b3JrZXJQYXNzd29yZDogJ3Bhc3N3b3JkJywKICAgICBwbGF0Zm9ybUFyZ3VtZW50OiAncGxhdGZv
cm0tbmFtZScsCkBAIC0xMDksNiArMTExLDcgQEAgY29uc3QgY29uZmlnV2l0aFR3b1Rlc3RlcnMg
PSB7CiAgICAgdHJpZ2dlcmFibGVOYW1lOiAnYnVpbGQtd2Via2l0JywKICAgICBsb29rYmFja0Nv
dW50OiAyLAogICAgIGJ1aWxkUmVxdWVzdEFyZ3VtZW50OiAnYnVpbGQtcmVxdWVzdC1pZCcsCisg
ICAgc3VwcG9ydGVkVGVzdFJlcGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1ZW50
aWFsJ10sCiAgICAgd29ya2VyTmFtZTogJ3N5bmMtd29ya2VyJywKICAgICB3b3JrZXJQYXNzd29y
ZDogJ3Bhc3N3b3JkJywKICAgICByZXBvc2l0b3J5R3JvdXBzOiB7CkBAIC0yMzksNyArMjQyLDYg
QEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIFByaXZp
bGVnZWRBUEkuY29uZmlndXJlKCd0ZXN0JywgJ3Bhc3N3b3JkJyk7CiAgICAgfSk7CiAKLQogICAg
IGl0KCdzaG91bGQgbm90IHNjaGVkdWxlIG9uIGFub3RoZXIgYnVpbGRlciBpZiB0aGUgYnVpbGQg
d2FzIHNjaGVkdWxlZCBvbiBvbmUgYnVpbGRlciBiZWZvcmUnLCAoKSA9PiB7CiAgICAgICAgIGNv
bnN0IHJlcXVlc3RzID0gTW9ja1JlbW90ZUFQSS5yZXF1ZXN0czsKICAgICAgICAgbGV0IGZpcnN0
VGVzdEdyb3VwOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pz
L2J1aWxkYm90LXN5bmNlci5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9i
dWlsZGJvdC1zeW5jZXIuanMKaW5kZXggOWViOGM2YzkxYWY1MGZjMjAyMDY2ZGU1YzgyYzQxZDli
NGQ0MDllYy4uNTE3MWMwODk4ZDQ1YTc2MWY5NWRiZDRiOTM2MmJhNjNkZDU0Mzg5ZiAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5q
cworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qtc3luY2Vy
LmpzCkBAIC02OSw2ICs2OSw3IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgdGhp
cy5fd29ya2VyUHJvcGVydHlOYW1lID0gY29tbW9uQ29uZmlndXJhdGlvbnMud29ya2VyQXJndW1l
bnQ7CiAgICAgICAgIHRoaXMuX3BsYXRmb3JtUHJvcGVydHlOYW1lID0gY29tbW9uQ29uZmlndXJh
dGlvbnMucGxhdGZvcm1Bcmd1bWVudDsKICAgICAgICAgdGhpcy5fYnVpbGRSZXF1ZXN0UHJvcGVy
dHlOYW1lID0gY29tbW9uQ29uZmlndXJhdGlvbnMuYnVpbGRSZXF1ZXN0QXJndW1lbnQ7CisgICAg
ICAgIHRoaXMuX3N1cHBvcnRlZFRlc3RSZXBldGl0aW9uVHlwZXMgPSBjb21tb25Db25maWd1cmF0
aW9ucy5zdXBwb3J0ZWRUZXN0UmVwZXRpdGlvblR5cGVzOwogICAgICAgICB0aGlzLl9idWlsZGVy
TmFtZSA9IG9iamVjdC5idWlsZGVyOwogICAgICAgICB0aGlzLl9idWlsZGVySUQgPSBvYmplY3Qu
YnVpbGRlcklEOwogICAgICAgICB0aGlzLl93b3JrZXJMaXN0ID0gb2JqZWN0Lndvcmtlckxpc3Q7
CkBAIC04MiwxMyArODMsMTQgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgIC8vIEJ1aWxk
Ym90IHJlc3VsdCBjb2RlczogaHR0cHM6Ly9kb2NzLmJ1aWxkYm90Lm5ldC9sYXRlc3QvZGV2ZWxv
cGVyL3Jlc3VsdHMuaHRtbAogICAgIGxhc3RDb21wbGV0ZWRCdWlsZFN1Y2Nlc3NmdWwoKSB7IHJl
dHVybiAhdGhpcy5fbGFzdENvbXBsZXRlZEJ1aWxkIHx8ICF0aGlzLl9sYXN0Q29tcGxldGVkQnVp
bGQucmVzdWx0KCkgfQogCi0gICAgYWRkVGVzdENvbmZpZ3VyYXRpb24odGVzdCwgcGxhdGZvcm0s
IHByb3BlcnRpZXNUZW1wbGF0ZSkKKyAgICBhZGRUZXN0Q29uZmlndXJhdGlvbih0ZXN0LCBwbGF0
Zm9ybSwgcmVwZXRpdGlvblR5cGVzLCBwcm9wZXJ0aWVzVGVtcGxhdGUpCiAgICAgewogICAgICAg
ICBhc3NlcnQodGVzdCBpbnN0YW5jZW9mIFRlc3QpOwogICAgICAgICBhc3NlcnQocGxhdGZvcm0g
aW5zdGFuY2VvZiBQbGF0Zm9ybSk7CisgICAgICAgIGFzc2VydChBcnJheS5pc0FycmF5KHJlcGV0
aXRpb25UeXBlcykpOwogICAgICAgICBhc3NlcnQodGhpcy5fdHlwZSA9PSBudWxsIHx8IHRoaXMu
X3R5cGUgPT0gJ3Rlc3RlcicpOwogICAgICAgICB0aGlzLl90eXBlID0gJ3Rlc3Rlcic7Ci0gICAg
ICAgIHRoaXMuX2NvbmZpZ3VyYXRpb25zLnB1c2goe3Rlc3QsIHBsYXRmb3JtLCBwcm9wZXJ0aWVz
VGVtcGxhdGV9KTsKKyAgICAgICAgdGhpcy5fY29uZmlndXJhdGlvbnMucHVzaCh7dGVzdCwgcGxh
dGZvcm0sIHJlcGV0aXRpb25UeXBlcywgcHJvcGVydGllc1RlbXBsYXRlfSk7CiAgICAgfQogICAg
IHRlc3RDb25maWd1cmF0aW9ucygpIHsgcmV0dXJuIHRoaXMuX3R5cGUgPT0gJ3Rlc3RlcicgPyB0
aGlzLl9jb25maWd1cmF0aW9ucyA6IFtdOyB9CiAKQEAgLTEwNyw3ICsxMDksOSBAQCBjbGFzcyBC
dWlsZGJvdFN5bmNlciB7CiAKICAgICBtYXRjaGVzQ29uZmlndXJhdGlvbihyZXF1ZXN0KQogICAg
IHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZ3VyYXRpb25zLnNvbWUoKGNvbmZpZykgPT4g
Y29uZmlnLnBsYXRmb3JtID09IHJlcXVlc3QucGxhdGZvcm0oKSAmJiBjb25maWcudGVzdCA9PSBy
ZXF1ZXN0LnRlc3QoKSk7CisgICAgICAgIHJldHVybiB0aGlzLl9jb25maWd1cmF0aW9ucy5zb21l
KChjb25maWcpID0+IGNvbmZpZy5wbGF0Zm9ybSA9PSByZXF1ZXN0LnBsYXRmb3JtKCkgJiYgY29u
ZmlnLnRlc3QgPT0gcmVxdWVzdC50ZXN0KCkKKyAgICAgICAgICAgICYmICghdGhpcy5pc1Rlc3Rl
cigpIHx8IChjb25maWcucmVwZXRpdGlvblR5cGVzLmluY2x1ZGVzKHJlcXVlc3QudGVzdEdyb3Vw
KCkucmVwZXRpdGlvblR5cGUoKSkKKyAgICAgICAgICAgICAgICAgICAgJiYgdGhpcy5fc3VwcG9y
dGVkVGVzdFJlcGV0aXRpb25UeXBlcy5pbmNsdWRlcyhyZXF1ZXN0LnRlc3RHcm91cCgpLnJlcGV0
aXRpb25UeXBlKCkpKSkpOwogICAgIH0KIAogICAgIHNjaGVkdWxlUmVxdWVzdChuZXdSZXF1ZXN0
LCByZXF1ZXN0c0luR3JvdXAsIHdvcmtlck5hbWUpCkBAIC0zNzAsNiArMzc0LDcgQEAgY2xhc3Mg
QnVpbGRib3RTeW5jZXIgewogICAgICAgICAgICAgd29ya2VyQXJndW1lbnQ6IGNvbmZpZy53b3Jr
ZXJBcmd1bWVudCwKICAgICAgICAgICAgIGJ1aWxkUmVxdWVzdEFyZ3VtZW50OiBjb25maWcuYnVp
bGRSZXF1ZXN0QXJndW1lbnQsCiAgICAgICAgICAgICBwbGF0Zm9ybUFyZ3VtZW50OiBjb25maWcu
cGxhdGZvcm1Bcmd1bWVudCwKKyAgICAgICAgICAgIHN1cHBvcnRlZFRlc3RSZXBldGl0aW9uVHlw
ZXM6IGNvbmZpZy5zdXBwb3J0ZWRUZXN0UmVwZXRpdGlvblR5cGVzLAogICAgICAgICB9OwogCiAg
ICAgICAgIGNvbnN0IHN5bmNlckJ5QnVpbGRlciA9IG5ldyBNYXA7CkBAIC0zODUsNyArMzkwLDEz
IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgYXNzZXJ0KEFycmF5LmlzQXJyYXko
Y29uZmlnWyd0ZXN0Q29uZmlndXJhdGlvbnMnXSksIGBUaGUgdGVzdCBjb25maWd1cmF0aW9uIG11
c3QgYmUgYW4gYXJyYXlgKTsKICAgICAgICAgdGhpcy5fcmVzb2x2ZUJ1aWxkZXJzV2l0aFBsYXRm
b3JtcygndGVzdCcsIGNvbmZpZ1sndGVzdENvbmZpZ3VyYXRpb25zJ10sIGJ1aWxkZXJzLCBidWls
ZGVyTmFtZVRvSURNYXApLmZvckVhY2goKGVudHJ5LCBjb25maWd1cmF0aW9uSW5kZXgpID0+IHsK
ICAgICAgICAgICAgIGFzc2VydChBcnJheS5pc0FycmF5KGVudHJ5Wyd0eXBlcyddKSwgYFRoZSB0
ZXN0IGNvbmZpZ3VyYXRpb24gJHtjb25maWd1cmF0aW9uSW5kZXh9IGRvZXMgbm90IHNwZWNpZnkg
InR5cGVzIiBhcyBhbiBhcnJheWApOwotICAgICAgICAgICAgZm9yIChjb25zdCB0eXBlIG9mIGVu
dHJ5Wyd0eXBlcyddKSB7CisgICAgICAgICAgICBmb3IgKGxldCB0eXBlIG9mIGVudHJ5Wyd0eXBl
cyddKSB7CisgICAgICAgICAgICAgICAgbGV0IHJlcGV0aXRpb25UeXBlcyA9IGNvbmZpZy5zdXBw
b3J0ZWRUZXN0UmVwZXRpdGlvblR5cGVzOworICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0Fy
cmF5KHR5cGUpKSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCh0eXBlLmxlbmd0aCA9PSAy
LCBgVW5leHBlY3RlZCBsZW5ndGggb2YgYXJyYXk6ICR7dHlwZX1gKTsKKyAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0KEFycmF5LmlzQXJyYXkodHlwZVsxXSksIGBBcnJheSBpcyBleHBlY3RlZCwg
YnV0IGdvdCAke3R5cGVbMV19YCk7CisgICAgICAgICAgICAgICAgICAgIFt0eXBlLCByZXBldGl0
aW9uVHlwZXNdID0gdHlwZTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgY29u
c3QgdHlwZUNvbmZpZyA9IHRoaXMuX3ZhbGlkYXRlQW5kTWVyZ2VDb25maWcoe30sIGVudHJ5LmJ1
aWxkZXJDb25maWcpOwogICAgICAgICAgICAgICAgIGFzc2VydCh0eXBlc1t0eXBlXSwgYCIke3R5
cGV9IiBpcyBub3QgYSB2YWxpZCB0eXBlIGluIHRoZSBjb25maWd1cmF0aW9uYCk7CiAgICAgICAg
ICAgICAgICAgdGhpcy5fdmFsaWRhdGVBbmRNZXJnZUNvbmZpZyh0eXBlQ29uZmlnLCB0eXBlc1t0
eXBlXSk7CkBAIC0zOTQsNyArNDA1LDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAg
ICAgICAgICAgIGNvbnN0IHRlc3QgPSBUZXN0LmZpbmRCeVBhdGgodGVzdFBhdGgpOwogICAgICAg
ICAgICAgICAgIGFzc2VydCh0ZXN0LCBgIiR7dGVzdFBhdGguam9pbignIiwgIicpfSIgaXMgbm90
IGEgdmFsaWQgdGVzdCBwYXRoIGluIHRoZSB0ZXN0IGNvbmZpZ3VyYXRpb24gJHtjb25maWd1cmF0
aW9uSW5kZXh9YCk7CiAKLSAgICAgICAgICAgICAgICBlbnN1cmVCdWlsZGJvdFN5bmNlcihlbnRy
eS5idWlsZGVyQ29uZmlnKS5hZGRUZXN0Q29uZmlndXJhdGlvbih0ZXN0LCBlbnRyeS5wbGF0Zm9y
bSwgdHlwZUNvbmZpZy5wcm9wZXJ0aWVzKTsKKyAgICAgICAgICAgICAgICBlbnN1cmVCdWlsZGJv
dFN5bmNlcihlbnRyeS5idWlsZGVyQ29uZmlnKS5hZGRUZXN0Q29uZmlndXJhdGlvbih0ZXN0LCBl
bnRyeS5wbGF0Zm9ybSwgcmVwZXRpdGlvblR5cGVzLCB0eXBlQ29uZmlnLnByb3BlcnRpZXMpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCmluZGV4IDUyNTc0
NDIyOWRiNjNhMGQxNTExY2U0YjAwNzc5MDllOTEzNDM0YWQuLjRhNWZjZDY3M2E4N2VhMzkzZDQ3
Y2I0YWFhNmIxOGRmOGIzM2I3M2IgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMKQEAgLTU2LDcgKzU2LDcg
QEAgY2xhc3MgQnVpbGRib3RUcmlnZ2VyYWJsZSB7CiAgICAgICAgIGxldCByZXBvc2l0b3J5R3Jv
dXBzID0gW107CiAgICAgICAgIGZvciAoY29uc3Qgc3luY2VyIG9mIHRoaXMuX3N5bmNlcnMpIHsK
ICAgICAgICAgICAgIGZvciAoY29uc3QgY29uZmlnIG9mIHN5bmNlci50ZXN0Q29uZmlndXJhdGlv
bnMoKSkgewotICAgICAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0ge3Rlc3Q6IGNvbmZpZy50ZXN0
LmlkKCksIHBsYXRmb3JtOiBjb25maWcucGxhdGZvcm0uaWQoKX07CisgICAgICAgICAgICAgICAg
Y29uc3QgZW50cnkgPSB7dGVzdDogY29uZmlnLnRlc3QuaWQoKSwgcGxhdGZvcm06IGNvbmZpZy5w
bGF0Zm9ybS5pZCgpLCByZXBldGl0aW9uVHlwZXM6IGNvbmZpZy5yZXBldGl0aW9uVHlwZXN9Owog
ICAgICAgICAgICAgICAgIG1hcC5zZXQoZW50cnkudGVzdCArICctJyArIGVudHJ5LnBsYXRmb3Jt
LCBlbnRyeSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAvLyBGSVhNRTogTW92ZSBCdWls
ZGJvdFN5bmNlci5fbG9hZENvbmZpZyBoZXJlIGFuZCBzdG9yZSByZXBvc2l0b3J5IGdyb3VwcyBk
aXJlY3RseS4KQEAgLTgzLDYgKzgzLDggQEAgY2xhc3MgQnVpbGRib3RUcmlnZ2VyYWJsZSB7CiAg
ICAgICAgIHRoaXMuX2xvZ2dlci5sb2coYEZldGNoaW5nIGJ1aWxkIHJlcXVlc3RzIGZvciAke3Ro
aXMuX25hbWV9Li4uYCk7CiAKICAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0cyA9IGF3YWl0IEJ1
aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKHRoaXMuX25hbWUpOworICAgICAgICBjb25z
dCB0ZXN0R3JvdXBJZHMgPSBuZXcgU2V0KGJ1aWxkUmVxdWVzdHMubWFwKHJlcXVlc3QgPT4gcmVx
dWVzdC50ZXN0R3JvdXBJZCgpKSk7CisgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKEFycmF5LmZy
b20odGVzdEdyb3VwSWRzKS5tYXAodGVzdEdyb3VwSWQgPT4gVGVzdEdyb3VwLmZldGNoQnlJZCh0
ZXN0R3JvdXBJZCwgLyogaWdub3JlQ2FjaGUgKi8gdHJ1ZSkpKTsKICAgICAgICAgY29uc3QgdmFs
aWRSZXF1ZXN0cyA9IHRoaXMuX3ZhbGlkYXRlUmVxdWVzdHMoYnVpbGRSZXF1ZXN0cyk7CiAgICAg
ICAgIGNvbnN0IGJ1aWxkUmVxdWVzdHNCeUdyb3VwID0gQnVpbGRib3RUcmlnZ2VyYWJsZS5fdGVz
dEdyb3VwTWFwRm9yQnVpbGRSZXF1ZXN0cyhidWlsZFJlcXVlc3RzKTsKICAgICAgICAgbGV0IHVw
ZGF0ZXMgPSBhd2FpdCB0aGlzLl9wdWxsQnVpbGRib3RPbkFsbFN5bmNlcnMoYnVpbGRSZXF1ZXN0
c0J5R3JvdXApOwpAQCAtOTAsNyArOTIsNiBAQCBjbGFzcyBCdWlsZGJvdFRyaWdnZXJhYmxlIHsK
ICAgICAgICAgdGhpcy5fbG9nZ2VyLmxvZygnU2NoZWR1bGluZyBidWlsZHMnKTsKICAgICAgICAg
Y29uc3QgdGVzdEdyb3VwTGlzdCA9IEFycmF5LmZyb20oYnVpbGRSZXF1ZXN0c0J5R3JvdXAudmFs
dWVzKCkpLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHsgcmV0dXJuIGEuZ3JvdXBPcmRlciAtIGIuZ3Jv
dXBPcmRlcjsgfSk7CiAKLSAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoQXJyYXkuZnJvbShidWls
ZFJlcXVlc3RzQnlHcm91cC5rZXlzKCkpLm1hcCh0ZXN0R3JvdXBJZCA9PiBUZXN0R3JvdXAuZmV0
Y2hCeUlkKHRlc3RHcm91cElkLCAvKiBpZ25vcmVDYWNoZSAqLyB0cnVlKSkpOwogICAgICAgICBm
b3IgKGNvbnN0IGdyb3VwIG9mIHRlc3RHcm91cExpc3QpIHsKICAgICAgICAgICAgIGNvbnN0IHJl
cXVlc3QgPSB0aGlzLl9uZXh0UmVxdWVzdEluR3JvdXAoZ3JvdXAsIHVwZGF0ZXMpOwogICAgICAg
ICAgICAgaWYgKCF2YWxpZFJlcXVlc3RzLmhhcyhyZXF1ZXN0KSkKZGlmZiAtLWdpdCBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qcyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0
cy5qcwppbmRleCAwMzQyYWMwMWE0YWY1ZGJjYzE1Njk2MjJhMmRiMWQ2NWE3YzI2MjczLi5lY2Q0
ZGRhYTU1NzAyMThhYzc5NzFhZmE4MmU0OGZkNWVlOWJkNjNhIDEwMDY0NAotLS0gYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMKKysr
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRl
c3RzLmpzCkBAIC0xNiw2ICsxNiw3IEBAIGZ1bmN0aW9uIHNhbXBsZWlPU0NvbmZpZygpCiAgICAg
cmV0dXJuIHsKICAgICAgICAgJ3dvcmtlckFyZ3VtZW50JzogJ3dvcmtlcm5hbWUnLAogICAgICAg
ICAnYnVpbGRSZXF1ZXN0QXJndW1lbnQnOiAnYnVpbGRfcmVxdWVzdF9pZCcsCisgICAgICAgICdz
dXBwb3J0ZWRUZXN0UmVwZXRpdGlvblR5cGVzJzogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFs
J10sCiAgICAgICAgICdyZXBvc2l0b3J5R3JvdXBzJzogewogICAgICAgICAgICAgJ2lvcy1zdm4t
d2Via2l0JzogewogICAgICAgICAgICAgICAgICdyZXBvc2l0b3JpZXMnOiB7J1dlYktpdCc6IHt9
LCAnaU9TJzoge319LApAQCAtNzAsNiArNzEsNyBAQCBmdW5jdGlvbiBzYW1wbGVpT1NDb25maWdX
aXRoRXhwYW5zaW9ucygpCiAgICAgcmV0dXJuIHsKICAgICAgICAgInRyaWdnZXJhYmxlTmFtZSI6
ICJidWlsZC13ZWJraXQtaW9zIiwKICAgICAgICAgImJ1aWxkUmVxdWVzdEFyZ3VtZW50IjogImJ1
aWxkLXJlcXVlc3QtaWQiLAorICAgICAgICAnc3VwcG9ydGVkVGVzdFJlcGV0aXRpb25UeXBlcyc6
IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddLAogICAgICAgICAicmVwb3NpdG9yeUdyb3Vw
cyI6IHsgfSwKICAgICAgICAgInR5cGVzIjogewogICAgICAgICAgICAgImlwaG9uZS1wbHQiOiB7
CkBAIC0xMTgsNiArMTIwLDcgQEAgZnVuY3Rpb24gc21hbGxDb25maWd1cmF0aW9uKCkKIHsKICAg
ICByZXR1cm4gewogICAgICAgICAnYnVpbGRSZXF1ZXN0QXJndW1lbnQnOiAnaWQnLAorICAgICAg
ICAnc3VwcG9ydGVkVGVzdFJlcGV0aXRpb25UeXBlcyc6IFsiYWx0ZXJuYXRpbmciLCAic2VxdWVu
dGlhbCJdLAogICAgICAgICAncmVwb3NpdG9yeUdyb3Vwcyc6IHsKICAgICAgICAgICAgICdpb3Mt
c3ZuLXdlYmtpdCc6IHsKICAgICAgICAgICAgICAgICAncmVwb3NpdG9yaWVzJzogeydpT1MnOiB7
fSwgJ1dlYktpdCc6IHt9fSwKQEAgLTE0Niw2ICsxNDksNDEgQEAgZnVuY3Rpb24gc21hbGxDb25m
aWd1cmF0aW9uKCkKICAgICB9OwogfQogCitmdW5jdGlvbiBzbWFsbENvbmZpZ3VyYXRpb25XaXRo
Q3VzdG9tUmVwZXRpdGlvblR5cGVzKCkKK3sKKyAgICByZXR1cm4geworICAgICAgICAnYnVpbGRS
ZXF1ZXN0QXJndW1lbnQnOiAnaWQnLAorICAgICAgICAnc3VwcG9ydGVkVGVzdFJlcGV0aXRpb25U
eXBlcyc6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddLAorICAgICAgICAncmVwb3NpdG9y
eUdyb3Vwcyc6IHsKKyAgICAgICAgICAgICdpb3Mtc3ZuLXdlYmtpdCc6IHsKKyAgICAgICAgICAg
ICAgICAncmVwb3NpdG9yaWVzJzogeydpT1MnOiB7fSwgJ1dlYktpdCc6IHt9fSwKKyAgICAgICAg
ICAgICAgICAndGVzdFByb3BlcnRpZXMnOiB7CisgICAgICAgICAgICAgICAgICAgICdvcyc6IHsn
cmV2aXNpb24nOiAnaU9TJ30sCisgICAgICAgICAgICAgICAgICAgICd3ayc6IHsncmV2aXNpb24n
OiAnV2ViS2l0J30KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0s
CisgICAgICAgICd0eXBlcyc6IHsKKyAgICAgICAgICAgICdzb21lLXRlc3QnOiB7CisgICAgICAg
ICAgICAgICAgJ3Rlc3QnOiBbJ1NvbWUgdGVzdCddLAorICAgICAgICAgICAgfQorICAgICAgICB9
LAorICAgICAgICAnYnVpbGRlcnMnOiB7CisgICAgICAgICAgICAnc29tZS1idWlsZGVyJzogewor
ICAgICAgICAgICAgICAgICdidWlsZGVyJzogJ3NvbWUgYnVpbGRlcicsCisgICAgICAgICAgICAg
ICAgJ3Byb3BlcnRpZXMnOiB7J2ZvcmNlc2NoZWR1bGVyJzogJ3NvbWUtYnVpbGRlci1Gb3JjZVNj
aGVkdWxlcid9CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgICd0ZXN0Q29uZmln
dXJhdGlvbnMnOiBbeworICAgICAgICAgICAgJ2J1aWxkZXJzJzogWydzb21lLWJ1aWxkZXInXSwK
KyAgICAgICAgICAgICdwbGF0Zm9ybXMnOiBbJ1NvbWUgcGxhdGZvcm0nXSwKKyAgICAgICAgICAg
ICd0eXBlcyc6IFsKKyAgICAgICAgICAgICAgICBbJ3NvbWUtdGVzdCcsIFsnc2VxdWVudGlhbCcs
ICdwYXJhbGxlbCddXQorICAgICAgICAgICAgXSwKKyAgICAgICAgfV0KKyAgICB9OworfQorCiBm
dW5jdGlvbiBidWlsZGVyTmFtZVRvSURNYXAoKQogewogICAgIHJldHVybiB7CkBAIC0xODQsMTAg
KzIyMiwxMiBAQCBmdW5jdGlvbiBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QocGxhdGZvcm0sIHRl
c3QpCiAgICAgY29uc3QgaW9zMTNBNDUyID0gQ29tbWl0TG9nLmVuc3VyZVNpbmdsZXRvbignODg5
MzAnLCB7J2lkJzogJzg4OTMwJywgJ3RpbWUnOiAwLCAncmVwb3NpdG9yeSc6IE1vY2tNb2RlbHMu
aW9zLCAncmV2aXNpb24nOiAnMTNBNDUyJ30pOwogCiAgICAgY29uc3QgY29tbWl0U2V0ID0gQ29t
bWl0U2V0LmVuc3VyZVNpbmdsZXRvbignNDE5NycsIHtjdXN0b21Sb290czogW10sIHJldmlzaW9u
SXRlbXM6IFt7Y29tbWl0OiB3ZWJraXQxOTc0NjN9LCB7Y29tbWl0OiBzaGFyZWQxMTEyMzd9LCB7
Y29tbWl0OiBpb3MxM0E0NTJ9XX0pOworICAgIGNvbnN0IHRlc3RHcm91cCA9IFRlc3RHcm91cC5l
bnN1cmVTaW5nbGV0b24oJzEyMycsIHt0YXNrOiAnMTIzJywgY3JlYXRlZEF0OiAxNDU2OTMxODc0
MDAwLCBoaWRkZW46IGZhbHNlLCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwgbWF5TmVlZE1vcmVS
ZXF1ZXN0czogZmFsc2UsCisgICAgICAgIGluaXRpYWxSZXBldGl0aW9uQ291bnQ6IDMsIHJlcGV0
aXRpb25UeXBlOiAnYWx0ZXJuYXRpbmcnfSkKIAogICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZW5z
dXJlU2luZ2xldG9uKCcxNjczMy0nICsgcGxhdGZvcm0uaWQoKSwgeyd0cmlnZ2VyYWJsZSc6IE1v
Y2tNb2RlbHMudHJpZ2dlcmFibGUsCiAgICAgICAgIHJlcG9zaXRvcnlHcm91cDogTW9ja01vZGVs
cy5zdm5SZXBvc2l0b3J5R3JvdXAsCi0gICAgICAgICdjb21taXRTZXQnOiBjb21taXRTZXQsICdz
dGF0dXMnOiAncGVuZGluZycsICdwbGF0Zm9ybSc6IHBsYXRmb3JtLCAndGVzdCc6IHRlc3QsIG9y
ZGVyOiAwfSk7CisgICAgICAgICdjb21taXRTZXQnOiBjb21taXRTZXQsICdzdGF0dXMnOiAncGVu
ZGluZycsICdwbGF0Zm9ybSc6IHBsYXRmb3JtLCAndGVzdCc6IHRlc3QsIG9yZGVyOiAwLCB0ZXN0
R3JvdXAsIHRlc3RHcm91cElkOiB0ZXN0R3JvdXAuaWQoKX0pOwogfQogCiBmdW5jdGlvbiBjcmVh
dGVTYW1wbGVCdWlsZFJlcXVlc3RXaXRoUGF0Y2gocGxhdGZvcm0sIHRlc3QsIG9yZGVyKQpAQCAt
NTM2LDYgKzU3NiwxNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmlndXJhdGlvbnNbMV0udGVzdCwgbnVsbCk7CiAgICAg
ICAgIH0pOwogCisgICAgICAgIGl0KCdzaG91bGQgcGFyc2UgdGVzdCBjb25maWd1cmF0aW9ucyB3
aXRoIGN1c3RvbSByZXBldGl0aW9uIHR5cGUnLCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBj
b25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb25XaXRoQ3VzdG9tUmVwZXRpdGlvblR5cGVzKCk7Cisg
ICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CisgICAgICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoc3luY2Vycy5sZW5ndGgsIDEpOworICAgICAgICAgICAgY29uc3Qg
c3luY2VyID0gc3luY2Vyc1swXTsKKyAgICAgICAgICAgIGNvbnN0IHRlc3RDb25maWd1cmF0aW9u
cyA9IHN5bmNlci50ZXN0Q29uZmlndXJhdGlvbnMoKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh0ZXN0Q29uZmlndXJhdGlvbnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGNvbnN0
IHRlc3RDb25maWd1cmF0aW9uID0gdGVzdENvbmZpZ3VyYXRpb25zWzBdOworICAgICAgICAgICAg
YXNzZXJ0LmRlZXBFcXVhbCh0ZXN0Q29uZmlndXJhdGlvbi5yZXBldGl0aW9uVHlwZXMsIFsnc2Vx
dWVudGlhbCcsICdwYXJhbGxlbCddKTsKKyAgICAgICAgfSk7CisKICAgICAgICAgaXQoJ3Nob3Vs
ZCB0aHJvdyB3aGVuIGEgYnVpbGQgY29uZmlndXJhdGlvbiB1c2UgdGhlIHNhbWUgYnVpbGRlciBh
cyBhIHRlc3QgY29uZmlndXJhdGlvbicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJv
d3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNhbXBsZWlPU0NvbmZp
ZygpOwpAQCAtMTEwMCw3ICsxMTUxLDYgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkg
PT4gewogICAgICAgICB9KTsKICAgICB9KTsKIAotCiAgICAgZGVzY3JpYmUoJ0J1aWxkYm90QnVp
bGRFbnRyeScsICgpID0+IHsKICAgICAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgQnVpbGRib3RCdWls
ZEVudHJ5IGZvciBwZW5kaW5nIGJ1aWxkJywgKCkgPT4gewogICAgICAgICAgICAgbGV0IHN5bmNl
ciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0Nv
bmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CkBAIC0xNzMyLDUgKzE3ODIsMTMgQEAg
ZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OworCisgICAgICAgIGl0KCdzaG91bGQgbm90IHNjaGVkdWxlIGEgYnVpbGQgcmVxdWVzdCBpZiBy
ZXBldGl0aW9uIHR5cGUgaWYgbm90IHN1cHBvcnRlZCBieSBidWlsZGJvdCBzeW5jZXInLCBhc3lu
YyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzbWFsbENvbmZpZ3VyYXRpb25XaXRoQ3VzdG9tUmVwZXRp
dGlvblR5cGVzKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVswXTsKKyAgICAgICAgICAgIGF3YWl0
IHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCB7fSwge30pOworICAgICAgICAgICAg
bGV0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5zb21lUGxh
dGZvcm0sIE1vY2tNb2RlbHMuc29tZVRlc3QpOworICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxl
UmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShyZXF1ZXN0LCBbcmVxdWVzdF0sIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMCk7CisgICAgICAgIH0pOwog
ICAgIH0pOwogfSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441865</attachid>
            <date>2021-10-20 04:35:17 -0700</date>
            <delta_ts>2021-10-27 21:03:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229545-20211020043516.patch</filename>
            <type>text/plain</type>
            <size>137689</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NTIwCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA5M2MyZTNkMmEwOTY2MjNhMDk0YjMyZmQ1OGY4NmE2N2EyMmRjOTQ1Li40NDQzNmMzNjAy
MThhZjlkYTY3OGY0OWM3YTVjYWMxOGIwYjEzOTI1IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMTggQEAKKzIwMjEtMTAtMjAgIERld2VpIFpodSAgPGRld2VpX3po
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkICdwYXJhbGxlbCcgcmVwZXRpdGlvbiB0eXBlIGZv
ciBBL0IgdGVzdGluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyOTU0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCAncGFyYWxsZWwnIHJlcGV0aXRpb24gdHlwZSBmb3IgQS9CIHRlc3RpbmcuCisg
ICAgICAgIEFkZCAnVHJpZ2dlcmFibGVDb25maWd1cmF0aW9uJyBtb2RlbCB0byBzdG9yZSByZXBl
dGl0aW9uIHR5cGVzIGluZm9ybWF0aW9uIGZvciBlYWNoIChwbGF0Zm9ybSwgdGVzdCkgcGFpci4K
KyAgICAgICAgQWRkIG5ldyBjb21wb25lbnQgJ3JlcGV0aXRpb24tdHlwZS1zZWxlY3Rpb24nIHRv
IHVuaWZ5IEEvQiB0ZXN0aW5nIFVJIGZvciByZXBldGl0aW9uIHR5cGUgc2VsZWN0aW9uLgorICAg
ICAgICBFeHRlbmQgQS9CIHRlc3Rpbmcgc3luY2luZyBzY3JpcHQgdG8gdXBkYXRlIHJlcGV0aXRp
b24gdHlwZXMgZm9yIGVhY2ggdHJpZ2dlcmFibGUgY29uZmlndXJhdGlvbiBhbmQgb25seQorICAg
ICAgICBzY2hlZHVsZSBBL0IgdGVzdGluZyBmb3IgZ2l2ZW4gcmVwZXRpdGlvbiB0eXBlcy4KKwor
ICAgICAgICAqIGJyb3dzZXItdGVzdHMvY3VzdG9tLWFuYWx5c2lzLXRhc2stY29uZmlndXJhdG9y
LXRlc3RzLmpzOiBVcGRhdGVkIHVuaXQgdGVzdHMgYWNjb3JkaW5nbHkuCisgICAgICAgIChhc3lu
YyBjcmVhdGVDdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3JXaXRoQ29udGV4dCk6CisgICAg
ICAgICogYnJvd3Nlci10ZXN0cy9jdXN0b21pemFibGUtdGVzdC1ncm91cC1mb3JtLXRlc3RzLmpz
OiBVcGRhdGVkIHVuaXQgdGVzdHMgYWNjb3JkaW5nbHkuCisgICAgICAgIChhc3luYyBjcmVhdGVD
dXN0b21pemFibGVUZXN0R3JvdXBGb3JtV2l0aENvbnRleHQpOgorICAgICAgICAqIGJyb3dzZXIt
dGVzdHMvdGVzdC1ncm91cC1mb3JtLXRlc3RzLmpzOiBVcGRhdGVkIHVuaXQgdGVzdHMgYWNjb3Jk
aW5nbHkuCisgICAgICAgIChhc3luYyBjcmVhdGVUZXN0R3JvdXBGb3JtV2l0aENvbnRleHQpOgor
ICAgICAgICAqIGluaXQtZGF0YWJhc2Uuc3FsOkFkZGVkICd0cmlnZ2VyYWJsZV9jb25maWd1cmF0
aW9uX3JlcGV0aXRpb25fdHlwZXMnIHRhYmxlIHRvIHN0b3JlIHN1cHBvcnRlZAorICAgICAgICBy
ZXBldGl0aW9uIHR5cGVzIGZvciBlYWNoIHRyaWdnZXJhYmxlIGNvbmZpZ3VyYXRpb24uCisgICAg
ICAgIEFkZGVkICdwYXJhbGxlbCcgcmVwZXRpdGlvbiB0eXBlLgorICAgICAgICAqIG1pZ3JhdGUt
ZGF0YWJhc2Uuc3FsOiBVcGRhdGVkIG1pZ3JhdGlvbiBzY3JpcHRzLgorICAgICAgICAqIHB1Ymxp
Yy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLnBocDogQWRkZWQgbG9naWMgdG8gdXBkYXRlIHJlcGV0
aXRpb24gdHlwZXMgZm9yIGVhY2ggdGlyZ2dlcmFibGUgY29uZmlndXJhdGlvbnMuCisgICAgICAg
ICogcHVibGljL2luY2x1ZGUvY29tbWl0LXNldHMtaGVscGVycy5waHA6IEFkZGVkIHN1cHBvcnQg
Zm9yICdwYXJhbGxlbCcgcmVwZXRpdGlvbiB0eXBlLgorICAgICAgICAqIHB1YmxpYy9pbmNsdWRl
L2pzb24taGVhZGVyLnBocDogRXh0ZW5kZWQgJ2ZpbmRfdHJpZ2dlcmFibGVfZm9yX3Rhc2snIHRv
IGluY2x1ZGUgc3VwcG9ydGVkIHJlcGV0aXRpb24gdHlwZXMgaW4KKyAgICAgICAgcmV0dXJuIHZh
bHVlLgorICAgICAgICAqIHB1YmxpYy9pbmNsdWRlL21hbmlmZXN0LWdlbmVyYXRvci5waHA6IEFk
ZGVkIGxvZ2ljIHRvIGluY2x1ZGUgc3VwcG9ydGVkIHJlcGV0aXRpb24gdHlwZXMgaW4gbWFuaWZl
c3QuCisgICAgICAgICogcHVibGljL3ByaXZpbGVnZWQtYXBpL2FkZC1idWlsZC1yZXF1ZXN0cy5w
aHA6IEV4dGVuZGVkIEFQSSB0byBzdXBwb3J0ICdwYXJhbGxlbCcgcmVwZXRpdGlvbiB0eXBlLgor
ICAgICAgICAqIHB1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzay5waHA6
IEV4dGVuZGVkIEFQSSB0byBzdXBwb3J0ICdwYXJhbGxlbCcgcmVwZXRpdGlvbiB0eXBlLgorICAg
ICAgICAqIHB1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cC5waHA6IEV4dGVu
ZGVkIEFQSSB0byBzdXBwb3J0ICdwYXJhbGxlbCcgcmVwZXRpdGlvbiB0eXBlLgorICAgICAgICAq
IHB1YmxpYy92My9jb21wb25lbnRzL2N1c3RvbS1jb25maWd1cmF0aW9uLXRlc3QtZ3JvdXAtZm9y
bS5qczogQWRkZWQgY29kZSB0byB1cGRhdGUgc3VwcG9ydGVkIHJlcGV0aXRpb24gdHlwZXMKKyAg
ICAgICAgb24gdGVzdCBjb25maWcgY2hhbmdlLgorICAgICAgICAoQ3VzdG9tQ29uZmlndXJhdGlv
blRlc3RHcm91cEZvcm0ucHJvdG90eXBlLnN0YXJ0VGVzdGluZyk6CisgICAgICAgIChDdXN0b21D
b25maWd1cmF0aW9uVGVzdEdyb3VwRm9ybS5wcm90b3R5cGUuZGlkQ29uc3RydWN0U2hhZG93VHJl
ZSk6CisgICAgICAgICogcHVibGljL3YzL2NvbXBvbmVudHMvY3VzdG9taXphYmxlLXRlc3QtZ3Jv
dXAtZm9ybS5qczoKKyAgICAgICAgKEN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm0ucHJvdG90eXBl
LnN0YXJ0VGVzdGluZyk6CisgICAgICAgICogcHVibGljL3YzL2NvbXBvbmVudHMvcmVwZXRpdGlv
bi10eXBlLXNlbGVjdGlvbi5qczogQWRkZWQgYSBuZXcgbW9kZWwgdGhhdCBzdG9yZXMgcmVwZXRp
dGlvbiB0eXBlcyBpbmZvcm1hdGlvbgorICAgICAgICBmb3IgZWFjaCAocGxhdGZvcm0sIHRlc3Qp
IHBhaXIuCisgICAgICAgIChSZXBldGl0aW9uVHlwZVNlbGVjdGlvbik6CisgICAgICAgIChSZXBl
dGl0aW9uVHlwZVNlbGVjdGlvbi5wcm90b3R5cGUuZGlkQ29uc3RydWN0U2hhZG93VHJlZSk6Cisg
ICAgICAgIChSZXBldGl0aW9uVHlwZVNlbGVjdGlvbi5wcm90b3R5cGUuZ2V0IHNlbGVjdGVkUmVw
ZXRpdGlvblR5cGUpOgorICAgICAgICAoUmVwZXRpdGlvblR5cGVTZWxlY3Rpb24ucHJvdG90eXBl
LnNldCBzZWxlY3RlZFJlcGV0aXRpb25UeXBlKToKKyAgICAgICAgKFJlcGV0aXRpb25UeXBlU2Vs
ZWN0aW9uLnByb3RvdHlwZS5zZXQgZGlzYWJsZWQpOgorICAgICAgICAoUmVwZXRpdGlvblR5cGVT
ZWxlY3Rpb24ucHJvdG90eXBlLnNldFRlc3RBbmRQbGF0Zm9ybSk6CisgICAgICAgIChSZXBldGl0
aW9uVHlwZVNlbGVjdGlvbi5wcm90b3R5cGUubGFiZWxGb3JSZXBldGl0aW9uVHlwZSk6CisgICAg
ICAgIChSZXBldGl0aW9uVHlwZVNlbGVjdGlvbi5wcm90b3R5cGUucmVuZGVyKToKKyAgICAgICAg
KFJlcGV0aXRpb25UeXBlU2VsZWN0aW9uLnByb3RvdHlwZS5fcmVuZGVyUmVwZXRpdGlvblR5cGVM
aXN0KToKKyAgICAgICAgKFJlcGV0aXRpb25UeXBlU2VsZWN0aW9uLmh0bWxUZW1wbGF0ZSk6Cisg
ICAgICAgICogcHVibGljL3YzL2NvbXBvbmVudHMvdGVzdC1ncm91cC1mb3JtLmpzOiBBZG9wdCAn
cmVwZXRpdGlvbi10eXBlLXNlbGVjdGlvbicuCisgICAgICAgIChUZXN0R3JvdXBGb3JtLnByb3Rv
dHlwZS5zZXRUZXN0QW5kUGxhdGZvcm0pOgorICAgICAgICAoVGVzdEdyb3VwRm9ybS5wcm90b3R5
cGUucmVuZGVyKToKKyAgICAgICAgKFRlc3RHcm91cEZvcm0ucHJvdG90eXBlLnN0YXJ0VGVzdGlu
Zyk6CisgICAgICAgICogcHVibGljL3YzL2luZGV4Lmh0bWw6CisgICAgICAgICogcHVibGljL3Yz
L21vZGVscy9tYW5pZmVzdC5qczogUGFzcyAnc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzJyBhbmQg
J2lkJyBmb3IgVHJpZ2dlcmFibGVDb25maWd1cmF0aW9uLgorICAgICAgICAoTWFuaWZlc3QucmVz
ZXQpOgorICAgICAgICAoTWFuaWZlc3QuX2RpZEZldGNoTWFuaWZlc3QpOgorICAgICAgICAoTWFu
aWZlc3QpOgorICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvdGVzdC1ncm91cC5qczogVXBkYXRl
ZCBsb2dpYyB0byBzaGFyZSByZXRyeSBsb2dpYyBvZiAnYWx0ZXJuYXRpbmcnIHRlc3QgZ3JvdXAg
d2l0aCAncGFyYWxsZWwnCisgICAgICAgIHRlc3QgZ3JvdXAuCisgICAgICAgIChUZXN0R3JvdXAu
cHJvdG90eXBlLmFzeW5jIHNjaGVkdWxlTW9yZVJlcXVlc3RzT3JDbGVhckZsYWcpOgorICAgICAg
ICAqIHB1YmxpYy92My9tb2RlbHMvdHJpZ2dlcmFibGUuanM6IEFkZGVkIFRyaWdnZXJhYmxlQ29u
ZmlndXJhdGlvbiBtb2RlbC4KKyAgICAgICAgQWRkZWQgY29kZSB0byBjcmVhdCBUcmlnZ2VyYWJs
ZUNvbmZpZ3VyYXRpb24gaW4gJ1RyaWdnZXJhYmxlJyBjb25zdHJ1Y3Rvci4KKyAgICAgICAgKFRy
aWdnZXJhYmxlKToKKyAgICAgICAgKFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9u
KToKKyAgICAgICAgKHByb3RvdHlwZS5nZXQgdHJpZ2dlcmFibGUpOgorICAgICAgICAocHJvdG90
eXBlLmdldCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMpOgorICAgICAgICAoZmluZEJ5VGVzdEFu
ZFBsYXRmb3JtKToKKyAgICAgICAgKiBwdWJsaWMvdjMvcGFnZXMvYW5hbHlzaXMtdGFzay1wYWdl
LmpzOiBBZGRlZCBjb2RlIHRvIHVwZGF0ZSByZXBldGl0aW9uIHR5cGUgaW4gdGhlIFVJIGJhc2Vk
IG9uICh0ZXN0LCBwbGF0Zm9ybSkgcGFpci4KKyAgICAgICAgKEFuYWx5c2lzVGFza1Jlc3VsdHNQ
YW5lLnByb3RvdHlwZS5zZXRUZXN0R3JvdXBzKToKKyAgICAgICAgKEFuYWx5c2lzVGFza1Rlc3RH
cm91cFBhbmUucHJvdG90eXBlLl9yZW5kZXJDdXJyZW50VGVzdEdyb3VwKToKKyAgICAgICAgKEFu
YWx5c2lzVGFza1Rlc3RHcm91cFBhbmUucHJvdG90eXBlLl9yZW5kZXJUZXN0R3JvdXBGb3JtKToK
KyAgICAgICAgKiBwdWJsaWMvdjMvcGFnZXMvY2hhcnQtcGFuZS5qczogQWRvcHQgJ3JlcGV0aXRp
b24tdHlwZS1zZWxlY3Rpb24nLgorICAgICAgICAoQ2hhcnRQYW5lLnByb3RvdHlwZS5kaWRDb25z
dHJ1Y3RTaGFkb3dUcmVlKToKKyAgICAgICAgKENoYXJ0UGFuZS5wcm90b3R5cGUuYXN5bmMgX2Fu
YWx5emVSYW5nZSk6CisgICAgICAgIChDaGFydFBhbmUucHJvdG90eXBlLl9yZW5kZXJBY3Rpb25U
b29sYmFyKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpzOgor
ICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLXRlc3RzLmpzOiBB
ZGRlZCBhbmQgdXBkYXRlZCB1bml0IHRlc3RzLgorICAgICAgICAodXBkYXRlV2l0aE1hY1dlYktp
dFJlcG9zaXRvcnlHcm91cHMpOgorICAgICAgICAqIHNlcnZlci10ZXN0cy9hcGktdXBsb2FkLXJv
b3QtdGVzdHMuanM6IFVwZGF0ZWQgdW5pdCB0ZXN0cy4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMv
cHJpdmlsZWdlZC1hcGktYWRkLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzOiBBZGRlZCBhbmQgdXBk
YXRlZCB1bml0IHRlc3RzLgorICAgICAgICAoYXN5bmMgYWRkVHJpZ2dlcmFibGVBbmRDcmVhdGVU
YXNrKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5
c2lzLXRhc2stdGVzdHMuanM6IEFkZGVkIGFuZCB1cGRhdGVkIHVuaXQgdGVzdHMuCisgICAgICAg
ICogc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpz
OiBBZGRlZCBhbmQgdXBkYXRlZCB1bml0IHRlc3RzLgorICAgICAgICAqIHNlcnZlci10ZXN0cy9w
cml2aWxlZ2VkLWFwaS11cGRhdGUtdGVzdC1ncm91cC10ZXN0cy5qczogVXBkYXRlZCB1bml0IHRl
c3RzLgorICAgICAgICAoYXN5bmMgYWRkVHJpZ2dlcmFibGVBbmRDcmVhdGVUYXNrKToKKyAgICAg
ICAgKiBzZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qczoKKyAgICAgICAgKE1vY2tE
YXRhLnNvbWVUZXN0Q29uZmlndXJhdGlvbklkKToKKyAgICAgICAgKE1vY2tEYXRhLm90aGVyVGVz
dENvbmZpZ3VyYXRpb25JZCk6CisgICAgICAgIChNb2NrRGF0YS5hZGRNb2NrQ29uZmlndXJhdGlv
bik6CisgICAgICAgIChNb2NrRGF0YS5zZXQgbW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFNpbmdsZUJ1
aWxkZXIpOgorICAgICAgICAoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFBhdGNoQWNj
ZXB0aW5nQnVpbGRlcik6CisgICAgICAgIChNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRo
VHdvQnVpbGRlcnMpOgorICAgICAgICAqIHNlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90
LWludGVncmF0aW9uLXRlc3RzLmpzOiBBZGRlZCBhbmQgdXBkYXRlZCB1bml0IHRlc3RzLgorICAg
ICAgICAqIHRvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qczogQWRkZWQgY29kZSB0byB1cGRhdGUg
c3VwcG9ydGVkIHJlcGV0aXRpb24gdHlwZXMgb24gdHJpZ2dlcmFibGUgdXBkYXRlcy4KKyAgICAg
ICAgQWRkZWQgY29kZSB0byBvbmx5IHNjaGVkdWxlIHRlc3QgdHlwZSBidWlsZCByZXF1ZXN0cyBm
b3IgcmVwZXRpdGlvbiB0eXBlcyBzcGVjaWZpZWQgYnkgJ3JlcGV0aXRpb25UeXBlRm9yU2NoZWR1
bGluZycKKyAgICAgICAgZnJvbSBjb25maWcgZmlsZSwgYnVpbGQgdHlwZSBidWlsZCByZXF1ZXN0
cyB3aWxsIGJlIHNjaGVkdWxlZCByZWdhcmRsZXNzIHJlcGV0aXRpb24gdHlwZXMuCisgICAgICAg
IChCdWlsZGJvdFN5bmNlcik6CisgICAgICAgIChCdWlsZGJvdFN5bmNlci5wcm90b3R5cGUuYWRk
VGVzdENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoQnVpbGRib3RTeW5jZXIucHJvdG90eXBlLm1h
dGNoZXNDb25maWd1cmF0aW9uKToKKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmln
KToKKyAgICAgICAgKiB0b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qczoKKyAgICAgICAg
KEJ1aWxkYm90VHJpZ2dlcmFibGUucHJvdG90eXBlLnVwZGF0ZVRyaWdnZXJhYmxlKToKKyAgICAg
ICAgKEJ1aWxkYm90VHJpZ2dlcmFibGUucHJvdG90eXBlLmFzeW5jIHN5bmNPbmNlKToKKyAgICAg
ICAgKiB0b29scy9qcy92My1tb2RlbHMuanM6CisgICAgICAgICogdW5pdC10ZXN0cy9idWlsZGJv
dC1zeW5jZXItdGVzdHMuanM6QWRkZWQgYW5kIHVwZGF0ZWQgdW5pdCB0ZXN0cy4KKyAgICAgICAg
KHNhbXBsZWlPU0NvbmZpZyk6CisgICAgICAgIChzYW1wbGVpT1NDb25maWdXaXRoRXhwYW5zaW9u
cyk6CisgICAgICAgIChzbWFsbENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoc21hbGxDb25maWd1
cmF0aW9uV2l0aEN1c3RvbVJlcGV0aXRpb25UeXBlcyk6CisgICAgICAgIChjcmVhdGVTYW1wbGVC
dWlsZFJlcXVlc3QpOgorICAgICAgICAqIHVuaXQtdGVzdHMvbWVhc3VyZW1lbnQtc2V0LWFuYWx5
emVyLXRlc3RzLmpzOiBVcGRhdGVkIHVuaXQgdGVzdHMuCisgICAgICAgICogdW5pdC10ZXN0cy9y
ZXNvdXJjZXMvbW9jay12My1tb2RlbHMuanM6CisgICAgICAgIChNb2NrTW9kZWxzLmluamVjdCk6
CisKIDIwMjEtMDktMjYgIERld2VpIFpodSAgPGRld2VpX3podUBhcHBsZS5jb20+CiAKICAgICAg
ICAgU3VtbWFyeSBwYWdlIHNob3VsZCBzdXBwb3J0IGNhbGN1bGF0aW5nIHN1bW1hcnkgdXNpbmcg
d2VpZ2h0ZWQgbWVhbi4KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9icm93
c2VyLXRlc3RzL2N1c3RvbS1hbmFseXNpcy10YXNrLWNvbmZpZ3VyYXRvci10ZXN0cy5qcyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9icm93c2VyLXRlc3RzL2N1c3RvbS1hbmFseXNpcy10YXNr
LWNvbmZpZ3VyYXRvci10ZXN0cy5qcwppbmRleCA4NWFmN2IxNDQ1ZGZhMzJmZTkyYjU1MjRlZTU5
YzJmYmRhYWJjZGE3Li41MjIzMzMzYmMzMjMzMTI5YWZjYjhjYTgzOGFlMzE0NmI3Njg3YmI0IDEw
MDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jdXN0b20t
YW5hbHlzaXMtdGFzay1jb25maWd1cmF0b3ItdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvY3VzdG9tLWFuYWx5c2lzLXRhc2stY29uZmlndXJhdG9y
LXRlc3RzLmpzCkBAIC0xLDEyICsxLDE2IEBACiBkZXNjcmliZSgnQ3VzdG9tQW5hbHlzaXNUYXNr
Q29uZmlndXJhdG9yJywgKCkgPT4gewotICAgIGNvbnN0IHNjcmlwdHMgPSBbJ2luc3RydW1lbnRh
dGlvbi5qcycsICcuLi9zaGFyZWQvY29tbW9uLWNvbXBvbmVudC1iYXNlLmpzJywgJ2NvbXBvbmVu
dHMvYmFzZS5qcycsICdtb2RlbHMvZGF0YS1tb2RlbC5qcycsICdtb2RlbHMvY29tbWl0LWxvZy5q
cycsCi0gICAgICAgICdtb2RlbHMvY29tbWl0LXNldC5qcycsICdtb2RlbHMvcmVwb3NpdG9yeS5q
cycsICdtb2RlbHMvbWV0cmljLmpzJywgJ21vZGVscy90cmlnZ2VyYWJsZS5qcycsICdtb2RlbHMv
dGVzdC5qcycsICdtb2RlbHMvcGxhdGZvcm0uanMnLCAnY29tcG9uZW50cy90ZXN0LWdyb3VwLWZv
cm0uanMnLAotICAgICAgICAnY29tcG9uZW50cy9jdXN0b20tYW5hbHlzaXMtdGFzay1jb25maWd1
cmF0b3IuanMnLCAnY29tcG9uZW50cy9pbnN0YW50LWZpbGUtdXBsb2FkZXIuanMnLCAnbGF6aWx5
LWV2YWx1YXRlZC1mdW5jdGlvbi5qcyddOworICAgIGNvbnN0IHNjcmlwdHMgPSBbJ2luc3RydW1l
bnRhdGlvbi5qcycsICcuLi9zaGFyZWQvY29tbW9uLWNvbXBvbmVudC1iYXNlLmpzJywgJ2NvbXBv
bmVudHMvYmFzZS5qcycsCisgICAgICAgICdtb2RlbHMvZGF0YS1tb2RlbC5qcycsICdtb2RlbHMv
Y29tbWl0LWxvZy5qcycsICdtb2RlbHMvY29tbWl0LXNldC5qcycsICdtb2RlbHMvcmVwb3NpdG9y
eS5qcycsCisgICAgICAgICdtb2RlbHMvbWV0cmljLmpzJywgJ21vZGVscy90cmlnZ2VyYWJsZS5q
cycsICdtb2RlbHMvdGVzdC5qcycsICdtb2RlbHMvcGxhdGZvcm0uanMnLAorICAgICAgICAnY29t
cG9uZW50cy90ZXN0LWdyb3VwLWZvcm0uanMnLCAnY29tcG9uZW50cy9jdXN0b20tYW5hbHlzaXMt
dGFzay1jb25maWd1cmF0b3IuanMnLAorICAgICAgICAnY29tcG9uZW50cy9pbnN0YW50LWZpbGUt
dXBsb2FkZXIuanMnLCAnbGF6aWx5LWV2YWx1YXRlZC1mdW5jdGlvbi5qcyddOwogCiAgICAgYXN5
bmMgZnVuY3Rpb24gY3JlYXRlQ3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yV2l0aENvbnRl
eHQoY29udGV4dCkKICAgICB7Ci0gICAgICAgIGF3YWl0IGNvbnRleHQuaW1wb3J0U2NyaXB0cyhz
Y3JpcHRzLCAnQ29tcG9uZW50QmFzZScsICdEYXRhTW9kZWxPYmplY3QnLCAnUmVwb3NpdG9yeScs
ICdDb21taXRMb2cnLCAnUGxhdGZvcm0nLCAnVGVzdCcsICdNZXRyaWMnLCAnVHJpZ2dlcmFibGUn
LAotICAgICAgICAgICAgJ1RyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwJywgJ0N1c3RvbUNvbW1p
dFNldCcsICdDdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3InLCAnTW9ja1JlbW90ZUFQSScs
ICdMYXppbHlFdmFsdWF0ZWRGdW5jdGlvbicpOworICAgICAgICBhd2FpdCBjb250ZXh0LmltcG9y
dFNjcmlwdHMoc2NyaXB0cywgJ0NvbXBvbmVudEJhc2UnLCAnTGFiZWxlZE9iamVjdCcsICdEYXRh
TW9kZWxPYmplY3QnLCAnUmVwb3NpdG9yeScsCisgICAgICAgICAgICAnQ29tbWl0TG9nJywgJ1Bs
YXRmb3JtJywgJ1Rlc3QnLCAnTWV0cmljJywgJ1RyaWdnZXJhYmxlJywgJ1RyaWdnZXJhYmxlQ29u
ZmlndXJhdGlvbicsCisgICAgICAgICAgICAnVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAnLCAn
Q3VzdG9tQ29tbWl0U2V0JywgJ0N1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvcicsICdNb2Nr
UmVtb3RlQVBJJywKKyAgICAgICAgICAgICdMYXppbHlFdmFsdWF0ZWRGdW5jdGlvbicpOwogICAg
ICAgICBjb25zdCBjdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3IgPSBuZXcgY29udGV4dC5z
eW1ib2xzLkN1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvcjsKICAgICAgICAgY29udGV4dC5k
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGN1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvci5l
bGVtZW50KCkpOwogICAgICAgICByZXR1cm4gY3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9y
OwpAQCAtNDAsNyArNDQsNyBAQCBkZXNjcmliZSgnQ3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJh
dG9yJywgKCkgPT4gewogICAgICAgICAgICAgbmFtZTogJ3Rlc3QtdHJpZ2dlcmFibGUnLAogICAg
ICAgICAgICAgaXNEaXNhYmxlZDogZmFsc2UsCiAgICAgICAgICAgICByZXBvc2l0b3J5R3JvdXBz
OiBbdHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXBdLAotICAgICAgICAgICAgY29uZmlndXJhdGlv
bnM6IFt7dGVzdCwgcGxhdGZvcm19XSwKKyAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25zOiBbe3Rl
c3QsIHBsYXRmb3JtLCBpZDogMiwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0
aW5nJywgJ3NlcXVlbnRpYWwnXX1dLAogICAgICAgICB9KTsKICAgICAgICAgY3VzdG9tQW5hbHlz
aXNUYXNrQ29uZmlndXJhdG9yLnNlbGVjdFRlc3RzKFt0ZXN0XSk7CiAgICAgICAgIGN1c3RvbUFu
YWx5c2lzVGFza0NvbmZpZ3VyYXRvci5zZWxlY3RQbGF0Zm9ybShwbGF0Zm9ybSk7CkBAIC0xMjQs
NyArMTI4LDcgQEAgZGVzY3JpYmUoJ0N1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvcicsICgp
ID0+IHsKICAgICAgICAgICAgIG5hbWU6ICd0ZXN0LXRyaWdnZXJhYmxlJywKICAgICAgICAgICAg
IGlzRGlzYWJsZWQ6IGZhbHNlLAogICAgICAgICAgICAgcmVwb3NpdG9yeUdyb3VwczogW3RyaWdn
ZXJhYmxlUmVwb3NpdG9yeUdyb3VwXSwKLSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25zOiBbe3Rl
c3QsIHBsYXRmb3JtfV0sCisgICAgICAgICAgICBjb25maWd1cmF0aW9uczogW3t0ZXN0LCBwbGF0
Zm9ybSwgaWQ6IDIsIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdz
ZXF1ZW50aWFsJ119XSwKICAgICAgICAgfSk7CiAgICAgICAgIGN1c3RvbUFuYWx5c2lzVGFza0Nv
bmZpZ3VyYXRvci5zZWxlY3RUZXN0cyhbdGVzdF0pOwogICAgICAgICBjdXN0b21BbmFseXNpc1Rh
c2tDb25maWd1cmF0b3Iuc2VsZWN0UGxhdGZvcm0ocGxhdGZvcm0pOwpAQCAtMjE2LDcgKzIyMCw4
IEBAIGRlc2NyaWJlKCdDdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3InLCAoKSA9PiB7CiAg
ICAgICAgICAgICBuYW1lOiAndGVzdC10cmlnZ2VyYWJsZScsCiAgICAgICAgICAgICBpc0Rpc2Fi
bGVkOiBmYWxzZSwKICAgICAgICAgICAgIHJlcG9zaXRvcnlHcm91cHM6IFt0cmlnZ2VyYWJsZVJl
cG9zaXRvcnlHcm91cF0sCi0gICAgICAgICAgICBjb25maWd1cmF0aW9uczogW3t0ZXN0LCBwbGF0
Zm9ybTogbW9qYXZlfSwge3Rlc3QsIHBsYXRmb3JtOiBoaWdoU2llcnJhfV0sCisgICAgICAgICAg
ICBjb25maWd1cmF0aW9uczogW3t0ZXN0LCBwbGF0Zm9ybTogbW9qYXZlLCBpZDogMiwgc3VwcG9y
dGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXX0sCisgICAg
ICAgICAgICAgICAge3Rlc3QsIHBsYXRmb3JtOiBoaWdoU2llcnJhLCBpZDogMywgc3VwcG9ydGVk
UmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXX1dLAogICAgICAg
ICB9KTsKICAgICAgICAgY3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yLnNlbGVjdFRlc3Rz
KFt0ZXN0XSk7CiAgICAgICAgIGN1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvci5zZWxlY3RQ
bGF0Zm9ybShtb2phdmUpOwpAQCAtMjk1LDcgKzMwMCw4IEBAIGRlc2NyaWJlKCdDdXN0b21BbmFs
eXNpc1Rhc2tDb25maWd1cmF0b3InLCAoKSA9PiB7CiAgICAgICAgICAgICBuYW1lOiAndGVzdC10
cmlnZ2VyYWJsZScsCiAgICAgICAgICAgICBpc0Rpc2FibGVkOiBmYWxzZSwKICAgICAgICAgICAg
IHJlcG9zaXRvcnlHcm91cHM6IFt0cmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cF0sCi0gICAgICAg
ICAgICBjb25maWd1cmF0aW9uczogW3t0ZXN0LCBwbGF0Zm9ybTogbW9qYXZlfSwge3Rlc3QsIHBs
YXRmb3JtOiBoaWdoU2llcnJhfV0sCisgICAgICAgICAgICBjb25maWd1cmF0aW9uczogW3t0ZXN0
LCBwbGF0Zm9ybTogbW9qYXZlLCBpZDogMiwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2Fs
dGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXX0sCisgICAgICAgICAgICAgICAge3Rlc3QsIHBsYXRm
b3JtOiBoaWdoU2llcnJhLCBpZDogMywgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVy
bmF0aW5nJywgJ3NlcXVlbnRpYWwnXX1dLAogICAgICAgICB9KTsKICAgICAgICAgY3VzdG9tQW5h
bHlzaXNUYXNrQ29uZmlndXJhdG9yLnNlbGVjdFRlc3RzKFt0ZXN0XSk7CiAgICAgICAgIGN1c3Rv
bUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvci5zZWxlY3RQbGF0Zm9ybShtb2phdmUpOwpAQCAtMzU2
LDcgKzM2Miw4IEBAIGRlc2NyaWJlKCdDdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3InLCAo
KSA9PiB7CiAgICAgICAgICAgICBuYW1lOiAndGVzdC10cmlnZ2VyYWJsZScsCiAgICAgICAgICAg
ICBpc0Rpc2FibGVkOiBmYWxzZSwKICAgICAgICAgICAgIHJlcG9zaXRvcnlHcm91cHM6IFt0cmln
Z2VyYWJsZVJlcG9zaXRvcnlHcm91cF0sCi0gICAgICAgICAgICBjb25maWd1cmF0aW9uczogW3t0
ZXN0LCBwbGF0Zm9ybTogbW9qYXZlfSwge3Rlc3QsIHBsYXRmb3JtOiBoaWdoU2llcnJhfV0sCisg
ICAgICAgICAgICBjb25maWd1cmF0aW9uczogW3t0ZXN0LCBwbGF0Zm9ybTogbW9qYXZlLCBpZDog
Miwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwn
XX0sCisgICAgICAgICAgICAgICAge3Rlc3QsIHBsYXRmb3JtOiBoaWdoU2llcnJhLCBpZDogMywg
c3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXX1d
LAogICAgICAgICB9KTsKICAgICAgICAgY3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yLnNl
bGVjdFRlc3RzKFt0ZXN0XSk7CiAgICAgICAgIGN1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRv
ci5zZWxlY3RQbGF0Zm9ybShtb2phdmUpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL2Jyb3dzZXItdGVzdHMvY3VzdG9taXphYmxlLXRlc3QtZ3JvdXAtZm9ybS10ZXN0cy5q
cyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9icm93c2VyLXRlc3RzL2N1c3RvbWl6YWJsZS10
ZXN0LWdyb3VwLWZvcm0tdGVzdHMuanMKaW5kZXggYWFkM2MwMTJiMTNiMzgyM2FlYjdhYzYyMDBi
OTFiYjQxZmI2ZjZlMi4uN2U3N2E5OThkZjY5OGI1NGFhYTNlMTJiMWY2NDFlMTkyMjY2NDI5NyAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvY3VzdG9t
aXphYmxlLXRlc3QtZ3JvdXAtZm9ybS10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvYnJvd3Nlci10ZXN0cy9jdXN0b21pemFibGUtdGVzdC1ncm91cC1mb3JtLXRlc3RzLmpz
CkBAIC0xLDExICsxLDIwIEBACiAKIGRlc2NyaWJlKCdDdXN0b21pemFibGVUZXN0R3JvdXBGb3Jt
VGVzdHMnLCAoKSA9PiB7Ci0gICAgY29uc3Qgc2NyaXB0cyA9IFsnaW5zdHJ1bWVudGF0aW9uLmpz
JywgJy4uL3NoYXJlZC9jb21tb24tY29tcG9uZW50LWJhc2UuanMnLCAnY29tcG9uZW50cy9iYXNl
LmpzJywgJ21vZGVscy9kYXRhLW1vZGVsLmpzJywgJ21vZGVscy9jb21taXQtbG9nLmpzJywKLSAg
ICAgICAgJ21vZGVscy9jb21taXQtc2V0LmpzJywgJ21vZGVscy9yZXBvc2l0b3J5LmpzJywgJ2Nv
bXBvbmVudHMvdGVzdC1ncm91cC1mb3JtLmpzJywgJ2NvbXBvbmVudHMvY3VzdG9taXphYmxlLXRl
c3QtZ3JvdXAtZm9ybS5qcyddOworICAgIGNvbnN0IHNjcmlwdHMgPSBbJ2luc3RydW1lbnRhdGlv
bi5qcycsICcuLi9zaGFyZWQvY29tbW9uLWNvbXBvbmVudC1iYXNlLmpzJywgJ2NvbXBvbmVudHMv
YmFzZS5qcycsCisgICAgICAgICdtb2RlbHMvZGF0YS1tb2RlbC5qcycsICdtb2RlbHMvY29tbWl0
LWxvZy5qcycsICdtb2RlbHMvY29tbWl0LXNldC5qcycsICdtb2RlbHMvcmVwb3NpdG9yeS5qcycs
CisgICAgICAgICdjb21wb25lbnRzL3Rlc3QtZ3JvdXAtZm9ybS5qcycsICdjb21wb25lbnRzL2N1
c3RvbWl6YWJsZS10ZXN0LWdyb3VwLWZvcm0uanMnLAorICAgICAgICAnY29tcG9uZW50cy9yZXBl
dGl0aW9uLXR5cGUtc2VsZWN0aW9uLmpzJywgJ21vZGVscy9kYXRhLW1vZGVsLmpzJywgJ21vZGVs
cy90cmlnZ2VyYWJsZS5qcycsICdtb2RlbHMvdGVzdC5qcycsCisgICAgICAgICdtb2RlbHMvcGxh
dGZvcm0uanMnLCAnbGF6aWx5LWV2YWx1YXRlZC1mdW5jdGlvbi5qcyddOwogCiAgICAgYXN5bmMg
ZnVuY3Rpb24gY3JlYXRlQ3VzdG9taXphYmxlVGVzdEdyb3VwRm9ybVdpdGhDb250ZXh0KGNvbnRl
eHQpCiAgICAgewotICAgICAgICBhd2FpdCBjb250ZXh0LmltcG9ydFNjcmlwdHMoc2NyaXB0cywg
J0NvbXBvbmVudEJhc2UnLCAnRGF0YU1vZGVsT2JqZWN0JywgJ1JlcG9zaXRvcnknLCAnQ29tbWl0
TG9nJywgJ0NvbW1pdFNldCcsICdDdXN0b21pemFibGVUZXN0R3JvdXBGb3JtJywgJ01vY2tSZW1v
dGVBUEknKTsKKyAgICAgICAgYXdhaXQgY29udGV4dC5pbXBvcnRTY3JpcHRzKHNjcmlwdHMsICdD
b21wb25lbnRCYXNlJywgJ0RhdGFNb2RlbE9iamVjdCcsICdMYWJlbGVkT2JqZWN0JywgJ1Rlc3Qn
LAorICAgICAgICAgICAgJ1BsYXRmb3JtJywgJ1JlcG9zaXRvcnknLCAnQ29tbWl0TG9nJywgJ0Nv
bW1pdFNldCcsICdDdXN0b21pemFibGVUZXN0R3JvdXBGb3JtJywgJ01vY2tSZW1vdGVBUEknLAor
ICAgICAgICAgICAgJ0xhemlseUV2YWx1YXRlZEZ1bmN0aW9uJywgJ1JlcGV0aXRpb25UeXBlU2Vs
ZWN0aW9uJywgJ1RyaWdnZXJhYmxlQ29uZmlndXJhdGlvbicpOworICAgICAgICBjb25zdCBwbGF0
Zm9ybSA9IG5ldyBjb250ZXh0LnN5bWJvbHMuUGxhdGZvcm0oNSwge25hbWU6ICdTb21lUGxhdGZv
cm0nLCBtZXRyaWNzOiBbXX0pOworICAgICAgICBjb25zdCB0ZXN0ID0gbmV3IGNvbnRleHQuc3lt
Ym9scy5UZXN0KDEwLCB7bmFtZTogJ1NvbWVUZXN0J30pOworICAgICAgICBuZXcgY29udGV4dC5z
eW1ib2xzLlRyaWdnZXJhYmxlQ29uZmlndXJhdGlvbigxLAorICAgICAgICAgICAge3BsYXRmb3Jt
LCB0ZXN0LCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVu
dGlhbCddfSk7CiAgICAgICAgIGNvbnN0IGN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm0gPSBuZXcg
Y29udGV4dC5zeW1ib2xzLkN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm07CiAgICAgICAgIGNvbnRl
eHQuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjdXN0b21pemFibGVUZXN0R3JvdXBGb3JtLmVs
ZW1lbnQoKSk7CiAgICAgICAgIHJldHVybiBjdXN0b21pemFibGVUZXN0R3JvdXBGb3JtOwpkaWZm
IC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvdGVzdC1ncm91
cC1mb3JtLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMv
dGVzdC1ncm91cC1mb3JtLXRlc3RzLmpzCmluZGV4IGY5NjAxMTM4MjM0YTFkOWM1NjZhMzgwYTY1
Y2U1OTA4NDI4MzBiNGEuLjc2MzcwN2UyNjg2ZGNkYmRmNjdjM2VhZDQyNTJmOTllOGE0OGI5NTgg
MTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9icm93c2VyLXRlc3RzL3Rlc3Qt
Z3JvdXAtZm9ybS10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nl
ci10ZXN0cy90ZXN0LWdyb3VwLWZvcm0tdGVzdHMuanMKQEAgLTEsMTQgKzEsMjEgQEAKIAogZGVz
Y3JpYmUoJ1Rlc3RHcm91cEZvcm1UZXN0cycsICgpID0+IHsKLSAgICBjb25zdCBzY3JpcHRzID0g
WydpbnN0cnVtZW50YXRpb24uanMnLCAnLi4vc2hhcmVkL2NvbW1vbi1jb21wb25lbnQtYmFzZS5q
cycsICdjb21wb25lbnRzL2Jhc2UuanMnLCAnY29tcG9uZW50cy90ZXN0LWdyb3VwLWZvcm0uanMn
XTsKKyAgICBjb25zdCBzY3JpcHRzID0gWydpbnN0cnVtZW50YXRpb24uanMnLCAnLi4vc2hhcmVk
L2NvbW1vbi1jb21wb25lbnQtYmFzZS5qcycsICdjb21wb25lbnRzL2Jhc2UuanMnLAorICAgICAg
ICAnY29tcG9uZW50cy90ZXN0LWdyb3VwLWZvcm0uanMnLCAnY29tcG9uZW50cy9yZXBldGl0aW9u
LXR5cGUtc2VsZWN0aW9uLmpzJywgJ21vZGVscy9kYXRhLW1vZGVsLmpzJywKKyAgICAgICAgJ21v
ZGVscy90cmlnZ2VyYWJsZS5qcycsICdtb2RlbHMvdGVzdC5qcycsICdtb2RlbHMvcGxhdGZvcm0u
anMnLCAnbGF6aWx5LWV2YWx1YXRlZC1mdW5jdGlvbi5qcyddOwogCi0gICAgZnVuY3Rpb24gY3Jl
YXRlVGVzdEdyb3VwRm9ybVdpdGhDb250ZXh0KGNvbnRleHQpCisgICAgYXN5bmMgZnVuY3Rpb24g
Y3JlYXRlVGVzdEdyb3VwRm9ybVdpdGhDb250ZXh0KGNvbnRleHQpCiAgICAgewotICAgICAgICBy
ZXR1cm4gY29udGV4dC5pbXBvcnRTY3JpcHRzKHNjcmlwdHMsICdDb21wb25lbnRCYXNlJywgJ1Rl
c3RHcm91cEZvcm0nKS50aGVuKChzeW1ib2xzKSA9PiB7Ci0gICAgICAgICAgICBjb25zdCB0ZXN0
R3JvdXBGb3JtID0gbmV3IGNvbnRleHQuc3ltYm9scy5UZXN0R3JvdXBGb3JtOwotICAgICAgICAg
ICAgY29udGV4dC5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRlc3RHcm91cEZvcm0uZWxlbWVu
dCgpKTsKLSAgICAgICAgICAgIHJldHVybiB0ZXN0R3JvdXBGb3JtOwotICAgICAgICB9KTsKKyAg
ICAgICAgYXdhaXQgY29udGV4dC5pbXBvcnRTY3JpcHRzKHNjcmlwdHMsICdDb21wb25lbnRCYXNl
JywgJ0xhYmVsZWRPYmplY3QnLCAnRGF0YU1vZGVsT2JqZWN0JywgJ1Rlc3QnLAorICAgICAgICAg
ICAgJ1Rlc3RHcm91cEZvcm0nLCAnUmVwZXRpdGlvblR5cGVTZWxlY3Rpb24nLCAnVHJpZ2dlcmFi
bGVDb25maWd1cmF0aW9uJywnUGxhdGZvcm0nLCAnTGF6aWx5RXZhbHVhdGVkRnVuY3Rpb24nKTsK
KyAgICAgICAgY29uc3QgcGxhdGZvcm0gPSBuZXcgY29udGV4dC5zeW1ib2xzLlBsYXRmb3JtKDUs
IHtuYW1lOiAnU29tZVBsYXRmb3JtJywgbWV0cmljczogW119KTsKKyAgICAgICAgY29uc3QgdGVz
dCA9IG5ldyBjb250ZXh0LnN5bWJvbHMuVGVzdCgxMCwge25hbWU6ICdTb21lVGVzdCd9KTsKKyAg
ICAgICAgbmV3IGNvbnRleHQuc3ltYm9scy5UcmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24oMSwKKyAg
ICAgICAgICAgIHtwbGF0Zm9ybSwgdGVzdCwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2Fs
dGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXX0pOworICAgICAgICBjb25zdCB0ZXN0R3JvdXBGb3Jt
ID0gbmV3IGNvbnRleHQuc3ltYm9scy5UZXN0R3JvdXBGb3JtOworICAgICAgICB0ZXN0R3JvdXBG
b3JtLnNldFRlc3RBbmRQbGF0Zm9ybSh0ZXN0LCBwbGF0Zm9ybSk7CisgICAgICAgIGNvbnRleHQu
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXN0R3JvdXBGb3JtLmVsZW1lbnQoKSk7CisgICAg
ICAgIHJldHVybiB0ZXN0R3JvdXBGb3JtOwogICAgIH0KIAogICAgIGl0KCdtdXN0IGRpc3BhdGNo
ICJzdGFydFRlc3RpbmciIGFjdGlvbiB3aXRoIHRoZSBudW1iZXIgb2YgcmVwZXRpdGlvbnMgdGhl
IHVzZXIgY2xpY2tzIG9uICJTdGFydCBBL0IgdGVzdGluZyInLCAoKSA9PiB7CkBAIC0zMCw5ICsz
Nyw3IEBAIGRlc2NyaWJlKCdUZXN0R3JvdXBGb3JtVGVzdHMnLCAoKSA9PiB7CiAgICAgICAgIGV4
cGVjdChjYWxscykudG8uZXFsKHt9KTsKICAgICAgICAgdGVzdEdyb3VwRm9ybS5jb250ZW50KCdz
dGFydC1idXR0b24nKS5jbGljaygpOwogICAgICAgICBleHBlY3QoY2FsbHMpLnRvLmVxbChbWzQs
ICdhbHRlcm5hdGluZycsIHRydWVdXSk7Ci0gICAgICAgIGNvbnN0IHR5cGVGb3JtID0gdGVzdEdy
b3VwRm9ybS5jb250ZW50KCdyZXBldGl0aW9uLXR5cGUnKTsKLSAgICAgICAgdHlwZUZvcm0udmFs
dWUgPSAnc2VxdWVudGlhbCc7Ci0gICAgICAgIHR5cGVGb3JtLmRpc3BhdGNoRXZlbnQobmV3IEV2
ZW50KCdjaGFuZ2UnKSk7CisgICAgICAgIHRlc3RHcm91cEZvcm0ucGFydCgncmVwZXRpdGlvbi10
eXBlLXNlbGVjdGlvbicpLnNlbGVjdGVkUmVwZXRpdGlvblR5cGUgPSAnc2VxdWVudGlhbCc7CiAg
ICAgICAgIHRlc3RHcm91cEZvcm0uY29udGVudCgnc3RhcnQtYnV0dG9uJykuY2xpY2soKTsKICAg
ICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoW1s0LCAnYWx0ZXJuYXRpbmcnLCB0cnVlXSwgWzQs
ICdzZXF1ZW50aWFsJywgdHJ1ZV1dKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9pbml0LWRhdGFiYXNlLnNxbAppbmRleCAwNWM3ODRhZGU0YWNiYThlMTU1Nzk2NDhiNjNlYjkx
Y2ZkNjEzNDQ3Li5kZjc5Zjg0MjY1YmFhMWQyODY3MDE1ZGY1OGQwMDU2NzA2ZGVmN2EzIDEwMDY0
NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCkBAIC0yNCw2ICsyNCw3
IEBAIERST1AgVEFCTEUgSUYgRVhJU1RTIGFuYWx5c2lzX3N0cmF0ZWdpZXMgQ0FTQ0FERTsKIERS
T1AgVFlQRSBJRiBFWElTVFMgYW5hbHlzaXNfdGFza19yZXN1bHRfdHlwZSBDQVNDQURFOwogRFJP
UCBUQUJMRSBJRiBFWElTVFMgYnVpbGRfdHJpZ2dlcmFibGVzIENBU0NBREU7CiBEUk9QIFRBQkxF
IElGIEVYSVNUUyB0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucyBDQVNDQURFOworRFJPUCBUQUJM
RSBJRiBFWElTVFMgdHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzIENB
U0NBREU7CiBEUk9QIFRBQkxFIElGIEVYSVNUUyB0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3Vw
cyBDQVNDQURFOwogRFJPUCBUQUJMRSBJRiBFWElTVFMgdHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVz
IENBU0NBREU7CiBEUk9QIFRBQkxFIElGIEVYSVNUUyB1cGxvYWRlZF9maWxlcyBDQVNDQURFOwpA
QCAtMjY1LDExICsyNjYsMTggQEAgQ1JFQVRFIFRBQkxFIHRyaWdnZXJhYmxlX3JlcG9zaXRvcmll
cyAoCiAgICAgQ09OU1RSQUlOVCByZXBvc2l0b3J5X211c3RfYmVfdW5pcXVlX2Zvcl9yZXBvc2l0
b3J5X2dyb3VwIFVOSVFVRSh0cmlncmVwb19yZXBvc2l0b3J5LCB0cmlncmVwb19ncm91cCkpOwog
CiBDUkVBVEUgVEFCTEUgdHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMgKAorICAgIHRyaWdjb25m
aWdfaWQgc2VyaWFsIFBSSU1BUlkgS0VZLAogICAgIHRyaWdjb25maWdfdGVzdCBpbnRlZ2VyIFJF
RkVSRU5DRVMgdGVzdHMgTk9UIE5VTEwsCiAgICAgdHJpZ2NvbmZpZ19wbGF0Zm9ybSBpbnRlZ2Vy
IFJFRkVSRU5DRVMgcGxhdGZvcm1zIE5PVCBOVUxMLAogICAgIHRyaWdjb25maWdfdHJpZ2dlcmFi
bGUgaW50ZWdlciBSRUZFUkVOQ0VTIGJ1aWxkX3RyaWdnZXJhYmxlcyBOT1QgTlVMTCwKICAgICBD
T05TVFJBSU5UIHRyaWdnZXJhYmxlX211c3RfYmVfdW5pcXVlX2Zvcl90ZXN0X2FuZF9wbGF0Zm9y
bSBVTklRVUUodHJpZ2NvbmZpZ190ZXN0LCB0cmlnY29uZmlnX3BsYXRmb3JtKSk7CiAKK0NSRUFU
RSBUWVBFIGFuYWx5c2lzX3Rlc3RfZ3JvdXBfcmVwZXRpdGlvbl90eXBlIGFzIEVOVU0gKCdhbHRl
cm5hdGluZycsICdzZXF1ZW50aWFsJywgJ3BhcmFsbGVsJyk7CitDUkVBVEUgVEFCTEUgdHJpZ2dl
cmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzICgKKyAgICBjb25maWdyZXBldGl0
aW9uX2NvbmZpZyBJTlRFR0VSIE5PVCBOVUxMIFJFRkVSRU5DRVMgdHJpZ2dlcmFibGVfY29uZmln
dXJhdGlvbnMgT04gREVMRVRFIENBU0NBREUsCisgICAgY29uZmlncmVwZXRpdGlvbl90eXBlIGFu
YWx5c2lzX3Rlc3RfZ3JvdXBfcmVwZXRpdGlvbl90eXBlIE5PVCBOVUxMLAorICAgIFBSSU1BUlkg
S0VZIChjb25maWdyZXBldGl0aW9uX2NvbmZpZywgY29uZmlncmVwZXRpdGlvbl90eXBlKSk7CisK
IENSRUFURSBUQUJMRSB1cGxvYWRlZF9maWxlcyAoCiAgICAgZmlsZV9pZCBzZXJpYWwgUFJJTUFS
WSBLRVksCiAgICAgZmlsZV9jcmVhdGVkX2F0IHRpbWVzdGFtcCBOT1QgTlVMTCBERUZBVUxUIChD
VVJSRU5UX1RJTUVTVEFNUCBBVCBUSU1FIFpPTkUgJ1VUQycpLApAQCAtMjgzLDcgKzI5MSw2IEBA
IENSRUFURSBUQUJMRSB1cGxvYWRlZF9maWxlcyAoCiBDUkVBVEUgSU5ERVggZmlsZV9hdXRob3Jf
aW5kZXggT04gdXBsb2FkZWRfZmlsZXMoZmlsZV9hdXRob3IpOwogQ1JFQVRFIFVOSVFVRSBJTkRF
WCBmaWxlX3NoYTI1Nl9pbmRleCBPTiB1cGxvYWRlZF9maWxlcyhmaWxlX3NoYTI1NikgV0hFUkUg
ZmlsZV9kZWxldGVkX2F0IGlzIE5VTEw7CiAKLUNSRUFURSBUWVBFIGFuYWx5c2lzX3Rlc3RfZ3Jv
dXBfcmVwZXRpdGlvbl90eXBlIGFzIEVOVU0gKCdhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJyk7
CiBDUkVBVEUgVEFCTEUgYW5hbHlzaXNfdGVzdF9ncm91cHMgKAogICAgIHRlc3Rncm91cF9pZCBz
ZXJpYWwgUFJJTUFSWSBLRVksCiAgICAgdGVzdGdyb3VwX3Rhc2sgaW50ZWdlciBSRUZFUkVOQ0VT
IGFuYWx5c2lzX3Rhc2tzIE5PVCBOVUxMLApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL21pZ3JhdGUtZGF0YWJhc2Uuc3FsIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL21p
Z3JhdGUtZGF0YWJhc2Uuc3FsCmluZGV4IGJkMWZjMjRjYTVmYTZiZDY0ZTY5NDBjNGM0M2U0YWFj
MzBlODM2NmUuLmZiYTMwMzBkYmIwOWQ0OGUyOTM1NmFjMmU5NTllZDc0MTA1ZGZmZGMgMTAwNjQ0
Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9taWdyYXRlLWRhdGFiYXNlLnNxbAorKysg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWlncmF0ZS1kYXRhYmFzZS5zcWwKQEAgLTMsNyAr
Myw3IEBAIERPICQkCiBCRUdJTgogCiBJRiBOT1QgRVhJU1RTIChTRUxFQ1QgTlVMTCBGUk9NIHBn
X3R5cGUgV0hFUkUgdHlwbmFtZSA9ICdhbmFseXNpc190ZXN0X2dyb3VwX3JlcGV0aXRpb25fdHlw
ZScpIFRIRU4KLSAgICBDUkVBVEUgVFlQRSBhbmFseXNpc190ZXN0X2dyb3VwX3JlcGV0aXRpb25f
dHlwZSBhcyBFTlVNICgnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCcpOworICAgIENSRUFURSBU
WVBFIGFuYWx5c2lzX3Rlc3RfZ3JvdXBfcmVwZXRpdGlvbl90eXBlIGFzIEVOVU0gKCdhbHRlcm5h
dGluZycsICdzZXF1ZW50aWFsJywgJ3BhcmFsbGVsJyk7CiBFTkQgSUY7CiAKIEFMVEVSIFRBQkxF
IGJ1aWxkX3JlcXVlc3RzIEFERCBDT0xVTU4gSUYgTk9UIEVYSVNUUyByZXF1ZXN0X3N0YXR1c19k
ZXNjcmlwdGlvbiB2YXJjaGFyKDEwMjQpIERFRkFVTFQgTlVMTDsKQEAgLTIyLDYgKzIyLDExIEBA
IENSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIHBsYXRmb3JtX2dyb3VwcyAoCiAgICAgcGxhdGZv
cm1ncm91cF9uYW1lIHZhcmNoYXIoNjQpIE5PVCBOVUxMLAogICAgIENPTlNUUkFJTlQgcGxhdGZv
cm1fZ3JvdXBfbmFtZV9tdXN0X2JlX3VuaXF1ZSBVTklRVUUgKHBsYXRmb3JtZ3JvdXBfbmFtZSkp
OwogCitDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyB0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9u
X3JlcGV0aXRpb25fdHlwZXMgKAorICAgIGNvbmZpZ3JlcGV0aXRpb25fY29uZmlnIElOVEVHRVIg
Tk9UIE5VTEwgUkVGRVJFTkNFUyB0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucyBPTiBERUxFVEUg
Q0FTQ0FERSwKKyAgICBjb25maWdyZXBldGl0aW9uX3R5cGUgYW5hbHlzaXNfdGVzdF9ncm91cF9y
ZXBldGl0aW9uX3R5cGUgTk9UIE5VTEwsCisgICAgUFJJTUFSWSBLRVkgKGNvbmZpZ3JlcGV0aXRp
b25fY29uZmlnLCBjb25maWdyZXBldGl0aW9uX3R5cGUpKTsKKwogQUxURVIgVEFCTEUgcGxhdGZv
cm1zIEFERCBDT0xVTU4gSUYgTk9UIEVYSVNUUyBwbGF0Zm9ybV9ncm91cCBpbnRlZ2VyIFJFRkVS
RU5DRVMgcGxhdGZvcm1fZ3JvdXBzIERFRkFVTFQgTlVMTDsKIAogSUYgRVhJU1RTIChTRUxFQ1Qg
TlVMTCBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5zIFdIRVJFIFRBQkxFX05BTUUgPSAn
YnVpbGRzJyBBTkQgQ09MVU1OX05BTUUgPSAnYnVpbGRfbnVtYmVyJykgVEhFTgpAQCAtNDYsNCAr
NTEsNyBAQCBJRiBFWElTVFMgKFNFTEVDVCBOVUxMIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLmNv
bHVtbnMgV0hFUkUgVEFCTEVfTkFNRSA9ICdidWlsZAogICAgIEFMVEVSIFRBQkxFIGJ1aWxkX3Ns
YXZlcyBSRU5BTUUgVE8gYnVpbGRfd29ya2VyczsKIEVORCBJRjsKIAotRU5EJCQ7ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQorRU5EJCQ7CisKK0FMVEVSIFRBQkxFIHRyaWdnZXJhYmxlX2Nv
bmZpZ3VyYXRpb25zIEFERCBDT0xVTU4gSUYgTk9UIEVYSVNUUyB0cmlnY29uZmlnX2lkIHNlcmlh
bCBQUklNQVJZIEtFWTsKK0FMVEVSIFRZUEUgYW5hbHlzaXNfdGVzdF9ncm91cF9yZXBldGl0aW9u
X3R5cGUgQUREIFZBTFVFIElGIE5PVCBFWElTVFMgJ3BhcmFsbGVsJzsKZGlmZiAtLWdpdCBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS5waHAg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUu
cGhwCmluZGV4IDkyZWRiNmY4ZDU3MDMyZTJlZWExYWFkNWRhZjZhMzYxYjY0MzNhNjAuLmExM2Rj
YjIyZTU3ZWZiZmNlNGVmN2YyNjVkZjUxOTcwZGFmZTJjNDQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS5waHAKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLnBo
cApAQCAtMzcsMTAgKzM3LDE5IEBAIGZ1bmN0aW9uIG1haW4oJHBvc3RfZGF0YSkKIAogICAgIGZv
cmVhY2ggKCRjb25maWd1cmF0aW9ucyBhcyAmJGVudHJ5KSB7CiAgICAgICAgICRjb25maWdfaW5m
byA9IGFycmF5KCd0ZXN0JyA9PiAkZW50cnlbJ3Rlc3QnXSwgJ3BsYXRmb3JtJyA9PiAkZW50cnlb
J3BsYXRmb3JtJ10sICd0cmlnZ2VyYWJsZScgPT4gJHRyaWdnZXJhYmxlX2lkKTsKLSAgICAgICAg
aWYgKCEkZGItPmluc2VydF9yb3coJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywgJ3RyaWdj
b25maWcnLCAkY29uZmlnX2luZm8sIG51bGwpKSB7CisgICAgICAgICRuZXdfdHJpZ2dlcmFibGVf
aWQgPSAkZGItPmluc2VydF9yb3coJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywgJ3RyaWdj
b25maWcnLCAkY29uZmlnX2luZm8pOworICAgICAgICBpZiAoISRuZXdfdHJpZ2dlcmFibGVfaWQp
IHsKICAgICAgICAgICAgICRkYi0+cm9sbGJhY2tfdHJhbnNhY3Rpb24oKTsKICAgICAgICAgICAg
IGV4aXRfd2l0aF9lcnJvcignRmFpbGVkVG9JbnNlcnRDb25maWd1cmF0aW9uJywgYXJyYXkoJ2Vu
dHJ5JyA9PiAkZW50cnkpKTsKICAgICAgICAgfQorICAgICAgICAkcmVwZXRpdGlvbl90eXBlcyA9
IGFycmF5X2dldCgkZW50cnksICdzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMnLCBhcnJheSgpKTsK
KyAgICAgICAgZm9yZWFjaCAoJHJlcGV0aXRpb25fdHlwZXMgYXMgJHJlcGV0aXRpb25fdHlwZSkg
eworICAgICAgICAgICAgaWYgKCEkZGItPmluc2VydF9yb3coJ3RyaWdnZXJhYmxlX2NvbmZpZ3Vy
YXRpb25fcmVwZXRpdGlvbl90eXBlcycsIE5VTEwsCisgICAgICAgICAgICAgICAgYXJyYXkoJ2Nv
bmZpZ3JlcGV0aXRpb25fY29uZmlnJyA9PiAkbmV3X3RyaWdnZXJhYmxlX2lkLCAnY29uZmlncmVw
ZXRpdGlvbl90eXBlJyA9PiAkcmVwZXRpdGlvbl90eXBlKSwgTlVMTCkpIHsKKyAgICAgICAgICAg
ICAgICAkZGItPnJvbGxiYWNrX3RyYW5zYWN0aW9uKCk7CisgICAgICAgICAgICAgICAgZXhpdF93
aXRoX2Vycm9yKCdGYWlsZWRUb0luc2VydFJlcGV0aXRpb25UeXBlRm9yVHJpZ2dlcmFibGVDb25m
aWcnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KIAogICAgIGZvcmVhY2ggKCRy
ZXBvc2l0b3J5X2dyb3VwcyBhcyAmJGdyb3VwKSB7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0LXNldHMtaGVscGVycy5waHAgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0LXNldHMtaGVscGVycy5w
aHAKaW5kZXggNzc3N2UxYWQ2MmFmZGFjNzZjNzMxNDMzNTIyYzFiMjZhMDI3Yzg0YS4uMjMwZDM3
ZDAxZmU5MmNjN2FjODhlYjdmYjU5YmRiMTAwN2Q1ZmRjNiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1zZXRzLWhlbHBlcnMucGhwCisr
KyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtc2V0cy1o
ZWxwZXJzLnBocApAQCAtNiw3ICs2LDcgQEAgcmVxdWlyZV9vbmNlKCdjb21taXQtbG9nLWZldGNo
ZXIucGhwJyk7CiAjIEZJWE1FOiBTaG91bGQgY3JlYXRlIGEgaGVscGVyIGNsYXNzIGZvciBiZWxv
dyAzIGhlbHBlciBmdW5jdGlvbnMgdG8gYXZvaWQgcGFzc2luZyBsb25nIGFyZ3VtZW50IGxpc3Qu
CiBmdW5jdGlvbiBjcmVhdGVfdGVzdF9ncm91cF9hbmRfYnVpbGRfcmVxdWVzdHMoJGRiLCAkY29t
bWl0X3NldHMsICR0YXNrX2lkLCAkbmFtZSwgJGF1dGhvciwgJHRyaWdnZXJhYmxlX2lkLCAkcGxh
dGZvcm1faWQsICR0ZXN0X2lkLCAkcmVwZXRpdGlvbl9jb3VudCwgJHJlcGV0aXRpb25fdHlwZSwg
JG5lZWRzX25vdGlmaWNhdGlvbikKIHsKLSAgICBhc3NlcnQoaW5fYXJyYXkoJHJlcGV0aXRpb25f
dHlwZSwgYXJyYXkoJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnKSkpOworICAgIGFzc2VydChp
bl9hcnJheSgkcmVwZXRpdGlvbl90eXBlLCBhcnJheSgnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlh
bCcsICdwYXJhbGxlbCcpKSk7CiAgICAgbGlzdCAoJGJ1aWxkX2NvbmZpZ3VyYXRpb25fbGlzdCwg
JHRlc3RfY29uZmlndXJhdGlvbl9saXN0KSA9IGluc2VydF9jb21taXRfc2V0c19hbmRfY29uc3Ry
dWN0X2NvbmZpZ3VyYXRpb25fbGlzdCgkZGIsICRjb21taXRfc2V0cyk7CiAKICAgICAkZ3JvdXBf
aWQgPSAkZGItPmluc2VydF9yb3coJ2FuYWx5c2lzX3Rlc3RfZ3JvdXBzJywgJ3Rlc3Rncm91cCcs
CkBAIC0yNCw3ICsyNCw3IEBAIGZ1bmN0aW9uIGNyZWF0ZV90ZXN0X2dyb3VwX2FuZF9idWlsZF9y
ZXF1ZXN0cygkZGIsICRjb21taXRfc2V0cywgJHRhc2tfaWQsICRuYW1lCiAgICAgICAgICAgICAg
ICAgaW5zZXJ0X2J1aWxkX3JlcXVlc3RfZm9yX2NvbmZpZ3VyYXRpb24oJGRiLCAkdGVzdF9jb25m
aWd1cmF0aW9uLCAkb3JkZXIrKywgJHRyaWdnZXJhYmxlX2lkLCAkcGxhdGZvcm1faWQsICR0ZXN0
X2lkLCAkZ3JvdXBfaWQpOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAgYXNzZXJ0
KCRyZXBldGl0aW9uX3R5cGUgPT0gJ2FsdGVybmF0aW5nJyk7CisgICAgICAgIGFzc2VydCgkcmVw
ZXRpdGlvbl90eXBlID09ICdhbHRlcm5hdGluZycgfHwgJHJlcGV0aXRpb25fdHlwZSA9PSAncGFy
YWxsZWwnKTsKICAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgJHJlcGV0aXRpb25fY291bnQ7ICRp
KyspIHsKICAgICAgICAgICAgIGZvcmVhY2ggKCR0ZXN0X2NvbmZpZ3VyYXRpb25fbGlzdCBhcyAk
dGVzdF9jb25maWd1cmF0aW9uKQogICAgICAgICAgICAgICAgIGluc2VydF9idWlsZF9yZXF1ZXN0
X2Zvcl9jb25maWd1cmF0aW9uKCRkYiwgJHRlc3RfY29uZmlndXJhdGlvbiwgJG9yZGVyKyssICR0
cmlnZ2VyYWJsZV9pZCwgJHBsYXRmb3JtX2lkLCAkdGVzdF9pZCwgJGdyb3VwX2lkKTsKZGlmZiAt
LWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9qc29uLWhlYWRl
ci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvanNvbi1oZWFk
ZXIucGhwCmluZGV4IDc4ZThkMGJlMjhlNjQ3NTM0YWNkMjkwMGQxZmNmZmE3MDcwZDQ4MzIuLjk0
NDA0ZjM2NTgzMWM2YjBjMTcwZTQ3N2ExMDVjNTYxMzY3NmViMmUgMTAwNjQ0Ci0tLSBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9qc29uLWhlYWRlci5waHAKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2pzb24taGVhZGVyLnBocApA
QCAtMTgyLDIwICsxODIsMzAgQEAgZnVuY3Rpb24gZmluZF90cmlnZ2VyYWJsZV9mb3JfdGFzaygk
ZGIsICR0YXNrX2lkKSB7CiAgICAgJHBhdGhfcmVzb2x2ZXIgPSBuZXcgVGVzdFBhdGhSZXNvbHZl
cigkZGIpOwogICAgICR0ZXN0X2lkcyA9ICRwYXRoX3Jlc29sdmVyLT5hbmNlc3RvcnNfZm9yX3Rl
c3QoJHRhcmdldF90ZXN0X2lkKTsKIAotICAgICRyZXN1bHRzID0gJGRiLT5xdWVyeV9hbmRfZmV0
Y2hfYWxsKCdTRUxFQ1QgdHJpZ2NvbmZpZ190cmlnZ2VyYWJsZSBBUyAidHJpZ2dlcmFibGUiLCB0
cmlnY29uZmlnX3Rlc3QgQVMgInRlc3QiCisgICAgJHJlc3VsdHMgPSAkZGItPnF1ZXJ5X2FuZF9m
ZXRjaF9hbGwoJ1NFTEVDVCB0cmlnY29uZmlnX2lkIEFTICJjb25maWdfaWQiLAorICAgICAgICB0
cmlnY29uZmlnX3RyaWdnZXJhYmxlIEFTICJ0cmlnZ2VyYWJsZSIsIHRyaWdjb25maWdfdGVzdCBB
UyAidGVzdCIKICAgICAgICAgRlJPTSB0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucyBXSEVSRSB0
cmlnY29uZmlnX3BsYXRmb3JtID0gJDEgQU5EIHRyaWdjb25maWdfdGVzdCA9IEFOWSgkMiknLAog
ICAgICAgICBhcnJheSgkcGxhdGZvcm1faWQsICd7JyAuIGltcGxvZGUoJywgJywgJHRlc3RfaWRz
KSAuICd9JykpOwogICAgIGlmICghJHJlc3VsdHMpCiAgICAgICAgIHJldHVybiBOVUxMOwogCiAg
ICAgJHRlc3RfdG9fdHJpZ2dlcmFibGUgPSBhcnJheSgpOwotICAgIGZvcmVhY2ggKCRyZXN1bHRz
IGFzICRyb3cpCisgICAgJHRlc3RfdG9fdHJpZ2NvbmZpZyA9IGFycmF5KCk7CisgICAgZm9yZWFj
aCAoJHJlc3VsdHMgYXMgJHJvdykgewogICAgICAgICAkdGVzdF90b190cmlnZ2VyYWJsZVskcm93
Wyd0ZXN0J11dID0gJHJvd1sndHJpZ2dlcmFibGUnXTsKKyAgICAgICAgJHRlc3RfdG9fdHJpZ2Nv
bmZpZ1skcm93Wyd0ZXN0J11dID0gJHJvd1snY29uZmlnX2lkJ107CisgICAgfQogCiAgICAgZm9y
ZWFjaCAoJHRlc3RfaWRzIGFzICR0ZXN0X2lkKSB7CiAgICAgICAgICR0cmlnZ2VyYWJsZSA9IGFy
cmF5X2dldCgkdGVzdF90b190cmlnZ2VyYWJsZSwgJHRlc3RfaWQpOwotICAgICAgICBpZiAoJHRy
aWdnZXJhYmxlKQotICAgICAgICAgICAgcmV0dXJuIGFycmF5KCdpZCcgPT4gJHRyaWdnZXJhYmxl
LCAndGVzdCcgPT4gJHRlc3RfaWQsICdwbGF0Zm9ybScgPT4gJHBsYXRmb3JtX2lkKTsKKyAgICAg
ICAgaWYgKCR0cmlnZ2VyYWJsZSkgeworICAgICAgICAgICAgJGNvbmZpZ19pZCA9ICR0ZXN0X3Rv
X3RyaWdjb25maWdbJHRlc3RfaWRdOworICAgICAgICAgICAgJHN1cHBvcnRlZF9yZXBldGl0aW9u
X3R5cGVzID0gYXJyYXkoKTsKKyAgICAgICAgICAgICRyb3dzID0gJGRiLT5zZWxlY3Rfcm93cygn
dHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywgJ2NvbmZpZ3JlcGV0
aXRpb24nLCBhcnJheSgnY29uZmlnJyA9PiAkY29uZmlnX2lkKSk7CisgICAgICAgICAgICBmb3Jl
YWNoICgkcm93cyBhcyAkcm93KQorICAgICAgICAgICAgICAgIGFycmF5X3B1c2goJHN1cHBvcnRl
ZF9yZXBldGl0aW9uX3R5cGVzLCAkcm93Wydjb25maWdyZXBldGl0aW9uX3R5cGUnXSk7CisgICAg
ICAgICAgICByZXR1cm4gYXJyYXkoJ2lkJyA9PiAkdHJpZ2dlcmFibGUsICd0ZXN0JyA9PiAkdGVz
dF9pZCwgJ3BsYXRmb3JtJyA9PiAkcGxhdGZvcm1faWQsICdzdXBwb3J0ZWRSZXBldGl0aW9uVHlw
ZXMnID0+ICRzdXBwb3J0ZWRfcmVwZXRpdGlvbl90eXBlcyk7CisgICAgICAgIH0KICAgICB9CiAK
ICAgICByZXR1cm4gTlVMTDsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvaW5jbHVkZS9tYW5pZmVzdC1nZW5lcmF0b3IucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy9pbmNsdWRlL21hbmlmZXN0LWdlbmVyYXRvci5waHAKaW5kZXggMTZkYmQ3
ZGY5YTRhMTNhMDhkODE3ZDZjODI2YzkxMDVkMDM1YmM3ZS4uY2U3ZmVjMTdmM2YzOThjZWQyNTU3
NzkwZDRmYWJhNWU1OWIwNzJjNiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy9pbmNsdWRlL21hbmlmZXN0LWdlbmVyYXRvci5waHAKKysrIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL21hbmlmZXN0LWdlbmVyYXRvci5waHAKQEAgLTI2
MSw2ICsyNjEsMTEgQEAgY2xhc3MgTWFuaWZlc3RHZW5lcmF0b3IgewogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAKKyAgICAgICAgJHJlcGV0aXRpb25fdHlwZXNfYnlfY29uZmlndXJhdGlvbiA9
ICRkYi0+ZmV0Y2hfdGFibGUoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90
eXBlcycpOworICAgICAgICAkcmVwZXRpdGlvbl90eXBlc19ieV9jb25maWcgPSBhcnJheSgpOwor
ICAgICAgICBmb3JlYWNoKCRyZXBldGl0aW9uX3R5cGVzX2J5X2NvbmZpZ3VyYXRpb24gYXMgJiRy
b3cpCisgICAgICAgICAgICBhcnJheV9wdXNoKGFycmF5X2Vuc3VyZV9pdGVtX2hhc19hcnJheSgk
cmVwZXRpdGlvbl90eXBlc19ieV9jb25maWcsICRyb3dbJ2NvbmZpZ3JlcGV0aXRpb25fY29uZmln
J10pLCAkcm93Wydjb25maWdyZXBldGl0aW9uX3R5cGUnXSk7CisKICAgICAgICAgJGNvbmZpZ3Vy
YXRpb25fbWFwID0gJGRiLT5mZXRjaF90YWJsZSgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMn
KTsKICAgICAgICAgaWYgKCRjb25maWd1cmF0aW9uX21hcCkgewogICAgICAgICAgICAgZm9yZWFj
aCAoJGNvbmZpZ3VyYXRpb25fbWFwIGFzICYkcm93KSB7CkBAIC0yNjgsNyArMjczLDggQEAgY2xh
c3MgTWFuaWZlc3RHZW5lcmF0b3IgewogICAgICAgICAgICAgICAgIGlmICghYXJyYXlfa2V5X2V4
aXN0cygkdHJpZ2dlcmFibGVfaWQsICRpZF90b190cmlnZ2VyYWJsZSkpCiAgICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICR0cmlnZ2VyYWJsZSA9ICYkaWRfdG9f
dHJpZ2dlcmFibGVbJHRyaWdnZXJhYmxlX2lkXTsKLSAgICAgICAgICAgICAgICBhcnJheV9wdXNo
KCR0cmlnZ2VyYWJsZVsnY29uZmlndXJhdGlvbnMnXSwgYXJyYXkoJHJvd1sndHJpZ2NvbmZpZ190
ZXN0J10sICRyb3dbJ3RyaWdjb25maWdfcGxhdGZvcm0nXSkpOworICAgICAgICAgICAgICAgICRy
ZXBldGl0aW9uX3R5cGVzID0gJHJlcGV0aXRpb25fdHlwZXNfYnlfY29uZmlnWyRyb3dbJ3RyaWdj
b25maWdfaWQnXV07CisgICAgICAgICAgICAgICAgYXJyYXlfcHVzaCgkdHJpZ2dlcmFibGVbJ2Nv
bmZpZ3VyYXRpb25zJ10sIGFycmF5KCRyb3dbJ3RyaWdjb25maWdfdGVzdCddLCAkcm93Wyd0cmln
Y29uZmlnX3BsYXRmb3JtJ10sICRyb3dbJ3RyaWdjb25maWdfaWQnXSwgJHJlcGV0aXRpb25fdHlw
ZXMpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3ByaXZpbGVnZWQtYXBpL2FkZC1idWlsZC1yZXF1ZXN0cy5w
aHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3ByaXZpbGVnZWQtYXBpL2FkZC1i
dWlsZC1yZXF1ZXN0cy5waHAKaW5kZXggOTU3YTlmNDczMTQ1NzA1ZmFjNTIyZGI3Mjk1Y2NiODA3
YzI0NGNhNy4uNjZhNjlmYTU5ZDkwMjhhYTJkMWViZmYzYTU3M2YzNmI0ZmZmOGRmNSAxMDA2NDQK
LS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9hZGQt
YnVpbGQtcmVxdWVzdHMucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
cHJpdmlsZWdlZC1hcGkvYWRkLWJ1aWxkLXJlcXVlc3RzLnBocApAQCAtMzEsMTYgKzMxLDE2IEBA
IGZ1bmN0aW9uIG1haW4oKSB7CiAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignTm9UZXN0aW5nQnVp
bGRSZXF1ZXN0cycpOwogCiAgICAgJHJlcGV0aXRpb25fdHlwZSA9ICR0ZXN0X2dyb3VwWyd0ZXN0
Z3JvdXBfcmVwZXRpdGlvbl90eXBlJ107Ci0gICAgYXNzZXJ0KGluX2FycmF5KCRyZXBldGl0aW9u
X3R5cGUsIFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddKSk7Ci0gICAgJGlzX2FsdGVybmF0
aW5nX3R5cGUgPSAkcmVwZXRpdGlvbl90eXBlID09ICdhbHRlcm5hdGluZyc7Ci0gICAgaWYgKCRp
c19hbHRlcm5hdGluZ190eXBlICYmICRjb21taXRfc2V0X2lkKQotICAgICAgICBleGl0X3dpdGhf
ZXJyb3IoJ0NvbW1pdFNldE5vdFN1cHBvcnRlZEZvckFsdGVybmF0aW5nUmVwZXRpdGlvblR5cGUn
KTsKKyAgICBhc3NlcnQoaW5fYXJyYXkoJHJlcGV0aXRpb25fdHlwZSwgWydhbHRlcm5hdGluZycs
ICdzZXF1ZW50aWFsJywgJ3BhcmFsbGVsJ10pKTsKKyAgICAkaXNfc2VxdWVudGlhbF90eXBlID0g
JHJlcGV0aXRpb25fdHlwZSA9PSAnc2VxdWVudGlhbCc7CisgICAgaWYgKCEkaXNfc2VxdWVudGlh
bF90eXBlICYmICRjb21taXRfc2V0X2lkKQorICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ0NvbW1p
dFNldE5vdFN1cHBvcnRlZEZvck5vblNlcXVlbnRpYWxSZXBldGl0aW9uVHlwZScpOwogCiAgICAg
JGV4aXN0aW5nX3Rlc3RfdHlwZV9idWlsZF9yZXF1ZXN0cyA9IGFycmF5X2ZpbHRlcigkZXhpc3Rp
bmdfYnVpbGRfcmVxdWVzdHMsIGZ1bmN0aW9uKCRidWlsZF9yZXF1ZXN0KSB7CiAgICAgICAgIHJl
dHVybiAkYnVpbGRfcmVxdWVzdFsncmVxdWVzdF9vcmRlciddID49IDA7CiAgICAgfSk7CiAKLSAg
ICBpZiAoJGlzX2FsdGVybmF0aW5nX3R5cGUpCisgICAgaWYgKCEkaXNfc2VxdWVudGlhbF90eXBl
KQogICAgICAgICBhZGRfYWx0ZXJuYXRpbmdfYnVpbGRfcmVxdWVzdHMoJGRiLCAkZXhpc3Rpbmdf
dGVzdF90eXBlX2J1aWxkX3JlcXVlc3RzLCAkYWRkaXRpb25hbF9idWlsZF9yZXF1ZXN0X2NvdW50
LCAkY3VycmVudF9vcmRlcik7CiAgICAgZWxzZSB7CiAgICAgICAgIGlmICgkY29tbWl0X3NldF9p
ZCkKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdl
ZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzay5waHAKaW5kZXggMmRj
NzQ3Y2JkZTI2NzllM2Y5NmFkNTkwMGIwNmRmMzJhMzc4ZTFhMy4uYjU1OGJhMDIxZmMyYjViYjk3
MmNjMGM1ODMwMjlhZmE1OWVkNjE4MSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzay5waHAKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5h
bHlzaXMtdGFzay5waHAKQEAgLTIxLDcgKzIxLDcgQEAgZnVuY3Rpb24gbWFpbigpIHsKICAgICBp
ZiAoISRuYW1lKQogICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ01pc3NpbmdOYW1lJywgYXJyYXko
J25hbWUnID0+ICRuYW1lKSk7CiAKLSAgICBpZiAoIWluX2FycmF5KCRyZXBldGl0aW9uX3R5cGUs
IGFycmF5KCdhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJykpKQorICAgIGlmICghaW5fYXJyYXko
JHJlcGV0aXRpb25fdHlwZSwgYXJyYXkoJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnLCAncGFy
YWxsZWwnKSkpCiAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignSW52YWxpZFJlcGV0aXRpb25UeXBl
JywgYXJyYXkoJ3JlcGV0aXRpb25UeXBlJyA9PiAkcmVwZXRpdGlvbl90eXBlKSk7CiAKICAgICAk
cmFuZ2UgPSB2YWxpZGF0ZV9hcmd1bWVudHMoJGRhdGEsIGFycmF5KCdzdGFydFJ1bicgPT4gJ2lu
dCcsICdlbmRSdW4nID0+ICdpbnQnKSk7CkBAIC04Niw2ICs4NiwxMCBAQCBmdW5jdGlvbiBtYWlu
KCkgewogICAgICAgICAgICAgJGRiLT5yb2xsYmFja190cmFuc2FjdGlvbigpOwogICAgICAgICAg
ICAgZXhpdF93aXRoX2Vycm9yKCdJbmNvbnNpc3RlbnRQbGF0Zm9ybScsIGFycmF5KCdjb25maWdQ
bGF0Zm9ybScgPT4gJGNvbmZpZ1snY29uZmlnX3BsYXRmb3JtJ10sICd0YXNrUGxhdGZvcm0nID0+
ICR0cmlnZ2VyYWJsZVsncGxhdGZvcm0nXSkpOwogICAgICAgICB9CisgICAgICAgIGlmICghaW5f
YXJyYXkoJHJlcGV0aXRpb25fdHlwZSwgJHRyaWdnZXJhYmxlWydzdXBwb3J0ZWRSZXBldGl0aW9u
VHlwZXMnXSkpIHsKKyAgICAgICAgICAgICRkYi0+cm9sbGJhY2tfdHJhbnNhY3Rpb24oKTsKKyAg
ICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignVW5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZScsIGFy
cmF5KCdyZXBldGl0aW9uVHlwZScgPT4gJHJlcGV0aXRpb25fdHlwZSkpOworICAgICAgICB9CiAg
ICAgICAgICR0cmlnZ2VyYWJsZV9pZCA9ICR0cmlnZ2VyYWJsZVsnaWQnXTsKICAgICAgICAgJHRl
c3RfaWQgPSAkdHJpZ2dlcmFibGVbJ3Rlc3QnXTsKICAgICAgICAgJGNvbW1pdF9zZXRzID0gY29t
bWl0X3NldHNfZnJvbV9yZXZpc2lvbl9zZXRzKCRkYiwgJHRyaWdnZXJhYmxlX2lkLCAkcmV2aXNp
b25fc2V0X2xpc3QpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91cC5waHAgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwLnBocAppbmRl
eCBkMjNiMmZmOTY2ODFjOGZhODhlYzBmOTczZDEwZWJmZjM3Mjg4ODUzLi5iN2Q1MDcyOGRmMzZl
MmQzZjhkNWRjYjViYmExNDU1MDFjM2Y5YWY2IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwLnBocAorKysg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10
ZXN0LWdyb3VwLnBocApAQCAtNDMsMTAgKzQzLDExIEBAIGZ1bmN0aW9uIG1haW4oKQogICAgIGVs
c2UgaWYgKCRyZXBldGl0aW9uX2NvdW50IDwgMSkKICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdJ
bnZhbGlkUmVwZXRpdGlvbkNvdW50JywgYXJyYXkoJ3JlcGV0aXRpb25Db3VudCcgPT4gJHJlcGV0
aXRpb25fY291bnQpKTsKIAotICAgIGlmICghaW5fYXJyYXkoJHJlcGV0aXRpb25fdHlwZSwgYXJy
YXkoJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnKSkpCisgICAgaWYgKCFpbl9hcnJheSgkcmVw
ZXRpdGlvbl90eXBlLCBhcnJheSgnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCcsICdwYXJhbGxl
bCcpKSkKICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdJbnZhbGlkUmVwZXRpdGlvblR5cGUnLCBh
cnJheSgncmVwZXRpdGlvblR5cGUnID0+ICRyZXBldGl0aW9uX3R5cGUpKTsKIAogICAgICR0cmln
Z2VyYWJsZV9pZCA9IE5VTEw7CisgICAgJHN1cHBvcnRlZF9yZXBldGl0aW9uX3R5cGVzID0gTlVM
TDsKICAgICBpZiAoJHRhc2tfaWQpIHsKICAgICAgICAgJHRhc2sgPSAkZGItPnNlbGVjdF9maXJz
dF9yb3coJ2FuYWx5c2lzX3Rhc2tzJywgJ3Rhc2snLCBhcnJheSgnaWQnID0+ICR0YXNrX2lkKSk7
CiAgICAgICAgIGlmICghJHRhc2spCkBAIC01OSw2ICs2MCw3IEBAIGZ1bmN0aW9uIG1haW4oKQog
ICAgICAgICAkdHJpZ2dlcmFibGUgPSBmaW5kX3RyaWdnZXJhYmxlX2Zvcl90YXNrKCRkYiwgJHRh
c2tfaWQpOwogICAgICAgICBpZiAoJHRyaWdnZXJhYmxlKSB7CiAgICAgICAgICAgICAkdHJpZ2dl
cmFibGVfaWQgPSAkdHJpZ2dlcmFibGVbJ2lkJ107CisgICAgICAgICAgICAkc3VwcG9ydGVkX3Jl
cGV0aXRpb25fdHlwZXMgPSAkdHJpZ2dlcmFibGVbJ3N1cHBvcnRlZFJlcGV0aXRpb25UeXBlcydd
OwogICAgICAgICAgICAgaWYgKCEkcGxhdGZvcm1faWQgJiYgISR0ZXN0X2lkKSB7CiAgICAgICAg
ICAgICAgICAgJHBsYXRmb3JtX2lkID0gJHRyaWdnZXJhYmxlWydwbGF0Zm9ybSddOwogICAgICAg
ICAgICAgICAgICR0ZXN0X2lkID0gJHRyaWdnZXJhYmxlWyd0ZXN0J107CkBAIC03MywxMyArNzUs
MjEgQEAgZnVuY3Rpb24gbWFpbigpCiAgICAgaWYgKCEkdHJpZ2dlcmFibGVfaWQgJiYgJHBsYXRm
b3JtX2lkICYmICR0ZXN0X2lkKSB7CiAgICAgICAgICR0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9u
ID0gJGRiLT5zZWxlY3RfZmlyc3Rfcm93KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsICd0
cmlnY29uZmlnJywKICAgICAgICAgICAgIGFycmF5KCd0ZXN0JyA9PiAkdGVzdF9pZCwgJ3BsYXRm
b3JtJyA9PiAkcGxhdGZvcm1faWQpKTsKLSAgICAgICAgaWYgKCR0cmlnZ2VyYWJsZV9jb25maWd1
cmF0aW9uKQorICAgICAgICBpZiAoJHRyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb24pIHsKICAgICAg
ICAgICAgICR0cmlnZ2VyYWJsZV9pZCA9ICR0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uWyd0cmln
Y29uZmlnX3RyaWdnZXJhYmxlJ107CisgICAgICAgICAgICAkc3VwcG9ydGVkX3JlcGV0aXRpb25f
dHlwZXMgPSBhcnJheSgpOworICAgICAgICAgICAgJHJvd3MgPSAkZGItPnNlbGVjdF9yb3dzKCd0
cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMnLCBOVUxMLCBhcnJheSgn
Y29uZmlncmVwZXRpdGlvbl9jb25maWcnID0+ICR0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uWyd0
cmlnY29uZmlnX2lkJ10pKTsKKyAgICAgICAgICAgIGZvcmVhY2ggKCRyb3dzIGFzICRyb3cpCisg
ICAgICAgICAgICAgICAgYXJyYXlfcHVzaCgkc3VwcG9ydGVkX3JlcGV0aXRpb25fdHlwZXMsICRy
b3dbJ2NvbmZpZ3JlcGV0aXRpb25fdHlwZSddKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGlm
ICghJHRyaWdnZXJhYmxlX2lkKQogICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ1RyaWdnZXJhYmxl
Tm90Rm91bmRGb3JUYXNrJywgYXJyYXkoJ3Rhc2snID0+ICR0YXNrX2lkLCAncGxhdGZvcm0nID0+
ICRwbGF0Zm9ybV9pZCwgJ3Rlc3QnID0+ICR0ZXN0X2lkKSk7CiAKKyAgICBpZiAoIWluX2FycmF5
KCRyZXBldGl0aW9uX3R5cGUsICRzdXBwb3J0ZWRfcmVwZXRpdGlvbl90eXBlcykpCisgICAgICAg
IGV4aXRfd2l0aF9lcnJvcignVW5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZScsIGFycmF5KCdyZXBl
dGl0aW9uVHlwZScgPT4gJHJlcGV0aXRpb25fdHlwZSkpOworCiAgICAgaWYgKCRyZXZpc2lvbl9z
ZXRfbGlzdCkKICAgICAgICAgJGNvbW1pdF9zZXRzID0gY29tbWl0X3NldHNfZnJvbV9yZXZpc2lv
bl9zZXRzKCRkYiwgJHRyaWdnZXJhYmxlX2lkLCAkcmV2aXNpb25fc2V0X2xpc3QpOwogICAgIGVs
c2UgLy8gVjIgVUkgY29tcGF0aWJpbGl0eQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL2N1c3RvbS1jb25maWd1cmF0aW9uLXRlc3QtZ3Jv
dXAtZm9ybS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50
cy9jdXN0b20tY29uZmlndXJhdGlvbi10ZXN0LWdyb3VwLWZvcm0uanMKaW5kZXggNTU5OGZkZDBi
ZGMzOTRkYjZlZDE4ZTVkYmQ0ZTBjNTBkYTkzMzE1OS4uZDk3MDg0ODQ3OTk3YWZiYmE4NzIyNGU0
Yzc1NGFkMzljYWNkOGVmOSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9jb21wb25lbnRzL2N1c3RvbS1jb25maWd1cmF0aW9uLXRlc3QtZ3JvdXAtZm9ybS5q
cworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY3Vz
dG9tLWNvbmZpZ3VyYXRpb24tdGVzdC1ncm91cC1mb3JtLmpzCkBAIC0zOCw3ICszOCw3IEBAIGNs
YXNzIEN1c3RvbUNvbmZpZ3VyYXRpb25UZXN0R3JvdXBGb3JtIGV4dGVuZHMgVGVzdEdyb3VwRm9y
bSB7CiAgICAgICAgIGNvbnN0IGNvbW1pdFNldHMgPSBjb25maWd1cmF0b3IuY29tbWl0U2V0cygp
OwogICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IGNvbmZpZ3VyYXRvci5wbGF0Zm9ybSgpOwogICAg
ICAgICBjb25zdCB0ZXN0ID0gY29uZmlndXJhdG9yLnRlc3RzKClbMF07IC8vIEZJWE1FOiBBZGQg
dGhlIHN1cHBvcnQgZm9yIHNwZWNpZnlpbmcgbXVsdGlwbGUgdGVzdHMuCi0gICAgICAgIGNvbnN0
IHJlcGV0aXRpb25UeXBlID0gdGhpcy5jb250ZW50KCdyZXBldGl0aW9uLXR5cGUnKS52YWx1ZTsK
KyAgICAgICAgY29uc3QgcmVwZXRpdGlvblR5cGUgPSB0aGlzLnBhcnQoJ3JlcGV0aXRpb24tdHlw
ZS1zZWxlY3Rpb24nKS5zZWxlY3RlZFJlcGV0aXRpb25UeXBlOwogICAgICAgICBjb25zb2xlLmFz
c2VydCghIXRoaXMuX2hhc1Rhc2sgPT09ICF0YXNrTmFtZSk7CiAgICAgICAgIGlmICghdGhpcy5f
aGFzVGFzaykKICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3N0YXJ0VGVzdGluZycs
IHRlc3RHcm91cE5hbWUsIHRoaXMuX3JlcGV0aXRpb25Db3VudCwgcmVwZXRpdGlvblR5cGUsIGNv
bW1pdFNldHMsIHBsYXRmb3JtLCB0ZXN0LCB0aGlzLl9ub3RpZnlPbkNvbXBsZXRpb24sIHRhc2tO
YW1lKTsKQEAgLTQ5LDggKzQ5LDE1IEBAIGNsYXNzIEN1c3RvbUNvbmZpZ3VyYXRpb25UZXN0R3Jv
dXBGb3JtIGV4dGVuZHMgVGVzdEdyb3VwRm9ybSB7CiAgICAgZGlkQ29uc3RydWN0U2hhZG93VHJl
ZSgpCiAgICAgewogICAgICAgICBzdXBlci5kaWRDb25zdHJ1Y3RTaGFkb3dUcmVlKCk7Ci0KLSAg
ICAgICAgdGhpcy5wYXJ0KCdjb25maWd1cmF0b3InKS5saXN0ZW5Ub0FjdGlvbigndGVzdENvbmZp
Z0NoYW5nZScsICgpID0+IHRoaXMuZW5xdWV1ZVRvUmVuZGVyKCkpOworICAgICAgICBjb25zdCBj
b25maWd1cmF0b3IgPSB0aGlzLnBhcnQoJ2NvbmZpZ3VyYXRvcicpOworICAgICAgICBjb25maWd1
cmF0b3IubGlzdGVuVG9BY3Rpb24oJ3Rlc3RDb25maWdDaGFuZ2UnLCAoKSA9PiB7CisgICAgICAg
ICAgICBjb25zdCB0ZXN0cyA9IGNvbmZpZ3VyYXRvci50ZXN0cygpOworICAgICAgICAgICAgY29u
c3QgcGxhdGZvcm0gPSBjb25maWd1cmF0b3IucGxhdGZvcm0oKTsKKyAgICAgICAgICAgIGlmIChw
bGF0Zm9ybSAmJiB0ZXN0cy5sZW5ndGgpCisgICAgICAgICAgICAgICAgdGhpcy5zZXRUZXN0QW5k
UGxhdGZvcm0odGVzdHNbMF0sIHBsYXRmb3JtKTsKKworICAgICAgICAgICAgdGhpcy5lbnF1ZXVl
VG9SZW5kZXIoKTsKKyAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5jb250ZW50KCd0YXNrLW5h
bWUnKS5vbmlucHV0ID0gKCkgPT4gdGhpcy5lbnF1ZXVlVG9SZW5kZXIoKTsKICAgICAgICAgdGhp
cy5jb250ZW50KCdncm91cC1uYW1lJykub25pbnB1dCA9ICgpID0+IHRoaXMuZW5xdWV1ZVRvUmVu
ZGVyKCk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2Nv
bXBvbmVudHMvY3VzdG9taXphYmxlLXRlc3QtZ3JvdXAtZm9ybS5qcyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b21pemFibGUtdGVzdC1ncm91cC1m
b3JtLmpzCmluZGV4IDkyOWMxYmEyZjg0ZDYxOGQ3YmNjMjRiNjM0MGJhYWEyODEzN2Y2YmUuLjMz
YzU3ZjhjMjE3MzQxZGQ1YmMxOGYwNmUzZTM1MWMxMzUyZjZmMzQgMTAwNjQ0Ci0tLSBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b21pemFibGUtdGVz
dC1ncm91cC1mb3JtLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMv
Y29tcG9uZW50cy9jdXN0b21pemFibGUtdGVzdC1ncm91cC1mb3JtLmpzCkBAIC0yNyw3ICsyNyw3
IEBAIGNsYXNzIEN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm0gZXh0ZW5kcyBUZXN0R3JvdXBGb3Jt
IHsKIAogICAgIHN0YXJ0VGVzdGluZygpCiAgICAgewotICAgICAgICBjb25zdCByZXBldGl0aW9u
VHlwZSA9IHRoaXMuY29udGVudCgncmVwZXRpdGlvbi10eXBlJykudmFsdWU7CisgICAgICAgIGNv
bnN0IHJlcGV0aXRpb25UeXBlID0gdGhpcy5wYXJ0KCdyZXBldGl0aW9uLXR5cGUtc2VsZWN0aW9u
Jykuc2VsZWN0ZWRSZXBldGl0aW9uVHlwZTsKICAgICAgICAgdGhpcy5kaXNwYXRjaEFjdGlvbign
c3RhcnRUZXN0aW5nJywgdGhpcy5fbmFtZSwgdGhpcy5fcmVwZXRpdGlvbkNvdW50LCByZXBldGl0
aW9uVHlwZSwKICAgICAgICAgICAgIHRoaXMuX2NvbXB1dGVDb21taXRTZXRNYXAoKSwgdGhpcy5f
bm90aWZ5T25Db21wbGV0aW9uKTsKICAgICB9CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvcmVwZXRpdGlvbi10eXBlLXNlbGVjdGlvbi5q
cyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9yZXBldGl0
aW9uLXR5cGUtc2VsZWN0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1ZWJjM2Q0N2Y4ZDhhMmZjM2E2YzFl
ZGMwNzcwYjU0ZmYzNzYwMDcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvcmVwZXRpdGlvbi10eXBlLXNlbGVjdGlvbi5qcwpA
QCAtMCwwICsxLDcwIEBACitjbGFzcyBSZXBldGl0aW9uVHlwZVNlbGVjdGlvbiBleHRlbmRzIENv
bXBvbmVudEJhc2UgeworICAgICN0cmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb247CisgICAgI3NlbGVj
dGVkUmVwZXRpdGlvblR5cGU7CisgICAgI3JlbmRlclJlcGV0aXRpb25UeXBlTGlzdExhemlseTsK
KworICAgIGNvbnN0cnVjdG9yKCkKKyAgICB7CisgICAgICAgIHN1cGVyKCdyZXBldGl0aW9uLXR5
cGUtc2VsZWN0aW9uJyk7CisgICAgICAgIHRoaXMuI3NlbGVjdGVkUmVwZXRpdGlvblR5cGUgPSBu
dWxsOworICAgICAgICB0aGlzLiN0cmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24gPSBudWxsOworICAg
ICAgICB0aGlzLiNyZW5kZXJSZXBldGl0aW9uVHlwZUxpc3RMYXppbHkgPSBuZXcgTGF6aWx5RXZh
bHVhdGVkRnVuY3Rpb24odGhpcy5fcmVuZGVyUmVwZXRpdGlvblR5cGVMaXN0LmJpbmQodGhpcykp
OworICAgIH0KKworICAgIGRpZENvbnN0cnVjdFNoYWRvd1RyZWUoKQorICAgIHsKKyAgICAgICAg
Y29uc3QgcmVwZXRpdGlvblR5cGUgPSB0aGlzLmNvbnRlbnQoJ3JlcGV0aXRpb24tdHlwZScpOwor
ICAgICAgICByZXBldGl0aW9uVHlwZS5vbmNoYW5nZSA9ICgpID0+IHRoaXMuI3NlbGVjdGVkUmVw
ZXRpdGlvblR5cGUgPSByZXBldGl0aW9uVHlwZS52YWx1ZTsKKyAgICB9CisKKyAgICBnZXQgc2Vs
ZWN0ZWRSZXBldGl0aW9uVHlwZSgpIHsgcmV0dXJuIHRoaXMuI3NlbGVjdGVkUmVwZXRpdGlvblR5
cGU7IH0KKyAgICBzZXQgc2VsZWN0ZWRSZXBldGl0aW9uVHlwZShyZXBldGl0aW9uVHlwZSkKKyAg
ICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuI3RyaWdnZXJhYmxlQ29uZmlndXJhdGlv
bi5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMuaW5jbHVkZXMocmVwZXRpdGlvblR5cGUpKTsKKyAg
ICAgICAgdGhpcy4jc2VsZWN0ZWRSZXBldGl0aW9uVHlwZSA9IHJlcGV0aXRpb25UeXBlOworICAg
IH0KKworICAgIHNldCBkaXNhYmxlZCh2YWx1ZSkge3RoaXMuY29udGVudCgncmVwZXRpdGlvbi10
eXBlJykuZGlzYWJsZWQgPSB2YWx1ZTt9CisKKyAgICBzZXRUZXN0QW5kUGxhdGZvcm0odGVzdCwg
cGxhdGZvcm0pCisgICAgeworICAgICAgICB0aGlzLiN0cmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24g
PSBUcmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24uZmluZEJ5VGVzdEFuZFBsYXRmb3JtKHRlc3QsIHBs
YXRmb3JtKTsKKyAgICAgICAgaWYgKHRoaXMuI3RyaWdnZXJhYmxlQ29uZmlndXJhdGlvbiAmJiAh
dGhpcy4jdHJpZ2dlcmFibGVDb25maWd1cmF0aW9uLnN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcy5p
bmNsdWRlcyh0aGlzLiNzZWxlY3RlZFJlcGV0aXRpb25UeXBlKSkKKyAgICAgICAgICAgIHRoaXMu
I3NlbGVjdGVkUmVwZXRpdGlvblR5cGUgPSB0aGlzLiN0cmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24u
c3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzWzBdOworICAgIH0KKworICAgIGxhYmVsRm9yUmVwZXRp
dGlvblR5cGUocmVwZXRpdGlvblR5cGUpCisgICAgeworICAgICAgICByZXR1cm4geworICAgICAg
ICAgICAgJ2FsdGVybmF0aW5nJzogJ2FsdGVybmF0aW5nIChBQkFCKScsCisgICAgICAgICAgICAn
c2VxdWVudGlhbCc6ICdzZXF1ZW50aWFsIChBQUJCKScsCisgICAgICAgICAgICAncGFyYWxsZWwn
OiAncGFyYWxsZWwnLAorICAgICAgICB9W3JlcGV0aXRpb25UeXBlXTsKKyAgICB9CisKKyAgICBy
ZW5kZXIoKQorICAgIHsKKyAgICAgICAgc3VwZXIucmVuZGVyKCk7CisgICAgICAgIGlmICghdGhp
cy4jdHJpZ2dlcmFibGVDb25maWd1cmF0aW9uKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB0aGlzLiNyZW5kZXJSZXBldGl0aW9uVHlwZUxpc3RMYXppbHkuZXZhbHVhdGUodGhpcy4jdHJp
Z2dlcmFibGVDb25maWd1cmF0aW9uLnN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcywgdGhpcy4jc2Vs
ZWN0ZWRSZXBldGl0aW9uVHlwZSk7CisgICAgfQorCisgICAgX3JlbmRlclJlcGV0aXRpb25UeXBl
TGlzdChzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMsIHNlbGVjdGVkUmVwZXRpdGlvblR5cGUpCisg
ICAgeworICAgICAgICB0aGlzLnJlbmRlclJlcGxhY2UodGhpcy5jb250ZW50KCdyZXBldGl0aW9u
LXR5cGUnKSwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzLm1hcCgocmVwZXRpdGlvblR5cGUpID0+
CisgICAgICAgICAgICB0aGlzLmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicse3NlbGVjdGVkOiByZXBl
dGl0aW9uVHlwZSA9PSBzZWxlY3RlZFJlcGV0aXRpb25UeXBlLCB2YWx1ZTogcmVwZXRpdGlvblR5
cGV9LAorICAgICAgICAgICAgICAgIHRoaXMubGFiZWxGb3JSZXBldGl0aW9uVHlwZShyZXBldGl0
aW9uVHlwZSkpCisgICAgICAgICkpOworICAgIH0KKworICAgIHN0YXRpYyBodG1sVGVtcGxhdGUo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGAKKyAgICAgICAgICAgIDxzZWxlY3QgaWQ9InJlcGV0
aXRpb24tdHlwZSI+CisgICAgICAgICAgICA8L3NlbGVjdD4KKyAgICAgICAgYDsKKyAgICB9Cit9
CisKK0NvbXBvbmVudEJhc2UuZGVmaW5lRWxlbWVudCgncmVwZXRpdGlvbi10eXBlLXNlbGVjdGlv
bicsIFJlcGV0aXRpb25UeXBlU2VsZWN0aW9uKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVu
dHMvdGVzdC1ncm91cC1mb3JtLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9jb21wb25lbnRzL3Rlc3QtZ3JvdXAtZm9ybS5qcwppbmRleCA4MzViNjA3ODEzZTU4NmVkZjdj
ODIwNTEzMDNkOWEzMWU2YTllOWZkLi45OWY0MGEzZjFlNGVkZGQ0NDVkMzU1NWY5YzBjMzAzMjhj
ZDhlZDhmIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2Nv
bXBvbmVudHMvdGVzdC1ncm91cC1mb3JtLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvdjMvY29tcG9uZW50cy90ZXN0LWdyb3VwLWZvcm0uanMKQEAgLTE0LDYgKzE0LDEx
IEBAIGNsYXNzIFRlc3RHcm91cEZvcm0gZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsKICAgICAgICAg
dGhpcy5fcmVwZXRpdGlvbkNvdW50ID0gY291bnQ7CiAgICAgfQogCisgICAgc2V0VGVzdEFuZFBs
YXRmb3JtKHRlc3QsIHBsYXRmb3JtKQorICAgIHsKKyAgICAgICAgdGhpcy5wYXJ0KCdyZXBldGl0
aW9uLXR5cGUtc2VsZWN0aW9uJykuc2V0VGVzdEFuZFBsYXRmb3JtKHRlc3QsIHBsYXRmb3JtKTsK
KyAgICB9CisKICAgICBkaWRDb25zdHJ1Y3RTaGFkb3dUcmVlKCkKICAgICB7CiAgICAgICAgIGNv
bnN0IHJlcGV0aXRpb25Db3VudFNlbGVjdCA9IHRoaXMuY29udGVudCgncmVwZXRpdGlvbi1jb3Vu
dCcpOwpAQCAtMjUsOSArMzAsMTUgQEAgY2xhc3MgVGVzdEdyb3VwRm9ybSBleHRlbmRzIENvbXBv
bmVudEJhc2UgewogICAgICAgICB0aGlzLmNvbnRlbnQoJ2Zvcm0nKS5vbnN1Ym1pdCA9IHRoaXMu
Y3JlYXRlRXZlbnRIYW5kbGVyKCgpID0+IHRoaXMuc3RhcnRUZXN0aW5nKCkpOwogICAgIH0KIAor
ICAgIHJlbmRlcigpCisgICAgeworICAgICAgICBzdXBlci5yZW5kZXIoKTsKKyAgICAgICAgdGhp
cy5wYXJ0KCdyZXBldGl0aW9uLXR5cGUtc2VsZWN0aW9uJykuZW5xdWV1ZVRvUmVuZGVyKCk7Cisg
ICAgfQorCiAgICAgc3RhcnRUZXN0aW5nKCkKICAgICB7Ci0gICAgICAgIGNvbnN0IHJlcGV0aXRp
b25UeXBlID0gdGhpcy5jb250ZW50KCdyZXBldGl0aW9uLXR5cGUnKS52YWx1ZTsKKyAgICAgICAg
Y29uc3QgcmVwZXRpdGlvblR5cGUgPSB0aGlzLnBhcnQoJ3JlcGV0aXRpb24tdHlwZS1zZWxlY3Rp
b24nKS5zZWxlY3RlZFJlcGV0aXRpb25UeXBlOwogICAgICAgICB0aGlzLmRpc3BhdGNoQWN0aW9u
KCdzdGFydFRlc3RpbmcnLCB0aGlzLl9yZXBldGl0aW9uQ291bnQsIHJlcGV0aXRpb25UeXBlLCB0
aGlzLl9ub3RpZnlPbkNvbXBsZXRpb24pOwogICAgIH0KIApAQCAtNjcsMTAgKzc4LDcgQEAgY2xh
c3MgVGVzdEdyb3VwRm9ybSBleHRlbmRzIENvbXBvbmVudEJhc2UgewogICAgICAgICAgICAgICAg
IDxvcHRpb24+MTA8L29wdGlvbj4KICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICAg
PGxhYmVsPml0ZXJhdGlvbnMgcGVyIHNldCBpbjwvbGFiZWw+Ci0gICAgICAgICAgICA8c2VsZWN0
IGlkPSJyZXBldGl0aW9uLXR5cGUiPgotICAgICAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQg
dmFsdWU9ImFsdGVybmF0aW5nIj5hbHRlcm5hdGUgKEFCQUIpPC9vcHRpb24+Ci0gICAgICAgICAg
ICAgICAgPG9wdGlvbiB2YWx1ZT0ic2VxdWVudGlhbCI+c2VxdWVuY2UgKEFBQkIpPC9vcHRpb24+
Ci0gICAgICAgICAgICA8L3NlbGVjdD4KKyAgICAgICAgICAgIDxyZXBldGl0aW9uLXR5cGUtc2Vs
ZWN0aW9uIGlkPSJyZXBldGl0aW9uLXR5cGUtc2VsZWN0aW9uIj48L3JlcGV0aXRpb24tdHlwZS1z
ZWxlY3Rpb24+CiAgICAgICAgICAgICA8aW5wdXQgaWQ9Im5vdGlmeS1vbi1jb21wbGV0aW9uLWNo
ZWNrYm94IiB0eXBlPSJjaGVja2JveCIgY2hlY2tlZC8+Tm90aWZ5IG9uIGNvbXBsZXRpb24KICAg
ICAgICAgYDsKICAgICB9CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL2luZGV4Lmh0bWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2lu
ZGV4Lmh0bWwKaW5kZXggZjUzMTAwM2VkNWU2NzM1MDllNDM3ZTQ4MTFiYjA5ZjhhYzMzNzJkMy4u
ZDUwNTUyMTgyM2QwZGM1ZTk3YTc4MTU3MjI5YmI4M2ZiMWVkMWM4YiAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9pbmRleC5odG1sCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvaW5kZXguaHRtbApAQCAtMTA1LDYgKzEwNSw3IEBA
IFJ1biB0b29scy9idW5kbGUtdjMtc2NyaXB0cyB0byBzcGVlZCB1cCB0aGUgbG9hZCB0aW1lIGZv
ciBwcm9kdWN0aW9uLmApOwogICAgICAgICA8c2NyaXB0IHNyYz0iY29tcG9uZW50cy9wbHVzLWJ1
dHRvbi5qcyI+PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQgc3JjPSJjb21wb25lbnRzL21pbnVz
LWJ1dHRvbi5qcyI+PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQgc3JjPSJjb21wb25lbnRzL2Nv
bWJvLWJveC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJjb21wb25lbnRzL3Jl
cGV0aXRpb24tdHlwZS1zZWxlY3Rpb24uanMiPjwvc2NyaXB0PgogCiAgICAgICAgIDxzY3JpcHQg
c3JjPSJwYWdlcy9wYWdlLmpzIj48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBzcmM9InBhZ2Vz
L3BhZ2Utcm91dGVyLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL21hbmlmZXN0LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9tb2RlbHMvbWFuaWZlc3QuanMKaW5kZXggOWRkZDUxNDczYjcyY2Q3
NGQ3MTJiYjNkYjk3YmZmZWE4YmE1M2JmMS4uYmFlYThjODlhODQwOWQ5YTdkYThkZjdhOGNiYmMy
MzJkN2Q2MzMyZiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9tb2RlbHMvbWFuaWZlc3QuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9tb2RlbHMvbWFuaWZlc3QuanMKQEAgLTE2LDYgKzE2LDcgQEAgY2xhc3MgTWFuaWZlc3Qg
ewogICAgICAgICBUZXN0LmNsZWFyU3RhdGljTWFwKCk7CiAgICAgICAgIFRlc3RHcm91cC5jbGVh
clN0YXRpY01hcCgpOwogICAgICAgICBUcmlnZ2VyYWJsZS5jbGVhclN0YXRpY01hcCgpOworICAg
ICAgICBUcmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24uY2xlYXJTdGF0aWNNYXAoKTsKICAgICAgICAg
VHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuY2xlYXJTdGF0aWNNYXAoKTsKICAgICAgICAgVXBs
b2FkZWRGaWxlLmNsZWFyU3RhdGljTWFwKCk7CiAgICAgICAgIEJ1Z1RyYWNrZXIuY2xlYXJTdGF0
aWNNYXAoKTsKQEAgLTg3LDggKzg4LDkgQEAgY2xhc3MgTWFuaWZlc3QgewogICAgICAgICAgICAg
ICAgIHJldHVybiBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5lbnN1cmVTaW5nbGV0b24oZ3Jv
dXAuaWQsIGdyb3VwKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgcmF3LmNvbmZpZ3Vy
YXRpb25zID0gcmF3LmNvbmZpZ3VyYXRpb25zLm1hcCgoY29uZmlndXJhdGlvbikgPT4gewotICAg
ICAgICAgICAgICAgIGNvbnN0IFt0ZXN0SWQsIHBsYXRmb3JtSWRdID0gY29uZmlndXJhdGlvbjsK
LSAgICAgICAgICAgICAgICByZXR1cm4ge3Rlc3Q6IFRlc3QuZmluZEJ5SWQodGVzdElkKSwgcGxh
dGZvcm06IFBsYXRmb3JtLmZpbmRCeUlkKHBsYXRmb3JtSWQpfTsKKyAgICAgICAgICAgICAgICBj
b25zdCBbdGVzdElkLCBwbGF0Zm9ybUlkLCB0cmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb25JZCwgc3Vw
cG9ydGVkUmVwZXRpdGlvblR5cGVzXSA9IGNvbmZpZ3VyYXRpb247CisgICAgICAgICAgICAgICAg
cmV0dXJuIHt0ZXN0OiBUZXN0LmZpbmRCeUlkKHRlc3RJZCksIHBsYXRmb3JtOiBQbGF0Zm9ybS5m
aW5kQnlJZChwbGF0Zm9ybUlkKSwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzLAorICAgICAgICAg
ICAgICAgICAgICBpZDogdHJpZ2dlcmFibGVDb25maWd1cmF0aW9uSWR9OwogICAgICAgICAgICAg
fSk7CiAgICAgICAgIH0pOwogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL3YzL21vZGVscy90ZXN0LWdyb3VwLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy92My9tb2RlbHMvdGVzdC1ncm91cC5qcwppbmRleCAzYTNjODg2MTZmYWYzMThkOGNi
ZjUyYTY3YTM3YjZkODlhNjU0M2Q1Li4yZDM4ZjE0OGUwN2UzYzI4YTMzNzY0YmEzODUzYjhmY2Vj
MmZhOWUyIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21v
ZGVscy90ZXN0LWdyb3VwLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
djMvbW9kZWxzL3Rlc3QtZ3JvdXAuanMKQEAgLTM0NCwxMCArMzQ0LDEwIEBAIGNsYXNzIFRlc3RH
cm91cCBleHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAg
ICAgIH0KIAotICAgICAgICBjb25zb2xlLmFzc2VydChbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRp
YWwnXS5pbmNsdWRlcyh0aGlzLnJlcGV0aXRpb25UeXBlKCkpKTsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQoVHJpZ2dlcmFibGVDb25maWd1cmF0aW9uLlJFUEVUSVRJT05fVFlQRVMuaW5jbHVkZXMo
dGhpcy5yZXBldGl0aW9uVHlwZSgpKSk7CiAgICAgICAgIGNvbnN0IHJlcGV0aXRpb25MaW1pdCA9
IG1heFJldHJ5RmFjdG9yICogdGhpcy5pbml0aWFsUmVwZXRpdGlvbkNvdW50KCk7Ci0gICAgICAg
IGNvbnN0IHtyZXRyeUNvdW50LCBzdG9wRnV0dXJlUmV0cmllc30gPSBhd2FpdCAodGhpcy5yZXBl
dGl0aW9uVHlwZSgpID09ICdhbHRlcm5hdGluZycgPwotICAgICAgICAgICAgdGhpcy5fY3JlYXRl
QWx0ZXJuYXRpbmdSZXRyaWVzRm9yVGVzdEdyb3VwKHJlcGV0aXRpb25MaW1pdCkgOiB0aGlzLl9j
cmVhdGVTZXF1ZW50aWFsUmV0cmllc0ZvclRlc3RHcm91cChyZXBldGl0aW9uTGltaXQpKTsKKyAg
ICAgICAgY29uc3Qge3JldHJ5Q291bnQsIHN0b3BGdXR1cmVSZXRyaWVzfSA9IGF3YWl0ICh0aGlz
LnJlcGV0aXRpb25UeXBlKCkgPT0gJ3NlcXVlbnRpYWwnID8KKyAgICAgICAgICAgIHRoaXMuX2Ny
ZWF0ZVNlcXVlbnRpYWxSZXRyaWVzRm9yVGVzdEdyb3VwKHJlcGV0aXRpb25MaW1pdCk6IHRoaXMu
X2NyZWF0ZUFsdGVybmF0aW5nUmV0cmllc0ZvclRlc3RHcm91cChyZXBldGl0aW9uTGltaXQpKTsK
IAogICAgICAgICBpZiAoc3RvcEZ1dHVyZVJldHJpZXMpCiAgICAgICAgICAgICBhd2FpdCB0aGlz
LmNsZWFyTWF5TmVlZE1vcmVCdWlsZFJlcXVlc3RzKCk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90cmlnZ2VyYWJsZS5qcyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3RyaWdnZXJhYmxlLmpzCmluZGV4IGQ1
ZmYzYzQ4YzMyOWY5YjRkNjhlODQyMDMwZDIwYmQyYTg3ZTVhOGQuLmZiYWY0NmQwZDkxMDlmYmM0
NjNmYTk5MTQ1OGRmZDE3NjBhMjU2YjIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3RyaWdnZXJhYmxlLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3RyaWdnZXJhYmxlLmpzCkBAIC03LDE1ICs3LDE5
IEBAIGNsYXNzIFRyaWdnZXJhYmxlIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgICAgIHRo
aXMuX2lzRGlzYWJsZWQgPSAhIW9iamVjdC5pc0Rpc2FibGVkOwogICAgICAgICB0aGlzLl9hY2Nl
cHRlZFJlcG9zaXRvcmllcyA9IG9iamVjdC5hY2NlcHRlZFJlcG9zaXRvcmllczsKICAgICAgICAg
dGhpcy5fcmVwb3NpdG9yeUdyb3VwcyA9IG9iamVjdC5yZXBvc2l0b3J5R3JvdXBzOwotICAgICAg
ICB0aGlzLl9jb25maWd1cmF0aW9uTGlzdCA9IG9iamVjdC5jb25maWd1cmF0aW9uczsKKyAgICAg
ICAgdGhpcy5fdHJpZ2dlcmFibGVDb25maWd1cmF0aW9uTGlzdCA9IFtdOwogICAgICAgICB0aGlz
Ll9hY2NlcHRlZFRlc3RzID0gbmV3IFNldDsKIAotICAgICAgICBjb25zdCBjb25maWd1cmF0aW9u
TWFwID0gdGhpcy5lbnN1cmVOYW1lZFN0YXRpY01hcCgndGVzdENvbmZpZ3VyYXRpb25zJyk7CiAg
ICAgICAgIGZvciAoY29uc3QgY29uZmlnIG9mIG9iamVjdC5jb25maWd1cmF0aW9ucykgewotICAg
ICAgICAgICAgY29uc3Qga2V5ID0gYCR7Y29uZmlnLnRlc3QuaWQoKX0tJHtjb25maWcucGxhdGZv
cm0uaWQoKX1gOwogICAgICAgICAgICAgdGhpcy5fYWNjZXB0ZWRUZXN0cy5hZGQoY29uZmlnLnRl
c3QpOwotICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoIShrZXkgaW4gY29uZmlndXJhdGlvbk1h
cCkpOwotICAgICAgICAgICAgY29uZmlndXJhdGlvbk1hcFtrZXldID0gdGhpczsKKworICAgICAg
ICAgICAgdGhpcy5fdHJpZ2dlcmFibGVDb25maWd1cmF0aW9uTGlzdC5wdXNoKAorICAgICAgICAg
ICAgICAgIFRyaWdnZXJhYmxlQ29uZmlndXJhdGlvbi5lbnN1cmVTaW5nbGV0b24oY29uZmlnLmlk
LCB7CisgICAgICAgICAgICAgICAgICAgIHRlc3Q6IGNvbmZpZy50ZXN0LAorICAgICAgICAgICAg
ICAgICAgICBwbGF0Zm9ybTogY29uZmlnLnBsYXRmb3JtLAorICAgICAgICAgICAgICAgICAgICBz
dXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IGNvbmZpZy5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMs
CisgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJhYmxlOiB0aGlzLAorICAgICAgICAgICAgfSkp
OwogICAgICAgICB9CiAgICAgfQogCkBAIC0yNywxNSArMzEsMTAgQEAgY2xhc3MgVHJpZ2dlcmFi
bGUgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKIAogICAgIHN0YXRpYyBmaW5kQnlUZXN0Q29uZmln
dXJhdGlvbih0ZXN0LCBwbGF0Zm9ybSkKICAgICB7Ci0gICAgICAgIGxldCBjb25maWd1cmF0aW9u
TWFwID0gdGhpcy5lbnN1cmVOYW1lZFN0YXRpY01hcCgndGVzdENvbmZpZ3VyYXRpb25zJyk7Ci0g
ICAgICAgIGlmICghY29uZmlndXJhdGlvbk1hcCkKKyAgICAgICAgY29uc3QgdHJpZ2dlcmFibGVD
b25maWd1cmF0aW9uID0gVHJpZ2dlcmFibGVDb25maWd1cmF0aW9uLmZpbmRCeVRlc3RBbmRQbGF0
Zm9ybSh0ZXN0LCBwbGF0Zm9ybSk7CisgICAgICAgIGlmICghdHJpZ2dlcmFibGVDb25maWd1cmF0
aW9uKQogICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIGZvciAoOyB0ZXN0OyB0ZXN0
ID0gdGVzdC5wYXJlbnRUZXN0KCkpIHsKLSAgICAgICAgICAgIGNvbnN0IGtleSA9IGAke3Rlc3Qu
aWQoKX0tJHtwbGF0Zm9ybS5pZCgpfWA7Ci0gICAgICAgICAgICBpZiAoa2V5IGluIGNvbmZpZ3Vy
YXRpb25NYXApCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNvbmZpZ3VyYXRpb25NYXBba2V5XTsK
LSAgICAgICAgfQotICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgcmV0dXJuIHRyaWdnZXJh
YmxlQ29uZmlndXJhdGlvbi50cmlnZ2VyYWJsZTsKICAgICB9CiAKICAgICBzdGF0aWMgdHJpZ2dl
cmFibGVQbGF0Zm9ybXNGb3JUZXN0cyh0ZXN0cykKQEAgLTUyLDYgKzUxLDQ3IEBAIGNsYXNzIFRy
aWdnZXJhYmxlIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgfQogfQogCisKK2NsYXNzIFRy
aWdnZXJhYmxlQ29uZmlndXJhdGlvbiBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CisgICAgc3Rh
dGljIFJFUEVUSVRJT05fVFlQRVMgPSBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnLCAncGFy
YWxsZWwnXTsKKyAgICAjdHJpZ2dlcmFibGU7CisgICAgI3Rlc3Q7CisgICAgI3BsYXRmb3JtOwor
ICAgICNzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM7CisKKyAgICBjb25zdHJ1Y3RvcihpZCwgb2Jq
ZWN0KQorICAgIHsKKyAgICAgICAgc3VwZXIoaWQpOworICAgICAgICB0aGlzLiN0cmlnZ2VyYWJs
ZSA9IG9iamVjdC50cmlnZ2VyYWJsZTsKKyAgICAgICAgdGhpcy4jdGVzdCA9IG9iamVjdC50ZXN0
OworICAgICAgICB0aGlzLiNwbGF0Zm9ybSA9IG9iamVjdC5wbGF0Zm9ybTsKKyAgICAgICAgY29u
c29sZS5hc3NlcnQob2JqZWN0LnN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcy5ldmVyeSgocmVwZXRp
dGlvblR5cGUpID0+IFRyaWdnZXJhYmxlQ29uZmlndXJhdGlvbi5SRVBFVElUSU9OX1RZUEVTLmlu
Y2x1ZGVzKHJlcGV0aXRpb25UeXBlKSkpCisgICAgICAgIHRoaXMuI3N1cHBvcnRlZFJlcGV0aXRp
b25UeXBlcyA9IG9iamVjdC5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM7CisKKyAgICAgICAgY29u
c3QgY29uZmlndXJhdGlvbk1hcCA9IHRoaXMuZW5zdXJlTmFtZWRTdGF0aWNNYXAoJ3RyaWdnZXJh
YmxlQ29uZmlndXJhdGlvbnMnKTsKKyAgICAgICAgY29uc3Qga2V5ID0gYCR7b2JqZWN0LnRlc3Qu
aWQoKX0tJHtvYmplY3QucGxhdGZvcm0uaWQoKX1gOworICAgICAgICBjb25zb2xlLmFzc2VydCgh
KGtleSBpbiBjb25maWd1cmF0aW9uTWFwKSk7CisgICAgICAgIGNvbmZpZ3VyYXRpb25NYXBba2V5
XSA9IHRoaXM7CisgICAgfQorCisgICAgZ2V0IHRyaWdnZXJhYmxlKCkgeyByZXR1cm4gdGhpcy4j
dHJpZ2dlcmFibGU7IH0KKyAgICBnZXQgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzKCkgeyByZXR1
cm4gdGhpcy4jc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOyB9CisKKyAgICBzdGF0aWMgZmluZEJ5
VGVzdEFuZFBsYXRmb3JtKHRlc3QsIHBsYXRmb3JtKQorICAgIHsKKyAgICAgICAgbGV0IGNvbmZp
Z3VyYXRpb25NYXAgPSB0aGlzLmVuc3VyZU5hbWVkU3RhdGljTWFwKCd0cmlnZ2VyYWJsZUNvbmZp
Z3VyYXRpb25zJyk7CisgICAgICAgIGlmICghY29uZmlndXJhdGlvbk1hcCkKKyAgICAgICAgICAg
IHJldHVybiBudWxsOworICAgICAgICBmb3IgKDsgdGVzdDsgdGVzdCA9IHRlc3QucGFyZW50VGVz
dCgpKSB7CisgICAgICAgICAgICBjb25zdCBrZXkgPSBgJHt0ZXN0LmlkKCl9LSR7cGxhdGZvcm0u
aWQoKX1gOworICAgICAgICAgICAgaWYgKGtleSBpbiBjb25maWd1cmF0aW9uTWFwKQorICAgICAg
ICAgICAgICAgIHJldHVybiBjb25maWd1cmF0aW9uTWFwW2tleV07CisgICAgICAgIH0KKyAgICAg
ICAgcmV0dXJuIG51bGw7CisgICAgfQorfQorCisKIGNsYXNzIFRyaWdnZXJhYmxlUmVwb3NpdG9y
eUdyb3VwIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAKICAgICBjb25zdHJ1Y3RvcihpZCwgb2Jq
ZWN0KQpAQCAtMTA5LDYgKzE0OSw3IEBAIGNsYXNzIFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3Vw
IGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAKIGlmICh0eXBlb2YgbW9kdWxlICE9ICd1bmRlZmlu
ZWQnKSB7CiAgICAgbW9kdWxlLmV4cG9ydHMuVHJpZ2dlcmFibGUgPSBUcmlnZ2VyYWJsZTsKKyAg
ICBtb2R1bGUuZXhwb3J0cy5UcmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24gPSBUcmlnZ2VyYWJsZUNv
bmZpZ3VyYXRpb247CiAgICAgbW9kdWxlLmV4cG9ydHMuVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3Jv
dXAgPSBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cDsKIH0KIApkaWZmIC0tZ2l0IGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9hbmFseXNpcy10YXNrLXBhZ2UuanMg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2FuYWx5c2lzLXRhc2st
cGFnZS5qcwppbmRleCBmYmQwNDBiZjFlM2VmOGM0Y2IyOTg3MWRkZDAyYTFjMTFlMGI1YzcwLi4y
MjM4MWM2ODIzZjk1Y2I0MGJhMTA2MDhhZDU5MGY1ZTg4OWE4ZWRhIDEwMDY0NAotLS0gYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2FuYWx5c2lzLXRhc2stcGFnZS5q
cworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2FuYWx5c2lz
LXRhc2stcGFnZS5qcwpAQCAtNzcsNiArNzcsOCBAQCBjbGFzcyBBbmFseXNpc1Rhc2tSZXN1bHRz
UGFuZSBleHRlbmRzIENvbXBvbmVudEJhc2UgewogICAgIHNldFRlc3RHcm91cHModGVzdEdyb3Vw
cywgY3VycmVudEdyb3VwKQogICAgIHsKICAgICAgICAgdGhpcy5wYXJ0KCdyZXN1bHRzLXZpZXdl
cicpLnNldFRlc3RHcm91cHModGVzdEdyb3VwcywgY3VycmVudEdyb3VwKTsKKyAgICAgICAgaWYg
KGN1cnJlbnRHcm91cCkKKyAgICAgICAgICAgIHRoaXMucGFydCgnZm9ybScpLnNldFRlc3RBbmRQ
bGF0Zm9ybShjdXJyZW50R3JvdXAudGVzdCgpLCBjdXJyZW50R3JvdXAucGxhdGZvcm0oKSk7CiAg
ICAgICAgIHRoaXMuZW5xdWV1ZVRvUmVuZGVyKCk7CiAgICAgfQogCkBAIC0zNjYsMTAgKzM2OCwx
MSBAQCBjbGFzcyBBbmFseXNpc1Rhc2tUZXN0R3JvdXBQYW5lIGV4dGVuZHMgQ29tcG9uZW50QmFz
ZSB7CiAgICAgICAgIGlmIChzZWxlY3RlZCkKICAgICAgICAgICAgIHNlbGVjdGVkLmNsYXNzTGlz
dC5yZW1vdmUoJ3NlbGVjdGVkJyk7CiAKKyAgICAgICAgdGhpcy5fcmVuZGVyVGVzdEdyb3VwRm9y
bSh0aGlzLnBhcnQoJ3JldHJ5LWZvcm0nKSwgY3VycmVudEdyb3VwKTsKKyAgICAgICAgdGhpcy5f
cmVuZGVyVGVzdEdyb3VwRm9ybSh0aGlzLnBhcnQoJ2Jpc2VjdC1mb3JtJyksIGN1cnJlbnRHcm91
cCk7CisKICAgICAgICAgaWYgKGN1cnJlbnRHcm91cCkgewogICAgICAgICAgICAgdGhpcy5fdGVz
dEdyb3VwTWFwLmdldChjdXJyZW50R3JvdXApLmxpc3RJdGVtLmNsYXNzTGlzdC5hZGQoJ3NlbGVj
dGVkJyk7Ci0gICAgICAgICAgICB0aGlzLnBhcnQoJ3JldHJ5LWZvcm0nKS5zZXRSZXBldGl0aW9u
Q291bnQoY3VycmVudEdyb3VwLmluaXRpYWxSZXBldGl0aW9uQ291bnQoKSk7Ci0gICAgICAgICAg
ICB0aGlzLnBhcnQoJ2Jpc2VjdC1mb3JtJykuc2V0UmVwZXRpdGlvbkNvdW50KGN1cnJlbnRHcm91
cC5pbml0aWFsUmVwZXRpdGlvbkNvdW50KCkpOwogCiAgICAgICAgICAgICBpZiAoY3VycmVudEdy
b3VwLmhhc1JldHJpZXMoKSkKICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlclJlcGxhY2UodGhp
cy5jb250ZW50KCdyZXRyeS1zdW1tYXJ5JyksIHRoaXMuX3JldHJ5U3VtbWFyeShjdXJyZW50R3Jv
dXApKTsKQEAgLTM4Nyw2ICszOTAsMTUgQEAgY2xhc3MgQW5hbHlzaXNUYXNrVGVzdEdyb3VwUGFu
ZSBleHRlbmRzIENvbXBvbmVudEJhc2UgewogICAgICAgICB0aGlzLmNvbnRlbnQoJ2Jpc2VjdC1m
b3JtJykuc3R5bGUuZGlzcGxheSA9IGN1cnJlbnRHcm91cCAmJiB0aGlzLl9iaXNlY3RpbmdDb21t
aXRTZXRCeVRlc3RHcm91cC5nZXQoY3VycmVudEdyb3VwKSA/IG51bGwgOiAnbm9uZSc7CiAgICAg
fQogCisgICAgX3JlbmRlclRlc3RHcm91cEZvcm0oZm9ybSwgdGVzdEdyb3VwKQorICAgIHsKKyAg
ICAgICAgaWYgKCF0ZXN0R3JvdXApCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGZvcm0u
c2V0UmVwZXRpdGlvbkNvdW50KHRlc3RHcm91cC5pbml0aWFsUmVwZXRpdGlvbkNvdW50KCkpOwor
ICAgICAgICBmb3JtLnNldFRlc3RBbmRQbGF0Zm9ybSh0ZXN0R3JvdXAudGVzdCgpLCB0ZXN0R3Jv
dXAucGxhdGZvcm0oKSk7CisgICAgICAgIGZvcm0uZW5xdWV1ZVRvUmVuZGVyKCk7CisgICAgfQor
CiAgICAgX3JldHJ5U3VtbWFyeSh0ZXN0R3JvdXApCiAgICAgewogICAgICAgICBpZiAoIXRlc3RH
cm91cC5oYXNSZXRyaWVzKCkpCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL3YzL3BhZ2VzL2NoYXJ0LXBhbmUuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL3YzL3BhZ2VzL2NoYXJ0LXBhbmUuanMKaW5kZXggYjU4Y2UyNjg2Y2QxZGY5ZDI5YmZl
NmQ0MGM5YzljZTBlNDQ4YjhiYy4uMmY2Y2Q4NGU1ZGViYmQwNzEyNTM3YTNmZDQ0ZTAxZTUwYjRi
MDRhMiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdl
cy9jaGFydC1wYW5lLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMv
cGFnZXMvY2hhcnQtcGFuZS5qcwpAQCAtMTIwLDEzICsxMjAsMTMgQEAgY2xhc3MgQ2hhcnRQYW5l
IGV4dGVuZHMgQ2hhcnRQYW5lQmFzZSB7CiAgICAgICAgIGNvbnN0IGNyZWF0ZVdpdGhUZXN0R3Jv
dXBDaGVja2JveCA9IHRoaXMuY29udGVudCgnY3JlYXRlLXdpdGgtdGVzdC1ncm91cCcpOwogICAg
ICAgICBjb25zdCByZXBldGl0aW9uQ291bnQgPSB0aGlzLmNvbnRlbnQoJ2NvbmZpcm0tcmVwZXRp
dGlvbicpOwogICAgICAgICBjb25zdCBub3RpZnlPbkNvbXBsZXRpb24gPSB0aGlzLmNvbnRlbnQo
J25vdGlmeS1vbi1jb21wbGV0aW9uJyk7Ci0gICAgICAgIGNvbnN0IHJlcGV0aXRpb25UeXBlID0g
dGhpcy5jb250ZW50KCdyZXBldGl0aW9uLXR5cGUnKTsKKyAgICAgICAgY29uc3QgcmVwZXRpdGlv
blR5cGVTZWxlY3Rpb24gPSB0aGlzLnBhcnQoJ3JlcGV0aXRpb24tdHlwZS1zZWxlY3Rpb24nKTsK
ICAgICAgICAgY3JlYXRlV2l0aFRlc3RHcm91cENoZWNrYm94Lm9uY2hhbmdlID0gKCkgPT4gewog
ICAgICAgICAgICAgLy8gRklYTUU6IHNob3VsZCBpbnZva2UgImVucXVldWVUb1JlbmRlciIgaW5z
dGVhZC4KICAgICAgICAgICAgIGNvbnN0IHNob3VsZERpc2FibGUgPSAhY3JlYXRlV2l0aFRlc3RH
cm91cENoZWNrYm94LmNoZWNrZWQ7CiAgICAgICAgICAgICByZXBldGl0aW9uQ291bnQuZGlzYWJs
ZWQgPSBzaG91bGREaXNhYmxlOwogICAgICAgICAgICAgbm90aWZ5T25Db21wbGV0aW9uLmRpc2Fi
bGVkID0gc2hvdWxkRGlzYWJsZTsKLSAgICAgICAgICAgIHJlcGV0aXRpb25UeXBlLmRpc2FibGVk
ID0gc2hvdWxkRGlzYWJsZTsKKyAgICAgICAgICAgIHJlcGV0aXRpb25UeXBlU2VsZWN0aW9uLmRp
c2FibGVkID0gc2hvdWxkRGlzYWJsZTsKICAgICAgICAgfTsKICAgICB9CiAKQEAgLTI0Niw3ICsy
NDYsNyBAQCBjbGFzcyBDaGFydFBhbmUgZXh0ZW5kcyBDaGFydFBhbmVCYXNlIHsKICAgICAgICAg
Y29uc3QgY3JlYXRlV2l0aFRlc3RHcm91cCA9IHRoaXMuY29udGVudCgnY3JlYXRlLXdpdGgtdGVz
dC1ncm91cCcpLmNoZWNrZWQ7CiAgICAgICAgIGNvbnN0IHJlcGV0aXRpb25Db3VudCA9IHRoaXMu
Y29udGVudCgnY29uZmlybS1yZXBldGl0aW9uJykudmFsdWU7CiAgICAgICAgIGNvbnN0IG5vdGlm
eU9uQ29tcGxldGlvbiA9IHRoaXMuY29udGVudCgnbm90aWZ5LW9uLWNvbXBsZXRpb24nKS5jaGVj
a2VkOwotICAgICAgICBjb25zdCByZXBldGl0aW9uVHlwZSA9IHRoaXMuY29udGVudCgncmVwZXRp
dGlvbi10eXBlJykudmFsdWU7CisgICAgICAgIGNvbnN0IHJlcGV0aXRpb25UeXBlID0gdGhpcy5w
YXJ0KCdyZXBldGl0aW9uLXR5cGUtc2VsZWN0aW9uJykuc2VsZWN0ZWRSZXBldGl0aW9uVHlwZTsK
IAogICAgICAgICB0cnkgewogICAgICAgICAgICAgY29uc3QgYW5hbHlzaXNUYXNrID0gYXdhaXQg
KGNyZWF0ZVdpdGhUZXN0R3JvdXAgPwpAQCAtMzE5LDYgKzMxOSw5IEBAIGNsYXNzIENoYXJ0UGFu
ZSBleHRlbmRzIENoYXJ0UGFuZUJhc2UgewogICAgICAgICBjb25zdCBzZWxlY3RlZFBvaW50cyA9
IHRoaXMuX21haW5DaGFydC5zZWxlY3RlZFBvaW50cygnY3VycmVudCcpOwogICAgICAgICBjb25z
dCBoYXNTZWxlY3RlZFBvaW50cyA9IHNlbGVjdGVkUG9pbnRzICYmIHNlbGVjdGVkUG9pbnRzLmxl
bmd0aCgpOwogICAgICAgICBpZiAoaGFzU2VsZWN0ZWRQb2ludHMpIHsKKyAgICAgICAgICAgIGNv
bnN0IHJlcGV0aXRpb25UeXBlU2VsZWN0aW9uID0gdGhpcy5wYXJ0KCdyZXBldGl0aW9uLXR5cGUt
c2VsZWN0aW9uJyk7CisgICAgICAgICAgICByZXBldGl0aW9uVHlwZVNlbGVjdGlvbi5zZXRUZXN0
QW5kUGxhdGZvcm0obWV0cmljLnRlc3QoKSwgcGxhdGZvcm0pOworICAgICAgICAgICAgcmVwZXRp
dGlvblR5cGVTZWxlY3Rpb24uZW5xdWV1ZVRvUmVuZGVyKCk7CiAgICAgICAgICAgICBhY3Rpb25z
LnB1c2godGhpcy5fbWFrZVBvcG92ZXJBY3Rpb25JdGVtKGFuYWx5emVQb3BvdmVyLCAnQW5hbHl6
ZScsIGZhbHNlKSk7CiAgICAgICAgICAgICBhbmFseXplUG9wb3Zlci5vbnN1Ym1pdCA9IHRoaXMu
Y3JlYXRlRXZlbnRIYW5kbGVyKCgpID0+IHsKICAgICAgICAgICAgICAgICB0aGlzLl9hbmFseXpl
UmFuZ2Uoc2VsZWN0ZWRQb2ludHMuZmlyc3RQb2ludCgpLCBzZWxlY3RlZFBvaW50cy5sYXN0UG9p
bnQoKSk7CkBAIC01OTYsMTAgKzU5OSw3IEBAIGNsYXNzIENoYXJ0UGFuZSBleHRlbmRzIENoYXJ0
UGFuZUJhc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAg
ICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+SW48L2xh
YmVsPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgaWQ9InJlcGV0aXRpb24t
dHlwZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImFs
dGVybmF0aW5nIiBzZWxlY3RlZD5hbHRlcm5hdGUgKEFCQUIpPC9vcHRpb24+Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InNlcXVlbnRpYWwiPnNlcXVlbmNl
IChBQUJCKTwvb3B0aW9uPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0Pgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZXBldGl0aW9uLXR5cGUtc2VsZWN0aW9uIGlk
PSJyZXBldGl0aW9uLXR5cGUtc2VsZWN0aW9uIj48L3JlcGV0aXRpb24tdHlwZS1zZWxlY3Rpb24+
CiAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAg
PGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD48aW5wdXQgdHlwZT0iY2hl
Y2tib3giIGlkPSJub3RpZnktb24tY29tcGxldGlvbiIgY2hlY2tlZD5Ob3RpZnkgb24gY29tcGxl
dGlvbjwvbGFiZWw+CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL2FwaS1tYW5pZmVzdC10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpzCmluZGV4IGNhYTBiMmNlNjFjYTEyZjI1
NTUxNjUwZTgxNjI2OTIwNzY4YWRhZDUuLmY5ZDBiZDY0NzEwOWFhMzc1M2I4NjFlMGE0NWEzOWM5
ZGYyNzdkNTUgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvYXBpLW1hbmlmZXN0LXRlc3RzLmpzCkBAIC0zNjQsMTIgKzM2NCwyNCBAQCBk
ZXNjcmliZSgnL2FwaS9tYW5pZmVzdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGRiLmlu
c2VydCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzJywge2dyb3VwOiAzMDIsIHJlcG9zaXRvcnk6
IDl9KSwKICAgICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzJywg
e2dyb3VwOiAzMDMsIHJlcG9zaXRvcnk6IDl9KSwKICAgICAgICAgICAgIGRiLmluc2VydCgndHJp
Z2dlcmFibGVfcmVwb3NpdG9yaWVzJywge2dyb3VwOiAzMDQsIHJlcG9zaXRvcnk6IDE2fSksCi0g
ICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywge3RyaWdn
ZXJhYmxlOiAyMDAsIHRlc3Q6IDEsIHBsYXRmb3JtOiA0Nn0pLAotICAgICAgICAgICAgZGIuaW5z
ZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHt0cmlnZ2VyYWJsZTogMjAwLCB0ZXN0
OiAyLCBwbGF0Zm9ybTogNDZ9KSwKLSAgICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVf
Y29uZmlndXJhdGlvbnMnLCB7dHJpZ2dlcmFibGU6IDIwMSwgdGVzdDogMSwgcGxhdGZvcm06IDIz
fSksCi0gICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywg
e3RyaWdnZXJhYmxlOiAyMDEsIHRlc3Q6IDIsIHBsYXRmb3JtOiAyM30pLAotICAgICAgICAgICAg
ZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHt0cmlnZ2VyYWJsZTogMjAy
LCB0ZXN0OiAxLCBwbGF0Zm9ybTogMTA0fSksCi0gICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdn
ZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywge3RyaWdnZXJhYmxlOiAyMDIsIHRlc3Q6IDIsIHBsYXRm
b3JtOiAxMDR9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJh
dGlvbnMnLCB7aWQ6IDEsIHRyaWdnZXJhYmxlOiAyMDAsIHRlc3Q6IDEsIHBsYXRmb3JtOiA0Nn0p
LAorICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0
aXRpb25fdHlwZXMnLCB7Y29uZmlncmVwZXRpdGlvbl9jb25maWc6IDEsIGNvbmZpZ3JlcGV0aXRp
b25fdHlwZTogJ2FsdGVybmF0aW5nJ30pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2Vy
YWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMnLCB7Y29uZmlncmVwZXRpdGlvbl9j
b25maWc6IDEsIGNvbmZpZ3JlcGV0aXRpb25fdHlwZTogJ3NlcXVlbnRpYWwnfSksCisgICAgICAg
ICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywge2lkOiAyLCB0cmln
Z2VyYWJsZTogMjAwLCB0ZXN0OiAyLCBwbGF0Zm9ybTogNDZ9KSwKKyAgICAgICAgICAgIGRiLmlu
c2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywge2NvbmZp
Z3JlcGV0aXRpb25fY29uZmlnOiAyLCBjb25maWdyZXBldGl0aW9uX3R5cGU6ICdhbHRlcm5hdGlu
Zyd9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9y
ZXBldGl0aW9uX3R5cGVzJywge2NvbmZpZ3JlcGV0aXRpb25fY29uZmlnOiAyLCBjb25maWdyZXBl
dGl0aW9uX3R5cGU6ICdzZXF1ZW50aWFsJ30pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmln
Z2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHtpZDogMywgdHJpZ2dlcmFibGU6IDIwMSwgdGVzdDog
MSwgcGxhdGZvcm06IDIzfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2Nv
bmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcycsIHtjb25maWdyZXBldGl0aW9uX2NvbmZpZzog
MywgY29uZmlncmVwZXRpdGlvbl90eXBlOiAnYWx0ZXJuYXRpbmcnfSksCisgICAgICAgICAgICBk
Yi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcycsIHtj
b25maWdyZXBldGl0aW9uX2NvbmZpZzogMywgY29uZmlncmVwZXRpdGlvbl90eXBlOiAnc2VxdWVu
dGlhbCd9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlv
bnMnLCB7aWQ6IDQsIHRyaWdnZXJhYmxlOiAyMDEsIHRlc3Q6IDIsIHBsYXRmb3JtOiAyM30pLAor
ICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRp
b25fdHlwZXMnLCB7Y29uZmlncmVwZXRpdGlvbl9jb25maWc6IDQsIGNvbmZpZ3JlcGV0aXRpb25f
dHlwZTogJ2FsdGVybmF0aW5nJ30pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJs
ZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMnLCB7Y29uZmlncmVwZXRpdGlvbl9jb25m
aWc6IDQsIGNvbmZpZ3JlcGV0aXRpb25fdHlwZTogJ3NlcXVlbnRpYWwnfSksCisgICAgICAgICAg
ICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywge2lkOiA1LCB0cmlnZ2Vy
YWJsZTogMjAyLCB0ZXN0OiAxLCBwbGF0Zm9ybTogMTA0fSksCisgICAgICAgICAgICBkYi5pbnNl
cnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcycsIHtjb25maWdy
ZXBldGl0aW9uX2NvbmZpZzogNSwgY29uZmlncmVwZXRpdGlvbl90eXBlOiAnYWx0ZXJuYXRpbmcn
fSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVw
ZXRpdGlvbl90eXBlcycsIHtjb25maWdyZXBldGl0aW9uX2NvbmZpZzogNSwgY29uZmlncmVwZXRp
dGlvbl90eXBlOiAnc2VxdWVudGlhbCd9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dl
cmFibGVfY29uZmlndXJhdGlvbnMnLCB7aWQ6IDYsIHRyaWdnZXJhYmxlOiAyMDIsIHRlc3Q6IDIs
IHBsYXRmb3JtOiAxMDR9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29u
ZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywge2NvbmZpZ3JlcGV0aXRpb25fY29uZmlnOiA2
LCBjb25maWdyZXBldGl0aW9uX3R5cGU6ICdhbHRlcm5hdGluZyd9KSwKKyAgICAgICAgICAgIGRi
Lmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywge2Nv
bmZpZ3JlcGV0aXRpb25fY29uZmlnOiA2LCBjb25maWdyZXBldGl0aW9uX3R5cGU6ICdzZXF1ZW50
aWFsJ30pLAogICAgICAgICBdKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBNYW5p
ZmVzdC5mZXRjaCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKZGlmZiAtLWdpdCBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwZGF0ZS10cmlnZ2VyYWJsZS10
ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwZGF0
ZS10cmlnZ2VyYWJsZS10ZXN0cy5qcwppbmRleCAxYTM1MmIzODRhYzMxYzgyMTlhMzUwMzMxNzg2
NTMwN2IwMTc2NDRhLi5mNTc1NmQ3NmYwYjFhNTE4OWY2ZDJmZDBlZmY3NDQzNGNjMTE1ZDRkIDEw
MDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGRh
dGUtdHJpZ2dlcmFibGUtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLXRlc3RzLmpzCkBAIC04LDYgKzgsNyBA
QCBjb25zdCBUZXN0U2VydmVyID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvdGVzdC1zZXJ2ZXIuanMn
KTsKIGNvbnN0IE1vY2tEYXRhID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvbW9jay1kYXRhLmpzJyk7
CiBjb25zdCBhZGRXb3JrZXJGb3JSZXBvcnQgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9jb21tb24t
b3BlcmF0aW9ucy5qcycpLmFkZFdvcmtlckZvclJlcG9ydDsKIGNvbnN0IHByZXBhcmVTZXJ2ZXJU
ZXN0ID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMnKS5wcmVwYXJl
U2VydmVyVGVzdDsKK2NvbnN0IGFzc2VydFRocm93cyA9IHJlcXVpcmUoJy4uL3NlcnZlci10ZXN0
cy9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMnKS5hc3NlcnRUaHJvd3M7CiAKIGRlc2NyaWJl
KCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgcHJlcGFyZVNl
cnZlclRlc3QodGhpcyk7CkBAIC0xOSwxNCArMjAsMTYgQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRl
LXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgJ2NvbmZpZ3VyYXRpb25zJzog
W10sCiAgICAgfTsKIAotICAgIGNvbnN0IHNtYWxsVXBkYXRlID0gewotICAgICAgICAnd29ya2Vy
TmFtZSc6ICdzb21lV29ya2VyJywKLSAgICAgICAgJ3dvcmtlclBhc3N3b3JkJzogJ3NvbWVQYXNz
d29yZCcsCi0gICAgICAgICd0cmlnZ2VyYWJsZSc6ICdidWlsZC13ZWJraXQnLAotICAgICAgICAn
Y29uZmlndXJhdGlvbnMnOiBbCi0gICAgICAgICAgICB7dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJ
ZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKX0KLSAgICAgICAgXSwKLSAg
ICB9OworICAgIGZ1bmN0aW9uIGNyZWF0ZVVwZGF0ZVdpdGhSZXBldGl0aW9uVHlwZXMoc3VwcG9y
dGVkUmVwZXRpdGlvblR5cGVzKSB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAnd29y
a2VyTmFtZSc6ICdzb21lV29ya2VyJywKKyAgICAgICAgICAgICd3b3JrZXJQYXNzd29yZCc6ICdz
b21lUGFzc3dvcmQnLAorICAgICAgICAgICAgJ3RyaWdnZXJhYmxlJzogJ2J1aWxkLXdlYmtpdCcs
CisgICAgICAgICAgICAnY29uZmlndXJhdGlvbnMnOiBbe3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0
SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCksIHN1cHBvcnRlZFJlcGV0
aXRpb25UeXBlc31dLAorICAgICAgICB9CisgICAgfQorCisgICAgY29uc3Qgc21hbGxVcGRhdGUg
PSBjcmVhdGVVcGRhdGVXaXRoUmVwZXRpdGlvblR5cGVzKFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVu
dGlhbCddKTsKIAogICAgIGl0KCdzaG91bGQgcmVqZWN0IHdoZW4gd29ya2VyIG5hbWUgaXMgbWlz
c2luZycsICgpID0+IHsKICAgICAgICAgcmV0dXJuIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9z
dEpTT04oJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIHt9KS50aGVuKChyZXNwb25zZSkgPT4g
ewpAQCAtMTE5LDcgKzEyMiw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8n
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAnd29ya2VyUGFzc3dvcmQnOiAnc29tZVBhc3N3
b3JkJywKICAgICAgICAgICAgICd0cmlnZ2VyYWJsZSc6ICdlbXB0eS10cmlnZ2VyYWJsZScsCiAg
ICAgICAgICAgICAnY29uZmlndXJhdGlvbnMnOiBbCi0gICAgICAgICAgICAgICAge3Rlc3Q6IE1v
Y2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCl9
CisgICAgICAgICAgICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06
IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCksIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlczogWydh
bHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ119LAogICAgICAgICAgICAgXSwKICAgICAgICAgICAg
ICdyZXBvc2l0b3J5R3JvdXBzJzogWwogICAgICAgICAgICAgICAgIHtuYW1lOiAnc3lzdGVtLW9u
bHknLCByZXBvc2l0b3JpZXM6IFsKQEAgLTI1Myw2ICsyNTYsOCBAQCBkZXNjcmliZSgnL2FwaS91
cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KS50aGVuKChyZXN1
bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IFtpbml0aWFsQ29uZmlndXJhdGlvbnMsIGluaXRp
YWxSZXBvc2l0b3J5R3JvdXBzXSA9IGluaXRpYWxSZXN1bHQ7CiAgICAgICAgICAgICBjb25zdCBb
Y29uZmlndXJhdGlvbnMsIHJlcG9zaXRvcnlHcm91cHNdID0gcmVzdWx0OworICAgICAgICAgICAg
aW5pdGlhbENvbmZpZ3VyYXRpb25zLmZvckVhY2goY29uZmlnID0+IGRlbGV0ZSBjb25maWcuaWQp
OworICAgICAgICAgICAgY29uZmlndXJhdGlvbnMuZm9yRWFjaChjb25maWcgPT4gZGVsZXRlIGNv
bmZpZy5pZCk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGNvbmZpZ3VyYXRp
b25zLCBpbml0aWFsQ29uZmlndXJhdGlvbnMpOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJp
Y3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzLCBpbml0aWFsUmVwb3NpdG9yeUdyb3Vwcyk7CiAgICAg
ICAgIH0pCkBAIC0yNzUsNiArMjgwLDggQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJh
YmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAg
ICAgICAgICBjb25zdCBbaW5pdGlhbENvbmZpZ3VyYXRpb25zLCBpbml0aWFsUmVwb3NpdG9yeUdy
b3Vwc10gPSBpbml0aWFsUmVzdWx0OwogICAgICAgICAgICAgY29uc3QgW2NvbmZpZ3VyYXRpb25z
LCByZXBvc2l0b3J5R3JvdXBzXSA9IHJlc3VsdDsKKyAgICAgICAgICAgIGluaXRpYWxDb25maWd1
cmF0aW9ucy5mb3JFYWNoKGNvbmZpZyA9PiBkZWxldGUgY29uZmlnLmlkKTsKKyAgICAgICAgICAg
IGNvbmZpZ3VyYXRpb25zLmZvckVhY2goY29uZmlnID0+IGRlbGV0ZSBjb25maWcuaWQpOwogICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb25maWd1cmF0aW9ucywgaW5pdGlhbENv
bmZpZ3VyYXRpb25zKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3Np
dG9yeUdyb3VwcywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHMpOwogICAgICAgICB9KQpAQCAtMzA4
LDcgKzMxNSw3IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICAnd29ya2VyUGFzc3dvcmQnOiAnc29tZVBhc3N3b3JkJywKICAg
ICAgICAgICAgICd0cmlnZ2VyYWJsZSc6ICdlbXB0eS10cmlnZ2VyYWJsZScsCiAgICAgICAgICAg
ICAnY29uZmlndXJhdGlvbnMnOiBbCi0gICAgICAgICAgICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNv
bWVUZXN0SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCl9CisgICAgICAg
ICAgICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRh
LnNvbWVQbGF0Zm9ybUlkKCksIGlkOiBNb2NrRGF0YS5zb21lVHJpZ2dlcmFibGVDb25maWd1cmF0
aW9uSWQoKSwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVl
bnRpYWwnXX0sCiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgJ3JlcG9zaXRvcnlHcm91cHMn
OiBbCiAgICAgICAgICAgICAgICAge25hbWU6ICdzeXN0ZW0tb25seScsIHJlcG9zaXRvcmllczog
W3tyZXBvc2l0b3J5OiBNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpfV19LApAQCAtNDY1LDQg
KzQ3MiwyMiBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24g
KCkgewogICAgICAgICB9KTsKICAgICB9KTsKIAorICAgIGl0KCdzaG91bGQgYWxsb3cgYWRkaW5n
ICJwYXJhbGxlbCIgcmVwZXRpdGlvbiB0eXBlIHRvIHRyaWdnZXJhYmxlIGNvbmZpZ3VyYXRpb24n
LCBhc3luYyAoKSA9PiB7CisgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgp
OworICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrRGF0YShkYik7CisgICAgICAgIGNvbnN0
IGluaXRpYWxVcGRhdGUgPSBjcmVhdGVVcGRhdGVXaXRoUmVwZXRpdGlvblR5cGVzKFsnYWx0ZXJu
YXRpbmcnLCAnc2VxdWVudGlhbCddKTsKKyAgICAgICAgYXdhaXQgYWRkV29ya2VyRm9yUmVwb3J0
KGluaXRpYWxVcGRhdGUpOworICAgICAgICBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RKU09OV2l0aFN0YXR1cygnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUnLCBpbml0aWFsVXBkYXRl
KTsKKworICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgZGIucXVlcnkoJ1NFTEVDVCBjb25maWdy
ZXBldGl0aW9uX3R5cGUgQVMgcmVwZXRpdGlvbl90eXBlIEZST00gdHJpZ2dlcmFibGVfY29uZmln
dXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXN1bHQucm93cy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdC5y
b3dzLm1hcChyb3cgPT4gcm93WydyZXBldGl0aW9uX3R5cGUnXSkuc29ydCgpLCBbJ2FsdGVybmF0
aW5nJywgJ3NlcXVlbnRpYWwnXSk7CisKKyAgICAgICAgY29uc3QgdXBkYXRlV2l0aFBhcmFsbGVs
UmVwZXRpdGlvbiA9IGNyZWF0ZVVwZGF0ZVdpdGhSZXBldGl0aW9uVHlwZXMoWydhbHRlcm5hdGlu
ZycsICdzZXF1ZW50aWFsJywgJ3BhcmFsbGVsJ10pOworICAgICAgICBhd2FpdCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUn
LCB1cGRhdGVXaXRoUGFyYWxsZWxSZXBldGl0aW9uKTsKKyAgICAgICAgcmVzdWx0ID0gYXdhaXQg
ZGIucXVlcnkoJ1NFTEVDVCBjb25maWdyZXBldGl0aW9uX3R5cGUgQVMgcmVwZXRpdGlvbl90eXBl
IEZST00gdHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQucm93cy5sZW5ndGgsIDMpOworICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHJlc3VsdC5yb3dzLm1hcChyb3cgPT4gcm93WydyZXBldGl0aW9uX3R5
cGUnXSkuc29ydCgpLCBbJ2FsdGVybmF0aW5nJywgJ3BhcmFsbGVsJywgJ3NlcXVlbnRpYWwnXSk7
CisgICAgfSk7CisKIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9hcGktdXBsb2FkLXJvb3QtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGxvYWQtcm9vdC10ZXN0cy5qcwppbmRleCA2NzVkNTk0
ODc0Y2ExNmRjN2U4OTY2ODA0Y2ZlZjQxODY1ZjI1MmRjLi5hY2U4ZjQ3YWFlODIwOTEzMjk3Y2Rm
MmZlOTk3MmE2ZWZiYWE1NGZiIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL2FwaS11cGxvYWQtcm9vdC10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGxvYWQtcm9vdC10ZXN0cy5qcwpAQCAtMzgs
NyArMzgsNyBAQCBmdW5jdGlvbiBjcmVhdGVUZXN0R3JvdXBXaWhQYXRjaCgpCiAgICAgICAgICd3
b3JrZXJQYXNzd29yZCc6ICdwYXNzd29yZCcsCiAgICAgICAgICd0cmlnZ2VyYWJsZSc6ICdidWls
ZC13ZWJraXQnLAogICAgICAgICAnY29uZmlndXJhdGlvbnMnOiBbCi0gICAgICAgICAgICB7dGVz
dDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRmb3Jt
SWQoKX0sCisgICAgICAgICAgICB7dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBwbGF0Zm9y
bTogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSwgaWQ6IE1vY2tEYXRhLnNvbWVUcmlnZ2VyYWJs
ZUNvbmZpZ3VyYXRpb25JZCgpLCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRp
bmcnLCAnc2VxdWVudGlhbCddfSwKICAgICAgICAgXSwKICAgICAgICAgJ3JlcG9zaXRvcnlHcm91
cHMnOiBbCiAgICAgICAgICAgICB7bmFtZTogJ3dlYmtpdCcsIHJlcG9zaXRvcmllczogWwpAQCAt
ODAsNyArODAsNyBAQCBmdW5jdGlvbiBjcmVhdGVUZXN0R3JvdXBXaXRoUGF0Y2hBbmRPd25lZENv
bW1pdHMoKQogICAgICAgICAnd29ya2VyUGFzc3dvcmQnOiAncGFzc3dvcmQnLAogICAgICAgICAn
dHJpZ2dlcmFibGUnOiAnYnVpbGQtd2Via2l0JywKICAgICAgICAgJ2NvbmZpZ3VyYXRpb25zJzog
WwotICAgICAgICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06IE1v
Y2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCl9LAorICAgICAgICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNv
bWVUZXN0SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCksIHN1cHBvcnRl
ZFJlcGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ119LAogICAgICAg
ICBdLAogICAgICAgICAncmVwb3NpdG9yeUdyb3Vwcyc6IFsKICAgICAgICAgICAgIHtuYW1lOiAn
d2Via2l0JywgcmVwb3NpdG9yaWVzOiBbCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWFkZC1idWlsZC1yZXF1ZXN0cy10ZXN0
cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1h
cGktYWRkLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCmluZGV4IGY5YzQ0NjQ1YTJhNzQzNzRkYjlj
NTU1OTQwOThjYTIzYjkyYjczNWMuLmIyYmYzMTdiMDA2ZTg3MDNhMGM4NWJiOTI0YjllYTQyMGNi
NzQ4ZTEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
cHJpdmlsZWdlZC1hcGktYWRkLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktYWRkLWJ1aWxkLXJl
cXVlc3RzLXRlc3RzLmpzCkBAIC05Niw4ICs5Niw4IEBAIGFzeW5jIGZ1bmN0aW9uIGFkZFRyaWdn
ZXJhYmxlQW5kQ3JlYXRlVGFzayhuYW1lLCB3ZWJraXRSZXZpc2lvbnMpCiAgICAgICAgICd3b3Jr
ZXJQYXNzd29yZCc6ICdhbm90aGVyUGFzc3dvcmQnLAogICAgICAgICAndHJpZ2dlcmFibGUnOiAn
YnVpbGQtd2Via2l0JywKICAgICAgICAgJ2NvbmZpZ3VyYXRpb25zJzogWwotICAgICAgICAgICAg
e3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0
Zm9ybUlkKCl9LAotICAgICAgICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxh
dGZvcm06IE1vY2tEYXRhLm90aGVyUGxhdGZvcm1JZCgpfSwKKyAgICAgICAgICAgIHt0ZXN0OiBN
b2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgp
LCBpZDogTW9ja0RhdGEuc29tZVRyaWdnZXJhYmxlQ29uZmlndXJhdGlvbklkKCksIHN1cHBvcnRl
ZFJlcGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ119LAorICAgICAg
ICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRhLm90
aGVyUGxhdGZvcm1JZCgpLCBpZDogTW9ja0RhdGEub3RoZXJUcmlnZ2VyYWJsZUNvbmZpZ3VyYXRp
b25JZCgpLCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVu
dGlhbCddfSwKICAgICAgICAgXSwKICAgICAgICAgJ3JlcG9zaXRvcnlHcm91cHMnOiBbCiAgICAg
ICAgICAgICB7bmFtZTogJ29zLW9ubHknLCBhY2NlcHRzUm9vdDogdHJ1ZSwgcmVwb3NpdG9yaWVz
OiBbCkBAIC0xOTAsNyArMTkwLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9hZGQtYnVp
bGQtcmVxdWVzdHMnLCBmdW5jdGlvbigpIHsKICAgICAgICAgYXdhaXQgYXNzZXJ0VGhyb3dzKCdD
YW5ub3RBZGRUb0hpZGRlblRlc3RHcm91cCcsIGFzeW5jICgpID0+IGF3YWl0IFByaXZpbGVnZWRB
UEkuc2VuZFJlcXVlc3QoJ2FkZC1idWlsZC1yZXF1ZXN0cycsIHtncm91cDogaW5zZXJ0ZWRHcm91
cElkLCBhZGRDb3VudDogMn0pKQogICAgIH0pOwogCi0gICAgaXQoJ3Nob3VsZCByZWplY3Qgd2l0
aCAiQ29tbWl0U2V0Tm90U3VwcG9ydGVkRm9yQWx0ZXJuYXRpbmdSZXBldGl0aW9uVHlwZSIgd2hl
biBhZGRpbmcgYnVpbGQgcmVxdWVzdHMgZm9yIG9uZSBjb21taXQgc2V0IGluIGFuIGFsdGVybmF0
aW5nIHRlc3QgZ3JvdXAnLCBhc3luYyAoKSA9PiB7CisgICAgaXQoJ3Nob3VsZCByZWplY3Qgd2l0
aCAiQ29tbWl0U2V0Tm90U3VwcG9ydGVkRm9yTm9uU2VxdWVudGlhbFJlcGV0aXRpb25UeXBlIiB3
aGVuIGFkZGluZyBidWlsZCByZXF1ZXN0cyBmb3Igb25lIGNvbW1pdCBzZXQgaW4gYW4gYWx0ZXJu
YXRpbmcgdGVzdCBncm91cCcsIGFzeW5jICgpID0+IHsKICAgICAgICAgYXdhaXQgYWRkVHJpZ2dl
cmFibGVBbmRDcmVhdGVUYXNrKCdzb21lIHRhc2snKTsKICAgICAgICAgY29uc3Qgd2Via2l0ID0g
UmVwb3NpdG9yeS5hbGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJlcG9zaXRvcnkubmFtZSgp
ID09ICdXZWJLaXQnKVswXTsKICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gW3tbd2Via2l0
LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInfX0sIHtbd2Via2l0LmlkKCldOiB7cmV2aXNpb246
ICcxOTE2MjMnfX1dOwpAQCAtMjE4LDcgKzIxOCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1h
cGkvYWRkLWJ1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24oKSB7CiAgICAgICAgIGNvbnN0IHNlY29u
ZENvbW1pdFNldCA9IGdyb3VwLnJlcXVlc3RlZENvbW1pdFNldHMoKVsxXTsKICAgICAgICAgYXNz
ZXJ0T3JkZXJPZlJlcXVlc3RzKGdyb3VwLnJlcXVlc3RzRm9yQ29tbWl0U2V0KHNlY29uZENvbW1p
dFNldCksIFsxLCAzXSk7CiAKLSAgICAgICAgYXdhaXQgYXNzZXJ0VGhyb3dzKCdDb21taXRTZXRO
b3RTdXBwb3J0ZWRGb3JBbHRlcm5hdGluZ1JlcGV0aXRpb25UeXBlJywgKCkgPT4geworICAgICAg
ICBhd2FpdCBhc3NlcnRUaHJvd3MoJ0NvbW1pdFNldE5vdFN1cHBvcnRlZEZvck5vblNlcXVlbnRp
YWxSZXBldGl0aW9uVHlwZScsICgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2Vk
QVBJLnNlbmRSZXF1ZXN0KCdhZGQtYnVpbGQtcmVxdWVzdHMnLAogICAgICAgICAgICAgICAgIHtn
cm91cDogaW5zZXJ0ZWRHcm91cElkLCBhZGRDb3VudDogMiwgY29tbWl0U2V0OiBzZWNvbmRDb21t
aXRTZXQuaWQoKX0pCiAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtYW5hbHlzaXMtdGFzay10
ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdl
ZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2stdGVzdHMuanMKaW5kZXggMmExNzE3OGU0MzQyMzIy
ZWZjYzBiZmZkMjdmMjk4MjM1ZjQzMjZkYi4uMzg3YTQ1ZTQ5YzQwYTc1YTVkYzI0NzYxNWQyNDFi
ODc5YTVlM2JiZSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtYW5hbHlzaXMtdGFzay10ZXN0cy5qcworKysgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0
ZS1hbmFseXNpcy10YXNrLXRlc3RzLmpzCkBAIC00MTUsNyArNDE1LDggQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIGJyb3dzZXIgcHJpdmlsZWdl
ZCBhcGknLCBmdW4KICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdidWlsZF90cmlnZ2VyYWJsZXMn
LCB7aWQ6IDEyMzQsIG5hbWU6ICd0ZXN0LXRyaWdnZXJhYmxlJ30pOwogICAgICAgICBhd2FpdCBk
Yi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywge2lkOiAyMzQ1LCBuYW1l
OiAnd2Via2l0LW9ubHknLCB0cmlnZ2VyYWJsZTogdHJpZ2dlcmFibGVJZH0pOwogICAgICAgICBh
d2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcmllcycsIHtyZXBvc2l0b3J5OiB3
ZWJraXRJZCwgZ3JvdXA6IDIzNDV9KTsKLSAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2Vy
YWJsZV9jb25maWd1cmF0aW9ucycsIHt0ZXN0OiB0ZXN0MUlkLCBwbGF0Zm9ybTogcGxhdGZvcm1J
ZCwgdHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxlSWR9KTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0
KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHtpZDogMSwgdGVzdDogdGVzdDFJZCwgcGxh
dGZvcm06IHBsYXRmb3JtSWQsIHRyaWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlkfSk7CisgICAgICAg
IGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5
cGVzJywge2NvbmZpZ3JlcGV0aXRpb25fY29uZmlnOiAxLCBjb25maWdyZXBldGl0aW9uX3R5cGU6
ICdhbHRlcm5hdGluZyd9KTsKICAgICAgICAgYXdhaXQgYWRkQnVpbGRlckZvclJlcG9ydChyZXBv
cnRXaXRoUmV2aXNpb25bMF0pOwogCiAgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7CkBAIC01Mzcs
NyArNTM4LDggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFz
ayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBhcGknLCBmdW5jdGkKICAgICAgICAgYXdhaXQgZGIuaW5z
ZXJ0KCdidWlsZF90cmlnZ2VyYWJsZXMnLCB7aWQ6IDEyMzQsIG5hbWU6ICd0ZXN0LXRyaWdnZXJh
YmxlJ30pOwogICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlf
Z3JvdXBzJywge2lkOiAyMzQ1LCBuYW1lOiAnd2Via2l0LW9ubHknLCB0cmlnZ2VyYWJsZTogdHJp
Z2dlcmFibGVJZH0pOwogICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9z
aXRvcmllcycsIHtyZXBvc2l0b3J5OiB3ZWJraXRJZCwgZ3JvdXA6IDIzNDV9KTsKLSAgICAgICAg
YXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHt0ZXN0OiB0ZXN0
MUlkLCBwbGF0Zm9ybTogcGxhdGZvcm1JZCwgdHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxlSWR9KTsK
KyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHtp
ZDogMSwgdGVzdDogdGVzdDFJZCwgcGxhdGZvcm06IHBsYXRmb3JtSWQsIHRyaWdnZXJhYmxlOiB0
cmlnZ2VyYWJsZUlkfSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29u
ZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywge2NvbmZpZ3JlcGV0aXRpb25fY29uZmlnOiAx
LCBjb25maWdyZXBldGl0aW9uX3R5cGU6ICdhbHRlcm5hdGluZyd9KTsKICAgICAgICAgYXdhaXQg
YWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoUmV2aXNpb25bMF0pOwogCiAgICAgICAgIGF3
YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9y
dFdpdGhSZXZpc2lvbik7CkBAIC02MTcsNyArNjE5LDggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2Vk
LWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBhcGknLCBmdW5j
dGkKICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdidWlsZF90cmlnZ2VyYWJsZXMnLCB7aWQ6IDEy
MzQsIG5hbWU6ICd0ZXN0LXRyaWdnZXJhYmxlJ30pOwogICAgICAgICBhd2FpdCBkYi5pbnNlcnQo
J3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywge2lkOiAyMzQ1LCBuYW1lOiAnd2Via2l0
LW9ubHknLCB0cmlnZ2VyYWJsZTogdHJpZ2dlcmFibGVJZH0pOwogICAgICAgICBhd2FpdCBkYi5p
bnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcmllcycsIHtyZXBvc2l0b3J5OiB3ZWJraXRJZCwg
Z3JvdXA6IDIzNDV9KTsKLSAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25m
aWd1cmF0aW9ucycsIHt0ZXN0OiB0ZXN0MUlkLCBwbGF0Zm9ybTogcGxhdGZvcm1JZCwgdHJpZ2dl
cmFibGU6IHRyaWdnZXJhYmxlSWR9KTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2Vy
YWJsZV9jb25maWd1cmF0aW9ucycsIHtpZDogMSwgdGVzdDogdGVzdDFJZCwgcGxhdGZvcm06IHBs
YXRmb3JtSWQsIHRyaWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlkfSk7CisgICAgICAgIGF3YWl0IGRi
Lmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywge2Nv
bmZpZ3JlcGV0aXRpb25fY29uZmlnOiAxLCBjb25maWdyZXBldGl0aW9uX3R5cGU6ICdhbHRlcm5h
dGluZyd9KTsKICAgICAgICAgYXdhaXQgYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoUmV2
aXNpb25bMF0pOwogCiAgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpT
T04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7CkBAIC02OTcsNyArNzAwLDkg
QEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5v
ZGUgcHJpdmlsZWdlZCBhcGknLCBmdW5jdGkKICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdidWls
ZF90cmlnZ2VyYWJsZXMnLCB7aWQ6IDEyMzQsIG5hbWU6ICd0ZXN0LXRyaWdnZXJhYmxlJ30pOwog
ICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywg
e2lkOiAyMzQ1LCBuYW1lOiAnd2Via2l0LW9ubHknLCB0cmlnZ2VyYWJsZTogdHJpZ2dlcmFibGVJ
ZH0pOwogICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcmllcycs
IHtyZXBvc2l0b3J5OiB3ZWJraXRJZCwgZ3JvdXA6IDIzNDV9KTsKLSAgICAgICAgYXdhaXQgZGIu
aW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHt0ZXN0OiB0ZXN0SWQsIHBsYXRm
b3JtOiBwbGF0Zm9ybUlkLCB0cmlnZ2VyYWJsZTogdHJpZ2dlcmFibGVJZH0pOworICAgICAgICBh
d2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywge2lkOiAxLCB0ZXN0
OiB0ZXN0SWQsIHBsYXRmb3JtOiBwbGF0Zm9ybUlkLCB0cmlnZ2VyYWJsZTogdHJpZ2dlcmFibGVJ
ZH0pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25f
cmVwZXRpdGlvbl90eXBlcycsIHtjb25maWdyZXBldGl0aW9uX2NvbmZpZzogMSwgY29uZmlncmVw
ZXRpdGlvbl90eXBlOiAnYWx0ZXJuYXRpbmcnfSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgn
dHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywge2NvbmZpZ3JlcGV0
aXRpb25fY29uZmlnOiAxLCBjb25maWdyZXBldGl0aW9uX3R5cGU6ICdzZXF1ZW50aWFsJ30pOwog
ICAgICAgICBhd2FpdCBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhSZXZpc2lvblswXSk7
CiAKICAgICAgICAgYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9y
ZXBvcnQvJywgcmVwb3J0V2l0aFJldmlzaW9uKTsKQEAgLTc1NSw3ICs3NjAsNyBAQCBkZXNjcmli
ZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggbm9kZSBwcml2aWxl
Z2VkIGFwaScsIGZ1bmN0aQogICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0
U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5
MTYyMycpOwogICAgIH0pOwogCi0gICAgaXQoJ3Nob3VsZCByZWplY3Qgd2l0aCAiSW52YWxpZFJl
cGV0aXRpb25UeXBlIiB3aGVuIHJlcGV0aXRpb24gdHlwZSBpcyBub3QgImFsdGVybmF0aW5nIiBv
ciAic2VxdWVudGlhbCInLCBhc3luYyAoKSA9PiB7CisgICAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRv
IGNyZWF0ZSBhbiBhbmFseXNpcyB0YXNrIHdpdGggYSBwYXJhbGxlbCB0ZXN0IGdyb3VwJywgYXN5
bmMgKCkgPT4gewogICAgICAgICBjb25zdCB3ZWJraXRJZCA9IDE7CiAgICAgICAgIGNvbnN0IHBs
YXRmb3JtSWQgPSAxOwogICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZUlkID0gMTIzNDsKQEAgLTc2
OSw3ICs3NzQsODMgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMt
dGFzayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBhcGknLCBmdW5jdGkKICAgICAgICAgYXdhaXQgZGIu
aW5zZXJ0KCdidWlsZF90cmlnZ2VyYWJsZXMnLCB7aWQ6IDEyMzQsIG5hbWU6ICd0ZXN0LXRyaWdn
ZXJhYmxlJ30pOwogICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9zaXRv
cnlfZ3JvdXBzJywge2lkOiAyMzQ1LCBuYW1lOiAnd2Via2l0LW9ubHknLCB0cmlnZ2VyYWJsZTog
dHJpZ2dlcmFibGVJZH0pOwogICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3Jl
cG9zaXRvcmllcycsIHtyZXBvc2l0b3J5OiB3ZWJraXRJZCwgZ3JvdXA6IDIzNDV9KTsKLSAgICAg
ICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHt0ZXN0OiB0
ZXN0SWQsIHBsYXRmb3JtOiBwbGF0Zm9ybUlkLCB0cmlnZ2VyYWJsZTogdHJpZ2dlcmFibGVJZH0p
OworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywg
e2lkOiAxLCB0ZXN0OiB0ZXN0SWQsIHBsYXRmb3JtOiBwbGF0Zm9ybUlkLCB0cmlnZ2VyYWJsZTog
dHJpZ2dlcmFibGVJZH0pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2Nv
bmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcycsIHtjb25maWdyZXBldGl0aW9uX2NvbmZpZzog
MSwgY29uZmlncmVwZXRpdGlvbl90eXBlOiAnYWx0ZXJuYXRpbmcnfSk7CisgICAgICAgIGF3YWl0
IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywg
e2NvbmZpZ3JlcGV0aXRpb25fY29uZmlnOiAxLCBjb25maWdyZXBldGl0aW9uX3R5cGU6ICdzZXF1
ZW50aWFsJ30pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3Vy
YXRpb25fcmVwZXRpdGlvbl90eXBlcycsIHtjb25maWdyZXBldGl0aW9uX2NvbmZpZzogMSwgY29u
ZmlncmVwZXRpdGlvbl90eXBlOiAncGFyYWxsZWwnfSk7CisgICAgICAgIGF3YWl0IGFkZEJ1aWxk
ZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uWzBdKTsKKworICAgICAgICBhd2FpdCBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2
aXNpb24pOworICAgICAgICBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcv
YXBpL3JlcG9ydC8nLCBhbm90aGVyUmVwb3J0V2l0aFJldmlzaW9uKTsKKyAgICAgICAgYXdhaXQg
TWFuaWZlc3QuZmV0Y2goKTsKKworICAgICAgICBjb25zdCB0ZXN0ID0gVGVzdC5maW5kQnlJZCh0
ZXN0SWQpOworICAgICAgICBjb25zdCBzb21lUGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlJZChw
bGF0Zm9ybUlkKTsKKyAgICAgICAgY29uc3QgY29uZmlnUm93ID0gYXdhaXQgZGIuc2VsZWN0Rmly
c3RSb3coJ3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0ZXN0Lm1ldHJpY3MoKVswXS5p
ZCgpLCBwbGF0Zm9ybTogc29tZVBsYXRmb3JtLmlkKCl9KTsKKyAgICAgICAgY29uc3QgdGVzdFJ1
bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25maWdSb3db
J2lkJ119KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7
CisKKyAgICAgICAgY29uc3Qgb25lUmV2aXNpb25TZXQgPSB7W3dlYmtpdElkXToge3JldmlzaW9u
OiAnMTkxNjIyJ319OworICAgICAgICBjb25zdCBhbm90aGVyUmV2aXNpb25TZXQgPSB7W3dlYmtp
dElkXToge3JldmlzaW9uOiAnMTkxNjIzJ319OworCisgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBh
d2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHtu
YW1lOiAnY29uZmlybScsIHJlcGV0aXRpb25Db3VudDogMiwKKyAgICAgICAgICAgIHRlc3RHcm91
cE5hbWU6ICdDb25maXJtJywgcmV2aXNpb25TZXRzOiBbb25lUmV2aXNpb25TZXQsIGFub3RoZXJS
ZXZpc2lvblNldF0sCisgICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sIGVu
ZFJ1bjogdGVzdFJ1bnNbMV1bJ2lkJ10sIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlLCByZXBldGl0
aW9uVHlwZTogJ3BhcmFsbGVsJ30pOworCisgICAgICAgIGNvbnN0IHRhc2sgPSBhd2FpdCBBbmFs
eXNpc1Rhc2suZmV0Y2hCeUlkKGNvbnRlbnRbJ3Rhc2tJZCddKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKHRhc2submFtZSgpLCAnY29uZmlybScpOworICAgICAgICBhc3NlcnQoIXRhc2su
aGFzUmVzdWx0cygpKTsKKyAgICAgICAgYXNzZXJ0KHRhc2suaGFzUGVuZGluZ1JlcXVlc3RzKCkp
OworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRhc2suYnVncygpLCBbXSk7CisgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5jYXVzZXMoKSwgW10pOworICAgICAgICBh
c3NlcnQuZGVlcFN0cmljdEVxdWFsKHRhc2suZml4ZXMoKSwgW10pOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGFzay5jaGFuZ2VUeXBlKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGFzay5wbGF0Zm9ybSgpLmxhYmVsKCksICdzb21lIHBsYXRmb3JtJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm1ldHJpYygpLnRlc3QoKS5sYWJlbCgpLCAnU3Vp
dGUnKTsKKworICAgICAgICBjb25zdCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNo
Rm9yVGFzayh0YXNrLmlkKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vw
cy5sZW5ndGgsIDEpOworICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLm5hbWUoKSwgJ0NvbmZpcm0nKTsK
KyAgICAgICAgYXNzZXJ0Lm9rKHRlc3RHcm91cC5uZWVkc05vdGlmaWNhdGlvbigpKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5yZXBldGl0aW9uVHlwZSgpLCAncGFyYWxs
ZWwnKQorICAgICAgICBmb3IgKGNvbnN0IGNvbW1pdFNldCBvZiB0ZXN0R3JvdXAucmVxdWVzdGVk
Q29tbWl0U2V0cygpKQorICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5y
ZXBldGl0aW9uQ291bnRGb3JDb21taXRTZXQoY29tbWl0U2V0KSwgMik7CisKKyAgICAgICAgY29u
c3QgYnVpbGRSZXF1ZXN0cyA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwgNCk7CisKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ub3JkZXIoKSwgMCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLm9yZGVyKCksIDEpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5vcmRlcigpLCAyKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbM10ub3JkZXIoKSwgMyk7CisKKyAgICAg
ICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdHNbMF0uY29tbWl0U2V0KCkuZXF1YWxzKGJ1aWxkUmVxdWVz
dHNbMl0uY29tbWl0U2V0KCkpKTsKKyAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdHNbMV0uY29t
bWl0U2V0KCkuZXF1YWxzKGJ1aWxkUmVxdWVzdHNbM10uY29tbWl0U2V0KCkpKTsKKworICAgICAg
ICBjb25zdCBmaXJzdENvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdHNbMF0uY29tbWl0U2V0KCk7Cisg
ICAgICAgIGNvbnN0IHNlY29uZENvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdHNbMV0uY29tbWl0U2V0
KCk7CisgICAgICAgIGNvbnN0IHdlYmtpdFJlcG9zaXRvcnkgPSBSZXBvc2l0b3J5LmZpbmRCeUlk
KHdlYmtpdElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGZpcnN0Q29tbWl0U2V0LmNv
bW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMicp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZvclJl
cG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMycpOworICAgIH0p
OworCisgICAgaXQoJ3Nob3VsZCByZWplY3Qgd2l0aCAiSW52YWxpZFJlcGV0aXRpb25UeXBlIiB3
aGVuIHJlcGV0aXRpb24gdHlwZSBpcyBub3QgImFsdGVybmF0aW5nIiwgInNlcXVlbnRpYWwiIG9y
ICJwYXJhbGxlbCInLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGNvbnN0IHdlYmtpdElkID0gMTsK
KyAgICAgICAgY29uc3QgcGxhdGZvcm1JZCA9IDE7CisgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxl
SWQgPSAxMjM0OworCisgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOwor
ICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3Rlc3RzJywge25hbWU6ICdTdWl0ZSd9KTsKKyAgICAg
ICAgY29uc3QgdGVzdFJvdyA9IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93KCd0ZXN0cycsIHtuYW1l
OiAnU3VpdGUnfSk7CisgICAgICAgIGNvbnN0IHRlc3RJZCA9IHRlc3RSb3cuaWQ7CisgICAgICAg
IGF3YWl0IGRiLmluc2VydCgncmVwb3NpdG9yaWVzJywge2lkOiB3ZWJraXRJZCwgbmFtZTogJ1dl
YktpdCd9KTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdwbGF0Zm9ybXMnLCB7aWQ6IHBsYXRm
b3JtSWQsIG5hbWU6ICdzb21lIHBsYXRmb3JtJ30pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQo
J2J1aWxkX3RyaWdnZXJhYmxlcycsIHtpZDogMTIzNCwgbmFtZTogJ3Rlc3QtdHJpZ2dlcmFibGUn
fSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91
cHMnLCB7aWQ6IDIzNDUsIG5hbWU6ICd3ZWJraXQtb25seScsIHRyaWdnZXJhYmxlOiB0cmlnZ2Vy
YWJsZUlkfSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfcmVwb3NpdG9y
aWVzJywge3JlcG9zaXRvcnk6IHdlYmtpdElkLCBncm91cDogMjM0NX0pOworICAgICAgICBhd2Fp
dCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywge2lkOiAxLCB0ZXN0OiB0
ZXN0SWQsIHBsYXRmb3JtOiBwbGF0Zm9ybUlkLCB0cmlnZ2VyYWJsZTogdHJpZ2dlcmFibGVJZH0p
OworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVw
ZXRpdGlvbl90eXBlcycsIHtjb25maWdyZXBldGl0aW9uX2NvbmZpZzogMSwgY29uZmlncmVwZXRp
dGlvbl90eXBlOiAnYWx0ZXJuYXRpbmcnfSk7CiAgICAgICAgIGF3YWl0IGFkZEJ1aWxkZXJGb3JS
ZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uWzBdKTsKIAogICAgICAgICBhd2FpdCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2aXNpb24p
OwpAQCAtNzk3LDQgKzg3OCw0OCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1h
bmFseXNpcy10YXNrIHdpdGggbm9kZSBwcml2aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICAg
ICAgfSkKICAgICAgICAgfSk7CiAgICAgfSk7CisKKyAgICBpdCgnc2hvdWxkIHJlamVjdCB3aXRo
ICJVbnN1cHBvcnRlZFJlcGV0aXRpb25UeXBlIiB3aGVuIHJlcGV0aXRpb24gdHlwZSBpcyBub3Qg
c3VwcG9ydGVkIHVuZGVyIHRyaWdnZXJhYmxlIGNvbmZpZ3VyYXRpb24nLCBhc3luYyAoKSA9PiB7
CisgICAgICAgIGNvbnN0IHdlYmtpdElkID0gMTsKKyAgICAgICAgY29uc3QgcGxhdGZvcm1JZCA9
IDE7CisgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlSWQgPSAxMjM0OworCisgICAgICAgIGNvbnN0
IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3Rl
c3RzJywge25hbWU6ICdTdWl0ZSd9KTsKKyAgICAgICAgY29uc3QgdGVzdFJvdyA9IGF3YWl0IGRi
LnNlbGVjdEZpcnN0Um93KCd0ZXN0cycsIHtuYW1lOiAnU3VpdGUnfSk7CisgICAgICAgIGNvbnN0
IHRlc3RJZCA9IHRlc3RSb3cuaWQ7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgncmVwb3NpdG9y
aWVzJywge2lkOiB3ZWJraXRJZCwgbmFtZTogJ1dlYktpdCd9KTsKKyAgICAgICAgYXdhaXQgZGIu
aW5zZXJ0KCdwbGF0Zm9ybXMnLCB7aWQ6IHBsYXRmb3JtSWQsIG5hbWU6ICdzb21lIHBsYXRmb3Jt
J30pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2J1aWxkX3RyaWdnZXJhYmxlcycsIHtpZDog
MTIzNCwgbmFtZTogJ3Rlc3QtdHJpZ2dlcmFibGUnfSk7CisgICAgICAgIGF3YWl0IGRiLmluc2Vy
dCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91cHMnLCB7aWQ6IDIzNDUsIG5hbWU6ICd3ZWJr
aXQtb25seScsIHRyaWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlkfSk7CisgICAgICAgIGF3YWl0IGRi
Lmluc2VydCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzJywge3JlcG9zaXRvcnk6IHdlYmtpdElk
LCBncm91cDogMjM0NX0pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2Nv
bmZpZ3VyYXRpb25zJywge2lkOiAxLCB0ZXN0OiB0ZXN0SWQsIHBsYXRmb3JtOiBwbGF0Zm9ybUlk
LCB0cmlnZ2VyYWJsZTogdHJpZ2dlcmFibGVJZH0pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQo
J3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcycsIHtjb25maWdyZXBl
dGl0aW9uX2NvbmZpZzogMSwgY29uZmlncmVwZXRpdGlvbl90eXBlOiAnYWx0ZXJuYXRpbmcnfSk7
CisgICAgICAgIGF3YWl0IGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uWzBd
KTsKKworICAgICAgICBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBp
L3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2aXNpb24pOworICAgICAgICBhd2FpdCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCBhbm90aGVyUmVwb3J0V2l0aFJl
dmlzaW9uKTsKKyAgICAgICAgYXdhaXQgTWFuaWZlc3QuZmV0Y2goKTsKKworICAgICAgICBjb25z
dCB0ZXN0ID0gVGVzdC5maW5kQnlJZCh0ZXN0SWQpOworICAgICAgICBjb25zdCBzb21lUGxhdGZv
cm0gPSBQbGF0Zm9ybS5maW5kQnlJZChwbGF0Zm9ybUlkKTsKKyAgICAgICAgY29uc3QgY29uZmln
Um93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0
cmljOiB0ZXN0Lm1ldHJpY3MoKVswXS5pZCgpLCBwbGF0Zm9ybTogc29tZVBsYXRmb3JtLmlkKCl9
KTsKKyAgICAgICAgY29uc3QgdGVzdFJ1bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1
bnMnLCB7Y29uZmlnOiBjb25maWdSb3dbJ2lkJ119KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKHRlc3RSdW5zLmxlbmd0aCwgMik7CisKKyAgICAgICAgY29uc3Qgb25lUmV2aXNpb25TZXQg
PSB7W3dlYmtpdElkXToge3JldmlzaW9uOiAnMTkxNjIyJ319OworICAgICAgICBjb25zdCBhbm90
aGVyUmV2aXNpb25TZXQgPSB7W3dlYmtpdElkXToge3JldmlzaW9uOiAnMTkxNjIzJ319OworICAg
ICAgICBhd2FpdCBhc3NlcnRUaHJvd3MoJ1Vuc3VwcG9ydGVkUmVwZXRpdGlvblR5cGUnLCAoKSA9
PiB7CisgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRl
LWFuYWx5c2lzLXRhc2snLCB7CisgICAgICAgICAgICAgICAgbmFtZTogJ2NvbmZpcm0nLAorICAg
ICAgICAgICAgICAgIHJlcGV0aXRpb25Db3VudDogMiwKKyAgICAgICAgICAgICAgICB0ZXN0R3Jv
dXBOYW1lOiAnQ29uZmlybScsCisgICAgICAgICAgICAgICAgcmV2aXNpb25TZXRzOiBbb25lUmV2
aXNpb25TZXQsIGFub3RoZXJSZXZpc2lvblNldF0sCisgICAgICAgICAgICAgICAgcmVwZXRpdGlv
blR5cGU6ICdwYXJhbGxlbCcsCisgICAgICAgICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBd
WydpZCddLAorICAgICAgICAgICAgICAgIGVuZFJ1bjogdGVzdFJ1bnNbMV1bJ2lkJ10sCisgICAg
ICAgICAgICAgICAgbmVlZHNOb3RpZmljYXRpb246IHRydWUKKyAgICAgICAgICAgIH0pCisgICAg
ICAgIH0pOworICAgIH0pOwogfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpz
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1j
cmVhdGUtdGVzdC1ncm91cC10ZXN0cy5qcwppbmRleCBiYjIyNDI5NjMwNTJkMThmMDU3N2FkZGQ0
NGNlM2MzNjFkZjE0NGQ5Li4yM2NkYmQ3NzE1YjU0NzQ1MDdjMzRjNzhjZjljNDlkMTUwZGIzYTdi
IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZp
bGVnZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAt
dGVzdHMuanMKQEAgLTEwMSw4ICsxMDEsOCBAQCBmdW5jdGlvbiBhZGRUcmlnZ2VyYWJsZUFuZENy
ZWF0ZVRhc2sobmFtZSwgd2Via2l0UmV2aXNpb25zKQogICAgICAgICAnd29ya2VyUGFzc3dvcmQn
OiAnYW5vdGhlclBhc3N3b3JkJywKICAgICAgICAgJ3RyaWdnZXJhYmxlJzogJ2J1aWxkLXdlYmtp
dCcsCiAgICAgICAgICdjb25maWd1cmF0aW9ucyc6IFsKLSAgICAgICAgICAgIHt0ZXN0OiBNb2Nr
RGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpfSwK
LSAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2Nr
RGF0YS5vdGhlclBsYXRmb3JtSWQoKX0sCisgICAgICAgICAgICB7dGVzdDogTW9ja0RhdGEuc29t
ZVRlc3RJZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSwgaWQ6IE1vY2tE
YXRhLnNvbWVUcmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb25JZCgpLCBzdXBwb3J0ZWRSZXBldGl0aW9u
VHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddfSwKKyAgICAgICAgICAgIHt0ZXN0
OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5vdGhlclBsYXRmb3Jt
SWQoKSwgaWQ6IE1vY2tEYXRhLm90aGVyVHJpZ2dlcmFibGVDb25maWd1cmF0aW9uSWQoKSwgc3Vw
cG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXX0sCiAg
ICAgICAgIF0sCiAgICAgICAgICdyZXBvc2l0b3J5R3JvdXBzJzogWwogICAgICAgICAgICAge25h
bWU6ICdvcy1vbmx5JywgYWNjZXB0c1Jvb3Q6IHRydWUsIHJlcG9zaXRvcmllczogWwpAQCAtMTQ2
NSw3ICsxNDY1LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91
cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKICAgICB9KTsKIAotICAgIGl0KCdz
aG91bGQgcmVqZWN0IHdpdGggIkludmFsaWRSZXBldGl0aW9uVHlwZSIgaWYgcmVwZXRpdGlvbiB0
eXBlIGlzIG5vdCAiYWx0ZXJuYXRpbmciIG9yICJzZXF1ZW50aWFsIicsIGFzeW5jICgpID0+IHsK
KyAgICBpdCgnc2hvdWxkIHJlamVjdCB3aXRoICJJbnZhbGlkUmVwZXRpdGlvblR5cGUiIGlmIHJl
cGV0aXRpb24gdHlwZSBpcyBub3QgImFsdGVybmF0aW5nIiwgInNlcXVlbnRpYWwiIG9yICJwYXJh
bGxlbCInLCBhc3luYyAoKSA9PiB7CiAgICAgICAgIGF3YWl0IGFkZFRyaWdnZXJhYmxlQW5kQ3Jl
YXRlVGFzaygnc29tZSB0YXNrJyk7CiAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnku
YWxsKCkuZmlsdGVyKChyZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5Lm5hbWUoKSA9PSAnV2ViS2l0
JylbMF07CiAgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IFt7W3dlYmtpdC5pZCgpXToge3Jl
dmlzaW9uOiAnMTkxNjIyJ319LCB7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIzJ319
XTsKQEAgLTE0NzcsNiArMTQ3NywxOCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0
ZS10ZXN0LWdyb3VwJywgZnVuY3Rpb24gKCkgewogICAgICAgICB9KTsKICAgICB9KTsKIAorICAg
IGl0KCdzaG91bGQgcmVqZWN0IHdpdGggIlVuc3VwcG9ydGVkUmVwZXRpdGlvblR5cGUiIGlmIHJl
cGV0aXRpb24gdHlwZSBpcyAicGFyYWxsZWwiIGJ1dCB0cmlnZ2VyYWJsZSBjb25maWd1cmF0aW9u
IG9ubHkgc3VwcG9ydHMgInNlcXVlbnRpYWwiIGFuZCAiYWx0ZXJuYXRpbmciJywgYXN5bmMgKCkg
PT4geworICAgICAgICBhd2FpdCBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2soJ3NvbWUgdGFz
aycpOworICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmFsbCgpLmZpbHRlcigocmVw
b3NpdG9yeSkgPT4gcmVwb3NpdG9yeS5uYW1lKCkgPT0gJ1dlYktpdCcpWzBdOworICAgICAgICBj
b25zdCByZXZpc2lvblNldHMgPSBbe1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMid9
fSwge1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMyd9fV07CisKKyAgICAgICAgYXdh
aXQgYXNzZXJ0VGhyb3dzKCdVbnN1cHBvcnRlZFJlcGV0aXRpb25UeXBlJywgKCkgPT4geworICAg
ICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS10ZXN0LWdy
b3VwJywge25hbWU6ICd0ZXN0JywgdGFza05hbWU6ICdvdGhlciB0YXNrJywKKyAgICAgICAgICAg
ICAgICBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSwgdGVzdDogTW9ja0RhdGEu
c29tZVRlc3RJZCgpLAorICAgICAgICAgICAgICAgIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVlLCBy
ZXBldGl0aW9uVHlwZTogJ3BhcmFsbGVsJywgcmVwZXRpdGlvbkNvdW50OiAyLCByZXZpc2lvblNl
dHN9KQorICAgICAgICB9KTsKKyAgICB9KTsKKwogICAgIGl0KCdzaG91bGQgcmVqZWN0IHdpdGgg
IkludmFsaWRSZXBldGl0aW9uVHlwZSIgd2hlbiBjcmVhdGluZyBhIHRlc3QgZ3JvdXAgd2l0aCBh
IGJhZCByZXBldGl0aW9uIHR5cGUgZm9yIGFuIGV4aXN0aW5nIGFuYWx5c2lzIHRhc2snLCBhc3lu
YyAoKSA9PiB7CiAgICAgICAgIGNvbnN0IHRhc2tJZCA9IGF3YWl0IGFkZFRyaWdnZXJhYmxlQW5k
Q3JlYXRlVGFzaygnc29tZSB0YXNrJyk7CiAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRv
cnkuYWxsKCkuZmlsdGVyKChyZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5Lm5hbWUoKSA9PSAnV2Vi
S2l0JylbMF07CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL3ByaXZpbGVnZWQtYXBpLXVwZGF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGRhdGUtdGVzdC1n
cm91cC10ZXN0cy5qcwppbmRleCBiNmRjYWUyZjIxODY1MmZjOTI5N2RkY2E1Mzg3MjA1ZjNiYzli
MzA4Li42MWE0ZTUxNWJkNjIyMjgyOWQ2ZGFlOGRjOTViNmVkY2ViOTFjMjYwIDEwMDY0NAotLS0g
YS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVw
ZGF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBkYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMKQEAg
LTk2LDggKzk2LDggQEAgYXN5bmMgZnVuY3Rpb24gYWRkVHJpZ2dlcmFibGVBbmRDcmVhdGVUYXNr
KG5hbWUsIHdlYmtpdFJldmlzaW9ucykKICAgICAgICAgJ3dvcmtlclBhc3N3b3JkJzogJ2Fub3Ro
ZXJQYXNzd29yZCcsCiAgICAgICAgICd0cmlnZ2VyYWJsZSc6ICdidWlsZC13ZWJraXQnLAogICAg
ICAgICAnY29uZmlndXJhdGlvbnMnOiBbCi0gICAgICAgICAgICB7dGVzdDogTW9ja0RhdGEuc29t
ZVRlc3RJZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKX0sCi0gICAgICAg
ICAgICB7dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEub3Ro
ZXJQbGF0Zm9ybUlkKCl9LAorICAgICAgICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQo
KSwgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCksIGlkOiBNb2NrRGF0YS5zb21l
VHJpZ2dlcmFibGVDb25maWd1cmF0aW9uSWQoKSwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBb
J2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXX0sCisgICAgICAgICAgICB7dGVzdDogTW9ja0Rh
dGEuc29tZVRlc3RJZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEub3RoZXJQbGF0Zm9ybUlkKCksIGlk
OiBNb2NrRGF0YS5vdGhlclRyaWdnZXJhYmxlQ29uZmlndXJhdGlvbklkKCksIHN1cHBvcnRlZFJl
cGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ119LAogICAgICAgICBd
LAogICAgICAgICAncmVwb3NpdG9yeUdyb3Vwcyc6IFsKICAgICAgICAgICAgIHtuYW1lOiAnb3Mt
b25seScsIGFjY2VwdHNSb290OiB0cnVlLCByZXBvc2l0b3JpZXM6IFsKZGlmZiAtLWdpdCBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5q
cyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2st
ZGF0YS5qcwppbmRleCBlYWVlODFhMzQwYjE4NjJiMWZhMTJiMzY3MjY3ZGNhODUzYzFjMzY0Li42
MjI4NTJjNDdlMTA3ODg5ZTA5N2ExYjZkMzAxYjFiNjVkZDRiMDE2IDEwMDY0NAotLS0gYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMK
KysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9j
ay1kYXRhLmpzCkBAIC0xMSw2ICsxMSw4IEBAIE1vY2tEYXRhID0gewogICAgIHNvbWVUZXN0SWQo
KSB7IHJldHVybiAyMDA7IH0sCiAgICAgc29tZVBsYXRmb3JtSWQoKSB7IHJldHVybiA2NTsgfSwK
ICAgICBvdGhlclBsYXRmb3JtSWQoKSB7IHJldHVybiAxMDE7IH0sCisgICAgc29tZVRyaWdnZXJh
YmxlQ29uZmlndXJhdGlvbklkKCkgeyByZXR1cm4gMzAxOyB9LAorICAgIG90aGVyVHJpZ2dlcmFi
bGVDb25maWd1cmF0aW9uSWQoKSB7IHJldHVybiAzMDI7IH0sCiAgICAgbWFjb3NSZXBvc2l0b3J5
SWQoKSB7IHJldHVybiA5OyB9LAogICAgIHdlYmtpdFJlcG9zaXRvcnlJZCgpIHsgcmV0dXJuIDEx
OyB9LAogICAgIG93bmVkSlNDUmVwb3NpdG9yeUlkKCkgeyByZXR1cm4gMjEzOyB9LApAQCAtMzI1
LDYgKzMyNyw3IEBAIE1vY2tEYXRhID0gewogICAgICAgICByZXR1cm4gewogICAgICAgICAgICAg
J3RyaWdnZXJhYmxlTmFtZSc6ICdidWlsZC13ZWJraXQnLAogICAgICAgICAgICAgJ2xvb2tiYWNr
Q291bnQnOiAyLAorICAgICAgICAgICAgJ3JlcGV0aXRpb25UeXBlc0ZvclNjaGVkdWxpbmcnOiBb
J2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXSwKICAgICAgICAgICAgICdidWlsZFJlcXVlc3RB
cmd1bWVudCc6ICdidWlsZC1yZXF1ZXN0LWlkJywKICAgICAgICAgICAgICdyZXBvc2l0b3J5R3Jv
dXBzJzogewogICAgICAgICAgICAgICAgICd3ZWJraXQtc3ZuJzogewpAQCAtMzU2LDYgKzM1OSw3
IEBAIE1vY2tEYXRhID0gewogICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgJ3RyaWdnZXJh
YmxlTmFtZSc6ICdidWlsZC13ZWJraXQnLAogICAgICAgICAgICAgJ2xvb2tiYWNrQ291bnQnOiAy
LAorICAgICAgICAgICAgJ3JlcGV0aXRpb25UeXBlc0ZvclNjaGVkdWxpbmcnOiBbJ2FsdGVybmF0
aW5nJywgJ3NlcXVlbnRpYWwnXSwKICAgICAgICAgICAgICdidWlsZFJlcXVlc3RBcmd1bWVudCc6
ICdidWlsZC1yZXF1ZXN0LWlkJywKICAgICAgICAgICAgICdyZXBvc2l0b3J5R3JvdXBzJzogewog
ICAgICAgICAgICAgICAgICd3ZWJraXQtc3ZuJzogewpAQCAtNDAxLDYgKzQwNSw3IEBAIE1vY2tE
YXRhID0gewogICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgJ3RyaWdnZXJhYmxlTmFtZSc6
ICdidWlsZC13ZWJraXQnLAogICAgICAgICAgICAgJ2xvb2tiYWNrQ291bnQnOiAyLAorICAgICAg
ICAgICAgJ3JlcGV0aXRpb25UeXBlc0ZvclNjaGVkdWxpbmcnOiBbJ2FsdGVybmF0aW5nJywgJ3Nl
cXVlbnRpYWwnXSwKICAgICAgICAgICAgICdidWlsZFJlcXVlc3RBcmd1bWVudCc6ICdidWlsZC1y
ZXF1ZXN0LWlkJywKICAgICAgICAgICAgICdyZXBvc2l0b3J5R3JvdXBzJzogewogICAgICAgICAg
ICAgICAgICd3ZWJraXQtc3ZuJzogewpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpz
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxk
Ym90LWludGVncmF0aW9uLXRlc3RzLmpzCmluZGV4IDZkYWY1MzU0ZGQyZjcyMDc0N2Y5NmQ1M2Jj
NGEzMWNlMDVkODgyNjcuLjc2Y2JiYjIxMmZjZmMyNzVjMjNkMzJmZDE0YTAyMTQ3Y2ExNDI1ZjEg
MTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMt
c3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVz
dHMuanMKQEAgLTE0LDU1ICsxNCw1NyBAQCBjb25zdCBhZGRXb3JrZXJGb3JSZXBvcnQgPSByZXF1
aXJlKCcuL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcycpLmFkZFdvcmtlcgogY29uc3Qg
cHJlcGFyZVNlcnZlclRlc3QgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9u
cy5qcycpLnByZXBhcmVTZXJ2ZXJUZXN0OwogY29uc3QgQnJvd3NlclByaXZpbGVnZWRBUEkgPSBy
ZXF1aXJlKCcuLi9wdWJsaWMvdjMvcHJpdmlsZWdlZC1hcGkuanMnKS5Qcml2aWxlZ2VkQVBJOwog
Ci1jb25zdCBjb25maWdXaXRoT25lVGVzdGVyVHdvQnVpbGRlcnMgPSB7Ci0gICAgdHJpZ2dlcmFi
bGVOYW1lOiAnYnVpbGQtd2Via2l0JywKLSAgICBsb29rYmFja0NvdW50OiAyLAotICAgIGJ1aWxk
UmVxdWVzdEFyZ3VtZW50OiAnYnVpbGQtcmVxdWVzdC1pZCcsCi0gICAgd29ya2VyTmFtZTogJ3N5
bmMtd29ya2VyJywKLSAgICB3b3JrZXJQYXNzd29yZDogJ3Bhc3N3b3JkJywKLSAgICByZXBvc2l0
b3J5R3JvdXBzOiB7Ci0gICAgICAgICd3ZWJraXQnOiB7Ci0gICAgICAgICAgICByZXBvc2l0b3Jp
ZXM6IHsnV2ViS2l0Jzoge2FjY2VwdHNQYXRjaDogdHJ1ZX19LAotICAgICAgICAgICAgdGVzdFBy
b3BlcnRpZXM6IHsnd2snOiB7J3JldmlzaW9uJzogJ1dlYktpdCd9LCAncm9vdHMnOiB7J3Jvb3Rz
Jzoge319fSwKLSAgICAgICAgICAgIGJ1aWxkUHJvcGVydGllczogeyd3ayc6IHsncmV2aXNpb24n
OiAnV2ViS2l0J30sICd3ay1wYXRjaCc6IHsncGF0Y2gnOiAnV2ViS2l0J30sCi0gICAgICAgICAg
ICAgICAgJ2NoZWNrYm94JzogeydpZlJlcG9zaXRvcnlTZXQnOiBbJ1dlYktpdCddLCAndmFsdWUn
OiAnYnVpbGQtd2snfSwKLSAgICAgICAgICAgICAgICAnYnVpbGQtd2snOiB7J2lmUmVwb3NpdG9y
eVNldCc6IFsnV2ViS2l0J10sICd2YWx1ZSc6IHRydWV9LAotICAgICAgICAgICAgICAgICdvd25l
ZC1jb21taXRzJzogeydvd25lZFJldmlzaW9ucyc6ICdXZWJLaXQnfX0sCi0gICAgICAgICAgICBh
Y2NlcHRzUm9vdHM6IHRydWUsCi0gICAgICAgIH0KLSAgICB9LAotICAgIHR5cGVzOiB7Ci0gICAg
ICAgICdzb21lJzogewotICAgICAgICAgICAgdGVzdDogWydzb21lIHRlc3QnXSwKLSAgICAgICAg
ICAgIHByb3BlcnRpZXM6IHsndGVzdCc6ICdzb21lLXRlc3QnfSwKLSAgICAgICAgfQotICAgIH0s
Ci0gICAgYnVpbGRlcnM6IHsKLSAgICAgICAgJ2J1aWxkZXItMSc6IHsKLSAgICAgICAgICAgIGJ1
aWxkZXI6ICdzb21lIHRlc3RlcicsCi0gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7Zm9yY2VzY2hl
ZHVsZXI6ICdmb3JjZS1hYi10ZXN0cyd9LAorZnVuY3Rpb24gY29uZmlnV2l0aE9uZVRlc3RlclR3
b0J1aWxkZXJzKHRlc3RDb25maWd1cmF0aW9uc092ZXJyaWRlPVt7dHlwZXM6IFsnc29tZSddLCBw
bGF0Zm9ybXM6IFsnc29tZSBwbGF0Zm9ybSddLCBidWlsZGVyczogWydidWlsZGVyLTEnXX1dKSB7
CisgICAgcmV0dXJuIHsKKyAgICAgICAgdHJpZ2dlcmFibGVOYW1lOiAnYnVpbGQtd2Via2l0JywK
KyAgICAgICAgbG9va2JhY2tDb3VudDogMiwKKyAgICAgICAgYnVpbGRSZXF1ZXN0QXJndW1lbnQ6
ICdidWlsZC1yZXF1ZXN0LWlkJywKKyAgICAgICAgcmVwZXRpdGlvblR5cGVzRm9yU2NoZWR1bGlu
ZzogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ10sCisgICAgICAgIHdvcmtlck5hbWU6ICdz
eW5jLXdvcmtlcicsCisgICAgICAgIHdvcmtlclBhc3N3b3JkOiAncGFzc3dvcmQnLAorICAgICAg
ICByZXBvc2l0b3J5R3JvdXBzOiB7CisgICAgICAgICAgICAnd2Via2l0JzogeworICAgICAgICAg
ICAgICAgIHJlcG9zaXRvcmllczogeydXZWJLaXQnOiB7YWNjZXB0c1BhdGNoOiB0cnVlfX0sCisg
ICAgICAgICAgICAgICAgdGVzdFByb3BlcnRpZXM6IHsnd2snOiB7J3JldmlzaW9uJzogJ1dlYktp
dCd9LCAncm9vdHMnOiB7J3Jvb3RzJzoge319fSwKKyAgICAgICAgICAgICAgICBidWlsZFByb3Bl
cnRpZXM6IHsnd2snOiB7J3JldmlzaW9uJzogJ1dlYktpdCd9LCAnd2stcGF0Y2gnOiB7J3BhdGNo
JzogJ1dlYktpdCd9LAorICAgICAgICAgICAgICAgICAgICAnY2hlY2tib3gnOiB7J2lmUmVwb3Np
dG9yeVNldCc6IFsnV2ViS2l0J10sICd2YWx1ZSc6ICdidWlsZC13ayd9LAorICAgICAgICAgICAg
ICAgICAgICAnYnVpbGQtd2snOiB7J2lmUmVwb3NpdG9yeVNldCc6IFsnV2ViS2l0J10sICd2YWx1
ZSc6IHRydWV9LAorICAgICAgICAgICAgICAgICAgICAnb3duZWQtY29tbWl0cyc6IHsnb3duZWRS
ZXZpc2lvbnMnOiAnV2ViS2l0J319LAorICAgICAgICAgICAgICAgIGFjY2VwdHNSb290czogdHJ1
ZSwKKyAgICAgICAgICAgIH0KICAgICAgICAgfSwKLSAgICAgICAgJ2J1aWxkZXItMic6IHsKLSAg
ICAgICAgICAgIGJ1aWxkZXI6ICdzb21lIGJ1aWxkZXInLAotICAgICAgICAgICAgcHJvcGVydGll
czoge2ZvcmNlc2NoZWR1bGVyOiAnZm9yY2UtYWItYnVpbGRzJ30sCisgICAgICAgIHR5cGVzOiB7
CisgICAgICAgICAgICAnc29tZSc6IHsKKyAgICAgICAgICAgICAgICB0ZXN0OiBbJ3NvbWUgdGVz
dCddLAorICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHsndGVzdCc6ICdzb21lLXRlc3QnfSwK
KyAgICAgICAgICAgIH0KICAgICAgICAgfSwKLSAgICAgICAgJ2J1aWxkZXItMyc6IHsKLSAgICAg
ICAgICAgIGJ1aWxkZXI6ICdvdGhlciBidWlsZGVyJywKLSAgICAgICAgICAgIHByb3BlcnRpZXM6
IHtmb3JjZXNjaGVkdWxlcjogJ2ZvcmNlLWFiLWJ1aWxkcyd9LAorICAgICAgICBidWlsZGVyczog
eworICAgICAgICAgICAgJ2J1aWxkZXItMSc6IHsKKyAgICAgICAgICAgICAgICBidWlsZGVyOiAn
c29tZSB0ZXN0ZXInLAorICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtmb3JjZXNjaGVkdWxl
cjogJ2ZvcmNlLWFiLXRlc3RzJ30sCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2J1aWxk
ZXItMic6IHsKKyAgICAgICAgICAgICAgICBidWlsZGVyOiAnc29tZSBidWlsZGVyJywKKyAgICAg
ICAgICAgICAgICBwcm9wZXJ0aWVzOiB7Zm9yY2VzY2hlZHVsZXI6ICdmb3JjZS1hYi1idWlsZHMn
fSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnYnVpbGRlci0zJzogeworICAgICAgICAg
ICAgICAgIGJ1aWxkZXI6ICdvdGhlciBidWlsZGVyJywKKyAgICAgICAgICAgICAgICBwcm9wZXJ0
aWVzOiB7Zm9yY2VzY2hlZHVsZXI6ICdmb3JjZS1hYi1idWlsZHMnfSwKKyAgICAgICAgICAgIH0s
CiAgICAgICAgIH0sCi0gICAgfSwKLSAgICBidWlsZENvbmZpZ3VyYXRpb25zOiBbCi0gICAgICAg
IHtwbGF0Zm9ybXM6IFsnc29tZSBwbGF0Zm9ybSddLCBidWlsZGVyczogWydidWlsZGVyLTInLCAn
YnVpbGRlci0zJ119LAotICAgIF0sCi0gICAgdGVzdENvbmZpZ3VyYXRpb25zOiBbCi0gICAgICAg
IHt0eXBlczogWydzb21lJ10sIHBsYXRmb3JtczogWydzb21lIHBsYXRmb3JtJ10sIGJ1aWxkZXJz
OiBbJ2J1aWxkZXItMSddfSwKLSAgICBdLAotfTsKKyAgICAgICAgYnVpbGRDb25maWd1cmF0aW9u
czogWworICAgICAgICAgICAge3BsYXRmb3JtczogWydzb21lIHBsYXRmb3JtJ10sIGJ1aWxkZXJz
OiBbJ2J1aWxkZXItMicsICdidWlsZGVyLTMnXX0sCisgICAgICAgIF0sCisgICAgICAgIHRlc3RD
b25maWd1cmF0aW9uczogdGVzdENvbmZpZ3VyYXRpb25zT3ZlcnJpZGUKKyAgICB9OworfQogCiBj
b25zdCBjb25maWdXaXRoUGxhdGZvcm1OYW1lID0gewogICAgIHRyaWdnZXJhYmxlTmFtZTogJ2J1
aWxkLXdlYmtpdCcsCiAgICAgbG9va2JhY2tDb3VudDogMiwKICAgICBidWlsZFJlcXVlc3RBcmd1
bWVudDogJ2J1aWxkLXJlcXVlc3QtaWQnLAorICAgIHJlcGV0aXRpb25UeXBlc0ZvclNjaGVkdWxp
bmc6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddLAogICAgIHdvcmtlck5hbWU6ICdzeW5j
LXdvcmtlcicsCiAgICAgd29ya2VyUGFzc3dvcmQ6ICdwYXNzd29yZCcsCiAgICAgcGxhdGZvcm1B
cmd1bWVudDogJ3BsYXRmb3JtLW5hbWUnLApAQCAtMTA5LDYgKzExMSw3IEBAIGNvbnN0IGNvbmZp
Z1dpdGhUd29UZXN0ZXJzID0gewogICAgIHRyaWdnZXJhYmxlTmFtZTogJ2J1aWxkLXdlYmtpdCcs
CiAgICAgbG9va2JhY2tDb3VudDogMiwKICAgICBidWlsZFJlcXVlc3RBcmd1bWVudDogJ2J1aWxk
LXJlcXVlc3QtaWQnLAorICAgIHJlcGV0aXRpb25UeXBlc0ZvclNjaGVkdWxpbmc6IFsnYWx0ZXJu
YXRpbmcnLCAnc2VxdWVudGlhbCddLAogICAgIHdvcmtlck5hbWU6ICdzeW5jLXdvcmtlcicsCiAg
ICAgd29ya2VyUGFzc3dvcmQ6ICdwYXNzd29yZCcsCiAgICAgcmVwb3NpdG9yeUdyb3VwczogewpA
QCAtMTUwLDcgKzE1Myw3IEBAIGZ1bmN0aW9uIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3QsIG1ldGhvZCwgdXJsLCBjb250ZW50VG9SZXNvbHZlKQogICAgIHJlcXVlc3QucmVzb2x2ZShj
b250ZW50VG9SZXNvbHZlKTsKIH0KIAotZnVuY3Rpb24gY3JlYXRlVHJpZ2dlcmFibGUoY29uZmln
ID0gY29uZmlnV2l0aE9uZVRlc3RlclR3b0J1aWxkZXJzKQorZnVuY3Rpb24gY3JlYXRlVHJpZ2dl
cmFibGUoY29uZmlnID0gY29uZmlnV2l0aE9uZVRlc3RlclR3b0J1aWxkZXJzKCkpCiB7CiAgICAg
bGV0IHRyaWdnZXJhYmxlOwogICAgIHJldHVybiBNb2NrRGF0YS5hZGRNb2NrQ29uZmlndXJhdGlv
bihUZXN0U2VydmVyLmRhdGFiYXNlKCkpLnRoZW4oKCkgPT4gewpAQCAtMTc4LDcgKzE4MSw3IEBA
IGZ1bmN0aW9uIGNyZWF0ZVRlc3RHcm91cCh0YXNrX25hbWU9J2N1c3RvbSB0YXNrJykgewogICAg
IH0pOwogfQogCi1hc3luYyBmdW5jdGlvbiBjcmVhdGVUZXN0R3JvdXBXaXRoUGF0Y2goKQorYXN5
bmMgZnVuY3Rpb24gY3JlYXRlVGVzdEdyb3VwV2l0aFBhdGNoKHJlcGV0aXRpb25UeXBlPSdhbHRl
cm5hdGluZycpCiB7CiAgICAgY29uc3QgcGF0Y2hGaWxlID0gYXdhaXQgVGVtcG9yYXJ5RmlsZS5t
YWtlVGVtcG9yYXJ5RmlsZSgncGF0Y2guZGF0JywgJ3BhdGNoIGZpbGUnKTsKICAgICBjb25zdCBv
cmlnaW5hbFByaXZpbGVnZWRBUEkgPSBnbG9iYWwuUHJpdmlsZWdlZEFQSTsKQEAgLTE5Myw3ICsx
OTYsNyBAQCBhc3luYyBmdW5jdGlvbiBjcmVhdGVUZXN0R3JvdXBXaXRoUGF0Y2goKQogICAgIHNl
dDEuc2V0UmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCwgJzE5MTYyMicsIHVwbG9hZGVkUGF0
Y2hGaWxlKTsKICAgICBjb25zdCBzZXQyID0gbmV3IEN1c3RvbUNvbW1pdFNldDsKICAgICBzZXQy
LnNldFJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQsICcxOTE2MjInKTsKLSAgICBjb25zdCB0
YXNrID0gYXdhaXQgVGVzdEdyb3VwLmNyZWF0ZVdpdGhUYXNrKCdjdXN0b20gdGFzaycsIFBsYXRm
b3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpLCBzb21lVGVzdCwgJ3NvbWUg
Z3JvdXAnLCAyLCAnYWx0ZXJuYXRpbmcnLCBbc2V0MSwgc2V0Ml0pOworICAgIGNvbnN0IHRhc2sg
PSBhd2FpdCBUZXN0R3JvdXAuY3JlYXRlV2l0aFRhc2soJ2N1c3RvbSB0YXNrJywgUGxhdGZvcm0u
ZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSksIHNvbWVUZXN0LCAnc29tZSBncm91
cCcsIDIsIHJlcGV0aXRpb25UeXBlLCBbc2V0MSwgc2V0Ml0pOwogCiAgICAgcmV0dXJuIFRlc3RH
cm91cC5maW5kQWxsQnlUYXNrKHRhc2suaWQoKSlbMF07CiB9CkBAIC0yMzksNyArMjQyLDYgQEAg
ZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIFByaXZpbGVn
ZWRBUEkuY29uZmlndXJlKCd0ZXN0JywgJ3Bhc3N3b3JkJyk7CiAgICAgfSk7CiAKLQogICAgIGl0
KCdzaG91bGQgbm90IHNjaGVkdWxlIG9uIGFub3RoZXIgYnVpbGRlciBpZiB0aGUgYnVpbGQgd2Fz
IHNjaGVkdWxlZCBvbiBvbmUgYnVpbGRlciBiZWZvcmUnLCAoKSA9PiB7CiAgICAgICAgIGNvbnN0
IHJlcXVlc3RzID0gTW9ja1JlbW90ZUFQSS5yZXF1ZXN0czsKICAgICAgICAgbGV0IGZpcnN0VGVz
dEdyb3VwOwpAQCAtNjgzLDYgKzY4NSw0MDQgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxs
Um9vdEZpbGVzKCksIFtvdGhlcldlYmtpdFJvb3RdKTsKICAgICB9KTsKIAorICAgIGl0KCdzaG91
bGQgYnVpbGQgcm9vdCBidXQgYm90IHNjaGVkdWxlIHRlc3RzIGZvciAicGFyYWxsZWwiIHRlc3Qg
Z3JvdXAgb24gdHJpZ2dlcmFibGUgdGhhdCBvbmx5IHNjaGVkdWxlcyB0ZXN0cyBmb3IgImFsdGVy
bmF0aW5nIiBhbmQgInNlcXVlbnRpYWwiIHRlc3QgZ3JvdXBzJywgYXN5bmMgKCkgPT4geworICAg
ICAgICBjb25zdCByZXF1ZXN0cyA9IE1vY2tSZW1vdGVBUEkucmVxdWVzdHM7CisgICAgICAgIGxl
dCBzeW5jUHJvbWlzZTsKKyAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBhd2FpdCBjcmVhdGVU
cmlnZ2VyYWJsZShjb25maWdXaXRoT25lVGVzdGVyVHdvQnVpbGRlcnMoWworICAgICAgICAgICAg
e2J1aWxkZXJzOiBbJ2J1aWxkZXItMSddLCB0eXBlczogW3t0eXBlOiAnc29tZScsIHN1cHBvcnRl
ZFJlcGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdwYXJhbGxlbCddfV0sIHBsYXRmb3Jt
czogWydzb21lIHBsYXRmb3JtJ119XSkpOworICAgICAgICBjb25zdCBmaXJzdEJ1aWxkTnVtYmVy
ID0gMTIzOworICAgICAgICBjb25zdCBzZWNvbmRCdWlsZE51bWJlciA9IDEyNDsKKyAgICAgICAg
bGV0IHRlc3RHcm91cCA9IGF3YWl0IGNyZWF0ZVRlc3RHcm91cFdpdGhQYXRjaCgncGFyYWxsZWwn
KTsKKworICAgICAgICBjb25zdCB0YXNrSWQgPSB0ZXN0R3JvdXAudGFzaygpLmlkKCk7CisgICAg
ICAgIGxldCB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9z
aXRvcnlJZCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJl
cXVlc3RzKCkubGVuZ3RoLCA2KTsKKworICAgICAgICBsZXQgYnVpbGRSZXF1ZXN0ID0gdGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKKyAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1
aWxkKCkpOworICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
bnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVz
Y3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKKworICAgICAgICBsZXQgY29tbWl0U2V0ID0gYnVpbGRSZXF1
ZXN0LmNvbW1pdFNldCgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJl
dmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGxldCB3ZWJr
aXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKKyAgICAgICAg
YXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZp
bGVzKCksIFtdKTsKKworICAgICAgICBsZXQgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAu
YnVpbGRSZXF1ZXN0cygpWzFdOworICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNC
dWlsZCgpKTsKKyAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgp
LCAnV2FpdGluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVl
c3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworCisgICAgICAg
IGxldCBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCks
IG51bGwpOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RG
aWxlcygpLCBbXSk7CisKKyAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3lu
Y2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RC
dWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKKyAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOworICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMyk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOworICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CisgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVu
Z3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKKyAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7fSk7CisgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKKyAgICAgICAgYXdhaXQgTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9mb3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywg
J09LJyk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6
ICcxJywgJ2pzb25ycGMnOiAnMi4wJywgJ21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgorICAg
ICAgICAgICAgICAgIHsnd2snOiAnMTkxNjIyJywgJ3drLXBhdGNoJzogUmVtb3RlQVBJLnVybCgn
L2FwaS91cGxvYWRlZC1maWxlLzEuZGF0JyksICdjaGVja2JveCc6ICdidWlsZC13aycsICdidWls
ZC13ayc6IHRydWUsICdidWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2VzY2hlZHVsZXInOiAn
Zm9yY2UtYWItYnVpbGRzJ319KTsKKyAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDEwKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CisgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksCisgICAgICAgICAgICBNb2NrRGF0YS5wZW5k
aW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWls
ZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxfSkpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVy
IGJ1aWxkZXInKSwge30pOworICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMp
OworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKKyAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKKyAgICAgICAgICAgIE1vY2tEYXRhLnJ1
bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1
aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkTnVtYmVyOiBmaXJzdEJ1aWxkTnVtYmVy
LCBzdGF0dXNEZXNjcmlwdGlvbjogJ0J1aWxkaW5nIFdlYktpdCd9KSk7CisgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CisgICAgICAgIGF3YWl0IHN5bmNQcm9t
aXNlOworCisgICAgICAgIGxldCB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9y
VGFzayh0YXNrSWQsIHRydWUpOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3Jv
dXBzLmxlbmd0aCwgMSk7CisgICAgICAgIHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CisgICAg
ICAgIHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9y
eUlkKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVz
dHMoKS5sZW5ndGgsIDYpOworCisgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWls
ZFJlcXVlc3RzKClbMF07CisgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsK
KyAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRh
LnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgMTI0KSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgJ0J1aWxkaW5nIFdlYktpdCcp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CisKKyAgICAgICAgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNo
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOworICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFu
Y2VvZiBVcGxvYWRlZEZpbGUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0
Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
Y29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworCisgICAgICAgIG90
aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKKyAgICAgICAg
YXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAgICAgIGFzc2VydCghb3Ro
ZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9u
KCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
YnVpbGRJZCgpLCBudWxsKTsKKworICAgICAgICBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRS
ZXF1ZXN0LmNvbW1pdFNldCgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisKKyAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXNldCgpOworICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5j
ZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1
aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOworICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlc2V0KCk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAzKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CisgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdvdGhlciBidWlsZGVyJyksIHt9KTsKKyAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDYpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOworICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRh
LnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCisgICAgICAgICAgICBNb2NrRGF0
YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29t
ZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZFRhZzogZmlyc3RCdWlsZE51bWJl
ciwgc3RhdHVzRGVzY3JpcHRpb246ICdDb21waWxpbmcgV1RGJ30pKTsKKyAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWls
ZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOworICAgICAgICBhd2FpdCBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgOSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzZdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30p
OworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CisgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAxMik7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzldLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIp
LCB7fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCisgICAgICAg
ICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklE
Rm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZFRhZzogZmly
c3RCdWlsZE51bWJlciwgc3RhdHVzRGVzY3JpcHRpb246ICdDb21waWxpbmcgV1RGJ30pKTsKKyAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKKyAgICAgICAgYXdh
aXQgc3luY1Byb21pc2U7CisKKyAgICAgICAgYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0
YXNrSWQsIHRydWUpOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxl
bmd0aCwgMSk7CisgICAgICAgIHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CisgICAgICAgIHdl
YmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5s
ZW5ndGgsIDYpOworCisgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKClbMF07CisgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAgICAg
ICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1
c1VybCgnc29tZSBidWlsZGVyJywgZmlyc3RCdWlsZE51bWJlcikpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksICdDb21waWxpbmcg
V1RGJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKKworICAgICAgICBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CisgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBp
bnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJr
aXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisKKyAgICAg
ICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOworICAg
ICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAgICAgICAgYXNzZXJ0
KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3Jp
cHRpb24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5idWlsZElkKCksIG51bGwpOworCisgICAgICAgIG90aGVyQ29tbWl0U2V0ID0gb3RoZXJC
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5
KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKworICAgICAgICBhd2Fp
dCB1cGxvYWRSb290KHBhcnNlSW50KGJ1aWxkUmVxdWVzdC5pZCgpKSwgZmlyc3RCdWlsZE51bWJl
cik7CisKKyAgICAgICAgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2so
dGFza0lkLCB0cnVlKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOworICAgICAgICB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOworICAgICAgICB3
ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgp
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCku
bGVuZ3RoLCA2KTsKKworICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpWzBdOworICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAg
ICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0
YXR1c1VybCgnc29tZSBidWlsZGVyJywgZmlyc3RCdWlsZE51bWJlcikpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksICdDb21waWxp
bmcgV1RGJyk7CisgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKKworICAgICAgICBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CisgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBp
bnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJr
aXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgIGxldCB3ZWJraXRSb290
ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CisgICAgICAgIGFzc2VydCh3
ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwor
CisgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsx
XTsKKyAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAgICAg
IGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBu
dWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1
c0Rlc2NyaXB0aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJC
dWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKworICAgICAgICBvdGhlckNvbW1pdFNldCA9
IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjIn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisKKyAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOworICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJh
YmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0
YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkp
OworICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAzKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7
fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKKyAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5k
aW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKKyAgICAgICAgYXdhaXQgTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1szXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAy
KSwge30pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dF
VCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCisgICAgICAg
ICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJ
REZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMSwgYnVpbGRUYWc6IGZp
cnN0QnVpbGROdW1iZXJ9KSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywg
MiksIHt9KTsKKyAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwor
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2FwaS92Mi9m
b3JjZXNjaGVkdWxlcnMvZm9yY2UtYWItYnVpbGRzJywgJ09LJyk7CisgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeydpZCc6ICcyJywgJ2pzb25ycGMnOiAnMi4wJywg
J21ldGhvZCc6ICdmb3JjZScsICdwYXJhbXMnOgorICAgICAgICAgICAgICAgIHsnd2snOiAnMTkx
NjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1h
Yi1idWlsZHMnLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snLCAnYnVpbGQtd2snOiB0cnVlfX0pOwor
ICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOworICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1
aWxkZXInKSwge30pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5
XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30p
OworICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOworICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXInLCAyKSwgeworICAgICAgICAgICAgJ2J1aWxkcyc6IFsKKyAgICAgICAgICAg
ICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGREYXRhKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxk
ZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMiwgYnVpbGRUYWc6
IHNlY29uZEJ1aWxkTnVtYmVyfSksCisgICAgICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRC
dWlsZERhdGEoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWls
ZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZFRhZzogZmlyc3RCdWlsZE51bWJlcn0pXQor
ICAgICAgICB9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJd
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9
KTsKKyAgICAgICAgYXdhaXQgc3luY1Byb21pc2U7CisKKyAgICAgICAgYXdhaXQgVGVzdEdyb3Vw
LmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIHRlc3RHcm91cCA9IHRlc3RHcm91cHNb
MF07CisgICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0
UmVwb3NpdG9yeUlkKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1
aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworCisgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKClbMF07CisgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNC
dWlsZCgpKTsKKyAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0
ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwo
KSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBmaXJzdEJ1aWxkTnVtYmVyKSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRp
b24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5ub3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJ
ZCgpLCBudWxsKTsKKworICAgICAgICBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0
KCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBv
c2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21taXRT
ZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CisgICAgICAgIGFzc2VydCh3ZWJraXRQYXRj
aCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3
ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgIHdlYmtpdFJvb3Qg
PSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKKyAgICAgICAgYXNzZXJ0KHdl
YmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290XSk7CisK
KyAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFd
OworICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAgICAgICAg
YXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1v
Y2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgc2Vjb25kQnVpbGROdW1iZXIpKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0
aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVl
c3QuYnVpbGRJZCgpLCBudWxsKTsKKworICAgICAgICBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVp
bGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJD
b21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3
ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisgICAgICAgIGF3YWl0IHVw
bG9hZFJvb3QocGFyc2VJbnQob3RoZXJCdWlsZFJlcXVlc3QuaWQoKSksIDEyNCk7CisKKyAgICAg
ICAgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVl
KTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOwor
ICAgICAgICB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOworICAgICAgICB3ZWJraXQgPSBSZXBv
c2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsK
KworICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOwor
ICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAgICAgIGFzc2VydCgh
YnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29t
ZSBidWlsZGVyJywgZmlyc3RCdWlsZE51bWJlcikpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOworICAgICAgICBhc3Nl
cnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAgICAgICAgY29t
bWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7
CisgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJr
aXQpOworICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3Bh
dGNoLmRhdCcpOworICAgICAgICB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0
b3J5KHdlYmtpdCk7CisgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2Fk
ZWRGaWxlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUo
KSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFs
bFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOworCisgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0
ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKKyAgICAgICAgYXNzZXJ0KG90aGVyQnVp
bGRSZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3Qu
aXNUZXN0KCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Qu
c3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
b3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBi
dWlsZGVyJywgc2Vjb25kQnVpbGROdW1iZXIpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOworICAgICAgICBh
c3NlcnQubm90RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKworICAg
ICAgICBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0
b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgY29u
c3Qgb3RoZXJXZWJraXRSb290ID0gb3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KTsKKyAgICAgICAgYXNzZXJ0KG90aGVyV2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVk
RmlsZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlcldlYmtpdFJvb3QuZmlsZW5h
bWUoKSwgJ3Jvb3QxMjQuZGF0Jyk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21t
aXRTZXQuYWxsUm9vdEZpbGVzKCksIFtvdGhlcldlYmtpdFJvb3RdKTsKKworICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlc2V0KCk7CisgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5p
dFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxk
Ym90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CisgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKKyAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDMpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwg
J0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKKyAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOworICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWls
ZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOworICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNik7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNd
LCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7
CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9j
a0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwgeworICAgICAgICAnYnVp
bGRzJzogWworICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkZXJJ
ZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVz
dElkOiAyLCBidWlsZFRhZzogc2Vjb25kQnVpbGROdW1iZXJ9KSwKKyAgICAgICAgICAgIE1vY2tE
YXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5h
bWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMSwgYnVpbGRUYWc6IGZpcnN0QnVp
bGROdW1iZXJ9KV0KKyAgICAgICAgfSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBidWls
ZGVyJywgMiksIHt9KTsKKyAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwor
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1vY2tE
YXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKKyAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVy
IGJ1aWxkZXInKSwge30pOworICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIp
OworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOworICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CisgICAgICAgICAgICAnYnVpbGRzJzog
WworICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZGVySWQ6
IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJ
ZDogMiwgYnVpbGRUYWc6IHNlY29uZEJ1aWxkTnVtYmVyfSksCisgICAgICAgICAgICAgICAgTW9j
a0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9y
TmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZFRhZzogZmlyc3RC
dWlsZE51bWJlcn0pXQorICAgICAgICB9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMTFdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBi
dWlsZGVyJywgMiksIHt9KTsKKyAgICAgICAgYXdhaXQgc3luY1Byb21pc2U7CisKKyAgICAgICAg
YXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICB0ZXN0R3JvdXAg
PSB0ZXN0R3JvdXBzWzBdOworICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1v
Y2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKworICAgICAgICBidWlsZFJl
cXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzJdOworICAgICAgICBhc3NlcnQoYnVp
bGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgIH0pOworCiAgICAgaXQoJ3Nob3Vs
ZCBzY2hlZHVsZSBhIGJ1aWxkIHRvIGJ1aWxkIGEgcGF0Y2gnLCAoKSA9PiB7CiAgICAgICAgIGNv
bnN0IHJlcXVlc3RzID0gTW9ja1JlbW90ZUFQSS5yZXF1ZXN0czsKICAgICAgICAgbGV0IHRyaWdn
ZXJhYmxlOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1
aWxkYm90LXN5bmNlci5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWls
ZGJvdC1zeW5jZXIuanMKaW5kZXggOWViOGM2YzkxYWY1MGZjMjAyMDY2ZGU1YzgyYzQxZDliNGQ0
MDllYy4uZTA2NDZhNmM1NWUzZTY0ODhjNjQ5MDllZWZiNmQ5Mjg5M2NkOThmZCAxMDA2NDQKLS0t
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcwor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpz
CkBAIC02OSw2ICs2OSw3IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgdGhpcy5f
d29ya2VyUHJvcGVydHlOYW1lID0gY29tbW9uQ29uZmlndXJhdGlvbnMud29ya2VyQXJndW1lbnQ7
CiAgICAgICAgIHRoaXMuX3BsYXRmb3JtUHJvcGVydHlOYW1lID0gY29tbW9uQ29uZmlndXJhdGlv
bnMucGxhdGZvcm1Bcmd1bWVudDsKICAgICAgICAgdGhpcy5fYnVpbGRSZXF1ZXN0UHJvcGVydHlO
YW1lID0gY29tbW9uQ29uZmlndXJhdGlvbnMuYnVpbGRSZXF1ZXN0QXJndW1lbnQ7CisgICAgICAg
IHRoaXMuX3JlcGV0aXRpb25UeXBlc0ZvclNjaGVkdWxpbmcgPSBjb21tb25Db25maWd1cmF0aW9u
cy5yZXBldGl0aW9uVHlwZXNGb3JTY2hlZHVsaW5nOwogICAgICAgICB0aGlzLl9idWlsZGVyTmFt
ZSA9IG9iamVjdC5idWlsZGVyOwogICAgICAgICB0aGlzLl9idWlsZGVySUQgPSBvYmplY3QuYnVp
bGRlcklEOwogICAgICAgICB0aGlzLl93b3JrZXJMaXN0ID0gb2JqZWN0Lndvcmtlckxpc3Q7CkBA
IC04MiwxMyArODMsMTUgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgIC8vIEJ1aWxkYm90
IHJlc3VsdCBjb2RlczogaHR0cHM6Ly9kb2NzLmJ1aWxkYm90Lm5ldC9sYXRlc3QvZGV2ZWxvcGVy
L3Jlc3VsdHMuaHRtbAogICAgIGxhc3RDb21wbGV0ZWRCdWlsZFN1Y2Nlc3NmdWwoKSB7IHJldHVy
biAhdGhpcy5fbGFzdENvbXBsZXRlZEJ1aWxkIHx8ICF0aGlzLl9sYXN0Q29tcGxldGVkQnVpbGQu
cmVzdWx0KCkgfQogCi0gICAgYWRkVGVzdENvbmZpZ3VyYXRpb24odGVzdCwgcGxhdGZvcm0sIHBy
b3BlcnRpZXNUZW1wbGF0ZSkKKyAgICBhZGRUZXN0Q29uZmlndXJhdGlvbih0ZXN0LCBwbGF0Zm9y
bSwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzLCBwcm9wZXJ0aWVzVGVtcGxhdGUpCiAgICAgewog
ICAgICAgICBhc3NlcnQodGVzdCBpbnN0YW5jZW9mIFRlc3QpOwogICAgICAgICBhc3NlcnQocGxh
dGZvcm0gaW5zdGFuY2VvZiBQbGF0Zm9ybSk7CisgICAgICAgIGFzc2VydChBcnJheS5pc0FycmF5
KHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcykpOworICAgICAgICBhc3NlcnQoc3VwcG9ydGVkUmVw
ZXRpdGlvblR5cGVzLmV2ZXJ5KHJlcGV0aXRpb25UeXBlID0+IFRyaWdnZXJhYmxlQ29uZmlndXJh
dGlvbi5SRVBFVElUSU9OX1RZUEVTLmluY2x1ZGVzKHJlcGV0aXRpb25UeXBlKSkpOwogICAgICAg
ICBhc3NlcnQodGhpcy5fdHlwZSA9PSBudWxsIHx8IHRoaXMuX3R5cGUgPT0gJ3Rlc3RlcicpOwog
ICAgICAgICB0aGlzLl90eXBlID0gJ3Rlc3Rlcic7Ci0gICAgICAgIHRoaXMuX2NvbmZpZ3VyYXRp
b25zLnB1c2goe3Rlc3QsIHBsYXRmb3JtLCBwcm9wZXJ0aWVzVGVtcGxhdGV9KTsKKyAgICAgICAg
dGhpcy5fY29uZmlndXJhdGlvbnMucHVzaCh7dGVzdCwgcGxhdGZvcm0sIHN1cHBvcnRlZFJlcGV0
aXRpb25UeXBlcywgcHJvcGVydGllc1RlbXBsYXRlfSk7CiAgICAgfQogICAgIHRlc3RDb25maWd1
cmF0aW9ucygpIHsgcmV0dXJuIHRoaXMuX3R5cGUgPT0gJ3Rlc3RlcicgPyB0aGlzLl9jb25maWd1
cmF0aW9ucyA6IFtdOyB9CiAKQEAgLTEwNyw3ICsxMTAsMTUgQEAgY2xhc3MgQnVpbGRib3RTeW5j
ZXIgewogCiAgICAgbWF0Y2hlc0NvbmZpZ3VyYXRpb24ocmVxdWVzdCkKICAgICB7Ci0gICAgICAg
IHJldHVybiB0aGlzLl9jb25maWd1cmF0aW9ucy5zb21lKChjb25maWcpID0+IGNvbmZpZy5wbGF0
Zm9ybSA9PSByZXF1ZXN0LnBsYXRmb3JtKCkgJiYgY29uZmlnLnRlc3QgPT0gcmVxdWVzdC50ZXN0
KCkpOworICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlndXJhdGlvbnMuc29tZSgoY29uZmlnKSA9
PiB7CisgICAgICAgICAgICBpZiAoY29uZmlnLnBsYXRmb3JtICE9IHJlcXVlc3QucGxhdGZvcm0o
KSB8fCBjb25maWcudGVzdCAhPSByZXF1ZXN0LnRlc3QoKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIXRoaXMuaXNUZXN0ZXIoKSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cFJlcGV0aXRpb25U
eXBlID0gcmVxdWVzdC50ZXN0R3JvdXAoKS5yZXBldGl0aW9uVHlwZSgpOworICAgICAgICAgICAg
cmV0dXJuIGNvbmZpZy5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMuaW5jbHVkZXModGVzdEdyb3Vw
UmVwZXRpdGlvblR5cGUpCisgICAgICAgICAgICAgICAgJiYgdGhpcy5fcmVwZXRpdGlvblR5cGVz
Rm9yU2NoZWR1bGluZy5pbmNsdWRlcyh0ZXN0R3JvdXBSZXBldGl0aW9uVHlwZSk7CisgICAgICAg
IH0pOwogICAgIH0KIAogICAgIHNjaGVkdWxlUmVxdWVzdChuZXdSZXF1ZXN0LCByZXF1ZXN0c0lu
R3JvdXAsIHdvcmtlck5hbWUpCkBAIC0zNzAsNiArMzgxLDcgQEAgY2xhc3MgQnVpbGRib3RTeW5j
ZXIgewogICAgICAgICAgICAgd29ya2VyQXJndW1lbnQ6IGNvbmZpZy53b3JrZXJBcmd1bWVudCwK
ICAgICAgICAgICAgIGJ1aWxkUmVxdWVzdEFyZ3VtZW50OiBjb25maWcuYnVpbGRSZXF1ZXN0QXJn
dW1lbnQsCiAgICAgICAgICAgICBwbGF0Zm9ybUFyZ3VtZW50OiBjb25maWcucGxhdGZvcm1Bcmd1
bWVudCwKKyAgICAgICAgICAgIHJlcGV0aXRpb25UeXBlc0ZvclNjaGVkdWxpbmc6IGNvbmZpZy5y
ZXBldGl0aW9uVHlwZXNGb3JTY2hlZHVsaW5nLAogICAgICAgICB9OwogCiAgICAgICAgIGNvbnN0
IHN5bmNlckJ5QnVpbGRlciA9IG5ldyBNYXA7CkBAIC0zODUsNyArMzk3LDEyIEBAIGNsYXNzIEJ1
aWxkYm90U3luY2VyIHsKICAgICAgICAgYXNzZXJ0KEFycmF5LmlzQXJyYXkoY29uZmlnWyd0ZXN0
Q29uZmlndXJhdGlvbnMnXSksIGBUaGUgdGVzdCBjb25maWd1cmF0aW9uIG11c3QgYmUgYW4gYXJy
YXlgKTsKICAgICAgICAgdGhpcy5fcmVzb2x2ZUJ1aWxkZXJzV2l0aFBsYXRmb3JtcygndGVzdCcs
IGNvbmZpZ1sndGVzdENvbmZpZ3VyYXRpb25zJ10sIGJ1aWxkZXJzLCBidWlsZGVyTmFtZVRvSURN
YXApLmZvckVhY2goKGVudHJ5LCBjb25maWd1cmF0aW9uSW5kZXgpID0+IHsKICAgICAgICAgICAg
IGFzc2VydChBcnJheS5pc0FycmF5KGVudHJ5Wyd0eXBlcyddKSwgYFRoZSB0ZXN0IGNvbmZpZ3Vy
YXRpb24gJHtjb25maWd1cmF0aW9uSW5kZXh9IGRvZXMgbm90IHNwZWNpZnkgInR5cGVzIiBhcyBh
biBhcnJheWApOwotICAgICAgICAgICAgZm9yIChjb25zdCB0eXBlIG9mIGVudHJ5Wyd0eXBlcydd
KSB7CisgICAgICAgICAgICBmb3IgKGxldCB0eXBlIG9mIGVudHJ5Wyd0eXBlcyddKSB7CisgICAg
ICAgICAgICAgICAgbGV0IHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcyA9IGNvbmZpZy5yZXBldGl0
aW9uVHlwZXNGb3JTY2hlZHVsaW5nOworICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdHlwZSAh
PSAnc3RyaW5nJyAmJiB0eXBlLmhhc093blByb3BlcnR5KCd0eXBlJykgJiYgdHlwZS5oYXNPd25Q
cm9wZXJ0eSgnc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzJykpIHsKKyAgICAgICAgICAgICAgICAg
ICAgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzID0gdHlwZS5zdXBwb3J0ZWRSZXBldGl0aW9uVHlw
ZXM7CisgICAgICAgICAgICAgICAgICAgIHR5cGUgPSB0eXBlLnR5cGU7CisgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgIGNvbnN0IHR5cGVDb25maWcgPSB0aGlzLl92YWxpZGF0ZUFu
ZE1lcmdlQ29uZmlnKHt9LCBlbnRyeS5idWlsZGVyQ29uZmlnKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQodHlwZXNbdHlwZV0sIGAiJHt0eXBlfSIgaXMgbm90IGEgdmFsaWQgdHlwZSBpbiB0aGUg
Y29uZmlndXJhdGlvbmApOwogICAgICAgICAgICAgICAgIHRoaXMuX3ZhbGlkYXRlQW5kTWVyZ2VD
b25maWcodHlwZUNvbmZpZywgdHlwZXNbdHlwZV0pOwpAQCAtMzk0LDcgKzQxMSw3IEBAIGNsYXNz
IEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgICAgICAgICBjb25zdCB0ZXN0ID0gVGVzdC5maW5k
QnlQYXRoKHRlc3RQYXRoKTsKICAgICAgICAgICAgICAgICBhc3NlcnQodGVzdCwgYCIke3Rlc3RQ
YXRoLmpvaW4oJyIsICInKX0iIGlzIG5vdCBhIHZhbGlkIHRlc3QgcGF0aCBpbiB0aGUgdGVzdCBj
b25maWd1cmF0aW9uICR7Y29uZmlndXJhdGlvbkluZGV4fWApOwogCi0gICAgICAgICAgICAgICAg
ZW5zdXJlQnVpbGRib3RTeW5jZXIoZW50cnkuYnVpbGRlckNvbmZpZykuYWRkVGVzdENvbmZpZ3Vy
YXRpb24odGVzdCwgZW50cnkucGxhdGZvcm0sIHR5cGVDb25maWcucHJvcGVydGllcyk7CisgICAg
ICAgICAgICAgICAgZW5zdXJlQnVpbGRib3RTeW5jZXIoZW50cnkuYnVpbGRlckNvbmZpZykuYWRk
VGVzdENvbmZpZ3VyYXRpb24odGVzdCwgZW50cnkucGxhdGZvcm0sIHN1cHBvcnRlZFJlcGV0aXRp
b25UeXBlcywgdHlwZUNvbmZpZy5wcm9wZXJ0aWVzKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fSk7CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWls
ZGJvdC10cmlnZ2VyYWJsZS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9i
dWlsZGJvdC10cmlnZ2VyYWJsZS5qcwppbmRleCA1MjU3NDQyMjlkYjYzYTBkMTUxMWNlNGIwMDc3
OTA5ZTkxMzQzNGFkLi42ZWEwMzM1ZTMzODM1ZjAyMGJiZjY0ZTU5MWQ5YTMyOTMzMDdlMzZlIDEw
MDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJp
Z2dlcmFibGUuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxk
Ym90LXRyaWdnZXJhYmxlLmpzCkBAIC01Niw3ICs1Niw3IEBAIGNsYXNzIEJ1aWxkYm90VHJpZ2dl
cmFibGUgewogICAgICAgICBsZXQgcmVwb3NpdG9yeUdyb3VwcyA9IFtdOwogICAgICAgICBmb3Ig
KGNvbnN0IHN5bmNlciBvZiB0aGlzLl9zeW5jZXJzKSB7CiAgICAgICAgICAgICBmb3IgKGNvbnN0
IGNvbmZpZyBvZiBzeW5jZXIudGVzdENvbmZpZ3VyYXRpb25zKCkpIHsKLSAgICAgICAgICAgICAg
ICBjb25zdCBlbnRyeSA9IHt0ZXN0OiBjb25maWcudGVzdC5pZCgpLCBwbGF0Zm9ybTogY29uZmln
LnBsYXRmb3JtLmlkKCl9OworICAgICAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0ge3Rlc3Q6IGNv
bmZpZy50ZXN0LmlkKCksIHBsYXRmb3JtOiBjb25maWcucGxhdGZvcm0uaWQoKSwgc3VwcG9ydGVk
UmVwZXRpdGlvblR5cGVzOiBjb25maWcuc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzfTsKICAgICAg
ICAgICAgICAgICBtYXAuc2V0KGVudHJ5LnRlc3QgKyAnLScgKyBlbnRyeS5wbGF0Zm9ybSwgZW50
cnkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgLy8gRklYTUU6IE1vdmUgQnVpbGRib3RT
eW5jZXIuX2xvYWRDb25maWcgaGVyZSBhbmQgc3RvcmUgcmVwb3NpdG9yeSBncm91cHMgZGlyZWN0
bHkuCkBAIC04Myw2ICs4Myw4IEBAIGNsYXNzIEJ1aWxkYm90VHJpZ2dlcmFibGUgewogICAgICAg
ICB0aGlzLl9sb2dnZXIubG9nKGBGZXRjaGluZyBidWlsZCByZXF1ZXN0cyBmb3IgJHt0aGlzLl9u
YW1lfS4uLmApOwogCiAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdHMgPSBhd2FpdCBCdWlsZFJl
cXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZSh0aGlzLl9uYW1lKTsKKyAgICAgICAgY29uc3QgdGVz
dEdyb3VwSWRzID0gbmV3IFNldChidWlsZFJlcXVlc3RzLm1hcChyZXF1ZXN0ID0+IHJlcXVlc3Qu
dGVzdEdyb3VwSWQoKSkpOworICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChBcnJheS5mcm9tKHRl
c3RHcm91cElkcykubWFwKHRlc3RHcm91cElkID0+IFRlc3RHcm91cC5mZXRjaEJ5SWQodGVzdEdy
b3VwSWQsIC8qIGlnbm9yZUNhY2hlICovIHRydWUpKSk7CiAgICAgICAgIGNvbnN0IHZhbGlkUmVx
dWVzdHMgPSB0aGlzLl92YWxpZGF0ZVJlcXVlc3RzKGJ1aWxkUmVxdWVzdHMpOwogICAgICAgICBj
b25zdCBidWlsZFJlcXVlc3RzQnlHcm91cCA9IEJ1aWxkYm90VHJpZ2dlcmFibGUuX3Rlc3RHcm91
cE1hcEZvckJ1aWxkUmVxdWVzdHMoYnVpbGRSZXF1ZXN0cyk7CiAgICAgICAgIGxldCB1cGRhdGVz
ID0gYXdhaXQgdGhpcy5fcHVsbEJ1aWxkYm90T25BbGxTeW5jZXJzKGJ1aWxkUmVxdWVzdHNCeUdy
b3VwKTsKQEAgLTkwLDcgKzkyLDYgQEAgY2xhc3MgQnVpbGRib3RUcmlnZ2VyYWJsZSB7CiAgICAg
ICAgIHRoaXMuX2xvZ2dlci5sb2coJ1NjaGVkdWxpbmcgYnVpbGRzJyk7CiAgICAgICAgIGNvbnN0
IHRlc3RHcm91cExpc3QgPSBBcnJheS5mcm9tKGJ1aWxkUmVxdWVzdHNCeUdyb3VwLnZhbHVlcygp
KS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBhLmdyb3VwT3JkZXIgLSBiLmdyb3VwT3Jk
ZXI7IH0pOwogCi0gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKEFycmF5LmZyb20oYnVpbGRSZXF1
ZXN0c0J5R3JvdXAua2V5cygpKS5tYXAodGVzdEdyb3VwSWQgPT4gVGVzdEdyb3VwLmZldGNoQnlJ
ZCh0ZXN0R3JvdXBJZCwgLyogaWdub3JlQ2FjaGUgKi8gdHJ1ZSkpKTsKICAgICAgICAgZm9yIChj
b25zdCBncm91cCBvZiB0ZXN0R3JvdXBMaXN0KSB7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0
ID0gdGhpcy5fbmV4dFJlcXVlc3RJbkdyb3VwKGdyb3VwLCB1cGRhdGVzKTsKICAgICAgICAgICAg
IGlmICghdmFsaWRSZXF1ZXN0cy5oYXMocmVxdWVzdCkpCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvdjMtbW9kZWxzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3Rvb2xzL2pzL3YzLW1vZGVscy5qcwppbmRleCA0YmViYWJkNWFhNzIxNDUzZGU3ZGU3
Mzc5NzQ5Zjg4MGExNzRjNTFhLi4xMmE5YTA2YzJhMDVlYWI5ZDM1MWY5ZjM2MzgwY2JhNjIxM2Zm
NjNlIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvdjMtbW9k
ZWxzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy92My1tb2RlbHMu
anMKQEAgLTM3LDYgKzM3LDcgQEAgaW1wb3J0RnJvbVYzKCdtb2RlbHMvdGVzdC1ncm91cC5qcycs
ICdUZXN0R3JvdXAnKTsKIGltcG9ydEZyb21WMygnbW9kZWxzL3RpbWUtc2VyaWVzLmpzJywgJ1Rp
bWVTZXJpZXMnKTsKIGltcG9ydEZyb21WMygnbW9kZWxzL3RyaWdnZXJhYmxlLmpzJywgJ1RyaWdn
ZXJhYmxlJyk7CiBpbXBvcnRGcm9tVjMoJ21vZGVscy90cmlnZ2VyYWJsZS5qcycsICdUcmlnZ2Vy
YWJsZVJlcG9zaXRvcnlHcm91cCcpOworaW1wb3J0RnJvbVYzKCdtb2RlbHMvdHJpZ2dlcmFibGUu
anMnLCAnVHJpZ2dlcmFibGVDb25maWd1cmF0aW9uJyk7CiBpbXBvcnRGcm9tVjMoJ21vZGVscy91
cGxvYWRlZC1maWxlLmpzJywgJ1VwbG9hZGVkRmlsZScpOwogCiBpbXBvcnRGcm9tVjMoJ2luc3Ry
dW1lbnRhdGlvbi5qcycsICdJbnN0cnVtZW50YXRpb24nKTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qcyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5q
cwppbmRleCAwMzQyYWMwMWE0YWY1ZGJjYzE1Njk2MjJhMmRiMWQ2NWE3YzI2MjczLi4wMzZlZjhk
OWM3MWE0ZGNjYTQ0OGI4MjM4MDFiMmUyOWJmMTg5ODcyIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3Rz
LmpzCkBAIC0xNiw2ICsxNiw3IEBAIGZ1bmN0aW9uIHNhbXBsZWlPU0NvbmZpZygpCiAgICAgcmV0
dXJuIHsKICAgICAgICAgJ3dvcmtlckFyZ3VtZW50JzogJ3dvcmtlcm5hbWUnLAogICAgICAgICAn
YnVpbGRSZXF1ZXN0QXJndW1lbnQnOiAnYnVpbGRfcmVxdWVzdF9pZCcsCisgICAgICAgICdyZXBl
dGl0aW9uVHlwZXNGb3JTY2hlZHVsaW5nJzogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ10s
CiAgICAgICAgICdyZXBvc2l0b3J5R3JvdXBzJzogewogICAgICAgICAgICAgJ2lvcy1zdm4td2Vi
a2l0JzogewogICAgICAgICAgICAgICAgICdyZXBvc2l0b3JpZXMnOiB7J1dlYktpdCc6IHt9LCAn
aU9TJzoge319LApAQCAtNzAsNiArNzEsNyBAQCBmdW5jdGlvbiBzYW1wbGVpT1NDb25maWdXaXRo
RXhwYW5zaW9ucygpCiAgICAgcmV0dXJuIHsKICAgICAgICAgInRyaWdnZXJhYmxlTmFtZSI6ICJi
dWlsZC13ZWJraXQtaW9zIiwKICAgICAgICAgImJ1aWxkUmVxdWVzdEFyZ3VtZW50IjogImJ1aWxk
LXJlcXVlc3QtaWQiLAorICAgICAgICAncmVwZXRpdGlvblR5cGVzRm9yU2NoZWR1bGluZyc6IFsn
YWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddLAogICAgICAgICAicmVwb3NpdG9yeUdyb3VwcyI6
IHsgfSwKICAgICAgICAgInR5cGVzIjogewogICAgICAgICAgICAgImlwaG9uZS1wbHQiOiB7CkBA
IC0xMTgsNiArMTIwLDcgQEAgZnVuY3Rpb24gc21hbGxDb25maWd1cmF0aW9uKCkKIHsKICAgICBy
ZXR1cm4gewogICAgICAgICAnYnVpbGRSZXF1ZXN0QXJndW1lbnQnOiAnaWQnLAorICAgICAgICAn
cmVwZXRpdGlvblR5cGVzRm9yU2NoZWR1bGluZyc6IFsiYWx0ZXJuYXRpbmciLCAic2VxdWVudGlh
bCJdLAogICAgICAgICAncmVwb3NpdG9yeUdyb3Vwcyc6IHsKICAgICAgICAgICAgICdpb3Mtc3Zu
LXdlYmtpdCc6IHsKICAgICAgICAgICAgICAgICAncmVwb3NpdG9yaWVzJzogeydpT1MnOiB7fSwg
J1dlYktpdCc6IHt9fSwKQEAgLTE0Niw2ICsxNDksNDEgQEAgZnVuY3Rpb24gc21hbGxDb25maWd1
cmF0aW9uKCkKICAgICB9OwogfQogCitmdW5jdGlvbiBzbWFsbENvbmZpZ3VyYXRpb25XaXRoQ3Vz
dG9tUmVwZXRpdGlvblR5cGVzKCkKK3sKKyAgICByZXR1cm4geworICAgICAgICAnYnVpbGRSZXF1
ZXN0QXJndW1lbnQnOiAnaWQnLAorICAgICAgICAncmVwZXRpdGlvblR5cGVzRm9yU2NoZWR1bGlu
Zyc6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddLAorICAgICAgICAncmVwb3NpdG9yeUdy
b3Vwcyc6IHsKKyAgICAgICAgICAgICdpb3Mtc3ZuLXdlYmtpdCc6IHsKKyAgICAgICAgICAgICAg
ICAncmVwb3NpdG9yaWVzJzogeydpT1MnOiB7fSwgJ1dlYktpdCc6IHt9fSwKKyAgICAgICAgICAg
ICAgICAndGVzdFByb3BlcnRpZXMnOiB7CisgICAgICAgICAgICAgICAgICAgICdvcyc6IHsncmV2
aXNpb24nOiAnaU9TJ30sCisgICAgICAgICAgICAgICAgICAgICd3ayc6IHsncmV2aXNpb24nOiAn
V2ViS2l0J30KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisg
ICAgICAgICd0eXBlcyc6IHsKKyAgICAgICAgICAgICdzb21lLXRlc3QnOiB7CisgICAgICAgICAg
ICAgICAgJ3Rlc3QnOiBbJ1NvbWUgdGVzdCddLAorICAgICAgICAgICAgfQorICAgICAgICB9LAor
ICAgICAgICAnYnVpbGRlcnMnOiB7CisgICAgICAgICAgICAnc29tZS1idWlsZGVyJzogeworICAg
ICAgICAgICAgICAgICdidWlsZGVyJzogJ3NvbWUgYnVpbGRlcicsCisgICAgICAgICAgICAgICAg
J3Byb3BlcnRpZXMnOiB7J2ZvcmNlc2NoZWR1bGVyJzogJ3NvbWUtYnVpbGRlci1Gb3JjZVNjaGVk
dWxlcid9CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgICd0ZXN0Q29uZmlndXJh
dGlvbnMnOiBbeworICAgICAgICAgICAgJ2J1aWxkZXJzJzogWydzb21lLWJ1aWxkZXInXSwKKyAg
ICAgICAgICAgICdwbGF0Zm9ybXMnOiBbJ1NvbWUgcGxhdGZvcm0nXSwKKyAgICAgICAgICAgICd0
eXBlcyc6IFsKKyAgICAgICAgICAgICAgICB7dHlwZTogJ3NvbWUtdGVzdCcsIHN1cHBvcnRlZFJl
cGV0aXRpb25UeXBlczogWydzZXF1ZW50aWFsJywgJ3BhcmFsbGVsJ119CisgICAgICAgICAgICBd
LAorICAgICAgICB9XQorICAgIH07Cit9CisKIGZ1bmN0aW9uIGJ1aWxkZXJOYW1lVG9JRE1hcCgp
CiB7CiAgICAgcmV0dXJuIHsKQEAgLTE4NCwxMCArMjIyLDEyIEBAIGZ1bmN0aW9uIGNyZWF0ZVNh
bXBsZUJ1aWxkUmVxdWVzdChwbGF0Zm9ybSwgdGVzdCkKICAgICBjb25zdCBpb3MxM0E0NTIgPSBD
b21taXRMb2cuZW5zdXJlU2luZ2xldG9uKCc4ODkzMCcsIHsnaWQnOiAnODg5MzAnLCAndGltZSc6
IDAsICdyZXBvc2l0b3J5JzogTW9ja01vZGVscy5pb3MsICdyZXZpc2lvbic6ICcxM0E0NTInfSk7
CiAKICAgICBjb25zdCBjb21taXRTZXQgPSBDb21taXRTZXQuZW5zdXJlU2luZ2xldG9uKCc0MTk3
Jywge2N1c3RvbVJvb3RzOiBbXSwgcmV2aXNpb25JdGVtczogW3tjb21taXQ6IHdlYmtpdDE5NzQ2
M30sIHtjb21taXQ6IHNoYXJlZDExMTIzN30sIHtjb21taXQ6IGlvczEzQTQ1Mn1dfSk7CisgICAg
Y29uc3QgdGVzdEdyb3VwID0gVGVzdEdyb3VwLmVuc3VyZVNpbmdsZXRvbignMTIzJywge3Rhc2s6
ICcxMjMnLCBjcmVhdGVkQXQ6IDE0NTY5MzE4NzQwMDAsIGhpZGRlbjogZmFsc2UsIG5lZWRzTm90
aWZpY2F0aW9uOiB0cnVlLCBtYXlOZWVkTW9yZVJlcXVlc3RzOiBmYWxzZSwKKyAgICAgICAgaW5p
dGlhbFJlcGV0aXRpb25Db3VudDogMywgcmVwZXRpdGlvblR5cGU6ICdhbHRlcm5hdGluZyd9KQog
CiAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5lbnN1cmVTaW5nbGV0b24oJzE2NzMzLScgKyBwbGF0
Zm9ybS5pZCgpLCB7J3RyaWdnZXJhYmxlJzogTW9ja01vZGVscy50cmlnZ2VyYWJsZSwKICAgICAg
ICAgcmVwb3NpdG9yeUdyb3VwOiBNb2NrTW9kZWxzLnN2blJlcG9zaXRvcnlHcm91cCwKLSAgICAg
ICAgJ2NvbW1pdFNldCc6IGNvbW1pdFNldCwgJ3N0YXR1cyc6ICdwZW5kaW5nJywgJ3BsYXRmb3Jt
JzogcGxhdGZvcm0sICd0ZXN0JzogdGVzdCwgb3JkZXI6IDB9KTsKKyAgICAgICAgJ2NvbW1pdFNl
dCc6IGNvbW1pdFNldCwgJ3N0YXR1cyc6ICdwZW5kaW5nJywgJ3BsYXRmb3JtJzogcGxhdGZvcm0s
ICd0ZXN0JzogdGVzdCwgb3JkZXI6IDAsIHRlc3RHcm91cCwgdGVzdEdyb3VwSWQ6IHRlc3RHcm91
cC5pZCgpfSk7CiB9CiAKIGZ1bmN0aW9uIGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdFdpdGhQYXRj
aChwbGF0Zm9ybSwgdGVzdCwgb3JkZXIpCkBAIC01MzYsNiArNTc2LDE3IEBAIGRlc2NyaWJlKCdC
dWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWd1
cmF0aW9uc1sxXS50ZXN0LCBudWxsKTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgaXQoJ3Nob3Vs
ZCBwYXJzZSB0ZXN0IGNvbmZpZ3VyYXRpb25zIHdpdGggY3VzdG9tIHJlcGV0aXRpb24gdHlwZScs
ICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbldp
dGhDdXN0b21SZXBldGl0aW9uVHlwZXMoKTsKKyAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMgPSBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJO
YW1lVG9JRE1hcCgpKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzeW5jZXJzLmxl
bmd0aCwgMSk7CisgICAgICAgICAgICBjb25zdCBzeW5jZXIgPSBzeW5jZXJzWzBdOworICAgICAg
ICAgICAgY29uc3QgdGVzdENvbmZpZ3VyYXRpb25zID0gc3luY2VyLnRlc3RDb25maWd1cmF0aW9u
cygpOworICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RDb25maWd1cmF0aW9ucy5s
ZW5ndGgsIDEpOworICAgICAgICAgICAgY29uc3QgdGVzdENvbmZpZ3VyYXRpb24gPSB0ZXN0Q29u
ZmlndXJhdGlvbnNbMF07CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHRlc3RDb25maWd1
cmF0aW9uLnN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcywgWydzZXF1ZW50aWFsJywgJ3BhcmFsbGVs
J10pOworICAgICAgICB9KTsKKwogICAgICAgICBpdCgnc2hvdWxkIHRocm93IHdoZW4gYSBidWls
ZCBjb25maWd1cmF0aW9uIHVzZSB0aGUgc2FtZSBidWlsZGVyIGFzIGEgdGVzdCBjb25maWd1cmF0
aW9uJywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAg
ICAgICAgICAgY29uc3QgY29uZmlnID0gc2FtcGxlaU9TQ29uZmlnKCk7CkBAIC0xMTAwLDcgKzEx
NTEsNiBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogCi0KICAgICBkZXNjcmliZSgnQnVpbGRib3RCdWlsZEVudHJ5JywgKCkgPT4gewog
ICAgICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBCdWlsZGJvdEJ1aWxkRW50cnkgZm9yIHBlbmRpbmcg
YnVpbGQnLCAoKSA9PiB7CiAgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1l
VG9JRE1hcCgpKVsxXTsKQEAgLTE3MzIsNSArMTc4MiwxMyBAQCBkZXNjcmliZSgnQnVpbGRib3RT
eW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3No
b3VsZCBub3Qgc2NoZWR1bGUgYSBidWlsZCByZXF1ZXN0IGlmIHJlcGV0aXRpb24gdHlwZSBpZiBu
b3Qgc3VwcG9ydGVkIGJ5IGJ1aWxkYm90IHN5bmNlcicsIGFzeW5jICgpID0+IHsKKyAgICAgICAg
ICAgIGNvbnN0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVB
UEksIHNtYWxsQ29uZmlndXJhdGlvbldpdGhDdXN0b21SZXBldGl0aW9uVHlwZXMoKSwgYnVpbGRl
ck5hbWVUb0lETWFwKCkpWzBdOworICAgICAgICAgICAgYXdhaXQgcHVsbEJ1aWxkYm90V2l0aEFz
c2VydGlvbihzeW5jZXIsIHt9LCB7fSk7CisgICAgICAgICAgICBsZXQgcmVxdWVzdCA9IGNyZWF0
ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybSwgTW9ja01vZGVscy5z
b21lVGVzdCk7CisgICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0SW5Hcm91cElmQXZh
aWxhYmxlKHJlcXVlc3QsIFtyZXF1ZXN0XSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAwKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9KTsKZGlmZiAt
LWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL21lYXN1cmVtZW50LXNl
dC1hbmFseXplci10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3Rz
L21lYXN1cmVtZW50LXNldC1hbmFseXplci10ZXN0cy5qcwppbmRleCAwOTA3YTBiMDE2YTA1MTQ4
MzQ3ZGNiM2Y0NzdlMmE5MjU5OGFhZmJiLi42NmExYTMyNzU2Y2ExNTA5MGY4ZTgwNzVmZmVkNzk2
MjhmYzM0MzkzIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0
cy9tZWFzdXJlbWVudC1zZXQtYW5hbHl6ZXItdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3VuaXQtdGVzdHMvbWVhc3VyZW1lbnQtc2V0LWFuYWx5emVyLXRlc3RzLmpzCkBA
IC0xOTEsNyArMTkxLDggQEAgZGVzY3JpYmUoJ01lYXN1cmVtZW50U2V0QW5hbHl6ZXInLCAoKSA9
PiB7CiAKICAgICAgICAgICAgIFRyaWdnZXJhYmxlLmVuc3VyZVNpbmdsZXRvbig0LCB7bmFtZTog
J3NvbWUtdHJpZ2dlcmFibGUnLAogICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlHcm91cHM6IFtN
b2NrTW9kZWxzLm9zUmVwb3NpdG9yeUdyb3VwLCBNb2NrTW9kZWxzLnN2blJlcG9zaXRvcnlHcm91
cCwgTW9ja01vZGVscy5naXRSZXBvc2l0b3J5R3JvdXAsIE1vY2tNb2RlbHMuc3ZuUmVwb3NpdG9y
eVdpdGhPd25lZFJlcG9zaXRvcnlHcm91cF0sCi0gICAgICAgICAgICAgICAgY29uZmlndXJhdGlv
bnM6IFt7dGVzdDogTW9ja01vZGVscy5zb21lTWV0cmljLnRlc3QoKSwgcGxhdGZvcm06IE1vY2tN
b2RlbHMuc29tZVBsYXRmb3JtfV19KTsKKyAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uczog
W3t0ZXN0OiBNb2NrTW9kZWxzLnNvbWVNZXRyaWMudGVzdCgpLCBwbGF0Zm9ybTogTW9ja01vZGVs
cy5zb21lUGxhdGZvcm0sCisgICAgICAgICAgICAgICAgICAgIGlkOiAyMDAwLCBzdXBwb3J0ZWRS
ZXBldGl0aW9uVHlwZXM6IE1vY2tNb2RlbHMuc29tZVRyaWdnYWJsZUNvbmZpZ3VyYXRpb24uc3Vw
cG9ydGVkUmVwZXRpdGlvblR5cGVzfV19KTsKIAogICAgICAgICAgICAgY29uc3QgbWVhc3VyZW1l
bnRTZXQgPSBNZWFzdXJlbWVudFNldC5maW5kU2V0KE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLmlk
KCksIE1vY2tNb2RlbHMuc29tZU1ldHJpYy5pZCgpLCA1MDAwKTsKICAgICAgICAgICAgIGNvbnN0
IGxvZ2dlciA9IG1vY2tMb2dnZXIoKTsKQEAgLTI1MSw3ICsyNTIsOCBAQCBkZXNjcmliZSgnTWVh
c3VyZW1lbnRTZXRBbmFseXplcicsICgpID0+IHsKIAogICAgICAgICAgICAgVHJpZ2dlcmFibGUu
ZW5zdXJlU2luZ2xldG9uKDQsIHtuYW1lOiAnc29tZS10cmlnZ2VyYWJsZScsCiAgICAgICAgICAg
ICAgICAgcmVwb3NpdG9yeUdyb3VwczogW01vY2tNb2RlbHMub3NSZXBvc2l0b3J5R3JvdXAsIE1v
Y2tNb2RlbHMuc3ZuUmVwb3NpdG9yeUdyb3VwLCBNb2NrTW9kZWxzLmdpdFJlcG9zaXRvcnlHcm91
cCwgTW9ja01vZGVscy5zdm5SZXBvc2l0b3J5V2l0aE93bmVkUmVwb3NpdG9yeUdyb3VwXSwKLSAg
ICAgICAgICAgICAgICBjb25maWd1cmF0aW9uczogW3t0ZXN0OiBNb2NrTW9kZWxzLnNvbWVNZXRy
aWMudGVzdCgpLCBwbGF0Zm9ybTogTW9ja01vZGVscy5zb21lUGxhdGZvcm19XX0pOworICAgICAg
ICAgICAgICAgIGNvbmZpZ3VyYXRpb25zOiBbe3Rlc3Q6IE1vY2tNb2RlbHMuc29tZU1ldHJpYy50
ZXN0KCksIHBsYXRmb3JtOiBNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybSwKKyAgICAgICAgICAgICAg
ICAgICAgaWQ6IDIwMDAsIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlczogTW9ja01vZGVscy5zb21l
VHJpZ2dhYmxlQ29uZmlndXJhdGlvbi5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXN9XX0pOwogCiAg
ICAgICAgICAgICBjb25zdCBtZWFzdXJlbWVudFNldCA9IE1lYXN1cmVtZW50U2V0LmZpbmRTZXQo
TW9ja01vZGVscy5zb21lUGxhdGZvcm0uaWQoKSwgTW9ja01vZGVscy5zb21lTWV0cmljLmlkKCks
IDUwMDApOwogICAgICAgICAgICAgY29uc3QgbG9nZ2VyID0gbW9ja0xvZ2dlcigpOwpAQCAtNDg0
LDcgKzQ4Niw4IEBAIGRlc2NyaWJlKCdNZWFzdXJlbWVudFNldEFuYWx5emVyJywgKCkgPT4gewog
CiAgICAgICAgICAgICBUcmlnZ2VyYWJsZS5lbnN1cmVTaW5nbGV0b24oNCwge25hbWU6ICdzb21l
LXRyaWdnZXJhYmxlJywKICAgICAgICAgICAgICAgICByZXBvc2l0b3J5R3JvdXBzOiBbTW9ja01v
ZGVscy5vc1JlcG9zaXRvcnlHcm91cCwgTW9ja01vZGVscy5zdm5SZXBvc2l0b3J5R3JvdXAsIE1v
Y2tNb2RlbHMuZ2l0UmVwb3NpdG9yeUdyb3VwLCBNb2NrTW9kZWxzLnN2blJlcG9zaXRvcnlXaXRo
T3duZWRSZXBvc2l0b3J5R3JvdXBdLAotICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25zOiBb
e3Rlc3Q6IE1vY2tNb2RlbHMuc29tZU1ldHJpYy50ZXN0KCksIHBsYXRmb3JtOiBNb2NrTW9kZWxz
LnNvbWVQbGF0Zm9ybX1dfSk7CisgICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbnM6IFt7dGVz
dDogTW9ja01vZGVscy5zb21lTWV0cmljLnRlc3QoKSwgcGxhdGZvcm06IE1vY2tNb2RlbHMuc29t
ZVBsYXRmb3JtLAorICAgICAgICAgICAgICAgICAgICBpZDogMjAwMCwgc3VwcG9ydGVkUmVwZXRp
dGlvblR5cGVzOiBNb2NrTW9kZWxzLnNvbWVUcmlnZ2FibGVDb25maWd1cmF0aW9uLnN1cHBvcnRl
ZFJlcGV0aXRpb25UeXBlc31dfSk7CiAKICAgICAgICAgICAgIGNvbnN0IG1lYXN1cmVtZW50U2V0
ID0gTWVhc3VyZW1lbnRTZXQuZmluZFNldChNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybS5pZCgpLCBN
b2NrTW9kZWxzLnNvbWVNZXRyaWMuaWQoKSwgNTAwMCk7CiAgICAgICAgICAgICBjb25zdCBsb2dn
ZXIgPSBtb2NrTG9nZ2VyKCk7CkBAIC01NzcsNyArNTgwLDggQEAgZGVzY3JpYmUoJ01lYXN1cmVt
ZW50U2V0QW5hbHl6ZXInLCAoKSA9PiB7CiAKICAgICAgICAgICAgIFRyaWdnZXJhYmxlLmVuc3Vy
ZVNpbmdsZXRvbig0LCB7bmFtZTogJ3NvbWUtdHJpZ2dlcmFibGUnLAogICAgICAgICAgICAgICAg
IHJlcG9zaXRvcnlHcm91cHM6IFtNb2NrTW9kZWxzLm9zUmVwb3NpdG9yeUdyb3VwLCBNb2NrTW9k
ZWxzLnN2blJlcG9zaXRvcnlHcm91cCwgTW9ja01vZGVscy5naXRSZXBvc2l0b3J5R3JvdXAsIE1v
Y2tNb2RlbHMuc3ZuUmVwb3NpdG9yeVdpdGhPd25lZFJlcG9zaXRvcnlHcm91cF0sCi0gICAgICAg
ICAgICAgICAgY29uZmlndXJhdGlvbnM6IFt7dGVzdDogTW9ja01vZGVscy5zb21lTWV0cmljLnRl
c3QoKSwgcGxhdGZvcm06IE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtfV19KTsKKyAgICAgICAgICAg
ICAgICBjb25maWd1cmF0aW9uczogW3t0ZXN0OiBNb2NrTW9kZWxzLnNvbWVNZXRyaWMudGVzdCgp
LCBwbGF0Zm9ybTogTW9ja01vZGVscy5zb21lUGxhdGZvcm0sCisgICAgICAgICAgICAgICAgICAg
IGlkOiAyMDAwLCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IE1vY2tNb2RlbHMuc29tZVRyaWdn
YWJsZUNvbmZpZ3VyYXRpb24uc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzfV19KTsKIAogICAgICAg
ICAgICAgY29uc3QgbWVhc3VyZW1lbnRTZXQgPSBNZWFzdXJlbWVudFNldC5maW5kU2V0KE1vY2tN
b2RlbHMuc29tZVBsYXRmb3JtLmlkKCksIE1vY2tNb2RlbHMuc29tZU1ldHJpYy5pZCgpLCA1MDAw
KTsKICAgICAgICAgICAgIGNvbnN0IGxvZ2dlciA9IG1vY2tMb2dnZXIoKTsKZGlmZiAtLWdpdCBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL3Jlc291cmNlcy9tb2NrLXYzLW1v
ZGVscy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL3Jlc291cmNlcy9t
b2NrLXYzLW1vZGVscy5qcwppbmRleCAyMzhmNTgyNDI3YWU0Zjc4ODg2YjVkYmI0ODM5OTc5OTAy
ZTYzOTkyLi43MzJkNmEwOTVkZTA3MGE5MTI5ZDY0ODdkZDM1N2ViMzA0YWI2Zjg3IDEwMDY0NAot
LS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9yZXNvdXJjZXMvbW9jay12
My1tb2RlbHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvcmVz
b3VyY2VzL21vY2stdjMtbW9kZWxzLmpzCkBAIC0xNCw2ICsxNCw3IEBAIHZhciBNb2NrTW9kZWxz
ID0gewogICAgICAgICAgICAgVGVzdEdyb3VwLmNsZWFyU3RhdGljTWFwKCk7CiAgICAgICAgICAg
ICBCdWlsZFJlcXVlc3QuY2xlYXJTdGF0aWNNYXAoKTsKICAgICAgICAgICAgIFRyaWdnZXJhYmxl
LmNsZWFyU3RhdGljTWFwKCk7CisgICAgICAgICAgICBUcmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24u
Y2xlYXJTdGF0aWNNYXAoKTsKICAgICAgICAgICAgIFVwbG9hZGVkRmlsZS5jbGVhclN0YXRpY01h
cCgpOwogICAgICAgICAgICAgTWVhc3VyZW1lbnRTZXQuX3NldE1hcCA9IG51bGw7CiAKQEAgLTcy
LDggKzczLDkgQEAgdmFyIE1vY2tNb2RlbHMgPSB7CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
ICAgIE1vY2tNb2RlbHMudHJpZ2dlcmFibGUgPSBuZXcgVHJpZ2dlcmFibGUoMywge25hbWU6ICdi
dWlsZC13ZWJraXQnLAogICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlHcm91cHM6IFtNb2NrTW9k
ZWxzLm9zUmVwb3NpdG9yeUdyb3VwLCBNb2NrTW9kZWxzLnN2blJlcG9zaXRvcnlHcm91cCwgTW9j
a01vZGVscy5naXRSZXBvc2l0b3J5R3JvdXAsIE1vY2tNb2RlbHMuc3ZuUmVwb3NpdG9yeVdpdGhP
d25lZFJlcG9zaXRvcnlHcm91cCwgTW9ja01vZGVscy5vd25lclJlcG9zaXRvcnlHcm91cF0sCi0g
ICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbnM6IFt7dGVzdDogTW9ja01vZGVscy5pUGhvbmVQ
TFQsIHBsYXRmb3JtOiBNb2NrTW9kZWxzLmlwaG9uZX1dfSk7CisgICAgICAgICAgICAgICAgY29u
ZmlndXJhdGlvbnM6IFt7dGVzdDogTW9ja01vZGVscy5pUGhvbmVQTFQsIHBsYXRmb3JtOiBNb2Nr
TW9kZWxzLmlwaG9uZSwgaWQ6IDIwMjEsIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlczogWydhbHRl
cm5hdGluZycsICdzZXF1ZW50aWFsJ119XX0pOwogCisgICAgICAgICAgICBNb2NrTW9kZWxzLnNv
bWVUcmlnZ2FibGVDb25maWd1cmF0aW9uID0gVHJpZ2dlcmFibGVDb25maWd1cmF0aW9uLmZpbmRC
eUlkKDIwMjEpOwogICAgICAgICB9KTsKICAgICB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442669</attachid>
            <date>2021-10-27 21:03:15 -0700</date>
            <delta_ts>2021-10-29 04:05:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229545-20211027210314.patch</filename>
            <type>text/plain</type>
            <size>139180</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0OTY4CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA5M2MyZTNkMmEwOTY2MjNhMDk0YjMyZmQ1OGY4NmE2N2EyMmRjOTQ1Li4xMmNiNTU5NTcx
MmI5NGIyNDI0ZGU4ZGQzOTQ4MDA1YWUyNWFiYWY2IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMjEgQEAKKzIwMjEtMTAtMjAgIERld2VpIFpodSAgPGRld2VpX3po
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkICdwYWlyZWQtcGFyYWxsZWwnIHJlcGV0aXRpb24g
dHlwZSBmb3IgQS9CIHRlc3RpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjk1NDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgJ3BhaXJlZC1wYXJhbGxlbCcgcmVwZXRpdGlvbiB0eXBlIGZvciBB
L0IgdGVzdGluZy4KKyAgICAgICAgQWRkICdUcmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24nIG1vZGVs
IHRvIHN0b3JlIHJlcGV0aXRpb24gdHlwZXMgaW5mb3JtYXRpb24gZm9yIGVhY2ggKHBsYXRmb3Jt
LCB0ZXN0KSBwYWlyLgorICAgICAgICBBZGQgbmV3IGNvbXBvbmVudCAncmVwZXRpdGlvbi10eXBl
LXNlbGVjdGlvbicgdG8gdW5pZnkgQS9CIHRlc3RpbmcgVUkgZm9yIHJlcGV0aXRpb24gdHlwZSBz
ZWxlY3Rpb24uCisgICAgICAgIEV4dGVuZCBBL0IgdGVzdGluZyBzeW5jaW5nIHNjcmlwdCB0byB1
cGRhdGUgcmVwZXRpdGlvbiB0eXBlcyBmb3IgZWFjaCB0cmlnZ2VyYWJsZSBjb25maWd1cmF0aW9u
IGFuZCBvbmx5CisgICAgICAgIHNjaGVkdWxlIEEvQiB0ZXN0aW5nIGZvciBnaXZlbiByZXBldGl0
aW9uIHR5cGVzLgorCisgICAgICAgICogYnJvd3Nlci10ZXN0cy9jdXN0b20tYW5hbHlzaXMtdGFz
ay1jb25maWd1cmF0b3ItdGVzdHMuanM6IFVwZGF0ZWQgdW5pdCB0ZXN0cyBhY2NvcmRpbmdseS4K
KyAgICAgICAgKGFzeW5jIGNyZWF0ZUN1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvcldpdGhD
b250ZXh0KToKKyAgICAgICAgKiBicm93c2VyLXRlc3RzL2N1c3RvbWl6YWJsZS10ZXN0LWdyb3Vw
LWZvcm0tdGVzdHMuanM6IFVwZGF0ZWQgdW5pdCB0ZXN0cyBhY2NvcmRpbmdseS4KKyAgICAgICAg
KGFzeW5jIGNyZWF0ZUN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm1XaXRoQ29udGV4dCk6CisgICAg
ICAgICogYnJvd3Nlci10ZXN0cy90ZXN0LWdyb3VwLWZvcm0tdGVzdHMuanM6IFVwZGF0ZWQgdW5p
dCB0ZXN0cyBhY2NvcmRpbmdseS4KKyAgICAgICAgKGFzeW5jIGNyZWF0ZVRlc3RHcm91cEZvcm1X
aXRoQ29udGV4dCk6CisgICAgICAgICogaW5pdC1kYXRhYmFzZS5zcWw6IEFkZGVkICd0cmlnZ2Vy
YWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMnIHRhYmxlIHRvIHN0b3JlIHN1cHBv
cnRlZAorICAgICAgICByZXBldGl0aW9uIHR5cGVzIGZvciBlYWNoIHRyaWdnZXJhYmxlIGNvbmZp
Z3VyYXRpb24uCisgICAgICAgIEFkZGVkICdwYWlyZWQtcGFyYWxsZWwnIHJlcGV0aXRpb24gdHlw
ZS4KKyAgICAgICAgKiBtaWdyYXRlLWRhdGFiYXNlLnNxbDogVXBkYXRlZCBtaWdyYXRpb24gc2Ny
aXB0cy4KKyAgICAgICAgKiBwdWJsaWMvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS5waHA6IEFkZGVk
IGxvZ2ljIHRvIHVwZGF0ZSByZXBldGl0aW9uIHR5cGVzIGZvciBlYWNoIHRpcmdnZXJhYmxlIGNv
bmZpZ3VyYXRpb25zLgorICAgICAgICAqIHB1YmxpYy9pbmNsdWRlL2NvbW1pdC1zZXRzLWhlbHBl
cnMucGhwOiBBZGRlZCBzdXBwb3J0IGZvciAncGFpcmVkLXBhcmFsbGVsJyByZXBldGl0aW9uIHR5
cGUuCisgICAgICAgICogcHVibGljL2luY2x1ZGUvanNvbi1oZWFkZXIucGhwOiBFeHRlbmRlZCAn
ZmluZF90cmlnZ2VyYWJsZV9mb3JfdGFzaycgdG8gaW5jbHVkZSBzdXBwb3J0ZWQgcmVwZXRpdGlv
biB0eXBlcyBpbgorICAgICAgICByZXR1cm4gdmFsdWUuCisgICAgICAgICogcHVibGljL2luY2x1
ZGUvbWFuaWZlc3QtZ2VuZXJhdG9yLnBocDogQWRkZWQgbG9naWMgdG8gaW5jbHVkZSBzdXBwb3J0
ZWQgcmVwZXRpdGlvbiB0eXBlcyBpbiBtYW5pZmVzdC4KKyAgICAgICAgKiBwdWJsaWMvcHJpdmls
ZWdlZC1hcGkvYWRkLWJ1aWxkLXJlcXVlc3RzLnBocDogRXh0ZW5kZWQgQVBJIHRvIHN1cHBvcnQg
J3BhaXJlZC1wYXJhbGxlbCcgcmVwZXRpdGlvbiB0eXBlLgorICAgICAgICAqIHB1YmxpYy9wcml2
aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzay5waHA6IEV4dGVuZGVkIEFQSSB0byBzdXBw
b3J0ICdwYWlyZWQtcGFyYWxsZWwnIHJlcGV0aXRpb24gdHlwZS4KKyAgICAgICAgKiBwdWJsaWMv
cHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAucGhwOiBFeHRlbmRlZCBBUEkgdG8gc3Vw
cG9ydCAncGFpcmVkLXBhcmFsbGVsJyByZXBldGl0aW9uIHR5cGUuCisgICAgICAgICogcHVibGlj
L3YzL2NvbW1pdC1zZXQtcmFuZ2UtYmlzZWN0b3IuanM6CisgICAgICAgIChDb21taXRTZXRSYW5n
ZUJpc2VjdG9yLl9jbG9zZXN0Q29tbWl0U2V0c1RvQmlzZWN0aW5nQ29tbWl0QnlUaW1lKTogRml4
IGEgYnVnIHRoYXQgZXJyb3IgaXMgcmFpc2Ugd2hlbiB0aGVyZSBpcworICAgICAgICBubyBtaWRk
bGUgY29tbWl0IHNldCBpbiBhIHJhbmdlLgorICAgICAgICAqIHB1YmxpYy92My9jb21wb25lbnRz
L2N1c3RvbS1jb25maWd1cmF0aW9uLXRlc3QtZ3JvdXAtZm9ybS5qczogQWRkZWQgY29kZSB0byB1
cGRhdGUgc3VwcG9ydGVkIHJlcGV0aXRpb24gdHlwZXMKKyAgICAgICAgb24gdGVzdCBjb25maWcg
Y2hhbmdlLgorICAgICAgICAoQ3VzdG9tQ29uZmlndXJhdGlvblRlc3RHcm91cEZvcm0ucHJvdG90
eXBlLnN0YXJ0VGVzdGluZyk6CisgICAgICAgIChDdXN0b21Db25maWd1cmF0aW9uVGVzdEdyb3Vw
Rm9ybS5wcm90b3R5cGUuZGlkQ29uc3RydWN0U2hhZG93VHJlZSk6CisgICAgICAgICogcHVibGlj
L3YzL2NvbXBvbmVudHMvY3VzdG9taXphYmxlLXRlc3QtZ3JvdXAtZm9ybS5qczoKKyAgICAgICAg
KEN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm0ucHJvdG90eXBlLnN0YXJ0VGVzdGluZyk6CisgICAg
ICAgICogcHVibGljL3YzL2NvbXBvbmVudHMvcmVwZXRpdGlvbi10eXBlLXNlbGVjdGlvbi5qczog
QWRkZWQgYSBuZXcgbW9kZWwgdGhhdCBzdG9yZXMgcmVwZXRpdGlvbiB0eXBlcyBpbmZvcm1hdGlv
bgorICAgICAgICBmb3IgZWFjaCAocGxhdGZvcm0sIHRlc3QpIHBhaXIuCisgICAgICAgIChSZXBl
dGl0aW9uVHlwZVNlbGVjdGlvbik6CisgICAgICAgIChSZXBldGl0aW9uVHlwZVNlbGVjdGlvbi5w
cm90b3R5cGUuZGlkQ29uc3RydWN0U2hhZG93VHJlZSk6CisgICAgICAgIChSZXBldGl0aW9uVHlw
ZVNlbGVjdGlvbi5wcm90b3R5cGUuZ2V0IHNlbGVjdGVkUmVwZXRpdGlvblR5cGUpOgorICAgICAg
ICAoUmVwZXRpdGlvblR5cGVTZWxlY3Rpb24ucHJvdG90eXBlLnNldCBzZWxlY3RlZFJlcGV0aXRp
b25UeXBlKToKKyAgICAgICAgKFJlcGV0aXRpb25UeXBlU2VsZWN0aW9uLnByb3RvdHlwZS5zZXQg
ZGlzYWJsZWQpOgorICAgICAgICAoUmVwZXRpdGlvblR5cGVTZWxlY3Rpb24ucHJvdG90eXBlLnNl
dFRlc3RBbmRQbGF0Zm9ybSk6CisgICAgICAgIChSZXBldGl0aW9uVHlwZVNlbGVjdGlvbi5wcm90
b3R5cGUubGFiZWxGb3JSZXBldGl0aW9uVHlwZSk6CisgICAgICAgIChSZXBldGl0aW9uVHlwZVNl
bGVjdGlvbi5wcm90b3R5cGUucmVuZGVyKToKKyAgICAgICAgKFJlcGV0aXRpb25UeXBlU2VsZWN0
aW9uLnByb3RvdHlwZS5fcmVuZGVyUmVwZXRpdGlvblR5cGVMaXN0KToKKyAgICAgICAgKFJlcGV0
aXRpb25UeXBlU2VsZWN0aW9uLmh0bWxUZW1wbGF0ZSk6CisgICAgICAgICogcHVibGljL3YzL2Nv
bXBvbmVudHMvdGVzdC1ncm91cC1mb3JtLmpzOiBBZG9wdCAncmVwZXRpdGlvbi10eXBlLXNlbGVj
dGlvbicuCisgICAgICAgIChUZXN0R3JvdXBGb3JtLnByb3RvdHlwZS5zZXRUZXN0QW5kUGxhdGZv
cm0pOgorICAgICAgICAoVGVzdEdyb3VwRm9ybS5wcm90b3R5cGUucmVuZGVyKToKKyAgICAgICAg
KFRlc3RHcm91cEZvcm0ucHJvdG90eXBlLnN0YXJ0VGVzdGluZyk6CisgICAgICAgICogcHVibGlj
L3YzL2luZGV4Lmh0bWw6CisgICAgICAgICogcHVibGljL3YzL21vZGVscy9tYW5pZmVzdC5qczog
UGFzcyAnc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzJyBhbmQgJ2lkJyBmb3IgVHJpZ2dlcmFibGVD
b25maWd1cmF0aW9uLgorICAgICAgICAoTWFuaWZlc3QucmVzZXQpOgorICAgICAgICAoTWFuaWZl
c3QuX2RpZEZldGNoTWFuaWZlc3QpOgorICAgICAgICAoTWFuaWZlc3QpOgorICAgICAgICAqIHB1
YmxpYy92My9tb2RlbHMvdGVzdC1ncm91cC5qczogVXBkYXRlZCBsb2dpYyB0byBzaGFyZSByZXRy
eSBsb2dpYyBvZiAnYWx0ZXJuYXRpbmcnIHRlc3QgZ3JvdXAgd2l0aCAncGFpcmVkLXBhcmFsbGVs
JworICAgICAgICB0ZXN0IGdyb3VwLgorICAgICAgICAoVGVzdEdyb3VwLnByb3RvdHlwZS5hc3lu
YyBzY2hlZHVsZU1vcmVSZXF1ZXN0c09yQ2xlYXJGbGFnKToKKyAgICAgICAgKiBwdWJsaWMvdjMv
bW9kZWxzL3RyaWdnZXJhYmxlLmpzOiBBZGRlZCBUcmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24gbW9k
ZWwuCisgICAgICAgIEFkZGVkIGNvZGUgdG8gY3JlYXQgVHJpZ2dlcmFibGVDb25maWd1cmF0aW9u
IGluICdUcmlnZ2VyYWJsZScgY29uc3RydWN0b3IuCisgICAgICAgIChUcmlnZ2VyYWJsZSk6Cisg
ICAgICAgIChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbik6CisgICAgICAgIChw
cm90b3R5cGUuZ2V0IHRyaWdnZXJhYmxlKToKKyAgICAgICAgKHByb3RvdHlwZS5nZXQgc3VwcG9y
dGVkUmVwZXRpdGlvblR5cGVzKToKKyAgICAgICAgKGZpbmRCeVRlc3RBbmRQbGF0Zm9ybSk6Cisg
ICAgICAgICogcHVibGljL3YzL3BhZ2VzL2FuYWx5c2lzLXRhc2stcGFnZS5qczogQWRkZWQgY29k
ZSB0byB1cGRhdGUgcmVwZXRpdGlvbiB0eXBlIGluIHRoZSBVSSBiYXNlZCBvbiAodGVzdCwgcGxh
dGZvcm0pIHBhaXIuCisgICAgICAgIChBbmFseXNpc1Rhc2tSZXN1bHRzUGFuZS5wcm90b3R5cGUu
c2V0VGVzdEdyb3Vwcyk6CisgICAgICAgIChBbmFseXNpc1Rhc2tUZXN0R3JvdXBQYW5lLnByb3Rv
dHlwZS5fcmVuZGVyQ3VycmVudFRlc3RHcm91cCk6CisgICAgICAgIChBbmFseXNpc1Rhc2tUZXN0
R3JvdXBQYW5lLnByb3RvdHlwZS5fcmVuZGVyVGVzdEdyb3VwRm9ybSk6CisgICAgICAgICogcHVi
bGljL3YzL3BhZ2VzL2NoYXJ0LXBhbmUuanM6IEFkb3B0ICdyZXBldGl0aW9uLXR5cGUtc2VsZWN0
aW9uJy4KKyAgICAgICAgKENoYXJ0UGFuZS5wcm90b3R5cGUuZGlkQ29uc3RydWN0U2hhZG93VHJl
ZSk6CisgICAgICAgIChDaGFydFBhbmUucHJvdG90eXBlLmFzeW5jIF9hbmFseXplUmFuZ2UpOgor
ICAgICAgICAoQ2hhcnRQYW5lLnByb3RvdHlwZS5fcmVuZGVyQWN0aW9uVG9vbGJhcik6CisgICAg
ICAgICogc2VydmVyLXRlc3RzL2FwaS1tYW5pZmVzdC10ZXN0cy5qczoKKyAgICAgICAgKiBzZXJ2
ZXItdGVzdHMvYXBpLXVwZGF0ZS10cmlnZ2VyYWJsZS10ZXN0cy5qczogQWRkZWQgYW5kIHVwZGF0
ZWQgdW5pdCB0ZXN0cy4KKyAgICAgICAgKHVwZGF0ZVdpdGhNYWNXZWJLaXRSZXBvc2l0b3J5R3Jv
dXBzKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXVwbG9hZC1yb290LXRlc3RzLmpzOiBV
cGRhdGVkIHVuaXQgdGVzdHMuCisgICAgICAgICogc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBp
LWFkZC1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qczogQWRkZWQgYW5kIHVwZGF0ZWQgdW5pdCB0ZXN0
cy4KKyAgICAgICAgKGFzeW5jIGFkZFRyaWdnZXJhYmxlQW5kQ3JlYXRlVGFzayk6CisgICAgICAg
ICogc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS1hbmFseXNpcy10YXNrLXRlc3Rz
LmpzOiBBZGRlZCBhbmQgdXBkYXRlZCB1bml0IHRlc3RzLgorICAgICAgICAqIHNlcnZlci10ZXN0
cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtdGVzdC1ncm91cC10ZXN0cy5qczogQWRkZWQgYW5kIHVw
ZGF0ZWQgdW5pdCB0ZXN0cy4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGkt
dXBkYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanM6IFVwZGF0ZWQgdW5pdCB0ZXN0cy4KKyAgICAgICAg
KGFzeW5jIGFkZFRyaWdnZXJhYmxlQW5kQ3JlYXRlVGFzayk6CisgICAgICAgICogc2VydmVyLXRl
c3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanM6CisgICAgICAgIChNb2NrRGF0YS5zb21lVGVzdENv
bmZpZ3VyYXRpb25JZCk6CisgICAgICAgIChNb2NrRGF0YS5vdGhlclRlc3RDb25maWd1cmF0aW9u
SWQpOgorICAgICAgICAoTW9ja0RhdGEuYWRkTW9ja0NvbmZpZ3VyYXRpb24pOgorICAgICAgICAo
TW9ja0RhdGEuc2V0IG1vY2tUZXN0U3luY0NvbmZpZ1dpdGhTaW5nbGVCdWlsZGVyKToKKyAgICAg
ICAgKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhQYXRjaEFjY2VwdGluZ0J1aWxkZXIp
OgorICAgICAgICAoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3b0J1aWxkZXJzKToK
KyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10
ZXN0cy5qczogQWRkZWQgYW5kIHVwZGF0ZWQgdW5pdCB0ZXN0cy4KKyAgICAgICAgKiB0b29scy9q
cy9idWlsZGJvdC1zeW5jZXIuanM6IEFkZGVkIGNvZGUgdG8gdXBkYXRlIHN1cHBvcnRlZCByZXBl
dGl0aW9uIHR5cGVzIG9uIHRyaWdnZXJhYmxlIHVwZGF0ZXMuCisgICAgICAgIEFkZGVkIGNvZGUg
dG8gb25seSBzY2hlZHVsZSB0ZXN0IHR5cGUgYnVpbGQgcmVxdWVzdHMgZm9yIHJlcGV0aXRpb24g
dHlwZXMgc3BlY2lmaWVkIGJ5ICdyZXBldGl0aW9uVHlwZUZvclNjaGVkdWxpbmcnCisgICAgICAg
IGZyb20gY29uZmlnIGZpbGUsIGJ1aWxkIHR5cGUgYnVpbGQgcmVxdWVzdHMgd2lsbCBiZSBzY2hl
ZHVsZWQgcmVnYXJkbGVzcyByZXBldGl0aW9uIHR5cGVzLgorICAgICAgICAoQnVpbGRib3RTeW5j
ZXIpOgorICAgICAgICAoQnVpbGRib3RTeW5jZXIucHJvdG90eXBlLmFkZFRlc3RDb25maWd1cmF0
aW9uKToKKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLnByb3RvdHlwZS5tYXRjaGVzQ29uZmlndXJh
dGlvbik6CisgICAgICAgIChCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyk6CisgICAgICAgICog
dG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanM6CisgICAgICAgIChCdWlsZGJvdFRyaWdn
ZXJhYmxlLnByb3RvdHlwZS51cGRhdGVUcmlnZ2VyYWJsZSk6CisgICAgICAgIChCdWlsZGJvdFRy
aWdnZXJhYmxlLnByb3RvdHlwZS5hc3luYyBzeW5jT25jZSk6CisgICAgICAgICogdG9vbHMvanMv
djMtbW9kZWxzLmpzOgorICAgICAgICAqIHVuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3Rz
LmpzOiBBZGRlZCBhbmQgdXBkYXRlZCB1bml0IHRlc3RzLgorICAgICAgICAoc2FtcGxlaU9TQ29u
ZmlnKToKKyAgICAgICAgKHNhbXBsZWlPU0NvbmZpZ1dpdGhFeHBhbnNpb25zKToKKyAgICAgICAg
KHNtYWxsQ29uZmlndXJhdGlvbik6CisgICAgICAgIChzbWFsbENvbmZpZ3VyYXRpb25XaXRoQ3Vz
dG9tUmVwZXRpdGlvblR5cGVzKToKKyAgICAgICAgKGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdCk6
CisgICAgICAgICogdW5pdC10ZXN0cy9tZWFzdXJlbWVudC1zZXQtYW5hbHl6ZXItdGVzdHMuanM6
IFVwZGF0ZWQgdW5pdCB0ZXN0cy4KKyAgICAgICAgKiB1bml0LXRlc3RzL3Jlc291cmNlcy9tb2Nr
LXYzLW1vZGVscy5qczoKKyAgICAgICAgKE1vY2tNb2RlbHMuaW5qZWN0KToKKwogMjAyMS0wOS0y
NiAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1QGFwcGxlLmNvbT4KIAogICAgICAgICBTdW1tYXJ5IHBh
Z2Ugc2hvdWxkIHN1cHBvcnQgY2FsY3VsYXRpbmcgc3VtbWFyeSB1c2luZyB3ZWlnaHRlZCBtZWFu
LgpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvY3Vz
dG9tLWFuYWx5c2lzLXRhc2stY29uZmlndXJhdG9yLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvY3VzdG9tLWFuYWx5c2lzLXRhc2stY29uZmlndXJhdG9y
LXRlc3RzLmpzCmluZGV4IDg1YWY3YjE0NDVkZmEzMmZlOTJiNTUyNGVlNTljMmZiZGFhYmNkYTcu
LjY2OThiZGUwMTNjMjMyZTFkY2I5MTk5MmZkMjcyYjEyOTFiMDk3MWEgMTAwNjQ0Ci0tLSBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9icm93c2VyLXRlc3RzL2N1c3RvbS1hbmFseXNpcy10YXNr
LWNvbmZpZ3VyYXRvci10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJv
d3Nlci10ZXN0cy9jdXN0b20tYW5hbHlzaXMtdGFzay1jb25maWd1cmF0b3ItdGVzdHMuanMKQEAg
LTEsMTIgKzEsMTYgQEAKIGRlc2NyaWJlKCdDdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3In
LCAoKSA9PiB7Ci0gICAgY29uc3Qgc2NyaXB0cyA9IFsnaW5zdHJ1bWVudGF0aW9uLmpzJywgJy4u
L3NoYXJlZC9jb21tb24tY29tcG9uZW50LWJhc2UuanMnLCAnY29tcG9uZW50cy9iYXNlLmpzJywg
J21vZGVscy9kYXRhLW1vZGVsLmpzJywgJ21vZGVscy9jb21taXQtbG9nLmpzJywKLSAgICAgICAg
J21vZGVscy9jb21taXQtc2V0LmpzJywgJ21vZGVscy9yZXBvc2l0b3J5LmpzJywgJ21vZGVscy9t
ZXRyaWMuanMnLCAnbW9kZWxzL3RyaWdnZXJhYmxlLmpzJywgJ21vZGVscy90ZXN0LmpzJywgJ21v
ZGVscy9wbGF0Zm9ybS5qcycsICdjb21wb25lbnRzL3Rlc3QtZ3JvdXAtZm9ybS5qcycsCi0gICAg
ICAgICdjb21wb25lbnRzL2N1c3RvbS1hbmFseXNpcy10YXNrLWNvbmZpZ3VyYXRvci5qcycsICdj
b21wb25lbnRzL2luc3RhbnQtZmlsZS11cGxvYWRlci5qcycsICdsYXppbHktZXZhbHVhdGVkLWZ1
bmN0aW9uLmpzJ107CisgICAgY29uc3Qgc2NyaXB0cyA9IFsnaW5zdHJ1bWVudGF0aW9uLmpzJywg
Jy4uL3NoYXJlZC9jb21tb24tY29tcG9uZW50LWJhc2UuanMnLCAnY29tcG9uZW50cy9iYXNlLmpz
JywKKyAgICAgICAgJ21vZGVscy9kYXRhLW1vZGVsLmpzJywgJ21vZGVscy9jb21taXQtbG9nLmpz
JywgJ21vZGVscy9jb21taXQtc2V0LmpzJywgJ21vZGVscy9yZXBvc2l0b3J5LmpzJywKKyAgICAg
ICAgJ21vZGVscy9tZXRyaWMuanMnLCAnbW9kZWxzL3RyaWdnZXJhYmxlLmpzJywgJ21vZGVscy90
ZXN0LmpzJywgJ21vZGVscy9wbGF0Zm9ybS5qcycsCisgICAgICAgICdjb21wb25lbnRzL3Rlc3Qt
Z3JvdXAtZm9ybS5qcycsICdjb21wb25lbnRzL2N1c3RvbS1hbmFseXNpcy10YXNrLWNvbmZpZ3Vy
YXRvci5qcycsCisgICAgICAgICdjb21wb25lbnRzL2luc3RhbnQtZmlsZS11cGxvYWRlci5qcycs
ICdsYXppbHktZXZhbHVhdGVkLWZ1bmN0aW9uLmpzJ107CiAKICAgICBhc3luYyBmdW5jdGlvbiBj
cmVhdGVDdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3JXaXRoQ29udGV4dChjb250ZXh0KQog
ICAgIHsKLSAgICAgICAgYXdhaXQgY29udGV4dC5pbXBvcnRTY3JpcHRzKHNjcmlwdHMsICdDb21w
b25lbnRCYXNlJywgJ0RhdGFNb2RlbE9iamVjdCcsICdSZXBvc2l0b3J5JywgJ0NvbW1pdExvZycs
ICdQbGF0Zm9ybScsICdUZXN0JywgJ01ldHJpYycsICdUcmlnZ2VyYWJsZScsCi0gICAgICAgICAg
ICAnVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAnLCAnQ3VzdG9tQ29tbWl0U2V0JywgJ0N1c3Rv
bUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvcicsICdNb2NrUmVtb3RlQVBJJywgJ0xhemlseUV2YWx1
YXRlZEZ1bmN0aW9uJyk7CisgICAgICAgIGF3YWl0IGNvbnRleHQuaW1wb3J0U2NyaXB0cyhzY3Jp
cHRzLCAnQ29tcG9uZW50QmFzZScsICdMYWJlbGVkT2JqZWN0JywgJ0RhdGFNb2RlbE9iamVjdCcs
ICdSZXBvc2l0b3J5JywKKyAgICAgICAgICAgICdDb21taXRMb2cnLCAnUGxhdGZvcm0nLCAnVGVz
dCcsICdNZXRyaWMnLCAnVHJpZ2dlcmFibGUnLCAnVHJpZ2dlcmFibGVDb25maWd1cmF0aW9uJywK
KyAgICAgICAgICAgICdUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cCcsICdDdXN0b21Db21taXRT
ZXQnLCAnQ3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yJywgJ01vY2tSZW1vdGVBUEknLAor
ICAgICAgICAgICAgJ0xhemlseUV2YWx1YXRlZEZ1bmN0aW9uJyk7CiAgICAgICAgIGNvbnN0IGN1
c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvciA9IG5ldyBjb250ZXh0LnN5bWJvbHMuQ3VzdG9t
QW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yOwogICAgICAgICBjb250ZXh0LmRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoY3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yLmVsZW1lbnQoKSk7CiAg
ICAgICAgIHJldHVybiBjdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3I7CkBAIC00MCw3ICs0
NCw3IEBAIGRlc2NyaWJlKCdDdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3InLCAoKSA9PiB7
CiAgICAgICAgICAgICBuYW1lOiAndGVzdC10cmlnZ2VyYWJsZScsCiAgICAgICAgICAgICBpc0Rp
c2FibGVkOiBmYWxzZSwKICAgICAgICAgICAgIHJlcG9zaXRvcnlHcm91cHM6IFt0cmlnZ2VyYWJs
ZVJlcG9zaXRvcnlHcm91cF0sCi0gICAgICAgICAgICBjb25maWd1cmF0aW9uczogW3t0ZXN0LCBw
bGF0Zm9ybX1dLAorICAgICAgICAgICAgY29uZmlndXJhdGlvbnM6IFt7dGVzdCwgcGxhdGZvcm0s
IHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ119
XSwKICAgICAgICAgfSk7CiAgICAgICAgIGN1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvci5z
ZWxlY3RUZXN0cyhbdGVzdF0pOwogICAgICAgICBjdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0
b3Iuc2VsZWN0UGxhdGZvcm0ocGxhdGZvcm0pOwpAQCAtMTI0LDcgKzEyOCw3IEBAIGRlc2NyaWJl
KCdDdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3InLCAoKSA9PiB7CiAgICAgICAgICAgICBu
YW1lOiAndGVzdC10cmlnZ2VyYWJsZScsCiAgICAgICAgICAgICBpc0Rpc2FibGVkOiBmYWxzZSwK
ICAgICAgICAgICAgIHJlcG9zaXRvcnlHcm91cHM6IFt0cmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91
cF0sCi0gICAgICAgICAgICBjb25maWd1cmF0aW9uczogW3t0ZXN0LCBwbGF0Zm9ybX1dLAorICAg
ICAgICAgICAgY29uZmlndXJhdGlvbnM6IFt7dGVzdCwgcGxhdGZvcm0sIHN1cHBvcnRlZFJlcGV0
aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ119XSwKICAgICAgICAgfSk7
CiAgICAgICAgIGN1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvci5zZWxlY3RUZXN0cyhbdGVz
dF0pOwogICAgICAgICBjdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3Iuc2VsZWN0UGxhdGZv
cm0ocGxhdGZvcm0pOwpAQCAtMjE2LDcgKzIyMCw4IEBAIGRlc2NyaWJlKCdDdXN0b21BbmFseXNp
c1Rhc2tDb25maWd1cmF0b3InLCAoKSA9PiB7CiAgICAgICAgICAgICBuYW1lOiAndGVzdC10cmln
Z2VyYWJsZScsCiAgICAgICAgICAgICBpc0Rpc2FibGVkOiBmYWxzZSwKICAgICAgICAgICAgIHJl
cG9zaXRvcnlHcm91cHM6IFt0cmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cF0sCi0gICAgICAgICAg
ICBjb25maWd1cmF0aW9uczogW3t0ZXN0LCBwbGF0Zm9ybTogbW9qYXZlfSwge3Rlc3QsIHBsYXRm
b3JtOiBoaWdoU2llcnJhfV0sCisgICAgICAgICAgICBjb25maWd1cmF0aW9uczogW3t0ZXN0LCBw
bGF0Zm9ybTogbW9qYXZlLCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcn
LCAnc2VxdWVudGlhbCddfSwKKyAgICAgICAgICAgICAgICB7dGVzdCwgcGxhdGZvcm06IGhpZ2hT
aWVycmEsIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1ZW50
aWFsJ119XSwKICAgICAgICAgfSk7CiAgICAgICAgIGN1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3Vy
YXRvci5zZWxlY3RUZXN0cyhbdGVzdF0pOwogICAgICAgICBjdXN0b21BbmFseXNpc1Rhc2tDb25m
aWd1cmF0b3Iuc2VsZWN0UGxhdGZvcm0obW9qYXZlKTsKQEAgLTI5NSw3ICszMDAsOCBAQCBkZXNj
cmliZSgnQ3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yJywgKCkgPT4gewogICAgICAgICAg
ICAgbmFtZTogJ3Rlc3QtdHJpZ2dlcmFibGUnLAogICAgICAgICAgICAgaXNEaXNhYmxlZDogZmFs
c2UsCiAgICAgICAgICAgICByZXBvc2l0b3J5R3JvdXBzOiBbdHJpZ2dlcmFibGVSZXBvc2l0b3J5
R3JvdXBdLAotICAgICAgICAgICAgY29uZmlndXJhdGlvbnM6IFt7dGVzdCwgcGxhdGZvcm06IG1v
amF2ZX0sIHt0ZXN0LCBwbGF0Zm9ybTogaGlnaFNpZXJyYX1dLAorICAgICAgICAgICAgY29uZmln
dXJhdGlvbnM6IFt7dGVzdCwgcGxhdGZvcm06IG1vamF2ZSwgc3VwcG9ydGVkUmVwZXRpdGlvblR5
cGVzOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXX0sCisgICAgICAgICAgICAgICAge3Rl
c3QsIHBsYXRmb3JtOiBoaWdoU2llcnJhLCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0
ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddfV0sCiAgICAgICAgIH0pOwogICAgICAgICBjdXN0b21B
bmFseXNpc1Rhc2tDb25maWd1cmF0b3Iuc2VsZWN0VGVzdHMoW3Rlc3RdKTsKICAgICAgICAgY3Vz
dG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yLnNlbGVjdFBsYXRmb3JtKG1vamF2ZSk7CkBAIC0z
NTYsNyArMzYyLDggQEAgZGVzY3JpYmUoJ0N1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvcics
ICgpID0+IHsKICAgICAgICAgICAgIG5hbWU6ICd0ZXN0LXRyaWdnZXJhYmxlJywKICAgICAgICAg
ICAgIGlzRGlzYWJsZWQ6IGZhbHNlLAogICAgICAgICAgICAgcmVwb3NpdG9yeUdyb3VwczogW3Ry
aWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwXSwKLSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25zOiBb
e3Rlc3QsIHBsYXRmb3JtOiBtb2phdmV9LCB7dGVzdCwgcGxhdGZvcm06IGhpZ2hTaWVycmF9XSwK
KyAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25zOiBbe3Rlc3QsIHBsYXRmb3JtOiBtb2phdmUsIHN1
cHBvcnRlZFJlcGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ119LAor
ICAgICAgICAgICAgICAgIHt0ZXN0LCBwbGF0Zm9ybTogaGlnaFNpZXJyYSwgc3VwcG9ydGVkUmVw
ZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXX1dLAogICAgICAgICB9
KTsKICAgICAgICAgY3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yLnNlbGVjdFRlc3RzKFt0
ZXN0XSk7CiAgICAgICAgIGN1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvci5zZWxlY3RQbGF0
Zm9ybShtb2phdmUpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dz
ZXItdGVzdHMvY3VzdG9taXphYmxlLXRlc3QtZ3JvdXAtZm9ybS10ZXN0cy5qcyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9icm93c2VyLXRlc3RzL2N1c3RvbWl6YWJsZS10ZXN0LWdyb3VwLWZv
cm0tdGVzdHMuanMKaW5kZXggYWFkM2MwMTJiMTNiMzgyM2FlYjdhYzYyMDBiOTFiYjQxZmI2ZjZl
Mi4uN2U3N2E5OThkZjY5OGI1NGFhYTNlMTJiMWY2NDFlMTkyMjY2NDI5NyAxMDA2NDQKLS0tIGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvY3VzdG9taXphYmxlLXRlc3Qt
Z3JvdXAtZm9ybS10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nl
ci10ZXN0cy9jdXN0b21pemFibGUtdGVzdC1ncm91cC1mb3JtLXRlc3RzLmpzCkBAIC0xLDExICsx
LDIwIEBACiAKIGRlc2NyaWJlKCdDdXN0b21pemFibGVUZXN0R3JvdXBGb3JtVGVzdHMnLCAoKSA9
PiB7Ci0gICAgY29uc3Qgc2NyaXB0cyA9IFsnaW5zdHJ1bWVudGF0aW9uLmpzJywgJy4uL3NoYXJl
ZC9jb21tb24tY29tcG9uZW50LWJhc2UuanMnLCAnY29tcG9uZW50cy9iYXNlLmpzJywgJ21vZGVs
cy9kYXRhLW1vZGVsLmpzJywgJ21vZGVscy9jb21taXQtbG9nLmpzJywKLSAgICAgICAgJ21vZGVs
cy9jb21taXQtc2V0LmpzJywgJ21vZGVscy9yZXBvc2l0b3J5LmpzJywgJ2NvbXBvbmVudHMvdGVz
dC1ncm91cC1mb3JtLmpzJywgJ2NvbXBvbmVudHMvY3VzdG9taXphYmxlLXRlc3QtZ3JvdXAtZm9y
bS5qcyddOworICAgIGNvbnN0IHNjcmlwdHMgPSBbJ2luc3RydW1lbnRhdGlvbi5qcycsICcuLi9z
aGFyZWQvY29tbW9uLWNvbXBvbmVudC1iYXNlLmpzJywgJ2NvbXBvbmVudHMvYmFzZS5qcycsCisg
ICAgICAgICdtb2RlbHMvZGF0YS1tb2RlbC5qcycsICdtb2RlbHMvY29tbWl0LWxvZy5qcycsICdt
b2RlbHMvY29tbWl0LXNldC5qcycsICdtb2RlbHMvcmVwb3NpdG9yeS5qcycsCisgICAgICAgICdj
b21wb25lbnRzL3Rlc3QtZ3JvdXAtZm9ybS5qcycsICdjb21wb25lbnRzL2N1c3RvbWl6YWJsZS10
ZXN0LWdyb3VwLWZvcm0uanMnLAorICAgICAgICAnY29tcG9uZW50cy9yZXBldGl0aW9uLXR5cGUt
c2VsZWN0aW9uLmpzJywgJ21vZGVscy9kYXRhLW1vZGVsLmpzJywgJ21vZGVscy90cmlnZ2VyYWJs
ZS5qcycsICdtb2RlbHMvdGVzdC5qcycsCisgICAgICAgICdtb2RlbHMvcGxhdGZvcm0uanMnLCAn
bGF6aWx5LWV2YWx1YXRlZC1mdW5jdGlvbi5qcyddOwogCiAgICAgYXN5bmMgZnVuY3Rpb24gY3Jl
YXRlQ3VzdG9taXphYmxlVGVzdEdyb3VwRm9ybVdpdGhDb250ZXh0KGNvbnRleHQpCiAgICAgewot
ICAgICAgICBhd2FpdCBjb250ZXh0LmltcG9ydFNjcmlwdHMoc2NyaXB0cywgJ0NvbXBvbmVudEJh
c2UnLCAnRGF0YU1vZGVsT2JqZWN0JywgJ1JlcG9zaXRvcnknLCAnQ29tbWl0TG9nJywgJ0NvbW1p
dFNldCcsICdDdXN0b21pemFibGVUZXN0R3JvdXBGb3JtJywgJ01vY2tSZW1vdGVBUEknKTsKKyAg
ICAgICAgYXdhaXQgY29udGV4dC5pbXBvcnRTY3JpcHRzKHNjcmlwdHMsICdDb21wb25lbnRCYXNl
JywgJ0RhdGFNb2RlbE9iamVjdCcsICdMYWJlbGVkT2JqZWN0JywgJ1Rlc3QnLAorICAgICAgICAg
ICAgJ1BsYXRmb3JtJywgJ1JlcG9zaXRvcnknLCAnQ29tbWl0TG9nJywgJ0NvbW1pdFNldCcsICdD
dXN0b21pemFibGVUZXN0R3JvdXBGb3JtJywgJ01vY2tSZW1vdGVBUEknLAorICAgICAgICAgICAg
J0xhemlseUV2YWx1YXRlZEZ1bmN0aW9uJywgJ1JlcGV0aXRpb25UeXBlU2VsZWN0aW9uJywgJ1Ry
aWdnZXJhYmxlQ29uZmlndXJhdGlvbicpOworICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IG5ldyBj
b250ZXh0LnN5bWJvbHMuUGxhdGZvcm0oNSwge25hbWU6ICdTb21lUGxhdGZvcm0nLCBtZXRyaWNz
OiBbXX0pOworICAgICAgICBjb25zdCB0ZXN0ID0gbmV3IGNvbnRleHQuc3ltYm9scy5UZXN0KDEw
LCB7bmFtZTogJ1NvbWVUZXN0J30pOworICAgICAgICBuZXcgY29udGV4dC5zeW1ib2xzLlRyaWdn
ZXJhYmxlQ29uZmlndXJhdGlvbigxLAorICAgICAgICAgICAge3BsYXRmb3JtLCB0ZXN0LCBzdXBw
b3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddfSk7CiAg
ICAgICAgIGNvbnN0IGN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm0gPSBuZXcgY29udGV4dC5zeW1i
b2xzLkN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm07CiAgICAgICAgIGNvbnRleHQuZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChjdXN0b21pemFibGVUZXN0R3JvdXBGb3JtLmVsZW1lbnQoKSk7CiAg
ICAgICAgIHJldHVybiBjdXN0b21pemFibGVUZXN0R3JvdXBGb3JtOwpkaWZmIC0tZ2l0IGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvdGVzdC1ncm91cC1mb3JtLXRlc3Rz
LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvdGVzdC1ncm91cC1m
b3JtLXRlc3RzLmpzCmluZGV4IGY5NjAxMTM4MjM0YTFkOWM1NjZhMzgwYTY1Y2U1OTA4NDI4MzBi
NGEuLmJmOTBjMThiODFjN2RmY2Q2OTdkN2JjNjA1ZWFlYWFhZDE1MDU4OWUgMTAwNjQ0Ci0tLSBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9icm93c2VyLXRlc3RzL3Rlc3QtZ3JvdXAtZm9ybS10
ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy90ZXN0
LWdyb3VwLWZvcm0tdGVzdHMuanMKQEAgLTEsMTQgKzEsMjEgQEAKIAogZGVzY3JpYmUoJ1Rlc3RH
cm91cEZvcm1UZXN0cycsICgpID0+IHsKLSAgICBjb25zdCBzY3JpcHRzID0gWydpbnN0cnVtZW50
YXRpb24uanMnLCAnLi4vc2hhcmVkL2NvbW1vbi1jb21wb25lbnQtYmFzZS5qcycsICdjb21wb25l
bnRzL2Jhc2UuanMnLCAnY29tcG9uZW50cy90ZXN0LWdyb3VwLWZvcm0uanMnXTsKKyAgICBjb25z
dCBzY3JpcHRzID0gWydpbnN0cnVtZW50YXRpb24uanMnLCAnLi4vc2hhcmVkL2NvbW1vbi1jb21w
b25lbnQtYmFzZS5qcycsICdjb21wb25lbnRzL2Jhc2UuanMnLAorICAgICAgICAnY29tcG9uZW50
cy90ZXN0LWdyb3VwLWZvcm0uanMnLCAnY29tcG9uZW50cy9yZXBldGl0aW9uLXR5cGUtc2VsZWN0
aW9uLmpzJywgJ21vZGVscy9kYXRhLW1vZGVsLmpzJywKKyAgICAgICAgJ21vZGVscy90cmlnZ2Vy
YWJsZS5qcycsICdtb2RlbHMvdGVzdC5qcycsICdtb2RlbHMvcGxhdGZvcm0uanMnLCAnbGF6aWx5
LWV2YWx1YXRlZC1mdW5jdGlvbi5qcyddOwogCi0gICAgZnVuY3Rpb24gY3JlYXRlVGVzdEdyb3Vw
Rm9ybVdpdGhDb250ZXh0KGNvbnRleHQpCisgICAgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVGVzdEdy
b3VwRm9ybVdpdGhDb250ZXh0KGNvbnRleHQpCiAgICAgewotICAgICAgICByZXR1cm4gY29udGV4
dC5pbXBvcnRTY3JpcHRzKHNjcmlwdHMsICdDb21wb25lbnRCYXNlJywgJ1Rlc3RHcm91cEZvcm0n
KS50aGVuKChzeW1ib2xzKSA9PiB7Ci0gICAgICAgICAgICBjb25zdCB0ZXN0R3JvdXBGb3JtID0g
bmV3IGNvbnRleHQuc3ltYm9scy5UZXN0R3JvdXBGb3JtOwotICAgICAgICAgICAgY29udGV4dC5k
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRlc3RHcm91cEZvcm0uZWxlbWVudCgpKTsKLSAgICAg
ICAgICAgIHJldHVybiB0ZXN0R3JvdXBGb3JtOwotICAgICAgICB9KTsKKyAgICAgICAgYXdhaXQg
Y29udGV4dC5pbXBvcnRTY3JpcHRzKHNjcmlwdHMsICdDb21wb25lbnRCYXNlJywgJ0xhYmVsZWRP
YmplY3QnLCAnRGF0YU1vZGVsT2JqZWN0JywgJ1Rlc3QnLAorICAgICAgICAgICAgJ1Rlc3RHcm91
cEZvcm0nLCAnUmVwZXRpdGlvblR5cGVTZWxlY3Rpb24nLCAnVHJpZ2dlcmFibGVDb25maWd1cmF0
aW9uJywnUGxhdGZvcm0nLCAnTGF6aWx5RXZhbHVhdGVkRnVuY3Rpb24nKTsKKyAgICAgICAgY29u
c3QgcGxhdGZvcm0gPSBuZXcgY29udGV4dC5zeW1ib2xzLlBsYXRmb3JtKDUsIHtuYW1lOiAnU29t
ZVBsYXRmb3JtJywgbWV0cmljczogW119KTsKKyAgICAgICAgY29uc3QgdGVzdCA9IG5ldyBjb250
ZXh0LnN5bWJvbHMuVGVzdCgxMCwge25hbWU6ICdTb21lVGVzdCd9KTsKKyAgICAgICAgbmV3IGNv
bnRleHQuc3ltYm9scy5UcmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24oYCR7dGVzdC5pZCgpfS0ke3Bs
YXRmb3JtLmlkKCl9YCwKKyAgICAgICAgICAgIHtwbGF0Zm9ybSwgdGVzdCwgc3VwcG9ydGVkUmVw
ZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXX0pOworICAgICAgICBj
b25zdCB0ZXN0R3JvdXBGb3JtID0gbmV3IGNvbnRleHQuc3ltYm9scy5UZXN0R3JvdXBGb3JtOwor
ICAgICAgICB0ZXN0R3JvdXBGb3JtLnNldFRlc3RBbmRQbGF0Zm9ybSh0ZXN0LCBwbGF0Zm9ybSk7
CisgICAgICAgIGNvbnRleHQuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXN0R3JvdXBGb3Jt
LmVsZW1lbnQoKSk7CisgICAgICAgIHJldHVybiB0ZXN0R3JvdXBGb3JtOwogICAgIH0KIAogICAg
IGl0KCdtdXN0IGRpc3BhdGNoICJzdGFydFRlc3RpbmciIGFjdGlvbiB3aXRoIHRoZSBudW1iZXIg
b2YgcmVwZXRpdGlvbnMgdGhlIHVzZXIgY2xpY2tzIG9uICJTdGFydCBBL0IgdGVzdGluZyInLCAo
KSA9PiB7CkBAIC0zMCw5ICszNyw3IEBAIGRlc2NyaWJlKCdUZXN0R3JvdXBGb3JtVGVzdHMnLCAo
KSA9PiB7CiAgICAgICAgIGV4cGVjdChjYWxscykudG8uZXFsKHt9KTsKICAgICAgICAgdGVzdEdy
b3VwRm9ybS5jb250ZW50KCdzdGFydC1idXR0b24nKS5jbGljaygpOwogICAgICAgICBleHBlY3Qo
Y2FsbHMpLnRvLmVxbChbWzQsICdhbHRlcm5hdGluZycsIHRydWVdXSk7Ci0gICAgICAgIGNvbnN0
IHR5cGVGb3JtID0gdGVzdEdyb3VwRm9ybS5jb250ZW50KCdyZXBldGl0aW9uLXR5cGUnKTsKLSAg
ICAgICAgdHlwZUZvcm0udmFsdWUgPSAnc2VxdWVudGlhbCc7Ci0gICAgICAgIHR5cGVGb3JtLmRp
c3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnKSk7CisgICAgICAgIHRlc3RHcm91cEZvcm0u
cGFydCgncmVwZXRpdGlvbi10eXBlLXNlbGVjdGlvbicpLnNlbGVjdGVkUmVwZXRpdGlvblR5cGUg
PSAnc2VxdWVudGlhbCc7CiAgICAgICAgIHRlc3RHcm91cEZvcm0uY29udGVudCgnc3RhcnQtYnV0
dG9uJykuY2xpY2soKTsKICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoW1s0LCAnYWx0ZXJu
YXRpbmcnLCB0cnVlXSwgWzQsICdzZXF1ZW50aWFsJywgdHJ1ZV1dKTsKICAgICB9KTsKZGlmZiAt
LWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbCBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9pbml0LWRhdGFiYXNlLnNxbAppbmRleCAwNWM3ODRhZGU0YWNi
YThlMTU1Nzk2NDhiNjNlYjkxY2ZkNjEzNDQ3Li5iYTgzY2I5ODQyNjIwMGYwNTg2OTdkYzNjN2M2
MTk0Mzg2ZjMwNmFjIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5pdC1k
YXRhYmFzZS5zcWwKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uu
c3FsCkBAIC0yNCw2ICsyNCw3IEBAIERST1AgVEFCTEUgSUYgRVhJU1RTIGFuYWx5c2lzX3N0cmF0
ZWdpZXMgQ0FTQ0FERTsKIERST1AgVFlQRSBJRiBFWElTVFMgYW5hbHlzaXNfdGFza19yZXN1bHRf
dHlwZSBDQVNDQURFOwogRFJPUCBUQUJMRSBJRiBFWElTVFMgYnVpbGRfdHJpZ2dlcmFibGVzIENB
U0NBREU7CiBEUk9QIFRBQkxFIElGIEVYSVNUUyB0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucyBD
QVNDQURFOworRFJPUCBUQUJMRSBJRiBFWElTVFMgdHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9y
ZXBldGl0aW9uX3R5cGVzIENBU0NBREU7CiBEUk9QIFRBQkxFIElGIEVYSVNUUyB0cmlnZ2VyYWJs
ZV9yZXBvc2l0b3J5X2dyb3VwcyBDQVNDQURFOwogRFJPUCBUQUJMRSBJRiBFWElTVFMgdHJpZ2dl
cmFibGVfcmVwb3NpdG9yaWVzIENBU0NBREU7CiBEUk9QIFRBQkxFIElGIEVYSVNUUyB1cGxvYWRl
ZF9maWxlcyBDQVNDQURFOwpAQCAtMjY1LDExICsyNjYsMTggQEAgQ1JFQVRFIFRBQkxFIHRyaWdn
ZXJhYmxlX3JlcG9zaXRvcmllcyAoCiAgICAgQ09OU1RSQUlOVCByZXBvc2l0b3J5X211c3RfYmVf
dW5pcXVlX2Zvcl9yZXBvc2l0b3J5X2dyb3VwIFVOSVFVRSh0cmlncmVwb19yZXBvc2l0b3J5LCB0
cmlncmVwb19ncm91cCkpOwogCiBDUkVBVEUgVEFCTEUgdHJpZ2dlcmFibGVfY29uZmlndXJhdGlv
bnMgKAorICAgIHRyaWdjb25maWdfaWQgc2VyaWFsIFBSSU1BUlkgS0VZLAogICAgIHRyaWdjb25m
aWdfdGVzdCBpbnRlZ2VyIFJFRkVSRU5DRVMgdGVzdHMgTk9UIE5VTEwsCiAgICAgdHJpZ2NvbmZp
Z19wbGF0Zm9ybSBpbnRlZ2VyIFJFRkVSRU5DRVMgcGxhdGZvcm1zIE5PVCBOVUxMLAogICAgIHRy
aWdjb25maWdfdHJpZ2dlcmFibGUgaW50ZWdlciBSRUZFUkVOQ0VTIGJ1aWxkX3RyaWdnZXJhYmxl
cyBOT1QgTlVMTCwKICAgICBDT05TVFJBSU5UIHRyaWdnZXJhYmxlX211c3RfYmVfdW5pcXVlX2Zv
cl90ZXN0X2FuZF9wbGF0Zm9ybSBVTklRVUUodHJpZ2NvbmZpZ190ZXN0LCB0cmlnY29uZmlnX3Bs
YXRmb3JtKSk7CiAKK0NSRUFURSBUWVBFIGFuYWx5c2lzX3Rlc3RfZ3JvdXBfcmVwZXRpdGlvbl90
eXBlIGFzIEVOVU0gKCdhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJywgJ3BhaXJlZC1wYXJhbGxl
bCcpOworQ1JFQVRFIFRBQkxFIHRyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90
eXBlcyAoCisgICAgY29uZmlncmVwZXRpdGlvbl9jb25maWcgSU5URUdFUiBOT1QgTlVMTCBSRUZF
UkVOQ0VTIHRyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zIE9OIERFTEVURSBDQVNDQURFLAorICAg
IGNvbmZpZ3JlcGV0aXRpb25fdHlwZSBhbmFseXNpc190ZXN0X2dyb3VwX3JlcGV0aXRpb25fdHlw
ZSBOT1QgTlVMTCwKKyAgICBQUklNQVJZIEtFWSAoY29uZmlncmVwZXRpdGlvbl9jb25maWcsIGNv
bmZpZ3JlcGV0aXRpb25fdHlwZSkpOworCiBDUkVBVEUgVEFCTEUgdXBsb2FkZWRfZmlsZXMgKAog
ICAgIGZpbGVfaWQgc2VyaWFsIFBSSU1BUlkgS0VZLAogICAgIGZpbGVfY3JlYXRlZF9hdCB0aW1l
c3RhbXAgTk9UIE5VTEwgREVGQVVMVCAoQ1VSUkVOVF9USU1FU1RBTVAgQVQgVElNRSBaT05FICdV
VEMnKSwKQEAgLTI4Myw3ICsyOTEsNiBAQCBDUkVBVEUgVEFCTEUgdXBsb2FkZWRfZmlsZXMgKAog
Q1JFQVRFIElOREVYIGZpbGVfYXV0aG9yX2luZGV4IE9OIHVwbG9hZGVkX2ZpbGVzKGZpbGVfYXV0
aG9yKTsKIENSRUFURSBVTklRVUUgSU5ERVggZmlsZV9zaGEyNTZfaW5kZXggT04gdXBsb2FkZWRf
ZmlsZXMoZmlsZV9zaGEyNTYpIFdIRVJFIGZpbGVfZGVsZXRlZF9hdCBpcyBOVUxMOwogCi1DUkVB
VEUgVFlQRSBhbmFseXNpc190ZXN0X2dyb3VwX3JlcGV0aXRpb25fdHlwZSBhcyBFTlVNICgnYWx0
ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCcpOwogQ1JFQVRFIFRBQkxFIGFuYWx5c2lzX3Rlc3RfZ3Jv
dXBzICgKICAgICB0ZXN0Z3JvdXBfaWQgc2VyaWFsIFBSSU1BUlkgS0VZLAogICAgIHRlc3Rncm91
cF90YXNrIGludGVnZXIgUkVGRVJFTkNFUyBhbmFseXNpc190YXNrcyBOT1QgTlVMTCwKZGlmZiAt
LWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9taWdyYXRlLWRhdGFiYXNlLnNxbCBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9taWdyYXRlLWRhdGFiYXNlLnNxbAppbmRleCBiZDFmYzI0
Y2E1ZmE2YmQ2NGU2OTQwYzRjNDNlNGFhYzMwZTgzNjZlLi5jM2U1YzUyYjcwOWU5ZjA4NjZlZTBj
ZGEzYjczYmRhNDM0MWU2M2Q5IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
bWlncmF0ZS1kYXRhYmFzZS5zcWwKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL21pZ3Jh
dGUtZGF0YWJhc2Uuc3FsCkBAIC0zLDcgKzMsNyBAQCBETyAkJAogQkVHSU4KIAogSUYgTk9UIEVY
SVNUUyAoU0VMRUNUIE5VTEwgRlJPTSBwZ190eXBlIFdIRVJFIHR5cG5hbWUgPSAnYW5hbHlzaXNf
dGVzdF9ncm91cF9yZXBldGl0aW9uX3R5cGUnKSBUSEVOCi0gICAgQ1JFQVRFIFRZUEUgYW5hbHlz
aXNfdGVzdF9ncm91cF9yZXBldGl0aW9uX3R5cGUgYXMgRU5VTSAoJ2FsdGVybmF0aW5nJywgJ3Nl
cXVlbnRpYWwnKTsKKyAgICBDUkVBVEUgVFlQRSBhbmFseXNpc190ZXN0X2dyb3VwX3JlcGV0aXRp
b25fdHlwZSBhcyBFTlVNICgnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCcsICdwYWlyZWQtcGFy
YWxsZWwnKTsKIEVORCBJRjsKIAogQUxURVIgVEFCTEUgYnVpbGRfcmVxdWVzdHMgQUREIENPTFVN
TiBJRiBOT1QgRVhJU1RTIHJlcXVlc3Rfc3RhdHVzX2Rlc2NyaXB0aW9uIHZhcmNoYXIoMTAyNCkg
REVGQVVMVCBOVUxMOwpAQCAtMjIsNiArMjIsMTEgQEAgQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElT
VFMgcGxhdGZvcm1fZ3JvdXBzICgKICAgICBwbGF0Zm9ybWdyb3VwX25hbWUgdmFyY2hhcig2NCkg
Tk9UIE5VTEwsCiAgICAgQ09OU1RSQUlOVCBwbGF0Zm9ybV9ncm91cF9uYW1lX211c3RfYmVfdW5p
cXVlIFVOSVFVRSAocGxhdGZvcm1ncm91cF9uYW1lKSk7CiAKK0NSRUFURSBUQUJMRSBJRiBOT1Qg
RVhJU1RTIHRyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcyAoCisgICAg
Y29uZmlncmVwZXRpdGlvbl9jb25maWcgSU5URUdFUiBOT1QgTlVMTCBSRUZFUkVOQ0VTIHRyaWdn
ZXJhYmxlX2NvbmZpZ3VyYXRpb25zIE9OIERFTEVURSBDQVNDQURFLAorICAgIGNvbmZpZ3JlcGV0
aXRpb25fdHlwZSBhbmFseXNpc190ZXN0X2dyb3VwX3JlcGV0aXRpb25fdHlwZSBOT1QgTlVMTCwK
KyAgICBQUklNQVJZIEtFWSAoY29uZmlncmVwZXRpdGlvbl9jb25maWcsIGNvbmZpZ3JlcGV0aXRp
b25fdHlwZSkpOworCiBBTFRFUiBUQUJMRSBwbGF0Zm9ybXMgQUREIENPTFVNTiBJRiBOT1QgRVhJ
U1RTIHBsYXRmb3JtX2dyb3VwIGludGVnZXIgUkVGRVJFTkNFUyBwbGF0Zm9ybV9ncm91cHMgREVG
QVVMVCBOVUxMOwogCiBJRiBFWElTVFMgKFNFTEVDVCBOVUxMIEZST00gaW5mb3JtYXRpb25fc2No
ZW1hLmNvbHVtbnMgV0hFUkUgVEFCTEVfTkFNRSA9ICdidWlsZHMnIEFORCBDT0xVTU5fTkFNRSA9
ICdidWlsZF9udW1iZXInKSBUSEVOCkBAIC00Niw0ICs1MSw3IEBAIElGIEVYSVNUUyAoU0VMRUNU
IE5VTEwgRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1ucyBXSEVSRSBUQUJMRV9OQU1FID0g
J2J1aWxkCiAgICAgQUxURVIgVEFCTEUgYnVpbGRfc2xhdmVzIFJFTkFNRSBUTyBidWlsZF93b3Jr
ZXJzOwogRU5EIElGOwogCi1FTkQkJDsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitFTkQk
JDsKKworQUxURVIgVEFCTEUgdHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMgQUREIENPTFVNTiBJ
RiBOT1QgRVhJU1RTIHRyaWdjb25maWdfaWQgc2VyaWFsIFBSSU1BUlkgS0VZOworQUxURVIgVFlQ
RSBhbmFseXNpc190ZXN0X2dyb3VwX3JlcGV0aXRpb25fdHlwZSBBREQgVkFMVUUgSUYgTk9UIEVY
SVNUUyAncGFpcmVkLXBhcmFsbGVsJzsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS5waHAgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUucGhwCmluZGV4IDkyZWRiNmY4
ZDU3MDMyZTJlZWExYWFkNWRhZjZhMzYxYjY0MzNhNjAuLmExM2RjYjIyZTU3ZWZiZmNlNGVmN2Yy
NjVkZjUxOTcwZGFmZTJjNDQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLnBocApAQCAtMzcsMTAgKzM3LDE5
IEBAIGZ1bmN0aW9uIG1haW4oJHBvc3RfZGF0YSkKIAogICAgIGZvcmVhY2ggKCRjb25maWd1cmF0
aW9ucyBhcyAmJGVudHJ5KSB7CiAgICAgICAgICRjb25maWdfaW5mbyA9IGFycmF5KCd0ZXN0JyA9
PiAkZW50cnlbJ3Rlc3QnXSwgJ3BsYXRmb3JtJyA9PiAkZW50cnlbJ3BsYXRmb3JtJ10sICd0cmln
Z2VyYWJsZScgPT4gJHRyaWdnZXJhYmxlX2lkKTsKLSAgICAgICAgaWYgKCEkZGItPmluc2VydF9y
b3coJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywgJ3RyaWdjb25maWcnLCAkY29uZmlnX2lu
Zm8sIG51bGwpKSB7CisgICAgICAgICRuZXdfdHJpZ2dlcmFibGVfaWQgPSAkZGItPmluc2VydF9y
b3coJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywgJ3RyaWdjb25maWcnLCAkY29uZmlnX2lu
Zm8pOworICAgICAgICBpZiAoISRuZXdfdHJpZ2dlcmFibGVfaWQpIHsKICAgICAgICAgICAgICRk
Yi0+cm9sbGJhY2tfdHJhbnNhY3Rpb24oKTsKICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcign
RmFpbGVkVG9JbnNlcnRDb25maWd1cmF0aW9uJywgYXJyYXkoJ2VudHJ5JyA9PiAkZW50cnkpKTsK
ICAgICAgICAgfQorICAgICAgICAkcmVwZXRpdGlvbl90eXBlcyA9IGFycmF5X2dldCgkZW50cnks
ICdzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMnLCBhcnJheSgpKTsKKyAgICAgICAgZm9yZWFjaCAo
JHJlcGV0aXRpb25fdHlwZXMgYXMgJHJlcGV0aXRpb25fdHlwZSkgeworICAgICAgICAgICAgaWYg
KCEkZGItPmluc2VydF9yb3coJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90
eXBlcycsIE5VTEwsCisgICAgICAgICAgICAgICAgYXJyYXkoJ2NvbmZpZ3JlcGV0aXRpb25fY29u
ZmlnJyA9PiAkbmV3X3RyaWdnZXJhYmxlX2lkLCAnY29uZmlncmVwZXRpdGlvbl90eXBlJyA9PiAk
cmVwZXRpdGlvbl90eXBlKSwgTlVMTCkpIHsKKyAgICAgICAgICAgICAgICAkZGItPnJvbGxiYWNr
X3RyYW5zYWN0aW9uKCk7CisgICAgICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdGYWlsZWRU
b0luc2VydFJlcGV0aXRpb25UeXBlRm9yVHJpZ2dlcmFibGVDb25maWcnKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQogICAgIH0KIAogICAgIGZvcmVhY2ggKCRyZXBvc2l0b3J5X2dyb3VwcyBh
cyAmJGdyb3VwKSB7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L2luY2x1ZGUvY29tbWl0LXNldHMtaGVscGVycy5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL2luY2x1ZGUvY29tbWl0LXNldHMtaGVscGVycy5waHAKaW5kZXggNzc3N2UxYWQ2
MmFmZGFjNzZjNzMxNDMzNTIyYzFiMjZhMDI3Yzg0YS4uN2EzMDBmYjQ5NGUzNzNiNTc2ZmFlYjc0
ZjU0NDdiMjA5ZThjYWFhMyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy9pbmNsdWRlL2NvbW1pdC1zZXRzLWhlbHBlcnMucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtc2V0cy1oZWxwZXJzLnBocApAQCAtNiw3
ICs2LDcgQEAgcmVxdWlyZV9vbmNlKCdjb21taXQtbG9nLWZldGNoZXIucGhwJyk7CiAjIEZJWE1F
OiBTaG91bGQgY3JlYXRlIGEgaGVscGVyIGNsYXNzIGZvciBiZWxvdyAzIGhlbHBlciBmdW5jdGlv
bnMgdG8gYXZvaWQgcGFzc2luZyBsb25nIGFyZ3VtZW50IGxpc3QuCiBmdW5jdGlvbiBjcmVhdGVf
dGVzdF9ncm91cF9hbmRfYnVpbGRfcmVxdWVzdHMoJGRiLCAkY29tbWl0X3NldHMsICR0YXNrX2lk
LCAkbmFtZSwgJGF1dGhvciwgJHRyaWdnZXJhYmxlX2lkLCAkcGxhdGZvcm1faWQsICR0ZXN0X2lk
LCAkcmVwZXRpdGlvbl9jb3VudCwgJHJlcGV0aXRpb25fdHlwZSwgJG5lZWRzX25vdGlmaWNhdGlv
bikKIHsKLSAgICBhc3NlcnQoaW5fYXJyYXkoJHJlcGV0aXRpb25fdHlwZSwgYXJyYXkoJ2FsdGVy
bmF0aW5nJywgJ3NlcXVlbnRpYWwnKSkpOworICAgIGFzc2VydChpbl9hcnJheSgkcmVwZXRpdGlv
bl90eXBlLCBhcnJheSgnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCcsICdwYWlyZWQtcGFyYWxs
ZWwnKSkpOwogICAgIGxpc3QgKCRidWlsZF9jb25maWd1cmF0aW9uX2xpc3QsICR0ZXN0X2NvbmZp
Z3VyYXRpb25fbGlzdCkgPSBpbnNlcnRfY29tbWl0X3NldHNfYW5kX2NvbnN0cnVjdF9jb25maWd1
cmF0aW9uX2xpc3QoJGRiLCAkY29tbWl0X3NldHMpOwogCiAgICAgJGdyb3VwX2lkID0gJGRiLT5p
bnNlcnRfcm93KCdhbmFseXNpc190ZXN0X2dyb3VwcycsICd0ZXN0Z3JvdXAnLApAQCAtMjQsNyAr
MjQsNyBAQCBmdW5jdGlvbiBjcmVhdGVfdGVzdF9ncm91cF9hbmRfYnVpbGRfcmVxdWVzdHMoJGRi
LCAkY29tbWl0X3NldHMsICR0YXNrX2lkLCAkbmFtZQogICAgICAgICAgICAgICAgIGluc2VydF9i
dWlsZF9yZXF1ZXN0X2Zvcl9jb25maWd1cmF0aW9uKCRkYiwgJHRlc3RfY29uZmlndXJhdGlvbiwg
JG9yZGVyKyssICR0cmlnZ2VyYWJsZV9pZCwgJHBsYXRmb3JtX2lkLCAkdGVzdF9pZCwgJGdyb3Vw
X2lkKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIGFzc2VydCgkcmVwZXRpdGlv
bl90eXBlID09ICdhbHRlcm5hdGluZycpOworICAgICAgICBhc3NlcnQoJHJlcGV0aXRpb25fdHlw
ZSA9PSAnYWx0ZXJuYXRpbmcnIHx8ICRyZXBldGl0aW9uX3R5cGUgPT0gJ3BhaXJlZC1wYXJhbGxl
bCcpOwogICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCAkcmVwZXRpdGlvbl9jb3VudDsgJGkrKykg
ewogICAgICAgICAgICAgZm9yZWFjaCAoJHRlc3RfY29uZmlndXJhdGlvbl9saXN0IGFzICR0ZXN0
X2NvbmZpZ3VyYXRpb24pCiAgICAgICAgICAgICAgICAgaW5zZXJ0X2J1aWxkX3JlcXVlc3RfZm9y
X2NvbmZpZ3VyYXRpb24oJGRiLCAkdGVzdF9jb25maWd1cmF0aW9uLCAkb3JkZXIrKywgJHRyaWdn
ZXJhYmxlX2lkLCAkcGxhdGZvcm1faWQsICR0ZXN0X2lkLCAkZ3JvdXBfaWQpOwpkaWZmIC0tZ2l0
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2pzb24taGVhZGVyLnBo
cCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9qc29uLWhlYWRlci5w
aHAKaW5kZXggNzhlOGQwYmUyOGU2NDc1MzRhY2QyOTAwZDFmY2ZmYTcwNzBkNDgzMi4uMjkyN2Jl
ZmMyMGExZjQ0ZWU3ZGY2YWMxNmJhOWNiN2JmOTExM2U4MyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2pzb24taGVhZGVyLnBocAorKysgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvanNvbi1oZWFkZXIucGhwCkBAIC0x
ODIsMjAgKzE4MiwzMSBAQCBmdW5jdGlvbiBmaW5kX3RyaWdnZXJhYmxlX2Zvcl90YXNrKCRkYiwg
JHRhc2tfaWQpIHsKICAgICAkcGF0aF9yZXNvbHZlciA9IG5ldyBUZXN0UGF0aFJlc29sdmVyKCRk
Yik7CiAgICAgJHRlc3RfaWRzID0gJHBhdGhfcmVzb2x2ZXItPmFuY2VzdG9yc19mb3JfdGVzdCgk
dGFyZ2V0X3Rlc3RfaWQpOwogCi0gICAgJHJlc3VsdHMgPSAkZGItPnF1ZXJ5X2FuZF9mZXRjaF9h
bGwoJ1NFTEVDVCB0cmlnY29uZmlnX3RyaWdnZXJhYmxlIEFTICJ0cmlnZ2VyYWJsZSIsIHRyaWdj
b25maWdfdGVzdCBBUyAidGVzdCIKKyAgICAkcmVzdWx0cyA9ICRkYi0+cXVlcnlfYW5kX2ZldGNo
X2FsbCgnU0VMRUNUIHRyaWdjb25maWdfaWQgQVMgImNvbmZpZ19pZCIsCisgICAgICAgIHRyaWdj
b25maWdfdHJpZ2dlcmFibGUgQVMgInRyaWdnZXJhYmxlIiwgdHJpZ2NvbmZpZ190ZXN0IEFTICJ0
ZXN0IgogICAgICAgICBGUk9NIHRyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zIFdIRVJFIHRyaWdj
b25maWdfcGxhdGZvcm0gPSAkMSBBTkQgdHJpZ2NvbmZpZ190ZXN0ID0gQU5ZKCQyKScsCiAgICAg
ICAgIGFycmF5KCRwbGF0Zm9ybV9pZCwgJ3snIC4gaW1wbG9kZSgnLCAnLCAkdGVzdF9pZHMpIC4g
J30nKSk7CiAgICAgaWYgKCEkcmVzdWx0cykKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICAk
dGVzdF90b190cmlnZ2VyYWJsZSA9IGFycmF5KCk7Ci0gICAgZm9yZWFjaCAoJHJlc3VsdHMgYXMg
JHJvdykKKyAgICAkdGVzdF90b190cmlnY29uZmlnID0gYXJyYXkoKTsKKyAgICBmb3JlYWNoICgk
cmVzdWx0cyBhcyAkcm93KSB7CiAgICAgICAgICR0ZXN0X3RvX3RyaWdnZXJhYmxlWyRyb3dbJ3Rl
c3QnXV0gPSAkcm93Wyd0cmlnZ2VyYWJsZSddOworICAgICAgICAkdGVzdF90b190cmlnY29uZmln
WyRyb3dbJ3Rlc3QnXV0gPSAkcm93Wydjb25maWdfaWQnXTsKKyAgICB9CisKKyAgICAkY29uZmln
cmVwZXRpdGlvbl9yb3dzID0gJGRiLT5zZWxlY3Rfcm93cygndHJpZ2dlcmFibGVfY29uZmlndXJh
dGlvbl9yZXBldGl0aW9uX3R5cGVzJywgJ2NvbmZpZ3JlcGV0aXRpb24nLCBhcnJheSgpKTsKKyAg
ICAkdHJpZ2NvbmZpZ190b19yZXBldGl0aW9uX3R5cGVzID0gYXJyYXkoKTsKKyAgICBmb3JlYWNo
ICgkY29uZmlncmVwZXRpdGlvbl9yb3dzIGFzICRyb3cpCisgICAgICAgIGFycmF5X3B1c2goYXJy
YXlfZW5zdXJlX2l0ZW1faGFzX2FycmF5KCR0cmlnY29uZmlnX3RvX3JlcGV0aXRpb25fdHlwZXMs
ICRyb3dbJ2NvbmZpZ3JlcGV0aXRpb25fY29uZmlnJ10pLCAkcm93Wydjb25maWdyZXBldGl0aW9u
X3R5cGUnXSk7CiAKICAgICBmb3JlYWNoICgkdGVzdF9pZHMgYXMgJHRlc3RfaWQpIHsKICAgICAg
ICAgJHRyaWdnZXJhYmxlID0gYXJyYXlfZ2V0KCR0ZXN0X3RvX3RyaWdnZXJhYmxlLCAkdGVzdF9p
ZCk7Ci0gICAgICAgIGlmICgkdHJpZ2dlcmFibGUpCi0gICAgICAgICAgICByZXR1cm4gYXJyYXko
J2lkJyA9PiAkdHJpZ2dlcmFibGUsICd0ZXN0JyA9PiAkdGVzdF9pZCwgJ3BsYXRmb3JtJyA9PiAk
cGxhdGZvcm1faWQpOworICAgICAgICBpZiAoJHRyaWdnZXJhYmxlKSB7CisgICAgICAgICAgICAk
c3VwcG9ydGVkX3JlcGV0aXRpb25fdHlwZXMgPSAkdHJpZ2NvbmZpZ190b19yZXBldGl0aW9uX3R5
cGVzWyR0ZXN0X3RvX3RyaWdjb25maWdbJHRlc3RfaWRdXTsKKyAgICAgICAgICAgIHJldHVybiBh
cnJheSgnaWQnID0+ICR0cmlnZ2VyYWJsZSwgJ3Rlc3QnID0+ICR0ZXN0X2lkLCAncGxhdGZvcm0n
ID0+ICRwbGF0Zm9ybV9pZCwgJ3N1cHBvcnRlZFJlcGV0aXRpb25UeXBlcycgPT4gJHN1cHBvcnRl
ZF9yZXBldGl0aW9uX3R5cGVzKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHJldHVybiBOVUxM
OwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL21h
bmlmZXN0LWdlbmVyYXRvci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2lu
Y2x1ZGUvbWFuaWZlc3QtZ2VuZXJhdG9yLnBocAppbmRleCAxNmRiZDdkZjlhNGExM2EwOGQ4MTdk
NmM4MjZjOTEwNWQwMzViYzdlLi43ODJmY2ViYzliZGNiMmU1YWE0N2I1M2ViNjJlN2RiZjY1ODU4
ZDY3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUv
bWFuaWZlc3QtZ2VuZXJhdG9yLnBocAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL2luY2x1ZGUvbWFuaWZlc3QtZ2VuZXJhdG9yLnBocApAQCAtMjYxLDYgKzI2MSwxMSBAQCBj
bGFzcyBNYW5pZmVzdEdlbmVyYXRvciB7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAorICAg
ICAgICAkcmVwZXRpdGlvbl90eXBlc19ieV9jb25maWd1cmF0aW9uID0gJGRiLT5mZXRjaF90YWJs
ZSgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJyk7CisgICAgICAg
ICRyZXBldGl0aW9uX3R5cGVzX2J5X2NvbmZpZyA9IGFycmF5KCk7CisgICAgICAgIGZvcmVhY2gg
KCRyZXBldGl0aW9uX3R5cGVzX2J5X2NvbmZpZ3VyYXRpb24gYXMgJiRyb3cpCisgICAgICAgICAg
ICBhcnJheV9wdXNoKGFycmF5X2Vuc3VyZV9pdGVtX2hhc19hcnJheSgkcmVwZXRpdGlvbl90eXBl
c19ieV9jb25maWcsICRyb3dbJ2NvbmZpZ3JlcGV0aXRpb25fY29uZmlnJ10pLCAkcm93Wydjb25m
aWdyZXBldGl0aW9uX3R5cGUnXSk7CisKICAgICAgICAgJGNvbmZpZ3VyYXRpb25fbWFwID0gJGRi
LT5mZXRjaF90YWJsZSgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnKTsKICAgICAgICAgaWYg
KCRjb25maWd1cmF0aW9uX21hcCkgewogICAgICAgICAgICAgZm9yZWFjaCAoJGNvbmZpZ3VyYXRp
b25fbWFwIGFzICYkcm93KSB7CkBAIC0yNjgsNyArMjczLDggQEAgY2xhc3MgTWFuaWZlc3RHZW5l
cmF0b3IgewogICAgICAgICAgICAgICAgIGlmICghYXJyYXlfa2V5X2V4aXN0cygkdHJpZ2dlcmFi
bGVfaWQsICRpZF90b190cmlnZ2VyYWJsZSkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICAgICAgICAgICR0cmlnZ2VyYWJsZSA9ICYkaWRfdG9fdHJpZ2dlcmFibGVbJHRy
aWdnZXJhYmxlX2lkXTsKLSAgICAgICAgICAgICAgICBhcnJheV9wdXNoKCR0cmlnZ2VyYWJsZVsn
Y29uZmlndXJhdGlvbnMnXSwgYXJyYXkoJHJvd1sndHJpZ2NvbmZpZ190ZXN0J10sICRyb3dbJ3Ry
aWdjb25maWdfcGxhdGZvcm0nXSkpOworICAgICAgICAgICAgICAgICRyZXBldGl0aW9uX3R5cGVz
ID0gJHJlcGV0aXRpb25fdHlwZXNfYnlfY29uZmlnWyRyb3dbJ3RyaWdjb25maWdfaWQnXV07Cisg
ICAgICAgICAgICAgICAgYXJyYXlfcHVzaCgkdHJpZ2dlcmFibGVbJ2NvbmZpZ3VyYXRpb25zJ10s
IGFycmF5KCRyb3dbJ3RyaWdjb25maWdfdGVzdCddLCAkcm93Wyd0cmlnY29uZmlnX3BsYXRmb3Jt
J10sICRyZXBldGl0aW9uX3R5cGVzKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIApkaWZm
IC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9h
ZGQtYnVpbGQtcmVxdWVzdHMucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9w
cml2aWxlZ2VkLWFwaS9hZGQtYnVpbGQtcmVxdWVzdHMucGhwCmluZGV4IDk1N2E5ZjQ3MzE0NTcw
NWZhYzUyMmRiNzI5NWNjYjgwN2MyNDRjYTcuLmQxNTJiMGI3M2FhZTY5YTIzZDk0NDNlYzA3YjUx
YmRmOWUwZjg0N2UgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
cHJpdmlsZWdlZC1hcGkvYWRkLWJ1aWxkLXJlcXVlc3RzLnBocAorKysgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL3ByaXZpbGVnZWQtYXBpL2FkZC1idWlsZC1yZXF1ZXN0cy5waHAK
QEAgLTMxLDI4ICszMSwyNyBAQCBmdW5jdGlvbiBtYWluKCkgewogICAgICAgICBleGl0X3dpdGhf
ZXJyb3IoJ05vVGVzdGluZ0J1aWxkUmVxdWVzdHMnKTsKIAogICAgICRyZXBldGl0aW9uX3R5cGUg
PSAkdGVzdF9ncm91cFsndGVzdGdyb3VwX3JlcGV0aXRpb25fdHlwZSddOwotICAgIGFzc2VydChp
bl9hcnJheSgkcmVwZXRpdGlvbl90eXBlLCBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXSkp
OwotICAgICRpc19hbHRlcm5hdGluZ190eXBlID0gJHJlcGV0aXRpb25fdHlwZSA9PSAnYWx0ZXJu
YXRpbmcnOwotICAgIGlmICgkaXNfYWx0ZXJuYXRpbmdfdHlwZSAmJiAkY29tbWl0X3NldF9pZCkK
LSAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdDb21taXRTZXROb3RTdXBwb3J0ZWRGb3JBbHRlcm5h
dGluZ1JlcGV0aXRpb25UeXBlJyk7CisgICAgYXNzZXJ0KGluX2FycmF5KCRyZXBldGl0aW9uX3R5
cGUsIFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCcsICdwYWlyZWQtcGFyYWxsZWwnXSkpOwor
ICAgICRpc19zZXF1ZW50aWFsX3R5cGUgPSAkcmVwZXRpdGlvbl90eXBlID09ICdzZXF1ZW50aWFs
JzsKKyAgICBpZiAoISRpc19zZXF1ZW50aWFsX3R5cGUgJiYgJGNvbW1pdF9zZXRfaWQpCisgICAg
ICAgIGV4aXRfd2l0aF9lcnJvcignQ29tbWl0U2V0Tm90U3VwcG9ydGVkRm9yTm9uU2VxdWVudGlh
bFJlcGV0aXRpb25UeXBlJyk7CiAKICAgICAkZXhpc3RpbmdfdGVzdF90eXBlX2J1aWxkX3JlcXVl
c3RzID0gYXJyYXlfZmlsdGVyKCRleGlzdGluZ19idWlsZF9yZXF1ZXN0cywgZnVuY3Rpb24oJGJ1
aWxkX3JlcXVlc3QpIHsKICAgICAgICAgcmV0dXJuICRidWlsZF9yZXF1ZXN0WydyZXF1ZXN0X29y
ZGVyJ10gPj0gMDsKICAgICB9KTsKIAotICAgIGlmICgkaXNfYWx0ZXJuYXRpbmdfdHlwZSkKLSAg
ICAgICAgYWRkX2FsdGVybmF0aW5nX2J1aWxkX3JlcXVlc3RzKCRkYiwgJGV4aXN0aW5nX3Rlc3Rf
dHlwZV9idWlsZF9yZXF1ZXN0cywgJGFkZGl0aW9uYWxfYnVpbGRfcmVxdWVzdF9jb3VudCwgJGN1
cnJlbnRfb3JkZXIpOwotICAgIGVsc2UgeworICAgIGlmICgkaXNfc2VxdWVudGlhbF90eXBlKSB7
CiAgICAgICAgIGlmICgkY29tbWl0X3NldF9pZCkKICAgICAgICAgICAgIGFkZF9zZXF1ZW50aWFs
X2J1aWxkX3JlcXVlc3RzX2Zvcl9jb21taXRfc2V0KCRkYiwgJGV4aXN0aW5nX3Rlc3RfdHlwZV9i
dWlsZF9yZXF1ZXN0cywgJGFkZGl0aW9uYWxfYnVpbGRfcmVxdWVzdF9jb3VudCwgJGNvbW1pdF9z
ZXRfaWQpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBhZGRfc2VxdWVudGlhbF9idWlsZF9y
ZXF1ZXN0c19mb3JfYWxsX2NvbW1pdF9zZXRzKCRkYiwgJGV4aXN0aW5nX2J1aWxkX3JlcXVlc3Rz
LCAkYWRkaXRpb25hbF9idWlsZF9yZXF1ZXN0X2NvdW50LCAkdGVzdF9ncm91cF9pZCk7Ci0gICAg
fQorICAgIH0gZWxzZQorICAgICAgICBhZGRfYWx0ZXJuYXRpbmdfb3JfcGFpcmVkX3BhcmFsbGVs
X2J1aWxkX3JlcXVlc3RzKCRkYiwgJGV4aXN0aW5nX3Rlc3RfdHlwZV9idWlsZF9yZXF1ZXN0cywg
JGFkZGl0aW9uYWxfYnVpbGRfcmVxdWVzdF9jb3VudCwgJGN1cnJlbnRfb3JkZXIpOwogCiAgICAg
ZXhpdF93aXRoX3N1Y2Nlc3MoKTsKIH0KIAotZnVuY3Rpb24gYWRkX2FsdGVybmF0aW5nX2J1aWxk
X3JlcXVlc3RzKCRkYiwgJGV4aXN0aW5nX2J1aWxkX3JlcXVlc3RzLCAkYWRkaXRpb25hbF9idWls
ZF9yZXF1ZXN0X2NvdW50LCAkb3JkZXIpCitmdW5jdGlvbiBhZGRfYWx0ZXJuYXRpbmdfb3JfcGFp
cmVkX3BhcmFsbGVsX2J1aWxkX3JlcXVlc3RzKCRkYiwgJGV4aXN0aW5nX2J1aWxkX3JlcXVlc3Rz
LCAkYWRkaXRpb25hbF9idWlsZF9yZXF1ZXN0X2NvdW50LCAkb3JkZXIpCiB7CiAgICAgJGNvbW1p
dF9zZXRzID0gYXJyYXkoKTsKICAgICAkYnVpbGRfcmVxdWVzdF9ieV9jb21taXRfc2V0ID0gYXJy
YXkoKTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJpdmls
ZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzay5waHAKaW5kZXgg
MmRjNzQ3Y2JkZTI2NzllM2Y5NmFkNTkwMGIwNmRmMzJhMzc4ZTFhMy4uZTcwMDdiMTEwZTAwYmY1
NTY0ZDFkYmI3MGQxY2Y0NGJjY2RjZTM1NiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzay5waHAKKysr
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUt
YW5hbHlzaXMtdGFzay5waHAKQEAgLTIxLDcgKzIxLDcgQEAgZnVuY3Rpb24gbWFpbigpIHsKICAg
ICBpZiAoISRuYW1lKQogICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ01pc3NpbmdOYW1lJywgYXJy
YXkoJ25hbWUnID0+ICRuYW1lKSk7CiAKLSAgICBpZiAoIWluX2FycmF5KCRyZXBldGl0aW9uX3R5
cGUsIGFycmF5KCdhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJykpKQorICAgIGlmICghaW5fYXJy
YXkoJHJlcGV0aXRpb25fdHlwZSwgYXJyYXkoJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnLCAn
cGFpcmVkLXBhcmFsbGVsJykpKQogICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ0ludmFsaWRSZXBl
dGl0aW9uVHlwZScsIGFycmF5KCdyZXBldGl0aW9uVHlwZScgPT4gJHJlcGV0aXRpb25fdHlwZSkp
OwogCiAgICAgJHJhbmdlID0gdmFsaWRhdGVfYXJndW1lbnRzKCRkYXRhLCBhcnJheSgnc3RhcnRS
dW4nID0+ICdpbnQnLCAnZW5kUnVuJyA9PiAnaW50JykpOwpAQCAtODYsNiArODYsMTAgQEAgZnVu
Y3Rpb24gbWFpbigpIHsKICAgICAgICAgICAgICRkYi0+cm9sbGJhY2tfdHJhbnNhY3Rpb24oKTsK
ICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignSW5jb25zaXN0ZW50UGxhdGZvcm0nLCBhcnJh
eSgnY29uZmlnUGxhdGZvcm0nID0+ICRjb25maWdbJ2NvbmZpZ19wbGF0Zm9ybSddLCAndGFza1Bs
YXRmb3JtJyA9PiAkdHJpZ2dlcmFibGVbJ3BsYXRmb3JtJ10pKTsKICAgICAgICAgfQorICAgICAg
ICBpZiAoIWluX2FycmF5KCRyZXBldGl0aW9uX3R5cGUsICR0cmlnZ2VyYWJsZVsnc3VwcG9ydGVk
UmVwZXRpdGlvblR5cGVzJ10pKSB7CisgICAgICAgICAgICAkZGItPnJvbGxiYWNrX3RyYW5zYWN0
aW9uKCk7CisgICAgICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ1Vuc3VwcG9ydGVkUmVwZXRpdGlv
blR5cGUnLCBhcnJheSgncmVwZXRpdGlvblR5cGUnID0+ICRyZXBldGl0aW9uX3R5cGUpKTsKKyAg
ICAgICAgfQogICAgICAgICAkdHJpZ2dlcmFibGVfaWQgPSAkdHJpZ2dlcmFibGVbJ2lkJ107CiAg
ICAgICAgICR0ZXN0X2lkID0gJHRyaWdnZXJhYmxlWyd0ZXN0J107CiAgICAgICAgICRjb21taXRf
c2V0cyA9IGNvbW1pdF9zZXRzX2Zyb21fcmV2aXNpb25fc2V0cygkZGIsICR0cmlnZ2VyYWJsZV9p
ZCwgJHJldmlzaW9uX3NldF9saXN0KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAucGhwIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91
cC5waHAKaW5kZXggZDIzYjJmZjk2NjgxYzhmYTg4ZWMwZjk3M2QxMGViZmYzNzI4ODg1My4uMmNj
N2RjMDc2M2Q3ZTgxZWM1MzM4NDEyMWZhOGJmNGFkN2E5N2NiZSAxMDA2NDQKLS0tIGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91
cC5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtdGVzdC1ncm91cC5waHAKQEAgLTQzLDEwICs0MywxMSBAQCBmdW5jdGlvbiBtYWlu
KCkKICAgICBlbHNlIGlmICgkcmVwZXRpdGlvbl9jb3VudCA8IDEpCiAgICAgICAgIGV4aXRfd2l0
aF9lcnJvcignSW52YWxpZFJlcGV0aXRpb25Db3VudCcsIGFycmF5KCdyZXBldGl0aW9uQ291bnQn
ID0+ICRyZXBldGl0aW9uX2NvdW50KSk7CiAKLSAgICBpZiAoIWluX2FycmF5KCRyZXBldGl0aW9u
X3R5cGUsIGFycmF5KCdhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJykpKQorICAgIGlmICghaW5f
YXJyYXkoJHJlcGV0aXRpb25fdHlwZSwgYXJyYXkoJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwn
LCAncGFpcmVkLXBhcmFsbGVsJykpKQogICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ0ludmFsaWRS
ZXBldGl0aW9uVHlwZScsIGFycmF5KCdyZXBldGl0aW9uVHlwZScgPT4gJHJlcGV0aXRpb25fdHlw
ZSkpOwogCiAgICAgJHRyaWdnZXJhYmxlX2lkID0gTlVMTDsKKyAgICAkc3VwcG9ydGVkX3JlcGV0
aXRpb25fdHlwZXMgPSBOVUxMOwogICAgIGlmICgkdGFza19pZCkgewogICAgICAgICAkdGFzayA9
ICRkYi0+c2VsZWN0X2ZpcnN0X3JvdygnYW5hbHlzaXNfdGFza3MnLCAndGFzaycsIGFycmF5KCdp
ZCcgPT4gJHRhc2tfaWQpKTsKICAgICAgICAgaWYgKCEkdGFzaykKQEAgLTU5LDYgKzYwLDcgQEAg
ZnVuY3Rpb24gbWFpbigpCiAgICAgICAgICR0cmlnZ2VyYWJsZSA9IGZpbmRfdHJpZ2dlcmFibGVf
Zm9yX3Rhc2soJGRiLCAkdGFza19pZCk7CiAgICAgICAgIGlmICgkdHJpZ2dlcmFibGUpIHsKICAg
ICAgICAgICAgICR0cmlnZ2VyYWJsZV9pZCA9ICR0cmlnZ2VyYWJsZVsnaWQnXTsKKyAgICAgICAg
ICAgICRzdXBwb3J0ZWRfcmVwZXRpdGlvbl90eXBlcyA9ICR0cmlnZ2VyYWJsZVsnc3VwcG9ydGVk
UmVwZXRpdGlvblR5cGVzJ107CiAgICAgICAgICAgICBpZiAoISRwbGF0Zm9ybV9pZCAmJiAhJHRl
c3RfaWQpIHsKICAgICAgICAgICAgICAgICAkcGxhdGZvcm1faWQgPSAkdHJpZ2dlcmFibGVbJ3Bs
YXRmb3JtJ107CiAgICAgICAgICAgICAgICAgJHRlc3RfaWQgPSAkdHJpZ2dlcmFibGVbJ3Rlc3Qn
XTsKQEAgLTczLDEzICs3NSwyMSBAQCBmdW5jdGlvbiBtYWluKCkKICAgICBpZiAoISR0cmlnZ2Vy
YWJsZV9pZCAmJiAkcGxhdGZvcm1faWQgJiYgJHRlc3RfaWQpIHsKICAgICAgICAgJHRyaWdnZXJh
YmxlX2NvbmZpZ3VyYXRpb24gPSAkZGItPnNlbGVjdF9maXJzdF9yb3coJ3RyaWdnZXJhYmxlX2Nv
bmZpZ3VyYXRpb25zJywgJ3RyaWdjb25maWcnLAogICAgICAgICAgICAgYXJyYXkoJ3Rlc3QnID0+
ICR0ZXN0X2lkLCAncGxhdGZvcm0nID0+ICRwbGF0Zm9ybV9pZCkpOwotICAgICAgICBpZiAoJHRy
aWdnZXJhYmxlX2NvbmZpZ3VyYXRpb24pCisgICAgICAgIGlmICgkdHJpZ2dlcmFibGVfY29uZmln
dXJhdGlvbikgewogICAgICAgICAgICAgJHRyaWdnZXJhYmxlX2lkID0gJHRyaWdnZXJhYmxlX2Nv
bmZpZ3VyYXRpb25bJ3RyaWdjb25maWdfdHJpZ2dlcmFibGUnXTsKKyAgICAgICAgICAgICRzdXBw
b3J0ZWRfcmVwZXRpdGlvbl90eXBlcyA9IGFycmF5KCk7CisgICAgICAgICAgICAkcm93cyA9ICRk
Yi0+c2VsZWN0X3Jvd3MoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBl
cycsIE5VTEwsIGFycmF5KCdjb25maWdyZXBldGl0aW9uX2NvbmZpZycgPT4gJHRyaWdnZXJhYmxl
X2NvbmZpZ3VyYXRpb25bJ3RyaWdjb25maWdfaWQnXSkpOworICAgICAgICAgICAgZm9yZWFjaCAo
JHJvd3MgYXMgJHJvdykKKyAgICAgICAgICAgICAgICBhcnJheV9wdXNoKCRzdXBwb3J0ZWRfcmVw
ZXRpdGlvbl90eXBlcywgJHJvd1snY29uZmlncmVwZXRpdGlvbl90eXBlJ10pOworICAgICAgICB9
CiAgICAgfQogCiAgICAgaWYgKCEkdHJpZ2dlcmFibGVfaWQpCiAgICAgICAgIGV4aXRfd2l0aF9l
cnJvcignVHJpZ2dlcmFibGVOb3RGb3VuZEZvclRhc2snLCBhcnJheSgndGFzaycgPT4gJHRhc2tf
aWQsICdwbGF0Zm9ybScgPT4gJHBsYXRmb3JtX2lkLCAndGVzdCcgPT4gJHRlc3RfaWQpKTsKIAor
ICAgIGlmICghaW5fYXJyYXkoJHJlcGV0aXRpb25fdHlwZSwgJHN1cHBvcnRlZF9yZXBldGl0aW9u
X3R5cGVzKSkKKyAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdVbnN1cHBvcnRlZFJlcGV0aXRpb25U
eXBlJywgYXJyYXkoJ3JlcGV0aXRpb25UeXBlJyA9PiAkcmVwZXRpdGlvbl90eXBlKSk7CisKICAg
ICBpZiAoJHJldmlzaW9uX3NldF9saXN0KQogICAgICAgICAkY29tbWl0X3NldHMgPSBjb21taXRf
c2V0c19mcm9tX3JldmlzaW9uX3NldHMoJGRiLCAkdHJpZ2dlcmFibGVfaWQsICRyZXZpc2lvbl9z
ZXRfbGlzdCk7CiAgICAgZWxzZSAvLyBWMiBVSSBjb21wYXRpYmlsaXR5CmRpZmYgLS1naXQgYS9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbW1pdC1zZXQtcmFuZ2UtYmlzZWN0
b3IuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbW1pdC1zZXQtcmFu
Z2UtYmlzZWN0b3IuanMKaW5kZXggNjUxOTU4ZmFmY2UxYjk2MWQ2MDI2ZDhhOGI5NmQyZTIwY2Qx
YzYzMC4uMTc1ZjI5MTJkNmJhNGE2NTY0OWI1ZGY4YTNmMzE0MGNhNTM2MzJlNiAxMDA2NDQKLS0t
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21taXQtc2V0LXJhbmdlLWJp
c2VjdG9yLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tbWl0
LXNldC1yYW5nZS1iaXNlY3Rvci5qcwpAQCAtMTIwLDcgKzEyMCw5IEBAIGNsYXNzIENvbW1pdFNl
dFJhbmdlQmlzZWN0b3IgewogCiAgICAgICAgIGNvbnN0IGNvbW1pdFRvQ29tbWl0U2V0TWFwID0g
dGhpcy5fYnVpbGRDb21taXRUb0NvbW1pdFNldE1hcChyZXBvc2l0b3JpZXNXaXRoQ29tbWl0VGlt
ZSwgc29ydGVkQ29tbWl0U2V0cyk7CiAgICAgICAgIGNvbnN0IGNsb3Nlc3RDb21taXQgPSB0aGlz
Ll9maW5kQ29tbWl0Q2xvc2VzdFRvTWlkZGxlSW5kZXgoaW5kZXhCeUNvbW1pdFdpdGhUaW1lLCBj
b21taXRUb0NvbW1pdFNldE1hcC5rZXlzKCkpOwotICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShj
b21taXRUb0NvbW1pdFNldE1hcC5nZXQoY2xvc2VzdENvbW1pdCkpOworICAgICAgICBpZiAoY2xv
c2VzdENvbW1pdCkKKyAgICAgICAgICAgIHJldHVybiBBcnJheS5mcm9tKGNvbW1pdFRvQ29tbWl0
U2V0TWFwLmdldChjbG9zZXN0Q29tbWl0KSk7CisgICAgICAgIHJldHVybiBbXTsKICAgICB9CiAK
ICAgICBzdGF0aWMgX2ZpbmRDb21taXRTZXRzQ2xvc2VzdFRvTWlkZGxlT2ZDb21taXRzV2l0aE9y
ZGVyKHJlbWFpbmluZ0NvbW1pdFNldHMsIGluZGV4Rm9yQWxsVGltZWxlc3NDb21taXRzV2l0aE9y
ZGVyQnlSZXBvc2l0b3J5KQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9jb21wb25lbnRzL2N1c3RvbS1jb25maWd1cmF0aW9uLXRlc3QtZ3JvdXAtZm9ybS5q
cyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b20t
Y29uZmlndXJhdGlvbi10ZXN0LWdyb3VwLWZvcm0uanMKaW5kZXggNTU5OGZkZDBiZGMzOTRkYjZl
ZDE4ZTVkYmQ0ZTBjNTBkYTkzMzE1OS4uZDk3MDg0ODQ3OTk3YWZiYmE4NzIyNGU0Yzc1NGFkMzlj
YWNkOGVmOSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9j
b21wb25lbnRzL2N1c3RvbS1jb25maWd1cmF0aW9uLXRlc3QtZ3JvdXAtZm9ybS5qcworKysgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY3VzdG9tLWNvbmZp
Z3VyYXRpb24tdGVzdC1ncm91cC1mb3JtLmpzCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIEN1c3Rv
bUNvbmZpZ3VyYXRpb25UZXN0R3JvdXBGb3JtIGV4dGVuZHMgVGVzdEdyb3VwRm9ybSB7CiAgICAg
ICAgIGNvbnN0IGNvbW1pdFNldHMgPSBjb25maWd1cmF0b3IuY29tbWl0U2V0cygpOwogICAgICAg
ICBjb25zdCBwbGF0Zm9ybSA9IGNvbmZpZ3VyYXRvci5wbGF0Zm9ybSgpOwogICAgICAgICBjb25z
dCB0ZXN0ID0gY29uZmlndXJhdG9yLnRlc3RzKClbMF07IC8vIEZJWE1FOiBBZGQgdGhlIHN1cHBv
cnQgZm9yIHNwZWNpZnlpbmcgbXVsdGlwbGUgdGVzdHMuCi0gICAgICAgIGNvbnN0IHJlcGV0aXRp
b25UeXBlID0gdGhpcy5jb250ZW50KCdyZXBldGl0aW9uLXR5cGUnKS52YWx1ZTsKKyAgICAgICAg
Y29uc3QgcmVwZXRpdGlvblR5cGUgPSB0aGlzLnBhcnQoJ3JlcGV0aXRpb24tdHlwZS1zZWxlY3Rp
b24nKS5zZWxlY3RlZFJlcGV0aXRpb25UeXBlOwogICAgICAgICBjb25zb2xlLmFzc2VydCghIXRo
aXMuX2hhc1Rhc2sgPT09ICF0YXNrTmFtZSk7CiAgICAgICAgIGlmICghdGhpcy5faGFzVGFzaykK
ICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3N0YXJ0VGVzdGluZycsIHRlc3RHcm91
cE5hbWUsIHRoaXMuX3JlcGV0aXRpb25Db3VudCwgcmVwZXRpdGlvblR5cGUsIGNvbW1pdFNldHMs
IHBsYXRmb3JtLCB0ZXN0LCB0aGlzLl9ub3RpZnlPbkNvbXBsZXRpb24sIHRhc2tOYW1lKTsKQEAg
LTQ5LDggKzQ5LDE1IEBAIGNsYXNzIEN1c3RvbUNvbmZpZ3VyYXRpb25UZXN0R3JvdXBGb3JtIGV4
dGVuZHMgVGVzdEdyb3VwRm9ybSB7CiAgICAgZGlkQ29uc3RydWN0U2hhZG93VHJlZSgpCiAgICAg
ewogICAgICAgICBzdXBlci5kaWRDb25zdHJ1Y3RTaGFkb3dUcmVlKCk7Ci0KLSAgICAgICAgdGhp
cy5wYXJ0KCdjb25maWd1cmF0b3InKS5saXN0ZW5Ub0FjdGlvbigndGVzdENvbmZpZ0NoYW5nZScs
ICgpID0+IHRoaXMuZW5xdWV1ZVRvUmVuZGVyKCkpOworICAgICAgICBjb25zdCBjb25maWd1cmF0
b3IgPSB0aGlzLnBhcnQoJ2NvbmZpZ3VyYXRvcicpOworICAgICAgICBjb25maWd1cmF0b3IubGlz
dGVuVG9BY3Rpb24oJ3Rlc3RDb25maWdDaGFuZ2UnLCAoKSA9PiB7CisgICAgICAgICAgICBjb25z
dCB0ZXN0cyA9IGNvbmZpZ3VyYXRvci50ZXN0cygpOworICAgICAgICAgICAgY29uc3QgcGxhdGZv
cm0gPSBjb25maWd1cmF0b3IucGxhdGZvcm0oKTsKKyAgICAgICAgICAgIGlmIChwbGF0Zm9ybSAm
JiB0ZXN0cy5sZW5ndGgpCisgICAgICAgICAgICAgICAgdGhpcy5zZXRUZXN0QW5kUGxhdGZvcm0o
dGVzdHNbMF0sIHBsYXRmb3JtKTsKKworICAgICAgICAgICAgdGhpcy5lbnF1ZXVlVG9SZW5kZXIo
KTsKKyAgICAgICAgfSk7CiAKICAgICAgICAgdGhpcy5jb250ZW50KCd0YXNrLW5hbWUnKS5vbmlu
cHV0ID0gKCkgPT4gdGhpcy5lbnF1ZXVlVG9SZW5kZXIoKTsKICAgICAgICAgdGhpcy5jb250ZW50
KCdncm91cC1uYW1lJykub25pbnB1dCA9ICgpID0+IHRoaXMuZW5xdWV1ZVRvUmVuZGVyKCk7CmRp
ZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMv
Y3VzdG9taXphYmxlLXRlc3QtZ3JvdXAtZm9ybS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b21pemFibGUtdGVzdC1ncm91cC1mb3JtLmpzCmlu
ZGV4IDkyOWMxYmEyZjg0ZDYxOGQ3YmNjMjRiNjM0MGJhYWEyODEzN2Y2YmUuLjMzYzU3ZjhjMjE3
MzQxZGQ1YmMxOGYwNmUzZTM1MWMxMzUyZjZmMzQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b21pemFibGUtdGVzdC1ncm91cC1m
b3JtLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50
cy9jdXN0b21pemFibGUtdGVzdC1ncm91cC1mb3JtLmpzCkBAIC0yNyw3ICsyNyw3IEBAIGNsYXNz
IEN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm0gZXh0ZW5kcyBUZXN0R3JvdXBGb3JtIHsKIAogICAg
IHN0YXJ0VGVzdGluZygpCiAgICAgewotICAgICAgICBjb25zdCByZXBldGl0aW9uVHlwZSA9IHRo
aXMuY29udGVudCgncmVwZXRpdGlvbi10eXBlJykudmFsdWU7CisgICAgICAgIGNvbnN0IHJlcGV0
aXRpb25UeXBlID0gdGhpcy5wYXJ0KCdyZXBldGl0aW9uLXR5cGUtc2VsZWN0aW9uJykuc2VsZWN0
ZWRSZXBldGl0aW9uVHlwZTsKICAgICAgICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc3RhcnRUZXN0
aW5nJywgdGhpcy5fbmFtZSwgdGhpcy5fcmVwZXRpdGlvbkNvdW50LCByZXBldGl0aW9uVHlwZSwK
ICAgICAgICAgICAgIHRoaXMuX2NvbXB1dGVDb21taXRTZXRNYXAoKSwgdGhpcy5fbm90aWZ5T25D
b21wbGV0aW9uKTsKICAgICB9CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL3YzL2NvbXBvbmVudHMvcmVwZXRpdGlvbi10eXBlLXNlbGVjdGlvbi5qcyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9yZXBldGl0aW9uLXR5cGUt
c2VsZWN0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2Mzg1YmU4ZDZjN2JiOTQxMTE5MWQwMDdjZWRkMzYz
NTY0NDgzZGYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL2NvbXBvbmVudHMvcmVwZXRpdGlvbi10eXBlLXNlbGVjdGlvbi5qcwpAQCAtMCwwICsx
LDczIEBACitjbGFzcyBSZXBldGl0aW9uVHlwZVNlbGVjdGlvbiBleHRlbmRzIENvbXBvbmVudEJh
c2UgeworICAgICN0cmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb247CisgICAgI3NlbGVjdGVkUmVwZXRp
dGlvblR5cGU7CisgICAgI3JlbmRlclJlcGV0aXRpb25UeXBlTGlzdExhemlseTsKKworICAgIGNv
bnN0cnVjdG9yKCkKKyAgICB7CisgICAgICAgIHN1cGVyKCdyZXBldGl0aW9uLXR5cGUtc2VsZWN0
aW9uJyk7CisgICAgICAgIHRoaXMuI3NlbGVjdGVkUmVwZXRpdGlvblR5cGUgPSBudWxsOworICAg
ICAgICB0aGlzLiN0cmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24gPSBudWxsOworICAgICAgICB0aGlz
LiNyZW5kZXJSZXBldGl0aW9uVHlwZUxpc3RMYXppbHkgPSBuZXcgTGF6aWx5RXZhbHVhdGVkRnVu
Y3Rpb24odGhpcy5fcmVuZGVyUmVwZXRpdGlvblR5cGVMaXN0LmJpbmQodGhpcykpOworICAgIH0K
KworICAgIGRpZENvbnN0cnVjdFNoYWRvd1RyZWUoKQorICAgIHsKKyAgICAgICAgY29uc3QgcmVw
ZXRpdGlvblR5cGUgPSB0aGlzLmNvbnRlbnQoJ3JlcGV0aXRpb24tdHlwZScpOworICAgICAgICBy
ZXBldGl0aW9uVHlwZS5vbmNoYW5nZSA9ICgpID0+IHRoaXMuI3NlbGVjdGVkUmVwZXRpdGlvblR5
cGUgPSByZXBldGl0aW9uVHlwZS52YWx1ZTsKKyAgICB9CisKKyAgICBnZXQgc2VsZWN0ZWRSZXBl
dGl0aW9uVHlwZSgpIHsgcmV0dXJuIHRoaXMuI3NlbGVjdGVkUmVwZXRpdGlvblR5cGU7IH0KKyAg
ICBzZXQgc2VsZWN0ZWRSZXBldGl0aW9uVHlwZShyZXBldGl0aW9uVHlwZSkKKyAgICB7CisgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLiN0cmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24gfHwgdGhp
cy4jdHJpZ2dlcmFibGVDb25maWd1cmF0aW9uLmlzU3VwcG9ydGVkUmVwZXRpdGlvblR5cGUocmVw
ZXRpdGlvblR5cGUpKTsKKyAgICAgICAgdGhpcy4jc2VsZWN0ZWRSZXBldGl0aW9uVHlwZSA9IHJl
cGV0aXRpb25UeXBlOworICAgIH0KKworICAgIHNldCBkaXNhYmxlZCh2YWx1ZSkKKyAgICB7Cisg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KHR5cGVvZiB2YWx1ZSA9PSAnYm9vbGVhbicpOworICAgICAg
ICB0aGlzLmNvbnRlbnQoJ3JlcGV0aXRpb24tdHlwZScpLmRpc2FibGVkID0gdmFsdWU7CisgICAg
fQorCisgICAgc2V0VGVzdEFuZFBsYXRmb3JtKHRlc3QsIHBsYXRmb3JtKQorICAgIHsKKyAgICAg
ICAgdGhpcy4jdHJpZ2dlcmFibGVDb25maWd1cmF0aW9uID0gVHJpZ2dlcmFibGVDb25maWd1cmF0
aW9uLmZpbmRCeVRlc3RBbmRQbGF0Zm9ybSh0ZXN0LCBwbGF0Zm9ybSk7CisgICAgICAgIGlmICgh
dGhpcy4jdHJpZ2dlcmFibGVDb25maWd1cmF0aW9uKQorICAgICAgICAgICAgdGhpcy4jc2VsZWN0
ZWRSZXBldGl0aW9uVHlwZSA9IG51bGw7CisgICAgICAgIGVsc2UgaWYgKHRoaXMuI3RyaWdnZXJh
YmxlQ29uZmlndXJhdGlvbiAmJiAhdGhpcy4jdHJpZ2dlcmFibGVDb25maWd1cmF0aW9uLmlzU3Vw
cG9ydGVkUmVwZXRpdGlvblR5cGUodGhpcy4jc2VsZWN0ZWRSZXBldGl0aW9uVHlwZSkpCisgICAg
ICAgICAgICB0aGlzLiNzZWxlY3RlZFJlcGV0aXRpb25UeXBlID0gdGhpcy4jdHJpZ2dlcmFibGVD
b25maWd1cmF0aW9uLnN1cHBvcnRlZFJlcGV0aXRpb25UeXBlc1swXTsKKyAgICB9CisKKyAgICBs
YWJlbEZvclJlcGV0aXRpb25UeXBlKHJlcGV0aXRpb25UeXBlKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHsKKyAgICAgICAgICAgICdhbHRlcm5hdGluZyc6ICdhbHRlcm5hdGluZyAoQUJBQiknLAor
ICAgICAgICAgICAgJ3NlcXVlbnRpYWwnOiAnc2VxdWVudGlhbCAoQUFCQiknLAorICAgICAgICAg
ICAgJ3BhaXJlZC1wYXJhbGxlbCc6ICdwYXJhbGxlbCAocGFpcmVkIEEmQiknLAorICAgICAgICB9
W3JlcGV0aXRpb25UeXBlXTsKKyAgICB9CisKKyAgICByZW5kZXIoKQorICAgIHsKKyAgICAgICAg
c3VwZXIucmVuZGVyKCk7CisgICAgICAgIGlmICghdGhpcy4jdHJpZ2dlcmFibGVDb25maWd1cmF0
aW9uKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB0aGlzLiNyZW5kZXJSZXBldGl0aW9u
VHlwZUxpc3RMYXppbHkuZXZhbHVhdGUoIHRoaXMuI3NlbGVjdGVkUmVwZXRpdGlvblR5cGUsIC4u
LnRoaXMuI3RyaWdnZXJhYmxlQ29uZmlndXJhdGlvbi5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMp
OworICAgIH0KKworICAgIF9yZW5kZXJSZXBldGl0aW9uVHlwZUxpc3Qoc2VsZWN0ZWRSZXBldGl0
aW9uVHlwZSwgLi4uc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzKQorICAgIHsKKyAgICAgICAgdGhp
cy5yZW5kZXJSZXBsYWNlKHRoaXMuY29udGVudCgncmVwZXRpdGlvbi10eXBlJyksIHN1cHBvcnRl
ZFJlcGV0aXRpb25UeXBlcy5tYXAoKHJlcGV0aXRpb25UeXBlKSA9PgorICAgICAgICAgICAgdGhp
cy5jcmVhdGVFbGVtZW50KCdvcHRpb24nLHsgc2VsZWN0ZWQ6IHJlcGV0aXRpb25UeXBlID09IHNl
bGVjdGVkUmVwZXRpdGlvblR5cGUsIHZhbHVlOiByZXBldGl0aW9uVHlwZSB9LAorICAgICAgICAg
ICAgICAgIHRoaXMubGFiZWxGb3JSZXBldGl0aW9uVHlwZShyZXBldGl0aW9uVHlwZSkpCisgICAg
ICAgICkpOworICAgIH0KKworICAgIHN0YXRpYyBodG1sVGVtcGxhdGUoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGA8c2VsZWN0IGlkPSJyZXBldGl0aW9uLXR5cGUiPjwvc2VsZWN0PmA7CisgICAg
fQorfQorCitDb21wb25lbnRCYXNlLmRlZmluZUVsZW1lbnQoJ3JlcGV0aXRpb24tdHlwZS1zZWxl
Y3Rpb24nLCBSZXBldGl0aW9uVHlwZVNlbGVjdGlvbik7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21w
b25lbnRzL3Rlc3QtZ3JvdXAtZm9ybS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjMvY29tcG9uZW50cy90ZXN0LWdyb3VwLWZvcm0uanMKaW5kZXggODM1YjYwNzgxM2U1ODZl
ZGY3YzgyMDUxMzAzZDlhMzFlNmE5ZTlmZC4uMTZmYmU1OTk0NWQ5YjhiMzU4ZjBhZWZiYjRmNmM0
MDI0ZGY1MTMwOSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9jb21wb25lbnRzL3Rlc3QtZ3JvdXAtZm9ybS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvdGVzdC1ncm91cC1mb3JtLmpzCkBAIC0xNCw2ICsx
NCwyMSBAQCBjbGFzcyBUZXN0R3JvdXBGb3JtIGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CiAgICAg
ICAgIHRoaXMuX3JlcGV0aXRpb25Db3VudCA9IGNvdW50OwogICAgIH0KIAorICAgIHNldFRlc3RB
bmRQbGF0Zm9ybSh0ZXN0LCBwbGF0Zm9ybSkKKyAgICB7CisgICAgICAgIHRoaXMucGFydCgncmVw
ZXRpdGlvbi10eXBlLXNlbGVjdGlvbicpLnNldFRlc3RBbmRQbGF0Zm9ybSh0ZXN0LCBwbGF0Zm9y
bSk7CisgICAgfQorCisgICAgdXBkYXRlV2l0aFRlc3RHcm91cCh0ZXN0R3JvdXApCisgICAgewor
ICAgICAgICBpZiAoIXRlc3RHcm91cCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdGhp
cy5zZXRSZXBldGl0aW9uQ291bnQodGVzdEdyb3VwLmluaXRpYWxSZXBldGl0aW9uQ291bnQoKSk7
CisgICAgICAgIHRoaXMuc2V0VGVzdEFuZFBsYXRmb3JtKHRlc3RHcm91cC50ZXN0KCksIHRlc3RH
cm91cC5wbGF0Zm9ybSgpKTsKKyAgICAgICAgdGhpcy5wYXJ0KCdyZXBldGl0aW9uLXR5cGUtc2Vs
ZWN0aW9uJykuc2VsZWN0ZWRSZXBldGl0aW9uVHlwZSA9IHRlc3RHcm91cC5yZXBldGl0aW9uVHlw
ZSgpOworICAgICAgICB0aGlzLmVucXVldWVUb1JlbmRlcigpOworICAgIH0KKwogICAgIGRpZENv
bnN0cnVjdFNoYWRvd1RyZWUoKQogICAgIHsKICAgICAgICAgY29uc3QgcmVwZXRpdGlvbkNvdW50
U2VsZWN0ID0gdGhpcy5jb250ZW50KCdyZXBldGl0aW9uLWNvdW50Jyk7CkBAIC0yNSw5ICs0MCwx
NSBAQCBjbGFzcyBUZXN0R3JvdXBGb3JtIGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CiAgICAgICAg
IHRoaXMuY29udGVudCgnZm9ybScpLm9uc3VibWl0ID0gdGhpcy5jcmVhdGVFdmVudEhhbmRsZXIo
KCkgPT4gdGhpcy5zdGFydFRlc3RpbmcoKSk7CiAgICAgfQogCisgICAgcmVuZGVyKCkKKyAgICB7
CisgICAgICAgIHN1cGVyLnJlbmRlcigpOworICAgICAgICB0aGlzLnBhcnQoJ3JlcGV0aXRpb24t
dHlwZS1zZWxlY3Rpb24nKS5lbnF1ZXVlVG9SZW5kZXIoKTsKKyAgICB9CisKICAgICBzdGFydFRl
c3RpbmcoKQogICAgIHsKLSAgICAgICAgY29uc3QgcmVwZXRpdGlvblR5cGUgPSB0aGlzLmNvbnRl
bnQoJ3JlcGV0aXRpb24tdHlwZScpLnZhbHVlOworICAgICAgICBjb25zdCByZXBldGl0aW9uVHlw
ZSA9IHRoaXMucGFydCgncmVwZXRpdGlvbi10eXBlLXNlbGVjdGlvbicpLnNlbGVjdGVkUmVwZXRp
dGlvblR5cGU7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3N0YXJ0VGVzdGluZycsIHRo
aXMuX3JlcGV0aXRpb25Db3VudCwgcmVwZXRpdGlvblR5cGUsIHRoaXMuX25vdGlmeU9uQ29tcGxl
dGlvbik7CiAgICAgfQogCkBAIC02NywxMCArODgsNyBAQCBjbGFzcyBUZXN0R3JvdXBGb3JtIGV4
dGVuZHMgQ29tcG9uZW50QmFzZSB7CiAgICAgICAgICAgICAgICAgPG9wdGlvbj4xMDwvb3B0aW9u
PgogICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICA8bGFiZWw+aXRlcmF0aW9ucyBw
ZXIgc2V0IGluPC9sYWJlbD4KLSAgICAgICAgICAgIDxzZWxlY3QgaWQ9InJlcGV0aXRpb24tdHlw
ZSI+Ci0gICAgICAgICAgICAgICAgPG9wdGlvbiBzZWxlY3RlZCB2YWx1ZT0iYWx0ZXJuYXRpbmci
PmFsdGVybmF0ZSAoQUJBQik8L29wdGlvbj4KLSAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVl
PSJzZXF1ZW50aWFsIj5zZXF1ZW5jZSAoQUFCQik8L29wdGlvbj4KLSAgICAgICAgICAgIDwvc2Vs
ZWN0PgorICAgICAgICAgICAgPHJlcGV0aXRpb24tdHlwZS1zZWxlY3Rpb24gaWQ9InJlcGV0aXRp
b24tdHlwZS1zZWxlY3Rpb24iPjwvcmVwZXRpdGlvbi10eXBlLXNlbGVjdGlvbj4KICAgICAgICAg
ICAgIDxpbnB1dCBpZD0ibm90aWZ5LW9uLWNvbXBsZXRpb24tY2hlY2tib3giIHR5cGU9ImNoZWNr
Ym94IiBjaGVja2VkLz5Ob3RpZnkgb24gY29tcGxldGlvbgogICAgICAgICBgOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvaW5kZXguaHRtbCBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvaW5kZXguaHRtbAppbmRleCBmNTMx
MDAzZWQ1ZTY3MzUwOWU0MzdlNDgxMWJiMDlmOGFjMzM3MmQzLi5kNTA1NTIxODIzZDBkYzVlOTdh
NzgxNTcyMjliYjgzZmIxZWQxYzhiIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL3YzL2luZGV4Lmh0bWwKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9pbmRleC5odG1sCkBAIC0xMDUsNiArMTA1LDcgQEAgUnVuIHRvb2xzL2J1bmRsZS12
My1zY3JpcHRzIHRvIHNwZWVkIHVwIHRoZSBsb2FkIHRpbWUgZm9yIHByb2R1Y3Rpb24uYCk7CiAg
ICAgICAgIDxzY3JpcHQgc3JjPSJjb21wb25lbnRzL3BsdXMtYnV0dG9uLmpzIj48L3NjcmlwdD4K
ICAgICAgICAgPHNjcmlwdCBzcmM9ImNvbXBvbmVudHMvbWludXMtYnV0dG9uLmpzIj48L3Njcmlw
dD4KICAgICAgICAgPHNjcmlwdCBzcmM9ImNvbXBvbmVudHMvY29tYm8tYm94LmpzIj48L3Njcmlw
dD4KKyAgICAgICAgPHNjcmlwdCBzcmM9ImNvbXBvbmVudHMvcmVwZXRpdGlvbi10eXBlLXNlbGVj
dGlvbi5qcyI+PC9zY3JpcHQ+CiAKICAgICAgICAgPHNjcmlwdCBzcmM9InBhZ2VzL3BhZ2UuanMi
Pjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0IHNyYz0icGFnZXMvcGFnZS1yb3V0ZXIuanMiPjwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9t
b2RlbHMvbWFuaWZlc3QuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21v
ZGVscy9tYW5pZmVzdC5qcwppbmRleCA5ZGRkNTE0NzNiNzJjZDc0ZDcxMmJiM2RiOTdiZmZlYThi
YTUzYmYxLi5iNjdkZmI0ZmFjMGU3ODA2NzAxMDJhZTg0ZGM1YWFlZGNjNzNjMmQ3IDEwMDY0NAot
LS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9tYW5pZmVzdC5q
cworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9tYW5pZmVz
dC5qcwpAQCAtMTYsNiArMTYsNyBAQCBjbGFzcyBNYW5pZmVzdCB7CiAgICAgICAgIFRlc3QuY2xl
YXJTdGF0aWNNYXAoKTsKICAgICAgICAgVGVzdEdyb3VwLmNsZWFyU3RhdGljTWFwKCk7CiAgICAg
ICAgIFRyaWdnZXJhYmxlLmNsZWFyU3RhdGljTWFwKCk7CisgICAgICAgIFRyaWdnZXJhYmxlQ29u
ZmlndXJhdGlvbi5jbGVhclN0YXRpY01hcCgpOwogICAgICAgICBUcmlnZ2VyYWJsZVJlcG9zaXRv
cnlHcm91cC5jbGVhclN0YXRpY01hcCgpOwogICAgICAgICBVcGxvYWRlZEZpbGUuY2xlYXJTdGF0
aWNNYXAoKTsKICAgICAgICAgQnVnVHJhY2tlci5jbGVhclN0YXRpY01hcCgpOwpAQCAtODcsOCAr
ODgsOCBAQCBjbGFzcyBNYW5pZmVzdCB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRyaWdnZXJh
YmxlUmVwb3NpdG9yeUdyb3VwLmVuc3VyZVNpbmdsZXRvbihncm91cC5pZCwgZ3JvdXApOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgICAgICByYXcuY29uZmlndXJhdGlvbnMgPSByYXcuY29uZmln
dXJhdGlvbnMubWFwKChjb25maWd1cmF0aW9uKSA9PiB7Ci0gICAgICAgICAgICAgICAgY29uc3Qg
W3Rlc3RJZCwgcGxhdGZvcm1JZF0gPSBjb25maWd1cmF0aW9uOwotICAgICAgICAgICAgICAgIHJl
dHVybiB7dGVzdDogVGVzdC5maW5kQnlJZCh0ZXN0SWQpLCBwbGF0Zm9ybTogUGxhdGZvcm0uZmlu
ZEJ5SWQocGxhdGZvcm1JZCl9OworICAgICAgICAgICAgICAgIGNvbnN0IFt0ZXN0SWQsIHBsYXRm
b3JtSWQsIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlc10gPSBjb25maWd1cmF0aW9uOworICAgICAg
ICAgICAgICAgIHJldHVybiB7dGVzdDogVGVzdC5maW5kQnlJZCh0ZXN0SWQpLCBwbGF0Zm9ybTog
UGxhdGZvcm0uZmluZEJ5SWQocGxhdGZvcm1JZCksIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlc307
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3Rlc3QtZ3JvdXAuanMgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90ZXN0LWdyb3VwLmpzCmluZGV4IDNhM2M4
ODYxNmZhZjMxOGQ4Y2JmNTJhNjdhMzdiNmQ4OWE2NTQzZDUuLjViNTMxYTQyMDU3NmM5ZDliZTkw
Njg2OTVlNjQzNjc1MTBlNjJjZTAgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvdjMvbW9kZWxzL3Rlc3QtZ3JvdXAuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9tb2RlbHMvdGVzdC1ncm91cC5qcwpAQCAtMzQ0LDEwICszNDQsMTAg
QEAgY2xhc3MgVGVzdEdyb3VwIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgICAgICAgICBy
ZXR1cm4gMDsKICAgICAgICAgfQogCi0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KFsnYWx0ZXJuYXRp
bmcnLCAnc2VxdWVudGlhbCddLmluY2x1ZGVzKHRoaXMucmVwZXRpdGlvblR5cGUoKSkpOworICAg
ICAgICBjb25zb2xlLmFzc2VydChUcmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24uaXNWYWxpZFJlcGV0
aXRpb25UeXBlKHRoaXMucmVwZXRpdGlvblR5cGUoKSkpOwogICAgICAgICBjb25zdCByZXBldGl0
aW9uTGltaXQgPSBtYXhSZXRyeUZhY3RvciAqIHRoaXMuaW5pdGlhbFJlcGV0aXRpb25Db3VudCgp
OwotICAgICAgICBjb25zdCB7cmV0cnlDb3VudCwgc3RvcEZ1dHVyZVJldHJpZXN9ID0gYXdhaXQg
KHRoaXMucmVwZXRpdGlvblR5cGUoKSA9PSAnYWx0ZXJuYXRpbmcnID8KLSAgICAgICAgICAgIHRo
aXMuX2NyZWF0ZUFsdGVybmF0aW5nUmV0cmllc0ZvclRlc3RHcm91cChyZXBldGl0aW9uTGltaXQp
IDogdGhpcy5fY3JlYXRlU2VxdWVudGlhbFJldHJpZXNGb3JUZXN0R3JvdXAocmVwZXRpdGlvbkxp
bWl0KSk7CisgICAgICAgIGNvbnN0IHtyZXRyeUNvdW50LCBzdG9wRnV0dXJlUmV0cmllc30gPSBh
d2FpdCAodGhpcy5yZXBldGl0aW9uVHlwZSgpID09ICdzZXF1ZW50aWFsJyA/CisgICAgICAgICAg
ICB0aGlzLl9jcmVhdGVTZXF1ZW50aWFsUmV0cmllc0ZvclRlc3RHcm91cChyZXBldGl0aW9uTGlt
aXQpOiB0aGlzLl9jcmVhdGVBbHRlcm5hdGluZ1JldHJpZXNGb3JUZXN0R3JvdXAocmVwZXRpdGlv
bkxpbWl0KSk7CiAKICAgICAgICAgaWYgKHN0b3BGdXR1cmVSZXRyaWVzKQogICAgICAgICAgICAg
YXdhaXQgdGhpcy5jbGVhck1heU5lZWRNb3JlQnVpbGRSZXF1ZXN0cygpOwpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvdHJpZ2dlcmFibGUuanMg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90cmlnZ2VyYWJsZS5q
cwppbmRleCBkNWZmM2M0OGMzMjlmOWI0ZDY4ZTg0MjAzMGQyMGJkMmE4N2U1YThkLi41N2MyYmQ4
ZjRmNTAyNjM4NjBiMDlmZDk3MDA3NjFlMmY0OWYyYjFiIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90cmlnZ2VyYWJsZS5qcworKysgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90cmlnZ2VyYWJsZS5qcwpAQCAt
NywxNSArNywxMyBAQCBjbGFzcyBUcmlnZ2VyYWJsZSBleHRlbmRzIExhYmVsZWRPYmplY3Qgewog
ICAgICAgICB0aGlzLl9pc0Rpc2FibGVkID0gISFvYmplY3QuaXNEaXNhYmxlZDsKICAgICAgICAg
dGhpcy5fYWNjZXB0ZWRSZXBvc2l0b3JpZXMgPSBvYmplY3QuYWNjZXB0ZWRSZXBvc2l0b3JpZXM7
CiAgICAgICAgIHRoaXMuX3JlcG9zaXRvcnlHcm91cHMgPSBvYmplY3QucmVwb3NpdG9yeUdyb3Vw
czsKLSAgICAgICAgdGhpcy5fY29uZmlndXJhdGlvbkxpc3QgPSBvYmplY3QuY29uZmlndXJhdGlv
bnM7CisgICAgICAgIHRoaXMuX3RyaWdnZXJhYmxlQ29uZmlndXJhdGlvbkxpc3QgPSBbXTsKICAg
ICAgICAgdGhpcy5fYWNjZXB0ZWRUZXN0cyA9IG5ldyBTZXQ7CiAKLSAgICAgICAgY29uc3QgY29u
ZmlndXJhdGlvbk1hcCA9IHRoaXMuZW5zdXJlTmFtZWRTdGF0aWNNYXAoJ3Rlc3RDb25maWd1cmF0
aW9ucycpOwogICAgICAgICBmb3IgKGNvbnN0IGNvbmZpZyBvZiBvYmplY3QuY29uZmlndXJhdGlv
bnMpIHsKLSAgICAgICAgICAgIGNvbnN0IGtleSA9IGAke2NvbmZpZy50ZXN0LmlkKCl9LSR7Y29u
ZmlnLnBsYXRmb3JtLmlkKCl9YDsKICAgICAgICAgICAgIHRoaXMuX2FjY2VwdGVkVGVzdHMuYWRk
KGNvbmZpZy50ZXN0KTsKLSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCEoa2V5IGluIGNvbmZp
Z3VyYXRpb25NYXApKTsKLSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25NYXBba2V5XSA9IHRoaXM7
CisgICAgICAgICAgICB0aGlzLl90cmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb25MaXN0LnB1c2goVHJp
Z2dlcmFibGVDb25maWd1cmF0aW9uLmNyZWF0ZUZvclRyaWdnZXJhYmxlKHRoaXMsIGNvbmZpZy50
ZXN0LAorICAgICAgICAgICAgICAgIGNvbmZpZy5wbGF0Zm9ybSwgY29uZmlnLnN1cHBvcnRlZFJl
cGV0aXRpb25UeXBlcykpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0yNywxNSArMjUsMTAgQEAg
Y2xhc3MgVHJpZ2dlcmFibGUgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKIAogICAgIHN0YXRpYyBm
aW5kQnlUZXN0Q29uZmlndXJhdGlvbih0ZXN0LCBwbGF0Zm9ybSkKICAgICB7Ci0gICAgICAgIGxl
dCBjb25maWd1cmF0aW9uTWFwID0gdGhpcy5lbnN1cmVOYW1lZFN0YXRpY01hcCgndGVzdENvbmZp
Z3VyYXRpb25zJyk7Ci0gICAgICAgIGlmICghY29uZmlndXJhdGlvbk1hcCkKKyAgICAgICAgY29u
c3QgdHJpZ2dlcmFibGVDb25maWd1cmF0aW9uID0gVHJpZ2dlcmFibGVDb25maWd1cmF0aW9uLmZp
bmRCeVRlc3RBbmRQbGF0Zm9ybSh0ZXN0LCBwbGF0Zm9ybSk7CisgICAgICAgIGlmICghdHJpZ2dl
cmFibGVDb25maWd1cmF0aW9uKQogICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIGZv
ciAoOyB0ZXN0OyB0ZXN0ID0gdGVzdC5wYXJlbnRUZXN0KCkpIHsKLSAgICAgICAgICAgIGNvbnN0
IGtleSA9IGAke3Rlc3QuaWQoKX0tJHtwbGF0Zm9ybS5pZCgpfWA7Ci0gICAgICAgICAgICBpZiAo
a2V5IGluIGNvbmZpZ3VyYXRpb25NYXApCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNvbmZpZ3Vy
YXRpb25NYXBba2V5XTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAg
cmV0dXJuIHRyaWdnZXJhYmxlQ29uZmlndXJhdGlvbi50cmlnZ2VyYWJsZTsKICAgICB9CiAKICAg
ICBzdGF0aWMgdHJpZ2dlcmFibGVQbGF0Zm9ybXNGb3JUZXN0cyh0ZXN0cykKQEAgLTUyLDYgKzQ1
LDUyIEBAIGNsYXNzIFRyaWdnZXJhYmxlIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgfQog
fQogCisKK2NsYXNzIFRyaWdnZXJhYmxlQ29uZmlndXJhdGlvbiBleHRlbmRzIERhdGFNb2RlbE9i
amVjdCB7CisgICAgI3RyaWdnZXJhYmxlOworICAgICN0ZXN0OworICAgICNwbGF0Zm9ybTsKKyAg
ICAjc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOworCisgICAgY29uc3RydWN0b3IoaWQsIG9iamVj
dCkKKyAgICB7CisgICAgICAgIHN1cGVyKGlkKTsKKyAgICAgICAgdGhpcy4jdHJpZ2dlcmFibGUg
PSBvYmplY3QudHJpZ2dlcmFibGU7CisgICAgICAgIHRoaXMuI3Rlc3QgPSBvYmplY3QudGVzdDsK
KyAgICAgICAgdGhpcy4jcGxhdGZvcm0gPSBvYmplY3QucGxhdGZvcm07CisgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KG9iamVjdC5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMuZXZlcnkoVHJpZ2dlcmFi
bGVDb25maWd1cmF0aW9uLmlzVmFsaWRSZXBldGl0aW9uVHlwZS5iaW5kKFRyaWdnZXJhYmxlQ29u
ZmlndXJhdGlvbikpKTsKKyAgICAgICAgdGhpcy4jc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzID0g
b2JqZWN0LnN1cHBvcnRlZFJlcGV0aXRpb25UeXBlczsKKyAgICB9CisKKyAgICBnZXQgdHJpZ2dl
cmFibGUoKSB7IHJldHVybiB0aGlzLiN0cmlnZ2VyYWJsZTsgfQorICAgIGdldCBzdXBwb3J0ZWRS
ZXBldGl0aW9uVHlwZXMoKSB7IHJldHVybiB0aGlzLiNzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM7
IH0KKyAgICBpc1N1cHBvcnRlZFJlcGV0aXRpb25UeXBlKHJlcGV0aXRpb25UeXBlKSB7IHJldHVy
biB0aGlzLiNzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMuaW5jbHVkZXMocmVwZXRpdGlvblR5cGUp
OyB9CisKKyAgICBzdGF0aWMgY3JlYXRlSWRGb3JUZXN0QW5kUGxhdGZvcm0odGVzdCwgcGxhdGZv
cm0pIHsgcmV0dXJuIGAke3Rlc3QuaWQoKX0tJHtwbGF0Zm9ybS5pZCgpfWA7IH0KKworICAgIHN0
YXRpYyBjcmVhdGVGb3JUcmlnZ2VyYWJsZSh0cmlnZ2VyYWJsZSwgdGVzdCwgcGxhdGZvcm0sIHN1
cHBvcnRlZFJlcGV0aXRpb25UeXBlcykKKyAgICB7CisgICAgICAgIGNvbnN0IGlkID0gdGhpcy5j
cmVhdGVJZEZvclRlc3RBbmRQbGF0Zm9ybSh0ZXN0LCBwbGF0Zm9ybSk7CisgICAgICAgIHJldHVy
biBUcmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24uZW5zdXJlU2luZ2xldG9uKGlkLCB7CisgICAgICAg
ICAgICB0ZXN0LCBwbGF0Zm9ybSwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzLCB0cmlnZ2VyYWJs
ZQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluZEJ5VGVzdEFuZFBsYXRmb3Jt
KHRlc3QsIHBsYXRmb3JtKQorICAgIHsKKyAgICAgICAgZm9yICg7IHRlc3Q7IHRlc3QgPSB0ZXN0
LnBhcmVudFRlc3QoKSkgeworICAgICAgICAgICAgY29uc3QgaWQgPSB0aGlzLmNyZWF0ZUlkRm9y
VGVzdEFuZFBsYXRmb3JtKHRlc3QsIHBsYXRmb3JtKTsKKyAgICAgICAgICAgIGNvbnN0IHRyaWdn
ZXJhYmxlQ29uZmlndXJhdGlvbiA9IFRyaWdnZXJhYmxlQ29uZmlndXJhdGlvbi5maW5kQnlJZChp
ZCk7CisgICAgICAgICAgICBpZiAodHJpZ2dlcmFibGVDb25maWd1cmF0aW9uKQorICAgICAgICAg
ICAgICAgIHJldHVybiB0cmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb247CisgICAgICAgIH0KKyAgICAg
ICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgc3RhdGljIGlzVmFsaWRSZXBldGl0aW9uVHlw
ZShyZXBldGl0aW9uVHlwZSkgeyByZXR1cm4gWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJywg
J3BhaXJlZC1wYXJhbGxlbCddLmluY2x1ZGVzKHJlcGV0aXRpb25UeXBlKTsgfQorfQorCisKIGNs
YXNzIFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAK
ICAgICBjb25zdHJ1Y3RvcihpZCwgb2JqZWN0KQpAQCAtMTA5LDYgKzE0OCw3IEBAIGNsYXNzIFRy
aWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAKIGlmICh0
eXBlb2YgbW9kdWxlICE9ICd1bmRlZmluZWQnKSB7CiAgICAgbW9kdWxlLmV4cG9ydHMuVHJpZ2dl
cmFibGUgPSBUcmlnZ2VyYWJsZTsKKyAgICBtb2R1bGUuZXhwb3J0cy5UcmlnZ2VyYWJsZUNvbmZp
Z3VyYXRpb24gPSBUcmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb247CiAgICAgbW9kdWxlLmV4cG9ydHMu
VHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAgPSBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cDsK
IH0KIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdl
cy9hbmFseXNpcy10YXNrLXBhZ2UuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L3YzL3BhZ2VzL2FuYWx5c2lzLXRhc2stcGFnZS5qcwppbmRleCBmYmQwNDBiZjFlM2VmOGM0Y2Iy
OTg3MWRkZDAyYTFjMTFlMGI1YzcwLi5lNWU4NzZmNmZkNzZjNGUwNDJjYmMzMWZlNjQ4MzU5Yjhh
NDM1Mzk3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3Bh
Z2VzL2FuYWx5c2lzLXRhc2stcGFnZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
cHVibGljL3YzL3BhZ2VzL2FuYWx5c2lzLXRhc2stcGFnZS5qcwpAQCAtNzcsNiArNzcsNyBAQCBj
bGFzcyBBbmFseXNpc1Rhc2tSZXN1bHRzUGFuZSBleHRlbmRzIENvbXBvbmVudEJhc2UgewogICAg
IHNldFRlc3RHcm91cHModGVzdEdyb3VwcywgY3VycmVudEdyb3VwKQogICAgIHsKICAgICAgICAg
dGhpcy5wYXJ0KCdyZXN1bHRzLXZpZXdlcicpLnNldFRlc3RHcm91cHModGVzdEdyb3VwcywgY3Vy
cmVudEdyb3VwKTsKKyAgICAgICAgdGhpcy5wYXJ0KCdmb3JtJykudXBkYXRlV2l0aFRlc3RHcm91
cChjdXJyZW50R3JvdXApOwogICAgICAgICB0aGlzLmVucXVldWVUb1JlbmRlcigpOwogICAgIH0K
IApAQCAtMzY2LDEwICszNjcsMTEgQEAgY2xhc3MgQW5hbHlzaXNUYXNrVGVzdEdyb3VwUGFuZSBl
eHRlbmRzIENvbXBvbmVudEJhc2UgewogICAgICAgICBpZiAoc2VsZWN0ZWQpCiAgICAgICAgICAg
ICBzZWxlY3RlZC5jbGFzc0xpc3QucmVtb3ZlKCdzZWxlY3RlZCcpOwogCisgICAgICAgIHRoaXMu
cGFydCgncmV0cnktZm9ybScpLnVwZGF0ZVdpdGhUZXN0R3JvdXAoY3VycmVudEdyb3VwKTsKKyAg
ICAgICAgdGhpcy5wYXJ0KCdiaXNlY3QtZm9ybScpLnVwZGF0ZVdpdGhUZXN0R3JvdXAoY3VycmVu
dEdyb3VwKTsKKwogICAgICAgICBpZiAoY3VycmVudEdyb3VwKSB7CiAgICAgICAgICAgICB0aGlz
Ll90ZXN0R3JvdXBNYXAuZ2V0KGN1cnJlbnRHcm91cCkubGlzdEl0ZW0uY2xhc3NMaXN0LmFkZCgn
c2VsZWN0ZWQnKTsKLSAgICAgICAgICAgIHRoaXMucGFydCgncmV0cnktZm9ybScpLnNldFJlcGV0
aXRpb25Db3VudChjdXJyZW50R3JvdXAuaW5pdGlhbFJlcGV0aXRpb25Db3VudCgpKTsKLSAgICAg
ICAgICAgIHRoaXMucGFydCgnYmlzZWN0LWZvcm0nKS5zZXRSZXBldGl0aW9uQ291bnQoY3VycmVu
dEdyb3VwLmluaXRpYWxSZXBldGl0aW9uQ291bnQoKSk7CiAKICAgICAgICAgICAgIGlmIChjdXJy
ZW50R3JvdXAuaGFzUmV0cmllcygpKQogICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyUmVwbGFj
ZSh0aGlzLmNvbnRlbnQoJ3JldHJ5LXN1bW1hcnknKSwgdGhpcy5fcmV0cnlTdW1tYXJ5KGN1cnJl
bnRHcm91cCkpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9wYWdlcy9jaGFydC1wYW5lLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9wYWdlcy9jaGFydC1wYW5lLmpzCmluZGV4IGI1OGNlMjY4NmNkMWRmOWQyOWJmZTZkNDBjOWM5
Y2UwZTQ0OGI4YmMuLjJmNmNkODRlNWRlYmJkMDcxMjUzN2EzZmQ0NGUwMWU1MGI0YjA0YTIgMTAw
NjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvY2hhcnQt
cGFuZS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2No
YXJ0LXBhbmUuanMKQEAgLTEyMCwxMyArMTIwLDEzIEBAIGNsYXNzIENoYXJ0UGFuZSBleHRlbmRz
IENoYXJ0UGFuZUJhc2UgewogICAgICAgICBjb25zdCBjcmVhdGVXaXRoVGVzdEdyb3VwQ2hlY2ti
b3ggPSB0aGlzLmNvbnRlbnQoJ2NyZWF0ZS13aXRoLXRlc3QtZ3JvdXAnKTsKICAgICAgICAgY29u
c3QgcmVwZXRpdGlvbkNvdW50ID0gdGhpcy5jb250ZW50KCdjb25maXJtLXJlcGV0aXRpb24nKTsK
ICAgICAgICAgY29uc3Qgbm90aWZ5T25Db21wbGV0aW9uID0gdGhpcy5jb250ZW50KCdub3RpZnkt
b24tY29tcGxldGlvbicpOwotICAgICAgICBjb25zdCByZXBldGl0aW9uVHlwZSA9IHRoaXMuY29u
dGVudCgncmVwZXRpdGlvbi10eXBlJyk7CisgICAgICAgIGNvbnN0IHJlcGV0aXRpb25UeXBlU2Vs
ZWN0aW9uID0gdGhpcy5wYXJ0KCdyZXBldGl0aW9uLXR5cGUtc2VsZWN0aW9uJyk7CiAgICAgICAg
IGNyZWF0ZVdpdGhUZXN0R3JvdXBDaGVja2JveC5vbmNoYW5nZSA9ICgpID0+IHsKICAgICAgICAg
ICAgIC8vIEZJWE1FOiBzaG91bGQgaW52b2tlICJlbnF1ZXVlVG9SZW5kZXIiIGluc3RlYWQuCiAg
ICAgICAgICAgICBjb25zdCBzaG91bGREaXNhYmxlID0gIWNyZWF0ZVdpdGhUZXN0R3JvdXBDaGVj
a2JveC5jaGVja2VkOwogICAgICAgICAgICAgcmVwZXRpdGlvbkNvdW50LmRpc2FibGVkID0gc2hv
dWxkRGlzYWJsZTsKICAgICAgICAgICAgIG5vdGlmeU9uQ29tcGxldGlvbi5kaXNhYmxlZCA9IHNo
b3VsZERpc2FibGU7Ci0gICAgICAgICAgICByZXBldGl0aW9uVHlwZS5kaXNhYmxlZCA9IHNob3Vs
ZERpc2FibGU7CisgICAgICAgICAgICByZXBldGl0aW9uVHlwZVNlbGVjdGlvbi5kaXNhYmxlZCA9
IHNob3VsZERpc2FibGU7CiAgICAgICAgIH07CiAgICAgfQogCkBAIC0yNDYsNyArMjQ2LDcgQEAg
Y2xhc3MgQ2hhcnRQYW5lIGV4dGVuZHMgQ2hhcnRQYW5lQmFzZSB7CiAgICAgICAgIGNvbnN0IGNy
ZWF0ZVdpdGhUZXN0R3JvdXAgPSB0aGlzLmNvbnRlbnQoJ2NyZWF0ZS13aXRoLXRlc3QtZ3JvdXAn
KS5jaGVja2VkOwogICAgICAgICBjb25zdCByZXBldGl0aW9uQ291bnQgPSB0aGlzLmNvbnRlbnQo
J2NvbmZpcm0tcmVwZXRpdGlvbicpLnZhbHVlOwogICAgICAgICBjb25zdCBub3RpZnlPbkNvbXBs
ZXRpb24gPSB0aGlzLmNvbnRlbnQoJ25vdGlmeS1vbi1jb21wbGV0aW9uJykuY2hlY2tlZDsKLSAg
ICAgICAgY29uc3QgcmVwZXRpdGlvblR5cGUgPSB0aGlzLmNvbnRlbnQoJ3JlcGV0aXRpb24tdHlw
ZScpLnZhbHVlOworICAgICAgICBjb25zdCByZXBldGl0aW9uVHlwZSA9IHRoaXMucGFydCgncmVw
ZXRpdGlvbi10eXBlLXNlbGVjdGlvbicpLnNlbGVjdGVkUmVwZXRpdGlvblR5cGU7CiAKICAgICAg
ICAgdHJ5IHsKICAgICAgICAgICAgIGNvbnN0IGFuYWx5c2lzVGFzayA9IGF3YWl0IChjcmVhdGVX
aXRoVGVzdEdyb3VwID8KQEAgLTMxOSw2ICszMTksOSBAQCBjbGFzcyBDaGFydFBhbmUgZXh0ZW5k
cyBDaGFydFBhbmVCYXNlIHsKICAgICAgICAgY29uc3Qgc2VsZWN0ZWRQb2ludHMgPSB0aGlzLl9t
YWluQ2hhcnQuc2VsZWN0ZWRQb2ludHMoJ2N1cnJlbnQnKTsKICAgICAgICAgY29uc3QgaGFzU2Vs
ZWN0ZWRQb2ludHMgPSBzZWxlY3RlZFBvaW50cyAmJiBzZWxlY3RlZFBvaW50cy5sZW5ndGgoKTsK
ICAgICAgICAgaWYgKGhhc1NlbGVjdGVkUG9pbnRzKSB7CisgICAgICAgICAgICBjb25zdCByZXBl
dGl0aW9uVHlwZVNlbGVjdGlvbiA9IHRoaXMucGFydCgncmVwZXRpdGlvbi10eXBlLXNlbGVjdGlv
bicpOworICAgICAgICAgICAgcmVwZXRpdGlvblR5cGVTZWxlY3Rpb24uc2V0VGVzdEFuZFBsYXRm
b3JtKG1ldHJpYy50ZXN0KCksIHBsYXRmb3JtKTsKKyAgICAgICAgICAgIHJlcGV0aXRpb25UeXBl
U2VsZWN0aW9uLmVucXVldWVUb1JlbmRlcigpOwogICAgICAgICAgICAgYWN0aW9ucy5wdXNoKHRo
aXMuX21ha2VQb3BvdmVyQWN0aW9uSXRlbShhbmFseXplUG9wb3ZlciwgJ0FuYWx5emUnLCBmYWxz
ZSkpOwogICAgICAgICAgICAgYW5hbHl6ZVBvcG92ZXIub25zdWJtaXQgPSB0aGlzLmNyZWF0ZUV2
ZW50SGFuZGxlcigoKSA9PiB7CiAgICAgICAgICAgICAgICAgdGhpcy5fYW5hbHl6ZVJhbmdlKHNl
bGVjdGVkUG9pbnRzLmZpcnN0UG9pbnQoKSwgc2VsZWN0ZWRQb2ludHMubGFzdFBvaW50KCkpOwpA
QCAtNTk2LDEwICs1OTksNyBAQCBjbGFzcyBDaGFydFBhbmUgZXh0ZW5kcyBDaGFydFBhbmVCYXNl
IHsKICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAg
ICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkluPC9sYWJlbD4KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGlkPSJyZXBldGl0aW9uLXR5cGUiPgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJhbHRlcm5hdGlu
ZyIgc2VsZWN0ZWQ+YWx0ZXJuYXRlIChBQkFCKTwvb3B0aW9uPgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJzZXF1ZW50aWFsIj5zZXF1ZW5jZSAoQUFCQik8
L29wdGlvbj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8cmVwZXRpdGlvbi10eXBlLXNlbGVjdGlvbiBpZD0icmVwZXRp
dGlvbi10eXBlLXNlbGVjdGlvbiI+PC9yZXBldGl0aW9uLXR5cGUtc2VsZWN0aW9uPgogICAgICAg
ICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBp
ZD0ibm90aWZ5LW9uLWNvbXBsZXRpb24iIGNoZWNrZWQ+Tm90aWZ5IG9uIGNvbXBsZXRpb248L2xh
YmVsPgpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9h
cGktbWFuaWZlc3QtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL2FwaS1tYW5pZmVzdC10ZXN0cy5qcwppbmRleCBjYWEwYjJjZTYxY2ExMmYyNTU1MTY1MGU4
MTYyNjkyMDc2OGFkYWQ1Li5mOWQwYmQ2NDcxMDlhYTM3NTNiODYxZTBhNDVhMzljOWRmMjc3ZDU1
IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1t
YW5pZmVzdC10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRl
c3RzL2FwaS1tYW5pZmVzdC10ZXN0cy5qcwpAQCAtMzY0LDEyICszNjQsMjQgQEAgZGVzY3JpYmUo
Jy9hcGkvbWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBkYi5pbnNlcnQoJ3Ry
aWdnZXJhYmxlX3JlcG9zaXRvcmllcycsIHtncm91cDogMzAyLCByZXBvc2l0b3J5OiA5fSksCiAg
ICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcmllcycsIHtncm91cDog
MzAzLCByZXBvc2l0b3J5OiA5fSksCiAgICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxl
X3JlcG9zaXRvcmllcycsIHtncm91cDogMzA0LCByZXBvc2l0b3J5OiAxNn0pLAotICAgICAgICAg
ICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHt0cmlnZ2VyYWJsZTog
MjAwLCB0ZXN0OiAxLCBwbGF0Zm9ybTogNDZ9KSwKLSAgICAgICAgICAgIGRiLmluc2VydCgndHJp
Z2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCB7dHJpZ2dlcmFibGU6IDIwMCwgdGVzdDogMiwgcGxh
dGZvcm06IDQ2fSksCi0gICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3Vy
YXRpb25zJywge3RyaWdnZXJhYmxlOiAyMDEsIHRlc3Q6IDEsIHBsYXRmb3JtOiAyM30pLAotICAg
ICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHt0cmlnZ2Vy
YWJsZTogMjAxLCB0ZXN0OiAyLCBwbGF0Zm9ybTogMjN9KSwKLSAgICAgICAgICAgIGRiLmluc2Vy
dCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCB7dHJpZ2dlcmFibGU6IDIwMiwgdGVzdDog
MSwgcGxhdGZvcm06IDEwNH0pLAotICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9j
b25maWd1cmF0aW9ucycsIHt0cmlnZ2VyYWJsZTogMjAyLCB0ZXN0OiAyLCBwbGF0Zm9ybTogMTA0
fSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywg
e2lkOiAxLCB0cmlnZ2VyYWJsZTogMjAwLCB0ZXN0OiAxLCBwbGF0Zm9ybTogNDZ9KSwKKyAgICAg
ICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5
cGVzJywge2NvbmZpZ3JlcGV0aXRpb25fY29uZmlnOiAxLCBjb25maWdyZXBldGl0aW9uX3R5cGU6
ICdhbHRlcm5hdGluZyd9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29u
ZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywge2NvbmZpZ3JlcGV0aXRpb25fY29uZmlnOiAx
LCBjb25maWdyZXBldGl0aW9uX3R5cGU6ICdzZXF1ZW50aWFsJ30pLAorICAgICAgICAgICAgZGIu
aW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHtpZDogMiwgdHJpZ2dlcmFibGU6
IDIwMCwgdGVzdDogMiwgcGxhdGZvcm06IDQ2fSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ3Ry
aWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcycsIHtjb25maWdyZXBldGl0
aW9uX2NvbmZpZzogMiwgY29uZmlncmVwZXRpdGlvbl90eXBlOiAnYWx0ZXJuYXRpbmcnfSksCisg
ICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlv
bl90eXBlcycsIHtjb25maWdyZXBldGl0aW9uX2NvbmZpZzogMiwgY29uZmlncmVwZXRpdGlvbl90
eXBlOiAnc2VxdWVudGlhbCd9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVf
Y29uZmlndXJhdGlvbnMnLCB7aWQ6IDMsIHRyaWdnZXJhYmxlOiAyMDEsIHRlc3Q6IDEsIHBsYXRm
b3JtOiAyM30pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0
aW9uX3JlcGV0aXRpb25fdHlwZXMnLCB7Y29uZmlncmVwZXRpdGlvbl9jb25maWc6IDMsIGNvbmZp
Z3JlcGV0aXRpb25fdHlwZTogJ2FsdGVybmF0aW5nJ30pLAorICAgICAgICAgICAgZGIuaW5zZXJ0
KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMnLCB7Y29uZmlncmVw
ZXRpdGlvbl9jb25maWc6IDMsIGNvbmZpZ3JlcGV0aXRpb25fdHlwZTogJ3NlcXVlbnRpYWwnfSks
CisgICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywge2lk
OiA0LCB0cmlnZ2VyYWJsZTogMjAxLCB0ZXN0OiAyLCBwbGF0Zm9ybTogMjN9KSwKKyAgICAgICAg
ICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVz
Jywge2NvbmZpZ3JlcGV0aXRpb25fY29uZmlnOiA0LCBjb25maWdyZXBldGl0aW9uX3R5cGU6ICdh
bHRlcm5hdGluZyd9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmln
dXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywge2NvbmZpZ3JlcGV0aXRpb25fY29uZmlnOiA0LCBj
b25maWdyZXBldGl0aW9uX3R5cGU6ICdzZXF1ZW50aWFsJ30pLAorICAgICAgICAgICAgZGIuaW5z
ZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHtpZDogNSwgdHJpZ2dlcmFibGU6IDIw
MiwgdGVzdDogMSwgcGxhdGZvcm06IDEwNH0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmln
Z2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMnLCB7Y29uZmlncmVwZXRpdGlv
bl9jb25maWc6IDUsIGNvbmZpZ3JlcGV0aXRpb25fdHlwZTogJ2FsdGVybmF0aW5nJ30pLAorICAg
ICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25f
dHlwZXMnLCB7Y29uZmlncmVwZXRpdGlvbl9jb25maWc6IDUsIGNvbmZpZ3JlcGV0aXRpb25fdHlw
ZTogJ3NlcXVlbnRpYWwnfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2Nv
bmZpZ3VyYXRpb25zJywge2lkOiA2LCB0cmlnZ2VyYWJsZTogMjAyLCB0ZXN0OiAyLCBwbGF0Zm9y
bTogMTA0fSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRp
b25fcmVwZXRpdGlvbl90eXBlcycsIHtjb25maWdyZXBldGl0aW9uX2NvbmZpZzogNiwgY29uZmln
cmVwZXRpdGlvbl90eXBlOiAnYWx0ZXJuYXRpbmcnfSksCisgICAgICAgICAgICBkYi5pbnNlcnQo
J3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcycsIHtjb25maWdyZXBl
dGl0aW9uX2NvbmZpZzogNiwgY29uZmlncmVwZXRpdGlvbl90eXBlOiAnc2VxdWVudGlhbCd9KSwK
ICAgICAgICAgXSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gTWFuaWZlc3QuZmV0
Y2goKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGRhdGUtdHJpZ2dlcmFibGUtdGVzdHMuanMg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGRhdGUtdHJpZ2dl
cmFibGUtdGVzdHMuanMKaW5kZXggMWEzNTJiMzg0YWMzMWM4MjE5YTM1MDMzMTc4NjUzMDdiMDE3
NjQ0YS4uMzU2N2YwMjY2ODUyYmYyMjAyNmNiZWZkOWNlNDM2MDZjYzgxOTM4NyAxMDA2NDQKLS0t
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBkYXRlLXRyaWdn
ZXJhYmxlLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvYXBpLXVwZGF0ZS10cmlnZ2VyYWJsZS10ZXN0cy5qcwpAQCAtOCw2ICs4LDcgQEAgY29uc3Qg
VGVzdFNlcnZlciA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpzJyk7CiBjb25z
dCBNb2NrRGF0YSA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL21vY2stZGF0YS5qcycpOwogY29uc3Qg
YWRkV29ya2VyRm9yUmVwb3J0ID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlv
bnMuanMnKS5hZGRXb3JrZXJGb3JSZXBvcnQ7CiBjb25zdCBwcmVwYXJlU2VydmVyVGVzdCA9IHJl
cXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzJykucHJlcGFyZVNlcnZlclRl
c3Q7Citjb25zdCBhc3NlcnRUaHJvd3MgPSByZXF1aXJlKCcuLi9zZXJ2ZXItdGVzdHMvcmVzb3Vy
Y2VzL2NvbW1vbi1vcGVyYXRpb25zJykuYXNzZXJ0VGhyb3dzOwogCiBkZXNjcmliZSgnL2FwaS91
cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgIHByZXBhcmVTZXJ2ZXJUZXN0
KHRoaXMpOwpAQCAtMTksMTQgKzIwLDE2IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2Vy
YWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICdjb25maWd1cmF0aW9ucyc6IFtdLAogICAg
IH07CiAKLSAgICBjb25zdCBzbWFsbFVwZGF0ZSA9IHsKLSAgICAgICAgJ3dvcmtlck5hbWUnOiAn
c29tZVdvcmtlcicsCi0gICAgICAgICd3b3JrZXJQYXNzd29yZCc6ICdzb21lUGFzc3dvcmQnLAot
ICAgICAgICAndHJpZ2dlcmFibGUnOiAnYnVpbGQtd2Via2l0JywKLSAgICAgICAgJ2NvbmZpZ3Vy
YXRpb25zJzogWwotICAgICAgICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxh
dGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCl9Ci0gICAgICAgIF0sCi0gICAgfTsKKyAg
ICBmdW5jdGlvbiBjcmVhdGVVcGRhdGVXaXRoUmVwZXRpdGlvblR5cGVzKHN1cHBvcnRlZFJlcGV0
aXRpb25UeXBlcykgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgJ3dvcmtlck5hbWUn
OiAnc29tZVdvcmtlcicsCisgICAgICAgICAgICAnd29ya2VyUGFzc3dvcmQnOiAnc29tZVBhc3N3
b3JkJywKKyAgICAgICAgICAgICd0cmlnZ2VyYWJsZSc6ICdidWlsZC13ZWJraXQnLAorICAgICAg
ICAgICAgJ2NvbmZpZ3VyYXRpb25zJzogW3t0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBs
YXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpLCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlw
ZXN9XSwKKyAgICAgICAgfQorICAgIH0KKworICAgIGNvbnN0IHNtYWxsVXBkYXRlID0gY3JlYXRl
VXBkYXRlV2l0aFJlcGV0aXRpb25UeXBlcyhbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXSk7
CiAKICAgICBpdCgnc2hvdWxkIHJlamVjdCB3aGVuIHdvcmtlciBuYW1lIGlzIG1pc3NpbmcnLCAo
KSA9PiB7CiAgICAgICAgIHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcv
YXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCB7fSkudGhlbigocmVzcG9uc2UpID0+IHsKQEAgLTEx
OSw3ICsxMjIsNyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgJ3dvcmtlclBhc3N3b3JkJzogJ3NvbWVQYXNzd29yZCcsCiAg
ICAgICAgICAgICAndHJpZ2dlcmFibGUnOiAnZW1wdHktdHJpZ2dlcmFibGUnLAogICAgICAgICAg
ICAgJ2NvbmZpZ3VyYXRpb25zJzogWwotICAgICAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0YS5z
b21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpfQorICAgICAg
ICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0
YS5zb21lUGxhdGZvcm1JZCgpLCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRp
bmcnLCAnc2VxdWVudGlhbCddfSwKICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAncmVwb3Np
dG9yeUdyb3Vwcyc6IFsKICAgICAgICAgICAgICAgICB7bmFtZTogJ3N5c3RlbS1vbmx5JywgcmVw
b3NpdG9yaWVzOiBbCkBAIC0yNTMsNiArMjU2LDggQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRy
aWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7
CiAgICAgICAgICAgICBjb25zdCBbaW5pdGlhbENvbmZpZ3VyYXRpb25zLCBpbml0aWFsUmVwb3Np
dG9yeUdyb3Vwc10gPSBpbml0aWFsUmVzdWx0OwogICAgICAgICAgICAgY29uc3QgW2NvbmZpZ3Vy
YXRpb25zLCByZXBvc2l0b3J5R3JvdXBzXSA9IHJlc3VsdDsKKyAgICAgICAgICAgIGluaXRpYWxD
b25maWd1cmF0aW9ucy5mb3JFYWNoKGNvbmZpZyA9PiBkZWxldGUgY29uZmlnLmlkKTsKKyAgICAg
ICAgICAgIGNvbmZpZ3VyYXRpb25zLmZvckVhY2goY29uZmlnID0+IGRlbGV0ZSBjb25maWcuaWQp
OwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb25maWd1cmF0aW9ucywgaW5p
dGlhbENvbmZpZ3VyYXRpb25zKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwo
cmVwb3NpdG9yeUdyb3VwcywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHMpOwogICAgICAgICB9KQpA
QCAtMjc1LDYgKzI4MCw4IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAg
Y29uc3QgW2luaXRpYWxDb25maWd1cmF0aW9ucywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHNdID0g
aW5pdGlhbFJlc3VsdDsKICAgICAgICAgICAgIGNvbnN0IFtjb25maWd1cmF0aW9ucywgcmVwb3Np
dG9yeUdyb3Vwc10gPSByZXN1bHQ7CisgICAgICAgICAgICBpbml0aWFsQ29uZmlndXJhdGlvbnMu
Zm9yRWFjaChjb25maWcgPT4gZGVsZXRlIGNvbmZpZy5pZCk7CisgICAgICAgICAgICBjb25maWd1
cmF0aW9ucy5mb3JFYWNoKGNvbmZpZyA9PiBkZWxldGUgY29uZmlnLmlkKTsKICAgICAgICAgICAg
IGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29uZmlndXJhdGlvbnMsIGluaXRpYWxDb25maWd1cmF0
aW9ucyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91
cHMsIGluaXRpYWxSZXBvc2l0b3J5R3JvdXBzKTsKICAgICAgICAgfSkKQEAgLTMwOCw3ICszMTUs
NyBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgJ3dvcmtlclBhc3N3b3JkJzogJ3NvbWVQYXNzd29yZCcsCiAgICAgICAgICAg
ICAndHJpZ2dlcmFibGUnOiAnZW1wdHktdHJpZ2dlcmFibGUnLAogICAgICAgICAgICAgJ2NvbmZp
Z3VyYXRpb25zJzogWwotICAgICAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElk
KCksIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpfQorICAgICAgICAgICAgICAg
IHt0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxh
dGZvcm1JZCgpLCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2Vx
dWVudGlhbCddfSwKICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAncmVwb3NpdG9yeUdyb3Vw
cyc6IFsKICAgICAgICAgICAgICAgICB7bmFtZTogJ3N5c3RlbS1vbmx5JywgcmVwb3NpdG9yaWVz
OiBbe3JlcG9zaXRvcnk6IE1vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCl9XX0sCkBAIC00NjUs
NCArNDcyLDIyIEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgIH0pOwogICAgIH0pOwogCisgICAgaXQoJ3Nob3VsZCBhbGxvdyBhZGRp
bmcgInBhaXJlZC1wYXJhbGxlbCIgcmVwZXRpdGlvbiB0eXBlIHRvIHRyaWdnZXJhYmxlIGNvbmZp
Z3VyYXRpb24nLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5k
YXRhYmFzZSgpOworICAgICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrRGF0YShkYik7CisgICAg
ICAgIGNvbnN0IGluaXRpYWxVcGRhdGUgPSBjcmVhdGVVcGRhdGVXaXRoUmVwZXRpdGlvblR5cGVz
KFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddKTsKKyAgICAgICAgYXdhaXQgYWRkV29ya2Vy
Rm9yUmVwb3J0KGluaXRpYWxVcGRhdGUpOworICAgICAgICBhd2FpdCBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUnLCBpbml0
aWFsVXBkYXRlKTsKKworICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgZGIucXVlcnkoJ1NFTEVD
VCBjb25maWdyZXBldGl0aW9uX3R5cGUgQVMgcmVwZXRpdGlvbl90eXBlIEZST00gdHJpZ2dlcmFi
bGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXN1bHQucm93cy5sZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHJlc3VsdC5yb3dzLm1hcChyb3cgPT4gcm93WydyZXBldGl0aW9uX3R5cGUnXSkuc29ydCgpLCBb
J2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXSk7CisKKyAgICAgICAgY29uc3QgdXBkYXRlV2l0
aFBhcmFsbGVsUmVwZXRpdGlvbiA9IGNyZWF0ZVVwZGF0ZVdpdGhSZXBldGl0aW9uVHlwZXMoWydh
bHRlcm5hdGluZycsICdzZXF1ZW50aWFsJywgJ3BhaXJlZC1wYXJhbGxlbCddKTsKKyAgICAgICAg
YXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvdXBk
YXRlLXRyaWdnZXJhYmxlJywgdXBkYXRlV2l0aFBhcmFsbGVsUmVwZXRpdGlvbik7CisgICAgICAg
IHJlc3VsdCA9IGF3YWl0IGRiLnF1ZXJ5KCdTRUxFQ1QgY29uZmlncmVwZXRpdGlvbl90eXBlIEFT
IHJlcGV0aXRpb25fdHlwZSBGUk9NIHRyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlv
bl90eXBlcycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0LnJvd3MubGVuZ3Ro
LCAzKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHQucm93cy5tYXAocm93ID0+IHJv
d1sncmVwZXRpdGlvbl90eXBlJ10pLnNvcnQoKSwgWydhbHRlcm5hdGluZycsICdwYWlyZWQtcGFy
YWxsZWwnLCAnc2VxdWVudGlhbCddKTsKKyAgICB9KTsKKwogfSk7CmRpZmYgLS1naXQgYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGxvYWQtcm9vdC10ZXN0cy5q
cyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwbG9hZC1yb290
LXRlc3RzLmpzCmluZGV4IDY3NWQ1OTQ4NzRjYTE2ZGM3ZTg5NjY4MDRjZmVmNDE4NjVmMjUyZGMu
LjUyMDU1MGIzOGRiOWNlZGFmODM0NDk4MjI5NmNiNDNhNjg5ZTY5ZDkgMTAwNjQ0Ci0tLSBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwbG9hZC1yb290LXRlc3Rz
LmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwbG9h
ZC1yb290LXRlc3RzLmpzCkBAIC0zOCw3ICszOCw3IEBAIGZ1bmN0aW9uIGNyZWF0ZVRlc3RHcm91
cFdpaFBhdGNoKCkKICAgICAgICAgJ3dvcmtlclBhc3N3b3JkJzogJ3Bhc3N3b3JkJywKICAgICAg
ICAgJ3RyaWdnZXJhYmxlJzogJ2J1aWxkLXdlYmtpdCcsCiAgICAgICAgICdjb25maWd1cmF0aW9u
cyc6IFsKLSAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3Jt
OiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpfSwKKyAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0
YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpLCBzdXBw
b3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddfSwKICAg
ICAgICAgXSwKICAgICAgICAgJ3JlcG9zaXRvcnlHcm91cHMnOiBbCiAgICAgICAgICAgICB7bmFt
ZTogJ3dlYmtpdCcsIHJlcG9zaXRvcmllczogWwpAQCAtODAsNyArODAsNyBAQCBmdW5jdGlvbiBj
cmVhdGVUZXN0R3JvdXBXaXRoUGF0Y2hBbmRPd25lZENvbW1pdHMoKQogICAgICAgICAnd29ya2Vy
UGFzc3dvcmQnOiAncGFzc3dvcmQnLAogICAgICAgICAndHJpZ2dlcmFibGUnOiAnYnVpbGQtd2Vi
a2l0JywKICAgICAgICAgJ2NvbmZpZ3VyYXRpb25zJzogWwotICAgICAgICAgICAge3Rlc3Q6IE1v
Y2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCl9
LAorICAgICAgICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06IE1v
Y2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCksIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlczogWydhbHRl
cm5hdGluZycsICdzZXF1ZW50aWFsJ119LAogICAgICAgICBdLAogICAgICAgICAncmVwb3NpdG9y
eUdyb3Vwcyc6IFsKICAgICAgICAgICAgIHtuYW1lOiAnd2Via2l0JywgcmVwb3NpdG9yaWVzOiBb
CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZp
bGVnZWQtYXBpLWFkZC1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktYWRkLWJ1aWxkLXJlcXVlc3RzLXRl
c3RzLmpzCmluZGV4IGY5YzQ0NjQ1YTJhNzQzNzRkYjljNTU1OTQwOThjYTIzYjkyYjczNWMuLjFk
OTMxZmZlM2Y1NDg0ZWIwNmZlNzYzM2RhODA1YzdkNTZhNjk0YmEgMTAwNjQ0Ci0tLSBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktYWRkLWJ1aWxk
LXJlcXVlc3RzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvcHJpdmlsZWdlZC1hcGktYWRkLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCkBAIC05Niw4
ICs5Niw4IEBAIGFzeW5jIGZ1bmN0aW9uIGFkZFRyaWdnZXJhYmxlQW5kQ3JlYXRlVGFzayhuYW1l
LCB3ZWJraXRSZXZpc2lvbnMpCiAgICAgICAgICd3b3JrZXJQYXNzd29yZCc6ICdhbm90aGVyUGFz
c3dvcmQnLAogICAgICAgICAndHJpZ2dlcmFibGUnOiAnYnVpbGQtd2Via2l0JywKICAgICAgICAg
J2NvbmZpZ3VyYXRpb25zJzogWwotICAgICAgICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0
SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCl9LAotICAgICAgICAgICAg
e3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRhLm90aGVyUGxh
dGZvcm1JZCgpfSwKKyAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBs
YXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpLCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlw
ZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddfSwKKyAgICAgICAgICAgIHt0ZXN0OiBN
b2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5vdGhlclBsYXRmb3JtSWQo
KSwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwn
XX0sCiAgICAgICAgIF0sCiAgICAgICAgICdyZXBvc2l0b3J5R3JvdXBzJzogWwogICAgICAgICAg
ICAge25hbWU6ICdvcy1vbmx5JywgYWNjZXB0c1Jvb3Q6IHRydWUsIHJlcG9zaXRvcmllczogWwpA
QCAtMTkwLDcgKzE5MCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvYWRkLWJ1aWxkLXJl
cXVlc3RzJywgZnVuY3Rpb24oKSB7CiAgICAgICAgIGF3YWl0IGFzc2VydFRocm93cygnQ2Fubm90
QWRkVG9IaWRkZW5UZXN0R3JvdXAnLCBhc3luYyAoKSA9PiBhd2FpdCBQcml2aWxlZ2VkQVBJLnNl
bmRSZXF1ZXN0KCdhZGQtYnVpbGQtcmVxdWVzdHMnLCB7Z3JvdXA6IGluc2VydGVkR3JvdXBJZCwg
YWRkQ291bnQ6IDJ9KSkKICAgICB9KTsKIAotICAgIGl0KCdzaG91bGQgcmVqZWN0IHdpdGggIkNv
bW1pdFNldE5vdFN1cHBvcnRlZEZvckFsdGVybmF0aW5nUmVwZXRpdGlvblR5cGUiIHdoZW4gYWRk
aW5nIGJ1aWxkIHJlcXVlc3RzIGZvciBvbmUgY29tbWl0IHNldCBpbiBhbiBhbHRlcm5hdGluZyB0
ZXN0IGdyb3VwJywgYXN5bmMgKCkgPT4geworICAgIGl0KCdzaG91bGQgcmVqZWN0IHdpdGggIkNv
bW1pdFNldE5vdFN1cHBvcnRlZEZvck5vblNlcXVlbnRpYWxSZXBldGl0aW9uVHlwZSIgd2hlbiBh
ZGRpbmcgYnVpbGQgcmVxdWVzdHMgZm9yIG9uZSBjb21taXQgc2V0IGluIGFuIGFsdGVybmF0aW5n
IHRlc3QgZ3JvdXAnLCBhc3luYyAoKSA9PiB7CiAgICAgICAgIGF3YWl0IGFkZFRyaWdnZXJhYmxl
QW5kQ3JlYXRlVGFzaygnc29tZSB0YXNrJyk7CiAgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9z
aXRvcnkuYWxsKCkuZmlsdGVyKChyZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5Lm5hbWUoKSA9PSAn
V2ViS2l0JylbMF07CiAgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IFt7W3dlYmtpdC5pZCgp
XToge3JldmlzaW9uOiAnMTkxNjIyJ319LCB7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkx
NjIzJ319XTsKQEAgLTIxOCw3ICsyMTgsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2Fk
ZC1idWlsZC1yZXF1ZXN0cycsIGZ1bmN0aW9uKCkgewogICAgICAgICBjb25zdCBzZWNvbmRDb21t
aXRTZXQgPSBncm91cC5yZXF1ZXN0ZWRDb21taXRTZXRzKClbMV07CiAgICAgICAgIGFzc2VydE9y
ZGVyT2ZSZXF1ZXN0cyhncm91cC5yZXF1ZXN0c0ZvckNvbW1pdFNldChzZWNvbmRDb21taXRTZXQp
LCBbMSwgM10pOwogCi0gICAgICAgIGF3YWl0IGFzc2VydFRocm93cygnQ29tbWl0U2V0Tm90U3Vw
cG9ydGVkRm9yQWx0ZXJuYXRpbmdSZXBldGl0aW9uVHlwZScsICgpID0+IHsKKyAgICAgICAgYXdh
aXQgYXNzZXJ0VGhyb3dzKCdDb21taXRTZXROb3RTdXBwb3J0ZWRGb3JOb25TZXF1ZW50aWFsUmVw
ZXRpdGlvblR5cGUnLCAoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5z
ZW5kUmVxdWVzdCgnYWRkLWJ1aWxkLXJlcXVlc3RzJywKICAgICAgICAgICAgICAgICB7Z3JvdXA6
IGluc2VydGVkR3JvdXBJZCwgYWRkQ291bnQ6IDIsIGNvbW1pdFNldDogc2Vjb25kQ29tbWl0U2V0
LmlkKCl9KQogICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2stdGVzdHMu
anMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBp
LWNyZWF0ZS1hbmFseXNpcy10YXNrLXRlc3RzLmpzCmluZGV4IDJhMTcxNzhlNDM0MjMyMmVmY2Mw
YmZmZDI3ZjI5ODIzNWY0MzI2ZGIuLmVkZWEzNmY0NDc1ZjdhYmUyNjBlNmRhMGNlMDIxOGM3MWFk
MzkwODUgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
cHJpdmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2stdGVzdHMuanMKKysrIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtYW5h
bHlzaXMtdGFzay10ZXN0cy5qcwpAQCAtNDE1LDcgKzQxNSw4IEBAIGRlc2NyaWJlKCcvcHJpdmls
ZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBp
JywgZnVuCiAgICAgICAgIGF3YWl0IGRiLmluc2VydCgnYnVpbGRfdHJpZ2dlcmFibGVzJywge2lk
OiAxMjM0LCBuYW1lOiAndGVzdC10cmlnZ2VyYWJsZSd9KTsKICAgICAgICAgYXdhaXQgZGIuaW5z
ZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycsIHtpZDogMjM0NSwgbmFtZTogJ3dl
YmtpdC1vbmx5JywgdHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxlSWR9KTsKICAgICAgICAgYXdhaXQg
ZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCB7cmVwb3NpdG9yeTogd2Via2l0
SWQsIGdyb3VwOiAyMzQ1fSk7Ci0gICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVf
Y29uZmlndXJhdGlvbnMnLCB7dGVzdDogdGVzdDFJZCwgcGxhdGZvcm06IHBsYXRmb3JtSWQsIHRy
aWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlkfSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJp
Z2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCB7aWQ6IDEsIHRlc3Q6IHRlc3QxSWQsIHBsYXRmb3Jt
OiBwbGF0Zm9ybUlkLCB0cmlnZ2VyYWJsZTogdHJpZ2dlcmFibGVJZH0pOworICAgICAgICBhd2Fp
dCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcycs
IHtjb25maWdyZXBldGl0aW9uX2NvbmZpZzogMSwgY29uZmlncmVwZXRpdGlvbl90eXBlOiAnYWx0
ZXJuYXRpbmcnfSk7CiAgICAgICAgIGF3YWl0IGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0
aFJldmlzaW9uWzBdKTsKIAogICAgICAgICBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2aXNpb24pOwpAQCAtNTM3LDcgKzUz
OCw4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0
aCBub2RlIHByaXZpbGVnZWQgYXBpJywgZnVuY3RpCiAgICAgICAgIGF3YWl0IGRiLmluc2VydCgn
YnVpbGRfdHJpZ2dlcmFibGVzJywge2lkOiAxMjM0LCBuYW1lOiAndGVzdC10cmlnZ2VyYWJsZSd9
KTsKICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3Vw
cycsIHtpZDogMjM0NSwgbmFtZTogJ3dlYmtpdC1vbmx5JywgdHJpZ2dlcmFibGU6IHRyaWdnZXJh
YmxlSWR9KTsKICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3Jp
ZXMnLCB7cmVwb3NpdG9yeTogd2Via2l0SWQsIGdyb3VwOiAyMzQ1fSk7Ci0gICAgICAgIGF3YWl0
IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCB7dGVzdDogdGVzdDFJZCwg
cGxhdGZvcm06IHBsYXRmb3JtSWQsIHRyaWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlkfSk7CisgICAg
ICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCB7aWQ6IDEs
IHRlc3Q6IHRlc3QxSWQsIHBsYXRmb3JtOiBwbGF0Zm9ybUlkLCB0cmlnZ2VyYWJsZTogdHJpZ2dl
cmFibGVJZH0pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3Vy
YXRpb25fcmVwZXRpdGlvbl90eXBlcycsIHtjb25maWdyZXBldGl0aW9uX2NvbmZpZzogMSwgY29u
ZmlncmVwZXRpdGlvbl90eXBlOiAnYWx0ZXJuYXRpbmcnfSk7CiAgICAgICAgIGF3YWl0IGFkZEJ1
aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uWzBdKTsKIAogICAgICAgICBhd2FpdCBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRo
UmV2aXNpb24pOwpAQCAtNjE3LDcgKzYxOSw4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkv
Y3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBub2RlIHByaXZpbGVnZWQgYXBpJywgZnVuY3RpCiAg
ICAgICAgIGF3YWl0IGRiLmluc2VydCgnYnVpbGRfdHJpZ2dlcmFibGVzJywge2lkOiAxMjM0LCBu
YW1lOiAndGVzdC10cmlnZ2VyYWJsZSd9KTsKICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmln
Z2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycsIHtpZDogMjM0NSwgbmFtZTogJ3dlYmtpdC1vbmx5
JywgdHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxlSWR9KTsKICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0
KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCB7cmVwb3NpdG9yeTogd2Via2l0SWQsIGdyb3Vw
OiAyMzQ1fSk7Ci0gICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJh
dGlvbnMnLCB7dGVzdDogdGVzdDFJZCwgcGxhdGZvcm06IHBsYXRmb3JtSWQsIHRyaWdnZXJhYmxl
OiB0cmlnZ2VyYWJsZUlkfSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVf
Y29uZmlndXJhdGlvbnMnLCB7aWQ6IDEsIHRlc3Q6IHRlc3QxSWQsIHBsYXRmb3JtOiBwbGF0Zm9y
bUlkLCB0cmlnZ2VyYWJsZTogdHJpZ2dlcmFibGVJZH0pOworICAgICAgICBhd2FpdCBkYi5pbnNl
cnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcycsIHtjb25maWdy
ZXBldGl0aW9uX2NvbmZpZzogMSwgY29uZmlncmVwZXRpdGlvbl90eXBlOiAnYWx0ZXJuYXRpbmcn
fSk7CiAgICAgICAgIGF3YWl0IGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9u
WzBdKTsKIAogICAgICAgICBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcv
YXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2aXNpb24pOwpAQCAtNjk3LDcgKzcwMCw5IEBAIGRl
c2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBub2RlIHBy
aXZpbGVnZWQgYXBpJywgZnVuY3RpCiAgICAgICAgIGF3YWl0IGRiLmluc2VydCgnYnVpbGRfdHJp
Z2dlcmFibGVzJywge2lkOiAxMjM0LCBuYW1lOiAndGVzdC10cmlnZ2VyYWJsZSd9KTsKICAgICAg
ICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycsIHtpZDog
MjM0NSwgbmFtZTogJ3dlYmtpdC1vbmx5JywgdHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxlSWR9KTsK
ICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCB7cmVw
b3NpdG9yeTogd2Via2l0SWQsIGdyb3VwOiAyMzQ1fSk7Ci0gICAgICAgIGF3YWl0IGRiLmluc2Vy
dCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCB7dGVzdDogdGVzdElkLCBwbGF0Zm9ybTog
cGxhdGZvcm1JZCwgdHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxlSWR9KTsKKyAgICAgICAgYXdhaXQg
ZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHtpZDogMSwgdGVzdDogdGVz
dElkLCBwbGF0Zm9ybTogcGxhdGZvcm1JZCwgdHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxlSWR9KTsK
KyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0
aXRpb25fdHlwZXMnLCB7Y29uZmlncmVwZXRpdGlvbl9jb25maWc6IDEsIGNvbmZpZ3JlcGV0aXRp
b25fdHlwZTogJ2FsdGVybmF0aW5nJ30pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdn
ZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcycsIHtjb25maWdyZXBldGl0aW9u
X2NvbmZpZzogMSwgY29uZmlncmVwZXRpdGlvbl90eXBlOiAnc2VxdWVudGlhbCd9KTsKICAgICAg
ICAgYXdhaXQgYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoUmV2aXNpb25bMF0pOwogCiAg
ICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0
LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7CkBAIC03NTUsNyArNzYwLDcgQEAgZGVzY3JpYmUoJy9w
cml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBh
cGknLCBmdW5jdGkKICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29uZENvbW1pdFNldC5j
b21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9uKCksICcxOTE2MjMn
KTsKICAgICB9KTsKIAotICAgIGl0KCdzaG91bGQgcmVqZWN0IHdpdGggIkludmFsaWRSZXBldGl0
aW9uVHlwZSIgd2hlbiByZXBldGl0aW9uIHR5cGUgaXMgbm90ICJhbHRlcm5hdGluZyIgb3IgInNl
cXVlbnRpYWwiJywgYXN5bmMgKCkgPT4geworICAgIGl0KCdzaG91bGQgYmUgYWJsZSB0byBjcmVh
dGUgYW4gYW5hbHlzaXMgdGFzayB3aXRoIGEgcGFpcmVkIHBhcmFsbGVsIHRlc3QgZ3JvdXAnLCBh
c3luYyAoKSA9PiB7CiAgICAgICAgIGNvbnN0IHdlYmtpdElkID0gMTsKICAgICAgICAgY29uc3Qg
cGxhdGZvcm1JZCA9IDE7CiAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlSWQgPSAxMjM0OwpAQCAt
NzY5LDcgKzc3NCw4MyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNp
cy10YXNrIHdpdGggbm9kZSBwcml2aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICBhd2FpdCBk
Yi5pbnNlcnQoJ2J1aWxkX3RyaWdnZXJhYmxlcycsIHtpZDogMTIzNCwgbmFtZTogJ3Rlc3QtdHJp
Z2dlcmFibGUnfSk7CiAgICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfcmVwb3Np
dG9yeV9ncm91cHMnLCB7aWQ6IDIzNDUsIG5hbWU6ICd3ZWJraXQtb25seScsIHRyaWdnZXJhYmxl
OiB0cmlnZ2VyYWJsZUlkfSk7CiAgICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVf
cmVwb3NpdG9yaWVzJywge3JlcG9zaXRvcnk6IHdlYmtpdElkLCBncm91cDogMjM0NX0pOwotICAg
ICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywge3Rlc3Q6
IHRlc3RJZCwgcGxhdGZvcm06IHBsYXRmb3JtSWQsIHRyaWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlk
fSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMn
LCB7aWQ6IDEsIHRlc3Q6IHRlc3RJZCwgcGxhdGZvcm06IHBsYXRmb3JtSWQsIHRyaWdnZXJhYmxl
OiB0cmlnZ2VyYWJsZUlkfSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVf
Y29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywge2NvbmZpZ3JlcGV0aXRpb25fY29uZmln
OiAxLCBjb25maWdyZXBldGl0aW9uX3R5cGU6ICdhbHRlcm5hdGluZyd9KTsKKyAgICAgICAgYXdh
aXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMn
LCB7Y29uZmlncmVwZXRpdGlvbl9jb25maWc6IDEsIGNvbmZpZ3JlcGV0aXRpb25fdHlwZTogJ3Nl
cXVlbnRpYWwnfSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmln
dXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywge2NvbmZpZ3JlcGV0aXRpb25fY29uZmlnOiAxLCBj
b25maWdyZXBldGl0aW9uX3R5cGU6ICdwYWlyZWQtcGFyYWxsZWwnfSk7CisgICAgICAgIGF3YWl0
IGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uWzBdKTsKKworICAgICAgICBh
d2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBv
cnRXaXRoUmV2aXNpb24pOworICAgICAgICBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBv
c3RKU09OKCcvYXBpL3JlcG9ydC8nLCBhbm90aGVyUmVwb3J0V2l0aFJldmlzaW9uKTsKKyAgICAg
ICAgYXdhaXQgTWFuaWZlc3QuZmV0Y2goKTsKKworICAgICAgICBjb25zdCB0ZXN0ID0gVGVzdC5m
aW5kQnlJZCh0ZXN0SWQpOworICAgICAgICBjb25zdCBzb21lUGxhdGZvcm0gPSBQbGF0Zm9ybS5m
aW5kQnlJZChwbGF0Zm9ybUlkKTsKKyAgICAgICAgY29uc3QgY29uZmlnUm93ID0gYXdhaXQgZGIu
c2VsZWN0Rmlyc3RSb3coJ3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0ZXN0Lm1ldHJp
Y3MoKVswXS5pZCgpLCBwbGF0Zm9ybTogc29tZVBsYXRmb3JtLmlkKCl9KTsKKyAgICAgICAgY29u
c3QgdGVzdFJ1bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBj
b25maWdSb3dbJ2lkJ119KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxl
bmd0aCwgMik7CisKKyAgICAgICAgY29uc3Qgb25lUmV2aXNpb25TZXQgPSB7W3dlYmtpdElkXTog
e3JldmlzaW9uOiAnMTkxNjIyJ319OworICAgICAgICBjb25zdCBhbm90aGVyUmV2aXNpb25TZXQg
PSB7W3dlYmtpdElkXToge3JldmlzaW9uOiAnMTkxNjIzJ319OworCisgICAgICAgIGNvbnN0IGNv
bnRlbnQgPSBhd2FpdCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMt
dGFzaycsIHtuYW1lOiAnY29uZmlybScsIHJlcGV0aXRpb25Db3VudDogMiwKKyAgICAgICAgICAg
IHRlc3RHcm91cE5hbWU6ICdDb25maXJtJywgcmV2aXNpb25TZXRzOiBbb25lUmV2aXNpb25TZXQs
IGFub3RoZXJSZXZpc2lvblNldF0sCisgICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1b
J2lkJ10sIGVuZFJ1bjogdGVzdFJ1bnNbMV1bJ2lkJ10sIG5lZWRzTm90aWZpY2F0aW9uOiB0cnVl
LCByZXBldGl0aW9uVHlwZTogJ3BhaXJlZC1wYXJhbGxlbCd9KTsKKworICAgICAgICBjb25zdCB0
YXNrID0gYXdhaXQgQW5hbHlzaXNUYXNrLmZldGNoQnlJZChjb250ZW50Wyd0YXNrSWQnXSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm5hbWUoKSwgJ2NvbmZpcm0nKTsKKyAgICAg
ICAgYXNzZXJ0KCF0YXNrLmhhc1Jlc3VsdHMoKSk7CisgICAgICAgIGFzc2VydCh0YXNrLmhhc1Bl
bmRpbmdSZXF1ZXN0cygpKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmJ1
Z3MoKSwgW10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRhc2suY2F1c2VzKCks
IFtdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmZpeGVzKCksIFtdKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2suY2hhbmdlVHlwZSgpLCBudWxsKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2sucGxhdGZvcm0oKS5sYWJlbCgpLCAnc29tZSBw
bGF0Zm9ybScpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5tZXRyaWMoKS50ZXN0
KCkubGFiZWwoKSwgJ1N1aXRlJyk7CisKKyAgICAgICAgY29uc3QgdGVzdEdyb3VwcyA9IGF3YWl0
IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFzay5pZCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgY29uc3QgdGVzdEdyb3VwID0g
dGVzdEdyb3Vwc1swXTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5uYW1l
KCksICdDb25maXJtJyk7CisgICAgICAgIGFzc2VydC5vayh0ZXN0R3JvdXAubmVlZHNOb3RpZmlj
YXRpb24oKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAucmVwZXRpdGlv
blR5cGUoKSwgJ3BhaXJlZC1wYXJhbGxlbCcpCisgICAgICAgIGZvciAoY29uc3QgY29tbWl0U2V0
IG9mIHRlc3RHcm91cC5yZXF1ZXN0ZWRDb21taXRTZXRzKCkpCisgICAgICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwodGVzdEdyb3VwLnJlcGV0aXRpb25Db3VudEZvckNvbW1pdFNldChjb21taXRT
ZXQpLCAyKTsKKworICAgICAgICBjb25zdCBidWlsZFJlcXVlc3RzID0gdGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHMubGVu
Z3RoLCA0KTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1swXS5v
cmRlcigpLCAwKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMV0u
b3JkZXIoKSwgMSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzJd
Lm9yZGVyKCksIDIpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sz
XS5vcmRlcigpLCAzKTsKKworICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0c1swXS5jb21taXRT
ZXQoKS5lcXVhbHMoYnVpbGRSZXF1ZXN0c1syXS5jb21taXRTZXQoKSkpOworICAgICAgICBhc3Nl
cnQoYnVpbGRSZXF1ZXN0c1sxXS5jb21taXRTZXQoKS5lcXVhbHMoYnVpbGRSZXF1ZXN0c1szXS5j
b21taXRTZXQoKSkpOworCisgICAgICAgIGNvbnN0IGZpcnN0Q29tbWl0U2V0ID0gYnVpbGRSZXF1
ZXN0c1swXS5jb21taXRTZXQoKTsKKyAgICAgICAgY29uc3Qgc2Vjb25kQ29tbWl0U2V0ID0gYnVp
bGRSZXF1ZXN0c1sxXS5jb21taXRTZXQoKTsKKyAgICAgICAgY29uc3Qgd2Via2l0UmVwb3NpdG9y
eSA9IFJlcG9zaXRvcnkuZmluZEJ5SWQod2Via2l0SWQpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoZmlyc3RDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5
KS5yZXZpc2lvbigpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNv
bmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9yeSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lv
bigpLCAnMTkxNjIzJyk7CisgICAgfSk7CisKKyAgICBpdCgnc2hvdWxkIHJlamVjdCB3aXRoICJJ
bnZhbGlkUmVwZXRpdGlvblR5cGUiIHdoZW4gcmVwZXRpdGlvbiB0eXBlIGlzIG5vdCAiYWx0ZXJu
YXRpbmciLCAic2VxdWVudGlhbCIgb3IgInBhcmFsbGVsIicsIGFzeW5jICgpID0+IHsKKyAgICAg
ICAgY29uc3Qgd2Via2l0SWQgPSAxOworICAgICAgICBjb25zdCBwbGF0Zm9ybUlkID0gMTsKKyAg
ICAgICAgY29uc3QgdHJpZ2dlcmFibGVJZCA9IDEyMzQ7CisKKyAgICAgICAgY29uc3QgZGIgPSBU
ZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgndGVzdHMnLCB7
bmFtZTogJ1N1aXRlJ30pOworICAgICAgICBjb25zdCB0ZXN0Um93ID0gYXdhaXQgZGIuc2VsZWN0
Rmlyc3RSb3coJ3Rlc3RzJywge25hbWU6ICdTdWl0ZSd9KTsKKyAgICAgICAgY29uc3QgdGVzdElk
ID0gdGVzdFJvdy5pZDsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7
aWQ6IHdlYmtpdElkLCBuYW1lOiAnV2ViS2l0J30pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQo
J3BsYXRmb3JtcycsIHtpZDogcGxhdGZvcm1JZCwgbmFtZTogJ3NvbWUgcGxhdGZvcm0nfSk7Cisg
ICAgICAgIGF3YWl0IGRiLmluc2VydCgnYnVpbGRfdHJpZ2dlcmFibGVzJywge2lkOiAxMjM0LCBu
YW1lOiAndGVzdC10cmlnZ2VyYWJsZSd9KTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmln
Z2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycsIHtpZDogMjM0NSwgbmFtZTogJ3dlYmtpdC1vbmx5
JywgdHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxlSWR9KTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0
KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCB7cmVwb3NpdG9yeTogd2Via2l0SWQsIGdyb3Vw
OiAyMzQ1fSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJh
dGlvbnMnLCB7aWQ6IDEsIHRlc3Q6IHRlc3RJZCwgcGxhdGZvcm06IHBsYXRmb3JtSWQsIHRyaWdn
ZXJhYmxlOiB0cmlnZ2VyYWJsZUlkfSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dl
cmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywge2NvbmZpZ3JlcGV0aXRpb25f
Y29uZmlnOiAxLCBjb25maWdyZXBldGl0aW9uX3R5cGU6ICdhbHRlcm5hdGluZyd9KTsKICAgICAg
ICAgYXdhaXQgYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoUmV2aXNpb25bMF0pOwogCiAg
ICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0
LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7CkBAIC03OTcsNCArODc4LDQ4IEBAIGRlc2NyaWJlKCcv
cHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBub2RlIHByaXZpbGVnZWQg
YXBpJywgZnVuY3RpCiAgICAgICAgICAgICB9KQogICAgICAgICB9KTsKICAgICB9KTsKKworICAg
IGl0KCdzaG91bGQgcmVqZWN0IHdpdGggIlVuc3VwcG9ydGVkUmVwZXRpdGlvblR5cGUiIHdoZW4g
cmVwZXRpdGlvbiB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQgdW5kZXIgdHJpZ2dlcmFibGUgY29uZmln
dXJhdGlvbicsIGFzeW5jICgpID0+IHsKKyAgICAgICAgY29uc3Qgd2Via2l0SWQgPSAxOworICAg
ICAgICBjb25zdCBwbGF0Zm9ybUlkID0gMTsKKyAgICAgICAgY29uc3QgdHJpZ2dlcmFibGVJZCA9
IDEyMzQ7CisKKyAgICAgICAgY29uc3QgZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAg
ICAgIGF3YWl0IGRiLmluc2VydCgndGVzdHMnLCB7bmFtZTogJ1N1aXRlJ30pOworICAgICAgICBj
b25zdCB0ZXN0Um93ID0gYXdhaXQgZGIuc2VsZWN0Rmlyc3RSb3coJ3Rlc3RzJywge25hbWU6ICdT
dWl0ZSd9KTsKKyAgICAgICAgY29uc3QgdGVzdElkID0gdGVzdFJvdy5pZDsKKyAgICAgICAgYXdh
aXQgZGIuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7aWQ6IHdlYmtpdElkLCBuYW1lOiAnV2ViS2l0
J30pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3BsYXRmb3JtcycsIHtpZDogcGxhdGZvcm1J
ZCwgbmFtZTogJ3NvbWUgcGxhdGZvcm0nfSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgnYnVp
bGRfdHJpZ2dlcmFibGVzJywge2lkOiAxMjM0LCBuYW1lOiAndGVzdC10cmlnZ2VyYWJsZSd9KTsK
KyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3Vwcycs
IHtpZDogMjM0NSwgbmFtZTogJ3dlYmtpdC1vbmx5JywgdHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxl
SWR9KTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMn
LCB7cmVwb3NpdG9yeTogd2Via2l0SWQsIGdyb3VwOiAyMzQ1fSk7CisgICAgICAgIGF3YWl0IGRi
Lmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCB7aWQ6IDEsIHRlc3Q6IHRlc3RJ
ZCwgcGxhdGZvcm06IHBsYXRmb3JtSWQsIHRyaWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlkfSk7Cisg
ICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0
aW9uX3R5cGVzJywge2NvbmZpZ3JlcGV0aXRpb25fY29uZmlnOiAxLCBjb25maWdyZXBldGl0aW9u
X3R5cGU6ICdhbHRlcm5hdGluZyd9KTsKKyAgICAgICAgYXdhaXQgYWRkQnVpbGRlckZvclJlcG9y
dChyZXBvcnRXaXRoUmV2aXNpb25bMF0pOworCisgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVt
b3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7Cisg
ICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0
LycsIGFub3RoZXJSZXBvcnRXaXRoUmV2aXNpb24pOworICAgICAgICBhd2FpdCBNYW5pZmVzdC5m
ZXRjaCgpOworCisgICAgICAgIGNvbnN0IHRlc3QgPSBUZXN0LmZpbmRCeUlkKHRlc3RJZCk7Cisg
ICAgICAgIGNvbnN0IHNvbWVQbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeUlkKHBsYXRmb3JtSWQp
OworICAgICAgICBjb25zdCBjb25maWdSb3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJzdFJvdygndGVz
dF9jb25maWd1cmF0aW9ucycsIHttZXRyaWM6IHRlc3QubWV0cmljcygpWzBdLmlkKCksIHBsYXRm
b3JtOiBzb21lUGxhdGZvcm0uaWQoKX0pOworICAgICAgICBjb25zdCB0ZXN0UnVucyA9IGF3YWl0
IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKworICAgICAg
ICBjb25zdCBvbmVSZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2aXNpb246ICcxOTE2MjIn
fX07CisgICAgICAgIGNvbnN0IGFub3RoZXJSZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2
aXNpb246ICcxOTE2MjMnfX07CisgICAgICAgIGF3YWl0IGFzc2VydFRocm93cygnVW5zdXBwb3J0
ZWRSZXBldGl0aW9uVHlwZScsICgpID0+IHsKKyAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2Vk
QVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHsKKyAgICAgICAgICAgICAg
ICBuYW1lOiAnY29uZmlybScsCisgICAgICAgICAgICAgICAgcmVwZXRpdGlvbkNvdW50OiAyLAor
ICAgICAgICAgICAgICAgIHRlc3RHcm91cE5hbWU6ICdDb25maXJtJywKKyAgICAgICAgICAgICAg
ICByZXZpc2lvblNldHM6IFtvbmVSZXZpc2lvblNldCwgYW5vdGhlclJldmlzaW9uU2V0XSwKKyAg
ICAgICAgICAgICAgICByZXBldGl0aW9uVHlwZTogJ3BhaXJlZC1wYXJhbGxlbCcsCisgICAgICAg
ICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLAorICAgICAgICAgICAgICAgIGVu
ZFJ1bjogdGVzdFJ1bnNbMV1bJ2lkJ10sCisgICAgICAgICAgICAgICAgbmVlZHNOb3RpZmljYXRp
b246IHRydWUKKyAgICAgICAgICAgIH0pCisgICAgICAgIH0pOworICAgIH0pOwogfSk7CmRpZmYg
LS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQt
YXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtdGVzdC1ncm91cC10ZXN0cy5qcwpp
bmRleCBiYjIyNDI5NjMwNTJkMThmMDU3N2FkZGQ0NGNlM2MzNjFkZjE0NGQ5Li42OWUzOTFkNDQx
ZTM0N2JjNjdhOWMxOWY1ZWNjN2NkOTE4MTk1NTY4IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3Vw
LXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJp
dmlsZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMKQEAgLTEwMSw4ICsxMDEsOCBA
QCBmdW5jdGlvbiBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2sobmFtZSwgd2Via2l0UmV2aXNp
b25zKQogICAgICAgICAnd29ya2VyUGFzc3dvcmQnOiAnYW5vdGhlclBhc3N3b3JkJywKICAgICAg
ICAgJ3RyaWdnZXJhYmxlJzogJ2J1aWxkLXdlYmtpdCcsCiAgICAgICAgICdjb25maWd1cmF0aW9u
cyc6IFsKLSAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3Jt
OiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpfSwKLSAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0
YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5vdGhlclBsYXRmb3JtSWQoKX0sCisg
ICAgICAgICAgICB7dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBwbGF0Zm9ybTogTW9ja0Rh
dGEuc29tZVBsYXRmb3JtSWQoKSwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0
aW5nJywgJ3NlcXVlbnRpYWwnXX0sCisgICAgICAgICAgICB7dGVzdDogTW9ja0RhdGEuc29tZVRl
c3RJZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEub3RoZXJQbGF0Zm9ybUlkKCksIHN1cHBvcnRlZFJl
cGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ119LAogICAgICAgICBd
LAogICAgICAgICAncmVwb3NpdG9yeUdyb3Vwcyc6IFsKICAgICAgICAgICAgIHtuYW1lOiAnb3Mt
b25seScsIGFjY2VwdHNSb290OiB0cnVlLCByZXBvc2l0b3JpZXM6IFsKQEAgLTE0NjUsNyArMTQ2
NSw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZXQxLnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIzJyk7CiAgICAgfSk7CiAKLSAgICBpdCgnc2hvdWxkIHJl
amVjdCB3aXRoICJJbnZhbGlkUmVwZXRpdGlvblR5cGUiIGlmIHJlcGV0aXRpb24gdHlwZSBpcyBu
b3QgImFsdGVybmF0aW5nIiBvciAic2VxdWVudGlhbCInLCBhc3luYyAoKSA9PiB7CisgICAgaXQo
J3Nob3VsZCByZWplY3Qgd2l0aCAiSW52YWxpZFJlcGV0aXRpb25UeXBlIiBpZiByZXBldGl0aW9u
IHR5cGUgaXMgbm90ICJhbHRlcm5hdGluZyIsICJzZXF1ZW50aWFsIiBvciAicGFyYWxsZWwiJywg
YXN5bmMgKCkgPT4gewogICAgICAgICBhd2FpdCBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2so
J3NvbWUgdGFzaycpOwogICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmFsbCgpLmZp
bHRlcigocmVwb3NpdG9yeSkgPT4gcmVwb3NpdG9yeS5uYW1lKCkgPT0gJ1dlYktpdCcpWzBdOwog
ICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBbe1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjog
JzE5MTYyMid9fSwge1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMyd9fV07CkBAIC0x
NDc3LDYgKzE0NzcsMTggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1n
cm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAgICAgfSk7CiAKKyAgICBpdCgnc2hv
dWxkIHJlamVjdCB3aXRoICJVbnN1cHBvcnRlZFJlcGV0aXRpb25UeXBlIiBpZiByZXBldGl0aW9u
IHR5cGUgaXMgInBhcmFsbGVsIiBidXQgdHJpZ2dlcmFibGUgY29uZmlndXJhdGlvbiBvbmx5IHN1
cHBvcnRzICJzZXF1ZW50aWFsIiBhbmQgImFsdGVybmF0aW5nIicsIGFzeW5jICgpID0+IHsKKyAg
ICAgICAgYXdhaXQgYWRkVHJpZ2dlcmFibGVBbmRDcmVhdGVUYXNrKCdzb21lIHRhc2snKTsKKyAg
ICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9yeS5hbGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkp
ID0+IHJlcG9zaXRvcnkubmFtZSgpID09ICdXZWJLaXQnKVswXTsKKyAgICAgICAgY29uc3QgcmV2
aXNpb25TZXRzID0gW3tbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjInfX0sIHtbd2Vi
a2l0LmlkKCldOiB7cmV2aXNpb246ICcxOTE2MjMnfX1dOworCisgICAgICAgIGF3YWl0IGFzc2Vy
dFRocm93cygnVW5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZScsICgpID0+IHsKKyAgICAgICAgICAg
IHJldHVybiBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtdGVzdC1ncm91cCcsIHtu
YW1lOiAndGVzdCcsIHRhc2tOYW1lOiAnb3RoZXIgdGFzaycsCisgICAgICAgICAgICAgICAgcGxh
dGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCksIHRlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0
SWQoKSwKKyAgICAgICAgICAgICAgICBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwgcmVwZXRpdGlv
blR5cGU6ICdwYWlyZWQtcGFyYWxsZWwnLCByZXBldGl0aW9uQ291bnQ6IDIsIHJldmlzaW9uU2V0
c30pCisgICAgICAgIH0pOworICAgIH0pOworCiAgICAgaXQoJ3Nob3VsZCByZWplY3Qgd2l0aCAi
SW52YWxpZFJlcGV0aXRpb25UeXBlIiB3aGVuIGNyZWF0aW5nIGEgdGVzdCBncm91cCB3aXRoIGEg
YmFkIHJlcGV0aXRpb24gdHlwZSBmb3IgYW4gZXhpc3RpbmcgYW5hbHlzaXMgdGFzaycsIGFzeW5j
ICgpID0+IHsKICAgICAgICAgY29uc3QgdGFza0lkID0gYXdhaXQgYWRkVHJpZ2dlcmFibGVBbmRD
cmVhdGVUYXNrKCdzb21lIHRhc2snKTsKICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVwb3NpdG9y
eS5hbGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJlcG9zaXRvcnkubmFtZSgpID09ICdXZWJL
aXQnKVswXTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvcHJpdmlsZWdlZC1hcGktdXBkYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwZGF0ZS10ZXN0LWdy
b3VwLXRlc3RzLmpzCmluZGV4IGI2ZGNhZTJmMjE4NjUyZmM5Mjk3ZGRjYTUzODcyMDVmM2JjOWIz
MDguLjdmOWE3ZjRkZDE5OGIxNjJmNjhjYzkyNzNiY2NmNzQ3YjA1MDBhYTMgMTAwNjQ0Ci0tLSBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBk
YXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGRhdGUtdGVzdC1ncm91cC10ZXN0cy5qcwpAQCAt
OTYsOCArOTYsOCBAQCBhc3luYyBmdW5jdGlvbiBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2so
bmFtZSwgd2Via2l0UmV2aXNpb25zKQogICAgICAgICAnd29ya2VyUGFzc3dvcmQnOiAnYW5vdGhl
clBhc3N3b3JkJywKICAgICAgICAgJ3RyaWdnZXJhYmxlJzogJ2J1aWxkLXdlYmtpdCcsCiAgICAg
ICAgICdjb25maWd1cmF0aW9ucyc6IFsKLSAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0YS5zb21l
VGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpfSwKLSAgICAgICAg
ICAgIHt0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5vdGhl
clBsYXRmb3JtSWQoKX0sCisgICAgICAgICAgICB7dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgp
LCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSwgc3VwcG9ydGVkUmVwZXRpdGlv
blR5cGVzOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXX0sCisgICAgICAgICAgICB7dGVz
dDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEub3RoZXJQbGF0Zm9y
bUlkKCksIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1ZW50
aWFsJ119LAogICAgICAgICBdLAogICAgICAgICAncmVwb3NpdG9yeUdyb3Vwcyc6IFsKICAgICAg
ICAgICAgIHtuYW1lOiAnb3Mtb25seScsIGFjY2VwdHNSb290OiB0cnVlLCByZXBvc2l0b3JpZXM6
IFsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVz
b3VyY2VzL21vY2stZGF0YS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcwppbmRleCBlYWVlODFhMzQwYjE4NjJiMWZhMTJiMzY3
MjY3ZGNhODUzYzFjMzY0Li4xOTE2MWNiZjM3OGRhYzU5NTAwM2EzZDU5YmU1MDgyNDYwYjdjYzcx
IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291
cmNlcy9tb2NrLWRhdGEuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzCkBAIC0zMjUsNiArMzI1LDcgQEAgTW9ja0RhdGEg
PSB7CiAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAndHJpZ2dlcmFibGVOYW1lJzogJ2J1
aWxkLXdlYmtpdCcsCiAgICAgICAgICAgICAnbG9va2JhY2tDb3VudCc6IDIsCisgICAgICAgICAg
ICAncmVwZXRpdGlvblR5cGVzRm9yU2NoZWR1bGluZyc6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVu
dGlhbCddLAogICAgICAgICAgICAgJ2J1aWxkUmVxdWVzdEFyZ3VtZW50JzogJ2J1aWxkLXJlcXVl
c3QtaWQnLAogICAgICAgICAgICAgJ3JlcG9zaXRvcnlHcm91cHMnOiB7CiAgICAgICAgICAgICAg
ICAgJ3dlYmtpdC1zdm4nOiB7CkBAIC0zNTYsNiArMzU3LDcgQEAgTW9ja0RhdGEgPSB7CiAgICAg
ICAgIHJldHVybiB7CiAgICAgICAgICAgICAndHJpZ2dlcmFibGVOYW1lJzogJ2J1aWxkLXdlYmtp
dCcsCiAgICAgICAgICAgICAnbG9va2JhY2tDb3VudCc6IDIsCisgICAgICAgICAgICAncmVwZXRp
dGlvblR5cGVzRm9yU2NoZWR1bGluZyc6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddLAog
ICAgICAgICAgICAgJ2J1aWxkUmVxdWVzdEFyZ3VtZW50JzogJ2J1aWxkLXJlcXVlc3QtaWQnLAog
ICAgICAgICAgICAgJ3JlcG9zaXRvcnlHcm91cHMnOiB7CiAgICAgICAgICAgICAgICAgJ3dlYmtp
dC1zdm4nOiB7CkBAIC00MDEsNiArNDAzLDcgQEAgTW9ja0RhdGEgPSB7CiAgICAgICAgIHJldHVy
biB7CiAgICAgICAgICAgICAndHJpZ2dlcmFibGVOYW1lJzogJ2J1aWxkLXdlYmtpdCcsCiAgICAg
ICAgICAgICAnbG9va2JhY2tDb3VudCc6IDIsCisgICAgICAgICAgICAncmVwZXRpdGlvblR5cGVz
Rm9yU2NoZWR1bGluZyc6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddLAogICAgICAgICAg
ICAgJ2J1aWxkUmVxdWVzdEFyZ3VtZW50JzogJ2J1aWxkLXJlcXVlc3QtaWQnLAogICAgICAgICAg
ICAgJ3JlcG9zaXRvcnlHcm91cHMnOiB7CiAgICAgICAgICAgICAgICAgJ3dlYmtpdC1zdm4nOiB7
CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xz
LXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMu
anMKaW5kZXggNmRhZjUzNTRkZDJmNzIwNzQ3Zjk2ZDUzYmM0YTMxY2UwNWQ4ODI2Ny4uMjc2MjVj
NDY4OWQ2NDFjYjgxZmU5MTFiZTM0ZDczYjEwYzdjYmU0NCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0
aW9uLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMv
dG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qcwpAQCAtMTQsNTUgKzE0LDU3
IEBAIGNvbnN0IGFkZFdvcmtlckZvclJlcG9ydCA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1v
bi1vcGVyYXRpb25zLmpzJykuYWRkV29ya2VyCiBjb25zdCBwcmVwYXJlU2VydmVyVGVzdCA9IHJl
cXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzJykucHJlcGFyZVNlcnZlclRl
c3Q7CiBjb25zdCBCcm93c2VyUHJpdmlsZWdlZEFQSSA9IHJlcXVpcmUoJy4uL3B1YmxpYy92My9w
cml2aWxlZ2VkLWFwaS5qcycpLlByaXZpbGVnZWRBUEk7CiAKLWNvbnN0IGNvbmZpZ1dpdGhPbmVU
ZXN0ZXJUd29CdWlsZGVycyA9IHsKLSAgICB0cmlnZ2VyYWJsZU5hbWU6ICdidWlsZC13ZWJraXQn
LAotICAgIGxvb2tiYWNrQ291bnQ6IDIsCi0gICAgYnVpbGRSZXF1ZXN0QXJndW1lbnQ6ICdidWls
ZC1yZXF1ZXN0LWlkJywKLSAgICB3b3JrZXJOYW1lOiAnc3luYy13b3JrZXInLAotICAgIHdvcmtl
clBhc3N3b3JkOiAncGFzc3dvcmQnLAotICAgIHJlcG9zaXRvcnlHcm91cHM6IHsKLSAgICAgICAg
J3dlYmtpdCc6IHsKLSAgICAgICAgICAgIHJlcG9zaXRvcmllczogeydXZWJLaXQnOiB7YWNjZXB0
c1BhdGNoOiB0cnVlfX0sCi0gICAgICAgICAgICB0ZXN0UHJvcGVydGllczogeyd3ayc6IHsncmV2
aXNpb24nOiAnV2ViS2l0J30sICdyb290cyc6IHsncm9vdHMnOiB7fX19LAotICAgICAgICAgICAg
YnVpbGRQcm9wZXJ0aWVzOiB7J3drJzogeydyZXZpc2lvbic6ICdXZWJLaXQnfSwgJ3drLXBhdGNo
JzogeydwYXRjaCc6ICdXZWJLaXQnfSwKLSAgICAgICAgICAgICAgICAnY2hlY2tib3gnOiB7J2lm
UmVwb3NpdG9yeVNldCc6IFsnV2ViS2l0J10sICd2YWx1ZSc6ICdidWlsZC13ayd9LAotICAgICAg
ICAgICAgICAgICdidWlsZC13ayc6IHsnaWZSZXBvc2l0b3J5U2V0JzogWydXZWJLaXQnXSwgJ3Zh
bHVlJzogdHJ1ZX0sCi0gICAgICAgICAgICAgICAgJ293bmVkLWNvbW1pdHMnOiB7J293bmVkUmV2
aXNpb25zJzogJ1dlYktpdCd9fSwKLSAgICAgICAgICAgIGFjY2VwdHNSb290czogdHJ1ZSwKLSAg
ICAgICAgfQotICAgIH0sCi0gICAgdHlwZXM6IHsKLSAgICAgICAgJ3NvbWUnOiB7Ci0gICAgICAg
ICAgICB0ZXN0OiBbJ3NvbWUgdGVzdCddLAotICAgICAgICAgICAgcHJvcGVydGllczogeyd0ZXN0
JzogJ3NvbWUtdGVzdCd9LAotICAgICAgICB9Ci0gICAgfSwKLSAgICBidWlsZGVyczogewotICAg
ICAgICAnYnVpbGRlci0xJzogewotICAgICAgICAgICAgYnVpbGRlcjogJ3NvbWUgdGVzdGVyJywK
LSAgICAgICAgICAgIHByb3BlcnRpZXM6IHtmb3JjZXNjaGVkdWxlcjogJ2ZvcmNlLWFiLXRlc3Rz
J30sCitmdW5jdGlvbiBjb25maWdXaXRoT25lVGVzdGVyVHdvQnVpbGRlcnModGVzdENvbmZpZ3Vy
YXRpb25zT3ZlcnJpZGU9W3t0eXBlczogWydzb21lJ10sIHBsYXRmb3JtczogWydzb21lIHBsYXRm
b3JtJ10sIGJ1aWxkZXJzOiBbJ2J1aWxkZXItMSddfV0pIHsKKyAgICByZXR1cm4geworICAgICAg
ICB0cmlnZ2VyYWJsZU5hbWU6ICdidWlsZC13ZWJraXQnLAorICAgICAgICBsb29rYmFja0NvdW50
OiAyLAorICAgICAgICBidWlsZFJlcXVlc3RBcmd1bWVudDogJ2J1aWxkLXJlcXVlc3QtaWQnLAor
ICAgICAgICByZXBldGl0aW9uVHlwZXNGb3JTY2hlZHVsaW5nOiBbJ2FsdGVybmF0aW5nJywgJ3Nl
cXVlbnRpYWwnXSwKKyAgICAgICAgd29ya2VyTmFtZTogJ3N5bmMtd29ya2VyJywKKyAgICAgICAg
d29ya2VyUGFzc3dvcmQ6ICdwYXNzd29yZCcsCisgICAgICAgIHJlcG9zaXRvcnlHcm91cHM6IHsK
KyAgICAgICAgICAgICd3ZWJraXQnOiB7CisgICAgICAgICAgICAgICAgcmVwb3NpdG9yaWVzOiB7
J1dlYktpdCc6IHthY2NlcHRzUGF0Y2g6IHRydWV9fSwKKyAgICAgICAgICAgICAgICB0ZXN0UHJv
cGVydGllczogeyd3ayc6IHsncmV2aXNpb24nOiAnV2ViS2l0J30sICdyb290cyc6IHsncm9vdHMn
OiB7fX19LAorICAgICAgICAgICAgICAgIGJ1aWxkUHJvcGVydGllczogeyd3ayc6IHsncmV2aXNp
b24nOiAnV2ViS2l0J30sICd3ay1wYXRjaCc6IHsncGF0Y2gnOiAnV2ViS2l0J30sCisgICAgICAg
ICAgICAgICAgICAgICdjaGVja2JveCc6IHsnaWZSZXBvc2l0b3J5U2V0JzogWydXZWJLaXQnXSwg
J3ZhbHVlJzogJ2J1aWxkLXdrJ30sCisgICAgICAgICAgICAgICAgICAgICdidWlsZC13ayc6IHsn
aWZSZXBvc2l0b3J5U2V0JzogWydXZWJLaXQnXSwgJ3ZhbHVlJzogdHJ1ZX0sCisgICAgICAgICAg
ICAgICAgICAgICdvd25lZC1jb21taXRzJzogeydvd25lZFJldmlzaW9ucyc6ICdXZWJLaXQnfX0s
CisgICAgICAgICAgICAgICAgYWNjZXB0c1Jvb3RzOiB0cnVlLAorICAgICAgICAgICAgfQogICAg
ICAgICB9LAotICAgICAgICAnYnVpbGRlci0yJzogewotICAgICAgICAgICAgYnVpbGRlcjogJ3Nv
bWUgYnVpbGRlcicsCi0gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7Zm9yY2VzY2hlZHVsZXI6ICdm
b3JjZS1hYi1idWlsZHMnfSwKKyAgICAgICAgdHlwZXM6IHsKKyAgICAgICAgICAgICdzb21lJzog
eworICAgICAgICAgICAgICAgIHRlc3Q6IFsnc29tZSB0ZXN0J10sCisgICAgICAgICAgICAgICAg
cHJvcGVydGllczogeyd0ZXN0JzogJ3NvbWUtdGVzdCd9LAorICAgICAgICAgICAgfQogICAgICAg
ICB9LAotICAgICAgICAnYnVpbGRlci0zJzogewotICAgICAgICAgICAgYnVpbGRlcjogJ290aGVy
IGJ1aWxkZXInLAotICAgICAgICAgICAgcHJvcGVydGllczoge2ZvcmNlc2NoZWR1bGVyOiAnZm9y
Y2UtYWItYnVpbGRzJ30sCisgICAgICAgIGJ1aWxkZXJzOiB7CisgICAgICAgICAgICAnYnVpbGRl
ci0xJzogeworICAgICAgICAgICAgICAgIGJ1aWxkZXI6ICdzb21lIHRlc3RlcicsCisgICAgICAg
ICAgICAgICAgcHJvcGVydGllczoge2ZvcmNlc2NoZWR1bGVyOiAnZm9yY2UtYWItdGVzdHMnfSwK
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnYnVpbGRlci0yJzogeworICAgICAgICAgICAg
ICAgIGJ1aWxkZXI6ICdzb21lIGJ1aWxkZXInLAorICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6
IHtmb3JjZXNjaGVkdWxlcjogJ2ZvcmNlLWFiLWJ1aWxkcyd9LAorICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgICdidWlsZGVyLTMnOiB7CisgICAgICAgICAgICAgICAgYnVpbGRlcjogJ290aGVy
IGJ1aWxkZXInLAorICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtmb3JjZXNjaGVkdWxlcjog
J2ZvcmNlLWFiLWJ1aWxkcyd9LAorICAgICAgICAgICAgfSwKICAgICAgICAgfSwKLSAgICB9LAot
ICAgIGJ1aWxkQ29uZmlndXJhdGlvbnM6IFsKLSAgICAgICAge3BsYXRmb3JtczogWydzb21lIHBs
YXRmb3JtJ10sIGJ1aWxkZXJzOiBbJ2J1aWxkZXItMicsICdidWlsZGVyLTMnXX0sCi0gICAgXSwK
LSAgICB0ZXN0Q29uZmlndXJhdGlvbnM6IFsKLSAgICAgICAge3R5cGVzOiBbJ3NvbWUnXSwgcGxh
dGZvcm1zOiBbJ3NvbWUgcGxhdGZvcm0nXSwgYnVpbGRlcnM6IFsnYnVpbGRlci0xJ119LAotICAg
IF0sCi19OworICAgICAgICBidWlsZENvbmZpZ3VyYXRpb25zOiBbCisgICAgICAgICAgICB7cGxh
dGZvcm1zOiBbJ3NvbWUgcGxhdGZvcm0nXSwgYnVpbGRlcnM6IFsnYnVpbGRlci0yJywgJ2J1aWxk
ZXItMyddfSwKKyAgICAgICAgXSwKKyAgICAgICAgdGVzdENvbmZpZ3VyYXRpb25zOiB0ZXN0Q29u
ZmlndXJhdGlvbnNPdmVycmlkZQorICAgIH07Cit9CiAKIGNvbnN0IGNvbmZpZ1dpdGhQbGF0Zm9y
bU5hbWUgPSB7CiAgICAgdHJpZ2dlcmFibGVOYW1lOiAnYnVpbGQtd2Via2l0JywKICAgICBsb29r
YmFja0NvdW50OiAyLAogICAgIGJ1aWxkUmVxdWVzdEFyZ3VtZW50OiAnYnVpbGQtcmVxdWVzdC1p
ZCcsCisgICAgcmVwZXRpdGlvblR5cGVzRm9yU2NoZWR1bGluZzogWydhbHRlcm5hdGluZycsICdz
ZXF1ZW50aWFsJ10sCiAgICAgd29ya2VyTmFtZTogJ3N5bmMtd29ya2VyJywKICAgICB3b3JrZXJQ
YXNzd29yZDogJ3Bhc3N3b3JkJywKICAgICBwbGF0Zm9ybUFyZ3VtZW50OiAncGxhdGZvcm0tbmFt
ZScsCkBAIC0xMDksNiArMTExLDcgQEAgY29uc3QgY29uZmlnV2l0aFR3b1Rlc3RlcnMgPSB7CiAg
ICAgdHJpZ2dlcmFibGVOYW1lOiAnYnVpbGQtd2Via2l0JywKICAgICBsb29rYmFja0NvdW50OiAy
LAogICAgIGJ1aWxkUmVxdWVzdEFyZ3VtZW50OiAnYnVpbGQtcmVxdWVzdC1pZCcsCisgICAgcmVw
ZXRpdGlvblR5cGVzRm9yU2NoZWR1bGluZzogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ10s
CiAgICAgd29ya2VyTmFtZTogJ3N5bmMtd29ya2VyJywKICAgICB3b3JrZXJQYXNzd29yZDogJ3Bh
c3N3b3JkJywKICAgICByZXBvc2l0b3J5R3JvdXBzOiB7CkBAIC0xNTAsNyArMTUzLDcgQEAgZnVu
Y3Rpb24gYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdCwgbWV0aG9kLCB1cmwsIGNvbnRl
bnRUb1Jlc29sdmUpCiAgICAgcmVxdWVzdC5yZXNvbHZlKGNvbnRlbnRUb1Jlc29sdmUpOwogfQog
Ci1mdW5jdGlvbiBjcmVhdGVUcmlnZ2VyYWJsZShjb25maWcgPSBjb25maWdXaXRoT25lVGVzdGVy
VHdvQnVpbGRlcnMpCitmdW5jdGlvbiBjcmVhdGVUcmlnZ2VyYWJsZShjb25maWcgPSBjb25maWdX
aXRoT25lVGVzdGVyVHdvQnVpbGRlcnMoKSkKIHsKICAgICBsZXQgdHJpZ2dlcmFibGU7CiAgICAg
cmV0dXJuIE1vY2tEYXRhLmFkZE1vY2tDb25maWd1cmF0aW9uKFRlc3RTZXJ2ZXIuZGF0YWJhc2Uo
KSkudGhlbigoKSA9PiB7CkBAIC0xNzgsNyArMTgxLDcgQEAgZnVuY3Rpb24gY3JlYXRlVGVzdEdy
b3VwKHRhc2tfbmFtZT0nY3VzdG9tIHRhc2snKSB7CiAgICAgfSk7CiB9CiAKLWFzeW5jIGZ1bmN0
aW9uIGNyZWF0ZVRlc3RHcm91cFdpdGhQYXRjaCgpCithc3luYyBmdW5jdGlvbiBjcmVhdGVUZXN0
R3JvdXBXaXRoUGF0Y2gocmVwZXRpdGlvblR5cGUgPSAnYWx0ZXJuYXRpbmcnKQogewogICAgIGNv
bnN0IHBhdGNoRmlsZSA9IGF3YWl0IFRlbXBvcmFyeUZpbGUubWFrZVRlbXBvcmFyeUZpbGUoJ3Bh
dGNoLmRhdCcsICdwYXRjaCBmaWxlJyk7CiAgICAgY29uc3Qgb3JpZ2luYWxQcml2aWxlZ2VkQVBJ
ID0gZ2xvYmFsLlByaXZpbGVnZWRBUEk7CkBAIC0xOTMsNyArMTk2LDcgQEAgYXN5bmMgZnVuY3Rp
b24gY3JlYXRlVGVzdEdyb3VwV2l0aFBhdGNoKCkKICAgICBzZXQxLnNldFJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQsICcxOTE2MjInLCB1cGxvYWRlZFBhdGNoRmlsZSk7CiAgICAgY29uc3Qg
c2V0MiA9IG5ldyBDdXN0b21Db21taXRTZXQ7CiAgICAgc2V0Mi5zZXRSZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0LCAnMTkxNjIyJyk7Ci0gICAgY29uc3QgdGFzayA9IGF3YWl0IFRlc3RHcm91
cC5jcmVhdGVXaXRoVGFzaygnY3VzdG9tIHRhc2snLCBQbGF0Zm9ybS5maW5kQnlJZChNb2NrRGF0
YS5zb21lUGxhdGZvcm1JZCgpKSwgc29tZVRlc3QsICdzb21lIGdyb3VwJywgMiwgJ2FsdGVybmF0
aW5nJywgW3NldDEsIHNldDJdKTsKKyAgICBjb25zdCB0YXNrID0gYXdhaXQgVGVzdEdyb3VwLmNy
ZWF0ZVdpdGhUYXNrKCdjdXN0b20gdGFzaycsIFBsYXRmb3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNv
bWVQbGF0Zm9ybUlkKCkpLCBzb21lVGVzdCwgJ3NvbWUgZ3JvdXAnLCAyLCByZXBldGl0aW9uVHlw
ZSwgW3NldDEsIHNldDJdKTsKIAogICAgIHJldHVybiBUZXN0R3JvdXAuZmluZEFsbEJ5VGFzayh0
YXNrLmlkKCkpWzBdOwogfQpAQCAtMjM5LDcgKzI0Miw2IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxk
Ym90JywgZnVuY3Rpb24gKCkgewogICAgICAgICBQcml2aWxlZ2VkQVBJLmNvbmZpZ3VyZSgndGVz
dCcsICdwYXNzd29yZCcpOwogICAgIH0pOwogCi0KICAgICBpdCgnc2hvdWxkIG5vdCBzY2hlZHVs
ZSBvbiBhbm90aGVyIGJ1aWxkZXIgaWYgdGhlIGJ1aWxkIHdhcyBzY2hlZHVsZWQgb24gb25lIGJ1
aWxkZXIgYmVmb3JlJywgKCkgPT4gewogICAgICAgICBjb25zdCByZXF1ZXN0cyA9IE1vY2tSZW1v
dGVBUEkucmVxdWVzdHM7CiAgICAgICAgIGxldCBmaXJzdFRlc3RHcm91cDsKQEAgLTY4Myw2ICs2
ODUsNDA0IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbb3RoZXJX
ZWJraXRSb290XSk7CiAgICAgfSk7CiAKKyAgICBpdCgnc2hvdWxkIGJ1aWxkIHJvb3QgYnV0IGJv
dCBzY2hlZHVsZSB0ZXN0cyBmb3IgInBhaXJlZC1wYXJhbGxlbCIgdGVzdCBncm91cCBvbiB0cmln
Z2VyYWJsZSB0aGF0IG9ubHkgc2NoZWR1bGVzIHRlc3RzIGZvciAiYWx0ZXJuYXRpbmciIGFuZCAi
c2VxdWVudGlhbCIgdGVzdCBncm91cHMnLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGNvbnN0IHJl
cXVlc3RzID0gTW9ja1JlbW90ZUFQSS5yZXF1ZXN0czsKKyAgICAgICAgbGV0IHN5bmNQcm9taXNl
OworICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IGF3YWl0IGNyZWF0ZVRyaWdnZXJhYmxlKGNv
bmZpZ1dpdGhPbmVUZXN0ZXJUd29CdWlsZGVycyhbCisgICAgICAgICAgICB7YnVpbGRlcnM6IFsn
YnVpbGRlci0xJ10sIHR5cGVzOiBbe3R5cGU6ICdzb21lJywgc3VwcG9ydGVkUmVwZXRpdGlvblR5
cGVzOiBbJ2FsdGVybmF0aW5nJywgJ3BhaXJlZC1wYXJhbGxlbCddfV0sIHBsYXRmb3JtczogWydz
b21lIHBsYXRmb3JtJ119XSkpOworICAgICAgICBjb25zdCBmaXJzdEJ1aWxkTnVtYmVyID0gMTIz
OworICAgICAgICBjb25zdCBzZWNvbmRCdWlsZE51bWJlciA9IDEyNDsKKyAgICAgICAgbGV0IHRl
c3RHcm91cCA9IGF3YWl0IGNyZWF0ZVRlc3RHcm91cFdpdGhQYXRjaCgncGFpcmVkLXBhcmFsbGVs
Jyk7CisKKyAgICAgICAgY29uc3QgdGFza0lkID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOworICAg
ICAgICBsZXQgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBv
c2l0b3J5SWQoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpLmxlbmd0aCwgNik7CisKKyAgICAgICAgbGV0IGJ1aWxkUmVxdWVzdCA9IHRlc3RH
cm91cC5idWlsZFJlcXVlc3RzKClbMF07CisgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNC
dWlsZCgpKTsKKyAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5n
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCks
IG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rl
c2NyaXB0aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAgICAgICAgbGV0IGNvbW1pdFNldCA9IGJ1aWxkUmVx
dWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBsZXQgd2Vi
a2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CisgICAgICAg
IGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RG
aWxlcygpLCBbXSk7CisKKyAgICAgICAgbGV0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKVsxXTsKKyAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CisgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwo
KSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKworICAgICAg
ICBsZXQgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290
RmlsZXMoKSwgW10pOworCisgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5
bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90
QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CisgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKKyAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDMpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKKyAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOworICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ290aGVyIGJ1aWxkZXInKSwge30pOworICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNik7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7Cisg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30pOworICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycs
ICdPSycpOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQn
OiAnMScsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKKyAg
ICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICd3ay1wYXRjaCc6IFJlbW90ZUFQSS51cmwo
Jy9hcGkvdXBsb2FkZWQtZmlsZS8xLmRhdCcpLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snLCAnYnVp
bGQtd2snOiB0cnVlLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzog
J2ZvcmNlLWFiLWJ1aWxkcyd9fSk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAxMCk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOworICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLAorICAgICAgICAgICAgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVp
bGRlcicpLCBidWlsZFJlcXVlc3RJZDogMX0pKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhl
ciBidWlsZGVyJyksIHt9KTsKKyAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEz
KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywg
TW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CisgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksCisgICAgICAgICAgICBNb2NrRGF0YS5y
dW5uaW5nQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBi
dWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZE51bWJlcjogZmlyc3RCdWlsZE51bWJl
ciwgc3RhdHVzRGVzY3JpcHRpb246ICdCdWlsZGluZyBXZWJLaXQnfSkpOworICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOworICAgICAgICBhd2FpdCBzeW5jUHJv
bWlzZTsKKworICAgICAgICBsZXQgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZv
clRhc2sodGFza0lkLCB0cnVlKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdy
b3Vwcy5sZW5ndGgsIDEpOworICAgICAgICB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOworICAg
ICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRv
cnlJZCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKCkubGVuZ3RoLCA2KTsKKworICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpWzBdOworICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7
CisgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0
YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksICdCdWlsZGluZyBXZWJLaXQn
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51
bGwpOworCisgICAgICAgIGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnko
d2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KTsKKyAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3Rh
bmNlb2YgVXBsb2FkZWRGaWxlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBh
dGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKworICAgICAgICBv
dGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CisgICAgICAg
IGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOworICAgICAgICBhc3NlcnQoIW90
aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlv
bigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxk
UmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29t
bWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworCisgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVzZXQoKTsKKyAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3lu
Y2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RC
dWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKKyAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOworICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMyk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VU
JywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOworICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CisgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1Vy
bCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVu
Z3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKKyAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0
YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAorICAgICAgICAgICAgTW9ja0Rh
dGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3Nv
bWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMSwgYnVpbGRUYWc6IGZpcnN0QnVpbGROdW1i
ZXIsIHN0YXR1c0Rlc2NyaXB0aW9uOiAnQ29tcGlsaW5nIFdURid9KSk7CisgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdvdGhlciBidWlsZGVyJywgMiksIHt9KTsKKyAgICAgICAgYXdhaXQgTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDkpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s2XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9
KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBN
b2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOworICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInKSwge30pOworICAgICAgICBhd2FpdCBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMTIpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s5XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAy
KSwge30pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAorICAgICAg
ICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJ
REZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMSwgYnVpbGRUYWc6IGZp
cnN0QnVpbGROdW1iZXIsIHN0YXR1c0Rlc2NyaXB0aW9uOiAnQ29tcGlsaW5nIFdURid9KSk7Cisg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CisgICAgICAgIGF3
YWl0IHN5bmNQcm9taXNlOworCisgICAgICAgIGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2so
dGFza0lkLCB0cnVlKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOworICAgICAgICB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOworICAgICAgICB3
ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgp
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCku
bGVuZ3RoLCA2KTsKKworICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpWzBdOworICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAg
ICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0
dXNVcmwoJ3NvbWUgYnVpbGRlcicsIGZpcnN0QnVpbGROdW1iZXIpKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCAnQ29tcGlsaW5n
IFdURicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CisKKyAgICAgICAgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOworICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2gg
aW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Vi
a2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworCisgICAg
ICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKKyAg
ICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAgICAgIGFzc2Vy
dCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2Ny
aXB0aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKworICAgICAgICBvdGhlckNvbW1pdFNldCA9IG90aGVy
QnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJDb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0
U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisKKyAgICAgICAgYXdh
aXQgdXBsb2FkUm9vdChwYXJzZUludChidWlsZFJlcXVlc3QuaWQoKSksIGZpcnN0QnVpbGROdW1i
ZXIpOworCisgICAgICAgIHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNr
KHRhc2tJZCwgdHJ1ZSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMu
bGVuZ3RoLCAxKTsKKyAgICAgICAgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKKyAgICAgICAg
d2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQo
KSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygp
Lmxlbmd0aCwgNik7CisKKyAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVx
dWVzdHMoKVswXTsKKyAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOworICAg
ICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5z
dGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIGZpcnN0QnVpbGROdW1iZXIpKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCAnQ29tcGls
aW5nIFdURicpOworICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQo
KSwgbnVsbCk7CisKKyAgICAgICAgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0
LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOworICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2gg
aW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Vi
a2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICBsZXQgd2Via2l0Um9v
dCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOworICAgICAgICBhc3NlcnQo
d2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsK
KworICAgICAgICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClb
MV07CisgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOworICAgICAg
ICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwg
bnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0
dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAgICAgICAgb3RoZXJDb21taXRTZXQg
PSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIy
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworCisgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKKyAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2Vy
YWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Cisg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0Rh
dGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygp
KTsKKyAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOworICAgICAgICBhd2FpdCBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwg
e30pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcs
IE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CisgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CisgICAgICAgIGF3YWl0IE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywg
MiksIHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAorICAgICAg
ICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVy
SURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkVGFnOiBm
aXJzdEJ1aWxkTnVtYmVyfSkpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcics
IDIpLCB7fSk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
KworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIv
Zm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOworICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMicsICdqc29ucnBjJzogJzIuMCcs
ICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKKyAgICAgICAgICAgICAgICB7J3drJzogJzE5
MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Ut
YWItYnVpbGRzJywgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXdrJzogdHJ1ZX19KTsK
KyAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBi
dWlsZGVyJyksIHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
OV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9
KTsKKyAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSBidWlsZGVyJywgMiksIHsKKyAgICAgICAgICAgICdidWlsZHMnOiBbCisgICAgICAgICAg
ICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxkRGF0YSh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWls
ZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDIsIGJ1aWxkVGFn
OiBzZWNvbmRCdWlsZE51bWJlcn0pLAorICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVk
QnVpbGREYXRhKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVp
bGRlcicpLCBidWlsZFJlcXVlc3RJZDogMSwgYnVpbGRUYWc6IGZpcnN0QnVpbGROdW1iZXJ9KV0K
KyAgICAgICAgfSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEy
XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7
fSk7CisgICAgICAgIGF3YWl0IHN5bmNQcm9taXNlOworCisgICAgICAgIGF3YWl0IFRlc3RHcm91
cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBz
WzBdOworICAgICAgICB3ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtp
dFJlcG9zaXRvcnlJZCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5i
dWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKworICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0
R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOworICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0Lmlz
QnVpbGQoKSk7CisgICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxl
dGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJs
KCksIE1vY2tEYXRhLnN0YXR1c1VybCgnc29tZSBidWlsZGVyJywgZmlyc3RCdWlsZE51bWJlcikp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0
aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CisKKyAgICAgICAgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNl
dCgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVw
b3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0
U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOworICAgICAgICBhc3NlcnQod2Via2l0UGF0
Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwo
d2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICB3ZWJraXRSb290
ID0gY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CisgICAgICAgIGFzc2VydCh3
ZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHdlYmtpdFJvb3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOwor
CisgICAgICAgIG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsx
XTsKKyAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAgICAg
IGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBN
b2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIHNlY29uZEJ1aWxkTnVtYmVyKSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlw
dGlvbigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1
aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
Q29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
d2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICBhd2FpdCB1
cGxvYWRSb290KHBhcnNlSW50KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAxMjQpOworCisgICAg
ICAgIHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1
ZSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKKyAgICAgICAgd2Via2l0ID0gUmVw
b3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CisKKyAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsK
KyAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOworICAgICAgICBhc3NlcnQo
IWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3Nv
bWUgYnVpbGRlcicsIGZpcnN0QnVpbGROdW1iZXIpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKKyAgICAgICAgYXNz
ZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworCisgICAgICAgIGNv
bW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicp
OworICAgICAgICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Vi
a2l0KTsKKyAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxl
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdw
YXRjaC5kYXQnKTsKKyAgICAgICAgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpOworICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9h
ZGVkRmlsZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1l
KCksICdyb290MTIzLmRhdCcpOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5h
bGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKKworICAgICAgICBvdGhlckJ1aWxkUmVxdWVz
dCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CisgICAgICAgIGFzc2VydChvdGhlckJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOworICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlcicsIHNlY29uZEJ1aWxkTnVtYmVyKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKKyAgICAgICAg
YXNzZXJ0Lm5vdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAg
ICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhl
ckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGNv
bnN0IG90aGVyV2Via2l0Um9vdCA9IG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdl
YmtpdCk7CisgICAgICAgIGFzc2VydChvdGhlcldlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRl
ZEZpbGUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJXZWJraXRSb290LmZpbGVu
YW1lKCksICdyb290MTI0LmRhdCcpOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29t
bWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbb3RoZXJXZWJraXRSb290XSk7CisKKyAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXNldCgpOworICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmlu
aXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWls
ZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOworICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAzKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0s
ICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7Cisg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0Rh
dGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKKyAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKKyAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDYpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sz
XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30p
OworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1v
Y2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHsKKyAgICAgICAgJ2J1
aWxkcyc6IFsKKyAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZGVy
SWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVl
c3RJZDogMiwgYnVpbGRUYWc6IHNlY29uZEJ1aWxkTnVtYmVyfSksCisgICAgICAgICAgICBNb2Nr
RGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JO
YW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkVGFnOiBmaXJzdEJ1
aWxkTnVtYmVyfSldCisgICAgICAgIH0pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVp
bGRlcicsIDIpLCB7fSk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsK
KyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CisgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1
aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhl
ciBidWlsZGVyJyksIHt9KTsKKyAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEy
KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKKyAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwgeworICAgICAgICAgICAgJ2J1aWxkcyc6
IFsKKyAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRlcklk
OiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0
SWQ6IDIsIGJ1aWxkVGFnOiBzZWNvbmRCdWlsZE51bWJlcn0pLAorICAgICAgICAgICAgICAgIE1v
Y2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZv
ck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMSwgYnVpbGRUYWc6IGZpcnN0
QnVpbGROdW1iZXJ9KV0KKyAgICAgICAgfSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIg
YnVpbGRlcicsIDIpLCB7fSk7CisgICAgICAgIGF3YWl0IHN5bmNQcm9taXNlOworCisgICAgICAg
IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgdGVzdEdyb3Vw
ID0gdGVzdEdyb3Vwc1swXTsKKyAgICAgICAgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChN
b2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisKKyAgICAgICAgYnVpbGRS
ZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsyXTsKKyAgICAgICAgYXNzZXJ0KGJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICB9KTsKKwogICAgIGl0KCdzaG91
bGQgc2NoZWR1bGUgYSBidWlsZCB0byBidWlsZCBhIHBhdGNoJywgKCkgPT4gewogICAgICAgICBj
b25zdCByZXF1ZXN0cyA9IE1vY2tSZW1vdGVBUEkucmVxdWVzdHM7CiAgICAgICAgIGxldCB0cmln
Z2VyYWJsZTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9i
dWlsZGJvdC1zeW5jZXIuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVp
bGRib3Qtc3luY2VyLmpzCmluZGV4IDllYjhjNmM5MWFmNTBmYzIwMjA2NmRlNWM4MmM0MWQ5YjRk
NDA5ZWMuLjAyNTk5NjJiYzZiZWYwODM1N2EzN2M3NjZiMGQ5ODcxNzZjNDZjM2EgMTAwNjQ0Ci0t
LSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMK
KysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5q
cwpAQCAtNjksNiArNjksNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgIHRoaXMu
X3dvcmtlclByb3BlcnR5TmFtZSA9IGNvbW1vbkNvbmZpZ3VyYXRpb25zLndvcmtlckFyZ3VtZW50
OwogICAgICAgICB0aGlzLl9wbGF0Zm9ybVByb3BlcnR5TmFtZSA9IGNvbW1vbkNvbmZpZ3VyYXRp
b25zLnBsYXRmb3JtQXJndW1lbnQ7CiAgICAgICAgIHRoaXMuX2J1aWxkUmVxdWVzdFByb3BlcnR5
TmFtZSA9IGNvbW1vbkNvbmZpZ3VyYXRpb25zLmJ1aWxkUmVxdWVzdEFyZ3VtZW50OworICAgICAg
ICB0aGlzLl9yZXBldGl0aW9uVHlwZXNGb3JTY2hlZHVsaW5nID0gY29tbW9uQ29uZmlndXJhdGlv
bnMucmVwZXRpdGlvblR5cGVzRm9yU2NoZWR1bGluZzsKICAgICAgICAgdGhpcy5fYnVpbGRlck5h
bWUgPSBvYmplY3QuYnVpbGRlcjsKICAgICAgICAgdGhpcy5fYnVpbGRlcklEID0gb2JqZWN0LmJ1
aWxkZXJJRDsKICAgICAgICAgdGhpcy5fd29ya2VyTGlzdCA9IG9iamVjdC53b3JrZXJMaXN0OwpA
QCAtODIsMTMgKzgzLDE1IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAvLyBCdWlsZGJv
dCByZXN1bHQgY29kZXM6IGh0dHBzOi8vZG9jcy5idWlsZGJvdC5uZXQvbGF0ZXN0L2RldmVsb3Bl
ci9yZXN1bHRzLmh0bWwKICAgICBsYXN0Q29tcGxldGVkQnVpbGRTdWNjZXNzZnVsKCkgeyByZXR1
cm4gIXRoaXMuX2xhc3RDb21wbGV0ZWRCdWlsZCB8fCAhdGhpcy5fbGFzdENvbXBsZXRlZEJ1aWxk
LnJlc3VsdCgpIH0KIAotICAgIGFkZFRlc3RDb25maWd1cmF0aW9uKHRlc3QsIHBsYXRmb3JtLCBw
cm9wZXJ0aWVzVGVtcGxhdGUpCisgICAgYWRkVGVzdENvbmZpZ3VyYXRpb24odGVzdCwgcGxhdGZv
cm0sIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcywgcHJvcGVydGllc1RlbXBsYXRlKQogICAgIHsK
ICAgICAgICAgYXNzZXJ0KHRlc3QgaW5zdGFuY2VvZiBUZXN0KTsKICAgICAgICAgYXNzZXJ0KHBs
YXRmb3JtIGluc3RhbmNlb2YgUGxhdGZvcm0pOworICAgICAgICBhc3NlcnQoQXJyYXkuaXNBcnJh
eShzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMpKTsKKyAgICAgICAgYXNzZXJ0KHN1cHBvcnRlZFJl
cGV0aXRpb25UeXBlcy5ldmVyeShyZXBldGl0aW9uVHlwZSA9PiBUcmlnZ2VyYWJsZUNvbmZpZ3Vy
YXRpb24uaXNWYWxpZFJlcGV0aXRpb25UeXBlKHJlcGV0aXRpb25UeXBlKSkpOwogICAgICAgICBh
c3NlcnQodGhpcy5fdHlwZSA9PSBudWxsIHx8IHRoaXMuX3R5cGUgPT0gJ3Rlc3RlcicpOwogICAg
ICAgICB0aGlzLl90eXBlID0gJ3Rlc3Rlcic7Ci0gICAgICAgIHRoaXMuX2NvbmZpZ3VyYXRpb25z
LnB1c2goe3Rlc3QsIHBsYXRmb3JtLCBwcm9wZXJ0aWVzVGVtcGxhdGV9KTsKKyAgICAgICAgdGhp
cy5fY29uZmlndXJhdGlvbnMucHVzaCh7dGVzdCwgcGxhdGZvcm0sIHN1cHBvcnRlZFJlcGV0aXRp
b25UeXBlcywgcHJvcGVydGllc1RlbXBsYXRlfSk7CiAgICAgfQogICAgIHRlc3RDb25maWd1cmF0
aW9ucygpIHsgcmV0dXJuIHRoaXMuX3R5cGUgPT0gJ3Rlc3RlcicgPyB0aGlzLl9jb25maWd1cmF0
aW9ucyA6IFtdOyB9CiAKQEAgLTEwNyw3ICsxMTAsMTUgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIg
ewogCiAgICAgbWF0Y2hlc0NvbmZpZ3VyYXRpb24ocmVxdWVzdCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiB0aGlzLl9jb25maWd1cmF0aW9ucy5zb21lKChjb25maWcpID0+IGNvbmZpZy5wbGF0Zm9y
bSA9PSByZXF1ZXN0LnBsYXRmb3JtKCkgJiYgY29uZmlnLnRlc3QgPT0gcmVxdWVzdC50ZXN0KCkp
OworICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlndXJhdGlvbnMuc29tZSgoY29uZmlnKSA9PiB7
CisgICAgICAgICAgICBpZiAoY29uZmlnLnBsYXRmb3JtICE9IHJlcXVlc3QucGxhdGZvcm0oKSB8
fCBjb25maWcudGVzdCAhPSByZXF1ZXN0LnRlc3QoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgICAgICBpZiAoIXRoaXMuaXNUZXN0ZXIoKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIGNvbnN0IHRlc3RHcm91cFJlcGV0aXRpb25UeXBl
ID0gcmVxdWVzdC50ZXN0R3JvdXAoKS5yZXBldGl0aW9uVHlwZSgpOworICAgICAgICAgICAgcmV0
dXJuIGNvbmZpZy5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMuaW5jbHVkZXModGVzdEdyb3VwUmVw
ZXRpdGlvblR5cGUpCisgICAgICAgICAgICAgICAgJiYgdGhpcy5fcmVwZXRpdGlvblR5cGVzRm9y
U2NoZWR1bGluZy5pbmNsdWRlcyh0ZXN0R3JvdXBSZXBldGl0aW9uVHlwZSk7CisgICAgICAgIH0p
OwogICAgIH0KIAogICAgIHNjaGVkdWxlUmVxdWVzdChuZXdSZXF1ZXN0LCByZXF1ZXN0c0luR3Jv
dXAsIHdvcmtlck5hbWUpCkBAIC0zNzAsNiArMzgxLDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIg
ewogICAgICAgICAgICAgd29ya2VyQXJndW1lbnQ6IGNvbmZpZy53b3JrZXJBcmd1bWVudCwKICAg
ICAgICAgICAgIGJ1aWxkUmVxdWVzdEFyZ3VtZW50OiBjb25maWcuYnVpbGRSZXF1ZXN0QXJndW1l
bnQsCiAgICAgICAgICAgICBwbGF0Zm9ybUFyZ3VtZW50OiBjb25maWcucGxhdGZvcm1Bcmd1bWVu
dCwKKyAgICAgICAgICAgIHJlcGV0aXRpb25UeXBlc0ZvclNjaGVkdWxpbmc6IGNvbmZpZy5yZXBl
dGl0aW9uVHlwZXNGb3JTY2hlZHVsaW5nLAogICAgICAgICB9OwogCiAgICAgICAgIGNvbnN0IHN5
bmNlckJ5QnVpbGRlciA9IG5ldyBNYXA7CkBAIC0zODUsNyArMzk3LDEyIEBAIGNsYXNzIEJ1aWxk
Ym90U3luY2VyIHsKICAgICAgICAgYXNzZXJ0KEFycmF5LmlzQXJyYXkoY29uZmlnWyd0ZXN0Q29u
ZmlndXJhdGlvbnMnXSksIGBUaGUgdGVzdCBjb25maWd1cmF0aW9uIG11c3QgYmUgYW4gYXJyYXlg
KTsKICAgICAgICAgdGhpcy5fcmVzb2x2ZUJ1aWxkZXJzV2l0aFBsYXRmb3JtcygndGVzdCcsIGNv
bmZpZ1sndGVzdENvbmZpZ3VyYXRpb25zJ10sIGJ1aWxkZXJzLCBidWlsZGVyTmFtZVRvSURNYXAp
LmZvckVhY2goKGVudHJ5LCBjb25maWd1cmF0aW9uSW5kZXgpID0+IHsKICAgICAgICAgICAgIGFz
c2VydChBcnJheS5pc0FycmF5KGVudHJ5Wyd0eXBlcyddKSwgYFRoZSB0ZXN0IGNvbmZpZ3VyYXRp
b24gJHtjb25maWd1cmF0aW9uSW5kZXh9IGRvZXMgbm90IHNwZWNpZnkgInR5cGVzIiBhcyBhbiBh
cnJheWApOwotICAgICAgICAgICAgZm9yIChjb25zdCB0eXBlIG9mIGVudHJ5Wyd0eXBlcyddKSB7
CisgICAgICAgICAgICBmb3IgKGxldCB0eXBlIG9mIGVudHJ5Wyd0eXBlcyddKSB7CisgICAgICAg
ICAgICAgICAgbGV0IHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcyA9IGNvbmZpZy5yZXBldGl0aW9u
VHlwZXNGb3JTY2hlZHVsaW5nOworICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdHlwZSAhPSAn
c3RyaW5nJyAmJiB0eXBlLmhhc093blByb3BlcnR5KCd0eXBlJykgJiYgdHlwZS5oYXNPd25Qcm9w
ZXJ0eSgnc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzJykpIHsKKyAgICAgICAgICAgICAgICAgICAg
c3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzID0gdHlwZS5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM7
CisgICAgICAgICAgICAgICAgICAgIHR5cGUgPSB0eXBlLnR5cGU7CisgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgIGNvbnN0IHR5cGVDb25maWcgPSB0aGlzLl92YWxpZGF0ZUFuZE1l
cmdlQ29uZmlnKHt9LCBlbnRyeS5idWlsZGVyQ29uZmlnKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQodHlwZXNbdHlwZV0sIGAiJHt0eXBlfSIgaXMgbm90IGEgdmFsaWQgdHlwZSBpbiB0aGUgY29u
ZmlndXJhdGlvbmApOwogICAgICAgICAgICAgICAgIHRoaXMuX3ZhbGlkYXRlQW5kTWVyZ2VDb25m
aWcodHlwZUNvbmZpZywgdHlwZXNbdHlwZV0pOwpAQCAtMzk0LDcgKzQxMSw3IEBAIGNsYXNzIEJ1
aWxkYm90U3luY2VyIHsKICAgICAgICAgICAgICAgICBjb25zdCB0ZXN0ID0gVGVzdC5maW5kQnlQ
YXRoKHRlc3RQYXRoKTsKICAgICAgICAgICAgICAgICBhc3NlcnQodGVzdCwgYCIke3Rlc3RQYXRo
LmpvaW4oJyIsICInKX0iIGlzIG5vdCBhIHZhbGlkIHRlc3QgcGF0aCBpbiB0aGUgdGVzdCBjb25m
aWd1cmF0aW9uICR7Y29uZmlndXJhdGlvbkluZGV4fWApOwogCi0gICAgICAgICAgICAgICAgZW5z
dXJlQnVpbGRib3RTeW5jZXIoZW50cnkuYnVpbGRlckNvbmZpZykuYWRkVGVzdENvbmZpZ3VyYXRp
b24odGVzdCwgZW50cnkucGxhdGZvcm0sIHR5cGVDb25maWcucHJvcGVydGllcyk7CisgICAgICAg
ICAgICAgICAgZW5zdXJlQnVpbGRib3RTeW5jZXIoZW50cnkuYnVpbGRlckNvbmZpZykuYWRkVGVz
dENvbmZpZ3VyYXRpb24odGVzdCwgZW50cnkucGxhdGZvcm0sIHN1cHBvcnRlZFJlcGV0aXRpb25U
eXBlcywgdHlwZUNvbmZpZy5wcm9wZXJ0aWVzKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSk7
CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJv
dC10cmlnZ2VyYWJsZS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWls
ZGJvdC10cmlnZ2VyYWJsZS5qcwppbmRleCA1MjU3NDQyMjlkYjYzYTBkMTUxMWNlNGIwMDc3OTA5
ZTkxMzQzNGFkLi42ZWEwMzM1ZTMzODM1ZjAyMGJiZjY0ZTU5MWQ5YTMyOTMzMDdlMzZlIDEwMDY0
NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dl
cmFibGUuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90
LXRyaWdnZXJhYmxlLmpzCkBAIC01Niw3ICs1Niw3IEBAIGNsYXNzIEJ1aWxkYm90VHJpZ2dlcmFi
bGUgewogICAgICAgICBsZXQgcmVwb3NpdG9yeUdyb3VwcyA9IFtdOwogICAgICAgICBmb3IgKGNv
bnN0IHN5bmNlciBvZiB0aGlzLl9zeW5jZXJzKSB7CiAgICAgICAgICAgICBmb3IgKGNvbnN0IGNv
bmZpZyBvZiBzeW5jZXIudGVzdENvbmZpZ3VyYXRpb25zKCkpIHsKLSAgICAgICAgICAgICAgICBj
b25zdCBlbnRyeSA9IHt0ZXN0OiBjb25maWcudGVzdC5pZCgpLCBwbGF0Zm9ybTogY29uZmlnLnBs
YXRmb3JtLmlkKCl9OworICAgICAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0ge3Rlc3Q6IGNvbmZp
Zy50ZXN0LmlkKCksIHBsYXRmb3JtOiBjb25maWcucGxhdGZvcm0uaWQoKSwgc3VwcG9ydGVkUmVw
ZXRpdGlvblR5cGVzOiBjb25maWcuc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzfTsKICAgICAgICAg
ICAgICAgICBtYXAuc2V0KGVudHJ5LnRlc3QgKyAnLScgKyBlbnRyeS5wbGF0Zm9ybSwgZW50cnkp
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgLy8gRklYTUU6IE1vdmUgQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcgaGVyZSBhbmQgc3RvcmUgcmVwb3NpdG9yeSBncm91cHMgZGlyZWN0bHku
CkBAIC04Myw2ICs4Myw4IEBAIGNsYXNzIEJ1aWxkYm90VHJpZ2dlcmFibGUgewogICAgICAgICB0
aGlzLl9sb2dnZXIubG9nKGBGZXRjaGluZyBidWlsZCByZXF1ZXN0cyBmb3IgJHt0aGlzLl9uYW1l
fS4uLmApOwogCiAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdHMgPSBhd2FpdCBCdWlsZFJlcXVl
c3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZSh0aGlzLl9uYW1lKTsKKyAgICAgICAgY29uc3QgdGVzdEdy
b3VwSWRzID0gbmV3IFNldChidWlsZFJlcXVlc3RzLm1hcChyZXF1ZXN0ID0+IHJlcXVlc3QudGVz
dEdyb3VwSWQoKSkpOworICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChBcnJheS5mcm9tKHRlc3RH
cm91cElkcykubWFwKHRlc3RHcm91cElkID0+IFRlc3RHcm91cC5mZXRjaEJ5SWQodGVzdEdyb3Vw
SWQsIC8qIGlnbm9yZUNhY2hlICovIHRydWUpKSk7CiAgICAgICAgIGNvbnN0IHZhbGlkUmVxdWVz
dHMgPSB0aGlzLl92YWxpZGF0ZVJlcXVlc3RzKGJ1aWxkUmVxdWVzdHMpOwogICAgICAgICBjb25z
dCBidWlsZFJlcXVlc3RzQnlHcm91cCA9IEJ1aWxkYm90VHJpZ2dlcmFibGUuX3Rlc3RHcm91cE1h
cEZvckJ1aWxkUmVxdWVzdHMoYnVpbGRSZXF1ZXN0cyk7CiAgICAgICAgIGxldCB1cGRhdGVzID0g
YXdhaXQgdGhpcy5fcHVsbEJ1aWxkYm90T25BbGxTeW5jZXJzKGJ1aWxkUmVxdWVzdHNCeUdyb3Vw
KTsKQEAgLTkwLDcgKzkyLDYgQEAgY2xhc3MgQnVpbGRib3RUcmlnZ2VyYWJsZSB7CiAgICAgICAg
IHRoaXMuX2xvZ2dlci5sb2coJ1NjaGVkdWxpbmcgYnVpbGRzJyk7CiAgICAgICAgIGNvbnN0IHRl
c3RHcm91cExpc3QgPSBBcnJheS5mcm9tKGJ1aWxkUmVxdWVzdHNCeUdyb3VwLnZhbHVlcygpKS5z
b3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBhLmdyb3VwT3JkZXIgLSBiLmdyb3VwT3JkZXI7
IH0pOwogCi0gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKEFycmF5LmZyb20oYnVpbGRSZXF1ZXN0
c0J5R3JvdXAua2V5cygpKS5tYXAodGVzdEdyb3VwSWQgPT4gVGVzdEdyb3VwLmZldGNoQnlJZCh0
ZXN0R3JvdXBJZCwgLyogaWdub3JlQ2FjaGUgKi8gdHJ1ZSkpKTsKICAgICAgICAgZm9yIChjb25z
dCBncm91cCBvZiB0ZXN0R3JvdXBMaXN0KSB7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0g
dGhpcy5fbmV4dFJlcXVlc3RJbkdyb3VwKGdyb3VwLCB1cGRhdGVzKTsKICAgICAgICAgICAgIGlm
ICghdmFsaWRSZXF1ZXN0cy5oYXMocmVxdWVzdCkpCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdG9vbHMvanMvdjMtbW9kZWxzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3Rvb2xzL2pzL3YzLW1vZGVscy5qcwppbmRleCA0YmViYWJkNWFhNzIxNDUzZGU3ZGU3Mzc5
NzQ5Zjg4MGExNzRjNTFhLi4xMmE5YTA2YzJhMDVlYWI5ZDM1MWY5ZjM2MzgwY2JhNjIxM2ZmNjNl
IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvdjMtbW9kZWxz
LmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy92My1tb2RlbHMuanMK
QEAgLTM3LDYgKzM3LDcgQEAgaW1wb3J0RnJvbVYzKCdtb2RlbHMvdGVzdC1ncm91cC5qcycsICdU
ZXN0R3JvdXAnKTsKIGltcG9ydEZyb21WMygnbW9kZWxzL3RpbWUtc2VyaWVzLmpzJywgJ1RpbWVT
ZXJpZXMnKTsKIGltcG9ydEZyb21WMygnbW9kZWxzL3RyaWdnZXJhYmxlLmpzJywgJ1RyaWdnZXJh
YmxlJyk7CiBpbXBvcnRGcm9tVjMoJ21vZGVscy90cmlnZ2VyYWJsZS5qcycsICdUcmlnZ2VyYWJs
ZVJlcG9zaXRvcnlHcm91cCcpOworaW1wb3J0RnJvbVYzKCdtb2RlbHMvdHJpZ2dlcmFibGUuanMn
LCAnVHJpZ2dlcmFibGVDb25maWd1cmF0aW9uJyk7CiBpbXBvcnRGcm9tVjMoJ21vZGVscy91cGxv
YWRlZC1maWxlLmpzJywgJ1VwbG9hZGVkRmlsZScpOwogCiBpbXBvcnRGcm9tVjMoJ2luc3RydW1l
bnRhdGlvbi5qcycsICdJbnN0cnVtZW50YXRpb24nKTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qcyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qcwpp
bmRleCAwMzQyYWMwMWE0YWY1ZGJjYzE1Njk2MjJhMmRiMWQ2NWE3YzI2MjczLi5hYWZmYzQ0MmNk
OWU5ZTc2MTMxNjYxOWFmNDVjYTgxM2Q4NWU1NWY0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMKKysrIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpz
CkBAIC0xNiw2ICsxNiw3IEBAIGZ1bmN0aW9uIHNhbXBsZWlPU0NvbmZpZygpCiAgICAgcmV0dXJu
IHsKICAgICAgICAgJ3dvcmtlckFyZ3VtZW50JzogJ3dvcmtlcm5hbWUnLAogICAgICAgICAnYnVp
bGRSZXF1ZXN0QXJndW1lbnQnOiAnYnVpbGRfcmVxdWVzdF9pZCcsCisgICAgICAgICdyZXBldGl0
aW9uVHlwZXNGb3JTY2hlZHVsaW5nJzogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ10sCiAg
ICAgICAgICdyZXBvc2l0b3J5R3JvdXBzJzogewogICAgICAgICAgICAgJ2lvcy1zdm4td2Via2l0
JzogewogICAgICAgICAgICAgICAgICdyZXBvc2l0b3JpZXMnOiB7J1dlYktpdCc6IHt9LCAnaU9T
Jzoge319LApAQCAtNzAsNiArNzEsNyBAQCBmdW5jdGlvbiBzYW1wbGVpT1NDb25maWdXaXRoRXhw
YW5zaW9ucygpCiAgICAgcmV0dXJuIHsKICAgICAgICAgInRyaWdnZXJhYmxlTmFtZSI6ICJidWls
ZC13ZWJraXQtaW9zIiwKICAgICAgICAgImJ1aWxkUmVxdWVzdEFyZ3VtZW50IjogImJ1aWxkLXJl
cXVlc3QtaWQiLAorICAgICAgICAncmVwZXRpdGlvblR5cGVzRm9yU2NoZWR1bGluZyc6IFsnYWx0
ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddLAogICAgICAgICAicmVwb3NpdG9yeUdyb3VwcyI6IHsg
fSwKICAgICAgICAgInR5cGVzIjogewogICAgICAgICAgICAgImlwaG9uZS1wbHQiOiB7CkBAIC0x
MTgsNiArMTIwLDcgQEAgZnVuY3Rpb24gc21hbGxDb25maWd1cmF0aW9uKCkKIHsKICAgICByZXR1
cm4gewogICAgICAgICAnYnVpbGRSZXF1ZXN0QXJndW1lbnQnOiAnaWQnLAorICAgICAgICAncmVw
ZXRpdGlvblR5cGVzRm9yU2NoZWR1bGluZyc6IFsiYWx0ZXJuYXRpbmciLCAic2VxdWVudGlhbCJd
LAogICAgICAgICAncmVwb3NpdG9yeUdyb3Vwcyc6IHsKICAgICAgICAgICAgICdpb3Mtc3ZuLXdl
YmtpdCc6IHsKICAgICAgICAgICAgICAgICAncmVwb3NpdG9yaWVzJzogeydpT1MnOiB7fSwgJ1dl
YktpdCc6IHt9fSwKQEAgLTE0Niw2ICsxNDksNDEgQEAgZnVuY3Rpb24gc21hbGxDb25maWd1cmF0
aW9uKCkKICAgICB9OwogfQogCitmdW5jdGlvbiBzbWFsbENvbmZpZ3VyYXRpb25XaXRoQ3VzdG9t
UmVwZXRpdGlvblR5cGVzKCkKK3sKKyAgICByZXR1cm4geworICAgICAgICAnYnVpbGRSZXF1ZXN0
QXJndW1lbnQnOiAnaWQnLAorICAgICAgICAncmVwZXRpdGlvblR5cGVzRm9yU2NoZWR1bGluZyc6
IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddLAorICAgICAgICAncmVwb3NpdG9yeUdyb3Vw
cyc6IHsKKyAgICAgICAgICAgICdpb3Mtc3ZuLXdlYmtpdCc6IHsKKyAgICAgICAgICAgICAgICAn
cmVwb3NpdG9yaWVzJzogeydpT1MnOiB7fSwgJ1dlYktpdCc6IHt9fSwKKyAgICAgICAgICAgICAg
ICAndGVzdFByb3BlcnRpZXMnOiB7CisgICAgICAgICAgICAgICAgICAgICdvcyc6IHsncmV2aXNp
b24nOiAnaU9TJ30sCisgICAgICAgICAgICAgICAgICAgICd3ayc6IHsncmV2aXNpb24nOiAnV2Vi
S2l0J30KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAg
ICAgICd0eXBlcyc6IHsKKyAgICAgICAgICAgICdzb21lLXRlc3QnOiB7CisgICAgICAgICAgICAg
ICAgJ3Rlc3QnOiBbJ1NvbWUgdGVzdCddLAorICAgICAgICAgICAgfQorICAgICAgICB9LAorICAg
ICAgICAnYnVpbGRlcnMnOiB7CisgICAgICAgICAgICAnc29tZS1idWlsZGVyJzogeworICAgICAg
ICAgICAgICAgICdidWlsZGVyJzogJ3NvbWUgYnVpbGRlcicsCisgICAgICAgICAgICAgICAgJ3By
b3BlcnRpZXMnOiB7J2ZvcmNlc2NoZWR1bGVyJzogJ3NvbWUtYnVpbGRlci1Gb3JjZVNjaGVkdWxl
cid9CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgICd0ZXN0Q29uZmlndXJhdGlv
bnMnOiBbeworICAgICAgICAgICAgJ2J1aWxkZXJzJzogWydzb21lLWJ1aWxkZXInXSwKKyAgICAg
ICAgICAgICdwbGF0Zm9ybXMnOiBbJ1NvbWUgcGxhdGZvcm0nXSwKKyAgICAgICAgICAgICd0eXBl
cyc6IFsKKyAgICAgICAgICAgICAgICB7dHlwZTogJ3NvbWUtdGVzdCcsIHN1cHBvcnRlZFJlcGV0
aXRpb25UeXBlczogWydzZXF1ZW50aWFsJywgJ3BhaXJlZC1wYXJhbGxlbCddfQorICAgICAgICAg
ICAgXSwKKyAgICAgICAgfV0KKyAgICB9OworfQorCiBmdW5jdGlvbiBidWlsZGVyTmFtZVRvSURN
YXAoKQogewogICAgIHJldHVybiB7CkBAIC0xODQsMTAgKzIyMiwxMiBAQCBmdW5jdGlvbiBjcmVh
dGVTYW1wbGVCdWlsZFJlcXVlc3QocGxhdGZvcm0sIHRlc3QpCiAgICAgY29uc3QgaW9zMTNBNDUy
ID0gQ29tbWl0TG9nLmVuc3VyZVNpbmdsZXRvbignODg5MzAnLCB7J2lkJzogJzg4OTMwJywgJ3Rp
bWUnOiAwLCAncmVwb3NpdG9yeSc6IE1vY2tNb2RlbHMuaW9zLCAncmV2aXNpb24nOiAnMTNBNDUy
J30pOwogCiAgICAgY29uc3QgY29tbWl0U2V0ID0gQ29tbWl0U2V0LmVuc3VyZVNpbmdsZXRvbign
NDE5NycsIHtjdXN0b21Sb290czogW10sIHJldmlzaW9uSXRlbXM6IFt7Y29tbWl0OiB3ZWJraXQx
OTc0NjN9LCB7Y29tbWl0OiBzaGFyZWQxMTEyMzd9LCB7Y29tbWl0OiBpb3MxM0E0NTJ9XX0pOwor
ICAgIGNvbnN0IHRlc3RHcm91cCA9IFRlc3RHcm91cC5lbnN1cmVTaW5nbGV0b24oJzEyMycsIHt0
YXNrOiAnMTIzJywgY3JlYXRlZEF0OiAxNDU2OTMxODc0MDAwLCBoaWRkZW46IGZhbHNlLCBuZWVk
c05vdGlmaWNhdGlvbjogdHJ1ZSwgbWF5TmVlZE1vcmVSZXF1ZXN0czogZmFsc2UsCisgICAgICAg
IGluaXRpYWxSZXBldGl0aW9uQ291bnQ6IDMsIHJlcGV0aXRpb25UeXBlOiAnYWx0ZXJuYXRpbmcn
fSkKIAogICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZW5zdXJlU2luZ2xldG9uKCcxNjczMy0nICsg
cGxhdGZvcm0uaWQoKSwgeyd0cmlnZ2VyYWJsZSc6IE1vY2tNb2RlbHMudHJpZ2dlcmFibGUsCiAg
ICAgICAgIHJlcG9zaXRvcnlHcm91cDogTW9ja01vZGVscy5zdm5SZXBvc2l0b3J5R3JvdXAsCi0g
ICAgICAgICdjb21taXRTZXQnOiBjb21taXRTZXQsICdzdGF0dXMnOiAncGVuZGluZycsICdwbGF0
Zm9ybSc6IHBsYXRmb3JtLCAndGVzdCc6IHRlc3QsIG9yZGVyOiAwfSk7CisgICAgICAgICdjb21t
aXRTZXQnOiBjb21taXRTZXQsICdzdGF0dXMnOiAncGVuZGluZycsICdwbGF0Zm9ybSc6IHBsYXRm
b3JtLCAndGVzdCc6IHRlc3QsIG9yZGVyOiAwLCB0ZXN0R3JvdXAsIHRlc3RHcm91cElkOiB0ZXN0
R3JvdXAuaWQoKX0pOwogfQogCiBmdW5jdGlvbiBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3RXaXRo
UGF0Y2gocGxhdGZvcm0sIHRlc3QsIG9yZGVyKQpAQCAtNTM2LDYgKzU3NiwxNyBAQCBkZXNjcmli
ZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29u
ZmlndXJhdGlvbnNbMV0udGVzdCwgbnVsbCk7CiAgICAgICAgIH0pOwogCisgICAgICAgIGl0KCdz
aG91bGQgcGFyc2UgdGVzdCBjb25maWd1cmF0aW9ucyB3aXRoIGN1c3RvbSByZXBldGl0aW9uIHR5
cGUnLCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRp
b25XaXRoQ3VzdG9tUmVwZXRpdGlvblR5cGVzKCk7CisgICAgICAgICAgICBjb25zdCBzeW5jZXJz
ID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWls
ZGVyTmFtZVRvSURNYXAoKSk7CisgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc3luY2Vy
cy5sZW5ndGgsIDEpOworICAgICAgICAgICAgY29uc3Qgc3luY2VyID0gc3luY2Vyc1swXTsKKyAg
ICAgICAgICAgIGNvbnN0IHRlc3RDb25maWd1cmF0aW9ucyA9IHN5bmNlci50ZXN0Q29uZmlndXJh
dGlvbnMoKTsKKyAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0Q29uZmlndXJhdGlv
bnMubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGNvbnN0IHRlc3RDb25maWd1cmF0aW9uID0gdGVz
dENvbmZpZ3VyYXRpb25zWzBdOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh0ZXN0Q29u
ZmlndXJhdGlvbi5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMsIFsnc2VxdWVudGlhbCcsICdwYWly
ZWQtcGFyYWxsZWwnXSk7CisgICAgICAgIH0pOworCiAgICAgICAgIGl0KCdzaG91bGQgdGhyb3cg
d2hlbiBhIGJ1aWxkIGNvbmZpZ3VyYXRpb24gdXNlIHRoZSBzYW1lIGJ1aWxkZXIgYXMgYSB0ZXN0
IGNvbmZpZ3VyYXRpb24nLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+
IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzYW1wbGVpT1NDb25maWcoKTsKQEAg
LTExMDAsNyArMTE1MSw2IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAg
ICAgICAgfSk7CiAgICAgfSk7CiAKLQogICAgIGRlc2NyaWJlKCdCdWlsZGJvdEJ1aWxkRW50cnkn
LCAoKSA9PiB7CiAgICAgICAgIGl0KCdzaG91bGQgY3JlYXRlIEJ1aWxkYm90QnVpbGRFbnRyeSBm
b3IgcGVuZGluZyBidWlsZCcsICgpID0+IHsKICAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWls
ZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwg
YnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwpAQCAtMTczMiw1ICsxNzgyLDEzIEBAIGRlc2NyaWJl
KCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKKworICAg
ICAgICBpdCgnc2hvdWxkIG5vdCBzY2hlZHVsZSBhIGJ1aWxkIHJlcXVlc3QgaWYgcmVwZXRpdGlv
biB0eXBlIGlmIG5vdCBzdXBwb3J0ZWQgYnkgYnVpbGRib3Qgc3luY2VyJywgYXN5bmMgKCkgPT4g
eworICAgICAgICAgICAgY29uc3Qgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWco
TW9ja1JlbW90ZUFQSSwgc21hbGxDb25maWd1cmF0aW9uV2l0aEN1c3RvbVJlcGV0aXRpb25UeXBl
cygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMF07CisgICAgICAgICAgICBhd2FpdCBwdWxsQnVp
bGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwge30sIHt9KTsKKyAgICAgICAgICAgIGxldCByZXF1
ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLCBN
b2NrTW9kZWxzLnNvbWVUZXN0KTsKKyAgICAgICAgICAgIHN5bmNlci5zY2hlZHVsZVJlcXVlc3RJ
bkdyb3VwSWZBdmFpbGFibGUocmVxdWVzdCwgW3JlcXVlc3RdLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDApOworICAgICAgICB9KTsKICAgICB9KTsK
IH0pOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvbWVh
c3VyZW1lbnQtc2V0LWFuYWx5emVyLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3VuaXQtdGVzdHMvbWVhc3VyZW1lbnQtc2V0LWFuYWx5emVyLXRlc3RzLmpzCmluZGV4IDA5MDdh
MGIwMTZhMDUxNDgzNDdkY2IzZjQ3N2UyYTkyNTk4YWFmYmIuLjBlZDQyMzMxZjA5MWQ5NDI4NmU1
OGQyMWI3Y2QxMDVkNDZlNDM5ZTcgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy91bml0LXRlc3RzL21lYXN1cmVtZW50LXNldC1hbmFseXplci10ZXN0cy5qcworKysgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9tZWFzdXJlbWVudC1zZXQtYW5hbHl6ZXIt
dGVzdHMuanMKQEAgLTE5MSw3ICsxOTEsOCBAQCBkZXNjcmliZSgnTWVhc3VyZW1lbnRTZXRBbmFs
eXplcicsICgpID0+IHsKIAogICAgICAgICAgICAgVHJpZ2dlcmFibGUuZW5zdXJlU2luZ2xldG9u
KDQsIHtuYW1lOiAnc29tZS10cmlnZ2VyYWJsZScsCiAgICAgICAgICAgICAgICAgcmVwb3NpdG9y
eUdyb3VwczogW01vY2tNb2RlbHMub3NSZXBvc2l0b3J5R3JvdXAsIE1vY2tNb2RlbHMuc3ZuUmVw
b3NpdG9yeUdyb3VwLCBNb2NrTW9kZWxzLmdpdFJlcG9zaXRvcnlHcm91cCwgTW9ja01vZGVscy5z
dm5SZXBvc2l0b3J5V2l0aE93bmVkUmVwb3NpdG9yeUdyb3VwXSwKLSAgICAgICAgICAgICAgICBj
b25maWd1cmF0aW9uczogW3t0ZXN0OiBNb2NrTW9kZWxzLnNvbWVNZXRyaWMudGVzdCgpLCBwbGF0
Zm9ybTogTW9ja01vZGVscy5zb21lUGxhdGZvcm19XX0pOworICAgICAgICAgICAgICAgIGNvbmZp
Z3VyYXRpb25zOiBbe3Rlc3Q6IE1vY2tNb2RlbHMuc29tZU1ldHJpYy50ZXN0KCksIHBsYXRmb3Jt
OiBNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybSwKKyAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVk
UmVwZXRpdGlvblR5cGVzOiBNb2NrTW9kZWxzLnNvbWVUcmlnZ2FibGVDb25maWd1cmF0aW9uLnN1
cHBvcnRlZFJlcGV0aXRpb25UeXBlc31dfSk7CiAKICAgICAgICAgICAgIGNvbnN0IG1lYXN1cmVt
ZW50U2V0ID0gTWVhc3VyZW1lbnRTZXQuZmluZFNldChNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybS5p
ZCgpLCBNb2NrTW9kZWxzLnNvbWVNZXRyaWMuaWQoKSwgNTAwMCk7CiAgICAgICAgICAgICBjb25z
dCBsb2dnZXIgPSBtb2NrTG9nZ2VyKCk7CkBAIC0yNTEsNyArMjUyLDggQEAgZGVzY3JpYmUoJ01l
YXN1cmVtZW50U2V0QW5hbHl6ZXInLCAoKSA9PiB7CiAKICAgICAgICAgICAgIFRyaWdnZXJhYmxl
LmVuc3VyZVNpbmdsZXRvbig0LCB7bmFtZTogJ3NvbWUtdHJpZ2dlcmFibGUnLAogICAgICAgICAg
ICAgICAgIHJlcG9zaXRvcnlHcm91cHM6IFtNb2NrTW9kZWxzLm9zUmVwb3NpdG9yeUdyb3VwLCBN
b2NrTW9kZWxzLnN2blJlcG9zaXRvcnlHcm91cCwgTW9ja01vZGVscy5naXRSZXBvc2l0b3J5R3Jv
dXAsIE1vY2tNb2RlbHMuc3ZuUmVwb3NpdG9yeVdpdGhPd25lZFJlcG9zaXRvcnlHcm91cF0sCi0g
ICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbnM6IFt7dGVzdDogTW9ja01vZGVscy5zb21lTWV0
cmljLnRlc3QoKSwgcGxhdGZvcm06IE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtfV19KTsKKyAgICAg
ICAgICAgICAgICBjb25maWd1cmF0aW9uczogW3t0ZXN0OiBNb2NrTW9kZWxzLnNvbWVNZXRyaWMu
dGVzdCgpLCBwbGF0Zm9ybTogTW9ja01vZGVscy5zb21lUGxhdGZvcm0sCisgICAgICAgICAgICAg
ICAgICAgIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlczogTW9ja01vZGVscy5zb21lVHJpZ2dhYmxl
Q29uZmlndXJhdGlvbi5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXN9XX0pOwogCiAgICAgICAgICAg
ICBjb25zdCBtZWFzdXJlbWVudFNldCA9IE1lYXN1cmVtZW50U2V0LmZpbmRTZXQoTW9ja01vZGVs
cy5zb21lUGxhdGZvcm0uaWQoKSwgTW9ja01vZGVscy5zb21lTWV0cmljLmlkKCksIDUwMDApOwog
ICAgICAgICAgICAgY29uc3QgbG9nZ2VyID0gbW9ja0xvZ2dlcigpOwpAQCAtNDg0LDcgKzQ4Niw4
IEBAIGRlc2NyaWJlKCdNZWFzdXJlbWVudFNldEFuYWx5emVyJywgKCkgPT4gewogCiAgICAgICAg
ICAgICBUcmlnZ2VyYWJsZS5lbnN1cmVTaW5nbGV0b24oNCwge25hbWU6ICdzb21lLXRyaWdnZXJh
YmxlJywKICAgICAgICAgICAgICAgICByZXBvc2l0b3J5R3JvdXBzOiBbTW9ja01vZGVscy5vc1Jl
cG9zaXRvcnlHcm91cCwgTW9ja01vZGVscy5zdm5SZXBvc2l0b3J5R3JvdXAsIE1vY2tNb2RlbHMu
Z2l0UmVwb3NpdG9yeUdyb3VwLCBNb2NrTW9kZWxzLnN2blJlcG9zaXRvcnlXaXRoT3duZWRSZXBv
c2l0b3J5R3JvdXBdLAotICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25zOiBbe3Rlc3Q6IE1v
Y2tNb2RlbHMuc29tZU1ldHJpYy50ZXN0KCksIHBsYXRmb3JtOiBNb2NrTW9kZWxzLnNvbWVQbGF0
Zm9ybX1dfSk7CisgICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbnM6IFt7dGVzdDogTW9ja01v
ZGVscy5zb21lTWV0cmljLnRlc3QoKSwgcGxhdGZvcm06IE1vY2tNb2RlbHMuc29tZVBsYXRmb3Jt
LAorICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IE1vY2tNb2Rl
bHMuc29tZVRyaWdnYWJsZUNvbmZpZ3VyYXRpb24uc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzfV19
KTsKIAogICAgICAgICAgICAgY29uc3QgbWVhc3VyZW1lbnRTZXQgPSBNZWFzdXJlbWVudFNldC5m
aW5kU2V0KE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLmlkKCksIE1vY2tNb2RlbHMuc29tZU1ldHJp
Yy5pZCgpLCA1MDAwKTsKICAgICAgICAgICAgIGNvbnN0IGxvZ2dlciA9IG1vY2tMb2dnZXIoKTsK
QEAgLTU3Nyw3ICs1ODAsOCBAQCBkZXNjcmliZSgnTWVhc3VyZW1lbnRTZXRBbmFseXplcicsICgp
ID0+IHsKIAogICAgICAgICAgICAgVHJpZ2dlcmFibGUuZW5zdXJlU2luZ2xldG9uKDQsIHtuYW1l
OiAnc29tZS10cmlnZ2VyYWJsZScsCiAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeUdyb3Vwczog
W01vY2tNb2RlbHMub3NSZXBvc2l0b3J5R3JvdXAsIE1vY2tNb2RlbHMuc3ZuUmVwb3NpdG9yeUdy
b3VwLCBNb2NrTW9kZWxzLmdpdFJlcG9zaXRvcnlHcm91cCwgTW9ja01vZGVscy5zdm5SZXBvc2l0
b3J5V2l0aE93bmVkUmVwb3NpdG9yeUdyb3VwXSwKLSAgICAgICAgICAgICAgICBjb25maWd1cmF0
aW9uczogW3t0ZXN0OiBNb2NrTW9kZWxzLnNvbWVNZXRyaWMudGVzdCgpLCBwbGF0Zm9ybTogTW9j
a01vZGVscy5zb21lUGxhdGZvcm19XX0pOworICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25z
OiBbe3Rlc3Q6IE1vY2tNb2RlbHMuc29tZU1ldHJpYy50ZXN0KCksIHBsYXRmb3JtOiBNb2NrTW9k
ZWxzLnNvbWVQbGF0Zm9ybSwKKyAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkUmVwZXRpdGlv
blR5cGVzOiBNb2NrTW9kZWxzLnNvbWVUcmlnZ2FibGVDb25maWd1cmF0aW9uLnN1cHBvcnRlZFJl
cGV0aXRpb25UeXBlc31dfSk7CiAKICAgICAgICAgICAgIGNvbnN0IG1lYXN1cmVtZW50U2V0ID0g
TWVhc3VyZW1lbnRTZXQuZmluZFNldChNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybS5pZCgpLCBNb2Nr
TW9kZWxzLnNvbWVNZXRyaWMuaWQoKSwgNTAwMCk7CiAgICAgICAgICAgICBjb25zdCBsb2dnZXIg
PSBtb2NrTG9nZ2VyKCk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5p
dC10ZXN0cy9yZXNvdXJjZXMvbW9jay12My1tb2RlbHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdW5pdC10ZXN0cy9yZXNvdXJjZXMvbW9jay12My1tb2RlbHMuanMKaW5kZXggMjM4ZjU4
MjQyN2FlNGY3ODg4NmI1ZGJiNDgzOTk3OTkwMmU2Mzk5Mi4uYWZkMGQ3YWUzMzQ3Yzk1YWIzNGFj
MDA3OTc4NTUzN2Q5YmE0ZDdlNyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3VuaXQtdGVzdHMvcmVzb3VyY2VzL21vY2stdjMtbW9kZWxzLmpzCisrKyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy91bml0LXRlc3RzL3Jlc291cmNlcy9tb2NrLXYzLW1vZGVscy5qcwpAQCAt
MTQsNiArMTQsNyBAQCB2YXIgTW9ja01vZGVscyA9IHsKICAgICAgICAgICAgIFRlc3RHcm91cC5j
bGVhclN0YXRpY01hcCgpOwogICAgICAgICAgICAgQnVpbGRSZXF1ZXN0LmNsZWFyU3RhdGljTWFw
KCk7CiAgICAgICAgICAgICBUcmlnZ2VyYWJsZS5jbGVhclN0YXRpY01hcCgpOworICAgICAgICAg
ICAgVHJpZ2dlcmFibGVDb25maWd1cmF0aW9uLmNsZWFyU3RhdGljTWFwKCk7CiAgICAgICAgICAg
ICBVcGxvYWRlZEZpbGUuY2xlYXJTdGF0aWNNYXAoKTsKICAgICAgICAgICAgIE1lYXN1cmVtZW50
U2V0Ll9zZXRNYXAgPSBudWxsOwogCkBAIC03Miw4ICs3Myw5IEBAIHZhciBNb2NrTW9kZWxzID0g
ewogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICBNb2NrTW9kZWxzLnRyaWdnZXJhYmxlID0g
bmV3IFRyaWdnZXJhYmxlKDMsIHtuYW1lOiAnYnVpbGQtd2Via2l0JywKICAgICAgICAgICAgICAg
ICByZXBvc2l0b3J5R3JvdXBzOiBbTW9ja01vZGVscy5vc1JlcG9zaXRvcnlHcm91cCwgTW9ja01v
ZGVscy5zdm5SZXBvc2l0b3J5R3JvdXAsIE1vY2tNb2RlbHMuZ2l0UmVwb3NpdG9yeUdyb3VwLCBN
b2NrTW9kZWxzLnN2blJlcG9zaXRvcnlXaXRoT3duZWRSZXBvc2l0b3J5R3JvdXAsIE1vY2tNb2Rl
bHMub3duZXJSZXBvc2l0b3J5R3JvdXBdLAotICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25z
OiBbe3Rlc3Q6IE1vY2tNb2RlbHMuaVBob25lUExULCBwbGF0Zm9ybTogTW9ja01vZGVscy5pcGhv
bmV9XX0pOworICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25zOiBbe3Rlc3Q6IE1vY2tNb2Rl
bHMuaVBob25lUExULCBwbGF0Zm9ybTogTW9ja01vZGVscy5pcGhvbmUsIHN1cHBvcnRlZFJlcGV0
aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ119XX0pOwogCisgICAgICAg
ICAgICBNb2NrTW9kZWxzLnNvbWVUcmlnZ2FibGVDb25maWd1cmF0aW9uID0gVHJpZ2dlcmFibGVD
b25maWd1cmF0aW9uLmZpbmRCeVRlc3RBbmRQbGF0Zm9ybShNb2NrTW9kZWxzLmlQaG9uZVBMVCwg
TW9ja01vZGVscy5pcGhvbmUpOwogICAgICAgICB9KTsKICAgICB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442804</attachid>
            <date>2021-10-29 04:05:47 -0700</date>
            <delta_ts>2021-10-29 22:46:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229545-20211029040546.patch</filename>
            <type>text/plain</type>
            <size>155030</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0OTY4CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA5M2MyZTNkMmEwOTY2MjNhMDk0YjMyZmQ1OGY4NmE2N2EyMmRjOTQ1Li42MjAzYzU5OGU1
ZWFiMzJhNjhmY2FhYWMwZTJkOGNkOWVkMjJiOWMwIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMjEgQEAKKzIwMjEtMTAtMjAgIERld2VpIFpodSAgPGRld2VpX3po
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkICdwYWlyZWQtcGFyYWxsZWwnIHJlcGV0aXRpb24g
dHlwZSBmb3IgQS9CIHRlc3RpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjk1NDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgJ3BhaXJlZC1wYXJhbGxlbCcgcmVwZXRpdGlvbiB0eXBlIGZvciBB
L0IgdGVzdGluZy4KKyAgICAgICAgQWRkICdUcmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24nIG1vZGVs
IHRvIHN0b3JlIHJlcGV0aXRpb24gdHlwZXMgaW5mb3JtYXRpb24gZm9yIGVhY2ggKHBsYXRmb3Jt
LCB0ZXN0KSBwYWlyLgorICAgICAgICBBZGQgbmV3IGNvbXBvbmVudCAncmVwZXRpdGlvbi10eXBl
LXNlbGVjdGlvbicgdG8gdW5pZnkgQS9CIHRlc3RpbmcgVUkgZm9yIHJlcGV0aXRpb24gdHlwZSBz
ZWxlY3Rpb24uCisgICAgICAgIEV4dGVuZCBBL0IgdGVzdGluZyBzeW5jaW5nIHNjcmlwdCB0byB1
cGRhdGUgcmVwZXRpdGlvbiB0eXBlcyBmb3IgZWFjaCB0cmlnZ2VyYWJsZSBjb25maWd1cmF0aW9u
IGFuZCBvbmx5CisgICAgICAgIHNjaGVkdWxlIEEvQiB0ZXN0aW5nIGZvciBidWlsZGVyIHN1cHBv
cnRlZCByZXBldGl0aW9uIHR5cGVzLgorCisgICAgICAgICogYnJvd3Nlci10ZXN0cy9jdXN0b20t
YW5hbHlzaXMtdGFzay1jb25maWd1cmF0b3ItdGVzdHMuanM6IFVwZGF0ZWQgdW5pdCB0ZXN0cyBh
Y2NvcmRpbmdseS4KKyAgICAgICAgKGFzeW5jIGNyZWF0ZUN1c3RvbUFuYWx5c2lzVGFza0NvbmZp
Z3VyYXRvcldpdGhDb250ZXh0KToKKyAgICAgICAgKiBicm93c2VyLXRlc3RzL2N1c3RvbWl6YWJs
ZS10ZXN0LWdyb3VwLWZvcm0tdGVzdHMuanM6IFVwZGF0ZWQgdW5pdCB0ZXN0cyBhY2NvcmRpbmds
eS4KKyAgICAgICAgKGFzeW5jIGNyZWF0ZUN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm1XaXRoQ29u
dGV4dCk6CisgICAgICAgICogYnJvd3Nlci10ZXN0cy90ZXN0LWdyb3VwLWZvcm0tdGVzdHMuanM6
IFVwZGF0ZWQgdW5pdCB0ZXN0cyBhY2NvcmRpbmdseS4KKyAgICAgICAgKGFzeW5jIGNyZWF0ZVRl
c3RHcm91cEZvcm1XaXRoQ29udGV4dCk6CisgICAgICAgICogaW5pdC1kYXRhYmFzZS5zcWw6IEFk
ZGVkICd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMnIHRhYmxlIHRv
IHN0b3JlIHN1cHBvcnRlZAorICAgICAgICByZXBldGl0aW9uIHR5cGVzIGZvciBlYWNoIHRyaWdn
ZXJhYmxlIGNvbmZpZ3VyYXRpb24uCisgICAgICAgIEFkZGVkICdwYWlyZWQtcGFyYWxsZWwnIHJl
cGV0aXRpb24gdHlwZS4KKyAgICAgICAgKiBtaWdyYXRlLWRhdGFiYXNlLnNxbDogVXBkYXRlZCBt
aWdyYXRpb24gc2NyaXB0cy4KKyAgICAgICAgKiBwdWJsaWMvYXBpL3VwZGF0ZS10cmlnZ2VyYWJs
ZS5waHA6IEFkZGVkIGxvZ2ljIHRvIHVwZGF0ZSByZXBldGl0aW9uIHR5cGVzIGZvciBlYWNoIHRp
cmdnZXJhYmxlIGNvbmZpZ3VyYXRpb25zLgorICAgICAgICAqIHB1YmxpYy9pbmNsdWRlL2NvbW1p
dC1zZXRzLWhlbHBlcnMucGhwOiBBZGRlZCBzdXBwb3J0IGZvciAncGFpcmVkLXBhcmFsbGVsJyBy
ZXBldGl0aW9uIHR5cGUuCisgICAgICAgICogcHVibGljL2luY2x1ZGUvanNvbi1oZWFkZXIucGhw
OiBFeHRlbmRlZCAnZmluZF90cmlnZ2VyYWJsZV9mb3JfdGFzaycgdG8gaW5jbHVkZSBzdXBwb3J0
ZWQgcmVwZXRpdGlvbiB0eXBlcyBpbgorICAgICAgICByZXR1cm4gdmFsdWUuCisgICAgICAgICog
cHVibGljL2luY2x1ZGUvbWFuaWZlc3QtZ2VuZXJhdG9yLnBocDogQWRkZWQgbG9naWMgdG8gaW5j
bHVkZSBzdXBwb3J0ZWQgcmVwZXRpdGlvbiB0eXBlcyBpbiBtYW5pZmVzdC4KKyAgICAgICAgKiBw
dWJsaWMvcHJpdmlsZWdlZC1hcGkvYWRkLWJ1aWxkLXJlcXVlc3RzLnBocDogRXh0ZW5kZWQgQVBJ
IHRvIHN1cHBvcnQgJ3BhaXJlZC1wYXJhbGxlbCcgcmVwZXRpdGlvbiB0eXBlLgorICAgICAgICAq
IHB1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzay5waHA6IEV4dGVuZGVk
IEFQSSB0byBzdXBwb3J0ICdwYWlyZWQtcGFyYWxsZWwnIHJlcGV0aXRpb24gdHlwZS4KKyAgICAg
ICAgKiBwdWJsaWMvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAucGhwOiBFeHRlbmRl
ZCBBUEkgdG8gc3VwcG9ydCAncGFpcmVkLXBhcmFsbGVsJyByZXBldGl0aW9uIHR5cGUuCisgICAg
ICAgICogcHVibGljL3YzL2NvbW1pdC1zZXQtcmFuZ2UtYmlzZWN0b3IuanM6CisgICAgICAgIChD
b21taXRTZXRSYW5nZUJpc2VjdG9yLl9jbG9zZXN0Q29tbWl0U2V0c1RvQmlzZWN0aW5nQ29tbWl0
QnlUaW1lKTogRml4IGEgYnVnIHRoYXQgZXJyb3IgaXMgcmFpc2Ugd2hlbiB0aGVyZSBpcworICAg
ICAgICBubyBtaWRkbGUgY29tbWl0IHNldCBpbiBhIHJhbmdlLgorICAgICAgICAqIHB1YmxpYy92
My9jb21wb25lbnRzL2N1c3RvbS1jb25maWd1cmF0aW9uLXRlc3QtZ3JvdXAtZm9ybS5qczogQWRk
ZWQgY29kZSB0byB1cGRhdGUgc3VwcG9ydGVkIHJlcGV0aXRpb24gdHlwZXMKKyAgICAgICAgb24g
dGVzdCBjb25maWcgY2hhbmdlLgorICAgICAgICAoQ3VzdG9tQ29uZmlndXJhdGlvblRlc3RHcm91
cEZvcm0ucHJvdG90eXBlLnN0YXJ0VGVzdGluZyk6CisgICAgICAgIChDdXN0b21Db25maWd1cmF0
aW9uVGVzdEdyb3VwRm9ybS5wcm90b3R5cGUuZGlkQ29uc3RydWN0U2hhZG93VHJlZSk6CisgICAg
ICAgICogcHVibGljL3YzL2NvbXBvbmVudHMvY3VzdG9taXphYmxlLXRlc3QtZ3JvdXAtZm9ybS5q
czoKKyAgICAgICAgKEN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm0ucHJvdG90eXBlLnN0YXJ0VGVz
dGluZyk6CisgICAgICAgICogcHVibGljL3YzL2NvbXBvbmVudHMvcmVwZXRpdGlvbi10eXBlLXNl
bGVjdGlvbi5qczogQWRkZWQgYSBuZXcgbW9kZWwgdGhhdCBzdG9yZXMgcmVwZXRpdGlvbiB0eXBl
cyBpbmZvcm1hdGlvbgorICAgICAgICBmb3IgZWFjaCAocGxhdGZvcm0sIHRlc3QpIHBhaXIuCisg
ICAgICAgIChSZXBldGl0aW9uVHlwZVNlbGVjdGlvbik6CisgICAgICAgIChSZXBldGl0aW9uVHlw
ZVNlbGVjdGlvbi5wcm90b3R5cGUuZGlkQ29uc3RydWN0U2hhZG93VHJlZSk6CisgICAgICAgIChS
ZXBldGl0aW9uVHlwZVNlbGVjdGlvbi5wcm90b3R5cGUuZ2V0IHNlbGVjdGVkUmVwZXRpdGlvblR5
cGUpOgorICAgICAgICAoUmVwZXRpdGlvblR5cGVTZWxlY3Rpb24ucHJvdG90eXBlLnNldCBzZWxl
Y3RlZFJlcGV0aXRpb25UeXBlKToKKyAgICAgICAgKFJlcGV0aXRpb25UeXBlU2VsZWN0aW9uLnBy
b3RvdHlwZS5zZXQgZGlzYWJsZWQpOgorICAgICAgICAoUmVwZXRpdGlvblR5cGVTZWxlY3Rpb24u
cHJvdG90eXBlLnNldFRlc3RBbmRQbGF0Zm9ybSk6CisgICAgICAgIChSZXBldGl0aW9uVHlwZVNl
bGVjdGlvbi5wcm90b3R5cGUubGFiZWxGb3JSZXBldGl0aW9uVHlwZSk6CisgICAgICAgIChSZXBl
dGl0aW9uVHlwZVNlbGVjdGlvbi5wcm90b3R5cGUucmVuZGVyKToKKyAgICAgICAgKFJlcGV0aXRp
b25UeXBlU2VsZWN0aW9uLnByb3RvdHlwZS5fcmVuZGVyUmVwZXRpdGlvblR5cGVMaXN0KToKKyAg
ICAgICAgKFJlcGV0aXRpb25UeXBlU2VsZWN0aW9uLmh0bWxUZW1wbGF0ZSk6CisgICAgICAgICog
cHVibGljL3YzL2NvbXBvbmVudHMvdGVzdC1ncm91cC1mb3JtLmpzOiBBZG9wdCAncmVwZXRpdGlv
bi10eXBlLXNlbGVjdGlvbicuCisgICAgICAgIChUZXN0R3JvdXBGb3JtLnByb3RvdHlwZS5zZXRU
ZXN0QW5kUGxhdGZvcm0pOgorICAgICAgICAoVGVzdEdyb3VwRm9ybS5wcm90b3R5cGUucmVuZGVy
KToKKyAgICAgICAgKFRlc3RHcm91cEZvcm0ucHJvdG90eXBlLnN0YXJ0VGVzdGluZyk6CisgICAg
ICAgICogcHVibGljL3YzL2luZGV4Lmh0bWw6CisgICAgICAgICogcHVibGljL3YzL21vZGVscy9t
YW5pZmVzdC5qczogUGFzcyAnc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzJyBhbmQgJ2lkJyBmb3Ig
VHJpZ2dlcmFibGVDb25maWd1cmF0aW9uLgorICAgICAgICAoTWFuaWZlc3QucmVzZXQpOgorICAg
ICAgICAoTWFuaWZlc3QuX2RpZEZldGNoTWFuaWZlc3QpOgorICAgICAgICAoTWFuaWZlc3QpOgor
ICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvdGVzdC1ncm91cC5qczogVXBkYXRlZCBsb2dpYyB0
byBzaGFyZSByZXRyeSBsb2dpYyBvZiAnYWx0ZXJuYXRpbmcnIHRlc3QgZ3JvdXAgd2l0aCAncGFp
cmVkLXBhcmFsbGVsJworICAgICAgICB0ZXN0IGdyb3VwLgorICAgICAgICAoVGVzdEdyb3VwLnBy
b3RvdHlwZS5hc3luYyBzY2hlZHVsZU1vcmVSZXF1ZXN0c09yQ2xlYXJGbGFnKToKKyAgICAgICAg
KiBwdWJsaWMvdjMvbW9kZWxzL3RyaWdnZXJhYmxlLmpzOiBBZGRlZCBUcmlnZ2VyYWJsZUNvbmZp
Z3VyYXRpb24gbW9kZWwuCisgICAgICAgIEFkZGVkIGNvZGUgdG8gY3JlYXQgVHJpZ2dlcmFibGVD
b25maWd1cmF0aW9uIGluICdUcmlnZ2VyYWJsZScgY29uc3RydWN0b3IuCisgICAgICAgIChUcmln
Z2VyYWJsZSk6CisgICAgICAgIChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbik6
CisgICAgICAgIChwcm90b3R5cGUuZ2V0IHRyaWdnZXJhYmxlKToKKyAgICAgICAgKHByb3RvdHlw
ZS5nZXQgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzKToKKyAgICAgICAgKGZpbmRCeVRlc3RBbmRQ
bGF0Zm9ybSk6CisgICAgICAgICogcHVibGljL3YzL3BhZ2VzL2FuYWx5c2lzLXRhc2stcGFnZS5q
czogQWRkZWQgY29kZSB0byB1cGRhdGUgcmVwZXRpdGlvbiB0eXBlIGluIHRoZSBVSSBiYXNlZCBv
biAodGVzdCwgcGxhdGZvcm0pIHBhaXIuCisgICAgICAgIChBbmFseXNpc1Rhc2tSZXN1bHRzUGFu
ZS5wcm90b3R5cGUuc2V0VGVzdEdyb3Vwcyk6CisgICAgICAgIChBbmFseXNpc1Rhc2tUZXN0R3Jv
dXBQYW5lLnByb3RvdHlwZS5fcmVuZGVyQ3VycmVudFRlc3RHcm91cCk6CisgICAgICAgIChBbmFs
eXNpc1Rhc2tUZXN0R3JvdXBQYW5lLnByb3RvdHlwZS5fcmVuZGVyVGVzdEdyb3VwRm9ybSk6Cisg
ICAgICAgICogcHVibGljL3YzL3BhZ2VzL2NoYXJ0LXBhbmUuanM6IEFkb3B0ICdyZXBldGl0aW9u
LXR5cGUtc2VsZWN0aW9uJy4KKyAgICAgICAgKENoYXJ0UGFuZS5wcm90b3R5cGUuZGlkQ29uc3Ry
dWN0U2hhZG93VHJlZSk6CisgICAgICAgIChDaGFydFBhbmUucHJvdG90eXBlLmFzeW5jIF9hbmFs
eXplUmFuZ2UpOgorICAgICAgICAoQ2hhcnRQYW5lLnByb3RvdHlwZS5fcmVuZGVyQWN0aW9uVG9v
bGJhcik6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1tYW5pZmVzdC10ZXN0cy5qczoKKyAg
ICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXVwZGF0ZS10cmlnZ2VyYWJsZS10ZXN0cy5qczogQWRk
ZWQgYW5kIHVwZGF0ZWQgdW5pdCB0ZXN0cy4KKyAgICAgICAgKHVwZGF0ZVdpdGhNYWNXZWJLaXRS
ZXBvc2l0b3J5R3JvdXBzKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXVwbG9hZC1yb290
LXRlc3RzLmpzOiBVcGRhdGVkIHVuaXQgdGVzdHMuCisgICAgICAgICogc2VydmVyLXRlc3RzL3By
aXZpbGVnZWQtYXBpLWFkZC1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qczogQWRkZWQgYW5kIHVwZGF0
ZWQgdW5pdCB0ZXN0cy4KKyAgICAgICAgKGFzeW5jIGFkZFRyaWdnZXJhYmxlQW5kQ3JlYXRlVGFz
ayk6CisgICAgICAgICogc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS1hbmFseXNp
cy10YXNrLXRlc3RzLmpzOiBBZGRlZCBhbmQgdXBkYXRlZCB1bml0IHRlc3RzLgorICAgICAgICAq
IHNlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtdGVzdC1ncm91cC10ZXN0cy5qczog
QWRkZWQgYW5kIHVwZGF0ZWQgdW5pdCB0ZXN0cy4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJp
dmlsZWdlZC1hcGktdXBkYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanM6IFVwZGF0ZWQgdW5pdCB0ZXN0
cy4KKyAgICAgICAgKGFzeW5jIGFkZFRyaWdnZXJhYmxlQW5kQ3JlYXRlVGFzayk6CisgICAgICAg
ICogc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanM6CisgICAgICAgIChNb2NrRGF0
YS5zb21lVGVzdENvbmZpZ3VyYXRpb25JZCk6CisgICAgICAgIChNb2NrRGF0YS5vdGhlclRlc3RD
b25maWd1cmF0aW9uSWQpOgorICAgICAgICAoTW9ja0RhdGEuYWRkTW9ja0NvbmZpZ3VyYXRpb24p
OgorICAgICAgICAoTW9ja0RhdGEuc2V0IG1vY2tUZXN0U3luY0NvbmZpZ1dpdGhTaW5nbGVCdWls
ZGVyKToKKyAgICAgICAgKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhQYXRjaEFjY2Vw
dGluZ0J1aWxkZXIpOgorICAgICAgICAoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3
b0J1aWxkZXJzKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1p
bnRlZ3JhdGlvbi10ZXN0cy5qczogQWRkZWQgYW5kIHVwZGF0ZWQgdW5pdCB0ZXN0cy4KKyAgICAg
ICAgKiB0b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanM6IEFkZGVkIGNvZGUgdG8gdXBkYXRlIHN1
cHBvcnRlZCByZXBldGl0aW9uIHR5cGVzIG9uIHRyaWdnZXJhYmxlIHVwZGF0ZXMuCisgICAgICAg
IFVwZGF0ZSBjb25maWd1cmF0aW9uIG1hdGNoIGNvZGUgdG8gb25seSBzY2hlZHVsZXIgYnVpbGQg
cmVxdWVzdHMgdGhlIHJlcGV0aXRpb24gdHlwZXMgb2Ygd2hpY2ggYXJlIGJvdGgKKyAgICAgICAg
c3VwcG9ydGVkIGJ5IGJ1aWxkZXIgYW5kIHRyaWdnZXJhYmxlIGNvbmZpZ3VyYXRpb24uCisgICAg
ICAgIChCdWlsZGJvdFN5bmNlcik6CisgICAgICAgIChCdWlsZGJvdFN5bmNlci5wcm90b3R5cGUu
YWRkVGVzdENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoQnVpbGRib3RTeW5jZXIucHJvdG90eXBl
Lm1hdGNoZXNDb25maWd1cmF0aW9uKToKKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKToKKyAgICAgICAgKiB0b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qczoKKyAgICAg
ICAgKEJ1aWxkYm90VHJpZ2dlcmFibGUucHJvdG90eXBlLnVwZGF0ZVRyaWdnZXJhYmxlKToKKyAg
ICAgICAgKEJ1aWxkYm90VHJpZ2dlcmFibGUucHJvdG90eXBlLmFzeW5jIHN5bmNPbmNlKToKKyAg
ICAgICAgKiB0b29scy9qcy92My1tb2RlbHMuanM6CisgICAgICAgICogdW5pdC10ZXN0cy9idWls
ZGJvdC1zeW5jZXItdGVzdHMuanM6IEFkZGVkIGFuZCB1cGRhdGVkIHVuaXQgdGVzdHMuCisgICAg
ICAgIChzYW1wbGVpT1NDb25maWcpOgorICAgICAgICAoc2FtcGxlaU9TQ29uZmlnV2l0aEV4cGFu
c2lvbnMpOgorICAgICAgICAoc21hbGxDb25maWd1cmF0aW9uKToKKyAgICAgICAgKHNtYWxsQ29u
ZmlndXJhdGlvbldpdGhDdXN0b21SZXBldGl0aW9uVHlwZXMpOgorICAgICAgICAoY3JlYXRlU2Ft
cGxlQnVpbGRSZXF1ZXN0KToKKyAgICAgICAgKiB1bml0LXRlc3RzL21lYXN1cmVtZW50LXNldC1h
bmFseXplci10ZXN0cy5qczogVXBkYXRlZCB1bml0IHRlc3RzLgorICAgICAgICAqIHVuaXQtdGVz
dHMvcmVzb3VyY2VzL21vY2stdjMtbW9kZWxzLmpzOgorICAgICAgICAoTW9ja01vZGVscy5pbmpl
Y3QpOgorCiAyMDIxLTA5LTI2ICBEZXdlaSBaaHUgIDxkZXdlaV96aHVAYXBwbGUuY29tPgogCiAg
ICAgICAgIFN1bW1hcnkgcGFnZSBzaG91bGQgc3VwcG9ydCBjYWxjdWxhdGluZyBzdW1tYXJ5IHVz
aW5nIHdlaWdodGVkIG1lYW4uCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
YnJvd3Nlci10ZXN0cy9jdXN0b20tYW5hbHlzaXMtdGFzay1jb25maWd1cmF0b3ItdGVzdHMuanMg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jdXN0b20tYW5hbHlzaXMt
dGFzay1jb25maWd1cmF0b3ItdGVzdHMuanMKaW5kZXggODVhZjdiMTQ0NWRmYTMyZmU5MmI1NTI0
ZWU1OWMyZmJkYWFiY2RhNy4uNjY5OGJkZTAxM2MyMzJlMWRjYjkxOTkyZmQyNzJiMTI5MWIwOTcx
YSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvY3Vz
dG9tLWFuYWx5c2lzLXRhc2stY29uZmlndXJhdG9yLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9icm93c2VyLXRlc3RzL2N1c3RvbS1hbmFseXNpcy10YXNrLWNvbmZpZ3Vy
YXRvci10ZXN0cy5qcwpAQCAtMSwxMiArMSwxNiBAQAogZGVzY3JpYmUoJ0N1c3RvbUFuYWx5c2lz
VGFza0NvbmZpZ3VyYXRvcicsICgpID0+IHsKLSAgICBjb25zdCBzY3JpcHRzID0gWydpbnN0cnVt
ZW50YXRpb24uanMnLCAnLi4vc2hhcmVkL2NvbW1vbi1jb21wb25lbnQtYmFzZS5qcycsICdjb21w
b25lbnRzL2Jhc2UuanMnLCAnbW9kZWxzL2RhdGEtbW9kZWwuanMnLCAnbW9kZWxzL2NvbW1pdC1s
b2cuanMnLAotICAgICAgICAnbW9kZWxzL2NvbW1pdC1zZXQuanMnLCAnbW9kZWxzL3JlcG9zaXRv
cnkuanMnLCAnbW9kZWxzL21ldHJpYy5qcycsICdtb2RlbHMvdHJpZ2dlcmFibGUuanMnLCAnbW9k
ZWxzL3Rlc3QuanMnLCAnbW9kZWxzL3BsYXRmb3JtLmpzJywgJ2NvbXBvbmVudHMvdGVzdC1ncm91
cC1mb3JtLmpzJywKLSAgICAgICAgJ2NvbXBvbmVudHMvY3VzdG9tLWFuYWx5c2lzLXRhc2stY29u
ZmlndXJhdG9yLmpzJywgJ2NvbXBvbmVudHMvaW5zdGFudC1maWxlLXVwbG9hZGVyLmpzJywgJ2xh
emlseS1ldmFsdWF0ZWQtZnVuY3Rpb24uanMnXTsKKyAgICBjb25zdCBzY3JpcHRzID0gWydpbnN0
cnVtZW50YXRpb24uanMnLCAnLi4vc2hhcmVkL2NvbW1vbi1jb21wb25lbnQtYmFzZS5qcycsICdj
b21wb25lbnRzL2Jhc2UuanMnLAorICAgICAgICAnbW9kZWxzL2RhdGEtbW9kZWwuanMnLCAnbW9k
ZWxzL2NvbW1pdC1sb2cuanMnLCAnbW9kZWxzL2NvbW1pdC1zZXQuanMnLCAnbW9kZWxzL3JlcG9z
aXRvcnkuanMnLAorICAgICAgICAnbW9kZWxzL21ldHJpYy5qcycsICdtb2RlbHMvdHJpZ2dlcmFi
bGUuanMnLCAnbW9kZWxzL3Rlc3QuanMnLCAnbW9kZWxzL3BsYXRmb3JtLmpzJywKKyAgICAgICAg
J2NvbXBvbmVudHMvdGVzdC1ncm91cC1mb3JtLmpzJywgJ2NvbXBvbmVudHMvY3VzdG9tLWFuYWx5
c2lzLXRhc2stY29uZmlndXJhdG9yLmpzJywKKyAgICAgICAgJ2NvbXBvbmVudHMvaW5zdGFudC1m
aWxlLXVwbG9hZGVyLmpzJywgJ2xhemlseS1ldmFsdWF0ZWQtZnVuY3Rpb24uanMnXTsKIAogICAg
IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUN1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvcldpdGhD
b250ZXh0KGNvbnRleHQpCiAgICAgewotICAgICAgICBhd2FpdCBjb250ZXh0LmltcG9ydFNjcmlw
dHMoc2NyaXB0cywgJ0NvbXBvbmVudEJhc2UnLCAnRGF0YU1vZGVsT2JqZWN0JywgJ1JlcG9zaXRv
cnknLCAnQ29tbWl0TG9nJywgJ1BsYXRmb3JtJywgJ1Rlc3QnLCAnTWV0cmljJywgJ1RyaWdnZXJh
YmxlJywKLSAgICAgICAgICAgICdUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cCcsICdDdXN0b21D
b21taXRTZXQnLCAnQ3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yJywgJ01vY2tSZW1vdGVB
UEknLCAnTGF6aWx5RXZhbHVhdGVkRnVuY3Rpb24nKTsKKyAgICAgICAgYXdhaXQgY29udGV4dC5p
bXBvcnRTY3JpcHRzKHNjcmlwdHMsICdDb21wb25lbnRCYXNlJywgJ0xhYmVsZWRPYmplY3QnLCAn
RGF0YU1vZGVsT2JqZWN0JywgJ1JlcG9zaXRvcnknLAorICAgICAgICAgICAgJ0NvbW1pdExvZycs
ICdQbGF0Zm9ybScsICdUZXN0JywgJ01ldHJpYycsICdUcmlnZ2VyYWJsZScsICdUcmlnZ2VyYWJs
ZUNvbmZpZ3VyYXRpb24nLAorICAgICAgICAgICAgJ1RyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3Vw
JywgJ0N1c3RvbUNvbW1pdFNldCcsICdDdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3InLCAn
TW9ja1JlbW90ZUFQSScsCisgICAgICAgICAgICAnTGF6aWx5RXZhbHVhdGVkRnVuY3Rpb24nKTsK
ICAgICAgICAgY29uc3QgY3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yID0gbmV3IGNvbnRl
eHQuc3ltYm9scy5DdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3I7CiAgICAgICAgIGNvbnRl
eHQuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0
b3IuZWxlbWVudCgpKTsKICAgICAgICAgcmV0dXJuIGN1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3Vy
YXRvcjsKQEAgLTQwLDcgKzQ0LDcgQEAgZGVzY3JpYmUoJ0N1c3RvbUFuYWx5c2lzVGFza0NvbmZp
Z3VyYXRvcicsICgpID0+IHsKICAgICAgICAgICAgIG5hbWU6ICd0ZXN0LXRyaWdnZXJhYmxlJywK
ICAgICAgICAgICAgIGlzRGlzYWJsZWQ6IGZhbHNlLAogICAgICAgICAgICAgcmVwb3NpdG9yeUdy
b3VwczogW3RyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwXSwKLSAgICAgICAgICAgIGNvbmZpZ3Vy
YXRpb25zOiBbe3Rlc3QsIHBsYXRmb3JtfV0sCisgICAgICAgICAgICBjb25maWd1cmF0aW9uczog
W3t0ZXN0LCBwbGF0Zm9ybSwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5n
JywgJ3NlcXVlbnRpYWwnXX1dLAogICAgICAgICB9KTsKICAgICAgICAgY3VzdG9tQW5hbHlzaXNU
YXNrQ29uZmlndXJhdG9yLnNlbGVjdFRlc3RzKFt0ZXN0XSk7CiAgICAgICAgIGN1c3RvbUFuYWx5
c2lzVGFza0NvbmZpZ3VyYXRvci5zZWxlY3RQbGF0Zm9ybShwbGF0Zm9ybSk7CkBAIC0xMjQsNyAr
MTI4LDcgQEAgZGVzY3JpYmUoJ0N1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvcicsICgpID0+
IHsKICAgICAgICAgICAgIG5hbWU6ICd0ZXN0LXRyaWdnZXJhYmxlJywKICAgICAgICAgICAgIGlz
RGlzYWJsZWQ6IGZhbHNlLAogICAgICAgICAgICAgcmVwb3NpdG9yeUdyb3VwczogW3RyaWdnZXJh
YmxlUmVwb3NpdG9yeUdyb3VwXSwKLSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25zOiBbe3Rlc3Qs
IHBsYXRmb3JtfV0sCisgICAgICAgICAgICBjb25maWd1cmF0aW9uczogW3t0ZXN0LCBwbGF0Zm9y
bSwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwn
XX1dLAogICAgICAgICB9KTsKICAgICAgICAgY3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9y
LnNlbGVjdFRlc3RzKFt0ZXN0XSk7CiAgICAgICAgIGN1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3Vy
YXRvci5zZWxlY3RQbGF0Zm9ybShwbGF0Zm9ybSk7CkBAIC0yMTYsNyArMjIwLDggQEAgZGVzY3Jp
YmUoJ0N1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvcicsICgpID0+IHsKICAgICAgICAgICAg
IG5hbWU6ICd0ZXN0LXRyaWdnZXJhYmxlJywKICAgICAgICAgICAgIGlzRGlzYWJsZWQ6IGZhbHNl
LAogICAgICAgICAgICAgcmVwb3NpdG9yeUdyb3VwczogW3RyaWdnZXJhYmxlUmVwb3NpdG9yeUdy
b3VwXSwKLSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25zOiBbe3Rlc3QsIHBsYXRmb3JtOiBtb2ph
dmV9LCB7dGVzdCwgcGxhdGZvcm06IGhpZ2hTaWVycmF9XSwKKyAgICAgICAgICAgIGNvbmZpZ3Vy
YXRpb25zOiBbe3Rlc3QsIHBsYXRmb3JtOiBtb2phdmUsIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBl
czogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ119LAorICAgICAgICAgICAgICAgIHt0ZXN0
LCBwbGF0Zm9ybTogaGlnaFNpZXJyYSwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVy
bmF0aW5nJywgJ3NlcXVlbnRpYWwnXX1dLAogICAgICAgICB9KTsKICAgICAgICAgY3VzdG9tQW5h
bHlzaXNUYXNrQ29uZmlndXJhdG9yLnNlbGVjdFRlc3RzKFt0ZXN0XSk7CiAgICAgICAgIGN1c3Rv
bUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvci5zZWxlY3RQbGF0Zm9ybShtb2phdmUpOwpAQCAtMjk1
LDcgKzMwMCw4IEBAIGRlc2NyaWJlKCdDdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3InLCAo
KSA9PiB7CiAgICAgICAgICAgICBuYW1lOiAndGVzdC10cmlnZ2VyYWJsZScsCiAgICAgICAgICAg
ICBpc0Rpc2FibGVkOiBmYWxzZSwKICAgICAgICAgICAgIHJlcG9zaXRvcnlHcm91cHM6IFt0cmln
Z2VyYWJsZVJlcG9zaXRvcnlHcm91cF0sCi0gICAgICAgICAgICBjb25maWd1cmF0aW9uczogW3t0
ZXN0LCBwbGF0Zm9ybTogbW9qYXZlfSwge3Rlc3QsIHBsYXRmb3JtOiBoaWdoU2llcnJhfV0sCisg
ICAgICAgICAgICBjb25maWd1cmF0aW9uczogW3t0ZXN0LCBwbGF0Zm9ybTogbW9qYXZlLCBzdXBw
b3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddfSwKKyAg
ICAgICAgICAgICAgICB7dGVzdCwgcGxhdGZvcm06IGhpZ2hTaWVycmEsIHN1cHBvcnRlZFJlcGV0
aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ119XSwKICAgICAgICAgfSk7
CiAgICAgICAgIGN1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvci5zZWxlY3RUZXN0cyhbdGVz
dF0pOwogICAgICAgICBjdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3Iuc2VsZWN0UGxhdGZv
cm0obW9qYXZlKTsKQEAgLTM1Niw3ICszNjIsOCBAQCBkZXNjcmliZSgnQ3VzdG9tQW5hbHlzaXNU
YXNrQ29uZmlndXJhdG9yJywgKCkgPT4gewogICAgICAgICAgICAgbmFtZTogJ3Rlc3QtdHJpZ2dl
cmFibGUnLAogICAgICAgICAgICAgaXNEaXNhYmxlZDogZmFsc2UsCiAgICAgICAgICAgICByZXBv
c2l0b3J5R3JvdXBzOiBbdHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXBdLAotICAgICAgICAgICAg
Y29uZmlndXJhdGlvbnM6IFt7dGVzdCwgcGxhdGZvcm06IG1vamF2ZX0sIHt0ZXN0LCBwbGF0Zm9y
bTogaGlnaFNpZXJyYX1dLAorICAgICAgICAgICAgY29uZmlndXJhdGlvbnM6IFt7dGVzdCwgcGxh
dGZvcm06IG1vamF2ZSwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5nJywg
J3NlcXVlbnRpYWwnXX0sCisgICAgICAgICAgICAgICAge3Rlc3QsIHBsYXRmb3JtOiBoaWdoU2ll
cnJhLCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlh
bCddfV0sCiAgICAgICAgIH0pOwogICAgICAgICBjdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0
b3Iuc2VsZWN0VGVzdHMoW3Rlc3RdKTsKICAgICAgICAgY3VzdG9tQW5hbHlzaXNUYXNrQ29uZmln
dXJhdG9yLnNlbGVjdFBsYXRmb3JtKG1vamF2ZSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jdXN0b21pemFibGUtdGVzdC1ncm91cC1mb3JtLXRl
c3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvY3VzdG9taXph
YmxlLXRlc3QtZ3JvdXAtZm9ybS10ZXN0cy5qcwppbmRleCBhYWQzYzAxMmIxM2IzODIzYWViN2Fj
NjIwMGI5MWJiNDFmYjZmNmUyLi43ZTc3YTk5OGRmNjk4YjU0YWFhM2UxMmIxZjY0MWUxOTIyNjY0
Mjk3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9j
dXN0b21pemFibGUtdGVzdC1ncm91cC1mb3JtLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9icm93c2VyLXRlc3RzL2N1c3RvbWl6YWJsZS10ZXN0LWdyb3VwLWZvcm0tdGVz
dHMuanMKQEAgLTEsMTEgKzEsMjAgQEAKIAogZGVzY3JpYmUoJ0N1c3RvbWl6YWJsZVRlc3RHcm91
cEZvcm1UZXN0cycsICgpID0+IHsKLSAgICBjb25zdCBzY3JpcHRzID0gWydpbnN0cnVtZW50YXRp
b24uanMnLCAnLi4vc2hhcmVkL2NvbW1vbi1jb21wb25lbnQtYmFzZS5qcycsICdjb21wb25lbnRz
L2Jhc2UuanMnLCAnbW9kZWxzL2RhdGEtbW9kZWwuanMnLCAnbW9kZWxzL2NvbW1pdC1sb2cuanMn
LAotICAgICAgICAnbW9kZWxzL2NvbW1pdC1zZXQuanMnLCAnbW9kZWxzL3JlcG9zaXRvcnkuanMn
LCAnY29tcG9uZW50cy90ZXN0LWdyb3VwLWZvcm0uanMnLCAnY29tcG9uZW50cy9jdXN0b21pemFi
bGUtdGVzdC1ncm91cC1mb3JtLmpzJ107CisgICAgY29uc3Qgc2NyaXB0cyA9IFsnaW5zdHJ1bWVu
dGF0aW9uLmpzJywgJy4uL3NoYXJlZC9jb21tb24tY29tcG9uZW50LWJhc2UuanMnLCAnY29tcG9u
ZW50cy9iYXNlLmpzJywKKyAgICAgICAgJ21vZGVscy9kYXRhLW1vZGVsLmpzJywgJ21vZGVscy9j
b21taXQtbG9nLmpzJywgJ21vZGVscy9jb21taXQtc2V0LmpzJywgJ21vZGVscy9yZXBvc2l0b3J5
LmpzJywKKyAgICAgICAgJ2NvbXBvbmVudHMvdGVzdC1ncm91cC1mb3JtLmpzJywgJ2NvbXBvbmVu
dHMvY3VzdG9taXphYmxlLXRlc3QtZ3JvdXAtZm9ybS5qcycsCisgICAgICAgICdjb21wb25lbnRz
L3JlcGV0aXRpb24tdHlwZS1zZWxlY3Rpb24uanMnLCAnbW9kZWxzL2RhdGEtbW9kZWwuanMnLCAn
bW9kZWxzL3RyaWdnZXJhYmxlLmpzJywgJ21vZGVscy90ZXN0LmpzJywKKyAgICAgICAgJ21vZGVs
cy9wbGF0Zm9ybS5qcycsICdsYXppbHktZXZhbHVhdGVkLWZ1bmN0aW9uLmpzJ107CiAKICAgICBh
c3luYyBmdW5jdGlvbiBjcmVhdGVDdXN0b21pemFibGVUZXN0R3JvdXBGb3JtV2l0aENvbnRleHQo
Y29udGV4dCkKICAgICB7Ci0gICAgICAgIGF3YWl0IGNvbnRleHQuaW1wb3J0U2NyaXB0cyhzY3Jp
cHRzLCAnQ29tcG9uZW50QmFzZScsICdEYXRhTW9kZWxPYmplY3QnLCAnUmVwb3NpdG9yeScsICdD
b21taXRMb2cnLCAnQ29tbWl0U2V0JywgJ0N1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm0nLCAnTW9j
a1JlbW90ZUFQSScpOworICAgICAgICBhd2FpdCBjb250ZXh0LmltcG9ydFNjcmlwdHMoc2NyaXB0
cywgJ0NvbXBvbmVudEJhc2UnLCAnRGF0YU1vZGVsT2JqZWN0JywgJ0xhYmVsZWRPYmplY3QnLCAn
VGVzdCcsCisgICAgICAgICAgICAnUGxhdGZvcm0nLCAnUmVwb3NpdG9yeScsICdDb21taXRMb2cn
LCAnQ29tbWl0U2V0JywgJ0N1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm0nLCAnTW9ja1JlbW90ZUFQ
SScsCisgICAgICAgICAgICAnTGF6aWx5RXZhbHVhdGVkRnVuY3Rpb24nLCAnUmVwZXRpdGlvblR5
cGVTZWxlY3Rpb24nLCAnVHJpZ2dlcmFibGVDb25maWd1cmF0aW9uJyk7CisgICAgICAgIGNvbnN0
IHBsYXRmb3JtID0gbmV3IGNvbnRleHQuc3ltYm9scy5QbGF0Zm9ybSg1LCB7bmFtZTogJ1NvbWVQ
bGF0Zm9ybScsIG1ldHJpY3M6IFtdfSk7CisgICAgICAgIGNvbnN0IHRlc3QgPSBuZXcgY29udGV4
dC5zeW1ib2xzLlRlc3QoMTAsIHtuYW1lOiAnU29tZVRlc3QnfSk7CisgICAgICAgIG5ldyBjb250
ZXh0LnN5bWJvbHMuVHJpZ2dlcmFibGVDb25maWd1cmF0aW9uKDEsCisgICAgICAgICAgICB7cGxh
dGZvcm0sIHRlc3QsIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdz
ZXF1ZW50aWFsJ119KTsKICAgICAgICAgY29uc3QgY3VzdG9taXphYmxlVGVzdEdyb3VwRm9ybSA9
IG5ldyBjb250ZXh0LnN5bWJvbHMuQ3VzdG9taXphYmxlVGVzdEdyb3VwRm9ybTsKICAgICAgICAg
Y29udGV4dC5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGN1c3RvbWl6YWJsZVRlc3RHcm91cEZv
cm0uZWxlbWVudCgpKTsKICAgICAgICAgcmV0dXJuIGN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm07
CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy90ZXN0
LWdyb3VwLWZvcm0tdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10
ZXN0cy90ZXN0LWdyb3VwLWZvcm0tdGVzdHMuanMKaW5kZXggZjk2MDExMzgyMzRhMWQ5YzU2NmEz
ODBhNjVjZTU5MDg0MjgzMGI0YS4uYTRjMmJhZDY2ZDYyMGQ1ZDVkNDYxOTU5YjVlNzU3NmFiNmYz
MmM4NSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMv
dGVzdC1ncm91cC1mb3JtLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9i
cm93c2VyLXRlc3RzL3Rlc3QtZ3JvdXAtZm9ybS10ZXN0cy5qcwpAQCAtMSwxNCArMSwyMSBAQAog
CiBkZXNjcmliZSgnVGVzdEdyb3VwRm9ybVRlc3RzJywgKCkgPT4gewotICAgIGNvbnN0IHNjcmlw
dHMgPSBbJ2luc3RydW1lbnRhdGlvbi5qcycsICcuLi9zaGFyZWQvY29tbW9uLWNvbXBvbmVudC1i
YXNlLmpzJywgJ2NvbXBvbmVudHMvYmFzZS5qcycsICdjb21wb25lbnRzL3Rlc3QtZ3JvdXAtZm9y
bS5qcyddOworICAgIGNvbnN0IHNjcmlwdHMgPSBbJ2luc3RydW1lbnRhdGlvbi5qcycsICcuLi9z
aGFyZWQvY29tbW9uLWNvbXBvbmVudC1iYXNlLmpzJywgJ2NvbXBvbmVudHMvYmFzZS5qcycsCisg
ICAgICAgICdjb21wb25lbnRzL3Rlc3QtZ3JvdXAtZm9ybS5qcycsICdjb21wb25lbnRzL3JlcGV0
aXRpb24tdHlwZS1zZWxlY3Rpb24uanMnLCAnbW9kZWxzL2RhdGEtbW9kZWwuanMnLAorICAgICAg
ICAnbW9kZWxzL3RyaWdnZXJhYmxlLmpzJywgJ21vZGVscy90ZXN0LmpzJywgJ21vZGVscy9wbGF0
Zm9ybS5qcycsICdsYXppbHktZXZhbHVhdGVkLWZ1bmN0aW9uLmpzJ107CiAKLSAgICBmdW5jdGlv
biBjcmVhdGVUZXN0R3JvdXBGb3JtV2l0aENvbnRleHQoY29udGV4dCkKKyAgICBhc3luYyBmdW5j
dGlvbiBjcmVhdGVUZXN0R3JvdXBGb3JtV2l0aENvbnRleHQoY29udGV4dCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBjb250ZXh0LmltcG9ydFNjcmlwdHMoc2NyaXB0cywgJ0NvbXBvbmVudEJhc2Un
LCAnVGVzdEdyb3VwRm9ybScpLnRoZW4oKHN5bWJvbHMpID0+IHsKLSAgICAgICAgICAgIGNvbnN0
IHRlc3RHcm91cEZvcm0gPSBuZXcgY29udGV4dC5zeW1ib2xzLlRlc3RHcm91cEZvcm07Ci0gICAg
ICAgICAgICBjb250ZXh0LmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGVzdEdyb3VwRm9ybS5l
bGVtZW50KCkpOwotICAgICAgICAgICAgcmV0dXJuIHRlc3RHcm91cEZvcm07Ci0gICAgICAgIH0p
OworICAgICAgICBhd2FpdCBjb250ZXh0LmltcG9ydFNjcmlwdHMoc2NyaXB0cywgJ0NvbXBvbmVu
dEJhc2UnLCAnTGFiZWxlZE9iamVjdCcsICdEYXRhTW9kZWxPYmplY3QnLCAnVGVzdCcsCisgICAg
ICAgICAgICAnVGVzdEdyb3VwRm9ybScsICdSZXBldGl0aW9uVHlwZVNlbGVjdGlvbicsICdUcmln
Z2VyYWJsZUNvbmZpZ3VyYXRpb24nLCdQbGF0Zm9ybScsICdMYXppbHlFdmFsdWF0ZWRGdW5jdGlv
bicpOworICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IG5ldyBjb250ZXh0LnN5bWJvbHMuUGxhdGZv
cm0oNSwge25hbWU6ICdTb21lUGxhdGZvcm0nLCBtZXRyaWNzOiBbXX0pOworICAgICAgICBjb25z
dCB0ZXN0ID0gbmV3IGNvbnRleHQuc3ltYm9scy5UZXN0KDEwLCB7bmFtZTogJ1NvbWVUZXN0J30p
OworICAgICAgICBuZXcgY29udGV4dC5zeW1ib2xzLlRyaWdnZXJhYmxlQ29uZmlndXJhdGlvbihg
JHt0ZXN0LmlkKCl9LSR7cGxhdGZvcm0uaWQoKX1gLAorICAgICAgICAgICAge3BsYXRmb3JtLCB0
ZXN0LCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlh
bCddfSk7CisgICAgICAgIGNvbnN0IHRlc3RHcm91cEZvcm0gPSBuZXcgY29udGV4dC5zeW1ib2xz
LlRlc3RHcm91cEZvcm07CisgICAgICAgIHRlc3RHcm91cEZvcm0uc2V0VGVzdEFuZFBsYXRmb3Jt
KHRlc3QsIHBsYXRmb3JtKTsKKyAgICAgICAgY29udGV4dC5kb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKHRlc3RHcm91cEZvcm0uZWxlbWVudCgpKTsKKyAgICAgICAgcmV0dXJuIHRlc3RHcm91cEZv
cm07CiAgICAgfQogCiAgICAgaXQoJ211c3QgZGlzcGF0Y2ggInN0YXJ0VGVzdGluZyIgYWN0aW9u
IHdpdGggdGhlIG51bWJlciBvZiByZXBldGl0aW9ucyB0aGUgdXNlciBjbGlja3Mgb24gIlN0YXJ0
IEEvQiB0ZXN0aW5nIicsICgpID0+IHsKQEAgLTMwLDkgKzM3LDcgQEAgZGVzY3JpYmUoJ1Rlc3RH
cm91cEZvcm1UZXN0cycsICgpID0+IHsKICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoe30p
OwogICAgICAgICB0ZXN0R3JvdXBGb3JtLmNvbnRlbnQoJ3N0YXJ0LWJ1dHRvbicpLmNsaWNrKCk7
CiAgICAgICAgIGV4cGVjdChjYWxscykudG8uZXFsKFtbNCwgJ2FsdGVybmF0aW5nJywgdHJ1ZV1d
KTsKLSAgICAgICAgY29uc3QgdHlwZUZvcm0gPSB0ZXN0R3JvdXBGb3JtLmNvbnRlbnQoJ3JlcGV0
aXRpb24tdHlwZScpOwotICAgICAgICB0eXBlRm9ybS52YWx1ZSA9ICdzZXF1ZW50aWFsJzsKLSAg
ICAgICAgdHlwZUZvcm0uZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScpKTsKKyAgICAg
ICAgdGVzdEdyb3VwRm9ybS5wYXJ0KCdyZXBldGl0aW9uLXR5cGUtc2VsZWN0b3InKS5zZWxlY3Rl
ZFJlcGV0aXRpb25UeXBlID0gJ3NlcXVlbnRpYWwnOwogICAgICAgICB0ZXN0R3JvdXBGb3JtLmNv
bnRlbnQoJ3N0YXJ0LWJ1dHRvbicpLmNsaWNrKCk7CiAgICAgICAgIGV4cGVjdChjYWxscykudG8u
ZXFsKFtbNCwgJ2FsdGVybmF0aW5nJywgdHJ1ZV0sIFs0LCAnc2VxdWVudGlhbCcsIHRydWVdXSk7
CiAgICAgfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRh
YmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwKaW5k
ZXggMDVjNzg0YWRlNGFjYmE4ZTE1NTc5NjQ4YjYzZWI5MWNmZDYxMzQ0Ny4uYmE4M2NiOTg0MjYy
MDBmMDU4Njk3ZGMzYzdjNjE5NDM4NmYzMDZhYyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9pbml0LWRhdGFiYXNlLnNxbApAQCAtMjQsNiArMjQsNyBAQCBEUk9QIFRBQkxFIElGIEVYSVNU
UyBhbmFseXNpc19zdHJhdGVnaWVzIENBU0NBREU7CiBEUk9QIFRZUEUgSUYgRVhJU1RTIGFuYWx5
c2lzX3Rhc2tfcmVzdWx0X3R5cGUgQ0FTQ0FERTsKIERST1AgVEFCTEUgSUYgRVhJU1RTIGJ1aWxk
X3RyaWdnZXJhYmxlcyBDQVNDQURFOwogRFJPUCBUQUJMRSBJRiBFWElTVFMgdHJpZ2dlcmFibGVf
Y29uZmlndXJhdGlvbnMgQ0FTQ0FERTsKK0RST1AgVEFCTEUgSUYgRVhJU1RTIHRyaWdnZXJhYmxl
X2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcyBDQVNDQURFOwogRFJPUCBUQUJMRSBJRiBF
WElTVFMgdHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91cHMgQ0FTQ0FERTsKIERST1AgVEFCTEUg
SUYgRVhJU1RTIHRyaWdnZXJhYmxlX3JlcG9zaXRvcmllcyBDQVNDQURFOwogRFJPUCBUQUJMRSBJ
RiBFWElTVFMgdXBsb2FkZWRfZmlsZXMgQ0FTQ0FERTsKQEAgLTI2NSwxMSArMjY2LDE4IEBAIENS
RUFURSBUQUJMRSB0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMgKAogICAgIENPTlNUUkFJTlQgcmVw
b3NpdG9yeV9tdXN0X2JlX3VuaXF1ZV9mb3JfcmVwb3NpdG9yeV9ncm91cCBVTklRVUUodHJpZ3Jl
cG9fcmVwb3NpdG9yeSwgdHJpZ3JlcG9fZ3JvdXApKTsKIAogQ1JFQVRFIFRBQkxFIHRyaWdnZXJh
YmxlX2NvbmZpZ3VyYXRpb25zICgKKyAgICB0cmlnY29uZmlnX2lkIHNlcmlhbCBQUklNQVJZIEtF
WSwKICAgICB0cmlnY29uZmlnX3Rlc3QgaW50ZWdlciBSRUZFUkVOQ0VTIHRlc3RzIE5PVCBOVUxM
LAogICAgIHRyaWdjb25maWdfcGxhdGZvcm0gaW50ZWdlciBSRUZFUkVOQ0VTIHBsYXRmb3JtcyBO
T1QgTlVMTCwKICAgICB0cmlnY29uZmlnX3RyaWdnZXJhYmxlIGludGVnZXIgUkVGRVJFTkNFUyBi
dWlsZF90cmlnZ2VyYWJsZXMgTk9UIE5VTEwsCiAgICAgQ09OU1RSQUlOVCB0cmlnZ2VyYWJsZV9t
dXN0X2JlX3VuaXF1ZV9mb3JfdGVzdF9hbmRfcGxhdGZvcm0gVU5JUVVFKHRyaWdjb25maWdfdGVz
dCwgdHJpZ2NvbmZpZ19wbGF0Zm9ybSkpOwogCitDUkVBVEUgVFlQRSBhbmFseXNpc190ZXN0X2dy
b3VwX3JlcGV0aXRpb25fdHlwZSBhcyBFTlVNICgnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCcs
ICdwYWlyZWQtcGFyYWxsZWwnKTsKK0NSRUFURSBUQUJMRSB0cmlnZ2VyYWJsZV9jb25maWd1cmF0
aW9uX3JlcGV0aXRpb25fdHlwZXMgKAorICAgIGNvbmZpZ3JlcGV0aXRpb25fY29uZmlnIElOVEVH
RVIgTk9UIE5VTEwgUkVGRVJFTkNFUyB0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucyBPTiBERUxF
VEUgQ0FTQ0FERSwKKyAgICBjb25maWdyZXBldGl0aW9uX3R5cGUgYW5hbHlzaXNfdGVzdF9ncm91
cF9yZXBldGl0aW9uX3R5cGUgTk9UIE5VTEwsCisgICAgUFJJTUFSWSBLRVkgKGNvbmZpZ3JlcGV0
aXRpb25fY29uZmlnLCBjb25maWdyZXBldGl0aW9uX3R5cGUpKTsKKwogQ1JFQVRFIFRBQkxFIHVw
bG9hZGVkX2ZpbGVzICgKICAgICBmaWxlX2lkIHNlcmlhbCBQUklNQVJZIEtFWSwKICAgICBmaWxl
X2NyZWF0ZWRfYXQgdGltZXN0YW1wIE5PVCBOVUxMIERFRkFVTFQgKENVUlJFTlRfVElNRVNUQU1Q
IEFUIFRJTUUgWk9ORSAnVVRDJyksCkBAIC0yODMsNyArMjkxLDYgQEAgQ1JFQVRFIFRBQkxFIHVw
bG9hZGVkX2ZpbGVzICgKIENSRUFURSBJTkRFWCBmaWxlX2F1dGhvcl9pbmRleCBPTiB1cGxvYWRl
ZF9maWxlcyhmaWxlX2F1dGhvcik7CiBDUkVBVEUgVU5JUVVFIElOREVYIGZpbGVfc2hhMjU2X2lu
ZGV4IE9OIHVwbG9hZGVkX2ZpbGVzKGZpbGVfc2hhMjU2KSBXSEVSRSBmaWxlX2RlbGV0ZWRfYXQg
aXMgTlVMTDsKIAotQ1JFQVRFIFRZUEUgYW5hbHlzaXNfdGVzdF9ncm91cF9yZXBldGl0aW9uX3R5
cGUgYXMgRU5VTSAoJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnKTsKIENSRUFURSBUQUJMRSBh
bmFseXNpc190ZXN0X2dyb3VwcyAoCiAgICAgdGVzdGdyb3VwX2lkIHNlcmlhbCBQUklNQVJZIEtF
WSwKICAgICB0ZXN0Z3JvdXBfdGFzayBpbnRlZ2VyIFJFRkVSRU5DRVMgYW5hbHlzaXNfdGFza3Mg
Tk9UIE5VTEwsCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWlncmF0ZS1k
YXRhYmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWlncmF0ZS1kYXRhYmFzZS5z
cWwKaW5kZXggYmQxZmMyNGNhNWZhNmJkNjRlNjk0MGM0YzQzZTRhYWMzMGU4MzY2ZS4uYzNlNWM1
MmI3MDllOWYwODY2ZWUwY2RhM2I3M2JkYTQzNDFlNjNkOSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL21pZ3JhdGUtZGF0YWJhc2Uuc3FsCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9taWdyYXRlLWRhdGFiYXNlLnNxbApAQCAtMyw3ICszLDcgQEAgRE8gJCQKIEJF
R0lOCiAKIElGIE5PVCBFWElTVFMgKFNFTEVDVCBOVUxMIEZST00gcGdfdHlwZSBXSEVSRSB0eXBu
YW1lID0gJ2FuYWx5c2lzX3Rlc3RfZ3JvdXBfcmVwZXRpdGlvbl90eXBlJykgVEhFTgotICAgIENS
RUFURSBUWVBFIGFuYWx5c2lzX3Rlc3RfZ3JvdXBfcmVwZXRpdGlvbl90eXBlIGFzIEVOVU0gKCdh
bHRlcm5hdGluZycsICdzZXF1ZW50aWFsJyk7CisgICAgQ1JFQVRFIFRZUEUgYW5hbHlzaXNfdGVz
dF9ncm91cF9yZXBldGl0aW9uX3R5cGUgYXMgRU5VTSAoJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRp
YWwnLCAncGFpcmVkLXBhcmFsbGVsJyk7CiBFTkQgSUY7CiAKIEFMVEVSIFRBQkxFIGJ1aWxkX3Jl
cXVlc3RzIEFERCBDT0xVTU4gSUYgTk9UIEVYSVNUUyByZXF1ZXN0X3N0YXR1c19kZXNjcmlwdGlv
biB2YXJjaGFyKDEwMjQpIERFRkFVTFQgTlVMTDsKQEAgLTIyLDYgKzIyLDExIEBAIENSRUFURSBU
QUJMRSBJRiBOT1QgRVhJU1RTIHBsYXRmb3JtX2dyb3VwcyAoCiAgICAgcGxhdGZvcm1ncm91cF9u
YW1lIHZhcmNoYXIoNjQpIE5PVCBOVUxMLAogICAgIENPTlNUUkFJTlQgcGxhdGZvcm1fZ3JvdXBf
bmFtZV9tdXN0X2JlX3VuaXF1ZSBVTklRVUUgKHBsYXRmb3JtZ3JvdXBfbmFtZSkpOwogCitDUkVB
VEUgVEFCTEUgSUYgTk9UIEVYSVNUUyB0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRp
b25fdHlwZXMgKAorICAgIGNvbmZpZ3JlcGV0aXRpb25fY29uZmlnIElOVEVHRVIgTk9UIE5VTEwg
UkVGRVJFTkNFUyB0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucyBPTiBERUxFVEUgQ0FTQ0FERSwK
KyAgICBjb25maWdyZXBldGl0aW9uX3R5cGUgYW5hbHlzaXNfdGVzdF9ncm91cF9yZXBldGl0aW9u
X3R5cGUgTk9UIE5VTEwsCisgICAgUFJJTUFSWSBLRVkgKGNvbmZpZ3JlcGV0aXRpb25fY29uZmln
LCBjb25maWdyZXBldGl0aW9uX3R5cGUpKTsKKwogQUxURVIgVEFCTEUgcGxhdGZvcm1zIEFERCBD
T0xVTU4gSUYgTk9UIEVYSVNUUyBwbGF0Zm9ybV9ncm91cCBpbnRlZ2VyIFJFRkVSRU5DRVMgcGxh
dGZvcm1fZ3JvdXBzIERFRkFVTFQgTlVMTDsKIAogSUYgRVhJU1RTIChTRUxFQ1QgTlVMTCBGUk9N
IGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5zIFdIRVJFIFRBQkxFX05BTUUgPSAnYnVpbGRzJyBB
TkQgQ09MVU1OX05BTUUgPSAnYnVpbGRfbnVtYmVyJykgVEhFTgpAQCAtNDYsNCArNTEsNyBAQCBJ
RiBFWElTVFMgKFNFTEVDVCBOVUxMIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLmNvbHVtbnMgV0hF
UkUgVEFCTEVfTkFNRSA9ICdidWlsZAogICAgIEFMVEVSIFRBQkxFIGJ1aWxkX3NsYXZlcyBSRU5B
TUUgVE8gYnVpbGRfd29ya2VyczsKIEVORCBJRjsKIAotRU5EJCQ7ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQorRU5EJCQ7CisKK0FMVEVSIFRBQkxFIHRyaWdnZXJhYmxlX2NvbmZpZ3VyYXRp
b25zIEFERCBDT0xVTU4gSUYgTk9UIEVYSVNUUyB0cmlnY29uZmlnX2lkIHNlcmlhbCBQUklNQVJZ
IEtFWTsKK0FMVEVSIFRZUEUgYW5hbHlzaXNfdGVzdF9ncm91cF9yZXBldGl0aW9uX3R5cGUgQURE
IFZBTFVFIElGIE5PVCBFWElTVFMgJ3BhaXJlZC1wYXJhbGxlbCc7CmRpZmYgLS1naXQgYS9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUucGhwIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLnBo
cAppbmRleCA5MmVkYjZmOGQ1NzAzMmUyZWVhMWFhZDVkYWY2YTM2MWI2NDMzYTYwLi5hMTNkY2Iy
MmU1N2VmYmZjZTRlZjdmMjY1ZGY1MTk3MGRhZmUyYzQ0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUucGhwCisrKyBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS5waHAK
QEAgLTM3LDEwICszNywxOSBAQCBmdW5jdGlvbiBtYWluKCRwb3N0X2RhdGEpCiAKICAgICBmb3Jl
YWNoICgkY29uZmlndXJhdGlvbnMgYXMgJiRlbnRyeSkgewogICAgICAgICAkY29uZmlnX2luZm8g
PSBhcnJheSgndGVzdCcgPT4gJGVudHJ5Wyd0ZXN0J10sICdwbGF0Zm9ybScgPT4gJGVudHJ5Wydw
bGF0Zm9ybSddLCAndHJpZ2dlcmFibGUnID0+ICR0cmlnZ2VyYWJsZV9pZCk7Ci0gICAgICAgIGlm
ICghJGRiLT5pbnNlcnRfcm93KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsICd0cmlnY29u
ZmlnJywgJGNvbmZpZ19pbmZvLCBudWxsKSkgeworICAgICAgICAkbmV3X3RyaWdnZXJhYmxlX2lk
ID0gJGRiLT5pbnNlcnRfcm93KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsICd0cmlnY29u
ZmlnJywgJGNvbmZpZ19pbmZvKTsKKyAgICAgICAgaWYgKCEkbmV3X3RyaWdnZXJhYmxlX2lkKSB7
CiAgICAgICAgICAgICAkZGItPnJvbGxiYWNrX3RyYW5zYWN0aW9uKCk7CiAgICAgICAgICAgICBl
eGl0X3dpdGhfZXJyb3IoJ0ZhaWxlZFRvSW5zZXJ0Q29uZmlndXJhdGlvbicsIGFycmF5KCdlbnRy
eScgPT4gJGVudHJ5KSk7CiAgICAgICAgIH0KKyAgICAgICAgJHJlcGV0aXRpb25fdHlwZXMgPSBh
cnJheV9nZXQoJGVudHJ5LCAnc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzJywgYXJyYXkoKSk7Cisg
ICAgICAgIGZvcmVhY2ggKCRyZXBldGl0aW9uX3R5cGVzIGFzICRyZXBldGl0aW9uX3R5cGUpIHsK
KyAgICAgICAgICAgIGlmICghJGRiLT5pbnNlcnRfcm93KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0
aW9uX3JlcGV0aXRpb25fdHlwZXMnLCBOVUxMLAorICAgICAgICAgICAgICAgIGFycmF5KCdjb25m
aWdyZXBldGl0aW9uX2NvbmZpZycgPT4gJG5ld190cmlnZ2VyYWJsZV9pZCwgJ2NvbmZpZ3JlcGV0
aXRpb25fdHlwZScgPT4gJHJlcGV0aXRpb25fdHlwZSksIE5VTEwpKSB7CisgICAgICAgICAgICAg
ICAgJGRiLT5yb2xsYmFja190cmFuc2FjdGlvbigpOworICAgICAgICAgICAgICAgIGV4aXRfd2l0
aF9lcnJvcignRmFpbGVkVG9JbnNlcnRSZXBldGl0aW9uVHlwZUZvclRyaWdnZXJhYmxlQ29uZmln
Jyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiAKICAgICBmb3JlYWNoICgkcmVw
b3NpdG9yeV9ncm91cHMgYXMgJiRncm91cCkgewpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1zZXRzLWhlbHBlcnMucGhwIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1zZXRzLWhlbHBlcnMucGhw
CmluZGV4IDc3NzdlMWFkNjJhZmRhYzc2YzczMTQzMzUyMmMxYjI2YTAyN2M4NGEuLjdhMzAwZmI0
OTRlMzczYjU3NmZhZWI3NGY1NDQ3YjIwOWU4Y2FhYTMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtc2V0cy1oZWxwZXJzLnBocAorKysg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0LXNldHMtaGVs
cGVycy5waHAKQEAgLTYsNyArNiw3IEBAIHJlcXVpcmVfb25jZSgnY29tbWl0LWxvZy1mZXRjaGVy
LnBocCcpOwogIyBGSVhNRTogU2hvdWxkIGNyZWF0ZSBhIGhlbHBlciBjbGFzcyBmb3IgYmVsb3cg
MyBoZWxwZXIgZnVuY3Rpb25zIHRvIGF2b2lkIHBhc3NpbmcgbG9uZyBhcmd1bWVudCBsaXN0Lgog
ZnVuY3Rpb24gY3JlYXRlX3Rlc3RfZ3JvdXBfYW5kX2J1aWxkX3JlcXVlc3RzKCRkYiwgJGNvbW1p
dF9zZXRzLCAkdGFza19pZCwgJG5hbWUsICRhdXRob3IsICR0cmlnZ2VyYWJsZV9pZCwgJHBsYXRm
b3JtX2lkLCAkdGVzdF9pZCwgJHJlcGV0aXRpb25fY291bnQsICRyZXBldGl0aW9uX3R5cGUsICRu
ZWVkc19ub3RpZmljYXRpb24pCiB7Ci0gICAgYXNzZXJ0KGluX2FycmF5KCRyZXBldGl0aW9uX3R5
cGUsIGFycmF5KCdhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJykpKTsKKyAgICBhc3NlcnQoaW5f
YXJyYXkoJHJlcGV0aXRpb25fdHlwZSwgYXJyYXkoJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwn
LCAncGFpcmVkLXBhcmFsbGVsJykpKTsKICAgICBsaXN0ICgkYnVpbGRfY29uZmlndXJhdGlvbl9s
aXN0LCAkdGVzdF9jb25maWd1cmF0aW9uX2xpc3QpID0gaW5zZXJ0X2NvbW1pdF9zZXRzX2FuZF9j
b25zdHJ1Y3RfY29uZmlndXJhdGlvbl9saXN0KCRkYiwgJGNvbW1pdF9zZXRzKTsKIAogICAgICRn
cm91cF9pZCA9ICRkYi0+aW5zZXJ0X3JvdygnYW5hbHlzaXNfdGVzdF9ncm91cHMnLCAndGVzdGdy
b3VwJywKQEAgLTI0LDcgKzI0LDcgQEAgZnVuY3Rpb24gY3JlYXRlX3Rlc3RfZ3JvdXBfYW5kX2J1
aWxkX3JlcXVlc3RzKCRkYiwgJGNvbW1pdF9zZXRzLCAkdGFza19pZCwgJG5hbWUKICAgICAgICAg
ICAgICAgICBpbnNlcnRfYnVpbGRfcmVxdWVzdF9mb3JfY29uZmlndXJhdGlvbigkZGIsICR0ZXN0
X2NvbmZpZ3VyYXRpb24sICRvcmRlcisrLCAkdHJpZ2dlcmFibGVfaWQsICRwbGF0Zm9ybV9pZCwg
JHRlc3RfaWQsICRncm91cF9pZCk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgewotICAgICAgICBh
c3NlcnQoJHJlcGV0aXRpb25fdHlwZSA9PSAnYWx0ZXJuYXRpbmcnKTsKKyAgICAgICAgYXNzZXJ0
KCRyZXBldGl0aW9uX3R5cGUgPT0gJ2FsdGVybmF0aW5nJyB8fCAkcmVwZXRpdGlvbl90eXBlID09
ICdwYWlyZWQtcGFyYWxsZWwnKTsKICAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgJHJlcGV0aXRp
b25fY291bnQ7ICRpKyspIHsKICAgICAgICAgICAgIGZvcmVhY2ggKCR0ZXN0X2NvbmZpZ3VyYXRp
b25fbGlzdCBhcyAkdGVzdF9jb25maWd1cmF0aW9uKQogICAgICAgICAgICAgICAgIGluc2VydF9i
dWlsZF9yZXF1ZXN0X2Zvcl9jb25maWd1cmF0aW9uKCRkYiwgJHRlc3RfY29uZmlndXJhdGlvbiwg
JG9yZGVyKyssICR0cmlnZ2VyYWJsZV9pZCwgJHBsYXRmb3JtX2lkLCAkdGVzdF9pZCwgJGdyb3Vw
X2lkKTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVk
ZS9qc29uLWhlYWRlci5waHAgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1
ZGUvanNvbi1oZWFkZXIucGhwCmluZGV4IDc4ZThkMGJlMjhlNjQ3NTM0YWNkMjkwMGQxZmNmZmE3
MDcwZDQ4MzIuLjI5MjdiZWZjMjBhMWY0NGVlN2RmNmFjMTZiYTljYjdiZjkxMTNlODMgMTAwNjQ0
Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9qc29uLWhlYWRl
ci5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2pzb24t
aGVhZGVyLnBocApAQCAtMTgyLDIwICsxODIsMzEgQEAgZnVuY3Rpb24gZmluZF90cmlnZ2VyYWJs
ZV9mb3JfdGFzaygkZGIsICR0YXNrX2lkKSB7CiAgICAgJHBhdGhfcmVzb2x2ZXIgPSBuZXcgVGVz
dFBhdGhSZXNvbHZlcigkZGIpOwogICAgICR0ZXN0X2lkcyA9ICRwYXRoX3Jlc29sdmVyLT5hbmNl
c3RvcnNfZm9yX3Rlc3QoJHRhcmdldF90ZXN0X2lkKTsKIAotICAgICRyZXN1bHRzID0gJGRiLT5x
dWVyeV9hbmRfZmV0Y2hfYWxsKCdTRUxFQ1QgdHJpZ2NvbmZpZ190cmlnZ2VyYWJsZSBBUyAidHJp
Z2dlcmFibGUiLCB0cmlnY29uZmlnX3Rlc3QgQVMgInRlc3QiCisgICAgJHJlc3VsdHMgPSAkZGIt
PnF1ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVDVCB0cmlnY29uZmlnX2lkIEFTICJjb25maWdfaWQi
LAorICAgICAgICB0cmlnY29uZmlnX3RyaWdnZXJhYmxlIEFTICJ0cmlnZ2VyYWJsZSIsIHRyaWdj
b25maWdfdGVzdCBBUyAidGVzdCIKICAgICAgICAgRlJPTSB0cmlnZ2VyYWJsZV9jb25maWd1cmF0
aW9ucyBXSEVSRSB0cmlnY29uZmlnX3BsYXRmb3JtID0gJDEgQU5EIHRyaWdjb25maWdfdGVzdCA9
IEFOWSgkMiknLAogICAgICAgICBhcnJheSgkcGxhdGZvcm1faWQsICd7JyAuIGltcGxvZGUoJywg
JywgJHRlc3RfaWRzKSAuICd9JykpOwogICAgIGlmICghJHJlc3VsdHMpCiAgICAgICAgIHJldHVy
biBOVUxMOwogCiAgICAgJHRlc3RfdG9fdHJpZ2dlcmFibGUgPSBhcnJheSgpOwotICAgIGZvcmVh
Y2ggKCRyZXN1bHRzIGFzICRyb3cpCisgICAgJHRlc3RfdG9fdHJpZ2NvbmZpZyA9IGFycmF5KCk7
CisgICAgZm9yZWFjaCAoJHJlc3VsdHMgYXMgJHJvdykgewogICAgICAgICAkdGVzdF90b190cmln
Z2VyYWJsZVskcm93Wyd0ZXN0J11dID0gJHJvd1sndHJpZ2dlcmFibGUnXTsKKyAgICAgICAgJHRl
c3RfdG9fdHJpZ2NvbmZpZ1skcm93Wyd0ZXN0J11dID0gJHJvd1snY29uZmlnX2lkJ107CisgICAg
fQorCisgICAgJGNvbmZpZ3JlcGV0aXRpb25fcm93cyA9ICRkYi0+c2VsZWN0X3Jvd3MoJ3RyaWdn
ZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcycsICdjb25maWdyZXBldGl0aW9u
JywgYXJyYXkoKSk7CisgICAgJHRyaWdjb25maWdfdG9fcmVwZXRpdGlvbl90eXBlcyA9IGFycmF5
KCk7CisgICAgZm9yZWFjaCAoJGNvbmZpZ3JlcGV0aXRpb25fcm93cyBhcyAkcm93KQorICAgICAg
ICBhcnJheV9wdXNoKGFycmF5X2Vuc3VyZV9pdGVtX2hhc19hcnJheSgkdHJpZ2NvbmZpZ190b19y
ZXBldGl0aW9uX3R5cGVzLCAkcm93Wydjb25maWdyZXBldGl0aW9uX2NvbmZpZyddKSwgJHJvd1sn
Y29uZmlncmVwZXRpdGlvbl90eXBlJ10pOwogCiAgICAgZm9yZWFjaCAoJHRlc3RfaWRzIGFzICR0
ZXN0X2lkKSB7CiAgICAgICAgICR0cmlnZ2VyYWJsZSA9IGFycmF5X2dldCgkdGVzdF90b190cmln
Z2VyYWJsZSwgJHRlc3RfaWQpOwotICAgICAgICBpZiAoJHRyaWdnZXJhYmxlKQotICAgICAgICAg
ICAgcmV0dXJuIGFycmF5KCdpZCcgPT4gJHRyaWdnZXJhYmxlLCAndGVzdCcgPT4gJHRlc3RfaWQs
ICdwbGF0Zm9ybScgPT4gJHBsYXRmb3JtX2lkKTsKKyAgICAgICAgaWYgKCR0cmlnZ2VyYWJsZSkg
eworICAgICAgICAgICAgJHN1cHBvcnRlZF9yZXBldGl0aW9uX3R5cGVzID0gJHRyaWdjb25maWdf
dG9fcmVwZXRpdGlvbl90eXBlc1skdGVzdF90b190cmlnY29uZmlnWyR0ZXN0X2lkXV07CisgICAg
ICAgICAgICByZXR1cm4gYXJyYXkoJ2lkJyA9PiAkdHJpZ2dlcmFibGUsICd0ZXN0JyA9PiAkdGVz
dF9pZCwgJ3BsYXRmb3JtJyA9PiAkcGxhdGZvcm1faWQsICdzdXBwb3J0ZWRSZXBldGl0aW9uVHlw
ZXMnID0+ICRzdXBwb3J0ZWRfcmVwZXRpdGlvbl90eXBlcyk7CisgICAgICAgIH0KICAgICB9CiAK
ICAgICByZXR1cm4gTlVMTDsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvaW5jbHVkZS9tYW5pZmVzdC1nZW5lcmF0b3IucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy9pbmNsdWRlL21hbmlmZXN0LWdlbmVyYXRvci5waHAKaW5kZXggMTZkYmQ3
ZGY5YTRhMTNhMDhkODE3ZDZjODI2YzkxMDVkMDM1YmM3ZS4uNzgyZmNlYmM5YmRjYjJlNWFhNDdi
NTNlYjYyZTdkYmY2NTg1OGQ2NyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy9pbmNsdWRlL21hbmlmZXN0LWdlbmVyYXRvci5waHAKKysrIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL21hbmlmZXN0LWdlbmVyYXRvci5waHAKQEAgLTI2
MSw2ICsyNjEsMTEgQEAgY2xhc3MgTWFuaWZlc3RHZW5lcmF0b3IgewogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAKKyAgICAgICAgJHJlcGV0aXRpb25fdHlwZXNfYnlfY29uZmlndXJhdGlvbiA9
ICRkYi0+ZmV0Y2hfdGFibGUoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90
eXBlcycpOworICAgICAgICAkcmVwZXRpdGlvbl90eXBlc19ieV9jb25maWcgPSBhcnJheSgpOwor
ICAgICAgICBmb3JlYWNoICgkcmVwZXRpdGlvbl90eXBlc19ieV9jb25maWd1cmF0aW9uIGFzICYk
cm93KQorICAgICAgICAgICAgYXJyYXlfcHVzaChhcnJheV9lbnN1cmVfaXRlbV9oYXNfYXJyYXko
JHJlcGV0aXRpb25fdHlwZXNfYnlfY29uZmlnLCAkcm93Wydjb25maWdyZXBldGl0aW9uX2NvbmZp
ZyddKSwgJHJvd1snY29uZmlncmVwZXRpdGlvbl90eXBlJ10pOworCiAgICAgICAgICRjb25maWd1
cmF0aW9uX21hcCA9ICRkYi0+ZmV0Y2hfdGFibGUoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25z
Jyk7CiAgICAgICAgIGlmICgkY29uZmlndXJhdGlvbl9tYXApIHsKICAgICAgICAgICAgIGZvcmVh
Y2ggKCRjb25maWd1cmF0aW9uX21hcCBhcyAmJHJvdykgewpAQCAtMjY4LDcgKzI3Myw4IEBAIGNs
YXNzIE1hbmlmZXN0R2VuZXJhdG9yIHsKICAgICAgICAgICAgICAgICBpZiAoIWFycmF5X2tleV9l
eGlzdHMoJHRyaWdnZXJhYmxlX2lkLCAkaWRfdG9fdHJpZ2dlcmFibGUpKQogICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAkdHJpZ2dlcmFibGUgPSAmJGlkX3Rv
X3RyaWdnZXJhYmxlWyR0cmlnZ2VyYWJsZV9pZF07Ci0gICAgICAgICAgICAgICAgYXJyYXlfcHVz
aCgkdHJpZ2dlcmFibGVbJ2NvbmZpZ3VyYXRpb25zJ10sIGFycmF5KCRyb3dbJ3RyaWdjb25maWdf
dGVzdCddLCAkcm93Wyd0cmlnY29uZmlnX3BsYXRmb3JtJ10pKTsKKyAgICAgICAgICAgICAgICAk
cmVwZXRpdGlvbl90eXBlcyA9ICRyZXBldGl0aW9uX3R5cGVzX2J5X2NvbmZpZ1skcm93Wyd0cmln
Y29uZmlnX2lkJ11dOworICAgICAgICAgICAgICAgIGFycmF5X3B1c2goJHRyaWdnZXJhYmxlWydj
b25maWd1cmF0aW9ucyddLCBhcnJheSgkcm93Wyd0cmlnY29uZmlnX3Rlc3QnXSwgJHJvd1sndHJp
Z2NvbmZpZ19wbGF0Zm9ybSddLCAkcmVwZXRpdGlvbl90eXBlcykpOwogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMv
cHJpdmlsZWdlZC1hcGkvYWRkLWJ1aWxkLXJlcXVlc3RzLnBocCBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvYWRkLWJ1aWxkLXJlcXVlc3RzLnBocAppbmRl
eCA5NTdhOWY0NzMxNDU3MDVmYWM1MjJkYjcyOTVjY2I4MDdjMjQ0Y2E3Li5mMzM5MzNiMDk5YWYw
Nzc1OGM1ZTdkODE1MGJiYTYzOTA5NjYwOGMyIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3ByaXZpbGVnZWQtYXBpL2FkZC1idWlsZC1yZXF1ZXN0cy5waHAKKysr
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9hZGQtYnVp
bGQtcmVxdWVzdHMucGhwCkBAIC0zMSwyOCArMzEsMjcgQEAgZnVuY3Rpb24gbWFpbigpIHsKICAg
ICAgICAgZXhpdF93aXRoX2Vycm9yKCdOb1Rlc3RpbmdCdWlsZFJlcXVlc3RzJyk7CiAKICAgICAk
cmVwZXRpdGlvbl90eXBlID0gJHRlc3RfZ3JvdXBbJ3Rlc3Rncm91cF9yZXBldGl0aW9uX3R5cGUn
XTsKLSAgICBhc3NlcnQoaW5fYXJyYXkoJHJlcGV0aXRpb25fdHlwZSwgWydhbHRlcm5hdGluZycs
ICdzZXF1ZW50aWFsJ10pKTsKLSAgICAkaXNfYWx0ZXJuYXRpbmdfdHlwZSA9ICRyZXBldGl0aW9u
X3R5cGUgPT0gJ2FsdGVybmF0aW5nJzsKLSAgICBpZiAoJGlzX2FsdGVybmF0aW5nX3R5cGUgJiYg
JGNvbW1pdF9zZXRfaWQpCi0gICAgICAgIGV4aXRfd2l0aF9lcnJvcignQ29tbWl0U2V0Tm90U3Vw
cG9ydGVkRm9yQWx0ZXJuYXRpbmdSZXBldGl0aW9uVHlwZScpOworICAgIGFzc2VydChpbl9hcnJh
eSgkcmVwZXRpdGlvbl90eXBlLCBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnLCAncGFpcmVk
LXBhcmFsbGVsJ10pKTsKKyAgICAkaXNfc2VxdWVudGlhbF90eXBlID0gJHJlcGV0aXRpb25fdHlw
ZSA9PSAnc2VxdWVudGlhbCc7CisgICAgaWYgKCEkaXNfc2VxdWVudGlhbF90eXBlICYmICRjb21t
aXRfc2V0X2lkKQorICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ0NvbW1pdFNldE5vdFN1cHBvcnRl
ZFJlcGV0aXRpb25UeXBlJyk7CiAKICAgICAkZXhpc3RpbmdfdGVzdF90eXBlX2J1aWxkX3JlcXVl
c3RzID0gYXJyYXlfZmlsdGVyKCRleGlzdGluZ19idWlsZF9yZXF1ZXN0cywgZnVuY3Rpb24oJGJ1
aWxkX3JlcXVlc3QpIHsKICAgICAgICAgcmV0dXJuICRidWlsZF9yZXF1ZXN0WydyZXF1ZXN0X29y
ZGVyJ10gPj0gMDsKICAgICB9KTsKIAotICAgIGlmICgkaXNfYWx0ZXJuYXRpbmdfdHlwZSkKLSAg
ICAgICAgYWRkX2FsdGVybmF0aW5nX2J1aWxkX3JlcXVlc3RzKCRkYiwgJGV4aXN0aW5nX3Rlc3Rf
dHlwZV9idWlsZF9yZXF1ZXN0cywgJGFkZGl0aW9uYWxfYnVpbGRfcmVxdWVzdF9jb3VudCwgJGN1
cnJlbnRfb3JkZXIpOwotICAgIGVsc2UgeworICAgIGlmICgkaXNfc2VxdWVudGlhbF90eXBlKSB7
CiAgICAgICAgIGlmICgkY29tbWl0X3NldF9pZCkKICAgICAgICAgICAgIGFkZF9zZXF1ZW50aWFs
X2J1aWxkX3JlcXVlc3RzX2Zvcl9jb21taXRfc2V0KCRkYiwgJGV4aXN0aW5nX3Rlc3RfdHlwZV9i
dWlsZF9yZXF1ZXN0cywgJGFkZGl0aW9uYWxfYnVpbGRfcmVxdWVzdF9jb3VudCwgJGNvbW1pdF9z
ZXRfaWQpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBhZGRfc2VxdWVudGlhbF9idWlsZF9y
ZXF1ZXN0c19mb3JfYWxsX2NvbW1pdF9zZXRzKCRkYiwgJGV4aXN0aW5nX2J1aWxkX3JlcXVlc3Rz
LCAkYWRkaXRpb25hbF9idWlsZF9yZXF1ZXN0X2NvdW50LCAkdGVzdF9ncm91cF9pZCk7Ci0gICAg
fQorICAgIH0gZWxzZQorICAgICAgICBhZGRfYWx0ZXJuYXRpbmdfb3JfcGFpcmVkX3BhcmFsbGVs
X2J1aWxkX3JlcXVlc3RzKCRkYiwgJGV4aXN0aW5nX3Rlc3RfdHlwZV9idWlsZF9yZXF1ZXN0cywg
JGFkZGl0aW9uYWxfYnVpbGRfcmVxdWVzdF9jb3VudCwgJGN1cnJlbnRfb3JkZXIpOwogCiAgICAg
ZXhpdF93aXRoX3N1Y2Nlc3MoKTsKIH0KIAotZnVuY3Rpb24gYWRkX2FsdGVybmF0aW5nX2J1aWxk
X3JlcXVlc3RzKCRkYiwgJGV4aXN0aW5nX2J1aWxkX3JlcXVlc3RzLCAkYWRkaXRpb25hbF9idWls
ZF9yZXF1ZXN0X2NvdW50LCAkb3JkZXIpCitmdW5jdGlvbiBhZGRfYWx0ZXJuYXRpbmdfb3JfcGFp
cmVkX3BhcmFsbGVsX2J1aWxkX3JlcXVlc3RzKCRkYiwgJGV4aXN0aW5nX2J1aWxkX3JlcXVlc3Rz
LCAkYWRkaXRpb25hbF9idWlsZF9yZXF1ZXN0X2NvdW50LCAkb3JkZXIpCiB7CiAgICAgJGNvbW1p
dF9zZXRzID0gYXJyYXkoKTsKICAgICAkYnVpbGRfcmVxdWVzdF9ieV9jb21taXRfc2V0ID0gYXJy
YXkoKTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJpdmls
ZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzay5waHAKaW5kZXgg
MmRjNzQ3Y2JkZTI2NzllM2Y5NmFkNTkwMGIwNmRmMzJhMzc4ZTFhMy4uZTcwMDdiMTEwZTAwYmY1
NTY0ZDFkYmI3MGQxY2Y0NGJjY2RjZTM1NiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzay5waHAKKysr
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUt
YW5hbHlzaXMtdGFzay5waHAKQEAgLTIxLDcgKzIxLDcgQEAgZnVuY3Rpb24gbWFpbigpIHsKICAg
ICBpZiAoISRuYW1lKQogICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ01pc3NpbmdOYW1lJywgYXJy
YXkoJ25hbWUnID0+ICRuYW1lKSk7CiAKLSAgICBpZiAoIWluX2FycmF5KCRyZXBldGl0aW9uX3R5
cGUsIGFycmF5KCdhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJykpKQorICAgIGlmICghaW5fYXJy
YXkoJHJlcGV0aXRpb25fdHlwZSwgYXJyYXkoJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnLCAn
cGFpcmVkLXBhcmFsbGVsJykpKQogICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ0ludmFsaWRSZXBl
dGl0aW9uVHlwZScsIGFycmF5KCdyZXBldGl0aW9uVHlwZScgPT4gJHJlcGV0aXRpb25fdHlwZSkp
OwogCiAgICAgJHJhbmdlID0gdmFsaWRhdGVfYXJndW1lbnRzKCRkYXRhLCBhcnJheSgnc3RhcnRS
dW4nID0+ICdpbnQnLCAnZW5kUnVuJyA9PiAnaW50JykpOwpAQCAtODYsNiArODYsMTAgQEAgZnVu
Y3Rpb24gbWFpbigpIHsKICAgICAgICAgICAgICRkYi0+cm9sbGJhY2tfdHJhbnNhY3Rpb24oKTsK
ICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignSW5jb25zaXN0ZW50UGxhdGZvcm0nLCBhcnJh
eSgnY29uZmlnUGxhdGZvcm0nID0+ICRjb25maWdbJ2NvbmZpZ19wbGF0Zm9ybSddLCAndGFza1Bs
YXRmb3JtJyA9PiAkdHJpZ2dlcmFibGVbJ3BsYXRmb3JtJ10pKTsKICAgICAgICAgfQorICAgICAg
ICBpZiAoIWluX2FycmF5KCRyZXBldGl0aW9uX3R5cGUsICR0cmlnZ2VyYWJsZVsnc3VwcG9ydGVk
UmVwZXRpdGlvblR5cGVzJ10pKSB7CisgICAgICAgICAgICAkZGItPnJvbGxiYWNrX3RyYW5zYWN0
aW9uKCk7CisgICAgICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ1Vuc3VwcG9ydGVkUmVwZXRpdGlv
blR5cGUnLCBhcnJheSgncmVwZXRpdGlvblR5cGUnID0+ICRyZXBldGl0aW9uX3R5cGUpKTsKKyAg
ICAgICAgfQogICAgICAgICAkdHJpZ2dlcmFibGVfaWQgPSAkdHJpZ2dlcmFibGVbJ2lkJ107CiAg
ICAgICAgICR0ZXN0X2lkID0gJHRyaWdnZXJhYmxlWyd0ZXN0J107CiAgICAgICAgICRjb21taXRf
c2V0cyA9IGNvbW1pdF9zZXRzX2Zyb21fcmV2aXNpb25fc2V0cygkZGIsICR0cmlnZ2VyYWJsZV9p
ZCwgJHJldmlzaW9uX3NldF9saXN0KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAucGhwIGIvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91
cC5waHAKaW5kZXggZDIzYjJmZjk2NjgxYzhmYTg4ZWMwZjk3M2QxMGViZmYzNzI4ODg1My4uYWEx
MDY3MjdmMjhkMmVjMTI3M2M4ZjJiNGVmOTExNTUzNGZiZDI1MSAxMDA2NDQKLS0tIGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91
cC5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFw
aS9jcmVhdGUtdGVzdC1ncm91cC5waHAKQEAgLTQzLDcgKzQzLDcgQEAgZnVuY3Rpb24gbWFpbigp
CiAgICAgZWxzZSBpZiAoJHJlcGV0aXRpb25fY291bnQgPCAxKQogICAgICAgICBleGl0X3dpdGhf
ZXJyb3IoJ0ludmFsaWRSZXBldGl0aW9uQ291bnQnLCBhcnJheSgncmVwZXRpdGlvbkNvdW50JyA9
PiAkcmVwZXRpdGlvbl9jb3VudCkpOwogCi0gICAgaWYgKCFpbl9hcnJheSgkcmVwZXRpdGlvbl90
eXBlLCBhcnJheSgnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCcpKSkKKyAgICBpZiAoIWluX2Fy
cmF5KCRyZXBldGl0aW9uX3R5cGUsIGFycmF5KCdhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJywg
J3BhaXJlZC1wYXJhbGxlbCcpKSkKICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdJbnZhbGlkUmVw
ZXRpdGlvblR5cGUnLCBhcnJheSgncmVwZXRpdGlvblR5cGUnID0+ICRyZXBldGl0aW9uX3R5cGUp
KTsKIAogICAgICR0cmlnZ2VyYWJsZV9pZCA9IE5VTEw7CkBAIC01OSw2ICs1OSwxMCBAQCBmdW5j
dGlvbiBtYWluKCkKICAgICAgICAgJHRyaWdnZXJhYmxlID0gZmluZF90cmlnZ2VyYWJsZV9mb3Jf
dGFzaygkZGIsICR0YXNrX2lkKTsKICAgICAgICAgaWYgKCR0cmlnZ2VyYWJsZSkgewogICAgICAg
ICAgICAgJHRyaWdnZXJhYmxlX2lkID0gJHRyaWdnZXJhYmxlWydpZCddOworCisgICAgICAgICAg
ICBpZiAoIWluX2FycmF5KCRyZXBldGl0aW9uX3R5cGUsICR0cmlnZ2VyYWJsZVsnc3VwcG9ydGVk
UmVwZXRpdGlvblR5cGVzJ10pKQorICAgICAgICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignVW5z
dXBwb3J0ZWRSZXBldGl0aW9uVHlwZScsIGFycmF5KCdyZXBldGl0aW9uVHlwZScgPT4gJHJlcGV0
aXRpb25fdHlwZSkpOworCiAgICAgICAgICAgICBpZiAoISRwbGF0Zm9ybV9pZCAmJiAhJHRlc3Rf
aWQpIHsKICAgICAgICAgICAgICAgICAkcGxhdGZvcm1faWQgPSAkdHJpZ2dlcmFibGVbJ3BsYXRm
b3JtJ107CiAgICAgICAgICAgICAgICAgJHRlc3RfaWQgPSAkdHJpZ2dlcmFibGVbJ3Rlc3QnXTsK
QEAgLTczLDggKzc3LDE0IEBAIGZ1bmN0aW9uIG1haW4oKQogICAgIGlmICghJHRyaWdnZXJhYmxl
X2lkICYmICRwbGF0Zm9ybV9pZCAmJiAkdGVzdF9pZCkgewogICAgICAgICAkdHJpZ2dlcmFibGVf
Y29uZmlndXJhdGlvbiA9ICRkYi0+c2VsZWN0X2ZpcnN0X3JvdygndHJpZ2dlcmFibGVfY29uZmln
dXJhdGlvbnMnLCAndHJpZ2NvbmZpZycsCiAgICAgICAgICAgICBhcnJheSgndGVzdCcgPT4gJHRl
c3RfaWQsICdwbGF0Zm9ybScgPT4gJHBsYXRmb3JtX2lkKSk7Ci0gICAgICAgIGlmICgkdHJpZ2dl
cmFibGVfY29uZmlndXJhdGlvbikKKyAgICAgICAgaWYgKCR0cmlnZ2VyYWJsZV9jb25maWd1cmF0
aW9uKSB7CiAgICAgICAgICAgICAkdHJpZ2dlcmFibGVfaWQgPSAkdHJpZ2dlcmFibGVfY29uZmln
dXJhdGlvblsndHJpZ2NvbmZpZ190cmlnZ2VyYWJsZSddOworCisgICAgICAgICAgICAkaXNfcmVw
ZXRpdGlvbl90eXBlX3N1cHBvcnRlZCA9ICEhJGRiLT5zZWxlY3RfZmlyc3Rfcm93KCd0cmlnZ2Vy
YWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMnLAorICAgICAgICAgICAgICAgICdj
b25maWdyZXBldGl0aW9uJywgYXJyYXkoJ2NvbmZpZycgPT4gJHRyaWdnZXJhYmxlX2NvbmZpZ3Vy
YXRpb25bJ3RyaWdjb25maWdfaWQnXSwgJ3R5cGUnID0+ICRyZXBldGl0aW9uX3R5cGUpKTsKKyAg
ICAgICAgICAgIGlmICghJGlzX3JlcGV0aXRpb25fdHlwZV9zdXBwb3J0ZWQpCisgICAgICAgICAg
ICAgICAgZXhpdF93aXRoX2Vycm9yKCdVbnN1cHBvcnRlZFJlcGV0aXRpb25UeXBlJywgYXJyYXko
J3JlcGV0aXRpb25UeXBlJyA9PiAkcmVwZXRpdGlvbl90eXBlKSk7CisgICAgICAgIH0KICAgICB9
CiAKICAgICBpZiAoISR0cmlnZ2VyYWJsZV9pZCkKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tbWl0LXNldC1yYW5nZS1iaXNlY3Rvci5qcyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tbWl0LXNldC1yYW5nZS1iaXNlY3Rvci5q
cwppbmRleCA2NTE5NThmYWZjZTFiOTYxZDYwMjZkOGE4Yjk2ZDJlMjBjZDFjNjMwLi4xNzVmMjkx
MmQ2YmE0YTY1NjQ5YjVkZjhhM2YzMTQwY2E1MzYzMmU2IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbW1pdC1zZXQtcmFuZ2UtYmlzZWN0b3IuanMKKysr
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21taXQtc2V0LXJhbmdlLWJp
c2VjdG9yLmpzCkBAIC0xMjAsNyArMTIwLDkgQEAgY2xhc3MgQ29tbWl0U2V0UmFuZ2VCaXNlY3Rv
ciB7CiAKICAgICAgICAgY29uc3QgY29tbWl0VG9Db21taXRTZXRNYXAgPSB0aGlzLl9idWlsZENv
bW1pdFRvQ29tbWl0U2V0TWFwKHJlcG9zaXRvcmllc1dpdGhDb21taXRUaW1lLCBzb3J0ZWRDb21t
aXRTZXRzKTsKICAgICAgICAgY29uc3QgY2xvc2VzdENvbW1pdCA9IHRoaXMuX2ZpbmRDb21taXRD
bG9zZXN0VG9NaWRkbGVJbmRleChpbmRleEJ5Q29tbWl0V2l0aFRpbWUsIGNvbW1pdFRvQ29tbWl0
U2V0TWFwLmtleXMoKSk7Ci0gICAgICAgIHJldHVybiBBcnJheS5mcm9tKGNvbW1pdFRvQ29tbWl0
U2V0TWFwLmdldChjbG9zZXN0Q29tbWl0KSk7CisgICAgICAgIGlmIChjbG9zZXN0Q29tbWl0KQor
ICAgICAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oY29tbWl0VG9Db21taXRTZXRNYXAuZ2V0KGNs
b3Nlc3RDb21taXQpKTsKKyAgICAgICAgcmV0dXJuIFtdOwogICAgIH0KIAogICAgIHN0YXRpYyBf
ZmluZENvbW1pdFNldHNDbG9zZXN0VG9NaWRkbGVPZkNvbW1pdHNXaXRoT3JkZXIocmVtYWluaW5n
Q29tbWl0U2V0cywgaW5kZXhGb3JBbGxUaW1lbGVzc0NvbW1pdHNXaXRoT3JkZXJCeVJlcG9zaXRv
cnkpCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBv
bmVudHMvY3VzdG9tLWNvbmZpZ3VyYXRpb24tdGVzdC1ncm91cC1mb3JtLmpzIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL2N1c3RvbS1jb25maWd1cmF0aW9u
LXRlc3QtZ3JvdXAtZm9ybS5qcwppbmRleCA1NTk4ZmRkMGJkYzM5NGRiNmVkMThlNWRiZDRlMGM1
MGRhOTMzMTU5Li45MjhmMmE0MzZmYjY0ZTI1MThhZTExZjcxNTZmNzA3MzBhMmU4NmVlIDEwMDY0
NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY3Vz
dG9tLWNvbmZpZ3VyYXRpb24tdGVzdC1ncm91cC1mb3JtLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b20tY29uZmlndXJhdGlvbi10ZXN0
LWdyb3VwLWZvcm0uanMKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgQ3VzdG9tQ29uZmlndXJhdGlv
blRlc3RHcm91cEZvcm0gZXh0ZW5kcyBUZXN0R3JvdXBGb3JtIHsKICAgICAgICAgY29uc3QgY29t
bWl0U2V0cyA9IGNvbmZpZ3VyYXRvci5jb21taXRTZXRzKCk7CiAgICAgICAgIGNvbnN0IHBsYXRm
b3JtID0gY29uZmlndXJhdG9yLnBsYXRmb3JtKCk7CiAgICAgICAgIGNvbnN0IHRlc3QgPSBjb25m
aWd1cmF0b3IudGVzdHMoKVswXTsgLy8gRklYTUU6IEFkZCB0aGUgc3VwcG9ydCBmb3Igc3BlY2lm
eWluZyBtdWx0aXBsZSB0ZXN0cy4KLSAgICAgICAgY29uc3QgcmVwZXRpdGlvblR5cGUgPSB0aGlz
LmNvbnRlbnQoJ3JlcGV0aXRpb24tdHlwZScpLnZhbHVlOworICAgICAgICBjb25zdCByZXBldGl0
aW9uVHlwZSA9IHRoaXMucGFydCgncmVwZXRpdGlvbi10eXBlLXNlbGVjdG9yJykuc2VsZWN0ZWRS
ZXBldGl0aW9uVHlwZTsKICAgICAgICAgY29uc29sZS5hc3NlcnQoISF0aGlzLl9oYXNUYXNrID09
PSAhdGFza05hbWUpOwogICAgICAgICBpZiAoIXRoaXMuX2hhc1Rhc2spCiAgICAgICAgICAgICB0
aGlzLmRpc3BhdGNoQWN0aW9uKCdzdGFydFRlc3RpbmcnLCB0ZXN0R3JvdXBOYW1lLCB0aGlzLl9y
ZXBldGl0aW9uQ291bnQsIHJlcGV0aXRpb25UeXBlLCBjb21taXRTZXRzLCBwbGF0Zm9ybSwgdGVz
dCwgdGhpcy5fbm90aWZ5T25Db21wbGV0aW9uLCB0YXNrTmFtZSk7CkBAIC00OSw4ICs0OSwxNSBA
QCBjbGFzcyBDdXN0b21Db25maWd1cmF0aW9uVGVzdEdyb3VwRm9ybSBleHRlbmRzIFRlc3RHcm91
cEZvcm0gewogICAgIGRpZENvbnN0cnVjdFNoYWRvd1RyZWUoKQogICAgIHsKICAgICAgICAgc3Vw
ZXIuZGlkQ29uc3RydWN0U2hhZG93VHJlZSgpOwotCi0gICAgICAgIHRoaXMucGFydCgnY29uZmln
dXJhdG9yJykubGlzdGVuVG9BY3Rpb24oJ3Rlc3RDb25maWdDaGFuZ2UnLCAoKSA9PiB0aGlzLmVu
cXVldWVUb1JlbmRlcigpKTsKKyAgICAgICAgY29uc3QgY29uZmlndXJhdG9yID0gdGhpcy5wYXJ0
KCdjb25maWd1cmF0b3InKTsKKyAgICAgICAgY29uZmlndXJhdG9yLmxpc3RlblRvQWN0aW9uKCd0
ZXN0Q29uZmlnQ2hhbmdlJywgKCkgPT4geworICAgICAgICAgICAgY29uc3QgdGVzdHMgPSBjb25m
aWd1cmF0b3IudGVzdHMoKTsKKyAgICAgICAgICAgIGNvbnN0IHBsYXRmb3JtID0gY29uZmlndXJh
dG9yLnBsYXRmb3JtKCk7CisgICAgICAgICAgICBpZiAocGxhdGZvcm0gJiYgdGVzdHMubGVuZ3Ro
KQorICAgICAgICAgICAgICAgIHRoaXMuc2V0VGVzdEFuZFBsYXRmb3JtKHRlc3RzWzBdLCBwbGF0
Zm9ybSk7CisKKyAgICAgICAgICAgIHRoaXMuZW5xdWV1ZVRvUmVuZGVyKCk7CisgICAgICAgIH0p
OwogCiAgICAgICAgIHRoaXMuY29udGVudCgndGFzay1uYW1lJykub25pbnB1dCA9ICgpID0+IHRo
aXMuZW5xdWV1ZVRvUmVuZGVyKCk7CiAgICAgICAgIHRoaXMuY29udGVudCgnZ3JvdXAtbmFtZScp
Lm9uaW5wdXQgPSAoKSA9PiB0aGlzLmVucXVldWVUb1JlbmRlcigpOwpkaWZmIC0tZ2l0IGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL2N1c3RvbWl6YWJsZS10
ZXN0LWdyb3VwLWZvcm0uanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2Nv
bXBvbmVudHMvY3VzdG9taXphYmxlLXRlc3QtZ3JvdXAtZm9ybS5qcwppbmRleCA5MjljMWJhMmY4
NGQ2MThkN2JjYzI0YjYzNDBiYWFhMjgxMzdmNmJlLi40OGJkYmJiZmQyZDkwNGJmNjdjYWQyMWI0
M2I3MjYyOTg2YzNkNDAzIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3YzL2NvbXBvbmVudHMvY3VzdG9taXphYmxlLXRlc3QtZ3JvdXAtZm9ybS5qcworKysgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY3VzdG9taXphYmxl
LXRlc3QtZ3JvdXAtZm9ybS5qcwpAQCAtMjcsNyArMjcsNyBAQCBjbGFzcyBDdXN0b21pemFibGVU
ZXN0R3JvdXBGb3JtIGV4dGVuZHMgVGVzdEdyb3VwRm9ybSB7CiAKICAgICBzdGFydFRlc3Rpbmco
KQogICAgIHsKLSAgICAgICAgY29uc3QgcmVwZXRpdGlvblR5cGUgPSB0aGlzLmNvbnRlbnQoJ3Jl
cGV0aXRpb24tdHlwZScpLnZhbHVlOworICAgICAgICBjb25zdCByZXBldGl0aW9uVHlwZSA9IHRo
aXMucGFydCgncmVwZXRpdGlvbi10eXBlLXNlbGVjdG9yJykuc2VsZWN0ZWRSZXBldGl0aW9uVHlw
ZTsKICAgICAgICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc3RhcnRUZXN0aW5nJywgdGhpcy5fbmFt
ZSwgdGhpcy5fcmVwZXRpdGlvbkNvdW50LCByZXBldGl0aW9uVHlwZSwKICAgICAgICAgICAgIHRo
aXMuX2NvbXB1dGVDb21taXRTZXRNYXAoKSwgdGhpcy5fbm90aWZ5T25Db21wbGV0aW9uKTsKICAg
ICB9CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBv
bmVudHMvcmVwZXRpdGlvbi10eXBlLXNlbGVjdGlvbi5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9yZXBldGl0aW9uLXR5cGUtc2VsZWN0aW9uLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmY2Mzg1YmU4ZDZjN2JiOTQxMTE5MWQwMDdjZWRkMzYzNTY0NDgzZGYKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVu
dHMvcmVwZXRpdGlvbi10eXBlLXNlbGVjdGlvbi5qcwpAQCAtMCwwICsxLDczIEBACitjbGFzcyBS
ZXBldGl0aW9uVHlwZVNlbGVjdGlvbiBleHRlbmRzIENvbXBvbmVudEJhc2UgeworICAgICN0cmln
Z2VyYWJsZUNvbmZpZ3VyYXRpb247CisgICAgI3NlbGVjdGVkUmVwZXRpdGlvblR5cGU7CisgICAg
I3JlbmRlclJlcGV0aXRpb25UeXBlTGlzdExhemlseTsKKworICAgIGNvbnN0cnVjdG9yKCkKKyAg
ICB7CisgICAgICAgIHN1cGVyKCdyZXBldGl0aW9uLXR5cGUtc2VsZWN0aW9uJyk7CisgICAgICAg
IHRoaXMuI3NlbGVjdGVkUmVwZXRpdGlvblR5cGUgPSBudWxsOworICAgICAgICB0aGlzLiN0cmln
Z2VyYWJsZUNvbmZpZ3VyYXRpb24gPSBudWxsOworICAgICAgICB0aGlzLiNyZW5kZXJSZXBldGl0
aW9uVHlwZUxpc3RMYXppbHkgPSBuZXcgTGF6aWx5RXZhbHVhdGVkRnVuY3Rpb24odGhpcy5fcmVu
ZGVyUmVwZXRpdGlvblR5cGVMaXN0LmJpbmQodGhpcykpOworICAgIH0KKworICAgIGRpZENvbnN0
cnVjdFNoYWRvd1RyZWUoKQorICAgIHsKKyAgICAgICAgY29uc3QgcmVwZXRpdGlvblR5cGUgPSB0
aGlzLmNvbnRlbnQoJ3JlcGV0aXRpb24tdHlwZScpOworICAgICAgICByZXBldGl0aW9uVHlwZS5v
bmNoYW5nZSA9ICgpID0+IHRoaXMuI3NlbGVjdGVkUmVwZXRpdGlvblR5cGUgPSByZXBldGl0aW9u
VHlwZS52YWx1ZTsKKyAgICB9CisKKyAgICBnZXQgc2VsZWN0ZWRSZXBldGl0aW9uVHlwZSgpIHsg
cmV0dXJuIHRoaXMuI3NlbGVjdGVkUmVwZXRpdGlvblR5cGU7IH0KKyAgICBzZXQgc2VsZWN0ZWRS
ZXBldGl0aW9uVHlwZShyZXBldGl0aW9uVHlwZSkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KCF0aGlzLiN0cmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24gfHwgdGhpcy4jdHJpZ2dlcmFibGVD
b25maWd1cmF0aW9uLmlzU3VwcG9ydGVkUmVwZXRpdGlvblR5cGUocmVwZXRpdGlvblR5cGUpKTsK
KyAgICAgICAgdGhpcy4jc2VsZWN0ZWRSZXBldGl0aW9uVHlwZSA9IHJlcGV0aXRpb25UeXBlOwor
ICAgIH0KKworICAgIHNldCBkaXNhYmxlZCh2YWx1ZSkKKyAgICB7CisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KHR5cGVvZiB2YWx1ZSA9PSAnYm9vbGVhbicpOworICAgICAgICB0aGlzLmNvbnRlbnQo
J3JlcGV0aXRpb24tdHlwZScpLmRpc2FibGVkID0gdmFsdWU7CisgICAgfQorCisgICAgc2V0VGVz
dEFuZFBsYXRmb3JtKHRlc3QsIHBsYXRmb3JtKQorICAgIHsKKyAgICAgICAgdGhpcy4jdHJpZ2dl
cmFibGVDb25maWd1cmF0aW9uID0gVHJpZ2dlcmFibGVDb25maWd1cmF0aW9uLmZpbmRCeVRlc3RB
bmRQbGF0Zm9ybSh0ZXN0LCBwbGF0Zm9ybSk7CisgICAgICAgIGlmICghdGhpcy4jdHJpZ2dlcmFi
bGVDb25maWd1cmF0aW9uKQorICAgICAgICAgICAgdGhpcy4jc2VsZWN0ZWRSZXBldGl0aW9uVHlw
ZSA9IG51bGw7CisgICAgICAgIGVsc2UgaWYgKHRoaXMuI3RyaWdnZXJhYmxlQ29uZmlndXJhdGlv
biAmJiAhdGhpcy4jdHJpZ2dlcmFibGVDb25maWd1cmF0aW9uLmlzU3VwcG9ydGVkUmVwZXRpdGlv
blR5cGUodGhpcy4jc2VsZWN0ZWRSZXBldGl0aW9uVHlwZSkpCisgICAgICAgICAgICB0aGlzLiNz
ZWxlY3RlZFJlcGV0aXRpb25UeXBlID0gdGhpcy4jdHJpZ2dlcmFibGVDb25maWd1cmF0aW9uLnN1
cHBvcnRlZFJlcGV0aXRpb25UeXBlc1swXTsKKyAgICB9CisKKyAgICBsYWJlbEZvclJlcGV0aXRp
b25UeXBlKHJlcGV0aXRpb25UeXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAg
ICAgICdhbHRlcm5hdGluZyc6ICdhbHRlcm5hdGluZyAoQUJBQiknLAorICAgICAgICAgICAgJ3Nl
cXVlbnRpYWwnOiAnc2VxdWVudGlhbCAoQUFCQiknLAorICAgICAgICAgICAgJ3BhaXJlZC1wYXJh
bGxlbCc6ICdwYXJhbGxlbCAocGFpcmVkIEEmQiknLAorICAgICAgICB9W3JlcGV0aXRpb25UeXBl
XTsKKyAgICB9CisKKyAgICByZW5kZXIoKQorICAgIHsKKyAgICAgICAgc3VwZXIucmVuZGVyKCk7
CisgICAgICAgIGlmICghdGhpcy4jdHJpZ2dlcmFibGVDb25maWd1cmF0aW9uKQorICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB0aGlzLiNyZW5kZXJSZXBldGl0aW9uVHlwZUxpc3RMYXppbHku
ZXZhbHVhdGUoIHRoaXMuI3NlbGVjdGVkUmVwZXRpdGlvblR5cGUsIC4uLnRoaXMuI3RyaWdnZXJh
YmxlQ29uZmlndXJhdGlvbi5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMpOworICAgIH0KKworICAg
IF9yZW5kZXJSZXBldGl0aW9uVHlwZUxpc3Qoc2VsZWN0ZWRSZXBldGl0aW9uVHlwZSwgLi4uc3Vw
cG9ydGVkUmVwZXRpdGlvblR5cGVzKQorICAgIHsKKyAgICAgICAgdGhpcy5yZW5kZXJSZXBsYWNl
KHRoaXMuY29udGVudCgncmVwZXRpdGlvbi10eXBlJyksIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBl
cy5tYXAoKHJlcGV0aXRpb25UeXBlKSA9PgorICAgICAgICAgICAgdGhpcy5jcmVhdGVFbGVtZW50
KCdvcHRpb24nLHsgc2VsZWN0ZWQ6IHJlcGV0aXRpb25UeXBlID09IHNlbGVjdGVkUmVwZXRpdGlv
blR5cGUsIHZhbHVlOiByZXBldGl0aW9uVHlwZSB9LAorICAgICAgICAgICAgICAgIHRoaXMubGFi
ZWxGb3JSZXBldGl0aW9uVHlwZShyZXBldGl0aW9uVHlwZSkpCisgICAgICAgICkpOworICAgIH0K
KworICAgIHN0YXRpYyBodG1sVGVtcGxhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGA8c2Vs
ZWN0IGlkPSJyZXBldGl0aW9uLXR5cGUiPjwvc2VsZWN0PmA7CisgICAgfQorfQorCitDb21wb25l
bnRCYXNlLmRlZmluZUVsZW1lbnQoJ3JlcGV0aXRpb24tdHlwZS1zZWxlY3Rpb24nLCBSZXBldGl0
aW9uVHlwZVNlbGVjdGlvbik7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL3Rlc3QtZ3Jv
dXAtZm9ybS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50
cy90ZXN0LWdyb3VwLWZvcm0uanMKaW5kZXggODM1YjYwNzgxM2U1ODZlZGY3YzgyMDUxMzAzZDlh
MzFlNmE5ZTlmZC4uMDY1ZTY1YzliOGViZGIwYzIyMWE2Y2I0ZTEzZTMxYTExZGQ2MTA1MyAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL3Rl
c3QtZ3JvdXAtZm9ybS5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3Yz
L2NvbXBvbmVudHMvdGVzdC1ncm91cC1mb3JtLmpzCkBAIC0xNCw2ICsxNCwyMSBAQCBjbGFzcyBU
ZXN0R3JvdXBGb3JtIGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CiAgICAgICAgIHRoaXMuX3JlcGV0
aXRpb25Db3VudCA9IGNvdW50OwogICAgIH0KIAorICAgIHNldFRlc3RBbmRQbGF0Zm9ybSh0ZXN0
LCBwbGF0Zm9ybSkKKyAgICB7CisgICAgICAgIHRoaXMucGFydCgncmVwZXRpdGlvbi10eXBlLXNl
bGVjdG9yJykuc2V0VGVzdEFuZFBsYXRmb3JtKHRlc3QsIHBsYXRmb3JtKTsKKyAgICB9CisKKyAg
ICB1cGRhdGVXaXRoVGVzdEdyb3VwKHRlc3RHcm91cCkKKyAgICB7CisgICAgICAgIGlmICghdGVz
dEdyb3VwKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB0aGlzLnNldFJlcGV0aXRpb25D
b3VudCh0ZXN0R3JvdXAuaW5pdGlhbFJlcGV0aXRpb25Db3VudCgpKTsKKyAgICAgICAgdGhpcy5z
ZXRUZXN0QW5kUGxhdGZvcm0odGVzdEdyb3VwLnRlc3QoKSwgdGVzdEdyb3VwLnBsYXRmb3JtKCkp
OworICAgICAgICB0aGlzLnBhcnQoJ3JlcGV0aXRpb24tdHlwZS1zZWxlY3RvcicpLnNlbGVjdGVk
UmVwZXRpdGlvblR5cGUgPSB0ZXN0R3JvdXAucmVwZXRpdGlvblR5cGUoKTsKKyAgICAgICAgdGhp
cy5lbnF1ZXVlVG9SZW5kZXIoKTsKKyAgICB9CisKICAgICBkaWRDb25zdHJ1Y3RTaGFkb3dUcmVl
KCkKICAgICB7CiAgICAgICAgIGNvbnN0IHJlcGV0aXRpb25Db3VudFNlbGVjdCA9IHRoaXMuY29u
dGVudCgncmVwZXRpdGlvbi1jb3VudCcpOwpAQCAtMjUsOSArNDAsMTUgQEAgY2xhc3MgVGVzdEdy
b3VwRm9ybSBleHRlbmRzIENvbXBvbmVudEJhc2UgewogICAgICAgICB0aGlzLmNvbnRlbnQoJ2Zv
cm0nKS5vbnN1Ym1pdCA9IHRoaXMuY3JlYXRlRXZlbnRIYW5kbGVyKCgpID0+IHRoaXMuc3RhcnRU
ZXN0aW5nKCkpOwogICAgIH0KIAorICAgIHJlbmRlcigpCisgICAgeworICAgICAgICBzdXBlci5y
ZW5kZXIoKTsKKyAgICAgICAgdGhpcy5wYXJ0KCdyZXBldGl0aW9uLXR5cGUtc2VsZWN0b3InKS5l
bnF1ZXVlVG9SZW5kZXIoKTsKKyAgICB9CisKICAgICBzdGFydFRlc3RpbmcoKQogICAgIHsKLSAg
ICAgICAgY29uc3QgcmVwZXRpdGlvblR5cGUgPSB0aGlzLmNvbnRlbnQoJ3JlcGV0aXRpb24tdHlw
ZScpLnZhbHVlOworICAgICAgICBjb25zdCByZXBldGl0aW9uVHlwZSA9IHRoaXMucGFydCgncmVw
ZXRpdGlvbi10eXBlLXNlbGVjdG9yJykuc2VsZWN0ZWRSZXBldGl0aW9uVHlwZTsKICAgICAgICAg
dGhpcy5kaXNwYXRjaEFjdGlvbignc3RhcnRUZXN0aW5nJywgdGhpcy5fcmVwZXRpdGlvbkNvdW50
LCByZXBldGl0aW9uVHlwZSwgdGhpcy5fbm90aWZ5T25Db21wbGV0aW9uKTsKICAgICB9CiAKQEAg
LTY3LDEwICs4OCw3IEBAIGNsYXNzIFRlc3RHcm91cEZvcm0gZXh0ZW5kcyBDb21wb25lbnRCYXNl
IHsKICAgICAgICAgICAgICAgICA8b3B0aW9uPjEwPC9vcHRpb24+CiAgICAgICAgICAgICA8L3Nl
bGVjdD4KICAgICAgICAgICAgIDxsYWJlbD5pdGVyYXRpb25zIHBlciBzZXQgaW48L2xhYmVsPgot
ICAgICAgICAgICAgPHNlbGVjdCBpZD0icmVwZXRpdGlvbi10eXBlIj4KLSAgICAgICAgICAgICAg
ICA8b3B0aW9uIHNlbGVjdGVkIHZhbHVlPSJhbHRlcm5hdGluZyI+YWx0ZXJuYXRlIChBQkFCKTwv
b3B0aW9uPgotICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InNlcXVlbnRpYWwiPnNlcXVl
bmNlIChBQUJCKTwvb3B0aW9uPgotICAgICAgICAgICAgPC9zZWxlY3Q+CisgICAgICAgICAgICA8
cmVwZXRpdGlvbi10eXBlLXNlbGVjdGlvbiBpZD0icmVwZXRpdGlvbi10eXBlLXNlbGVjdG9yIj48
L3JlcGV0aXRpb24tdHlwZS1zZWxlY3Rpb24+CiAgICAgICAgICAgICA8aW5wdXQgaWQ9Im5vdGlm
eS1vbi1jb21wbGV0aW9uLWNoZWNrYm94IiB0eXBlPSJjaGVja2JveCIgY2hlY2tlZC8+Tm90aWZ5
IG9uIGNvbXBsZXRpb24KICAgICAgICAgYDsKICAgICB9CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2luZGV4Lmh0bWwgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3YzL2luZGV4Lmh0bWwKaW5kZXggZjUzMTAwM2VkNWU2NzM1MDllNDM3ZTQ4
MTFiYjA5ZjhhYzMzNzJkMy4uZDUwNTUyMTgyM2QwZGM1ZTk3YTc4MTU3MjI5YmI4M2ZiMWVkMWM4
YiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9pbmRleC5o
dG1sCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvaW5kZXguaHRtbApA
QCAtMTA1LDYgKzEwNSw3IEBAIFJ1biB0b29scy9idW5kbGUtdjMtc2NyaXB0cyB0byBzcGVlZCB1
cCB0aGUgbG9hZCB0aW1lIGZvciBwcm9kdWN0aW9uLmApOwogICAgICAgICA8c2NyaXB0IHNyYz0i
Y29tcG9uZW50cy9wbHVzLWJ1dHRvbi5qcyI+PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQgc3Jj
PSJjb21wb25lbnRzL21pbnVzLWJ1dHRvbi5qcyI+PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQg
c3JjPSJjb21wb25lbnRzL2NvbWJvLWJveC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQg
c3JjPSJjb21wb25lbnRzL3JlcGV0aXRpb24tdHlwZS1zZWxlY3Rpb24uanMiPjwvc2NyaXB0Pgog
CiAgICAgICAgIDxzY3JpcHQgc3JjPSJwYWdlcy9wYWdlLmpzIj48L3NjcmlwdD4KICAgICAgICAg
PHNjcmlwdCBzcmM9InBhZ2VzL3BhZ2Utcm91dGVyLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL21hbmlmZXN0LmpzIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvbWFuaWZlc3QuanMKaW5k
ZXggOWRkZDUxNDczYjcyY2Q3NGQ3MTJiYjNkYjk3YmZmZWE4YmE1M2JmMS4uYjY3ZGZiNGZhYzBl
NzgwNjcwMTAyYWU4NGRjNWFhZWRjYzczYzJkNyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvbWFuaWZlc3QuanMKKysrIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvbWFuaWZlc3QuanMKQEAgLTE2LDYgKzE2LDcg
QEAgY2xhc3MgTWFuaWZlc3QgewogICAgICAgICBUZXN0LmNsZWFyU3RhdGljTWFwKCk7CiAgICAg
ICAgIFRlc3RHcm91cC5jbGVhclN0YXRpY01hcCgpOwogICAgICAgICBUcmlnZ2VyYWJsZS5jbGVh
clN0YXRpY01hcCgpOworICAgICAgICBUcmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24uY2xlYXJTdGF0
aWNNYXAoKTsKICAgICAgICAgVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuY2xlYXJTdGF0aWNN
YXAoKTsKICAgICAgICAgVXBsb2FkZWRGaWxlLmNsZWFyU3RhdGljTWFwKCk7CiAgICAgICAgIEJ1
Z1RyYWNrZXIuY2xlYXJTdGF0aWNNYXAoKTsKQEAgLTg3LDggKzg4LDggQEAgY2xhc3MgTWFuaWZl
c3QgewogICAgICAgICAgICAgICAgIHJldHVybiBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5l
bnN1cmVTaW5nbGV0b24oZ3JvdXAuaWQsIGdyb3VwKTsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICAgICAgcmF3LmNvbmZpZ3VyYXRpb25zID0gcmF3LmNvbmZpZ3VyYXRpb25zLm1hcCgoY29uZmln
dXJhdGlvbikgPT4gewotICAgICAgICAgICAgICAgIGNvbnN0IFt0ZXN0SWQsIHBsYXRmb3JtSWRd
ID0gY29uZmlndXJhdGlvbjsKLSAgICAgICAgICAgICAgICByZXR1cm4ge3Rlc3Q6IFRlc3QuZmlu
ZEJ5SWQodGVzdElkKSwgcGxhdGZvcm06IFBsYXRmb3JtLmZpbmRCeUlkKHBsYXRmb3JtSWQpfTsK
KyAgICAgICAgICAgICAgICBjb25zdCBbdGVzdElkLCBwbGF0Zm9ybUlkLCBzdXBwb3J0ZWRSZXBl
dGl0aW9uVHlwZXNdID0gY29uZmlndXJhdGlvbjsKKyAgICAgICAgICAgICAgICByZXR1cm4ge3Rl
c3Q6IFRlc3QuZmluZEJ5SWQodGVzdElkKSwgcGxhdGZvcm06IFBsYXRmb3JtLmZpbmRCeUlkKHBs
YXRmb3JtSWQpLCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXN9OwogICAgICAgICAgICAgfSk7CiAg
ICAgICAgIH0pOwogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L3YzL21vZGVscy90ZXN0LWdyb3VwLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9tb2RlbHMvdGVzdC1ncm91cC5qcwppbmRleCAzYTNjODg2MTZmYWYzMThkOGNiZjUyYTY3
YTM3YjZkODlhNjU0M2Q1Li41YjUzMWE0MjA1NzZjOWQ5YmU5MDY4Njk1ZTY0MzY3NTEwZTYyY2Uw
IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90
ZXN0LWdyb3VwLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9k
ZWxzL3Rlc3QtZ3JvdXAuanMKQEAgLTM0NCwxMCArMzQ0LDEwIEBAIGNsYXNzIFRlc3RHcm91cCBl
eHRlbmRzIExhYmVsZWRPYmplY3QgewogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0K
IAotICAgICAgICBjb25zb2xlLmFzc2VydChbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXS5p
bmNsdWRlcyh0aGlzLnJlcGV0aXRpb25UeXBlKCkpKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQo
VHJpZ2dlcmFibGVDb25maWd1cmF0aW9uLmlzVmFsaWRSZXBldGl0aW9uVHlwZSh0aGlzLnJlcGV0
aXRpb25UeXBlKCkpKTsKICAgICAgICAgY29uc3QgcmVwZXRpdGlvbkxpbWl0ID0gbWF4UmV0cnlG
YWN0b3IgKiB0aGlzLmluaXRpYWxSZXBldGl0aW9uQ291bnQoKTsKLSAgICAgICAgY29uc3Qge3Jl
dHJ5Q291bnQsIHN0b3BGdXR1cmVSZXRyaWVzfSA9IGF3YWl0ICh0aGlzLnJlcGV0aXRpb25UeXBl
KCkgPT0gJ2FsdGVybmF0aW5nJyA/Ci0gICAgICAgICAgICB0aGlzLl9jcmVhdGVBbHRlcm5hdGlu
Z1JldHJpZXNGb3JUZXN0R3JvdXAocmVwZXRpdGlvbkxpbWl0KSA6IHRoaXMuX2NyZWF0ZVNlcXVl
bnRpYWxSZXRyaWVzRm9yVGVzdEdyb3VwKHJlcGV0aXRpb25MaW1pdCkpOworICAgICAgICBjb25z
dCB7cmV0cnlDb3VudCwgc3RvcEZ1dHVyZVJldHJpZXN9ID0gYXdhaXQgKHRoaXMucmVwZXRpdGlv
blR5cGUoKSA9PSAnc2VxdWVudGlhbCcgPworICAgICAgICAgICAgdGhpcy5fY3JlYXRlU2VxdWVu
dGlhbFJldHJpZXNGb3JUZXN0R3JvdXAocmVwZXRpdGlvbkxpbWl0KTogdGhpcy5fY3JlYXRlQWx0
ZXJuYXRpbmdSZXRyaWVzRm9yVGVzdEdyb3VwKHJlcGV0aXRpb25MaW1pdCkpOwogCiAgICAgICAg
IGlmIChzdG9wRnV0dXJlUmV0cmllcykKICAgICAgICAgICAgIGF3YWl0IHRoaXMuY2xlYXJNYXlO
ZWVkTW9yZUJ1aWxkUmVxdWVzdHMoKTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3RyaWdnZXJhYmxlLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9tb2RlbHMvdHJpZ2dlcmFibGUuanMKaW5kZXggZDVmZjNjNDhjMzI5
ZjliNGQ2OGU4NDIwMzBkMjBiZDJhODdlNWE4ZC4uZTQxMDUzMzBhOGM4ZDcyMDc0MGYwNTUyODI4
OGViZmI0NDUxMzcyNyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9tb2RlbHMvdHJpZ2dlcmFibGUuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy92My9tb2RlbHMvdHJpZ2dlcmFibGUuanMKQEAgLTcsMTUgKzcsMTMgQEAgY2xhc3Mg
VHJpZ2dlcmFibGUgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICAgICAgdGhpcy5faXNEaXNh
YmxlZCA9ICEhb2JqZWN0LmlzRGlzYWJsZWQ7CiAgICAgICAgIHRoaXMuX2FjY2VwdGVkUmVwb3Np
dG9yaWVzID0gb2JqZWN0LmFjY2VwdGVkUmVwb3NpdG9yaWVzOwogICAgICAgICB0aGlzLl9yZXBv
c2l0b3J5R3JvdXBzID0gb2JqZWN0LnJlcG9zaXRvcnlHcm91cHM7Ci0gICAgICAgIHRoaXMuX2Nv
bmZpZ3VyYXRpb25MaXN0ID0gb2JqZWN0LmNvbmZpZ3VyYXRpb25zOworICAgICAgICB0aGlzLl90
cmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb25MaXN0ID0gW107CiAgICAgICAgIHRoaXMuX2FjY2VwdGVk
VGVzdHMgPSBuZXcgU2V0OwogCi0gICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb25NYXAgPSB0aGlz
LmVuc3VyZU5hbWVkU3RhdGljTWFwKCd0ZXN0Q29uZmlndXJhdGlvbnMnKTsKICAgICAgICAgZm9y
IChjb25zdCBjb25maWcgb2Ygb2JqZWN0LmNvbmZpZ3VyYXRpb25zKSB7Ci0gICAgICAgICAgICBj
b25zdCBrZXkgPSBgJHtjb25maWcudGVzdC5pZCgpfS0ke2NvbmZpZy5wbGF0Zm9ybS5pZCgpfWA7
CiAgICAgICAgICAgICB0aGlzLl9hY2NlcHRlZFRlc3RzLmFkZChjb25maWcudGVzdCk7Ci0gICAg
ICAgICAgICBjb25zb2xlLmFzc2VydCghKGtleSBpbiBjb25maWd1cmF0aW9uTWFwKSk7Ci0gICAg
ICAgICAgICBjb25maWd1cmF0aW9uTWFwW2tleV0gPSB0aGlzOworICAgICAgICAgICAgdGhpcy5f
dHJpZ2dlcmFibGVDb25maWd1cmF0aW9uTGlzdC5wdXNoKFRyaWdnZXJhYmxlQ29uZmlndXJhdGlv
bi5jcmVhdGVGb3JUcmlnZ2VyYWJsZSh0aGlzLCBjb25maWcudGVzdCwKKyAgICAgICAgICAgICAg
ICBjb25maWcucGxhdGZvcm0sIGNvbmZpZy5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMpKTsKICAg
ICAgICAgfQogICAgIH0KIApAQCAtMjUsMTggKzIzLDcgQEAgY2xhc3MgVHJpZ2dlcmFibGUgZXh0
ZW5kcyBMYWJlbGVkT2JqZWN0IHsKIAogICAgIGFjY2VwdGVkVGVzdHMoKSB7IHJldHVybiB0aGlz
Ll9hY2NlcHRlZFRlc3RzOyB9CiAKLSAgICBzdGF0aWMgZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24o
dGVzdCwgcGxhdGZvcm0pCi0gICAgewotICAgICAgICBsZXQgY29uZmlndXJhdGlvbk1hcCA9IHRo
aXMuZW5zdXJlTmFtZWRTdGF0aWNNYXAoJ3Rlc3RDb25maWd1cmF0aW9ucycpOwotICAgICAgICBp
ZiAoIWNvbmZpZ3VyYXRpb25NYXApCi0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAg
Zm9yICg7IHRlc3Q7IHRlc3QgPSB0ZXN0LnBhcmVudFRlc3QoKSkgewotICAgICAgICAgICAgY29u
c3Qga2V5ID0gYCR7dGVzdC5pZCgpfS0ke3BsYXRmb3JtLmlkKCl9YDsKLSAgICAgICAgICAgIGlm
IChrZXkgaW4gY29uZmlndXJhdGlvbk1hcCkKLSAgICAgICAgICAgICAgICByZXR1cm4gY29uZmln
dXJhdGlvbk1hcFtrZXldOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0K
KyAgICBzdGF0aWMgZmluZEJ5VGVzdENvbmZpZ3VyYXRpb24odGVzdCwgcGxhdGZvcm0pIHsgcmV0
dXJuIFRyaWdnZXJhYmxlQ29uZmlndXJhdGlvbi5maW5kQnlUZXN0QW5kUGxhdGZvcm0odGVzdCwg
cGxhdGZvcm0pPy50cmlnZ2VyYWJsZTsgfQogCiAgICAgc3RhdGljIHRyaWdnZXJhYmxlUGxhdGZv
cm1zRm9yVGVzdHModGVzdHMpCiAgICAgewpAQCAtNTIsNiArMzksNTAgQEAgY2xhc3MgVHJpZ2dl
cmFibGUgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICB9CiB9CiAKKworY2xhc3MgVHJpZ2dl
cmFibGVDb25maWd1cmF0aW9uIGV4dGVuZHMgRGF0YU1vZGVsT2JqZWN0IHsKKyAgICAjdHJpZ2dl
cmFibGU7CisgICAgI3Rlc3Q7CisgICAgI3BsYXRmb3JtOworICAgICNzdXBwb3J0ZWRSZXBldGl0
aW9uVHlwZXM7CisKKyAgICBjb25zdHJ1Y3RvcihpZCwgb2JqZWN0KQorICAgIHsKKyAgICAgICAg
c3VwZXIoaWQpOworICAgICAgICB0aGlzLiN0cmlnZ2VyYWJsZSA9IG9iamVjdC50cmlnZ2VyYWJs
ZTsKKyAgICAgICAgdGhpcy4jdGVzdCA9IG9iamVjdC50ZXN0OworICAgICAgICB0aGlzLiNwbGF0
Zm9ybSA9IG9iamVjdC5wbGF0Zm9ybTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQob2JqZWN0LnN1
cHBvcnRlZFJlcGV0aXRpb25UeXBlcy5ldmVyeShUcmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24uaXNW
YWxpZFJlcGV0aXRpb25UeXBlLmJpbmQoVHJpZ2dlcmFibGVDb25maWd1cmF0aW9uKSkpOworICAg
ICAgICB0aGlzLiNzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMgPSBvYmplY3Quc3VwcG9ydGVkUmVw
ZXRpdGlvblR5cGVzOworICAgIH0KKworICAgIGdldCB0cmlnZ2VyYWJsZSgpIHsgcmV0dXJuIHRo
aXMuI3RyaWdnZXJhYmxlOyB9CisgICAgZ2V0IHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcygpIHsg
cmV0dXJuIHRoaXMuI3N1cHBvcnRlZFJlcGV0aXRpb25UeXBlczsgfQorICAgIGlzU3VwcG9ydGVk
UmVwZXRpdGlvblR5cGUocmVwZXRpdGlvblR5cGUpIHsgcmV0dXJuIHRoaXMuI3N1cHBvcnRlZFJl
cGV0aXRpb25UeXBlcy5pbmNsdWRlcyhyZXBldGl0aW9uVHlwZSk7IH0KKworICAgIHN0YXRpYyBp
ZEZvclRlc3RBbmRQbGF0Zm9ybSh0ZXN0LCBwbGF0Zm9ybSkgeyByZXR1cm4gYCR7dGVzdC5pZCgp
fS0ke3BsYXRmb3JtLmlkKCl9YDsgfQorCisgICAgc3RhdGljIGNyZWF0ZUZvclRyaWdnZXJhYmxl
KHRyaWdnZXJhYmxlLCB0ZXN0LCBwbGF0Zm9ybSwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzKQor
ICAgIHsKKyAgICAgICAgY29uc3QgaWQgPSB0aGlzLmlkRm9yVGVzdEFuZFBsYXRmb3JtKHRlc3Qs
IHBsYXRmb3JtKTsKKyAgICAgICAgcmV0dXJuIFRyaWdnZXJhYmxlQ29uZmlndXJhdGlvbi5lbnN1
cmVTaW5nbGV0b24oaWQsIHsgdGVzdCwgcGxhdGZvcm0sIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBl
cywgdHJpZ2dlcmFibGUgfSk7CisgICAgfQorCisgICAgc3RhdGljIGZpbmRCeVRlc3RBbmRQbGF0
Zm9ybSh0ZXN0LCBwbGF0Zm9ybSkKKyAgICB7CisgICAgICAgIGZvciAoOyB0ZXN0OyB0ZXN0ID0g
dGVzdC5wYXJlbnRUZXN0KCkpIHsKKyAgICAgICAgICAgIGNvbnN0IGlkID0gdGhpcy5pZEZvclRl
c3RBbmRQbGF0Zm9ybSh0ZXN0LCBwbGF0Zm9ybSk7CisgICAgICAgICAgICBjb25zdCB0cmlnZ2Vy
YWJsZUNvbmZpZ3VyYXRpb24gPSBUcmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24uZmluZEJ5SWQoaWQp
OworICAgICAgICAgICAgaWYgKHRyaWdnZXJhYmxlQ29uZmlndXJhdGlvbikKKyAgICAgICAgICAg
ICAgICByZXR1cm4gdHJpZ2dlcmFibGVDb25maWd1cmF0aW9uOworICAgICAgICB9CisgICAgICAg
IHJldHVybiBudWxsOworICAgIH0KKworICAgIHN0YXRpYyBpc1ZhbGlkUmVwZXRpdGlvblR5cGUo
cmVwZXRpdGlvblR5cGUpIHsgcmV0dXJuIFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCcsICdw
YWlyZWQtcGFyYWxsZWwnXS5pbmNsdWRlcyhyZXBldGl0aW9uVHlwZSk7IH0KK30KKworCiBjbGFz
cyBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3QgewogCiAg
ICAgY29uc3RydWN0b3IoaWQsIG9iamVjdCkKQEAgLTEwOSw2ICsxNDAsNyBAQCBjbGFzcyBUcmln
Z2VyYWJsZVJlcG9zaXRvcnlHcm91cCBleHRlbmRzIExhYmVsZWRPYmplY3QgewogCiBpZiAodHlw
ZW9mIG1vZHVsZSAhPSAndW5kZWZpbmVkJykgewogICAgIG1vZHVsZS5leHBvcnRzLlRyaWdnZXJh
YmxlID0gVHJpZ2dlcmFibGU7CisgICAgbW9kdWxlLmV4cG9ydHMuVHJpZ2dlcmFibGVDb25maWd1
cmF0aW9uID0gVHJpZ2dlcmFibGVDb25maWd1cmF0aW9uOwogICAgIG1vZHVsZS5leHBvcnRzLlRy
aWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwID0gVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXA7CiB9
CiAKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMv
YW5hbHlzaXMtdGFzay1wYWdlLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9wYWdlcy9hbmFseXNpcy10YXNrLXBhZ2UuanMKaW5kZXggZmJkMDQwYmYxZTNlZjhjNGNiMjk4
NzFkZGQwMmExYzExZTBiNWM3MC4uZTVlODc2ZjZmZDc2YzRlMDQyY2JjMzFmZTY0ODM1OWI4YTQz
NTM5NyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdl
cy9hbmFseXNpcy10YXNrLXBhZ2UuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9wYWdlcy9hbmFseXNpcy10YXNrLXBhZ2UuanMKQEAgLTc3LDYgKzc3LDcgQEAgY2xh
c3MgQW5hbHlzaXNUYXNrUmVzdWx0c1BhbmUgZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsKICAgICBz
ZXRUZXN0R3JvdXBzKHRlc3RHcm91cHMsIGN1cnJlbnRHcm91cCkKICAgICB7CiAgICAgICAgIHRo
aXMucGFydCgncmVzdWx0cy12aWV3ZXInKS5zZXRUZXN0R3JvdXBzKHRlc3RHcm91cHMsIGN1cnJl
bnRHcm91cCk7CisgICAgICAgIHRoaXMucGFydCgnZm9ybScpLnVwZGF0ZVdpdGhUZXN0R3JvdXAo
Y3VycmVudEdyb3VwKTsKICAgICAgICAgdGhpcy5lbnF1ZXVlVG9SZW5kZXIoKTsKICAgICB9CiAK
QEAgLTM2NiwxMCArMzY3LDExIEBAIGNsYXNzIEFuYWx5c2lzVGFza1Rlc3RHcm91cFBhbmUgZXh0
ZW5kcyBDb21wb25lbnRCYXNlIHsKICAgICAgICAgaWYgKHNlbGVjdGVkKQogICAgICAgICAgICAg
c2VsZWN0ZWQuY2xhc3NMaXN0LnJlbW92ZSgnc2VsZWN0ZWQnKTsKIAorICAgICAgICB0aGlzLnBh
cnQoJ3JldHJ5LWZvcm0nKS51cGRhdGVXaXRoVGVzdEdyb3VwKGN1cnJlbnRHcm91cCk7CisgICAg
ICAgIHRoaXMucGFydCgnYmlzZWN0LWZvcm0nKS51cGRhdGVXaXRoVGVzdEdyb3VwKGN1cnJlbnRH
cm91cCk7CisKICAgICAgICAgaWYgKGN1cnJlbnRHcm91cCkgewogICAgICAgICAgICAgdGhpcy5f
dGVzdEdyb3VwTWFwLmdldChjdXJyZW50R3JvdXApLmxpc3RJdGVtLmNsYXNzTGlzdC5hZGQoJ3Nl
bGVjdGVkJyk7Ci0gICAgICAgICAgICB0aGlzLnBhcnQoJ3JldHJ5LWZvcm0nKS5zZXRSZXBldGl0
aW9uQ291bnQoY3VycmVudEdyb3VwLmluaXRpYWxSZXBldGl0aW9uQ291bnQoKSk7Ci0gICAgICAg
ICAgICB0aGlzLnBhcnQoJ2Jpc2VjdC1mb3JtJykuc2V0UmVwZXRpdGlvbkNvdW50KGN1cnJlbnRH
cm91cC5pbml0aWFsUmVwZXRpdGlvbkNvdW50KCkpOwogCiAgICAgICAgICAgICBpZiAoY3VycmVu
dEdyb3VwLmhhc1JldHJpZXMoKSkKICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlclJlcGxhY2Uo
dGhpcy5jb250ZW50KCdyZXRyeS1zdW1tYXJ5JyksIHRoaXMuX3JldHJ5U3VtbWFyeShjdXJyZW50
R3JvdXApKTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMv
cGFnZXMvY2hhcnQtcGFuZS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMv
cGFnZXMvY2hhcnQtcGFuZS5qcwppbmRleCBiNThjZTI2ODZjZDFkZjlkMjliZmU2ZDQwYzljOWNl
MGU0NDhiOGJjLi4wMGIzZDhhOTdkOTU4MzJmOGRiODQ3NzQ2NDQxYzhjYThkYWExMWRlIDEwMDY0
NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2NoYXJ0LXBh
bmUuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9jaGFy
dC1wYW5lLmpzCkBAIC0xMjAsMTMgKzEyMCwxMyBAQCBjbGFzcyBDaGFydFBhbmUgZXh0ZW5kcyBD
aGFydFBhbmVCYXNlIHsKICAgICAgICAgY29uc3QgY3JlYXRlV2l0aFRlc3RHcm91cENoZWNrYm94
ID0gdGhpcy5jb250ZW50KCdjcmVhdGUtd2l0aC10ZXN0LWdyb3VwJyk7CiAgICAgICAgIGNvbnN0
IHJlcGV0aXRpb25Db3VudCA9IHRoaXMuY29udGVudCgnY29uZmlybS1yZXBldGl0aW9uJyk7CiAg
ICAgICAgIGNvbnN0IG5vdGlmeU9uQ29tcGxldGlvbiA9IHRoaXMuY29udGVudCgnbm90aWZ5LW9u
LWNvbXBsZXRpb24nKTsKLSAgICAgICAgY29uc3QgcmVwZXRpdGlvblR5cGUgPSB0aGlzLmNvbnRl
bnQoJ3JlcGV0aXRpb24tdHlwZScpOworICAgICAgICBjb25zdCByZXBldGl0aW9uVHlwZVNlbGVj
dGlvbiA9IHRoaXMucGFydCgncmVwZXRpdGlvbi10eXBlLXNlbGVjdG9yJyk7CiAgICAgICAgIGNy
ZWF0ZVdpdGhUZXN0R3JvdXBDaGVja2JveC5vbmNoYW5nZSA9ICgpID0+IHsKICAgICAgICAgICAg
IC8vIEZJWE1FOiBzaG91bGQgaW52b2tlICJlbnF1ZXVlVG9SZW5kZXIiIGluc3RlYWQuCiAgICAg
ICAgICAgICBjb25zdCBzaG91bGREaXNhYmxlID0gIWNyZWF0ZVdpdGhUZXN0R3JvdXBDaGVja2Jv
eC5jaGVja2VkOwogICAgICAgICAgICAgcmVwZXRpdGlvbkNvdW50LmRpc2FibGVkID0gc2hvdWxk
RGlzYWJsZTsKICAgICAgICAgICAgIG5vdGlmeU9uQ29tcGxldGlvbi5kaXNhYmxlZCA9IHNob3Vs
ZERpc2FibGU7Ci0gICAgICAgICAgICByZXBldGl0aW9uVHlwZS5kaXNhYmxlZCA9IHNob3VsZERp
c2FibGU7CisgICAgICAgICAgICByZXBldGl0aW9uVHlwZVNlbGVjdGlvbi5kaXNhYmxlZCA9IHNo
b3VsZERpc2FibGU7CiAgICAgICAgIH07CiAgICAgfQogCkBAIC0yNDYsNyArMjQ2LDcgQEAgY2xh
c3MgQ2hhcnRQYW5lIGV4dGVuZHMgQ2hhcnRQYW5lQmFzZSB7CiAgICAgICAgIGNvbnN0IGNyZWF0
ZVdpdGhUZXN0R3JvdXAgPSB0aGlzLmNvbnRlbnQoJ2NyZWF0ZS13aXRoLXRlc3QtZ3JvdXAnKS5j
aGVja2VkOwogICAgICAgICBjb25zdCByZXBldGl0aW9uQ291bnQgPSB0aGlzLmNvbnRlbnQoJ2Nv
bmZpcm0tcmVwZXRpdGlvbicpLnZhbHVlOwogICAgICAgICBjb25zdCBub3RpZnlPbkNvbXBsZXRp
b24gPSB0aGlzLmNvbnRlbnQoJ25vdGlmeS1vbi1jb21wbGV0aW9uJykuY2hlY2tlZDsKLSAgICAg
ICAgY29uc3QgcmVwZXRpdGlvblR5cGUgPSB0aGlzLmNvbnRlbnQoJ3JlcGV0aXRpb24tdHlwZScp
LnZhbHVlOworICAgICAgICBjb25zdCByZXBldGl0aW9uVHlwZSA9IHRoaXMucGFydCgncmVwZXRp
dGlvbi10eXBlLXNlbGVjdG9yJykuc2VsZWN0ZWRSZXBldGl0aW9uVHlwZTsKIAogICAgICAgICB0
cnkgewogICAgICAgICAgICAgY29uc3QgYW5hbHlzaXNUYXNrID0gYXdhaXQgKGNyZWF0ZVdpdGhU
ZXN0R3JvdXAgPwpAQCAtMzE5LDYgKzMxOSw5IEBAIGNsYXNzIENoYXJ0UGFuZSBleHRlbmRzIENo
YXJ0UGFuZUJhc2UgewogICAgICAgICBjb25zdCBzZWxlY3RlZFBvaW50cyA9IHRoaXMuX21haW5D
aGFydC5zZWxlY3RlZFBvaW50cygnY3VycmVudCcpOwogICAgICAgICBjb25zdCBoYXNTZWxlY3Rl
ZFBvaW50cyA9IHNlbGVjdGVkUG9pbnRzICYmIHNlbGVjdGVkUG9pbnRzLmxlbmd0aCgpOwogICAg
ICAgICBpZiAoaGFzU2VsZWN0ZWRQb2ludHMpIHsKKyAgICAgICAgICAgIGNvbnN0IHJlcGV0aXRp
b25UeXBlU2VsZWN0aW9uID0gdGhpcy5wYXJ0KCdyZXBldGl0aW9uLXR5cGUtc2VsZWN0b3InKTsK
KyAgICAgICAgICAgIHJlcGV0aXRpb25UeXBlU2VsZWN0aW9uLnNldFRlc3RBbmRQbGF0Zm9ybSht
ZXRyaWMudGVzdCgpLCBwbGF0Zm9ybSk7CisgICAgICAgICAgICByZXBldGl0aW9uVHlwZVNlbGVj
dGlvbi5lbnF1ZXVlVG9SZW5kZXIoKTsKICAgICAgICAgICAgIGFjdGlvbnMucHVzaCh0aGlzLl9t
YWtlUG9wb3ZlckFjdGlvbkl0ZW0oYW5hbHl6ZVBvcG92ZXIsICdBbmFseXplJywgZmFsc2UpKTsK
ICAgICAgICAgICAgIGFuYWx5emVQb3BvdmVyLm9uc3VibWl0ID0gdGhpcy5jcmVhdGVFdmVudEhh
bmRsZXIoKCkgPT4gewogICAgICAgICAgICAgICAgIHRoaXMuX2FuYWx5emVSYW5nZShzZWxlY3Rl
ZFBvaW50cy5maXJzdFBvaW50KCksIHNlbGVjdGVkUG9pbnRzLmxhc3RQb2ludCgpKTsKQEAgLTU5
NiwxMCArNTk5LDcgQEAgY2xhc3MgQ2hhcnRQYW5lIGV4dGVuZHMgQ2hhcnRQYW5lQmFzZSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgPGxp
PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5JbjwvbGFiZWw+Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBpZD0icmVwZXRpdGlvbi10eXBlIj4KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iYWx0ZXJuYXRpbmciIHNl
bGVjdGVkPmFsdGVybmF0ZSAoQUJBQik8L29wdGlvbj4KLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPG9wdGlvbiB2YWx1ZT0ic2VxdWVudGlhbCI+c2VxdWVuY2UgKEFBQkIpPC9vcHRp
b24+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHJlcGV0aXRpb24tdHlwZS1zZWxlY3Rpb24gaWQ9InJlcGV0aXRpb24t
dHlwZS1zZWxlY3RvciI+PC9yZXBldGl0aW9uLXR5cGUtc2VsZWN0aW9uPgogICAgICAgICAgICAg
ICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0ibm90
aWZ5LW9uLWNvbXBsZXRpb24iIGNoZWNrZWQ+Tm90aWZ5IG9uIGNvbXBsZXRpb248L2xhYmVsPgpk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWFu
aWZlc3QtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2Fw
aS1tYW5pZmVzdC10ZXN0cy5qcwppbmRleCBjYWEwYjJjZTYxY2ExMmYyNTU1MTY1MGU4MTYyNjky
MDc2OGFkYWQ1Li44OTgyZjNiNDBjNmNkZDIzMTc3ODI4ZjUyMzc4MjM2ZDNmZjQyYzljIDEwMDY0
NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1tYW5pZmVz
dC10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2Fw
aS1tYW5pZmVzdC10ZXN0cy5qcwpAQCAtMzY0LDEyICszNjQsMjQgQEAgZGVzY3JpYmUoJy9hcGkv
bWFuaWZlc3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJh
YmxlX3JlcG9zaXRvcmllcycsIHtncm91cDogMzAyLCByZXBvc2l0b3J5OiA5fSksCiAgICAgICAg
ICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcmllcycsIHtncm91cDogMzAzLCBy
ZXBvc2l0b3J5OiA5fSksCiAgICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9z
aXRvcmllcycsIHtncm91cDogMzA0LCByZXBvc2l0b3J5OiAxNn0pLAotICAgICAgICAgICAgZGIu
aW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHt0cmlnZ2VyYWJsZTogMjAwLCB0
ZXN0OiAxLCBwbGF0Zm9ybTogNDZ9KSwKLSAgICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFi
bGVfY29uZmlndXJhdGlvbnMnLCB7dHJpZ2dlcmFibGU6IDIwMCwgdGVzdDogMiwgcGxhdGZvcm06
IDQ2fSksCi0gICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25z
Jywge3RyaWdnZXJhYmxlOiAyMDEsIHRlc3Q6IDEsIHBsYXRmb3JtOiAyM30pLAotICAgICAgICAg
ICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHt0cmlnZ2VyYWJsZTog
MjAxLCB0ZXN0OiAyLCBwbGF0Zm9ybTogMjN9KSwKLSAgICAgICAgICAgIGRiLmluc2VydCgndHJp
Z2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCB7dHJpZ2dlcmFibGU6IDIwMiwgdGVzdDogMSwgcGxh
dGZvcm06IDEwNH0pLAotICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1
cmF0aW9ucycsIHt0cmlnZ2VyYWJsZTogMjAyLCB0ZXN0OiAyLCBwbGF0Zm9ybTogMTA0fSksCisg
ICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywge2lkOiAx
LCB0cmlnZ2VyYWJsZTogMjAwLCB0ZXN0OiAxLCBwbGF0Zm9ybTogNDZ9KSwKKyAgICAgICAgICAg
IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywg
e2NvbmZpZzogMSwgdHlwZTogJ2FsdGVybmF0aW5nJ30pLAorICAgICAgICAgICAgZGIuaW5zZXJ0
KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMnLCB7Y29uZmlnOiAx
LCB0eXBlOiAnc2VxdWVudGlhbCd9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFi
bGVfY29uZmlndXJhdGlvbnMnLCB7aWQ6IDIsIHRyaWdnZXJhYmxlOiAyMDAsIHRlc3Q6IDIsIHBs
YXRmb3JtOiA0Nn0pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1
cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMnLCB7Y29uZmlnOiAyLCB0eXBlOiAnYWx0ZXJuYXRpbmcn
fSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVw
ZXRpdGlvbl90eXBlcycsIHtjb25maWc6IDIsIHR5cGU6ICdzZXF1ZW50aWFsJ30pLAorICAgICAg
ICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHtpZDogMywgdHJp
Z2dlcmFibGU6IDIwMSwgdGVzdDogMSwgcGxhdGZvcm06IDIzfSksCisgICAgICAgICAgICBkYi5p
bnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcycsIHtjb25m
aWc6IDMsIHR5cGU6ICdhbHRlcm5hdGluZyd9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgndHJp
Z2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywge2NvbmZpZzogMywgdHlw
ZTogJ3NlcXVlbnRpYWwnfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2Nv
bmZpZ3VyYXRpb25zJywge2lkOiA0LCB0cmlnZ2VyYWJsZTogMjAxLCB0ZXN0OiAyLCBwbGF0Zm9y
bTogMjN9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlv
bl9yZXBldGl0aW9uX3R5cGVzJywge2NvbmZpZzogNCwgdHlwZTogJ2FsdGVybmF0aW5nJ30pLAor
ICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRp
b25fdHlwZXMnLCB7Y29uZmlnOiA0LCB0eXBlOiAnc2VxdWVudGlhbCd9KSwKKyAgICAgICAgICAg
IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCB7aWQ6IDUsIHRyaWdnZXJh
YmxlOiAyMDIsIHRlc3Q6IDEsIHBsYXRmb3JtOiAxMDR9KSwKKyAgICAgICAgICAgIGRiLmluc2Vy
dCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywge2NvbmZpZzog
NSwgdHlwZTogJ2FsdGVybmF0aW5nJ30pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2Vy
YWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMnLCB7Y29uZmlnOiA1LCB0eXBlOiAn
c2VxdWVudGlhbCd9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmln
dXJhdGlvbnMnLCB7aWQ6IDYsIHRyaWdnZXJhYmxlOiAyMDIsIHRlc3Q6IDIsIHBsYXRmb3JtOiAx
MDR9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9y
ZXBldGl0aW9uX3R5cGVzJywge2NvbmZpZzogNiwgdHlwZTogJ2FsdGVybmF0aW5nJ30pLAorICAg
ICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25f
dHlwZXMnLCB7Y29uZmlnOiA2LCB0eXBlOiAnc2VxdWVudGlhbCd9KSwKICAgICAgICAgXSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gTWFuaWZlc3QuZmV0Y2goKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL2FwaS11cGRhdGUtdHJpZ2dlcmFibGUtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGRhdGUtdHJpZ2dlcmFibGUtdGVzdHMuanMK
aW5kZXggMWEzNTJiMzg0YWMzMWM4MjE5YTM1MDMzMTc4NjUzMDdiMDE3NjQ0YS4uZjBlNTQ3ZmRl
MTQ2MTMyODI4NzdjYTJjNzBlZWM5NTUwMTk5ODZkMSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLXRlc3RzLmpz
CisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwZGF0ZS10
cmlnZ2VyYWJsZS10ZXN0cy5qcwpAQCAtOCw2ICs4LDcgQEAgY29uc3QgVGVzdFNlcnZlciA9IHJl
cXVpcmUoJy4vcmVzb3VyY2VzL3Rlc3Qtc2VydmVyLmpzJyk7CiBjb25zdCBNb2NrRGF0YSA9IHJl
cXVpcmUoJy4vcmVzb3VyY2VzL21vY2stZGF0YS5qcycpOwogY29uc3QgYWRkV29ya2VyRm9yUmVw
b3J0ID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMnKS5hZGRXb3Jr
ZXJGb3JSZXBvcnQ7CiBjb25zdCBwcmVwYXJlU2VydmVyVGVzdCA9IHJlcXVpcmUoJy4vcmVzb3Vy
Y2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzJykucHJlcGFyZVNlcnZlclRlc3Q7Citjb25zdCBhc3Nl
cnRUaHJvd3MgPSByZXF1aXJlKCcuLi9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL2NvbW1vbi1vcGVy
YXRpb25zJykuYXNzZXJ0VGhyb3dzOwogCiBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFi
bGUvJywgZnVuY3Rpb24gKCkgewogICAgIHByZXBhcmVTZXJ2ZXJUZXN0KHRoaXMpOwpAQCAtMTks
MTQgKzIwLDE2IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICdjb25maWd1cmF0aW9ucyc6IFtdLAogICAgIH07CiAKLSAgICBjb25z
dCBzbWFsbFVwZGF0ZSA9IHsKLSAgICAgICAgJ3dvcmtlck5hbWUnOiAnc29tZVdvcmtlcicsCi0g
ICAgICAgICd3b3JrZXJQYXNzd29yZCc6ICdzb21lUGFzc3dvcmQnLAotICAgICAgICAndHJpZ2dl
cmFibGUnOiAnYnVpbGQtd2Via2l0JywKLSAgICAgICAgJ2NvbmZpZ3VyYXRpb25zJzogWwotICAg
ICAgICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRh
LnNvbWVQbGF0Zm9ybUlkKCl9Ci0gICAgICAgIF0sCi0gICAgfTsKKyAgICBmdW5jdGlvbiBjcmVh
dGVVcGRhdGVXaXRoUmVwZXRpdGlvblR5cGVzKHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcykgewor
ICAgICAgICByZXR1cm4geworICAgICAgICAgICAgJ3dvcmtlck5hbWUnOiAnc29tZVdvcmtlcics
CisgICAgICAgICAgICAnd29ya2VyUGFzc3dvcmQnOiAnc29tZVBhc3N3b3JkJywKKyAgICAgICAg
ICAgICd0cmlnZ2VyYWJsZSc6ICdidWlsZC13ZWJraXQnLAorICAgICAgICAgICAgJ2NvbmZpZ3Vy
YXRpb25zJzogW3t0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0
YS5zb21lUGxhdGZvcm1JZCgpLCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXN9XSwKKyAgICAgICAg
fQorICAgIH0KKworICAgIGNvbnN0IHNtYWxsVXBkYXRlID0gY3JlYXRlVXBkYXRlV2l0aFJlcGV0
aXRpb25UeXBlcyhbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXSk7CiAKICAgICBpdCgnc2hv
dWxkIHJlamVjdCB3aGVuIHdvcmtlciBuYW1lIGlzIG1pc3NpbmcnLCAoKSA9PiB7CiAgICAgICAg
IHJldHVybiBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3VwZGF0ZS10cmln
Z2VyYWJsZS8nLCB7fSkudGhlbigocmVzcG9uc2UpID0+IHsKQEAgLTExOSw3ICsxMjIsNyBAQCBk
ZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgJ3dvcmtlclBhc3N3b3JkJzogJ3NvbWVQYXNzd29yZCcsCiAgICAgICAgICAgICAndHJp
Z2dlcmFibGUnOiAnZW1wdHktdHJpZ2dlcmFibGUnLAogICAgICAgICAgICAgJ2NvbmZpZ3VyYXRp
b25zJzogWwotICAgICAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBs
YXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpfQorICAgICAgICAgICAgICAgIHt0ZXN0
OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1J
ZCgpLCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlh
bCddfSwKICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAncmVwb3NpdG9yeUdyb3Vwcyc6IFsK
ICAgICAgICAgICAgICAgICB7bmFtZTogJ3N5c3RlbS1vbmx5JywgcmVwb3NpdG9yaWVzOiBbCkBA
IC0yNTMsNiArMjU2LDggQEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1
bmN0aW9uICgpIHsKICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7CiAgICAgICAgICAgICBj
b25zdCBbaW5pdGlhbENvbmZpZ3VyYXRpb25zLCBpbml0aWFsUmVwb3NpdG9yeUdyb3Vwc10gPSBp
bml0aWFsUmVzdWx0OwogICAgICAgICAgICAgY29uc3QgW2NvbmZpZ3VyYXRpb25zLCByZXBvc2l0
b3J5R3JvdXBzXSA9IHJlc3VsdDsKKyAgICAgICAgICAgIGluaXRpYWxDb25maWd1cmF0aW9ucy5m
b3JFYWNoKGNvbmZpZyA9PiBkZWxldGUgY29uZmlnLmlkKTsKKyAgICAgICAgICAgIGNvbmZpZ3Vy
YXRpb25zLmZvckVhY2goY29uZmlnID0+IGRlbGV0ZSBjb25maWcuaWQpOwogICAgICAgICAgICAg
YXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChjb25maWd1cmF0aW9ucywgaW5pdGlhbENvbmZpZ3VyYXRp
b25zKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocmVwb3NpdG9yeUdyb3Vw
cywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHMpOwogICAgICAgICB9KQpAQCAtMjc1LDYgKzI4MCw4
IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAgICAgY29uc3QgW2luaXRpYWxD
b25maWd1cmF0aW9ucywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHNdID0gaW5pdGlhbFJlc3VsdDsK
ICAgICAgICAgICAgIGNvbnN0IFtjb25maWd1cmF0aW9ucywgcmVwb3NpdG9yeUdyb3Vwc10gPSBy
ZXN1bHQ7CisgICAgICAgICAgICBpbml0aWFsQ29uZmlndXJhdGlvbnMuZm9yRWFjaChjb25maWcg
PT4gZGVsZXRlIGNvbmZpZy5pZCk7CisgICAgICAgICAgICBjb25maWd1cmF0aW9ucy5mb3JFYWNo
KGNvbmZpZyA9PiBkZWxldGUgY29uZmlnLmlkKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwU3Ry
aWN0RXF1YWwoY29uZmlndXJhdGlvbnMsIGluaXRpYWxDb25maWd1cmF0aW9ucyk7CiAgICAgICAg
ICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRvcnlHcm91cHMsIGluaXRpYWxSZXBv
c2l0b3J5R3JvdXBzKTsKICAgICAgICAgfSkKQEAgLTMwOCw3ICszMTUsNyBAQCBkZXNjcmliZSgn
L2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgJ3dv
cmtlclBhc3N3b3JkJzogJ3NvbWVQYXNzd29yZCcsCiAgICAgICAgICAgICAndHJpZ2dlcmFibGUn
OiAnZW1wdHktdHJpZ2dlcmFibGUnLAogICAgICAgICAgICAgJ2NvbmZpZ3VyYXRpb25zJzogWwot
ICAgICAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBN
b2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpfQorICAgICAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0
YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpLCBzdXBw
b3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddfSwKICAg
ICAgICAgICAgIF0sCiAgICAgICAgICAgICAncmVwb3NpdG9yeUdyb3Vwcyc6IFsKICAgICAgICAg
ICAgICAgICB7bmFtZTogJ3N5c3RlbS1vbmx5JywgcmVwb3NpdG9yaWVzOiBbe3JlcG9zaXRvcnk6
IE1vY2tEYXRhLm1hY29zUmVwb3NpdG9yeUlkKCl9XX0sCkBAIC00NjUsNCArNDcyLDIyIEBAIGRl
c2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IH0pOwogICAgIH0pOwogCisgICAgaXQoJ3Nob3VsZCBhbGxvdyBhZGRpbmcgInBhaXJlZC1wYXJh
bGxlbCIgcmVwZXRpdGlvbiB0eXBlIHRvIHRyaWdnZXJhYmxlIGNvbmZpZ3VyYXRpb24nLCBhc3lu
YyAoKSA9PiB7CisgICAgICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAg
ICAgICBhd2FpdCBNb2NrRGF0YS5hZGRNb2NrRGF0YShkYik7CisgICAgICAgIGNvbnN0IGluaXRp
YWxVcGRhdGUgPSBjcmVhdGVVcGRhdGVXaXRoUmVwZXRpdGlvblR5cGVzKFsnYWx0ZXJuYXRpbmcn
LCAnc2VxdWVudGlhbCddKTsKKyAgICAgICAgYXdhaXQgYWRkV29ya2VyRm9yUmVwb3J0KGluaXRp
YWxVcGRhdGUpOworICAgICAgICBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09O
V2l0aFN0YXR1cygnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUnLCBpbml0aWFsVXBkYXRlKTsKKwor
ICAgICAgICBsZXQgcm93cyA9IGF3YWl0IGRiLnNlbGVjdEFsbCgndHJpZ2dlcmFibGVfY29uZmln
dXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywgJ3R5cGUnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHJvd3MubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyb3dzLm1h
cChyb3cgPT4gcm93LnR5cGUpLnNvcnQoKSwgWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ10p
OworCisgICAgICAgIGNvbnN0IHVwZGF0ZVdpdGhQYXJhbGxlbFJlcGV0aXRpb24gPSBjcmVhdGVV
cGRhdGVXaXRoUmVwZXRpdGlvblR5cGVzKFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCcsICdw
YWlyZWQtcGFyYWxsZWwnXSk7CisgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCku
cG9zdEpTT05XaXRoU3RhdHVzKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZScsIHVwZGF0ZVdpdGhQ
YXJhbGxlbFJlcGV0aXRpb24pOworICAgICAgICByb3dzID0gYXdhaXQgZGIuc2VsZWN0QWxsKCd0
cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMnLCAndHlwZScpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocm93cy5sZW5ndGgsIDMpOworICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHJvd3MubWFwKHJvdyA9PiByb3cudHlwZSkuc29ydCgpLCBbJ2FsdGVybmF0aW5n
JywgJ3BhaXJlZC1wYXJhbGxlbCcsICdzZXF1ZW50aWFsJ10pOworICAgIH0pOworCiB9KTsKZGlm
ZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwbG9h
ZC1yb290LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9h
cGktdXBsb2FkLXJvb3QtdGVzdHMuanMKaW5kZXggNjc1ZDU5NDg3NGNhMTZkYzdlODk2NjgwNGNm
ZWY0MTg2NWYyNTJkYy4uNTIwNTUwYjM4ZGI5Y2VkYWY4MzQ0OTgyMjk2Y2I0M2E2ODllNjlkOSAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBs
b2FkLXJvb3QtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9hcGktdXBsb2FkLXJvb3QtdGVzdHMuanMKQEAgLTM4LDcgKzM4LDcgQEAgZnVuY3Rpb24g
Y3JlYXRlVGVzdEdyb3VwV2loUGF0Y2goKQogICAgICAgICAnd29ya2VyUGFzc3dvcmQnOiAncGFz
c3dvcmQnLAogICAgICAgICAndHJpZ2dlcmFibGUnOiAnYnVpbGQtd2Via2l0JywKICAgICAgICAg
J2NvbmZpZ3VyYXRpb25zJzogWwotICAgICAgICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0
SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCl9LAorICAgICAgICAgICAg
e3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0
Zm9ybUlkKCksIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1
ZW50aWFsJ119LAogICAgICAgICBdLAogICAgICAgICAncmVwb3NpdG9yeUdyb3Vwcyc6IFsKICAg
ICAgICAgICAgIHtuYW1lOiAnd2Via2l0JywgcmVwb3NpdG9yaWVzOiBbCkBAIC04MCw3ICs4MCw3
IEBAIGZ1bmN0aW9uIGNyZWF0ZVRlc3RHcm91cFdpdGhQYXRjaEFuZE93bmVkQ29tbWl0cygpCiAg
ICAgICAgICd3b3JrZXJQYXNzd29yZCc6ICdwYXNzd29yZCcsCiAgICAgICAgICd0cmlnZ2VyYWJs
ZSc6ICdidWlsZC13ZWJraXQnLAogICAgICAgICAnY29uZmlndXJhdGlvbnMnOiBbCi0gICAgICAg
ICAgICB7dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29t
ZVBsYXRmb3JtSWQoKX0sCisgICAgICAgICAgICB7dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgp
LCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSwgc3VwcG9ydGVkUmVwZXRpdGlv
blR5cGVzOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXX0sCiAgICAgICAgIF0sCiAgICAg
ICAgICdyZXBvc2l0b3J5R3JvdXBzJzogWwogICAgICAgICAgICAge25hbWU6ICd3ZWJraXQnLCBy
ZXBvc2l0b3JpZXM6IFsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktYWRkLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1hZGQtYnVp
bGQtcmVxdWVzdHMtdGVzdHMuanMKaW5kZXggZjljNDQ2NDVhMmE3NDM3NGRiOWM1NTU5NDA5OGNh
MjNiOTJiNzM1Yy4uNjZjZTJmZDJlZjFmOGM1NjU4ZmRkYjRiMjU4ODdkN2UwNTJhODc4NSAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2Vk
LWFwaS1hZGQtYnVpbGQtcmVxdWVzdHMtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1hZGQtYnVpbGQtcmVxdWVzdHMtdGVz
dHMuanMKQEAgLTk2LDggKzk2LDggQEAgYXN5bmMgZnVuY3Rpb24gYWRkVHJpZ2dlcmFibGVBbmRD
cmVhdGVUYXNrKG5hbWUsIHdlYmtpdFJldmlzaW9ucykKICAgICAgICAgJ3dvcmtlclBhc3N3b3Jk
JzogJ2Fub3RoZXJQYXNzd29yZCcsCiAgICAgICAgICd0cmlnZ2VyYWJsZSc6ICdidWlsZC13ZWJr
aXQnLAogICAgICAgICAnY29uZmlndXJhdGlvbnMnOiBbCi0gICAgICAgICAgICB7dGVzdDogTW9j
a0RhdGEuc29tZVRlc3RJZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKX0s
Ci0gICAgICAgICAgICB7dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBwbGF0Zm9ybTogTW9j
a0RhdGEub3RoZXJQbGF0Zm9ybUlkKCl9LAorICAgICAgICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNv
bWVUZXN0SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCksIHN1cHBvcnRl
ZFJlcGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ119LAorICAgICAg
ICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRhLm90
aGVyUGxhdGZvcm1JZCgpLCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcn
LCAnc2VxdWVudGlhbCddfSwKICAgICAgICAgXSwKICAgICAgICAgJ3JlcG9zaXRvcnlHcm91cHMn
OiBbCiAgICAgICAgICAgICB7bmFtZTogJ29zLW9ubHknLCBhY2NlcHRzUm9vdDogdHJ1ZSwgcmVw
b3NpdG9yaWVzOiBbCkBAIC0xOTAsNyArMTkwLDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFw
aS9hZGQtYnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbigpIHsKICAgICAgICAgYXdhaXQgYXNzZXJ0
VGhyb3dzKCdDYW5ub3RBZGRUb0hpZGRlblRlc3RHcm91cCcsIGFzeW5jICgpID0+IGF3YWl0IFBy
aXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2FkZC1idWlsZC1yZXF1ZXN0cycsIHtncm91cDogaW5z
ZXJ0ZWRHcm91cElkLCBhZGRDb3VudDogMn0pKQogICAgIH0pOwogCi0gICAgaXQoJ3Nob3VsZCBy
ZWplY3Qgd2l0aCAiQ29tbWl0U2V0Tm90U3VwcG9ydGVkRm9yQWx0ZXJuYXRpbmdSZXBldGl0aW9u
VHlwZSIgd2hlbiBhZGRpbmcgYnVpbGQgcmVxdWVzdHMgZm9yIG9uZSBjb21taXQgc2V0IGluIGFu
IGFsdGVybmF0aW5nIHRlc3QgZ3JvdXAnLCBhc3luYyAoKSA9PiB7CisgICAgaXQoJ3Nob3VsZCBy
ZWplY3Qgd2l0aCAiQ29tbWl0U2V0Tm90U3VwcG9ydGVkUmVwZXRpdGlvblR5cGUiIHdoZW4gYWRk
aW5nIGJ1aWxkIHJlcXVlc3RzIGZvciBvbmUgY29tbWl0IHNldCBpbiBhbiBhbHRlcm5hdGluZyB0
ZXN0IGdyb3VwJywgYXN5bmMgKCkgPT4gewogICAgICAgICBhd2FpdCBhZGRUcmlnZ2VyYWJsZUFu
ZENyZWF0ZVRhc2soJ3NvbWUgdGFzaycpOwogICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0
b3J5LmFsbCgpLmZpbHRlcigocmVwb3NpdG9yeSkgPT4gcmVwb3NpdG9yeS5uYW1lKCkgPT0gJ1dl
YktpdCcpWzBdOwogICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBbe1t3ZWJraXQuaWQoKV06
IHtyZXZpc2lvbjogJzE5MTYyMid9fSwge1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYy
Myd9fV07CkBAIC0yMTgsNyArMjE4LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9hZGQt
YnVpbGQtcmVxdWVzdHMnLCBmdW5jdGlvbigpIHsKICAgICAgICAgY29uc3Qgc2Vjb25kQ29tbWl0
U2V0ID0gZ3JvdXAucmVxdWVzdGVkQ29tbWl0U2V0cygpWzFdOwogICAgICAgICBhc3NlcnRPcmRl
ck9mUmVxdWVzdHMoZ3JvdXAucmVxdWVzdHNGb3JDb21taXRTZXQoc2Vjb25kQ29tbWl0U2V0KSwg
WzEsIDNdKTsKIAotICAgICAgICBhd2FpdCBhc3NlcnRUaHJvd3MoJ0NvbW1pdFNldE5vdFN1cHBv
cnRlZEZvckFsdGVybmF0aW5nUmVwZXRpdGlvblR5cGUnLCAoKSA9PiB7CisgICAgICAgIGF3YWl0
IGFzc2VydFRocm93cygnQ29tbWl0U2V0Tm90U3VwcG9ydGVkUmVwZXRpdGlvblR5cGUnLCAoKSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnYWRkLWJ1
aWxkLXJlcXVlc3RzJywKICAgICAgICAgICAgICAgICB7Z3JvdXA6IGluc2VydGVkR3JvdXBJZCwg
YWRkQ291bnQ6IDIsIGNvbW1pdFNldDogc2Vjb25kQ29tbWl0U2V0LmlkKCl9KQogICAgICAgICB9
KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJp
dmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2stdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS1hbmFseXNpcy10
YXNrLXRlc3RzLmpzCmluZGV4IDJhMTcxNzhlNDM0MjMyMmVmY2MwYmZmZDI3ZjI5ODIzNWY0MzI2
ZGIuLmIxNWQ0OTM3NjA1NmM0Yjk2MzRlYmZmNWUxNmQxOTlkOTQ5NDU2ZTMgMTAwNjQ0Ci0tLSBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3Jl
YXRlLWFuYWx5c2lzLXRhc2stdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtYW5hbHlzaXMtdGFzay10ZXN0cy5q
cwpAQCAtNDE1LDcgKzQxNSw4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFu
YWx5c2lzLXRhc2sgd2l0aCBicm93c2VyIHByaXZpbGVnZWQgYXBpJywgZnVuCiAgICAgICAgIGF3
YWl0IGRiLmluc2VydCgnYnVpbGRfdHJpZ2dlcmFibGVzJywge2lkOiAxMjM0LCBuYW1lOiAndGVz
dC10cmlnZ2VyYWJsZSd9KTsKICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9y
ZXBvc2l0b3J5X2dyb3VwcycsIHtpZDogMjM0NSwgbmFtZTogJ3dlYmtpdC1vbmx5JywgdHJpZ2dl
cmFibGU6IHRyaWdnZXJhYmxlSWR9KTsKICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2Vy
YWJsZV9yZXBvc2l0b3JpZXMnLCB7cmVwb3NpdG9yeTogd2Via2l0SWQsIGdyb3VwOiAyMzQ1fSk7
Ci0gICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCB7
dGVzdDogdGVzdDFJZCwgcGxhdGZvcm06IHBsYXRmb3JtSWQsIHRyaWdnZXJhYmxlOiB0cmlnZ2Vy
YWJsZUlkfSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJh
dGlvbnMnLCB7aWQ6IDEsIHRlc3Q6IHRlc3QxSWQsIHBsYXRmb3JtOiBwbGF0Zm9ybUlkLCB0cmln
Z2VyYWJsZTogdHJpZ2dlcmFibGVJZH0pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdn
ZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcycsIHtjb25maWc6IDEsIHR5cGU6
ICdhbHRlcm5hdGluZyd9KTsKICAgICAgICAgYXdhaXQgYWRkQnVpbGRlckZvclJlcG9ydChyZXBv
cnRXaXRoUmV2aXNpb25bMF0pOwogCiAgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7CkBAIC01Mzcs
NyArNTM4LDggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFz
ayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBhcGknLCBmdW5jdGkKICAgICAgICAgYXdhaXQgZGIuaW5z
ZXJ0KCdidWlsZF90cmlnZ2VyYWJsZXMnLCB7aWQ6IDEyMzQsIG5hbWU6ICd0ZXN0LXRyaWdnZXJh
YmxlJ30pOwogICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlf
Z3JvdXBzJywge2lkOiAyMzQ1LCBuYW1lOiAnd2Via2l0LW9ubHknLCB0cmlnZ2VyYWJsZTogdHJp
Z2dlcmFibGVJZH0pOwogICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9z
aXRvcmllcycsIHtyZXBvc2l0b3J5OiB3ZWJraXRJZCwgZ3JvdXA6IDIzNDV9KTsKLSAgICAgICAg
YXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHt0ZXN0OiB0ZXN0
MUlkLCBwbGF0Zm9ybTogcGxhdGZvcm1JZCwgdHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxlSWR9KTsK
KyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHtp
ZDogMSwgdGVzdDogdGVzdDFJZCwgcGxhdGZvcm06IHBsYXRmb3JtSWQsIHRyaWdnZXJhYmxlOiB0
cmlnZ2VyYWJsZUlkfSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29u
ZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywge2NvbmZpZzogMSwgdHlwZTogJ2FsdGVybmF0
aW5nJ30pOwogICAgICAgICBhd2FpdCBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhSZXZp
c2lvblswXSk7CiAKICAgICAgICAgYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNP
TignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFJldmlzaW9uKTsKQEAgLTYxNyw3ICs2MTksOCBA
QCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggbm9k
ZSBwcml2aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2J1aWxk
X3RyaWdnZXJhYmxlcycsIHtpZDogMTIzNCwgbmFtZTogJ3Rlc3QtdHJpZ2dlcmFibGUnfSk7CiAg
ICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91cHMnLCB7
aWQ6IDIzNDUsIG5hbWU6ICd3ZWJraXQtb25seScsIHRyaWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlk
fSk7CiAgICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzJywg
e3JlcG9zaXRvcnk6IHdlYmtpdElkLCBncm91cDogMjM0NX0pOwotICAgICAgICBhd2FpdCBkYi5p
bnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywge3Rlc3Q6IHRlc3QxSWQsIHBsYXRm
b3JtOiBwbGF0Zm9ybUlkLCB0cmlnZ2VyYWJsZTogdHJpZ2dlcmFibGVJZH0pOworICAgICAgICBh
d2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywge2lkOiAxLCB0ZXN0
OiB0ZXN0MUlkLCBwbGF0Zm9ybTogcGxhdGZvcm1JZCwgdHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxl
SWR9KTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9u
X3JlcGV0aXRpb25fdHlwZXMnLCB7Y29uZmlnOiAxLCB0eXBlOiAnYWx0ZXJuYXRpbmcnfSk7CiAg
ICAgICAgIGF3YWl0IGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uWzBdKTsK
IAogICAgICAgICBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3Jl
cG9ydC8nLCByZXBvcnRXaXRoUmV2aXNpb24pOwpAQCAtNjk3LDcgKzcwMCw5IEBAIGRlc2NyaWJl
KCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBub2RlIHByaXZpbGVn
ZWQgYXBpJywgZnVuY3RpCiAgICAgICAgIGF3YWl0IGRiLmluc2VydCgnYnVpbGRfdHJpZ2dlcmFi
bGVzJywge2lkOiAxMjM0LCBuYW1lOiAndGVzdC10cmlnZ2VyYWJsZSd9KTsKICAgICAgICAgYXdh
aXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycsIHtpZDogMjM0NSwg
bmFtZTogJ3dlYmtpdC1vbmx5JywgdHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxlSWR9KTsKICAgICAg
ICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCB7cmVwb3NpdG9y
eTogd2Via2l0SWQsIGdyb3VwOiAyMzQ1fSk7Ci0gICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJp
Z2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCB7dGVzdDogdGVzdElkLCBwbGF0Zm9ybTogcGxhdGZv
cm1JZCwgdHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxlSWR9KTsKKyAgICAgICAgYXdhaXQgZGIuaW5z
ZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHtpZDogMSwgdGVzdDogdGVzdElkLCBw
bGF0Zm9ybTogcGxhdGZvcm1JZCwgdHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxlSWR9KTsKKyAgICAg
ICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25f
dHlwZXMnLCB7Y29uZmlnOiAxLCB0eXBlOiAnYWx0ZXJuYXRpbmcnfSk7CisgICAgICAgIGF3YWl0
IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywg
e2NvbmZpZzogMSwgdHlwZTogJ3NlcXVlbnRpYWwnfSk7CiAgICAgICAgIGF3YWl0IGFkZEJ1aWxk
ZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uWzBdKTsKIAogICAgICAgICBhd2FpdCBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2
aXNpb24pOwpAQCAtNzU1LDcgKzc2MCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3Jl
YXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBub2RlIHByaXZpbGVnZWQgYXBpJywgZnVuY3RpCiAgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChzZWNvbmRDb21taXRTZXQuY29tbWl0Rm9yUmVwb3NpdG9y
eSh3ZWJraXRSZXBvc2l0b3J5KS5yZXZpc2lvbigpLCAnMTkxNjIzJyk7CiAgICAgfSk7CiAKLSAg
ICBpdCgnc2hvdWxkIHJlamVjdCB3aXRoICJJbnZhbGlkUmVwZXRpdGlvblR5cGUiIHdoZW4gcmVw
ZXRpdGlvbiB0eXBlIGlzIG5vdCAiYWx0ZXJuYXRpbmciIG9yICJzZXF1ZW50aWFsIicsIGFzeW5j
ICgpID0+IHsKKyAgICBpdCgnc2hvdWxkIGJlIGFibGUgdG8gY3JlYXRlIGFuIGFuYWx5c2lzIHRh
c2sgd2l0aCBhIHBhaXJlZCBwYXJhbGxlbCB0ZXN0IGdyb3VwJywgYXN5bmMgKCkgPT4gewogICAg
ICAgICBjb25zdCB3ZWJraXRJZCA9IDE7CiAgICAgICAgIGNvbnN0IHBsYXRmb3JtSWQgPSAxOwog
ICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZUlkID0gMTIzNDsKQEAgLTc2OSw3ICs3NzQsODMgQEAg
ZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRoIG5vZGUg
cHJpdmlsZWdlZCBhcGknLCBmdW5jdGkKICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdidWlsZF90
cmlnZ2VyYWJsZXMnLCB7aWQ6IDEyMzQsIG5hbWU6ICd0ZXN0LXRyaWdnZXJhYmxlJ30pOwogICAg
ICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywge2lk
OiAyMzQ1LCBuYW1lOiAnd2Via2l0LW9ubHknLCB0cmlnZ2VyYWJsZTogdHJpZ2dlcmFibGVJZH0p
OwogICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcmllcycsIHty
ZXBvc2l0b3J5OiB3ZWJraXRJZCwgZ3JvdXA6IDIzNDV9KTsKLSAgICAgICAgYXdhaXQgZGIuaW5z
ZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHt0ZXN0OiB0ZXN0SWQsIHBsYXRmb3Jt
OiBwbGF0Zm9ybUlkLCB0cmlnZ2VyYWJsZTogdHJpZ2dlcmFibGVJZH0pOworICAgICAgICBhd2Fp
dCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywge2lkOiAxLCB0ZXN0OiB0
ZXN0SWQsIHBsYXRmb3JtOiBwbGF0Zm9ybUlkLCB0cmlnZ2VyYWJsZTogdHJpZ2dlcmFibGVJZH0p
OworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVw
ZXRpdGlvbl90eXBlcycsIHtjb25maWc6IDEsIHR5cGU6ICdhbHRlcm5hdGluZyd9KTsKKyAgICAg
ICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25f
dHlwZXMnLCB7Y29uZmlnOiAxLCB0eXBlOiAnc2VxdWVudGlhbCd9KTsKKyAgICAgICAgYXdhaXQg
ZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMnLCB7
Y29uZmlnOiAxLCB0eXBlOiAncGFpcmVkLXBhcmFsbGVsJ30pOworICAgICAgICBhd2FpdCBhZGRC
dWlsZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhSZXZpc2lvblswXSk7CisKKyAgICAgICAgYXdhaXQg
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0
aFJldmlzaW9uKTsKKyAgICAgICAgYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNP
TignL2FwaS9yZXBvcnQvJywgYW5vdGhlclJlcG9ydFdpdGhSZXZpc2lvbik7CisgICAgICAgIGF3
YWl0IE1hbmlmZXN0LmZldGNoKCk7CisKKyAgICAgICAgY29uc3QgdGVzdCA9IFRlc3QuZmluZEJ5
SWQodGVzdElkKTsKKyAgICAgICAgY29uc3Qgc29tZVBsYXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5
SWQocGxhdGZvcm1JZCk7CisgICAgICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVj
dEZpcnN0Um93KCd0ZXN0X2NvbmZpZ3VyYXRpb25zJywge21ldHJpYzogdGVzdC5tZXRyaWNzKClb
MF0uaWQoKSwgcGxhdGZvcm06IHNvbWVQbGF0Zm9ybS5pZCgpfSk7CisgICAgICAgIGNvbnN0IHRl
c3RSdW5zID0gYXdhaXQgZGIuc2VsZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmln
Um93WydpZCddfSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgs
IDIpOworCisgICAgICAgIGNvbnN0IG9uZVJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZp
c2lvbjogJzE5MTYyMid9fTsKKyAgICAgICAgY29uc3QgYW5vdGhlclJldmlzaW9uU2V0ID0ge1t3
ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5MTYyMyd9fTsKKworICAgICAgICBjb25zdCBjb250ZW50
ID0gYXdhaXQgUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2sn
LCB7bmFtZTogJ2NvbmZpcm0nLCByZXBldGl0aW9uQ291bnQ6IDIsCisgICAgICAgICAgICB0ZXN0
R3JvdXBOYW1lOiAnQ29uZmlybScsIHJldmlzaW9uU2V0czogW29uZVJldmlzaW9uU2V0LCBhbm90
aGVyUmV2aXNpb25TZXRdLAorICAgICAgICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCdd
LCBlbmRSdW46IHRlc3RSdW5zWzFdWydpZCddLCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwgcmVw
ZXRpdGlvblR5cGU6ICdwYWlyZWQtcGFyYWxsZWwnfSk7CisKKyAgICAgICAgY29uc3QgdGFzayA9
IGF3YWl0IEFuYWx5c2lzVGFzay5mZXRjaEJ5SWQoY29udGVudFsndGFza0lkJ10pOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5uYW1lKCksICdjb25maXJtJyk7CisgICAgICAgIGFz
c2VydCghdGFzay5oYXNSZXN1bHRzKCkpOworICAgICAgICBhc3NlcnQodGFzay5oYXNQZW5kaW5n
UmVxdWVzdHMoKSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5idWdzKCks
IFtdKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0YXNrLmNhdXNlcygpLCBbXSk7
CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5maXhlcygpLCBbXSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLmNoYW5nZVR5cGUoKSwgbnVsbCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLnBsYXRmb3JtKCkubGFiZWwoKSwgJ3NvbWUgcGxhdGZv
cm0nKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2subWV0cmljKCkudGVzdCgpLmxh
YmVsKCksICdTdWl0ZScpOworCisgICAgICAgIGNvbnN0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0
R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2suaWQoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIGNvbnN0IHRlc3RHcm91cCA9IHRlc3RH
cm91cHNbMF07CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAubmFtZSgpLCAn
Q29uZmlybScpOworICAgICAgICBhc3NlcnQub2sodGVzdEdyb3VwLm5lZWRzTm90aWZpY2F0aW9u
KCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLnJlcGV0aXRpb25UeXBl
KCksICdwYWlyZWQtcGFyYWxsZWwnKQorICAgICAgICBmb3IgKGNvbnN0IGNvbW1pdFNldCBvZiB0
ZXN0R3JvdXAucmVxdWVzdGVkQ29tbWl0U2V0cygpKQorICAgICAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKHRlc3RHcm91cC5yZXBldGl0aW9uQ291bnRGb3JDb21taXRTZXQoY29tbWl0U2V0KSwg
Mik7CisKKyAgICAgICAgY29uc3QgYnVpbGRSZXF1ZXN0cyA9IHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzLmxlbmd0aCwg
NCk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMF0ub3JkZXIo
KSwgMCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzFdLm9yZGVy
KCksIDEpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1syXS5vcmRl
cigpLCAyKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbM10ub3Jk
ZXIoKSwgMyk7CisKKyAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdHNbMF0uY29tbWl0U2V0KCku
ZXF1YWxzKGJ1aWxkUmVxdWVzdHNbMl0uY29tbWl0U2V0KCkpKTsKKyAgICAgICAgYXNzZXJ0KGJ1
aWxkUmVxdWVzdHNbMV0uY29tbWl0U2V0KCkuZXF1YWxzKGJ1aWxkUmVxdWVzdHNbM10uY29tbWl0
U2V0KCkpKTsKKworICAgICAgICBjb25zdCBmaXJzdENvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdHNb
MF0uY29tbWl0U2V0KCk7CisgICAgICAgIGNvbnN0IHNlY29uZENvbW1pdFNldCA9IGJ1aWxkUmVx
dWVzdHNbMV0uY29tbWl0U2V0KCk7CisgICAgICAgIGNvbnN0IHdlYmtpdFJlcG9zaXRvcnkgPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKHdlYmtpdElkKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGZpcnN0Q29tbWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2
aXNpb24oKSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29t
bWl0U2V0LmNvbW1pdEZvclJlcG9zaXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwg
JzE5MTYyMycpOworICAgIH0pOworCisgICAgaXQoJ3Nob3VsZCByZWplY3Qgd2l0aCAiSW52YWxp
ZFJlcGV0aXRpb25UeXBlIiB3aGVuIHJlcGV0aXRpb24gdHlwZSBpcyBub3QgImFsdGVybmF0aW5n
IiwgInNlcXVlbnRpYWwiIG9yICJwYWlyZWQtcGFyYWxsZWwiJywgYXN5bmMgKCkgPT4geworICAg
ICAgICBjb25zdCB3ZWJraXRJZCA9IDE7CisgICAgICAgIGNvbnN0IHBsYXRmb3JtSWQgPSAxOwor
ICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZUlkID0gMTIzNDsKKworICAgICAgICBjb25zdCBkYiA9
IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0ZXN0cycs
IHtuYW1lOiAnU3VpdGUnfSk7CisgICAgICAgIGNvbnN0IHRlc3RSb3cgPSBhd2FpdCBkYi5zZWxl
Y3RGaXJzdFJvdygndGVzdHMnLCB7bmFtZTogJ1N1aXRlJ30pOworICAgICAgICBjb25zdCB0ZXN0
SWQgPSB0ZXN0Um93LmlkOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3JlcG9zaXRvcmllcycs
IHtpZDogd2Via2l0SWQsIG5hbWU6ICdXZWJLaXQnfSk7CisgICAgICAgIGF3YWl0IGRiLmluc2Vy
dCgncGxhdGZvcm1zJywge2lkOiBwbGF0Zm9ybUlkLCBuYW1lOiAnc29tZSBwbGF0Zm9ybSd9KTsK
KyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdidWlsZF90cmlnZ2VyYWJsZXMnLCB7aWQ6IDEyMzQs
IG5hbWU6ICd0ZXN0LXRyaWdnZXJhYmxlJ30pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3Ry
aWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywge2lkOiAyMzQ1LCBuYW1lOiAnd2Via2l0LW9u
bHknLCB0cmlnZ2VyYWJsZTogdHJpZ2dlcmFibGVJZH0pOworICAgICAgICBhd2FpdCBkYi5pbnNl
cnQoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcmllcycsIHtyZXBvc2l0b3J5OiB3ZWJraXRJZCwgZ3Jv
dXA6IDIzNDV9KTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1
cmF0aW9ucycsIHtpZDogMSwgdGVzdDogdGVzdElkLCBwbGF0Zm9ybTogcGxhdGZvcm1JZCwgdHJp
Z2dlcmFibGU6IHRyaWdnZXJhYmxlSWR9KTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmln
Z2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMnLCB7Y29uZmlnOiAxLCB0eXBl
OiAnYWx0ZXJuYXRpbmcnfSk7CiAgICAgICAgIGF3YWl0IGFkZEJ1aWxkZXJGb3JSZXBvcnQocmVw
b3J0V2l0aFJldmlzaW9uWzBdKTsKIAogICAgICAgICBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2aXNpb24pOwpAQCAtNzk3
LDQgKzg3OCw5MiBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10
YXNrIHdpdGggbm9kZSBwcml2aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICAgICAgfSkKICAg
ICAgICAgfSk7CiAgICAgfSk7CisKKyAgICBpdCgnc2hvdWxkIHJlamVjdCB3aXRoICJVbnN1cHBv
cnRlZFJlcGV0aXRpb25UeXBlIiB3aGVuICJwYWlyZWQtcGFyYWxsZWwiIGlzIG5vdCBzdXBwb3J0
ZWQgdW5kZXIgdHJpZ2dlcmFibGUgY29uZmlndXJhdGlvbicsIGFzeW5jICgpID0+IHsKKyAgICAg
ICAgY29uc3Qgd2Via2l0SWQgPSAxOworICAgICAgICBjb25zdCBwbGF0Zm9ybUlkID0gMTsKKyAg
ICAgICAgY29uc3QgdHJpZ2dlcmFibGVJZCA9IDEyMzQ7CisKKyAgICAgICAgY29uc3QgZGIgPSBU
ZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgndGVzdHMnLCB7
bmFtZTogJ1N1aXRlJ30pOworICAgICAgICBjb25zdCB0ZXN0Um93ID0gYXdhaXQgZGIuc2VsZWN0
Rmlyc3RSb3coJ3Rlc3RzJywge25hbWU6ICdTdWl0ZSd9KTsKKyAgICAgICAgY29uc3QgdGVzdElk
ID0gdGVzdFJvdy5pZDsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdyZXBvc2l0b3JpZXMnLCB7
aWQ6IHdlYmtpdElkLCBuYW1lOiAnV2ViS2l0J30pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQo
J3BsYXRmb3JtcycsIHtpZDogcGxhdGZvcm1JZCwgbmFtZTogJ3NvbWUgcGxhdGZvcm0nfSk7Cisg
ICAgICAgIGF3YWl0IGRiLmluc2VydCgnYnVpbGRfdHJpZ2dlcmFibGVzJywge2lkOiAxMjM0LCBu
YW1lOiAndGVzdC10cmlnZ2VyYWJsZSd9KTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmln
Z2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycsIHtpZDogMjM0NSwgbmFtZTogJ3dlYmtpdC1vbmx5
JywgdHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxlSWR9KTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0
KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCB7cmVwb3NpdG9yeTogd2Via2l0SWQsIGdyb3Vw
OiAyMzQ1fSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJh
dGlvbnMnLCB7aWQ6IDEsIHRlc3Q6IHRlc3RJZCwgcGxhdGZvcm06IHBsYXRmb3JtSWQsIHRyaWdn
ZXJhYmxlOiB0cmlnZ2VyYWJsZUlkfSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dl
cmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywge2NvbmZpZzogMSwgdHlwZTog
J2FsdGVybmF0aW5nJ30pOworICAgICAgICBhd2FpdCBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9y
dFdpdGhSZXZpc2lvblswXSk7CisKKyAgICAgICAgYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEko
KS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFJldmlzaW9uKTsKKyAgICAgICAg
YXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgYW5v
dGhlclJlcG9ydFdpdGhSZXZpc2lvbik7CisgICAgICAgIGF3YWl0IE1hbmlmZXN0LmZldGNoKCk7
CisKKyAgICAgICAgY29uc3QgdGVzdCA9IFRlc3QuZmluZEJ5SWQodGVzdElkKTsKKyAgICAgICAg
Y29uc3Qgc29tZVBsYXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5SWQocGxhdGZvcm1JZCk7CisgICAg
ICAgIGNvbnN0IGNvbmZpZ1JvdyA9IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93KCd0ZXN0X2NvbmZp
Z3VyYXRpb25zJywge21ldHJpYzogdGVzdC5tZXRyaWNzKClbMF0uaWQoKSwgcGxhdGZvcm06IHNv
bWVQbGF0Zm9ybS5pZCgpfSk7CisgICAgICAgIGNvbnN0IHRlc3RSdW5zID0gYXdhaXQgZGIuc2Vs
ZWN0Um93cygndGVzdF9ydW5zJywge2NvbmZpZzogY29uZmlnUm93WydpZCddfSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0UnVucy5sZW5ndGgsIDIpOworCisgICAgICAgIGNvbnN0
IG9uZVJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjogJzE5MTYyMid9fTsKKyAg
ICAgICAgY29uc3QgYW5vdGhlclJldmlzaW9uU2V0ID0ge1t3ZWJraXRJZF06IHtyZXZpc2lvbjog
JzE5MTYyMyd9fTsKKyAgICAgICAgYXdhaXQgYXNzZXJ0VGhyb3dzKCdVbnN1cHBvcnRlZFJlcGV0
aXRpb25UeXBlJywgKCkgPT4geworICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2Vu
ZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10YXNrJywgeworICAgICAgICAgICAgICAgIG5hbWU6
ICdjb25maXJtJywKKyAgICAgICAgICAgICAgICByZXBldGl0aW9uQ291bnQ6IDIsCisgICAgICAg
ICAgICAgICAgdGVzdEdyb3VwTmFtZTogJ0NvbmZpcm0nLAorICAgICAgICAgICAgICAgIHJldmlz
aW9uU2V0czogW29uZVJldmlzaW9uU2V0LCBhbm90aGVyUmV2aXNpb25TZXRdLAorICAgICAgICAg
ICAgICAgIHJlcGV0aXRpb25UeXBlOiAncGFpcmVkLXBhcmFsbGVsJywKKyAgICAgICAgICAgICAg
ICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sCisgICAgICAgICAgICAgICAgZW5kUnVuOiB0
ZXN0UnVuc1sxXVsnaWQnXSwKKyAgICAgICAgICAgICAgICBuZWVkc05vdGlmaWNhdGlvbjogdHJ1
ZQorICAgICAgICAgICAgfSkKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBpdCgnc2hvdWxk
IHJlamVjdCB3aXRoICJVbnN1cHBvcnRlZFJlcGV0aXRpb25UeXBlIiB3aGVuICJzZXF1ZW50aWFs
IiBpcyBub3Qgc3VwcG9ydGVkIHVuZGVyIHRyaWdnZXJhYmxlIGNvbmZpZ3VyYXRpb24nLCBhc3lu
YyAoKSA9PiB7CisgICAgICAgIGNvbnN0IHdlYmtpdElkID0gMTsKKyAgICAgICAgY29uc3QgcGxh
dGZvcm1JZCA9IDE7CisgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlSWQgPSAxMjM0OworCisgICAg
ICAgIGNvbnN0IGRiID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBhd2FpdCBkYi5p
bnNlcnQoJ3Rlc3RzJywge25hbWU6ICdTdWl0ZSd9KTsKKyAgICAgICAgY29uc3QgdGVzdFJvdyA9
IGF3YWl0IGRiLnNlbGVjdEZpcnN0Um93KCd0ZXN0cycsIHtuYW1lOiAnU3VpdGUnfSk7CisgICAg
ICAgIGNvbnN0IHRlc3RJZCA9IHRlc3RSb3cuaWQ7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgn
cmVwb3NpdG9yaWVzJywge2lkOiB3ZWJraXRJZCwgbmFtZTogJ1dlYktpdCd9KTsKKyAgICAgICAg
YXdhaXQgZGIuaW5zZXJ0KCdwbGF0Zm9ybXMnLCB7aWQ6IHBsYXRmb3JtSWQsIG5hbWU6ICdzb21l
IHBsYXRmb3JtJ30pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2J1aWxkX3RyaWdnZXJhYmxl
cycsIHtpZDogMTIzNCwgbmFtZTogJ3Rlc3QtdHJpZ2dlcmFibGUnfSk7CisgICAgICAgIGF3YWl0
IGRiLmluc2VydCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91cHMnLCB7aWQ6IDIzNDUsIG5h
bWU6ICd3ZWJraXQtb25seScsIHRyaWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlkfSk7CisgICAgICAg
IGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzJywge3JlcG9zaXRvcnk6
IHdlYmtpdElkLCBncm91cDogMjM0NX0pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdn
ZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywge2lkOiAxLCB0ZXN0OiB0ZXN0SWQsIHBsYXRmb3JtOiBw
bGF0Zm9ybUlkLCB0cmlnZ2VyYWJsZTogdHJpZ2dlcmFibGVJZH0pOworICAgICAgICBhd2FpdCBk
Yi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcycsIHtj
b25maWc6IDEsIHR5cGU6ICdhbHRlcm5hdGluZyd9KTsKKyAgICAgICAgYXdhaXQgYWRkQnVpbGRl
ckZvclJlcG9ydChyZXBvcnRXaXRoUmV2aXNpb25bMF0pOworCisgICAgICAgIGF3YWl0IFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZp
c2lvbik7CisgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9h
cGkvcmVwb3J0LycsIGFub3RoZXJSZXBvcnRXaXRoUmV2aXNpb24pOworICAgICAgICBhd2FpdCBN
YW5pZmVzdC5mZXRjaCgpOworCisgICAgICAgIGNvbnN0IHRlc3QgPSBUZXN0LmZpbmRCeUlkKHRl
c3RJZCk7CisgICAgICAgIGNvbnN0IHNvbWVQbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeUlkKHBs
YXRmb3JtSWQpOworICAgICAgICBjb25zdCBjb25maWdSb3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJz
dFJvdygndGVzdF9jb25maWd1cmF0aW9ucycsIHttZXRyaWM6IHRlc3QubWV0cmljcygpWzBdLmlk
KCksIHBsYXRmb3JtOiBzb21lUGxhdGZvcm0uaWQoKX0pOworICAgICAgICBjb25zdCB0ZXN0UnVu
cyA9IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNvbmZpZ1Jvd1sn
aWQnXX0pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsK
KworICAgICAgICBjb25zdCBvbmVSZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2aXNpb246
ICcxOTE2MjInfX07CisgICAgICAgIGNvbnN0IGFub3RoZXJSZXZpc2lvblNldCA9IHtbd2Via2l0
SWRdOiB7cmV2aXNpb246ICcxOTE2MjMnfX07CisgICAgICAgIGF3YWl0IGFzc2VydFRocm93cygn
VW5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZScsICgpID0+IHsKKyAgICAgICAgICAgIHJldHVybiBQ
cml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHsKKyAgICAg
ICAgICAgICAgICBuYW1lOiAnY29uZmlybScsCisgICAgICAgICAgICAgICAgcmVwZXRpdGlvbkNv
dW50OiAyLAorICAgICAgICAgICAgICAgIHRlc3RHcm91cE5hbWU6ICdDb25maXJtJywKKyAgICAg
ICAgICAgICAgICByZXZpc2lvblNldHM6IFtvbmVSZXZpc2lvblNldCwgYW5vdGhlclJldmlzaW9u
U2V0XSwKKyAgICAgICAgICAgICAgICByZXBldGl0aW9uVHlwZTogJ3NlcXVlbnRpYWwnLAorICAg
ICAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsnaWQnXSwKKyAgICAgICAgICAgICAg
ICBlbmRSdW46IHRlc3RSdW5zWzFdWydpZCddLAorICAgICAgICAgICAgICAgIG5lZWRzTm90aWZp
Y2F0aW9uOiB0cnVlCisgICAgICAgICAgICB9KQorICAgICAgICB9KTsKKyAgICB9KTsKIH0pOwpk
aWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxl
Z2VkLWFwaS1jcmVhdGUtdGVzdC1ncm91cC10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMu
anMKaW5kZXggYmIyMjQyOTYzMDUyZDE4ZjA1NzdhZGRkNDRjZTNjMzYxZGYxNDRkOS4uMWIzOTI3
MDgzMGEzMGM5M2NjMzYyMjA1MWQwYTI5MDA3NjU3NTliMiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtdGVzdC1n
cm91cC10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzCkBAIC0xMDEsOCArMTAx
LDggQEAgZnVuY3Rpb24gYWRkVHJpZ2dlcmFibGVBbmRDcmVhdGVUYXNrKG5hbWUsIHdlYmtpdFJl
dmlzaW9ucykKICAgICAgICAgJ3dvcmtlclBhc3N3b3JkJzogJ2Fub3RoZXJQYXNzd29yZCcsCiAg
ICAgICAgICd0cmlnZ2VyYWJsZSc6ICdidWlsZC13ZWJraXQnLAogICAgICAgICAnY29uZmlndXJh
dGlvbnMnOiBbCi0gICAgICAgICAgICB7dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBwbGF0
Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKX0sCi0gICAgICAgICAgICB7dGVzdDogTW9j
a0RhdGEuc29tZVRlc3RJZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEub3RoZXJQbGF0Zm9ybUlkKCl9
LAorICAgICAgICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06IE1v
Y2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCksIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlczogWydhbHRl
cm5hdGluZycsICdzZXF1ZW50aWFsJ119LAorICAgICAgICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNv
bWVUZXN0SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRhLm90aGVyUGxhdGZvcm1JZCgpLCBzdXBwb3J0
ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddfSwKICAgICAg
ICAgXSwKICAgICAgICAgJ3JlcG9zaXRvcnlHcm91cHMnOiBbCiAgICAgICAgICAgICB7bmFtZTog
J29zLW9ubHknLCBhY2NlcHRzUm9vdDogdHJ1ZSwgcmVwb3NpdG9yaWVzOiBbCkBAIC0xNDY1LDcg
KzE0NjUsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwJywg
ZnVuY3Rpb24gKCkgewogICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2V0MS5yZXZpc2lvbkZv
clJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMycpOwogICAgIH0pOwogCi0gICAgaXQoJ3Nob3Vs
ZCByZWplY3Qgd2l0aCAiSW52YWxpZFJlcGV0aXRpb25UeXBlIiBpZiByZXBldGl0aW9uIHR5cGUg
aXMgbm90ICJhbHRlcm5hdGluZyIgb3IgInNlcXVlbnRpYWwiJywgYXN5bmMgKCkgPT4geworICAg
IGl0KCdzaG91bGQgcmVqZWN0IHdpdGggIkludmFsaWRSZXBldGl0aW9uVHlwZSIgaWYgcmVwZXRp
dGlvbiB0eXBlIGlzIG5vdCAiYWx0ZXJuYXRpbmciLCAic2VxdWVudGlhbCIsIG9yICJwYWlyZWQt
cGFyYWxsZWwiJywgYXN5bmMgKCkgPT4gewogICAgICAgICBhd2FpdCBhZGRUcmlnZ2VyYWJsZUFu
ZENyZWF0ZVRhc2soJ3NvbWUgdGFzaycpOwogICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0
b3J5LmFsbCgpLmZpbHRlcigocmVwb3NpdG9yeSkgPT4gcmVwb3NpdG9yeS5uYW1lKCkgPT0gJ1dl
YktpdCcpWzBdOwogICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBbe1t3ZWJraXQuaWQoKV06
IHtyZXZpc2lvbjogJzE5MTYyMid9fSwge1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYy
Myd9fV07CkBAIC0xNDc3LDYgKzE0NzcsMTggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9j
cmVhdGUtdGVzdC1ncm91cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgfSk7CiAgICAgfSk7CiAK
KyAgICBpdCgnc2hvdWxkIHJlamVjdCB3aXRoICJVbnN1cHBvcnRlZFJlcGV0aXRpb25UeXBlIiBp
ZiByZXBldGl0aW9uIHR5cGUgaXMgInBhaXJlZC1wYXJhbGxlbCIgYnV0IHRyaWdnZXJhYmxlIGNv
bmZpZ3VyYXRpb24gb25seSBzdXBwb3J0cyAic2VxdWVudGlhbCIgYW5kICJhbHRlcm5hdGluZyIn
LCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IGFkZFRyaWdnZXJhYmxlQW5kQ3JlYXRlVGFz
aygnc29tZSB0YXNrJyk7CisgICAgICAgIGNvbnN0IHdlYmtpdCA9IFJlcG9zaXRvcnkuYWxsKCku
ZmlsdGVyKChyZXBvc2l0b3J5KSA9PiByZXBvc2l0b3J5Lm5hbWUoKSA9PSAnV2ViS2l0JylbMF07
CisgICAgICAgIGNvbnN0IHJldmlzaW9uU2V0cyA9IFt7W3dlYmtpdC5pZCgpXToge3JldmlzaW9u
OiAnMTkxNjIyJ319LCB7W3dlYmtpdC5pZCgpXToge3JldmlzaW9uOiAnMTkxNjIzJ319XTsKKwor
ICAgICAgICBhd2FpdCBhc3NlcnRUaHJvd3MoJ1Vuc3VwcG9ydGVkUmVwZXRpdGlvblR5cGUnLCAo
KSA9PiB7CisgICAgICAgICAgICByZXR1cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3Jl
YXRlLXRlc3QtZ3JvdXAnLCB7bmFtZTogJ3Rlc3QnLCB0YXNrTmFtZTogJ290aGVyIHRhc2snLAor
ICAgICAgICAgICAgICAgIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpLCB0ZXN0
OiBNb2NrRGF0YS5zb21lVGVzdElkKCksCisgICAgICAgICAgICAgICAgbmVlZHNOb3RpZmljYXRp
b246IHRydWUsIHJlcGV0aXRpb25UeXBlOiAncGFpcmVkLXBhcmFsbGVsJywgcmVwZXRpdGlvbkNv
dW50OiAyLCByZXZpc2lvblNldHN9KQorICAgICAgICB9KTsKKyAgICB9KTsKKwogICAgIGl0KCdz
aG91bGQgcmVqZWN0IHdpdGggIkludmFsaWRSZXBldGl0aW9uVHlwZSIgd2hlbiBjcmVhdGluZyBh
IHRlc3QgZ3JvdXAgd2l0aCBhIGJhZCByZXBldGl0aW9uIHR5cGUgZm9yIGFuIGV4aXN0aW5nIGFu
YWx5c2lzIHRhc2snLCBhc3luYyAoKSA9PiB7CiAgICAgICAgIGNvbnN0IHRhc2tJZCA9IGF3YWl0
IGFkZFRyaWdnZXJhYmxlQW5kQ3JlYXRlVGFzaygnc29tZSB0YXNrJyk7CiAgICAgICAgIGNvbnN0
IHdlYmtpdCA9IFJlcG9zaXRvcnkuYWxsKCkuZmlsdGVyKChyZXBvc2l0b3J5KSA9PiByZXBvc2l0
b3J5Lm5hbWUoKSA9PSAnV2ViS2l0JylbMF07CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwZGF0ZS10ZXN0LWdyb3VwLXRl
c3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2Vk
LWFwaS11cGRhdGUtdGVzdC1ncm91cC10ZXN0cy5qcwppbmRleCBiNmRjYWUyZjIxODY1MmZjOTI5
N2RkY2E1Mzg3MjA1ZjNiYzliMzA4Li43ZjlhN2Y0ZGQxOThiMTYyZjY4Y2M5MjczYmNjZjc0N2Iw
NTAwYWEzIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L3ByaXZpbGVnZWQtYXBpLXVwZGF0ZS10ZXN0LWdyb3VwLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktdXBkYXRlLXRlc3Qt
Z3JvdXAtdGVzdHMuanMKQEAgLTk2LDggKzk2LDggQEAgYXN5bmMgZnVuY3Rpb24gYWRkVHJpZ2dl
cmFibGVBbmRDcmVhdGVUYXNrKG5hbWUsIHdlYmtpdFJldmlzaW9ucykKICAgICAgICAgJ3dvcmtl
clBhc3N3b3JkJzogJ2Fub3RoZXJQYXNzd29yZCcsCiAgICAgICAgICd0cmlnZ2VyYWJsZSc6ICdi
dWlsZC13ZWJraXQnLAogICAgICAgICAnY29uZmlndXJhdGlvbnMnOiBbCi0gICAgICAgICAgICB7
dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRm
b3JtSWQoKX0sCi0gICAgICAgICAgICB7dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBwbGF0
Zm9ybTogTW9ja0RhdGEub3RoZXJQbGF0Zm9ybUlkKCl9LAorICAgICAgICAgICAge3Rlc3Q6IE1v
Y2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCks
IHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ119
LAorICAgICAgICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06IE1v
Y2tEYXRhLm90aGVyUGxhdGZvcm1JZCgpLCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0
ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddfSwKICAgICAgICAgXSwKICAgICAgICAgJ3JlcG9zaXRv
cnlHcm91cHMnOiBbCiAgICAgICAgICAgICB7bmFtZTogJ29zLW9ubHknLCBhY2NlcHRzUm9vdDog
dHJ1ZSwgcmVwb3NpdG9yaWVzOiBbCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMKaW5kZXggZWFlZTgx
YTM0MGIxODYyYjFmYTEyYjM2NzI2N2RjYTg1M2MxYzM2NC4uODAwNjdkODJmNGU2ZTRiMjBlZDUy
MTA1YTA4NDAyMDRhYmZjODg5OSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcwpAQCAtMzM5LDEy
ICszMzksMTYgQEAgTW9ja0RhdGEgPSB7CiAgICAgICAgICAgICAgICAgJ3NvbWUtdGVzdCc6IHsn
dGVzdCc6IFsnc29tZSB0ZXN0J119CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgJ2J1aWxk
ZXJzJzogewotICAgICAgICAgICAgICAgICdidWlsZGVyLTEnOiB7J2J1aWxkZXInOiAnc29tZS1i
dWlsZGVyLTEnLAotICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczoge2ZvcmNlc2NoZWR1
bGVyOiAnZm9yY2Utc29tZS1idWlsZGVyLTEnfX0KKyAgICAgICAgICAgICAgICAnYnVpbGRlci0x
JzogeworICAgICAgICAgICAgICAgICAgICAnYnVpbGRlcic6ICdzb21lLWJ1aWxkZXItMScsCisg
ICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7Zm9yY2VzY2hlZHVsZXI6ICdmb3JjZS1z
b21lLWJ1aWxkZXItMSd9LAorICAgICAgICAgICAgICAgICAgICAnc3VwcG9ydGVkUmVwZXRpdGlv
blR5cGVzJzogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ10KKyAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgJ3Rlc3RDb25maWd1cmF0aW9ucyc6IFsKICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICdwbGF0Zm9ybXMnOiBbJ3NvbWUg
cGxhdGZvcm0nXSwKKyAgICAgICAgICAgICAgICAgICAgJ3N1cHBvcnRlZFJlcGV0aXRpb25UeXBl
cyc6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddLAogICAgICAgICAgICAgICAgICAgICAn
dHlwZXMnOiBbJ3NvbWUtdGVzdCddLAogICAgICAgICAgICAgICAgICAgICAnYnVpbGRlcnMnOiBb
J2J1aWxkZXItMSddLAogICAgICAgICAgICAgICAgIH0KQEAgLTM3NywyMSArMzgxLDIzIEBAIE1v
Y2tEYXRhID0gewogICAgICAgICAgICAgICAgICdzb21lLXRlc3QnOiB7J3Rlc3QnOiBbJ3NvbWUg
dGVzdCddfQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgICdidWlsZGVycyc6IHsKLSAgICAg
ICAgICAgICAgICAndGVzdGVyJzogeydidWlsZGVyJzogJ3NvbWUgdGVzdGVyJywgcHJvcGVydGll
czoge2ZvcmNlc2NoZWR1bGVyOiAnZm9yY2Utc29tZS10ZXN0ZXInfX0sCi0gICAgICAgICAgICAg
ICAgJ2J1aWxkZXItMSc6IHsnYnVpbGRlcic6ICdzb21lLWJ1aWxkZXItMScsIHByb3BlcnRpZXM6
IHtmb3JjZXNjaGVkdWxlcjogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319LAotICAgICAgICAgICAg
ICAgICdidWlsZGVyLTInOiB7J2J1aWxkZXInOiAnc29tZSBidWlsZGVyIDInLCBwcm9wZXJ0aWVz
OiB7Zm9yY2VzY2hlZHVsZXI6ICdmb3JjZS1zb21lLWJ1aWxkZXItMid9fSwKKyAgICAgICAgICAg
ICAgICAndGVzdGVyJzogeydidWlsZGVyJzogJ3NvbWUgdGVzdGVyJywgcHJvcGVydGllczoge2Zv
cmNlc2NoZWR1bGVyOiAnZm9yY2Utc29tZS10ZXN0ZXInfSwgJ3N1cHBvcnRlZFJlcGV0aXRpb25U
eXBlcyc6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddLH0sCisgICAgICAgICAgICAgICAg
J2J1aWxkZXItMSc6IHsnYnVpbGRlcic6ICdzb21lLWJ1aWxkZXItMScsIHByb3BlcnRpZXM6IHtm
b3JjZXNjaGVkdWxlcjogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ30sICdzdXBwb3J0ZWRSZXBldGl0
aW9uVHlwZXMnOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnLCAncGFpcmVkLXBhcmFsbGVs
J119LAorICAgICAgICAgICAgICAgICdidWlsZGVyLTInOiB7J2J1aWxkZXInOiAnc29tZSBidWls
ZGVyIDInLCBwcm9wZXJ0aWVzOiB7Zm9yY2VzY2hlZHVsZXI6ICdmb3JjZS1zb21lLWJ1aWxkZXIt
Mid9LCAnc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzJzogWydhbHRlcm5hdGluZycsICdzZXF1ZW50
aWFsJywgJ3BhaXJlZC1wYXJhbGxlbCddfSwKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAn
dGVzdENvbmZpZ3VyYXRpb25zJzogWwogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgJ3BsYXRmb3Jtcyc6IFsnc29tZSBwbGF0Zm9ybSddLAogICAgICAgICAgICAgICAgICAg
ICAndHlwZXMnOiBbJ3NvbWUtdGVzdCddLAogICAgICAgICAgICAgICAgICAgICAnYnVpbGRlcnMn
OiBbJ3Rlc3RlciddLAorICAgICAgICAgICAgICAgICAgICAnc3VwcG9ydGVkUmVwZXRpdGlvblR5
cGVzJzogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ10sCiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgXSwKICAgICAgICAgICAgICdidWlsZENvbmZpZ3VyYXRpb25zJzogWwogICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgJ3BsYXRmb3Jtcyc6IFsnc29tZSBw
bGF0Zm9ybSddLAogICAgICAgICAgICAgICAgICAgICAnYnVpbGRlcnMnOiBbJ2J1aWxkZXItMScs
ICdidWlsZGVyLTInXSwKKyAgICAgICAgICAgICAgICAgICAgJ3N1cHBvcnRlZFJlcGV0aXRpb25U
eXBlcyc6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCcsICdwYWlyZWQtcGFyYWxsZWwnXSwK
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICBdCiAgICAgICAgIH0KQEAgLTQxNSwxNCAr
NDIxLDE1IEBAIE1vY2tEYXRhID0gewogICAgICAgICAgICAgICAgICdzb21lLXRlc3QnOiB7J3Rl
c3QnOiBbJ3NvbWUgdGVzdCddfSwKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAnYnVpbGRl
cnMnOiB7Ci0gICAgICAgICAgICAgICAgJ2J1aWxkZXItMSc6IHsnYnVpbGRlcic6ICdzb21lLWJ1
aWxkZXItMScsIHByb3BlcnRpZXM6IHtmb3JjZXNjaGVkdWxlcjogJ2ZvcmNlLXNvbWUtYnVpbGRl
ci0xJ319LAotICAgICAgICAgICAgICAgICdidWlsZGVyLTInOiB7J2J1aWxkZXInOiAnc29tZSBi
dWlsZGVyIDInLCBwcm9wZXJ0aWVzOiB7Zm9yY2VzY2hlZHVsZXI6ICdmb3JjZS1zb21lLWJ1aWxk
ZXItMid9fSwKKyAgICAgICAgICAgICAgICAnYnVpbGRlci0xJzogeydidWlsZGVyJzogJ3NvbWUt
YnVpbGRlci0xJywgcHJvcGVydGllczoge2ZvcmNlc2NoZWR1bGVyOiAnZm9yY2Utc29tZS1idWls
ZGVyLTEnfSwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVl
bnRpYWwnXSx9LAorICAgICAgICAgICAgICAgICdidWlsZGVyLTInOiB7J2J1aWxkZXInOiAnc29t
ZSBidWlsZGVyIDInLCBwcm9wZXJ0aWVzOiB7Zm9yY2VzY2hlZHVsZXI6ICdmb3JjZS1zb21lLWJ1
aWxkZXItMid9LCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2Vx
dWVudGlhbCddLH0sCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgJ3Rlc3RDb25maWd1cmF0
aW9ucyc6IFsKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICdwbGF0Zm9y
bXMnOiBbJ3NvbWUgcGxhdGZvcm0nXSwKICAgICAgICAgICAgICAgICAgICAgJ3R5cGVzJzogWydz
b21lLXRlc3QnXSwKICAgICAgICAgICAgICAgICAgICAgJ2J1aWxkZXJzJzogWydidWlsZGVyLTEn
LCAnYnVpbGRlci0yJ10sCisgICAgICAgICAgICAgICAgICAgICdzdXBwb3J0ZWRSZXBldGl0aW9u
VHlwZXMnOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXSwKICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICBdCiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanMg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRy
aWdnZXJhYmxlLXRlc3RzLmpzCmluZGV4IDhmNTQwOWExN2MyMTBmN2IyOTE2NzBkZjY0ZDA1OGI4
NGMzOTAxYTEuLmFjYTdkYTI0NTliZWE4NTlmYjQzYzY2MDc3ODBmZmNhNGRjM2U3MjkgMTAwNjQ0
Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRi
b3QtdHJpZ2dlcmFibGUtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5qcwpAQCAtMTk3Myw3
ICsxOTczLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbiAoKSB7
CiAKICAgICAgICAgICAgICAgICBjb25zdCB0ZXN0ID0gVGVzdC5maW5kQnlJZChNb2NrRGF0YS5z
b21lVGVzdElkKCkpOwogICAgICAgICAgICAgICAgIGNvbnN0IHBsYXRmb3JtID0gUGxhdGZvcm0u
ZmluZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKFRyaWdnZXJhYmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKHRlc3Qs
IHBsYXRmb3JtKSwgbnVsbCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJh
YmxlLmZpbmRCeVRlc3RDb25maWd1cmF0aW9uKHRlc3QsIHBsYXRmb3JtKSwgbnVsbCk7CiAKICAg
ICAgICAgICAgICAgICBjb25zdCBncm91cHMgPSBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cC5z
b3J0QnlOYW1lKHRyaWdnZXJhYmxlLnJlcG9zaXRvcnlHcm91cHMoKSk7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdyb3Vwcy5sZW5ndGgsIDEpOwpkaWZmIC0tZ2l0IGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWlu
dGVncmF0aW9uLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzCmluZGV4IDZkYWY1MzU0
ZGQyZjcyMDc0N2Y5NmQ1M2JjNGEzMWNlMDVkODgyNjcuLmMyZDYyNGY1YmRkNzBlZDIzYzVhZGU1
MjMyN2IwMzcwNmU3ZmNjNjQgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qcworKysg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRi
b3QtaW50ZWdyYXRpb24tdGVzdHMuanMKQEAgLTE0LDUwICsxNCw1OCBAQCBjb25zdCBhZGRXb3Jr
ZXJGb3JSZXBvcnQgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcycp
LmFkZFdvcmtlcgogY29uc3QgcHJlcGFyZVNlcnZlclRlc3QgPSByZXF1aXJlKCcuL3Jlc291cmNl
cy9jb21tb24tb3BlcmF0aW9ucy5qcycpLnByZXBhcmVTZXJ2ZXJUZXN0OwogY29uc3QgQnJvd3Nl
clByaXZpbGVnZWRBUEkgPSByZXF1aXJlKCcuLi9wdWJsaWMvdjMvcHJpdmlsZWdlZC1hcGkuanMn
KS5Qcml2aWxlZ2VkQVBJOwogCi1jb25zdCBjb25maWdXaXRoT25lVGVzdGVyVHdvQnVpbGRlcnMg
PSB7Ci0gICAgdHJpZ2dlcmFibGVOYW1lOiAnYnVpbGQtd2Via2l0JywKLSAgICBsb29rYmFja0Nv
dW50OiAyLAotICAgIGJ1aWxkUmVxdWVzdEFyZ3VtZW50OiAnYnVpbGQtcmVxdWVzdC1pZCcsCi0g
ICAgd29ya2VyTmFtZTogJ3N5bmMtd29ya2VyJywKLSAgICB3b3JrZXJQYXNzd29yZDogJ3Bhc3N3
b3JkJywKLSAgICByZXBvc2l0b3J5R3JvdXBzOiB7Ci0gICAgICAgICd3ZWJraXQnOiB7Ci0gICAg
ICAgICAgICByZXBvc2l0b3JpZXM6IHsnV2ViS2l0Jzoge2FjY2VwdHNQYXRjaDogdHJ1ZX19LAot
ICAgICAgICAgICAgdGVzdFByb3BlcnRpZXM6IHsnd2snOiB7J3JldmlzaW9uJzogJ1dlYktpdCd9
LCAncm9vdHMnOiB7J3Jvb3RzJzoge319fSwKLSAgICAgICAgICAgIGJ1aWxkUHJvcGVydGllczog
eyd3ayc6IHsncmV2aXNpb24nOiAnV2ViS2l0J30sICd3ay1wYXRjaCc6IHsncGF0Y2gnOiAnV2Vi
S2l0J30sCi0gICAgICAgICAgICAgICAgJ2NoZWNrYm94JzogeydpZlJlcG9zaXRvcnlTZXQnOiBb
J1dlYktpdCddLCAndmFsdWUnOiAnYnVpbGQtd2snfSwKLSAgICAgICAgICAgICAgICAnYnVpbGQt
d2snOiB7J2lmUmVwb3NpdG9yeVNldCc6IFsnV2ViS2l0J10sICd2YWx1ZSc6IHRydWV9LAotICAg
ICAgICAgICAgICAgICdvd25lZC1jb21taXRzJzogeydvd25lZFJldmlzaW9ucyc6ICdXZWJLaXQn
fX0sCi0gICAgICAgICAgICBhY2NlcHRzUm9vdHM6IHRydWUsCi0gICAgICAgIH0KLSAgICB9LAot
ICAgIHR5cGVzOiB7Ci0gICAgICAgICdzb21lJzogewotICAgICAgICAgICAgdGVzdDogWydzb21l
IHRlc3QnXSwKLSAgICAgICAgICAgIHByb3BlcnRpZXM6IHsndGVzdCc6ICdzb21lLXRlc3QnfSwK
LSAgICAgICAgfQotICAgIH0sCi0gICAgYnVpbGRlcnM6IHsKLSAgICAgICAgJ2J1aWxkZXItMSc6
IHsKLSAgICAgICAgICAgIGJ1aWxkZXI6ICdzb21lIHRlc3RlcicsCi0gICAgICAgICAgICBwcm9w
ZXJ0aWVzOiB7Zm9yY2VzY2hlZHVsZXI6ICdmb3JjZS1hYi10ZXN0cyd9LAorZnVuY3Rpb24gY29u
ZmlnV2l0aE9uZVRlc3RlclR3b0J1aWxkZXJzKHRlc3RDb25maWd1cmF0aW9uc092ZXJyaWRlPVt7
dHlwZXM6IFsnc29tZSddLCBwbGF0Zm9ybXM6IFsnc29tZSBwbGF0Zm9ybSddLCBidWlsZGVyczog
WydidWlsZGVyLTEnXSwKKyAgICBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRp
bmcnLCAnc2VxdWVudGlhbCddfV0pIHsKKyAgICByZXR1cm4geworICAgICAgICB0cmlnZ2VyYWJs
ZU5hbWU6ICdidWlsZC13ZWJraXQnLAorICAgICAgICBsb29rYmFja0NvdW50OiAyLAorICAgICAg
ICBidWlsZFJlcXVlc3RBcmd1bWVudDogJ2J1aWxkLXJlcXVlc3QtaWQnLAorICAgICAgICB3b3Jr
ZXJOYW1lOiAnc3luYy13b3JrZXInLAorICAgICAgICB3b3JrZXJQYXNzd29yZDogJ3Bhc3N3b3Jk
JywKKyAgICAgICAgcmVwb3NpdG9yeUdyb3VwczogeworICAgICAgICAgICAgJ3dlYmtpdCc6IHsK
KyAgICAgICAgICAgICAgICByZXBvc2l0b3JpZXM6IHsnV2ViS2l0Jzoge2FjY2VwdHNQYXRjaDog
dHJ1ZX19LAorICAgICAgICAgICAgICAgIHRlc3RQcm9wZXJ0aWVzOiB7J3drJzogeydyZXZpc2lv
bic6ICdXZWJLaXQnfSwgJ3Jvb3RzJzogeydyb290cyc6IHt9fX0sCisgICAgICAgICAgICAgICAg
YnVpbGRQcm9wZXJ0aWVzOiB7J3drJzogeydyZXZpc2lvbic6ICdXZWJLaXQnfSwgJ3drLXBhdGNo
JzogeydwYXRjaCc6ICdXZWJLaXQnfSwKKyAgICAgICAgICAgICAgICAgICAgJ2NoZWNrYm94Jzog
eydpZlJlcG9zaXRvcnlTZXQnOiBbJ1dlYktpdCddLCAndmFsdWUnOiAnYnVpbGQtd2snfSwKKyAg
ICAgICAgICAgICAgICAgICAgJ2J1aWxkLXdrJzogeydpZlJlcG9zaXRvcnlTZXQnOiBbJ1dlYktp
dCddLCAndmFsdWUnOiB0cnVlfSwKKyAgICAgICAgICAgICAgICAgICAgJ293bmVkLWNvbW1pdHMn
OiB7J293bmVkUmV2aXNpb25zJzogJ1dlYktpdCd9fSwKKyAgICAgICAgICAgICAgICBhY2NlcHRz
Um9vdHM6IHRydWUsCisgICAgICAgICAgICB9CiAgICAgICAgIH0sCi0gICAgICAgICdidWlsZGVy
LTInOiB7Ci0gICAgICAgICAgICBidWlsZGVyOiAnc29tZSBidWlsZGVyJywKLSAgICAgICAgICAg
IHByb3BlcnRpZXM6IHtmb3JjZXNjaGVkdWxlcjogJ2ZvcmNlLWFiLWJ1aWxkcyd9LAorICAgICAg
ICB0eXBlczogeworICAgICAgICAgICAgJ3NvbWUnOiB7CisgICAgICAgICAgICAgICAgdGVzdDog
Wydzb21lIHRlc3QnXSwKKyAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7J3Rlc3QnOiAnc29t
ZS10ZXN0J30sCisgICAgICAgICAgICB9CiAgICAgICAgIH0sCi0gICAgICAgICdidWlsZGVyLTMn
OiB7Ci0gICAgICAgICAgICBidWlsZGVyOiAnb3RoZXIgYnVpbGRlcicsCi0gICAgICAgICAgICBw
cm9wZXJ0aWVzOiB7Zm9yY2VzY2hlZHVsZXI6ICdmb3JjZS1hYi1idWlsZHMnfSwKKyAgICAgICAg
YnVpbGRlcnM6IHsKKyAgICAgICAgICAgICdidWlsZGVyLTEnOiB7CisgICAgICAgICAgICAgICAg
YnVpbGRlcjogJ3NvbWUgdGVzdGVyJywKKyAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7Zm9y
Y2VzY2hlZHVsZXI6ICdmb3JjZS1hYi10ZXN0cyd9LAorICAgICAgICAgICAgICAgIHN1cHBvcnRl
ZFJlcGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ10KKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICAnYnVpbGRlci0yJzogeworICAgICAgICAgICAgICAgIGJ1aWxk
ZXI6ICdzb21lIGJ1aWxkZXInLAorICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtmb3JjZXNj
aGVkdWxlcjogJ2ZvcmNlLWFiLWJ1aWxkcyd9LAorICAgICAgICAgICAgICAgIHN1cHBvcnRlZFJl
cGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJywgJ3BhaXJlZC1wYXJh
bGxlbCddCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2J1aWxkZXItMyc6IHsKKyAgICAg
ICAgICAgICAgICBidWlsZGVyOiAnb3RoZXIgYnVpbGRlcicsCisgICAgICAgICAgICAgICAgcHJv
cGVydGllczoge2ZvcmNlc2NoZWR1bGVyOiAnZm9yY2UtYWItYnVpbGRzJ30sCisgICAgICAgICAg
ICAgICAgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRp
YWwnLCAncGFpcmVkLXBhcmFsbGVsJ10KKyAgICAgICAgICAgIH0sCiAgICAgICAgIH0sCi0gICAg
fSwKLSAgICBidWlsZENvbmZpZ3VyYXRpb25zOiBbCi0gICAgICAgIHtwbGF0Zm9ybXM6IFsnc29t
ZSBwbGF0Zm9ybSddLCBidWlsZGVyczogWydidWlsZGVyLTInLCAnYnVpbGRlci0zJ119LAotICAg
IF0sCi0gICAgdGVzdENvbmZpZ3VyYXRpb25zOiBbCi0gICAgICAgIHt0eXBlczogWydzb21lJ10s
IHBsYXRmb3JtczogWydzb21lIHBsYXRmb3JtJ10sIGJ1aWxkZXJzOiBbJ2J1aWxkZXItMSddfSwK
LSAgICBdLAotfTsKKyAgICAgICAgYnVpbGRDb25maWd1cmF0aW9uczogWworICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgIHBsYXRmb3JtczogWydzb21lIHBsYXRmb3JtJ10sCisgICAgICAg
ICAgICAgICAgYnVpbGRlcnM6IFsnYnVpbGRlci0yJywgJ2J1aWxkZXItMyddLAorICAgICAgICAg
ICAgICAgIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1ZW50
aWFsJywgJ3BhaXJlZC1wYXJhbGxlbCddCisgICAgICAgICAgICB9LAorICAgICAgICBdLAorICAg
ICAgICB0ZXN0Q29uZmlndXJhdGlvbnM6IHRlc3RDb25maWd1cmF0aW9uc092ZXJyaWRlCisgICAg
fTsKK30KIAogY29uc3QgY29uZmlnV2l0aFBsYXRmb3JtTmFtZSA9IHsKICAgICB0cmlnZ2VyYWJs
ZU5hbWU6ICdidWlsZC13ZWJraXQnLApAQCAtODcsMjEgKzk1LDMzIEBAIGNvbnN0IGNvbmZpZ1dp
dGhQbGF0Zm9ybU5hbWUgPSB7CiAgICAgICAgICdidWlsZGVyLTEnOiB7CiAgICAgICAgICAgICBi
dWlsZGVyOiAnc29tZSB0ZXN0ZXInLAogICAgICAgICAgICAgcHJvcGVydGllczoge2ZvcmNlc2No
ZWR1bGVyOiAnZm9yY2UtYWItdGVzdHMnfSwKKyAgICAgICAgICAgIHN1cHBvcnRlZFJlcGV0aXRp
b25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ10KICAgICAgICAgfSwKICAgICAg
ICAgJ2J1aWxkZXItMic6IHsKICAgICAgICAgICAgIGJ1aWxkZXI6ICdzb21lIGJ1aWxkZXInLAog
ICAgICAgICAgICAgcHJvcGVydGllczoge2ZvcmNlc2NoZWR1bGVyOiAnZm9yY2UtYWItYnVpbGRz
J30sCisgICAgICAgICAgICBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcn
LCAnc2VxdWVudGlhbCcsICdwYWlyZWQtcGFyYWxsZWwnXQogICAgICAgICB9LAogICAgICAgICAn
YnVpbGRlci0zJzogewogICAgICAgICAgICAgYnVpbGRlcjogJ290aGVyIGJ1aWxkZXInLAogICAg
ICAgICAgICAgcHJvcGVydGllczoge2ZvcmNlc2NoZWR1bGVyOiAnZm9yY2UtYWItYnVpbGRzJ30s
CisgICAgICAgICAgICBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAn
c2VxdWVudGlhbCcsICdwYWlyZWQtcGFyYWxsZWwnXQogICAgICAgICB9LAogICAgIH0sCiAgICAg
YnVpbGRDb25maWd1cmF0aW9uczogWwotICAgICAgICB7cGxhdGZvcm1zOiBbJ3NvbWUgcGxhdGZv
cm0nXSwgYnVpbGRlcnM6IFsnYnVpbGRlci0yJywgJ2J1aWxkZXItMyddfSwKKyAgICAgICAgewor
ICAgICAgICAgICAgcGxhdGZvcm1zOiBbJ3NvbWUgcGxhdGZvcm0nXSwKKyAgICAgICAgICAgIGJ1
aWxkZXJzOiBbJ2J1aWxkZXItMicsICdidWlsZGVyLTMnXSwKKyAgICAgICAgICAgIHN1cHBvcnRl
ZFJlcGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJywgJ3BhaXJlZC1w
YXJhbGxlbCddLAorICAgICAgICB9LAogICAgIF0sCiAgICAgdGVzdENvbmZpZ3VyYXRpb25zOiBb
Ci0gICAgICAgIHt0eXBlczogWydzb21lJ10sIHBsYXRmb3JtczogWydzb21lIHBsYXRmb3JtJ10s
IGJ1aWxkZXJzOiBbJ2J1aWxkZXItMSddfSwKKyAgICAgICAgeworICAgICAgICAgICAgdHlwZXM6
IFsnc29tZSddLAorICAgICAgICAgICAgcGxhdGZvcm1zOiBbJ3NvbWUgcGxhdGZvcm0nXSwKKyAg
ICAgICAgICAgIGJ1aWxkZXJzOiBbJ2J1aWxkZXItMSddLAorICAgICAgICAgICAgc3VwcG9ydGVk
UmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXSwKKyAgICAgICAg
fSwKICAgICBdLAogfTsKIApAQCAtMTMyLDE0ICsxNTIsMjEgQEAgY29uc3QgY29uZmlnV2l0aFR3
b1Rlc3RlcnMgPSB7CiAgICAgICAgICdidWlsZGVyLTEnOiB7CiAgICAgICAgICAgICBidWlsZGVy
OiAnc29tZSB0ZXN0ZXInLAogICAgICAgICAgICAgcHJvcGVydGllczoge2ZvcmNlc2NoZWR1bGVy
OiAnZm9yY2UtYWItdGVzdHMnfSwKKyAgICAgICAgICAgIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBl
czogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ10KICAgICAgICAgfSwKICAgICAgICAgJ2J1
aWxkZXItMic6IHsKICAgICAgICAgICAgIGJ1aWxkZXI6ICdhbm90aGVyIHRlc3RlcicsCiAgICAg
ICAgICAgICBwcm9wZXJ0aWVzOiB7Zm9yY2VzY2hlZHVsZXI6ICdmb3JjZS1hYi1idWlsZHMnfSwK
KyAgICAgICAgICAgIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdz
ZXF1ZW50aWFsJ10KICAgICAgICAgfSwKICAgICB9LAogICAgIHRlc3RDb25maWd1cmF0aW9uczog
WwotICAgICAgICB7dHlwZXM6IFsnc29tZSddLCBwbGF0Zm9ybXM6IFsnc29tZSBwbGF0Zm9ybSdd
LCBidWlsZGVyczogWydidWlsZGVyLTEnLCAnYnVpbGRlci0yJ119LAorICAgICAgICB7CisgICAg
ICAgICAgICB0eXBlczogWydzb21lJ10sCisgICAgICAgICAgICBwbGF0Zm9ybXM6IFsnc29tZSBw
bGF0Zm9ybSddLAorICAgICAgICAgICAgYnVpbGRlcnM6IFsnYnVpbGRlci0xJywgJ2J1aWxkZXIt
MiddLAorICAgICAgICAgICAgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5n
JywgJ3NlcXVlbnRpYWwnXSwKKyAgICAgICAgfSwKICAgICBdCiB9OwogCkBAIC0xNTAsNyArMTc3
LDcgQEAgZnVuY3Rpb24gYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdCwgbWV0aG9kLCB1
cmwsIGNvbnRlbnRUb1Jlc29sdmUpCiAgICAgcmVxdWVzdC5yZXNvbHZlKGNvbnRlbnRUb1Jlc29s
dmUpOwogfQogCi1mdW5jdGlvbiBjcmVhdGVUcmlnZ2VyYWJsZShjb25maWcgPSBjb25maWdXaXRo
T25lVGVzdGVyVHdvQnVpbGRlcnMpCitmdW5jdGlvbiBjcmVhdGVUcmlnZ2VyYWJsZShjb25maWcg
PSBjb25maWdXaXRoT25lVGVzdGVyVHdvQnVpbGRlcnMoKSkKIHsKICAgICBsZXQgdHJpZ2dlcmFi
bGU7CiAgICAgcmV0dXJuIE1vY2tEYXRhLmFkZE1vY2tDb25maWd1cmF0aW9uKFRlc3RTZXJ2ZXIu
ZGF0YWJhc2UoKSkudGhlbigoKSA9PiB7CkBAIC0xNzgsNyArMjA1LDcgQEAgZnVuY3Rpb24gY3Jl
YXRlVGVzdEdyb3VwKHRhc2tfbmFtZT0nY3VzdG9tIHRhc2snKSB7CiAgICAgfSk7CiB9CiAKLWFz
eW5jIGZ1bmN0aW9uIGNyZWF0ZVRlc3RHcm91cFdpdGhQYXRjaCgpCithc3luYyBmdW5jdGlvbiBj
cmVhdGVUZXN0R3JvdXBXaXRoUGF0Y2gocmVwZXRpdGlvblR5cGUgPSAnYWx0ZXJuYXRpbmcnKQog
ewogICAgIGNvbnN0IHBhdGNoRmlsZSA9IGF3YWl0IFRlbXBvcmFyeUZpbGUubWFrZVRlbXBvcmFy
eUZpbGUoJ3BhdGNoLmRhdCcsICdwYXRjaCBmaWxlJyk7CiAgICAgY29uc3Qgb3JpZ2luYWxQcml2
aWxlZ2VkQVBJID0gZ2xvYmFsLlByaXZpbGVnZWRBUEk7CkBAIC0xOTMsNyArMjIwLDcgQEAgYXN5
bmMgZnVuY3Rpb24gY3JlYXRlVGVzdEdyb3VwV2l0aFBhdGNoKCkKICAgICBzZXQxLnNldFJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQsICcxOTE2MjInLCB1cGxvYWRlZFBhdGNoRmlsZSk7CiAg
ICAgY29uc3Qgc2V0MiA9IG5ldyBDdXN0b21Db21taXRTZXQ7CiAgICAgc2V0Mi5zZXRSZXZpc2lv
bkZvclJlcG9zaXRvcnkod2Via2l0LCAnMTkxNjIyJyk7Ci0gICAgY29uc3QgdGFzayA9IGF3YWl0
IFRlc3RHcm91cC5jcmVhdGVXaXRoVGFzaygnY3VzdG9tIHRhc2snLCBQbGF0Zm9ybS5maW5kQnlJ
ZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSwgc29tZVRlc3QsICdzb21lIGdyb3VwJywgMiwg
J2FsdGVybmF0aW5nJywgW3NldDEsIHNldDJdKTsKKyAgICBjb25zdCB0YXNrID0gYXdhaXQgVGVz
dEdyb3VwLmNyZWF0ZVdpdGhUYXNrKCdjdXN0b20gdGFzaycsIFBsYXRmb3JtLmZpbmRCeUlkKE1v
Y2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpLCBzb21lVGVzdCwgJ3NvbWUgZ3JvdXAnLCAyLCByZXBl
dGl0aW9uVHlwZSwgW3NldDEsIHNldDJdKTsKIAogICAgIHJldHVybiBUZXN0R3JvdXAuZmluZEFs
bEJ5VGFzayh0YXNrLmlkKCkpWzBdOwogfQpAQCAtMjM5LDcgKzI2Niw2IEBAIGRlc2NyaWJlKCdz
eW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICBQcml2aWxlZ2VkQVBJLmNvbmZp
Z3VyZSgndGVzdCcsICdwYXNzd29yZCcpOwogICAgIH0pOwogCi0KICAgICBpdCgnc2hvdWxkIG5v
dCBzY2hlZHVsZSBvbiBhbm90aGVyIGJ1aWxkZXIgaWYgdGhlIGJ1aWxkIHdhcyBzY2hlZHVsZWQg
b24gb25lIGJ1aWxkZXIgYmVmb3JlJywgKCkgPT4gewogICAgICAgICBjb25zdCByZXF1ZXN0cyA9
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHM7CiAgICAgICAgIGxldCBmaXJzdFRlc3RHcm91cDsKQEAg
LTY4Myw2ICs3MDksNDA0IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkg
ewogICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygp
LCBbb3RoZXJXZWJraXRSb290XSk7CiAgICAgfSk7CiAKKyAgICBpdCgnc2hvdWxkIHJlc3BlY3Rl
ZCAic3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzIiBzcGVjaWZpZWQgYnkgYnVpbGQgYW5kIHRlc3Qg
Y29uZmlndXJhdGlvbnMnLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGNvbnN0IHJlcXVlc3RzID0g
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0czsKKyAgICAgICAgbGV0IHN5bmNQcm9taXNlOworICAgICAg
ICBjb25zdCB0cmlnZ2VyYWJsZSA9IGF3YWl0IGNyZWF0ZVRyaWdnZXJhYmxlKGNvbmZpZ1dpdGhP
bmVUZXN0ZXJUd29CdWlsZGVycyhbCisgICAgICAgICAgICB7IGJ1aWxkZXJzOiBbJ2J1aWxkZXIt
MSddLCB0eXBlczogWydzb21lJ10sIHBsYXRmb3JtczogWydzb21lIHBsYXRmb3JtJ10sIHN1cHBv
cnRlZFJlcGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdwYWlyZWQtcGFyYWxsZWwnXSB9
XSkpOworICAgICAgICBjb25zdCBmaXJzdEJ1aWxkTnVtYmVyID0gMTIzOworICAgICAgICBjb25z
dCBzZWNvbmRCdWlsZE51bWJlciA9IDEyNDsKKyAgICAgICAgbGV0IHRlc3RHcm91cCA9IGF3YWl0
IGNyZWF0ZVRlc3RHcm91cFdpdGhQYXRjaCgncGFpcmVkLXBhcmFsbGVsJyk7CisKKyAgICAgICAg
Y29uc3QgdGFza0lkID0gdGVzdEdyb3VwLnRhc2soKS5pZCgpOworICAgICAgICBsZXQgd2Via2l0
ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0
aCwgNik7CisKKyAgICAgICAgbGV0IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKClbMF07CisgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAgICAg
ICAgYXNzZXJ0KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51
bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CisKKyAgICAgICAgbGV0IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQo
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9z
aXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBsZXQgd2Via2l0UGF0Y2ggPSBjb21t
aXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CisgICAgICAgIGFzc2VydCh3ZWJraXRQ
YXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisK
KyAgICAgICAgbGV0IG90aGVyQnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KVsxXTsKKyAgICAgICAgYXNzZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAg
ICAgIGFzc2VydCghb3RoZXJCdWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgp
LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0
YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3Ro
ZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKworICAgICAgICBsZXQgb3RoZXJDb21t
aXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwor
CisgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgp
ID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwg
TW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CisgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVzZXQoKTsKKyAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwor
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLnBl
bmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdzb21lIGJ1aWxkZXInKSwge30pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1aWxk
ZXInKSwge30pOworICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0RhdGEu
cmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CisgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXInLCAyKSwge30pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIg
YnVpbGRlcicsIDIpLCB7fSk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3
KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywg
Jy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJzL2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOworICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnaWQnOiAnMScsICdqc29ucnBj
JzogJzIuMCcsICdtZXRob2QnOiAnZm9yY2UnLCAncGFyYW1zJzoKKyAgICAgICAgICAgICAgICB7
J3drJzogJzE5MTYyMicsICd3ay1wYXRjaCc6IFJlbW90ZUFQSS51cmwoJy9hcGkvdXBsb2FkZWQt
ZmlsZS8xLmRhdCcpLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snLCAnYnVpbGQtd2snOiB0cnVlLCAn
YnVpbGQtcmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxk
cyd9fSk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOworICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlcicpLAorICAgICAgICAgICAgTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWls
ZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJl
cXVlc3RJZDogMX0pKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
OV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9
KTsKKyAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50
QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSBidWlsZGVyJywgMiksCisgICAgICAgICAgICBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1
aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxk
UmVxdWVzdElkOiAxLCBidWlsZE51bWJlcjogZmlyc3RCdWlsZE51bWJlciwgc3RhdHVzRGVzY3Jp
cHRpb246ICdCdWlsZGluZyBXZWJLaXQnfSkpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVy
IGJ1aWxkZXInLCAyKSwge30pOworICAgICAgICBhd2FpdCBzeW5jUHJvbWlzZTsKKworICAgICAg
ICBsZXQgdGVzdEdyb3VwcyA9IGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0
cnVlKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEp
OworICAgICAgICB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOworICAgICAgICB3ZWJraXQgPSBS
ZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2
KTsKKworICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBd
OworICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAgICAgIGFzc2Vy
dCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3Nv
bWUgYnVpbGRlcicsIDEyNCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1
ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksICdCdWlsZGluZyBXZWJLaXQnKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworCisgICAgICAg
IGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYy
MicpOworICAgICAgICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnko
d2Via2l0KTsKKyAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRG
aWxlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCks
ICdwYXRjaC5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yb290
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChj
b21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKworICAgICAgICBvdGhlckJ1aWxkUmVxdWVz
dCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CisgICAgICAgIGFzc2VydChvdGhlckJ1
aWxkUmVxdWVzdC5pc0J1aWxkKCkpOworICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0
LmlzVGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0
LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVs
bCk7CisKKyAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRT
ZXQoKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9u
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9y
eSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNl
dC5hbGxSb290RmlsZXMoKSwgW10pOworCisgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsK
KyAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkg
PT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBN
b2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKKyAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXNldCgpOworICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CisgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOworICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwo
J3NvbWUgYnVpbGRlcicpLCB7fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRl
cicpLCB7fSk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
KworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKKyAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlcicsIDIpLAorICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxk
KHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBi
dWlsZFJlcXVlc3RJZDogMSwgYnVpbGRUYWc6IGZpcnN0QnVpbGROdW1iZXIsIHN0YXR1c0Rlc2Ny
aXB0aW9uOiAnQ29tcGlsaW5nIFdURid9KSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdvdGhlciBi
dWlsZGVyJywgMiksIHt9KTsKKyAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkp
OworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1v
Y2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKKyAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5n
QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290
aGVyIGJ1aWxkZXInKSwge30pOworICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MTIpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOworICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAorICAgICAgICAgICAgTW9ja0RhdGEu
cnVubmluZ0J1aWxkKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUg
YnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMSwgYnVpbGRUYWc6IGZpcnN0QnVpbGROdW1iZXIs
IHN0YXR1c0Rlc2NyaXB0aW9uOiAnQ29tcGlsaW5nIFdURid9KSk7CisgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxk
c1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CisgICAgICAgIGF3YWl0IHN5bmNQcm9taXNl
OworCisgICAgICAgIGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsK
KworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAg
ICAgICB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOworICAgICAgICB3ZWJraXQgPSBSZXBvc2l0
b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgpKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCkubGVuZ3RoLCA2KTsKKwor
ICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzBdOworICAg
ICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAgICAgIGFzc2VydCghYnVp
bGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnUnVubmluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVp
bGRlcicsIGZpcnN0QnVpbGROdW1iZXIpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCAnQ29tcGlsaW5nIFdURicpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAg
ICAgICAgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7CisgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpOworICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxv
YWRlZEZpbGUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5h
bWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0
LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworCisgICAgICAgIG90aGVyQnVpbGRS
ZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKKyAgICAgICAgYXNzZXJ0KG90
aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAgICAgIGFzc2VydCghb3RoZXJCdWlsZFJl
cXVlc3QuaXNUZXN0KCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVx
dWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgp
LCBudWxsKTsKKworICAgICAgICBvdGhlckNvbW1pdFNldCA9IG90aGVyQnVpbGRSZXF1ZXN0LmNv
bW1pdFNldCgpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxs
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBv
c2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29t
bWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisKKyAgICAgICAgYXdhaXQgdXBsb2FkUm9vdChw
YXJzZUludChidWlsZFJlcXVlc3QuaWQoKSksIGZpcnN0QnVpbGROdW1iZXIpOworCisgICAgICAg
IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7
CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAg
ICAgICAgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKKyAgICAgICAgd2Via2l0ID0gUmVwb3Np
dG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisK
KyAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKKyAg
ICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOworICAgICAgICBhc3NlcnQoIWJ1
aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUg
YnVpbGRlcicsIGZpcnN0QnVpbGROdW1iZXIpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCAnQ29tcGlsaW5nIFdURicpOworICAg
ICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAg
ICAgICAgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7CisgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVwb3Np
dG9yeSh3ZWJraXQpOworICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxv
YWRlZEZpbGUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmlsZW5h
bWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICBsZXQgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5y
b290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOworICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0
YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRS
b290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKKworICAgICAgICBvdGhl
ckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CisgICAgICAgIGFz
c2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOworICAgICAgICBhc3NlcnQoIW90aGVy
QnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVy
QnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigp
LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CisKKyAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVx
dWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0
U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0
KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290
Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChv
dGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworCisgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVzZXQoKTsKKyAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2Vy
cygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWls
ZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKKyAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXNldCgpOworICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Myk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOworICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRp
bmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgn
b3RoZXIgYnVpbGRlcicpLCB7fSk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA2KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQn
LCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKKyAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5y
ZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLAorICAgICAgICAgICAgTW9ja0RhdGEu
ZmluaXNoZWRCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21l
IGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkVGFnOiBmaXJzdEJ1aWxkTnVtYmVy
fSkpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcs
IE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CisgICAg
ICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9hcGkvdjIvZm9yY2VzY2hlZHVsZXJz
L2ZvcmNlLWFiLWJ1aWxkcycsICdPSycpOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVl
c3RzWzZdLmRhdGEsIHsnaWQnOiAnMicsICdqc29ucnBjJzogJzIuMCcsICdtZXRob2QnOiAnZm9y
Y2UnLCAncGFyYW1zJzoKKyAgICAgICAgICAgICAgICB7J3drJzogJzE5MTYyMicsICdidWlsZC1y
ZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ2No
ZWNrYm94JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXdrJzogdHJ1ZX19KTsKKyAgICAgICAgYXdhaXQg
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbN10sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRl
c3RlcicpLCB7fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhd
LCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsK
KyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2Nr
RGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9KTsKKyAgICAgICAgYXdh
aXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21l
IHRlc3RlcicsIDIpLCB7fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzExXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSBidWlsZGVyJywg
MiksIHsKKyAgICAgICAgICAgICdidWlsZHMnOiBbCisgICAgICAgICAgICAgICAgTW9ja0RhdGEu
cnVubmluZ0J1aWxkRGF0YSh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdz
b21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDIsIGJ1aWxkVGFnOiBzZWNvbmRCdWlsZE51
bWJlcn0pLAorICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWls
ZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJl
cXVlc3RJZDogMSwgYnVpbGRUYWc6IGZpcnN0QnVpbGROdW1iZXJ9KV0KKyAgICAgICAgfSk7Cisg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7CisgICAgICAgIGF3
YWl0IHN5bmNQcm9taXNlOworCisgICAgICAgIGF3YWl0IFRlc3RHcm91cC5mZXRjaEZvclRhc2so
dGFza0lkLCB0cnVlKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vwcy5s
ZW5ndGgsIDEpOworICAgICAgICB0ZXN0R3JvdXAgPSB0ZXN0R3JvdXBzWzBdOworICAgICAgICB3
ZWJraXQgPSBSZXBvc2l0b3J5LmZpbmRCeUlkKE1vY2tEYXRhLndlYmtpdFJlcG9zaXRvcnlJZCgp
KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKCku
bGVuZ3RoLCA2KTsKKworICAgICAgICBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1
ZXN0cygpWzBdOworICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAg
ICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIE1vY2tEYXRhLnN0
YXR1c1VybCgnc29tZSBidWlsZGVyJywgZmlyc3RCdWlsZE51bWJlcikpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c0Rlc2NyaXB0aW9uKCksIG51bGwpOwor
ICAgICAgICBhc3NlcnQubm90RXF1YWwoYnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisK
KyAgICAgICAgY29tbWl0U2V0ID0gYnVpbGRSZXF1ZXN0LmNvbW1pdFNldCgpOworICAgICAgICBh
c3NlcnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQp
LCAnMTkxNjIyJyk7CisgICAgICAgIHdlYmtpdFBhdGNoID0gY29tbWl0U2V0LnBhdGNoRm9yUmVw
b3NpdG9yeSh3ZWJraXQpOworICAgICAgICBhc3NlcnQod2Via2l0UGF0Y2ggaW5zdGFuY2VvZiBV
cGxvYWRlZEZpbGUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0UGF0Y2guZmls
ZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICB3ZWJraXRSb290ID0gY29tbWl0U2V0LnJv
b3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CisgICAgICAgIGFzc2VydCh3ZWJraXRSb290IGluc3Rh
bmNlb2YgVXBsb2FkZWRGaWxlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFJv
b3QuZmlsZW5hbWUoKSwgJ3Jvb3QxMjMuZGF0Jyk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwo
Y29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbd2Via2l0Um9vdF0pOworCisgICAgICAgIG90aGVy
QnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVsxXTsKKyAgICAgICAgYXNz
ZXJ0KG90aGVyQnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7CisgICAgICAgIGFzc2VydCghb3RoZXJC
dWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJC
dWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNV
cmwoJ3NvbWUgYnVpbGRlcicsIHNlY29uZEJ1aWxkTnVtYmVyKSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwg
bnVsbCk7CisKKyAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21t
aXRTZXQoKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlz
aW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3Np
dG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1p
dFNldC5hbGxSb290RmlsZXMoKSwgW10pOworICAgICAgICBhd2FpdCB1cGxvYWRSb290KHBhcnNl
SW50KG90aGVyQnVpbGRSZXF1ZXN0LmlkKCkpLCAxMjQpOworCisgICAgICAgIHRlc3RHcm91cHMg
PSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CisKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgdGVzdEdy
b3VwID0gdGVzdEdyb3Vwc1swXTsKKyAgICAgICAgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJ
ZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisKKyAgICAgICAgYnVp
bGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsKKyAgICAgICAgYXNzZXJ0
KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOworICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5p
c1Rlc3QoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVz
TGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRS
ZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIGZp
cnN0QnVpbGROdW1iZXIpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVz
dC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1
aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworCisgICAgICAgIGNvbW1pdFNldCA9IGJ1aWxk
UmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNl
dC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICB3ZWJr
aXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KTsKKyAgICAgICAg
YXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAg
ICAgICAgd2Via2l0Um9vdCA9IGNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOwor
ICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRh
dCcpOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwg
W3dlYmtpdFJvb3RdKTsKKworICAgICAgICBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5i
dWlsZFJlcXVlc3RzKClbMV07CisgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1
aWxkKCkpOworICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCks
ICdDb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1
ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIHNlY29u
ZEJ1aWxkTnVtYmVyKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0Lm5vdEVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAgICAgICAgb3RoZXJDb21t
aXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAn
MTkxNjIyJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRj
aEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGNvbnN0IG90aGVyV2Via2l0
Um9vdCA9IG90aGVyQ29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CisgICAgICAg
IGFzc2VydChvdGhlcldlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJXZWJraXRSb290LmZpbGVuYW1lKCksICdyb290MTI0
LmRhdCcpOworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RG
aWxlcygpLCBbb3RoZXJXZWJraXRSb290XSk7CisKKyAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNl
dCgpOworICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhl
bigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJM
KCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOworICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlc2V0KCk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CisgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBi
dWlsZGVyJyksIHt9KTsKKyAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwor
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOworICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHsKKyAgICAgICAgJ2J1aWxkcyc6IFsKKyAgICAg
ICAgICAgIE1vY2tEYXRhLmZpbmlzaGVkQnVpbGREYXRhKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1
aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBidWlsZFJlcXVlc3RJZDogMiwgYnVpbGRU
YWc6IHNlY29uZEJ1aWxkTnVtYmVyfSksCisgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1
aWxkRGF0YSh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxk
ZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkVGFnOiBmaXJzdEJ1aWxkTnVtYmVyfSldCisg
ICAgICAgIH0pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwg
J0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7fSk7
CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVp
bGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSBi
dWlsZGVyJyksIHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
OF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBidWlsZGVyJyksIHt9
KTsKKyAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworCisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKKyAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdz
b21lIGJ1aWxkZXInLCAyKSwgeworICAgICAgICAgICAgJ2J1aWxkcyc6IFsKKyAgICAgICAgICAg
ICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWls
ZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDIsIGJ1aWxkVGFn
OiBzZWNvbmRCdWlsZE51bWJlcn0pLAorICAgICAgICAgICAgICAgIE1vY2tEYXRhLmZpbmlzaGVk
QnVpbGREYXRhKHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVp
bGRlcicpLCBidWlsZFJlcXVlc3RJZDogMSwgYnVpbGRUYWc6IGZpcnN0QnVpbGROdW1iZXJ9KV0K
KyAgICAgICAgfSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEx
XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicsIDIpLCB7
fSk7CisgICAgICAgIGF3YWl0IHN5bmNQcm9taXNlOworCisgICAgICAgIGF3YWl0IFRlc3RHcm91
cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KHRlc3RHcm91cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1sw
XTsKKyAgICAgICAgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRS
ZXBvc2l0b3J5SWQoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVp
bGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7CisKKyAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdy
b3VwLmJ1aWxkUmVxdWVzdHMoKVsyXTsKKyAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc1Rl
c3QoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFi
ZWwoKSwgJ1dhaXRpbmcnKTsKKyAgICB9KTsKKwogICAgIGl0KCdzaG91bGQgc2NoZWR1bGUgYSBi
dWlsZCB0byBidWlsZCBhIHBhdGNoJywgKCkgPT4gewogICAgICAgICBjb25zdCByZXF1ZXN0cyA9
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHM7CiAgICAgICAgIGxldCB0cmlnZ2VyYWJsZTsKZGlmZiAt
LWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIu
anMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpz
CmluZGV4IDllYjhjNmM5MWFmNTBmYzIwMjA2NmRlNWM4MmM0MWQ5YjRkNDA5ZWMuLmVlODUyMDk5
ODI5NTJiOTBiNDQ0NTgyMGRiNzQ2YWE4OTMzMGRlZWIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMKKysrIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcwpAQCAtNjksNiArNjks
NyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgIHRoaXMuX3dvcmtlclByb3BlcnR5
TmFtZSA9IGNvbW1vbkNvbmZpZ3VyYXRpb25zLndvcmtlckFyZ3VtZW50OwogICAgICAgICB0aGlz
Ll9wbGF0Zm9ybVByb3BlcnR5TmFtZSA9IGNvbW1vbkNvbmZpZ3VyYXRpb25zLnBsYXRmb3JtQXJn
dW1lbnQ7CiAgICAgICAgIHRoaXMuX2J1aWxkUmVxdWVzdFByb3BlcnR5TmFtZSA9IGNvbW1vbkNv
bmZpZ3VyYXRpb25zLmJ1aWxkUmVxdWVzdEFyZ3VtZW50OworICAgICAgICB0aGlzLl9idWlsZGVy
U3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzID0gb2JqZWN0LnN1cHBvcnRlZFJlcGV0aXRpb25UeXBl
czsKICAgICAgICAgdGhpcy5fYnVpbGRlck5hbWUgPSBvYmplY3QuYnVpbGRlcjsKICAgICAgICAg
dGhpcy5fYnVpbGRlcklEID0gb2JqZWN0LmJ1aWxkZXJJRDsKICAgICAgICAgdGhpcy5fd29ya2Vy
TGlzdCA9IG9iamVjdC53b3JrZXJMaXN0OwpAQCAtODIsMjIgKzgzLDI2IEBAIGNsYXNzIEJ1aWxk
Ym90U3luY2VyIHsKICAgICAvLyBCdWlsZGJvdCByZXN1bHQgY29kZXM6IGh0dHBzOi8vZG9jcy5i
dWlsZGJvdC5uZXQvbGF0ZXN0L2RldmVsb3Blci9yZXN1bHRzLmh0bWwKICAgICBsYXN0Q29tcGxl
dGVkQnVpbGRTdWNjZXNzZnVsKCkgeyByZXR1cm4gIXRoaXMuX2xhc3RDb21wbGV0ZWRCdWlsZCB8
fCAhdGhpcy5fbGFzdENvbXBsZXRlZEJ1aWxkLnJlc3VsdCgpIH0KIAotICAgIGFkZFRlc3RDb25m
aWd1cmF0aW9uKHRlc3QsIHBsYXRmb3JtLCBwcm9wZXJ0aWVzVGVtcGxhdGUpCisgICAgYWRkVGVz
dENvbmZpZ3VyYXRpb24odGVzdCwgcGxhdGZvcm0sIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcywg
cHJvcGVydGllc1RlbXBsYXRlKQogICAgIHsKICAgICAgICAgYXNzZXJ0KHRlc3QgaW5zdGFuY2Vv
ZiBUZXN0KTsKICAgICAgICAgYXNzZXJ0KHBsYXRmb3JtIGluc3RhbmNlb2YgUGxhdGZvcm0pOwor
ICAgICAgICBhc3NlcnQoQXJyYXkuaXNBcnJheShzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMpKTsK
KyAgICAgICAgYXNzZXJ0KHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcy5ldmVyeShyZXBldGl0aW9u
VHlwZSA9PiBUcmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24uaXNWYWxpZFJlcGV0aXRpb25UeXBlKHJl
cGV0aXRpb25UeXBlKSkpOwogICAgICAgICBhc3NlcnQodGhpcy5fdHlwZSA9PSBudWxsIHx8IHRo
aXMuX3R5cGUgPT0gJ3Rlc3RlcicpOwogICAgICAgICB0aGlzLl90eXBlID0gJ3Rlc3Rlcic7Ci0g
ICAgICAgIHRoaXMuX2NvbmZpZ3VyYXRpb25zLnB1c2goe3Rlc3QsIHBsYXRmb3JtLCBwcm9wZXJ0
aWVzVGVtcGxhdGV9KTsKKyAgICAgICAgdGhpcy5fY29uZmlndXJhdGlvbnMucHVzaCh7dGVzdCwg
cGxhdGZvcm0sIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcywgcHJvcGVydGllc1RlbXBsYXRlfSk7
CiAgICAgfQogICAgIHRlc3RDb25maWd1cmF0aW9ucygpIHsgcmV0dXJuIHRoaXMuX3R5cGUgPT0g
J3Rlc3RlcicgPyB0aGlzLl9jb25maWd1cmF0aW9ucyA6IFtdOyB9CiAKLSAgICBhZGRCdWlsZENv
bmZpZ3VyYXRpb24ocGxhdGZvcm0sIHByb3BlcnRpZXNUZW1wbGF0ZSkKKyAgICBhZGRCdWlsZENv
bmZpZ3VyYXRpb24ocGxhdGZvcm0sIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcywgcHJvcGVydGll
c1RlbXBsYXRlKQogICAgIHsKICAgICAgICAgYXNzZXJ0KHBsYXRmb3JtIGluc3RhbmNlb2YgUGxh
dGZvcm0pOwogICAgICAgICBhc3NlcnQodGhpcy5fdHlwZSA9PSBudWxsIHx8IHRoaXMuX3R5cGUg
PT0gJ2J1aWxkZXInKTsKKyAgICAgICAgYXNzZXJ0KEFycmF5LmlzQXJyYXkoc3VwcG9ydGVkUmVw
ZXRpdGlvblR5cGVzKSk7CisgICAgICAgIGFzc2VydChzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMu
ZXZlcnkocmVwZXRpdGlvblR5cGUgPT4gVHJpZ2dlcmFibGVDb25maWd1cmF0aW9uLmlzVmFsaWRS
ZXBldGl0aW9uVHlwZShyZXBldGl0aW9uVHlwZSkpKTsKICAgICAgICAgdGhpcy5fdHlwZSA9ICdi
dWlsZGVyJzsKLSAgICAgICAgdGhpcy5fY29uZmlndXJhdGlvbnMucHVzaCh7dGVzdDogbnVsbCwg
cGxhdGZvcm0sIHByb3BlcnRpZXNUZW1wbGF0ZX0pOworICAgICAgICB0aGlzLl9jb25maWd1cmF0
aW9ucy5wdXNoKHt0ZXN0OiBudWxsLCBwbGF0Zm9ybSwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVz
LCBwcm9wZXJ0aWVzVGVtcGxhdGV9KTsKICAgICB9CiAgICAgYnVpbGRDb25maWd1cmF0aW9ucygp
IHsgcmV0dXJuIHRoaXMuX3R5cGUgPT0gJ2J1aWxkZXInID8gdGhpcy5fY29uZmlndXJhdGlvbnMg
OiBbXTsgfQogCkBAIC0xMDcsNyArMTEyLDEyIEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKIAog
ICAgIG1hdGNoZXNDb25maWd1cmF0aW9uKHJlcXVlc3QpCiAgICAgewotICAgICAgICByZXR1cm4g
dGhpcy5fY29uZmlndXJhdGlvbnMuc29tZSgoY29uZmlnKSA9PiBjb25maWcucGxhdGZvcm0gPT0g
cmVxdWVzdC5wbGF0Zm9ybSgpICYmIGNvbmZpZy50ZXN0ID09IHJlcXVlc3QudGVzdCgpKTsKKyAg
ICAgICAgY29uc3QgcmVxdWVzdFJlcGV0aXRpb25UeXBlID0gcmVxdWVzdC50ZXN0R3JvdXAoKS5y
ZXBldGl0aW9uVHlwZSgpOworICAgICAgICBpZiAoIXRoaXMuX2J1aWxkZXJTdXBwb3J0ZWRSZXBl
dGl0aW9uVHlwZXMuaW5jbHVkZXMocmVxdWVzdFJlcGV0aXRpb25UeXBlKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlndXJhdGlvbnMuc29t
ZSgoY29uZmlnKSA9PiBjb25maWcucGxhdGZvcm0gPT0gcmVxdWVzdC5wbGF0Zm9ybSgpICYmIGNv
bmZpZy50ZXN0ID09IHJlcXVlc3QudGVzdCgpCisgICAgICAgICAgICAmJiBjb25maWcuc3VwcG9y
dGVkUmVwZXRpdGlvblR5cGVzLmluY2x1ZGVzKHJlcXVlc3RSZXBldGl0aW9uVHlwZSkpOwogICAg
IH0KIAogICAgIHNjaGVkdWxlUmVxdWVzdChuZXdSZXF1ZXN0LCByZXF1ZXN0c0luR3JvdXAsIHdv
cmtlck5hbWUpCkBAIC0zODUsNyArMzk1LDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAg
ICAgICBhc3NlcnQoQXJyYXkuaXNBcnJheShjb25maWdbJ3Rlc3RDb25maWd1cmF0aW9ucyddKSwg
YFRoZSB0ZXN0IGNvbmZpZ3VyYXRpb24gbXVzdCBiZSBhbiBhcnJheWApOwogICAgICAgICB0aGlz
Ll9yZXNvbHZlQnVpbGRlcnNXaXRoUGxhdGZvcm1zKCd0ZXN0JywgY29uZmlnWyd0ZXN0Q29uZmln
dXJhdGlvbnMnXSwgYnVpbGRlcnMsIGJ1aWxkZXJOYW1lVG9JRE1hcCkuZm9yRWFjaCgoZW50cnks
IGNvbmZpZ3VyYXRpb25JbmRleCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KEFycmF5LmlzQXJy
YXkoZW50cnlbJ3R5cGVzJ10pLCBgVGhlIHRlc3QgY29uZmlndXJhdGlvbiAke2NvbmZpZ3VyYXRp
b25JbmRleH0gZG9lcyBub3Qgc3BlY2lmeSAidHlwZXMiIGFzIGFuIGFycmF5YCk7Ci0gICAgICAg
ICAgICBmb3IgKGNvbnN0IHR5cGUgb2YgZW50cnlbJ3R5cGVzJ10pIHsKKyAgICAgICAgICAgIGZv
ciAobGV0IHR5cGUgb2YgZW50cnlbJ3R5cGVzJ10pIHsKICAgICAgICAgICAgICAgICBjb25zdCB0
eXBlQ29uZmlnID0gdGhpcy5fdmFsaWRhdGVBbmRNZXJnZUNvbmZpZyh7fSwgZW50cnkuYnVpbGRl
ckNvbmZpZyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KHR5cGVzW3R5cGVdLCBgIiR7dHlwZX0i
IGlzIG5vdCBhIHZhbGlkIHR5cGUgaW4gdGhlIGNvbmZpZ3VyYXRpb25gKTsKICAgICAgICAgICAg
ICAgICB0aGlzLl92YWxpZGF0ZUFuZE1lcmdlQ29uZmlnKHR5cGVDb25maWcsIHR5cGVzW3R5cGVd
KTsKQEAgLTM5NCw3ICs0MDQsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgICAg
ICAgICAgY29uc3QgdGVzdCA9IFRlc3QuZmluZEJ5UGF0aCh0ZXN0UGF0aCk7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0KHRlc3QsIGAiJHt0ZXN0UGF0aC5qb2luKCciLCAiJyl9IiBpcyBub3QgYSB2
YWxpZCB0ZXN0IHBhdGggaW4gdGhlIHRlc3QgY29uZmlndXJhdGlvbiAke2NvbmZpZ3VyYXRpb25J
bmRleH1gKTsKIAotICAgICAgICAgICAgICAgIGVuc3VyZUJ1aWxkYm90U3luY2VyKGVudHJ5LmJ1
aWxkZXJDb25maWcpLmFkZFRlc3RDb25maWd1cmF0aW9uKHRlc3QsIGVudHJ5LnBsYXRmb3JtLCB0
eXBlQ29uZmlnLnByb3BlcnRpZXMpOworICAgICAgICAgICAgICAgIGVuc3VyZUJ1aWxkYm90U3lu
Y2VyKGVudHJ5LmJ1aWxkZXJDb25maWcpLmFkZFRlc3RDb25maWd1cmF0aW9uKHRlc3QsIGVudHJ5
LnBsYXRmb3JtLCBlbnRyeS5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMsIHR5cGVDb25maWcucHJv
cGVydGllcyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0pOwogCkBAIC00MDQsNyArNDE0LDcg
QEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICAgICAgdGhpcy5fcmVzb2x2ZUJ1aWxk
ZXJzV2l0aFBsYXRmb3JtcygndGVzdCcsIGJ1aWxkQ29uZmlndXJhdGlvbnMsIGJ1aWxkZXJzLCBi
dWlsZGVyTmFtZVRvSURNYXApLmZvckVhY2goKGVudHJ5LCBjb25maWd1cmF0aW9uSW5kZXgpID0+
IHsKICAgICAgICAgICAgICAgICBjb25zdCBzeW5jZXIgPSBlbnN1cmVCdWlsZGJvdFN5bmNlcihl
bnRyeS5idWlsZGVyQ29uZmlnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQoIXN5bmNlci5pc1Rl
c3RlcigpLCBgVGhlIGJ1aWxkIGNvbmZpZ3VyYXRpb24gJHtjb25maWd1cmF0aW9uSW5kZXh9IHVz
ZXMgYSB0ZXN0ZXI6ICR7c3luY2VyLmJ1aWxkZXJOYW1lKCl9YCk7Ci0gICAgICAgICAgICAgICAg
c3luY2VyLmFkZEJ1aWxkQ29uZmlndXJhdGlvbihlbnRyeS5wbGF0Zm9ybSwgZW50cnkuYnVpbGRl
ckNvbmZpZy5wcm9wZXJ0aWVzKTsKKyAgICAgICAgICAgICAgICBzeW5jZXIuYWRkQnVpbGRDb25m
aWd1cmF0aW9uKGVudHJ5LnBsYXRmb3JtLCBlbnRyeS5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMs
IGVudHJ5LmJ1aWxkZXJDb25maWcucHJvcGVydGllcyk7CiAgICAgICAgICAgICB9KTsKICAgICAg
ICAgfQogCkBAIC00MTksMTcgKzQyOSwyMyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAg
ICAgICAgICBjb25maWd1cmF0aW9uSW5kZXgrKzsKICAgICAgICAgICAgIGFzc2VydChBcnJheS5p
c0FycmF5KGVudHJ5WydidWlsZGVycyddKSwgYFRoZSAke2NvbmZpZ3VyYXRpb25UeXBlfSBjb25m
aWd1cmF0aW9uICR7Y29uZmlndXJhdGlvbkluZGV4fSBkb2VzIG5vdCBzcGVjaWZ5ICJidWlsZGVy
cyIgYXMgYW4gYXJyYXlgKTsKICAgICAgICAgICAgIGFzc2VydChBcnJheS5pc0FycmF5KGVudHJ5
WydwbGF0Zm9ybXMnXSksIGBUaGUgJHtjb25maWd1cmF0aW9uVHlwZX0gY29uZmlndXJhdGlvbiAk
e2NvbmZpZ3VyYXRpb25JbmRleH0gZG9lcyBub3Qgc3BlY2lmeSAicGxhdGZvcm1zIiBhcyBhbiBh
cnJheWApOworICAgICAgICAgICAgYXNzZXJ0KEFycmF5LmlzQXJyYXkoZW50cnlbJ3N1cHBvcnRl
ZFJlcGV0aXRpb25UeXBlcyddKSwgYFRoZSAke2NvbmZpZ3VyYXRpb25UeXBlfSBjb25maWd1cmF0
aW9uICR7Y29uZmlndXJhdGlvbkluZGV4fSBkb2VzIG5vdCBzcGVjaWZ5ICJzdXBwb3J0ZWRSZXBl
dGl0aW9uVHlwZXMiIGFzIGFuIGFycmF5YCk7CisgICAgICAgICAgICBhc3NlcnQoZW50cnlbJ3N1
cHBvcnRlZFJlcGV0aXRpb25UeXBlcyddLmV2ZXJ5KFRyaWdnZXJhYmxlQ29uZmlndXJhdGlvbi5p
c1ZhbGlkUmVwZXRpdGlvblR5cGUuYmluZChUcmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24pKSwKKyAg
ICAgICAgICAgICAgICBgVGhlICR7Y29uZmlndXJhdGlvblR5cGV9IGNvbmZpZ3VyYXRpb24gJHtj
b25maWd1cmF0aW9uSW5kZXh9IHNwZWNpZmllcyBpbnZhbGlkIHJlcGV0aXRpb25UeXBlIGluICJz
dXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMiOiAke2VudHJ5WydzdXBwb3J0ZWRSZXBldGl0aW9uVHlw
ZXMnXX1gKTsKICAgICAgICAgICAgIGZvciAoY29uc3QgYnVpbGRlcktleSBvZiBlbnRyeVsnYnVp
bGRlcnMnXSkgewogICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nQnVpbGRlciA9IGJ1aWxk
ZXJzW2J1aWxkZXJLZXldOwogICAgICAgICAgICAgICAgIGFzc2VydChtYXRjaGluZ0J1aWxkZXIs
IGAiJHtidWlsZGVyS2V5fSIgaXMgbm90IGEgdmFsaWQgYnVpbGRlciBpbiB0aGUgY29uZmlndXJh
dGlvbmApOwogICAgICAgICAgICAgICAgIGFzc2VydCgnYnVpbGRlcicgaW4gbWF0Y2hpbmdCdWls
ZGVyLCBgQnVpbGRlciAke2J1aWxkZXJLZXl9IGRvZXMgbm90IHNwZWNpZnkgYSBidWlsZGJvdCBi
dWlsZGVyIG5hbWVgKTsKICAgICAgICAgICAgICAgICBhc3NlcnQobWF0Y2hpbmdCdWlsZGVyLmJ1
aWxkZXIgaW4gYnVpbGRlck5hbWVUb0lETWFwLCBgQnVpbGRlciAke21hdGNoaW5nQnVpbGRlci5i
dWlsZGVyfSBub3QgZm91bmQgaW4gQnVpbGRib3QgY29uZmlndXJhdGlvbi5gKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQoQXJyYXkuaXNBcnJheShtYXRjaGluZ0J1aWxkZXIuc3VwcG9ydGVkUmVw
ZXRpdGlvblR5cGVzKSwgYEJ1aWxkZXIgJHttYXRjaGluZ0J1aWxkZXIuYnVpbGRlcn0gZG9lcyBu
b3Qgc3BlY2lmeSAic3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzIiBhcyBhbiBhcnJheWApOworICAg
ICAgICAgICAgICAgIGFzc2VydChtYXRjaGluZ0J1aWxkZXIuc3VwcG9ydGVkUmVwZXRpdGlvblR5
cGVzLmV2ZXJ5KFRyaWdnZXJhYmxlQ29uZmlndXJhdGlvbi5pc1ZhbGlkUmVwZXRpdGlvblR5cGUu
YmluZChUcmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24pKSwKKyAgICAgICAgICAgICAgICAgICAgYEJ1
aWxkZXIgJHttYXRjaGluZ0J1aWxkZXIuYnVpbGRlcn0gc3BlY2lmaWVzIHJlcGV0aXRpb25UeXBl
IGluICJzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMiOiAke21hdGNoaW5nQnVpbGRlci5zdXBwb3J0
ZWRSZXBldGl0aW9uVHlwZXN9YCk7CiAgICAgICAgICAgICAgICAgbWF0Y2hpbmdCdWlsZGVyWydi
dWlsZGVySUQnXSA9IGJ1aWxkZXJOYW1lVG9JRE1hcFttYXRjaGluZ0J1aWxkZXIuYnVpbGRlcl07
CiAgICAgICAgICAgICAgICAgY29uc3QgYnVpbGRlckNvbmZpZyA9IHRoaXMuX3ZhbGlkYXRlQW5k
TWVyZ2VDb25maWcoe30sIG1hdGNoaW5nQnVpbGRlcik7CiAgICAgICAgICAgICAgICAgZm9yIChj
b25zdCBwbGF0Zm9ybU5hbWUgb2YgZW50cnlbJ3BsYXRmb3JtcyddKSB7CiAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IHBsYXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5TmFtZShwbGF0Zm9ybU5hbWUp
OwogICAgICAgICAgICAgICAgICAgICBhc3NlcnQocGxhdGZvcm0sIGAke3BsYXRmb3JtTmFtZX0g
aXMgbm90IGEgdmFsaWQgcGxhdGZvcm0gbmFtZWApOwotICAgICAgICAgICAgICAgICAgICByZXNv
bHZlZENvbmZpZ3VyYXRpb25zLnB1c2goe3R5cGVzOiBlbnRyeS50eXBlcywgYnVpbGRlckNvbmZp
ZywgcGxhdGZvcm19KTsKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZWRDb25maWd1cmF0aW9u
cy5wdXNoKHt0eXBlczogZW50cnkudHlwZXMsIGJ1aWxkZXJDb25maWcsIHBsYXRmb3JtLCBzdXBw
b3J0ZWRSZXBldGl0aW9uVHlwZXM6IGVudHJ5WydzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMnXX0p
OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNTk1LDYg
KzYxMSw3IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgICAgICAgICAgICAgcHJv
cGVydGllc1tuYW1lXSA9IHZhbHVlW25hbWVdOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ3N1cHBvcnRlZFJlcGV0aXRpb25UeXBl
cyc6CiAgICAgICAgICAgICBjYXNlICd0ZXN0JzogLy8gRmFsbHRocm91Z2gKICAgICAgICAgICAg
IGNhc2UgJ3dvcmtlckxpc3QnOiAvLyBGYWxsdGhyb3VnaAogICAgICAgICAgICAgICAgIGFzc2Vy
dCh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5LCBgJHtuYW1lfSBzaG91bGQgYmUgYW4gYXJyYXlgKTsK
ZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10
cmlnZ2VyYWJsZS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJv
dC10cmlnZ2VyYWJsZS5qcwppbmRleCA1MjU3NDQyMjlkYjYzYTBkMTUxMWNlNGIwMDc3OTA5ZTkx
MzQzNGFkLi42ZWEwMzM1ZTMzODM1ZjAyMGJiZjY0ZTU5MWQ5YTMyOTMzMDdlMzZlIDEwMDY0NAot
LS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFi
bGUuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRy
aWdnZXJhYmxlLmpzCkBAIC01Niw3ICs1Niw3IEBAIGNsYXNzIEJ1aWxkYm90VHJpZ2dlcmFibGUg
ewogICAgICAgICBsZXQgcmVwb3NpdG9yeUdyb3VwcyA9IFtdOwogICAgICAgICBmb3IgKGNvbnN0
IHN5bmNlciBvZiB0aGlzLl9zeW5jZXJzKSB7CiAgICAgICAgICAgICBmb3IgKGNvbnN0IGNvbmZp
ZyBvZiBzeW5jZXIudGVzdENvbmZpZ3VyYXRpb25zKCkpIHsKLSAgICAgICAgICAgICAgICBjb25z
dCBlbnRyeSA9IHt0ZXN0OiBjb25maWcudGVzdC5pZCgpLCBwbGF0Zm9ybTogY29uZmlnLnBsYXRm
b3JtLmlkKCl9OworICAgICAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0ge3Rlc3Q6IGNvbmZpZy50
ZXN0LmlkKCksIHBsYXRmb3JtOiBjb25maWcucGxhdGZvcm0uaWQoKSwgc3VwcG9ydGVkUmVwZXRp
dGlvblR5cGVzOiBjb25maWcuc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzfTsKICAgICAgICAgICAg
ICAgICBtYXAuc2V0KGVudHJ5LnRlc3QgKyAnLScgKyBlbnRyeS5wbGF0Zm9ybSwgZW50cnkpOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgLy8gRklYTUU6IE1vdmUgQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcgaGVyZSBhbmQgc3RvcmUgcmVwb3NpdG9yeSBncm91cHMgZGlyZWN0bHkuCkBA
IC04Myw2ICs4Myw4IEBAIGNsYXNzIEJ1aWxkYm90VHJpZ2dlcmFibGUgewogICAgICAgICB0aGlz
Ll9sb2dnZXIubG9nKGBGZXRjaGluZyBidWlsZCByZXF1ZXN0cyBmb3IgJHt0aGlzLl9uYW1lfS4u
LmApOwogCiAgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdHMgPSBhd2FpdCBCdWlsZFJlcXVlc3Qu
ZmV0Y2hGb3JUcmlnZ2VyYWJsZSh0aGlzLl9uYW1lKTsKKyAgICAgICAgY29uc3QgdGVzdEdyb3Vw
SWRzID0gbmV3IFNldChidWlsZFJlcXVlc3RzLm1hcChyZXF1ZXN0ID0+IHJlcXVlc3QudGVzdEdy
b3VwSWQoKSkpOworICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChBcnJheS5mcm9tKHRlc3RHcm91
cElkcykubWFwKHRlc3RHcm91cElkID0+IFRlc3RHcm91cC5mZXRjaEJ5SWQodGVzdEdyb3VwSWQs
IC8qIGlnbm9yZUNhY2hlICovIHRydWUpKSk7CiAgICAgICAgIGNvbnN0IHZhbGlkUmVxdWVzdHMg
PSB0aGlzLl92YWxpZGF0ZVJlcXVlc3RzKGJ1aWxkUmVxdWVzdHMpOwogICAgICAgICBjb25zdCBi
dWlsZFJlcXVlc3RzQnlHcm91cCA9IEJ1aWxkYm90VHJpZ2dlcmFibGUuX3Rlc3RHcm91cE1hcEZv
ckJ1aWxkUmVxdWVzdHMoYnVpbGRSZXF1ZXN0cyk7CiAgICAgICAgIGxldCB1cGRhdGVzID0gYXdh
aXQgdGhpcy5fcHVsbEJ1aWxkYm90T25BbGxTeW5jZXJzKGJ1aWxkUmVxdWVzdHNCeUdyb3VwKTsK
QEAgLTkwLDcgKzkyLDYgQEAgY2xhc3MgQnVpbGRib3RUcmlnZ2VyYWJsZSB7CiAgICAgICAgIHRo
aXMuX2xvZ2dlci5sb2coJ1NjaGVkdWxpbmcgYnVpbGRzJyk7CiAgICAgICAgIGNvbnN0IHRlc3RH
cm91cExpc3QgPSBBcnJheS5mcm9tKGJ1aWxkUmVxdWVzdHNCeUdyb3VwLnZhbHVlcygpKS5zb3J0
KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBhLmdyb3VwT3JkZXIgLSBiLmdyb3VwT3JkZXI7IH0p
OwogCi0gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKEFycmF5LmZyb20oYnVpbGRSZXF1ZXN0c0J5
R3JvdXAua2V5cygpKS5tYXAodGVzdEdyb3VwSWQgPT4gVGVzdEdyb3VwLmZldGNoQnlJZCh0ZXN0
R3JvdXBJZCwgLyogaWdub3JlQ2FjaGUgKi8gdHJ1ZSkpKTsKICAgICAgICAgZm9yIChjb25zdCBn
cm91cCBvZiB0ZXN0R3JvdXBMaXN0KSB7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gdGhp
cy5fbmV4dFJlcXVlc3RJbkdyb3VwKGdyb3VwLCB1cGRhdGVzKTsKICAgICAgICAgICAgIGlmICgh
dmFsaWRSZXF1ZXN0cy5oYXMocmVxdWVzdCkpCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvdG9vbHMvanMvZGF0YWJhc2UuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
dG9vbHMvanMvZGF0YWJhc2UuanMKaW5kZXggOWFlZWU5ZTZhMjJlNTZkZjBkODBkNzEyZGU2NGNh
NGJmNzNiMzhiMy4uYzVkYWU0MzIzM2JhZjA5MWE5NWM2YTFhYzQ1Y2E5ZGJlMWE5ZjlkYyAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2RhdGFiYXNlLmpzCisr
KyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9kYXRhYmFzZS5qcwpAQCAtMTY1
LDYgKzE2NSw3IEBAIGNvbnN0IHRhYmxlVG9QcmVmaXhNYXAgPSB7CiAgICAgJ3RyaWdnZXJhYmxl
X2NvbmZpZ3VyYXRpb25zJzogJ3RyaWdjb25maWcnLAogICAgICd0cmlnZ2VyYWJsZV9yZXBvc2l0
b3J5X2dyb3Vwcyc6ICdyZXBvc2l0b3J5Z3JvdXAnLAogICAgICd0cmlnZ2VyYWJsZV9yZXBvc2l0
b3JpZXMnOiAndHJpZ3JlcG8nLAorICAgICd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0
aXRpb25fdHlwZXMnOiAnY29uZmlncmVwZXRpdGlvbicsCiAgICAgJ3BsYXRmb3Jtcyc6ICdwbGF0
Zm9ybScsCiAgICAgJ3BsYXRmb3JtX2dyb3Vwcyc6ICdwbGF0Zm9ybWdyb3VwJywKICAgICAncmVw
b3J0cyc6ICdyZXBvcnQnLApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rv
b2xzL2pzL3YzLW1vZGVscy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy92
My1tb2RlbHMuanMKaW5kZXggNGJlYmFiZDVhYTcyMTQ1M2RlN2RlNzM3OTc0OWY4ODBhMTc0YzUx
YS4uMTJhOWEwNmMyYTA1ZWFiOWQzNTFmOWYzNjM4MGNiYTYyMTNmZjYzZSAxMDA2NDQKLS0tIGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3YzLW1vZGVscy5qcworKysgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvdjMtbW9kZWxzLmpzCkBAIC0zNyw2ICszNyw3
IEBAIGltcG9ydEZyb21WMygnbW9kZWxzL3Rlc3QtZ3JvdXAuanMnLCAnVGVzdEdyb3VwJyk7CiBp
bXBvcnRGcm9tVjMoJ21vZGVscy90aW1lLXNlcmllcy5qcycsICdUaW1lU2VyaWVzJyk7CiBpbXBv
cnRGcm9tVjMoJ21vZGVscy90cmlnZ2VyYWJsZS5qcycsICdUcmlnZ2VyYWJsZScpOwogaW1wb3J0
RnJvbVYzKCdtb2RlbHMvdHJpZ2dlcmFibGUuanMnLCAnVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3Jv
dXAnKTsKK2ltcG9ydEZyb21WMygnbW9kZWxzL3RyaWdnZXJhYmxlLmpzJywgJ1RyaWdnZXJhYmxl
Q29uZmlndXJhdGlvbicpOwogaW1wb3J0RnJvbVYzKCdtb2RlbHMvdXBsb2FkZWQtZmlsZS5qcycs
ICdVcGxvYWRlZEZpbGUnKTsKIAogaW1wb3J0RnJvbVYzKCdpbnN0cnVtZW50YXRpb24uanMnLCAn
SW5zdHJ1bWVudGF0aW9uJyk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
dW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMKaW5kZXggMDM0MmFjMDFh
NGFmNWRiY2MxNTY5NjIyYTJkYjFkNjVhN2MyNjI3My4uMmQ0YTI5YTI0MGQ5ZGY5ZWRiNjk0ODU0
MTMyYjE3YWM0ZmJhNmQ0NiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Vu
aXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy91bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qcwpAQCAtNDQsMjMgKzQ0
LDQwIEBAIGZ1bmN0aW9uIHNhbXBsZWlPU0NvbmZpZygpCiAgICAgICAgICAgICAgICAgJ2J1aWxk
ZXInOiAnQUJUZXN0LWlQaG9uZS1SdW5CZW5jaG1hcmstVGVzdHMnLAogICAgICAgICAgICAgICAg
ICdwcm9wZXJ0aWVzJzogeydmb3JjZXNjaGVkdWxlcic6ICdBQlRlc3QtaVBob25lLVJ1bkJlbmNo
bWFyay1UZXN0cy1Gb3JjZVNjaGVkdWxlcid9LAogICAgICAgICAgICAgICAgICd3b3JrZXJMaXN0
JzogWydBQlRlc3QtaVBob25lLTAnXSwKKyAgICAgICAgICAgICAgICAnc3VwcG9ydGVkUmVwZXRp
dGlvblR5cGVzJzogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ10KICAgICAgICAgICAgIH0s
CiAgICAgICAgICAgICAnaVBhZC1iZW5jaCc6IHsKICAgICAgICAgICAgICAgICAnYnVpbGRlcic6
ICdBQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMnLAogICAgICAgICAgICAgICAgICdwcm9w
ZXJ0aWVzJzogeydmb3JjZXNjaGVkdWxlcic6ICdBQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVz
dHMtRm9yY2VTY2hlZHVsZXInfSwKICAgICAgICAgICAgICAgICAnd29ya2VyTGlzdCc6IFsnQUJU
ZXN0LWlQYWQtMCcsICdBQlRlc3QtaVBhZC0xJ10sCisgICAgICAgICAgICAgICAgJ3N1cHBvcnRl
ZFJlcGV0aXRpb25UeXBlcyc6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddCiAgICAgICAg
ICAgICB9LAogICAgICAgICAgICAgJ2lPUy1idWlsZGVyJzogewogICAgICAgICAgICAgICAgICdi
dWlsZGVyJzogJ0FCVGVzdC1pT1MtQnVpbGRlcicsCiAgICAgICAgICAgICAgICAgJ3Byb3BlcnRp
ZXMnOiB7J2ZvcmNlc2NoZWR1bGVyJzogJ0FCVGVzdC1CdWlsZGVyLUZvcmNlU2NoZWR1bGVyJ30s
CisgICAgICAgICAgICAgICAgJ3N1cHBvcnRlZFJlcGV0aXRpb25UeXBlcyc6IFsnYWx0ZXJuYXRp
bmcnLCAnc2VxdWVudGlhbCcsICdwYWlyZWQtcGFyYWxsZWwnXQogICAgICAgICAgICAgfSwKICAg
ICAgICAgfSwKICAgICAgICAgJ2J1aWxkQ29uZmlndXJhdGlvbnMnOiBbCi0gICAgICAgICAgICB7
J2J1aWxkZXJzJzogWydpT1MtYnVpbGRlciddLCAncGxhdGZvcm1zJzogWydpUGhvbmUnLCAnaVBh
ZCddfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnYnVpbGRlcnMnOiBbJ2lPUy1i
dWlsZGVyJ10sCisgICAgICAgICAgICAgICAgJ3BsYXRmb3Jtcyc6IFsnaVBob25lJywgJ2lQYWQn
XSwKKyAgICAgICAgICAgICAgICAnc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzJzogWydhbHRlcm5h
dGluZycsICdzZXF1ZW50aWFsJywgJ3BhaXJlZC1wYXJhbGxlbCddCisgICAgICAgICAgICB9LAog
ICAgICAgICBdLAogICAgICAgICAndGVzdENvbmZpZ3VyYXRpb25zJzogWwotICAgICAgICAgICAg
eydidWlsZGVycyc6IFsnaVBob25lLWJlbmNoJ10sICd0eXBlcyc6IFsnc3BlZWRvbWV0ZXInLCAn
amV0c3RyZWFtJywgJ2Ryb21hZW8tZG9tJ10sICdwbGF0Zm9ybXMnOiBbJ2lQaG9uZSddfSwKLSAg
ICAgICAgICAgIHsnYnVpbGRlcnMnOiBbJ2lQYWQtYmVuY2gnXSwgJ3R5cGVzJzogWydzcGVlZG9t
ZXRlcicsICdqZXRzdHJlYW0nXSwgJ3BsYXRmb3Jtcyc6IFsnaVBhZCddfSwKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAnYnVpbGRlcnMnOiBbJ2lQaG9uZS1iZW5jaCddLAorICAgICAg
ICAgICAgICAgICd0eXBlcyc6IFsnc3BlZWRvbWV0ZXInLCAnamV0c3RyZWFtJywgJ2Ryb21hZW8t
ZG9tJ10sCisgICAgICAgICAgICAgICAgJ3BsYXRmb3Jtcyc6IFsnaVBob25lJ10sCisgICAgICAg
ICAgICAgICAgJ3N1cHBvcnRlZFJlcGV0aXRpb25UeXBlcyc6IFsnYWx0ZXJuYXRpbmcnLCAnc2Vx
dWVudGlhbCddCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICdidWlsZGVycyc6IFsnaVBhZC1iZW5jaCddLAorICAgICAgICAgICAgICAgICd0eXBlcyc6IFsn
c3BlZWRvbWV0ZXInLCAnamV0c3RyZWFtJ10sCisgICAgICAgICAgICAgICAgJ3BsYXRmb3Jtcyc6
IFsnaVBhZCddLAorICAgICAgICAgICAgICAgICdzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMnOiBb
J2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnLCAncGFpcmVkLXBhcmFsbGVsJ10KKyAgICAgICAg
ICAgIH0sCiAgICAgICAgIF0KICAgICB9OwogfQpAQCAtODksMTQgKzEwNiwxNyBAQCBmdW5jdGlv
biBzYW1wbGVpT1NDb25maWdXaXRoRXhwYW5zaW9ucygpCiAgICAgICAgICAgICAiaXBob25lIjog
ewogICAgICAgICAgICAgICAgICJidWlsZGVyIjogImlQaG9uZSBBQiBUZXN0cyIsCiAgICAgICAg
ICAgICAgICAgInByb3BlcnRpZXMiOiB7ImZvcmNlc2NoZWR1bGVyIjogImZvcmNlLWlwaG9uZS1h
Yi10ZXN0cyJ9LAorICAgICAgICAgICAgICAgICdzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMnOiBb
J2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXQogICAgICAgICAgICAgfSwKICAgICAgICAgICAg
ICJpcGhvbmUtMiI6IHsKICAgICAgICAgICAgICAgICAiYnVpbGRlciI6ICJpUGhvbmUgMiBBQiBU
ZXN0cyIsCiAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7ImZvcmNlc2NoZWR1bGVyIjog
ImZvcmNlLWlwaG9uZS0yLWFiLXRlc3RzIn0sCisgICAgICAgICAgICAgICAgJ3N1cHBvcnRlZFJl
cGV0aXRpb25UeXBlcyc6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddCiAgICAgICAgICAg
ICB9LAogICAgICAgICAgICAgImlwYWQiOiB7CiAgICAgICAgICAgICAgICAgImJ1aWxkZXIiOiAi
aVBhZCBBQiBUZXN0cyIsCiAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7ImZvcmNlc2No
ZWR1bGVyIjogImZvcmNlLWlwYWQtYWItdGVzdHMifSwKKyAgICAgICAgICAgICAgICAnc3VwcG9y
dGVkUmVwZXRpdGlvblR5cGVzJzogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ10KICAgICAg
ICAgICAgIH0sCiAgICAgICAgIH0sCiAgICAgICAgICJ0ZXN0Q29uZmlndXJhdGlvbnMiOiBbCkBA
IC0xMDQsMTEgKzEyNCwxMyBAQCBmdW5jdGlvbiBzYW1wbGVpT1NDb25maWdXaXRoRXhwYW5zaW9u
cygpCiAgICAgICAgICAgICAgICAgImJ1aWxkZXJzIjogWyJpcGhvbmUiLCAiaXBob25lLTIiXSwK
ICAgICAgICAgICAgICAgICAicGxhdGZvcm1zIjogWyJpUGhvbmUiLCAiaU9TIDEwIGlQaG9uZSJd
LAogICAgICAgICAgICAgICAgICJ0eXBlcyI6IFsiaXBob25lLXBsdCIsICJzcGVlZG9tZXRlciJd
LAorICAgICAgICAgICAgICAgICdzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMnOiBbJ2FsdGVybmF0
aW5nJywgJ3NlcXVlbnRpYWwnXQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAiYnVpbGRlcnMiOiBbImlwYWQiXSwKICAgICAgICAgICAgICAgICAicGxhdGZv
cm1zIjogWyJpUGFkIl0sCiAgICAgICAgICAgICAgICAgInR5cGVzIjogWyJpcGFkLXBsdCIsICJz
cGVlZG9tZXRlciJdLAorICAgICAgICAgICAgICAgICdzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMn
OiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXQogICAgICAgICAgICAgfSwKICAgICAgICAg
XQogICAgIH0KQEAgLTEzNSwxMiArMTU3LDQ4IEBAIGZ1bmN0aW9uIHNtYWxsQ29uZmlndXJhdGlv
bigpCiAgICAgICAgICdidWlsZGVycyc6IHsKICAgICAgICAgICAgICdzb21lLWJ1aWxkZXInOiB7
CiAgICAgICAgICAgICAgICAgJ2J1aWxkZXInOiAnc29tZSBidWlsZGVyJywKLSAgICAgICAgICAg
ICAgICAncHJvcGVydGllcyc6IHsnZm9yY2VzY2hlZHVsZXInOiAnc29tZS1idWlsZGVyLUZvcmNl
U2NoZWR1bGVyJ30KKyAgICAgICAgICAgICAgICAncHJvcGVydGllcyc6IHsnZm9yY2VzY2hlZHVs
ZXInOiAnc29tZS1idWlsZGVyLUZvcmNlU2NoZWR1bGVyJ30sCisgICAgICAgICAgICAgICAgJ3N1
cHBvcnRlZFJlcGV0aXRpb25UeXBlcyc6IFsiYWx0ZXJuYXRpbmciLCAic2VxdWVudGlhbCJdCisg
ICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgICd0ZXN0Q29uZmlndXJhdGlvbnMnOiBb
eworICAgICAgICAgICAgJ2J1aWxkZXJzJzogWydzb21lLWJ1aWxkZXInXSwKKyAgICAgICAgICAg
ICdwbGF0Zm9ybXMnOiBbJ1NvbWUgcGxhdGZvcm0nXSwKKyAgICAgICAgICAgICd0eXBlcyc6IFsn
c29tZS10ZXN0J10sCisgICAgICAgICAgICAnc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzJzogWyJh
bHRlcm5hdGluZyIsICJzZXF1ZW50aWFsIl0KKyAgICAgICAgfV0KKyAgICB9OworfQorCitmdW5j
dGlvbiBzbWFsbENvbmZpZ3VyYXRpb25XaXRoQ3VzdG9tUmVwZXRpdGlvblR5cGVzKCkKK3sKKyAg
ICByZXR1cm4geworICAgICAgICAnYnVpbGRSZXF1ZXN0QXJndW1lbnQnOiAnaWQnLAorICAgICAg
ICAncmVwb3NpdG9yeUdyb3Vwcyc6IHsKKyAgICAgICAgICAgICdpb3Mtc3ZuLXdlYmtpdCc6IHsK
KyAgICAgICAgICAgICAgICAncmVwb3NpdG9yaWVzJzogeydpT1MnOiB7fSwgJ1dlYktpdCc6IHt9
fSwKKyAgICAgICAgICAgICAgICAndGVzdFByb3BlcnRpZXMnOiB7CisgICAgICAgICAgICAgICAg
ICAgICdvcyc6IHsncmV2aXNpb24nOiAnaU9TJ30sCisgICAgICAgICAgICAgICAgICAgICd3ayc6
IHsncmV2aXNpb24nOiAnV2ViS2l0J30KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
CisgICAgICAgIH0sCisgICAgICAgICd0eXBlcyc6IHsKKyAgICAgICAgICAgICdzb21lLXRlc3Qn
OiB7CisgICAgICAgICAgICAgICAgJ3Rlc3QnOiBbJ1NvbWUgdGVzdCddLAorICAgICAgICAgICAg
fQorICAgICAgICB9LAorICAgICAgICAnYnVpbGRlcnMnOiB7CisgICAgICAgICAgICAnc29tZS1i
dWlsZGVyJzogeworICAgICAgICAgICAgICAgICdidWlsZGVyJzogJ3NvbWUgYnVpbGRlcicsCisg
ICAgICAgICAgICAgICAgJ3Byb3BlcnRpZXMnOiB7J2ZvcmNlc2NoZWR1bGVyJzogJ3NvbWUtYnVp
bGRlci1Gb3JjZVNjaGVkdWxlcid9LAorICAgICAgICAgICAgICAgICdzdXBwb3J0ZWRSZXBldGl0
aW9uVHlwZXMnOiBbJ3NlcXVlbnRpYWwnLCAncGFpcmVkLXBhcmFsbGVsJ10sCiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0sCiAgICAgICAgICd0ZXN0Q29uZmlndXJhdGlvbnMnOiBbewogICAgICAg
ICAgICAgJ2J1aWxkZXJzJzogWydzb21lLWJ1aWxkZXInXSwKICAgICAgICAgICAgICdwbGF0Zm9y
bXMnOiBbJ1NvbWUgcGxhdGZvcm0nXSwKKyAgICAgICAgICAgICdzdXBwb3J0ZWRSZXBldGl0aW9u
VHlwZXMnOiBbJ3NlcXVlbnRpYWwnLCAncGFpcmVkLXBhcmFsbGVsJ10sCiAgICAgICAgICAgICAn
dHlwZXMnOiBbJ3NvbWUtdGVzdCddLAogICAgICAgICB9XQogICAgIH07CkBAIC0xODQsMTAgKzI0
MiwxMiBAQCBmdW5jdGlvbiBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QocGxhdGZvcm0sIHRlc3Qp
CiAgICAgY29uc3QgaW9zMTNBNDUyID0gQ29tbWl0TG9nLmVuc3VyZVNpbmdsZXRvbignODg5MzAn
LCB7J2lkJzogJzg4OTMwJywgJ3RpbWUnOiAwLCAncmVwb3NpdG9yeSc6IE1vY2tNb2RlbHMuaW9z
LCAncmV2aXNpb24nOiAnMTNBNDUyJ30pOwogCiAgICAgY29uc3QgY29tbWl0U2V0ID0gQ29tbWl0
U2V0LmVuc3VyZVNpbmdsZXRvbignNDE5NycsIHtjdXN0b21Sb290czogW10sIHJldmlzaW9uSXRl
bXM6IFt7Y29tbWl0OiB3ZWJraXQxOTc0NjN9LCB7Y29tbWl0OiBzaGFyZWQxMTEyMzd9LCB7Y29t
bWl0OiBpb3MxM0E0NTJ9XX0pOworICAgIGNvbnN0IHRlc3RHcm91cCA9IFRlc3RHcm91cC5lbnN1
cmVTaW5nbGV0b24oJzEyMycsIHt0YXNrOiAnMTIzJywgY3JlYXRlZEF0OiAxNDU2OTMxODc0MDAw
LCBoaWRkZW46IGZhbHNlLCBuZWVkc05vdGlmaWNhdGlvbjogdHJ1ZSwgbWF5TmVlZE1vcmVSZXF1
ZXN0czogZmFsc2UsCisgICAgICAgIGluaXRpYWxSZXBldGl0aW9uQ291bnQ6IDMsIHJlcGV0aXRp
b25UeXBlOiAnYWx0ZXJuYXRpbmcnfSkKIAogICAgIHJldHVybiBCdWlsZFJlcXVlc3QuZW5zdXJl
U2luZ2xldG9uKCcxNjczMy0nICsgcGxhdGZvcm0uaWQoKSwgeyd0cmlnZ2VyYWJsZSc6IE1vY2tN
b2RlbHMudHJpZ2dlcmFibGUsCiAgICAgICAgIHJlcG9zaXRvcnlHcm91cDogTW9ja01vZGVscy5z
dm5SZXBvc2l0b3J5R3JvdXAsCi0gICAgICAgICdjb21taXRTZXQnOiBjb21taXRTZXQsICdzdGF0
dXMnOiAncGVuZGluZycsICdwbGF0Zm9ybSc6IHBsYXRmb3JtLCAndGVzdCc6IHRlc3QsIG9yZGVy
OiAwfSk7CisgICAgICAgICdjb21taXRTZXQnOiBjb21taXRTZXQsICdzdGF0dXMnOiAncGVuZGlu
ZycsICdwbGF0Zm9ybSc6IHBsYXRmb3JtLCAndGVzdCc6IHRlc3QsIG9yZGVyOiAwLCB0ZXN0R3Jv
dXAsIHRlc3RHcm91cElkOiB0ZXN0R3JvdXAuaWQoKX0pOwogfQogCiBmdW5jdGlvbiBjcmVhdGVT
YW1wbGVCdWlsZFJlcXVlc3RXaXRoUGF0Y2gocGxhdGZvcm0sIHRlc3QsIG9yZGVyKQpAQCAtNTA4
LDMyICs1NjgsNDIgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogCiAgICAg
ICAgICAgICBsZXQgY29uZmlndXJhdGlvbnMgPSBzeW5jZXJzWzBdLnRlc3RDb25maWd1cmF0aW9u
cygpOwogICAgICAgICAgICAgYXNzZXJ0KHN5bmNlcnNbMF0uaXNUZXN0ZXIoKSk7CisgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHN5bmNlcnNbMF0uX2J1aWxkZXJTdXBwb3J0ZWRSZXBldGl0
aW9uVHlwZXMsIFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddKTsKICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb25maWd1cmF0aW9ucy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbmZpZ3VyYXRpb25zWzBdLnBsYXRmb3JtLCBNb2NrTW9kZWxzLmlwaG9uZSk7CiAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmlndXJhdGlvbnNbMF0udGVzdCwgTW9ja01vZGVs
cy5zcGVlZG9tZXRlcik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbmZpZ3VyYXRp
b25zWzBdLnN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcywgWydhbHRlcm5hdGluZycsICdzZXF1ZW50
aWFsJ10pOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3VyYXRpb25zWzFdLnBsYXRm
b3JtLCBNb2NrTW9kZWxzLmlwaG9uZSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmln
dXJhdGlvbnNbMV0udGVzdCwgTW9ja01vZGVscy5qZXRzdHJlYW0pOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChjb25maWd1cmF0aW9uc1sxXS5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMs
IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChjb25maWd1cmF0aW9uc1syXS5wbGF0Zm9ybSwgTW9ja01vZGVscy5pcGhvbmUpOwogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3VyYXRpb25zWzJdLnRlc3QsIE1vY2tNb2RlbHMuZG9t
Y29yZSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbmZpZ3VyYXRpb25zWzJdLnN1
cHBvcnRlZFJlcGV0aXRpb25UeXBlcywgWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ10pOwog
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzeW5jZXJzWzBdLmJ1aWxkQ29uZmlndXJhdGlv
bnMoKSwgW10pOwogCiAgICAgICAgICAgICBjb25maWd1cmF0aW9ucyA9IHN5bmNlcnNbMV0udGVz
dENvbmZpZ3VyYXRpb25zKCk7CiAgICAgICAgICAgICBhc3NlcnQoc3luY2Vyc1sxXS5pc1Rlc3Rl
cigpKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc3luY2Vyc1sxXS5fYnVpbGRlclN1
cHBvcnRlZFJlcGV0aXRpb25UeXBlcywgWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ10pOwog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3VyYXRpb25zLmxlbmd0aCwgMik7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmlndXJhdGlvbnNbMF0ucGxhdGZvcm0sIE1vY2tNb2Rl
bHMuaXBhZCk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmlndXJhdGlvbnNbMF0udGVz
dCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KGNvbmZpZ3VyYXRpb25zWzBdLnN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcywgWydhbHRlcm5hdGlu
ZycsICdzZXF1ZW50aWFsJywgJ3BhaXJlZC1wYXJhbGxlbCddKTsKICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChjb25maWd1cmF0aW9uc1sxXS5wbGF0Zm9ybSwgTW9ja01vZGVscy5pcGFkKTsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWd1cmF0aW9uc1sxXS50ZXN0LCBNb2NrTW9kZWxz
LmpldHN0cmVhbSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbmZpZ3VyYXRpb25z
WzFdLnN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcywgWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFs
JywgJ3BhaXJlZC1wYXJhbGxlbCddKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc3lu
Y2Vyc1sxXS5idWlsZENvbmZpZ3VyYXRpb25zKCksIFtdKTsKIAogICAgICAgICAgICAgYXNzZXJ0
KCFzeW5jZXJzWzJdLmlzVGVzdGVyKCkpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChz
eW5jZXJzWzJdLl9idWlsZGVyU3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzLCBbJ2FsdGVybmF0aW5n
JywgJ3NlcXVlbnRpYWwnLCAncGFpcmVkLXBhcmFsbGVsJ10pOwogICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChzeW5jZXJzWzJdLnRlc3RDb25maWd1cmF0aW9ucygpLCBbXSk7CiAgICAgICAg
ICAgICBjb25maWd1cmF0aW9ucyA9IHN5bmNlcnNbMl0uYnVpbGRDb25maWd1cmF0aW9ucygpOwog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3VyYXRpb25zLmxlbmd0aCwgMik7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmlndXJhdGlvbnNbMF0ucGxhdGZvcm0sIE1vY2tNb2Rl
bHMuaXBob25lKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWd1cmF0aW9uc1swXS50
ZXN0LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoY29uZmlndXJhdGlvbnNb
MF0uc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzLCBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwn
LCAncGFpcmVkLXBhcmFsbGVsJ10pOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3Vy
YXRpb25zWzFdLnBsYXRmb3JtLCBNb2NrTW9kZWxzLmlwYWQpOwogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGNvbmZpZ3VyYXRpb25zWzFdLnRlc3QsIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChjb25maWd1cmF0aW9uc1sxXS5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMsIFsn
YWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCcsICdwYWlyZWQtcGFyYWxsZWwnXSk7CiAgICAgICAg
IH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgdGhyb3cgd2hlbiBhIGJ1aWxkIGNvbmZpZ3VyYXRp
b24gdXNlIHRoZSBzYW1lIGJ1aWxkZXIgYXMgYSB0ZXN0IGNvbmZpZ3VyYXRpb24nLCAoKSA9PiB7
CkBAIC0xMTAwLDcgKzExNzAsNiBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCi0KICAgICBkZXNjcmliZSgnQnVpbGRib3RCdWlsZEVu
dHJ5JywgKCkgPT4gewogICAgICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBCdWlsZGJvdEJ1aWxkRW50
cnkgZm9yIHBlbmRpbmcgYnVpbGQnLCAoKSA9PiB7CiAgICAgICAgICAgICBsZXQgc3luY2VyID0g
QnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmln
KCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKQEAgLTE3MzIsNSArMTgwMSwxMyBAQCBkZXNj
cmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CisK
KyAgICAgICAgaXQoJ3Nob3VsZCBub3Qgc2NoZWR1bGUgYSBidWlsZCByZXF1ZXN0IGlmIHJlcGV0
aXRpb24gdHlwZSBpZiBub3Qgc3VwcG9ydGVkIGJ5IGJ1aWxkYm90IHN5bmNlcicsIGFzeW5jICgp
ID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKE1vY2tSZW1vdGVBUEksIHNtYWxsQ29uZmlndXJhdGlvbldpdGhDdXN0b21SZXBldGl0aW9u
VHlwZXMoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzBdOworICAgICAgICAgICAgYXdhaXQgcHVs
bEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIHt9LCB7fSk7CisgICAgICAgICAgICBsZXQg
cmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLnNvbWVQbGF0Zm9y
bSwgTW9ja01vZGVscy5zb21lVGVzdCk7CisgICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1
ZXN0SW5Hcm91cElmQXZhaWxhYmxlKHJlcXVlc3QsIFtyZXF1ZXN0XSwgbnVsbCk7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAwKTsKKyAgICAgICAgfSk7CiAgICAg
fSk7CiB9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3Rz
L21lYXN1cmVtZW50LXNldC1hbmFseXplci10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy91bml0LXRlc3RzL21lYXN1cmVtZW50LXNldC1hbmFseXplci10ZXN0cy5qcwppbmRleCAw
OTA3YTBiMDE2YTA1MTQ4MzQ3ZGNiM2Y0NzdlMmE5MjU5OGFhZmJiLi4wZWQ0MjMzMWYwOTFkOTQy
ODZlNThkMjFiN2NkMTA1ZDQ2ZTQzOWU3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdW5pdC10ZXN0cy9tZWFzdXJlbWVudC1zZXQtYW5hbHl6ZXItdGVzdHMuanMKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvbWVhc3VyZW1lbnQtc2V0LWFuYWx5
emVyLXRlc3RzLmpzCkBAIC0xOTEsNyArMTkxLDggQEAgZGVzY3JpYmUoJ01lYXN1cmVtZW50U2V0
QW5hbHl6ZXInLCAoKSA9PiB7CiAKICAgICAgICAgICAgIFRyaWdnZXJhYmxlLmVuc3VyZVNpbmds
ZXRvbig0LCB7bmFtZTogJ3NvbWUtdHJpZ2dlcmFibGUnLAogICAgICAgICAgICAgICAgIHJlcG9z
aXRvcnlHcm91cHM6IFtNb2NrTW9kZWxzLm9zUmVwb3NpdG9yeUdyb3VwLCBNb2NrTW9kZWxzLnN2
blJlcG9zaXRvcnlHcm91cCwgTW9ja01vZGVscy5naXRSZXBvc2l0b3J5R3JvdXAsIE1vY2tNb2Rl
bHMuc3ZuUmVwb3NpdG9yeVdpdGhPd25lZFJlcG9zaXRvcnlHcm91cF0sCi0gICAgICAgICAgICAg
ICAgY29uZmlndXJhdGlvbnM6IFt7dGVzdDogTW9ja01vZGVscy5zb21lTWV0cmljLnRlc3QoKSwg
cGxhdGZvcm06IE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtfV19KTsKKyAgICAgICAgICAgICAgICBj
b25maWd1cmF0aW9uczogW3t0ZXN0OiBNb2NrTW9kZWxzLnNvbWVNZXRyaWMudGVzdCgpLCBwbGF0
Zm9ybTogTW9ja01vZGVscy5zb21lUGxhdGZvcm0sCisgICAgICAgICAgICAgICAgICAgIHN1cHBv
cnRlZFJlcGV0aXRpb25UeXBlczogTW9ja01vZGVscy5zb21lVHJpZ2dhYmxlQ29uZmlndXJhdGlv
bi5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXN9XX0pOwogCiAgICAgICAgICAgICBjb25zdCBtZWFz
dXJlbWVudFNldCA9IE1lYXN1cmVtZW50U2V0LmZpbmRTZXQoTW9ja01vZGVscy5zb21lUGxhdGZv
cm0uaWQoKSwgTW9ja01vZGVscy5zb21lTWV0cmljLmlkKCksIDUwMDApOwogICAgICAgICAgICAg
Y29uc3QgbG9nZ2VyID0gbW9ja0xvZ2dlcigpOwpAQCAtMjUxLDcgKzI1Miw4IEBAIGRlc2NyaWJl
KCdNZWFzdXJlbWVudFNldEFuYWx5emVyJywgKCkgPT4gewogCiAgICAgICAgICAgICBUcmlnZ2Vy
YWJsZS5lbnN1cmVTaW5nbGV0b24oNCwge25hbWU6ICdzb21lLXRyaWdnZXJhYmxlJywKICAgICAg
ICAgICAgICAgICByZXBvc2l0b3J5R3JvdXBzOiBbTW9ja01vZGVscy5vc1JlcG9zaXRvcnlHcm91
cCwgTW9ja01vZGVscy5zdm5SZXBvc2l0b3J5R3JvdXAsIE1vY2tNb2RlbHMuZ2l0UmVwb3NpdG9y
eUdyb3VwLCBNb2NrTW9kZWxzLnN2blJlcG9zaXRvcnlXaXRoT3duZWRSZXBvc2l0b3J5R3JvdXBd
LAotICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25zOiBbe3Rlc3Q6IE1vY2tNb2RlbHMuc29t
ZU1ldHJpYy50ZXN0KCksIHBsYXRmb3JtOiBNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybX1dfSk7Cisg
ICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbnM6IFt7dGVzdDogTW9ja01vZGVscy5zb21lTWV0
cmljLnRlc3QoKSwgcGxhdGZvcm06IE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLAorICAgICAgICAg
ICAgICAgICAgICBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IE1vY2tNb2RlbHMuc29tZVRyaWdn
YWJsZUNvbmZpZ3VyYXRpb24uc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzfV19KTsKIAogICAgICAg
ICAgICAgY29uc3QgbWVhc3VyZW1lbnRTZXQgPSBNZWFzdXJlbWVudFNldC5maW5kU2V0KE1vY2tN
b2RlbHMuc29tZVBsYXRmb3JtLmlkKCksIE1vY2tNb2RlbHMuc29tZU1ldHJpYy5pZCgpLCA1MDAw
KTsKICAgICAgICAgICAgIGNvbnN0IGxvZ2dlciA9IG1vY2tMb2dnZXIoKTsKQEAgLTQ4NCw3ICs0
ODYsOCBAQCBkZXNjcmliZSgnTWVhc3VyZW1lbnRTZXRBbmFseXplcicsICgpID0+IHsKIAogICAg
ICAgICAgICAgVHJpZ2dlcmFibGUuZW5zdXJlU2luZ2xldG9uKDQsIHtuYW1lOiAnc29tZS10cmln
Z2VyYWJsZScsCiAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeUdyb3VwczogW01vY2tNb2RlbHMu
b3NSZXBvc2l0b3J5R3JvdXAsIE1vY2tNb2RlbHMuc3ZuUmVwb3NpdG9yeUdyb3VwLCBNb2NrTW9k
ZWxzLmdpdFJlcG9zaXRvcnlHcm91cCwgTW9ja01vZGVscy5zdm5SZXBvc2l0b3J5V2l0aE93bmVk
UmVwb3NpdG9yeUdyb3VwXSwKLSAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uczogW3t0ZXN0
OiBNb2NrTW9kZWxzLnNvbWVNZXRyaWMudGVzdCgpLCBwbGF0Zm9ybTogTW9ja01vZGVscy5zb21l
UGxhdGZvcm19XX0pOworICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25zOiBbe3Rlc3Q6IE1v
Y2tNb2RlbHMuc29tZU1ldHJpYy50ZXN0KCksIHBsYXRmb3JtOiBNb2NrTW9kZWxzLnNvbWVQbGF0
Zm9ybSwKKyAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBNb2Nr
TW9kZWxzLnNvbWVUcmlnZ2FibGVDb25maWd1cmF0aW9uLnN1cHBvcnRlZFJlcGV0aXRpb25UeXBl
c31dfSk7CiAKICAgICAgICAgICAgIGNvbnN0IG1lYXN1cmVtZW50U2V0ID0gTWVhc3VyZW1lbnRT
ZXQuZmluZFNldChNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybS5pZCgpLCBNb2NrTW9kZWxzLnNvbWVN
ZXRyaWMuaWQoKSwgNTAwMCk7CiAgICAgICAgICAgICBjb25zdCBsb2dnZXIgPSBtb2NrTG9nZ2Vy
KCk7CkBAIC01NzcsNyArNTgwLDggQEAgZGVzY3JpYmUoJ01lYXN1cmVtZW50U2V0QW5hbHl6ZXIn
LCAoKSA9PiB7CiAKICAgICAgICAgICAgIFRyaWdnZXJhYmxlLmVuc3VyZVNpbmdsZXRvbig0LCB7
bmFtZTogJ3NvbWUtdHJpZ2dlcmFibGUnLAogICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlHcm91
cHM6IFtNb2NrTW9kZWxzLm9zUmVwb3NpdG9yeUdyb3VwLCBNb2NrTW9kZWxzLnN2blJlcG9zaXRv
cnlHcm91cCwgTW9ja01vZGVscy5naXRSZXBvc2l0b3J5R3JvdXAsIE1vY2tNb2RlbHMuc3ZuUmVw
b3NpdG9yeVdpdGhPd25lZFJlcG9zaXRvcnlHcm91cF0sCi0gICAgICAgICAgICAgICAgY29uZmln
dXJhdGlvbnM6IFt7dGVzdDogTW9ja01vZGVscy5zb21lTWV0cmljLnRlc3QoKSwgcGxhdGZvcm06
IE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtfV19KTsKKyAgICAgICAgICAgICAgICBjb25maWd1cmF0
aW9uczogW3t0ZXN0OiBNb2NrTW9kZWxzLnNvbWVNZXRyaWMudGVzdCgpLCBwbGF0Zm9ybTogTW9j
a01vZGVscy5zb21lUGxhdGZvcm0sCisgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZFJlcGV0
aXRpb25UeXBlczogTW9ja01vZGVscy5zb21lVHJpZ2dhYmxlQ29uZmlndXJhdGlvbi5zdXBwb3J0
ZWRSZXBldGl0aW9uVHlwZXN9XX0pOwogCiAgICAgICAgICAgICBjb25zdCBtZWFzdXJlbWVudFNl
dCA9IE1lYXN1cmVtZW50U2V0LmZpbmRTZXQoTW9ja01vZGVscy5zb21lUGxhdGZvcm0uaWQoKSwg
TW9ja01vZGVscy5zb21lTWV0cmljLmlkKCksIDUwMDApOwogICAgICAgICAgICAgY29uc3QgbG9n
Z2VyID0gbW9ja0xvZ2dlcigpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3VuaXQtdGVzdHMvcmVzb3VyY2VzL21vY2stdjMtbW9kZWxzLmpzIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3VuaXQtdGVzdHMvcmVzb3VyY2VzL21vY2stdjMtbW9kZWxzLmpzCmluZGV4IDIz
OGY1ODI0MjdhZTRmNzg4ODZiNWRiYjQ4Mzk5Nzk5MDJlNjM5OTIuLmFmZDBkN2FlMzM0N2M5NWFi
MzRhYzAwNzk3ODU1MzdkOWJhNGQ3ZTcgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy91bml0LXRlc3RzL3Jlc291cmNlcy9tb2NrLXYzLW1vZGVscy5qcworKysgYi9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9yZXNvdXJjZXMvbW9jay12My1tb2RlbHMuanMK
QEAgLTE0LDYgKzE0LDcgQEAgdmFyIE1vY2tNb2RlbHMgPSB7CiAgICAgICAgICAgICBUZXN0R3Jv
dXAuY2xlYXJTdGF0aWNNYXAoKTsKICAgICAgICAgICAgIEJ1aWxkUmVxdWVzdC5jbGVhclN0YXRp
Y01hcCgpOwogICAgICAgICAgICAgVHJpZ2dlcmFibGUuY2xlYXJTdGF0aWNNYXAoKTsKKyAgICAg
ICAgICAgIFRyaWdnZXJhYmxlQ29uZmlndXJhdGlvbi5jbGVhclN0YXRpY01hcCgpOwogICAgICAg
ICAgICAgVXBsb2FkZWRGaWxlLmNsZWFyU3RhdGljTWFwKCk7CiAgICAgICAgICAgICBNZWFzdXJl
bWVudFNldC5fc2V0TWFwID0gbnVsbDsKIApAQCAtNzIsOCArNzMsOSBAQCB2YXIgTW9ja01vZGVs
cyA9IHsKICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgTW9ja01vZGVscy50cmlnZ2VyYWJs
ZSA9IG5ldyBUcmlnZ2VyYWJsZSgzLCB7bmFtZTogJ2J1aWxkLXdlYmtpdCcsCiAgICAgICAgICAg
ICAgICAgcmVwb3NpdG9yeUdyb3VwczogW01vY2tNb2RlbHMub3NSZXBvc2l0b3J5R3JvdXAsIE1v
Y2tNb2RlbHMuc3ZuUmVwb3NpdG9yeUdyb3VwLCBNb2NrTW9kZWxzLmdpdFJlcG9zaXRvcnlHcm91
cCwgTW9ja01vZGVscy5zdm5SZXBvc2l0b3J5V2l0aE93bmVkUmVwb3NpdG9yeUdyb3VwLCBNb2Nr
TW9kZWxzLm93bmVyUmVwb3NpdG9yeUdyb3VwXSwKLSAgICAgICAgICAgICAgICBjb25maWd1cmF0
aW9uczogW3t0ZXN0OiBNb2NrTW9kZWxzLmlQaG9uZVBMVCwgcGxhdGZvcm06IE1vY2tNb2RlbHMu
aXBob25lfV19KTsKKyAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uczogW3t0ZXN0OiBNb2Nr
TW9kZWxzLmlQaG9uZVBMVCwgcGxhdGZvcm06IE1vY2tNb2RlbHMuaXBob25lLCBzdXBwb3J0ZWRS
ZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddfV19KTsKIAorICAg
ICAgICAgICAgTW9ja01vZGVscy5zb21lVHJpZ2dhYmxlQ29uZmlndXJhdGlvbiA9IFRyaWdnZXJh
YmxlQ29uZmlndXJhdGlvbi5maW5kQnlUZXN0QW5kUGxhdGZvcm0oTW9ja01vZGVscy5pUGhvbmVQ
TFQsIE1vY2tNb2RlbHMuaXBob25lKTsKICAgICAgICAgfSk7CiAgICAgfQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442903</attachid>
            <date>2021-10-29 22:46:50 -0700</date>
            <delta_ts>2021-11-01 15:27:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229545-20211029224649.patch</filename>
            <type>text/plain</type>
            <size>155547</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0OTY4CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA5M2MyZTNkMmEwOTY2MjNhMDk0YjMyZmQ1OGY4NmE2N2EyMmRjOTQ1Li42MjAzYzU5OGU1
ZWFiMzJhNjhmY2FhYWMwZTJkOGNkOWVkMjJiOWMwIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMjEgQEAKKzIwMjEtMTAtMjAgIERld2VpIFpodSAgPGRld2VpX3po
dUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkICdwYWlyZWQtcGFyYWxsZWwnIHJlcGV0aXRpb24g
dHlwZSBmb3IgQS9CIHRlc3RpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjk1NDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgJ3BhaXJlZC1wYXJhbGxlbCcgcmVwZXRpdGlvbiB0eXBlIGZvciBB
L0IgdGVzdGluZy4KKyAgICAgICAgQWRkICdUcmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24nIG1vZGVs
IHRvIHN0b3JlIHJlcGV0aXRpb24gdHlwZXMgaW5mb3JtYXRpb24gZm9yIGVhY2ggKHBsYXRmb3Jt
LCB0ZXN0KSBwYWlyLgorICAgICAgICBBZGQgbmV3IGNvbXBvbmVudCAncmVwZXRpdGlvbi10eXBl
LXNlbGVjdGlvbicgdG8gdW5pZnkgQS9CIHRlc3RpbmcgVUkgZm9yIHJlcGV0aXRpb24gdHlwZSBz
ZWxlY3Rpb24uCisgICAgICAgIEV4dGVuZCBBL0IgdGVzdGluZyBzeW5jaW5nIHNjcmlwdCB0byB1
cGRhdGUgcmVwZXRpdGlvbiB0eXBlcyBmb3IgZWFjaCB0cmlnZ2VyYWJsZSBjb25maWd1cmF0aW9u
IGFuZCBvbmx5CisgICAgICAgIHNjaGVkdWxlIEEvQiB0ZXN0aW5nIGZvciBidWlsZGVyIHN1cHBv
cnRlZCByZXBldGl0aW9uIHR5cGVzLgorCisgICAgICAgICogYnJvd3Nlci10ZXN0cy9jdXN0b20t
YW5hbHlzaXMtdGFzay1jb25maWd1cmF0b3ItdGVzdHMuanM6IFVwZGF0ZWQgdW5pdCB0ZXN0cyBh
Y2NvcmRpbmdseS4KKyAgICAgICAgKGFzeW5jIGNyZWF0ZUN1c3RvbUFuYWx5c2lzVGFza0NvbmZp
Z3VyYXRvcldpdGhDb250ZXh0KToKKyAgICAgICAgKiBicm93c2VyLXRlc3RzL2N1c3RvbWl6YWJs
ZS10ZXN0LWdyb3VwLWZvcm0tdGVzdHMuanM6IFVwZGF0ZWQgdW5pdCB0ZXN0cyBhY2NvcmRpbmds
eS4KKyAgICAgICAgKGFzeW5jIGNyZWF0ZUN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm1XaXRoQ29u
dGV4dCk6CisgICAgICAgICogYnJvd3Nlci10ZXN0cy90ZXN0LWdyb3VwLWZvcm0tdGVzdHMuanM6
IFVwZGF0ZWQgdW5pdCB0ZXN0cyBhY2NvcmRpbmdseS4KKyAgICAgICAgKGFzeW5jIGNyZWF0ZVRl
c3RHcm91cEZvcm1XaXRoQ29udGV4dCk6CisgICAgICAgICogaW5pdC1kYXRhYmFzZS5zcWw6IEFk
ZGVkICd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMnIHRhYmxlIHRv
IHN0b3JlIHN1cHBvcnRlZAorICAgICAgICByZXBldGl0aW9uIHR5cGVzIGZvciBlYWNoIHRyaWdn
ZXJhYmxlIGNvbmZpZ3VyYXRpb24uCisgICAgICAgIEFkZGVkICdwYWlyZWQtcGFyYWxsZWwnIHJl
cGV0aXRpb24gdHlwZS4KKyAgICAgICAgKiBtaWdyYXRlLWRhdGFiYXNlLnNxbDogVXBkYXRlZCBt
aWdyYXRpb24gc2NyaXB0cy4KKyAgICAgICAgKiBwdWJsaWMvYXBpL3VwZGF0ZS10cmlnZ2VyYWJs
ZS5waHA6IEFkZGVkIGxvZ2ljIHRvIHVwZGF0ZSByZXBldGl0aW9uIHR5cGVzIGZvciBlYWNoIHRp
cmdnZXJhYmxlIGNvbmZpZ3VyYXRpb25zLgorICAgICAgICAqIHB1YmxpYy9pbmNsdWRlL2NvbW1p
dC1zZXRzLWhlbHBlcnMucGhwOiBBZGRlZCBzdXBwb3J0IGZvciAncGFpcmVkLXBhcmFsbGVsJyBy
ZXBldGl0aW9uIHR5cGUuCisgICAgICAgICogcHVibGljL2luY2x1ZGUvanNvbi1oZWFkZXIucGhw
OiBFeHRlbmRlZCAnZmluZF90cmlnZ2VyYWJsZV9mb3JfdGFzaycgdG8gaW5jbHVkZSBzdXBwb3J0
ZWQgcmVwZXRpdGlvbiB0eXBlcyBpbgorICAgICAgICByZXR1cm4gdmFsdWUuCisgICAgICAgICog
cHVibGljL2luY2x1ZGUvbWFuaWZlc3QtZ2VuZXJhdG9yLnBocDogQWRkZWQgbG9naWMgdG8gaW5j
bHVkZSBzdXBwb3J0ZWQgcmVwZXRpdGlvbiB0eXBlcyBpbiBtYW5pZmVzdC4KKyAgICAgICAgKiBw
dWJsaWMvcHJpdmlsZWdlZC1hcGkvYWRkLWJ1aWxkLXJlcXVlc3RzLnBocDogRXh0ZW5kZWQgQVBJ
IHRvIHN1cHBvcnQgJ3BhaXJlZC1wYXJhbGxlbCcgcmVwZXRpdGlvbiB0eXBlLgorICAgICAgICAq
IHB1YmxpYy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzay5waHA6IEV4dGVuZGVk
IEFQSSB0byBzdXBwb3J0ICdwYWlyZWQtcGFyYWxsZWwnIHJlcGV0aXRpb24gdHlwZS4KKyAgICAg
ICAgKiBwdWJsaWMvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAucGhwOiBFeHRlbmRl
ZCBBUEkgdG8gc3VwcG9ydCAncGFpcmVkLXBhcmFsbGVsJyByZXBldGl0aW9uIHR5cGUuCisgICAg
ICAgICogcHVibGljL3YzL2NvbW1pdC1zZXQtcmFuZ2UtYmlzZWN0b3IuanM6CisgICAgICAgIChD
b21taXRTZXRSYW5nZUJpc2VjdG9yLl9jbG9zZXN0Q29tbWl0U2V0c1RvQmlzZWN0aW5nQ29tbWl0
QnlUaW1lKTogRml4IGEgYnVnIHRoYXQgZXJyb3IgaXMgcmFpc2Ugd2hlbiB0aGVyZSBpcworICAg
ICAgICBubyBtaWRkbGUgY29tbWl0IHNldCBpbiBhIHJhbmdlLgorICAgICAgICAqIHB1YmxpYy92
My9jb21wb25lbnRzL2N1c3RvbS1jb25maWd1cmF0aW9uLXRlc3QtZ3JvdXAtZm9ybS5qczogQWRk
ZWQgY29kZSB0byB1cGRhdGUgc3VwcG9ydGVkIHJlcGV0aXRpb24gdHlwZXMKKyAgICAgICAgb24g
dGVzdCBjb25maWcgY2hhbmdlLgorICAgICAgICAoQ3VzdG9tQ29uZmlndXJhdGlvblRlc3RHcm91
cEZvcm0ucHJvdG90eXBlLnN0YXJ0VGVzdGluZyk6CisgICAgICAgIChDdXN0b21Db25maWd1cmF0
aW9uVGVzdEdyb3VwRm9ybS5wcm90b3R5cGUuZGlkQ29uc3RydWN0U2hhZG93VHJlZSk6CisgICAg
ICAgICogcHVibGljL3YzL2NvbXBvbmVudHMvY3VzdG9taXphYmxlLXRlc3QtZ3JvdXAtZm9ybS5q
czoKKyAgICAgICAgKEN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm0ucHJvdG90eXBlLnN0YXJ0VGVz
dGluZyk6CisgICAgICAgICogcHVibGljL3YzL2NvbXBvbmVudHMvcmVwZXRpdGlvbi10eXBlLXNl
bGVjdGlvbi5qczogQWRkZWQgYSBuZXcgbW9kZWwgdGhhdCBzdG9yZXMgcmVwZXRpdGlvbiB0eXBl
cyBpbmZvcm1hdGlvbgorICAgICAgICBmb3IgZWFjaCAocGxhdGZvcm0sIHRlc3QpIHBhaXIuCisg
ICAgICAgIChSZXBldGl0aW9uVHlwZVNlbGVjdGlvbik6CisgICAgICAgIChSZXBldGl0aW9uVHlw
ZVNlbGVjdGlvbi5wcm90b3R5cGUuZGlkQ29uc3RydWN0U2hhZG93VHJlZSk6CisgICAgICAgIChS
ZXBldGl0aW9uVHlwZVNlbGVjdGlvbi5wcm90b3R5cGUuZ2V0IHNlbGVjdGVkUmVwZXRpdGlvblR5
cGUpOgorICAgICAgICAoUmVwZXRpdGlvblR5cGVTZWxlY3Rpb24ucHJvdG90eXBlLnNldCBzZWxl
Y3RlZFJlcGV0aXRpb25UeXBlKToKKyAgICAgICAgKFJlcGV0aXRpb25UeXBlU2VsZWN0aW9uLnBy
b3RvdHlwZS5zZXQgZGlzYWJsZWQpOgorICAgICAgICAoUmVwZXRpdGlvblR5cGVTZWxlY3Rpb24u
cHJvdG90eXBlLnNldFRlc3RBbmRQbGF0Zm9ybSk6CisgICAgICAgIChSZXBldGl0aW9uVHlwZVNl
bGVjdGlvbi5wcm90b3R5cGUubGFiZWxGb3JSZXBldGl0aW9uVHlwZSk6CisgICAgICAgIChSZXBl
dGl0aW9uVHlwZVNlbGVjdGlvbi5wcm90b3R5cGUucmVuZGVyKToKKyAgICAgICAgKFJlcGV0aXRp
b25UeXBlU2VsZWN0aW9uLnByb3RvdHlwZS5fcmVuZGVyUmVwZXRpdGlvblR5cGVMaXN0KToKKyAg
ICAgICAgKFJlcGV0aXRpb25UeXBlU2VsZWN0aW9uLmh0bWxUZW1wbGF0ZSk6CisgICAgICAgICog
cHVibGljL3YzL2NvbXBvbmVudHMvdGVzdC1ncm91cC1mb3JtLmpzOiBBZG9wdCAncmVwZXRpdGlv
bi10eXBlLXNlbGVjdGlvbicuCisgICAgICAgIChUZXN0R3JvdXBGb3JtLnByb3RvdHlwZS5zZXRU
ZXN0QW5kUGxhdGZvcm0pOgorICAgICAgICAoVGVzdEdyb3VwRm9ybS5wcm90b3R5cGUucmVuZGVy
KToKKyAgICAgICAgKFRlc3RHcm91cEZvcm0ucHJvdG90eXBlLnN0YXJ0VGVzdGluZyk6CisgICAg
ICAgICogcHVibGljL3YzL2luZGV4Lmh0bWw6CisgICAgICAgICogcHVibGljL3YzL21vZGVscy9t
YW5pZmVzdC5qczogUGFzcyAnc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzJyBhbmQgJ2lkJyBmb3Ig
VHJpZ2dlcmFibGVDb25maWd1cmF0aW9uLgorICAgICAgICAoTWFuaWZlc3QucmVzZXQpOgorICAg
ICAgICAoTWFuaWZlc3QuX2RpZEZldGNoTWFuaWZlc3QpOgorICAgICAgICAoTWFuaWZlc3QpOgor
ICAgICAgICAqIHB1YmxpYy92My9tb2RlbHMvdGVzdC1ncm91cC5qczogVXBkYXRlZCBsb2dpYyB0
byBzaGFyZSByZXRyeSBsb2dpYyBvZiAnYWx0ZXJuYXRpbmcnIHRlc3QgZ3JvdXAgd2l0aCAncGFp
cmVkLXBhcmFsbGVsJworICAgICAgICB0ZXN0IGdyb3VwLgorICAgICAgICAoVGVzdEdyb3VwLnBy
b3RvdHlwZS5hc3luYyBzY2hlZHVsZU1vcmVSZXF1ZXN0c09yQ2xlYXJGbGFnKToKKyAgICAgICAg
KiBwdWJsaWMvdjMvbW9kZWxzL3RyaWdnZXJhYmxlLmpzOiBBZGRlZCBUcmlnZ2VyYWJsZUNvbmZp
Z3VyYXRpb24gbW9kZWwuCisgICAgICAgIEFkZGVkIGNvZGUgdG8gY3JlYXQgVHJpZ2dlcmFibGVD
b25maWd1cmF0aW9uIGluICdUcmlnZ2VyYWJsZScgY29uc3RydWN0b3IuCisgICAgICAgIChUcmln
Z2VyYWJsZSk6CisgICAgICAgIChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbik6
CisgICAgICAgIChwcm90b3R5cGUuZ2V0IHRyaWdnZXJhYmxlKToKKyAgICAgICAgKHByb3RvdHlw
ZS5nZXQgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzKToKKyAgICAgICAgKGZpbmRCeVRlc3RBbmRQ
bGF0Zm9ybSk6CisgICAgICAgICogcHVibGljL3YzL3BhZ2VzL2FuYWx5c2lzLXRhc2stcGFnZS5q
czogQWRkZWQgY29kZSB0byB1cGRhdGUgcmVwZXRpdGlvbiB0eXBlIGluIHRoZSBVSSBiYXNlZCBv
biAodGVzdCwgcGxhdGZvcm0pIHBhaXIuCisgICAgICAgIChBbmFseXNpc1Rhc2tSZXN1bHRzUGFu
ZS5wcm90b3R5cGUuc2V0VGVzdEdyb3Vwcyk6CisgICAgICAgIChBbmFseXNpc1Rhc2tUZXN0R3Jv
dXBQYW5lLnByb3RvdHlwZS5fcmVuZGVyQ3VycmVudFRlc3RHcm91cCk6CisgICAgICAgIChBbmFs
eXNpc1Rhc2tUZXN0R3JvdXBQYW5lLnByb3RvdHlwZS5fcmVuZGVyVGVzdEdyb3VwRm9ybSk6Cisg
ICAgICAgICogcHVibGljL3YzL3BhZ2VzL2NoYXJ0LXBhbmUuanM6IEFkb3B0ICdyZXBldGl0aW9u
LXR5cGUtc2VsZWN0aW9uJy4KKyAgICAgICAgKENoYXJ0UGFuZS5wcm90b3R5cGUuZGlkQ29uc3Ry
dWN0U2hhZG93VHJlZSk6CisgICAgICAgIChDaGFydFBhbmUucHJvdG90eXBlLmFzeW5jIF9hbmFs
eXplUmFuZ2UpOgorICAgICAgICAoQ2hhcnRQYW5lLnByb3RvdHlwZS5fcmVuZGVyQWN0aW9uVG9v
bGJhcik6CisgICAgICAgICogc2VydmVyLXRlc3RzL2FwaS1tYW5pZmVzdC10ZXN0cy5qczoKKyAg
ICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXVwZGF0ZS10cmlnZ2VyYWJsZS10ZXN0cy5qczogQWRk
ZWQgYW5kIHVwZGF0ZWQgdW5pdCB0ZXN0cy4KKyAgICAgICAgKHVwZGF0ZVdpdGhNYWNXZWJLaXRS
ZXBvc2l0b3J5R3JvdXBzKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvYXBpLXVwbG9hZC1yb290
LXRlc3RzLmpzOiBVcGRhdGVkIHVuaXQgdGVzdHMuCisgICAgICAgICogc2VydmVyLXRlc3RzL3By
aXZpbGVnZWQtYXBpLWFkZC1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qczogQWRkZWQgYW5kIHVwZGF0
ZWQgdW5pdCB0ZXN0cy4KKyAgICAgICAgKGFzeW5jIGFkZFRyaWdnZXJhYmxlQW5kQ3JlYXRlVGFz
ayk6CisgICAgICAgICogc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS1hbmFseXNp
cy10YXNrLXRlc3RzLmpzOiBBZGRlZCBhbmQgdXBkYXRlZCB1bml0IHRlc3RzLgorICAgICAgICAq
IHNlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtdGVzdC1ncm91cC10ZXN0cy5qczog
QWRkZWQgYW5kIHVwZGF0ZWQgdW5pdCB0ZXN0cy4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcHJp
dmlsZWdlZC1hcGktdXBkYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanM6IFVwZGF0ZWQgdW5pdCB0ZXN0
cy4KKyAgICAgICAgKGFzeW5jIGFkZFRyaWdnZXJhYmxlQW5kQ3JlYXRlVGFzayk6CisgICAgICAg
ICogc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanM6CisgICAgICAgIChNb2NrRGF0
YS5zb21lVGVzdENvbmZpZ3VyYXRpb25JZCk6CisgICAgICAgIChNb2NrRGF0YS5vdGhlclRlc3RD
b25maWd1cmF0aW9uSWQpOgorICAgICAgICAoTW9ja0RhdGEuYWRkTW9ja0NvbmZpZ3VyYXRpb24p
OgorICAgICAgICAoTW9ja0RhdGEuc2V0IG1vY2tUZXN0U3luY0NvbmZpZ1dpdGhTaW5nbGVCdWls
ZGVyKToKKyAgICAgICAgKE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhQYXRjaEFjY2Vw
dGluZ0J1aWxkZXIpOgorICAgICAgICAoTW9ja0RhdGEubW9ja1Rlc3RTeW5jQ29uZmlnV2l0aFR3
b0J1aWxkZXJzKToKKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1p
bnRlZ3JhdGlvbi10ZXN0cy5qczogQWRkZWQgYW5kIHVwZGF0ZWQgdW5pdCB0ZXN0cy4KKyAgICAg
ICAgKiB0b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanM6IEFkZGVkIGNvZGUgdG8gdXBkYXRlIHN1
cHBvcnRlZCByZXBldGl0aW9uIHR5cGVzIG9uIHRyaWdnZXJhYmxlIHVwZGF0ZXMuCisgICAgICAg
IFVwZGF0ZSBjb25maWd1cmF0aW9uIG1hdGNoIGNvZGUgdG8gb25seSBzY2hlZHVsZXIgYnVpbGQg
cmVxdWVzdHMgdGhlIHJlcGV0aXRpb24gdHlwZXMgb2Ygd2hpY2ggYXJlIGJvdGgKKyAgICAgICAg
c3VwcG9ydGVkIGJ5IGJ1aWxkZXIgYW5kIHRyaWdnZXJhYmxlIGNvbmZpZ3VyYXRpb24uCisgICAg
ICAgIChCdWlsZGJvdFN5bmNlcik6CisgICAgICAgIChCdWlsZGJvdFN5bmNlci5wcm90b3R5cGUu
YWRkVGVzdENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoQnVpbGRib3RTeW5jZXIucHJvdG90eXBl
Lm1hdGNoZXNDb25maWd1cmF0aW9uKToKKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKToKKyAgICAgICAgKiB0b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qczoKKyAgICAg
ICAgKEJ1aWxkYm90VHJpZ2dlcmFibGUucHJvdG90eXBlLnVwZGF0ZVRyaWdnZXJhYmxlKToKKyAg
ICAgICAgKEJ1aWxkYm90VHJpZ2dlcmFibGUucHJvdG90eXBlLmFzeW5jIHN5bmNPbmNlKToKKyAg
ICAgICAgKiB0b29scy9qcy92My1tb2RlbHMuanM6CisgICAgICAgICogdW5pdC10ZXN0cy9idWls
ZGJvdC1zeW5jZXItdGVzdHMuanM6IEFkZGVkIGFuZCB1cGRhdGVkIHVuaXQgdGVzdHMuCisgICAg
ICAgIChzYW1wbGVpT1NDb25maWcpOgorICAgICAgICAoc2FtcGxlaU9TQ29uZmlnV2l0aEV4cGFu
c2lvbnMpOgorICAgICAgICAoc21hbGxDb25maWd1cmF0aW9uKToKKyAgICAgICAgKHNtYWxsQ29u
ZmlndXJhdGlvbldpdGhDdXN0b21SZXBldGl0aW9uVHlwZXMpOgorICAgICAgICAoY3JlYXRlU2Ft
cGxlQnVpbGRSZXF1ZXN0KToKKyAgICAgICAgKiB1bml0LXRlc3RzL21lYXN1cmVtZW50LXNldC1h
bmFseXplci10ZXN0cy5qczogVXBkYXRlZCB1bml0IHRlc3RzLgorICAgICAgICAqIHVuaXQtdGVz
dHMvcmVzb3VyY2VzL21vY2stdjMtbW9kZWxzLmpzOgorICAgICAgICAoTW9ja01vZGVscy5pbmpl
Y3QpOgorCiAyMDIxLTA5LTI2ICBEZXdlaSBaaHUgIDxkZXdlaV96aHVAYXBwbGUuY29tPgogCiAg
ICAgICAgIFN1bW1hcnkgcGFnZSBzaG91bGQgc3VwcG9ydCBjYWxjdWxhdGluZyBzdW1tYXJ5IHVz
aW5nIHdlaWdodGVkIG1lYW4uCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
YnJvd3Nlci10ZXN0cy9jdXN0b20tYW5hbHlzaXMtdGFzay1jb25maWd1cmF0b3ItdGVzdHMuanMg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jdXN0b20tYW5hbHlzaXMt
dGFzay1jb25maWd1cmF0b3ItdGVzdHMuanMKaW5kZXggODVhZjdiMTQ0NWRmYTMyZmU5MmI1NTI0
ZWU1OWMyZmJkYWFiY2RhNy4uNjY5OGJkZTAxM2MyMzJlMWRjYjkxOTkyZmQyNzJiMTI5MWIwOTcx
YSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvY3Vz
dG9tLWFuYWx5c2lzLXRhc2stY29uZmlndXJhdG9yLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9icm93c2VyLXRlc3RzL2N1c3RvbS1hbmFseXNpcy10YXNrLWNvbmZpZ3Vy
YXRvci10ZXN0cy5qcwpAQCAtMSwxMiArMSwxNiBAQAogZGVzY3JpYmUoJ0N1c3RvbUFuYWx5c2lz
VGFza0NvbmZpZ3VyYXRvcicsICgpID0+IHsKLSAgICBjb25zdCBzY3JpcHRzID0gWydpbnN0cnVt
ZW50YXRpb24uanMnLCAnLi4vc2hhcmVkL2NvbW1vbi1jb21wb25lbnQtYmFzZS5qcycsICdjb21w
b25lbnRzL2Jhc2UuanMnLCAnbW9kZWxzL2RhdGEtbW9kZWwuanMnLCAnbW9kZWxzL2NvbW1pdC1s
b2cuanMnLAotICAgICAgICAnbW9kZWxzL2NvbW1pdC1zZXQuanMnLCAnbW9kZWxzL3JlcG9zaXRv
cnkuanMnLCAnbW9kZWxzL21ldHJpYy5qcycsICdtb2RlbHMvdHJpZ2dlcmFibGUuanMnLCAnbW9k
ZWxzL3Rlc3QuanMnLCAnbW9kZWxzL3BsYXRmb3JtLmpzJywgJ2NvbXBvbmVudHMvdGVzdC1ncm91
cC1mb3JtLmpzJywKLSAgICAgICAgJ2NvbXBvbmVudHMvY3VzdG9tLWFuYWx5c2lzLXRhc2stY29u
ZmlndXJhdG9yLmpzJywgJ2NvbXBvbmVudHMvaW5zdGFudC1maWxlLXVwbG9hZGVyLmpzJywgJ2xh
emlseS1ldmFsdWF0ZWQtZnVuY3Rpb24uanMnXTsKKyAgICBjb25zdCBzY3JpcHRzID0gWydpbnN0
cnVtZW50YXRpb24uanMnLCAnLi4vc2hhcmVkL2NvbW1vbi1jb21wb25lbnQtYmFzZS5qcycsICdj
b21wb25lbnRzL2Jhc2UuanMnLAorICAgICAgICAnbW9kZWxzL2RhdGEtbW9kZWwuanMnLCAnbW9k
ZWxzL2NvbW1pdC1sb2cuanMnLCAnbW9kZWxzL2NvbW1pdC1zZXQuanMnLCAnbW9kZWxzL3JlcG9z
aXRvcnkuanMnLAorICAgICAgICAnbW9kZWxzL21ldHJpYy5qcycsICdtb2RlbHMvdHJpZ2dlcmFi
bGUuanMnLCAnbW9kZWxzL3Rlc3QuanMnLCAnbW9kZWxzL3BsYXRmb3JtLmpzJywKKyAgICAgICAg
J2NvbXBvbmVudHMvdGVzdC1ncm91cC1mb3JtLmpzJywgJ2NvbXBvbmVudHMvY3VzdG9tLWFuYWx5
c2lzLXRhc2stY29uZmlndXJhdG9yLmpzJywKKyAgICAgICAgJ2NvbXBvbmVudHMvaW5zdGFudC1m
aWxlLXVwbG9hZGVyLmpzJywgJ2xhemlseS1ldmFsdWF0ZWQtZnVuY3Rpb24uanMnXTsKIAogICAg
IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUN1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvcldpdGhD
b250ZXh0KGNvbnRleHQpCiAgICAgewotICAgICAgICBhd2FpdCBjb250ZXh0LmltcG9ydFNjcmlw
dHMoc2NyaXB0cywgJ0NvbXBvbmVudEJhc2UnLCAnRGF0YU1vZGVsT2JqZWN0JywgJ1JlcG9zaXRv
cnknLCAnQ29tbWl0TG9nJywgJ1BsYXRmb3JtJywgJ1Rlc3QnLCAnTWV0cmljJywgJ1RyaWdnZXJh
YmxlJywKLSAgICAgICAgICAgICdUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cCcsICdDdXN0b21D
b21taXRTZXQnLCAnQ3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yJywgJ01vY2tSZW1vdGVB
UEknLCAnTGF6aWx5RXZhbHVhdGVkRnVuY3Rpb24nKTsKKyAgICAgICAgYXdhaXQgY29udGV4dC5p
bXBvcnRTY3JpcHRzKHNjcmlwdHMsICdDb21wb25lbnRCYXNlJywgJ0xhYmVsZWRPYmplY3QnLCAn
RGF0YU1vZGVsT2JqZWN0JywgJ1JlcG9zaXRvcnknLAorICAgICAgICAgICAgJ0NvbW1pdExvZycs
ICdQbGF0Zm9ybScsICdUZXN0JywgJ01ldHJpYycsICdUcmlnZ2VyYWJsZScsICdUcmlnZ2VyYWJs
ZUNvbmZpZ3VyYXRpb24nLAorICAgICAgICAgICAgJ1RyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3Vw
JywgJ0N1c3RvbUNvbW1pdFNldCcsICdDdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3InLCAn
TW9ja1JlbW90ZUFQSScsCisgICAgICAgICAgICAnTGF6aWx5RXZhbHVhdGVkRnVuY3Rpb24nKTsK
ICAgICAgICAgY29uc3QgY3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9yID0gbmV3IGNvbnRl
eHQuc3ltYm9scy5DdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3I7CiAgICAgICAgIGNvbnRl
eHQuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0
b3IuZWxlbWVudCgpKTsKICAgICAgICAgcmV0dXJuIGN1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3Vy
YXRvcjsKQEAgLTQwLDcgKzQ0LDcgQEAgZGVzY3JpYmUoJ0N1c3RvbUFuYWx5c2lzVGFza0NvbmZp
Z3VyYXRvcicsICgpID0+IHsKICAgICAgICAgICAgIG5hbWU6ICd0ZXN0LXRyaWdnZXJhYmxlJywK
ICAgICAgICAgICAgIGlzRGlzYWJsZWQ6IGZhbHNlLAogICAgICAgICAgICAgcmVwb3NpdG9yeUdy
b3VwczogW3RyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwXSwKLSAgICAgICAgICAgIGNvbmZpZ3Vy
YXRpb25zOiBbe3Rlc3QsIHBsYXRmb3JtfV0sCisgICAgICAgICAgICBjb25maWd1cmF0aW9uczog
W3t0ZXN0LCBwbGF0Zm9ybSwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5n
JywgJ3NlcXVlbnRpYWwnXX1dLAogICAgICAgICB9KTsKICAgICAgICAgY3VzdG9tQW5hbHlzaXNU
YXNrQ29uZmlndXJhdG9yLnNlbGVjdFRlc3RzKFt0ZXN0XSk7CiAgICAgICAgIGN1c3RvbUFuYWx5
c2lzVGFza0NvbmZpZ3VyYXRvci5zZWxlY3RQbGF0Zm9ybShwbGF0Zm9ybSk7CkBAIC0xMjQsNyAr
MTI4LDcgQEAgZGVzY3JpYmUoJ0N1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvcicsICgpID0+
IHsKICAgICAgICAgICAgIG5hbWU6ICd0ZXN0LXRyaWdnZXJhYmxlJywKICAgICAgICAgICAgIGlz
RGlzYWJsZWQ6IGZhbHNlLAogICAgICAgICAgICAgcmVwb3NpdG9yeUdyb3VwczogW3RyaWdnZXJh
YmxlUmVwb3NpdG9yeUdyb3VwXSwKLSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25zOiBbe3Rlc3Qs
IHBsYXRmb3JtfV0sCisgICAgICAgICAgICBjb25maWd1cmF0aW9uczogW3t0ZXN0LCBwbGF0Zm9y
bSwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwn
XX1dLAogICAgICAgICB9KTsKICAgICAgICAgY3VzdG9tQW5hbHlzaXNUYXNrQ29uZmlndXJhdG9y
LnNlbGVjdFRlc3RzKFt0ZXN0XSk7CiAgICAgICAgIGN1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3Vy
YXRvci5zZWxlY3RQbGF0Zm9ybShwbGF0Zm9ybSk7CkBAIC0yMTYsNyArMjIwLDggQEAgZGVzY3Jp
YmUoJ0N1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvcicsICgpID0+IHsKICAgICAgICAgICAg
IG5hbWU6ICd0ZXN0LXRyaWdnZXJhYmxlJywKICAgICAgICAgICAgIGlzRGlzYWJsZWQ6IGZhbHNl
LAogICAgICAgICAgICAgcmVwb3NpdG9yeUdyb3VwczogW3RyaWdnZXJhYmxlUmVwb3NpdG9yeUdy
b3VwXSwKLSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25zOiBbe3Rlc3QsIHBsYXRmb3JtOiBtb2ph
dmV9LCB7dGVzdCwgcGxhdGZvcm06IGhpZ2hTaWVycmF9XSwKKyAgICAgICAgICAgIGNvbmZpZ3Vy
YXRpb25zOiBbe3Rlc3QsIHBsYXRmb3JtOiBtb2phdmUsIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBl
czogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ119LAorICAgICAgICAgICAgICAgIHt0ZXN0
LCBwbGF0Zm9ybTogaGlnaFNpZXJyYSwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVy
bmF0aW5nJywgJ3NlcXVlbnRpYWwnXX1dLAogICAgICAgICB9KTsKICAgICAgICAgY3VzdG9tQW5h
bHlzaXNUYXNrQ29uZmlndXJhdG9yLnNlbGVjdFRlc3RzKFt0ZXN0XSk7CiAgICAgICAgIGN1c3Rv
bUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvci5zZWxlY3RQbGF0Zm9ybShtb2phdmUpOwpAQCAtMjk1
LDcgKzMwMCw4IEBAIGRlc2NyaWJlKCdDdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3InLCAo
KSA9PiB7CiAgICAgICAgICAgICBuYW1lOiAndGVzdC10cmlnZ2VyYWJsZScsCiAgICAgICAgICAg
ICBpc0Rpc2FibGVkOiBmYWxzZSwKICAgICAgICAgICAgIHJlcG9zaXRvcnlHcm91cHM6IFt0cmln
Z2VyYWJsZVJlcG9zaXRvcnlHcm91cF0sCi0gICAgICAgICAgICBjb25maWd1cmF0aW9uczogW3t0
ZXN0LCBwbGF0Zm9ybTogbW9qYXZlfSwge3Rlc3QsIHBsYXRmb3JtOiBoaWdoU2llcnJhfV0sCisg
ICAgICAgICAgICBjb25maWd1cmF0aW9uczogW3t0ZXN0LCBwbGF0Zm9ybTogbW9qYXZlLCBzdXBw
b3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddfSwKKyAg
ICAgICAgICAgICAgICB7dGVzdCwgcGxhdGZvcm06IGhpZ2hTaWVycmEsIHN1cHBvcnRlZFJlcGV0
aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ119XSwKICAgICAgICAgfSk7
CiAgICAgICAgIGN1c3RvbUFuYWx5c2lzVGFza0NvbmZpZ3VyYXRvci5zZWxlY3RUZXN0cyhbdGVz
dF0pOwogICAgICAgICBjdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0b3Iuc2VsZWN0UGxhdGZv
cm0obW9qYXZlKTsKQEAgLTM1Niw3ICszNjIsOCBAQCBkZXNjcmliZSgnQ3VzdG9tQW5hbHlzaXNU
YXNrQ29uZmlndXJhdG9yJywgKCkgPT4gewogICAgICAgICAgICAgbmFtZTogJ3Rlc3QtdHJpZ2dl
cmFibGUnLAogICAgICAgICAgICAgaXNEaXNhYmxlZDogZmFsc2UsCiAgICAgICAgICAgICByZXBv
c2l0b3J5R3JvdXBzOiBbdHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXBdLAotICAgICAgICAgICAg
Y29uZmlndXJhdGlvbnM6IFt7dGVzdCwgcGxhdGZvcm06IG1vamF2ZX0sIHt0ZXN0LCBwbGF0Zm9y
bTogaGlnaFNpZXJyYX1dLAorICAgICAgICAgICAgY29uZmlndXJhdGlvbnM6IFt7dGVzdCwgcGxh
dGZvcm06IG1vamF2ZSwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5nJywg
J3NlcXVlbnRpYWwnXX0sCisgICAgICAgICAgICAgICAge3Rlc3QsIHBsYXRmb3JtOiBoaWdoU2ll
cnJhLCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlh
bCddfV0sCiAgICAgICAgIH0pOwogICAgICAgICBjdXN0b21BbmFseXNpc1Rhc2tDb25maWd1cmF0
b3Iuc2VsZWN0VGVzdHMoW3Rlc3RdKTsKICAgICAgICAgY3VzdG9tQW5hbHlzaXNUYXNrQ29uZmln
dXJhdG9yLnNlbGVjdFBsYXRmb3JtKG1vamF2ZSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jdXN0b21pemFibGUtdGVzdC1ncm91cC1mb3JtLXRl
c3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvY3VzdG9taXph
YmxlLXRlc3QtZ3JvdXAtZm9ybS10ZXN0cy5qcwppbmRleCBhYWQzYzAxMmIxM2IzODIzYWViN2Fj
NjIwMGI5MWJiNDFmYjZmNmUyLi43ZTc3YTk5OGRmNjk4YjU0YWFhM2UxMmIxZjY0MWUxOTIyNjY0
Mjk3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9j
dXN0b21pemFibGUtdGVzdC1ncm91cC1mb3JtLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9icm93c2VyLXRlc3RzL2N1c3RvbWl6YWJsZS10ZXN0LWdyb3VwLWZvcm0tdGVz
dHMuanMKQEAgLTEsMTEgKzEsMjAgQEAKIAogZGVzY3JpYmUoJ0N1c3RvbWl6YWJsZVRlc3RHcm91
cEZvcm1UZXN0cycsICgpID0+IHsKLSAgICBjb25zdCBzY3JpcHRzID0gWydpbnN0cnVtZW50YXRp
b24uanMnLCAnLi4vc2hhcmVkL2NvbW1vbi1jb21wb25lbnQtYmFzZS5qcycsICdjb21wb25lbnRz
L2Jhc2UuanMnLCAnbW9kZWxzL2RhdGEtbW9kZWwuanMnLCAnbW9kZWxzL2NvbW1pdC1sb2cuanMn
LAotICAgICAgICAnbW9kZWxzL2NvbW1pdC1zZXQuanMnLCAnbW9kZWxzL3JlcG9zaXRvcnkuanMn
LCAnY29tcG9uZW50cy90ZXN0LWdyb3VwLWZvcm0uanMnLCAnY29tcG9uZW50cy9jdXN0b21pemFi
bGUtdGVzdC1ncm91cC1mb3JtLmpzJ107CisgICAgY29uc3Qgc2NyaXB0cyA9IFsnaW5zdHJ1bWVu
dGF0aW9uLmpzJywgJy4uL3NoYXJlZC9jb21tb24tY29tcG9uZW50LWJhc2UuanMnLCAnY29tcG9u
ZW50cy9iYXNlLmpzJywKKyAgICAgICAgJ21vZGVscy9kYXRhLW1vZGVsLmpzJywgJ21vZGVscy9j
b21taXQtbG9nLmpzJywgJ21vZGVscy9jb21taXQtc2V0LmpzJywgJ21vZGVscy9yZXBvc2l0b3J5
LmpzJywKKyAgICAgICAgJ2NvbXBvbmVudHMvdGVzdC1ncm91cC1mb3JtLmpzJywgJ2NvbXBvbmVu
dHMvY3VzdG9taXphYmxlLXRlc3QtZ3JvdXAtZm9ybS5qcycsCisgICAgICAgICdjb21wb25lbnRz
L3JlcGV0aXRpb24tdHlwZS1zZWxlY3Rpb24uanMnLCAnbW9kZWxzL2RhdGEtbW9kZWwuanMnLCAn
bW9kZWxzL3RyaWdnZXJhYmxlLmpzJywgJ21vZGVscy90ZXN0LmpzJywKKyAgICAgICAgJ21vZGVs
cy9wbGF0Zm9ybS5qcycsICdsYXppbHktZXZhbHVhdGVkLWZ1bmN0aW9uLmpzJ107CiAKICAgICBh
c3luYyBmdW5jdGlvbiBjcmVhdGVDdXN0b21pemFibGVUZXN0R3JvdXBGb3JtV2l0aENvbnRleHQo
Y29udGV4dCkKICAgICB7Ci0gICAgICAgIGF3YWl0IGNvbnRleHQuaW1wb3J0U2NyaXB0cyhzY3Jp
cHRzLCAnQ29tcG9uZW50QmFzZScsICdEYXRhTW9kZWxPYmplY3QnLCAnUmVwb3NpdG9yeScsICdD
b21taXRMb2cnLCAnQ29tbWl0U2V0JywgJ0N1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm0nLCAnTW9j
a1JlbW90ZUFQSScpOworICAgICAgICBhd2FpdCBjb250ZXh0LmltcG9ydFNjcmlwdHMoc2NyaXB0
cywgJ0NvbXBvbmVudEJhc2UnLCAnRGF0YU1vZGVsT2JqZWN0JywgJ0xhYmVsZWRPYmplY3QnLCAn
VGVzdCcsCisgICAgICAgICAgICAnUGxhdGZvcm0nLCAnUmVwb3NpdG9yeScsICdDb21taXRMb2cn
LCAnQ29tbWl0U2V0JywgJ0N1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm0nLCAnTW9ja1JlbW90ZUFQ
SScsCisgICAgICAgICAgICAnTGF6aWx5RXZhbHVhdGVkRnVuY3Rpb24nLCAnUmVwZXRpdGlvblR5
cGVTZWxlY3Rpb24nLCAnVHJpZ2dlcmFibGVDb25maWd1cmF0aW9uJyk7CisgICAgICAgIGNvbnN0
IHBsYXRmb3JtID0gbmV3IGNvbnRleHQuc3ltYm9scy5QbGF0Zm9ybSg1LCB7bmFtZTogJ1NvbWVQ
bGF0Zm9ybScsIG1ldHJpY3M6IFtdfSk7CisgICAgICAgIGNvbnN0IHRlc3QgPSBuZXcgY29udGV4
dC5zeW1ib2xzLlRlc3QoMTAsIHtuYW1lOiAnU29tZVRlc3QnfSk7CisgICAgICAgIG5ldyBjb250
ZXh0LnN5bWJvbHMuVHJpZ2dlcmFibGVDb25maWd1cmF0aW9uKDEsCisgICAgICAgICAgICB7cGxh
dGZvcm0sIHRlc3QsIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdz
ZXF1ZW50aWFsJ119KTsKICAgICAgICAgY29uc3QgY3VzdG9taXphYmxlVGVzdEdyb3VwRm9ybSA9
IG5ldyBjb250ZXh0LnN5bWJvbHMuQ3VzdG9taXphYmxlVGVzdEdyb3VwRm9ybTsKICAgICAgICAg
Y29udGV4dC5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGN1c3RvbWl6YWJsZVRlc3RHcm91cEZv
cm0uZWxlbWVudCgpKTsKICAgICAgICAgcmV0dXJuIGN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm07
CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy90ZXN0
LWdyb3VwLWZvcm0tdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nlci10
ZXN0cy90ZXN0LWdyb3VwLWZvcm0tdGVzdHMuanMKaW5kZXggZjk2MDExMzgyMzRhMWQ5YzU2NmEz
ODBhNjVjZTU5MDg0MjgzMGI0YS4uYTRjMmJhZDY2ZDYyMGQ1ZDVkNDYxOTU5YjVlNzU3NmFiNmYz
MmM4NSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMv
dGVzdC1ncm91cC1mb3JtLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9i
cm93c2VyLXRlc3RzL3Rlc3QtZ3JvdXAtZm9ybS10ZXN0cy5qcwpAQCAtMSwxNCArMSwyMSBAQAog
CiBkZXNjcmliZSgnVGVzdEdyb3VwRm9ybVRlc3RzJywgKCkgPT4gewotICAgIGNvbnN0IHNjcmlw
dHMgPSBbJ2luc3RydW1lbnRhdGlvbi5qcycsICcuLi9zaGFyZWQvY29tbW9uLWNvbXBvbmVudC1i
YXNlLmpzJywgJ2NvbXBvbmVudHMvYmFzZS5qcycsICdjb21wb25lbnRzL3Rlc3QtZ3JvdXAtZm9y
bS5qcyddOworICAgIGNvbnN0IHNjcmlwdHMgPSBbJ2luc3RydW1lbnRhdGlvbi5qcycsICcuLi9z
aGFyZWQvY29tbW9uLWNvbXBvbmVudC1iYXNlLmpzJywgJ2NvbXBvbmVudHMvYmFzZS5qcycsCisg
ICAgICAgICdjb21wb25lbnRzL3Rlc3QtZ3JvdXAtZm9ybS5qcycsICdjb21wb25lbnRzL3JlcGV0
aXRpb24tdHlwZS1zZWxlY3Rpb24uanMnLCAnbW9kZWxzL2RhdGEtbW9kZWwuanMnLAorICAgICAg
ICAnbW9kZWxzL3RyaWdnZXJhYmxlLmpzJywgJ21vZGVscy90ZXN0LmpzJywgJ21vZGVscy9wbGF0
Zm9ybS5qcycsICdsYXppbHktZXZhbHVhdGVkLWZ1bmN0aW9uLmpzJ107CiAKLSAgICBmdW5jdGlv
biBjcmVhdGVUZXN0R3JvdXBGb3JtV2l0aENvbnRleHQoY29udGV4dCkKKyAgICBhc3luYyBmdW5j
dGlvbiBjcmVhdGVUZXN0R3JvdXBGb3JtV2l0aENvbnRleHQoY29udGV4dCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBjb250ZXh0LmltcG9ydFNjcmlwdHMoc2NyaXB0cywgJ0NvbXBvbmVudEJhc2Un
LCAnVGVzdEdyb3VwRm9ybScpLnRoZW4oKHN5bWJvbHMpID0+IHsKLSAgICAgICAgICAgIGNvbnN0
IHRlc3RHcm91cEZvcm0gPSBuZXcgY29udGV4dC5zeW1ib2xzLlRlc3RHcm91cEZvcm07Ci0gICAg
ICAgICAgICBjb250ZXh0LmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGVzdEdyb3VwRm9ybS5l
bGVtZW50KCkpOwotICAgICAgICAgICAgcmV0dXJuIHRlc3RHcm91cEZvcm07Ci0gICAgICAgIH0p
OworICAgICAgICBhd2FpdCBjb250ZXh0LmltcG9ydFNjcmlwdHMoc2NyaXB0cywgJ0NvbXBvbmVu
dEJhc2UnLCAnTGFiZWxlZE9iamVjdCcsICdEYXRhTW9kZWxPYmplY3QnLCAnVGVzdCcsCisgICAg
ICAgICAgICAnVGVzdEdyb3VwRm9ybScsICdSZXBldGl0aW9uVHlwZVNlbGVjdGlvbicsICdUcmln
Z2VyYWJsZUNvbmZpZ3VyYXRpb24nLCdQbGF0Zm9ybScsICdMYXppbHlFdmFsdWF0ZWRGdW5jdGlv
bicpOworICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IG5ldyBjb250ZXh0LnN5bWJvbHMuUGxhdGZv
cm0oNSwge25hbWU6ICdTb21lUGxhdGZvcm0nLCBtZXRyaWNzOiBbXX0pOworICAgICAgICBjb25z
dCB0ZXN0ID0gbmV3IGNvbnRleHQuc3ltYm9scy5UZXN0KDEwLCB7bmFtZTogJ1NvbWVUZXN0J30p
OworICAgICAgICBuZXcgY29udGV4dC5zeW1ib2xzLlRyaWdnZXJhYmxlQ29uZmlndXJhdGlvbihg
JHt0ZXN0LmlkKCl9LSR7cGxhdGZvcm0uaWQoKX1gLAorICAgICAgICAgICAge3BsYXRmb3JtLCB0
ZXN0LCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlh
bCddfSk7CisgICAgICAgIGNvbnN0IHRlc3RHcm91cEZvcm0gPSBuZXcgY29udGV4dC5zeW1ib2xz
LlRlc3RHcm91cEZvcm07CisgICAgICAgIHRlc3RHcm91cEZvcm0uc2V0VGVzdEFuZFBsYXRmb3Jt
KHRlc3QsIHBsYXRmb3JtKTsKKyAgICAgICAgY29udGV4dC5kb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKHRlc3RHcm91cEZvcm0uZWxlbWVudCgpKTsKKyAgICAgICAgcmV0dXJuIHRlc3RHcm91cEZv
cm07CiAgICAgfQogCiAgICAgaXQoJ211c3QgZGlzcGF0Y2ggInN0YXJ0VGVzdGluZyIgYWN0aW9u
IHdpdGggdGhlIG51bWJlciBvZiByZXBldGl0aW9ucyB0aGUgdXNlciBjbGlja3Mgb24gIlN0YXJ0
IEEvQiB0ZXN0aW5nIicsICgpID0+IHsKQEAgLTMwLDkgKzM3LDcgQEAgZGVzY3JpYmUoJ1Rlc3RH
cm91cEZvcm1UZXN0cycsICgpID0+IHsKICAgICAgICAgZXhwZWN0KGNhbGxzKS50by5lcWwoe30p
OwogICAgICAgICB0ZXN0R3JvdXBGb3JtLmNvbnRlbnQoJ3N0YXJ0LWJ1dHRvbicpLmNsaWNrKCk7
CiAgICAgICAgIGV4cGVjdChjYWxscykudG8uZXFsKFtbNCwgJ2FsdGVybmF0aW5nJywgdHJ1ZV1d
KTsKLSAgICAgICAgY29uc3QgdHlwZUZvcm0gPSB0ZXN0R3JvdXBGb3JtLmNvbnRlbnQoJ3JlcGV0
aXRpb24tdHlwZScpOwotICAgICAgICB0eXBlRm9ybS52YWx1ZSA9ICdzZXF1ZW50aWFsJzsKLSAg
ICAgICAgdHlwZUZvcm0uZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScpKTsKKyAgICAg
ICAgdGVzdEdyb3VwRm9ybS5wYXJ0KCdyZXBldGl0aW9uLXR5cGUtc2VsZWN0b3InKS5zZWxlY3Rl
ZFJlcGV0aXRpb25UeXBlID0gJ3NlcXVlbnRpYWwnOwogICAgICAgICB0ZXN0R3JvdXBGb3JtLmNv
bnRlbnQoJ3N0YXJ0LWJ1dHRvbicpLmNsaWNrKCk7CiAgICAgICAgIGV4cGVjdChjYWxscykudG8u
ZXFsKFtbNCwgJ2FsdGVybmF0aW5nJywgdHJ1ZV0sIFs0LCAnc2VxdWVudGlhbCcsIHRydWVdXSk7
CiAgICAgfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRh
YmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvaW5pdC1kYXRhYmFzZS5zcWwKaW5k
ZXggMDVjNzg0YWRlNGFjYmE4ZTE1NTc5NjQ4YjYzZWI5MWNmZDYxMzQ0Ny4uYmE4M2NiOTg0MjYy
MDBmMDU4Njk3ZGMzYzdjNjE5NDM4NmYzMDZhYyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL2luaXQtZGF0YWJhc2Uuc3FsCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9pbml0LWRhdGFiYXNlLnNxbApAQCAtMjQsNiArMjQsNyBAQCBEUk9QIFRBQkxFIElGIEVYSVNU
UyBhbmFseXNpc19zdHJhdGVnaWVzIENBU0NBREU7CiBEUk9QIFRZUEUgSUYgRVhJU1RTIGFuYWx5
c2lzX3Rhc2tfcmVzdWx0X3R5cGUgQ0FTQ0FERTsKIERST1AgVEFCTEUgSUYgRVhJU1RTIGJ1aWxk
X3RyaWdnZXJhYmxlcyBDQVNDQURFOwogRFJPUCBUQUJMRSBJRiBFWElTVFMgdHJpZ2dlcmFibGVf
Y29uZmlndXJhdGlvbnMgQ0FTQ0FERTsKK0RST1AgVEFCTEUgSUYgRVhJU1RTIHRyaWdnZXJhYmxl
X2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcyBDQVNDQURFOwogRFJPUCBUQUJMRSBJRiBF
WElTVFMgdHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91cHMgQ0FTQ0FERTsKIERST1AgVEFCTEUg
SUYgRVhJU1RTIHRyaWdnZXJhYmxlX3JlcG9zaXRvcmllcyBDQVNDQURFOwogRFJPUCBUQUJMRSBJ
RiBFWElTVFMgdXBsb2FkZWRfZmlsZXMgQ0FTQ0FERTsKQEAgLTI2NSwxMSArMjY2LDE4IEBAIENS
RUFURSBUQUJMRSB0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMgKAogICAgIENPTlNUUkFJTlQgcmVw
b3NpdG9yeV9tdXN0X2JlX3VuaXF1ZV9mb3JfcmVwb3NpdG9yeV9ncm91cCBVTklRVUUodHJpZ3Jl
cG9fcmVwb3NpdG9yeSwgdHJpZ3JlcG9fZ3JvdXApKTsKIAogQ1JFQVRFIFRBQkxFIHRyaWdnZXJh
YmxlX2NvbmZpZ3VyYXRpb25zICgKKyAgICB0cmlnY29uZmlnX2lkIHNlcmlhbCBQUklNQVJZIEtF
WSwKICAgICB0cmlnY29uZmlnX3Rlc3QgaW50ZWdlciBSRUZFUkVOQ0VTIHRlc3RzIE5PVCBOVUxM
LAogICAgIHRyaWdjb25maWdfcGxhdGZvcm0gaW50ZWdlciBSRUZFUkVOQ0VTIHBsYXRmb3JtcyBO
T1QgTlVMTCwKICAgICB0cmlnY29uZmlnX3RyaWdnZXJhYmxlIGludGVnZXIgUkVGRVJFTkNFUyBi
dWlsZF90cmlnZ2VyYWJsZXMgTk9UIE5VTEwsCiAgICAgQ09OU1RSQUlOVCB0cmlnZ2VyYWJsZV9t
dXN0X2JlX3VuaXF1ZV9mb3JfdGVzdF9hbmRfcGxhdGZvcm0gVU5JUVVFKHRyaWdjb25maWdfdGVz
dCwgdHJpZ2NvbmZpZ19wbGF0Zm9ybSkpOwogCitDUkVBVEUgVFlQRSBhbmFseXNpc190ZXN0X2dy
b3VwX3JlcGV0aXRpb25fdHlwZSBhcyBFTlVNICgnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCcs
ICdwYWlyZWQtcGFyYWxsZWwnKTsKK0NSRUFURSBUQUJMRSB0cmlnZ2VyYWJsZV9jb25maWd1cmF0
aW9uX3JlcGV0aXRpb25fdHlwZXMgKAorICAgIGNvbmZpZ3JlcGV0aXRpb25fY29uZmlnIElOVEVH
RVIgTk9UIE5VTEwgUkVGRVJFTkNFUyB0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucyBPTiBERUxF
VEUgQ0FTQ0FERSwKKyAgICBjb25maWdyZXBldGl0aW9uX3R5cGUgYW5hbHlzaXNfdGVzdF9ncm91
cF9yZXBldGl0aW9uX3R5cGUgTk9UIE5VTEwsCisgICAgUFJJTUFSWSBLRVkgKGNvbmZpZ3JlcGV0
aXRpb25fY29uZmlnLCBjb25maWdyZXBldGl0aW9uX3R5cGUpKTsKKwogQ1JFQVRFIFRBQkxFIHVw
bG9hZGVkX2ZpbGVzICgKICAgICBmaWxlX2lkIHNlcmlhbCBQUklNQVJZIEtFWSwKICAgICBmaWxl
X2NyZWF0ZWRfYXQgdGltZXN0YW1wIE5PVCBOVUxMIERFRkFVTFQgKENVUlJFTlRfVElNRVNUQU1Q
IEFUIFRJTUUgWk9ORSAnVVRDJyksCkBAIC0yODMsNyArMjkxLDYgQEAgQ1JFQVRFIFRBQkxFIHVw
bG9hZGVkX2ZpbGVzICgKIENSRUFURSBJTkRFWCBmaWxlX2F1dGhvcl9pbmRleCBPTiB1cGxvYWRl
ZF9maWxlcyhmaWxlX2F1dGhvcik7CiBDUkVBVEUgVU5JUVVFIElOREVYIGZpbGVfc2hhMjU2X2lu
ZGV4IE9OIHVwbG9hZGVkX2ZpbGVzKGZpbGVfc2hhMjU2KSBXSEVSRSBmaWxlX2RlbGV0ZWRfYXQg
aXMgTlVMTDsKIAotQ1JFQVRFIFRZUEUgYW5hbHlzaXNfdGVzdF9ncm91cF9yZXBldGl0aW9uX3R5
cGUgYXMgRU5VTSAoJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnKTsKIENSRUFURSBUQUJMRSBh
bmFseXNpc190ZXN0X2dyb3VwcyAoCiAgICAgdGVzdGdyb3VwX2lkIHNlcmlhbCBQUklNQVJZIEtF
WSwKICAgICB0ZXN0Z3JvdXBfdGFzayBpbnRlZ2VyIFJFRkVSRU5DRVMgYW5hbHlzaXNfdGFza3Mg
Tk9UIE5VTEwsCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWlncmF0ZS1k
YXRhYmFzZS5zcWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvbWlncmF0ZS1kYXRhYmFzZS5z
cWwKaW5kZXggYmQxZmMyNGNhNWZhNmJkNjRlNjk0MGM0YzQzZTRhYWMzMGU4MzY2ZS4uZTNhZWY5
NWU2NmI2OThhYTFiZTZlNjQxMzlmYTAzZWU5NzAxMGRkNyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL21pZ3JhdGUtZGF0YWJhc2Uuc3FsCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9taWdyYXRlLWRhdGFiYXNlLnNxbApAQCAtMyw3ICszLDcgQEAgRE8gJCQKIEJF
R0lOCiAKIElGIE5PVCBFWElTVFMgKFNFTEVDVCBOVUxMIEZST00gcGdfdHlwZSBXSEVSRSB0eXBu
YW1lID0gJ2FuYWx5c2lzX3Rlc3RfZ3JvdXBfcmVwZXRpdGlvbl90eXBlJykgVEhFTgotICAgIENS
RUFURSBUWVBFIGFuYWx5c2lzX3Rlc3RfZ3JvdXBfcmVwZXRpdGlvbl90eXBlIGFzIEVOVU0gKCdh
bHRlcm5hdGluZycsICdzZXF1ZW50aWFsJyk7CisgICAgQ1JFQVRFIFRZUEUgYW5hbHlzaXNfdGVz
dF9ncm91cF9yZXBldGl0aW9uX3R5cGUgYXMgRU5VTSAoJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRp
YWwnLCAncGFpcmVkLXBhcmFsbGVsJyk7CiBFTkQgSUY7CiAKIEFMVEVSIFRBQkxFIGJ1aWxkX3Jl
cXVlc3RzIEFERCBDT0xVTU4gSUYgTk9UIEVYSVNUUyByZXF1ZXN0X3N0YXR1c19kZXNjcmlwdGlv
biB2YXJjaGFyKDEwMjQpIERFRkFVTFQgTlVMTDsKQEAgLTIyLDYgKzIyLDE5IEBAIENSRUFURSBU
QUJMRSBJRiBOT1QgRVhJU1RTIHBsYXRmb3JtX2dyb3VwcyAoCiAgICAgcGxhdGZvcm1ncm91cF9u
YW1lIHZhcmNoYXIoNjQpIE5PVCBOVUxMLAogICAgIENPTlNUUkFJTlQgcGxhdGZvcm1fZ3JvdXBf
bmFtZV9tdXN0X2JlX3VuaXF1ZSBVTklRVUUgKHBsYXRmb3JtZ3JvdXBfbmFtZSkpOwogCitJRiBO
T1QgRVhJU1RTIChTRUxFQ1QgTlVMTCBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS50YWJsZXMgV0hF
UkUgVEFCTEVfTkFNRSA9ICd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlw
ZXMnKSBUSEVOCisgICAgQ1JFQVRFIFRBQkxFIHRyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVw
ZXRpdGlvbl90eXBlcyAoCisgICAgICAgIGNvbmZpZ3JlcGV0aXRpb25fY29uZmlnIElOVEVHRVIg
Tk9UIE5VTEwgUkVGRVJFTkNFUyB0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucyBPTiBERUxFVEUg
Q0FTQ0FERSwKKyAgICAgICAgY29uZmlncmVwZXRpdGlvbl90eXBlIGFuYWx5c2lzX3Rlc3RfZ3Jv
dXBfcmVwZXRpdGlvbl90eXBlIE5PVCBOVUxMLAorICAgICAgICBQUklNQVJZIEtFWSAoY29uZmln
cmVwZXRpdGlvbl9jb25maWcsIGNvbmZpZ3JlcGV0aXRpb25fdHlwZSkpOworCisgICAgSU5TRVJU
IElOVE8gdHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzIChjb25maWdy
ZXBldGl0aW9uX2NvbmZpZywgY29uZmlncmVwZXRpdGlvbl90eXBlKQorICAgICAgICBTRUxFQ1Qg
dHJpZ2NvbmZpZ19pZCwgJ2FsdGVybmF0aW5nJyBGUk9NIHRyaWdnZXJhYmxlX2NvbmZpZ3VyYXRp
b25zOworCisgICAgSU5TRVJUIElOVE8gdHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0
aW9uX3R5cGVzIChjb25maWdyZXBldGl0aW9uX2NvbmZpZywgY29uZmlncmVwZXRpdGlvbl90eXBl
KQorICAgICAgICBTRUxFQ1QgdHJpZ2NvbmZpZ19pZCwgJ3NlcXVlbnRpYWwnIEZST00gdHJpZ2dl
cmFibGVfY29uZmlndXJhdGlvbnM7CitFTkQgSUY7CisKIEFMVEVSIFRBQkxFIHBsYXRmb3JtcyBB
REQgQ09MVU1OIElGIE5PVCBFWElTVFMgcGxhdGZvcm1fZ3JvdXAgaW50ZWdlciBSRUZFUkVOQ0VT
IHBsYXRmb3JtX2dyb3VwcyBERUZBVUxUIE5VTEw7CiAKIElGIEVYSVNUUyAoU0VMRUNUIE5VTEwg
RlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1ucyBXSEVSRSBUQUJMRV9OQU1FID0gJ2J1aWxk
cycgQU5EIENPTFVNTl9OQU1FID0gJ2J1aWxkX251bWJlcicpIFRIRU4KQEAgLTQ2LDQgKzU5LDcg
QEAgSUYgRVhJU1RTIChTRUxFQ1QgTlVMTCBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5z
IFdIRVJFIFRBQkxFX05BTUUgPSAnYnVpbGQKICAgICBBTFRFUiBUQUJMRSBidWlsZF9zbGF2ZXMg
UkVOQU1FIFRPIGJ1aWxkX3dvcmtlcnM7CiBFTkQgSUY7CiAKLUVORCQkOwpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKK0VORCQkOworCitBTFRFUiBUQUJMRSB0cmlnZ2VyYWJsZV9jb25maWd1
cmF0aW9ucyBBREQgQ09MVU1OIElGIE5PVCBFWElTVFMgdHJpZ2NvbmZpZ19pZCBzZXJpYWwgUFJJ
TUFSWSBLRVk7CitBTFRFUiBUWVBFIGFuYWx5c2lzX3Rlc3RfZ3JvdXBfcmVwZXRpdGlvbl90eXBl
IEFERCBWQUxVRSBJRiBOT1QgRVhJU1RTICdwYWlyZWQtcGFyYWxsZWwnOwpkaWZmIC0tZ2l0IGEv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLnBo
cCBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvYXBpL3VwZGF0ZS10cmlnZ2VyYWJs
ZS5waHAKaW5kZXggOTJlZGI2ZjhkNTcwMzJlMmVlYTFhYWQ1ZGFmNmEzNjFiNjQzM2E2MC4uYTEz
ZGNiMjJlNTdlZmJmY2U0ZWY3ZjI2NWRmNTE5NzBkYWZlMmM0NCAxMDA2NDQKLS0tIGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLnBocAorKysg
Yi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUu
cGhwCkBAIC0zNywxMCArMzcsMTkgQEAgZnVuY3Rpb24gbWFpbigkcG9zdF9kYXRhKQogCiAgICAg
Zm9yZWFjaCAoJGNvbmZpZ3VyYXRpb25zIGFzICYkZW50cnkpIHsKICAgICAgICAgJGNvbmZpZ19p
bmZvID0gYXJyYXkoJ3Rlc3QnID0+ICRlbnRyeVsndGVzdCddLCAncGxhdGZvcm0nID0+ICRlbnRy
eVsncGxhdGZvcm0nXSwgJ3RyaWdnZXJhYmxlJyA9PiAkdHJpZ2dlcmFibGVfaWQpOwotICAgICAg
ICBpZiAoISRkYi0+aW5zZXJ0X3JvdygndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCAndHJp
Z2NvbmZpZycsICRjb25maWdfaW5mbywgbnVsbCkpIHsKKyAgICAgICAgJG5ld190cmlnZ2VyYWJs
ZV9pZCA9ICRkYi0+aW5zZXJ0X3JvdygndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCAndHJp
Z2NvbmZpZycsICRjb25maWdfaW5mbyk7CisgICAgICAgIGlmICghJG5ld190cmlnZ2VyYWJsZV9p
ZCkgewogICAgICAgICAgICAgJGRiLT5yb2xsYmFja190cmFuc2FjdGlvbigpOwogICAgICAgICAg
ICAgZXhpdF93aXRoX2Vycm9yKCdGYWlsZWRUb0luc2VydENvbmZpZ3VyYXRpb24nLCBhcnJheSgn
ZW50cnknID0+ICRlbnRyeSkpOwogICAgICAgICB9CisgICAgICAgICRyZXBldGl0aW9uX3R5cGVz
ID0gYXJyYXlfZ2V0KCRlbnRyeSwgJ3N1cHBvcnRlZFJlcGV0aXRpb25UeXBlcycsIGFycmF5KCkp
OworICAgICAgICBmb3JlYWNoICgkcmVwZXRpdGlvbl90eXBlcyBhcyAkcmVwZXRpdGlvbl90eXBl
KSB7CisgICAgICAgICAgICBpZiAoISRkYi0+aW5zZXJ0X3JvdygndHJpZ2dlcmFibGVfY29uZmln
dXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywgTlVMTCwKKyAgICAgICAgICAgICAgICBhcnJheSgn
Y29uZmlncmVwZXRpdGlvbl9jb25maWcnID0+ICRuZXdfdHJpZ2dlcmFibGVfaWQsICdjb25maWdy
ZXBldGl0aW9uX3R5cGUnID0+ICRyZXBldGl0aW9uX3R5cGUpLCBOVUxMKSkgeworICAgICAgICAg
ICAgICAgICRkYi0+cm9sbGJhY2tfdHJhbnNhY3Rpb24oKTsKKyAgICAgICAgICAgICAgICBleGl0
X3dpdGhfZXJyb3IoJ0ZhaWxlZFRvSW5zZXJ0UmVwZXRpdGlvblR5cGVGb3JUcmlnZ2VyYWJsZUNv
bmZpZycpOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfQogCiAgICAgZm9yZWFjaCAo
JHJlcG9zaXRvcnlfZ3JvdXBzIGFzICYkZ3JvdXApIHsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtc2V0cy1oZWxwZXJzLnBocCBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9jb21taXQtc2V0cy1oZWxwZXJz
LnBocAppbmRleCA3Nzc3ZTFhZDYyYWZkYWM3NmM3MzE0MzM1MjJjMWIyNmEwMjdjODRhLi43YTMw
MGZiNDk0ZTM3M2I1NzZmYWViNzRmNTQ0N2IyMDllOGNhYWEzIDEwMDY0NAotLS0gYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvY29tbWl0LXNldHMtaGVscGVycy5waHAK
KysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1zZXRz
LWhlbHBlcnMucGhwCkBAIC02LDcgKzYsNyBAQCByZXF1aXJlX29uY2UoJ2NvbW1pdC1sb2ctZmV0
Y2hlci5waHAnKTsKICMgRklYTUU6IFNob3VsZCBjcmVhdGUgYSBoZWxwZXIgY2xhc3MgZm9yIGJl
bG93IDMgaGVscGVyIGZ1bmN0aW9ucyB0byBhdm9pZCBwYXNzaW5nIGxvbmcgYXJndW1lbnQgbGlz
dC4KIGZ1bmN0aW9uIGNyZWF0ZV90ZXN0X2dyb3VwX2FuZF9idWlsZF9yZXF1ZXN0cygkZGIsICRj
b21taXRfc2V0cywgJHRhc2tfaWQsICRuYW1lLCAkYXV0aG9yLCAkdHJpZ2dlcmFibGVfaWQsICRw
bGF0Zm9ybV9pZCwgJHRlc3RfaWQsICRyZXBldGl0aW9uX2NvdW50LCAkcmVwZXRpdGlvbl90eXBl
LCAkbmVlZHNfbm90aWZpY2F0aW9uKQogewotICAgIGFzc2VydChpbl9hcnJheSgkcmVwZXRpdGlv
bl90eXBlLCBhcnJheSgnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCcpKSk7CisgICAgYXNzZXJ0
KGluX2FycmF5KCRyZXBldGl0aW9uX3R5cGUsIGFycmF5KCdhbHRlcm5hdGluZycsICdzZXF1ZW50
aWFsJywgJ3BhaXJlZC1wYXJhbGxlbCcpKSk7CiAgICAgbGlzdCAoJGJ1aWxkX2NvbmZpZ3VyYXRp
b25fbGlzdCwgJHRlc3RfY29uZmlndXJhdGlvbl9saXN0KSA9IGluc2VydF9jb21taXRfc2V0c19h
bmRfY29uc3RydWN0X2NvbmZpZ3VyYXRpb25fbGlzdCgkZGIsICRjb21taXRfc2V0cyk7CiAKICAg
ICAkZ3JvdXBfaWQgPSAkZGItPmluc2VydF9yb3coJ2FuYWx5c2lzX3Rlc3RfZ3JvdXBzJywgJ3Rl
c3Rncm91cCcsCkBAIC0yNCw3ICsyNCw3IEBAIGZ1bmN0aW9uIGNyZWF0ZV90ZXN0X2dyb3VwX2Fu
ZF9idWlsZF9yZXF1ZXN0cygkZGIsICRjb21taXRfc2V0cywgJHRhc2tfaWQsICRuYW1lCiAgICAg
ICAgICAgICAgICAgaW5zZXJ0X2J1aWxkX3JlcXVlc3RfZm9yX2NvbmZpZ3VyYXRpb24oJGRiLCAk
dGVzdF9jb25maWd1cmF0aW9uLCAkb3JkZXIrKywgJHRyaWdnZXJhYmxlX2lkLCAkcGxhdGZvcm1f
aWQsICR0ZXN0X2lkLCAkZ3JvdXBfaWQpOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAg
ICAgYXNzZXJ0KCRyZXBldGl0aW9uX3R5cGUgPT0gJ2FsdGVybmF0aW5nJyk7CisgICAgICAgIGFz
c2VydCgkcmVwZXRpdGlvbl90eXBlID09ICdhbHRlcm5hdGluZycgfHwgJHJlcGV0aXRpb25fdHlw
ZSA9PSAncGFpcmVkLXBhcmFsbGVsJyk7CiAgICAgICAgIGZvciAoJGkgPSAwOyAkaSA8ICRyZXBl
dGl0aW9uX2NvdW50OyAkaSsrKSB7CiAgICAgICAgICAgICBmb3JlYWNoICgkdGVzdF9jb25maWd1
cmF0aW9uX2xpc3QgYXMgJHRlc3RfY29uZmlndXJhdGlvbikKICAgICAgICAgICAgICAgICBpbnNl
cnRfYnVpbGRfcmVxdWVzdF9mb3JfY29uZmlndXJhdGlvbigkZGIsICR0ZXN0X2NvbmZpZ3VyYXRp
b24sICRvcmRlcisrLCAkdHJpZ2dlcmFibGVfaWQsICRwbGF0Zm9ybV9pZCwgJHRlc3RfaWQsICRn
cm91cF9pZCk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2lu
Y2x1ZGUvanNvbi1oZWFkZXIucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy9p
bmNsdWRlL2pzb24taGVhZGVyLnBocAppbmRleCA3OGU4ZDBiZTI4ZTY0NzUzNGFjZDI5MDBkMWZj
ZmZhNzA3MGQ0ODMyLi4yOTI3YmVmYzIwYTFmNDRlZTdkZjZhYzE2YmE5Y2I3YmY5MTEzZTgzIDEw
MDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL2luY2x1ZGUvanNvbi1o
ZWFkZXIucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9q
c29uLWhlYWRlci5waHAKQEAgLTE4MiwyMCArMTgyLDMxIEBAIGZ1bmN0aW9uIGZpbmRfdHJpZ2dl
cmFibGVfZm9yX3Rhc2soJGRiLCAkdGFza19pZCkgewogICAgICRwYXRoX3Jlc29sdmVyID0gbmV3
IFRlc3RQYXRoUmVzb2x2ZXIoJGRiKTsKICAgICAkdGVzdF9pZHMgPSAkcGF0aF9yZXNvbHZlci0+
YW5jZXN0b3JzX2Zvcl90ZXN0KCR0YXJnZXRfdGVzdF9pZCk7CiAKLSAgICAkcmVzdWx0cyA9ICRk
Yi0+cXVlcnlfYW5kX2ZldGNoX2FsbCgnU0VMRUNUIHRyaWdjb25maWdfdHJpZ2dlcmFibGUgQVMg
InRyaWdnZXJhYmxlIiwgdHJpZ2NvbmZpZ190ZXN0IEFTICJ0ZXN0IgorICAgICRyZXN1bHRzID0g
JGRiLT5xdWVyeV9hbmRfZmV0Y2hfYWxsKCdTRUxFQ1QgdHJpZ2NvbmZpZ19pZCBBUyAiY29uZmln
X2lkIiwKKyAgICAgICAgdHJpZ2NvbmZpZ190cmlnZ2VyYWJsZSBBUyAidHJpZ2dlcmFibGUiLCB0
cmlnY29uZmlnX3Rlc3QgQVMgInRlc3QiCiAgICAgICAgIEZST00gdHJpZ2dlcmFibGVfY29uZmln
dXJhdGlvbnMgV0hFUkUgdHJpZ2NvbmZpZ19wbGF0Zm9ybSA9ICQxIEFORCB0cmlnY29uZmlnX3Rl
c3QgPSBBTlkoJDIpJywKICAgICAgICAgYXJyYXkoJHBsYXRmb3JtX2lkLCAneycgLiBpbXBsb2Rl
KCcsICcsICR0ZXN0X2lkcykgLiAnfScpKTsKICAgICBpZiAoISRyZXN1bHRzKQogICAgICAgICBy
ZXR1cm4gTlVMTDsKIAogICAgICR0ZXN0X3RvX3RyaWdnZXJhYmxlID0gYXJyYXkoKTsKLSAgICBm
b3JlYWNoICgkcmVzdWx0cyBhcyAkcm93KQorICAgICR0ZXN0X3RvX3RyaWdjb25maWcgPSBhcnJh
eSgpOworICAgIGZvcmVhY2ggKCRyZXN1bHRzIGFzICRyb3cpIHsKICAgICAgICAgJHRlc3RfdG9f
dHJpZ2dlcmFibGVbJHJvd1sndGVzdCddXSA9ICRyb3dbJ3RyaWdnZXJhYmxlJ107CisgICAgICAg
ICR0ZXN0X3RvX3RyaWdjb25maWdbJHJvd1sndGVzdCddXSA9ICRyb3dbJ2NvbmZpZ19pZCddOwor
ICAgIH0KKworICAgICRjb25maWdyZXBldGl0aW9uX3Jvd3MgPSAkZGItPnNlbGVjdF9yb3dzKCd0
cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMnLCAnY29uZmlncmVwZXRp
dGlvbicsIGFycmF5KCkpOworICAgICR0cmlnY29uZmlnX3RvX3JlcGV0aXRpb25fdHlwZXMgPSBh
cnJheSgpOworICAgIGZvcmVhY2ggKCRjb25maWdyZXBldGl0aW9uX3Jvd3MgYXMgJHJvdykKKyAg
ICAgICAgYXJyYXlfcHVzaChhcnJheV9lbnN1cmVfaXRlbV9oYXNfYXJyYXkoJHRyaWdjb25maWdf
dG9fcmVwZXRpdGlvbl90eXBlcywgJHJvd1snY29uZmlncmVwZXRpdGlvbl9jb25maWcnXSksICRy
b3dbJ2NvbmZpZ3JlcGV0aXRpb25fdHlwZSddKTsKIAogICAgIGZvcmVhY2ggKCR0ZXN0X2lkcyBh
cyAkdGVzdF9pZCkgewogICAgICAgICAkdHJpZ2dlcmFibGUgPSBhcnJheV9nZXQoJHRlc3RfdG9f
dHJpZ2dlcmFibGUsICR0ZXN0X2lkKTsKLSAgICAgICAgaWYgKCR0cmlnZ2VyYWJsZSkKLSAgICAg
ICAgICAgIHJldHVybiBhcnJheSgnaWQnID0+ICR0cmlnZ2VyYWJsZSwgJ3Rlc3QnID0+ICR0ZXN0
X2lkLCAncGxhdGZvcm0nID0+ICRwbGF0Zm9ybV9pZCk7CisgICAgICAgIGlmICgkdHJpZ2dlcmFi
bGUpIHsKKyAgICAgICAgICAgICRzdXBwb3J0ZWRfcmVwZXRpdGlvbl90eXBlcyA9ICR0cmlnY29u
ZmlnX3RvX3JlcGV0aXRpb25fdHlwZXNbJHRlc3RfdG9fdHJpZ2NvbmZpZ1skdGVzdF9pZF1dOwor
ICAgICAgICAgICAgcmV0dXJuIGFycmF5KCdpZCcgPT4gJHRyaWdnZXJhYmxlLCAndGVzdCcgPT4g
JHRlc3RfaWQsICdwbGF0Zm9ybScgPT4gJHBsYXRmb3JtX2lkLCAnc3VwcG9ydGVkUmVwZXRpdGlv
blR5cGVzJyA9PiAkc3VwcG9ydGVkX3JlcGV0aXRpb25fdHlwZXMpOworICAgICAgICB9CiAgICAg
fQogCiAgICAgcmV0dXJuIE5VTEw7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvcHVibGljL2luY2x1ZGUvbWFuaWZlc3QtZ2VuZXJhdG9yLnBocCBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9tYW5pZmVzdC1nZW5lcmF0b3IucGhwCmluZGV4IDE2
ZGJkN2RmOWE0YTEzYTA4ZDgxN2Q2YzgyNmM5MTA1ZDAzNWJjN2UuLjc4MmZjZWJjOWJkY2IyZTVh
YTQ3YjUzZWI2MmU3ZGJmNjU4NThkNjcgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvaW5jbHVkZS9tYW5pZmVzdC1nZW5lcmF0b3IucGhwCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvaW5jbHVkZS9tYW5pZmVzdC1nZW5lcmF0b3IucGhwCkBA
IC0yNjEsNiArMjYxLDExIEBAIGNsYXNzIE1hbmlmZXN0R2VuZXJhdG9yIHsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogCisgICAgICAgICRyZXBldGl0aW9uX3R5cGVzX2J5X2NvbmZpZ3VyYXRp
b24gPSAkZGItPmZldGNoX3RhYmxlKCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRp
b25fdHlwZXMnKTsKKyAgICAgICAgJHJlcGV0aXRpb25fdHlwZXNfYnlfY29uZmlnID0gYXJyYXko
KTsKKyAgICAgICAgZm9yZWFjaCAoJHJlcGV0aXRpb25fdHlwZXNfYnlfY29uZmlndXJhdGlvbiBh
cyAmJHJvdykKKyAgICAgICAgICAgIGFycmF5X3B1c2goYXJyYXlfZW5zdXJlX2l0ZW1faGFzX2Fy
cmF5KCRyZXBldGl0aW9uX3R5cGVzX2J5X2NvbmZpZywgJHJvd1snY29uZmlncmVwZXRpdGlvbl9j
b25maWcnXSksICRyb3dbJ2NvbmZpZ3JlcGV0aXRpb25fdHlwZSddKTsKKwogICAgICAgICAkY29u
ZmlndXJhdGlvbl9tYXAgPSAkZGItPmZldGNoX3RhYmxlKCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0
aW9ucycpOwogICAgICAgICBpZiAoJGNvbmZpZ3VyYXRpb25fbWFwKSB7CiAgICAgICAgICAgICBm
b3JlYWNoICgkY29uZmlndXJhdGlvbl9tYXAgYXMgJiRyb3cpIHsKQEAgLTI2OCw3ICsyNzMsOCBA
QCBjbGFzcyBNYW5pZmVzdEdlbmVyYXRvciB7CiAgICAgICAgICAgICAgICAgaWYgKCFhcnJheV9r
ZXlfZXhpc3RzKCR0cmlnZ2VyYWJsZV9pZCwgJGlkX3RvX3RyaWdnZXJhYmxlKSkKICAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgJHRyaWdnZXJhYmxlID0gJiRp
ZF90b190cmlnZ2VyYWJsZVskdHJpZ2dlcmFibGVfaWRdOwotICAgICAgICAgICAgICAgIGFycmF5
X3B1c2goJHRyaWdnZXJhYmxlWydjb25maWd1cmF0aW9ucyddLCBhcnJheSgkcm93Wyd0cmlnY29u
ZmlnX3Rlc3QnXSwgJHJvd1sndHJpZ2NvbmZpZ19wbGF0Zm9ybSddKSk7CisgICAgICAgICAgICAg
ICAgJHJlcGV0aXRpb25fdHlwZXMgPSAkcmVwZXRpdGlvbl90eXBlc19ieV9jb25maWdbJHJvd1sn
dHJpZ2NvbmZpZ19pZCddXTsKKyAgICAgICAgICAgICAgICBhcnJheV9wdXNoKCR0cmlnZ2VyYWJs
ZVsnY29uZmlndXJhdGlvbnMnXSwgYXJyYXkoJHJvd1sndHJpZ2NvbmZpZ190ZXN0J10sICRyb3db
J3RyaWdjb25maWdfcGxhdGZvcm0nXSwgJHJlcGV0aXRpb25fdHlwZXMpKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVi
bGljL3ByaXZpbGVnZWQtYXBpL2FkZC1idWlsZC1yZXF1ZXN0cy5waHAgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL3ByaXZpbGVnZWQtYXBpL2FkZC1idWlsZC1yZXF1ZXN0cy5waHAK
aW5kZXggOTU3YTlmNDczMTQ1NzA1ZmFjNTIyZGI3Mjk1Y2NiODA3YzI0NGNhNy4uZjMzOTMzYjA5
OWFmMDc3NThjNWU3ZDgxNTBiYmE2MzkwOTY2MDhjMiAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy9wcml2aWxlZ2VkLWFwaS9hZGQtYnVpbGQtcmVxdWVzdHMucGhw
CisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvYWRk
LWJ1aWxkLXJlcXVlc3RzLnBocApAQCAtMzEsMjggKzMxLDI3IEBAIGZ1bmN0aW9uIG1haW4oKSB7
CiAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignTm9UZXN0aW5nQnVpbGRSZXF1ZXN0cycpOwogCiAg
ICAgJHJlcGV0aXRpb25fdHlwZSA9ICR0ZXN0X2dyb3VwWyd0ZXN0Z3JvdXBfcmVwZXRpdGlvbl90
eXBlJ107Ci0gICAgYXNzZXJ0KGluX2FycmF5KCRyZXBldGl0aW9uX3R5cGUsIFsnYWx0ZXJuYXRp
bmcnLCAnc2VxdWVudGlhbCddKSk7Ci0gICAgJGlzX2FsdGVybmF0aW5nX3R5cGUgPSAkcmVwZXRp
dGlvbl90eXBlID09ICdhbHRlcm5hdGluZyc7Ci0gICAgaWYgKCRpc19hbHRlcm5hdGluZ190eXBl
ICYmICRjb21taXRfc2V0X2lkKQotICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ0NvbW1pdFNldE5v
dFN1cHBvcnRlZEZvckFsdGVybmF0aW5nUmVwZXRpdGlvblR5cGUnKTsKKyAgICBhc3NlcnQoaW5f
YXJyYXkoJHJlcGV0aXRpb25fdHlwZSwgWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJywgJ3Bh
aXJlZC1wYXJhbGxlbCddKSk7CisgICAgJGlzX3NlcXVlbnRpYWxfdHlwZSA9ICRyZXBldGl0aW9u
X3R5cGUgPT0gJ3NlcXVlbnRpYWwnOworICAgIGlmICghJGlzX3NlcXVlbnRpYWxfdHlwZSAmJiAk
Y29tbWl0X3NldF9pZCkKKyAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdDb21taXRTZXROb3RTdXBw
b3J0ZWRSZXBldGl0aW9uVHlwZScpOwogCiAgICAgJGV4aXN0aW5nX3Rlc3RfdHlwZV9idWlsZF9y
ZXF1ZXN0cyA9IGFycmF5X2ZpbHRlcigkZXhpc3RpbmdfYnVpbGRfcmVxdWVzdHMsIGZ1bmN0aW9u
KCRidWlsZF9yZXF1ZXN0KSB7CiAgICAgICAgIHJldHVybiAkYnVpbGRfcmVxdWVzdFsncmVxdWVz
dF9vcmRlciddID49IDA7CiAgICAgfSk7CiAKLSAgICBpZiAoJGlzX2FsdGVybmF0aW5nX3R5cGUp
Ci0gICAgICAgIGFkZF9hbHRlcm5hdGluZ19idWlsZF9yZXF1ZXN0cygkZGIsICRleGlzdGluZ190
ZXN0X3R5cGVfYnVpbGRfcmVxdWVzdHMsICRhZGRpdGlvbmFsX2J1aWxkX3JlcXVlc3RfY291bnQs
ICRjdXJyZW50X29yZGVyKTsKLSAgICBlbHNlIHsKKyAgICBpZiAoJGlzX3NlcXVlbnRpYWxfdHlw
ZSkgewogICAgICAgICBpZiAoJGNvbW1pdF9zZXRfaWQpCiAgICAgICAgICAgICBhZGRfc2VxdWVu
dGlhbF9idWlsZF9yZXF1ZXN0c19mb3JfY29tbWl0X3NldCgkZGIsICRleGlzdGluZ190ZXN0X3R5
cGVfYnVpbGRfcmVxdWVzdHMsICRhZGRpdGlvbmFsX2J1aWxkX3JlcXVlc3RfY291bnQsICRjb21t
aXRfc2V0X2lkKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgYWRkX3NlcXVlbnRpYWxfYnVp
bGRfcmVxdWVzdHNfZm9yX2FsbF9jb21taXRfc2V0cygkZGIsICRleGlzdGluZ19idWlsZF9yZXF1
ZXN0cywgJGFkZGl0aW9uYWxfYnVpbGRfcmVxdWVzdF9jb3VudCwgJHRlc3RfZ3JvdXBfaWQpOwot
ICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgYWRkX2FsdGVybmF0aW5nX29yX3BhaXJlZF9wYXJh
bGxlbF9idWlsZF9yZXF1ZXN0cygkZGIsICRleGlzdGluZ190ZXN0X3R5cGVfYnVpbGRfcmVxdWVz
dHMsICRhZGRpdGlvbmFsX2J1aWxkX3JlcXVlc3RfY291bnQsICRjdXJyZW50X29yZGVyKTsKIAog
ICAgIGV4aXRfd2l0aF9zdWNjZXNzKCk7CiB9CiAKLWZ1bmN0aW9uIGFkZF9hbHRlcm5hdGluZ19i
dWlsZF9yZXF1ZXN0cygkZGIsICRleGlzdGluZ19idWlsZF9yZXF1ZXN0cywgJGFkZGl0aW9uYWxf
YnVpbGRfcmVxdWVzdF9jb3VudCwgJG9yZGVyKQorZnVuY3Rpb24gYWRkX2FsdGVybmF0aW5nX29y
X3BhaXJlZF9wYXJhbGxlbF9idWlsZF9yZXF1ZXN0cygkZGIsICRleGlzdGluZ19idWlsZF9yZXF1
ZXN0cywgJGFkZGl0aW9uYWxfYnVpbGRfcmVxdWVzdF9jb3VudCwgJG9yZGVyKQogewogICAgICRj
b21taXRfc2V0cyA9IGFycmF5KCk7CiAgICAgJGJ1aWxkX3JlcXVlc3RfYnlfY29tbWl0X3NldCA9
IGFycmF5KCk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3By
aXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrLnBocCBiL1dlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sucGhwCmlu
ZGV4IDJkYzc0N2NiZGUyNjc5ZTNmOTZhZDU5MDBiMDZkZjMyYTM3OGUxYTMuLmU3MDA3YjExMGUw
MGJmNTU2NGQxZGJiNzBkMWNmNDRiY2NkY2UzNTYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sucGhw
CisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvY3Jl
YXRlLWFuYWx5c2lzLXRhc2sucGhwCkBAIC0yMSw3ICsyMSw3IEBAIGZ1bmN0aW9uIG1haW4oKSB7
CiAgICAgaWYgKCEkbmFtZSkKICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdNaXNzaW5nTmFtZScs
IGFycmF5KCduYW1lJyA9PiAkbmFtZSkpOwogCi0gICAgaWYgKCFpbl9hcnJheSgkcmVwZXRpdGlv
bl90eXBlLCBhcnJheSgnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCcpKSkKKyAgICBpZiAoIWlu
X2FycmF5KCRyZXBldGl0aW9uX3R5cGUsIGFycmF5KCdhbHRlcm5hdGluZycsICdzZXF1ZW50aWFs
JywgJ3BhaXJlZC1wYXJhbGxlbCcpKSkKICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdJbnZhbGlk
UmVwZXRpdGlvblR5cGUnLCBhcnJheSgncmVwZXRpdGlvblR5cGUnID0+ICRyZXBldGl0aW9uX3R5
cGUpKTsKIAogICAgICRyYW5nZSA9IHZhbGlkYXRlX2FyZ3VtZW50cygkZGF0YSwgYXJyYXkoJ3N0
YXJ0UnVuJyA9PiAnaW50JywgJ2VuZFJ1bicgPT4gJ2ludCcpKTsKQEAgLTg2LDYgKzg2LDEwIEBA
IGZ1bmN0aW9uIG1haW4oKSB7CiAgICAgICAgICAgICAkZGItPnJvbGxiYWNrX3RyYW5zYWN0aW9u
KCk7CiAgICAgICAgICAgICBleGl0X3dpdGhfZXJyb3IoJ0luY29uc2lzdGVudFBsYXRmb3JtJywg
YXJyYXkoJ2NvbmZpZ1BsYXRmb3JtJyA9PiAkY29uZmlnWydjb25maWdfcGxhdGZvcm0nXSwgJ3Rh
c2tQbGF0Zm9ybScgPT4gJHRyaWdnZXJhYmxlWydwbGF0Zm9ybSddKSk7CiAgICAgICAgIH0KKyAg
ICAgICAgaWYgKCFpbl9hcnJheSgkcmVwZXRpdGlvbl90eXBlLCAkdHJpZ2dlcmFibGVbJ3N1cHBv
cnRlZFJlcGV0aXRpb25UeXBlcyddKSkgeworICAgICAgICAgICAgJGRiLT5yb2xsYmFja190cmFu
c2FjdGlvbigpOworICAgICAgICAgICAgZXhpdF93aXRoX2Vycm9yKCdVbnN1cHBvcnRlZFJlcGV0
aXRpb25UeXBlJywgYXJyYXkoJ3JlcGV0aXRpb25UeXBlJyA9PiAkcmVwZXRpdGlvbl90eXBlKSk7
CisgICAgICAgIH0KICAgICAgICAgJHRyaWdnZXJhYmxlX2lkID0gJHRyaWdnZXJhYmxlWydpZCdd
OwogICAgICAgICAkdGVzdF9pZCA9ICR0cmlnZ2VyYWJsZVsndGVzdCddOwogICAgICAgICAkY29t
bWl0X3NldHMgPSBjb21taXRfc2V0c19mcm9tX3JldmlzaW9uX3NldHMoJGRiLCAkdHJpZ2dlcmFi
bGVfaWQsICRyZXZpc2lvbl9zZXRfbGlzdCk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS10ZXN0LWdyb3VwLnBocCBiL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3Qt
Z3JvdXAucGhwCmluZGV4IGQyM2IyZmY5NjY4MWM4ZmE4OGVjMGY5NzNkMTBlYmZmMzcyODg4NTMu
LmFhMTA2NzI3ZjI4ZDJlYzEyNzNjOGYyYjRlZjkxMTU1MzRmYmQyNTEgMTAwNjQ0Ci0tLSBhL1dl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLXRlc3Qt
Z3JvdXAucGhwCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvcHJpdmlsZWdl
ZC1hcGkvY3JlYXRlLXRlc3QtZ3JvdXAucGhwCkBAIC00Myw3ICs0Myw3IEBAIGZ1bmN0aW9uIG1h
aW4oKQogICAgIGVsc2UgaWYgKCRyZXBldGl0aW9uX2NvdW50IDwgMSkKICAgICAgICAgZXhpdF93
aXRoX2Vycm9yKCdJbnZhbGlkUmVwZXRpdGlvbkNvdW50JywgYXJyYXkoJ3JlcGV0aXRpb25Db3Vu
dCcgPT4gJHJlcGV0aXRpb25fY291bnQpKTsKIAotICAgIGlmICghaW5fYXJyYXkoJHJlcGV0aXRp
b25fdHlwZSwgYXJyYXkoJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnKSkpCisgICAgaWYgKCFp
bl9hcnJheSgkcmVwZXRpdGlvbl90eXBlLCBhcnJheSgnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlh
bCcsICdwYWlyZWQtcGFyYWxsZWwnKSkpCiAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignSW52YWxp
ZFJlcGV0aXRpb25UeXBlJywgYXJyYXkoJ3JlcGV0aXRpb25UeXBlJyA9PiAkcmVwZXRpdGlvbl90
eXBlKSk7CiAKICAgICAkdHJpZ2dlcmFibGVfaWQgPSBOVUxMOwpAQCAtNTksNiArNTksMTAgQEAg
ZnVuY3Rpb24gbWFpbigpCiAgICAgICAgICR0cmlnZ2VyYWJsZSA9IGZpbmRfdHJpZ2dlcmFibGVf
Zm9yX3Rhc2soJGRiLCAkdGFza19pZCk7CiAgICAgICAgIGlmICgkdHJpZ2dlcmFibGUpIHsKICAg
ICAgICAgICAgICR0cmlnZ2VyYWJsZV9pZCA9ICR0cmlnZ2VyYWJsZVsnaWQnXTsKKworICAgICAg
ICAgICAgaWYgKCFpbl9hcnJheSgkcmVwZXRpdGlvbl90eXBlLCAkdHJpZ2dlcmFibGVbJ3N1cHBv
cnRlZFJlcGV0aXRpb25UeXBlcyddKSkKKyAgICAgICAgICAgICAgICBleGl0X3dpdGhfZXJyb3Io
J1Vuc3VwcG9ydGVkUmVwZXRpdGlvblR5cGUnLCBhcnJheSgncmVwZXRpdGlvblR5cGUnID0+ICRy
ZXBldGl0aW9uX3R5cGUpKTsKKwogICAgICAgICAgICAgaWYgKCEkcGxhdGZvcm1faWQgJiYgISR0
ZXN0X2lkKSB7CiAgICAgICAgICAgICAgICAgJHBsYXRmb3JtX2lkID0gJHRyaWdnZXJhYmxlWydw
bGF0Zm9ybSddOwogICAgICAgICAgICAgICAgICR0ZXN0X2lkID0gJHRyaWdnZXJhYmxlWyd0ZXN0
J107CkBAIC03Myw4ICs3NywxNCBAQCBmdW5jdGlvbiBtYWluKCkKICAgICBpZiAoISR0cmlnZ2Vy
YWJsZV9pZCAmJiAkcGxhdGZvcm1faWQgJiYgJHRlc3RfaWQpIHsKICAgICAgICAgJHRyaWdnZXJh
YmxlX2NvbmZpZ3VyYXRpb24gPSAkZGItPnNlbGVjdF9maXJzdF9yb3coJ3RyaWdnZXJhYmxlX2Nv
bmZpZ3VyYXRpb25zJywgJ3RyaWdjb25maWcnLAogICAgICAgICAgICAgYXJyYXkoJ3Rlc3QnID0+
ICR0ZXN0X2lkLCAncGxhdGZvcm0nID0+ICRwbGF0Zm9ybV9pZCkpOwotICAgICAgICBpZiAoJHRy
aWdnZXJhYmxlX2NvbmZpZ3VyYXRpb24pCisgICAgICAgIGlmICgkdHJpZ2dlcmFibGVfY29uZmln
dXJhdGlvbikgewogICAgICAgICAgICAgJHRyaWdnZXJhYmxlX2lkID0gJHRyaWdnZXJhYmxlX2Nv
bmZpZ3VyYXRpb25bJ3RyaWdjb25maWdfdHJpZ2dlcmFibGUnXTsKKworICAgICAgICAgICAgJGlz
X3JlcGV0aXRpb25fdHlwZV9zdXBwb3J0ZWQgPSAhISRkYi0+c2VsZWN0X2ZpcnN0X3JvdygndHJp
Z2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywKKyAgICAgICAgICAgICAg
ICAnY29uZmlncmVwZXRpdGlvbicsIGFycmF5KCdjb25maWcnID0+ICR0cmlnZ2VyYWJsZV9jb25m
aWd1cmF0aW9uWyd0cmlnY29uZmlnX2lkJ10sICd0eXBlJyA9PiAkcmVwZXRpdGlvbl90eXBlKSk7
CisgICAgICAgICAgICBpZiAoISRpc19yZXBldGl0aW9uX3R5cGVfc3VwcG9ydGVkKQorICAgICAg
ICAgICAgICAgIGV4aXRfd2l0aF9lcnJvcignVW5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZScsIGFy
cmF5KCdyZXBldGl0aW9uVHlwZScgPT4gJHJlcGV0aXRpb25fdHlwZSkpOworICAgICAgICB9CiAg
ICAgfQogCiAgICAgaWYgKCEkdHJpZ2dlcmFibGVfaWQpCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbW1pdC1zZXQtcmFuZ2UtYmlzZWN0b3IuanMgYi9X
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbW1pdC1zZXQtcmFuZ2UtYmlzZWN0
b3IuanMKaW5kZXggNjUxOTU4ZmFmY2UxYjk2MWQ2MDI2ZDhhOGI5NmQyZTIwY2QxYzYzMC4uMTc1
ZjI5MTJkNmJhNGE2NTY0OWI1ZGY4YTNmMzE0MGNhNTM2MzJlNiAxMDA2NDQKLS0tIGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21taXQtc2V0LXJhbmdlLWJpc2VjdG9yLmpz
CisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tbWl0LXNldC1yYW5n
ZS1iaXNlY3Rvci5qcwpAQCAtMTIwLDcgKzEyMCw5IEBAIGNsYXNzIENvbW1pdFNldFJhbmdlQmlz
ZWN0b3IgewogCiAgICAgICAgIGNvbnN0IGNvbW1pdFRvQ29tbWl0U2V0TWFwID0gdGhpcy5fYnVp
bGRDb21taXRUb0NvbW1pdFNldE1hcChyZXBvc2l0b3JpZXNXaXRoQ29tbWl0VGltZSwgc29ydGVk
Q29tbWl0U2V0cyk7CiAgICAgICAgIGNvbnN0IGNsb3Nlc3RDb21taXQgPSB0aGlzLl9maW5kQ29t
bWl0Q2xvc2VzdFRvTWlkZGxlSW5kZXgoaW5kZXhCeUNvbW1pdFdpdGhUaW1lLCBjb21taXRUb0Nv
bW1pdFNldE1hcC5rZXlzKCkpOwotICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShjb21taXRUb0Nv
bW1pdFNldE1hcC5nZXQoY2xvc2VzdENvbW1pdCkpOworICAgICAgICBpZiAoY2xvc2VzdENvbW1p
dCkKKyAgICAgICAgICAgIHJldHVybiBBcnJheS5mcm9tKGNvbW1pdFRvQ29tbWl0U2V0TWFwLmdl
dChjbG9zZXN0Q29tbWl0KSk7CisgICAgICAgIHJldHVybiBbXTsKICAgICB9CiAKICAgICBzdGF0
aWMgX2ZpbmRDb21taXRTZXRzQ2xvc2VzdFRvTWlkZGxlT2ZDb21taXRzV2l0aE9yZGVyKHJlbWFp
bmluZ0NvbW1pdFNldHMsIGluZGV4Rm9yQWxsVGltZWxlc3NDb21taXRzV2l0aE9yZGVyQnlSZXBv
c2l0b3J5KQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9j
b21wb25lbnRzL2N1c3RvbS1jb25maWd1cmF0aW9uLXRlc3QtZ3JvdXAtZm9ybS5qcyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b20tY29uZmlndXJh
dGlvbi10ZXN0LWdyb3VwLWZvcm0uanMKaW5kZXggNTU5OGZkZDBiZGMzOTRkYjZlZDE4ZTVkYmQ0
ZTBjNTBkYTkzMzE1OS4uOTI4ZjJhNDM2ZmI2NGUyNTE4YWUxMWY3MTU2ZjcwNzMwYTJlODZlZSAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRz
L2N1c3RvbS1jb25maWd1cmF0aW9uLXRlc3QtZ3JvdXAtZm9ybS5qcworKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY3VzdG9tLWNvbmZpZ3VyYXRpb24t
dGVzdC1ncm91cC1mb3JtLmpzCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIEN1c3RvbUNvbmZpZ3Vy
YXRpb25UZXN0R3JvdXBGb3JtIGV4dGVuZHMgVGVzdEdyb3VwRm9ybSB7CiAgICAgICAgIGNvbnN0
IGNvbW1pdFNldHMgPSBjb25maWd1cmF0b3IuY29tbWl0U2V0cygpOwogICAgICAgICBjb25zdCBw
bGF0Zm9ybSA9IGNvbmZpZ3VyYXRvci5wbGF0Zm9ybSgpOwogICAgICAgICBjb25zdCB0ZXN0ID0g
Y29uZmlndXJhdG9yLnRlc3RzKClbMF07IC8vIEZJWE1FOiBBZGQgdGhlIHN1cHBvcnQgZm9yIHNw
ZWNpZnlpbmcgbXVsdGlwbGUgdGVzdHMuCi0gICAgICAgIGNvbnN0IHJlcGV0aXRpb25UeXBlID0g
dGhpcy5jb250ZW50KCdyZXBldGl0aW9uLXR5cGUnKS52YWx1ZTsKKyAgICAgICAgY29uc3QgcmVw
ZXRpdGlvblR5cGUgPSB0aGlzLnBhcnQoJ3JlcGV0aXRpb24tdHlwZS1zZWxlY3RvcicpLnNlbGVj
dGVkUmVwZXRpdGlvblR5cGU7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCEhdGhpcy5faGFzVGFz
ayA9PT0gIXRhc2tOYW1lKTsKICAgICAgICAgaWYgKCF0aGlzLl9oYXNUYXNrKQogICAgICAgICAg
ICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc3RhcnRUZXN0aW5nJywgdGVzdEdyb3VwTmFtZSwgdGhp
cy5fcmVwZXRpdGlvbkNvdW50LCByZXBldGl0aW9uVHlwZSwgY29tbWl0U2V0cywgcGxhdGZvcm0s
IHRlc3QsIHRoaXMuX25vdGlmeU9uQ29tcGxldGlvbiwgdGFza05hbWUpOwpAQCAtNDksOCArNDks
MTUgQEAgY2xhc3MgQ3VzdG9tQ29uZmlndXJhdGlvblRlc3RHcm91cEZvcm0gZXh0ZW5kcyBUZXN0
R3JvdXBGb3JtIHsKICAgICBkaWRDb25zdHJ1Y3RTaGFkb3dUcmVlKCkKICAgICB7CiAgICAgICAg
IHN1cGVyLmRpZENvbnN0cnVjdFNoYWRvd1RyZWUoKTsKLQotICAgICAgICB0aGlzLnBhcnQoJ2Nv
bmZpZ3VyYXRvcicpLmxpc3RlblRvQWN0aW9uKCd0ZXN0Q29uZmlnQ2hhbmdlJywgKCkgPT4gdGhp
cy5lbnF1ZXVlVG9SZW5kZXIoKSk7CisgICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRvciA9IHRoaXMu
cGFydCgnY29uZmlndXJhdG9yJyk7CisgICAgICAgIGNvbmZpZ3VyYXRvci5saXN0ZW5Ub0FjdGlv
bigndGVzdENvbmZpZ0NoYW5nZScsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHRlc3RzID0g
Y29uZmlndXJhdG9yLnRlc3RzKCk7CisgICAgICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IGNvbmZp
Z3VyYXRvci5wbGF0Zm9ybSgpOworICAgICAgICAgICAgaWYgKHBsYXRmb3JtICYmIHRlc3RzLmxl
bmd0aCkKKyAgICAgICAgICAgICAgICB0aGlzLnNldFRlc3RBbmRQbGF0Zm9ybSh0ZXN0c1swXSwg
cGxhdGZvcm0pOworCisgICAgICAgICAgICB0aGlzLmVucXVldWVUb1JlbmRlcigpOworICAgICAg
ICB9KTsKIAogICAgICAgICB0aGlzLmNvbnRlbnQoJ3Rhc2stbmFtZScpLm9uaW5wdXQgPSAoKSA9
PiB0aGlzLmVucXVldWVUb1JlbmRlcigpOwogICAgICAgICB0aGlzLmNvbnRlbnQoJ2dyb3VwLW5h
bWUnKS5vbmlucHV0ID0gKCkgPT4gdGhpcy5lbnF1ZXVlVG9SZW5kZXIoKTsKZGlmZiAtLWdpdCBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b21pemFi
bGUtdGVzdC1ncm91cC1mb3JtLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92
My9jb21wb25lbnRzL2N1c3RvbWl6YWJsZS10ZXN0LWdyb3VwLWZvcm0uanMKaW5kZXggOTI5YzFi
YTJmODRkNjE4ZDdiY2MyNGI2MzQwYmFhYTI4MTM3ZjZiZS4uNDhiZGJiYmZkMmQ5MDRiZjY3Y2Fk
MjFiNDNiNzI2Mjk4NmMzZDQwMyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3B1YmxpYy92My9jb21wb25lbnRzL2N1c3RvbWl6YWJsZS10ZXN0LWdyb3VwLWZvcm0uanMKKysr
IGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL2N1c3RvbWl6
YWJsZS10ZXN0LWdyb3VwLWZvcm0uanMKQEAgLTI3LDcgKzI3LDcgQEAgY2xhc3MgQ3VzdG9taXph
YmxlVGVzdEdyb3VwRm9ybSBleHRlbmRzIFRlc3RHcm91cEZvcm0gewogCiAgICAgc3RhcnRUZXN0
aW5nKCkKICAgICB7Ci0gICAgICAgIGNvbnN0IHJlcGV0aXRpb25UeXBlID0gdGhpcy5jb250ZW50
KCdyZXBldGl0aW9uLXR5cGUnKS52YWx1ZTsKKyAgICAgICAgY29uc3QgcmVwZXRpdGlvblR5cGUg
PSB0aGlzLnBhcnQoJ3JlcGV0aXRpb24tdHlwZS1zZWxlY3RvcicpLnNlbGVjdGVkUmVwZXRpdGlv
blR5cGU7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3N0YXJ0VGVzdGluZycsIHRoaXMu
X25hbWUsIHRoaXMuX3JlcGV0aXRpb25Db3VudCwgcmVwZXRpdGlvblR5cGUsCiAgICAgICAgICAg
ICB0aGlzLl9jb21wdXRlQ29tbWl0U2V0TWFwKCksIHRoaXMuX25vdGlmeU9uQ29tcGxldGlvbik7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9j
b21wb25lbnRzL3JlcGV0aXRpb24tdHlwZS1zZWxlY3Rpb24uanMgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvcmVwZXRpdGlvbi10eXBlLXNlbGVjdGlvbi5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mNjM4NWJlOGQ2YzdiYjk0MTExOTFkMDA3Y2VkZDM2MzU2NDQ4M2RmCi0t
LSAvZGV2L251bGwKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21w
b25lbnRzL3JlcGV0aXRpb24tdHlwZS1zZWxlY3Rpb24uanMKQEAgLTAsMCArMSw3MyBAQAorY2xh
c3MgUmVwZXRpdGlvblR5cGVTZWxlY3Rpb24gZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsKKyAgICAj
dHJpZ2dlcmFibGVDb25maWd1cmF0aW9uOworICAgICNzZWxlY3RlZFJlcGV0aXRpb25UeXBlOwor
ICAgICNyZW5kZXJSZXBldGl0aW9uVHlwZUxpc3RMYXppbHk7CisKKyAgICBjb25zdHJ1Y3Rvcigp
CisgICAgeworICAgICAgICBzdXBlcigncmVwZXRpdGlvbi10eXBlLXNlbGVjdGlvbicpOworICAg
ICAgICB0aGlzLiNzZWxlY3RlZFJlcGV0aXRpb25UeXBlID0gbnVsbDsKKyAgICAgICAgdGhpcy4j
dHJpZ2dlcmFibGVDb25maWd1cmF0aW9uID0gbnVsbDsKKyAgICAgICAgdGhpcy4jcmVuZGVyUmVw
ZXRpdGlvblR5cGVMaXN0TGF6aWx5ID0gbmV3IExhemlseUV2YWx1YXRlZEZ1bmN0aW9uKHRoaXMu
X3JlbmRlclJlcGV0aXRpb25UeXBlTGlzdC5iaW5kKHRoaXMpKTsKKyAgICB9CisKKyAgICBkaWRD
b25zdHJ1Y3RTaGFkb3dUcmVlKCkKKyAgICB7CisgICAgICAgIGNvbnN0IHJlcGV0aXRpb25UeXBl
ID0gdGhpcy5jb250ZW50KCdyZXBldGl0aW9uLXR5cGUnKTsKKyAgICAgICAgcmVwZXRpdGlvblR5
cGUub25jaGFuZ2UgPSAoKSA9PiB0aGlzLiNzZWxlY3RlZFJlcGV0aXRpb25UeXBlID0gcmVwZXRp
dGlvblR5cGUudmFsdWU7CisgICAgfQorCisgICAgZ2V0IHNlbGVjdGVkUmVwZXRpdGlvblR5cGUo
KSB7IHJldHVybiB0aGlzLiNzZWxlY3RlZFJlcGV0aXRpb25UeXBlOyB9CisgICAgc2V0IHNlbGVj
dGVkUmVwZXRpdGlvblR5cGUocmVwZXRpdGlvblR5cGUpCisgICAgeworICAgICAgICBjb25zb2xl
LmFzc2VydCghdGhpcy4jdHJpZ2dlcmFibGVDb25maWd1cmF0aW9uIHx8IHRoaXMuI3RyaWdnZXJh
YmxlQ29uZmlndXJhdGlvbi5pc1N1cHBvcnRlZFJlcGV0aXRpb25UeXBlKHJlcGV0aXRpb25UeXBl
KSk7CisgICAgICAgIHRoaXMuI3NlbGVjdGVkUmVwZXRpdGlvblR5cGUgPSByZXBldGl0aW9uVHlw
ZTsKKyAgICB9CisKKyAgICBzZXQgZGlzYWJsZWQodmFsdWUpCisgICAgeworICAgICAgICBjb25z
b2xlLmFzc2VydCh0eXBlb2YgdmFsdWUgPT0gJ2Jvb2xlYW4nKTsKKyAgICAgICAgdGhpcy5jb250
ZW50KCdyZXBldGl0aW9uLXR5cGUnKS5kaXNhYmxlZCA9IHZhbHVlOworICAgIH0KKworICAgIHNl
dFRlc3RBbmRQbGF0Zm9ybSh0ZXN0LCBwbGF0Zm9ybSkKKyAgICB7CisgICAgICAgIHRoaXMuI3Ry
aWdnZXJhYmxlQ29uZmlndXJhdGlvbiA9IFRyaWdnZXJhYmxlQ29uZmlndXJhdGlvbi5maW5kQnlU
ZXN0QW5kUGxhdGZvcm0odGVzdCwgcGxhdGZvcm0pOworICAgICAgICBpZiAoIXRoaXMuI3RyaWdn
ZXJhYmxlQ29uZmlndXJhdGlvbikKKyAgICAgICAgICAgIHRoaXMuI3NlbGVjdGVkUmVwZXRpdGlv
blR5cGUgPSBudWxsOworICAgICAgICBlbHNlIGlmICh0aGlzLiN0cmlnZ2VyYWJsZUNvbmZpZ3Vy
YXRpb24gJiYgIXRoaXMuI3RyaWdnZXJhYmxlQ29uZmlndXJhdGlvbi5pc1N1cHBvcnRlZFJlcGV0
aXRpb25UeXBlKHRoaXMuI3NlbGVjdGVkUmVwZXRpdGlvblR5cGUpKQorICAgICAgICAgICAgdGhp
cy4jc2VsZWN0ZWRSZXBldGl0aW9uVHlwZSA9IHRoaXMuI3RyaWdnZXJhYmxlQ29uZmlndXJhdGlv
bi5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXNbMF07CisgICAgfQorCisgICAgbGFiZWxGb3JSZXBl
dGl0aW9uVHlwZShyZXBldGl0aW9uVHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiB7CisgICAg
ICAgICAgICAnYWx0ZXJuYXRpbmcnOiAnYWx0ZXJuYXRpbmcgKEFCQUIpJywKKyAgICAgICAgICAg
ICdzZXF1ZW50aWFsJzogJ3NlcXVlbnRpYWwgKEFBQkIpJywKKyAgICAgICAgICAgICdwYWlyZWQt
cGFyYWxsZWwnOiAncGFyYWxsZWwgKHBhaXJlZCBBJkIpJywKKyAgICAgICAgfVtyZXBldGl0aW9u
VHlwZV07CisgICAgfQorCisgICAgcmVuZGVyKCkKKyAgICB7CisgICAgICAgIHN1cGVyLnJlbmRl
cigpOworICAgICAgICBpZiAoIXRoaXMuI3RyaWdnZXJhYmxlQ29uZmlndXJhdGlvbikKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgdGhpcy4jcmVuZGVyUmVwZXRpdGlvblR5cGVMaXN0TGF6
aWx5LmV2YWx1YXRlKCB0aGlzLiNzZWxlY3RlZFJlcGV0aXRpb25UeXBlLCAuLi50aGlzLiN0cmln
Z2VyYWJsZUNvbmZpZ3VyYXRpb24uc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzKTsKKyAgICB9CisK
KyAgICBfcmVuZGVyUmVwZXRpdGlvblR5cGVMaXN0KHNlbGVjdGVkUmVwZXRpdGlvblR5cGUsIC4u
LnN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcykKKyAgICB7CisgICAgICAgIHRoaXMucmVuZGVyUmVw
bGFjZSh0aGlzLmNvbnRlbnQoJ3JlcGV0aXRpb24tdHlwZScpLCBzdXBwb3J0ZWRSZXBldGl0aW9u
VHlwZXMubWFwKChyZXBldGl0aW9uVHlwZSkgPT4KKyAgICAgICAgICAgIHRoaXMuY3JlYXRlRWxl
bWVudCgnb3B0aW9uJyx7IHNlbGVjdGVkOiByZXBldGl0aW9uVHlwZSA9PSBzZWxlY3RlZFJlcGV0
aXRpb25UeXBlLCB2YWx1ZTogcmVwZXRpdGlvblR5cGUgfSwKKyAgICAgICAgICAgICAgICB0aGlz
LmxhYmVsRm9yUmVwZXRpdGlvblR5cGUocmVwZXRpdGlvblR5cGUpKQorICAgICAgICApKTsKKyAg
ICB9CisKKyAgICBzdGF0aWMgaHRtbFRlbXBsYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBg
PHNlbGVjdCBpZD0icmVwZXRpdGlvbi10eXBlIj48L3NlbGVjdD5gOworICAgIH0KK30KKworQ29t
cG9uZW50QmFzZS5kZWZpbmVFbGVtZW50KCdyZXBldGl0aW9uLXR5cGUtc2VsZWN0aW9uJywgUmVw
ZXRpdGlvblR5cGVTZWxlY3Rpb24pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy90ZXN0
LWdyb3VwLWZvcm0uanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBv
bmVudHMvdGVzdC1ncm91cC1mb3JtLmpzCmluZGV4IDgzNWI2MDc4MTNlNTg2ZWRmN2M4MjA1MTMw
M2Q5YTMxZTZhOWU5ZmQuLjA2NWU2NWM5YjhlYmRiMGMyMjFhNmNiNGUxM2UzMWExMWRkNjEwNTMg
MTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50
cy90ZXN0LWdyb3VwLWZvcm0uanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9jb21wb25lbnRzL3Rlc3QtZ3JvdXAtZm9ybS5qcwpAQCAtMTQsNiArMTQsMjEgQEAgY2xh
c3MgVGVzdEdyb3VwRm9ybSBleHRlbmRzIENvbXBvbmVudEJhc2UgewogICAgICAgICB0aGlzLl9y
ZXBldGl0aW9uQ291bnQgPSBjb3VudDsKICAgICB9CiAKKyAgICBzZXRUZXN0QW5kUGxhdGZvcm0o
dGVzdCwgcGxhdGZvcm0pCisgICAgeworICAgICAgICB0aGlzLnBhcnQoJ3JlcGV0aXRpb24tdHlw
ZS1zZWxlY3RvcicpLnNldFRlc3RBbmRQbGF0Zm9ybSh0ZXN0LCBwbGF0Zm9ybSk7CisgICAgfQor
CisgICAgdXBkYXRlV2l0aFRlc3RHcm91cCh0ZXN0R3JvdXApCisgICAgeworICAgICAgICBpZiAo
IXRlc3RHcm91cCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdGhpcy5zZXRSZXBldGl0
aW9uQ291bnQodGVzdEdyb3VwLmluaXRpYWxSZXBldGl0aW9uQ291bnQoKSk7CisgICAgICAgIHRo
aXMuc2V0VGVzdEFuZFBsYXRmb3JtKHRlc3RHcm91cC50ZXN0KCksIHRlc3RHcm91cC5wbGF0Zm9y
bSgpKTsKKyAgICAgICAgdGhpcy5wYXJ0KCdyZXBldGl0aW9uLXR5cGUtc2VsZWN0b3InKS5zZWxl
Y3RlZFJlcGV0aXRpb25UeXBlID0gdGVzdEdyb3VwLnJlcGV0aXRpb25UeXBlKCk7CisgICAgICAg
IHRoaXMuZW5xdWV1ZVRvUmVuZGVyKCk7CisgICAgfQorCiAgICAgZGlkQ29uc3RydWN0U2hhZG93
VHJlZSgpCiAgICAgewogICAgICAgICBjb25zdCByZXBldGl0aW9uQ291bnRTZWxlY3QgPSB0aGlz
LmNvbnRlbnQoJ3JlcGV0aXRpb24tY291bnQnKTsKQEAgLTI1LDkgKzQwLDE1IEBAIGNsYXNzIFRl
c3RHcm91cEZvcm0gZXh0ZW5kcyBDb21wb25lbnRCYXNlIHsKICAgICAgICAgdGhpcy5jb250ZW50
KCdmb3JtJykub25zdWJtaXQgPSB0aGlzLmNyZWF0ZUV2ZW50SGFuZGxlcigoKSA9PiB0aGlzLnN0
YXJ0VGVzdGluZygpKTsKICAgICB9CiAKKyAgICByZW5kZXIoKQorICAgIHsKKyAgICAgICAgc3Vw
ZXIucmVuZGVyKCk7CisgICAgICAgIHRoaXMucGFydCgncmVwZXRpdGlvbi10eXBlLXNlbGVjdG9y
JykuZW5xdWV1ZVRvUmVuZGVyKCk7CisgICAgfQorCiAgICAgc3RhcnRUZXN0aW5nKCkKICAgICB7
Ci0gICAgICAgIGNvbnN0IHJlcGV0aXRpb25UeXBlID0gdGhpcy5jb250ZW50KCdyZXBldGl0aW9u
LXR5cGUnKS52YWx1ZTsKKyAgICAgICAgY29uc3QgcmVwZXRpdGlvblR5cGUgPSB0aGlzLnBhcnQo
J3JlcGV0aXRpb24tdHlwZS1zZWxlY3RvcicpLnNlbGVjdGVkUmVwZXRpdGlvblR5cGU7CiAgICAg
ICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3N0YXJ0VGVzdGluZycsIHRoaXMuX3JlcGV0aXRpb25D
b3VudCwgcmVwZXRpdGlvblR5cGUsIHRoaXMuX25vdGlmeU9uQ29tcGxldGlvbik7CiAgICAgfQog
CkBAIC02NywxMCArODgsNyBAQCBjbGFzcyBUZXN0R3JvdXBGb3JtIGV4dGVuZHMgQ29tcG9uZW50
QmFzZSB7CiAgICAgICAgICAgICAgICAgPG9wdGlvbj4xMDwvb3B0aW9uPgogICAgICAgICAgICAg
PC9zZWxlY3Q+CiAgICAgICAgICAgICA8bGFiZWw+aXRlcmF0aW9ucyBwZXIgc2V0IGluPC9sYWJl
bD4KLSAgICAgICAgICAgIDxzZWxlY3QgaWQ9InJlcGV0aXRpb24tdHlwZSI+Ci0gICAgICAgICAg
ICAgICAgPG9wdGlvbiBzZWxlY3RlZCB2YWx1ZT0iYWx0ZXJuYXRpbmciPmFsdGVybmF0ZSAoQUJB
Qik8L29wdGlvbj4KLSAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJzZXF1ZW50aWFsIj5z
ZXF1ZW5jZSAoQUFCQik8L29wdGlvbj4KLSAgICAgICAgICAgIDwvc2VsZWN0PgorICAgICAgICAg
ICAgPHJlcGV0aXRpb24tdHlwZS1zZWxlY3Rpb24gaWQ9InJlcGV0aXRpb24tdHlwZS1zZWxlY3Rv
ciI+PC9yZXBldGl0aW9uLXR5cGUtc2VsZWN0aW9uPgogICAgICAgICAgICAgPGlucHV0IGlkPSJu
b3RpZnktb24tY29tcGxldGlvbi1jaGVja2JveCIgdHlwZT0iY2hlY2tib3giIGNoZWNrZWQvPk5v
dGlmeSBvbiBjb21wbGV0aW9uCiAgICAgICAgIGA7CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9pbmRleC5odG1sIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9pbmRleC5odG1sCmluZGV4IGY1MzEwMDNlZDVlNjczNTA5ZTQz
N2U0ODExYmIwOWY4YWMzMzcyZDMuLmQ1MDU1MjE4MjNkMGRjNWU5N2E3ODE1NzIyOWJiODNmYjFl
ZDFjOGIgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvaW5k
ZXguaHRtbAorKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2luZGV4Lmh0
bWwKQEAgLTEwNSw2ICsxMDUsNyBAQCBSdW4gdG9vbHMvYnVuZGxlLXYzLXNjcmlwdHMgdG8gc3Bl
ZWQgdXAgdGhlIGxvYWQgdGltZSBmb3IgcHJvZHVjdGlvbi5gKTsKICAgICAgICAgPHNjcmlwdCBz
cmM9ImNvbXBvbmVudHMvcGx1cy1idXR0b24uanMiPjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0
IHNyYz0iY29tcG9uZW50cy9taW51cy1idXR0b24uanMiPjwvc2NyaXB0PgogICAgICAgICA8c2Ny
aXB0IHNyYz0iY29tcG9uZW50cy9jb21iby1ib3guanMiPjwvc2NyaXB0PgorICAgICAgICA8c2Ny
aXB0IHNyYz0iY29tcG9uZW50cy9yZXBldGl0aW9uLXR5cGUtc2VsZWN0aW9uLmpzIj48L3Njcmlw
dD4KIAogICAgICAgICA8c2NyaXB0IHNyYz0icGFnZXMvcGFnZS5qcyI+PC9zY3JpcHQ+CiAgICAg
ICAgIDxzY3JpcHQgc3JjPSJwYWdlcy9wYWdlLXJvdXRlci5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy9tYW5pZmVzdC5q
cyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL21hbmlmZXN0Lmpz
CmluZGV4IDlkZGQ1MTQ3M2I3MmNkNzRkNzEyYmIzZGI5N2JmZmVhOGJhNTNiZjEuLmI2N2RmYjRm
YWMwZTc4MDY3MDEwMmFlODRkYzVhYWVkY2M3M2MyZDcgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL21hbmlmZXN0LmpzCisrKyBiL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL21hbmlmZXN0LmpzCkBAIC0xNiw2ICsx
Niw3IEBAIGNsYXNzIE1hbmlmZXN0IHsKICAgICAgICAgVGVzdC5jbGVhclN0YXRpY01hcCgpOwog
ICAgICAgICBUZXN0R3JvdXAuY2xlYXJTdGF0aWNNYXAoKTsKICAgICAgICAgVHJpZ2dlcmFibGUu
Y2xlYXJTdGF0aWNNYXAoKTsKKyAgICAgICAgVHJpZ2dlcmFibGVDb25maWd1cmF0aW9uLmNsZWFy
U3RhdGljTWFwKCk7CiAgICAgICAgIFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3VwLmNsZWFyU3Rh
dGljTWFwKCk7CiAgICAgICAgIFVwbG9hZGVkRmlsZS5jbGVhclN0YXRpY01hcCgpOwogICAgICAg
ICBCdWdUcmFja2VyLmNsZWFyU3RhdGljTWFwKCk7CkBAIC04Nyw4ICs4OCw4IEBAIGNsYXNzIE1h
bmlmZXN0IHsKICAgICAgICAgICAgICAgICByZXR1cm4gVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3Jv
dXAuZW5zdXJlU2luZ2xldG9uKGdyb3VwLmlkLCBncm91cCk7CiAgICAgICAgICAgICB9KTsKICAg
ICAgICAgICAgIHJhdy5jb25maWd1cmF0aW9ucyA9IHJhdy5jb25maWd1cmF0aW9ucy5tYXAoKGNv
bmZpZ3VyYXRpb24pID0+IHsKLSAgICAgICAgICAgICAgICBjb25zdCBbdGVzdElkLCBwbGF0Zm9y
bUlkXSA9IGNvbmZpZ3VyYXRpb247Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHt0ZXN0OiBUZXN0
LmZpbmRCeUlkKHRlc3RJZCksIHBsYXRmb3JtOiBQbGF0Zm9ybS5maW5kQnlJZChwbGF0Zm9ybUlk
KX07CisgICAgICAgICAgICAgICAgY29uc3QgW3Rlc3RJZCwgcGxhdGZvcm1JZCwgc3VwcG9ydGVk
UmVwZXRpdGlvblR5cGVzXSA9IGNvbmZpZ3VyYXRpb247CisgICAgICAgICAgICAgICAgcmV0dXJu
IHt0ZXN0OiBUZXN0LmZpbmRCeUlkKHRlc3RJZCksIHBsYXRmb3JtOiBQbGF0Zm9ybS5maW5kQnlJ
ZChwbGF0Zm9ybUlkKSwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzfTsKICAgICAgICAgICAgIH0p
OwogICAgICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9tb2RlbHMvdGVzdC1ncm91cC5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvdjMvbW9kZWxzL3Rlc3QtZ3JvdXAuanMKaW5kZXggM2EzYzg4NjE2ZmFmMzE4ZDhjYmY1
MmE2N2EzN2I2ZDg5YTY1NDNkNS4uNWI1MzFhNDIwNTc2YzlkOWJlOTA2ODY5NWU2NDM2NzUxMGU2
MmNlMCAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9tb2Rl
bHMvdGVzdC1ncm91cC5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3Yz
L21vZGVscy90ZXN0LWdyb3VwLmpzCkBAIC0zNDQsMTAgKzM0NCwxMCBAQCBjbGFzcyBUZXN0R3Jv
dXAgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAg
ICB9CiAKLSAgICAgICAgY29uc29sZS5hc3NlcnQoWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFs
J10uaW5jbHVkZXModGhpcy5yZXBldGl0aW9uVHlwZSgpKSk7CisgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KFRyaWdnZXJhYmxlQ29uZmlndXJhdGlvbi5pc1ZhbGlkUmVwZXRpdGlvblR5cGUodGhpcy5y
ZXBldGl0aW9uVHlwZSgpKSk7CiAgICAgICAgIGNvbnN0IHJlcGV0aXRpb25MaW1pdCA9IG1heFJl
dHJ5RmFjdG9yICogdGhpcy5pbml0aWFsUmVwZXRpdGlvbkNvdW50KCk7Ci0gICAgICAgIGNvbnN0
IHtyZXRyeUNvdW50LCBzdG9wRnV0dXJlUmV0cmllc30gPSBhd2FpdCAodGhpcy5yZXBldGl0aW9u
VHlwZSgpID09ICdhbHRlcm5hdGluZycgPwotICAgICAgICAgICAgdGhpcy5fY3JlYXRlQWx0ZXJu
YXRpbmdSZXRyaWVzRm9yVGVzdEdyb3VwKHJlcGV0aXRpb25MaW1pdCkgOiB0aGlzLl9jcmVhdGVT
ZXF1ZW50aWFsUmV0cmllc0ZvclRlc3RHcm91cChyZXBldGl0aW9uTGltaXQpKTsKKyAgICAgICAg
Y29uc3Qge3JldHJ5Q291bnQsIHN0b3BGdXR1cmVSZXRyaWVzfSA9IGF3YWl0ICh0aGlzLnJlcGV0
aXRpb25UeXBlKCkgPT0gJ3NlcXVlbnRpYWwnID8KKyAgICAgICAgICAgIHRoaXMuX2NyZWF0ZVNl
cXVlbnRpYWxSZXRyaWVzRm9yVGVzdEdyb3VwKHJlcGV0aXRpb25MaW1pdCk6IHRoaXMuX2NyZWF0
ZUFsdGVybmF0aW5nUmV0cmllc0ZvclRlc3RHcm91cChyZXBldGl0aW9uTGltaXQpKTsKIAogICAg
ICAgICBpZiAoc3RvcEZ1dHVyZVJldHJpZXMpCiAgICAgICAgICAgICBhd2FpdCB0aGlzLmNsZWFy
TWF5TmVlZE1vcmVCdWlsZFJlcXVlc3RzKCk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90cmlnZ2VyYWJsZS5qcyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3RyaWdnZXJhYmxlLmpzCmluZGV4IGQ1ZmYzYzQ4
YzMyOWY5YjRkNjhlODQyMDMwZDIwYmQyYTg3ZTVhOGQuLmU0MTA1MzMwYThjOGQ3MjA3NDBmMDU1
MjgyODhlYmZiNDQ1MTM3MjcgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9w
dWJsaWMvdjMvbW9kZWxzL3RyaWdnZXJhYmxlLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3RyaWdnZXJhYmxlLmpzCkBAIC03LDE1ICs3LDEzIEBAIGNs
YXNzIFRyaWdnZXJhYmxlIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgICAgIHRoaXMuX2lz
RGlzYWJsZWQgPSAhIW9iamVjdC5pc0Rpc2FibGVkOwogICAgICAgICB0aGlzLl9hY2NlcHRlZFJl
cG9zaXRvcmllcyA9IG9iamVjdC5hY2NlcHRlZFJlcG9zaXRvcmllczsKICAgICAgICAgdGhpcy5f
cmVwb3NpdG9yeUdyb3VwcyA9IG9iamVjdC5yZXBvc2l0b3J5R3JvdXBzOwotICAgICAgICB0aGlz
Ll9jb25maWd1cmF0aW9uTGlzdCA9IG9iamVjdC5jb25maWd1cmF0aW9uczsKKyAgICAgICAgdGhp
cy5fdHJpZ2dlcmFibGVDb25maWd1cmF0aW9uTGlzdCA9IFtdOwogICAgICAgICB0aGlzLl9hY2Nl
cHRlZFRlc3RzID0gbmV3IFNldDsKIAotICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uTWFwID0g
dGhpcy5lbnN1cmVOYW1lZFN0YXRpY01hcCgndGVzdENvbmZpZ3VyYXRpb25zJyk7CiAgICAgICAg
IGZvciAoY29uc3QgY29uZmlnIG9mIG9iamVjdC5jb25maWd1cmF0aW9ucykgewotICAgICAgICAg
ICAgY29uc3Qga2V5ID0gYCR7Y29uZmlnLnRlc3QuaWQoKX0tJHtjb25maWcucGxhdGZvcm0uaWQo
KX1gOwogICAgICAgICAgICAgdGhpcy5fYWNjZXB0ZWRUZXN0cy5hZGQoY29uZmlnLnRlc3QpOwot
ICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoIShrZXkgaW4gY29uZmlndXJhdGlvbk1hcCkpOwot
ICAgICAgICAgICAgY29uZmlndXJhdGlvbk1hcFtrZXldID0gdGhpczsKKyAgICAgICAgICAgIHRo
aXMuX3RyaWdnZXJhYmxlQ29uZmlndXJhdGlvbkxpc3QucHVzaChUcmlnZ2VyYWJsZUNvbmZpZ3Vy
YXRpb24uY3JlYXRlRm9yVHJpZ2dlcmFibGUodGhpcywgY29uZmlnLnRlc3QsCisgICAgICAgICAg
ICAgICAgY29uZmlnLnBsYXRmb3JtLCBjb25maWcuc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzKSk7
CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTI1LDE4ICsyMyw3IEBAIGNsYXNzIFRyaWdnZXJhYmxl
IGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAKICAgICBhY2NlcHRlZFRlc3RzKCkgeyByZXR1cm4g
dGhpcy5fYWNjZXB0ZWRUZXN0czsgfQogCi0gICAgc3RhdGljIGZpbmRCeVRlc3RDb25maWd1cmF0
aW9uKHRlc3QsIHBsYXRmb3JtKQotICAgIHsKLSAgICAgICAgbGV0IGNvbmZpZ3VyYXRpb25NYXAg
PSB0aGlzLmVuc3VyZU5hbWVkU3RhdGljTWFwKCd0ZXN0Q29uZmlndXJhdGlvbnMnKTsKLSAgICAg
ICAgaWYgKCFjb25maWd1cmF0aW9uTWFwKQotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAg
ICAgIGZvciAoOyB0ZXN0OyB0ZXN0ID0gdGVzdC5wYXJlbnRUZXN0KCkpIHsKLSAgICAgICAgICAg
IGNvbnN0IGtleSA9IGAke3Rlc3QuaWQoKX0tJHtwbGF0Zm9ybS5pZCgpfWA7Ci0gICAgICAgICAg
ICBpZiAoa2V5IGluIGNvbmZpZ3VyYXRpb25NYXApCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNv
bmZpZ3VyYXRpb25NYXBba2V5XTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbnVsbDsKLSAg
ICB9CisgICAgc3RhdGljIGZpbmRCeVRlc3RDb25maWd1cmF0aW9uKHRlc3QsIHBsYXRmb3JtKSB7
IHJldHVybiBUcmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24uZmluZEJ5VGVzdEFuZFBsYXRmb3JtKHRl
c3QsIHBsYXRmb3JtKT8udHJpZ2dlcmFibGU7IH0KIAogICAgIHN0YXRpYyB0cmlnZ2VyYWJsZVBs
YXRmb3Jtc0ZvclRlc3RzKHRlc3RzKQogICAgIHsKQEAgLTUyLDYgKzM5LDUwIEBAIGNsYXNzIFRy
aWdnZXJhYmxlIGV4dGVuZHMgTGFiZWxlZE9iamVjdCB7CiAgICAgfQogfQogCisKK2NsYXNzIFRy
aWdnZXJhYmxlQ29uZmlndXJhdGlvbiBleHRlbmRzIERhdGFNb2RlbE9iamVjdCB7CisgICAgI3Ry
aWdnZXJhYmxlOworICAgICN0ZXN0OworICAgICNwbGF0Zm9ybTsKKyAgICAjc3VwcG9ydGVkUmVw
ZXRpdGlvblR5cGVzOworCisgICAgY29uc3RydWN0b3IoaWQsIG9iamVjdCkKKyAgICB7CisgICAg
ICAgIHN1cGVyKGlkKTsKKyAgICAgICAgdGhpcy4jdHJpZ2dlcmFibGUgPSBvYmplY3QudHJpZ2dl
cmFibGU7CisgICAgICAgIHRoaXMuI3Rlc3QgPSBvYmplY3QudGVzdDsKKyAgICAgICAgdGhpcy4j
cGxhdGZvcm0gPSBvYmplY3QucGxhdGZvcm07CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KG9iamVj
dC5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMuZXZlcnkoVHJpZ2dlcmFibGVDb25maWd1cmF0aW9u
LmlzVmFsaWRSZXBldGl0aW9uVHlwZS5iaW5kKFRyaWdnZXJhYmxlQ29uZmlndXJhdGlvbikpKTsK
KyAgICAgICAgdGhpcy4jc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzID0gb2JqZWN0LnN1cHBvcnRl
ZFJlcGV0aXRpb25UeXBlczsKKyAgICB9CisKKyAgICBnZXQgdHJpZ2dlcmFibGUoKSB7IHJldHVy
biB0aGlzLiN0cmlnZ2VyYWJsZTsgfQorICAgIGdldCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMo
KSB7IHJldHVybiB0aGlzLiNzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM7IH0KKyAgICBpc1N1cHBv
cnRlZFJlcGV0aXRpb25UeXBlKHJlcGV0aXRpb25UeXBlKSB7IHJldHVybiB0aGlzLiNzdXBwb3J0
ZWRSZXBldGl0aW9uVHlwZXMuaW5jbHVkZXMocmVwZXRpdGlvblR5cGUpOyB9CisKKyAgICBzdGF0
aWMgaWRGb3JUZXN0QW5kUGxhdGZvcm0odGVzdCwgcGxhdGZvcm0pIHsgcmV0dXJuIGAke3Rlc3Qu
aWQoKX0tJHtwbGF0Zm9ybS5pZCgpfWA7IH0KKworICAgIHN0YXRpYyBjcmVhdGVGb3JUcmlnZ2Vy
YWJsZSh0cmlnZ2VyYWJsZSwgdGVzdCwgcGxhdGZvcm0sIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBl
cykKKyAgICB7CisgICAgICAgIGNvbnN0IGlkID0gdGhpcy5pZEZvclRlc3RBbmRQbGF0Zm9ybSh0
ZXN0LCBwbGF0Zm9ybSk7CisgICAgICAgIHJldHVybiBUcmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24u
ZW5zdXJlU2luZ2xldG9uKGlkLCB7IHRlc3QsIHBsYXRmb3JtLCBzdXBwb3J0ZWRSZXBldGl0aW9u
VHlwZXMsIHRyaWdnZXJhYmxlIH0pOworICAgIH0KKworICAgIHN0YXRpYyBmaW5kQnlUZXN0QW5k
UGxhdGZvcm0odGVzdCwgcGxhdGZvcm0pCisgICAgeworICAgICAgICBmb3IgKDsgdGVzdDsgdGVz
dCA9IHRlc3QucGFyZW50VGVzdCgpKSB7CisgICAgICAgICAgICBjb25zdCBpZCA9IHRoaXMuaWRG
b3JUZXN0QW5kUGxhdGZvcm0odGVzdCwgcGxhdGZvcm0pOworICAgICAgICAgICAgY29uc3QgdHJp
Z2dlcmFibGVDb25maWd1cmF0aW9uID0gVHJpZ2dlcmFibGVDb25maWd1cmF0aW9uLmZpbmRCeUlk
KGlkKTsKKyAgICAgICAgICAgIGlmICh0cmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24pCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHRyaWdnZXJhYmxlQ29uZmlndXJhdGlvbjsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBzdGF0aWMgaXNWYWxpZFJlcGV0aXRpb25U
eXBlKHJlcGV0aXRpb25UeXBlKSB7IHJldHVybiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwn
LCAncGFpcmVkLXBhcmFsbGVsJ10uaW5jbHVkZXMocmVwZXRpdGlvblR5cGUpOyB9Cit9CisKKwog
Y2xhc3MgVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsK
IAogICAgIGNvbnN0cnVjdG9yKGlkLCBvYmplY3QpCkBAIC0xMDksNiArMTQwLDcgQEAgY2xhc3Mg
VHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAgZXh0ZW5kcyBMYWJlbGVkT2JqZWN0IHsKIAogaWYg
KHR5cGVvZiBtb2R1bGUgIT0gJ3VuZGVmaW5lZCcpIHsKICAgICBtb2R1bGUuZXhwb3J0cy5Ucmln
Z2VyYWJsZSA9IFRyaWdnZXJhYmxlOworICAgIG1vZHVsZS5leHBvcnRzLlRyaWdnZXJhYmxlQ29u
ZmlndXJhdGlvbiA9IFRyaWdnZXJhYmxlQ29uZmlndXJhdGlvbjsKICAgICBtb2R1bGUuZXhwb3J0
cy5UcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91cCA9IFRyaWdnZXJhYmxlUmVwb3NpdG9yeUdyb3Vw
OwogfQogCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3Bh
Z2VzL2FuYWx5c2lzLXRhc2stcGFnZS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvdjMvcGFnZXMvYW5hbHlzaXMtdGFzay1wYWdlLmpzCmluZGV4IGZiZDA0MGJmMWUzZWY4YzRj
YjI5ODcxZGRkMDJhMWMxMWUwYjVjNzAuLmU1ZTg3NmY2ZmQ3NmM0ZTA0MmNiYzMxZmU2NDgzNTli
OGE0MzUzOTcgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMv
cGFnZXMvYW5hbHlzaXMtdGFzay1wYWdlLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9wdWJsaWMvdjMvcGFnZXMvYW5hbHlzaXMtdGFzay1wYWdlLmpzCkBAIC03Nyw2ICs3Nyw3IEBA
IGNsYXNzIEFuYWx5c2lzVGFza1Jlc3VsdHNQYW5lIGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CiAg
ICAgc2V0VGVzdEdyb3Vwcyh0ZXN0R3JvdXBzLCBjdXJyZW50R3JvdXApCiAgICAgewogICAgICAg
ICB0aGlzLnBhcnQoJ3Jlc3VsdHMtdmlld2VyJykuc2V0VGVzdEdyb3Vwcyh0ZXN0R3JvdXBzLCBj
dXJyZW50R3JvdXApOworICAgICAgICB0aGlzLnBhcnQoJ2Zvcm0nKS51cGRhdGVXaXRoVGVzdEdy
b3VwKGN1cnJlbnRHcm91cCk7CiAgICAgICAgIHRoaXMuZW5xdWV1ZVRvUmVuZGVyKCk7CiAgICAg
fQogCkBAIC0zNjYsMTAgKzM2NywxMSBAQCBjbGFzcyBBbmFseXNpc1Rhc2tUZXN0R3JvdXBQYW5l
IGV4dGVuZHMgQ29tcG9uZW50QmFzZSB7CiAgICAgICAgIGlmIChzZWxlY3RlZCkKICAgICAgICAg
ICAgIHNlbGVjdGVkLmNsYXNzTGlzdC5yZW1vdmUoJ3NlbGVjdGVkJyk7CiAKKyAgICAgICAgdGhp
cy5wYXJ0KCdyZXRyeS1mb3JtJykudXBkYXRlV2l0aFRlc3RHcm91cChjdXJyZW50R3JvdXApOwor
ICAgICAgICB0aGlzLnBhcnQoJ2Jpc2VjdC1mb3JtJykudXBkYXRlV2l0aFRlc3RHcm91cChjdXJy
ZW50R3JvdXApOworCiAgICAgICAgIGlmIChjdXJyZW50R3JvdXApIHsKICAgICAgICAgICAgIHRo
aXMuX3Rlc3RHcm91cE1hcC5nZXQoY3VycmVudEdyb3VwKS5saXN0SXRlbS5jbGFzc0xpc3QuYWRk
KCdzZWxlY3RlZCcpOwotICAgICAgICAgICAgdGhpcy5wYXJ0KCdyZXRyeS1mb3JtJykuc2V0UmVw
ZXRpdGlvbkNvdW50KGN1cnJlbnRHcm91cC5pbml0aWFsUmVwZXRpdGlvbkNvdW50KCkpOwotICAg
ICAgICAgICAgdGhpcy5wYXJ0KCdiaXNlY3QtZm9ybScpLnNldFJlcGV0aXRpb25Db3VudChjdXJy
ZW50R3JvdXAuaW5pdGlhbFJlcGV0aXRpb25Db3VudCgpKTsKIAogICAgICAgICAgICAgaWYgKGN1
cnJlbnRHcm91cC5oYXNSZXRyaWVzKCkpCiAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJSZXBs
YWNlKHRoaXMuY29udGVudCgncmV0cnktc3VtbWFyeScpLCB0aGlzLl9yZXRyeVN1bW1hcnkoY3Vy
cmVudEdyb3VwKSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L3YzL3BhZ2VzL2NoYXJ0LXBhbmUuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L3YzL3BhZ2VzL2NoYXJ0LXBhbmUuanMKaW5kZXggYjU4Y2UyNjg2Y2QxZGY5ZDI5YmZlNmQ0MGM5
YzljZTBlNDQ4YjhiYy4uMDBiM2Q4YTk3ZDk1ODMyZjhkYjg0Nzc0NjQ0MWM4Y2E4ZGFhMTFkZSAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9jaGFy
dC1wYW5lLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMv
Y2hhcnQtcGFuZS5qcwpAQCAtMTIwLDEzICsxMjAsMTMgQEAgY2xhc3MgQ2hhcnRQYW5lIGV4dGVu
ZHMgQ2hhcnRQYW5lQmFzZSB7CiAgICAgICAgIGNvbnN0IGNyZWF0ZVdpdGhUZXN0R3JvdXBDaGVj
a2JveCA9IHRoaXMuY29udGVudCgnY3JlYXRlLXdpdGgtdGVzdC1ncm91cCcpOwogICAgICAgICBj
b25zdCByZXBldGl0aW9uQ291bnQgPSB0aGlzLmNvbnRlbnQoJ2NvbmZpcm0tcmVwZXRpdGlvbicp
OwogICAgICAgICBjb25zdCBub3RpZnlPbkNvbXBsZXRpb24gPSB0aGlzLmNvbnRlbnQoJ25vdGlm
eS1vbi1jb21wbGV0aW9uJyk7Ci0gICAgICAgIGNvbnN0IHJlcGV0aXRpb25UeXBlID0gdGhpcy5j
b250ZW50KCdyZXBldGl0aW9uLXR5cGUnKTsKKyAgICAgICAgY29uc3QgcmVwZXRpdGlvblR5cGVT
ZWxlY3Rpb24gPSB0aGlzLnBhcnQoJ3JlcGV0aXRpb24tdHlwZS1zZWxlY3RvcicpOwogICAgICAg
ICBjcmVhdGVXaXRoVGVzdEdyb3VwQ2hlY2tib3gub25jaGFuZ2UgPSAoKSA9PiB7CiAgICAgICAg
ICAgICAvLyBGSVhNRTogc2hvdWxkIGludm9rZSAiZW5xdWV1ZVRvUmVuZGVyIiBpbnN0ZWFkLgog
ICAgICAgICAgICAgY29uc3Qgc2hvdWxkRGlzYWJsZSA9ICFjcmVhdGVXaXRoVGVzdEdyb3VwQ2hl
Y2tib3guY2hlY2tlZDsKICAgICAgICAgICAgIHJlcGV0aXRpb25Db3VudC5kaXNhYmxlZCA9IHNo
b3VsZERpc2FibGU7CiAgICAgICAgICAgICBub3RpZnlPbkNvbXBsZXRpb24uZGlzYWJsZWQgPSBz
aG91bGREaXNhYmxlOwotICAgICAgICAgICAgcmVwZXRpdGlvblR5cGUuZGlzYWJsZWQgPSBzaG91
bGREaXNhYmxlOworICAgICAgICAgICAgcmVwZXRpdGlvblR5cGVTZWxlY3Rpb24uZGlzYWJsZWQg
PSBzaG91bGREaXNhYmxlOwogICAgICAgICB9OwogICAgIH0KIApAQCAtMjQ2LDcgKzI0Niw3IEBA
IGNsYXNzIENoYXJ0UGFuZSBleHRlbmRzIENoYXJ0UGFuZUJhc2UgewogICAgICAgICBjb25zdCBj
cmVhdGVXaXRoVGVzdEdyb3VwID0gdGhpcy5jb250ZW50KCdjcmVhdGUtd2l0aC10ZXN0LWdyb3Vw
JykuY2hlY2tlZDsKICAgICAgICAgY29uc3QgcmVwZXRpdGlvbkNvdW50ID0gdGhpcy5jb250ZW50
KCdjb25maXJtLXJlcGV0aXRpb24nKS52YWx1ZTsKICAgICAgICAgY29uc3Qgbm90aWZ5T25Db21w
bGV0aW9uID0gdGhpcy5jb250ZW50KCdub3RpZnktb24tY29tcGxldGlvbicpLmNoZWNrZWQ7Ci0g
ICAgICAgIGNvbnN0IHJlcGV0aXRpb25UeXBlID0gdGhpcy5jb250ZW50KCdyZXBldGl0aW9uLXR5
cGUnKS52YWx1ZTsKKyAgICAgICAgY29uc3QgcmVwZXRpdGlvblR5cGUgPSB0aGlzLnBhcnQoJ3Jl
cGV0aXRpb24tdHlwZS1zZWxlY3RvcicpLnNlbGVjdGVkUmVwZXRpdGlvblR5cGU7CiAKICAgICAg
ICAgdHJ5IHsKICAgICAgICAgICAgIGNvbnN0IGFuYWx5c2lzVGFzayA9IGF3YWl0IChjcmVhdGVX
aXRoVGVzdEdyb3VwID8KQEAgLTMxOSw2ICszMTksOSBAQCBjbGFzcyBDaGFydFBhbmUgZXh0ZW5k
cyBDaGFydFBhbmVCYXNlIHsKICAgICAgICAgY29uc3Qgc2VsZWN0ZWRQb2ludHMgPSB0aGlzLl9t
YWluQ2hhcnQuc2VsZWN0ZWRQb2ludHMoJ2N1cnJlbnQnKTsKICAgICAgICAgY29uc3QgaGFzU2Vs
ZWN0ZWRQb2ludHMgPSBzZWxlY3RlZFBvaW50cyAmJiBzZWxlY3RlZFBvaW50cy5sZW5ndGgoKTsK
ICAgICAgICAgaWYgKGhhc1NlbGVjdGVkUG9pbnRzKSB7CisgICAgICAgICAgICBjb25zdCByZXBl
dGl0aW9uVHlwZVNlbGVjdGlvbiA9IHRoaXMucGFydCgncmVwZXRpdGlvbi10eXBlLXNlbGVjdG9y
Jyk7CisgICAgICAgICAgICByZXBldGl0aW9uVHlwZVNlbGVjdGlvbi5zZXRUZXN0QW5kUGxhdGZv
cm0obWV0cmljLnRlc3QoKSwgcGxhdGZvcm0pOworICAgICAgICAgICAgcmVwZXRpdGlvblR5cGVT
ZWxlY3Rpb24uZW5xdWV1ZVRvUmVuZGVyKCk7CiAgICAgICAgICAgICBhY3Rpb25zLnB1c2godGhp
cy5fbWFrZVBvcG92ZXJBY3Rpb25JdGVtKGFuYWx5emVQb3BvdmVyLCAnQW5hbHl6ZScsIGZhbHNl
KSk7CiAgICAgICAgICAgICBhbmFseXplUG9wb3Zlci5vbnN1Ym1pdCA9IHRoaXMuY3JlYXRlRXZl
bnRIYW5kbGVyKCgpID0+IHsKICAgICAgICAgICAgICAgICB0aGlzLl9hbmFseXplUmFuZ2Uoc2Vs
ZWN0ZWRQb2ludHMuZmlyc3RQb2ludCgpLCBzZWxlY3RlZFBvaW50cy5sYXN0UG9pbnQoKSk7CkBA
IC01OTYsMTAgKzU5OSw3IEBAIGNsYXNzIENoYXJ0UGFuZSBleHRlbmRzIENoYXJ0UGFuZUJhc2Ug
ewogICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAg
IDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+SW48L2xhYmVsPgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgaWQ9InJlcGV0aXRpb24tdHlwZSI+Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImFsdGVybmF0aW5n
IiBzZWxlY3RlZD5hbHRlcm5hdGUgKEFCQUIpPC9vcHRpb24+Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InNlcXVlbnRpYWwiPnNlcXVlbmNlIChBQUJCKTwv
b3B0aW9uPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxyZXBldGl0aW9uLXR5cGUtc2VsZWN0aW9uIGlkPSJyZXBldGl0
aW9uLXR5cGUtc2VsZWN0b3IiPjwvcmVwZXRpdGlvbi10eXBlLXNlbGVjdGlvbj4KICAgICAgICAg
ICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9
Im5vdGlmeS1vbi1jb21wbGV0aW9uIiBjaGVja2VkPk5vdGlmeSBvbiBjb21wbGV0aW9uPC9sYWJl
bD4KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LW1hbmlmZXN0LXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy9hcGktbWFuaWZlc3QtdGVzdHMuanMKaW5kZXggY2FhMGIyY2U2MWNhMTJmMjU1NTE2NTBlODE2
MjY5MjA3NjhhZGFkNS4uODk4MmYzYjQwYzZjZGQyMzE3NzgyOGY1MjM3ODIzNmQzZmY0MmM5YyAx
MDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktbWFu
aWZlc3QtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0
cy9hcGktbWFuaWZlc3QtdGVzdHMuanMKQEAgLTM2NCwxMiArMzY0LDI0IEBAIGRlc2NyaWJlKCcv
YXBpL21hbmlmZXN0JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmln
Z2VyYWJsZV9yZXBvc2l0b3JpZXMnLCB7Z3JvdXA6IDMwMiwgcmVwb3NpdG9yeTogOX0pLAogICAg
ICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCB7Z3JvdXA6IDMw
MywgcmVwb3NpdG9yeTogOX0pLAogICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9y
ZXBvc2l0b3JpZXMnLCB7Z3JvdXA6IDMwNCwgcmVwb3NpdG9yeTogMTZ9KSwKLSAgICAgICAgICAg
IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCB7dHJpZ2dlcmFibGU6IDIw
MCwgdGVzdDogMSwgcGxhdGZvcm06IDQ2fSksCi0gICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdn
ZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywge3RyaWdnZXJhYmxlOiAyMDAsIHRlc3Q6IDIsIHBsYXRm
b3JtOiA0Nn0pLAotICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0
aW9ucycsIHt0cmlnZ2VyYWJsZTogMjAxLCB0ZXN0OiAxLCBwbGF0Zm9ybTogMjN9KSwKLSAgICAg
ICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCB7dHJpZ2dlcmFi
bGU6IDIwMSwgdGVzdDogMiwgcGxhdGZvcm06IDIzfSksCi0gICAgICAgICAgICBkYi5pbnNlcnQo
J3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywge3RyaWdnZXJhYmxlOiAyMDIsIHRlc3Q6IDEs
IHBsYXRmb3JtOiAxMDR9KSwKLSAgICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29u
ZmlndXJhdGlvbnMnLCB7dHJpZ2dlcmFibGU6IDIwMiwgdGVzdDogMiwgcGxhdGZvcm06IDEwNH0p
LAorICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHtp
ZDogMSwgdHJpZ2dlcmFibGU6IDIwMCwgdGVzdDogMSwgcGxhdGZvcm06IDQ2fSksCisgICAgICAg
ICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBl
cycsIHtjb25maWc6IDEsIHR5cGU6ICdhbHRlcm5hdGluZyd9KSwKKyAgICAgICAgICAgIGRiLmlu
c2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywge2NvbmZp
ZzogMSwgdHlwZTogJ3NlcXVlbnRpYWwnfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdn
ZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywge2lkOiAyLCB0cmlnZ2VyYWJsZTogMjAwLCB0ZXN0OiAy
LCBwbGF0Zm9ybTogNDZ9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29u
ZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywge2NvbmZpZzogMiwgdHlwZTogJ2FsdGVybmF0
aW5nJ30pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9u
X3JlcGV0aXRpb25fdHlwZXMnLCB7Y29uZmlnOiAyLCB0eXBlOiAnc2VxdWVudGlhbCd9KSwKKyAg
ICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCB7aWQ6IDMs
IHRyaWdnZXJhYmxlOiAyMDEsIHRlc3Q6IDEsIHBsYXRmb3JtOiAyM30pLAorICAgICAgICAgICAg
ZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMnLCB7
Y29uZmlnOiAzLCB0eXBlOiAnYWx0ZXJuYXRpbmcnfSksCisgICAgICAgICAgICBkYi5pbnNlcnQo
J3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcycsIHtjb25maWc6IDMs
IHR5cGU6ICdzZXF1ZW50aWFsJ30pLAorICAgICAgICAgICAgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJs
ZV9jb25maWd1cmF0aW9ucycsIHtpZDogNCwgdHJpZ2dlcmFibGU6IDIwMSwgdGVzdDogMiwgcGxh
dGZvcm06IDIzfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3Vy
YXRpb25fcmVwZXRpdGlvbl90eXBlcycsIHtjb25maWc6IDQsIHR5cGU6ICdhbHRlcm5hdGluZyd9
KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBl
dGl0aW9uX3R5cGVzJywge2NvbmZpZzogNCwgdHlwZTogJ3NlcXVlbnRpYWwnfSksCisgICAgICAg
ICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywge2lkOiA1LCB0cmln
Z2VyYWJsZTogMjAyLCB0ZXN0OiAxLCBwbGF0Zm9ybTogMTA0fSksCisgICAgICAgICAgICBkYi5p
bnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcycsIHtjb25m
aWc6IDUsIHR5cGU6ICdhbHRlcm5hdGluZyd9KSwKKyAgICAgICAgICAgIGRiLmluc2VydCgndHJp
Z2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywge2NvbmZpZzogNSwgdHlw
ZTogJ3NlcXVlbnRpYWwnfSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2Nv
bmZpZ3VyYXRpb25zJywge2lkOiA2LCB0cmlnZ2VyYWJsZTogMjAyLCB0ZXN0OiAyLCBwbGF0Zm9y
bTogMTA0fSksCisgICAgICAgICAgICBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRp
b25fcmVwZXRpdGlvbl90eXBlcycsIHtjb25maWc6IDYsIHR5cGU6ICdhbHRlcm5hdGluZyd9KSwK
KyAgICAgICAgICAgIGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0
aW9uX3R5cGVzJywge2NvbmZpZzogNiwgdHlwZTogJ3NlcXVlbnRpYWwnfSksCiAgICAgICAgIF0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZldGNoKCk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLXRlc3RzLmpzIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktdXBkYXRlLXRyaWdnZXJhYmxlLXRlc3Rz
LmpzCmluZGV4IDFhMzUyYjM4NGFjMzFjODIxOWEzNTAzMzE3ODY1MzA3YjAxNzY0NGEuLmYwZTU0
N2ZkZTE0NjEzMjgyODc3Y2EyYzcwZWVjOTU1MDE5OTg2ZDEgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLXVwZGF0ZS10cmlnZ2VyYWJsZS10ZXN0
cy5qcworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11cGRh
dGUtdHJpZ2dlcmFibGUtdGVzdHMuanMKQEAgLTgsNiArOCw3IEBAIGNvbnN0IFRlc3RTZXJ2ZXIg
PSByZXF1aXJlKCcuL3Jlc291cmNlcy90ZXN0LXNlcnZlci5qcycpOwogY29uc3QgTW9ja0RhdGEg
PSByZXF1aXJlKCcuL3Jlc291cmNlcy9tb2NrLWRhdGEuanMnKTsKIGNvbnN0IGFkZFdvcmtlckZv
clJlcG9ydCA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL2NvbW1vbi1vcGVyYXRpb25zLmpzJykuYWRk
V29ya2VyRm9yUmVwb3J0OwogY29uc3QgcHJlcGFyZVNlcnZlclRlc3QgPSByZXF1aXJlKCcuL3Jl
c291cmNlcy9jb21tb24tb3BlcmF0aW9ucy5qcycpLnByZXBhcmVTZXJ2ZXJUZXN0OworY29uc3Qg
YXNzZXJ0VGhyb3dzID0gcmVxdWlyZSgnLi4vc2VydmVyLXRlc3RzL3Jlc291cmNlcy9jb21tb24t
b3BlcmF0aW9ucycpLmFzc2VydFRocm93czsKIAogZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdn
ZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICBwcmVwYXJlU2VydmVyVGVzdCh0aGlzKTsKQEAg
LTE5LDE0ICsyMCwxNiBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAnY29uZmlndXJhdGlvbnMnOiBbXSwKICAgICB9OwogCi0gICAg
Y29uc3Qgc21hbGxVcGRhdGUgPSB7Ci0gICAgICAgICd3b3JrZXJOYW1lJzogJ3NvbWVXb3JrZXIn
LAotICAgICAgICAnd29ya2VyUGFzc3dvcmQnOiAnc29tZVBhc3N3b3JkJywKLSAgICAgICAgJ3Ry
aWdnZXJhYmxlJzogJ2J1aWxkLXdlYmtpdCcsCi0gICAgICAgICdjb25maWd1cmF0aW9ucyc6IFsK
LSAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2Nr
RGF0YS5zb21lUGxhdGZvcm1JZCgpfQotICAgICAgICBdLAotICAgIH07CisgICAgZnVuY3Rpb24g
Y3JlYXRlVXBkYXRlV2l0aFJlcGV0aXRpb25UeXBlcyhzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMp
IHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICd3b3JrZXJOYW1lJzogJ3NvbWVXb3Jr
ZXInLAorICAgICAgICAgICAgJ3dvcmtlclBhc3N3b3JkJzogJ3NvbWVQYXNzd29yZCcsCisgICAg
ICAgICAgICAndHJpZ2dlcmFibGUnOiAnYnVpbGQtd2Via2l0JywKKyAgICAgICAgICAgICdjb25m
aWd1cmF0aW9ucyc6IFt7dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBwbGF0Zm9ybTogTW9j
a0RhdGEuc29tZVBsYXRmb3JtSWQoKSwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzfV0sCisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBjb25zdCBzbWFsbFVwZGF0ZSA9IGNyZWF0ZVVwZGF0ZVdpdGhS
ZXBldGl0aW9uVHlwZXMoWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ10pOwogCiAgICAgaXQo
J3Nob3VsZCByZWplY3Qgd2hlbiB3b3JrZXIgbmFtZSBpcyBtaXNzaW5nJywgKCkgPT4gewogICAg
ICAgICByZXR1cm4gVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS91cGRhdGUt
dHJpZ2dlcmFibGUvJywge30pLnRoZW4oKHJlc3BvbnNlKSA9PiB7CkBAIC0xMTksNyArMTIyLDcg
QEAgZGVzY3JpYmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgICd3b3JrZXJQYXNzd29yZCc6ICdzb21lUGFzc3dvcmQnLAogICAgICAgICAgICAg
J3RyaWdnZXJhYmxlJzogJ2VtcHR5LXRyaWdnZXJhYmxlJywKICAgICAgICAgICAgICdjb25maWd1
cmF0aW9ucyc6IFsKLSAgICAgICAgICAgICAgICB7dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgp
LCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKX0KKyAgICAgICAgICAgICAgICB7
dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRm
b3JtSWQoKSwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVl
bnRpYWwnXX0sCiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgJ3JlcG9zaXRvcnlHcm91cHMn
OiBbCiAgICAgICAgICAgICAgICAge25hbWU6ICdzeXN0ZW0tb25seScsIHJlcG9zaXRvcmllczog
WwpAQCAtMjUzLDYgKzI1Niw4IEBAIGRlc2NyaWJlKCcvYXBpL3VwZGF0ZS10cmlnZ2VyYWJsZS8n
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gewogICAgICAgICAg
ICAgY29uc3QgW2luaXRpYWxDb25maWd1cmF0aW9ucywgaW5pdGlhbFJlcG9zaXRvcnlHcm91cHNd
ID0gaW5pdGlhbFJlc3VsdDsKICAgICAgICAgICAgIGNvbnN0IFtjb25maWd1cmF0aW9ucywgcmVw
b3NpdG9yeUdyb3Vwc10gPSByZXN1bHQ7CisgICAgICAgICAgICBpbml0aWFsQ29uZmlndXJhdGlv
bnMuZm9yRWFjaChjb25maWcgPT4gZGVsZXRlIGNvbmZpZy5pZCk7CisgICAgICAgICAgICBjb25m
aWd1cmF0aW9ucy5mb3JFYWNoKGNvbmZpZyA9PiBkZWxldGUgY29uZmlnLmlkKTsKICAgICAgICAg
ICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoY29uZmlndXJhdGlvbnMsIGluaXRpYWxDb25maWd1
cmF0aW9ucyk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHJlcG9zaXRvcnlH
cm91cHMsIGluaXRpYWxSZXBvc2l0b3J5R3JvdXBzKTsKICAgICAgICAgfSkKQEAgLTI3NSw2ICsy
ODAsOCBAQCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkg
ewogICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHsKICAgICAgICAgICAgIGNvbnN0IFtpbml0
aWFsQ29uZmlndXJhdGlvbnMsIGluaXRpYWxSZXBvc2l0b3J5R3JvdXBzXSA9IGluaXRpYWxSZXN1
bHQ7CiAgICAgICAgICAgICBjb25zdCBbY29uZmlndXJhdGlvbnMsIHJlcG9zaXRvcnlHcm91cHNd
ID0gcmVzdWx0OworICAgICAgICAgICAgaW5pdGlhbENvbmZpZ3VyYXRpb25zLmZvckVhY2goY29u
ZmlnID0+IGRlbGV0ZSBjb25maWcuaWQpOworICAgICAgICAgICAgY29uZmlndXJhdGlvbnMuZm9y
RWFjaChjb25maWcgPT4gZGVsZXRlIGNvbmZpZy5pZCk7CiAgICAgICAgICAgICBhc3NlcnQuZGVl
cFN0cmljdEVxdWFsKGNvbmZpZ3VyYXRpb25zLCBpbml0aWFsQ29uZmlndXJhdGlvbnMpOwogICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXBvc2l0b3J5R3JvdXBzLCBpbml0aWFs
UmVwb3NpdG9yeUdyb3Vwcyk7CiAgICAgICAgIH0pCkBAIC0zMDgsNyArMzE1LDcgQEAgZGVzY3Jp
YmUoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlLycsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAg
ICd3b3JrZXJQYXNzd29yZCc6ICdzb21lUGFzc3dvcmQnLAogICAgICAgICAgICAgJ3RyaWdnZXJh
YmxlJzogJ2VtcHR5LXRyaWdnZXJhYmxlJywKICAgICAgICAgICAgICdjb25maWd1cmF0aW9ucyc6
IFsKLSAgICAgICAgICAgICAgICB7dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLCBwbGF0Zm9y
bTogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKX0KKyAgICAgICAgICAgICAgICB7dGVzdDogTW9j
a0RhdGEuc29tZVRlc3RJZCgpLCBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSwg
c3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXX0s
CiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgJ3JlcG9zaXRvcnlHcm91cHMnOiBbCiAgICAg
ICAgICAgICAgICAge25hbWU6ICdzeXN0ZW0tb25seScsIHJlcG9zaXRvcmllczogW3tyZXBvc2l0
b3J5OiBNb2NrRGF0YS5tYWNvc1JlcG9zaXRvcnlJZCgpfV19LApAQCAtNDY1LDQgKzQ3MiwyMiBA
QCBkZXNjcmliZSgnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUvJywgZnVuY3Rpb24gKCkgewogICAg
ICAgICB9KTsKICAgICB9KTsKIAorICAgIGl0KCdzaG91bGQgYWxsb3cgYWRkaW5nICJwYWlyZWQt
cGFyYWxsZWwiIHJlcGV0aXRpb24gdHlwZSB0byB0cmlnZ2VyYWJsZSBjb25maWd1cmF0aW9uJywg
YXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsK
KyAgICAgICAgYXdhaXQgTW9ja0RhdGEuYWRkTW9ja0RhdGEoZGIpOworICAgICAgICBjb25zdCBp
bml0aWFsVXBkYXRlID0gY3JlYXRlVXBkYXRlV2l0aFJlcGV0aXRpb25UeXBlcyhbJ2FsdGVybmF0
aW5nJywgJ3NlcXVlbnRpYWwnXSk7CisgICAgICAgIGF3YWl0IGFkZFdvcmtlckZvclJlcG9ydChp
bml0aWFsVXBkYXRlKTsKKyAgICAgICAgYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0
SlNPTldpdGhTdGF0dXMoJy9hcGkvdXBkYXRlLXRyaWdnZXJhYmxlJywgaW5pdGlhbFVwZGF0ZSk7
CisKKyAgICAgICAgbGV0IHJvd3MgPSBhd2FpdCBkYi5zZWxlY3RBbGwoJ3RyaWdnZXJhYmxlX2Nv
bmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcycsICd0eXBlJyk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChyb3dzLmxlbmd0aCwgMik7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocm93
cy5tYXAocm93ID0+IHJvdy50eXBlKS5zb3J0KCksIFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlh
bCddKTsKKworICAgICAgICBjb25zdCB1cGRhdGVXaXRoUGFyYWxsZWxSZXBldGl0aW9uID0gY3Jl
YXRlVXBkYXRlV2l0aFJlcGV0aXRpb25UeXBlcyhbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwn
LCAncGFpcmVkLXBhcmFsbGVsJ10pOworICAgICAgICBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLnBvc3RKU09OV2l0aFN0YXR1cygnL2FwaS91cGRhdGUtdHJpZ2dlcmFibGUnLCB1cGRhdGVX
aXRoUGFyYWxsZWxSZXBldGl0aW9uKTsKKyAgICAgICAgcm93cyA9IGF3YWl0IGRiLnNlbGVjdEFs
bCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywgJ3R5cGUnKTsK
KyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJvd3MubGVuZ3RoLCAzKTsKKyAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyb3dzLm1hcChyb3cgPT4gcm93LnR5cGUpLnNvcnQoKSwgWydhbHRlcm5h
dGluZycsICdwYWlyZWQtcGFyYWxsZWwnLCAnc2VxdWVudGlhbCddKTsKKyAgICB9KTsKKwogfSk7
CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS11
cGxvYWQtcm9vdC10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVz
dHMvYXBpLXVwbG9hZC1yb290LXRlc3RzLmpzCmluZGV4IDY3NWQ1OTQ4NzRjYTE2ZGM3ZTg5NjY4
MDRjZmVmNDE4NjVmMjUyZGMuLjUyMDU1MGIzOGRiOWNlZGFmODM0NDk4MjI5NmNiNDNhNjg5ZTY5
ZDkgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBp
LXVwbG9hZC1yb290LXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2
ZXItdGVzdHMvYXBpLXVwbG9hZC1yb290LXRlc3RzLmpzCkBAIC0zOCw3ICszOCw3IEBAIGZ1bmN0
aW9uIGNyZWF0ZVRlc3RHcm91cFdpaFBhdGNoKCkKICAgICAgICAgJ3dvcmtlclBhc3N3b3JkJzog
J3Bhc3N3b3JkJywKICAgICAgICAgJ3RyaWdnZXJhYmxlJzogJ2J1aWxkLXdlYmtpdCcsCiAgICAg
ICAgICdjb25maWd1cmF0aW9ucyc6IFsKLSAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0YS5zb21l
VGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpfSwKKyAgICAgICAg
ICAgIHt0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21l
UGxhdGZvcm1JZCgpLCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAn
c2VxdWVudGlhbCddfSwKICAgICAgICAgXSwKICAgICAgICAgJ3JlcG9zaXRvcnlHcm91cHMnOiBb
CiAgICAgICAgICAgICB7bmFtZTogJ3dlYmtpdCcsIHJlcG9zaXRvcmllczogWwpAQCAtODAsNyAr
ODAsNyBAQCBmdW5jdGlvbiBjcmVhdGVUZXN0R3JvdXBXaXRoUGF0Y2hBbmRPd25lZENvbW1pdHMo
KQogICAgICAgICAnd29ya2VyUGFzc3dvcmQnOiAncGFzc3dvcmQnLAogICAgICAgICAndHJpZ2dl
cmFibGUnOiAnYnVpbGQtd2Via2l0JywKICAgICAgICAgJ2NvbmZpZ3VyYXRpb25zJzogWwotICAg
ICAgICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRh
LnNvbWVQbGF0Zm9ybUlkKCl9LAorICAgICAgICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0
SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCksIHN1cHBvcnRlZFJlcGV0
aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ119LAogICAgICAgICBdLAog
ICAgICAgICAncmVwb3NpdG9yeUdyb3Vwcyc6IFsKICAgICAgICAgICAgIHtuYW1lOiAnd2Via2l0
JywgcmVwb3NpdG9yaWVzOiBbCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcv
c2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWFkZC1idWlsZC1yZXF1ZXN0cy10ZXN0cy5qcyBi
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktYWRk
LWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCmluZGV4IGY5YzQ0NjQ1YTJhNzQzNzRkYjljNTU1OTQw
OThjYTIzYjkyYjczNWMuLjY2Y2UyZmQyZWYxZjhjNTY1OGZkZGI0YjI1ODg3ZDdlMDUyYTg3ODUg
MTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmls
ZWdlZC1hcGktYWRkLWJ1aWxkLXJlcXVlc3RzLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktYWRkLWJ1aWxkLXJlcXVlc3Rz
LXRlc3RzLmpzCkBAIC05Niw4ICs5Niw4IEBAIGFzeW5jIGZ1bmN0aW9uIGFkZFRyaWdnZXJhYmxl
QW5kQ3JlYXRlVGFzayhuYW1lLCB3ZWJraXRSZXZpc2lvbnMpCiAgICAgICAgICd3b3JrZXJQYXNz
d29yZCc6ICdhbm90aGVyUGFzc3dvcmQnLAogICAgICAgICAndHJpZ2dlcmFibGUnOiAnYnVpbGQt
d2Via2l0JywKICAgICAgICAgJ2NvbmZpZ3VyYXRpb25zJzogWwotICAgICAgICAgICAge3Rlc3Q6
IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlk
KCl9LAotICAgICAgICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06
IE1vY2tEYXRhLm90aGVyUGxhdGZvcm1JZCgpfSwKKyAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0
YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpLCBzdXBw
b3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddfSwKKyAg
ICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0
YS5vdGhlclBsYXRmb3JtSWQoKSwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0
aW5nJywgJ3NlcXVlbnRpYWwnXX0sCiAgICAgICAgIF0sCiAgICAgICAgICdyZXBvc2l0b3J5R3Jv
dXBzJzogWwogICAgICAgICAgICAge25hbWU6ICdvcy1vbmx5JywgYWNjZXB0c1Jvb3Q6IHRydWUs
IHJlcG9zaXRvcmllczogWwpAQCAtMTkwLDcgKzE5MCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdl
ZC1hcGkvYWRkLWJ1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24oKSB7CiAgICAgICAgIGF3YWl0IGFz
c2VydFRocm93cygnQ2Fubm90QWRkVG9IaWRkZW5UZXN0R3JvdXAnLCBhc3luYyAoKSA9PiBhd2Fp
dCBQcml2aWxlZ2VkQVBJLnNlbmRSZXF1ZXN0KCdhZGQtYnVpbGQtcmVxdWVzdHMnLCB7Z3JvdXA6
IGluc2VydGVkR3JvdXBJZCwgYWRkQ291bnQ6IDJ9KSkKICAgICB9KTsKIAotICAgIGl0KCdzaG91
bGQgcmVqZWN0IHdpdGggIkNvbW1pdFNldE5vdFN1cHBvcnRlZEZvckFsdGVybmF0aW5nUmVwZXRp
dGlvblR5cGUiIHdoZW4gYWRkaW5nIGJ1aWxkIHJlcXVlc3RzIGZvciBvbmUgY29tbWl0IHNldCBp
biBhbiBhbHRlcm5hdGluZyB0ZXN0IGdyb3VwJywgYXN5bmMgKCkgPT4geworICAgIGl0KCdzaG91
bGQgcmVqZWN0IHdpdGggIkNvbW1pdFNldE5vdFN1cHBvcnRlZFJlcGV0aXRpb25UeXBlIiB3aGVu
IGFkZGluZyBidWlsZCByZXF1ZXN0cyBmb3Igb25lIGNvbW1pdCBzZXQgaW4gYW4gYWx0ZXJuYXRp
bmcgdGVzdCBncm91cCcsIGFzeW5jICgpID0+IHsKICAgICAgICAgYXdhaXQgYWRkVHJpZ2dlcmFi
bGVBbmRDcmVhdGVUYXNrKCdzb21lIHRhc2snKTsKICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVw
b3NpdG9yeS5hbGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJlcG9zaXRvcnkubmFtZSgpID09
ICdXZWJLaXQnKVswXTsKICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gW3tbd2Via2l0Lmlk
KCldOiB7cmV2aXNpb246ICcxOTE2MjInfX0sIHtbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcx
OTE2MjMnfX1dOwpAQCAtMjE4LDcgKzIxOCw3IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkv
YWRkLWJ1aWxkLXJlcXVlc3RzJywgZnVuY3Rpb24oKSB7CiAgICAgICAgIGNvbnN0IHNlY29uZENv
bW1pdFNldCA9IGdyb3VwLnJlcXVlc3RlZENvbW1pdFNldHMoKVsxXTsKICAgICAgICAgYXNzZXJ0
T3JkZXJPZlJlcXVlc3RzKGdyb3VwLnJlcXVlc3RzRm9yQ29tbWl0U2V0KHNlY29uZENvbW1pdFNl
dCksIFsxLCAzXSk7CiAKLSAgICAgICAgYXdhaXQgYXNzZXJ0VGhyb3dzKCdDb21taXRTZXROb3RT
dXBwb3J0ZWRGb3JBbHRlcm5hdGluZ1JlcGV0aXRpb25UeXBlJywgKCkgPT4geworICAgICAgICBh
d2FpdCBhc3NlcnRUaHJvd3MoJ0NvbW1pdFNldE5vdFN1cHBvcnRlZFJlcGV0aXRpb25UeXBlJywg
KCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2Fk
ZC1idWlsZC1yZXF1ZXN0cycsCiAgICAgICAgICAgICAgICAge2dyb3VwOiBpbnNlcnRlZEdyb3Vw
SWQsIGFkZENvdW50OiAyLCBjb21taXRTZXQ6IHNlY29uZENvbW1pdFNldC5pZCgpfSkKICAgICAg
ICAgfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS1hbmFseXNpcy10YXNrLXRlc3RzLmpzIGIvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtYW5hbHlz
aXMtdGFzay10ZXN0cy5qcwppbmRleCAyYTE3MTc4ZTQzNDIzMjJlZmNjMGJmZmQyN2YyOTgyMzVm
NDMyNmRiLi5iMTVkNDkzNzYwNTZjNGI5NjM0ZWJmZjVlMTZkMTk5ZDk0OTQ1NmUzIDEwMDY0NAot
LS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBp
LWNyZWF0ZS1hbmFseXNpcy10YXNrLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLWFuYWx5c2lzLXRhc2stdGVz
dHMuanMKQEAgLTQxNSw3ICs0MTUsOCBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0
ZS1hbmFseXNpcy10YXNrIHdpdGggYnJvd3NlciBwcml2aWxlZ2VkIGFwaScsIGZ1bgogICAgICAg
ICBhd2FpdCBkYi5pbnNlcnQoJ2J1aWxkX3RyaWdnZXJhYmxlcycsIHtpZDogMTIzNCwgbmFtZTog
J3Rlc3QtdHJpZ2dlcmFibGUnfSk7CiAgICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFi
bGVfcmVwb3NpdG9yeV9ncm91cHMnLCB7aWQ6IDIzNDUsIG5hbWU6ICd3ZWJraXQtb25seScsIHRy
aWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlkfSk7CiAgICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJp
Z2dlcmFibGVfcmVwb3NpdG9yaWVzJywge3JlcG9zaXRvcnk6IHdlYmtpdElkLCBncm91cDogMjM0
NX0pOwotICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25z
Jywge3Rlc3Q6IHRlc3QxSWQsIHBsYXRmb3JtOiBwbGF0Zm9ybUlkLCB0cmlnZ2VyYWJsZTogdHJp
Z2dlcmFibGVJZH0pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZp
Z3VyYXRpb25zJywge2lkOiAxLCB0ZXN0OiB0ZXN0MUlkLCBwbGF0Zm9ybTogcGxhdGZvcm1JZCwg
dHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxlSWR9KTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0
cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMnLCB7Y29uZmlnOiAxLCB0
eXBlOiAnYWx0ZXJuYXRpbmcnfSk7CiAgICAgICAgIGF3YWl0IGFkZEJ1aWxkZXJGb3JSZXBvcnQo
cmVwb3J0V2l0aFJldmlzaW9uWzBdKTsKIAogICAgICAgICBhd2FpdCBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRoUmV2aXNpb24pOwpAQCAt
NTM3LDcgKzUzOCw4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lz
LXRhc2sgd2l0aCBub2RlIHByaXZpbGVnZWQgYXBpJywgZnVuY3RpCiAgICAgICAgIGF3YWl0IGRi
Lmluc2VydCgnYnVpbGRfdHJpZ2dlcmFibGVzJywge2lkOiAxMjM0LCBuYW1lOiAndGVzdC10cmln
Z2VyYWJsZSd9KTsKICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0
b3J5X2dyb3VwcycsIHtpZDogMjM0NSwgbmFtZTogJ3dlYmtpdC1vbmx5JywgdHJpZ2dlcmFibGU6
IHRyaWdnZXJhYmxlSWR9KTsKICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9y
ZXBvc2l0b3JpZXMnLCB7cmVwb3NpdG9yeTogd2Via2l0SWQsIGdyb3VwOiAyMzQ1fSk7Ci0gICAg
ICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCB7dGVzdDog
dGVzdDFJZCwgcGxhdGZvcm06IHBsYXRmb3JtSWQsIHRyaWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlk
fSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMn
LCB7aWQ6IDEsIHRlc3Q6IHRlc3QxSWQsIHBsYXRmb3JtOiBwbGF0Zm9ybUlkLCB0cmlnZ2VyYWJs
ZTogdHJpZ2dlcmFibGVJZH0pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxl
X2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcycsIHtjb25maWc6IDEsIHR5cGU6ICdhbHRl
cm5hdGluZyd9KTsKICAgICAgICAgYXdhaXQgYWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRo
UmV2aXNpb25bMF0pOwogCiAgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9z
dEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7CkBAIC02MTcsNyArNjE5
LDggQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlzaXMtdGFzayB3aXRo
IG5vZGUgcHJpdmlsZWdlZCBhcGknLCBmdW5jdGkKICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdi
dWlsZF90cmlnZ2VyYWJsZXMnLCB7aWQ6IDEyMzQsIG5hbWU6ICd0ZXN0LXRyaWdnZXJhYmxlJ30p
OwogICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBz
Jywge2lkOiAyMzQ1LCBuYW1lOiAnd2Via2l0LW9ubHknLCB0cmlnZ2VyYWJsZTogdHJpZ2dlcmFi
bGVJZH0pOwogICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcmll
cycsIHtyZXBvc2l0b3J5OiB3ZWJraXRJZCwgZ3JvdXA6IDIzNDV9KTsKLSAgICAgICAgYXdhaXQg
ZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHt0ZXN0OiB0ZXN0MUlkLCBw
bGF0Zm9ybTogcGxhdGZvcm1JZCwgdHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxlSWR9KTsKKyAgICAg
ICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHtpZDogMSwg
dGVzdDogdGVzdDFJZCwgcGxhdGZvcm06IHBsYXRmb3JtSWQsIHRyaWdnZXJhYmxlOiB0cmlnZ2Vy
YWJsZUlkfSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJh
dGlvbl9yZXBldGl0aW9uX3R5cGVzJywge2NvbmZpZzogMSwgdHlwZTogJ2FsdGVybmF0aW5nJ30p
OwogICAgICAgICBhd2FpdCBhZGRCdWlsZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhSZXZpc2lvblsw
XSk7CiAKICAgICAgICAgYXdhaXQgVGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2Fw
aS9yZXBvcnQvJywgcmVwb3J0V2l0aFJldmlzaW9uKTsKQEAgLTY5Nyw3ICs3MDAsOSBAQCBkZXNj
cmliZSgnL3ByaXZpbGVnZWQtYXBpL2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggbm9kZSBwcml2
aWxlZ2VkIGFwaScsIGZ1bmN0aQogICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2J1aWxkX3RyaWdn
ZXJhYmxlcycsIHtpZDogMTIzNCwgbmFtZTogJ3Rlc3QtdHJpZ2dlcmFibGUnfSk7CiAgICAgICAg
IGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91cHMnLCB7aWQ6IDIz
NDUsIG5hbWU6ICd3ZWJraXQtb25seScsIHRyaWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlkfSk7CiAg
ICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzJywge3JlcG9z
aXRvcnk6IHdlYmtpdElkLCBncm91cDogMjM0NX0pOwotICAgICAgICBhd2FpdCBkYi5pbnNlcnQo
J3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25zJywge3Rlc3Q6IHRlc3RJZCwgcGxhdGZvcm06IHBs
YXRmb3JtSWQsIHRyaWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlkfSk7CisgICAgICAgIGF3YWl0IGRi
Lmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCB7aWQ6IDEsIHRlc3Q6IHRlc3RJ
ZCwgcGxhdGZvcm06IHBsYXRmb3JtSWQsIHRyaWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlkfSk7Cisg
ICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0
aW9uX3R5cGVzJywge2NvbmZpZzogMSwgdHlwZTogJ2FsdGVybmF0aW5nJ30pOworICAgICAgICBh
d2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBl
cycsIHtjb25maWc6IDEsIHR5cGU6ICdzZXF1ZW50aWFsJ30pOwogICAgICAgICBhd2FpdCBhZGRC
dWlsZGVyRm9yUmVwb3J0KHJlcG9ydFdpdGhSZXZpc2lvblswXSk7CiAKICAgICAgICAgYXdhaXQg
VGVzdFNlcnZlci5yZW1vdGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0
aFJldmlzaW9uKTsKQEAgLTc1NSw3ICs3NjAsNyBAQCBkZXNjcmliZSgnL3ByaXZpbGVnZWQtYXBp
L2NyZWF0ZS1hbmFseXNpcy10YXNrIHdpdGggbm9kZSBwcml2aWxlZ2VkIGFwaScsIGZ1bmN0aQog
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoc2Vjb25kQ29tbWl0U2V0LmNvbW1pdEZvclJlcG9z
aXRvcnkod2Via2l0UmVwb3NpdG9yeSkucmV2aXNpb24oKSwgJzE5MTYyMycpOwogICAgIH0pOwog
Ci0gICAgaXQoJ3Nob3VsZCByZWplY3Qgd2l0aCAiSW52YWxpZFJlcGV0aXRpb25UeXBlIiB3aGVu
IHJlcGV0aXRpb24gdHlwZSBpcyBub3QgImFsdGVybmF0aW5nIiBvciAic2VxdWVudGlhbCInLCBh
c3luYyAoKSA9PiB7CisgICAgaXQoJ3Nob3VsZCBiZSBhYmxlIHRvIGNyZWF0ZSBhbiBhbmFseXNp
cyB0YXNrIHdpdGggYSBwYWlyZWQgcGFyYWxsZWwgdGVzdCBncm91cCcsIGFzeW5jICgpID0+IHsK
ICAgICAgICAgY29uc3Qgd2Via2l0SWQgPSAxOwogICAgICAgICBjb25zdCBwbGF0Zm9ybUlkID0g
MTsKICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGVJZCA9IDEyMzQ7CkBAIC03NjksNyArNzc0LDgz
IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1hcGkvY3JlYXRlLWFuYWx5c2lzLXRhc2sgd2l0aCBu
b2RlIHByaXZpbGVnZWQgYXBpJywgZnVuY3RpCiAgICAgICAgIGF3YWl0IGRiLmluc2VydCgnYnVp
bGRfdHJpZ2dlcmFibGVzJywge2lkOiAxMjM0LCBuYW1lOiAndGVzdC10cmlnZ2VyYWJsZSd9KTsK
ICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3Vwcycs
IHtpZDogMjM0NSwgbmFtZTogJ3dlYmtpdC1vbmx5JywgdHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxl
SWR9KTsKICAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMn
LCB7cmVwb3NpdG9yeTogd2Via2l0SWQsIGdyb3VwOiAyMzQ1fSk7Ci0gICAgICAgIGF3YWl0IGRi
Lmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbnMnLCB7dGVzdDogdGVzdElkLCBwbGF0
Zm9ybTogcGxhdGZvcm1JZCwgdHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxlSWR9KTsKKyAgICAgICAg
YXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHtpZDogMSwgdGVz
dDogdGVzdElkLCBwbGF0Zm9ybTogcGxhdGZvcm1JZCwgdHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxl
SWR9KTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9u
X3JlcGV0aXRpb25fdHlwZXMnLCB7Y29uZmlnOiAxLCB0eXBlOiAnYWx0ZXJuYXRpbmcnfSk7Cisg
ICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0
aW9uX3R5cGVzJywge2NvbmZpZzogMSwgdHlwZTogJ3NlcXVlbnRpYWwnfSk7CisgICAgICAgIGF3
YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVz
Jywge2NvbmZpZzogMSwgdHlwZTogJ3BhaXJlZC1wYXJhbGxlbCd9KTsKKyAgICAgICAgYXdhaXQg
YWRkQnVpbGRlckZvclJlcG9ydChyZXBvcnRXaXRoUmV2aXNpb25bMF0pOworCisgICAgICAgIGF3
YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9y
dFdpdGhSZXZpc2lvbik7CisgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9z
dEpTT04oJy9hcGkvcmVwb3J0LycsIGFub3RoZXJSZXBvcnRXaXRoUmV2aXNpb24pOworICAgICAg
ICBhd2FpdCBNYW5pZmVzdC5mZXRjaCgpOworCisgICAgICAgIGNvbnN0IHRlc3QgPSBUZXN0LmZp
bmRCeUlkKHRlc3RJZCk7CisgICAgICAgIGNvbnN0IHNvbWVQbGF0Zm9ybSA9IFBsYXRmb3JtLmZp
bmRCeUlkKHBsYXRmb3JtSWQpOworICAgICAgICBjb25zdCBjb25maWdSb3cgPSBhd2FpdCBkYi5z
ZWxlY3RGaXJzdFJvdygndGVzdF9jb25maWd1cmF0aW9ucycsIHttZXRyaWM6IHRlc3QubWV0cmlj
cygpWzBdLmlkKCksIHBsYXRmb3JtOiBzb21lUGxhdGZvcm0uaWQoKX0pOworICAgICAgICBjb25z
dCB0ZXN0UnVucyA9IGF3YWl0IGRiLnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNv
bmZpZ1Jvd1snaWQnXX0pOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVu
Z3RoLCAyKTsKKworICAgICAgICBjb25zdCBvbmVSZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7
cmV2aXNpb246ICcxOTE2MjInfX07CisgICAgICAgIGNvbnN0IGFub3RoZXJSZXZpc2lvblNldCA9
IHtbd2Via2l0SWRdOiB7cmV2aXNpb246ICcxOTE2MjMnfX07CisKKyAgICAgICAgY29uc3QgY29u
dGVudCA9IGF3YWl0IFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3QoJ2NyZWF0ZS1hbmFseXNpcy10
YXNrJywge25hbWU6ICdjb25maXJtJywgcmVwZXRpdGlvbkNvdW50OiAyLAorICAgICAgICAgICAg
dGVzdEdyb3VwTmFtZTogJ0NvbmZpcm0nLCByZXZpc2lvblNldHM6IFtvbmVSZXZpc2lvblNldCwg
YW5vdGhlclJldmlzaW9uU2V0XSwKKyAgICAgICAgICAgIHN0YXJ0UnVuOiB0ZXN0UnVuc1swXVsn
aWQnXSwgZW5kUnVuOiB0ZXN0UnVuc1sxXVsnaWQnXSwgbmVlZHNOb3RpZmljYXRpb246IHRydWUs
IHJlcGV0aXRpb25UeXBlOiAncGFpcmVkLXBhcmFsbGVsJ30pOworCisgICAgICAgIGNvbnN0IHRh
c2sgPSBhd2FpdCBBbmFseXNpc1Rhc2suZmV0Y2hCeUlkKGNvbnRlbnRbJ3Rhc2tJZCddKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRhc2submFtZSgpLCAnY29uZmlybScpOworICAgICAg
ICBhc3NlcnQoIXRhc2suaGFzUmVzdWx0cygpKTsKKyAgICAgICAgYXNzZXJ0KHRhc2suaGFzUGVu
ZGluZ1JlcXVlc3RzKCkpOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRhc2suYnVn
cygpLCBbXSk7CisgICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodGFzay5jYXVzZXMoKSwg
W10pOworICAgICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHRhc2suZml4ZXMoKSwgW10pOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5jaGFuZ2VUeXBlKCksIG51bGwpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGFzay5wbGF0Zm9ybSgpLmxhYmVsKCksICdzb21lIHBs
YXRmb3JtJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0YXNrLm1ldHJpYygpLnRlc3Qo
KS5sYWJlbCgpLCAnU3VpdGUnKTsKKworICAgICAgICBjb25zdCB0ZXN0R3JvdXBzID0gYXdhaXQg
VGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrLmlkKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwodGVzdEdyb3Vwcy5sZW5ndGgsIDEpOworICAgICAgICBjb25zdCB0ZXN0R3JvdXAgPSB0
ZXN0R3JvdXBzWzBdOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLm5hbWUo
KSwgJ0NvbmZpcm0nKTsKKyAgICAgICAgYXNzZXJ0Lm9rKHRlc3RHcm91cC5uZWVkc05vdGlmaWNh
dGlvbigpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cC5yZXBldGl0aW9u
VHlwZSgpLCAncGFpcmVkLXBhcmFsbGVsJykKKyAgICAgICAgZm9yIChjb25zdCBjb21taXRTZXQg
b2YgdGVzdEdyb3VwLnJlcXVlc3RlZENvbW1pdFNldHMoKSkKKyAgICAgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbCh0ZXN0R3JvdXAucmVwZXRpdGlvbkNvdW50Rm9yQ29tbWl0U2V0KGNvbW1pdFNl
dCksIDIpOworCisgICAgICAgIGNvbnN0IGJ1aWxkUmVxdWVzdHMgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0cy5sZW5n
dGgsIDQpOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzBdLm9y
ZGVyKCksIDApOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0c1sxXS5v
cmRlcigpLCAxKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdHNbMl0u
b3JkZXIoKSwgMik7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3RzWzNd
Lm9yZGVyKCksIDMpOworCisgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3RzWzBdLmNvbW1pdFNl
dCgpLmVxdWFscyhidWlsZFJlcXVlc3RzWzJdLmNvbW1pdFNldCgpKSk7CisgICAgICAgIGFzc2Vy
dChidWlsZFJlcXVlc3RzWzFdLmNvbW1pdFNldCgpLmVxdWFscyhidWlsZFJlcXVlc3RzWzNdLmNv
bW1pdFNldCgpKSk7CisKKyAgICAgICAgY29uc3QgZmlyc3RDb21taXRTZXQgPSBidWlsZFJlcXVl
c3RzWzBdLmNvbW1pdFNldCgpOworICAgICAgICBjb25zdCBzZWNvbmRDb21taXRTZXQgPSBidWls
ZFJlcXVlc3RzWzFdLmNvbW1pdFNldCgpOworICAgICAgICBjb25zdCB3ZWJraXRSZXBvc2l0b3J5
ID0gUmVwb3NpdG9yeS5maW5kQnlJZCh3ZWJraXRJZCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChmaXJzdENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkp
LnJldmlzaW9uKCksICcxOTE2MjInKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNlY29u
ZENvbW1pdFNldC5jb21taXRGb3JSZXBvc2l0b3J5KHdlYmtpdFJlcG9zaXRvcnkpLnJldmlzaW9u
KCksICcxOTE2MjMnKTsKKyAgICB9KTsKKworICAgIGl0KCdzaG91bGQgcmVqZWN0IHdpdGggIklu
dmFsaWRSZXBldGl0aW9uVHlwZSIgd2hlbiByZXBldGl0aW9uIHR5cGUgaXMgbm90ICJhbHRlcm5h
dGluZyIsICJzZXF1ZW50aWFsIiBvciAicGFpcmVkLXBhcmFsbGVsIicsIGFzeW5jICgpID0+IHsK
KyAgICAgICAgY29uc3Qgd2Via2l0SWQgPSAxOworICAgICAgICBjb25zdCBwbGF0Zm9ybUlkID0g
MTsKKyAgICAgICAgY29uc3QgdHJpZ2dlcmFibGVJZCA9IDEyMzQ7CisKKyAgICAgICAgY29uc3Qg
ZGIgPSBUZXN0U2VydmVyLmRhdGFiYXNlKCk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgndGVz
dHMnLCB7bmFtZTogJ1N1aXRlJ30pOworICAgICAgICBjb25zdCB0ZXN0Um93ID0gYXdhaXQgZGIu
c2VsZWN0Rmlyc3RSb3coJ3Rlc3RzJywge25hbWU6ICdTdWl0ZSd9KTsKKyAgICAgICAgY29uc3Qg
dGVzdElkID0gdGVzdFJvdy5pZDsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdyZXBvc2l0b3Jp
ZXMnLCB7aWQ6IHdlYmtpdElkLCBuYW1lOiAnV2ViS2l0J30pOworICAgICAgICBhd2FpdCBkYi5p
bnNlcnQoJ3BsYXRmb3JtcycsIHtpZDogcGxhdGZvcm1JZCwgbmFtZTogJ3NvbWUgcGxhdGZvcm0n
fSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgnYnVpbGRfdHJpZ2dlcmFibGVzJywge2lkOiAx
MjM0LCBuYW1lOiAndGVzdC10cmlnZ2VyYWJsZSd9KTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0
KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3J5X2dyb3VwcycsIHtpZDogMjM0NSwgbmFtZTogJ3dlYmtp
dC1vbmx5JywgdHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxlSWR9KTsKKyAgICAgICAgYXdhaXQgZGIu
aW5zZXJ0KCd0cmlnZ2VyYWJsZV9yZXBvc2l0b3JpZXMnLCB7cmVwb3NpdG9yeTogd2Via2l0SWQs
IGdyb3VwOiAyMzQ1fSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgndHJpZ2dlcmFibGVfY29u
ZmlndXJhdGlvbnMnLCB7aWQ6IDEsIHRlc3Q6IHRlc3RJZCwgcGxhdGZvcm06IHBsYXRmb3JtSWQs
IHRyaWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlkfSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgn
dHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9yZXBldGl0aW9uX3R5cGVzJywge2NvbmZpZzogMSwg
dHlwZTogJ2FsdGVybmF0aW5nJ30pOwogICAgICAgICBhd2FpdCBhZGRCdWlsZGVyRm9yUmVwb3J0
KHJlcG9ydFdpdGhSZXZpc2lvblswXSk7CiAKICAgICAgICAgYXdhaXQgVGVzdFNlcnZlci5yZW1v
dGVBUEkoKS5wb3N0SlNPTignL2FwaS9yZXBvcnQvJywgcmVwb3J0V2l0aFJldmlzaW9uKTsKQEAg
LTc5Nyw0ICs4NzgsOTIgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtYW5hbHlz
aXMtdGFzayB3aXRoIG5vZGUgcHJpdmlsZWdlZCBhcGknLCBmdW5jdGkKICAgICAgICAgICAgIH0p
CiAgICAgICAgIH0pOwogICAgIH0pOworCisgICAgaXQoJ3Nob3VsZCByZWplY3Qgd2l0aCAiVW5z
dXBwb3J0ZWRSZXBldGl0aW9uVHlwZSIgd2hlbiAicGFpcmVkLXBhcmFsbGVsIiBpcyBub3Qgc3Vw
cG9ydGVkIHVuZGVyIHRyaWdnZXJhYmxlIGNvbmZpZ3VyYXRpb24nLCBhc3luYyAoKSA9PiB7Cisg
ICAgICAgIGNvbnN0IHdlYmtpdElkID0gMTsKKyAgICAgICAgY29uc3QgcGxhdGZvcm1JZCA9IDE7
CisgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlSWQgPSAxMjM0OworCisgICAgICAgIGNvbnN0IGRi
ID0gVGVzdFNlcnZlci5kYXRhYmFzZSgpOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3Rlc3Rz
Jywge25hbWU6ICdTdWl0ZSd9KTsKKyAgICAgICAgY29uc3QgdGVzdFJvdyA9IGF3YWl0IGRiLnNl
bGVjdEZpcnN0Um93KCd0ZXN0cycsIHtuYW1lOiAnU3VpdGUnfSk7CisgICAgICAgIGNvbnN0IHRl
c3RJZCA9IHRlc3RSb3cuaWQ7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgncmVwb3NpdG9yaWVz
Jywge2lkOiB3ZWJraXRJZCwgbmFtZTogJ1dlYktpdCd9KTsKKyAgICAgICAgYXdhaXQgZGIuaW5z
ZXJ0KCdwbGF0Zm9ybXMnLCB7aWQ6IHBsYXRmb3JtSWQsIG5hbWU6ICdzb21lIHBsYXRmb3JtJ30p
OworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ2J1aWxkX3RyaWdnZXJhYmxlcycsIHtpZDogMTIz
NCwgbmFtZTogJ3Rlc3QtdHJpZ2dlcmFibGUnfSk7CisgICAgICAgIGF3YWl0IGRiLmluc2VydCgn
dHJpZ2dlcmFibGVfcmVwb3NpdG9yeV9ncm91cHMnLCB7aWQ6IDIzNDUsIG5hbWU6ICd3ZWJraXQt
b25seScsIHRyaWdnZXJhYmxlOiB0cmlnZ2VyYWJsZUlkfSk7CisgICAgICAgIGF3YWl0IGRiLmlu
c2VydCgndHJpZ2dlcmFibGVfcmVwb3NpdG9yaWVzJywge3JlcG9zaXRvcnk6IHdlYmtpdElkLCBn
cm91cDogMjM0NX0pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX2NvbmZp
Z3VyYXRpb25zJywge2lkOiAxLCB0ZXN0OiB0ZXN0SWQsIHBsYXRmb3JtOiBwbGF0Zm9ybUlkLCB0
cmlnZ2VyYWJsZTogdHJpZ2dlcmFibGVJZH0pOworICAgICAgICBhd2FpdCBkYi5pbnNlcnQoJ3Ry
aWdnZXJhYmxlX2NvbmZpZ3VyYXRpb25fcmVwZXRpdGlvbl90eXBlcycsIHtjb25maWc6IDEsIHR5
cGU6ICdhbHRlcm5hdGluZyd9KTsKKyAgICAgICAgYXdhaXQgYWRkQnVpbGRlckZvclJlcG9ydChy
ZXBvcnRXaXRoUmV2aXNpb25bMF0pOworCisgICAgICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0LycsIHJlcG9ydFdpdGhSZXZpc2lvbik7CisgICAg
ICAgIGF3YWl0IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCkucG9zdEpTT04oJy9hcGkvcmVwb3J0Lycs
IGFub3RoZXJSZXBvcnRXaXRoUmV2aXNpb24pOworICAgICAgICBhd2FpdCBNYW5pZmVzdC5mZXRj
aCgpOworCisgICAgICAgIGNvbnN0IHRlc3QgPSBUZXN0LmZpbmRCeUlkKHRlc3RJZCk7CisgICAg
ICAgIGNvbnN0IHNvbWVQbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeUlkKHBsYXRmb3JtSWQpOwor
ICAgICAgICBjb25zdCBjb25maWdSb3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJzdFJvdygndGVzdF9j
b25maWd1cmF0aW9ucycsIHttZXRyaWM6IHRlc3QubWV0cmljcygpWzBdLmlkKCksIHBsYXRmb3Jt
OiBzb21lUGxhdGZvcm0uaWQoKX0pOworICAgICAgICBjb25zdCB0ZXN0UnVucyA9IGF3YWl0IGRi
LnNlbGVjdFJvd3MoJ3Rlc3RfcnVucycsIHtjb25maWc6IGNvbmZpZ1Jvd1snaWQnXX0pOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdFJ1bnMubGVuZ3RoLCAyKTsKKworICAgICAgICBj
b25zdCBvbmVSZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2aXNpb246ICcxOTE2MjInfX07
CisgICAgICAgIGNvbnN0IGFub3RoZXJSZXZpc2lvblNldCA9IHtbd2Via2l0SWRdOiB7cmV2aXNp
b246ICcxOTE2MjMnfX07CisgICAgICAgIGF3YWl0IGFzc2VydFRocm93cygnVW5zdXBwb3J0ZWRS
ZXBldGl0aW9uVHlwZScsICgpID0+IHsKKyAgICAgICAgICAgIHJldHVybiBQcml2aWxlZ2VkQVBJ
LnNlbmRSZXF1ZXN0KCdjcmVhdGUtYW5hbHlzaXMtdGFzaycsIHsKKyAgICAgICAgICAgICAgICBu
YW1lOiAnY29uZmlybScsCisgICAgICAgICAgICAgICAgcmVwZXRpdGlvbkNvdW50OiAyLAorICAg
ICAgICAgICAgICAgIHRlc3RHcm91cE5hbWU6ICdDb25maXJtJywKKyAgICAgICAgICAgICAgICBy
ZXZpc2lvblNldHM6IFtvbmVSZXZpc2lvblNldCwgYW5vdGhlclJldmlzaW9uU2V0XSwKKyAgICAg
ICAgICAgICAgICByZXBldGl0aW9uVHlwZTogJ3BhaXJlZC1wYXJhbGxlbCcsCisgICAgICAgICAg
ICAgICAgc3RhcnRSdW46IHRlc3RSdW5zWzBdWydpZCddLAorICAgICAgICAgICAgICAgIGVuZFJ1
bjogdGVzdFJ1bnNbMV1bJ2lkJ10sCisgICAgICAgICAgICAgICAgbmVlZHNOb3RpZmljYXRpb246
IHRydWUKKyAgICAgICAgICAgIH0pCisgICAgICAgIH0pOworICAgIH0pOworCisgICAgaXQoJ3No
b3VsZCByZWplY3Qgd2l0aCAiVW5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZSIgd2hlbiAic2VxdWVu
dGlhbCIgaXMgbm90IHN1cHBvcnRlZCB1bmRlciB0cmlnZ2VyYWJsZSBjb25maWd1cmF0aW9uJywg
YXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCB3ZWJraXRJZCA9IDE7CisgICAgICAgIGNvbnN0
IHBsYXRmb3JtSWQgPSAxOworICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZUlkID0gMTIzNDsKKwor
ICAgICAgICBjb25zdCBkYiA9IFRlc3RTZXJ2ZXIuZGF0YWJhc2UoKTsKKyAgICAgICAgYXdhaXQg
ZGIuaW5zZXJ0KCd0ZXN0cycsIHtuYW1lOiAnU3VpdGUnfSk7CisgICAgICAgIGNvbnN0IHRlc3RS
b3cgPSBhd2FpdCBkYi5zZWxlY3RGaXJzdFJvdygndGVzdHMnLCB7bmFtZTogJ1N1aXRlJ30pOwor
ICAgICAgICBjb25zdCB0ZXN0SWQgPSB0ZXN0Um93LmlkOworICAgICAgICBhd2FpdCBkYi5pbnNl
cnQoJ3JlcG9zaXRvcmllcycsIHtpZDogd2Via2l0SWQsIG5hbWU6ICdXZWJLaXQnfSk7CisgICAg
ICAgIGF3YWl0IGRiLmluc2VydCgncGxhdGZvcm1zJywge2lkOiBwbGF0Zm9ybUlkLCBuYW1lOiAn
c29tZSBwbGF0Zm9ybSd9KTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCdidWlsZF90cmlnZ2Vy
YWJsZXMnLCB7aWQ6IDEyMzQsIG5hbWU6ICd0ZXN0LXRyaWdnZXJhYmxlJ30pOworICAgICAgICBh
d2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcnlfZ3JvdXBzJywge2lkOiAyMzQ1
LCBuYW1lOiAnd2Via2l0LW9ubHknLCB0cmlnZ2VyYWJsZTogdHJpZ2dlcmFibGVJZH0pOworICAg
ICAgICBhd2FpdCBkYi5pbnNlcnQoJ3RyaWdnZXJhYmxlX3JlcG9zaXRvcmllcycsIHtyZXBvc2l0
b3J5OiB3ZWJraXRJZCwgZ3JvdXA6IDIzNDV9KTsKKyAgICAgICAgYXdhaXQgZGIuaW5zZXJ0KCd0
cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9ucycsIHtpZDogMSwgdGVzdDogdGVzdElkLCBwbGF0Zm9y
bTogcGxhdGZvcm1JZCwgdHJpZ2dlcmFibGU6IHRyaWdnZXJhYmxlSWR9KTsKKyAgICAgICAgYXdh
aXQgZGIuaW5zZXJ0KCd0cmlnZ2VyYWJsZV9jb25maWd1cmF0aW9uX3JlcGV0aXRpb25fdHlwZXMn
LCB7Y29uZmlnOiAxLCB0eXBlOiAnYWx0ZXJuYXRpbmcnfSk7CisgICAgICAgIGF3YWl0IGFkZEJ1
aWxkZXJGb3JSZXBvcnQocmVwb3J0V2l0aFJldmlzaW9uWzBdKTsKKworICAgICAgICBhd2FpdCBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09OKCcvYXBpL3JlcG9ydC8nLCByZXBvcnRXaXRo
UmV2aXNpb24pOworICAgICAgICBhd2FpdCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLnBvc3RKU09O
KCcvYXBpL3JlcG9ydC8nLCBhbm90aGVyUmVwb3J0V2l0aFJldmlzaW9uKTsKKyAgICAgICAgYXdh
aXQgTWFuaWZlc3QuZmV0Y2goKTsKKworICAgICAgICBjb25zdCB0ZXN0ID0gVGVzdC5maW5kQnlJ
ZCh0ZXN0SWQpOworICAgICAgICBjb25zdCBzb21lUGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlJ
ZChwbGF0Zm9ybUlkKTsKKyAgICAgICAgY29uc3QgY29uZmlnUm93ID0gYXdhaXQgZGIuc2VsZWN0
Rmlyc3RSb3coJ3Rlc3RfY29uZmlndXJhdGlvbnMnLCB7bWV0cmljOiB0ZXN0Lm1ldHJpY3MoKVsw
XS5pZCgpLCBwbGF0Zm9ybTogc29tZVBsYXRmb3JtLmlkKCl9KTsKKyAgICAgICAgY29uc3QgdGVz
dFJ1bnMgPSBhd2FpdCBkYi5zZWxlY3RSb3dzKCd0ZXN0X3J1bnMnLCB7Y29uZmlnOiBjb25maWdS
b3dbJ2lkJ119KTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RSdW5zLmxlbmd0aCwg
Mik7CisKKyAgICAgICAgY29uc3Qgb25lUmV2aXNpb25TZXQgPSB7W3dlYmtpdElkXToge3Jldmlz
aW9uOiAnMTkxNjIyJ319OworICAgICAgICBjb25zdCBhbm90aGVyUmV2aXNpb25TZXQgPSB7W3dl
YmtpdElkXToge3JldmlzaW9uOiAnMTkxNjIzJ319OworICAgICAgICBhd2FpdCBhc3NlcnRUaHJv
d3MoJ1Vuc3VwcG9ydGVkUmVwZXRpdGlvblR5cGUnLCAoKSA9PiB7CisgICAgICAgICAgICByZXR1
cm4gUHJpdmlsZWdlZEFQSS5zZW5kUmVxdWVzdCgnY3JlYXRlLWFuYWx5c2lzLXRhc2snLCB7Cisg
ICAgICAgICAgICAgICAgbmFtZTogJ2NvbmZpcm0nLAorICAgICAgICAgICAgICAgIHJlcGV0aXRp
b25Db3VudDogMiwKKyAgICAgICAgICAgICAgICB0ZXN0R3JvdXBOYW1lOiAnQ29uZmlybScsCisg
ICAgICAgICAgICAgICAgcmV2aXNpb25TZXRzOiBbb25lUmV2aXNpb25TZXQsIGFub3RoZXJSZXZp
c2lvblNldF0sCisgICAgICAgICAgICAgICAgcmVwZXRpdGlvblR5cGU6ICdzZXF1ZW50aWFsJywK
KyAgICAgICAgICAgICAgICBzdGFydFJ1bjogdGVzdFJ1bnNbMF1bJ2lkJ10sCisgICAgICAgICAg
ICAgICAgZW5kUnVuOiB0ZXN0UnVuc1sxXVsnaWQnXSwKKyAgICAgICAgICAgICAgICBuZWVkc05v
dGlmaWNhdGlvbjogdHJ1ZQorICAgICAgICAgICAgfSkKKyAgICAgICAgfSk7CisgICAgfSk7CiB9
KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJp
dmlsZWdlZC1hcGktY3JlYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLWNyZWF0ZS10ZXN0LWdyb3VwLXRl
c3RzLmpzCmluZGV4IGJiMjI0Mjk2MzA1MmQxOGYwNTc3YWRkZDQ0Y2UzYzM2MWRmMTQ0ZDkuLjFi
MzkyNzA4MzBhMzBjOTNjYzM2MjIwNTFkMGEyOTAwNzY1NzU5YjIgMTAwNjQ0Ci0tLSBhL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmlsZWdlZC1hcGktY3JlYXRlLXRl
c3QtZ3JvdXAtdGVzdHMuanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9wcml2aWxlZ2VkLWFwaS1jcmVhdGUtdGVzdC1ncm91cC10ZXN0cy5qcwpAQCAtMTAxLDgg
KzEwMSw4IEBAIGZ1bmN0aW9uIGFkZFRyaWdnZXJhYmxlQW5kQ3JlYXRlVGFzayhuYW1lLCB3ZWJr
aXRSZXZpc2lvbnMpCiAgICAgICAgICd3b3JrZXJQYXNzd29yZCc6ICdhbm90aGVyUGFzc3dvcmQn
LAogICAgICAgICAndHJpZ2dlcmFibGUnOiAnYnVpbGQtd2Via2l0JywKICAgICAgICAgJ2NvbmZp
Z3VyYXRpb25zJzogWwotICAgICAgICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwg
cGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCl9LAotICAgICAgICAgICAge3Rlc3Q6
IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRhLm90aGVyUGxhdGZvcm1J
ZCgpfSwKKyAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3Jt
OiBNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpLCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsn
YWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddfSwKKyAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0
YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5vdGhlclBsYXRmb3JtSWQoKSwgc3Vw
cG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXX0sCiAg
ICAgICAgIF0sCiAgICAgICAgICdyZXBvc2l0b3J5R3JvdXBzJzogWwogICAgICAgICAgICAge25h
bWU6ICdvcy1vbmx5JywgYWNjZXB0c1Jvb3Q6IHRydWUsIHJlcG9zaXRvcmllczogWwpAQCAtMTQ2
NSw3ICsxNDY1LDcgQEAgZGVzY3JpYmUoJy9wcml2aWxlZ2VkLWFwaS9jcmVhdGUtdGVzdC1ncm91
cCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHNldDEucmV2aXNp
b25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjMnKTsKICAgICB9KTsKIAotICAgIGl0KCdz
aG91bGQgcmVqZWN0IHdpdGggIkludmFsaWRSZXBldGl0aW9uVHlwZSIgaWYgcmVwZXRpdGlvbiB0
eXBlIGlzIG5vdCAiYWx0ZXJuYXRpbmciIG9yICJzZXF1ZW50aWFsIicsIGFzeW5jICgpID0+IHsK
KyAgICBpdCgnc2hvdWxkIHJlamVjdCB3aXRoICJJbnZhbGlkUmVwZXRpdGlvblR5cGUiIGlmIHJl
cGV0aXRpb24gdHlwZSBpcyBub3QgImFsdGVybmF0aW5nIiwgInNlcXVlbnRpYWwiLCBvciAicGFp
cmVkLXBhcmFsbGVsIicsIGFzeW5jICgpID0+IHsKICAgICAgICAgYXdhaXQgYWRkVHJpZ2dlcmFi
bGVBbmRDcmVhdGVUYXNrKCdzb21lIHRhc2snKTsKICAgICAgICAgY29uc3Qgd2Via2l0ID0gUmVw
b3NpdG9yeS5hbGwoKS5maWx0ZXIoKHJlcG9zaXRvcnkpID0+IHJlcG9zaXRvcnkubmFtZSgpID09
ICdXZWJLaXQnKVswXTsKICAgICAgICAgY29uc3QgcmV2aXNpb25TZXRzID0gW3tbd2Via2l0Lmlk
KCldOiB7cmV2aXNpb246ICcxOTE2MjInfX0sIHtbd2Via2l0LmlkKCldOiB7cmV2aXNpb246ICcx
OTE2MjMnfX1dOwpAQCAtMTQ3Nyw2ICsxNDc3LDE4IEBAIGRlc2NyaWJlKCcvcHJpdmlsZWdlZC1h
cGkvY3JlYXRlLXRlc3QtZ3JvdXAnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIH0pOwogICAgIH0p
OwogCisgICAgaXQoJ3Nob3VsZCByZWplY3Qgd2l0aCAiVW5zdXBwb3J0ZWRSZXBldGl0aW9uVHlw
ZSIgaWYgcmVwZXRpdGlvbiB0eXBlIGlzICJwYWlyZWQtcGFyYWxsZWwiIGJ1dCB0cmlnZ2VyYWJs
ZSBjb25maWd1cmF0aW9uIG9ubHkgc3VwcG9ydHMgInNlcXVlbnRpYWwiIGFuZCAiYWx0ZXJuYXRp
bmciJywgYXN5bmMgKCkgPT4geworICAgICAgICBhd2FpdCBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0
ZVRhc2soJ3NvbWUgdGFzaycpOworICAgICAgICBjb25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmFs
bCgpLmZpbHRlcigocmVwb3NpdG9yeSkgPT4gcmVwb3NpdG9yeS5uYW1lKCkgPT0gJ1dlYktpdCcp
WzBdOworICAgICAgICBjb25zdCByZXZpc2lvblNldHMgPSBbe1t3ZWJraXQuaWQoKV06IHtyZXZp
c2lvbjogJzE5MTYyMid9fSwge1t3ZWJraXQuaWQoKV06IHtyZXZpc2lvbjogJzE5MTYyMyd9fV07
CisKKyAgICAgICAgYXdhaXQgYXNzZXJ0VGhyb3dzKCdVbnN1cHBvcnRlZFJlcGV0aXRpb25UeXBl
JywgKCkgPT4geworICAgICAgICAgICAgcmV0dXJuIFByaXZpbGVnZWRBUEkuc2VuZFJlcXVlc3Qo
J2NyZWF0ZS10ZXN0LWdyb3VwJywge25hbWU6ICd0ZXN0JywgdGFza05hbWU6ICdvdGhlciB0YXNr
JywKKyAgICAgICAgICAgICAgICBwbGF0Zm9ybTogTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSwg
dGVzdDogTW9ja0RhdGEuc29tZVRlc3RJZCgpLAorICAgICAgICAgICAgICAgIG5lZWRzTm90aWZp
Y2F0aW9uOiB0cnVlLCByZXBldGl0aW9uVHlwZTogJ3BhaXJlZC1wYXJhbGxlbCcsIHJlcGV0aXRp
b25Db3VudDogMiwgcmV2aXNpb25TZXRzfSkKKyAgICAgICAgfSk7CisgICAgfSk7CisKICAgICBp
dCgnc2hvdWxkIHJlamVjdCB3aXRoICJJbnZhbGlkUmVwZXRpdGlvblR5cGUiIHdoZW4gY3JlYXRp
bmcgYSB0ZXN0IGdyb3VwIHdpdGggYSBiYWQgcmVwZXRpdGlvbiB0eXBlIGZvciBhbiBleGlzdGlu
ZyBhbmFseXNpcyB0YXNrJywgYXN5bmMgKCkgPT4gewogICAgICAgICBjb25zdCB0YXNrSWQgPSBh
d2FpdCBhZGRUcmlnZ2VyYWJsZUFuZENyZWF0ZVRhc2soJ3NvbWUgdGFzaycpOwogICAgICAgICBj
b25zdCB3ZWJraXQgPSBSZXBvc2l0b3J5LmFsbCgpLmZpbHRlcigocmVwb3NpdG9yeSkgPT4gcmVw
b3NpdG9yeS5uYW1lKCkgPT0gJ1dlYktpdCcpWzBdOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGRhdGUtdGVzdC1ncm91
cC10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcHJpdmls
ZWdlZC1hcGktdXBkYXRlLXRlc3QtZ3JvdXAtdGVzdHMuanMKaW5kZXggYjZkY2FlMmYyMTg2NTJm
YzkyOTdkZGNhNTM4NzIwNWYzYmM5YjMwOC4uN2Y5YTdmNGRkMTk4YjE2MmY2OGNjOTI3M2JjY2Y3
NDdiMDUwMGFhMyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy9wcml2aWxlZ2VkLWFwaS11cGRhdGUtdGVzdC1ncm91cC10ZXN0cy5qcworKysgYi9XZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3ByaXZpbGVnZWQtYXBpLXVwZGF0ZS10
ZXN0LWdyb3VwLXRlc3RzLmpzCkBAIC05Niw4ICs5Niw4IEBAIGFzeW5jIGZ1bmN0aW9uIGFkZFRy
aWdnZXJhYmxlQW5kQ3JlYXRlVGFzayhuYW1lLCB3ZWJraXRSZXZpc2lvbnMpCiAgICAgICAgICd3
b3JrZXJQYXNzd29yZCc6ICdhbm90aGVyUGFzc3dvcmQnLAogICAgICAgICAndHJpZ2dlcmFibGUn
OiAnYnVpbGQtd2Via2l0JywKICAgICAgICAgJ2NvbmZpZ3VyYXRpb25zJzogWwotICAgICAgICAg
ICAge3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwgcGxhdGZvcm06IE1vY2tEYXRhLnNvbWVQ
bGF0Zm9ybUlkKCl9LAotICAgICAgICAgICAge3Rlc3Q6IE1vY2tEYXRhLnNvbWVUZXN0SWQoKSwg
cGxhdGZvcm06IE1vY2tEYXRhLm90aGVyUGxhdGZvcm1JZCgpfSwKKyAgICAgICAgICAgIHt0ZXN0
OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3JtOiBNb2NrRGF0YS5zb21lUGxhdGZvcm1J
ZCgpLCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlh
bCddfSwKKyAgICAgICAgICAgIHt0ZXN0OiBNb2NrRGF0YS5zb21lVGVzdElkKCksIHBsYXRmb3Jt
OiBNb2NrRGF0YS5vdGhlclBsYXRmb3JtSWQoKSwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBb
J2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXX0sCiAgICAgICAgIF0sCiAgICAgICAgICdyZXBv
c2l0b3J5R3JvdXBzJzogWwogICAgICAgICAgICAge25hbWU6ICdvcy1vbmx5JywgYWNjZXB0c1Jv
b3Q6IHRydWUsIHJlcG9zaXRvcmllczogWwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzCmluZGV4IGVh
ZWU4MWEzNDBiMTg2MmIxZmExMmIzNjcyNjdkY2E4NTNjMWMzNjQuLjgwMDY3ZDgyZjRlNmU0YjIw
ZWQ1MjEwNWEwODQwMjA0YWJmYzg4OTkgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcworKysgYi9XZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMKQEAgLTMz
OSwxMiArMzM5LDE2IEBAIE1vY2tEYXRhID0gewogICAgICAgICAgICAgICAgICdzb21lLXRlc3Qn
OiB7J3Rlc3QnOiBbJ3NvbWUgdGVzdCddfQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgICdi
dWlsZGVycyc6IHsKLSAgICAgICAgICAgICAgICAnYnVpbGRlci0xJzogeydidWlsZGVyJzogJ3Nv
bWUtYnVpbGRlci0xJywKLSAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtmb3JjZXNj
aGVkdWxlcjogJ2ZvcmNlLXNvbWUtYnVpbGRlci0xJ319CisgICAgICAgICAgICAgICAgJ2J1aWxk
ZXItMSc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ2J1aWxkZXInOiAnc29tZS1idWlsZGVyLTEn
LAorICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczoge2ZvcmNlc2NoZWR1bGVyOiAnZm9y
Y2Utc29tZS1idWlsZGVyLTEnfSwKKyAgICAgICAgICAgICAgICAgICAgJ3N1cHBvcnRlZFJlcGV0
aXRpb25UeXBlcyc6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddCisgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgICd0ZXN0Q29uZmlndXJhdGlvbnMnOiBb
CiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAncGxhdGZvcm1zJzogWydz
b21lIHBsYXRmb3JtJ10sCisgICAgICAgICAgICAgICAgICAgICdzdXBwb3J0ZWRSZXBldGl0aW9u
VHlwZXMnOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXSwKICAgICAgICAgICAgICAgICAg
ICAgJ3R5cGVzJzogWydzb21lLXRlc3QnXSwKICAgICAgICAgICAgICAgICAgICAgJ2J1aWxkZXJz
JzogWydidWlsZGVyLTEnXSwKICAgICAgICAgICAgICAgICB9CkBAIC0zNzcsMjEgKzM4MSwyMyBA
QCBNb2NrRGF0YSA9IHsKICAgICAgICAgICAgICAgICAnc29tZS10ZXN0Jzogeyd0ZXN0JzogWydz
b21lIHRlc3QnXX0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAnYnVpbGRlcnMnOiB7Ci0g
ICAgICAgICAgICAgICAgJ3Rlc3Rlcic6IHsnYnVpbGRlcic6ICdzb21lIHRlc3RlcicsIHByb3Bl
cnRpZXM6IHtmb3JjZXNjaGVkdWxlcjogJ2ZvcmNlLXNvbWUtdGVzdGVyJ319LAotICAgICAgICAg
ICAgICAgICdidWlsZGVyLTEnOiB7J2J1aWxkZXInOiAnc29tZS1idWlsZGVyLTEnLCBwcm9wZXJ0
aWVzOiB7Zm9yY2VzY2hlZHVsZXI6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9fSwKLSAgICAgICAg
ICAgICAgICAnYnVpbGRlci0yJzogeydidWlsZGVyJzogJ3NvbWUgYnVpbGRlciAyJywgcHJvcGVy
dGllczoge2ZvcmNlc2NoZWR1bGVyOiAnZm9yY2Utc29tZS1idWlsZGVyLTInfX0sCisgICAgICAg
ICAgICAgICAgJ3Rlc3Rlcic6IHsnYnVpbGRlcic6ICdzb21lIHRlc3RlcicsIHByb3BlcnRpZXM6
IHtmb3JjZXNjaGVkdWxlcjogJ2ZvcmNlLXNvbWUtdGVzdGVyJ30sICdzdXBwb3J0ZWRSZXBldGl0
aW9uVHlwZXMnOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXSx9LAorICAgICAgICAgICAg
ICAgICdidWlsZGVyLTEnOiB7J2J1aWxkZXInOiAnc29tZS1idWlsZGVyLTEnLCBwcm9wZXJ0aWVz
OiB7Zm9yY2VzY2hlZHVsZXI6ICdmb3JjZS1zb21lLWJ1aWxkZXItMSd9LCAnc3VwcG9ydGVkUmVw
ZXRpdGlvblR5cGVzJzogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJywgJ3BhaXJlZC1wYXJh
bGxlbCddfSwKKyAgICAgICAgICAgICAgICAnYnVpbGRlci0yJzogeydidWlsZGVyJzogJ3NvbWUg
YnVpbGRlciAyJywgcHJvcGVydGllczoge2ZvcmNlc2NoZWR1bGVyOiAnZm9yY2Utc29tZS1idWls
ZGVyLTInfSwgJ3N1cHBvcnRlZFJlcGV0aXRpb25UeXBlcyc6IFsnYWx0ZXJuYXRpbmcnLCAnc2Vx
dWVudGlhbCcsICdwYWlyZWQtcGFyYWxsZWwnXX0sCiAgICAgICAgICAgICB9LAogICAgICAgICAg
ICAgJ3Rlc3RDb25maWd1cmF0aW9ucyc6IFsKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICdwbGF0Zm9ybXMnOiBbJ3NvbWUgcGxhdGZvcm0nXSwKICAgICAgICAgICAgICAg
ICAgICAgJ3R5cGVzJzogWydzb21lLXRlc3QnXSwKICAgICAgICAgICAgICAgICAgICAgJ2J1aWxk
ZXJzJzogWyd0ZXN0ZXInXSwKKyAgICAgICAgICAgICAgICAgICAgJ3N1cHBvcnRlZFJlcGV0aXRp
b25UeXBlcyc6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddLAogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAnYnVpbGRDb25maWd1cmF0aW9ucyc6IFsK
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICdwbGF0Zm9ybXMnOiBbJ3Nv
bWUgcGxhdGZvcm0nXSwKICAgICAgICAgICAgICAgICAgICAgJ2J1aWxkZXJzJzogWydidWlsZGVy
LTEnLCAnYnVpbGRlci0yJ10sCisgICAgICAgICAgICAgICAgICAgICdzdXBwb3J0ZWRSZXBldGl0
aW9uVHlwZXMnOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnLCAncGFpcmVkLXBhcmFsbGVs
J10sCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgXQogICAgICAgICB9CkBAIC00MTUs
MTQgKzQyMSwxNSBAQCBNb2NrRGF0YSA9IHsKICAgICAgICAgICAgICAgICAnc29tZS10ZXN0Jzog
eyd0ZXN0JzogWydzb21lIHRlc3QnXX0sCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgJ2J1
aWxkZXJzJzogewotICAgICAgICAgICAgICAgICdidWlsZGVyLTEnOiB7J2J1aWxkZXInOiAnc29t
ZS1idWlsZGVyLTEnLCBwcm9wZXJ0aWVzOiB7Zm9yY2VzY2hlZHVsZXI6ICdmb3JjZS1zb21lLWJ1
aWxkZXItMSd9fSwKLSAgICAgICAgICAgICAgICAnYnVpbGRlci0yJzogeydidWlsZGVyJzogJ3Nv
bWUgYnVpbGRlciAyJywgcHJvcGVydGllczoge2ZvcmNlc2NoZWR1bGVyOiAnZm9yY2Utc29tZS1i
dWlsZGVyLTInfX0sCisgICAgICAgICAgICAgICAgJ2J1aWxkZXItMSc6IHsnYnVpbGRlcic6ICdz
b21lLWJ1aWxkZXItMScsIHByb3BlcnRpZXM6IHtmb3JjZXNjaGVkdWxlcjogJ2ZvcmNlLXNvbWUt
YnVpbGRlci0xJ30sIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdz
ZXF1ZW50aWFsJ10sfSwKKyAgICAgICAgICAgICAgICAnYnVpbGRlci0yJzogeydidWlsZGVyJzog
J3NvbWUgYnVpbGRlciAyJywgcHJvcGVydGllczoge2ZvcmNlc2NoZWR1bGVyOiAnZm9yY2Utc29t
ZS1idWlsZGVyLTInfSwgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5nJywg
J3NlcXVlbnRpYWwnXSx9LAogICAgICAgICAgICAgfSwKICAgICAgICAgICAgICd0ZXN0Q29uZmln
dXJhdGlvbnMnOiBbCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAncGxh
dGZvcm1zJzogWydzb21lIHBsYXRmb3JtJ10sCiAgICAgICAgICAgICAgICAgICAgICd0eXBlcyc6
IFsnc29tZS10ZXN0J10sCiAgICAgICAgICAgICAgICAgICAgICdidWlsZGVycyc6IFsnYnVpbGRl
ci0xJywgJ2J1aWxkZXItMiddLAorICAgICAgICAgICAgICAgICAgICAnc3VwcG9ydGVkUmVwZXRp
dGlvblR5cGVzJzogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ10sCiAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgXQogICAgICAgICB9CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3Rz
LmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1idWlsZGJv
dC10cmlnZ2VyYWJsZS10ZXN0cy5qcwppbmRleCA4ZjU0MDlhMTdjMjEwZjdiMjkxNjcwZGY2NGQw
NThiODRjMzkwMWExLi5hY2E3ZGEyNDU5YmVhODU5ZmI0M2M2NjA3NzgwZmZjYTRkYzNlNzI5IDEw
MDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1
aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanMKQEAgLTE5
NzMsNyArMTk3Myw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24g
KCkgewogCiAgICAgICAgICAgICAgICAgY29uc3QgdGVzdCA9IFRlc3QuZmluZEJ5SWQoTW9ja0Rh
dGEuc29tZVRlc3RJZCgpKTsKICAgICAgICAgICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IFBsYXRm
b3JtLmZpbmRCeUlkKE1vY2tEYXRhLnNvbWVQbGF0Zm9ybUlkKCkpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChUcmlnZ2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbih0
ZXN0LCBwbGF0Zm9ybSksIG51bGwpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChUcmln
Z2VyYWJsZS5maW5kQnlUZXN0Q29uZmlndXJhdGlvbih0ZXN0LCBwbGF0Zm9ybSksIG51bGwpOwog
CiAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBzID0gVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3Jv
dXAuc29ydEJ5TmFtZSh0cmlnZ2VyYWJsZS5yZXBvc2l0b3J5R3JvdXBzKCkpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChncm91cHMubGVuZ3RoLCAxKTsKZGlmZiAtLWdpdCBh
L1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJv
dC1pbnRlZ3JhdGlvbi10ZXN0cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qcwppbmRleCA2ZGFm
NTM1NGRkMmY3MjA3NDdmOTZkNTNiYzRhMzFjZTA1ZDg4MjY3Li5jMmQ2MjRmNWJkZDcwZWQyM2M1
YWRlNTIzMjdiMDM3MDZlN2ZjYzY0IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanMK
KysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1
aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzCkBAIC0xNCw1MCArMTQsNTggQEAgY29uc3QgYWRk
V29ya2VyRm9yUmVwb3J0ID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvY29tbW9uLW9wZXJhdGlvbnMu
anMnKS5hZGRXb3JrZXIKIGNvbnN0IHByZXBhcmVTZXJ2ZXJUZXN0ID0gcmVxdWlyZSgnLi9yZXNv
dXJjZXMvY29tbW9uLW9wZXJhdGlvbnMuanMnKS5wcmVwYXJlU2VydmVyVGVzdDsKIGNvbnN0IEJy
b3dzZXJQcml2aWxlZ2VkQVBJID0gcmVxdWlyZSgnLi4vcHVibGljL3YzL3ByaXZpbGVnZWQtYXBp
LmpzJykuUHJpdmlsZWdlZEFQSTsKIAotY29uc3QgY29uZmlnV2l0aE9uZVRlc3RlclR3b0J1aWxk
ZXJzID0gewotICAgIHRyaWdnZXJhYmxlTmFtZTogJ2J1aWxkLXdlYmtpdCcsCi0gICAgbG9va2Jh
Y2tDb3VudDogMiwKLSAgICBidWlsZFJlcXVlc3RBcmd1bWVudDogJ2J1aWxkLXJlcXVlc3QtaWQn
LAotICAgIHdvcmtlck5hbWU6ICdzeW5jLXdvcmtlcicsCi0gICAgd29ya2VyUGFzc3dvcmQ6ICdw
YXNzd29yZCcsCi0gICAgcmVwb3NpdG9yeUdyb3VwczogewotICAgICAgICAnd2Via2l0Jzogewot
ICAgICAgICAgICAgcmVwb3NpdG9yaWVzOiB7J1dlYktpdCc6IHthY2NlcHRzUGF0Y2g6IHRydWV9
fSwKLSAgICAgICAgICAgIHRlc3RQcm9wZXJ0aWVzOiB7J3drJzogeydyZXZpc2lvbic6ICdXZWJL
aXQnfSwgJ3Jvb3RzJzogeydyb290cyc6IHt9fX0sCi0gICAgICAgICAgICBidWlsZFByb3BlcnRp
ZXM6IHsnd2snOiB7J3JldmlzaW9uJzogJ1dlYktpdCd9LCAnd2stcGF0Y2gnOiB7J3BhdGNoJzog
J1dlYktpdCd9LAotICAgICAgICAgICAgICAgICdjaGVja2JveCc6IHsnaWZSZXBvc2l0b3J5U2V0
JzogWydXZWJLaXQnXSwgJ3ZhbHVlJzogJ2J1aWxkLXdrJ30sCi0gICAgICAgICAgICAgICAgJ2J1
aWxkLXdrJzogeydpZlJlcG9zaXRvcnlTZXQnOiBbJ1dlYktpdCddLCAndmFsdWUnOiB0cnVlfSwK
LSAgICAgICAgICAgICAgICAnb3duZWQtY29tbWl0cyc6IHsnb3duZWRSZXZpc2lvbnMnOiAnV2Vi
S2l0J319LAotICAgICAgICAgICAgYWNjZXB0c1Jvb3RzOiB0cnVlLAotICAgICAgICB9Ci0gICAg
fSwKLSAgICB0eXBlczogewotICAgICAgICAnc29tZSc6IHsKLSAgICAgICAgICAgIHRlc3Q6IFsn
c29tZSB0ZXN0J10sCi0gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7J3Rlc3QnOiAnc29tZS10ZXN0
J30sCi0gICAgICAgIH0KLSAgICB9LAotICAgIGJ1aWxkZXJzOiB7Ci0gICAgICAgICdidWlsZGVy
LTEnOiB7Ci0gICAgICAgICAgICBidWlsZGVyOiAnc29tZSB0ZXN0ZXInLAotICAgICAgICAgICAg
cHJvcGVydGllczoge2ZvcmNlc2NoZWR1bGVyOiAnZm9yY2UtYWItdGVzdHMnfSwKK2Z1bmN0aW9u
IGNvbmZpZ1dpdGhPbmVUZXN0ZXJUd29CdWlsZGVycyh0ZXN0Q29uZmlndXJhdGlvbnNPdmVycmlk
ZT1be3R5cGVzOiBbJ3NvbWUnXSwgcGxhdGZvcm1zOiBbJ3NvbWUgcGxhdGZvcm0nXSwgYnVpbGRl
cnM6IFsnYnVpbGRlci0xJ10sCisgICAgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVy
bmF0aW5nJywgJ3NlcXVlbnRpYWwnXX1dKSB7CisgICAgcmV0dXJuIHsKKyAgICAgICAgdHJpZ2dl
cmFibGVOYW1lOiAnYnVpbGQtd2Via2l0JywKKyAgICAgICAgbG9va2JhY2tDb3VudDogMiwKKyAg
ICAgICAgYnVpbGRSZXF1ZXN0QXJndW1lbnQ6ICdidWlsZC1yZXF1ZXN0LWlkJywKKyAgICAgICAg
d29ya2VyTmFtZTogJ3N5bmMtd29ya2VyJywKKyAgICAgICAgd29ya2VyUGFzc3dvcmQ6ICdwYXNz
d29yZCcsCisgICAgICAgIHJlcG9zaXRvcnlHcm91cHM6IHsKKyAgICAgICAgICAgICd3ZWJraXQn
OiB7CisgICAgICAgICAgICAgICAgcmVwb3NpdG9yaWVzOiB7J1dlYktpdCc6IHthY2NlcHRzUGF0
Y2g6IHRydWV9fSwKKyAgICAgICAgICAgICAgICB0ZXN0UHJvcGVydGllczogeyd3ayc6IHsncmV2
aXNpb24nOiAnV2ViS2l0J30sICdyb290cyc6IHsncm9vdHMnOiB7fX19LAorICAgICAgICAgICAg
ICAgIGJ1aWxkUHJvcGVydGllczogeyd3ayc6IHsncmV2aXNpb24nOiAnV2ViS2l0J30sICd3ay1w
YXRjaCc6IHsncGF0Y2gnOiAnV2ViS2l0J30sCisgICAgICAgICAgICAgICAgICAgICdjaGVja2Jv
eCc6IHsnaWZSZXBvc2l0b3J5U2V0JzogWydXZWJLaXQnXSwgJ3ZhbHVlJzogJ2J1aWxkLXdrJ30s
CisgICAgICAgICAgICAgICAgICAgICdidWlsZC13ayc6IHsnaWZSZXBvc2l0b3J5U2V0JzogWydX
ZWJLaXQnXSwgJ3ZhbHVlJzogdHJ1ZX0sCisgICAgICAgICAgICAgICAgICAgICdvd25lZC1jb21t
aXRzJzogeydvd25lZFJldmlzaW9ucyc6ICdXZWJLaXQnfX0sCisgICAgICAgICAgICAgICAgYWNj
ZXB0c1Jvb3RzOiB0cnVlLAorICAgICAgICAgICAgfQogICAgICAgICB9LAotICAgICAgICAnYnVp
bGRlci0yJzogewotICAgICAgICAgICAgYnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsCi0gICAgICAg
ICAgICBwcm9wZXJ0aWVzOiB7Zm9yY2VzY2hlZHVsZXI6ICdmb3JjZS1hYi1idWlsZHMnfSwKKyAg
ICAgICAgdHlwZXM6IHsKKyAgICAgICAgICAgICdzb21lJzogeworICAgICAgICAgICAgICAgIHRl
c3Q6IFsnc29tZSB0ZXN0J10sCisgICAgICAgICAgICAgICAgcHJvcGVydGllczogeyd0ZXN0Jzog
J3NvbWUtdGVzdCd9LAorICAgICAgICAgICAgfQogICAgICAgICB9LAotICAgICAgICAnYnVpbGRl
ci0zJzogewotICAgICAgICAgICAgYnVpbGRlcjogJ290aGVyIGJ1aWxkZXInLAotICAgICAgICAg
ICAgcHJvcGVydGllczoge2ZvcmNlc2NoZWR1bGVyOiAnZm9yY2UtYWItYnVpbGRzJ30sCisgICAg
ICAgIGJ1aWxkZXJzOiB7CisgICAgICAgICAgICAnYnVpbGRlci0xJzogeworICAgICAgICAgICAg
ICAgIGJ1aWxkZXI6ICdzb21lIHRlc3RlcicsCisgICAgICAgICAgICAgICAgcHJvcGVydGllczog
e2ZvcmNlc2NoZWR1bGVyOiAnZm9yY2UtYWItdGVzdHMnfSwKKyAgICAgICAgICAgICAgICBzdXBw
b3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddCisgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgJ2J1aWxkZXItMic6IHsKKyAgICAgICAgICAgICAgICBi
dWlsZGVyOiAnc29tZSBidWlsZGVyJywKKyAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7Zm9y
Y2VzY2hlZHVsZXI6ICdmb3JjZS1hYi1idWlsZHMnfSwKKyAgICAgICAgICAgICAgICBzdXBwb3J0
ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCcsICdwYWlyZWQt
cGFyYWxsZWwnXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdidWlsZGVyLTMnOiB7Cisg
ICAgICAgICAgICAgICAgYnVpbGRlcjogJ290aGVyIGJ1aWxkZXInLAorICAgICAgICAgICAgICAg
IHByb3BlcnRpZXM6IHtmb3JjZXNjaGVkdWxlcjogJ2ZvcmNlLWFiLWJ1aWxkcyd9LAorICAgICAg
ICAgICAgICAgIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1
ZW50aWFsJywgJ3BhaXJlZC1wYXJhbGxlbCddCisgICAgICAgICAgICB9LAogICAgICAgICB9LAot
ICAgIH0sCi0gICAgYnVpbGRDb25maWd1cmF0aW9uczogWwotICAgICAgICB7cGxhdGZvcm1zOiBb
J3NvbWUgcGxhdGZvcm0nXSwgYnVpbGRlcnM6IFsnYnVpbGRlci0yJywgJ2J1aWxkZXItMyddfSwK
LSAgICBdLAotICAgIHRlc3RDb25maWd1cmF0aW9uczogWwotICAgICAgICB7dHlwZXM6IFsnc29t
ZSddLCBwbGF0Zm9ybXM6IFsnc29tZSBwbGF0Zm9ybSddLCBidWlsZGVyczogWydidWlsZGVyLTEn
XX0sCi0gICAgXSwKLX07CisgICAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbnM6IFsKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICBwbGF0Zm9ybXM6IFsnc29tZSBwbGF0Zm9ybSddLAorICAg
ICAgICAgICAgICAgIGJ1aWxkZXJzOiBbJ2J1aWxkZXItMicsICdidWlsZGVyLTMnXSwKKyAgICAg
ICAgICAgICAgICBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2Vx
dWVudGlhbCcsICdwYWlyZWQtcGFyYWxsZWwnXQorICAgICAgICAgICAgfSwKKyAgICAgICAgXSwK
KyAgICAgICAgdGVzdENvbmZpZ3VyYXRpb25zOiB0ZXN0Q29uZmlndXJhdGlvbnNPdmVycmlkZQor
ICAgIH07Cit9CiAKIGNvbnN0IGNvbmZpZ1dpdGhQbGF0Zm9ybU5hbWUgPSB7CiAgICAgdHJpZ2dl
cmFibGVOYW1lOiAnYnVpbGQtd2Via2l0JywKQEAgLTg3LDIxICs5NSwzMyBAQCBjb25zdCBjb25m
aWdXaXRoUGxhdGZvcm1OYW1lID0gewogICAgICAgICAnYnVpbGRlci0xJzogewogICAgICAgICAg
ICAgYnVpbGRlcjogJ3NvbWUgdGVzdGVyJywKICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtmb3Jj
ZXNjaGVkdWxlcjogJ2ZvcmNlLWFiLXRlc3RzJ30sCisgICAgICAgICAgICBzdXBwb3J0ZWRSZXBl
dGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddCiAgICAgICAgIH0sCiAg
ICAgICAgICdidWlsZGVyLTInOiB7CiAgICAgICAgICAgICBidWlsZGVyOiAnc29tZSBidWlsZGVy
JywKICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtmb3JjZXNjaGVkdWxlcjogJ2ZvcmNlLWFiLWJ1
aWxkcyd9LAorICAgICAgICAgICAgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0
aW5nJywgJ3NlcXVlbnRpYWwnLCAncGFpcmVkLXBhcmFsbGVsJ10KICAgICAgICAgfSwKICAgICAg
ICAgJ2J1aWxkZXItMyc6IHsKICAgICAgICAgICAgIGJ1aWxkZXI6ICdvdGhlciBidWlsZGVyJywK
ICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtmb3JjZXNjaGVkdWxlcjogJ2ZvcmNlLWFiLWJ1aWxk
cyd9LAorICAgICAgICAgICAgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5n
JywgJ3NlcXVlbnRpYWwnLCAncGFpcmVkLXBhcmFsbGVsJ10KICAgICAgICAgfSwKICAgICB9LAog
ICAgIGJ1aWxkQ29uZmlndXJhdGlvbnM6IFsKLSAgICAgICAge3BsYXRmb3JtczogWydzb21lIHBs
YXRmb3JtJ10sIGJ1aWxkZXJzOiBbJ2J1aWxkZXItMicsICdidWlsZGVyLTMnXX0sCisgICAgICAg
IHsKKyAgICAgICAgICAgIHBsYXRmb3JtczogWydzb21lIHBsYXRmb3JtJ10sCisgICAgICAgICAg
ICBidWlsZGVyczogWydidWlsZGVyLTInLCAnYnVpbGRlci0zJ10sCisgICAgICAgICAgICBzdXBw
b3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCcsICdwYWly
ZWQtcGFyYWxsZWwnXSwKKyAgICAgICAgfSwKICAgICBdLAogICAgIHRlc3RDb25maWd1cmF0aW9u
czogWwotICAgICAgICB7dHlwZXM6IFsnc29tZSddLCBwbGF0Zm9ybXM6IFsnc29tZSBwbGF0Zm9y
bSddLCBidWlsZGVyczogWydidWlsZGVyLTEnXX0sCisgICAgICAgIHsKKyAgICAgICAgICAgIHR5
cGVzOiBbJ3NvbWUnXSwKKyAgICAgICAgICAgIHBsYXRmb3JtczogWydzb21lIHBsYXRmb3JtJ10s
CisgICAgICAgICAgICBidWlsZGVyczogWydidWlsZGVyLTEnXSwKKyAgICAgICAgICAgIHN1cHBv
cnRlZFJlcGV0aXRpb25UeXBlczogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ10sCisgICAg
ICAgIH0sCiAgICAgXSwKIH07CiAKQEAgLTEzMiwxNCArMTUyLDIxIEBAIGNvbnN0IGNvbmZpZ1dp
dGhUd29UZXN0ZXJzID0gewogICAgICAgICAnYnVpbGRlci0xJzogewogICAgICAgICAgICAgYnVp
bGRlcjogJ3NvbWUgdGVzdGVyJywKICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtmb3JjZXNjaGVk
dWxlcjogJ2ZvcmNlLWFiLXRlc3RzJ30sCisgICAgICAgICAgICBzdXBwb3J0ZWRSZXBldGl0aW9u
VHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddCiAgICAgICAgIH0sCiAgICAgICAg
ICdidWlsZGVyLTInOiB7CiAgICAgICAgICAgICBidWlsZGVyOiAnYW5vdGhlciB0ZXN0ZXInLAog
ICAgICAgICAgICAgcHJvcGVydGllczoge2ZvcmNlc2NoZWR1bGVyOiAnZm9yY2UtYWItYnVpbGRz
J30sCisgICAgICAgICAgICBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcn
LCAnc2VxdWVudGlhbCddCiAgICAgICAgIH0sCiAgICAgfSwKICAgICB0ZXN0Q29uZmlndXJhdGlv
bnM6IFsKLSAgICAgICAge3R5cGVzOiBbJ3NvbWUnXSwgcGxhdGZvcm1zOiBbJ3NvbWUgcGxhdGZv
cm0nXSwgYnVpbGRlcnM6IFsnYnVpbGRlci0xJywgJ2J1aWxkZXItMiddfSwKKyAgICAgICAgewor
ICAgICAgICAgICAgdHlwZXM6IFsnc29tZSddLAorICAgICAgICAgICAgcGxhdGZvcm1zOiBbJ3Nv
bWUgcGxhdGZvcm0nXSwKKyAgICAgICAgICAgIGJ1aWxkZXJzOiBbJ2J1aWxkZXItMScsICdidWls
ZGVyLTInXSwKKyAgICAgICAgICAgIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlczogWydhbHRlcm5h
dGluZycsICdzZXF1ZW50aWFsJ10sCisgICAgICAgIH0sCiAgICAgXQogfTsKIApAQCAtMTUwLDcg
KzE3Nyw3IEBAIGZ1bmN0aW9uIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3QsIG1ldGhv
ZCwgdXJsLCBjb250ZW50VG9SZXNvbHZlKQogICAgIHJlcXVlc3QucmVzb2x2ZShjb250ZW50VG9S
ZXNvbHZlKTsKIH0KIAotZnVuY3Rpb24gY3JlYXRlVHJpZ2dlcmFibGUoY29uZmlnID0gY29uZmln
V2l0aE9uZVRlc3RlclR3b0J1aWxkZXJzKQorZnVuY3Rpb24gY3JlYXRlVHJpZ2dlcmFibGUoY29u
ZmlnID0gY29uZmlnV2l0aE9uZVRlc3RlclR3b0J1aWxkZXJzKCkpCiB7CiAgICAgbGV0IHRyaWdn
ZXJhYmxlOwogICAgIHJldHVybiBNb2NrRGF0YS5hZGRNb2NrQ29uZmlndXJhdGlvbihUZXN0U2Vy
dmVyLmRhdGFiYXNlKCkpLnRoZW4oKCkgPT4gewpAQCAtMTc4LDcgKzIwNSw3IEBAIGZ1bmN0aW9u
IGNyZWF0ZVRlc3RHcm91cCh0YXNrX25hbWU9J2N1c3RvbSB0YXNrJykgewogICAgIH0pOwogfQog
Ci1hc3luYyBmdW5jdGlvbiBjcmVhdGVUZXN0R3JvdXBXaXRoUGF0Y2goKQorYXN5bmMgZnVuY3Rp
b24gY3JlYXRlVGVzdEdyb3VwV2l0aFBhdGNoKHJlcGV0aXRpb25UeXBlID0gJ2FsdGVybmF0aW5n
JykKIHsKICAgICBjb25zdCBwYXRjaEZpbGUgPSBhd2FpdCBUZW1wb3JhcnlGaWxlLm1ha2VUZW1w
b3JhcnlGaWxlKCdwYXRjaC5kYXQnLCAncGF0Y2ggZmlsZScpOwogICAgIGNvbnN0IG9yaWdpbmFs
UHJpdmlsZWdlZEFQSSA9IGdsb2JhbC5Qcml2aWxlZ2VkQVBJOwpAQCAtMTkzLDcgKzIyMCw3IEBA
IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVRlc3RHcm91cFdpdGhQYXRjaCgpCiAgICAgc2V0MS5zZXRS
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0LCAnMTkxNjIyJywgdXBsb2FkZWRQYXRjaEZpbGUp
OwogICAgIGNvbnN0IHNldDIgPSBuZXcgQ3VzdG9tQ29tbWl0U2V0OwogICAgIHNldDIuc2V0UmV2
aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCwgJzE5MTYyMicpOwotICAgIGNvbnN0IHRhc2sgPSBh
d2FpdCBUZXN0R3JvdXAuY3JlYXRlV2l0aFRhc2soJ2N1c3RvbSB0YXNrJywgUGxhdGZvcm0uZmlu
ZEJ5SWQoTW9ja0RhdGEuc29tZVBsYXRmb3JtSWQoKSksIHNvbWVUZXN0LCAnc29tZSBncm91cCcs
IDIsICdhbHRlcm5hdGluZycsIFtzZXQxLCBzZXQyXSk7CisgICAgY29uc3QgdGFzayA9IGF3YWl0
IFRlc3RHcm91cC5jcmVhdGVXaXRoVGFzaygnY3VzdG9tIHRhc2snLCBQbGF0Zm9ybS5maW5kQnlJ
ZChNb2NrRGF0YS5zb21lUGxhdGZvcm1JZCgpKSwgc29tZVRlc3QsICdzb21lIGdyb3VwJywgMiwg
cmVwZXRpdGlvblR5cGUsIFtzZXQxLCBzZXQyXSk7CiAKICAgICByZXR1cm4gVGVzdEdyb3VwLmZp
bmRBbGxCeVRhc2sodGFzay5pZCgpKVswXTsKIH0KQEAgLTIzOSw3ICsyNjYsNiBAQCBkZXNjcmli
ZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgUHJpdmlsZWdlZEFQSS5j
b25maWd1cmUoJ3Rlc3QnLCAncGFzc3dvcmQnKTsKICAgICB9KTsKIAotCiAgICAgaXQoJ3Nob3Vs
ZCBub3Qgc2NoZWR1bGUgb24gYW5vdGhlciBidWlsZGVyIGlmIHRoZSBidWlsZCB3YXMgc2NoZWR1
bGVkIG9uIG9uZSBidWlsZGVyIGJlZm9yZScsICgpID0+IHsKICAgICAgICAgY29uc3QgcmVxdWVz
dHMgPSBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzOwogICAgICAgICBsZXQgZmlyc3RUZXN0R3JvdXA7
CkBAIC02ODMsNiArNzA5LDQwNCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290Rmls
ZXMoKSwgW290aGVyV2Via2l0Um9vdF0pOwogICAgIH0pOwogCisgICAgaXQoJ3Nob3VsZCByZXNw
ZWN0ZWQgInN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcyIgc3BlY2lmaWVkIGJ5IGJ1aWxkIGFuZCB0
ZXN0IGNvbmZpZ3VyYXRpb25zJywgYXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCByZXF1ZXN0
cyA9IE1vY2tSZW1vdGVBUEkucmVxdWVzdHM7CisgICAgICAgIGxldCBzeW5jUHJvbWlzZTsKKyAg
ICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBhd2FpdCBjcmVhdGVUcmlnZ2VyYWJsZShjb25maWdX
aXRoT25lVGVzdGVyVHdvQnVpbGRlcnMoWworICAgICAgICAgICAgeyBidWlsZGVyczogWydidWls
ZGVyLTEnXSwgdHlwZXM6IFsnc29tZSddLCBwbGF0Zm9ybXM6IFsnc29tZSBwbGF0Zm9ybSddLCBz
dXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IFsnYWx0ZXJuYXRpbmcnLCAncGFpcmVkLXBhcmFsbGVs
J10gfV0pKTsKKyAgICAgICAgY29uc3QgZmlyc3RCdWlsZE51bWJlciA9IDEyMzsKKyAgICAgICAg
Y29uc3Qgc2Vjb25kQnVpbGROdW1iZXIgPSAxMjQ7CisgICAgICAgIGxldCB0ZXN0R3JvdXAgPSBh
d2FpdCBjcmVhdGVUZXN0R3JvdXBXaXRoUGF0Y2goJ3BhaXJlZC1wYXJhbGxlbCcpOworCisgICAg
ICAgIGNvbnN0IHRhc2tJZCA9IHRlc3RHcm91cC50YXNrKCkuaWQoKTsKKyAgICAgICAgbGV0IHdl
YmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5s
ZW5ndGgsIDYpOworCisgICAgICAgIGxldCBidWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRS
ZXF1ZXN0cygpWzBdOworICAgICAgICBhc3NlcnQoYnVpbGRSZXF1ZXN0LmlzQnVpbGQoKSk7Cisg
ICAgICAgIGFzc2VydCghYnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBudWxsKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigp
LCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOworCisgICAgICAgIGxldCBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0
U2V0KCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JS
ZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAgbGV0IHdlYmtpdFBhdGNoID0g
Y29tbWl0U2V0LnBhdGNoRm9yUmVwb3NpdG9yeSh3ZWJraXQpOworICAgICAgICBhc3NlcnQod2Vi
a2l0UGF0Y2ggaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwod2Via2l0UGF0Y2guZmlsZW5hbWUoKSwgJ3BhdGNoLmRhdCcpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwoY29tbWl0U2V0LnJvb3RGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10p
OworCisgICAgICAgIGxldCBvdGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVl
c3RzKClbMV07CisgICAgICAgIGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwor
ICAgICAgICBhc3NlcnQoIW90aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgYXNz
ZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5n
Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNV
cmwoKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFs
KG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CisKKyAgICAgICAgbGV0IG90aGVy
Q29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0
RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7Cisg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtd
KTsKKworICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhl
bigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJM
KCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOworICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlc2V0KCk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKKyAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0
YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CisgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxk
c1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMl0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdvdGhlciBi
dWlsZGVyJyksIHt9KTsKKyAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwor
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsIE1vY2tE
YXRhLnJlY2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOworICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1
aWxkc1VybCgnc29tZSBidWlsZGVyJywgMiksIHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290
aGVyIGJ1aWxkZXInLCAyKSwge30pOworICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNyk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9T
VCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKKyAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzEnLCAnanNv
bnJwYyc6ICcyLjAnLCAnbWV0aG9kJzogJ2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAgICAgICAg
ICAgeyd3ayc6ICcxOTE2MjInLCAnd2stcGF0Y2gnOiBSZW1vdGVBUEkudXJsKCcvYXBpL3VwbG9h
ZGVkLWZpbGUvMS5kYXQnKSwgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ2J1aWxkLXdrJzogdHJ1
ZSwgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1i
dWlsZHMnfX0pOworICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOworICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKKyAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXInKSwKKyAgICAgICAgICAgIE1vY2tEYXRhLnBlbmRpbmdCdWlsZCh7
YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVp
bGRSZXF1ZXN0SWQ6IDF9KSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzldLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicp
LCB7fSk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJl
Y2VudEJ1aWxkc1VybCgnc29tZSB0ZXN0ZXInLCAyKSwge30pOworICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNV
cmwoJ3NvbWUgYnVpbGRlcicsIDIpLAorICAgICAgICAgICAgTW9ja0RhdGEucnVubmluZ0J1aWxk
KHtidWlsZGVySWQ6IE1vY2tEYXRhLmJ1aWxkZXJJREZvck5hbWUoJ3NvbWUgYnVpbGRlcicpLCBi
dWlsZFJlcXVlc3RJZDogMSwgYnVpbGROdW1iZXI6IGZpcnN0QnVpbGROdW1iZXIsIHN0YXR1c0Rl
c2NyaXB0aW9uOiAnQnVpbGRpbmcgV2ViS2l0J30pKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdv
dGhlciBidWlsZGVyJywgMiksIHt9KTsKKyAgICAgICAgYXdhaXQgc3luY1Byb21pc2U7CisKKyAg
ICAgICAgbGV0IHRlc3RHcm91cHMgPSBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJ
ZCwgdHJ1ZSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3Ro
LCAxKTsKKyAgICAgICAgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKKyAgICAgICAgd2Via2l0
ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7Cisg
ICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0
aCwgNik7CisKKyAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMo
KVswXTsKKyAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOworICAgICAgICBh
c3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgYXNzZXJ0
LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJs
KCdzb21lIGJ1aWxkZXInLCAxMjQpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxk
UmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCAnQnVpbGRpbmcgV2ViS2l0Jyk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKworICAg
ICAgICBjb21taXRTZXQgPSBidWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChjb21taXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcx
OTE2MjInKTsKKyAgICAgICAgd2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0
b3J5KHdlYmtpdCk7CisgICAgICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9h
ZGVkRmlsZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFt
ZSgpLCAncGF0Y2guZGF0Jyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoY29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CisKKyAgICAgICAgb3RoZXJCdWlsZFJl
cXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOworICAgICAgICBhc3NlcnQob3Ro
ZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVx
dWVzdC5pc1Rlc3QoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVx
dWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1
YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOworCisgICAgICAgIG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29t
bWl0U2V0KCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZp
c2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwp
OworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJlcG9z
aXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21t
aXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKworICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0
KCk7CisgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVu
KCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwo
KSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CisgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVzZXQoKTsKKyAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOworICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRh
LnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKKyAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRz
VXJsKCdzb21lIGJ1aWxkZXInKSwge30pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ290aGVyIGJ1
aWxkZXInKSwge30pOworICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Cisg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CisgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0RhdGEucmVjZW50QnVp
bGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKKyAgICAgICAgICAgIE1vY2tEYXRhLnJ1bm5pbmdC
dWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXIn
KSwgYnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkVGFnOiBmaXJzdEJ1aWxkTnVtYmVyLCBzdGF0dXNE
ZXNjcmlwdGlvbjogJ0NvbXBpbGluZyBXVEYnfSkpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgnb3Ro
ZXIgYnVpbGRlcicsIDIpLCB7fSk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA5KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQn
LCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJsKCdzb21lIHRlc3RlcicpLCB7fSk7CisgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVu
ZGluZ0J1aWxkc1VybCgnc29tZSBidWlsZGVyJyksIHt9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCBNb2NrRGF0YS5wZW5kaW5nQnVpbGRzVXJs
KCdvdGhlciBidWlsZGVyJyksIHt9KTsKKyAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDEyKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKKyAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKKyAgICAgICAgICAgIE1vY2tE
YXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdz
b21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkVGFnOiBmaXJzdEJ1aWxkTnVt
YmVyLCBzdGF0dXNEZXNjcmlwdGlvbjogJ0NvbXBpbGluZyBXVEYnfSkpOworICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRC
dWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOworICAgICAgICBhd2FpdCBzeW5jUHJv
bWlzZTsKKworICAgICAgICBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1
ZSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91cHMubGVuZ3RoLCAxKTsK
KyAgICAgICAgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKKyAgICAgICAgd2Via2l0ID0gUmVw
b3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5SWQoKSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpLmxlbmd0aCwgNik7
CisKKyAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKVswXTsK
KyAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOworICAgICAgICBhc3NlcnQo
IWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWls
ZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ1J1bm5pbmcnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmlj
dEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21l
IGJ1aWxkZXInLCBmaXJzdEJ1aWxkTnVtYmVyKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVh
bChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgJ0NvbXBpbGluZyBXVEYnKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwor
CisgICAgICAgIGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOworICAgICAgICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KTsKKyAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2Yg
VXBsb2FkZWRGaWxlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZp
bGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1p
dFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKworICAgICAgICBvdGhlckJ1
aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CisgICAgICAgIGFzc2Vy
dChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOworICAgICAgICBhc3NlcnQoIW90aGVyQnVp
bGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgICAgIGFzc2VydC5zdHJp
Y3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgbnVsbCk7CisgICAgICAgIGFz
c2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBu
dWxsKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxk
SWQoKSwgbnVsbCk7CisKKyAgICAgICAgb3RoZXJDb21taXRTZXQgPSBvdGhlckJ1aWxkUmVxdWVz
dC5jb21taXRTZXQoKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyQ29tbWl0U2V0
LnJldmlzaW9uRm9yUmVwb3NpdG9yeSh3ZWJraXQpLCAnMTkxNjIyJyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5wYXRjaEZvclJlcG9zaXRvcnkod2Via2l0KSwg
bnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yb290Rm9y
UmVwb3NpdG9yeSh3ZWJraXQpLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhl
ckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOworCisgICAgICAgIGF3YWl0IHVwbG9hZFJv
b3QocGFyc2VJbnQoYnVpbGRSZXF1ZXN0LmlkKCkpLCBmaXJzdEJ1aWxkTnVtYmVyKTsKKworICAg
ICAgICB0ZXN0R3JvdXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRy
dWUpOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7
CisgICAgICAgIHRlc3RHcm91cCA9IHRlc3RHcm91cHNbMF07CisgICAgICAgIHdlYmtpdCA9IFJl
cG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYp
OworCisgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07
CisgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAgICAgICAgYXNzZXJ0
KCFidWlsZFJlcXVlc3QuaXNUZXN0KCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVp
bGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0
cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdz
b21lIGJ1aWxkZXInLCBmaXJzdEJ1aWxkTnVtYmVyKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbChidWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgJ0NvbXBpbGluZyBXVEYnKTsK
KyAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOwor
CisgICAgICAgIGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOworICAgICAgICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZvclJl
cG9zaXRvcnkod2Via2l0KTsKKyAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNlb2Yg
VXBsb2FkZWRGaWxlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNoLmZp
bGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgbGV0IHdlYmtpdFJvb3QgPSBjb21taXRT
ZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0KTsKKyAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3Qg
aW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Vi
a2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEyMy5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFt3ZWJraXRSb290XSk7CisKKyAgICAgICAg
b3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0cygpWzFdOworICAgICAg
ICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAgICAgICAgYXNzZXJ0KCFv
dGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChv
dGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJlbCgpLCAnV2FpdGluZycpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzVXJsKCksIG51bGwpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRp
b24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVz
dC5idWlsZElkKCksIG51bGwpOworCisgICAgICAgIG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWls
ZFJlcXVlc3QuY29tbWl0U2V0KCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNv
bW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAg
ICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdl
YmtpdCksIG51bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cm9vdEZvclJlcG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKworICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlc2V0KCk7CisgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5
bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90
QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CisgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKKyAgICAgICAgYXdhaXQgTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOworCisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDMpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dF
VCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJyksIHt9KTsKKyAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5w
ZW5kaW5nQnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInKSwge30pOworICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNV
cmwoJ290aGVyIGJ1aWxkZXInKSwge30pOworICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNik7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAn
R0VUJywgTW9ja0RhdGEucmVjZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7Cisg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgTW9ja0Rh
dGEucmVjZW50QnVpbGRzVXJsKCdzb21lIGJ1aWxkZXInLCAyKSwKKyAgICAgICAgICAgIE1vY2tE
YXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgn
c29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZFRhZzogZmlyc3RCdWlsZE51
bWJlcn0pKTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdH
RVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOwor
ICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYXBpL3YyL2ZvcmNlc2NoZWR1
bGVycy9mb3JjZS1hYi1idWlsZHMnLCAnT0snKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChy
ZXF1ZXN0c1s2XS5kYXRhLCB7J2lkJzogJzInLCAnanNvbnJwYyc6ICcyLjAnLCAnbWV0aG9kJzog
J2ZvcmNlJywgJ3BhcmFtcyc6CisgICAgICAgICAgICAgICAgeyd3ayc6ICcxOTE2MjInLCAnYnVp
bGQtcmVxdWVzdC1pZCc6ICcyJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycs
ICdjaGVja2JveCc6ICdidWlsZC13aycsICdidWlsZC13ayc6IHRydWV9fSk7CisgICAgICAgIGF3
YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29t
ZSB0ZXN0ZXInKSwge30pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s4XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7
fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywg
TW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicpLCB7fSk7CisgICAgICAg
IGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7CisgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1VybCgn
c29tZSB0ZXN0ZXInLCAyKSwge30pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRl
cicsIDIpLCB7CisgICAgICAgICAgICAnYnVpbGRzJzogWworICAgICAgICAgICAgICAgIE1vY2tE
YXRhLnJ1bm5pbmdCdWlsZERhdGEoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFt
ZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAyLCBidWlsZFRhZzogc2Vjb25kQnVp
bGROdW1iZXJ9KSwKKyAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7
YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVp
bGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkVGFnOiBmaXJzdEJ1aWxkTnVtYmVyfSldCisgICAgICAgIH0p
OworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwge30pOworICAgICAg
ICBhd2FpdCBzeW5jUHJvbWlzZTsKKworICAgICAgICBhd2FpdCBUZXN0R3JvdXAuZmV0Y2hGb3JU
YXNrKHRhc2tJZCwgdHJ1ZSk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRlc3RHcm91
cHMubGVuZ3RoLCAxKTsKKyAgICAgICAgdGVzdEdyb3VwID0gdGVzdEdyb3Vwc1swXTsKKyAgICAg
ICAgd2Via2l0ID0gUmVwb3NpdG9yeS5maW5kQnlJZChNb2NrRGF0YS53ZWJraXRSZXBvc2l0b3J5
SWQoKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXAuYnVpbGRSZXF1ZXN0
cygpLmxlbmd0aCwgNik7CisKKyAgICAgICAgYnVpbGRSZXF1ZXN0ID0gdGVzdEdyb3VwLmJ1aWxk
UmVxdWVzdHMoKVswXTsKKyAgICAgICAgYXNzZXJ0KGJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOwor
ICAgICAgICBhc3NlcnQoIWJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7CisgICAgICAgIGFzc2VydC5z
dHJpY3RFcXVhbChidWlsZFJlcXVlc3Quc3RhdHVzTGFiZWwoKSwgJ0NvbXBsZXRlZCcpOworICAg
ICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1c1VybCgpLCBNb2NrRGF0
YS5zdGF0dXNVcmwoJ3NvbWUgYnVpbGRlcicsIGZpcnN0QnVpbGROdW1iZXIpKTsKKyAgICAgICAg
YXNzZXJ0LnN0cmljdEVxdWFsKGJ1aWxkUmVxdWVzdC5zdGF0dXNEZXNjcmlwdGlvbigpLCBudWxs
KTsKKyAgICAgICAgYXNzZXJ0Lm5vdEVxdWFsKGJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OworCisgICAgICAgIGNvbW1pdFNldCA9IGJ1aWxkUmVxdWVzdC5jb21taXRTZXQoKTsKKyAgICAg
ICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Vi
a2l0KSwgJzE5MTYyMicpOworICAgICAgICB3ZWJraXRQYXRjaCA9IGNvbW1pdFNldC5wYXRjaEZv
clJlcG9zaXRvcnkod2Via2l0KTsKKyAgICAgICAgYXNzZXJ0KHdlYmtpdFBhdGNoIGluc3RhbmNl
b2YgVXBsb2FkZWRGaWxlKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHdlYmtpdFBhdGNo
LmZpbGVuYW1lKCksICdwYXRjaC5kYXQnKTsKKyAgICAgICAgd2Via2l0Um9vdCA9IGNvbW1pdFNl
dC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOworICAgICAgICBhc3NlcnQod2Via2l0Um9vdCBp
bnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJr
aXRSb290LmZpbGVuYW1lKCksICdyb290MTIzLmRhdCcpOworICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKGNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW3dlYmtpdFJvb3RdKTsKKworICAgICAgICBv
dGhlckJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMV07CisgICAgICAg
IGFzc2VydChvdGhlckJ1aWxkUmVxdWVzdC5pc0J1aWxkKCkpOworICAgICAgICBhc3NlcnQoIW90
aGVyQnVpbGRSZXF1ZXN0LmlzVGVzdCgpKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90
aGVyQnVpbGRSZXF1ZXN0LnN0YXR1c0xhYmVsKCksICdSdW5uaW5nJyk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3Rh
dHVzVXJsKCdzb21lIGJ1aWxkZXInLCBzZWNvbmRCdWlsZE51bWJlcikpOworICAgICAgICBhc3Nl
cnQuc3RyaWN0RXF1YWwob3RoZXJCdWlsZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVs
bCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOworCisgICAgICAgIG90aGVyQ29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3Qu
Y29tbWl0U2V0KCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5y
ZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQu
c3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51
bGwpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQucm9vdEZvclJl
cG9zaXRvcnkod2Via2l0KSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJD
b21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKKyAgICAgICAgYXdhaXQgdXBsb2FkUm9vdChw
YXJzZUludChvdGhlckJ1aWxkUmVxdWVzdC5pZCgpKSwgMTI0KTsKKworICAgICAgICB0ZXN0R3Jv
dXBzID0gYXdhaXQgVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOworCisgICAg
ICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIHRl
c3RHcm91cCA9IHRlc3RHcm91cHNbMF07CisgICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnkuZmlu
ZEJ5SWQoTW9ja0RhdGEud2Via2l0UmVwb3NpdG9yeUlkKCkpOworICAgICAgICBhc3NlcnQuc3Ry
aWN0RXF1YWwodGVzdEdyb3VwLmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworCisgICAgICAg
IGJ1aWxkUmVxdWVzdCA9IHRlc3RHcm91cC5idWlsZFJlcXVlc3RzKClbMF07CisgICAgICAgIGFz
c2VydChidWlsZFJlcXVlc3QuaXNCdWlsZCgpKTsKKyAgICAgICAgYXNzZXJ0KCFidWlsZFJlcXVl
c3QuaXNUZXN0KCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0
YXR1c0xhYmVsKCksICdDb21wbGV0ZWQnKTsKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGJ1
aWxkUmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXIn
LCBmaXJzdEJ1aWxkTnVtYmVyKSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChidWlsZFJl
cXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5ub3RFcXVh
bChidWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKKworICAgICAgICBjb21taXRTZXQgPSBi
dWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21t
aXRTZXQucmV2aXNpb25Gb3JSZXBvc2l0b3J5KHdlYmtpdCksICcxOTE2MjInKTsKKyAgICAgICAg
d2Via2l0UGF0Y2ggPSBjb21taXRTZXQucGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCk7CisgICAg
ICAgIGFzc2VydCh3ZWJraXRQYXRjaCBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSk7CisgICAgICAg
IGFzc2VydC5zdHJpY3RFcXVhbCh3ZWJraXRQYXRjaC5maWxlbmFtZSgpLCAncGF0Y2guZGF0Jyk7
CisgICAgICAgIHdlYmtpdFJvb3QgPSBjb21taXRTZXQucm9vdEZvclJlcG9zaXRvcnkod2Via2l0
KTsKKyAgICAgICAgYXNzZXJ0KHdlYmtpdFJvb3QgaW5zdGFuY2VvZiBVcGxvYWRlZEZpbGUpOwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwod2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9vdDEy
My5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb21taXRTZXQuYWxsUm9vdEZpbGVz
KCksIFt3ZWJraXRSb290XSk7CisKKyAgICAgICAgb3RoZXJCdWlsZFJlcXVlc3QgPSB0ZXN0R3Jv
dXAuYnVpbGRSZXF1ZXN0cygpWzFdOworICAgICAgICBhc3NlcnQob3RoZXJCdWlsZFJlcXVlc3Qu
aXNCdWlsZCgpKTsKKyAgICAgICAgYXNzZXJ0KCFvdGhlckJ1aWxkUmVxdWVzdC5pc1Rlc3QoKSk7
CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5zdGF0dXNMYWJl
bCgpLCAnQ29tcGxldGVkJyk7CisgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5zdGF0dXNVcmwoKSwgTW9ja0RhdGEuc3RhdHVzVXJsKCdzb21lIGJ1aWxkZXInLCBz
ZWNvbmRCdWlsZE51bWJlcikpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJCdWls
ZFJlcXVlc3Quc3RhdHVzRGVzY3JpcHRpb24oKSwgbnVsbCk7CisgICAgICAgIGFzc2VydC5ub3RF
cXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwpOworCisgICAgICAgIG90aGVy
Q29tbWl0U2V0ID0gb3RoZXJCdWlsZFJlcXVlc3QuY29tbWl0U2V0KCk7CisgICAgICAgIGFzc2Vy
dC5zdHJpY3RFcXVhbChvdGhlckNvbW1pdFNldC5yZXZpc2lvbkZvclJlcG9zaXRvcnkod2Via2l0
KSwgJzE5MTYyMicpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwob3RoZXJDb21taXRTZXQu
cGF0Y2hGb3JSZXBvc2l0b3J5KHdlYmtpdCksIG51bGwpOworICAgICAgICBjb25zdCBvdGhlcldl
YmtpdFJvb3QgPSBvdGhlckNvbW1pdFNldC5yb290Rm9yUmVwb3NpdG9yeSh3ZWJraXQpOworICAg
ICAgICBhc3NlcnQob3RoZXJXZWJraXRSb290IGluc3RhbmNlb2YgVXBsb2FkZWRGaWxlKTsKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG90aGVyV2Via2l0Um9vdC5maWxlbmFtZSgpLCAncm9v
dDEyNC5kYXQnKTsKKyAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxS
b290RmlsZXMoKSwgW290aGVyV2Via2l0Um9vdF0pOworCisgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVzZXQoKTsKKyAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2Vycygp
LnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVy
c1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKKyAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOworICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CisKKyAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7
CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9j
a0RhdGEucGVuZGluZ0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOworICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdC
dWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicpLCB7fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3Ro
ZXIgYnVpbGRlcicpLCB7fSk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKKworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2
KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCBN
b2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ3NvbWUgdGVzdGVyJywgMiksIHt9KTsKKyAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCBNb2NrRGF0YS5yZWNl
bnRCdWlsZHNVcmwoJ3NvbWUgYnVpbGRlcicsIDIpLCB7CisgICAgICAgICdidWlsZHMnOiBbCisg
ICAgICAgICAgICBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkRGF0YSh7YnVpbGRlcklkOiBNb2NrRGF0
YS5idWlsZGVySURGb3JOYW1lKCdzb21lIGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDIsIGJ1
aWxkVGFnOiBzZWNvbmRCdWlsZE51bWJlcn0pLAorICAgICAgICAgICAgTW9ja0RhdGEuZmluaXNo
ZWRCdWlsZERhdGEoe2J1aWxkZXJJZDogTW9ja0RhdGEuYnVpbGRlcklERm9yTmFtZSgnc29tZSBi
dWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAxLCBidWlsZFRhZzogZmlyc3RCdWlsZE51bWJlcn0p
XQorICAgICAgICB9KTsKKyAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
NV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAyKSwg
e30pOworICAgICAgICBhd2FpdCBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisKKyAg
ICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7CisgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgTW9ja0RhdGEucGVuZGlu
Z0J1aWxkc1VybCgnc29tZSB0ZXN0ZXInKSwge30pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsIE1vY2tEYXRhLnBlbmRpbmdCdWlsZHNVcmwoJ3Nv
bWUgYnVpbGRlcicpLCB7fSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzhdLCAnR0VUJywgTW9ja0RhdGEucGVuZGluZ0J1aWxkc1VybCgnb3RoZXIgYnVpbGRlcicp
LCB7fSk7CisgICAgICAgIGF3YWl0IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKwor
ICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMik7CisgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgTW9ja0RhdGEucmVj
ZW50QnVpbGRzVXJsKCdzb21lIHRlc3RlcicsIDIpLCB7fSk7CisgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsIE1vY2tEYXRhLnJlY2VudEJ1aWxkc1Vy
bCgnc29tZSBidWlsZGVyJywgMiksIHsKKyAgICAgICAgICAgICdidWlsZHMnOiBbCisgICAgICAg
ICAgICAgICAgTW9ja0RhdGEuZmluaXNoZWRCdWlsZERhdGEoe2J1aWxkZXJJZDogTW9ja0RhdGEu
YnVpbGRlcklERm9yTmFtZSgnc29tZSBidWlsZGVyJyksIGJ1aWxkUmVxdWVzdElkOiAyLCBidWls
ZFRhZzogc2Vjb25kQnVpbGROdW1iZXJ9KSwKKyAgICAgICAgICAgICAgICBNb2NrRGF0YS5maW5p
c2hlZEJ1aWxkRGF0YSh7YnVpbGRlcklkOiBNb2NrRGF0YS5idWlsZGVySURGb3JOYW1lKCdzb21l
IGJ1aWxkZXInKSwgYnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkVGFnOiBmaXJzdEJ1aWxkTnVtYmVy
fSldCisgICAgICAgIH0pOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1sxMV0sICdHRVQnLCBNb2NrRGF0YS5yZWNlbnRCdWlsZHNVcmwoJ290aGVyIGJ1aWxkZXInLCAy
KSwge30pOworICAgICAgICBhd2FpdCBzeW5jUHJvbWlzZTsKKworICAgICAgICBhd2FpdCBUZXN0
R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CisgICAgICAgIGFzc2VydC5zdHJpY3RF
cXVhbCh0ZXN0R3JvdXBzLmxlbmd0aCwgMSk7CisgICAgICAgIHRlc3RHcm91cCA9IHRlc3RHcm91
cHNbMF07CisgICAgICAgIHdlYmtpdCA9IFJlcG9zaXRvcnkuZmluZEJ5SWQoTW9ja0RhdGEud2Vi
a2l0UmVwb3NpdG9yeUlkKCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGVzdEdyb3Vw
LmJ1aWxkUmVxdWVzdHMoKS5sZW5ndGgsIDYpOworCisgICAgICAgIGJ1aWxkUmVxdWVzdCA9IHRl
c3RHcm91cC5idWlsZFJlcXVlc3RzKClbMl07CisgICAgICAgIGFzc2VydChidWlsZFJlcXVlc3Qu
aXNUZXN0KCkpOworICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYnVpbGRSZXF1ZXN0LnN0YXR1
c0xhYmVsKCksICdXYWl0aW5nJyk7CisgICAgfSk7CisKICAgICBpdCgnc2hvdWxkIHNjaGVkdWxl
IGEgYnVpbGQgdG8gYnVpbGQgYSBwYXRjaCcsICgpID0+IHsKICAgICAgICAgY29uc3QgcmVxdWVz
dHMgPSBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzOwogICAgICAgICBsZXQgdHJpZ2dlcmFibGU7CmRp
ZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qtc3lu
Y2VyLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNl
ci5qcwppbmRleCA5ZWI4YzZjOTFhZjUwZmMyMDIwNjZkZTVjODJjNDFkOWI0ZDQwOWVjLi5lZTg1
MjA5OTgyOTUyYjkwYjQ0NDU4MjBkYjc0NmFhODkzMzBkZWViIDEwMDY0NAotLS0gYS9XZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzCisrKyBiL1dlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMKQEAgLTY5LDYg
KzY5LDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICB0aGlzLl93b3JrZXJQcm9w
ZXJ0eU5hbWUgPSBjb21tb25Db25maWd1cmF0aW9ucy53b3JrZXJBcmd1bWVudDsKICAgICAgICAg
dGhpcy5fcGxhdGZvcm1Qcm9wZXJ0eU5hbWUgPSBjb21tb25Db25maWd1cmF0aW9ucy5wbGF0Zm9y
bUFyZ3VtZW50OwogICAgICAgICB0aGlzLl9idWlsZFJlcXVlc3RQcm9wZXJ0eU5hbWUgPSBjb21t
b25Db25maWd1cmF0aW9ucy5idWlsZFJlcXVlc3RBcmd1bWVudDsKKyAgICAgICAgdGhpcy5fYnVp
bGRlclN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcyA9IG9iamVjdC5zdXBwb3J0ZWRSZXBldGl0aW9u
VHlwZXM7CiAgICAgICAgIHRoaXMuX2J1aWxkZXJOYW1lID0gb2JqZWN0LmJ1aWxkZXI7CiAgICAg
ICAgIHRoaXMuX2J1aWxkZXJJRCA9IG9iamVjdC5idWlsZGVySUQ7CiAgICAgICAgIHRoaXMuX3dv
cmtlckxpc3QgPSBvYmplY3Qud29ya2VyTGlzdDsKQEAgLTgyLDIyICs4MywyNiBAQCBjbGFzcyBC
dWlsZGJvdFN5bmNlciB7CiAgICAgLy8gQnVpbGRib3QgcmVzdWx0IGNvZGVzOiBodHRwczovL2Rv
Y3MuYnVpbGRib3QubmV0L2xhdGVzdC9kZXZlbG9wZXIvcmVzdWx0cy5odG1sCiAgICAgbGFzdENv
bXBsZXRlZEJ1aWxkU3VjY2Vzc2Z1bCgpIHsgcmV0dXJuICF0aGlzLl9sYXN0Q29tcGxldGVkQnVp
bGQgfHwgIXRoaXMuX2xhc3RDb21wbGV0ZWRCdWlsZC5yZXN1bHQoKSB9CiAKLSAgICBhZGRUZXN0
Q29uZmlndXJhdGlvbih0ZXN0LCBwbGF0Zm9ybSwgcHJvcGVydGllc1RlbXBsYXRlKQorICAgIGFk
ZFRlc3RDb25maWd1cmF0aW9uKHRlc3QsIHBsYXRmb3JtLCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlw
ZXMsIHByb3BlcnRpZXNUZW1wbGF0ZSkKICAgICB7CiAgICAgICAgIGFzc2VydCh0ZXN0IGluc3Rh
bmNlb2YgVGVzdCk7CiAgICAgICAgIGFzc2VydChwbGF0Zm9ybSBpbnN0YW5jZW9mIFBsYXRmb3Jt
KTsKKyAgICAgICAgYXNzZXJ0KEFycmF5LmlzQXJyYXkoc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVz
KSk7CisgICAgICAgIGFzc2VydChzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMuZXZlcnkocmVwZXRp
dGlvblR5cGUgPT4gVHJpZ2dlcmFibGVDb25maWd1cmF0aW9uLmlzVmFsaWRSZXBldGl0aW9uVHlw
ZShyZXBldGl0aW9uVHlwZSkpKTsKICAgICAgICAgYXNzZXJ0KHRoaXMuX3R5cGUgPT0gbnVsbCB8
fCB0aGlzLl90eXBlID09ICd0ZXN0ZXInKTsKICAgICAgICAgdGhpcy5fdHlwZSA9ICd0ZXN0ZXIn
OwotICAgICAgICB0aGlzLl9jb25maWd1cmF0aW9ucy5wdXNoKHt0ZXN0LCBwbGF0Zm9ybSwgcHJv
cGVydGllc1RlbXBsYXRlfSk7CisgICAgICAgIHRoaXMuX2NvbmZpZ3VyYXRpb25zLnB1c2goe3Rl
c3QsIHBsYXRmb3JtLCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMsIHByb3BlcnRpZXNUZW1wbGF0
ZX0pOwogICAgIH0KICAgICB0ZXN0Q29uZmlndXJhdGlvbnMoKSB7IHJldHVybiB0aGlzLl90eXBl
ID09ICd0ZXN0ZXInID8gdGhpcy5fY29uZmlndXJhdGlvbnMgOiBbXTsgfQogCi0gICAgYWRkQnVp
bGRDb25maWd1cmF0aW9uKHBsYXRmb3JtLCBwcm9wZXJ0aWVzVGVtcGxhdGUpCisgICAgYWRkQnVp
bGRDb25maWd1cmF0aW9uKHBsYXRmb3JtLCBzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMsIHByb3Bl
cnRpZXNUZW1wbGF0ZSkKICAgICB7CiAgICAgICAgIGFzc2VydChwbGF0Zm9ybSBpbnN0YW5jZW9m
IFBsYXRmb3JtKTsKICAgICAgICAgYXNzZXJ0KHRoaXMuX3R5cGUgPT0gbnVsbCB8fCB0aGlzLl90
eXBlID09ICdidWlsZGVyJyk7CisgICAgICAgIGFzc2VydChBcnJheS5pc0FycmF5KHN1cHBvcnRl
ZFJlcGV0aXRpb25UeXBlcykpOworICAgICAgICBhc3NlcnQoc3VwcG9ydGVkUmVwZXRpdGlvblR5
cGVzLmV2ZXJ5KHJlcGV0aXRpb25UeXBlID0+IFRyaWdnZXJhYmxlQ29uZmlndXJhdGlvbi5pc1Zh
bGlkUmVwZXRpdGlvblR5cGUocmVwZXRpdGlvblR5cGUpKSk7CiAgICAgICAgIHRoaXMuX3R5cGUg
PSAnYnVpbGRlcic7Ci0gICAgICAgIHRoaXMuX2NvbmZpZ3VyYXRpb25zLnB1c2goe3Rlc3Q6IG51
bGwsIHBsYXRmb3JtLCBwcm9wZXJ0aWVzVGVtcGxhdGV9KTsKKyAgICAgICAgdGhpcy5fY29uZmln
dXJhdGlvbnMucHVzaCh7dGVzdDogbnVsbCwgcGxhdGZvcm0sIHN1cHBvcnRlZFJlcGV0aXRpb25U
eXBlcywgcHJvcGVydGllc1RlbXBsYXRlfSk7CiAgICAgfQogICAgIGJ1aWxkQ29uZmlndXJhdGlv
bnMoKSB7IHJldHVybiB0aGlzLl90eXBlID09ICdidWlsZGVyJyA/IHRoaXMuX2NvbmZpZ3VyYXRp
b25zIDogW107IH0KIApAQCAtMTA3LDcgKzExMiwxMiBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7
CiAKICAgICBtYXRjaGVzQ29uZmlndXJhdGlvbihyZXF1ZXN0KQogICAgIHsKLSAgICAgICAgcmV0
dXJuIHRoaXMuX2NvbmZpZ3VyYXRpb25zLnNvbWUoKGNvbmZpZykgPT4gY29uZmlnLnBsYXRmb3Jt
ID09IHJlcXVlc3QucGxhdGZvcm0oKSAmJiBjb25maWcudGVzdCA9PSByZXF1ZXN0LnRlc3QoKSk7
CisgICAgICAgIGNvbnN0IHJlcXVlc3RSZXBldGl0aW9uVHlwZSA9IHJlcXVlc3QudGVzdEdyb3Vw
KCkucmVwZXRpdGlvblR5cGUoKTsKKyAgICAgICAgaWYgKCF0aGlzLl9idWlsZGVyU3VwcG9ydGVk
UmVwZXRpdGlvblR5cGVzLmluY2x1ZGVzKHJlcXVlc3RSZXBldGl0aW9uVHlwZSkpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZ3VyYXRpb25z
LnNvbWUoKGNvbmZpZykgPT4gY29uZmlnLnBsYXRmb3JtID09IHJlcXVlc3QucGxhdGZvcm0oKSAm
JiBjb25maWcudGVzdCA9PSByZXF1ZXN0LnRlc3QoKQorICAgICAgICAgICAgJiYgY29uZmlnLnN1
cHBvcnRlZFJlcGV0aXRpb25UeXBlcy5pbmNsdWRlcyhyZXF1ZXN0UmVwZXRpdGlvblR5cGUpKTsK
ICAgICB9CiAKICAgICBzY2hlZHVsZVJlcXVlc3QobmV3UmVxdWVzdCwgcmVxdWVzdHNJbkdyb3Vw
LCB3b3JrZXJOYW1lKQpAQCAtMzg1LDcgKzM5NSw3IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsK
ICAgICAgICAgYXNzZXJ0KEFycmF5LmlzQXJyYXkoY29uZmlnWyd0ZXN0Q29uZmlndXJhdGlvbnMn
XSksIGBUaGUgdGVzdCBjb25maWd1cmF0aW9uIG11c3QgYmUgYW4gYXJyYXlgKTsKICAgICAgICAg
dGhpcy5fcmVzb2x2ZUJ1aWxkZXJzV2l0aFBsYXRmb3JtcygndGVzdCcsIGNvbmZpZ1sndGVzdENv
bmZpZ3VyYXRpb25zJ10sIGJ1aWxkZXJzLCBidWlsZGVyTmFtZVRvSURNYXApLmZvckVhY2goKGVu
dHJ5LCBjb25maWd1cmF0aW9uSW5kZXgpID0+IHsKICAgICAgICAgICAgIGFzc2VydChBcnJheS5p
c0FycmF5KGVudHJ5Wyd0eXBlcyddKSwgYFRoZSB0ZXN0IGNvbmZpZ3VyYXRpb24gJHtjb25maWd1
cmF0aW9uSW5kZXh9IGRvZXMgbm90IHNwZWNpZnkgInR5cGVzIiBhcyBhbiBhcnJheWApOwotICAg
ICAgICAgICAgZm9yIChjb25zdCB0eXBlIG9mIGVudHJ5Wyd0eXBlcyddKSB7CisgICAgICAgICAg
ICBmb3IgKGxldCB0eXBlIG9mIGVudHJ5Wyd0eXBlcyddKSB7CiAgICAgICAgICAgICAgICAgY29u
c3QgdHlwZUNvbmZpZyA9IHRoaXMuX3ZhbGlkYXRlQW5kTWVyZ2VDb25maWcoe30sIGVudHJ5LmJ1
aWxkZXJDb25maWcpOwogICAgICAgICAgICAgICAgIGFzc2VydCh0eXBlc1t0eXBlXSwgYCIke3R5
cGV9IiBpcyBub3QgYSB2YWxpZCB0eXBlIGluIHRoZSBjb25maWd1cmF0aW9uYCk7CiAgICAgICAg
ICAgICAgICAgdGhpcy5fdmFsaWRhdGVBbmRNZXJnZUNvbmZpZyh0eXBlQ29uZmlnLCB0eXBlc1t0
eXBlXSk7CkBAIC0zOTQsNyArNDA0LDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAg
ICAgICAgICAgIGNvbnN0IHRlc3QgPSBUZXN0LmZpbmRCeVBhdGgodGVzdFBhdGgpOwogICAgICAg
ICAgICAgICAgIGFzc2VydCh0ZXN0LCBgIiR7dGVzdFBhdGguam9pbignIiwgIicpfSIgaXMgbm90
IGEgdmFsaWQgdGVzdCBwYXRoIGluIHRoZSB0ZXN0IGNvbmZpZ3VyYXRpb24gJHtjb25maWd1cmF0
aW9uSW5kZXh9YCk7CiAKLSAgICAgICAgICAgICAgICBlbnN1cmVCdWlsZGJvdFN5bmNlcihlbnRy
eS5idWlsZGVyQ29uZmlnKS5hZGRUZXN0Q29uZmlndXJhdGlvbih0ZXN0LCBlbnRyeS5wbGF0Zm9y
bSwgdHlwZUNvbmZpZy5wcm9wZXJ0aWVzKTsKKyAgICAgICAgICAgICAgICBlbnN1cmVCdWlsZGJv
dFN5bmNlcihlbnRyeS5idWlsZGVyQ29uZmlnKS5hZGRUZXN0Q29uZmlndXJhdGlvbih0ZXN0LCBl
bnRyeS5wbGF0Zm9ybSwgZW50cnkuc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzLCB0eXBlQ29uZmln
LnByb3BlcnRpZXMpOwogICAgICAgICAgICAgfQogICAgICAgICB9KTsKIApAQCAtNDA0LDcgKzQx
NCw3IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgICAgIHRoaXMuX3Jlc29sdmVC
dWlsZGVyc1dpdGhQbGF0Zm9ybXMoJ3Rlc3QnLCBidWlsZENvbmZpZ3VyYXRpb25zLCBidWlsZGVy
cywgYnVpbGRlck5hbWVUb0lETWFwKS5mb3JFYWNoKChlbnRyeSwgY29uZmlndXJhdGlvbkluZGV4
KSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3Qgc3luY2VyID0gZW5zdXJlQnVpbGRib3RTeW5j
ZXIoZW50cnkuYnVpbGRlckNvbmZpZyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KCFzeW5jZXIu
aXNUZXN0ZXIoKSwgYFRoZSBidWlsZCBjb25maWd1cmF0aW9uICR7Y29uZmlndXJhdGlvbkluZGV4
fSB1c2VzIGEgdGVzdGVyOiAke3N5bmNlci5idWlsZGVyTmFtZSgpfWApOwotICAgICAgICAgICAg
ICAgIHN5bmNlci5hZGRCdWlsZENvbmZpZ3VyYXRpb24oZW50cnkucGxhdGZvcm0sIGVudHJ5LmJ1
aWxkZXJDb25maWcucHJvcGVydGllcyk7CisgICAgICAgICAgICAgICAgc3luY2VyLmFkZEJ1aWxk
Q29uZmlndXJhdGlvbihlbnRyeS5wbGF0Zm9ybSwgZW50cnkuc3VwcG9ydGVkUmVwZXRpdGlvblR5
cGVzLCBlbnRyeS5idWlsZGVyQ29uZmlnLnByb3BlcnRpZXMpOwogICAgICAgICAgICAgfSk7CiAg
ICAgICAgIH0KIApAQCAtNDE5LDE3ICs0MjksMjMgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewog
ICAgICAgICAgICAgY29uZmlndXJhdGlvbkluZGV4Kys7CiAgICAgICAgICAgICBhc3NlcnQoQXJy
YXkuaXNBcnJheShlbnRyeVsnYnVpbGRlcnMnXSksIGBUaGUgJHtjb25maWd1cmF0aW9uVHlwZX0g
Y29uZmlndXJhdGlvbiAke2NvbmZpZ3VyYXRpb25JbmRleH0gZG9lcyBub3Qgc3BlY2lmeSAiYnVp
bGRlcnMiIGFzIGFuIGFycmF5YCk7CiAgICAgICAgICAgICBhc3NlcnQoQXJyYXkuaXNBcnJheShl
bnRyeVsncGxhdGZvcm1zJ10pLCBgVGhlICR7Y29uZmlndXJhdGlvblR5cGV9IGNvbmZpZ3VyYXRp
b24gJHtjb25maWd1cmF0aW9uSW5kZXh9IGRvZXMgbm90IHNwZWNpZnkgInBsYXRmb3JtcyIgYXMg
YW4gYXJyYXlgKTsKKyAgICAgICAgICAgIGFzc2VydChBcnJheS5pc0FycmF5KGVudHJ5WydzdXBw
b3J0ZWRSZXBldGl0aW9uVHlwZXMnXSksIGBUaGUgJHtjb25maWd1cmF0aW9uVHlwZX0gY29uZmln
dXJhdGlvbiAke2NvbmZpZ3VyYXRpb25JbmRleH0gZG9lcyBub3Qgc3BlY2lmeSAic3VwcG9ydGVk
UmVwZXRpdGlvblR5cGVzIiBhcyBhbiBhcnJheWApOworICAgICAgICAgICAgYXNzZXJ0KGVudHJ5
WydzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMnXS5ldmVyeShUcmlnZ2VyYWJsZUNvbmZpZ3VyYXRp
b24uaXNWYWxpZFJlcGV0aXRpb25UeXBlLmJpbmQoVHJpZ2dlcmFibGVDb25maWd1cmF0aW9uKSks
CisgICAgICAgICAgICAgICAgYFRoZSAke2NvbmZpZ3VyYXRpb25UeXBlfSBjb25maWd1cmF0aW9u
ICR7Y29uZmlndXJhdGlvbkluZGV4fSBzcGVjaWZpZXMgaW52YWxpZCByZXBldGl0aW9uVHlwZSBp
biAic3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzIjogJHtlbnRyeVsnc3VwcG9ydGVkUmVwZXRpdGlv
blR5cGVzJ119YCk7CiAgICAgICAgICAgICBmb3IgKGNvbnN0IGJ1aWxkZXJLZXkgb2YgZW50cnlb
J2J1aWxkZXJzJ10pIHsKICAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGluZ0J1aWxkZXIgPSBi
dWlsZGVyc1tidWlsZGVyS2V5XTsKICAgICAgICAgICAgICAgICBhc3NlcnQobWF0Y2hpbmdCdWls
ZGVyLCBgIiR7YnVpbGRlcktleX0iIGlzIG5vdCBhIHZhbGlkIGJ1aWxkZXIgaW4gdGhlIGNvbmZp
Z3VyYXRpb25gKTsKICAgICAgICAgICAgICAgICBhc3NlcnQoJ2J1aWxkZXInIGluIG1hdGNoaW5n
QnVpbGRlciwgYEJ1aWxkZXIgJHtidWlsZGVyS2V5fSBkb2VzIG5vdCBzcGVjaWZ5IGEgYnVpbGRi
b3QgYnVpbGRlciBuYW1lYCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KG1hdGNoaW5nQnVpbGRl
ci5idWlsZGVyIGluIGJ1aWxkZXJOYW1lVG9JRE1hcCwgYEJ1aWxkZXIgJHttYXRjaGluZ0J1aWxk
ZXIuYnVpbGRlcn0gbm90IGZvdW5kIGluIEJ1aWxkYm90IGNvbmZpZ3VyYXRpb24uYCk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0KEFycmF5LmlzQXJyYXkobWF0Y2hpbmdCdWlsZGVyLnN1cHBvcnRl
ZFJlcGV0aXRpb25UeXBlcyksIGBCdWlsZGVyICR7bWF0Y2hpbmdCdWlsZGVyLmJ1aWxkZXJ9IGRv
ZXMgbm90IHNwZWNpZnkgInN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcyIgYXMgYW4gYXJyYXlgKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQobWF0Y2hpbmdCdWlsZGVyLnN1cHBvcnRlZFJlcGV0aXRp
b25UeXBlcy5ldmVyeShUcmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24uaXNWYWxpZFJlcGV0aXRpb25U
eXBlLmJpbmQoVHJpZ2dlcmFibGVDb25maWd1cmF0aW9uKSksCisgICAgICAgICAgICAgICAgICAg
IGBCdWlsZGVyICR7bWF0Y2hpbmdCdWlsZGVyLmJ1aWxkZXJ9IHNwZWNpZmllcyByZXBldGl0aW9u
VHlwZSBpbiAic3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzIjogJHttYXRjaGluZ0J1aWxkZXIuc3Vw
cG9ydGVkUmVwZXRpdGlvblR5cGVzfWApOwogICAgICAgICAgICAgICAgIG1hdGNoaW5nQnVpbGRl
clsnYnVpbGRlcklEJ10gPSBidWlsZGVyTmFtZVRvSURNYXBbbWF0Y2hpbmdCdWlsZGVyLmJ1aWxk
ZXJdOwogICAgICAgICAgICAgICAgIGNvbnN0IGJ1aWxkZXJDb25maWcgPSB0aGlzLl92YWxpZGF0
ZUFuZE1lcmdlQ29uZmlnKHt9LCBtYXRjaGluZ0J1aWxkZXIpOwogICAgICAgICAgICAgICAgIGZv
ciAoY29uc3QgcGxhdGZvcm1OYW1lIG9mIGVudHJ5WydwbGF0Zm9ybXMnXSkgewogICAgICAgICAg
ICAgICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IFBsYXRmb3JtLmZpbmRCeU5hbWUocGxhdGZvcm1O
YW1lKTsKICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KHBsYXRmb3JtLCBgJHtwbGF0Zm9ybU5h
bWV9IGlzIG5vdCBhIHZhbGlkIHBsYXRmb3JtIG5hbWVgKTsKLSAgICAgICAgICAgICAgICAgICAg
cmVzb2x2ZWRDb25maWd1cmF0aW9ucy5wdXNoKHt0eXBlczogZW50cnkudHlwZXMsIGJ1aWxkZXJD
b25maWcsIHBsYXRmb3JtfSk7CisgICAgICAgICAgICAgICAgICAgIHJlc29sdmVkQ29uZmlndXJh
dGlvbnMucHVzaCh7dHlwZXM6IGVudHJ5LnR5cGVzLCBidWlsZGVyQ29uZmlnLCBwbGF0Zm9ybSwg
c3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBlbnRyeVsnc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVz
J119KTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTU5
NSw2ICs2MTEsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgICAgICAgICAgICAg
IHByb3BlcnRpZXNbbmFtZV0gPSB2YWx1ZVtuYW1lXTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICdzdXBwb3J0ZWRSZXBldGl0aW9u
VHlwZXMnOgogICAgICAgICAgICAgY2FzZSAndGVzdCc6IC8vIEZhbGx0aHJvdWdoCiAgICAgICAg
ICAgICBjYXNlICd3b3JrZXJMaXN0JzogLy8gRmFsbHRocm91Z2gKICAgICAgICAgICAgICAgICBh
c3NlcnQodmFsdWUgaW5zdGFuY2VvZiBBcnJheSwgYCR7bmFtZX0gc2hvdWxkIGJlIGFuIGFycmF5
YCk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRi
b3QtdHJpZ2dlcmFibGUuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVp
bGRib3QtdHJpZ2dlcmFibGUuanMKaW5kZXggNTI1NzQ0MjI5ZGI2M2EwZDE1MTFjZTRiMDA3Nzkw
OWU5MTM0MzRhZC4uNmVhMDMzNWUzMzgzNWYwMjBiYmY2NGU1OTFkOWEzMjkzMzA3ZTM2ZSAxMDA2
NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdn
ZXJhYmxlLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJv
dC10cmlnZ2VyYWJsZS5qcwpAQCAtNTYsNyArNTYsNyBAQCBjbGFzcyBCdWlsZGJvdFRyaWdnZXJh
YmxlIHsKICAgICAgICAgbGV0IHJlcG9zaXRvcnlHcm91cHMgPSBbXTsKICAgICAgICAgZm9yIChj
b25zdCBzeW5jZXIgb2YgdGhpcy5fc3luY2VycykgewogICAgICAgICAgICAgZm9yIChjb25zdCBj
b25maWcgb2Ygc3luY2VyLnRlc3RDb25maWd1cmF0aW9ucygpKSB7Ci0gICAgICAgICAgICAgICAg
Y29uc3QgZW50cnkgPSB7dGVzdDogY29uZmlnLnRlc3QuaWQoKSwgcGxhdGZvcm06IGNvbmZpZy5w
bGF0Zm9ybS5pZCgpfTsKKyAgICAgICAgICAgICAgICBjb25zdCBlbnRyeSA9IHt0ZXN0OiBjb25m
aWcudGVzdC5pZCgpLCBwbGF0Zm9ybTogY29uZmlnLnBsYXRmb3JtLmlkKCksIHN1cHBvcnRlZFJl
cGV0aXRpb25UeXBlczogY29uZmlnLnN1cHBvcnRlZFJlcGV0aXRpb25UeXBlc307CiAgICAgICAg
ICAgICAgICAgbWFwLnNldChlbnRyeS50ZXN0ICsgJy0nICsgZW50cnkucGxhdGZvcm0sIGVudHJ5
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIC8vIEZJWE1FOiBNb3ZlIEJ1aWxkYm90U3lu
Y2VyLl9sb2FkQ29uZmlnIGhlcmUgYW5kIHN0b3JlIHJlcG9zaXRvcnkgZ3JvdXBzIGRpcmVjdGx5
LgpAQCAtODMsNiArODMsOCBAQCBjbGFzcyBCdWlsZGJvdFRyaWdnZXJhYmxlIHsKICAgICAgICAg
dGhpcy5fbG9nZ2VyLmxvZyhgRmV0Y2hpbmcgYnVpbGQgcmVxdWVzdHMgZm9yICR7dGhpcy5fbmFt
ZX0uLi5gKTsKIAogICAgICAgICBjb25zdCBidWlsZFJlcXVlc3RzID0gYXdhaXQgQnVpbGRSZXF1
ZXN0LmZldGNoRm9yVHJpZ2dlcmFibGUodGhpcy5fbmFtZSk7CisgICAgICAgIGNvbnN0IHRlc3RH
cm91cElkcyA9IG5ldyBTZXQoYnVpbGRSZXF1ZXN0cy5tYXAocmVxdWVzdCA9PiByZXF1ZXN0LnRl
c3RHcm91cElkKCkpKTsKKyAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoQXJyYXkuZnJvbSh0ZXN0
R3JvdXBJZHMpLm1hcCh0ZXN0R3JvdXBJZCA9PiBUZXN0R3JvdXAuZmV0Y2hCeUlkKHRlc3RHcm91
cElkLCAvKiBpZ25vcmVDYWNoZSAqLyB0cnVlKSkpOwogICAgICAgICBjb25zdCB2YWxpZFJlcXVl
c3RzID0gdGhpcy5fdmFsaWRhdGVSZXF1ZXN0cyhidWlsZFJlcXVlc3RzKTsKICAgICAgICAgY29u
c3QgYnVpbGRSZXF1ZXN0c0J5R3JvdXAgPSBCdWlsZGJvdFRyaWdnZXJhYmxlLl90ZXN0R3JvdXBN
YXBGb3JCdWlsZFJlcXVlc3RzKGJ1aWxkUmVxdWVzdHMpOwogICAgICAgICBsZXQgdXBkYXRlcyA9
IGF3YWl0IHRoaXMuX3B1bGxCdWlsZGJvdE9uQWxsU3luY2VycyhidWlsZFJlcXVlc3RzQnlHcm91
cCk7CkBAIC05MCw3ICs5Miw2IEBAIGNsYXNzIEJ1aWxkYm90VHJpZ2dlcmFibGUgewogICAgICAg
ICB0aGlzLl9sb2dnZXIubG9nKCdTY2hlZHVsaW5nIGJ1aWxkcycpOwogICAgICAgICBjb25zdCB0
ZXN0R3JvdXBMaXN0ID0gQXJyYXkuZnJvbShidWlsZFJlcXVlc3RzQnlHcm91cC52YWx1ZXMoKSku
c29ydChmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gYS5ncm91cE9yZGVyIC0gYi5ncm91cE9yZGVy
OyB9KTsKIAotICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChBcnJheS5mcm9tKGJ1aWxkUmVxdWVz
dHNCeUdyb3VwLmtleXMoKSkubWFwKHRlc3RHcm91cElkID0+IFRlc3RHcm91cC5mZXRjaEJ5SWQo
dGVzdEdyb3VwSWQsIC8qIGlnbm9yZUNhY2hlICovIHRydWUpKSk7CiAgICAgICAgIGZvciAoY29u
c3QgZ3JvdXAgb2YgdGVzdEdyb3VwTGlzdCkgewogICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9
IHRoaXMuX25leHRSZXF1ZXN0SW5Hcm91cChncm91cCwgdXBkYXRlcyk7CiAgICAgICAgICAgICBp
ZiAoIXZhbGlkUmVxdWVzdHMuaGFzKHJlcXVlc3QpKQpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3Rvb2xzL2pzL2RhdGFiYXNlLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3Rvb2xzL2pzL2RhdGFiYXNlLmpzCmluZGV4IDlhZWVlOWU2YTIyZTU2ZGYwZDgwZDcxMmRl
NjRjYTRiZjczYjM4YjMuLmM1ZGFlNDMyMzNiYWYwOTFhOTVjNmExYWM0NWNhOWRiZTFhOWY5ZGMg
MTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9kYXRhYmFzZS5q
cworKysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvZGF0YWJhc2UuanMKQEAg
LTE2NSw2ICsxNjUsNyBAQCBjb25zdCB0YWJsZVRvUHJlZml4TWFwID0gewogICAgICd0cmlnZ2Vy
YWJsZV9jb25maWd1cmF0aW9ucyc6ICd0cmlnY29uZmlnJywKICAgICAndHJpZ2dlcmFibGVfcmVw
b3NpdG9yeV9ncm91cHMnOiAncmVwb3NpdG9yeWdyb3VwJywKICAgICAndHJpZ2dlcmFibGVfcmVw
b3NpdG9yaWVzJzogJ3RyaWdyZXBvJywKKyAgICAndHJpZ2dlcmFibGVfY29uZmlndXJhdGlvbl9y
ZXBldGl0aW9uX3R5cGVzJzogJ2NvbmZpZ3JlcGV0aXRpb24nLAogICAgICdwbGF0Zm9ybXMnOiAn
cGxhdGZvcm0nLAogICAgICdwbGF0Zm9ybV9ncm91cHMnOiAncGxhdGZvcm1ncm91cCcsCiAgICAg
J3JlcG9ydHMnOiAncmVwb3J0JywKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy90b29scy9qcy92My1tb2RlbHMuanMgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMv
anMvdjMtbW9kZWxzLmpzCmluZGV4IDRiZWJhYmQ1YWE3MjE0NTNkZTdkZTczNzk3NDlmODgwYTE3
NGM1MWEuLjEyYTlhMDZjMmEwNWVhYjlkMzUxZjlmMzYzODBjYmE2MjEzZmY2M2UgMTAwNjQ0Ci0t
LSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy92My1tb2RlbHMuanMKKysrIGIv
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL3YzLW1vZGVscy5qcwpAQCAtMzcsNiAr
MzcsNyBAQCBpbXBvcnRGcm9tVjMoJ21vZGVscy90ZXN0LWdyb3VwLmpzJywgJ1Rlc3RHcm91cCcp
OwogaW1wb3J0RnJvbVYzKCdtb2RlbHMvdGltZS1zZXJpZXMuanMnLCAnVGltZVNlcmllcycpOwog
aW1wb3J0RnJvbVYzKCdtb2RlbHMvdHJpZ2dlcmFibGUuanMnLCAnVHJpZ2dlcmFibGUnKTsKIGlt
cG9ydEZyb21WMygnbW9kZWxzL3RyaWdnZXJhYmxlLmpzJywgJ1RyaWdnZXJhYmxlUmVwb3NpdG9y
eUdyb3VwJyk7CitpbXBvcnRGcm9tVjMoJ21vZGVscy90cmlnZ2VyYWJsZS5qcycsICdUcmlnZ2Vy
YWJsZUNvbmZpZ3VyYXRpb24nKTsKIGltcG9ydEZyb21WMygnbW9kZWxzL3VwbG9hZGVkLWZpbGUu
anMnLCAnVXBsb2FkZWRGaWxlJyk7CiAKIGltcG9ydEZyb21WMygnaW5zdHJ1bWVudGF0aW9uLmpz
JywgJ0luc3RydW1lbnRhdGlvbicpOwpkaWZmIC0tZ2l0IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzCmluZGV4IDAzNDJh
YzAxYTRhZjVkYmNjMTU2OTYyMmEyZGIxZDY1YTdjMjYyNzMuLjJkNGEyOWEyNDBkOWRmOWVkYjY5
NDg1NDEzMmIxN2FjNGZiYTZkNDYgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy91bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qcworKysgYi9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMKQEAgLTQ0LDIz
ICs0NCw0MCBAQCBmdW5jdGlvbiBzYW1wbGVpT1NDb25maWcoKQogICAgICAgICAgICAgICAgICdi
dWlsZGVyJzogJ0FCVGVzdC1pUGhvbmUtUnVuQmVuY2htYXJrLVRlc3RzJywKICAgICAgICAgICAg
ICAgICAncHJvcGVydGllcyc6IHsnZm9yY2VzY2hlZHVsZXInOiAnQUJUZXN0LWlQaG9uZS1SdW5C
ZW5jaG1hcmstVGVzdHMtRm9yY2VTY2hlZHVsZXInfSwKICAgICAgICAgICAgICAgICAnd29ya2Vy
TGlzdCc6IFsnQUJUZXN0LWlQaG9uZS0wJ10sCisgICAgICAgICAgICAgICAgJ3N1cHBvcnRlZFJl
cGV0aXRpb25UeXBlcyc6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddCiAgICAgICAgICAg
ICB9LAogICAgICAgICAgICAgJ2lQYWQtYmVuY2gnOiB7CiAgICAgICAgICAgICAgICAgJ2J1aWxk
ZXInOiAnQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzJywKICAgICAgICAgICAgICAgICAn
cHJvcGVydGllcyc6IHsnZm9yY2VzY2hlZHVsZXInOiAnQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJr
LVRlc3RzLUZvcmNlU2NoZWR1bGVyJ30sCiAgICAgICAgICAgICAgICAgJ3dvcmtlckxpc3QnOiBb
J0FCVGVzdC1pUGFkLTAnLCAnQUJUZXN0LWlQYWQtMSddLAorICAgICAgICAgICAgICAgICdzdXBw
b3J0ZWRSZXBldGl0aW9uVHlwZXMnOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXQogICAg
ICAgICAgICAgfSwKICAgICAgICAgICAgICdpT1MtYnVpbGRlcic6IHsKICAgICAgICAgICAgICAg
ICAnYnVpbGRlcic6ICdBQlRlc3QtaU9TLUJ1aWxkZXInLAogICAgICAgICAgICAgICAgICdwcm9w
ZXJ0aWVzJzogeydmb3JjZXNjaGVkdWxlcic6ICdBQlRlc3QtQnVpbGRlci1Gb3JjZVNjaGVkdWxl
cid9LAorICAgICAgICAgICAgICAgICdzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMnOiBbJ2FsdGVy
bmF0aW5nJywgJ3NlcXVlbnRpYWwnLCAncGFpcmVkLXBhcmFsbGVsJ10KICAgICAgICAgICAgIH0s
CiAgICAgICAgIH0sCiAgICAgICAgICdidWlsZENvbmZpZ3VyYXRpb25zJzogWwotICAgICAgICAg
ICAgeydidWlsZGVycyc6IFsnaU9TLWJ1aWxkZXInXSwgJ3BsYXRmb3Jtcyc6IFsnaVBob25lJywg
J2lQYWQnXX0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ2J1aWxkZXJzJzogWydp
T1MtYnVpbGRlciddLAorICAgICAgICAgICAgICAgICdwbGF0Zm9ybXMnOiBbJ2lQaG9uZScsICdp
UGFkJ10sCisgICAgICAgICAgICAgICAgJ3N1cHBvcnRlZFJlcGV0aXRpb25UeXBlcyc6IFsnYWx0
ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCcsICdwYWlyZWQtcGFyYWxsZWwnXQorICAgICAgICAgICAg
fSwKICAgICAgICAgXSwKICAgICAgICAgJ3Rlc3RDb25maWd1cmF0aW9ucyc6IFsKLSAgICAgICAg
ICAgIHsnYnVpbGRlcnMnOiBbJ2lQaG9uZS1iZW5jaCddLCAndHlwZXMnOiBbJ3NwZWVkb21ldGVy
JywgJ2pldHN0cmVhbScsICdkcm9tYWVvLWRvbSddLCAncGxhdGZvcm1zJzogWydpUGhvbmUnXX0s
Ci0gICAgICAgICAgICB7J2J1aWxkZXJzJzogWydpUGFkLWJlbmNoJ10sICd0eXBlcyc6IFsnc3Bl
ZWRvbWV0ZXInLCAnamV0c3RyZWFtJ10sICdwbGF0Zm9ybXMnOiBbJ2lQYWQnXX0sCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgJ2J1aWxkZXJzJzogWydpUGhvbmUtYmVuY2gnXSwKKyAg
ICAgICAgICAgICAgICAndHlwZXMnOiBbJ3NwZWVkb21ldGVyJywgJ2pldHN0cmVhbScsICdkcm9t
YWVvLWRvbSddLAorICAgICAgICAgICAgICAgICdwbGF0Zm9ybXMnOiBbJ2lQaG9uZSddLAorICAg
ICAgICAgICAgICAgICdzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMnOiBbJ2FsdGVybmF0aW5nJywg
J3NlcXVlbnRpYWwnXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAnYnVpbGRlcnMnOiBbJ2lQYWQtYmVuY2gnXSwKKyAgICAgICAgICAgICAgICAndHlwZXMn
OiBbJ3NwZWVkb21ldGVyJywgJ2pldHN0cmVhbSddLAorICAgICAgICAgICAgICAgICdwbGF0Zm9y
bXMnOiBbJ2lQYWQnXSwKKyAgICAgICAgICAgICAgICAnc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVz
JzogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJywgJ3BhaXJlZC1wYXJhbGxlbCddCisgICAg
ICAgICAgICB9LAogICAgICAgICBdCiAgICAgfTsKIH0KQEAgLTg5LDE0ICsxMDYsMTcgQEAgZnVu
Y3Rpb24gc2FtcGxlaU9TQ29uZmlnV2l0aEV4cGFuc2lvbnMoKQogICAgICAgICAgICAgImlwaG9u
ZSI6IHsKICAgICAgICAgICAgICAgICAiYnVpbGRlciI6ICJpUGhvbmUgQUIgVGVzdHMiLAogICAg
ICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogeyJmb3JjZXNjaGVkdWxlciI6ICJmb3JjZS1pcGhv
bmUtYWItdGVzdHMifSwKKyAgICAgICAgICAgICAgICAnc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVz
JzogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ10KICAgICAgICAgICAgIH0sCiAgICAgICAg
ICAgICAiaXBob25lLTIiOiB7CiAgICAgICAgICAgICAgICAgImJ1aWxkZXIiOiAiaVBob25lIDIg
QUIgVGVzdHMiLAogICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogeyJmb3JjZXNjaGVkdWxl
ciI6ICJmb3JjZS1pcGhvbmUtMi1hYi10ZXN0cyJ9LAorICAgICAgICAgICAgICAgICdzdXBwb3J0
ZWRSZXBldGl0aW9uVHlwZXMnOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXQogICAgICAg
ICAgICAgfSwKICAgICAgICAgICAgICJpcGFkIjogewogICAgICAgICAgICAgICAgICJidWlsZGVy
IjogImlQYWQgQUIgVGVzdHMiLAogICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogeyJmb3Jj
ZXNjaGVkdWxlciI6ICJmb3JjZS1pcGFkLWFiLXRlc3RzIn0sCisgICAgICAgICAgICAgICAgJ3N1
cHBvcnRlZFJlcGV0aXRpb25UeXBlcyc6IFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCddCiAg
ICAgICAgICAgICB9LAogICAgICAgICB9LAogICAgICAgICAidGVzdENvbmZpZ3VyYXRpb25zIjog
WwpAQCAtMTA0LDExICsxMjQsMTMgQEAgZnVuY3Rpb24gc2FtcGxlaU9TQ29uZmlnV2l0aEV4cGFu
c2lvbnMoKQogICAgICAgICAgICAgICAgICJidWlsZGVycyI6IFsiaXBob25lIiwgImlwaG9uZS0y
Il0sCiAgICAgICAgICAgICAgICAgInBsYXRmb3JtcyI6IFsiaVBob25lIiwgImlPUyAxMCBpUGhv
bmUiXSwKICAgICAgICAgICAgICAgICAidHlwZXMiOiBbImlwaG9uZS1wbHQiLCAic3BlZWRvbWV0
ZXIiXSwKKyAgICAgICAgICAgICAgICAnc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzJzogWydhbHRl
cm5hdGluZycsICdzZXF1ZW50aWFsJ10KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgImJ1aWxkZXJzIjogWyJpcGFkIl0sCiAgICAgICAgICAgICAgICAgInBs
YXRmb3JtcyI6IFsiaVBhZCJdLAogICAgICAgICAgICAgICAgICJ0eXBlcyI6IFsiaXBhZC1wbHQi
LCAic3BlZWRvbWV0ZXIiXSwKKyAgICAgICAgICAgICAgICAnc3VwcG9ydGVkUmVwZXRpdGlvblR5
cGVzJzogWydhbHRlcm5hdGluZycsICdzZXF1ZW50aWFsJ10KICAgICAgICAgICAgIH0sCiAgICAg
ICAgIF0KICAgICB9CkBAIC0xMzUsMTIgKzE1Nyw0OCBAQCBmdW5jdGlvbiBzbWFsbENvbmZpZ3Vy
YXRpb24oKQogICAgICAgICAnYnVpbGRlcnMnOiB7CiAgICAgICAgICAgICAnc29tZS1idWlsZGVy
JzogewogICAgICAgICAgICAgICAgICdidWlsZGVyJzogJ3NvbWUgYnVpbGRlcicsCi0gICAgICAg
ICAgICAgICAgJ3Byb3BlcnRpZXMnOiB7J2ZvcmNlc2NoZWR1bGVyJzogJ3NvbWUtYnVpbGRlci1G
b3JjZVNjaGVkdWxlcid9CisgICAgICAgICAgICAgICAgJ3Byb3BlcnRpZXMnOiB7J2ZvcmNlc2No
ZWR1bGVyJzogJ3NvbWUtYnVpbGRlci1Gb3JjZVNjaGVkdWxlcid9LAorICAgICAgICAgICAgICAg
ICdzdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMnOiBbImFsdGVybmF0aW5nIiwgInNlcXVlbnRpYWwi
XQorICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICAndGVzdENvbmZpZ3VyYXRpb25z
JzogW3sKKyAgICAgICAgICAgICdidWlsZGVycyc6IFsnc29tZS1idWlsZGVyJ10sCisgICAgICAg
ICAgICAncGxhdGZvcm1zJzogWydTb21lIHBsYXRmb3JtJ10sCisgICAgICAgICAgICAndHlwZXMn
OiBbJ3NvbWUtdGVzdCddLAorICAgICAgICAgICAgJ3N1cHBvcnRlZFJlcGV0aXRpb25UeXBlcyc6
IFsiYWx0ZXJuYXRpbmciLCAic2VxdWVudGlhbCJdCisgICAgICAgIH1dCisgICAgfTsKK30KKwor
ZnVuY3Rpb24gc21hbGxDb25maWd1cmF0aW9uV2l0aEN1c3RvbVJlcGV0aXRpb25UeXBlcygpCit7
CisgICAgcmV0dXJuIHsKKyAgICAgICAgJ2J1aWxkUmVxdWVzdEFyZ3VtZW50JzogJ2lkJywKKyAg
ICAgICAgJ3JlcG9zaXRvcnlHcm91cHMnOiB7CisgICAgICAgICAgICAnaW9zLXN2bi13ZWJraXQn
OiB7CisgICAgICAgICAgICAgICAgJ3JlcG9zaXRvcmllcyc6IHsnaU9TJzoge30sICdXZWJLaXQn
OiB7fX0sCisgICAgICAgICAgICAgICAgJ3Rlc3RQcm9wZXJ0aWVzJzogeworICAgICAgICAgICAg
ICAgICAgICAnb3MnOiB7J3JldmlzaW9uJzogJ2lPUyd9LAorICAgICAgICAgICAgICAgICAgICAn
d2snOiB7J3JldmlzaW9uJzogJ1dlYktpdCd9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfQorICAgICAgICB9LAorICAgICAgICAndHlwZXMnOiB7CisgICAgICAgICAgICAnc29tZS10
ZXN0JzogeworICAgICAgICAgICAgICAgICd0ZXN0JzogWydTb21lIHRlc3QnXSwKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgJ2J1aWxkZXJzJzogeworICAgICAgICAgICAgJ3Nv
bWUtYnVpbGRlcic6IHsKKyAgICAgICAgICAgICAgICAnYnVpbGRlcic6ICdzb21lIGJ1aWxkZXIn
LAorICAgICAgICAgICAgICAgICdwcm9wZXJ0aWVzJzogeydmb3JjZXNjaGVkdWxlcic6ICdzb21l
LWJ1aWxkZXItRm9yY2VTY2hlZHVsZXInfSwKKyAgICAgICAgICAgICAgICAnc3VwcG9ydGVkUmVw
ZXRpdGlvblR5cGVzJzogWydzZXF1ZW50aWFsJywgJ3BhaXJlZC1wYXJhbGxlbCddLAogICAgICAg
ICAgICAgfQogICAgICAgICB9LAogICAgICAgICAndGVzdENvbmZpZ3VyYXRpb25zJzogW3sKICAg
ICAgICAgICAgICdidWlsZGVycyc6IFsnc29tZS1idWlsZGVyJ10sCiAgICAgICAgICAgICAncGxh
dGZvcm1zJzogWydTb21lIHBsYXRmb3JtJ10sCisgICAgICAgICAgICAnc3VwcG9ydGVkUmVwZXRp
dGlvblR5cGVzJzogWydzZXF1ZW50aWFsJywgJ3BhaXJlZC1wYXJhbGxlbCddLAogICAgICAgICAg
ICAgJ3R5cGVzJzogWydzb21lLXRlc3QnXSwKICAgICAgICAgfV0KICAgICB9OwpAQCAtMTg0LDEw
ICsyNDIsMTIgQEAgZnVuY3Rpb24gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KHBsYXRmb3JtLCB0
ZXN0KQogICAgIGNvbnN0IGlvczEzQTQ1MiA9IENvbW1pdExvZy5lbnN1cmVTaW5nbGV0b24oJzg4
OTMwJywgeydpZCc6ICc4ODkzMCcsICd0aW1lJzogMCwgJ3JlcG9zaXRvcnknOiBNb2NrTW9kZWxz
LmlvcywgJ3JldmlzaW9uJzogJzEzQTQ1Mid9KTsKIAogICAgIGNvbnN0IGNvbW1pdFNldCA9IENv
bW1pdFNldC5lbnN1cmVTaW5nbGV0b24oJzQxOTcnLCB7Y3VzdG9tUm9vdHM6IFtdLCByZXZpc2lv
bkl0ZW1zOiBbe2NvbW1pdDogd2Via2l0MTk3NDYzfSwge2NvbW1pdDogc2hhcmVkMTExMjM3fSwg
e2NvbW1pdDogaW9zMTNBNDUyfV19KTsKKyAgICBjb25zdCB0ZXN0R3JvdXAgPSBUZXN0R3JvdXAu
ZW5zdXJlU2luZ2xldG9uKCcxMjMnLCB7dGFzazogJzEyMycsIGNyZWF0ZWRBdDogMTQ1NjkzMTg3
NDAwMCwgaGlkZGVuOiBmYWxzZSwgbmVlZHNOb3RpZmljYXRpb246IHRydWUsIG1heU5lZWRNb3Jl
UmVxdWVzdHM6IGZhbHNlLAorICAgICAgICBpbml0aWFsUmVwZXRpdGlvbkNvdW50OiAzLCByZXBl
dGl0aW9uVHlwZTogJ2FsdGVybmF0aW5nJ30pCiAKICAgICByZXR1cm4gQnVpbGRSZXF1ZXN0LmVu
c3VyZVNpbmdsZXRvbignMTY3MzMtJyArIHBsYXRmb3JtLmlkKCksIHsndHJpZ2dlcmFibGUnOiBN
b2NrTW9kZWxzLnRyaWdnZXJhYmxlLAogICAgICAgICByZXBvc2l0b3J5R3JvdXA6IE1vY2tNb2Rl
bHMuc3ZuUmVwb3NpdG9yeUdyb3VwLAotICAgICAgICAnY29tbWl0U2V0JzogY29tbWl0U2V0LCAn
c3RhdHVzJzogJ3BlbmRpbmcnLCAncGxhdGZvcm0nOiBwbGF0Zm9ybSwgJ3Rlc3QnOiB0ZXN0LCBv
cmRlcjogMH0pOworICAgICAgICAnY29tbWl0U2V0JzogY29tbWl0U2V0LCAnc3RhdHVzJzogJ3Bl
bmRpbmcnLCAncGxhdGZvcm0nOiBwbGF0Zm9ybSwgJ3Rlc3QnOiB0ZXN0LCBvcmRlcjogMCwgdGVz
dEdyb3VwLCB0ZXN0R3JvdXBJZDogdGVzdEdyb3VwLmlkKCl9KTsKIH0KIAogZnVuY3Rpb24gY3Jl
YXRlU2FtcGxlQnVpbGRSZXF1ZXN0V2l0aFBhdGNoKHBsYXRmb3JtLCB0ZXN0LCBvcmRlcikKQEAg
LTUwOCwzMiArNTY4LDQyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKIAog
ICAgICAgICAgICAgbGV0IGNvbmZpZ3VyYXRpb25zID0gc3luY2Vyc1swXS50ZXN0Q29uZmlndXJh
dGlvbnMoKTsKICAgICAgICAgICAgIGFzc2VydChzeW5jZXJzWzBdLmlzVGVzdGVyKCkpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChzeW5jZXJzWzBdLl9idWlsZGVyU3VwcG9ydGVkUmVw
ZXRpdGlvblR5cGVzLCBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXSk7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoY29uZmlndXJhdGlvbnMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb25maWd1cmF0aW9uc1swXS5wbGF0Zm9ybSwgTW9ja01vZGVscy5pcGhvbmUp
OwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3VyYXRpb25zWzBdLnRlc3QsIE1vY2tN
b2RlbHMuc3BlZWRvbWV0ZXIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb25maWd1
cmF0aW9uc1swXS5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMsIFsnYWx0ZXJuYXRpbmcnLCAnc2Vx
dWVudGlhbCddKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWd1cmF0aW9uc1sxXS5w
bGF0Zm9ybSwgTW9ja01vZGVscy5pcGhvbmUpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNv
bmZpZ3VyYXRpb25zWzFdLnRlc3QsIE1vY2tNb2RlbHMuamV0c3RyZWFtKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoY29uZmlndXJhdGlvbnNbMV0uc3VwcG9ydGVkUmVwZXRpdGlvblR5
cGVzLCBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXSk7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoY29uZmlndXJhdGlvbnNbMl0ucGxhdGZvcm0sIE1vY2tNb2RlbHMuaXBob25lKTsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWd1cmF0aW9uc1syXS50ZXN0LCBNb2NrTW9kZWxz
LmRvbWNvcmUpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb25maWd1cmF0aW9uc1sy
XS5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMsIFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCdd
KTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoc3luY2Vyc1swXS5idWlsZENvbmZpZ3Vy
YXRpb25zKCksIFtdKTsKIAogICAgICAgICAgICAgY29uZmlndXJhdGlvbnMgPSBzeW5jZXJzWzFd
LnRlc3RDb25maWd1cmF0aW9ucygpOwogICAgICAgICAgICAgYXNzZXJ0KHN5bmNlcnNbMV0uaXNU
ZXN0ZXIoKSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHN5bmNlcnNbMV0uX2J1aWxk
ZXJTdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMsIFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVudGlhbCdd
KTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWd1cmF0aW9ucy5sZW5ndGgsIDIpOwog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3VyYXRpb25zWzBdLnBsYXRmb3JtLCBNb2Nr
TW9kZWxzLmlwYWQpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3VyYXRpb25zWzBd
LnRlc3QsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChjb25maWd1cmF0aW9uc1swXS5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMsIFsnYWx0ZXJu
YXRpbmcnLCAnc2VxdWVudGlhbCcsICdwYWlyZWQtcGFyYWxsZWwnXSk7CiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoY29uZmlndXJhdGlvbnNbMV0ucGxhdGZvcm0sIE1vY2tNb2RlbHMuaXBhZCk7
CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmlndXJhdGlvbnNbMV0udGVzdCwgTW9ja01v
ZGVscy5qZXRzdHJlYW0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChjb25maWd1cmF0
aW9uc1sxXS5zdXBwb3J0ZWRSZXBldGl0aW9uVHlwZXMsIFsnYWx0ZXJuYXRpbmcnLCAnc2VxdWVu
dGlhbCcsICdwYWlyZWQtcGFyYWxsZWwnXSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHN5bmNlcnNbMV0uYnVpbGRDb25maWd1cmF0aW9ucygpLCBbXSk7CiAKICAgICAgICAgICAgIGFz
c2VydCghc3luY2Vyc1syXS5pc1Rlc3RlcigpKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoc3luY2Vyc1syXS5fYnVpbGRlclN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcywgWydhbHRlcm5h
dGluZycsICdzZXF1ZW50aWFsJywgJ3BhaXJlZC1wYXJhbGxlbCddKTsKICAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoc3luY2Vyc1syXS50ZXN0Q29uZmlndXJhdGlvbnMoKSwgW10pOwogICAg
ICAgICAgICAgY29uZmlndXJhdGlvbnMgPSBzeW5jZXJzWzJdLmJ1aWxkQ29uZmlndXJhdGlvbnMo
KTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25maWd1cmF0aW9ucy5sZW5ndGgsIDIpOwog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGNvbmZpZ3VyYXRpb25zWzBdLnBsYXRmb3JtLCBNb2Nr
TW9kZWxzLmlwaG9uZSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoY29uZmlndXJhdGlvbnNb
MF0udGVzdCwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKGNvbmZpZ3VyYXRp
b25zWzBdLnN1cHBvcnRlZFJlcGV0aXRpb25UeXBlcywgWydhbHRlcm5hdGluZycsICdzZXF1ZW50
aWFsJywgJ3BhaXJlZC1wYXJhbGxlbCddKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChjb25m
aWd1cmF0aW9uc1sxXS5wbGF0Zm9ybSwgTW9ja01vZGVscy5pcGFkKTsKICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChjb25maWd1cmF0aW9uc1sxXS50ZXN0LCBudWxsKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwoY29uZmlndXJhdGlvbnNbMV0uc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVz
LCBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnLCAncGFpcmVkLXBhcmFsbGVsJ10pOwogICAg
ICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHRocm93IHdoZW4gYSBidWlsZCBjb25maWd1
cmF0aW9uIHVzZSB0aGUgc2FtZSBidWlsZGVyIGFzIGEgdGVzdCBjb25maWd1cmF0aW9uJywgKCkg
PT4gewpAQCAtMTEwMCw3ICsxMTcwLDYgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkg
PT4gewogICAgICAgICB9KTsKICAgICB9KTsKIAotCiAgICAgZGVzY3JpYmUoJ0J1aWxkYm90QnVp
bGRFbnRyeScsICgpID0+IHsKICAgICAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgQnVpbGRib3RCdWls
ZEVudHJ5IGZvciBwZW5kaW5nIGJ1aWxkJywgKCkgPT4gewogICAgICAgICAgICAgbGV0IHN5bmNl
ciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0Nv
bmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CkBAIC0xNzMyLDUgKzE4MDEsMTMgQEAg
ZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OworCisgICAgICAgIGl0KCdzaG91bGQgbm90IHNjaGVkdWxlIGEgYnVpbGQgcmVxdWVzdCBpZiBy
ZXBldGl0aW9uIHR5cGUgaWYgbm90IHN1cHBvcnRlZCBieSBidWlsZGJvdCBzeW5jZXInLCBhc3lu
YyAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzbWFsbENvbmZpZ3VyYXRpb25XaXRoQ3VzdG9tUmVwZXRp
dGlvblR5cGVzKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVswXTsKKyAgICAgICAgICAgIGF3YWl0
IHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCB7fSwge30pOworICAgICAgICAgICAg
bGV0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5zb21lUGxh
dGZvcm0sIE1vY2tNb2RlbHMuc29tZVRlc3QpOworICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxl
UmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShyZXF1ZXN0LCBbcmVxdWVzdF0sIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMCk7CisgICAgICAgIH0pOwog
ICAgIH0pOwogfSk7CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10
ZXN0cy9tZWFzdXJlbWVudC1zZXQtYW5hbHl6ZXItdGVzdHMuanMgYi9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvdW5pdC10ZXN0cy9tZWFzdXJlbWVudC1zZXQtYW5hbHl6ZXItdGVzdHMuanMKaW5k
ZXggMDkwN2EwYjAxNmEwNTE0ODM0N2RjYjNmNDc3ZTJhOTI1OThhYWZiYi4uMGVkNDIzMzFmMDkx
ZDk0Mjg2ZTU4ZDIxYjdjZDEwNWQ0NmU0MzllNyAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3VuaXQtdGVzdHMvbWVhc3VyZW1lbnQtc2V0LWFuYWx5emVyLXRlc3RzLmpzCisr
KyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL21lYXN1cmVtZW50LXNldC1h
bmFseXplci10ZXN0cy5qcwpAQCAtMTkxLDcgKzE5MSw4IEBAIGRlc2NyaWJlKCdNZWFzdXJlbWVu
dFNldEFuYWx5emVyJywgKCkgPT4gewogCiAgICAgICAgICAgICBUcmlnZ2VyYWJsZS5lbnN1cmVT
aW5nbGV0b24oNCwge25hbWU6ICdzb21lLXRyaWdnZXJhYmxlJywKICAgICAgICAgICAgICAgICBy
ZXBvc2l0b3J5R3JvdXBzOiBbTW9ja01vZGVscy5vc1JlcG9zaXRvcnlHcm91cCwgTW9ja01vZGVs
cy5zdm5SZXBvc2l0b3J5R3JvdXAsIE1vY2tNb2RlbHMuZ2l0UmVwb3NpdG9yeUdyb3VwLCBNb2Nr
TW9kZWxzLnN2blJlcG9zaXRvcnlXaXRoT3duZWRSZXBvc2l0b3J5R3JvdXBdLAotICAgICAgICAg
ICAgICAgIGNvbmZpZ3VyYXRpb25zOiBbe3Rlc3Q6IE1vY2tNb2RlbHMuc29tZU1ldHJpYy50ZXN0
KCksIHBsYXRmb3JtOiBNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybX1dfSk7CisgICAgICAgICAgICAg
ICAgY29uZmlndXJhdGlvbnM6IFt7dGVzdDogTW9ja01vZGVscy5zb21lTWV0cmljLnRlc3QoKSwg
cGxhdGZvcm06IE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLAorICAgICAgICAgICAgICAgICAgICBz
dXBwb3J0ZWRSZXBldGl0aW9uVHlwZXM6IE1vY2tNb2RlbHMuc29tZVRyaWdnYWJsZUNvbmZpZ3Vy
YXRpb24uc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzfV19KTsKIAogICAgICAgICAgICAgY29uc3Qg
bWVhc3VyZW1lbnRTZXQgPSBNZWFzdXJlbWVudFNldC5maW5kU2V0KE1vY2tNb2RlbHMuc29tZVBs
YXRmb3JtLmlkKCksIE1vY2tNb2RlbHMuc29tZU1ldHJpYy5pZCgpLCA1MDAwKTsKICAgICAgICAg
ICAgIGNvbnN0IGxvZ2dlciA9IG1vY2tMb2dnZXIoKTsKQEAgLTI1MSw3ICsyNTIsOCBAQCBkZXNj
cmliZSgnTWVhc3VyZW1lbnRTZXRBbmFseXplcicsICgpID0+IHsKIAogICAgICAgICAgICAgVHJp
Z2dlcmFibGUuZW5zdXJlU2luZ2xldG9uKDQsIHtuYW1lOiAnc29tZS10cmlnZ2VyYWJsZScsCiAg
ICAgICAgICAgICAgICAgcmVwb3NpdG9yeUdyb3VwczogW01vY2tNb2RlbHMub3NSZXBvc2l0b3J5
R3JvdXAsIE1vY2tNb2RlbHMuc3ZuUmVwb3NpdG9yeUdyb3VwLCBNb2NrTW9kZWxzLmdpdFJlcG9z
aXRvcnlHcm91cCwgTW9ja01vZGVscy5zdm5SZXBvc2l0b3J5V2l0aE93bmVkUmVwb3NpdG9yeUdy
b3VwXSwKLSAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uczogW3t0ZXN0OiBNb2NrTW9kZWxz
LnNvbWVNZXRyaWMudGVzdCgpLCBwbGF0Zm9ybTogTW9ja01vZGVscy5zb21lUGxhdGZvcm19XX0p
OworICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25zOiBbe3Rlc3Q6IE1vY2tNb2RlbHMuc29t
ZU1ldHJpYy50ZXN0KCksIHBsYXRmb3JtOiBNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybSwKKyAgICAg
ICAgICAgICAgICAgICAgc3VwcG9ydGVkUmVwZXRpdGlvblR5cGVzOiBNb2NrTW9kZWxzLnNvbWVU
cmlnZ2FibGVDb25maWd1cmF0aW9uLnN1cHBvcnRlZFJlcGV0aXRpb25UeXBlc31dfSk7CiAKICAg
ICAgICAgICAgIGNvbnN0IG1lYXN1cmVtZW50U2V0ID0gTWVhc3VyZW1lbnRTZXQuZmluZFNldChN
b2NrTW9kZWxzLnNvbWVQbGF0Zm9ybS5pZCgpLCBNb2NrTW9kZWxzLnNvbWVNZXRyaWMuaWQoKSwg
NTAwMCk7CiAgICAgICAgICAgICBjb25zdCBsb2dnZXIgPSBtb2NrTG9nZ2VyKCk7CkBAIC00ODQs
NyArNDg2LDggQEAgZGVzY3JpYmUoJ01lYXN1cmVtZW50U2V0QW5hbHl6ZXInLCAoKSA9PiB7CiAK
ICAgICAgICAgICAgIFRyaWdnZXJhYmxlLmVuc3VyZVNpbmdsZXRvbig0LCB7bmFtZTogJ3NvbWUt
dHJpZ2dlcmFibGUnLAogICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlHcm91cHM6IFtNb2NrTW9k
ZWxzLm9zUmVwb3NpdG9yeUdyb3VwLCBNb2NrTW9kZWxzLnN2blJlcG9zaXRvcnlHcm91cCwgTW9j
a01vZGVscy5naXRSZXBvc2l0b3J5R3JvdXAsIE1vY2tNb2RlbHMuc3ZuUmVwb3NpdG9yeVdpdGhP
d25lZFJlcG9zaXRvcnlHcm91cF0sCi0gICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbnM6IFt7
dGVzdDogTW9ja01vZGVscy5zb21lTWV0cmljLnRlc3QoKSwgcGxhdGZvcm06IE1vY2tNb2RlbHMu
c29tZVBsYXRmb3JtfV19KTsKKyAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uczogW3t0ZXN0
OiBNb2NrTW9kZWxzLnNvbWVNZXRyaWMudGVzdCgpLCBwbGF0Zm9ybTogTW9ja01vZGVscy5zb21l
UGxhdGZvcm0sCisgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZFJlcGV0aXRpb25UeXBlczog
TW9ja01vZGVscy5zb21lVHJpZ2dhYmxlQ29uZmlndXJhdGlvbi5zdXBwb3J0ZWRSZXBldGl0aW9u
VHlwZXN9XX0pOwogCiAgICAgICAgICAgICBjb25zdCBtZWFzdXJlbWVudFNldCA9IE1lYXN1cmVt
ZW50U2V0LmZpbmRTZXQoTW9ja01vZGVscy5zb21lUGxhdGZvcm0uaWQoKSwgTW9ja01vZGVscy5z
b21lTWV0cmljLmlkKCksIDUwMDApOwogICAgICAgICAgICAgY29uc3QgbG9nZ2VyID0gbW9ja0xv
Z2dlcigpOwpAQCAtNTc3LDcgKzU4MCw4IEBAIGRlc2NyaWJlKCdNZWFzdXJlbWVudFNldEFuYWx5
emVyJywgKCkgPT4gewogCiAgICAgICAgICAgICBUcmlnZ2VyYWJsZS5lbnN1cmVTaW5nbGV0b24o
NCwge25hbWU6ICdzb21lLXRyaWdnZXJhYmxlJywKICAgICAgICAgICAgICAgICByZXBvc2l0b3J5
R3JvdXBzOiBbTW9ja01vZGVscy5vc1JlcG9zaXRvcnlHcm91cCwgTW9ja01vZGVscy5zdm5SZXBv
c2l0b3J5R3JvdXAsIE1vY2tNb2RlbHMuZ2l0UmVwb3NpdG9yeUdyb3VwLCBNb2NrTW9kZWxzLnN2
blJlcG9zaXRvcnlXaXRoT3duZWRSZXBvc2l0b3J5R3JvdXBdLAotICAgICAgICAgICAgICAgIGNv
bmZpZ3VyYXRpb25zOiBbe3Rlc3Q6IE1vY2tNb2RlbHMuc29tZU1ldHJpYy50ZXN0KCksIHBsYXRm
b3JtOiBNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybX1dfSk7CisgICAgICAgICAgICAgICAgY29uZmln
dXJhdGlvbnM6IFt7dGVzdDogTW9ja01vZGVscy5zb21lTWV0cmljLnRlc3QoKSwgcGxhdGZvcm06
IE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLAorICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWRS
ZXBldGl0aW9uVHlwZXM6IE1vY2tNb2RlbHMuc29tZVRyaWdnYWJsZUNvbmZpZ3VyYXRpb24uc3Vw
cG9ydGVkUmVwZXRpdGlvblR5cGVzfV19KTsKIAogICAgICAgICAgICAgY29uc3QgbWVhc3VyZW1l
bnRTZXQgPSBNZWFzdXJlbWVudFNldC5maW5kU2V0KE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLmlk
KCksIE1vY2tNb2RlbHMuc29tZU1ldHJpYy5pZCgpLCA1MDAwKTsKICAgICAgICAgICAgIGNvbnN0
IGxvZ2dlciA9IG1vY2tMb2dnZXIoKTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy91bml0LXRlc3RzL3Jlc291cmNlcy9tb2NrLXYzLW1vZGVscy5qcyBiL1dlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy91bml0LXRlc3RzL3Jlc291cmNlcy9tb2NrLXYzLW1vZGVscy5qcwppbmRl
eCAyMzhmNTgyNDI3YWU0Zjc4ODg2YjVkYmI0ODM5OTc5OTAyZTYzOTkyLi5hZmQwZDdhZTMzNDdj
OTVhYjM0YWMwMDc5Nzg1NTM3ZDliYTRkN2U3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvdW5pdC10ZXN0cy9yZXNvdXJjZXMvbW9jay12My1tb2RlbHMuanMKKysrIGIvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvcmVzb3VyY2VzL21vY2stdjMtbW9kZWxz
LmpzCkBAIC0xNCw2ICsxNCw3IEBAIHZhciBNb2NrTW9kZWxzID0gewogICAgICAgICAgICAgVGVz
dEdyb3VwLmNsZWFyU3RhdGljTWFwKCk7CiAgICAgICAgICAgICBCdWlsZFJlcXVlc3QuY2xlYXJT
dGF0aWNNYXAoKTsKICAgICAgICAgICAgIFRyaWdnZXJhYmxlLmNsZWFyU3RhdGljTWFwKCk7Cisg
ICAgICAgICAgICBUcmlnZ2VyYWJsZUNvbmZpZ3VyYXRpb24uY2xlYXJTdGF0aWNNYXAoKTsKICAg
ICAgICAgICAgIFVwbG9hZGVkRmlsZS5jbGVhclN0YXRpY01hcCgpOwogICAgICAgICAgICAgTWVh
c3VyZW1lbnRTZXQuX3NldE1hcCA9IG51bGw7CiAKQEAgLTcyLDggKzczLDkgQEAgdmFyIE1vY2tN
b2RlbHMgPSB7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIE1vY2tNb2RlbHMudHJpZ2dl
cmFibGUgPSBuZXcgVHJpZ2dlcmFibGUoMywge25hbWU6ICdidWlsZC13ZWJraXQnLAogICAgICAg
ICAgICAgICAgIHJlcG9zaXRvcnlHcm91cHM6IFtNb2NrTW9kZWxzLm9zUmVwb3NpdG9yeUdyb3Vw
LCBNb2NrTW9kZWxzLnN2blJlcG9zaXRvcnlHcm91cCwgTW9ja01vZGVscy5naXRSZXBvc2l0b3J5
R3JvdXAsIE1vY2tNb2RlbHMuc3ZuUmVwb3NpdG9yeVdpdGhPd25lZFJlcG9zaXRvcnlHcm91cCwg
TW9ja01vZGVscy5vd25lclJlcG9zaXRvcnlHcm91cF0sCi0gICAgICAgICAgICAgICAgY29uZmln
dXJhdGlvbnM6IFt7dGVzdDogTW9ja01vZGVscy5pUGhvbmVQTFQsIHBsYXRmb3JtOiBNb2NrTW9k
ZWxzLmlwaG9uZX1dfSk7CisgICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbnM6IFt7dGVzdDog
TW9ja01vZGVscy5pUGhvbmVQTFQsIHBsYXRmb3JtOiBNb2NrTW9kZWxzLmlwaG9uZSwgc3VwcG9y
dGVkUmVwZXRpdGlvblR5cGVzOiBbJ2FsdGVybmF0aW5nJywgJ3NlcXVlbnRpYWwnXX1dfSk7CiAK
KyAgICAgICAgICAgIE1vY2tNb2RlbHMuc29tZVRyaWdnYWJsZUNvbmZpZ3VyYXRpb24gPSBUcmln
Z2VyYWJsZUNvbmZpZ3VyYXRpb24uZmluZEJ5VGVzdEFuZFBsYXRmb3JtKE1vY2tNb2RlbHMuaVBo
b25lUExULCBNb2NrTW9kZWxzLmlwaG9uZSk7CiAgICAgICAgIH0pOwogICAgIH0KIH0K
</data>
<flag name="review"
          id="467494"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>