<?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>178835</bug_id>
          
          <creation_ts>2017-10-25 15:40:47 -0700</creation_ts>
          <short_desc>Web Inspector: Styles: format style declarations after editing</short_desc>
          <delta_ts>2021-10-07 11:15:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=178990</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>225538</blocked>
    
    <blocked>227411</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikita Vasilyev">nvasilyev</reporter>
          <assigned_to name="Nikita Vasilyev">nvasilyev</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>jer.noble</cc>
    
    <cc>pangle</cc>
    
    <cc>philipj</cc>
    
    <cc>rcaliman</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1364539</commentid>
    <comment_count>0</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-10-25 15:40:47 -0700</bug_when>
    <thetext>Currently, a newly added property get appended without any indentation or line-breaks.

Adding &quot;color: red&quot; to:

    body {
        font-family: sans-serif;
    }

Currently results in:

    body {
        font-family: sans-serif;color: red;
    }

Expected (when the indentation in setting is set to 4 spaces):

    body {
        font-family: sans-serif;
        color: red;
    }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364540</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-10-25 15:41:04 -0700</bug_when>
    <thetext>&lt;rdar://problem/35185060&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761618</commentid>
    <comment_count>2</comment_count>
      <attachid>429077</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-05-19 11:11:04 -0700</bug_when>
    <thetext>Created attachment 429077
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761625</commentid>
    <comment_count>3</comment_count>
      <attachid>429078</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-05-19 11:30:23 -0700</bug_when>
    <thetext>Created attachment 429078
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761723</commentid>
    <comment_count>4</comment_count>
      <attachid>429078</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-19 15:08:39 -0700</bug_when>
    <thetext>Comment on attachment 429078
Patch

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

So does this mean that if I&apos;m editing a minified CSS style sheet resource in the Styles panel then my changes will result in a bunch of pretty-printed text appearing in the middle of the minified resource?  I&apos;m not sure if that&apos;s what we want to do.  Maybe we should only do this if we believe that the style sheet resource already is pretty-printed (e.g. using `isTextLikelyMinified`)?

&gt; Source/WebInspectorUI/UserInterface/Models/CSSStyleDeclaration.js:514
&gt; +    generateFormattedText()

Why not use/modify `generateCSSRuleString`?  Like have an `options = {}` that controls what things are added so that we don&apos;t have repeated work (e.g. `includeGroupings`, `allowInline`, etc.).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762008</commentid>
    <comment_count>5</comment_count>
      <attachid>429078</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-05-20 10:04:55 -0700</bug_when>
    <thetext>Comment on attachment 429078
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/CSSStyleDeclaration.js:514
&gt;&gt; +    generateFormattedText()
&gt; 
&gt; Why not use/modify `generateCSSRuleString`?  Like have an `options = {}` that controls what things are added so that we don&apos;t have repeated work (e.g. `includeGroupings`, `allowInline`, etc.).

Yes, I can merge the two.

Caveats:
- generateCSSRuleString generates a CSS rule, so it includes `cssSelector { cssDeclaration }`. It should probably make more sense to have this method on CSSRule, not CSSStyleDeclaration, but I digress.
- indentation is slightly different (e.g. for the closing &quot;}&quot;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762015</commentid>
    <comment_count>6</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-05-20 10:18:57 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #4)
&gt; Comment on attachment 429078 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=429078&amp;action=review
&gt; 
&gt; So does this mean that if I&apos;m editing a minified CSS style sheet resource in
&gt; the Styles panel then my changes will result in a bunch of pretty-printed
&gt; text appearing in the middle of the minified resource?  I&apos;m not sure if
&gt; that&apos;s what we want to do. ...

Yes.

Why is it bad? Is it for saving the resource?

It is certainly easier to read and edit non-minified resource.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766120</commentid>
    <comment_count>7</comment_count>
      <attachid>430394</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-06-02 13:06:41 -0700</bug_when>
    <thetext>Created attachment 430394
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766122</commentid>
    <comment_count>8</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-06-02 13:11:31 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #4)
&gt; &gt; Source/WebInspectorUI/UserInterface/Models/CSSStyleDeclaration.js:514
&gt; &gt; +    generateFormattedText()
&gt; 
&gt; Why not use/modify `generateCSSRuleString`?  Like have an `options = {}`
&gt; that controls what things are added so that we don&apos;t have repeated work
&gt; (e.g. `includeGroupings`, `allowInline`, etc.).

I did that. The options are different though.


(In reply to Nikita Vasilyev from comment #5)
&gt; - generateCSSRuleString generates a CSS rule, so it includes `cssSelector {
&gt; cssDeclaration }`. It should probably make more sense to have this method on
&gt; CSSRule, not CSSStyleDeclaration, but I digress.

I tried to refactor this and move generateCSSRuleString method to CSSRule. Then realized that it also need to work for inline styles. It makes sense to me to keep it as-is now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766123</commentid>
    <comment_count>9</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-06-02 13:16:59 -0700</bug_when>
    <thetext>(In reply to Nikita Vasilyev from comment #8)
&gt; (In reply to Devin Rousso from comment #4)
&gt; &gt; &gt; Source/WebInspectorUI/UserInterface/Models/CSSStyleDeclaration.js:514
&gt; &gt; &gt; +    generateFormattedText()
&gt; &gt; 
&gt; &gt; Why not use/modify `generateCSSRuleString`?  Like have an `options = {}`
&gt; &gt; that controls what things are added so that we don&apos;t have repeated work
&gt; &gt; (e.g. `includeGroupings`, `allowInline`, etc.).
&gt; 
&gt; I did that. The options are different though.

To amend my message: I kept the two methods separate, still. I think generateCSSRuleString should generate, well, a CSS rule. It shouldn&apos;t generate a style declaration (e.g. a list of CSS properties).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766231</commentid>
    <comment_count>10</comment_count>
      <attachid>430422</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-06-02 17:25:34 -0700</bug_when>
    <thetext>Created attachment 430422
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766979</commentid>
    <comment_count>11</comment_count>
      <attachid>430422</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-06-04 16:08:20 -0700</bug_when>
    <thetext>Comment on attachment 430422
Patch

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

&gt; LayoutTests/inspector/css/generateFormattedText.htmlLayoutTests/inspector/css/generateCSSRuleString.html:22
&gt; +            InspectorTest.log(nodeStyles.inlineStyle.generateFormattedText({includeGroupings: true, forceMultiline: true}));

Can we add some tests for the other permutations (e.g. `{includeGroupings: true}`)?

&gt; Source/WebInspectorUI/ChangeLog:18
&gt; +        Introduce `_pendingText` property. It&apos;s only set when pasting CSS property text into the CSS property name field.

Can you explain why this is needed?  Why can&apos;t we just `this._text = text;`?

&gt; Source/WebInspectorUI/UserInterface/Models/CSSProperty.js:190
&gt;          this._text = newText;

Do we need to do this before calling `_updateOwnerStyleText`?

&gt; Source/WebInspectorUI/UserInterface/Models/CSSProperty.js:-515
&gt; -        this._styleSheetTextRange = this._styleSheetTextRange.cloneAndModify(0, 0, lineDelta, columnDelta);

Can we verify that the `_styleSheetTextRange` gets updated (and to the right value) after `this._ownerStyle.text = ...`?

&gt; Source/WebInspectorUI/UserInterface/Models/CSSStyleDeclaration.js:503
&gt; +            styleText += indentString.repeat(groupingsCount) + this.selectorText + &quot; {&quot;;

We should probably have a separate option for `includeSelector` since it&apos;s not a CSS grouping (or rename `includeGrouping` to also mention &quot;selector&quot; or something).  I would also add a `console.assert(!options.includeGroupings || options.includeSelector, options)` too as it doesn&apos;t make sense to show CSS groupings without the selector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777234</commentid>
    <comment_count>12</comment_count>
      <attachid>433595</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-07-15 10:00:38 -0700</bug_when>
    <thetext>Created attachment 433595
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777236</commentid>
    <comment_count>13</comment_count>
      <attachid>430422</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-07-15 10:06:02 -0700</bug_when>
    <thetext>Comment on attachment 430422
Patch

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

&gt;&gt; Source/WebInspectorUI/ChangeLog:18
&gt;&gt; +        Introduce `_pendingText` property. It&apos;s only set when pasting CSS property text into the CSS property name field.
&gt; 
&gt; Can you explain why this is needed?  Why can&apos;t we just `this._text = text;`?

When pasting CSS, we need to save that exact text. We don&apos;t want to save formatted text based on the name/value — they are outdated now.

In my latest patch, I replaced `_pendingText` with `_isTextPendingSave`, which is a boolean flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777936</commentid>
    <comment_count>14</comment_count>
      <attachid>433595</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-07-19 12:13:28 -0700</bug_when>
    <thetext>Comment on attachment 433595
Patch

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

&gt; LayoutTests/ChangeLog:11
&gt; +        - Add a basic test unsuring styleSheetTextRange updates correctly from the backend.

s/unsuring/ensuring

&gt; LayoutTests/inspector/css/generateFormattedText-expected.txt:12
&gt; +

I don&apos;t think there should be a newline at the start when we&apos;re not including groupings/selectors

&gt; LayoutTests/inspector/css/generateFormattedText-expected.txt:13
&gt; +    a: 1;

It&apos;s odd that this is indented when there&apos;s no groupings/selectors 🤔

&gt; LayoutTests/inspector/css/generateFormattedText-expected.txt:32
&gt; +

ditto (:12)

&gt; LayoutTests/inspector/css/generateFormattedText-expected.txt:33
&gt; +    a: 1;

ditto (:13)

&gt; LayoutTests/inspector/css/generateFormattedText-expected.txt:53
&gt; +@media only screen and (min-width: 0px) {@media only screen and (min-height: 0px) {body &gt; div#test-node {a: 1; b: 2; c: 3;}}}

It&apos;s a bit odd that we add spaces between `#test-node` and `{` or between CSS properties, but not between `{` and `@media`/`body` or before/after the first/last CSS property.

Maybe we should be a bit more liberal with whitespace?

&gt; LayoutTests/inspector/css/generateFormattedText-expected.txt:60
&gt; +

ditto (:12)

&gt; LayoutTests/inspector/css/generateFormattedText-expected.txt:61
&gt; +            a: 1;

ditto (:13)

&gt; LayoutTests/inspector/css/generateFormattedText-expected.txt:127
&gt; +@media only screen and (min-width: 0px) {@media only screen and (min-height: 0px) {body &gt; div#test-node {a: 1; /* b: 2; */ c: 3;}}}

ditto (:53)

&gt; LayoutTests/inspector/css/generateFormattedText-expected.txt:134
&gt; +

ditto (:12)

&gt; LayoutTests/inspector/css/generateFormattedText-expected.txt:135
&gt; +            a: 1;

ditto (:13)

&gt; LayoutTests/inspector/css/generateFormattedText.html:16
&gt; +    let suite = InspectorTest.createSyncSuite(&quot;CSS.generateCSSRuleString&quot;);

NIT: this should really be `&quot;WI.CSSStyelDeclaration.prototype.generateFormattedText&quot;` (and ditto below too)

&gt; LayoutTests/inspector/css/modify-css-property.html:44
&gt; +            styleDeclaration.awaitEvent(WI.CSSStyleDeclaration.Event.PropertiesChanged).then((event) =&gt; {

Can you use `singleFireEventListener` to make sure that the extra microtask of the `Promise` isn&apos;t influencing the test result?

&gt; LayoutTests/inspector/css/modify-css-property.html:48
&gt; +                let relativeRange = fontProperty.styleSheetTextRange.relativeTo(fontProperty.ownerStyle.styleSheetTextRange.startLine, fontProperty.ownerStyle.styleSheetTextRange.startOffset);
&gt; +                relativeRange.resolveOffsets(fontProperty.ownerStyle.text);
&gt; +                let propertyText = fontProperty.ownerStyle.text.slice(relativeRange.startOffset, relativeRange.endOffset);

Is this logic actually found in Web Inspector?  If yes, why can&apos;t we test that code instead of this?  If not, why is this needed?

&gt; Source/WebInspectorUI/UserInterface/Models/CSSProperty.js:214
&gt; +        this._isTextPendingSave = true;

Please add this variable to the constructor to avoid adding a new JSC structure.

NIT: I think this needs a clearer name.  Maybe something like `_isUpdatingText` or `_isWaitingForResponseAfterChangingText`?

&gt; Source/WebInspectorUI/UserInterface/Models/CSSProperty.js:222
&gt; +            return this._text.trim();

Instead of `trim()` each time this is called, can we `trim()` once inside `set text` instead?

&gt; Source/WebInspectorUI/UserInterface/Models/CSSProperty.js:507
&gt; +        this._updateOwnerStyleText();

Should this also be wrapped with `_isTextPendingSave`?

&gt; Source/WebInspectorUI/UserInterface/Models/CSSProperty.js:516
&gt; +        let multiline = this._ownerStyle.type === WI.CSSStyleDeclaration.Type.Rule

NIT: I&apos;d inline this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777947</commentid>
    <comment_count>15</comment_count>
      <attachid>433595</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-07-19 12:43:31 -0700</bug_when>
    <thetext>Comment on attachment 433595
Patch

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

&gt;&gt; LayoutTests/inspector/css/generateFormattedText-expected.txt:13
&gt;&gt; +    a: 1;
&gt; 
&gt; It&apos;s odd that this is indented when there&apos;s no groupings/selectors 🤔

It does indeed look odd in the test, but that&apos;s what we want to do to save formatted text — we need to send style declarations, which is everything inside of `selectior {...}`, but no selectors or groupings.

&gt;&gt; LayoutTests/inspector/css/generateFormattedText-expected.txt:53
&gt;&gt; +@media only screen and (min-width: 0px) {@media only screen and (min-height: 0px) {body &gt; div#test-node {a: 1; b: 2; c: 3;}}}
&gt; 
&gt; It&apos;s a bit odd that we add spaces between `#test-node` and `{` or between CSS properties, but not between `{` and `@media`/`body` or before/after the first/last CSS property.
&gt; 
&gt; Maybe we should be a bit more liberal with whitespace?

This is not a real-world scenario. I&apos;m testing dead code, essentially.
includeGroupingsAndSelectors is always used with `multiline` (for Copy Rule context menu).

&gt;&gt; LayoutTests/inspector/css/generateFormattedText.html:16
&gt;&gt; +    let suite = InspectorTest.createSyncSuite(&quot;CSS.generateCSSRuleString&quot;);
&gt; 
&gt; NIT: this should really be `&quot;WI.CSSStyelDeclaration.prototype.generateFormattedText&quot;` (and ditto below too)

Oops, thanks.

&gt;&gt; LayoutTests/inspector/css/modify-css-property.html:48
&gt;&gt; +                let propertyText = fontProperty.ownerStyle.text.slice(relativeRange.startOffset, relativeRange.endOffset);
&gt; 
&gt; Is this logic actually found in Web Inspector?  If yes, why can&apos;t we test that code instead of this?  If not, why is this needed?

No, I don&apos;t think it is.
I&apos;m testing that styleSheetTextRange is correctly updated from the backend. Initially, I used expectEqual on styleSheetTextRange objects themselves, but it was too cryptic and hard to understand when the test was failing.

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/CSSProperty.js:214
&gt;&gt; +        this._isTextPendingSave = true;
&gt; 
&gt; Please add this variable to the constructor to avoid adding a new JSC structure.
&gt; 
&gt; NIT: I think this needs a clearer name.  Maybe something like `_isUpdatingText` or `_isWaitingForResponseAfterChangingText`?

`_isUpdatingText` sounds good to me.

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/CSSProperty.js:222
&gt;&gt; +            return this._text.trim();
&gt; 
&gt; Instead of `trim()` each time this is called, can we `trim()` once inside `set text` instead?

Either way it should only get called once. But sounds good.

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/CSSProperty.js:507
&gt;&gt; +        this._updateOwnerStyleText();
&gt; 
&gt; Should this also be wrapped with `_isTextPendingSave`?

Like `if (this._isTextPendingSave) this._updateOwnerStyleText()` ? No, it shouldn&apos;t because `_isTextPendingSave` is false when we edit name/value. It&apos;s only true pasting CSS and commenting/uncommenting (the latter could be rewritten to not use this._text directly, actually, but I digress).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780215</commentid>
    <comment_count>16</comment_count>
      <attachid>433595</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-07-28 14:47:41 -0700</bug_when>
    <thetext>Comment on attachment 433595
Patch

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

&gt;&gt;&gt; LayoutTests/inspector/css/generateFormattedText-expected.txt:13
&gt;&gt;&gt; +    a: 1;
&gt;&gt; 
&gt;&gt; It&apos;s odd that this is indented when there&apos;s no groupings/selectors 🤔
&gt; 
&gt; It does indeed look odd in the test, but that&apos;s what we want to do to save formatted text — we need to send style declarations, which is everything inside of `selectior {...}`, but no selectors or groupings.

To paraphrase, I need to add this newline at the start for the saved formatted text to make sense. For example, when I edit a CSS property in:

#foo {
    font-size: 14px;
}

I don&apos;t want to save it as:

#foo {    font-size: 14px;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780222</commentid>
    <comment_count>17</comment_count>
      <attachid>434469</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-07-28 14:56:59 -0700</bug_when>
    <thetext>Created attachment 434469
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800703</commentid>
    <comment_count>18</comment_count>
      <attachid>434469</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-10-05 12:26:46 -0700</bug_when>
    <thetext>Comment on attachment 434469
Patch

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

r=me

I still think it&apos;s a bit odd to have formatted text suddenly appear in the middle of a minified resource, but perhaps that could be a good thing as it would stand out more (and make subsequent edits easier).  It&apos;s also fair to say that when viewing a minified resource Web Inspector should auto-format it anyways, so unless the developer manually changes back to the minified view or saves the file to disk they&apos;re unlikely to be bothered by this.  Most developers spend their time in the Styles details sidebar panel in the Elements Tab anyways.

&gt; Source/WebInspectorUI/UserInterface/Models/CSSStyleDeclaration.js:499
&gt; +        if (options.includeGroupingsAndSelectors) {

NIT: I&apos;m just realizing now that this probably should be `includeSelectorsAndGroupings` since you can&apos;t have a grouping without selectors but you can have the opposite, but it&apos;s not a big deal :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801072</commentid>
    <comment_count>19</comment_count>
      <attachid>440369</attachid>
    <who name="Razvan Caliman">rcaliman</who>
    <bug_when>2021-10-06 08:09:15 -0700</bug_when>
    <thetext>Created attachment 440369
Patch

Carry over R+; Address nit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801632</commentid>
    <comment_count>20</comment_count>
      <attachid>440505</attachid>
    <who name="Razvan Caliman">rcaliman</who>
    <bug_when>2021-10-07 09:43:56 -0700</bug_when>
    <thetext>Created attachment 440505
Patch

Carry over R+; reattach Nikita\&apos;s original patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801671</commentid>
    <comment_count>21</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-07 11:15:20 -0700</bug_when>
    <thetext>Committed r283723 (242647@main): &lt;https://commits.webkit.org/242647@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440505.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429077</attachid>
            <date>2021-05-19 11:11:04 -0700</date>
            <delta_ts>2021-05-19 11:30:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>20180</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1YTFkZDdlN2VlMzguLmZlMzFjOTA5OGEzMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIxLTA1LTE5ICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IFN0eWxlczogZm9ybWF0IHN0eWxlIGRlY2xhcmF0aW9ucyBh
ZnRlciBlZGl0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzg4MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1MTg1MDYwPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluZGVudCB0ZXh0IG9mIGV4
cGVjdGVkIENTUyBwcm9wZXJ0aWVzLgorCisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9hZGQtY3Nz
LXByb3BlcnR5Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9tb2RpZnktY3NzLXByb3Bl
cnR5Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9tb2RpZnktaW5saW5lLXN0eWxlLWV4
cGVjdGVkLnR4dDoKKwogMjAyMS0wNS0wNiAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gVW5yZXZpZXdlZCB0ZXN0IGdhcmRlbmluZy4g
RW1pdCBwbGF0Zm9ybSBiYXNlbGluZXMgYWZ0ZXIgcjI3NzA3MS4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jc3MvYWRkLWNzcy1wcm9wZXJ0eS5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2Nzcy9hZGQtY3NzLXByb3BlcnR5Lmh0bWwKaW5kZXggNDU1YTk1ZDRlNzNiLi5m
NWRmOTUzMTQyY2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvYWRkLWNz
cy1wcm9wZXJ0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvYWRkLWNzcy1w
cm9wZXJ0eS5odG1sCkBAIC0yNyw3ICsyNyw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAg
ICAgICBuZXdQcm9wZXJ0eS5uYW1lID0gImNvbG9yIjsKICAgICAgICAgICAgIG5ld1Byb3BlcnR5
LnJhd1ZhbHVlID0gImdyZWVuIjsKIAotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RF
cXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGBmb250LXNpemU6IDE0cHg7Y29sb3I6IGdyZWVu
O2AsICJgY29sb3I6IGdyZWVuYCBwcm9wZXJ0eSBzaG91bGQgYmUgYXBwZW5kZWQuIik7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlRGVjbGFyYXRpb24udGV4dCwg
YFxuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogZ3JlZW47XG5gLCAiYGNvbG9yOiBn
cmVlbmAgcHJvcGVydHkgc2hvdWxkIGJlIGFwcGVuZGVkLiIpOwogCiAgICAgICAgICAgICBzdHls
ZURlY2xhcmF0aW9uLmxvY2tlZCA9IGZhbHNlOwogICAgICAgICAgICAgcmVzb2x2ZSgpOwpAQCAt
NDMsNyArNDMsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgbmV3UHJvcGVydHku
bmFtZSA9ICJjb2xvciI7CiAgICAgICAgICAgICBuZXdQcm9wZXJ0eS5yYXdWYWx1ZSA9ICJncmVl
biI7CiAKLSAgICAgICAgICAgIGxldCBleHBlY3RlZCA9IGBjb2xvcjogZ3JlZW47XG4gICAgb3V0
bGluZTogMnB4IHNvbGlkIGJyb3duO1xuYDsKKyAgICAgICAgICAgIGxldCBleHBlY3RlZCA9IGBc
biAgICBjb2xvcjogZ3JlZW47XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIGJyb3duO1xuYDsKICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0
LCBleHBlY3RlZCwgImBjb2xvcjogZ3JlZW5gIHByb3BlcnR5IHNob3VsZCBiZSBpbnNlcnRlZCBi
ZWZvcmUgdGhlIGZpcnN0IHByb3BlcnR5LiIpOwogCiAgICAgICAgICAgICBzdHlsZURlY2xhcmF0
aW9uID0gZ2V0TWF0Y2hlZFN0eWxlKCIucnVsZS1iIiwgcmVzb2x2ZSk7CkBAIC01MSw3ICs1MSw3
IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICBuZXdQcm9wZXJ0eS5uYW1lID0gImRp
c3BsYXkiOwogICAgICAgICAgICAgbmV3UHJvcGVydHkucmF3VmFsdWUgPSAiYmxvY2siOwogCi0g
ICAgICAgICAgICBleHBlY3RlZCA9IGBjb2xvcjogZ3JlZW47XG4gICAgb3V0bGluZTogMnB4IHNv
bGlkIGJyb3duO2Rpc3BsYXk6IGJsb2NrO1xuYDsKKyAgICAgICAgICAgIGV4cGVjdGVkID0gYFxu
ICAgIGNvbG9yOiBncmVlbjtcbiAgICBvdXRsaW5lOiAycHggc29saWQgYnJvd247XG4gICAgZGlz
cGxheTogYmxvY2s7XG5gOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChz
dHlsZURlY2xhcmF0aW9uLnRleHQsIGV4cGVjdGVkLCAiYGRpc3BsYXk6IGJsb2NrYCBwcm9wZXJ0
eSBzaG91bGQgYmUgYXBwZW5kZWQgYXQgdGhlIGVuZC4iKTsKIAogICAgICAgICAgICAgc3R5bGVE
ZWNsYXJhdGlvbi5sb2NrZWQgPSBmYWxzZTsKQEAgLTY4LDcgKzY4LDcgQEAgZnVuY3Rpb24gdGVz
dCgpIHsKICAgICAgICAgICAgIG5ld1Byb3BlcnR5Lm5hbWUgPSAiZm9udC1mYW1pbHkiOwogICAg
ICAgICAgICAgbmV3UHJvcGVydHkucmF3VmFsdWUgPSAiZmFudGFzeSI7CiAKLSAgICAgICAgICAg
IGxldCBleHBlY3RlZCA9IGBcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBwZWFjaHB1ZmY7Zm9udC1m
YW1pbHk6IGZhbnRhc3k7XG4gICAgY29sb3I6IGJ1cmx5d29vZFxuYDsKKyAgICAgICAgICAgIGxl
dCBleHBlY3RlZCA9IGBcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBwZWFjaHB1ZmY7XG4gICAgZm9u
dC1mYW1pbHk6IGZhbnRhc3k7XG4gICAgY29sb3I6IGJ1cmx5d29vZDtcbmA7CiAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlRGVjbGFyYXRpb24udGV4dCwgZXhwZWN0
ZWQsICJgZm9udC1mYW1pbHk6IGZhbnRhc3lgIHByb3BlcnR5IHNob3VsZCBiZSBpbnNlcnRlZCBh
ZnRlciB0aGUgZmlyc3QgcHJvcGVydHkuIik7CiAKICAgICAgICAgICAgIHN0eWxlRGVjbGFyYXRp
b24ubG9ja2VkID0gZmFsc2U7CkBAIC04NSw3ICs4NSw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAg
ICAgICAgICAgICBuZXdQcm9wZXJ0eS5uYW1lID0gImRpc3BsYXkiOwogICAgICAgICAgICAgbmV3
UHJvcGVydHkucmF3VmFsdWUgPSAiaW5saW5lIjsKIAotICAgICAgICAgICAgY29uc3QgZXhwZWN0
ZWQgPSBgXG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIC8qIGNvbG9yOiByZWQ7ICovZGlzcGxh
eTogaW5saW5lO1xuYDsKKyAgICAgICAgICAgIGNvbnN0IGV4cGVjdGVkID0gYFxuICAgIGZvbnQt
c2l6ZTogMTRweDtcbiAgICAvKiBjb2xvcjogcmVkOyAqL1xuICAgIGRpc3BsYXk6IGlubGluZTtc
bmA7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlRGVjbGFyYXRp
b24udGV4dCwgZXhwZWN0ZWQsICJgZGlzcGxheTogaW5saW5lYCBwcm9wZXJ0eSBzaG91bGQgYmUg
YXBwZW5kZWQuIik7CiAKICAgICAgICAgICAgIHN0eWxlRGVjbGFyYXRpb24ubG9ja2VkID0gZmFs
c2U7CkBAIC0xMDIsNyArMTAyLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgIG5l
d1Byb3BlcnR5Lm5hbWUgPSAiZGlzcGxheSI7CiAgICAgICAgICAgICBuZXdQcm9wZXJ0eS5yYXdW
YWx1ZSA9ICJpbmxpbmUiOwogCi0gICAgICAgICAgICBjb25zdCBleHBlY3RlZCA9IGBcbiAgICBm
b250LXNpemU6IDE0cHg7XG4gICAgLyogY29sb3I6IHJlZCAqL2Rpc3BsYXk6IGlubGluZTtcbmA7
CisgICAgICAgICAgICBjb25zdCBleHBlY3RlZCA9IGBcbiAgICBmb250LXNpemU6IDE0cHg7XG4g
ICAgLyogY29sb3I6IHJlZDsgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmU7XG5gOwogICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGV4cGVj
dGVkLCAiYGRpc3BsYXk6IGlubGluZWAgcHJvcGVydHkgc2hvdWxkIGJlIGFwcGVuZGVkLiIpOwog
CiAgICAgICAgICAgICBzdHlsZURlY2xhcmF0aW9uLmxvY2tlZCA9IGZhbHNlOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5Lmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1jc3MtcHJvcGVydHkuaHRtbAppbmRleCAy
ODYzZjc4MjUwZGEuLjIzNGIzODU2N2I4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5Lmh0bWwKQEAgLTQ0LDcgKzQ0LDcgQEAgZnVuY3Rp
b24gdGVzdCgpIHsKIAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChnZXRQ
cm9wZXJ0eSgiZm9udC1zaXplIikucmF3VmFsdWUsICIxMHB4IiwgYCJmb250LXNpemUiIHByb3Bl
cnR5IHZhbHVlIHNob3VsZCB1cGRhdGUgaW1tZWRpYXRlbHkuYCk7CiAKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0LCBgZm9udC1zaXpl
OiAxMHB4OyBjb2xvcjogYW50aXF1ZXdoaXRlYCwgYFN0eWxlIGRlY2xhcmF0aW9uIHRleHQgc2hv
dWxkIHVwZGF0ZSBpbW1lZGlhdGVseS5gKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0LCBgXG4gICAgZm9udC1zaXplOiAxMHB4O1xu
ICAgIGNvbG9yOiBhbnRpcXVld2hpdGU7XG5gLCBgU3R5bGUgZGVjbGFyYXRpb24gdGV4dCBzaG91
bGQgdXBkYXRlIGltbWVkaWF0ZWx5LmApOwogCiAgICAgICAgICAgICByZXNvbHZlKCk7CiAgICAg
ICAgIH0KQEAgLTgwLDEyICs4MCwxMSBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChnZXRQcm9wZXJ0eSgiZm9udC1zaXplIikucmF3VmFs
dWUsICIxNnB4IiwgYCJmb250LXNpemUiIHByb3BlcnR5IHZhbHVlIHNob3VsZCB1cGRhdGUgaW1t
ZWRpYXRlbHkuYCk7CiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5
bGVEZWNsYXJhdGlvbi50ZXh0LCBgCi0gICAgICAgIGZvbnQtc2l6ZTogMTZweDsKLSAgICAgICAg
Y29sb3I6ICMzMzM7Ci0KLSAgICAgICAgbWFyZ2luLWxlZnQ6IDA7Ci0gICAgICAgIG1hcmdpbi10
b3A6IDFlbTsKLSAgICBgLCBgU3R5bGUgZGVjbGFyYXRpb24gdGV4dCBzaG91bGQgdXBkYXRlIGlt
bWVkaWF0ZWx5LmApOworICAgIGZvbnQtc2l6ZTogMTZweDsKKyAgICBjb2xvcjogIzMzMzsKKyAg
ICBtYXJnaW4tbGVmdDogMDsKKyAgICBtYXJnaW4tdG9wOiAxZW07CitgLCBgU3R5bGUgZGVjbGFy
YXRpb24gdGV4dCBzaG91bGQgdXBkYXRlIGltbWVkaWF0ZWx5LmApOwogCiAgICAgICAgICAgICBz
dHlsZURlY2xhcmF0aW9uLmxvY2tlZCA9IGZhbHNlOwogCkBAIC0yNDMsNyArMjQyLDcgQEAgZnVu
Y3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgIGxldCBkaXNhYmxlZCA9IGZhbHNlOwogICAgICAg
ICAgICAgZ2V0UHJvcGVydHkoInBhZGRpbmctcmlnaHQiKS5jb21tZW50T3V0KGRpc2FibGVkKTsK
IAotICAgICAgICAgICAgbGV0IGV4cGVjdGVkU3R5bGVUZXh0ID0gYFxuICAgICAgICAvKiBwYWRk
aW5nLWxlZnQ6IDJlbTsgKi9cbiAgICAgICAgcGFkZGluZy1yaWdodDogMHB4O1xuICAgIGA7Cisg
ICAgICAgICAgICBsZXQgZXhwZWN0ZWRTdHlsZVRleHQgPSBgXG4gICAgLyogcGFkZGluZy1sZWZ0
OiAyZW07ICovXG4gICAgcGFkZGluZy1yaWdodDogMHB4O1xuYDsKICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0LCBleHBlY3RlZFN0eWxl
VGV4dCwgYFN0eWxlIGRlY2xhcmF0aW9uIHRleHQgc2hvdWxkIHVwZGF0ZSBpbW1lZGlhdGVseSB3
aXRoIHVuY29tbWVudGVkIHByb3BlcnR5LmApOwogCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRoYXQoZ2V0UHJvcGVydHkoInBhZGRpbmctcmlnaHQiKS5lbmFibGVkLCBgVW5jb21t
ZW50ZWQgcHJvcGVydHkgc2hvdWxkIGJlIGVuYWJsZWQuYCk7CkBAIC0yNTEsNyArMjUwLDcgQEAg
ZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgIGRpc2FibGVkID0gdHJ1ZTsKICAgICAgICAg
ICAgIGdldFByb3BlcnR5KCJwYWRkaW5nLXJpZ2h0IikuY29tbWVudE91dChkaXNhYmxlZCk7CiAK
LSAgICAgICAgICAgIGV4cGVjdGVkU3R5bGVUZXh0ID0gYFxuICAgICAgICAvKiBwYWRkaW5nLWxl
ZnQ6IDJlbTsgKi9cbiAgICAgICAgLyogcGFkZGluZy1yaWdodDogMHB4OyAqL1xuICAgIGA7Cisg
ICAgICAgICAgICBleHBlY3RlZFN0eWxlVGV4dCA9IGBcbiAgICAvKiBwYWRkaW5nLWxlZnQ6IDJl
bTsgKi9cbiAgICAvKiBwYWRkaW5nLXJpZ2h0OiAwcHg7ICovXG5gOwogICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGV4cGVjdGVkU3R5
bGVUZXh0LCBgU3R5bGUgZGVjbGFyYXRpb24gdGV4dCBzaG91bGQgdXBkYXRlIGltbWVkaWF0ZWx5
IHdpdGggY29tbWVudGVkIG91dCBwcm9wZXJ0eS5gKTsKIAogICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RUaGF0KCFnZXRQcm9wZXJ0eSgicGFkZGluZy1yaWdodCIpLmVuYWJsZWQsIGBD
b21tZW50ZWQgb3V0IHByb3BlcnR5IHNob3VsZCBiZSBkaXNhYmxlZC5gKTsKQEAgLTI5MCw3ICsy
ODksNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgbGV0IGRpc2FibGVkID0gZmFs
c2U7CiAgICAgICAgICAgICBnZXRQcm9wZXJ0eSgiZm9udC1zaXplIikuY29tbWVudE91dChkaXNh
YmxlZCk7CiAKLSAgICAgICAgICAgIGxldCBleHBlY3RlZFN0eWxlVGV4dCA9IGBmb250LXNpemU6
IDEzcHg7Lypib3JkZXI6IDJweCBzb2xpZCBicm93biovYDsKKyAgICAgICAgICAgIGxldCBleHBl
Y3RlZFN0eWxlVGV4dCA9IGBcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgLyogYm9yZGVyOiAy
cHggc29saWQgYnJvd247ICovXG5gOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RF
cXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGV4cGVjdGVkU3R5bGVUZXh0LCBgU3R5bGUgZGVj
bGFyYXRpb24gdGV4dCBzaG91bGQgdXBkYXRlIGltbWVkaWF0ZWx5IHdpdGggdW5jb21tZW50ZWQg
cHJvcGVydHkuYCk7CiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChnZXRQ
cm9wZXJ0eSgiZm9udC1zaXplIikuZW5hYmxlZCwgYFVuY29tbWVudGVkIHByb3BlcnR5IHNob3Vs
ZCBiZSBlbmFibGVkLmApOwpAQCAtMjk5LDcgKzI5OCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAg
ICAgICAgICAgICBkaXNhYmxlZCA9IGZhbHNlOwogICAgICAgICAgICAgZ2V0UHJvcGVydHkoImJv
cmRlciIpLmNvbW1lbnRPdXQoZGlzYWJsZWQpOwogCi0gICAgICAgICAgICBleHBlY3RlZFN0eWxl
VGV4dCA9IGBmb250LXNpemU6IDEzcHg7Ym9yZGVyOiAycHggc29saWQgYnJvd25gOworICAgICAg
ICAgICAgZXhwZWN0ZWRTdHlsZVRleHQgPSBgXG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGJv
cmRlcjogMnB4IHNvbGlkIGJyb3duO1xuYDsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0LCBleHBlY3RlZFN0eWxlVGV4dCwgYFN0eWxl
IGRlY2xhcmF0aW9uIHRleHQgc2hvdWxkIHVwZGF0ZSBpbW1lZGlhdGVseSB3aXRoIGNvbW1lbnRl
ZCBvdXQgcHJvcGVydHkuYCk7CiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhh
dChnZXRQcm9wZXJ0eSgiYm9yZGVyIikuZW5hYmxlZCwgYFVuY29tbWVudGVkIHByb3BlcnR5IHNo
b3VsZCBiZSBlbmFibGVkLmApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nz
cy9tb2RpZnktaW5saW5lLXN0eWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jc3MvbW9kaWZ5LWlubGluZS1zdHlsZS1leHBlY3RlZC50eHQKaW5kZXggMzk3Y2E2NjMwNWY3
Li40MTIzNWVmYjE4OWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9k
aWZ5LWlubGluZS1zdHlsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2Nzcy9tb2RpZnktaW5saW5lLXN0eWxlLWV4cGVjdGVkLnR4dApAQCAtNywxMiArNywxMiBAQCBD
U1NQcm9wZXJ0eSBjaGFuZ2VkIHRvICJmb250OiAxMnB4IG5vcm1hbCBzYW5zLXNlcmlmIWltcG9y
dGFudDsiLgogZm9udDogMTJweCBub3JtYWwgc2Fucy1zZXJpZiFpbXBvcnRhbnQ7CiAKIENTU1By
b3BlcnR5IGNoYW5nZWQgdG8gImNvbG9yOiByZWQ7Ii4KLWZvbnQ6IDEycHggbm9ybWFsIHNhbnMt
c2VyaWYhaW1wb3J0YW50O2NvbG9yOiByZWQ7Citmb250OiAxMnB4IG5vcm1hbCBzYW5zLXNlcmlm
IWltcG9ydGFudDsgY29sb3I6IHJlZDsKIAogQ1NTUHJvcGVydHkgY2hhbmdlZCB0byAiZm9udDog
MTJweCBzYW5zLXNlcmlmOyIuCi1mb250OiAxMnB4IHNhbnMtc2VyaWY7Y29sb3I6IHJlZDsKK2Zv
bnQ6IDEycHggc2Fucy1zZXJpZjsgY29sb3I6IHJlZDsKIAogQ1NTUHJvcGVydHkgY2hhbmdlZCB0
byAiY29sb3I6IGludmFsaWRfYzAxMHI7Ii4KLWZvbnQ6IDEycHggc2Fucy1zZXJpZjtjb2xvcjog
aW52YWxpZF9jMDEwcjsKK2ZvbnQ6IDEycHggc2Fucy1zZXJpZjsgY29sb3I6IGludmFsaWRfYzAx
MHI7CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggMmI1ODcxMjE4NTNhLi4xMmViODk5
YzgzZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTA1
LTE5ICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IFN0eWxlczogZm9ybWF0IHN0eWxlIGRlY2xhcmF0aW9ucyBhZnRlciBlZGl0
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg4
MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1MTg1MDYwPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluZGVudCBDU1MgcHJvcGVydGllcyB3aXRo
IHNwYWNlcy90YWJzIHNldCBpbiBXZWIgSW5zcGVjdG9yIHNldHRpbmdzLiBJbmNyZXNlIGluZGVu
dGF0aW9uIGxldmVsIHdoZW4gQ1NTIHJ1bGVzIGFyZQorICAgICAgICBpbnNpZGUgb2YgYXQtcnVs
ZXMgKGUuZy4gQG1lZGlhLCBAa2V5ZnJhbWVzLCBAc3VwcG9ydHMpLgorCisgICAgICAgIERvbid0
IGluZGVudCBDU1MgcHJvcGVydGllcyBpbiBzdHlsZSBhdHRyaWJ1dGVzLiBLZWVwIHRoZW0gb24g
dGhlIHNpbmdsZSBsaW5lLCBzZXBhcmF0ZWQgYnkgYSBzcGFjZSBjaGFyYWN0ZXI6CisKKyAgICAg
ICAgICAgIHN0eWxlPSJmb250LXNpemU6IDEycHg7IGNvbG9yOiBibGFjazsiCisKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL01vZGVscy9DU1NQcm9wZXJ0eS5qczoKKyAgICAgICAgKFdJLkNTU1By
b3BlcnR5LnByb3RvdHlwZS5yZXBsYWNlV2l0aFRleHQpOgorICAgICAgICBJbnRyb2R1Y2UgYF9w
ZW5kaW5nVGV4dGAgcHJvcGVydHkuIEl0J3Mgb25seSBzZXQgd2hlbiBwYXN0aW5nIENTUyBwcm9w
ZXJ0eSB0ZXh0IGludG8gdGhlIENTUyBwcm9wZXJ0eSBuYW1lIGZpZWxkLgorCisgICAgICAgIChX
SS5DU1NQcm9wZXJ0eS5wcm90b3R5cGUuc2V0IHRleHQpOgorICAgICAgICAoV0kuQ1NTUHJvcGVy
dHkucHJvdG90eXBlLmdldCBmb3JtYXR0ZWRUZXh0KToKKworICAgICAgICAoV0kuQ1NTUHJvcGVy
dHkucHJvdG90eXBlLl91cGRhdGVTdHlsZVRleHQpOgorICAgICAgICAoV0kuQ1NTUHJvcGVydHku
cHJvdG90eXBlLl91cGRhdGVPd25lclN0eWxlVGV4dCk6CisgICAgICAgIChXSS5DU1NQcm9wZXJ0
eS5wcm90b3R5cGUuX3ByZXBlbmRTZW1pY29sb25JZk5lZWRlZCk6IERlbGV0ZWQuCisgICAgICAg
IEdyZWF0bHkgc2ltcGxpZnkgdGhlIGxvZ2ljIG5vdyB0aGF0IHdlIHNhdmUgZm9ybWF0dGVkIHRl
eHQgYW5kIGRvbid0IG1vZGlmeSBzdHlsZVRleHQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L01vZGVscy9DU1NTdHlsZURlY2xhcmF0aW9uLmpzOgorICAgICAgICAoV0kuQ1NTU3R5bGVEZWNs
YXJhdGlvbi5wcm90b3R5cGUucmVtb3ZlUHJvcGVydHkpOiBSZW5hbWVkIGZyb20gJ3NoaWZ0UHJv
cGVydGllc0FmdGVyJy4KKyAgICAgICAgUmVtb2RlIHVubmVjZXNzYXJ5IGNvZGUgdGhhdCBtb2Rp
ZmllcyBgX3N0eWxlU2hlZXRUZXh0UmFuZ2VgLiBUaGUgYmFja2VuZCBzZW5kcyBuZXcgYF9zdHls
ZVNoZWV0VGV4dFJhbmdlYCBkYXRhCisgICAgICAgIHVub24gYSBjaGFuZ2UuCisKKyAgICAgICAg
KFdJLkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlLmdlbmVyYXRlRm9ybWF0dGVkVGV4dCk6
CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9UZXh0UmFuZ2UuanM6CisgICAgICAg
IChXSS5UZXh0UmFuZ2UpOgorICAgICAgICAoV0kuVGV4dFJhbmdlLnByb3RvdHlwZS5jbG9uZUFu
ZE1vZGlmeSk6IERlbGV0ZWQuCisgICAgICAgIChXSS5UZXh0UmFuZ2UucHJvdG90eXBlLnJlbGF0
aXZlVG8pOiBEZWxldGVkLgorICAgICAgICBSZW1vdmUgdW51c2VkIGNvZGUuCisKIDIwMjEtMDUt
MDQgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IGFkZCBhc3NlcnRpb24gZm9yIGBXSS5WaWV3YCByZS1lbnRyYW5jeQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3Bl
cnR5LmpzCmluZGV4IDI3OGE2NzE1NDhiZC4uZmU3MDIyODdmNWZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTUHJvcGVydHkuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5
LmpzCkBAIC0xNTUsNyArMTU1LDkgQEAgV0kuQ1NTUHJvcGVydHkgPSBjbGFzcyBDU1NQcm9wZXJ0
eSBleHRlbmRzIFdJLk9iamVjdAogICAgIHsKICAgICAgICAgdGhpcy5fbWFya01vZGlmaWVkKCk7
CiAKLSAgICAgICAgdGhpcy5fdXBkYXRlT3duZXJTdHlsZVRleHQodGhpcy5fdGV4dCwgdGV4dCwg
dHJ1ZSk7CisgICAgICAgIHRoaXMuX3BlbmRpbmdUZXh0ID0gdGV4dDsKKyAgICAgICAgdGhpcy5f
dXBkYXRlT3duZXJTdHlsZVRleHQoKTsKKyAgICAgICAgdGhpcy5fcGVuZGluZ1RleHQgPSBudWxs
OwogICAgIH0KIAogICAgIGNvbW1lbnRPdXQoZGlzYWJsZWQpCkBAIC0xODQsMTIgKzE4NiwxNSBA
QCBXSS5DU1NQcm9wZXJ0eSA9IGNsYXNzIENTU1Byb3BlcnR5IGV4dGVuZHMgV0kuT2JqZWN0CiAg
ICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgdGhpcy5fbWFya01vZGlmaWVkKCk7Ci0gICAg
ICAgIHRoaXMuX3VwZGF0ZU93bmVyU3R5bGVUZXh0KHRoaXMuX3RleHQsIG5ld1RleHQpOworICAg
ICAgICB0aGlzLl91cGRhdGVPd25lclN0eWxlVGV4dCgpOwogICAgICAgICB0aGlzLl90ZXh0ID0g
bmV3VGV4dDsKICAgICB9CiAKICAgICBnZXQgZm9ybWF0dGVkVGV4dCgpCiAgICAgeworICAgICAg
ICBpZiAodGhpcy5fcGVuZGluZ1RleHQpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fcGVuZGlu
Z1RleHQudHJpbSgpOworCiAgICAgICAgIGlmICghdGhpcy5fbmFtZSkKICAgICAgICAgICAgIHJl
dHVybiAiIjsKIApAQCAtNDY4LDc0ICs0NzMsMjQgQEAgV0kuQ1NTUHJvcGVydHkgPSBjbGFzcyBD
U1NQcm9wZXJ0eSBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgdGV4dCA9IHRoaXMuX25h
bWUgKyAiOiAiICsgdmFsdWUgKyAiOyI7CiAgICAgICAgIH0KIAotICAgICAgICBsZXQgb2xkVGV4
dCA9IHRoaXMuX3RleHQ7CiAgICAgICAgIHRoaXMuX3RleHQgPSB0ZXh0OwotICAgICAgICB0aGlz
Ll91cGRhdGVPd25lclN0eWxlVGV4dChvbGRUZXh0LCB0aGlzLl90ZXh0LCBmb3JjZVJlbW92ZSk7
CisKKyAgICAgICAgaWYgKGZvcmNlUmVtb3ZlKQorICAgICAgICAgICAgdGhpcy5fb3duZXJTdHls
ZS5yZW1vdmVQcm9wZXJ0eSh0aGlzKTsKKworICAgICAgICB0aGlzLl91cGRhdGVPd25lclN0eWxl
VGV4dChmb3JjZVJlbW92ZSk7CiAgICAgfQogCi0gICAgX3VwZGF0ZU93bmVyU3R5bGVUZXh0KG9s
ZFRleHQsIG5ld1RleHQsIGZvcmNlUmVtb3ZlID0gZmFsc2UpCisgICAgX3VwZGF0ZU93bmVyU3R5
bGVUZXh0KCkKICAgICB7Ci0gICAgICAgIGlmIChvbGRUZXh0ID09PSBuZXdUZXh0KSB7Ci0gICAg
ICAgICAgICBpZiAoZm9yY2VSZW1vdmUpIHsKLSAgICAgICAgICAgICAgICBjb25zdCBsaW5lRGVs
dGEgPSAwOwotICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbkRlbHRhID0gMDsKLSAgICAgICAg
ICAgICAgICB0aGlzLl9vd25lclN0eWxlLnNoaWZ0UHJvcGVydGllc0FmdGVyKHRoaXMsIGxpbmVE
ZWx0YSwgY29sdW1uRGVsdGEsIGZvcmNlUmVtb3ZlKTsKLSAgICAgICAgICAgICAgICB0aGlzLl9v
d25lclN0eWxlLnVwZGF0ZVByb3BlcnRpZXNNb2RpZmllZFN0YXRlKCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQogICAgICAgICBjb25zb2xlLmFzc2Vy
dCh0aGlzLl9vd25lclN0eWxlKTsKICAgICAgICAgaWYgKCF0aGlzLl9vd25lclN0eWxlKQogICAg
ICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHRoaXMuX3ByZXBlbmRTZW1pY29sb25JZk5lZWRl
ZCgpOwotCi0gICAgICAgIGxldCBzdHlsZVRleHQgPSB0aGlzLl9vd25lclN0eWxlLnRleHQgfHwg
IiI7Ci0KLSAgICAgICAgLy8gX3N0eWxlU2hlZXRUZXh0UmFuZ2UgaXMgdGhlIHBvc2l0aW9uIG9m
IHRoZSBwcm9wZXJ0eSB3aXRoaW4gdGhlIHN0eWxlc2hlZXQuCi0gICAgICAgIC8vIHJhbmdlIGlz
IHRoZSBwb3NpdGlvbiBvZiB0aGUgcHJvcGVydHkgd2l0aGluIHRoZSBydWxlLgotICAgICAgICBs
ZXQgcmFuZ2UgPSB0aGlzLl9zdHlsZVNoZWV0VGV4dFJhbmdlLnJlbGF0aXZlVG8odGhpcy5fb3du
ZXJTdHlsZS5zdHlsZVNoZWV0VGV4dFJhbmdlLnN0YXJ0TGluZSwgdGhpcy5fb3duZXJTdHlsZS5z
dHlsZVNoZWV0VGV4dFJhbmdlLnN0YXJ0Q29sdW1uKTsKLQotICAgICAgICAvLyBBcHBlbmQgYSBs
aW5lIGJyZWFrIHRvIGNvdW50IHRoZSBsYXN0IGxpbmUgb2Ygc3R5bGVUZXh0IHRvd2FyZHMgZW5k
T2Zmc2V0LgotICAgICAgICByYW5nZS5yZXNvbHZlT2Zmc2V0cyhzdHlsZVRleHQgKyAiXG4iKTsK
LQotICAgICAgICBjb25zb2xlLmFzc2VydChvbGRUZXh0ID09PSBzdHlsZVRleHQuc2xpY2UocmFu
Z2Uuc3RhcnRPZmZzZXQsIHJhbmdlLmVuZE9mZnNldCksICJfc3R5bGVTaGVldFRleHRSYW5nZSBk
YXRhIGlzIGludmFsaWQuIik7Ci0KLSAgICAgICAgaWYgKFdJLnNldHRpbmdzLmRlYnVnRW5hYmxl
U3R5bGVFZGl0aW5nRGVidWdNb2RlLnZhbHVlKSB7Ci0gICAgICAgICAgICBsZXQgcHJlZml4ID0g
c3R5bGVUZXh0LnNsaWNlKDAsIHJhbmdlLnN0YXJ0T2Zmc2V0KTsKLSAgICAgICAgICAgIGxldCBw
b3N0Zml4ID0gc3R5bGVUZXh0LnNsaWNlKHJhbmdlLmVuZE9mZnNldCk7Ci0gICAgICAgICAgICBj
b25zb2xlLmluZm8oYCR7cHJlZml4fSVjJHtvbGRUZXh0fSVjJHtuZXdUZXh0fSVjJHtwb3N0Zml4
fWAsIGBiYWNrZ3JvdW5kOiBoc2woMzU2LCAxMDAlLCA5MCUpOyBjb2xvcjogYmxhY2tgLCBgYmFj
a2dyb3VuZDogaHNsKDEwMCwgMTAwJSwgOTElKTsgY29sb3I6IGJsYWNrYCwgYGJhY2tncm91bmQ6
IHRyYW5zcGFyZW50YCk7Ci0gICAgICAgIH0KLQotICAgICAgICBsZXQgbmV3U3R5bGVUZXh0ID0g
c3R5bGVUZXh0LnNsaWNlKDAsIHJhbmdlLnN0YXJ0T2Zmc2V0KSArIG5ld1RleHQgKyBzdHlsZVRl
eHQuc2xpY2UocmFuZ2UuZW5kT2Zmc2V0KTsKLQotICAgICAgICBsZXQgbGluZURlbHRhID0gbmV3
VGV4dC5saW5lQ291bnQgLSBvbGRUZXh0LmxpbmVDb3VudDsKLSAgICAgICAgbGV0IGNvbHVtbkRl
bHRhID0gbmV3VGV4dC5sYXN0TGluZS5sZW5ndGggLSBvbGRUZXh0Lmxhc3RMaW5lLmxlbmd0aDsK
LSAgICAgICAgdGhpcy5fc3R5bGVTaGVldFRleHRSYW5nZSA9IHRoaXMuX3N0eWxlU2hlZXRUZXh0
UmFuZ2UuY2xvbmVBbmRNb2RpZnkoMCwgMCwgbGluZURlbHRhLCBjb2x1bW5EZWx0YSk7Ci0KLSAg
ICAgICAgdGhpcy5fb3duZXJTdHlsZS50ZXh0ID0gbmV3U3R5bGVUZXh0OwotCi0gICAgICAgIGxl
dCBwcm9wZXJ0eVdhc1JlbW92ZWQgPSAhbmV3VGV4dDsKLSAgICAgICAgdGhpcy5fb3duZXJTdHls
ZS5zaGlmdFByb3BlcnRpZXNBZnRlcih0aGlzLCBsaW5lRGVsdGEsIGNvbHVtbkRlbHRhLCBwcm9w
ZXJ0eVdhc1JlbW92ZWQpOworICAgICAgICB0aGlzLl9vd25lclN0eWxlLnRleHQgPSB0aGlzLl9v
d25lclN0eWxlLmdlbmVyYXRlRm9ybWF0dGVkVGV4dCgpOwogICAgICAgICB0aGlzLl9vd25lclN0
eWxlLnVwZGF0ZVByb3BlcnRpZXNNb2RpZmllZFN0YXRlKCk7CiAgICAgfQogCi0gICAgX3ByZXBl
bmRTZW1pY29sb25JZk5lZWRlZCgpCi0gICAgewotICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5p
bmRleCAtIDE7IGkgPj0gMDsgLS1pKSB7Ci0gICAgICAgICAgICBsZXQgcHJvcGVydHkgPSB0aGlz
Ll9vd25lclN0eWxlLnByb3BlcnRpZXNbaV07Ci0gICAgICAgICAgICBpZiAoIXByb3BlcnR5LmVu
YWJsZWQpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIGxldCBtYXRj
aCA9IHByb3BlcnR5LnRleHQubWF0Y2goL1teO1xzXShccyopJC8pOwotICAgICAgICAgICAgaWYg
KG1hdGNoKQotICAgICAgICAgICAgICAgIHByb3BlcnR5LnRleHQgPSBwcm9wZXJ0eS50ZXh0LnRy
aW1SaWdodCgpICsgIjsiICsgbWF0Y2hbMV07Ci0KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICB9Ci0gICAgfQotCiAgICAgX21hcmtNb2RpZmllZCgpCiAgICAgewogICAgICAgICBpZiAodGhp
cy5fb3duZXJTdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9DU1NTdHlsZURlY2xhcmF0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1N0eWxlRGVjbGFyYXRpb24uanMKaW5kZXggNzA5
MTAxZjQyYTg3Li4yZDc3MGU4MDQ0ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NTdHlsZURlY2xhcmF0aW9uLmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NTdHlsZURlY2xhcmF0aW9u
LmpzCkBAIC00NDUsMzIgKzQ0NSwxNCBAQCBXSS5DU1NTdHlsZURlY2xhcmF0aW9uID0gY2xhc3Mg
Q1NTU3R5bGVEZWNsYXJhdGlvbiBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBXSS5jc3NNYW5h
Z2VyLmFkZE1vZGlmaWVkU3R5bGUodGhpcyk7CiAgICAgfQogCi0gICAgc2hpZnRQcm9wZXJ0aWVz
QWZ0ZXIoY3NzUHJvcGVydHksIGxpbmVEZWx0YSwgY29sdW1uRGVsdGEsIHByb3BlcnR5V2FzUmVt
b3ZlZCkKKyAgICByZW1vdmVQcm9wZXJ0eShjc3NQcm9wZXJ0eSkKICAgICB7CiAgICAgICAgIC8v
IGNzc1Byb3BlcnR5LmluZGV4IGNvdWxkIGJlIHNldCB0byBOYU4gYnkgV0kuQ1NTU3R5bGVEZWNs
YXJhdGlvbi5wcm90b3R5cGUudXBkYXRlLgogICAgICAgICBsZXQgcmVhbEluZGV4ID0gdGhpcy5f
cHJvcGVydGllcy5pbmRleE9mKGNzc1Byb3BlcnR5KTsKICAgICAgICAgaWYgKHJlYWxJbmRleCA9
PT0gLTEpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbGV0IGVuZExpbmUgPSBjc3NQ
cm9wZXJ0eS5zdHlsZVNoZWV0VGV4dFJhbmdlLmVuZExpbmU7Ci0KLSAgICAgICAgZm9yIChsZXQg
aSA9IHJlYWxJbmRleCArIDE7IGkgPCB0aGlzLl9wcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7Ci0g
ICAgICAgICAgICBsZXQgcHJvcGVydHkgPSB0aGlzLl9wcm9wZXJ0aWVzW2ldOwotCi0gICAgICAg
ICAgICBpZiAocHJvcGVydHkuX3N0eWxlU2hlZXRUZXh0UmFuZ2UpIHsKLSAgICAgICAgICAgICAg
ICBpZiAocHJvcGVydHkuc3R5bGVTaGVldFRleHRSYW5nZS5zdGFydExpbmUgPT09IGVuZExpbmUp
IHsKLSAgICAgICAgICAgICAgICAgICAgLy8gT25seSB1cGRhdGUgY29sdW1uIGRhdGEgaWYgaXQn
cyBvbiB0aGUgc2FtZSBsaW5lLgotICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eS5fc3R5bGVT
aGVldFRleHRSYW5nZSA9IHByb3BlcnR5Ll9zdHlsZVNoZWV0VGV4dFJhbmdlLmNsb25lQW5kTW9k
aWZ5KGxpbmVEZWx0YSwgY29sdW1uRGVsdGEsIGxpbmVEZWx0YSwgY29sdW1uRGVsdGEpOwotICAg
ICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eS5fc3R5bGVT
aGVldFRleHRSYW5nZSA9IHByb3BlcnR5Ll9zdHlsZVNoZWV0VGV4dFJhbmdlLmNsb25lQW5kTW9k
aWZ5KGxpbmVEZWx0YSwgMCwgbGluZURlbHRhLCAwKTsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgaWYgKHByb3BlcnR5V2FzUmVtb3ZlZCAmJiAhaXNOYU4ocHJvcGVydHkuX2luZGV4KSkK
LSAgICAgICAgICAgICAgICBwcm9wZXJ0eS5faW5kZXgtLTsKLSAgICAgICAgfQotCi0gICAgICAg
IGlmIChwcm9wZXJ0eVdhc1JlbW92ZWQpCi0gICAgICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzLnNw
bGljZShyZWFsSW5kZXgsIDEpOworICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzLnNwbGljZShyZWFs
SW5kZXgsIDEpOwogCiAgICAgICAgIC8vIEludmFsaWRhdGUgY2FjaGVkIHByb3BlcnRpZXMuCiAg
ICAgICAgIHRoaXMuX2VuYWJsZWRQcm9wZXJ0aWVzID0gbnVsbDsKQEAgLTUyOSw2ICs1MTEsMzAg
QEAgV0kuQ1NTU3R5bGVEZWNsYXJhdGlvbiA9IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb24gZXh0
ZW5kcyBXSS5PYmplY3QKICAgICAgICAgcmV0dXJuIHN0eWxlVGV4dDsKICAgICB9CiAKKyAgICBn
ZW5lcmF0ZUZvcm1hdHRlZFRleHQoKQorICAgIHsKKyAgICAgICAgbGV0IHZpc2libGVQcm9wZXJ0
aWVzID0gdGhpcy52aXNpYmxlUHJvcGVydGllczsKKyAgICAgICAgaWYgKCF2aXNpYmxlUHJvcGVy
dGllcy5sZW5ndGgpCisgICAgICAgICAgICByZXR1cm4gIiI7CisKKyAgICAgICAgaWYgKHRoaXMu
X3R5cGUgIT09IFdJLkNTU1N0eWxlRGVjbGFyYXRpb24uVHlwZS5SdWxlKQorICAgICAgICAgICAg
cmV0dXJuIHZpc2libGVQcm9wZXJ0aWVzLm1hcCgocHJvcGVydHkpID0+IHByb3BlcnR5LmZvcm1h
dHRlZFRleHQpLmpvaW4oIiAiKTsKKworICAgICAgICBsZXQgc3R5bGVUZXh0ID0gIiI7CisgICAg
ICAgIGxldCBncm91cGluZ3MgPSB0aGlzLmdyb3VwaW5ncy5maWx0ZXIoKGdyb3VwaW5nKSA9PiBn
cm91cGluZy50ZXh0ICE9PSAiYWxsIik7CisgICAgICAgIGxldCBpbmRlbnRhdGlvbkxldmVsID0g
Z3JvdXBpbmdzLmxlbmd0aDsKKyAgICAgICAgbGV0IGluZGVudFN0cmluZyA9IFdJLmluZGVudFN0
cmluZygpOworICAgICAgICBsZXQgcHJvcGVydHlJbmRlbnQgPSBpbmRlbnRTdHJpbmcucmVwZWF0
KGluZGVudGF0aW9uTGV2ZWwgKyAxKTsKKworICAgICAgICBmb3IgKGxldCBwcm9wZXJ0eSBvZiB2
aXNpYmxlUHJvcGVydGllcykKKyAgICAgICAgICAgIHN0eWxlVGV4dCArPSAiXG4iICsgcHJvcGVy
dHlJbmRlbnQgKyBwcm9wZXJ0eS5mb3JtYXR0ZWRUZXh0OworCisgICAgICAgIC8vIEluZGVudCB0
aGUgY2xvc2luZyAifSIgZm9yIG5lc3RlZCBydWxlcy4KKyAgICAgICAgc3R5bGVUZXh0ICs9ICJc
biIgKyBpbmRlbnRTdHJpbmcucmVwZWF0KGluZGVudGF0aW9uTGV2ZWwpOworCisgICAgICAgIHJl
dHVybiBzdHlsZVRleHQ7CisgICAgfQorCiAgICAgLy8gUHJvdGVjdGVkCiAKICAgICBnZXQgbm9k
ZVN0eWxlcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvVGV4dFJhbmdlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL1RleHRSYW5nZS5qcwppbmRleCA2YTZlN2EwNTFmNzQuLjRiMmYyZGIyMWI1OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Rl
eHRSYW5nZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvVGV4dFJhbmdlLmpzCkBAIC0xMjMsMTkgKzEyMyw2IEBAIFdJLlRleHRSYW5nZSA9IGNsYXNz
IFRleHRSYW5nZQogICAgICAgICByZXR1cm4gbmV3IFdJLlRleHRSYW5nZSh0aGlzLl9zdGFydExp
bmUsIHRoaXMuX3N0YXJ0Q29sdW1uLCB0aGlzLl9lbmRMaW5lLCB0aGlzLl9lbmRDb2x1bW4pOwog
ICAgIH0KIAotICAgIGNsb25lQW5kTW9kaWZ5KGRlbHRhU3RhcnRMaW5lLCBkZWx0YVN0YXJ0Q29s
dW1uLCBkZWx0YUVuZExpbmUsIGRlbHRhRW5kQ29sdW1uKQotICAgIHsKLSAgICAgICAgY29uc29s
ZS5hc3NlcnQoIWlzTmFOKHRoaXMuX3N0YXJ0TGluZSksICJUZXh0UmFuZ2UgbmVlZHMgbGluZS9j
b2x1bW4gZGF0YS4iKTsKLQotICAgICAgICBsZXQgc3RhcnRMaW5lID0gdGhpcy5fc3RhcnRMaW5l
ICsgZGVsdGFTdGFydExpbmU7Ci0gICAgICAgIGxldCBzdGFydENvbHVtbiA9IHRoaXMuX3N0YXJ0
Q29sdW1uICsgZGVsdGFTdGFydENvbHVtbjsKLSAgICAgICAgbGV0IGVuZExpbmUgPSB0aGlzLl9l
bmRMaW5lICsgZGVsdGFFbmRMaW5lOwotICAgICAgICBsZXQgZW5kQ29sdW1uID0gdGhpcy5fZW5k
Q29sdW1uICsgZGVsdGFFbmRDb2x1bW47Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHN0YXJ0TGlu
ZSA+PSAwICYmIHN0YXJ0Q29sdW1uID49IDAgJiYgZW5kTGluZSA+PSAwICYmIGVuZENvbHVtbiA+
PSAwLCBgQ2Fubm90IGhhdmUgbmVnYXRpdmUgbnVtYmVycyBpbiBUZXh0UmFuZ2UgJHtzdGFydExp
bmV9OiR7c3RhcnRDb2x1bW59Li4uJHtlbmRMaW5lfToke2VuZENvbHVtbn1gKTsKLQotICAgICAg
ICByZXR1cm4gbmV3IFdJLlRleHRSYW5nZShzdGFydExpbmUsIHN0YXJ0Q29sdW1uLCBlbmRMaW5l
LCBlbmRDb2x1bW4pOwotICAgIH0KLQogICAgIGNvbGxhcHNlVG9TdGFydCgpCiAgICAgewogICAg
ICAgICBjb25zb2xlLmFzc2VydCghaXNOYU4odGhpcy5fc3RhcnRMaW5lKSwgIlRleHRSYW5nZSBu
ZWVkcyBsaW5lL2NvbHVtbiBkYXRhLiIpOwpAQCAtMTQ3LDE3ICsxMzQsNCBAQCBXSS5UZXh0UmFu
Z2UgPSBjbGFzcyBUZXh0UmFuZ2UKICAgICAgICAgY29uc29sZS5hc3NlcnQoIWlzTmFOKHRoaXMu
X2VuZExpbmUpLCAiVGV4dFJhbmdlIG5lZWRzIGxpbmUvY29sdW1uIGRhdGEuIik7CiAgICAgICAg
IHJldHVybiBuZXcgV0kuVGV4dFJhbmdlKHRoaXMuX2VuZExpbmUsIHRoaXMuX2VuZENvbHVtbiwg
dGhpcy5fZW5kTGluZSwgdGhpcy5fZW5kQ29sdW1uKTsKICAgICB9Ci0KLSAgICByZWxhdGl2ZVRv
KGxpbmUsIGNvbHVtbikKLSAgICB7Ci0gICAgICAgIGxldCBkZWx0YVN0YXJ0Q29sdW1uID0gMDsK
LSAgICAgICAgaWYgKHRoaXMuX3N0YXJ0TGluZSA9PT0gbGluZSkKLSAgICAgICAgICAgIGRlbHRh
U3RhcnRDb2x1bW4gPSAtY29sdW1uOwotCi0gICAgICAgIGxldCBkZWx0YUVuZENvbHVtbiA9IDA7
Ci0gICAgICAgIGlmICh0aGlzLl9lbmRMaW5lID09PSBsaW5lKQotICAgICAgICAgICAgZGVsdGFF
bmRDb2x1bW4gPSAtY29sdW1uOwotCi0gICAgICAgIHJldHVybiB0aGlzLmNsb25lQW5kTW9kaWZ5
KC1saW5lLCBkZWx0YVN0YXJ0Q29sdW1uLCAtbGluZSwgZGVsdGFFbmRDb2x1bW4pOwotICAgIH0K
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvZXhwZXJpbWVudHMvbWVkaWEt
d2lkdGguY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL2V4cGVyaW1lbnRzL21lZGlhLXdpZHRo
LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmU2OWRlMjliYjJk
MQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429078</attachid>
            <date>2021-05-19 11:30:23 -0700</date>
            <delta_ts>2021-06-02 13:06:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>20011</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1YTFkZDdlN2VlMzguLmZlMzFjOTA5OGEzMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIxLTA1LTE5ICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IFN0eWxlczogZm9ybWF0IHN0eWxlIGRlY2xhcmF0aW9ucyBh
ZnRlciBlZGl0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzg4MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1MTg1MDYwPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluZGVudCB0ZXh0IG9mIGV4
cGVjdGVkIENTUyBwcm9wZXJ0aWVzLgorCisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9hZGQtY3Nz
LXByb3BlcnR5Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9tb2RpZnktY3NzLXByb3Bl
cnR5Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9tb2RpZnktaW5saW5lLXN0eWxlLWV4
cGVjdGVkLnR4dDoKKwogMjAyMS0wNS0wNiAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gVW5yZXZpZXdlZCB0ZXN0IGdhcmRlbmluZy4g
RW1pdCBwbGF0Zm9ybSBiYXNlbGluZXMgYWZ0ZXIgcjI3NzA3MS4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jc3MvYWRkLWNzcy1wcm9wZXJ0eS5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2Nzcy9hZGQtY3NzLXByb3BlcnR5Lmh0bWwKaW5kZXggNDU1YTk1ZDRlNzNiLi5m
NWRmOTUzMTQyY2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvYWRkLWNz
cy1wcm9wZXJ0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvYWRkLWNzcy1w
cm9wZXJ0eS5odG1sCkBAIC0yNyw3ICsyNyw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAg
ICAgICBuZXdQcm9wZXJ0eS5uYW1lID0gImNvbG9yIjsKICAgICAgICAgICAgIG5ld1Byb3BlcnR5
LnJhd1ZhbHVlID0gImdyZWVuIjsKIAotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RF
cXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGBmb250LXNpemU6IDE0cHg7Y29sb3I6IGdyZWVu
O2AsICJgY29sb3I6IGdyZWVuYCBwcm9wZXJ0eSBzaG91bGQgYmUgYXBwZW5kZWQuIik7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlRGVjbGFyYXRpb24udGV4dCwg
YFxuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogZ3JlZW47XG5gLCAiYGNvbG9yOiBn
cmVlbmAgcHJvcGVydHkgc2hvdWxkIGJlIGFwcGVuZGVkLiIpOwogCiAgICAgICAgICAgICBzdHls
ZURlY2xhcmF0aW9uLmxvY2tlZCA9IGZhbHNlOwogICAgICAgICAgICAgcmVzb2x2ZSgpOwpAQCAt
NDMsNyArNDMsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgbmV3UHJvcGVydHku
bmFtZSA9ICJjb2xvciI7CiAgICAgICAgICAgICBuZXdQcm9wZXJ0eS5yYXdWYWx1ZSA9ICJncmVl
biI7CiAKLSAgICAgICAgICAgIGxldCBleHBlY3RlZCA9IGBjb2xvcjogZ3JlZW47XG4gICAgb3V0
bGluZTogMnB4IHNvbGlkIGJyb3duO1xuYDsKKyAgICAgICAgICAgIGxldCBleHBlY3RlZCA9IGBc
biAgICBjb2xvcjogZ3JlZW47XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIGJyb3duO1xuYDsKICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0
LCBleHBlY3RlZCwgImBjb2xvcjogZ3JlZW5gIHByb3BlcnR5IHNob3VsZCBiZSBpbnNlcnRlZCBi
ZWZvcmUgdGhlIGZpcnN0IHByb3BlcnR5LiIpOwogCiAgICAgICAgICAgICBzdHlsZURlY2xhcmF0
aW9uID0gZ2V0TWF0Y2hlZFN0eWxlKCIucnVsZS1iIiwgcmVzb2x2ZSk7CkBAIC01MSw3ICs1MSw3
IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICBuZXdQcm9wZXJ0eS5uYW1lID0gImRp
c3BsYXkiOwogICAgICAgICAgICAgbmV3UHJvcGVydHkucmF3VmFsdWUgPSAiYmxvY2siOwogCi0g
ICAgICAgICAgICBleHBlY3RlZCA9IGBjb2xvcjogZ3JlZW47XG4gICAgb3V0bGluZTogMnB4IHNv
bGlkIGJyb3duO2Rpc3BsYXk6IGJsb2NrO1xuYDsKKyAgICAgICAgICAgIGV4cGVjdGVkID0gYFxu
ICAgIGNvbG9yOiBncmVlbjtcbiAgICBvdXRsaW5lOiAycHggc29saWQgYnJvd247XG4gICAgZGlz
cGxheTogYmxvY2s7XG5gOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChz
dHlsZURlY2xhcmF0aW9uLnRleHQsIGV4cGVjdGVkLCAiYGRpc3BsYXk6IGJsb2NrYCBwcm9wZXJ0
eSBzaG91bGQgYmUgYXBwZW5kZWQgYXQgdGhlIGVuZC4iKTsKIAogICAgICAgICAgICAgc3R5bGVE
ZWNsYXJhdGlvbi5sb2NrZWQgPSBmYWxzZTsKQEAgLTY4LDcgKzY4LDcgQEAgZnVuY3Rpb24gdGVz
dCgpIHsKICAgICAgICAgICAgIG5ld1Byb3BlcnR5Lm5hbWUgPSAiZm9udC1mYW1pbHkiOwogICAg
ICAgICAgICAgbmV3UHJvcGVydHkucmF3VmFsdWUgPSAiZmFudGFzeSI7CiAKLSAgICAgICAgICAg
IGxldCBleHBlY3RlZCA9IGBcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBwZWFjaHB1ZmY7Zm9udC1m
YW1pbHk6IGZhbnRhc3k7XG4gICAgY29sb3I6IGJ1cmx5d29vZFxuYDsKKyAgICAgICAgICAgIGxl
dCBleHBlY3RlZCA9IGBcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBwZWFjaHB1ZmY7XG4gICAgZm9u
dC1mYW1pbHk6IGZhbnRhc3k7XG4gICAgY29sb3I6IGJ1cmx5d29vZDtcbmA7CiAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlRGVjbGFyYXRpb24udGV4dCwgZXhwZWN0
ZWQsICJgZm9udC1mYW1pbHk6IGZhbnRhc3lgIHByb3BlcnR5IHNob3VsZCBiZSBpbnNlcnRlZCBh
ZnRlciB0aGUgZmlyc3QgcHJvcGVydHkuIik7CiAKICAgICAgICAgICAgIHN0eWxlRGVjbGFyYXRp
b24ubG9ja2VkID0gZmFsc2U7CkBAIC04NSw3ICs4NSw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAg
ICAgICAgICAgICBuZXdQcm9wZXJ0eS5uYW1lID0gImRpc3BsYXkiOwogICAgICAgICAgICAgbmV3
UHJvcGVydHkucmF3VmFsdWUgPSAiaW5saW5lIjsKIAotICAgICAgICAgICAgY29uc3QgZXhwZWN0
ZWQgPSBgXG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIC8qIGNvbG9yOiByZWQ7ICovZGlzcGxh
eTogaW5saW5lO1xuYDsKKyAgICAgICAgICAgIGNvbnN0IGV4cGVjdGVkID0gYFxuICAgIGZvbnQt
c2l6ZTogMTRweDtcbiAgICAvKiBjb2xvcjogcmVkOyAqL1xuICAgIGRpc3BsYXk6IGlubGluZTtc
bmA7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlRGVjbGFyYXRp
b24udGV4dCwgZXhwZWN0ZWQsICJgZGlzcGxheTogaW5saW5lYCBwcm9wZXJ0eSBzaG91bGQgYmUg
YXBwZW5kZWQuIik7CiAKICAgICAgICAgICAgIHN0eWxlRGVjbGFyYXRpb24ubG9ja2VkID0gZmFs
c2U7CkBAIC0xMDIsNyArMTAyLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgIG5l
d1Byb3BlcnR5Lm5hbWUgPSAiZGlzcGxheSI7CiAgICAgICAgICAgICBuZXdQcm9wZXJ0eS5yYXdW
YWx1ZSA9ICJpbmxpbmUiOwogCi0gICAgICAgICAgICBjb25zdCBleHBlY3RlZCA9IGBcbiAgICBm
b250LXNpemU6IDE0cHg7XG4gICAgLyogY29sb3I6IHJlZCAqL2Rpc3BsYXk6IGlubGluZTtcbmA7
CisgICAgICAgICAgICBjb25zdCBleHBlY3RlZCA9IGBcbiAgICBmb250LXNpemU6IDE0cHg7XG4g
ICAgLyogY29sb3I6IHJlZDsgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmU7XG5gOwogICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGV4cGVj
dGVkLCAiYGRpc3BsYXk6IGlubGluZWAgcHJvcGVydHkgc2hvdWxkIGJlIGFwcGVuZGVkLiIpOwog
CiAgICAgICAgICAgICBzdHlsZURlY2xhcmF0aW9uLmxvY2tlZCA9IGZhbHNlOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5Lmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1jc3MtcHJvcGVydHkuaHRtbAppbmRleCAy
ODYzZjc4MjUwZGEuLjIzNGIzODU2N2I4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5Lmh0bWwKQEAgLTQ0LDcgKzQ0LDcgQEAgZnVuY3Rp
b24gdGVzdCgpIHsKIAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChnZXRQ
cm9wZXJ0eSgiZm9udC1zaXplIikucmF3VmFsdWUsICIxMHB4IiwgYCJmb250LXNpemUiIHByb3Bl
cnR5IHZhbHVlIHNob3VsZCB1cGRhdGUgaW1tZWRpYXRlbHkuYCk7CiAKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0LCBgZm9udC1zaXpl
OiAxMHB4OyBjb2xvcjogYW50aXF1ZXdoaXRlYCwgYFN0eWxlIGRlY2xhcmF0aW9uIHRleHQgc2hv
dWxkIHVwZGF0ZSBpbW1lZGlhdGVseS5gKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0LCBgXG4gICAgZm9udC1zaXplOiAxMHB4O1xu
ICAgIGNvbG9yOiBhbnRpcXVld2hpdGU7XG5gLCBgU3R5bGUgZGVjbGFyYXRpb24gdGV4dCBzaG91
bGQgdXBkYXRlIGltbWVkaWF0ZWx5LmApOwogCiAgICAgICAgICAgICByZXNvbHZlKCk7CiAgICAg
ICAgIH0KQEAgLTgwLDEyICs4MCwxMSBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChnZXRQcm9wZXJ0eSgiZm9udC1zaXplIikucmF3VmFs
dWUsICIxNnB4IiwgYCJmb250LXNpemUiIHByb3BlcnR5IHZhbHVlIHNob3VsZCB1cGRhdGUgaW1t
ZWRpYXRlbHkuYCk7CiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5
bGVEZWNsYXJhdGlvbi50ZXh0LCBgCi0gICAgICAgIGZvbnQtc2l6ZTogMTZweDsKLSAgICAgICAg
Y29sb3I6ICMzMzM7Ci0KLSAgICAgICAgbWFyZ2luLWxlZnQ6IDA7Ci0gICAgICAgIG1hcmdpbi10
b3A6IDFlbTsKLSAgICBgLCBgU3R5bGUgZGVjbGFyYXRpb24gdGV4dCBzaG91bGQgdXBkYXRlIGlt
bWVkaWF0ZWx5LmApOworICAgIGZvbnQtc2l6ZTogMTZweDsKKyAgICBjb2xvcjogIzMzMzsKKyAg
ICBtYXJnaW4tbGVmdDogMDsKKyAgICBtYXJnaW4tdG9wOiAxZW07CitgLCBgU3R5bGUgZGVjbGFy
YXRpb24gdGV4dCBzaG91bGQgdXBkYXRlIGltbWVkaWF0ZWx5LmApOwogCiAgICAgICAgICAgICBz
dHlsZURlY2xhcmF0aW9uLmxvY2tlZCA9IGZhbHNlOwogCkBAIC0yNDMsNyArMjQyLDcgQEAgZnVu
Y3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgIGxldCBkaXNhYmxlZCA9IGZhbHNlOwogICAgICAg
ICAgICAgZ2V0UHJvcGVydHkoInBhZGRpbmctcmlnaHQiKS5jb21tZW50T3V0KGRpc2FibGVkKTsK
IAotICAgICAgICAgICAgbGV0IGV4cGVjdGVkU3R5bGVUZXh0ID0gYFxuICAgICAgICAvKiBwYWRk
aW5nLWxlZnQ6IDJlbTsgKi9cbiAgICAgICAgcGFkZGluZy1yaWdodDogMHB4O1xuICAgIGA7Cisg
ICAgICAgICAgICBsZXQgZXhwZWN0ZWRTdHlsZVRleHQgPSBgXG4gICAgLyogcGFkZGluZy1sZWZ0
OiAyZW07ICovXG4gICAgcGFkZGluZy1yaWdodDogMHB4O1xuYDsKICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0LCBleHBlY3RlZFN0eWxl
VGV4dCwgYFN0eWxlIGRlY2xhcmF0aW9uIHRleHQgc2hvdWxkIHVwZGF0ZSBpbW1lZGlhdGVseSB3
aXRoIHVuY29tbWVudGVkIHByb3BlcnR5LmApOwogCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRoYXQoZ2V0UHJvcGVydHkoInBhZGRpbmctcmlnaHQiKS5lbmFibGVkLCBgVW5jb21t
ZW50ZWQgcHJvcGVydHkgc2hvdWxkIGJlIGVuYWJsZWQuYCk7CkBAIC0yNTEsNyArMjUwLDcgQEAg
ZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgIGRpc2FibGVkID0gdHJ1ZTsKICAgICAgICAg
ICAgIGdldFByb3BlcnR5KCJwYWRkaW5nLXJpZ2h0IikuY29tbWVudE91dChkaXNhYmxlZCk7CiAK
LSAgICAgICAgICAgIGV4cGVjdGVkU3R5bGVUZXh0ID0gYFxuICAgICAgICAvKiBwYWRkaW5nLWxl
ZnQ6IDJlbTsgKi9cbiAgICAgICAgLyogcGFkZGluZy1yaWdodDogMHB4OyAqL1xuICAgIGA7Cisg
ICAgICAgICAgICBleHBlY3RlZFN0eWxlVGV4dCA9IGBcbiAgICAvKiBwYWRkaW5nLWxlZnQ6IDJl
bTsgKi9cbiAgICAvKiBwYWRkaW5nLXJpZ2h0OiAwcHg7ICovXG5gOwogICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGV4cGVjdGVkU3R5
bGVUZXh0LCBgU3R5bGUgZGVjbGFyYXRpb24gdGV4dCBzaG91bGQgdXBkYXRlIGltbWVkaWF0ZWx5
IHdpdGggY29tbWVudGVkIG91dCBwcm9wZXJ0eS5gKTsKIAogICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RUaGF0KCFnZXRQcm9wZXJ0eSgicGFkZGluZy1yaWdodCIpLmVuYWJsZWQsIGBD
b21tZW50ZWQgb3V0IHByb3BlcnR5IHNob3VsZCBiZSBkaXNhYmxlZC5gKTsKQEAgLTI5MCw3ICsy
ODksNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgbGV0IGRpc2FibGVkID0gZmFs
c2U7CiAgICAgICAgICAgICBnZXRQcm9wZXJ0eSgiZm9udC1zaXplIikuY29tbWVudE91dChkaXNh
YmxlZCk7CiAKLSAgICAgICAgICAgIGxldCBleHBlY3RlZFN0eWxlVGV4dCA9IGBmb250LXNpemU6
IDEzcHg7Lypib3JkZXI6IDJweCBzb2xpZCBicm93biovYDsKKyAgICAgICAgICAgIGxldCBleHBl
Y3RlZFN0eWxlVGV4dCA9IGBcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgLyogYm9yZGVyOiAy
cHggc29saWQgYnJvd247ICovXG5gOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RF
cXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGV4cGVjdGVkU3R5bGVUZXh0LCBgU3R5bGUgZGVj
bGFyYXRpb24gdGV4dCBzaG91bGQgdXBkYXRlIGltbWVkaWF0ZWx5IHdpdGggdW5jb21tZW50ZWQg
cHJvcGVydHkuYCk7CiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChnZXRQ
cm9wZXJ0eSgiZm9udC1zaXplIikuZW5hYmxlZCwgYFVuY29tbWVudGVkIHByb3BlcnR5IHNob3Vs
ZCBiZSBlbmFibGVkLmApOwpAQCAtMjk5LDcgKzI5OCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAg
ICAgICAgICAgICBkaXNhYmxlZCA9IGZhbHNlOwogICAgICAgICAgICAgZ2V0UHJvcGVydHkoImJv
cmRlciIpLmNvbW1lbnRPdXQoZGlzYWJsZWQpOwogCi0gICAgICAgICAgICBleHBlY3RlZFN0eWxl
VGV4dCA9IGBmb250LXNpemU6IDEzcHg7Ym9yZGVyOiAycHggc29saWQgYnJvd25gOworICAgICAg
ICAgICAgZXhwZWN0ZWRTdHlsZVRleHQgPSBgXG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGJv
cmRlcjogMnB4IHNvbGlkIGJyb3duO1xuYDsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0LCBleHBlY3RlZFN0eWxlVGV4dCwgYFN0eWxl
IGRlY2xhcmF0aW9uIHRleHQgc2hvdWxkIHVwZGF0ZSBpbW1lZGlhdGVseSB3aXRoIGNvbW1lbnRl
ZCBvdXQgcHJvcGVydHkuYCk7CiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhh
dChnZXRQcm9wZXJ0eSgiYm9yZGVyIikuZW5hYmxlZCwgYFVuY29tbWVudGVkIHByb3BlcnR5IHNo
b3VsZCBiZSBlbmFibGVkLmApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nz
cy9tb2RpZnktaW5saW5lLXN0eWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jc3MvbW9kaWZ5LWlubGluZS1zdHlsZS1leHBlY3RlZC50eHQKaW5kZXggMzk3Y2E2NjMwNWY3
Li40MTIzNWVmYjE4OWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9k
aWZ5LWlubGluZS1zdHlsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2Nzcy9tb2RpZnktaW5saW5lLXN0eWxlLWV4cGVjdGVkLnR4dApAQCAtNywxMiArNywxMiBAQCBD
U1NQcm9wZXJ0eSBjaGFuZ2VkIHRvICJmb250OiAxMnB4IG5vcm1hbCBzYW5zLXNlcmlmIWltcG9y
dGFudDsiLgogZm9udDogMTJweCBub3JtYWwgc2Fucy1zZXJpZiFpbXBvcnRhbnQ7CiAKIENTU1By
b3BlcnR5IGNoYW5nZWQgdG8gImNvbG9yOiByZWQ7Ii4KLWZvbnQ6IDEycHggbm9ybWFsIHNhbnMt
c2VyaWYhaW1wb3J0YW50O2NvbG9yOiByZWQ7Citmb250OiAxMnB4IG5vcm1hbCBzYW5zLXNlcmlm
IWltcG9ydGFudDsgY29sb3I6IHJlZDsKIAogQ1NTUHJvcGVydHkgY2hhbmdlZCB0byAiZm9udDog
MTJweCBzYW5zLXNlcmlmOyIuCi1mb250OiAxMnB4IHNhbnMtc2VyaWY7Y29sb3I6IHJlZDsKK2Zv
bnQ6IDEycHggc2Fucy1zZXJpZjsgY29sb3I6IHJlZDsKIAogQ1NTUHJvcGVydHkgY2hhbmdlZCB0
byAiY29sb3I6IGludmFsaWRfYzAxMHI7Ii4KLWZvbnQ6IDEycHggc2Fucy1zZXJpZjtjb2xvcjog
aW52YWxpZF9jMDEwcjsKK2ZvbnQ6IDEycHggc2Fucy1zZXJpZjsgY29sb3I6IGludmFsaWRfYzAx
MHI7CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggMmI1ODcxMjE4NTNhLi4xMmViODk5
YzgzZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTA1
LTE5ICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IFN0eWxlczogZm9ybWF0IHN0eWxlIGRlY2xhcmF0aW9ucyBhZnRlciBlZGl0
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg4
MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1MTg1MDYwPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluZGVudCBDU1MgcHJvcGVydGllcyB3aXRo
IHNwYWNlcy90YWJzIHNldCBpbiBXZWIgSW5zcGVjdG9yIHNldHRpbmdzLiBJbmNyZXNlIGluZGVu
dGF0aW9uIGxldmVsIHdoZW4gQ1NTIHJ1bGVzIGFyZQorICAgICAgICBpbnNpZGUgb2YgYXQtcnVs
ZXMgKGUuZy4gQG1lZGlhLCBAa2V5ZnJhbWVzLCBAc3VwcG9ydHMpLgorCisgICAgICAgIERvbid0
IGluZGVudCBDU1MgcHJvcGVydGllcyBpbiBzdHlsZSBhdHRyaWJ1dGVzLiBLZWVwIHRoZW0gb24g
dGhlIHNpbmdsZSBsaW5lLCBzZXBhcmF0ZWQgYnkgYSBzcGFjZSBjaGFyYWN0ZXI6CisKKyAgICAg
ICAgICAgIHN0eWxlPSJmb250LXNpemU6IDEycHg7IGNvbG9yOiBibGFjazsiCisKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL01vZGVscy9DU1NQcm9wZXJ0eS5qczoKKyAgICAgICAgKFdJLkNTU1By
b3BlcnR5LnByb3RvdHlwZS5yZXBsYWNlV2l0aFRleHQpOgorICAgICAgICBJbnRyb2R1Y2UgYF9w
ZW5kaW5nVGV4dGAgcHJvcGVydHkuIEl0J3Mgb25seSBzZXQgd2hlbiBwYXN0aW5nIENTUyBwcm9w
ZXJ0eSB0ZXh0IGludG8gdGhlIENTUyBwcm9wZXJ0eSBuYW1lIGZpZWxkLgorCisgICAgICAgIChX
SS5DU1NQcm9wZXJ0eS5wcm90b3R5cGUuc2V0IHRleHQpOgorICAgICAgICAoV0kuQ1NTUHJvcGVy
dHkucHJvdG90eXBlLmdldCBmb3JtYXR0ZWRUZXh0KToKKworICAgICAgICAoV0kuQ1NTUHJvcGVy
dHkucHJvdG90eXBlLl91cGRhdGVTdHlsZVRleHQpOgorICAgICAgICAoV0kuQ1NTUHJvcGVydHku
cHJvdG90eXBlLl91cGRhdGVPd25lclN0eWxlVGV4dCk6CisgICAgICAgIChXSS5DU1NQcm9wZXJ0
eS5wcm90b3R5cGUuX3ByZXBlbmRTZW1pY29sb25JZk5lZWRlZCk6IERlbGV0ZWQuCisgICAgICAg
IEdyZWF0bHkgc2ltcGxpZnkgdGhlIGxvZ2ljIG5vdyB0aGF0IHdlIHNhdmUgZm9ybWF0dGVkIHRl
eHQgYW5kIGRvbid0IG1vZGlmeSBzdHlsZVRleHQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L01vZGVscy9DU1NTdHlsZURlY2xhcmF0aW9uLmpzOgorICAgICAgICAoV0kuQ1NTU3R5bGVEZWNs
YXJhdGlvbi5wcm90b3R5cGUucmVtb3ZlUHJvcGVydHkpOiBSZW5hbWVkIGZyb20gJ3NoaWZ0UHJv
cGVydGllc0FmdGVyJy4KKyAgICAgICAgUmVtb2RlIHVubmVjZXNzYXJ5IGNvZGUgdGhhdCBtb2Rp
ZmllcyBgX3N0eWxlU2hlZXRUZXh0UmFuZ2VgLiBUaGUgYmFja2VuZCBzZW5kcyBuZXcgYF9zdHls
ZVNoZWV0VGV4dFJhbmdlYCBkYXRhCisgICAgICAgIHVub24gYSBjaGFuZ2UuCisKKyAgICAgICAg
KFdJLkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlLmdlbmVyYXRlRm9ybWF0dGVkVGV4dCk6
CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9UZXh0UmFuZ2UuanM6CisgICAgICAg
IChXSS5UZXh0UmFuZ2UpOgorICAgICAgICAoV0kuVGV4dFJhbmdlLnByb3RvdHlwZS5jbG9uZUFu
ZE1vZGlmeSk6IERlbGV0ZWQuCisgICAgICAgIChXSS5UZXh0UmFuZ2UucHJvdG90eXBlLnJlbGF0
aXZlVG8pOiBEZWxldGVkLgorICAgICAgICBSZW1vdmUgdW51c2VkIGNvZGUuCisKIDIwMjEtMDUt
MDQgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IGFkZCBhc3NlcnRpb24gZm9yIGBXSS5WaWV3YCByZS1lbnRyYW5jeQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3Bl
cnR5LmpzCmluZGV4IDI3OGE2NzE1NDhiZC4uZmU3MDIyODdmNWZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTUHJvcGVydHkuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5
LmpzCkBAIC0xNTUsNyArMTU1LDkgQEAgV0kuQ1NTUHJvcGVydHkgPSBjbGFzcyBDU1NQcm9wZXJ0
eSBleHRlbmRzIFdJLk9iamVjdAogICAgIHsKICAgICAgICAgdGhpcy5fbWFya01vZGlmaWVkKCk7
CiAKLSAgICAgICAgdGhpcy5fdXBkYXRlT3duZXJTdHlsZVRleHQodGhpcy5fdGV4dCwgdGV4dCwg
dHJ1ZSk7CisgICAgICAgIHRoaXMuX3BlbmRpbmdUZXh0ID0gdGV4dDsKKyAgICAgICAgdGhpcy5f
dXBkYXRlT3duZXJTdHlsZVRleHQoKTsKKyAgICAgICAgdGhpcy5fcGVuZGluZ1RleHQgPSBudWxs
OwogICAgIH0KIAogICAgIGNvbW1lbnRPdXQoZGlzYWJsZWQpCkBAIC0xODQsMTIgKzE4NiwxNSBA
QCBXSS5DU1NQcm9wZXJ0eSA9IGNsYXNzIENTU1Byb3BlcnR5IGV4dGVuZHMgV0kuT2JqZWN0CiAg
ICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgdGhpcy5fbWFya01vZGlmaWVkKCk7Ci0gICAg
ICAgIHRoaXMuX3VwZGF0ZU93bmVyU3R5bGVUZXh0KHRoaXMuX3RleHQsIG5ld1RleHQpOworICAg
ICAgICB0aGlzLl91cGRhdGVPd25lclN0eWxlVGV4dCgpOwogICAgICAgICB0aGlzLl90ZXh0ID0g
bmV3VGV4dDsKICAgICB9CiAKICAgICBnZXQgZm9ybWF0dGVkVGV4dCgpCiAgICAgeworICAgICAg
ICBpZiAodGhpcy5fcGVuZGluZ1RleHQpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fcGVuZGlu
Z1RleHQudHJpbSgpOworCiAgICAgICAgIGlmICghdGhpcy5fbmFtZSkKICAgICAgICAgICAgIHJl
dHVybiAiIjsKIApAQCAtNDY4LDc0ICs0NzMsMjQgQEAgV0kuQ1NTUHJvcGVydHkgPSBjbGFzcyBD
U1NQcm9wZXJ0eSBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgdGV4dCA9IHRoaXMuX25h
bWUgKyAiOiAiICsgdmFsdWUgKyAiOyI7CiAgICAgICAgIH0KIAotICAgICAgICBsZXQgb2xkVGV4
dCA9IHRoaXMuX3RleHQ7CiAgICAgICAgIHRoaXMuX3RleHQgPSB0ZXh0OwotICAgICAgICB0aGlz
Ll91cGRhdGVPd25lclN0eWxlVGV4dChvbGRUZXh0LCB0aGlzLl90ZXh0LCBmb3JjZVJlbW92ZSk7
CisKKyAgICAgICAgaWYgKGZvcmNlUmVtb3ZlKQorICAgICAgICAgICAgdGhpcy5fb3duZXJTdHls
ZS5yZW1vdmVQcm9wZXJ0eSh0aGlzKTsKKworICAgICAgICB0aGlzLl91cGRhdGVPd25lclN0eWxl
VGV4dChmb3JjZVJlbW92ZSk7CiAgICAgfQogCi0gICAgX3VwZGF0ZU93bmVyU3R5bGVUZXh0KG9s
ZFRleHQsIG5ld1RleHQsIGZvcmNlUmVtb3ZlID0gZmFsc2UpCisgICAgX3VwZGF0ZU93bmVyU3R5
bGVUZXh0KCkKICAgICB7Ci0gICAgICAgIGlmIChvbGRUZXh0ID09PSBuZXdUZXh0KSB7Ci0gICAg
ICAgICAgICBpZiAoZm9yY2VSZW1vdmUpIHsKLSAgICAgICAgICAgICAgICBjb25zdCBsaW5lRGVs
dGEgPSAwOwotICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbkRlbHRhID0gMDsKLSAgICAgICAg
ICAgICAgICB0aGlzLl9vd25lclN0eWxlLnNoaWZ0UHJvcGVydGllc0FmdGVyKHRoaXMsIGxpbmVE
ZWx0YSwgY29sdW1uRGVsdGEsIGZvcmNlUmVtb3ZlKTsKLSAgICAgICAgICAgICAgICB0aGlzLl9v
d25lclN0eWxlLnVwZGF0ZVByb3BlcnRpZXNNb2RpZmllZFN0YXRlKCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQogICAgICAgICBjb25zb2xlLmFzc2Vy
dCh0aGlzLl9vd25lclN0eWxlKTsKICAgICAgICAgaWYgKCF0aGlzLl9vd25lclN0eWxlKQogICAg
ICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHRoaXMuX3ByZXBlbmRTZW1pY29sb25JZk5lZWRl
ZCgpOwotCi0gICAgICAgIGxldCBzdHlsZVRleHQgPSB0aGlzLl9vd25lclN0eWxlLnRleHQgfHwg
IiI7Ci0KLSAgICAgICAgLy8gX3N0eWxlU2hlZXRUZXh0UmFuZ2UgaXMgdGhlIHBvc2l0aW9uIG9m
IHRoZSBwcm9wZXJ0eSB3aXRoaW4gdGhlIHN0eWxlc2hlZXQuCi0gICAgICAgIC8vIHJhbmdlIGlz
IHRoZSBwb3NpdGlvbiBvZiB0aGUgcHJvcGVydHkgd2l0aGluIHRoZSBydWxlLgotICAgICAgICBs
ZXQgcmFuZ2UgPSB0aGlzLl9zdHlsZVNoZWV0VGV4dFJhbmdlLnJlbGF0aXZlVG8odGhpcy5fb3du
ZXJTdHlsZS5zdHlsZVNoZWV0VGV4dFJhbmdlLnN0YXJ0TGluZSwgdGhpcy5fb3duZXJTdHlsZS5z
dHlsZVNoZWV0VGV4dFJhbmdlLnN0YXJ0Q29sdW1uKTsKLQotICAgICAgICAvLyBBcHBlbmQgYSBs
aW5lIGJyZWFrIHRvIGNvdW50IHRoZSBsYXN0IGxpbmUgb2Ygc3R5bGVUZXh0IHRvd2FyZHMgZW5k
T2Zmc2V0LgotICAgICAgICByYW5nZS5yZXNvbHZlT2Zmc2V0cyhzdHlsZVRleHQgKyAiXG4iKTsK
LQotICAgICAgICBjb25zb2xlLmFzc2VydChvbGRUZXh0ID09PSBzdHlsZVRleHQuc2xpY2UocmFu
Z2Uuc3RhcnRPZmZzZXQsIHJhbmdlLmVuZE9mZnNldCksICJfc3R5bGVTaGVldFRleHRSYW5nZSBk
YXRhIGlzIGludmFsaWQuIik7Ci0KLSAgICAgICAgaWYgKFdJLnNldHRpbmdzLmRlYnVnRW5hYmxl
U3R5bGVFZGl0aW5nRGVidWdNb2RlLnZhbHVlKSB7Ci0gICAgICAgICAgICBsZXQgcHJlZml4ID0g
c3R5bGVUZXh0LnNsaWNlKDAsIHJhbmdlLnN0YXJ0T2Zmc2V0KTsKLSAgICAgICAgICAgIGxldCBw
b3N0Zml4ID0gc3R5bGVUZXh0LnNsaWNlKHJhbmdlLmVuZE9mZnNldCk7Ci0gICAgICAgICAgICBj
b25zb2xlLmluZm8oYCR7cHJlZml4fSVjJHtvbGRUZXh0fSVjJHtuZXdUZXh0fSVjJHtwb3N0Zml4
fWAsIGBiYWNrZ3JvdW5kOiBoc2woMzU2LCAxMDAlLCA5MCUpOyBjb2xvcjogYmxhY2tgLCBgYmFj
a2dyb3VuZDogaHNsKDEwMCwgMTAwJSwgOTElKTsgY29sb3I6IGJsYWNrYCwgYGJhY2tncm91bmQ6
IHRyYW5zcGFyZW50YCk7Ci0gICAgICAgIH0KLQotICAgICAgICBsZXQgbmV3U3R5bGVUZXh0ID0g
c3R5bGVUZXh0LnNsaWNlKDAsIHJhbmdlLnN0YXJ0T2Zmc2V0KSArIG5ld1RleHQgKyBzdHlsZVRl
eHQuc2xpY2UocmFuZ2UuZW5kT2Zmc2V0KTsKLQotICAgICAgICBsZXQgbGluZURlbHRhID0gbmV3
VGV4dC5saW5lQ291bnQgLSBvbGRUZXh0LmxpbmVDb3VudDsKLSAgICAgICAgbGV0IGNvbHVtbkRl
bHRhID0gbmV3VGV4dC5sYXN0TGluZS5sZW5ndGggLSBvbGRUZXh0Lmxhc3RMaW5lLmxlbmd0aDsK
LSAgICAgICAgdGhpcy5fc3R5bGVTaGVldFRleHRSYW5nZSA9IHRoaXMuX3N0eWxlU2hlZXRUZXh0
UmFuZ2UuY2xvbmVBbmRNb2RpZnkoMCwgMCwgbGluZURlbHRhLCBjb2x1bW5EZWx0YSk7Ci0KLSAg
ICAgICAgdGhpcy5fb3duZXJTdHlsZS50ZXh0ID0gbmV3U3R5bGVUZXh0OwotCi0gICAgICAgIGxl
dCBwcm9wZXJ0eVdhc1JlbW92ZWQgPSAhbmV3VGV4dDsKLSAgICAgICAgdGhpcy5fb3duZXJTdHls
ZS5zaGlmdFByb3BlcnRpZXNBZnRlcih0aGlzLCBsaW5lRGVsdGEsIGNvbHVtbkRlbHRhLCBwcm9w
ZXJ0eVdhc1JlbW92ZWQpOworICAgICAgICB0aGlzLl9vd25lclN0eWxlLnRleHQgPSB0aGlzLl9v
d25lclN0eWxlLmdlbmVyYXRlRm9ybWF0dGVkVGV4dCgpOwogICAgICAgICB0aGlzLl9vd25lclN0
eWxlLnVwZGF0ZVByb3BlcnRpZXNNb2RpZmllZFN0YXRlKCk7CiAgICAgfQogCi0gICAgX3ByZXBl
bmRTZW1pY29sb25JZk5lZWRlZCgpCi0gICAgewotICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5p
bmRleCAtIDE7IGkgPj0gMDsgLS1pKSB7Ci0gICAgICAgICAgICBsZXQgcHJvcGVydHkgPSB0aGlz
Ll9vd25lclN0eWxlLnByb3BlcnRpZXNbaV07Ci0gICAgICAgICAgICBpZiAoIXByb3BlcnR5LmVu
YWJsZWQpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIGxldCBtYXRj
aCA9IHByb3BlcnR5LnRleHQubWF0Y2goL1teO1xzXShccyopJC8pOwotICAgICAgICAgICAgaWYg
KG1hdGNoKQotICAgICAgICAgICAgICAgIHByb3BlcnR5LnRleHQgPSBwcm9wZXJ0eS50ZXh0LnRy
aW1SaWdodCgpICsgIjsiICsgbWF0Y2hbMV07Ci0KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICB9Ci0gICAgfQotCiAgICAgX21hcmtNb2RpZmllZCgpCiAgICAgewogICAgICAgICBpZiAodGhp
cy5fb3duZXJTdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9DU1NTdHlsZURlY2xhcmF0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1N0eWxlRGVjbGFyYXRpb24uanMKaW5kZXggNzA5
MTAxZjQyYTg3Li4yZDc3MGU4MDQ0ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NTdHlsZURlY2xhcmF0aW9uLmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NTdHlsZURlY2xhcmF0aW9u
LmpzCkBAIC00NDUsMzIgKzQ0NSwxNCBAQCBXSS5DU1NTdHlsZURlY2xhcmF0aW9uID0gY2xhc3Mg
Q1NTU3R5bGVEZWNsYXJhdGlvbiBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBXSS5jc3NNYW5h
Z2VyLmFkZE1vZGlmaWVkU3R5bGUodGhpcyk7CiAgICAgfQogCi0gICAgc2hpZnRQcm9wZXJ0aWVz
QWZ0ZXIoY3NzUHJvcGVydHksIGxpbmVEZWx0YSwgY29sdW1uRGVsdGEsIHByb3BlcnR5V2FzUmVt
b3ZlZCkKKyAgICByZW1vdmVQcm9wZXJ0eShjc3NQcm9wZXJ0eSkKICAgICB7CiAgICAgICAgIC8v
IGNzc1Byb3BlcnR5LmluZGV4IGNvdWxkIGJlIHNldCB0byBOYU4gYnkgV0kuQ1NTU3R5bGVEZWNs
YXJhdGlvbi5wcm90b3R5cGUudXBkYXRlLgogICAgICAgICBsZXQgcmVhbEluZGV4ID0gdGhpcy5f
cHJvcGVydGllcy5pbmRleE9mKGNzc1Byb3BlcnR5KTsKICAgICAgICAgaWYgKHJlYWxJbmRleCA9
PT0gLTEpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbGV0IGVuZExpbmUgPSBjc3NQ
cm9wZXJ0eS5zdHlsZVNoZWV0VGV4dFJhbmdlLmVuZExpbmU7Ci0KLSAgICAgICAgZm9yIChsZXQg
aSA9IHJlYWxJbmRleCArIDE7IGkgPCB0aGlzLl9wcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7Ci0g
ICAgICAgICAgICBsZXQgcHJvcGVydHkgPSB0aGlzLl9wcm9wZXJ0aWVzW2ldOwotCi0gICAgICAg
ICAgICBpZiAocHJvcGVydHkuX3N0eWxlU2hlZXRUZXh0UmFuZ2UpIHsKLSAgICAgICAgICAgICAg
ICBpZiAocHJvcGVydHkuc3R5bGVTaGVldFRleHRSYW5nZS5zdGFydExpbmUgPT09IGVuZExpbmUp
IHsKLSAgICAgICAgICAgICAgICAgICAgLy8gT25seSB1cGRhdGUgY29sdW1uIGRhdGEgaWYgaXQn
cyBvbiB0aGUgc2FtZSBsaW5lLgotICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eS5fc3R5bGVT
aGVldFRleHRSYW5nZSA9IHByb3BlcnR5Ll9zdHlsZVNoZWV0VGV4dFJhbmdlLmNsb25lQW5kTW9k
aWZ5KGxpbmVEZWx0YSwgY29sdW1uRGVsdGEsIGxpbmVEZWx0YSwgY29sdW1uRGVsdGEpOwotICAg
ICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eS5fc3R5bGVT
aGVldFRleHRSYW5nZSA9IHByb3BlcnR5Ll9zdHlsZVNoZWV0VGV4dFJhbmdlLmNsb25lQW5kTW9k
aWZ5KGxpbmVEZWx0YSwgMCwgbGluZURlbHRhLCAwKTsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgaWYgKHByb3BlcnR5V2FzUmVtb3ZlZCAmJiAhaXNOYU4ocHJvcGVydHkuX2luZGV4KSkK
LSAgICAgICAgICAgICAgICBwcm9wZXJ0eS5faW5kZXgtLTsKLSAgICAgICAgfQotCi0gICAgICAg
IGlmIChwcm9wZXJ0eVdhc1JlbW92ZWQpCi0gICAgICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzLnNw
bGljZShyZWFsSW5kZXgsIDEpOworICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzLnNwbGljZShyZWFs
SW5kZXgsIDEpOwogCiAgICAgICAgIC8vIEludmFsaWRhdGUgY2FjaGVkIHByb3BlcnRpZXMuCiAg
ICAgICAgIHRoaXMuX2VuYWJsZWRQcm9wZXJ0aWVzID0gbnVsbDsKQEAgLTUyOSw2ICs1MTEsMzAg
QEAgV0kuQ1NTU3R5bGVEZWNsYXJhdGlvbiA9IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb24gZXh0
ZW5kcyBXSS5PYmplY3QKICAgICAgICAgcmV0dXJuIHN0eWxlVGV4dDsKICAgICB9CiAKKyAgICBn
ZW5lcmF0ZUZvcm1hdHRlZFRleHQoKQorICAgIHsKKyAgICAgICAgbGV0IHZpc2libGVQcm9wZXJ0
aWVzID0gdGhpcy52aXNpYmxlUHJvcGVydGllczsKKyAgICAgICAgaWYgKCF2aXNpYmxlUHJvcGVy
dGllcy5sZW5ndGgpCisgICAgICAgICAgICByZXR1cm4gIiI7CisKKyAgICAgICAgaWYgKHRoaXMu
X3R5cGUgIT09IFdJLkNTU1N0eWxlRGVjbGFyYXRpb24uVHlwZS5SdWxlKQorICAgICAgICAgICAg
cmV0dXJuIHZpc2libGVQcm9wZXJ0aWVzLm1hcCgocHJvcGVydHkpID0+IHByb3BlcnR5LmZvcm1h
dHRlZFRleHQpLmpvaW4oIiAiKTsKKworICAgICAgICBsZXQgc3R5bGVUZXh0ID0gIiI7CisgICAg
ICAgIGxldCBncm91cGluZ3MgPSB0aGlzLmdyb3VwaW5ncy5maWx0ZXIoKGdyb3VwaW5nKSA9PiBn
cm91cGluZy50ZXh0ICE9PSAiYWxsIik7CisgICAgICAgIGxldCBpbmRlbnRhdGlvbkxldmVsID0g
Z3JvdXBpbmdzLmxlbmd0aDsKKyAgICAgICAgbGV0IGluZGVudFN0cmluZyA9IFdJLmluZGVudFN0
cmluZygpOworICAgICAgICBsZXQgcHJvcGVydHlJbmRlbnQgPSBpbmRlbnRTdHJpbmcucmVwZWF0
KGluZGVudGF0aW9uTGV2ZWwgKyAxKTsKKworICAgICAgICBmb3IgKGxldCBwcm9wZXJ0eSBvZiB2
aXNpYmxlUHJvcGVydGllcykKKyAgICAgICAgICAgIHN0eWxlVGV4dCArPSAiXG4iICsgcHJvcGVy
dHlJbmRlbnQgKyBwcm9wZXJ0eS5mb3JtYXR0ZWRUZXh0OworCisgICAgICAgIC8vIEluZGVudCB0
aGUgY2xvc2luZyAifSIgZm9yIG5lc3RlZCBydWxlcy4KKyAgICAgICAgc3R5bGVUZXh0ICs9ICJc
biIgKyBpbmRlbnRTdHJpbmcucmVwZWF0KGluZGVudGF0aW9uTGV2ZWwpOworCisgICAgICAgIHJl
dHVybiBzdHlsZVRleHQ7CisgICAgfQorCiAgICAgLy8gUHJvdGVjdGVkCiAKICAgICBnZXQgbm9k
ZVN0eWxlcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvVGV4dFJhbmdlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL1RleHRSYW5nZS5qcwppbmRleCA2YTZlN2EwNTFmNzQuLjRiMmYyZGIyMWI1OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Rl
eHRSYW5nZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvVGV4dFJhbmdlLmpzCkBAIC0xMjMsMTkgKzEyMyw2IEBAIFdJLlRleHRSYW5nZSA9IGNsYXNz
IFRleHRSYW5nZQogICAgICAgICByZXR1cm4gbmV3IFdJLlRleHRSYW5nZSh0aGlzLl9zdGFydExp
bmUsIHRoaXMuX3N0YXJ0Q29sdW1uLCB0aGlzLl9lbmRMaW5lLCB0aGlzLl9lbmRDb2x1bW4pOwog
ICAgIH0KIAotICAgIGNsb25lQW5kTW9kaWZ5KGRlbHRhU3RhcnRMaW5lLCBkZWx0YVN0YXJ0Q29s
dW1uLCBkZWx0YUVuZExpbmUsIGRlbHRhRW5kQ29sdW1uKQotICAgIHsKLSAgICAgICAgY29uc29s
ZS5hc3NlcnQoIWlzTmFOKHRoaXMuX3N0YXJ0TGluZSksICJUZXh0UmFuZ2UgbmVlZHMgbGluZS9j
b2x1bW4gZGF0YS4iKTsKLQotICAgICAgICBsZXQgc3RhcnRMaW5lID0gdGhpcy5fc3RhcnRMaW5l
ICsgZGVsdGFTdGFydExpbmU7Ci0gICAgICAgIGxldCBzdGFydENvbHVtbiA9IHRoaXMuX3N0YXJ0
Q29sdW1uICsgZGVsdGFTdGFydENvbHVtbjsKLSAgICAgICAgbGV0IGVuZExpbmUgPSB0aGlzLl9l
bmRMaW5lICsgZGVsdGFFbmRMaW5lOwotICAgICAgICBsZXQgZW5kQ29sdW1uID0gdGhpcy5fZW5k
Q29sdW1uICsgZGVsdGFFbmRDb2x1bW47Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHN0YXJ0TGlu
ZSA+PSAwICYmIHN0YXJ0Q29sdW1uID49IDAgJiYgZW5kTGluZSA+PSAwICYmIGVuZENvbHVtbiA+
PSAwLCBgQ2Fubm90IGhhdmUgbmVnYXRpdmUgbnVtYmVycyBpbiBUZXh0UmFuZ2UgJHtzdGFydExp
bmV9OiR7c3RhcnRDb2x1bW59Li4uJHtlbmRMaW5lfToke2VuZENvbHVtbn1gKTsKLQotICAgICAg
ICByZXR1cm4gbmV3IFdJLlRleHRSYW5nZShzdGFydExpbmUsIHN0YXJ0Q29sdW1uLCBlbmRMaW5l
LCBlbmRDb2x1bW4pOwotICAgIH0KLQogICAgIGNvbGxhcHNlVG9TdGFydCgpCiAgICAgewogICAg
ICAgICBjb25zb2xlLmFzc2VydCghaXNOYU4odGhpcy5fc3RhcnRMaW5lKSwgIlRleHRSYW5nZSBu
ZWVkcyBsaW5lL2NvbHVtbiBkYXRhLiIpOwpAQCAtMTQ3LDE3ICsxMzQsNCBAQCBXSS5UZXh0UmFu
Z2UgPSBjbGFzcyBUZXh0UmFuZ2UKICAgICAgICAgY29uc29sZS5hc3NlcnQoIWlzTmFOKHRoaXMu
X2VuZExpbmUpLCAiVGV4dFJhbmdlIG5lZWRzIGxpbmUvY29sdW1uIGRhdGEuIik7CiAgICAgICAg
IHJldHVybiBuZXcgV0kuVGV4dFJhbmdlKHRoaXMuX2VuZExpbmUsIHRoaXMuX2VuZENvbHVtbiwg
dGhpcy5fZW5kTGluZSwgdGhpcy5fZW5kQ29sdW1uKTsKICAgICB9Ci0KLSAgICByZWxhdGl2ZVRv
KGxpbmUsIGNvbHVtbikKLSAgICB7Ci0gICAgICAgIGxldCBkZWx0YVN0YXJ0Q29sdW1uID0gMDsK
LSAgICAgICAgaWYgKHRoaXMuX3N0YXJ0TGluZSA9PT0gbGluZSkKLSAgICAgICAgICAgIGRlbHRh
U3RhcnRDb2x1bW4gPSAtY29sdW1uOwotCi0gICAgICAgIGxldCBkZWx0YUVuZENvbHVtbiA9IDA7
Ci0gICAgICAgIGlmICh0aGlzLl9lbmRMaW5lID09PSBsaW5lKQotICAgICAgICAgICAgZGVsdGFF
bmRDb2x1bW4gPSAtY29sdW1uOwotCi0gICAgICAgIHJldHVybiB0aGlzLmNsb25lQW5kTW9kaWZ5
KC1saW5lLCBkZWx0YVN0YXJ0Q29sdW1uLCAtbGluZSwgZGVsdGFFbmRDb2x1bW4pOwotICAgIH0K
IH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430394</attachid>
            <date>2021-06-02 13:06:41 -0700</date>
            <delta_ts>2021-06-02 17:25:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>WIP.diff</filename>
            <type>text/plain</type>
            <size>21084</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1YTFkZDdlN2VlMzguLjQ4OThkZDNiOWEzNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIxLTA2LTAyICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IFN0eWxlczogZm9ybWF0IHN0eWxlIGRlY2xhcmF0aW9ucyBh
ZnRlciBlZGl0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzg4MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1MTg1MDYwPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluZGVudCB0ZXh0IG9mIGV4
cGVjdGVkIENTUyBwcm9wZXJ0aWVzLgorCisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9hZGQtY3Nz
LXByb3BlcnR5Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9tb2RpZnktY3NzLXByb3Bl
cnR5Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9tb2RpZnktaW5saW5lLXN0eWxlLWV4
cGVjdGVkLnR4dDoKKwogMjAyMS0wNS0wNiAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gVW5yZXZpZXdlZCB0ZXN0IGdhcmRlbmluZy4g
RW1pdCBwbGF0Zm9ybSBiYXNlbGluZXMgYWZ0ZXIgcjI3NzA3MS4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jc3MvYWRkLWNzcy1wcm9wZXJ0eS5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2Nzcy9hZGQtY3NzLXByb3BlcnR5Lmh0bWwKaW5kZXggNDU1YTk1ZDRlNzNiLi5m
NWRmOTUzMTQyY2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvYWRkLWNz
cy1wcm9wZXJ0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvYWRkLWNzcy1w
cm9wZXJ0eS5odG1sCkBAIC0yNyw3ICsyNyw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAg
ICAgICBuZXdQcm9wZXJ0eS5uYW1lID0gImNvbG9yIjsKICAgICAgICAgICAgIG5ld1Byb3BlcnR5
LnJhd1ZhbHVlID0gImdyZWVuIjsKIAotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RF
cXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGBmb250LXNpemU6IDE0cHg7Y29sb3I6IGdyZWVu
O2AsICJgY29sb3I6IGdyZWVuYCBwcm9wZXJ0eSBzaG91bGQgYmUgYXBwZW5kZWQuIik7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlRGVjbGFyYXRpb24udGV4dCwg
YFxuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogZ3JlZW47XG5gLCAiYGNvbG9yOiBn
cmVlbmAgcHJvcGVydHkgc2hvdWxkIGJlIGFwcGVuZGVkLiIpOwogCiAgICAgICAgICAgICBzdHls
ZURlY2xhcmF0aW9uLmxvY2tlZCA9IGZhbHNlOwogICAgICAgICAgICAgcmVzb2x2ZSgpOwpAQCAt
NDMsNyArNDMsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgbmV3UHJvcGVydHku
bmFtZSA9ICJjb2xvciI7CiAgICAgICAgICAgICBuZXdQcm9wZXJ0eS5yYXdWYWx1ZSA9ICJncmVl
biI7CiAKLSAgICAgICAgICAgIGxldCBleHBlY3RlZCA9IGBjb2xvcjogZ3JlZW47XG4gICAgb3V0
bGluZTogMnB4IHNvbGlkIGJyb3duO1xuYDsKKyAgICAgICAgICAgIGxldCBleHBlY3RlZCA9IGBc
biAgICBjb2xvcjogZ3JlZW47XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIGJyb3duO1xuYDsKICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0
LCBleHBlY3RlZCwgImBjb2xvcjogZ3JlZW5gIHByb3BlcnR5IHNob3VsZCBiZSBpbnNlcnRlZCBi
ZWZvcmUgdGhlIGZpcnN0IHByb3BlcnR5LiIpOwogCiAgICAgICAgICAgICBzdHlsZURlY2xhcmF0
aW9uID0gZ2V0TWF0Y2hlZFN0eWxlKCIucnVsZS1iIiwgcmVzb2x2ZSk7CkBAIC01MSw3ICs1MSw3
IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICBuZXdQcm9wZXJ0eS5uYW1lID0gImRp
c3BsYXkiOwogICAgICAgICAgICAgbmV3UHJvcGVydHkucmF3VmFsdWUgPSAiYmxvY2siOwogCi0g
ICAgICAgICAgICBleHBlY3RlZCA9IGBjb2xvcjogZ3JlZW47XG4gICAgb3V0bGluZTogMnB4IHNv
bGlkIGJyb3duO2Rpc3BsYXk6IGJsb2NrO1xuYDsKKyAgICAgICAgICAgIGV4cGVjdGVkID0gYFxu
ICAgIGNvbG9yOiBncmVlbjtcbiAgICBvdXRsaW5lOiAycHggc29saWQgYnJvd247XG4gICAgZGlz
cGxheTogYmxvY2s7XG5gOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChz
dHlsZURlY2xhcmF0aW9uLnRleHQsIGV4cGVjdGVkLCAiYGRpc3BsYXk6IGJsb2NrYCBwcm9wZXJ0
eSBzaG91bGQgYmUgYXBwZW5kZWQgYXQgdGhlIGVuZC4iKTsKIAogICAgICAgICAgICAgc3R5bGVE
ZWNsYXJhdGlvbi5sb2NrZWQgPSBmYWxzZTsKQEAgLTY4LDcgKzY4LDcgQEAgZnVuY3Rpb24gdGVz
dCgpIHsKICAgICAgICAgICAgIG5ld1Byb3BlcnR5Lm5hbWUgPSAiZm9udC1mYW1pbHkiOwogICAg
ICAgICAgICAgbmV3UHJvcGVydHkucmF3VmFsdWUgPSAiZmFudGFzeSI7CiAKLSAgICAgICAgICAg
IGxldCBleHBlY3RlZCA9IGBcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBwZWFjaHB1ZmY7Zm9udC1m
YW1pbHk6IGZhbnRhc3k7XG4gICAgY29sb3I6IGJ1cmx5d29vZFxuYDsKKyAgICAgICAgICAgIGxl
dCBleHBlY3RlZCA9IGBcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBwZWFjaHB1ZmY7XG4gICAgZm9u
dC1mYW1pbHk6IGZhbnRhc3k7XG4gICAgY29sb3I6IGJ1cmx5d29vZDtcbmA7CiAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlRGVjbGFyYXRpb24udGV4dCwgZXhwZWN0
ZWQsICJgZm9udC1mYW1pbHk6IGZhbnRhc3lgIHByb3BlcnR5IHNob3VsZCBiZSBpbnNlcnRlZCBh
ZnRlciB0aGUgZmlyc3QgcHJvcGVydHkuIik7CiAKICAgICAgICAgICAgIHN0eWxlRGVjbGFyYXRp
b24ubG9ja2VkID0gZmFsc2U7CkBAIC04NSw3ICs4NSw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAg
ICAgICAgICAgICBuZXdQcm9wZXJ0eS5uYW1lID0gImRpc3BsYXkiOwogICAgICAgICAgICAgbmV3
UHJvcGVydHkucmF3VmFsdWUgPSAiaW5saW5lIjsKIAotICAgICAgICAgICAgY29uc3QgZXhwZWN0
ZWQgPSBgXG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIC8qIGNvbG9yOiByZWQ7ICovZGlzcGxh
eTogaW5saW5lO1xuYDsKKyAgICAgICAgICAgIGNvbnN0IGV4cGVjdGVkID0gYFxuICAgIGZvbnQt
c2l6ZTogMTRweDtcbiAgICAvKiBjb2xvcjogcmVkOyAqL1xuICAgIGRpc3BsYXk6IGlubGluZTtc
bmA7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlRGVjbGFyYXRp
b24udGV4dCwgZXhwZWN0ZWQsICJgZGlzcGxheTogaW5saW5lYCBwcm9wZXJ0eSBzaG91bGQgYmUg
YXBwZW5kZWQuIik7CiAKICAgICAgICAgICAgIHN0eWxlRGVjbGFyYXRpb24ubG9ja2VkID0gZmFs
c2U7CkBAIC0xMDIsNyArMTAyLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgIG5l
d1Byb3BlcnR5Lm5hbWUgPSAiZGlzcGxheSI7CiAgICAgICAgICAgICBuZXdQcm9wZXJ0eS5yYXdW
YWx1ZSA9ICJpbmxpbmUiOwogCi0gICAgICAgICAgICBjb25zdCBleHBlY3RlZCA9IGBcbiAgICBm
b250LXNpemU6IDE0cHg7XG4gICAgLyogY29sb3I6IHJlZCAqL2Rpc3BsYXk6IGlubGluZTtcbmA7
CisgICAgICAgICAgICBjb25zdCBleHBlY3RlZCA9IGBcbiAgICBmb250LXNpemU6IDE0cHg7XG4g
ICAgLyogY29sb3I6IHJlZDsgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmU7XG5gOwogICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGV4cGVj
dGVkLCAiYGRpc3BsYXk6IGlubGluZWAgcHJvcGVydHkgc2hvdWxkIGJlIGFwcGVuZGVkLiIpOwog
CiAgICAgICAgICAgICBzdHlsZURlY2xhcmF0aW9uLmxvY2tlZCA9IGZhbHNlOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5Lmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1jc3MtcHJvcGVydHkuaHRtbAppbmRleCAy
ODYzZjc4MjUwZGEuLjIzNGIzODU2N2I4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5Lmh0bWwKQEAgLTQ0LDcgKzQ0LDcgQEAgZnVuY3Rp
b24gdGVzdCgpIHsKIAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChnZXRQ
cm9wZXJ0eSgiZm9udC1zaXplIikucmF3VmFsdWUsICIxMHB4IiwgYCJmb250LXNpemUiIHByb3Bl
cnR5IHZhbHVlIHNob3VsZCB1cGRhdGUgaW1tZWRpYXRlbHkuYCk7CiAKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0LCBgZm9udC1zaXpl
OiAxMHB4OyBjb2xvcjogYW50aXF1ZXdoaXRlYCwgYFN0eWxlIGRlY2xhcmF0aW9uIHRleHQgc2hv
dWxkIHVwZGF0ZSBpbW1lZGlhdGVseS5gKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0LCBgXG4gICAgZm9udC1zaXplOiAxMHB4O1xu
ICAgIGNvbG9yOiBhbnRpcXVld2hpdGU7XG5gLCBgU3R5bGUgZGVjbGFyYXRpb24gdGV4dCBzaG91
bGQgdXBkYXRlIGltbWVkaWF0ZWx5LmApOwogCiAgICAgICAgICAgICByZXNvbHZlKCk7CiAgICAg
ICAgIH0KQEAgLTgwLDEyICs4MCwxMSBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChnZXRQcm9wZXJ0eSgiZm9udC1zaXplIikucmF3VmFs
dWUsICIxNnB4IiwgYCJmb250LXNpemUiIHByb3BlcnR5IHZhbHVlIHNob3VsZCB1cGRhdGUgaW1t
ZWRpYXRlbHkuYCk7CiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5
bGVEZWNsYXJhdGlvbi50ZXh0LCBgCi0gICAgICAgIGZvbnQtc2l6ZTogMTZweDsKLSAgICAgICAg
Y29sb3I6ICMzMzM7Ci0KLSAgICAgICAgbWFyZ2luLWxlZnQ6IDA7Ci0gICAgICAgIG1hcmdpbi10
b3A6IDFlbTsKLSAgICBgLCBgU3R5bGUgZGVjbGFyYXRpb24gdGV4dCBzaG91bGQgdXBkYXRlIGlt
bWVkaWF0ZWx5LmApOworICAgIGZvbnQtc2l6ZTogMTZweDsKKyAgICBjb2xvcjogIzMzMzsKKyAg
ICBtYXJnaW4tbGVmdDogMDsKKyAgICBtYXJnaW4tdG9wOiAxZW07CitgLCBgU3R5bGUgZGVjbGFy
YXRpb24gdGV4dCBzaG91bGQgdXBkYXRlIGltbWVkaWF0ZWx5LmApOwogCiAgICAgICAgICAgICBz
dHlsZURlY2xhcmF0aW9uLmxvY2tlZCA9IGZhbHNlOwogCkBAIC0yNDMsNyArMjQyLDcgQEAgZnVu
Y3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgIGxldCBkaXNhYmxlZCA9IGZhbHNlOwogICAgICAg
ICAgICAgZ2V0UHJvcGVydHkoInBhZGRpbmctcmlnaHQiKS5jb21tZW50T3V0KGRpc2FibGVkKTsK
IAotICAgICAgICAgICAgbGV0IGV4cGVjdGVkU3R5bGVUZXh0ID0gYFxuICAgICAgICAvKiBwYWRk
aW5nLWxlZnQ6IDJlbTsgKi9cbiAgICAgICAgcGFkZGluZy1yaWdodDogMHB4O1xuICAgIGA7Cisg
ICAgICAgICAgICBsZXQgZXhwZWN0ZWRTdHlsZVRleHQgPSBgXG4gICAgLyogcGFkZGluZy1sZWZ0
OiAyZW07ICovXG4gICAgcGFkZGluZy1yaWdodDogMHB4O1xuYDsKICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0LCBleHBlY3RlZFN0eWxl
VGV4dCwgYFN0eWxlIGRlY2xhcmF0aW9uIHRleHQgc2hvdWxkIHVwZGF0ZSBpbW1lZGlhdGVseSB3
aXRoIHVuY29tbWVudGVkIHByb3BlcnR5LmApOwogCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRoYXQoZ2V0UHJvcGVydHkoInBhZGRpbmctcmlnaHQiKS5lbmFibGVkLCBgVW5jb21t
ZW50ZWQgcHJvcGVydHkgc2hvdWxkIGJlIGVuYWJsZWQuYCk7CkBAIC0yNTEsNyArMjUwLDcgQEAg
ZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgIGRpc2FibGVkID0gdHJ1ZTsKICAgICAgICAg
ICAgIGdldFByb3BlcnR5KCJwYWRkaW5nLXJpZ2h0IikuY29tbWVudE91dChkaXNhYmxlZCk7CiAK
LSAgICAgICAgICAgIGV4cGVjdGVkU3R5bGVUZXh0ID0gYFxuICAgICAgICAvKiBwYWRkaW5nLWxl
ZnQ6IDJlbTsgKi9cbiAgICAgICAgLyogcGFkZGluZy1yaWdodDogMHB4OyAqL1xuICAgIGA7Cisg
ICAgICAgICAgICBleHBlY3RlZFN0eWxlVGV4dCA9IGBcbiAgICAvKiBwYWRkaW5nLWxlZnQ6IDJl
bTsgKi9cbiAgICAvKiBwYWRkaW5nLXJpZ2h0OiAwcHg7ICovXG5gOwogICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGV4cGVjdGVkU3R5
bGVUZXh0LCBgU3R5bGUgZGVjbGFyYXRpb24gdGV4dCBzaG91bGQgdXBkYXRlIGltbWVkaWF0ZWx5
IHdpdGggY29tbWVudGVkIG91dCBwcm9wZXJ0eS5gKTsKIAogICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RUaGF0KCFnZXRQcm9wZXJ0eSgicGFkZGluZy1yaWdodCIpLmVuYWJsZWQsIGBD
b21tZW50ZWQgb3V0IHByb3BlcnR5IHNob3VsZCBiZSBkaXNhYmxlZC5gKTsKQEAgLTI5MCw3ICsy
ODksNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgbGV0IGRpc2FibGVkID0gZmFs
c2U7CiAgICAgICAgICAgICBnZXRQcm9wZXJ0eSgiZm9udC1zaXplIikuY29tbWVudE91dChkaXNh
YmxlZCk7CiAKLSAgICAgICAgICAgIGxldCBleHBlY3RlZFN0eWxlVGV4dCA9IGBmb250LXNpemU6
IDEzcHg7Lypib3JkZXI6IDJweCBzb2xpZCBicm93biovYDsKKyAgICAgICAgICAgIGxldCBleHBl
Y3RlZFN0eWxlVGV4dCA9IGBcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgLyogYm9yZGVyOiAy
cHggc29saWQgYnJvd247ICovXG5gOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RF
cXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGV4cGVjdGVkU3R5bGVUZXh0LCBgU3R5bGUgZGVj
bGFyYXRpb24gdGV4dCBzaG91bGQgdXBkYXRlIGltbWVkaWF0ZWx5IHdpdGggdW5jb21tZW50ZWQg
cHJvcGVydHkuYCk7CiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChnZXRQ
cm9wZXJ0eSgiZm9udC1zaXplIikuZW5hYmxlZCwgYFVuY29tbWVudGVkIHByb3BlcnR5IHNob3Vs
ZCBiZSBlbmFibGVkLmApOwpAQCAtMjk5LDcgKzI5OCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAg
ICAgICAgICAgICBkaXNhYmxlZCA9IGZhbHNlOwogICAgICAgICAgICAgZ2V0UHJvcGVydHkoImJv
cmRlciIpLmNvbW1lbnRPdXQoZGlzYWJsZWQpOwogCi0gICAgICAgICAgICBleHBlY3RlZFN0eWxl
VGV4dCA9IGBmb250LXNpemU6IDEzcHg7Ym9yZGVyOiAycHggc29saWQgYnJvd25gOworICAgICAg
ICAgICAgZXhwZWN0ZWRTdHlsZVRleHQgPSBgXG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGJv
cmRlcjogMnB4IHNvbGlkIGJyb3duO1xuYDsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0LCBleHBlY3RlZFN0eWxlVGV4dCwgYFN0eWxl
IGRlY2xhcmF0aW9uIHRleHQgc2hvdWxkIHVwZGF0ZSBpbW1lZGlhdGVseSB3aXRoIGNvbW1lbnRl
ZCBvdXQgcHJvcGVydHkuYCk7CiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhh
dChnZXRQcm9wZXJ0eSgiYm9yZGVyIikuZW5hYmxlZCwgYFVuY29tbWVudGVkIHByb3BlcnR5IHNo
b3VsZCBiZSBlbmFibGVkLmApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nz
cy9tb2RpZnktaW5saW5lLXN0eWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jc3MvbW9kaWZ5LWlubGluZS1zdHlsZS1leHBlY3RlZC50eHQKaW5kZXggMzk3Y2E2NjMwNWY3
Li40MTIzNWVmYjE4OWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9k
aWZ5LWlubGluZS1zdHlsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2Nzcy9tb2RpZnktaW5saW5lLXN0eWxlLWV4cGVjdGVkLnR4dApAQCAtNywxMiArNywxMiBAQCBD
U1NQcm9wZXJ0eSBjaGFuZ2VkIHRvICJmb250OiAxMnB4IG5vcm1hbCBzYW5zLXNlcmlmIWltcG9y
dGFudDsiLgogZm9udDogMTJweCBub3JtYWwgc2Fucy1zZXJpZiFpbXBvcnRhbnQ7CiAKIENTU1By
b3BlcnR5IGNoYW5nZWQgdG8gImNvbG9yOiByZWQ7Ii4KLWZvbnQ6IDEycHggbm9ybWFsIHNhbnMt
c2VyaWYhaW1wb3J0YW50O2NvbG9yOiByZWQ7Citmb250OiAxMnB4IG5vcm1hbCBzYW5zLXNlcmlm
IWltcG9ydGFudDsgY29sb3I6IHJlZDsKIAogQ1NTUHJvcGVydHkgY2hhbmdlZCB0byAiZm9udDog
MTJweCBzYW5zLXNlcmlmOyIuCi1mb250OiAxMnB4IHNhbnMtc2VyaWY7Y29sb3I6IHJlZDsKK2Zv
bnQ6IDEycHggc2Fucy1zZXJpZjsgY29sb3I6IHJlZDsKIAogQ1NTUHJvcGVydHkgY2hhbmdlZCB0
byAiY29sb3I6IGludmFsaWRfYzAxMHI7Ii4KLWZvbnQ6IDEycHggc2Fucy1zZXJpZjtjb2xvcjog
aW52YWxpZF9jMDEwcjsKK2ZvbnQ6IDEycHggc2Fucy1zZXJpZjsgY29sb3I6IGludmFsaWRfYzAx
MHI7CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggMmI1ODcxMjE4NTNhLi40MDQ1ZGI0
YmFhNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIxLTA2
LTAyICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IFN0eWxlczogZm9ybWF0IHN0eWxlIGRlY2xhcmF0aW9ucyBhZnRlciBlZGl0
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg4
MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1MTg1MDYwPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluZGVudCBDU1MgcHJvcGVydGllcyB3aXRo
IHNwYWNlcy90YWJzIHNldCBpbiBXZWIgSW5zcGVjdG9yIHNldHRpbmdzLiBJbmNyZXNlIGluZGVu
dGF0aW9uIGxldmVsIHdoZW4gQ1NTIHJ1bGVzIGFyZQorICAgICAgICBpbnNpZGUgb2YgYXQtcnVs
ZXMgKGUuZy4gQG1lZGlhLCBAa2V5ZnJhbWVzLCBAc3VwcG9ydHMpLgorCisgICAgICAgIERvbid0
IGluZGVudCBDU1MgcHJvcGVydGllcyBpbiBzdHlsZSBhdHRyaWJ1dGVzLiBLZWVwIHRoZW0gb24g
dGhlIHNpbmdsZSBsaW5lLCBzZXBhcmF0ZWQgYnkgYSBzcGFjZSBjaGFyYWN0ZXI6CisKKyAgICAg
ICAgICAgIHN0eWxlPSJmb250LXNpemU6IDEycHg7IGNvbG9yOiBibGFjazsiCisKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL01vZGVscy9DU1NQcm9wZXJ0eS5qczoKKyAgICAgICAgKFdJLkNTU1By
b3BlcnR5LnByb3RvdHlwZS5yZXBsYWNlV2l0aFRleHQpOgorICAgICAgICBJbnRyb2R1Y2UgYF9w
ZW5kaW5nVGV4dGAgcHJvcGVydHkuIEl0J3Mgb25seSBzZXQgd2hlbiBwYXN0aW5nIENTUyBwcm9w
ZXJ0eSB0ZXh0IGludG8gdGhlIENTUyBwcm9wZXJ0eSBuYW1lIGZpZWxkLgorCisgICAgICAgIChX
SS5DU1NQcm9wZXJ0eS5wcm90b3R5cGUuc2V0IHRleHQpOgorICAgICAgICAoV0kuQ1NTUHJvcGVy
dHkucHJvdG90eXBlLmdldCBmb3JtYXR0ZWRUZXh0KToKKworICAgICAgICAoV0kuQ1NTUHJvcGVy
dHkucHJvdG90eXBlLl91cGRhdGVTdHlsZVRleHQpOgorICAgICAgICAoV0kuQ1NTUHJvcGVydHku
cHJvdG90eXBlLl91cGRhdGVPd25lclN0eWxlVGV4dCk6CisgICAgICAgIChXSS5DU1NQcm9wZXJ0
eS5wcm90b3R5cGUuX3ByZXBlbmRTZW1pY29sb25JZk5lZWRlZCk6IERlbGV0ZWQuCisgICAgICAg
IEdyZWF0bHkgc2ltcGxpZnkgdGhlIGxvZ2ljIG5vdyB0aGF0IHdlIHNhdmUgZm9ybWF0dGVkIHRl
eHQgYW5kIGRvbid0IG1vZGlmeSBzdHlsZVRleHQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L01vZGVscy9DU1NTdHlsZURlY2xhcmF0aW9uLmpzOgorICAgICAgICAoV0kuQ1NTU3R5bGVEZWNs
YXJhdGlvbi5wcm90b3R5cGUucmVtb3ZlUHJvcGVydHkpOgorICAgICAgICAoV0kuQ1NTU3R5bGVE
ZWNsYXJhdGlvbi5wcm90b3R5cGUucmVtb3ZlUHJvcGVydHkpOiBSZW5hbWVkIGZyb20gJ3NoaWZ0
UHJvcGVydGllc0FmdGVyJy4KKyAgICAgICAgUmVtb2RlIHVubmVjZXNzYXJ5IGNvZGUgdGhhdCBt
b2RpZmllcyBgX3N0eWxlU2hlZXRUZXh0UmFuZ2VgLiBUaGUgYmFja2VuZCBzZW5kcyBuZXcgYF9z
dHlsZVNoZWV0VGV4dFJhbmdlYCBkYXRhCisgICAgICAgIHVub24gYSBjaGFuZ2UuCisKKyAgICAg
ICAgKFdJLkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlLmdlbmVyYXRlQ1NTUnVsZVN0cmlu
Zyk6CisgICAgICAgIChXSS5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5nZW5lcmF0ZUZv
cm1hdHRlZFRleHQpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvVGV4dFJhbmdl
LmpzOgorICAgICAgICAoV0kuVGV4dFJhbmdlLnByb3RvdHlwZS5jb2xsYXBzZVRvRW5kKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdJLlRleHRSYW5nZSk6IERlbGV0ZWQuCisgICAgICAgIFJlbW92ZSB1
bnVzZWQgY29kZS4KKwogMjAyMS0wNS0wNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5j
b20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIGFzc2VydGlvbiBmb3IgYFdJLlZpZXdg
IHJlLWVudHJhbmN5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvQ1NTUHJvcGVydHkuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvQ1NTUHJvcGVydHkuanMKaW5kZXggMjc4YTY3MTU0OGJkLi5mZTcwMjI4
N2Y1ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9DU1NQcm9wZXJ0eS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Nb2RlbHMvQ1NTUHJvcGVydHkuanMKQEAgLTE1NSw3ICsxNTUsOSBAQCBXSS5DU1NQcm9w
ZXJ0eSA9IGNsYXNzIENTU1Byb3BlcnR5IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgewogICAgICAg
ICB0aGlzLl9tYXJrTW9kaWZpZWQoKTsKIAotICAgICAgICB0aGlzLl91cGRhdGVPd25lclN0eWxl
VGV4dCh0aGlzLl90ZXh0LCB0ZXh0LCB0cnVlKTsKKyAgICAgICAgdGhpcy5fcGVuZGluZ1RleHQg
PSB0ZXh0OworICAgICAgICB0aGlzLl91cGRhdGVPd25lclN0eWxlVGV4dCgpOworICAgICAgICB0
aGlzLl9wZW5kaW5nVGV4dCA9IG51bGw7CiAgICAgfQogCiAgICAgY29tbWVudE91dChkaXNhYmxl
ZCkKQEAgLTE4NCwxMiArMTg2LDE1IEBAIFdJLkNTU1Byb3BlcnR5ID0gY2xhc3MgQ1NTUHJvcGVy
dHkgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB0aGlz
Ll9tYXJrTW9kaWZpZWQoKTsKLSAgICAgICAgdGhpcy5fdXBkYXRlT3duZXJTdHlsZVRleHQodGhp
cy5fdGV4dCwgbmV3VGV4dCk7CisgICAgICAgIHRoaXMuX3VwZGF0ZU93bmVyU3R5bGVUZXh0KCk7
CiAgICAgICAgIHRoaXMuX3RleHQgPSBuZXdUZXh0OwogICAgIH0KIAogICAgIGdldCBmb3JtYXR0
ZWRUZXh0KCkKICAgICB7CisgICAgICAgIGlmICh0aGlzLl9wZW5kaW5nVGV4dCkKKyAgICAgICAg
ICAgIHJldHVybiB0aGlzLl9wZW5kaW5nVGV4dC50cmltKCk7CisKICAgICAgICAgaWYgKCF0aGlz
Ll9uYW1lKQogICAgICAgICAgICAgcmV0dXJuICIiOwogCkBAIC00NjgsNzQgKzQ3MywyNCBAQCBX
SS5DU1NQcm9wZXJ0eSA9IGNsYXNzIENTU1Byb3BlcnR5IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAg
ICAgICAgICB0ZXh0ID0gdGhpcy5fbmFtZSArICI6ICIgKyB2YWx1ZSArICI7IjsKICAgICAgICAg
fQogCi0gICAgICAgIGxldCBvbGRUZXh0ID0gdGhpcy5fdGV4dDsKICAgICAgICAgdGhpcy5fdGV4
dCA9IHRleHQ7Ci0gICAgICAgIHRoaXMuX3VwZGF0ZU93bmVyU3R5bGVUZXh0KG9sZFRleHQsIHRo
aXMuX3RleHQsIGZvcmNlUmVtb3ZlKTsKKworICAgICAgICBpZiAoZm9yY2VSZW1vdmUpCisgICAg
ICAgICAgICB0aGlzLl9vd25lclN0eWxlLnJlbW92ZVByb3BlcnR5KHRoaXMpOworCisgICAgICAg
IHRoaXMuX3VwZGF0ZU93bmVyU3R5bGVUZXh0KGZvcmNlUmVtb3ZlKTsKICAgICB9CiAKLSAgICBf
dXBkYXRlT3duZXJTdHlsZVRleHQob2xkVGV4dCwgbmV3VGV4dCwgZm9yY2VSZW1vdmUgPSBmYWxz
ZSkKKyAgICBfdXBkYXRlT3duZXJTdHlsZVRleHQoKQogICAgIHsKLSAgICAgICAgaWYgKG9sZFRl
eHQgPT09IG5ld1RleHQpIHsKLSAgICAgICAgICAgIGlmIChmb3JjZVJlbW92ZSkgewotICAgICAg
ICAgICAgICAgIGNvbnN0IGxpbmVEZWx0YSA9IDA7Ci0gICAgICAgICAgICAgICAgY29uc3QgY29s
dW1uRGVsdGEgPSAwOwotICAgICAgICAgICAgICAgIHRoaXMuX293bmVyU3R5bGUuc2hpZnRQcm9w
ZXJ0aWVzQWZ0ZXIodGhpcywgbGluZURlbHRhLCBjb2x1bW5EZWx0YSwgZm9yY2VSZW1vdmUpOwot
ICAgICAgICAgICAgICAgIHRoaXMuX293bmVyU3R5bGUudXBkYXRlUHJvcGVydGllc01vZGlmaWVk
U3RhdGUoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX293bmVyU3R5bGUpOwogICAgICAgICBpZiAo
IXRoaXMuX293bmVyU3R5bGUpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdGhpcy5f
cHJlcGVuZFNlbWljb2xvbklmTmVlZGVkKCk7Ci0KLSAgICAgICAgbGV0IHN0eWxlVGV4dCA9IHRo
aXMuX293bmVyU3R5bGUudGV4dCB8fCAiIjsKLQotICAgICAgICAvLyBfc3R5bGVTaGVldFRleHRS
YW5nZSBpcyB0aGUgcG9zaXRpb24gb2YgdGhlIHByb3BlcnR5IHdpdGhpbiB0aGUgc3R5bGVzaGVl
dC4KLSAgICAgICAgLy8gcmFuZ2UgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBwcm9wZXJ0eSB3aXRo
aW4gdGhlIHJ1bGUuCi0gICAgICAgIGxldCByYW5nZSA9IHRoaXMuX3N0eWxlU2hlZXRUZXh0UmFu
Z2UucmVsYXRpdmVUbyh0aGlzLl9vd25lclN0eWxlLnN0eWxlU2hlZXRUZXh0UmFuZ2Uuc3RhcnRM
aW5lLCB0aGlzLl9vd25lclN0eWxlLnN0eWxlU2hlZXRUZXh0UmFuZ2Uuc3RhcnRDb2x1bW4pOwot
Ci0gICAgICAgIC8vIEFwcGVuZCBhIGxpbmUgYnJlYWsgdG8gY291bnQgdGhlIGxhc3QgbGluZSBv
ZiBzdHlsZVRleHQgdG93YXJkcyBlbmRPZmZzZXQuCi0gICAgICAgIHJhbmdlLnJlc29sdmVPZmZz
ZXRzKHN0eWxlVGV4dCArICJcbiIpOwotCi0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KG9sZFRleHQg
PT09IHN0eWxlVGV4dC5zbGljZShyYW5nZS5zdGFydE9mZnNldCwgcmFuZ2UuZW5kT2Zmc2V0KSwg
Il9zdHlsZVNoZWV0VGV4dFJhbmdlIGRhdGEgaXMgaW52YWxpZC4iKTsKLQotICAgICAgICBpZiAo
V0kuc2V0dGluZ3MuZGVidWdFbmFibGVTdHlsZUVkaXRpbmdEZWJ1Z01vZGUudmFsdWUpIHsKLSAg
ICAgICAgICAgIGxldCBwcmVmaXggPSBzdHlsZVRleHQuc2xpY2UoMCwgcmFuZ2Uuc3RhcnRPZmZz
ZXQpOwotICAgICAgICAgICAgbGV0IHBvc3RmaXggPSBzdHlsZVRleHQuc2xpY2UocmFuZ2UuZW5k
T2Zmc2V0KTsKLSAgICAgICAgICAgIGNvbnNvbGUuaW5mbyhgJHtwcmVmaXh9JWMke29sZFRleHR9
JWMke25ld1RleHR9JWMke3Bvc3RmaXh9YCwgYGJhY2tncm91bmQ6IGhzbCgzNTYsIDEwMCUsIDkw
JSk7IGNvbG9yOiBibGFja2AsIGBiYWNrZ3JvdW5kOiBoc2woMTAwLCAxMDAlLCA5MSUpOyBjb2xv
cjogYmxhY2tgLCBgYmFja2dyb3VuZDogdHJhbnNwYXJlbnRgKTsKLSAgICAgICAgfQotCi0gICAg
ICAgIGxldCBuZXdTdHlsZVRleHQgPSBzdHlsZVRleHQuc2xpY2UoMCwgcmFuZ2Uuc3RhcnRPZmZz
ZXQpICsgbmV3VGV4dCArIHN0eWxlVGV4dC5zbGljZShyYW5nZS5lbmRPZmZzZXQpOwotCi0gICAg
ICAgIGxldCBsaW5lRGVsdGEgPSBuZXdUZXh0LmxpbmVDb3VudCAtIG9sZFRleHQubGluZUNvdW50
OwotICAgICAgICBsZXQgY29sdW1uRGVsdGEgPSBuZXdUZXh0Lmxhc3RMaW5lLmxlbmd0aCAtIG9s
ZFRleHQubGFzdExpbmUubGVuZ3RoOwotICAgICAgICB0aGlzLl9zdHlsZVNoZWV0VGV4dFJhbmdl
ID0gdGhpcy5fc3R5bGVTaGVldFRleHRSYW5nZS5jbG9uZUFuZE1vZGlmeSgwLCAwLCBsaW5lRGVs
dGEsIGNvbHVtbkRlbHRhKTsKLQotICAgICAgICB0aGlzLl9vd25lclN0eWxlLnRleHQgPSBuZXdT
dHlsZVRleHQ7Ci0KLSAgICAgICAgbGV0IHByb3BlcnR5V2FzUmVtb3ZlZCA9ICFuZXdUZXh0Owot
ICAgICAgICB0aGlzLl9vd25lclN0eWxlLnNoaWZ0UHJvcGVydGllc0FmdGVyKHRoaXMsIGxpbmVE
ZWx0YSwgY29sdW1uRGVsdGEsIHByb3BlcnR5V2FzUmVtb3ZlZCk7CisgICAgICAgIHRoaXMuX293
bmVyU3R5bGUudGV4dCA9IHRoaXMuX293bmVyU3R5bGUuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0KCk7
CiAgICAgICAgIHRoaXMuX293bmVyU3R5bGUudXBkYXRlUHJvcGVydGllc01vZGlmaWVkU3RhdGUo
KTsKICAgICB9CiAKLSAgICBfcHJlcGVuZFNlbWljb2xvbklmTmVlZGVkKCkKLSAgICB7Ci0gICAg
ICAgIGZvciAobGV0IGkgPSB0aGlzLmluZGV4IC0gMTsgaSA+PSAwOyAtLWkpIHsKLSAgICAgICAg
ICAgIGxldCBwcm9wZXJ0eSA9IHRoaXMuX293bmVyU3R5bGUucHJvcGVydGllc1tpXTsKLSAgICAg
ICAgICAgIGlmICghcHJvcGVydHkuZW5hYmxlZCkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsK
LQotICAgICAgICAgICAgbGV0IG1hdGNoID0gcHJvcGVydHkudGV4dC5tYXRjaCgvW147XHNdKFxz
KikkLyk7Ci0gICAgICAgICAgICBpZiAobWF0Y2gpCi0gICAgICAgICAgICAgICAgcHJvcGVydHku
dGV4dCA9IHByb3BlcnR5LnRleHQudHJpbVJpZ2h0KCkgKyAiOyIgKyBtYXRjaFsxXTsKLQotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICBfbWFya01vZGlmaWVkKCkK
ICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9vd25lclN0eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1N0eWxlRGVjbGFyYXRpb24u
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTU3R5bGVE
ZWNsYXJhdGlvbi5qcwppbmRleCA3MDkxMDFmNDJhODcuLmEwN2M3N2VhZThkNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1N0eWxlRGVj
bGFyYXRpb24uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL0NTU1N0eWxlRGVjbGFyYXRpb24uanMKQEAgLTQ0NSwzMiArNDQ1LDE0IEBAIFdJLkNTU1N0
eWxlRGVjbGFyYXRpb24gPSBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uIGV4dGVuZHMgV0kuT2Jq
ZWN0CiAgICAgICAgIFdJLmNzc01hbmFnZXIuYWRkTW9kaWZpZWRTdHlsZSh0aGlzKTsKICAgICB9
CiAKLSAgICBzaGlmdFByb3BlcnRpZXNBZnRlcihjc3NQcm9wZXJ0eSwgbGluZURlbHRhLCBjb2x1
bW5EZWx0YSwgcHJvcGVydHlXYXNSZW1vdmVkKQorICAgIHJlbW92ZVByb3BlcnR5KGNzc1Byb3Bl
cnR5KQogICAgIHsKICAgICAgICAgLy8gY3NzUHJvcGVydHkuaW5kZXggY291bGQgYmUgc2V0IHRv
IE5hTiBieSBXSS5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS51cGRhdGUuCiAgICAgICAg
IGxldCByZWFsSW5kZXggPSB0aGlzLl9wcm9wZXJ0aWVzLmluZGV4T2YoY3NzUHJvcGVydHkpOwog
ICAgICAgICBpZiAocmVhbEluZGV4ID09PSAtMSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAg
ICAgICBsZXQgZW5kTGluZSA9IGNzc1Byb3BlcnR5LnN0eWxlU2hlZXRUZXh0UmFuZ2UuZW5kTGlu
ZTsKLQotICAgICAgICBmb3IgKGxldCBpID0gcmVhbEluZGV4ICsgMTsgaSA8IHRoaXMuX3Byb3Bl
cnRpZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIGxldCBwcm9wZXJ0eSA9IHRoaXMuX3By
b3BlcnRpZXNbaV07Ci0KLSAgICAgICAgICAgIGlmIChwcm9wZXJ0eS5fc3R5bGVTaGVldFRleHRS
YW5nZSkgewotICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eS5zdHlsZVNoZWV0VGV4dFJhbmdl
LnN0YXJ0TGluZSA9PT0gZW5kTGluZSkgewotICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IHVw
ZGF0ZSBjb2x1bW4gZGF0YSBpZiBpdCdzIG9uIHRoZSBzYW1lIGxpbmUuCi0gICAgICAgICAgICAg
ICAgICAgIHByb3BlcnR5Ll9zdHlsZVNoZWV0VGV4dFJhbmdlID0gcHJvcGVydHkuX3N0eWxlU2hl
ZXRUZXh0UmFuZ2UuY2xvbmVBbmRNb2RpZnkobGluZURlbHRhLCBjb2x1bW5EZWx0YSwgbGluZURl
bHRhLCBjb2x1bW5EZWx0YSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAg
ICAgICAgIHByb3BlcnR5Ll9zdHlsZVNoZWV0VGV4dFJhbmdlID0gcHJvcGVydHkuX3N0eWxlU2hl
ZXRUZXh0UmFuZ2UuY2xvbmVBbmRNb2RpZnkobGluZURlbHRhLCAwLCBsaW5lRGVsdGEsIDApOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAocHJvcGVydHlXYXNSZW1vdmVkICYmICFp
c05hTihwcm9wZXJ0eS5faW5kZXgpKQotICAgICAgICAgICAgICAgIHByb3BlcnR5Ll9pbmRleC0t
OwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHByb3BlcnR5V2FzUmVtb3ZlZCkKLSAgICAgICAg
ICAgIHRoaXMuX3Byb3BlcnRpZXMuc3BsaWNlKHJlYWxJbmRleCwgMSk7CisgICAgICAgIHRoaXMu
X3Byb3BlcnRpZXMuc3BsaWNlKHJlYWxJbmRleCwgMSk7CiAKICAgICAgICAgLy8gSW52YWxpZGF0
ZSBjYWNoZWQgcHJvcGVydGllcy4KICAgICAgICAgdGhpcy5fZW5hYmxlZFByb3BlcnRpZXMgPSBu
dWxsOwpAQCAtNTE2LDEwICs0OTgsOCBAQCBXSS5DU1NTdHlsZURlY2xhcmF0aW9uID0gY2xhc3Mg
Q1NTU3R5bGVEZWNsYXJhdGlvbiBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBmb3IgKGxldCBp
ID0gZ3JvdXBpbmdzQ291bnQgLSAxOyBpID49IDA7IC0taSkKICAgICAgICAgICAgIHN0eWxlVGV4
dCArPSBpbmRlbnRTdHJpbmcucmVwZWF0KGdyb3VwaW5nc0NvdW50IC0gaSAtIDEpICsgZ3JvdXBp
bmdzW2ldLnByZWZpeCArICIgIiArIGdyb3VwaW5nc1tpXS50ZXh0ICsgIiB7XG4iOwogCi0gICAg
ICAgIHN0eWxlVGV4dCArPSBpbmRlbnRTdHJpbmcucmVwZWF0KGdyb3VwaW5nc0NvdW50KSArIHRo
aXMuc2VsZWN0b3JUZXh0ICsgIiB7XG4iOwotCi0gICAgICAgIGZvciAobGV0IHByb3BlcnR5IG9m
ICh0aGlzLl9zdHlsZVNoZWV0VGV4dFJhbmdlID8gdGhpcy52aXNpYmxlUHJvcGVydGllcyA6IHRo
aXMuX3Byb3BlcnRpZXMpKQotICAgICAgICAgICAgc3R5bGVUZXh0ICs9IGluZGVudFN0cmluZy5y
ZXBlYXQoZ3JvdXBpbmdzQ291bnQgKyAxKSArIHByb3BlcnR5LmZvcm1hdHRlZFRleHQgKyAiXG4i
OworICAgICAgICBzdHlsZVRleHQgKz0gaW5kZW50U3RyaW5nLnJlcGVhdChncm91cGluZ3NDb3Vu
dCkgKyB0aGlzLnNlbGVjdG9yVGV4dCArICIgeyI7CisgICAgICAgIHN0eWxlVGV4dCArPSB0aGlz
LmdlbmVyYXRlRm9ybWF0dGVkVGV4dCh7Zm9yY2VNdWx0aWxpbmU6IHRydWUsIGV4Y2x1ZGVUcmFp
bGluZ0xpbmU6IHRydWV9KSArICJcbiI7CiAKICAgICAgICAgZm9yIChsZXQgaSA9IGdyb3VwaW5n
c0NvdW50OyBpID4gMDsgLS1pKQogICAgICAgICAgICAgc3R5bGVUZXh0ICs9IGluZGVudFN0cmlu
Zy5yZXBlYXQoaSkgKyAifVxuIjsKQEAgLTUyOSw2ICs1MDksMzIgQEAgV0kuQ1NTU3R5bGVEZWNs
YXJhdGlvbiA9IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb24gZXh0ZW5kcyBXSS5PYmplY3QKICAg
ICAgICAgcmV0dXJuIHN0eWxlVGV4dDsKICAgICB9CiAKKyAgICBnZW5lcmF0ZUZvcm1hdHRlZFRl
eHQob3B0aW9ucyA9IHt9KQorICAgIHsKKyAgICAgICAgbGV0IHByb3BlcnRpZXMgPSB0aGlzLl9z
dHlsZVNoZWV0VGV4dFJhbmdlID8gdGhpcy52aXNpYmxlUHJvcGVydGllcyA6IHRoaXMuX3Byb3Bl
cnRpZXM7CisgICAgICAgIGlmICghcHJvcGVydGllcy5sZW5ndGgpCisgICAgICAgICAgICByZXR1
cm4gIiI7CisKKyAgICAgICAgaWYgKHRoaXMuX3R5cGUgIT09IFdJLkNTU1N0eWxlRGVjbGFyYXRp
b24uVHlwZS5SdWxlICYmICFvcHRpb25zLmZvcmNlTXVsdGlsaW5lKQorICAgICAgICAgICAgcmV0
dXJuIHByb3BlcnRpZXMubWFwKChwcm9wZXJ0eSkgPT4gcHJvcGVydHkuZm9ybWF0dGVkVGV4dCku
am9pbigiICIpOworCisgICAgICAgIGxldCBzdHlsZVRleHQgPSAiIjsKKyAgICAgICAgbGV0IGdy
b3VwaW5ncyA9IHRoaXMuZ3JvdXBpbmdzLmZpbHRlcigoZ3JvdXBpbmcpID0+IGdyb3VwaW5nLnRl
eHQgIT09ICJhbGwiKTsKKyAgICAgICAgbGV0IGluZGVudGF0aW9uTGV2ZWwgPSBncm91cGluZ3Mu
bGVuZ3RoOworICAgICAgICBsZXQgaW5kZW50U3RyaW5nID0gV0kuaW5kZW50U3RyaW5nKCk7Cisg
ICAgICAgIGxldCBwcm9wZXJ0eUluZGVudCA9IGluZGVudFN0cmluZy5yZXBlYXQoaW5kZW50YXRp
b25MZXZlbCArIDEpOworCisgICAgICAgIGZvciAobGV0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMp
CisgICAgICAgICAgICBzdHlsZVRleHQgKz0gIlxuIiArIHByb3BlcnR5SW5kZW50ICsgcHJvcGVy
dHkuZm9ybWF0dGVkVGV4dDsKKworICAgICAgICBpZiAoIW9wdGlvbnMuZXhjbHVkZVRyYWlsaW5n
TGluZSkgeworICAgICAgICAgICAgLy8gSW5kZW50IHRoZSBjbG9zaW5nICJ9IiBmb3IgbmVzdGVk
IHJ1bGVzLgorICAgICAgICAgICAgc3R5bGVUZXh0ICs9ICJcbiIgKyBpbmRlbnRTdHJpbmcucmVw
ZWF0KGluZGVudGF0aW9uTGV2ZWwpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHN0eWxl
VGV4dDsKKyAgICB9CisKICAgICAvLyBQcm90ZWN0ZWQKIAogICAgIGdldCBub2RlU3R5bGVzKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9U
ZXh0UmFuZ2UuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
VGV4dFJhbmdlLmpzCmluZGV4IDZhNmU3YTA1MWY3NC4uNGIyZjJkYjIxYjU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVGV4dFJhbmdlLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9UZXh0UmFu
Z2UuanMKQEAgLTEyMywxOSArMTIzLDYgQEAgV0kuVGV4dFJhbmdlID0gY2xhc3MgVGV4dFJhbmdl
CiAgICAgICAgIHJldHVybiBuZXcgV0kuVGV4dFJhbmdlKHRoaXMuX3N0YXJ0TGluZSwgdGhpcy5f
c3RhcnRDb2x1bW4sIHRoaXMuX2VuZExpbmUsIHRoaXMuX2VuZENvbHVtbik7CiAgICAgfQogCi0g
ICAgY2xvbmVBbmRNb2RpZnkoZGVsdGFTdGFydExpbmUsIGRlbHRhU3RhcnRDb2x1bW4sIGRlbHRh
RW5kTGluZSwgZGVsdGFFbmRDb2x1bW4pCi0gICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCgh
aXNOYU4odGhpcy5fc3RhcnRMaW5lKSwgIlRleHRSYW5nZSBuZWVkcyBsaW5lL2NvbHVtbiBkYXRh
LiIpOwotCi0gICAgICAgIGxldCBzdGFydExpbmUgPSB0aGlzLl9zdGFydExpbmUgKyBkZWx0YVN0
YXJ0TGluZTsKLSAgICAgICAgbGV0IHN0YXJ0Q29sdW1uID0gdGhpcy5fc3RhcnRDb2x1bW4gKyBk
ZWx0YVN0YXJ0Q29sdW1uOwotICAgICAgICBsZXQgZW5kTGluZSA9IHRoaXMuX2VuZExpbmUgKyBk
ZWx0YUVuZExpbmU7Ci0gICAgICAgIGxldCBlbmRDb2x1bW4gPSB0aGlzLl9lbmRDb2x1bW4gKyBk
ZWx0YUVuZENvbHVtbjsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoc3RhcnRMaW5lID49IDAgJiYg
c3RhcnRDb2x1bW4gPj0gMCAmJiBlbmRMaW5lID49IDAgJiYgZW5kQ29sdW1uID49IDAsIGBDYW5u
b3QgaGF2ZSBuZWdhdGl2ZSBudW1iZXJzIGluIFRleHRSYW5nZSAke3N0YXJ0TGluZX06JHtzdGFy
dENvbHVtbn0uLi4ke2VuZExpbmV9OiR7ZW5kQ29sdW1ufWApOwotCi0gICAgICAgIHJldHVybiBu
ZXcgV0kuVGV4dFJhbmdlKHN0YXJ0TGluZSwgc3RhcnRDb2x1bW4sIGVuZExpbmUsIGVuZENvbHVt
bik7Ci0gICAgfQotCiAgICAgY29sbGFwc2VUb1N0YXJ0KCkKICAgICB7CiAgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KCFpc05hTih0aGlzLl9zdGFydExpbmUpLCAiVGV4dFJhbmdlIG5lZWRzIGxpbmUv
Y29sdW1uIGRhdGEuIik7CkBAIC0xNDcsMTcgKzEzNCw0IEBAIFdJLlRleHRSYW5nZSA9IGNsYXNz
IFRleHRSYW5nZQogICAgICAgICBjb25zb2xlLmFzc2VydCghaXNOYU4odGhpcy5fZW5kTGluZSks
ICJUZXh0UmFuZ2UgbmVlZHMgbGluZS9jb2x1bW4gZGF0YS4iKTsKICAgICAgICAgcmV0dXJuIG5l
dyBXSS5UZXh0UmFuZ2UodGhpcy5fZW5kTGluZSwgdGhpcy5fZW5kQ29sdW1uLCB0aGlzLl9lbmRM
aW5lLCB0aGlzLl9lbmRDb2x1bW4pOwogICAgIH0KLQotICAgIHJlbGF0aXZlVG8obGluZSwgY29s
dW1uKQotICAgIHsKLSAgICAgICAgbGV0IGRlbHRhU3RhcnRDb2x1bW4gPSAwOwotICAgICAgICBp
ZiAodGhpcy5fc3RhcnRMaW5lID09PSBsaW5lKQotICAgICAgICAgICAgZGVsdGFTdGFydENvbHVt
biA9IC1jb2x1bW47Ci0KLSAgICAgICAgbGV0IGRlbHRhRW5kQ29sdW1uID0gMDsKLSAgICAgICAg
aWYgKHRoaXMuX2VuZExpbmUgPT09IGxpbmUpCi0gICAgICAgICAgICBkZWx0YUVuZENvbHVtbiA9
IC1jb2x1bW47Ci0KLSAgICAgICAgcmV0dXJuIHRoaXMuY2xvbmVBbmRNb2RpZnkoLWxpbmUsIGRl
bHRhU3RhcnRDb2x1bW4sIC1saW5lLCBkZWx0YUVuZENvbHVtbik7Ci0gICAgfQogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430422</attachid>
            <date>2021-06-02 17:25:34 -0700</date>
            <delta_ts>2021-07-15 10:00:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>25111</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1YTFkZDdlN2VlMzguLjE4YTY3NTM1MDJlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBA
CisyMDIxLTA2LTAyICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IFN0eWxlczogZm9ybWF0IHN0eWxlIGRlY2xhcmF0aW9ucyBh
ZnRlciBlZGl0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzg4MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1MTg1MDYwPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluZGVudCB0ZXh0IG9mIGV4
cGVjdGVkIENTUyBwcm9wZXJ0aWVzLgorCisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9hZGQtY3Nz
LXByb3BlcnR5Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9nZW5lcmF0ZUZvcm1hdHRl
ZFRleHQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nz
cy9nZW5lcmF0ZUNTU1J1bGVTdHJpbmctZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGluc3BlY3Rv
ci9jc3MvZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY3NzL2dlbmVyYXRlQ1NTUnVsZVN0cmluZy5odG1sLgorICAgICAgICAqIGlu
c3BlY3Rvci9jc3MvbW9kaWZ5LWNzcy1wcm9wZXJ0eS5odG1sOgorICAgICAgICAqIGluc3BlY3Rv
ci9jc3MvbW9kaWZ5LWlubGluZS1zdHlsZS1leHBlY3RlZC50eHQ6CisKIDIwMjEtMDUtMDYgIERp
ZWdvIFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVd
IFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcuIEVtaXQgcGxhdGZvcm0gYmFzZWxpbmVzIGFmdGVy
IHIyNzcwNzEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2FkZC1jc3Mt
cHJvcGVydHkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvYWRkLWNzcy1wcm9wZXJ0
eS5odG1sCmluZGV4IDQ1NWE5NWQ0ZTczYi4uZjVkZjk1MzE0MmNmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY3NzL2FkZC1jc3MtcHJvcGVydHkuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY3NzL2FkZC1jc3MtcHJvcGVydHkuaHRtbApAQCAtMjcsNyArMjcsNyBA
QCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgbmV3UHJvcGVydHkubmFtZSA9ICJjb2xv
ciI7CiAgICAgICAgICAgICBuZXdQcm9wZXJ0eS5yYXdWYWx1ZSA9ICJncmVlbiI7CiAKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0LCBg
Zm9udC1zaXplOiAxNHB4O2NvbG9yOiBncmVlbjtgLCAiYGNvbG9yOiBncmVlbmAgcHJvcGVydHkg
c2hvdWxkIGJlIGFwcGVuZGVkLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RF
cXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGBcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAg
Y29sb3I6IGdyZWVuO1xuYCwgImBjb2xvcjogZ3JlZW5gIHByb3BlcnR5IHNob3VsZCBiZSBhcHBl
bmRlZC4iKTsKIAogICAgICAgICAgICAgc3R5bGVEZWNsYXJhdGlvbi5sb2NrZWQgPSBmYWxzZTsK
ICAgICAgICAgICAgIHJlc29sdmUoKTsKQEAgLTQzLDcgKzQzLDcgQEAgZnVuY3Rpb24gdGVzdCgp
IHsKICAgICAgICAgICAgIG5ld1Byb3BlcnR5Lm5hbWUgPSAiY29sb3IiOwogICAgICAgICAgICAg
bmV3UHJvcGVydHkucmF3VmFsdWUgPSAiZ3JlZW4iOwogCi0gICAgICAgICAgICBsZXQgZXhwZWN0
ZWQgPSBgY29sb3I6IGdyZWVuO1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCBicm93bjtcbmA7Cisg
ICAgICAgICAgICBsZXQgZXhwZWN0ZWQgPSBgXG4gICAgY29sb3I6IGdyZWVuO1xuICAgIG91dGxp
bmU6IDJweCBzb2xpZCBicm93bjtcbmA7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dEVxdWFsKHN0eWxlRGVjbGFyYXRpb24udGV4dCwgZXhwZWN0ZWQsICJgY29sb3I6IGdyZWVuYCBw
cm9wZXJ0eSBzaG91bGQgYmUgaW5zZXJ0ZWQgYmVmb3JlIHRoZSBmaXJzdCBwcm9wZXJ0eS4iKTsK
IAogICAgICAgICAgICAgc3R5bGVEZWNsYXJhdGlvbiA9IGdldE1hdGNoZWRTdHlsZSgiLnJ1bGUt
YiIsIHJlc29sdmUpOwpAQCAtNTEsNyArNTEsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAg
ICAgICAgbmV3UHJvcGVydHkubmFtZSA9ICJkaXNwbGF5IjsKICAgICAgICAgICAgIG5ld1Byb3Bl
cnR5LnJhd1ZhbHVlID0gImJsb2NrIjsKIAotICAgICAgICAgICAgZXhwZWN0ZWQgPSBgY29sb3I6
IGdyZWVuO1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCBicm93bjtkaXNwbGF5OiBibG9jaztcbmA7
CisgICAgICAgICAgICBleHBlY3RlZCA9IGBcbiAgICBjb2xvcjogZ3JlZW47XG4gICAgb3V0bGlu
ZTogMnB4IHNvbGlkIGJyb3duO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuYDsKICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0LCBleHBlY3Rl
ZCwgImBkaXNwbGF5OiBibG9ja2AgcHJvcGVydHkgc2hvdWxkIGJlIGFwcGVuZGVkIGF0IHRoZSBl
bmQuIik7CiAKICAgICAgICAgICAgIHN0eWxlRGVjbGFyYXRpb24ubG9ja2VkID0gZmFsc2U7CkBA
IC02OCw3ICs2OCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICBuZXdQcm9wZXJ0
eS5uYW1lID0gImZvbnQtZmFtaWx5IjsKICAgICAgICAgICAgIG5ld1Byb3BlcnR5LnJhd1ZhbHVl
ID0gImZhbnRhc3kiOwogCi0gICAgICAgICAgICBsZXQgZXhwZWN0ZWQgPSBgXG4gICAgYmFja2dy
b3VuZC1jb2xvcjogcGVhY2hwdWZmO2ZvbnQtZmFtaWx5OiBmYW50YXN5O1xuICAgIGNvbG9yOiBi
dXJseXdvb2RcbmA7CisgICAgICAgICAgICBsZXQgZXhwZWN0ZWQgPSBgXG4gICAgYmFja2dyb3Vu
ZC1jb2xvcjogcGVhY2hwdWZmO1xuICAgIGZvbnQtZmFtaWx5OiBmYW50YXN5O1xuICAgIGNvbG9y
OiBidXJseXdvb2Q7XG5gOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChz
dHlsZURlY2xhcmF0aW9uLnRleHQsIGV4cGVjdGVkLCAiYGZvbnQtZmFtaWx5OiBmYW50YXN5YCBw
cm9wZXJ0eSBzaG91bGQgYmUgaW5zZXJ0ZWQgYWZ0ZXIgdGhlIGZpcnN0IHByb3BlcnR5LiIpOwog
CiAgICAgICAgICAgICBzdHlsZURlY2xhcmF0aW9uLmxvY2tlZCA9IGZhbHNlOwpAQCAtODUsNyAr
ODUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgbmV3UHJvcGVydHkubmFtZSA9
ICJkaXNwbGF5IjsKICAgICAgICAgICAgIG5ld1Byb3BlcnR5LnJhd1ZhbHVlID0gImlubGluZSI7
CiAKLSAgICAgICAgICAgIGNvbnN0IGV4cGVjdGVkID0gYFxuICAgIGZvbnQtc2l6ZTogMTRweDtc
biAgICAvKiBjb2xvcjogcmVkOyAqL2Rpc3BsYXk6IGlubGluZTtcbmA7CisgICAgICAgICAgICBj
b25zdCBleHBlY3RlZCA9IGBcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgLyogY29sb3I6IHJl
ZDsgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmU7XG5gOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RFcXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGV4cGVjdGVkLCAiYGRpc3BsYXk6
IGlubGluZWAgcHJvcGVydHkgc2hvdWxkIGJlIGFwcGVuZGVkLiIpOwogCiAgICAgICAgICAgICBz
dHlsZURlY2xhcmF0aW9uLmxvY2tlZCA9IGZhbHNlOwpAQCAtMTAyLDcgKzEwMiw3IEBAIGZ1bmN0
aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICBuZXdQcm9wZXJ0eS5uYW1lID0gImRpc3BsYXkiOwog
ICAgICAgICAgICAgbmV3UHJvcGVydHkucmF3VmFsdWUgPSAiaW5saW5lIjsKIAotICAgICAgICAg
ICAgY29uc3QgZXhwZWN0ZWQgPSBgXG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIC8qIGNvbG9y
OiByZWQgKi9kaXNwbGF5OiBpbmxpbmU7XG5gOworICAgICAgICAgICAgY29uc3QgZXhwZWN0ZWQg
PSBgXG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIC8qIGNvbG9yOiByZWQ7ICovXG4gICAgZGlz
cGxheTogaW5saW5lO1xuYDsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwo
c3R5bGVEZWNsYXJhdGlvbi50ZXh0LCBleHBlY3RlZCwgImBkaXNwbGF5OiBpbmxpbmVgIHByb3Bl
cnR5IHNob3VsZCBiZSBhcHBlbmRlZC4iKTsKIAogICAgICAgICAgICAgc3R5bGVEZWNsYXJhdGlv
bi5sb2NrZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mv
Z2VuZXJhdGVDU1NSdWxlU3RyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jc3MvZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0LWV4cGVjdGVkLnR4dApzaW1pbGFyaXR5IGluZGV4
IDEwMCUKcmVuYW1lIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZW5lcmF0ZUNTU1J1
bGVTdHJpbmctZXhwZWN0ZWQudHh0CnJlbmFtZSB0byBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3Nz
L2dlbmVyYXRlRm9ybWF0dGVkVGV4dC1leHBlY3RlZC50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jc3MvZ2VuZXJhdGVDU1NSdWxlU3RyaW5nLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY3NzL2dlbmVyYXRlRm9ybWF0dGVkVGV4dC5odG1sCnNpbWlsYXJpdHkgaW5k
ZXggODQlCnJlbmFtZSBmcm9tIExheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2VuZXJhdGVDU1NS
dWxlU3RyaW5nLmh0bWwKcmVuYW1lIHRvIExheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2VuZXJh
dGVGb3JtYXR0ZWRUZXh0Lmh0bWwKaW5kZXggNWVmOWY3N2E5ZmFmLi4wZGU2NDQzM2YwMzUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2VuZXJhdGVDU1NSdWxlU3RyaW5n
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZW5lcmF0ZUZvcm1hdHRlZFRl
eHQuaHRtbApAQCAtMTksNyArMTksNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBuYW1l
OiAiQ1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmluZy5JbmxpbmVTdHlsZSIsCiAgICAgICAgIGRlc2Ny
aXB0aW9uOiAiQ2hlY2sgdGhlIGZvcm1hdHRpbmcgb2YgdGhlIGdlbmVyYXRlZCBpbmxpbmUgc3R5
bGUgc3RyaW5nLiIsCiAgICAgICAgIHRlc3QoKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmxvZyhub2RlU3R5bGVzLmlubGluZVN0eWxlLmdlbmVyYXRlQ1NTUnVsZVN0cmluZygpKTsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKG5vZGVTdHlsZXMuaW5saW5lU3R5bGUuZ2VuZXJh
dGVGb3JtYXR0ZWRUZXh0KHtpbmNsdWRlR3JvdXBpbmdzOiB0cnVlLCBmb3JjZU11bHRpbGluZTog
dHJ1ZX0pKTsKICAgICAgICAgfQogICAgIH0pOwogCkBAIC0yOCw3ICsyOCw3IEBAIGZ1bmN0aW9u
IHRlc3QoKSB7CiAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhlIGZvcm1hdHRpbmcgb2Yg
dGhlIGdlbmVyYXRlZCBpbmxpbmUgc3R5bGUgc3RyaW5nIGlmIGEgcHJvcGVydHkgaXMgY29tbWVu
dGVkIG91dC4iLAogICAgICAgICB0ZXN0KCkgewogICAgICAgICAgICAgbm9kZVN0eWxlcy5pbmxp
bmVTdHlsZS5wcm9wZXJ0aWVzWzFdLmNvbW1lbnRPdXQodHJ1ZSk7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZyhub2RlU3R5bGVzLmlubGluZVN0eWxlLmdlbmVyYXRlQ1NTUnVsZVN0cmlu
ZygpKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKG5vZGVTdHlsZXMuaW5saW5lU3R5
bGUuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0KHtpbmNsdWRlR3JvdXBpbmdzOiB0cnVlLCBmb3JjZU11
bHRpbGluZTogdHJ1ZX0pKTsKICAgICAgICAgfSwKICAgICB9KTsKIApAQCAtMzcsNyArMzcsNyBA
QCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoZSBmb3Jt
YXR0aW5nIG9mIHRoZSBnZW5lcmF0ZWQgc3RyaW5nIGZvciBhbGwgbWF0Y2hlZCBDU1MgcnVsZXMu
IiwKICAgICAgICAgdGVzdCgpIHsKICAgICAgICAgICAgIGZvciAobGV0IHJ1bGUgb2Ygbm9kZVN0
eWxlcy5tYXRjaGVkUnVsZXMpCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2cocnVs
ZS5zdHlsZS5nZW5lcmF0ZUNTU1J1bGVTdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2cocnVsZS5zdHlsZS5nZW5lcmF0ZUZvcm1hdHRlZFRleHQoe2luY2x1ZGVHcm91
cGluZ3M6IHRydWUsIGZvcmNlTXVsdGlsaW5lOiB0cnVlfSkpOwogICAgICAgICB9CiAgICAgfSk7
CiAKQEAgLTUwLDcgKzUwLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7CiAKICAgICAgICAgICAgICAgICBydWxlLnN0eWxlLnByb3BlcnRpZXNbMV0u
Y29tbWVudE91dCh0cnVlKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhydWxl
LnN0eWxlLmdlbmVyYXRlQ1NTUnVsZVN0cmluZygpKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZyhydWxlLnN0eWxlLmdlbmVyYXRlRm9ybWF0dGVkVGV4dCh7aW5jbHVkZUdyb3Vw
aW5nczogdHJ1ZSwgZm9yY2VNdWx0aWxpbmU6IHRydWV9KSk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9k
aWZ5LWNzcy1wcm9wZXJ0eS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnkt
Y3NzLXByb3BlcnR5Lmh0bWwKaW5kZXggMjg2M2Y3ODI1MGRhLi4yMzRiMzg1NjdiOGMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9kaWZ5LWNzcy1wcm9wZXJ0eS5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9kaWZ5LWNzcy1wcm9wZXJ0eS5odG1s
CkBAIC00NCw3ICs0NCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAKICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0RXF1YWwoZ2V0UHJvcGVydHkoImZvbnQtc2l6ZSIpLnJhd1ZhbHVlLCAi
MTBweCIsIGAiZm9udC1zaXplIiBwcm9wZXJ0eSB2YWx1ZSBzaG91bGQgdXBkYXRlIGltbWVkaWF0
ZWx5LmApOwogCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlRGVj
bGFyYXRpb24udGV4dCwgYGZvbnQtc2l6ZTogMTBweDsgY29sb3I6IGFudGlxdWV3aGl0ZWAsIGBT
dHlsZSBkZWNsYXJhdGlvbiB0ZXh0IHNob3VsZCB1cGRhdGUgaW1tZWRpYXRlbHkuYCk7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlRGVjbGFyYXRpb24udGV4dCwg
YFxuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBjb2xvcjogYW50aXF1ZXdoaXRlO1xuYCwgYFN0
eWxlIGRlY2xhcmF0aW9uIHRleHQgc2hvdWxkIHVwZGF0ZSBpbW1lZGlhdGVseS5gKTsKIAogICAg
ICAgICAgICAgcmVzb2x2ZSgpOwogICAgICAgICB9CkBAIC04MCwxMiArODAsMTEgQEAgZnVuY3Rp
b24gdGVzdCgpIHsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoZ2V0UHJv
cGVydHkoImZvbnQtc2l6ZSIpLnJhd1ZhbHVlLCAiMTZweCIsIGAiZm9udC1zaXplIiBwcm9wZXJ0
eSB2YWx1ZSBzaG91bGQgdXBkYXRlIGltbWVkaWF0ZWx5LmApOwogCiAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlRGVjbGFyYXRpb24udGV4dCwgYAotICAgICAgICBm
b250LXNpemU6IDE2cHg7Ci0gICAgICAgIGNvbG9yOiAjMzMzOwotCi0gICAgICAgIG1hcmdpbi1s
ZWZ0OiAwOwotICAgICAgICBtYXJnaW4tdG9wOiAxZW07Ci0gICAgYCwgYFN0eWxlIGRlY2xhcmF0
aW9uIHRleHQgc2hvdWxkIHVwZGF0ZSBpbW1lZGlhdGVseS5gKTsKKyAgICBmb250LXNpemU6IDE2
cHg7CisgICAgY29sb3I6ICMzMzM7CisgICAgbWFyZ2luLWxlZnQ6IDA7CisgICAgbWFyZ2luLXRv
cDogMWVtOworYCwgYFN0eWxlIGRlY2xhcmF0aW9uIHRleHQgc2hvdWxkIHVwZGF0ZSBpbW1lZGlh
dGVseS5gKTsKIAogICAgICAgICAgICAgc3R5bGVEZWNsYXJhdGlvbi5sb2NrZWQgPSBmYWxzZTsK
IApAQCAtMjQzLDcgKzI0Miw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICBsZXQg
ZGlzYWJsZWQgPSBmYWxzZTsKICAgICAgICAgICAgIGdldFByb3BlcnR5KCJwYWRkaW5nLXJpZ2h0
IikuY29tbWVudE91dChkaXNhYmxlZCk7CiAKLSAgICAgICAgICAgIGxldCBleHBlY3RlZFN0eWxl
VGV4dCA9IGBcbiAgICAgICAgLyogcGFkZGluZy1sZWZ0OiAyZW07ICovXG4gICAgICAgIHBhZGRp
bmctcmlnaHQ6IDBweDtcbiAgICBgOworICAgICAgICAgICAgbGV0IGV4cGVjdGVkU3R5bGVUZXh0
ID0gYFxuICAgIC8qIHBhZGRpbmctbGVmdDogMmVtOyAqL1xuICAgIHBhZGRpbmctcmlnaHQ6IDBw
eDtcbmA7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlRGVjbGFy
YXRpb24udGV4dCwgZXhwZWN0ZWRTdHlsZVRleHQsIGBTdHlsZSBkZWNsYXJhdGlvbiB0ZXh0IHNo
b3VsZCB1cGRhdGUgaW1tZWRpYXRlbHkgd2l0aCB1bmNvbW1lbnRlZCBwcm9wZXJ0eS5gKTsKIAog
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGdldFByb3BlcnR5KCJwYWRkaW5n
LXJpZ2h0IikuZW5hYmxlZCwgYFVuY29tbWVudGVkIHByb3BlcnR5IHNob3VsZCBiZSBlbmFibGVk
LmApOwpAQCAtMjUxLDcgKzI1MCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICBk
aXNhYmxlZCA9IHRydWU7CiAgICAgICAgICAgICBnZXRQcm9wZXJ0eSgicGFkZGluZy1yaWdodCIp
LmNvbW1lbnRPdXQoZGlzYWJsZWQpOwogCi0gICAgICAgICAgICBleHBlY3RlZFN0eWxlVGV4dCA9
IGBcbiAgICAgICAgLyogcGFkZGluZy1sZWZ0OiAyZW07ICovXG4gICAgICAgIC8qIHBhZGRpbmct
cmlnaHQ6IDBweDsgKi9cbiAgICBgOworICAgICAgICAgICAgZXhwZWN0ZWRTdHlsZVRleHQgPSBg
XG4gICAgLyogcGFkZGluZy1sZWZ0OiAyZW07ICovXG4gICAgLyogcGFkZGluZy1yaWdodDogMHB4
OyAqL1xuYDsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5bGVEZWNs
YXJhdGlvbi50ZXh0LCBleHBlY3RlZFN0eWxlVGV4dCwgYFN0eWxlIGRlY2xhcmF0aW9uIHRleHQg
c2hvdWxkIHVwZGF0ZSBpbW1lZGlhdGVseSB3aXRoIGNvbW1lbnRlZCBvdXQgcHJvcGVydHkuYCk7
CiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdCghZ2V0UHJvcGVydHkoInBh
ZGRpbmctcmlnaHQiKS5lbmFibGVkLCBgQ29tbWVudGVkIG91dCBwcm9wZXJ0eSBzaG91bGQgYmUg
ZGlzYWJsZWQuYCk7CkBAIC0yOTAsNyArMjg5LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAg
ICAgICAgIGxldCBkaXNhYmxlZCA9IGZhbHNlOwogICAgICAgICAgICAgZ2V0UHJvcGVydHkoImZv
bnQtc2l6ZSIpLmNvbW1lbnRPdXQoZGlzYWJsZWQpOwogCi0gICAgICAgICAgICBsZXQgZXhwZWN0
ZWRTdHlsZVRleHQgPSBgZm9udC1zaXplOiAxM3B4Oy8qYm9yZGVyOiAycHggc29saWQgYnJvd24q
L2A7CisgICAgICAgICAgICBsZXQgZXhwZWN0ZWRTdHlsZVRleHQgPSBgXG4gICAgZm9udC1zaXpl
OiAxM3B4O1xuICAgIC8qIGJvcmRlcjogMnB4IHNvbGlkIGJyb3duOyAqL1xuYDsKICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0LCBleHBl
Y3RlZFN0eWxlVGV4dCwgYFN0eWxlIGRlY2xhcmF0aW9uIHRleHQgc2hvdWxkIHVwZGF0ZSBpbW1l
ZGlhdGVseSB3aXRoIHVuY29tbWVudGVkIHByb3BlcnR5LmApOwogCiAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdFRoYXQoZ2V0UHJvcGVydHkoImZvbnQtc2l6ZSIpLmVuYWJsZWQsIGBV
bmNvbW1lbnRlZCBwcm9wZXJ0eSBzaG91bGQgYmUgZW5hYmxlZC5gKTsKQEAgLTI5OSw3ICsyOTgs
NyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgZGlzYWJsZWQgPSBmYWxzZTsKICAg
ICAgICAgICAgIGdldFByb3BlcnR5KCJib3JkZXIiKS5jb21tZW50T3V0KGRpc2FibGVkKTsKIAot
ICAgICAgICAgICAgZXhwZWN0ZWRTdHlsZVRleHQgPSBgZm9udC1zaXplOiAxM3B4O2JvcmRlcjog
MnB4IHNvbGlkIGJyb3duYDsKKyAgICAgICAgICAgIGV4cGVjdGVkU3R5bGVUZXh0ID0gYFxuICAg
IGZvbnQtc2l6ZTogMTNweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCBicm93bjtcbmA7CiAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlRGVjbGFyYXRpb24udGV4dCwg
ZXhwZWN0ZWRTdHlsZVRleHQsIGBTdHlsZSBkZWNsYXJhdGlvbiB0ZXh0IHNob3VsZCB1cGRhdGUg
aW1tZWRpYXRlbHkgd2l0aCBjb21tZW50ZWQgb3V0IHByb3BlcnR5LmApOwogCiAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZ2V0UHJvcGVydHkoImJvcmRlciIpLmVuYWJsZWQs
IGBVbmNvbW1lbnRlZCBwcm9wZXJ0eSBzaG91bGQgYmUgZW5hYmxlZC5gKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9kaWZ5LWlubGluZS1zdHlsZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1pbmxpbmUtc3R5bGUtZXhwZWN0
ZWQudHh0CmluZGV4IDM5N2NhNjYzMDVmNy4uNDEyMzVlZmIxODlhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1pbmxpbmUtc3R5bGUtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9kaWZ5LWlubGluZS1zdHlsZS1leHBlY3Rl
ZC50eHQKQEAgLTcsMTIgKzcsMTIgQEAgQ1NTUHJvcGVydHkgY2hhbmdlZCB0byAiZm9udDogMTJw
eCBub3JtYWwgc2Fucy1zZXJpZiFpbXBvcnRhbnQ7Ii4KIGZvbnQ6IDEycHggbm9ybWFsIHNhbnMt
c2VyaWYhaW1wb3J0YW50OwogCiBDU1NQcm9wZXJ0eSBjaGFuZ2VkIHRvICJjb2xvcjogcmVkOyIu
Ci1mb250OiAxMnB4IG5vcm1hbCBzYW5zLXNlcmlmIWltcG9ydGFudDtjb2xvcjogcmVkOworZm9u
dDogMTJweCBub3JtYWwgc2Fucy1zZXJpZiFpbXBvcnRhbnQ7IGNvbG9yOiByZWQ7CiAKIENTU1By
b3BlcnR5IGNoYW5nZWQgdG8gImZvbnQ6IDEycHggc2Fucy1zZXJpZjsiLgotZm9udDogMTJweCBz
YW5zLXNlcmlmO2NvbG9yOiByZWQ7Citmb250OiAxMnB4IHNhbnMtc2VyaWY7IGNvbG9yOiByZWQ7
CiAKIENTU1Byb3BlcnR5IGNoYW5nZWQgdG8gImNvbG9yOiBpbnZhbGlkX2MwMTByOyIuCi1mb250
OiAxMnB4IHNhbnMtc2VyaWY7Y29sb3I6IGludmFsaWRfYzAxMHI7Citmb250OiAxMnB4IHNhbnMt
c2VyaWY7IGNvbG9yOiBpbnZhbGlkX2MwMTByOwogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmlu
ZGV4IDJiNTg3MTIxODUzYS4uNjhhMzFiYWRjMTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0NSBAQAorMjAyMS0wNi0wMiAgTmlraXRhIFZhc2lseWV2ICA8bnZhc2lseWV2
QGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBTdHlsZXM6IGZvcm1hdCBzdHls
ZSBkZWNsYXJhdGlvbnMgYWZ0ZXIgZWRpdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4ODM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNTE4
NTA2MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
bmRlbnQgQ1NTIHByb3BlcnRpZXMgd2l0aCBzcGFjZXMvdGFicyBzZXQgaW4gV2ViIEluc3BlY3Rv
ciBzZXR0aW5ncy4gSW5jcmVzZSBpbmRlbnRhdGlvbiBsZXZlbCB3aGVuIENTUyBydWxlcyBhcmUK
KyAgICAgICAgaW5zaWRlIG9mIGF0LXJ1bGVzIChlLmcuIEBtZWRpYSwgQGtleWZyYW1lcywgQHN1
cHBvcnRzKS4KKworICAgICAgICBEb24ndCBpbmRlbnQgQ1NTIHByb3BlcnRpZXMgaW4gc3R5bGUg
YXR0cmlidXRlcy4gS2VlcCB0aGVtIG9uIHRoZSBzaW5nbGUgbGluZSwgc2VwYXJhdGVkIGJ5IGEg
c3BhY2UgY2hhcmFjdGVyOgorCisgICAgICAgICAgICBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyBj
b2xvcjogYmxhY2s7IgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTUHJvcGVy
dHkuanM6CisgICAgICAgIChXSS5DU1NQcm9wZXJ0eS5wcm90b3R5cGUucmVwbGFjZVdpdGhUZXh0
KToKKyAgICAgICAgSW50cm9kdWNlIGBfcGVuZGluZ1RleHRgIHByb3BlcnR5LiBJdCdzIG9ubHkg
c2V0IHdoZW4gcGFzdGluZyBDU1MgcHJvcGVydHkgdGV4dCBpbnRvIHRoZSBDU1MgcHJvcGVydHkg
bmFtZSBmaWVsZC4KKworICAgICAgICAoV0kuQ1NTUHJvcGVydHkucHJvdG90eXBlLnNldCB0ZXh0
KToKKyAgICAgICAgKFdJLkNTU1Byb3BlcnR5LnByb3RvdHlwZS5nZXQgZm9ybWF0dGVkVGV4dCk6
CisKKyAgICAgICAgKFdJLkNTU1Byb3BlcnR5LnByb3RvdHlwZS5fdXBkYXRlU3R5bGVUZXh0KToK
KyAgICAgICAgKFdJLkNTU1Byb3BlcnR5LnByb3RvdHlwZS5fdXBkYXRlT3duZXJTdHlsZVRleHQp
OgorICAgICAgICAoV0kuQ1NTUHJvcGVydHkucHJvdG90eXBlLl9wcmVwZW5kU2VtaWNvbG9uSWZO
ZWVkZWQpOiBEZWxldGVkLgorICAgICAgICBHcmVhdGx5IHNpbXBsaWZ5IHRoZSBsb2dpYyBub3cg
dGhhdCB3ZSBzYXZlIGZvcm1hdHRlZCB0ZXh0IGFuZCBkb24ndCBtb2RpZnkgc3R5bGVUZXh0Lgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTU3R5bGVEZWNsYXJhdGlvbi5qczoK
KyAgICAgICAgKFdJLkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlLnJlbW92ZVByb3BlcnR5
KTogUmVuYW1lZCBmcm9tICdzaGlmdFByb3BlcnRpZXNBZnRlcicuCisgICAgICAgIFJlbW9kZSB1
bm5lY2Vzc2FyeSBjb2RlIHRoYXQgbW9kaWZpZXMgYF9zdHlsZVNoZWV0VGV4dFJhbmdlYC4gVGhl
IGJhY2tlbmQgc2VuZHMgbmV3IGBfc3R5bGVTaGVldFRleHRSYW5nZWAgZGF0YQorICAgICAgICB1
cG9uIGEgY2hhbmdlLgorCisgICAgICAgIChXSS5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlw
ZS5nZW5lcmF0ZUZvcm1hdHRlZFRleHQpOiBSZW5hbWVkIGZyb20gJ2dlbmVyYXRlQ1NTUnVsZVN0
cmluZycuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9UZXh0UmFuZ2UuanM6Cisg
ICAgICAgIChXSS5UZXh0UmFuZ2UucHJvdG90eXBlLmNvbGxhcHNlVG9FbmQpOgorICAgICAgICAo
V0kuVGV4dFJhbmdlKToKKyAgICAgICAgUmVtb3ZlIHVudXNlZCBjb2RlLgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9u
LmpzOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5w
cm90b3R5cGUuX3BvcHVsYXRlSWNvbkVsZW1lbnRDb250ZXh0TWVudSk6CisKIDIwMjEtMDUtMDQg
IERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGFkZCBhc3NlcnRpb24gZm9yIGBXSS5WaWV3YCByZS1lbnRyYW5jeQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5Lmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5
LmpzCmluZGV4IDI3OGE2NzE1NDhiZC4uZmU3MDIyODdmNWZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTUHJvcGVydHkuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5Lmpz
CkBAIC0xNTUsNyArMTU1LDkgQEAgV0kuQ1NTUHJvcGVydHkgPSBjbGFzcyBDU1NQcm9wZXJ0eSBl
eHRlbmRzIFdJLk9iamVjdAogICAgIHsKICAgICAgICAgdGhpcy5fbWFya01vZGlmaWVkKCk7CiAK
LSAgICAgICAgdGhpcy5fdXBkYXRlT3duZXJTdHlsZVRleHQodGhpcy5fdGV4dCwgdGV4dCwgdHJ1
ZSk7CisgICAgICAgIHRoaXMuX3BlbmRpbmdUZXh0ID0gdGV4dDsKKyAgICAgICAgdGhpcy5fdXBk
YXRlT3duZXJTdHlsZVRleHQoKTsKKyAgICAgICAgdGhpcy5fcGVuZGluZ1RleHQgPSBudWxsOwog
ICAgIH0KIAogICAgIGNvbW1lbnRPdXQoZGlzYWJsZWQpCkBAIC0xODQsMTIgKzE4NiwxNSBAQCBX
SS5DU1NQcm9wZXJ0eSA9IGNsYXNzIENTU1Byb3BlcnR5IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAg
ICAgICAgICByZXR1cm47CiAKICAgICAgICAgdGhpcy5fbWFya01vZGlmaWVkKCk7Ci0gICAgICAg
IHRoaXMuX3VwZGF0ZU93bmVyU3R5bGVUZXh0KHRoaXMuX3RleHQsIG5ld1RleHQpOworICAgICAg
ICB0aGlzLl91cGRhdGVPd25lclN0eWxlVGV4dCgpOwogICAgICAgICB0aGlzLl90ZXh0ID0gbmV3
VGV4dDsKICAgICB9CiAKICAgICBnZXQgZm9ybWF0dGVkVGV4dCgpCiAgICAgeworICAgICAgICBp
ZiAodGhpcy5fcGVuZGluZ1RleHQpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fcGVuZGluZ1Rl
eHQudHJpbSgpOworCiAgICAgICAgIGlmICghdGhpcy5fbmFtZSkKICAgICAgICAgICAgIHJldHVy
biAiIjsKIApAQCAtNDY4LDc0ICs0NzMsMjQgQEAgV0kuQ1NTUHJvcGVydHkgPSBjbGFzcyBDU1NQ
cm9wZXJ0eSBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgdGV4dCA9IHRoaXMuX25hbWUg
KyAiOiAiICsgdmFsdWUgKyAiOyI7CiAgICAgICAgIH0KIAotICAgICAgICBsZXQgb2xkVGV4dCA9
IHRoaXMuX3RleHQ7CiAgICAgICAgIHRoaXMuX3RleHQgPSB0ZXh0OwotICAgICAgICB0aGlzLl91
cGRhdGVPd25lclN0eWxlVGV4dChvbGRUZXh0LCB0aGlzLl90ZXh0LCBmb3JjZVJlbW92ZSk7CisK
KyAgICAgICAgaWYgKGZvcmNlUmVtb3ZlKQorICAgICAgICAgICAgdGhpcy5fb3duZXJTdHlsZS5y
ZW1vdmVQcm9wZXJ0eSh0aGlzKTsKKworICAgICAgICB0aGlzLl91cGRhdGVPd25lclN0eWxlVGV4
dChmb3JjZVJlbW92ZSk7CiAgICAgfQogCi0gICAgX3VwZGF0ZU93bmVyU3R5bGVUZXh0KG9sZFRl
eHQsIG5ld1RleHQsIGZvcmNlUmVtb3ZlID0gZmFsc2UpCisgICAgX3VwZGF0ZU93bmVyU3R5bGVU
ZXh0KCkKICAgICB7Ci0gICAgICAgIGlmIChvbGRUZXh0ID09PSBuZXdUZXh0KSB7Ci0gICAgICAg
ICAgICBpZiAoZm9yY2VSZW1vdmUpIHsKLSAgICAgICAgICAgICAgICBjb25zdCBsaW5lRGVsdGEg
PSAwOwotICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbkRlbHRhID0gMDsKLSAgICAgICAgICAg
ICAgICB0aGlzLl9vd25lclN0eWxlLnNoaWZ0UHJvcGVydGllc0FmdGVyKHRoaXMsIGxpbmVEZWx0
YSwgY29sdW1uRGVsdGEsIGZvcmNlUmVtb3ZlKTsKLSAgICAgICAgICAgICAgICB0aGlzLl9vd25l
clN0eWxlLnVwZGF0ZVByb3BlcnRpZXNNb2RpZmllZFN0YXRlKCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQogICAgICAgICBjb25zb2xlLmFzc2VydCh0
aGlzLl9vd25lclN0eWxlKTsKICAgICAgICAgaWYgKCF0aGlzLl9vd25lclN0eWxlKQogICAgICAg
ICAgICAgcmV0dXJuOwogCi0gICAgICAgIHRoaXMuX3ByZXBlbmRTZW1pY29sb25JZk5lZWRlZCgp
OwotCi0gICAgICAgIGxldCBzdHlsZVRleHQgPSB0aGlzLl9vd25lclN0eWxlLnRleHQgfHwgIiI7
Ci0KLSAgICAgICAgLy8gX3N0eWxlU2hlZXRUZXh0UmFuZ2UgaXMgdGhlIHBvc2l0aW9uIG9mIHRo
ZSBwcm9wZXJ0eSB3aXRoaW4gdGhlIHN0eWxlc2hlZXQuCi0gICAgICAgIC8vIHJhbmdlIGlzIHRo
ZSBwb3NpdGlvbiBvZiB0aGUgcHJvcGVydHkgd2l0aGluIHRoZSBydWxlLgotICAgICAgICBsZXQg
cmFuZ2UgPSB0aGlzLl9zdHlsZVNoZWV0VGV4dFJhbmdlLnJlbGF0aXZlVG8odGhpcy5fb3duZXJT
dHlsZS5zdHlsZVNoZWV0VGV4dFJhbmdlLnN0YXJ0TGluZSwgdGhpcy5fb3duZXJTdHlsZS5zdHls
ZVNoZWV0VGV4dFJhbmdlLnN0YXJ0Q29sdW1uKTsKLQotICAgICAgICAvLyBBcHBlbmQgYSBsaW5l
IGJyZWFrIHRvIGNvdW50IHRoZSBsYXN0IGxpbmUgb2Ygc3R5bGVUZXh0IHRvd2FyZHMgZW5kT2Zm
c2V0LgotICAgICAgICByYW5nZS5yZXNvbHZlT2Zmc2V0cyhzdHlsZVRleHQgKyAiXG4iKTsKLQot
ICAgICAgICBjb25zb2xlLmFzc2VydChvbGRUZXh0ID09PSBzdHlsZVRleHQuc2xpY2UocmFuZ2Uu
c3RhcnRPZmZzZXQsIHJhbmdlLmVuZE9mZnNldCksICJfc3R5bGVTaGVldFRleHRSYW5nZSBkYXRh
IGlzIGludmFsaWQuIik7Ci0KLSAgICAgICAgaWYgKFdJLnNldHRpbmdzLmRlYnVnRW5hYmxlU3R5
bGVFZGl0aW5nRGVidWdNb2RlLnZhbHVlKSB7Ci0gICAgICAgICAgICBsZXQgcHJlZml4ID0gc3R5
bGVUZXh0LnNsaWNlKDAsIHJhbmdlLnN0YXJ0T2Zmc2V0KTsKLSAgICAgICAgICAgIGxldCBwb3N0
Zml4ID0gc3R5bGVUZXh0LnNsaWNlKHJhbmdlLmVuZE9mZnNldCk7Ci0gICAgICAgICAgICBjb25z
b2xlLmluZm8oYCR7cHJlZml4fSVjJHtvbGRUZXh0fSVjJHtuZXdUZXh0fSVjJHtwb3N0Zml4fWAs
IGBiYWNrZ3JvdW5kOiBoc2woMzU2LCAxMDAlLCA5MCUpOyBjb2xvcjogYmxhY2tgLCBgYmFja2dy
b3VuZDogaHNsKDEwMCwgMTAwJSwgOTElKTsgY29sb3I6IGJsYWNrYCwgYGJhY2tncm91bmQ6IHRy
YW5zcGFyZW50YCk7Ci0gICAgICAgIH0KLQotICAgICAgICBsZXQgbmV3U3R5bGVUZXh0ID0gc3R5
bGVUZXh0LnNsaWNlKDAsIHJhbmdlLnN0YXJ0T2Zmc2V0KSArIG5ld1RleHQgKyBzdHlsZVRleHQu
c2xpY2UocmFuZ2UuZW5kT2Zmc2V0KTsKLQotICAgICAgICBsZXQgbGluZURlbHRhID0gbmV3VGV4
dC5saW5lQ291bnQgLSBvbGRUZXh0LmxpbmVDb3VudDsKLSAgICAgICAgbGV0IGNvbHVtbkRlbHRh
ID0gbmV3VGV4dC5sYXN0TGluZS5sZW5ndGggLSBvbGRUZXh0Lmxhc3RMaW5lLmxlbmd0aDsKLSAg
ICAgICAgdGhpcy5fc3R5bGVTaGVldFRleHRSYW5nZSA9IHRoaXMuX3N0eWxlU2hlZXRUZXh0UmFu
Z2UuY2xvbmVBbmRNb2RpZnkoMCwgMCwgbGluZURlbHRhLCBjb2x1bW5EZWx0YSk7Ci0KLSAgICAg
ICAgdGhpcy5fb3duZXJTdHlsZS50ZXh0ID0gbmV3U3R5bGVUZXh0OwotCi0gICAgICAgIGxldCBw
cm9wZXJ0eVdhc1JlbW92ZWQgPSAhbmV3VGV4dDsKLSAgICAgICAgdGhpcy5fb3duZXJTdHlsZS5z
aGlmdFByb3BlcnRpZXNBZnRlcih0aGlzLCBsaW5lRGVsdGEsIGNvbHVtbkRlbHRhLCBwcm9wZXJ0
eVdhc1JlbW92ZWQpOworICAgICAgICB0aGlzLl9vd25lclN0eWxlLnRleHQgPSB0aGlzLl9vd25l
clN0eWxlLmdlbmVyYXRlRm9ybWF0dGVkVGV4dCgpOwogICAgICAgICB0aGlzLl9vd25lclN0eWxl
LnVwZGF0ZVByb3BlcnRpZXNNb2RpZmllZFN0YXRlKCk7CiAgICAgfQogCi0gICAgX3ByZXBlbmRT
ZW1pY29sb25JZk5lZWRlZCgpCi0gICAgewotICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5pbmRl
eCAtIDE7IGkgPj0gMDsgLS1pKSB7Ci0gICAgICAgICAgICBsZXQgcHJvcGVydHkgPSB0aGlzLl9v
d25lclN0eWxlLnByb3BlcnRpZXNbaV07Ci0gICAgICAgICAgICBpZiAoIXByb3BlcnR5LmVuYWJs
ZWQpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIGxldCBtYXRjaCA9
IHByb3BlcnR5LnRleHQubWF0Y2goL1teO1xzXShccyopJC8pOwotICAgICAgICAgICAgaWYgKG1h
dGNoKQotICAgICAgICAgICAgICAgIHByb3BlcnR5LnRleHQgPSBwcm9wZXJ0eS50ZXh0LnRyaW1S
aWdodCgpICsgIjsiICsgbWF0Y2hbMV07Ci0KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9
Ci0gICAgfQotCiAgICAgX21hcmtNb2RpZmllZCgpCiAgICAgewogICAgICAgICBpZiAodGhpcy5f
b3duZXJTdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9DU1NTdHlsZURlY2xhcmF0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1N0eWxlRGVjbGFyYXRpb24uanMKaW5kZXggNzA5MTAx
ZjQyYTg3Li4yYTc1Mzg4Y2VhZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9DU1NTdHlsZURlY2xhcmF0aW9uLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NTdHlsZURlY2xhcmF0aW9uLmpz
CkBAIC00NDUsMzIgKzQ0NSwxNCBAQCBXSS5DU1NTdHlsZURlY2xhcmF0aW9uID0gY2xhc3MgQ1NT
U3R5bGVEZWNsYXJhdGlvbiBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBXSS5jc3NNYW5hZ2Vy
LmFkZE1vZGlmaWVkU3R5bGUodGhpcyk7CiAgICAgfQogCi0gICAgc2hpZnRQcm9wZXJ0aWVzQWZ0
ZXIoY3NzUHJvcGVydHksIGxpbmVEZWx0YSwgY29sdW1uRGVsdGEsIHByb3BlcnR5V2FzUmVtb3Zl
ZCkKKyAgICByZW1vdmVQcm9wZXJ0eShjc3NQcm9wZXJ0eSkKICAgICB7CiAgICAgICAgIC8vIGNz
c1Byb3BlcnR5LmluZGV4IGNvdWxkIGJlIHNldCB0byBOYU4gYnkgV0kuQ1NTU3R5bGVEZWNsYXJh
dGlvbi5wcm90b3R5cGUudXBkYXRlLgogICAgICAgICBsZXQgcmVhbEluZGV4ID0gdGhpcy5fcHJv
cGVydGllcy5pbmRleE9mKGNzc1Byb3BlcnR5KTsKICAgICAgICAgaWYgKHJlYWxJbmRleCA9PT0g
LTEpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbGV0IGVuZExpbmUgPSBjc3NQcm9w
ZXJ0eS5zdHlsZVNoZWV0VGV4dFJhbmdlLmVuZExpbmU7Ci0KLSAgICAgICAgZm9yIChsZXQgaSA9
IHJlYWxJbmRleCArIDE7IGkgPCB0aGlzLl9wcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7Ci0gICAg
ICAgICAgICBsZXQgcHJvcGVydHkgPSB0aGlzLl9wcm9wZXJ0aWVzW2ldOwotCi0gICAgICAgICAg
ICBpZiAocHJvcGVydHkuX3N0eWxlU2hlZXRUZXh0UmFuZ2UpIHsKLSAgICAgICAgICAgICAgICBp
ZiAocHJvcGVydHkuc3R5bGVTaGVldFRleHRSYW5nZS5zdGFydExpbmUgPT09IGVuZExpbmUpIHsK
LSAgICAgICAgICAgICAgICAgICAgLy8gT25seSB1cGRhdGUgY29sdW1uIGRhdGEgaWYgaXQncyBv
biB0aGUgc2FtZSBsaW5lLgotICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eS5fc3R5bGVTaGVl
dFRleHRSYW5nZSA9IHByb3BlcnR5Ll9zdHlsZVNoZWV0VGV4dFJhbmdlLmNsb25lQW5kTW9kaWZ5
KGxpbmVEZWx0YSwgY29sdW1uRGVsdGEsIGxpbmVEZWx0YSwgY29sdW1uRGVsdGEpOwotICAgICAg
ICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eS5fc3R5bGVTaGVl
dFRleHRSYW5nZSA9IHByb3BlcnR5Ll9zdHlsZVNoZWV0VGV4dFJhbmdlLmNsb25lQW5kTW9kaWZ5
KGxpbmVEZWx0YSwgMCwgbGluZURlbHRhLCAwKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgaWYgKHByb3BlcnR5V2FzUmVtb3ZlZCAmJiAhaXNOYU4ocHJvcGVydHkuX2luZGV4KSkKLSAg
ICAgICAgICAgICAgICBwcm9wZXJ0eS5faW5kZXgtLTsKLSAgICAgICAgfQotCi0gICAgICAgIGlm
IChwcm9wZXJ0eVdhc1JlbW92ZWQpCi0gICAgICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzLnNwbGlj
ZShyZWFsSW5kZXgsIDEpOworICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzLnNwbGljZShyZWFsSW5k
ZXgsIDEpOwogCiAgICAgICAgIC8vIEludmFsaWRhdGUgY2FjaGVkIHByb3BlcnRpZXMuCiAgICAg
ICAgIHRoaXMuX2VuYWJsZWRQcm9wZXJ0aWVzID0gbnVsbDsKQEAgLTUwNywyNCArNDg5LDQzIEBA
IFdJLkNTU1N0eWxlRGVjbGFyYXRpb24gPSBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uIGV4dGVu
ZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICBXSS5jc3NNYW5hZ2VyLnJlbW92ZU1vZGlmaWVkU3R5
bGUodGhpcyk7CiAgICAgfQogCi0gICAgZ2VuZXJhdGVDU1NSdWxlU3RyaW5nKCkKKyAgICBnZW5l
cmF0ZUZvcm1hdHRlZFRleHQob3B0aW9ucyA9IHt9KQogICAgIHsKICAgICAgICAgbGV0IGluZGVu
dFN0cmluZyA9IFdJLmluZGVudFN0cmluZygpOwogICAgICAgICBsZXQgc3R5bGVUZXh0ID0gIiI7
CiAgICAgICAgIGxldCBncm91cGluZ3MgPSB0aGlzLmdyb3VwaW5ncy5maWx0ZXIoKGdyb3VwaW5n
KSA9PiBncm91cGluZy50ZXh0ICE9PSAiYWxsIik7CiAgICAgICAgIGxldCBncm91cGluZ3NDb3Vu
dCA9IGdyb3VwaW5ncy5sZW5ndGg7Ci0gICAgICAgIGZvciAobGV0IGkgPSBncm91cGluZ3NDb3Vu
dCAtIDE7IGkgPj0gMDsgLS1pKQotICAgICAgICAgICAgc3R5bGVUZXh0ICs9IGluZGVudFN0cmlu
Zy5yZXBlYXQoZ3JvdXBpbmdzQ291bnQgLSBpIC0gMSkgKyBncm91cGluZ3NbaV0ucHJlZml4ICsg
IiAiICsgZ3JvdXBpbmdzW2ldLnRleHQgKyAiIHtcbiI7CiAKLSAgICAgICAgc3R5bGVUZXh0ICs9
IGluZGVudFN0cmluZy5yZXBlYXQoZ3JvdXBpbmdzQ291bnQpICsgdGhpcy5zZWxlY3RvclRleHQg
KyAiIHtcbiI7CisgICAgICAgIGlmIChvcHRpb25zLmluY2x1ZGVHcm91cGluZ3MpIHsKKyAgICAg
ICAgICAgIGZvciAobGV0IGkgPSBncm91cGluZ3NDb3VudCAtIDE7IGkgPj0gMDsgLS1pKQorICAg
ICAgICAgICAgICAgIHN0eWxlVGV4dCArPSBpbmRlbnRTdHJpbmcucmVwZWF0KGdyb3VwaW5nc0Nv
dW50IC0gaSAtIDEpICsgZ3JvdXBpbmdzW2ldLnByZWZpeCArICIgIiArIGdyb3VwaW5nc1tpXS50
ZXh0ICsgIiB7XG4iOwogCi0gICAgICAgIGZvciAobGV0IHByb3BlcnR5IG9mICh0aGlzLl9zdHls
ZVNoZWV0VGV4dFJhbmdlID8gdGhpcy52aXNpYmxlUHJvcGVydGllcyA6IHRoaXMuX3Byb3BlcnRp
ZXMpKQotICAgICAgICAgICAgc3R5bGVUZXh0ICs9IGluZGVudFN0cmluZy5yZXBlYXQoZ3JvdXBp
bmdzQ291bnQgKyAxKSArIHByb3BlcnR5LmZvcm1hdHRlZFRleHQgKyAiXG4iOworICAgICAgICAg
ICAgc3R5bGVUZXh0ICs9IGluZGVudFN0cmluZy5yZXBlYXQoZ3JvdXBpbmdzQ291bnQpICsgdGhp
cy5zZWxlY3RvclRleHQgKyAiIHsiOworICAgICAgICB9CiAKLSAgICAgICAgZm9yIChsZXQgaSA9
IGdyb3VwaW5nc0NvdW50OyBpID4gMDsgLS1pKQotICAgICAgICAgICAgc3R5bGVUZXh0ICs9IGlu
ZGVudFN0cmluZy5yZXBlYXQoaSkgKyAifVxuIjsKKyAgICAgICAgbGV0IHByb3BlcnRpZXMgPSB0
aGlzLl9zdHlsZVNoZWV0VGV4dFJhbmdlID8gdGhpcy52aXNpYmxlUHJvcGVydGllcyA6IHRoaXMu
X3Byb3BlcnRpZXM7CisgICAgICAgIGlmIChwcm9wZXJ0aWVzLmxlbmd0aCkgeworICAgICAgICAg
ICAgaWYgKHRoaXMuX3R5cGUgIT09IFdJLkNTU1N0eWxlRGVjbGFyYXRpb24uVHlwZS5SdWxlICYm
ICFvcHRpb25zLmZvcmNlTXVsdGlsaW5lKQorICAgICAgICAgICAgICAgIHN0eWxlVGV4dCArPSBw
cm9wZXJ0aWVzLm1hcCgocHJvcGVydHkpID0+IHByb3BlcnR5LmZvcm1hdHRlZFRleHQpLmpvaW4o
IiAiKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGxldCBwcm9wZXJ0eUlu
ZGVudCA9IGluZGVudFN0cmluZy5yZXBlYXQoZ3JvdXBpbmdzQ291bnQgKyAxKTsKKyAgICAgICAg
ICAgICAgICBmb3IgKGxldCBwcm9wZXJ0eSBvZiBwcm9wZXJ0aWVzKQorICAgICAgICAgICAgICAg
ICAgICBzdHlsZVRleHQgKz0gIlxuIiArIHByb3BlcnR5SW5kZW50ICsgcHJvcGVydHkuZm9ybWF0
dGVkVGV4dDsKKworICAgICAgICAgICAgICAgIHN0eWxlVGV4dCArPSAiXG4iOworICAgICAgICAg
ICAgICAgIGlmICghb3B0aW9ucy5pbmNsdWRlR3JvdXBpbmdzKSB7CisgICAgICAgICAgICAgICAg
ICAgIC8vIEluZGVudCB0aGUgY2xvc2luZyAifSIgZm9yIG5lc3RlZCBydWxlcy4KKyAgICAgICAg
ICAgICAgICAgICAgc3R5bGVUZXh0ICs9IGluZGVudFN0cmluZy5yZXBlYXQoZ3JvdXBpbmdzQ291
bnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAg
ICAgIGlmIChvcHRpb25zLmluY2x1ZGVHcm91cGluZ3MpIHsKKyAgICAgICAgICAgIGZvciAobGV0
IGkgPSBncm91cGluZ3NDb3VudDsgaSA+IDA7IC0taSkKKyAgICAgICAgICAgICAgICBzdHlsZVRl
eHQgKz0gaW5kZW50U3RyaW5nLnJlcGVhdChpKSArICJ9XG4iOwogCi0gICAgICAgIHN0eWxlVGV4
dCArPSAifSI7CisgICAgICAgICAgICBzdHlsZVRleHQgKz0gIn0iOworICAgICAgICB9CiAKICAg
ICAgICAgcmV0dXJuIHN0eWxlVGV4dDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVGV4dFJhbmdlLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1RleHRSYW5nZS5qcwppbmRleCA2YTZlN2Ew
NTFmNzQuLjRiMmYyZGIyMWI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL1RleHRSYW5nZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVGV4dFJhbmdlLmpzCkBAIC0xMjMsMTkgKzEyMyw2IEBA
IFdJLlRleHRSYW5nZSA9IGNsYXNzIFRleHRSYW5nZQogICAgICAgICByZXR1cm4gbmV3IFdJLlRl
eHRSYW5nZSh0aGlzLl9zdGFydExpbmUsIHRoaXMuX3N0YXJ0Q29sdW1uLCB0aGlzLl9lbmRMaW5l
LCB0aGlzLl9lbmRDb2x1bW4pOwogICAgIH0KIAotICAgIGNsb25lQW5kTW9kaWZ5KGRlbHRhU3Rh
cnRMaW5lLCBkZWx0YVN0YXJ0Q29sdW1uLCBkZWx0YUVuZExpbmUsIGRlbHRhRW5kQ29sdW1uKQot
ICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoIWlzTmFOKHRoaXMuX3N0YXJ0TGluZSksICJU
ZXh0UmFuZ2UgbmVlZHMgbGluZS9jb2x1bW4gZGF0YS4iKTsKLQotICAgICAgICBsZXQgc3RhcnRM
aW5lID0gdGhpcy5fc3RhcnRMaW5lICsgZGVsdGFTdGFydExpbmU7Ci0gICAgICAgIGxldCBzdGFy
dENvbHVtbiA9IHRoaXMuX3N0YXJ0Q29sdW1uICsgZGVsdGFTdGFydENvbHVtbjsKLSAgICAgICAg
bGV0IGVuZExpbmUgPSB0aGlzLl9lbmRMaW5lICsgZGVsdGFFbmRMaW5lOwotICAgICAgICBsZXQg
ZW5kQ29sdW1uID0gdGhpcy5fZW5kQ29sdW1uICsgZGVsdGFFbmRDb2x1bW47Ci0gICAgICAgIGNv
bnNvbGUuYXNzZXJ0KHN0YXJ0TGluZSA+PSAwICYmIHN0YXJ0Q29sdW1uID49IDAgJiYgZW5kTGlu
ZSA+PSAwICYmIGVuZENvbHVtbiA+PSAwLCBgQ2Fubm90IGhhdmUgbmVnYXRpdmUgbnVtYmVycyBp
biBUZXh0UmFuZ2UgJHtzdGFydExpbmV9OiR7c3RhcnRDb2x1bW59Li4uJHtlbmRMaW5lfToke2Vu
ZENvbHVtbn1gKTsKLQotICAgICAgICByZXR1cm4gbmV3IFdJLlRleHRSYW5nZShzdGFydExpbmUs
IHN0YXJ0Q29sdW1uLCBlbmRMaW5lLCBlbmRDb2x1bW4pOwotICAgIH0KLQogICAgIGNvbGxhcHNl
VG9TdGFydCgpCiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydCghaXNOYU4odGhpcy5fc3Rh
cnRMaW5lKSwgIlRleHRSYW5nZSBuZWVkcyBsaW5lL2NvbHVtbiBkYXRhLiIpOwpAQCAtMTQ3LDE3
ICsxMzQsNCBAQCBXSS5UZXh0UmFuZ2UgPSBjbGFzcyBUZXh0UmFuZ2UKICAgICAgICAgY29uc29s
ZS5hc3NlcnQoIWlzTmFOKHRoaXMuX2VuZExpbmUpLCAiVGV4dFJhbmdlIG5lZWRzIGxpbmUvY29s
dW1uIGRhdGEuIik7CiAgICAgICAgIHJldHVybiBuZXcgV0kuVGV4dFJhbmdlKHRoaXMuX2VuZExp
bmUsIHRoaXMuX2VuZENvbHVtbiwgdGhpcy5fZW5kTGluZSwgdGhpcy5fZW5kQ29sdW1uKTsKICAg
ICB9Ci0KLSAgICByZWxhdGl2ZVRvKGxpbmUsIGNvbHVtbikKLSAgICB7Ci0gICAgICAgIGxldCBk
ZWx0YVN0YXJ0Q29sdW1uID0gMDsKLSAgICAgICAgaWYgKHRoaXMuX3N0YXJ0TGluZSA9PT0gbGlu
ZSkKLSAgICAgICAgICAgIGRlbHRhU3RhcnRDb2x1bW4gPSAtY29sdW1uOwotCi0gICAgICAgIGxl
dCBkZWx0YUVuZENvbHVtbiA9IDA7Ci0gICAgICAgIGlmICh0aGlzLl9lbmRMaW5lID09PSBsaW5l
KQotICAgICAgICAgICAgZGVsdGFFbmRDb2x1bW4gPSAtY29sdW1uOwotCi0gICAgICAgIHJldHVy
biB0aGlzLmNsb25lQW5kTW9kaWZ5KC1saW5lLCBkZWx0YVN0YXJ0Q29sdW1uLCAtbGluZSwgZGVs
dGFFbmRDb2x1bW4pOwotICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25TZWN0
aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFk
c2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qcwppbmRleCAzYzQxMGY3MzJlNWMuLmFj
ZjEzY2FhNzZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldENTU1N0
eWxlRGVjbGFyYXRpb25TZWN0aW9uLmpzCkBAIC00NzEsNyArNDcxLDcgQEAgV0kuU3ByZWFkc2hl
ZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbiA9IGNsYXNzIFNwcmVhZHNoZWV0Q1NTU3R5bGVE
ZWNsYXJhdGlvblMKICAgICBfcG9wdWxhdGVJY29uRWxlbWVudENvbnRleHRNZW51KGNvbnRleHRN
ZW51KQogICAgIHsKICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygi
Q29weSBSdWxlIiksICgpID0+IHsKLSAgICAgICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5j
b3B5VGV4dCh0aGlzLl9zdHlsZS5nZW5lcmF0ZUNTU1J1bGVTdHJpbmcoKSk7CisgICAgICAgICAg
ICBJbnNwZWN0b3JGcm9udGVuZEhvc3QuY29weVRleHQodGhpcy5fc3R5bGUuZ2VuZXJhdGVGb3Jt
YXR0ZWRUZXh0KHtpbmNsdWRlR3JvdXBpbmdzOiB0cnVlLCBmb3JjZU11bHRpbGluZTogdHJ1ZX0p
KTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaWYgKHRoaXMuX3N0eWxlLmVkaXRhYmxlICYmIHRo
aXMuX3N0eWxlLnByb3BlcnRpZXMubGVuZ3RoKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433595</attachid>
            <date>2021-07-15 10:00:38 -0700</date>
            <delta_ts>2021-07-28 14:56:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>44843</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4MDc3NzUyOGUzNzguLmJlYTc0YTMxNDlmOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBA
CisyMDIxLTA3LTE1ICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IFN0eWxlczogZm9ybWF0IHN0eWxlIGRlY2xhcmF0aW9ucyBh
ZnRlciBlZGl0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzg4MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1MTg1MDYwPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gSW5kZW50IHRleHQgb2Yg
ZXhwZWN0ZWQgQ1NTIHByb3BlcnRpZXMuCisgICAgICAgIC0gVGVzdCBnZW5lcmF0ZUZvcm1hdHRl
ZFRleHQgd2l0aCBhbGwgcGVybXV0YXRpb25zIG9mIGl0cyBvcHRpb25zLgorICAgICAgICAtIEFk
ZCBhIGJhc2ljIHRlc3QgdW5zdXJpbmcgc3R5bGVTaGVldFRleHRSYW5nZSB1cGRhdGVzIGNvcnJl
Y3RseSBmcm9tIHRoZSBiYWNrZW5kLgorCisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9hZGQtY3Nz
LXByb3BlcnR5Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9nZW5lcmF0ZUNTU1J1bGVT
dHJpbmctZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jc3MvZ2Vu
ZXJhdGVDU1NSdWxlU3RyaW5nLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Nz
cy9nZW5lcmF0ZUZvcm1hdHRlZFRleHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvY3NzL2dlbmVyYXRlRm9ybWF0dGVkVGV4dC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvY3NzL21vZGlmeS1jc3MtcHJvcGVydHktZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGluc3BlY3Rvci9jc3MvbW9kaWZ5LWNzcy1wcm9wZXJ0eS5odG1sOgorICAgICAgICAqIGlu
c3BlY3Rvci9jc3MvbW9kaWZ5LWlubGluZS1zdHlsZS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
aW5zcGVjdG9yL2Nzcy9yZXNvdXJjZXMvbW9kaWZ5LWNzcy1wcm9wZXJ0eS5jc3M6IEFkZGVkLgor
ICAgICAgICAoLnJ1bGUtYSk6CisgICAgICAgICgucnVsZS1iKToKKyAgICAgICAgKC5ydWxlLWMp
OgorICAgICAgICAoLnJ1bGUtZCk6CisKIDIwMjEtMDctMTUgIFppcmFuIFN1biAgPHpzdW5AaWdh
bGlhLmNvbT4KIAogICAgICAgICBSZXN5bmMgd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3Jp
ZCB0ZXN0cyBmcm9tIHVwc3RyZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y3NzL2FkZC1jc3MtcHJvcGVydHkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvYWRk
LWNzcy1wcm9wZXJ0eS5odG1sCmluZGV4IDQ1NWE5NWQ0ZTczYi4uZjVkZjk1MzE0MmNmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2FkZC1jc3MtcHJvcGVydHkuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2FkZC1jc3MtcHJvcGVydHkuaHRtbApAQCAt
MjcsNyArMjcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgbmV3UHJvcGVydHku
bmFtZSA9ICJjb2xvciI7CiAgICAgICAgICAgICBuZXdQcm9wZXJ0eS5yYXdWYWx1ZSA9ICJncmVl
biI7CiAKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5bGVEZWNsYXJh
dGlvbi50ZXh0LCBgZm9udC1zaXplOiAxNHB4O2NvbG9yOiBncmVlbjtgLCAiYGNvbG9yOiBncmVl
bmAgcHJvcGVydHkgc2hvdWxkIGJlIGFwcGVuZGVkLiIpOworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RFcXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGBcbiAgICBmb250LXNpemU6
IDE0cHg7XG4gICAgY29sb3I6IGdyZWVuO1xuYCwgImBjb2xvcjogZ3JlZW5gIHByb3BlcnR5IHNo
b3VsZCBiZSBhcHBlbmRlZC4iKTsKIAogICAgICAgICAgICAgc3R5bGVEZWNsYXJhdGlvbi5sb2Nr
ZWQgPSBmYWxzZTsKICAgICAgICAgICAgIHJlc29sdmUoKTsKQEAgLTQzLDcgKzQzLDcgQEAgZnVu
Y3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgIG5ld1Byb3BlcnR5Lm5hbWUgPSAiY29sb3IiOwog
ICAgICAgICAgICAgbmV3UHJvcGVydHkucmF3VmFsdWUgPSAiZ3JlZW4iOwogCi0gICAgICAgICAg
ICBsZXQgZXhwZWN0ZWQgPSBgY29sb3I6IGdyZWVuO1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCBi
cm93bjtcbmA7CisgICAgICAgICAgICBsZXQgZXhwZWN0ZWQgPSBgXG4gICAgY29sb3I6IGdyZWVu
O1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCBicm93bjtcbmA7CiAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlRGVjbGFyYXRpb24udGV4dCwgZXhwZWN0ZWQsICJgY29s
b3I6IGdyZWVuYCBwcm9wZXJ0eSBzaG91bGQgYmUgaW5zZXJ0ZWQgYmVmb3JlIHRoZSBmaXJzdCBw
cm9wZXJ0eS4iKTsKIAogICAgICAgICAgICAgc3R5bGVEZWNsYXJhdGlvbiA9IGdldE1hdGNoZWRT
dHlsZSgiLnJ1bGUtYiIsIHJlc29sdmUpOwpAQCAtNTEsNyArNTEsNyBAQCBmdW5jdGlvbiB0ZXN0
KCkgewogICAgICAgICAgICAgbmV3UHJvcGVydHkubmFtZSA9ICJkaXNwbGF5IjsKICAgICAgICAg
ICAgIG5ld1Byb3BlcnR5LnJhd1ZhbHVlID0gImJsb2NrIjsKIAotICAgICAgICAgICAgZXhwZWN0
ZWQgPSBgY29sb3I6IGdyZWVuO1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCBicm93bjtkaXNwbGF5
OiBibG9jaztcbmA7CisgICAgICAgICAgICBleHBlY3RlZCA9IGBcbiAgICBjb2xvcjogZ3JlZW47
XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIGJyb3duO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuYDsK
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50
ZXh0LCBleHBlY3RlZCwgImBkaXNwbGF5OiBibG9ja2AgcHJvcGVydHkgc2hvdWxkIGJlIGFwcGVu
ZGVkIGF0IHRoZSBlbmQuIik7CiAKICAgICAgICAgICAgIHN0eWxlRGVjbGFyYXRpb24ubG9ja2Vk
ID0gZmFsc2U7CkBAIC02OCw3ICs2OCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAg
ICBuZXdQcm9wZXJ0eS5uYW1lID0gImZvbnQtZmFtaWx5IjsKICAgICAgICAgICAgIG5ld1Byb3Bl
cnR5LnJhd1ZhbHVlID0gImZhbnRhc3kiOwogCi0gICAgICAgICAgICBsZXQgZXhwZWN0ZWQgPSBg
XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcGVhY2hwdWZmO2ZvbnQtZmFtaWx5OiBmYW50YXN5O1xu
ICAgIGNvbG9yOiBidXJseXdvb2RcbmA7CisgICAgICAgICAgICBsZXQgZXhwZWN0ZWQgPSBgXG4g
ICAgYmFja2dyb3VuZC1jb2xvcjogcGVhY2hwdWZmO1xuICAgIGZvbnQtZmFtaWx5OiBmYW50YXN5
O1xuICAgIGNvbG9yOiBidXJseXdvb2Q7XG5gOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RFcXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGV4cGVjdGVkLCAiYGZvbnQtZmFtaWx5
OiBmYW50YXN5YCBwcm9wZXJ0eSBzaG91bGQgYmUgaW5zZXJ0ZWQgYWZ0ZXIgdGhlIGZpcnN0IHBy
b3BlcnR5LiIpOwogCiAgICAgICAgICAgICBzdHlsZURlY2xhcmF0aW9uLmxvY2tlZCA9IGZhbHNl
OwpAQCAtODUsNyArODUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgbmV3UHJv
cGVydHkubmFtZSA9ICJkaXNwbGF5IjsKICAgICAgICAgICAgIG5ld1Byb3BlcnR5LnJhd1ZhbHVl
ID0gImlubGluZSI7CiAKLSAgICAgICAgICAgIGNvbnN0IGV4cGVjdGVkID0gYFxuICAgIGZvbnQt
c2l6ZTogMTRweDtcbiAgICAvKiBjb2xvcjogcmVkOyAqL2Rpc3BsYXk6IGlubGluZTtcbmA7Cisg
ICAgICAgICAgICBjb25zdCBleHBlY3RlZCA9IGBcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAg
LyogY29sb3I6IHJlZDsgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmU7XG5gOwogICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGV4cGVjdGVk
LCAiYGRpc3BsYXk6IGlubGluZWAgcHJvcGVydHkgc2hvdWxkIGJlIGFwcGVuZGVkLiIpOwogCiAg
ICAgICAgICAgICBzdHlsZURlY2xhcmF0aW9uLmxvY2tlZCA9IGZhbHNlOwpAQCAtMTAyLDcgKzEw
Miw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICBuZXdQcm9wZXJ0eS5uYW1lID0g
ImRpc3BsYXkiOwogICAgICAgICAgICAgbmV3UHJvcGVydHkucmF3VmFsdWUgPSAiaW5saW5lIjsK
IAotICAgICAgICAgICAgY29uc3QgZXhwZWN0ZWQgPSBgXG4gICAgZm9udC1zaXplOiAxNHB4O1xu
ICAgIC8qIGNvbG9yOiByZWQgKi9kaXNwbGF5OiBpbmxpbmU7XG5gOworICAgICAgICAgICAgY29u
c3QgZXhwZWN0ZWQgPSBgXG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIC8qIGNvbG9yOiByZWQ7
ICovXG4gICAgZGlzcGxheTogaW5saW5lO1xuYDsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0LCBleHBlY3RlZCwgImBkaXNwbGF5OiBp
bmxpbmVgIHByb3BlcnR5IHNob3VsZCBiZSBhcHBlbmRlZC4iKTsKIAogICAgICAgICAgICAgc3R5
bGVEZWNsYXJhdGlvbi5sb2NrZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jc3MvZ2VuZXJhdGVDU1NSdWxlU3RyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jc3MvZ2VuZXJhdGVDU1NSdWxlU3RyaW5nLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWU5ZTA1OGQ3OTQ3Li4wMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZW5lcmF0ZUNTU1J1bGVTdHJpbmctZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsODcgKzAsMCBAQAotVGVzdGluZyB0aGF0IGdlbmVy
YXRlZCBDU1MgcnVsZSBzdHJpbmdzIGhhdmUgcHJvcGVyIGZvcm1hdHRpbmcuCi0KLQotPT0gUnVu
bmluZyB0ZXN0IHN1aXRlOiBDU1MuZ2VuZXJhdGVDU1NSdWxlU3RyaW5nCi0tLSBSdW5uaW5nIHRl
c3QgY2FzZTogQ1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmluZy5JbmxpbmVTdHlsZQotI3Rlc3Qtbm9k
ZSB7Ci0gICAgYTogMTsKLSAgICBiOiAyOwotICAgIGM6IDM7Ci19Ci0KLS0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBDU1MuZ2VuZXJhdGVDU1NSdWxlU3RyaW5nLklubGluZVN0eWxlLldpdGhDb21tZW50
ZWRQcm9wZXJ0eQotI3Rlc3Qtbm9kZSB7Ci0gICAgYTogMTsKLSAgICAvKiBiOiAyOyAqLwotICAg
IGM6IDM7Ci19Ci0KLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDU1MuZ2VuZXJhdGVDU1NSdWxlU3Ry
aW5nLk1hdGNoZWRSdWxlcwotQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwcHgp
IHsKLSAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4taGVpZ2h0OiAwcHgpIHsKLSAgICAg
ICAgYm9keSA+IGRpdiN0ZXN0LW5vZGUgewotICAgICAgICAgICAgYTogMTsKLSAgICAgICAgICAg
IGI6IDI7Ci0gICAgICAgICAgICBjOiAzOwotICAgICAgICB9Ci0gICAgfQotfQotQG1lZGlhIG9u
bHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwcHgpIHsKLSAgICBib2R5ID4gI3Rlc3Qtbm9kZSB7
Ci0gICAgICAgIGE6IDE7Ci0gICAgICAgIGI6IDI7Ci0gICAgICAgIGM6IDM7Ci0gICAgfQotfQot
Ym9keSA+IGRpdiB7Ci0gICAgYTogMTsKLSAgICBiOiAyOwotICAgIGM6IDM7Ci19Ci1ib2R5ID4g
KiB7Ci0gICAgYTogMTsKLSAgICBiOiAyOwotICAgIGM6IDM7Ci19Ci0qIHsKLSAgICBhOiAxOwot
ICAgIGI6IDI7Ci0gICAgYzogMzsKLX0KLWFkZHJlc3MsIGFydGljbGUsIGFzaWRlLCBkaXYsIGZv
b3RlciwgaGVhZGVyLCBoZ3JvdXAsIGxheWVyLCBtYWluLCBuYXYsIHNlY3Rpb24gewotICAgIGRp
c3BsYXk6IGJsb2NrOwotfQotCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ1NTLmdlbmVyYXRlQ1NT
UnVsZVN0cmluZy5NYXRjaGVkUnVsZXMuV2l0aENvbW1lbnRlZFByb3BlcnRpZXMKLUBtZWRpYSBv
bmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMHB4KSB7Ci0gICAgQG1lZGlhIG9ubHkgc2NyZWVu
IGFuZCAobWluLWhlaWdodDogMHB4KSB7Ci0gICAgICAgIGJvZHkgPiBkaXYjdGVzdC1ub2RlIHsK
LSAgICAgICAgICAgIGE6IDE7Ci0gICAgICAgICAgICAvKiBiOiAyOyAqLwotICAgICAgICAgICAg
YzogMzsKLSAgICAgICAgfQotICAgIH0KLX0KLUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13
aWR0aDogMHB4KSB7Ci0gICAgYm9keSA+ICN0ZXN0LW5vZGUgewotICAgICAgICBhOiAxOwotICAg
ICAgICAvKiBiOiAyOyAqLwotICAgICAgICBjOiAzOwotICAgIH0KLX0KLWJvZHkgPiBkaXYgewot
ICAgIGE6IDE7Ci0gICAgLyogYjogMjsgKi8KLSAgICBjOiAzOwotfQotYm9keSA+ICogewotICAg
IGE6IDE7Ci0gICAgLyogYjogMjsgKi8KLSAgICBjOiAzOwotfQotKiB7Ci0gICAgYTogMTsKLSAg
ICAvKiBiOiAyOyAqLwotICAgIGM6IDM7Ci19Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jc3MvZ2VuZXJhdGVDU1NSdWxlU3RyaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY3NzL2dlbmVyYXRlQ1NTUnVsZVN0cmluZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA1ZWY5Zjc3YTlmYWYuLjAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY3NzL2dlbmVyYXRlQ1NTUnVsZVN0cmluZy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsODEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgot
KnthOjE7YjoyO2M6M30KLWJvZHk+KnthOjE7YjoyO2M6M30KLUBtZWRpYSBhbGwge2JvZHk+ZGl2
e2E6MTtiOjI7YzozfX0KLUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDowcHgpIHti
b2R5PiN0ZXN0LW5vZGV7YToxO2I6MjtjOjN9fQotQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWlu
LXdpZHRoOjBweCkge0BtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi1oZWlnaHQ6MHB4KSB7Ym9k
eT5kaXYjdGVzdC1ub2Rle2E6MTtiOjI7YzozfX19Ci08L3N0eWxlPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBsZXQgbm9kZVN0eWxlcyA9
IG51bGw7Ci0KLSAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVN5bmNTdWl0ZSgi
Q1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmluZyIpOwotCi0gICAgc3VpdGUuYWRkVGVzdENhc2Uoewot
ICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmluZy5JbmxpbmVTdHlsZSIsCi0g
ICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhlIGZvcm1hdHRpbmcgb2YgdGhlIGdlbmVyYXRl
ZCBpbmxpbmUgc3R5bGUgc3RyaW5nLiIsCi0gICAgICAgIHRlc3QoKSB7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZyhub2RlU3R5bGVzLmlubGluZVN0eWxlLmdlbmVyYXRlQ1NTUnVsZVN0
cmluZygpKTsKLSAgICAgICAgfQotICAgIH0pOwotCi0gICAgc3VpdGUuYWRkVGVzdENhc2Uoewot
ICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmluZy5JbmxpbmVTdHlsZS5XaXRo
Q29tbWVudGVkUHJvcGVydHkiLAotICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoZSBmb3Jt
YXR0aW5nIG9mIHRoZSBnZW5lcmF0ZWQgaW5saW5lIHN0eWxlIHN0cmluZyBpZiBhIHByb3BlcnR5
IGlzIGNvbW1lbnRlZCBvdXQuIiwKLSAgICAgICAgdGVzdCgpIHsKLSAgICAgICAgICAgIG5vZGVT
dHlsZXMuaW5saW5lU3R5bGUucHJvcGVydGllc1sxXS5jb21tZW50T3V0KHRydWUpOwotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2cobm9kZVN0eWxlcy5pbmxpbmVTdHlsZS5nZW5lcmF0ZUNT
U1J1bGVTdHJpbmcoKSk7Ci0gICAgICAgIH0sCi0gICAgfSk7Ci0KLSAgICBzdWl0ZS5hZGRUZXN0
Q2FzZSh7Ci0gICAgICAgIG5hbWU6ICJDU1MuZ2VuZXJhdGVDU1NSdWxlU3RyaW5nLk1hdGNoZWRS
dWxlcyIsCi0gICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhlIGZvcm1hdHRpbmcgb2YgdGhl
IGdlbmVyYXRlZCBzdHJpbmcgZm9yIGFsbCBtYXRjaGVkIENTUyBydWxlcy4iLAotICAgICAgICB0
ZXN0KCkgewotICAgICAgICAgICAgZm9yIChsZXQgcnVsZSBvZiBub2RlU3R5bGVzLm1hdGNoZWRS
dWxlcykKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhydWxlLnN0eWxlLmdlbmVy
YXRlQ1NTUnVsZVN0cmluZygpKTsKLSAgICAgICAgfQotICAgIH0pOwotCi0gICAgc3VpdGUuYWRk
VGVzdENhc2UoewotICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmluZy5NYXRj
aGVkUnVsZXMuV2l0aENvbW1lbnRlZFByb3BlcnRpZXMiLAotICAgICAgICBkZXNjcmlwdGlvbjog
IkNoZWNrIHRoZSBmb3JtYXR0aW5nIG9mIHRoZSBnZW5lcmF0ZWQgc3RyaW5nIGZvciBhbGwgbWF0
Y2hlZCBDU1MgcnVsZXMgaWYgYSBwcm9wZXJ0eSBpcyBjb21tZW50ZWQgb3V0IGluIGVhY2guIiwK
LSAgICAgICAgdGVzdCgpIHsKLSAgICAgICAgICAgIGZvciAobGV0IHJ1bGUgb2Ygbm9kZVN0eWxl
cy5tYXRjaGVkUnVsZXMpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXJ1bGUuc3R5bGUuZWRpdGFi
bGUpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICAgICAgcnVs
ZS5zdHlsZS5wcm9wZXJ0aWVzWzFdLmNvbW1lbnRPdXQodHJ1ZSk7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2cocnVsZS5zdHlsZS5nZW5lcmF0ZUNTU1J1bGVTdHJpbmcoKSk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9KTsKLQotICAgIFdJLmRvbU1hbmFnZXIucmVx
dWVzdERvY3VtZW50KChkb2N1bWVudE5vZGUpID0+IHsKLSAgICAgICAgZG9jdW1lbnROb2RlLnF1
ZXJ5U2VsZWN0b3IoIiN0ZXN0LW5vZGUiLCBhc3luYyAoY29udGVudE5vZGVJZCkgPT4gewotICAg
ICAgICAgICAgaWYgKCFjb250ZW50Tm9kZUlkKSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIkRPTSBub2RlIG5vdCBmb3VuZC4iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgbGV0IGRvbU5vZGUgPSBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJ
ZChjb250ZW50Tm9kZUlkKTsKLSAgICAgICAgICAgIG5vZGVTdHlsZXMgPSBXSS5jc3NNYW5hZ2Vy
LnN0eWxlc0Zvck5vZGUoZG9tTm9kZSk7Ci0gICAgICAgICAgICBpZiAobm9kZVN0eWxlcy5uZWVk
c1JlZnJlc2gpCi0gICAgICAgICAgICAgICAgYXdhaXQgbm9kZVN0eWxlcy5hd2FpdEV2ZW50KFdJ
LkRPTU5vZGVTdHlsZXMuRXZlbnQuUmVmcmVzaGVkKTsKLQotICAgICAgICAgICAgc3VpdGUucnVu
VGVzdENhc2VzQW5kRmluaXNoKCk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgPHA+VGVzdGluZyB0aGF0
IGdlbmVyYXRlZCBDU1MgcnVsZSBzdHJpbmdzIGhhdmUgcHJvcGVyIGZvcm1hdHRpbmcuPC9wPgot
ICAgIDxkaXYgaWQ9InRlc3Qtbm9kZSIgc3R5bGU9ImE6MTtiOjI7YzozIj48L2Rpdj4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2VuZXJh
dGVGb3JtYXR0ZWRUZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mv
Z2VuZXJhdGVGb3JtYXR0ZWRUZXh0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAuLjhmNjg3OWI5ZTFjMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDE5MiBAQAorVGVzdGluZyB0aGF0IGdlbmVyYXRlZCBDU1MgcnVsZSBzdHJpbmdz
IGhhdmUgcHJvcGVyIGZvcm1hdHRpbmcuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBDU1Mu
Z2VuZXJhdGVDU1NSdWxlU3RyaW5nCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ1NTLmdlbmVyYXRl
Q1NTUnVsZVN0cmluZy5JbmxpbmVTdHlsZQorYTogMTsgYjogMjsgYzogMzsKKworLS0gUnVubmlu
ZyB0ZXN0IGNhc2U6IENTUy5nZW5lcmF0ZUNTU1J1bGVTdHJpbmcuSW5saW5lU3R5bGUuaW5jbHVk
ZUdyb3VwaW5nc0FuZFNlbGVjdG9ycworI3Rlc3Qtbm9kZSB7YTogMTsgYjogMjsgYzogMzt9CisK
Ky0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDU1MuZ2VuZXJhdGVDU1NSdWxlU3RyaW5nLklubGluZVN0
eWxlLk11bHRpbGluZQorCisgICAgYTogMTsKKyAgICBiOiAyOworICAgIGM6IDM7CisKKworLS0g
UnVubmluZyB0ZXN0IGNhc2U6IENTUy5nZW5lcmF0ZUNTU1J1bGVTdHJpbmcuSW5saW5lU3R5bGUu
TXVsdGlsaW5lLmluY2x1ZGVHcm91cGluZ3NBbmRTZWxlY3RvcnMKKyN0ZXN0LW5vZGUgeworICAg
IGE6IDE7CisgICAgYjogMjsKKyAgICBjOiAzOworfQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTog
Q1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmluZy5JbmxpbmVTdHlsZS5XaXRoQ29tbWVudGVkUHJvcGVy
dHkKK2E6IDE7IC8qIGI6IDI7ICovIGM6IDM7CisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDU1Mu
Z2VuZXJhdGVDU1NSdWxlU3RyaW5nLklubGluZVN0eWxlLldpdGhDb21tZW50ZWRQcm9wZXJ0eS5p
bmNsdWRlR3JvdXBpbmdzQW5kU2VsZWN0b3JzCisjdGVzdC1ub2RlIHthOiAxOyAvKiBiOiAyOyAq
LyBjOiAzO30KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENTUy5nZW5lcmF0ZUNTU1J1bGVTdHJp
bmcuSW5saW5lU3R5bGUuV2l0aENvbW1lbnRlZFByb3BlcnR5Lk11bHRpbGluZQorCisgICAgYTog
MTsKKyAgICAvKiBiOiAyOyAqLworICAgIGM6IDM7CisKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6
IENTUy5nZW5lcmF0ZUNTU1J1bGVTdHJpbmcuSW5saW5lU3R5bGUuV2l0aENvbW1lbnRlZFByb3Bl
cnR5LmluY2x1ZGVHcm91cGluZ3NBbmRTZWxlY3RvcnMuTXVsdGlsaW5lCisjdGVzdC1ub2RlIHsK
KyAgICBhOiAxOworICAgIC8qIGI6IDI7ICovCisgICAgYzogMzsKK30KKworLS0gUnVubmluZyB0
ZXN0IGNhc2U6IENTUy5nZW5lcmF0ZUNTU1J1bGVTdHJpbmcuTWF0Y2hlZFJ1bGVzCithOiAxOyBi
OiAyOyBjOiAzOworYTogMTsgYjogMjsgYzogMzsKK2E6IDE7IGI6IDI7IGM6IDM7CithOiAxOyBi
OiAyOyBjOiAzOworYTogMTsgYjogMjsgYzogMzsKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENT
Uy5nZW5lcmF0ZUNTU1J1bGVTdHJpbmcuTWF0Y2hlZFJ1bGVzLmluY2x1ZGVHcm91cGluZ3NBbmRT
ZWxlY3RvcnMKK0BtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMHB4KSB7QG1lZGlh
IG9ubHkgc2NyZWVuIGFuZCAobWluLWhlaWdodDogMHB4KSB7Ym9keSA+IGRpdiN0ZXN0LW5vZGUg
e2E6IDE7IGI6IDI7IGM6IDM7fX19CitAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6
IDBweCkge2JvZHkgPiAjdGVzdC1ub2RlIHthOiAxOyBiOiAyOyBjOiAzO319Citib2R5ID4gZGl2
IHthOiAxOyBiOiAyOyBjOiAzO30KK2JvZHkgPiAqIHthOiAxOyBiOiAyOyBjOiAzO30KKyoge2E6
IDE7IGI6IDI7IGM6IDM7fQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ1NTLmdlbmVyYXRlQ1NT
UnVsZVN0cmluZy5NYXRjaGVkUnVsZXMuTXVsdGlsaW5lCisKKyAgICAgICAgICAgIGE6IDE7Cisg
ICAgICAgICAgICBiOiAyOworICAgICAgICAgICAgYzogMzsKKworCisgICAgICAgIGE6IDE7Cisg
ICAgICAgIGI6IDI7CisgICAgICAgIGM6IDM7CisKKworICAgIGE6IDE7CisgICAgYjogMjsKKyAg
ICBjOiAzOworCisKKyAgICBhOiAxOworICAgIGI6IDI7CisgICAgYzogMzsKKworCisgICAgYTog
MTsKKyAgICBiOiAyOworICAgIGM6IDM7CisKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENTUy5n
ZW5lcmF0ZUNTU1J1bGVTdHJpbmcuTWF0Y2hlZFJ1bGVzLmluY2x1ZGVHcm91cGluZ3NBbmRTZWxl
Y3RvcnMuTXVsdGlsaW5lCitAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBweCkg
eworICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi1oZWlnaHQ6IDBweCkgeworICAgICAg
ICBib2R5ID4gZGl2I3Rlc3Qtbm9kZSB7CisgICAgICAgICAgICBhOiAxOworICAgICAgICAgICAg
YjogMjsKKyAgICAgICAgICAgIGM6IDM7CisgICAgICAgIH0KKyAgICB9Cit9CitAbWVkaWEgb25s
eSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBweCkgeworICAgIGJvZHkgPiAjdGVzdC1ub2RlIHsK
KyAgICAgICAgYTogMTsKKyAgICAgICAgYjogMjsKKyAgICAgICAgYzogMzsKKyAgICB9Cit9Citi
b2R5ID4gZGl2IHsKKyAgICBhOiAxOworICAgIGI6IDI7CisgICAgYzogMzsKK30KK2JvZHkgPiAq
IHsKKyAgICBhOiAxOworICAgIGI6IDI7CisgICAgYzogMzsKK30KKyogeworICAgIGE6IDE7Cisg
ICAgYjogMjsKKyAgICBjOiAzOworfQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ1NTLmdlbmVy
YXRlQ1NTUnVsZVN0cmluZy5NYXRjaGVkUnVsZXMuV2l0aENvbW1lbnRlZFByb3BlcnRpZXMKK2E6
IDE7IC8qIGI6IDI7ICovIGM6IDM7CithOiAxOyAvKiBiOiAyOyAqLyBjOiAzOworYTogMTsgLyog
YjogMjsgKi8gYzogMzsKK2E6IDE7IC8qIGI6IDI7ICovIGM6IDM7CithOiAxOyAvKiBiOiAyOyAq
LyBjOiAzOworCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmlu
Zy5NYXRjaGVkUnVsZXMuV2l0aENvbW1lbnRlZFByb3BlcnRpZXMuaW5jbHVkZUdyb3VwaW5nc0Fu
ZFNlbGVjdG9ycworQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwcHgpIHtAbWVk
aWEgb25seSBzY3JlZW4gYW5kIChtaW4taGVpZ2h0OiAwcHgpIHtib2R5ID4gZGl2I3Rlc3Qtbm9k
ZSB7YTogMTsgLyogYjogMjsgKi8gYzogMzt9fX0KK0BtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1p
bi13aWR0aDogMHB4KSB7Ym9keSA+ICN0ZXN0LW5vZGUge2E6IDE7IC8qIGI6IDI7ICovIGM6IDM7
fX0KK2JvZHkgPiBkaXYge2E6IDE7IC8qIGI6IDI7ICovIGM6IDM7fQorYm9keSA+ICoge2E6IDE7
IC8qIGI6IDI7ICovIGM6IDM7fQorKiB7YTogMTsgLyogYjogMjsgKi8gYzogMzt9CisKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBDU1MuZ2VuZXJhdGVDU1NSdWxlU3RyaW5nLk1hdGNoZWRSdWxlcy5X
aXRoQ29tbWVudGVkUHJvcGVydGllcy5NdWx0aWxpbmUKKworICAgICAgICAgICAgYTogMTsKKyAg
ICAgICAgICAgIC8qIGI6IDI7ICovCisgICAgICAgICAgICBjOiAzOworCisKKyAgICAgICAgYTog
MTsKKyAgICAgICAgLyogYjogMjsgKi8KKyAgICAgICAgYzogMzsKKworCisgICAgYTogMTsKKyAg
ICAvKiBiOiAyOyAqLworICAgIGM6IDM7CisKKworICAgIGE6IDE7CisgICAgLyogYjogMjsgKi8K
KyAgICBjOiAzOworCisKKyAgICBhOiAxOworICAgIC8qIGI6IDI7ICovCisgICAgYzogMzsKKwor
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmluZy5NYXRjaGVk
UnVsZXMuV2l0aENvbW1lbnRlZFByb3BlcnRpZXMuaW5jbHVkZUdyb3VwaW5nc0FuZFNlbGVjdG9y
cy5NdWx0aWxpbmUKK0BtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMHB4KSB7Cisg
ICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLWhlaWdodDogMHB4KSB7CisgICAgICAgIGJv
ZHkgPiBkaXYjdGVzdC1ub2RlIHsKKyAgICAgICAgICAgIGE6IDE7CisgICAgICAgICAgICAvKiBi
OiAyOyAqLworICAgICAgICAgICAgYzogMzsKKyAgICAgICAgfQorICAgIH0KK30KK0BtZWRpYSBv
bmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMHB4KSB7CisgICAgYm9keSA+ICN0ZXN0LW5vZGUg
eworICAgICAgICBhOiAxOworICAgICAgICAvKiBiOiAyOyAqLworICAgICAgICBjOiAzOworICAg
IH0KK30KK2JvZHkgPiBkaXYgeworICAgIGE6IDE7CisgICAgLyogYjogMjsgKi8KKyAgICBjOiAz
OworfQorYm9keSA+ICogeworICAgIGE6IDE7CisgICAgLyogYjogMjsgKi8KKyAgICBjOiAzOwor
fQorKiB7CisgICAgYTogMTsKKyAgICAvKiBiOiAyOyAqLworICAgIGM6IDM7Cit9CisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dlbmVyYXRlRm9ybWF0dGVkVGV4dC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOWYxMjQxMjExMzM1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZW5lcmF0ZUZvcm1h
dHRlZFRleHQuaHRtbApAQCAtMCwwICsxLDIwOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHN0eWxlPgorKnthOjE7YjoyO2M6M30KK2JvZHk+KnthOjE7YjoyO2M6M30KK0Bt
ZWRpYSBhbGwge2JvZHk+ZGl2e2E6MTtiOjI7YzozfX0KK0BtZWRpYSBvbmx5IHNjcmVlbiBhbmQg
KG1pbi13aWR0aDowcHgpIHtib2R5PiN0ZXN0LW5vZGV7YToxO2I6MjtjOjN9fQorQG1lZGlhIG9u
bHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOjBweCkge0BtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1p
bi1oZWlnaHQ6MHB4KSB7Ym9keT5kaXYjdGVzdC1ub2Rle2E6MTtiOjI7YzozfX19Cis8L3N0eWxl
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNw
ZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpIHsKKyAg
ICBsZXQgbm9kZVN0eWxlcyA9IG51bGw7CisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0
LmNyZWF0ZVN5bmNTdWl0ZSgiQ1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmluZyIpOworCisgICAgc3Vp
dGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmlu
Zy5JbmxpbmVTdHlsZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhlIGZvcm1hdHRp
bmcgb2YgdGhlIGdlbmVyYXRlZCBpbmxpbmUgc3R5bGUgc3RyaW5nLiIsCisgICAgICAgIHRlc3Qo
KSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhub2RlU3R5bGVzLmlubGluZVN0eWxl
LmdlbmVyYXRlRm9ybWF0dGVkVGV4dCgpKTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3Vp
dGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmlu
Zy5JbmxpbmVTdHlsZS5pbmNsdWRlR3JvdXBpbmdzQW5kU2VsZWN0b3JzIiwKKyAgICAgICAgZGVz
Y3JpcHRpb246ICJDaGVjayB0aGUgZm9ybWF0dGluZyBvZiB0aGUgZ2VuZXJhdGVkIGlubGluZSBz
dHlsZSBzdHJpbmcgKGluY2x1ZGluZyBncm91cGluZ3MgYW5kIHNlbGVjdG9ycykuIiwKKyAgICAg
ICAgdGVzdCgpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKG5vZGVTdHlsZXMuaW5s
aW5lU3R5bGUuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0KHtpbmNsdWRlR3JvdXBpbmdzQW5kU2VsZWN0
b3JzOiB0cnVlfSkpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2Fz
ZSh7CisgICAgICAgIG5hbWU6ICJDU1MuZ2VuZXJhdGVDU1NSdWxlU3RyaW5nLklubGluZVN0eWxl
Lk11bHRpbGluZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhlIGZvcm1hdHRpbmcg
b2YgdGhlIGdlbmVyYXRlZCBpbmxpbmUgc3R5bGUgc3RyaW5nIChtdWx0aWxpbmUpLiIsCisgICAg
ICAgIHRlc3QoKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhub2RlU3R5bGVzLmlu
bGluZVN0eWxlLmdlbmVyYXRlRm9ybWF0dGVkVGV4dCh7bXVsdGlsaW5lOiB0cnVlfSkpOworICAg
ICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6
ICJDU1MuZ2VuZXJhdGVDU1NSdWxlU3RyaW5nLklubGluZVN0eWxlLk11bHRpbGluZS5pbmNsdWRl
R3JvdXBpbmdzQW5kU2VsZWN0b3JzIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGUg
Zm9ybWF0dGluZyBvZiB0aGUgZ2VuZXJhdGVkIGlubGluZSBzdHlsZSBzdHJpbmcgKG11bHRpbGlu
ZSwgYW5kIGluY2x1ZGluZyBncm91cGluZ3MgYW5kIHNlbGVjdG9ycykuIiwKKyAgICAgICAgdGVz
dCgpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKG5vZGVTdHlsZXMuaW5saW5lU3R5
bGUuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0KHttdWx0aWxpbmU6IHRydWUsIGluY2x1ZGVHcm91cGlu
Z3NBbmRTZWxlY3RvcnM6IHRydWV9KSk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRl
LmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkNTUy5nZW5lcmF0ZUNTU1J1bGVTdHJpbmcu
SW5saW5lU3R5bGUuV2l0aENvbW1lbnRlZFByb3BlcnR5IiwKKyAgICAgICAgZGVzY3JpcHRpb246
ICJDaGVjayB0aGUgZm9ybWF0dGluZyBvZiB0aGUgZ2VuZXJhdGVkIGlubGluZSBzdHlsZSBzdHJp
bmcgaWYgYSBwcm9wZXJ0eSBpcyBjb21tZW50ZWQgb3V0LiIsCisgICAgICAgIHRlc3QoKSB7Cisg
ICAgICAgICAgICBub2RlU3R5bGVzLmlubGluZVN0eWxlLnByb3BlcnRpZXNbMV0uY29tbWVudE91
dCh0cnVlKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKG5vZGVTdHlsZXMuaW5saW5l
U3R5bGUuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0KCkpOworICAgICAgICB9LAorICAgIH0pOworCisg
ICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlQ1NTUnVs
ZVN0cmluZy5JbmxpbmVTdHlsZS5XaXRoQ29tbWVudGVkUHJvcGVydHkuaW5jbHVkZUdyb3VwaW5n
c0FuZFNlbGVjdG9ycyIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhlIGZvcm1hdHRp
bmcgb2YgdGhlIGdlbmVyYXRlZCBpbmxpbmUgc3R5bGUgc3RyaW5nIChpbmNsdWRpbmcgZ3JvdXBp
bmdzIGFuZCBzZWxlY3RvcnMpIGlmIGEgcHJvcGVydHkgaXMgY29tbWVudGVkIG91dC4iLAorICAg
ICAgICB0ZXN0KCkgeworICAgICAgICAgICAgbm9kZVN0eWxlcy5pbmxpbmVTdHlsZS5wcm9wZXJ0
aWVzWzFdLmNvbW1lbnRPdXQodHJ1ZSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhu
b2RlU3R5bGVzLmlubGluZVN0eWxlLmdlbmVyYXRlRm9ybWF0dGVkVGV4dCh7aW5jbHVkZUdyb3Vw
aW5nc0FuZFNlbGVjdG9yczogdHJ1ZX0pKTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIHN1
aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkNTUy5nZW5lcmF0ZUNTU1J1bGVTdHJp
bmcuSW5saW5lU3R5bGUuV2l0aENvbW1lbnRlZFByb3BlcnR5Lk11bHRpbGluZSIsCisgICAgICAg
IGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhlIGZvcm1hdHRpbmcgb2YgdGhlIGdlbmVyYXRlZCBpbmxp
bmUgc3R5bGUgc3RyaW5nIChtdWx0aWxpbmUpIGlmIGEgcHJvcGVydHkgaXMgY29tbWVudGVkIG91
dC4iLAorICAgICAgICB0ZXN0KCkgeworICAgICAgICAgICAgbm9kZVN0eWxlcy5pbmxpbmVTdHls
ZS5wcm9wZXJ0aWVzWzFdLmNvbW1lbnRPdXQodHJ1ZSk7CisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZyhub2RlU3R5bGVzLmlubGluZVN0eWxlLmdlbmVyYXRlRm9ybWF0dGVkVGV4dCh7bXVs
dGlsaW5lOiB0cnVlfSkpOworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVz
dENhc2UoeworICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmluZy5JbmxpbmVT
dHlsZS5XaXRoQ29tbWVudGVkUHJvcGVydHkuaW5jbHVkZUdyb3VwaW5nc0FuZFNlbGVjdG9ycy5N
dWx0aWxpbmUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoZSBmb3JtYXR0aW5nIG9m
IHRoZSBnZW5lcmF0ZWQgaW5saW5lIHN0eWxlIHN0cmluZyAobXVsdGlsaW5lLCBhbmQgaW5jbHVk
aW5nIGdyb3VwaW5ncyBhbmQgc2VsZWN0b3JzKSBpZiBhIHByb3BlcnR5IGlzIGNvbW1lbnRlZCBv
dXQuIiwKKyAgICAgICAgdGVzdCgpIHsKKyAgICAgICAgICAgIG5vZGVTdHlsZXMuaW5saW5lU3R5
bGUucHJvcGVydGllc1sxXS5jb21tZW50T3V0KHRydWUpOworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2cobm9kZVN0eWxlcy5pbmxpbmVTdHlsZS5nZW5lcmF0ZUZvcm1hdHRlZFRleHQoe2lu
Y2x1ZGVHcm91cGluZ3NBbmRTZWxlY3RvcnM6IHRydWUsIG11bHRpbGluZTogdHJ1ZX0pKTsKKyAg
ICAgICAgfSwKKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFt
ZTogIkNTUy5nZW5lcmF0ZUNTU1J1bGVTdHJpbmcuTWF0Y2hlZFJ1bGVzIiwKKyAgICAgICAgZGVz
Y3JpcHRpb246ICJDaGVjayB0aGUgZm9ybWF0dGluZyBvZiB0aGUgZ2VuZXJhdGVkIHN0cmluZyBm
b3IgYWxsIG1hdGNoZWQgQ1NTIHJ1bGVzLiIsCisgICAgICAgIHRlc3QoKSB7CisgICAgICAgICAg
ICBmb3IgKGxldCBydWxlIG9mIG5vZGVTdHlsZXMubWF0Y2hlZFJ1bGVzKSB7CisgICAgICAgICAg
ICAgICAgaWYgKCFydWxlLnN0eWxlLmVkaXRhYmxlKQorICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhydWxlLnN0eWxlLmdlbmVy
YXRlRm9ybWF0dGVkVGV4dCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0pOwor
CisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlQ1NT
UnVsZVN0cmluZy5NYXRjaGVkUnVsZXMuaW5jbHVkZUdyb3VwaW5nc0FuZFNlbGVjdG9ycyIsCisg
ICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhlIGZvcm1hdHRpbmcgb2YgdGhlIGdlbmVyYXRl
ZCBzdHJpbmcgKGluY2x1ZGluZyBncm91cGluZ3MgYW5kIHNlbGVjdG9ycykgZm9yIGFsbCBtYXRj
aGVkIENTUyBydWxlcy4iLAorICAgICAgICB0ZXN0KCkgeworICAgICAgICAgICAgZm9yIChsZXQg
cnVsZSBvZiBub2RlU3R5bGVzLm1hdGNoZWRSdWxlcykgeworICAgICAgICAgICAgICAgIGlmICgh
cnVsZS5zdHlsZS5lZGl0YWJsZSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2cocnVsZS5zdHlsZS5nZW5lcmF0ZUZvcm1hdHRl
ZFRleHQoe2luY2x1ZGVHcm91cGluZ3NBbmRTZWxlY3RvcnM6IHRydWV9KSk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAg
ICAgbmFtZTogIkNTUy5nZW5lcmF0ZUNTU1J1bGVTdHJpbmcuTWF0Y2hlZFJ1bGVzLk11bHRpbGlu
ZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhlIGZvcm1hdHRpbmcgb2YgdGhlIGdl
bmVyYXRlZCBzdHJpbmcgKG11bHRpbGluZSkgZm9yIGFsbCBtYXRjaGVkIENTUyBydWxlcy4iLAor
ICAgICAgICB0ZXN0KCkgeworICAgICAgICAgICAgZm9yIChsZXQgcnVsZSBvZiBub2RlU3R5bGVz
Lm1hdGNoZWRSdWxlcykgeworICAgICAgICAgICAgICAgIGlmICghcnVsZS5zdHlsZS5lZGl0YWJs
ZSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2cocnVsZS5zdHlsZS5nZW5lcmF0ZUZvcm1hdHRlZFRleHQoe211bHRpbGluZTog
dHJ1ZX0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUu
YWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmluZy5N
YXRjaGVkUnVsZXMuaW5jbHVkZUdyb3VwaW5nc0FuZFNlbGVjdG9ycy5NdWx0aWxpbmUiLAorICAg
ICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoZSBmb3JtYXR0aW5nIG9mIHRoZSBnZW5lcmF0ZWQg
c3RyaW5nIChtdWx0aWxpbmUsIGFuZCBpbmNsdWRpbmcgZ3JvdXBpbmdzIGFuZCBzZWxlY3RvcnMp
IGZvciBhbGwgbWF0Y2hlZCBDU1MgcnVsZXMuIiwKKyAgICAgICAgdGVzdCgpIHsKKyAgICAgICAg
ICAgIGZvciAobGV0IHJ1bGUgb2Ygbm9kZVN0eWxlcy5tYXRjaGVkUnVsZXMpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoIXJ1bGUuc3R5bGUuZWRpdGFibGUpCisgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKHJ1bGUuc3R5bGUuZ2Vu
ZXJhdGVGb3JtYXR0ZWRUZXh0KHtpbmNsdWRlR3JvdXBpbmdzQW5kU2VsZWN0b3JzOiB0cnVlLCBt
dWx0aWxpbmU6IHRydWV9KSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9KTsKKwor
ICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkNTUy5nZW5lcmF0ZUNTU1J1
bGVTdHJpbmcuTWF0Y2hlZFJ1bGVzLldpdGhDb21tZW50ZWRQcm9wZXJ0aWVzIiwKKyAgICAgICAg
ZGVzY3JpcHRpb246ICJDaGVjayB0aGUgZm9ybWF0dGluZyBvZiB0aGUgZ2VuZXJhdGVkIHN0cmlu
ZyBmb3IgYWxsIG1hdGNoZWQgQ1NTIHJ1bGVzIGlmIGEgcHJvcGVydHkgaXMgY29tbWVudGVkIG91
dCBpbiBlYWNoLiIsCisgICAgICAgIHRlc3QoKSB7CisgICAgICAgICAgICBmb3IgKGxldCBydWxl
IG9mIG5vZGVTdHlsZXMubWF0Y2hlZFJ1bGVzKSB7CisgICAgICAgICAgICAgICAgaWYgKCFydWxl
LnN0eWxlLmVkaXRhYmxlKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
ICAgICAgICBydWxlLnN0eWxlLnByb3BlcnRpZXNbMV0uY29tbWVudE91dCh0cnVlKTsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhydWxlLnN0eWxlLmdlbmVyYXRlRm9ybWF0dGVk
VGV4dCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUu
YWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmluZy5N
YXRjaGVkUnVsZXMuV2l0aENvbW1lbnRlZFByb3BlcnRpZXMuaW5jbHVkZUdyb3VwaW5nc0FuZFNl
bGVjdG9ycyIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhlIGZvcm1hdHRpbmcgb2Yg
dGhlIGdlbmVyYXRlZCBzdHJpbmcgKGluY2x1ZGluZyBncm91cGluZ3MgYW5kIHNlbGVjdG9ycykg
Zm9yIGFsbCBtYXRjaGVkIENTUyBydWxlcyBpZiBhIHByb3BlcnR5IGlzIGNvbW1lbnRlZCBvdXQg
aW4gZWFjaC4iLAorICAgICAgICB0ZXN0KCkgeworICAgICAgICAgICAgZm9yIChsZXQgcnVsZSBv
ZiBub2RlU3R5bGVzLm1hdGNoZWRSdWxlcykgeworICAgICAgICAgICAgICAgIGlmICghcnVsZS5z
dHlsZS5lZGl0YWJsZSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICAgICAgcnVsZS5zdHlsZS5wcm9wZXJ0aWVzWzFdLmNvbW1lbnRPdXQodHJ1ZSk7CisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2cocnVsZS5zdHlsZS5nZW5lcmF0ZUZvcm1hdHRlZFRl
eHQoe2luY2x1ZGVHcm91cGluZ3NBbmRTZWxlY3RvcnM6IHRydWV9KSk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAg
bmFtZTogIkNTUy5nZW5lcmF0ZUNTU1J1bGVTdHJpbmcuTWF0Y2hlZFJ1bGVzLldpdGhDb21tZW50
ZWRQcm9wZXJ0aWVzLk11bHRpbGluZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhl
IGZvcm1hdHRpbmcgb2YgdGhlIGdlbmVyYXRlZCBzdHJpbmcgKG11bHRpbGluZSkgZm9yIGFsbCBt
YXRjaGVkIENTUyBydWxlcyBpZiBhIHByb3BlcnR5IGlzIGNvbW1lbnRlZCBvdXQgaW4gZWFjaC4i
LAorICAgICAgICB0ZXN0KCkgeworICAgICAgICAgICAgZm9yIChsZXQgcnVsZSBvZiBub2RlU3R5
bGVzLm1hdGNoZWRSdWxlcykgeworICAgICAgICAgICAgICAgIGlmICghcnVsZS5zdHlsZS5lZGl0
YWJsZSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgcnVs
ZS5zdHlsZS5wcm9wZXJ0aWVzWzFdLmNvbW1lbnRPdXQodHJ1ZSk7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2cocnVsZS5zdHlsZS5nZW5lcmF0ZUZvcm1hdHRlZFRleHQoe211bHRp
bGluZTogdHJ1ZX0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0pOworCisgICAg
c3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlQ1NTUnVsZVN0
cmluZy5NYXRjaGVkUnVsZXMuV2l0aENvbW1lbnRlZFByb3BlcnRpZXMuaW5jbHVkZUdyb3VwaW5n
c0FuZFNlbGVjdG9ycy5NdWx0aWxpbmUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRo
ZSBmb3JtYXR0aW5nIG9mIHRoZSBnZW5lcmF0ZWQgc3RyaW5nIChtdWx0aWxpbmUsIGFuZCBpbmNs
dWRpbmcgZ3JvdXBpbmdzIGFuZCBzZWxlY3RvcnMpIGZvciBhbGwgbWF0Y2hlZCBDU1MgcnVsZXMg
aWYgYSBwcm9wZXJ0eSBpcyBjb21tZW50ZWQgb3V0IGluIGVhY2guIiwKKyAgICAgICAgdGVzdCgp
IHsKKyAgICAgICAgICAgIGZvciAobGV0IHJ1bGUgb2Ygbm9kZVN0eWxlcy5tYXRjaGVkUnVsZXMp
IHsKKyAgICAgICAgICAgICAgICBpZiAoIXJ1bGUuc3R5bGUuZWRpdGFibGUpCisgICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIHJ1bGUuc3R5bGUucHJvcGVydGll
c1sxXS5jb21tZW50T3V0KHRydWUpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KHJ1bGUuc3R5bGUuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0KHtpbmNsdWRlR3JvdXBpbmdzQW5kU2Vs
ZWN0b3JzOiB0cnVlLCBtdWx0aWxpbmU6IHRydWV9KSk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKyAgICB9KTsKKworICAgIFdJLmRvbU1hbmFnZXIucmVxdWVzdERvY3VtZW50KChkb2N1bWVu
dE5vZGUpID0+IHsKKyAgICAgICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiN0ZXN0LW5v
ZGUiLCBhc3luYyAoY29udGVudE5vZGVJZCkgPT4geworICAgICAgICAgICAgaWYgKCFjb250ZW50
Tm9kZUlkKSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRPTSBub2RlIG5v
dCBmb3VuZC4iKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgp
OworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
bGV0IGRvbU5vZGUgPSBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChjb250ZW50Tm9kZUlkKTsKKyAg
ICAgICAgICAgIG5vZGVTdHlsZXMgPSBXSS5jc3NNYW5hZ2VyLnN0eWxlc0Zvck5vZGUoZG9tTm9k
ZSk7CisgICAgICAgICAgICBpZiAobm9kZVN0eWxlcy5uZWVkc1JlZnJlc2gpCisgICAgICAgICAg
ICAgICAgYXdhaXQgbm9kZVN0eWxlcy5hd2FpdEV2ZW50KFdJLkRPTU5vZGVTdHlsZXMuRXZlbnQu
UmVmcmVzaGVkKTsKKworICAgICAgICAgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7
CisgICAgICAgIH0pOworICAgIH0pOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+CisgICAgPHA+VGVzdGluZyB0aGF0IGdlbmVyYXRlZCBDU1MgcnVsZSBz
dHJpbmdzIGhhdmUgcHJvcGVyIGZvcm1hdHRpbmcuPC9wPgorICAgIDxkaXYgaWQ9InRlc3Qtbm9k
ZSIgc3R5bGU9ImE6MTtiOjI7YzozIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9kaWZ5LWNzcy1wcm9wZXJ0eS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1jc3MtcHJvcGVydHktZXhw
ZWN0ZWQudHh0CmluZGV4IGVjMTYwNzNiMjM5NS4uNTQyMzIyNGNkNTg5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1jc3MtcHJvcGVydHktZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9kaWZ5LWNzcy1wcm9wZXJ0eS1leHBl
Y3RlZC50eHQKQEAgLTUsNiArNSw3IEBAIFRlc3RpbmcgdGhhdCBDU1NTdHlsZURlY2xhcmF0aW9u
IHVwZGF0ZSBpbW1lZGlhdGVseSBhZnRlciBtb2RpZnlpbmcgaXRzIHByb3BlcnRpCiAtLSBSdW5u
aW5nIHRlc3QgY2FzZTogVXBkYXRlIHZhbHVlIHdoZW4gQ1NTU3R5bGVEZWNsYXJhdGlvbiBpcyBu
b3QgbG9ja2VkCiBQQVNTOiAiZm9udC1zaXplIiBwcm9wZXJ0eSB2YWx1ZSBzaG91bGQgdXBkYXRl
IGltbWVkaWF0ZWx5LgogUEFTUzogU3R5bGUgZGVjbGFyYXRpb24gdGV4dCBzaG91bGQgdXBkYXRl
IGltbWVkaWF0ZWx5LgorUEFTUzogc3R5bGVTaGVldFRleHRSYW5nZSBzaG91bGQgY29ycmVzcG9u
ZCB0byAiZm9udC1zaXplOiAxMHB4OyIKIAogLS0gUnVubmluZyB0ZXN0IGNhc2U6IFVwZGF0ZSB2
YWx1ZSB3aGVuIENTU1N0eWxlRGVjbGFyYXRpb24gaXMgbG9ja2VkCiBQQVNTOiAiZm9udC1zaXpl
IiBwcm9wZXJ0eSB2YWx1ZSBzaG91bGQgdXBkYXRlIGltbWVkaWF0ZWx5LgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5Lmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1jc3MtcHJvcGVydHkuaHRtbAppbmRleCAyODYz
Zjc4MjUwZGEuLmM5MDg5MDVhZDZjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5Lmh0bWwKQEAgLTEsNiArMSw3IEBACiA8IURPQ1RZUEUg
aHRtbD4KIDxodG1sPgogPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291
cmNlcy9tb2RpZnktY3NzLXByb3BlcnR5LmNzcyI+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQ+CiBmdW5jdGlvbiBtYWtlTmFycm93KCkgewpAQCAtMzksMTQgKzQwLDIyIEBAIGZ1bmN0
aW9uIHRlc3QoKSB7CiAKICAgICAgICAgICAgIGxldCBzdHlsZURlY2xhcmF0aW9uID0gZ2V0TWF0
Y2hlZFN0eWxlRGVjbGFyYXRpb24oKTsKICAgICAgICAgICAgIHN0eWxlRGVjbGFyYXRpb24ubG9j
a2VkID0gZmFsc2U7CisKKyAgICAgICAgICAgIHN0eWxlRGVjbGFyYXRpb24uYXdhaXRFdmVudChX
SS5DU1NTdHlsZURlY2xhcmF0aW9uLkV2ZW50LlByb3BlcnRpZXNDaGFuZ2VkKS50aGVuKChldmVu
dCkgPT4geworICAgICAgICAgICAgICAgIGxldCBmb250UHJvcGVydHkgPSBnZXRQcm9wZXJ0eSgi
Zm9udC1zaXplIik7CisgICAgICAgICAgICAgICAgbGV0IHJlbGF0aXZlUmFuZ2UgPSBmb250UHJv
cGVydHkuc3R5bGVTaGVldFRleHRSYW5nZS5yZWxhdGl2ZVRvKGZvbnRQcm9wZXJ0eS5vd25lclN0
eWxlLnN0eWxlU2hlZXRUZXh0UmFuZ2Uuc3RhcnRMaW5lLCBmb250UHJvcGVydHkub3duZXJTdHls
ZS5zdHlsZVNoZWV0VGV4dFJhbmdlLnN0YXJ0T2Zmc2V0KTsKKyAgICAgICAgICAgICAgICByZWxh
dGl2ZVJhbmdlLnJlc29sdmVPZmZzZXRzKGZvbnRQcm9wZXJ0eS5vd25lclN0eWxlLnRleHQpOwor
ICAgICAgICAgICAgICAgIGxldCBwcm9wZXJ0eVRleHQgPSBmb250UHJvcGVydHkub3duZXJTdHls
ZS50ZXh0LnNsaWNlKHJlbGF0aXZlUmFuZ2Uuc3RhcnRPZmZzZXQsIHJlbGF0aXZlUmFuZ2UuZW5k
T2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHByb3Bl
cnR5VGV4dCwgImZvbnQtc2l6ZTogMTBweDsiLCBgc3R5bGVTaGVldFRleHRSYW5nZSBzaG91bGQg
Y29ycmVzcG9uZCB0byAiZm9udC1zaXplOiAxMHB4OyJgKTsKKyAgICAgICAgICAgICAgICByZXNv
bHZlKCk7CisgICAgICAgICAgICB9KTsKKwogICAgICAgICAgICAgZ2V0UHJvcGVydHkoImZvbnQt
c2l6ZSIpLnJhd1ZhbHVlID0gIjExcHgiOwogICAgICAgICAgICAgZ2V0UHJvcGVydHkoImZvbnQt
c2l6ZSIpLnJhd1ZhbHVlID0gIjEwcHgiOwogCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdEVxdWFsKGdldFByb3BlcnR5KCJmb250LXNpemUiKS5yYXdWYWx1ZSwgIjEwcHgiLCBgImZv
bnQtc2l6ZSIgcHJvcGVydHkgdmFsdWUgc2hvdWxkIHVwZGF0ZSBpbW1lZGlhdGVseS5gKTsKIAot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHlsZURlY2xhcmF0aW9uLnRl
eHQsIGBmb250LXNpemU6IDEwcHg7IGNvbG9yOiBhbnRpcXVld2hpdGVgLCBgU3R5bGUgZGVjbGFy
YXRpb24gdGV4dCBzaG91bGQgdXBkYXRlIGltbWVkaWF0ZWx5LmApOwotCi0gICAgICAgICAgICBy
ZXNvbHZlKCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlRGVj
bGFyYXRpb24udGV4dCwgYFxuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBjb2xvcjogYW50aXF1
ZXdoaXRlO1xuYCwgYFN0eWxlIGRlY2xhcmF0aW9uIHRleHQgc2hvdWxkIHVwZGF0ZSBpbW1lZGlh
dGVseS5gKTsKICAgICAgICAgfQogICAgIH0pOwogCkBAIC04MCwxMiArODksMTEgQEAgZnVuY3Rp
b24gdGVzdCgpIHsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoZ2V0UHJv
cGVydHkoImZvbnQtc2l6ZSIpLnJhd1ZhbHVlLCAiMTZweCIsIGAiZm9udC1zaXplIiBwcm9wZXJ0
eSB2YWx1ZSBzaG91bGQgdXBkYXRlIGltbWVkaWF0ZWx5LmApOwogCiAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlRGVjbGFyYXRpb24udGV4dCwgYAotICAgICAgICBm
b250LXNpemU6IDE2cHg7Ci0gICAgICAgIGNvbG9yOiAjMzMzOwotCi0gICAgICAgIG1hcmdpbi1s
ZWZ0OiAwOwotICAgICAgICBtYXJnaW4tdG9wOiAxZW07Ci0gICAgYCwgYFN0eWxlIGRlY2xhcmF0
aW9uIHRleHQgc2hvdWxkIHVwZGF0ZSBpbW1lZGlhdGVseS5gKTsKKyAgICBmb250LXNpemU6IDE2
cHg7CisgICAgY29sb3I6ICMzMzM7CisgICAgbWFyZ2luLWxlZnQ6IDA7CisgICAgbWFyZ2luLXRv
cDogMWVtOworYCwgYFN0eWxlIGRlY2xhcmF0aW9uIHRleHQgc2hvdWxkIHVwZGF0ZSBpbW1lZGlh
dGVseS5gKTsKIAogICAgICAgICAgICAgc3R5bGVEZWNsYXJhdGlvbi5sb2NrZWQgPSBmYWxzZTsK
IApAQCAtMjQzLDcgKzI1MSw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICBsZXQg
ZGlzYWJsZWQgPSBmYWxzZTsKICAgICAgICAgICAgIGdldFByb3BlcnR5KCJwYWRkaW5nLXJpZ2h0
IikuY29tbWVudE91dChkaXNhYmxlZCk7CiAKLSAgICAgICAgICAgIGxldCBleHBlY3RlZFN0eWxl
VGV4dCA9IGBcbiAgICAgICAgLyogcGFkZGluZy1sZWZ0OiAyZW07ICovXG4gICAgICAgIHBhZGRp
bmctcmlnaHQ6IDBweDtcbiAgICBgOworICAgICAgICAgICAgbGV0IGV4cGVjdGVkU3R5bGVUZXh0
ID0gYFxuICAgIC8qIHBhZGRpbmctbGVmdDogMmVtOyAqL1xuICAgIHBhZGRpbmctcmlnaHQ6IDBw
eDtcbmA7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlRGVjbGFy
YXRpb24udGV4dCwgZXhwZWN0ZWRTdHlsZVRleHQsIGBTdHlsZSBkZWNsYXJhdGlvbiB0ZXh0IHNo
b3VsZCB1cGRhdGUgaW1tZWRpYXRlbHkgd2l0aCB1bmNvbW1lbnRlZCBwcm9wZXJ0eS5gKTsKIAog
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGdldFByb3BlcnR5KCJwYWRkaW5n
LXJpZ2h0IikuZW5hYmxlZCwgYFVuY29tbWVudGVkIHByb3BlcnR5IHNob3VsZCBiZSBlbmFibGVk
LmApOwpAQCAtMjUxLDcgKzI1OSw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICBk
aXNhYmxlZCA9IHRydWU7CiAgICAgICAgICAgICBnZXRQcm9wZXJ0eSgicGFkZGluZy1yaWdodCIp
LmNvbW1lbnRPdXQoZGlzYWJsZWQpOwogCi0gICAgICAgICAgICBleHBlY3RlZFN0eWxlVGV4dCA9
IGBcbiAgICAgICAgLyogcGFkZGluZy1sZWZ0OiAyZW07ICovXG4gICAgICAgIC8qIHBhZGRpbmct
cmlnaHQ6IDBweDsgKi9cbiAgICBgOworICAgICAgICAgICAgZXhwZWN0ZWRTdHlsZVRleHQgPSBg
XG4gICAgLyogcGFkZGluZy1sZWZ0OiAyZW07ICovXG4gICAgLyogcGFkZGluZy1yaWdodDogMHB4
OyAqL1xuYDsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5bGVEZWNs
YXJhdGlvbi50ZXh0LCBleHBlY3RlZFN0eWxlVGV4dCwgYFN0eWxlIGRlY2xhcmF0aW9uIHRleHQg
c2hvdWxkIHVwZGF0ZSBpbW1lZGlhdGVseSB3aXRoIGNvbW1lbnRlZCBvdXQgcHJvcGVydHkuYCk7
CiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdCghZ2V0UHJvcGVydHkoInBh
ZGRpbmctcmlnaHQiKS5lbmFibGVkLCBgQ29tbWVudGVkIG91dCBwcm9wZXJ0eSBzaG91bGQgYmUg
ZGlzYWJsZWQuYCk7CkBAIC0yOTAsNyArMjk4LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAg
ICAgICAgIGxldCBkaXNhYmxlZCA9IGZhbHNlOwogICAgICAgICAgICAgZ2V0UHJvcGVydHkoImZv
bnQtc2l6ZSIpLmNvbW1lbnRPdXQoZGlzYWJsZWQpOwogCi0gICAgICAgICAgICBsZXQgZXhwZWN0
ZWRTdHlsZVRleHQgPSBgZm9udC1zaXplOiAxM3B4Oy8qYm9yZGVyOiAycHggc29saWQgYnJvd24q
L2A7CisgICAgICAgICAgICBsZXQgZXhwZWN0ZWRTdHlsZVRleHQgPSBgXG4gICAgZm9udC1zaXpl
OiAxM3B4O1xuICAgIC8qIGJvcmRlcjogMnB4IHNvbGlkIGJyb3duOyAqL1xuYDsKICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0LCBleHBl
Y3RlZFN0eWxlVGV4dCwgYFN0eWxlIGRlY2xhcmF0aW9uIHRleHQgc2hvdWxkIHVwZGF0ZSBpbW1l
ZGlhdGVseSB3aXRoIHVuY29tbWVudGVkIHByb3BlcnR5LmApOwogCiAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdFRoYXQoZ2V0UHJvcGVydHkoImZvbnQtc2l6ZSIpLmVuYWJsZWQsIGBV
bmNvbW1lbnRlZCBwcm9wZXJ0eSBzaG91bGQgYmUgZW5hYmxlZC5gKTsKQEAgLTI5OSw3ICszMDcs
NyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgZGlzYWJsZWQgPSBmYWxzZTsKICAg
ICAgICAgICAgIGdldFByb3BlcnR5KCJib3JkZXIiKS5jb21tZW50T3V0KGRpc2FibGVkKTsKIAot
ICAgICAgICAgICAgZXhwZWN0ZWRTdHlsZVRleHQgPSBgZm9udC1zaXplOiAxM3B4O2JvcmRlcjog
MnB4IHNvbGlkIGJyb3duYDsKKyAgICAgICAgICAgIGV4cGVjdGVkU3R5bGVUZXh0ID0gYFxuICAg
IGZvbnQtc2l6ZTogMTNweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCBicm93blxuYDsKICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0LCBl
eHBlY3RlZFN0eWxlVGV4dCwgYFN0eWxlIGRlY2xhcmF0aW9uIHRleHQgc2hvdWxkIHVwZGF0ZSBp
bW1lZGlhdGVseSB3aXRoIGNvbW1lbnRlZCBvdXQgcHJvcGVydHkuYCk7CiAKICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChnZXRQcm9wZXJ0eSgiYm9yZGVyIikuZW5hYmxlZCwg
YFVuY29tbWVudGVkIHByb3BlcnR5IHNob3VsZCBiZSBlbmFibGVkLmApOwpAQCAtMzMxLDIyICsz
MzksNiBAQCBmdW5jdGlvbiB0ZXN0KCkgewogPC9oZWFkPgogPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgogICAgIDxwPlRlc3RpbmcgdGhhdCBDU1NTdHlsZURlY2xhcmF0aW9uIHVwZGF0ZSBpbW1l
ZGlhdGVseSBhZnRlciBtb2RpZnlpbmcgaXRzIHByb3BlcnRpZXMgd2hlbiBpdCBpcyBub3QgbG9j
a2VkLjwvcD4KLQotICAgIDxzdHlsZT4KLSAgICAucnVsZS1hIHsKLSAgICAgICAgZm9udC1zaXpl
OiAxNHB4OwotICAgICAgICBjb2xvcjogIzMzMzsKLQotICAgICAgICBtYXJnaW4tbGVmdDogMDsK
LSAgICAgICAgbWFyZ2luLXRvcDogMWVtOwotICAgIH0KLSAgICAucnVsZS1iIHtmb250LXNpemU6
IDEycHg7IGNvbG9yOiBhbnRpcXVld2hpdGV9Ci0gICAgLnJ1bGUtYyB7Ci0gICAgICAgIC8qIHBh
ZGRpbmctbGVmdDogMmVtOyAqLwotICAgICAgICAvKiBwYWRkaW5nLXJpZ2h0OiAwcHg7ICovCi0g
ICAgfQotICAgIC5ydWxlLWQgey8qZm9udC1zaXplOiAxM3B4OyovLypib3JkZXI6IDJweCBzb2xp
ZCBicm93biovfQotICAgIDwvc3R5bGU+CiAgICAgPGRpdiBpZD0ieCIgY2xhc3M9InRlc3Qtbm9k
ZSBydWxlLWEgcnVsZS1iIHJ1bGUtYyBydWxlLWQiIHN0eWxlPSJ3aWR0aDogMTAwcHgiPjwvZGl2
PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nz
cy9tb2RpZnktaW5saW5lLXN0eWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jc3MvbW9kaWZ5LWlubGluZS1zdHlsZS1leHBlY3RlZC50eHQKaW5kZXggMzk3Y2E2NjMwNWY3
Li40MTIzNWVmYjE4OWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9k
aWZ5LWlubGluZS1zdHlsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2Nzcy9tb2RpZnktaW5saW5lLXN0eWxlLWV4cGVjdGVkLnR4dApAQCAtNywxMiArNywxMiBAQCBD
U1NQcm9wZXJ0eSBjaGFuZ2VkIHRvICJmb250OiAxMnB4IG5vcm1hbCBzYW5zLXNlcmlmIWltcG9y
dGFudDsiLgogZm9udDogMTJweCBub3JtYWwgc2Fucy1zZXJpZiFpbXBvcnRhbnQ7CiAKIENTU1By
b3BlcnR5IGNoYW5nZWQgdG8gImNvbG9yOiByZWQ7Ii4KLWZvbnQ6IDEycHggbm9ybWFsIHNhbnMt
c2VyaWYhaW1wb3J0YW50O2NvbG9yOiByZWQ7Citmb250OiAxMnB4IG5vcm1hbCBzYW5zLXNlcmlm
IWltcG9ydGFudDsgY29sb3I6IHJlZDsKIAogQ1NTUHJvcGVydHkgY2hhbmdlZCB0byAiZm9udDog
MTJweCBzYW5zLXNlcmlmOyIuCi1mb250OiAxMnB4IHNhbnMtc2VyaWY7Y29sb3I6IHJlZDsKK2Zv
bnQ6IDEycHggc2Fucy1zZXJpZjsgY29sb3I6IHJlZDsKIAogQ1NTUHJvcGVydHkgY2hhbmdlZCB0
byAiY29sb3I6IGludmFsaWRfYzAxMHI7Ii4KLWZvbnQ6IDEycHggc2Fucy1zZXJpZjtjb2xvcjog
aW52YWxpZF9jMDEwcjsKK2ZvbnQ6IDEycHggc2Fucy1zZXJpZjsgY29sb3I6IGludmFsaWRfYzAx
MHI7CiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9yZXNvdXJjZXMv
bW9kaWZ5LWNzcy1wcm9wZXJ0eS5jc3MgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL3Jlc291
cmNlcy9tb2RpZnktY3NzLXByb3BlcnR5LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAuLjU3MDU0OWZlZWNjZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jc3MvcmVzb3VyY2VzL21vZGlmeS1jc3MtcHJvcGVydHkuY3NzCkBAIC0wLDAg
KzEsMTUgQEAKKy8qIEEgY29tbWVudC4gKi8KKworLnJ1bGUtYSB7CisgICAgZm9udC1zaXplOiAx
NHB4OworICAgIGNvbG9yOiAjMzMzOworCisgICAgbWFyZ2luLWxlZnQ6IDA7CisgICAgbWFyZ2lu
LXRvcDogMWVtOworfQorLnJ1bGUtYiB7Zm9udC1zaXplOiAxMnB4OyBjb2xvcjogYW50aXF1ZXdo
aXRlfQorLnJ1bGUtYyB7CisgICAgLyogcGFkZGluZy1sZWZ0OiAyZW07ICovCisgICAgLyogcGFk
ZGluZy1yaWdodDogMHB4OyAqLworfQorLnJ1bGUtZCB7Lypmb250LXNpemU6IDEzcHg7Ki8vKmJv
cmRlcjogMnB4IHNvbGlkIGJyb3duKi99CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA4MWNj
MWQ3MmZiMzcuLjk2ZjUyY2NkNTg5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNDQgQEAKKzIwMjEtMDctMTUgIE5pa2l0YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5j
b20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogU3R5bGVzOiBmb3JtYXQgc3R5bGUgZGVjbGFy
YXRpb25zIGFmdGVyIGVkaXRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3ODgzNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzUxODUwNjA+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5kZW50IENT
UyBwcm9wZXJ0aWVzIHdpdGggc3BhY2VzL3RhYnMgc2V0IGluIFdlYiBJbnNwZWN0b3Igc2V0dGlu
Z3MuIEluY3Jlc2UgaW5kZW50YXRpb24gbGV2ZWwgd2hlbiBDU1MgcnVsZXMgYXJlCisgICAgICAg
IGluc2lkZSBvZiBhdC1ydWxlcyAoZS5nLiBAbWVkaWEsIEBrZXlmcmFtZXMsIEBzdXBwb3J0cyku
CisKKyAgICAgICAgRG9uJ3QgaW5kZW50IENTUyBwcm9wZXJ0aWVzIGluIHN0eWxlIGF0dHJpYnV0
ZXMuIEtlZXAgdGhlbSBvbiB0aGUgc2luZ2xlIGxpbmUsIHNlcGFyYXRlZCBieSBhIHNwYWNlIGNo
YXJhY3RlcjoKKworICAgICAgICAgICAgc3R5bGU9ImZvbnQtc2l6ZTogMTJweDsgY29sb3I6IGJs
YWNrOyIKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5LmpzOgor
ICAgICAgICAoV0kuQ1NTUHJvcGVydHkucHJvdG90eXBlLnNldCB0ZXh0KToKKyAgICAgICAgSW50
cm9kdWNlIGBfaXNUZXh0UGVuZGluZ1NhdmVgIGZsYWcuIEl0J3MgbmVlZGVkIHdoZW4gc2F2aW5n
IHBhc3RlZCB0ZXh0LCBhbmQgc2F2aW5nIGNvbW1lbnRlZCBvdXQgb3IgdW5jb21tZW50ZWQgQ1NT
IHByb3BlcnRpZXMuCisKKyAgICAgICAgKFdJLkNTU1Byb3BlcnR5LnByb3RvdHlwZS5nZXQgZm9y
bWF0dGVkVGV4dCk6CisKKyAgICAgICAgKFdJLkNTU1Byb3BlcnR5LnByb3RvdHlwZS5yZXBsYWNl
V2l0aFRleHQpOiBEZWxldGVkLgorICAgICAgICBUaGlzIGlzIHJlZHVuZGFudCAtIHNldHRpbmcg
YHRleHRgIHdvcmtzIHRoZSBzYW1lLgorCisgICAgICAgIChXSS5DU1NQcm9wZXJ0eS5wcm90b3R5
cGUuX3VwZGF0ZVN0eWxlVGV4dCk6CisgICAgICAgIChXSS5DU1NQcm9wZXJ0eS5wcm90b3R5cGUu
X3VwZGF0ZU93bmVyU3R5bGVUZXh0KToKKyAgICAgICAgKFdJLkNTU1Byb3BlcnR5LnByb3RvdHlw
ZS5fcHJlcGVuZFNlbWljb2xvbklmTmVlZGVkKTogRGVsZXRlZC4KKyAgICAgICAgR3JlYXRseSBz
aW1wbGlmeSB0aGUgbG9naWMgbm93IHRoYXQgd2Ugc2F2ZSBmb3JtYXR0ZWQgdGV4dCBhbmQgZG9u
J3QgbW9kaWZ5IHN0eWxlVGV4dC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0NT
U1N0eWxlRGVjbGFyYXRpb24uanM6CisgICAgICAgIChXSS5DU1NTdHlsZURlY2xhcmF0aW9uLnBy
b3RvdHlwZS5yZW1vdmVQcm9wZXJ0eSk6CisgICAgICAgIFJlbW9kZSB1bm5lY2Vzc2FyeSBjb2Rl
IHRoYXQgbW9kaWZpZXMgYF9zdHlsZVNoZWV0VGV4dFJhbmdlYC4gVGhlIGJhY2tlbmQgc2VuZHMg
bmV3IGBfc3R5bGVTaGVldFRleHRSYW5nZWAgZGF0YQorICAgICAgICB1cG9uIGEgY2hhbmdlLgor
CisgICAgICAgIChXSS5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5nZW5lcmF0ZUZvcm1h
dHRlZFRleHQpOiBSZW5hbWVkIGZyb20gJ2dlbmVyYXRlQ1NTUnVsZVN0cmluZycuCisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvblNl
Y3Rpb24uanM6CisgICAgICAgIChXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25TZWN0
aW9uLnByb3RvdHlwZS5fcG9wdWxhdGVJY29uRWxlbWVudENvbnRleHRNZW51KToKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eS5qczoKKyAgICAg
ICAgKFdJLlNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eS5wcm90b3R5cGUucmVtb3ZlKToKKwogMjAy
MS0wNy0xNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgSW1w
bGVtZW50IEFycmF5LnByb3RvdHlwZS5maW5kTGFzdCBhbmQgQXJyYXkucHJvdG90eXBlLmZpbmRM
YXN0SW5kZXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9DU1NQcm9wZXJ0eS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9DU1NQcm9wZXJ0eS5qcwppbmRleCA5ODJmZTk1YWU0NzQuLmUyOGZlODlkOGM0
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0NTU1Byb3BlcnR5LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9DU1NQcm9wZXJ0eS5qcwpAQCAtMTg0LDEzICsxODQsNiBAQCBXSS5DU1NQcm9wZXJ0
eSA9IGNsYXNzIENTU1Byb3BlcnR5IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRoaXMuX3Vw
ZGF0ZVN0eWxlVGV4dChmb3JjZVJlbW92ZSk7CiAgICAgfQogCi0gICAgcmVwbGFjZVdpdGhUZXh0
KHRleHQpCi0gICAgewotICAgICAgICB0aGlzLl9tYXJrTW9kaWZpZWQoKTsKLQotICAgICAgICB0
aGlzLl91cGRhdGVPd25lclN0eWxlVGV4dCh0aGlzLl90ZXh0LCB0ZXh0LCB0cnVlKTsKLSAgICB9
Ci0KICAgICBjb21tZW50T3V0KGRpc2FibGVkKQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3Nl
cnQodGhpcy5lZGl0YWJsZSk7CkBAIC0yMTcsMTIgKzIxMCwxNyBAQCBXSS5DU1NQcm9wZXJ0eSA9
IGNsYXNzIENTU1Byb3BlcnR5IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICByZXR1cm47
CiAKICAgICAgICAgdGhpcy5fbWFya01vZGlmaWVkKCk7Ci0gICAgICAgIHRoaXMuX3VwZGF0ZU93
bmVyU3R5bGVUZXh0KHRoaXMuX3RleHQsIG5ld1RleHQpOwogICAgICAgICB0aGlzLl90ZXh0ID0g
bmV3VGV4dDsKKyAgICAgICAgdGhpcy5faXNUZXh0UGVuZGluZ1NhdmUgPSB0cnVlOworICAgICAg
ICB0aGlzLl91cGRhdGVPd25lclN0eWxlVGV4dCgpOworICAgICAgICB0aGlzLl9pc1RleHRQZW5k
aW5nU2F2ZSA9IGZhbHNlOwogICAgIH0KIAogICAgIGdldCBmb3JtYXR0ZWRUZXh0KCkKICAgICB7
CisgICAgICAgIGlmICh0aGlzLl9pc1RleHRQZW5kaW5nU2F2ZSkKKyAgICAgICAgICAgIHJldHVy
biB0aGlzLl90ZXh0LnRyaW0oKTsKKwogICAgICAgICBpZiAoIXRoaXMuX25hbWUpCiAgICAgICAg
ICAgICByZXR1cm4gIiI7CiAKQEAgLTUwMSw3NCArNDk5LDI1IEBAIFdJLkNTU1Byb3BlcnR5ID0g
Y2xhc3MgQ1NTUHJvcGVydHkgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgIHRleHQgPSB0
aGlzLl9uYW1lICsgIjogIiArIHZhbHVlICsgIjsiOwogICAgICAgICB9CiAKLSAgICAgICAgbGV0
IG9sZFRleHQgPSB0aGlzLl90ZXh0OwogICAgICAgICB0aGlzLl90ZXh0ID0gdGV4dDsKLSAgICAg
ICAgdGhpcy5fdXBkYXRlT3duZXJTdHlsZVRleHQob2xkVGV4dCwgdGhpcy5fdGV4dCwgZm9yY2VS
ZW1vdmUpOworCisgICAgICAgIGlmIChmb3JjZVJlbW92ZSkKKyAgICAgICAgICAgIHRoaXMuX293
bmVyU3R5bGUucmVtb3ZlUHJvcGVydHkodGhpcyk7CisKKyAgICAgICAgdGhpcy5fdXBkYXRlT3du
ZXJTdHlsZVRleHQoKTsKICAgICB9CiAKLSAgICBfdXBkYXRlT3duZXJTdHlsZVRleHQob2xkVGV4
dCwgbmV3VGV4dCwgZm9yY2VSZW1vdmUgPSBmYWxzZSkKKyAgICBfdXBkYXRlT3duZXJTdHlsZVRl
eHQoKQogICAgIHsKLSAgICAgICAgaWYgKG9sZFRleHQgPT09IG5ld1RleHQpIHsKLSAgICAgICAg
ICAgIGlmIChmb3JjZVJlbW92ZSkgewotICAgICAgICAgICAgICAgIGNvbnN0IGxpbmVEZWx0YSA9
IDA7Ci0gICAgICAgICAgICAgICAgY29uc3QgY29sdW1uRGVsdGEgPSAwOwotICAgICAgICAgICAg
ICAgIHRoaXMuX293bmVyU3R5bGUuc2hpZnRQcm9wZXJ0aWVzQWZ0ZXIodGhpcywgbGluZURlbHRh
LCBjb2x1bW5EZWx0YSwgZm9yY2VSZW1vdmUpOwotICAgICAgICAgICAgICAgIHRoaXMuX293bmVy
U3R5bGUudXBkYXRlUHJvcGVydGllc01vZGlmaWVkU3RhdGUoKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRo
aXMuX293bmVyU3R5bGUpOwogICAgICAgICBpZiAoIXRoaXMuX293bmVyU3R5bGUpCiAgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgdGhpcy5fcHJlcGVuZFNlbWljb2xvbklmTmVlZGVkKCk7
Ci0KLSAgICAgICAgbGV0IHN0eWxlVGV4dCA9IHRoaXMuX293bmVyU3R5bGUudGV4dCB8fCAiIjsK
LQotICAgICAgICAvLyBfc3R5bGVTaGVldFRleHRSYW5nZSBpcyB0aGUgcG9zaXRpb24gb2YgdGhl
IHByb3BlcnR5IHdpdGhpbiB0aGUgc3R5bGVzaGVldC4KLSAgICAgICAgLy8gcmFuZ2UgaXMgdGhl
IHBvc2l0aW9uIG9mIHRoZSBwcm9wZXJ0eSB3aXRoaW4gdGhlIHJ1bGUuCi0gICAgICAgIGxldCBy
YW5nZSA9IHRoaXMuX3N0eWxlU2hlZXRUZXh0UmFuZ2UucmVsYXRpdmVUbyh0aGlzLl9vd25lclN0
eWxlLnN0eWxlU2hlZXRUZXh0UmFuZ2Uuc3RhcnRMaW5lLCB0aGlzLl9vd25lclN0eWxlLnN0eWxl
U2hlZXRUZXh0UmFuZ2Uuc3RhcnRDb2x1bW4pOwotCi0gICAgICAgIC8vIEFwcGVuZCBhIGxpbmUg
YnJlYWsgdG8gY291bnQgdGhlIGxhc3QgbGluZSBvZiBzdHlsZVRleHQgdG93YXJkcyBlbmRPZmZz
ZXQuCi0gICAgICAgIHJhbmdlLnJlc29sdmVPZmZzZXRzKHN0eWxlVGV4dCArICJcbiIpOwotCi0g
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KG9sZFRleHQgPT09IHN0eWxlVGV4dC5zbGljZShyYW5nZS5z
dGFydE9mZnNldCwgcmFuZ2UuZW5kT2Zmc2V0KSwgIl9zdHlsZVNoZWV0VGV4dFJhbmdlIGRhdGEg
aXMgaW52YWxpZC4iKTsKLQotICAgICAgICBpZiAoV0kuc2V0dGluZ3MuZGVidWdFbmFibGVTdHls
ZUVkaXRpbmdEZWJ1Z01vZGUudmFsdWUpIHsKLSAgICAgICAgICAgIGxldCBwcmVmaXggPSBzdHls
ZVRleHQuc2xpY2UoMCwgcmFuZ2Uuc3RhcnRPZmZzZXQpOwotICAgICAgICAgICAgbGV0IHBvc3Rm
aXggPSBzdHlsZVRleHQuc2xpY2UocmFuZ2UuZW5kT2Zmc2V0KTsKLSAgICAgICAgICAgIGNvbnNv
bGUuaW5mbyhgJHtwcmVmaXh9JWMke29sZFRleHR9JWMke25ld1RleHR9JWMke3Bvc3RmaXh9YCwg
YGJhY2tncm91bmQ6IGhzbCgzNTYsIDEwMCUsIDkwJSk7IGNvbG9yOiBibGFja2AsIGBiYWNrZ3Jv
dW5kOiBoc2woMTAwLCAxMDAlLCA5MSUpOyBjb2xvcjogYmxhY2tgLCBgYmFja2dyb3VuZDogdHJh
bnNwYXJlbnRgKTsKLSAgICAgICAgfQotCi0gICAgICAgIGxldCBuZXdTdHlsZVRleHQgPSBzdHls
ZVRleHQuc2xpY2UoMCwgcmFuZ2Uuc3RhcnRPZmZzZXQpICsgbmV3VGV4dCArIHN0eWxlVGV4dC5z
bGljZShyYW5nZS5lbmRPZmZzZXQpOwotCi0gICAgICAgIGxldCBsaW5lRGVsdGEgPSBuZXdUZXh0
LmxpbmVDb3VudCAtIG9sZFRleHQubGluZUNvdW50OwotICAgICAgICBsZXQgY29sdW1uRGVsdGEg
PSBuZXdUZXh0Lmxhc3RMaW5lLmxlbmd0aCAtIG9sZFRleHQubGFzdExpbmUubGVuZ3RoOwotICAg
ICAgICB0aGlzLl9zdHlsZVNoZWV0VGV4dFJhbmdlID0gdGhpcy5fc3R5bGVTaGVldFRleHRSYW5n
ZS5jbG9uZUFuZE1vZGlmeSgwLCAwLCBsaW5lRGVsdGEsIGNvbHVtbkRlbHRhKTsKLQotICAgICAg
ICB0aGlzLl9vd25lclN0eWxlLnRleHQgPSBuZXdTdHlsZVRleHQ7Ci0KLSAgICAgICAgbGV0IHBy
b3BlcnR5V2FzUmVtb3ZlZCA9ICFuZXdUZXh0OwotICAgICAgICB0aGlzLl9vd25lclN0eWxlLnNo
aWZ0UHJvcGVydGllc0FmdGVyKHRoaXMsIGxpbmVEZWx0YSwgY29sdW1uRGVsdGEsIHByb3BlcnR5
V2FzUmVtb3ZlZCk7CisgICAgICAgIGxldCBtdWx0aWxpbmUgPSB0aGlzLl9vd25lclN0eWxlLnR5
cGUgPT09IFdJLkNTU1N0eWxlRGVjbGFyYXRpb24uVHlwZS5SdWxlCisgICAgICAgIHRoaXMuX293
bmVyU3R5bGUudGV4dCA9IHRoaXMuX293bmVyU3R5bGUuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0KHtt
dWx0aWxpbmV9KTsKICAgICAgICAgdGhpcy5fb3duZXJTdHlsZS51cGRhdGVQcm9wZXJ0aWVzTW9k
aWZpZWRTdGF0ZSgpOwogICAgIH0KIAotICAgIF9wcmVwZW5kU2VtaWNvbG9uSWZOZWVkZWQoKQot
ICAgIHsKLSAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuaW5kZXggLSAxOyBpID49IDA7IC0taSkg
ewotICAgICAgICAgICAgbGV0IHByb3BlcnR5ID0gdGhpcy5fb3duZXJTdHlsZS5wcm9wZXJ0aWVz
W2ldOwotICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eS5lbmFibGVkKQotICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwotCi0gICAgICAgICAgICBsZXQgbWF0Y2ggPSBwcm9wZXJ0eS50ZXh0Lm1hdGNo
KC9bXjtcc10oXHMqKSQvKTsKLSAgICAgICAgICAgIGlmIChtYXRjaCkKLSAgICAgICAgICAgICAg
ICBwcm9wZXJ0eS50ZXh0ID0gcHJvcGVydHkudGV4dC50cmltUmlnaHQoKSArICI7IiArIG1hdGNo
WzFdOwotCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLQogICAgIF9tYXJr
TW9kaWZpZWQoKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX293bmVyU3R5bGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTU3R5bGVE
ZWNsYXJhdGlvbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9DU1NTdHlsZURlY2xhcmF0aW9uLmpzCmluZGV4IDcwOTEwMWY0MmE4Ny4uZWZiZjRhYWYxYjA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
Q1NTU3R5bGVEZWNsYXJhdGlvbi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvQ1NTU3R5bGVEZWNsYXJhdGlvbi5qcwpAQCAtNDQ1LDMyICs0NDUsMTQg
QEAgV0kuQ1NTU3R5bGVEZWNsYXJhdGlvbiA9IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb24gZXh0
ZW5kcyBXSS5PYmplY3QKICAgICAgICAgV0kuY3NzTWFuYWdlci5hZGRNb2RpZmllZFN0eWxlKHRo
aXMpOwogICAgIH0KIAotICAgIHNoaWZ0UHJvcGVydGllc0FmdGVyKGNzc1Byb3BlcnR5LCBsaW5l
RGVsdGEsIGNvbHVtbkRlbHRhLCBwcm9wZXJ0eVdhc1JlbW92ZWQpCisgICAgcmVtb3ZlUHJvcGVy
dHkoY3NzUHJvcGVydHkpCiAgICAgewogICAgICAgICAvLyBjc3NQcm9wZXJ0eS5pbmRleCBjb3Vs
ZCBiZSBzZXQgdG8gTmFOIGJ5IFdJLkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlLnVwZGF0
ZS4KICAgICAgICAgbGV0IHJlYWxJbmRleCA9IHRoaXMuX3Byb3BlcnRpZXMuaW5kZXhPZihjc3NQ
cm9wZXJ0eSk7CiAgICAgICAgIGlmIChyZWFsSW5kZXggPT09IC0xKQogICAgICAgICAgICAgcmV0
dXJuOwogCi0gICAgICAgIGxldCBlbmRMaW5lID0gY3NzUHJvcGVydHkuc3R5bGVTaGVldFRleHRS
YW5nZS5lbmRMaW5lOwotCi0gICAgICAgIGZvciAobGV0IGkgPSByZWFsSW5kZXggKyAxOyBpIDwg
dGhpcy5fcHJvcGVydGllcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgbGV0IHByb3BlcnR5
ID0gdGhpcy5fcHJvcGVydGllc1tpXTsKLQotICAgICAgICAgICAgaWYgKHByb3BlcnR5Ll9zdHls
ZVNoZWV0VGV4dFJhbmdlKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5LnN0eWxlU2hl
ZXRUZXh0UmFuZ2Uuc3RhcnRMaW5lID09PSBlbmRMaW5lKSB7Ci0gICAgICAgICAgICAgICAgICAg
IC8vIE9ubHkgdXBkYXRlIGNvbHVtbiBkYXRhIGlmIGl0J3Mgb24gdGhlIHNhbWUgbGluZS4KLSAg
ICAgICAgICAgICAgICAgICAgcHJvcGVydHkuX3N0eWxlU2hlZXRUZXh0UmFuZ2UgPSBwcm9wZXJ0
eS5fc3R5bGVTaGVldFRleHRSYW5nZS5jbG9uZUFuZE1vZGlmeShsaW5lRGVsdGEsIGNvbHVtbkRl
bHRhLCBsaW5lRGVsdGEsIGNvbHVtbkRlbHRhKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgICAgICAgICAgcHJvcGVydHkuX3N0eWxlU2hlZXRUZXh0UmFuZ2UgPSBwcm9wZXJ0
eS5fc3R5bGVTaGVldFRleHRSYW5nZS5jbG9uZUFuZE1vZGlmeShsaW5lRGVsdGEsIDAsIGxpbmVE
ZWx0YSwgMCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChwcm9wZXJ0eVdhc1Jl
bW92ZWQgJiYgIWlzTmFOKHByb3BlcnR5Ll9pbmRleCkpCi0gICAgICAgICAgICAgICAgcHJvcGVy
dHkuX2luZGV4LS07Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAocHJvcGVydHlXYXNSZW1vdmVk
KQotICAgICAgICAgICAgdGhpcy5fcHJvcGVydGllcy5zcGxpY2UocmVhbEluZGV4LCAxKTsKKyAg
ICAgICAgdGhpcy5fcHJvcGVydGllcy5zcGxpY2UocmVhbEluZGV4LCAxKTsKIAogICAgICAgICAv
LyBJbnZhbGlkYXRlIGNhY2hlZCBwcm9wZXJ0aWVzLgogICAgICAgICB0aGlzLl9lbmFibGVkUHJv
cGVydGllcyA9IG51bGw7CkBAIC01MDcsMjQgKzQ4OSw1OSBAQCBXSS5DU1NTdHlsZURlY2xhcmF0
aW9uID0gY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbiBleHRlbmRzIFdJLk9iamVjdAogICAgICAg
ICAgICAgV0kuY3NzTWFuYWdlci5yZW1vdmVNb2RpZmllZFN0eWxlKHRoaXMpOwogICAgIH0KIAot
ICAgIGdlbmVyYXRlQ1NTUnVsZVN0cmluZygpCisgICAgZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0KG9w
dGlvbnMgPSB7fSkKICAgICB7CiAgICAgICAgIGxldCBpbmRlbnRTdHJpbmcgPSBXSS5pbmRlbnRT
dHJpbmcoKTsKICAgICAgICAgbGV0IHN0eWxlVGV4dCA9ICIiOwogICAgICAgICBsZXQgZ3JvdXBp
bmdzID0gdGhpcy5ncm91cGluZ3MuZmlsdGVyKChncm91cGluZykgPT4gZ3JvdXBpbmcudGV4dCAh
PT0gImFsbCIpOwogICAgICAgICBsZXQgZ3JvdXBpbmdzQ291bnQgPSBncm91cGluZ3MubGVuZ3Ro
OwotICAgICAgICBmb3IgKGxldCBpID0gZ3JvdXBpbmdzQ291bnQgLSAxOyBpID49IDA7IC0taSkK
LSAgICAgICAgICAgIHN0eWxlVGV4dCArPSBpbmRlbnRTdHJpbmcucmVwZWF0KGdyb3VwaW5nc0Nv
dW50IC0gaSAtIDEpICsgZ3JvdXBpbmdzW2ldLnByZWZpeCArICIgIiArIGdyb3VwaW5nc1tpXS50
ZXh0ICsgIiB7XG4iOwogCi0gICAgICAgIHN0eWxlVGV4dCArPSBpbmRlbnRTdHJpbmcucmVwZWF0
KGdyb3VwaW5nc0NvdW50KSArIHRoaXMuc2VsZWN0b3JUZXh0ICsgIiB7XG4iOworICAgICAgICBp
ZiAob3B0aW9ucy5pbmNsdWRlR3JvdXBpbmdzQW5kU2VsZWN0b3JzKSB7CisgICAgICAgICAgICBm
b3IgKGxldCBpID0gZ3JvdXBpbmdzQ291bnQgLSAxOyBpID49IDA7IC0taSkgeworICAgICAgICAg
ICAgICAgIGlmIChvcHRpb25zLm11bHRpbGluZSkKKyAgICAgICAgICAgICAgICAgICAgc3R5bGVU
ZXh0ICs9IGluZGVudFN0cmluZy5yZXBlYXQoZ3JvdXBpbmdzQ291bnQgLSBpIC0gMSk7CisKKyAg
ICAgICAgICAgICAgICBzdHlsZVRleHQgKz0gZ3JvdXBpbmdzW2ldLnByZWZpeCArICIgIiArIGdy
b3VwaW5nc1tpXS50ZXh0ICsgIiB7IjsKKworICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLm11
bHRpbGluZSkKKyAgICAgICAgICAgICAgICAgICAgc3R5bGVUZXh0ICs9ICJcbiI7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIGlmIChvcHRpb25zLm11bHRpbGluZSkKKyAgICAgICAgICAg
ICAgICBzdHlsZVRleHQgKz0gaW5kZW50U3RyaW5nLnJlcGVhdChncm91cGluZ3NDb3VudCk7CisK
KyAgICAgICAgICAgIHN0eWxlVGV4dCArPSB0aGlzLnNlbGVjdG9yVGV4dCArICIgeyI7CisgICAg
ICAgIH0KIAotICAgICAgICBmb3IgKGxldCBwcm9wZXJ0eSBvZiAodGhpcy5fc3R5bGVTaGVldFRl
eHRSYW5nZSA/IHRoaXMudmlzaWJsZVByb3BlcnRpZXMgOiB0aGlzLl9wcm9wZXJ0aWVzKSkKLSAg
ICAgICAgICAgIHN0eWxlVGV4dCArPSBpbmRlbnRTdHJpbmcucmVwZWF0KGdyb3VwaW5nc0NvdW50
ICsgMSkgKyBwcm9wZXJ0eS5mb3JtYXR0ZWRUZXh0ICsgIlxuIjsKKyAgICAgICAgbGV0IHByb3Bl
cnRpZXMgPSB0aGlzLl9zdHlsZVNoZWV0VGV4dFJhbmdlID8gdGhpcy52aXNpYmxlUHJvcGVydGll
cyA6IHRoaXMuX3Byb3BlcnRpZXM7CisgICAgICAgIGlmIChwcm9wZXJ0aWVzLmxlbmd0aCkgewor
ICAgICAgICAgICAgaWYgKG9wdGlvbnMubXVsdGlsaW5lKSB7CisgICAgICAgICAgICAgICAgbGV0
IHByb3BlcnR5SW5kZW50ID0gaW5kZW50U3RyaW5nLnJlcGVhdChncm91cGluZ3NDb3VudCArIDEp
OworICAgICAgICAgICAgICAgIGZvciAobGV0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpCisgICAg
ICAgICAgICAgICAgICAgIHN0eWxlVGV4dCArPSAiXG4iICsgcHJvcGVydHlJbmRlbnQgKyBwcm9w
ZXJ0eS5mb3JtYXR0ZWRUZXh0OworCisgICAgICAgICAgICAgICAgc3R5bGVUZXh0ICs9ICJcbiI7
CisgICAgICAgICAgICAgICAgaWYgKCFvcHRpb25zLmluY2x1ZGVHcm91cGluZ3NBbmRTZWxlY3Rv
cnMpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSW5kZW50IHRoZSBjbG9zaW5nICJ9IiBmb3Ig
bmVzdGVkIHJ1bGVzLgorICAgICAgICAgICAgICAgICAgICBzdHlsZVRleHQgKz0gaW5kZW50U3Ry
aW5nLnJlcGVhdChncm91cGluZ3NDb3VudCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgc3R5bGVUZXh0ICs9IHByb3BlcnRpZXMubWFwKChw
cm9wZXJ0eSkgPT4gcHJvcGVydHkuZm9ybWF0dGVkVGV4dCkuam9pbigiICIpOworICAgICAgICB9
CiAKLSAgICAgICAgZm9yIChsZXQgaSA9IGdyb3VwaW5nc0NvdW50OyBpID4gMDsgLS1pKQotICAg
ICAgICAgICAgc3R5bGVUZXh0ICs9IGluZGVudFN0cmluZy5yZXBlYXQoaSkgKyAifVxuIjsKKyAg
ICAgICAgaWYgKG9wdGlvbnMuaW5jbHVkZUdyb3VwaW5nc0FuZFNlbGVjdG9ycykgeworICAgICAg
ICAgICAgZm9yIChsZXQgaSA9IGdyb3VwaW5nc0NvdW50OyBpID4gMDsgLS1pKSB7CisgICAgICAg
ICAgICAgICAgaWYgKG9wdGlvbnMubXVsdGlsaW5lKQorICAgICAgICAgICAgICAgICAgICBzdHls
ZVRleHQgKz0gaW5kZW50U3RyaW5nLnJlcGVhdChpKTsKIAotICAgICAgICBzdHlsZVRleHQgKz0g
In0iOworICAgICAgICAgICAgICAgIHN0eWxlVGV4dCArPSAifSI7CisKKyAgICAgICAgICAgICAg
ICBpZiAob3B0aW9ucy5tdWx0aWxpbmUpCisgICAgICAgICAgICAgICAgICAgIHN0eWxlVGV4dCAr
PSAiXG4iOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzdHlsZVRleHQgKz0gIn0iOwor
ICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIHN0eWxlVGV4dDsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldENT
U1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qcwpp
bmRleCBiYzU1Y2QyNTlkMjAuLjRmOTZmM2EzMDY4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0
aW9uU2VjdGlvbi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLmpzCkBAIC00ODEsNyAr
NDgxLDcgQEAgV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbiA9IGNsYXNz
IFNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvblMKICAgICBfcG9wdWxhdGVJY29uRWxlbWVu
dENvbnRleHRNZW51KGNvbnRleHRNZW51KQogICAgIHsKICAgICAgICAgY29udGV4dE1lbnUuYXBw
ZW5kSXRlbShXSS5VSVN0cmluZygiQ29weSBSdWxlIiksICgpID0+IHsKLSAgICAgICAgICAgIElu
c3BlY3RvckZyb250ZW5kSG9zdC5jb3B5VGV4dCh0aGlzLl9zdHlsZS5nZW5lcmF0ZUNTU1J1bGVT
dHJpbmcoKSk7CisgICAgICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3QuY29weVRleHQodGhp
cy5fc3R5bGUuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0KHtpbmNsdWRlR3JvdXBpbmdzQW5kU2VsZWN0
b3JzOiB0cnVlLCBtdWx0aWxpbmU6IHRydWV9KSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGlm
ICh0aGlzLl9zdHlsZS5lZGl0YWJsZSAmJiB0aGlzLl9zdHlsZS5wcm9wZXJ0aWVzLmxlbmd0aCkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
U3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LmpzCmluZGV4IDIzNzUwM2I4
OGQzYy4uZTEyMjY5YWQ2Nzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldFN0eWxlUHJvcGVydHkuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRTdHlsZVByb3Bl
cnR5LmpzCkBAIC0xNDMsNyArMTQzLDcgQEAgV0kuU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5ID0g
Y2xhc3MgU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAg
IHRoaXMuZWxlbWVudC5yZW1vdmUoKTsKIAogICAgICAgICBpZiAocmVwbGFjZW1lbnQpCi0gICAg
ICAgICAgICB0aGlzLl9wcm9wZXJ0eS5yZXBsYWNlV2l0aFRleHQocmVwbGFjZW1lbnQpOworICAg
ICAgICAgICAgdGhpcy5fcHJvcGVydHkudGV4dCA9IHJlcGxhY2VtZW50OwogICAgICAgICBlbHNl
CiAgICAgICAgICAgICB0aGlzLl9wcm9wZXJ0eS5yZW1vdmUoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434469</attachid>
            <date>2021-07-28 14:56:59 -0700</date>
            <delta_ts>2021-10-06 08:09:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>45335</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4MDc3NzUyOGUzNzguLjY1ZjhiZTM3ZmY3MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBA
CisyMDIxLTA3LTI4ICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IFN0eWxlczogZm9ybWF0IHN0eWxlIGRlY2xhcmF0aW9ucyBh
ZnRlciBlZGl0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzg4MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1MTg1MDYwPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gSW5kZW50IHRleHQgb2Yg
ZXhwZWN0ZWQgQ1NTIHByb3BlcnRpZXMuCisgICAgICAgIC0gVGVzdCBnZW5lcmF0ZUZvcm1hdHRl
ZFRleHQgd2l0aCBhbGwgcGVybXV0YXRpb25zIG9mIGl0cyBvcHRpb25zLgorICAgICAgICAtIEFk
ZCBhIGJhc2ljIHRlc3QgZW5zdXJpbmcgc3R5bGVTaGVldFRleHRSYW5nZSB1cGRhdGVzIGNvcnJl
Y3RseSBmcm9tIHRoZSBiYWNrZW5kLgorCisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9hZGQtY3Nz
LXByb3BlcnR5Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9nZW5lcmF0ZUNTU1J1bGVT
dHJpbmctZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jc3MvZ2Vu
ZXJhdGVDU1NSdWxlU3RyaW5nLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Nz
cy9nZW5lcmF0ZUZvcm1hdHRlZFRleHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvY3NzL2dlbmVyYXRlRm9ybWF0dGVkVGV4dC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvY3NzL21vZGlmeS1jc3MtcHJvcGVydHktZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGluc3BlY3Rvci9jc3MvbW9kaWZ5LWNzcy1wcm9wZXJ0eS5odG1sOgorICAgICAgICAqIGlu
c3BlY3Rvci9jc3MvbW9kaWZ5LWlubGluZS1zdHlsZS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
aW5zcGVjdG9yL2Nzcy9yZXNvdXJjZXMvbW9kaWZ5LWNzcy1wcm9wZXJ0eS5jc3M6IEFkZGVkLgor
ICAgICAgICAoLnJ1bGUtYSk6CisgICAgICAgICgucnVsZS1iKToKKyAgICAgICAgKC5ydWxlLWMp
OgorICAgICAgICAoLnJ1bGUtZCk6CisKIDIwMjEtMDctMTUgIFppcmFuIFN1biAgPHpzdW5AaWdh
bGlhLmNvbT4KIAogICAgICAgICBSZXN5bmMgd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3Jp
ZCB0ZXN0cyBmcm9tIHVwc3RyZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y3NzL2FkZC1jc3MtcHJvcGVydHkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvYWRk
LWNzcy1wcm9wZXJ0eS5odG1sCmluZGV4IDQ1NWE5NWQ0ZTczYi4uZjVkZjk1MzE0MmNmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2FkZC1jc3MtcHJvcGVydHkuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2FkZC1jc3MtcHJvcGVydHkuaHRtbApAQCAt
MjcsNyArMjcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgbmV3UHJvcGVydHku
bmFtZSA9ICJjb2xvciI7CiAgICAgICAgICAgICBuZXdQcm9wZXJ0eS5yYXdWYWx1ZSA9ICJncmVl
biI7CiAKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5bGVEZWNsYXJh
dGlvbi50ZXh0LCBgZm9udC1zaXplOiAxNHB4O2NvbG9yOiBncmVlbjtgLCAiYGNvbG9yOiBncmVl
bmAgcHJvcGVydHkgc2hvdWxkIGJlIGFwcGVuZGVkLiIpOworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RFcXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGBcbiAgICBmb250LXNpemU6
IDE0cHg7XG4gICAgY29sb3I6IGdyZWVuO1xuYCwgImBjb2xvcjogZ3JlZW5gIHByb3BlcnR5IHNo
b3VsZCBiZSBhcHBlbmRlZC4iKTsKIAogICAgICAgICAgICAgc3R5bGVEZWNsYXJhdGlvbi5sb2Nr
ZWQgPSBmYWxzZTsKICAgICAgICAgICAgIHJlc29sdmUoKTsKQEAgLTQzLDcgKzQzLDcgQEAgZnVu
Y3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgIG5ld1Byb3BlcnR5Lm5hbWUgPSAiY29sb3IiOwog
ICAgICAgICAgICAgbmV3UHJvcGVydHkucmF3VmFsdWUgPSAiZ3JlZW4iOwogCi0gICAgICAgICAg
ICBsZXQgZXhwZWN0ZWQgPSBgY29sb3I6IGdyZWVuO1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCBi
cm93bjtcbmA7CisgICAgICAgICAgICBsZXQgZXhwZWN0ZWQgPSBgXG4gICAgY29sb3I6IGdyZWVu
O1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCBicm93bjtcbmA7CiAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlRGVjbGFyYXRpb24udGV4dCwgZXhwZWN0ZWQsICJgY29s
b3I6IGdyZWVuYCBwcm9wZXJ0eSBzaG91bGQgYmUgaW5zZXJ0ZWQgYmVmb3JlIHRoZSBmaXJzdCBw
cm9wZXJ0eS4iKTsKIAogICAgICAgICAgICAgc3R5bGVEZWNsYXJhdGlvbiA9IGdldE1hdGNoZWRT
dHlsZSgiLnJ1bGUtYiIsIHJlc29sdmUpOwpAQCAtNTEsNyArNTEsNyBAQCBmdW5jdGlvbiB0ZXN0
KCkgewogICAgICAgICAgICAgbmV3UHJvcGVydHkubmFtZSA9ICJkaXNwbGF5IjsKICAgICAgICAg
ICAgIG5ld1Byb3BlcnR5LnJhd1ZhbHVlID0gImJsb2NrIjsKIAotICAgICAgICAgICAgZXhwZWN0
ZWQgPSBgY29sb3I6IGdyZWVuO1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCBicm93bjtkaXNwbGF5
OiBibG9jaztcbmA7CisgICAgICAgICAgICBleHBlY3RlZCA9IGBcbiAgICBjb2xvcjogZ3JlZW47
XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIGJyb3duO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuYDsK
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50
ZXh0LCBleHBlY3RlZCwgImBkaXNwbGF5OiBibG9ja2AgcHJvcGVydHkgc2hvdWxkIGJlIGFwcGVu
ZGVkIGF0IHRoZSBlbmQuIik7CiAKICAgICAgICAgICAgIHN0eWxlRGVjbGFyYXRpb24ubG9ja2Vk
ID0gZmFsc2U7CkBAIC02OCw3ICs2OCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAg
ICBuZXdQcm9wZXJ0eS5uYW1lID0gImZvbnQtZmFtaWx5IjsKICAgICAgICAgICAgIG5ld1Byb3Bl
cnR5LnJhd1ZhbHVlID0gImZhbnRhc3kiOwogCi0gICAgICAgICAgICBsZXQgZXhwZWN0ZWQgPSBg
XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcGVhY2hwdWZmO2ZvbnQtZmFtaWx5OiBmYW50YXN5O1xu
ICAgIGNvbG9yOiBidXJseXdvb2RcbmA7CisgICAgICAgICAgICBsZXQgZXhwZWN0ZWQgPSBgXG4g
ICAgYmFja2dyb3VuZC1jb2xvcjogcGVhY2hwdWZmO1xuICAgIGZvbnQtZmFtaWx5OiBmYW50YXN5
O1xuICAgIGNvbG9yOiBidXJseXdvb2Q7XG5gOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RFcXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGV4cGVjdGVkLCAiYGZvbnQtZmFtaWx5
OiBmYW50YXN5YCBwcm9wZXJ0eSBzaG91bGQgYmUgaW5zZXJ0ZWQgYWZ0ZXIgdGhlIGZpcnN0IHBy
b3BlcnR5LiIpOwogCiAgICAgICAgICAgICBzdHlsZURlY2xhcmF0aW9uLmxvY2tlZCA9IGZhbHNl
OwpAQCAtODUsNyArODUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgbmV3UHJv
cGVydHkubmFtZSA9ICJkaXNwbGF5IjsKICAgICAgICAgICAgIG5ld1Byb3BlcnR5LnJhd1ZhbHVl
ID0gImlubGluZSI7CiAKLSAgICAgICAgICAgIGNvbnN0IGV4cGVjdGVkID0gYFxuICAgIGZvbnQt
c2l6ZTogMTRweDtcbiAgICAvKiBjb2xvcjogcmVkOyAqL2Rpc3BsYXk6IGlubGluZTtcbmA7Cisg
ICAgICAgICAgICBjb25zdCBleHBlY3RlZCA9IGBcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAg
LyogY29sb3I6IHJlZDsgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmU7XG5gOwogICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGV4cGVjdGVk
LCAiYGRpc3BsYXk6IGlubGluZWAgcHJvcGVydHkgc2hvdWxkIGJlIGFwcGVuZGVkLiIpOwogCiAg
ICAgICAgICAgICBzdHlsZURlY2xhcmF0aW9uLmxvY2tlZCA9IGZhbHNlOwpAQCAtMTAyLDcgKzEw
Miw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICBuZXdQcm9wZXJ0eS5uYW1lID0g
ImRpc3BsYXkiOwogICAgICAgICAgICAgbmV3UHJvcGVydHkucmF3VmFsdWUgPSAiaW5saW5lIjsK
IAotICAgICAgICAgICAgY29uc3QgZXhwZWN0ZWQgPSBgXG4gICAgZm9udC1zaXplOiAxNHB4O1xu
ICAgIC8qIGNvbG9yOiByZWQgKi9kaXNwbGF5OiBpbmxpbmU7XG5gOworICAgICAgICAgICAgY29u
c3QgZXhwZWN0ZWQgPSBgXG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIC8qIGNvbG9yOiByZWQ7
ICovXG4gICAgZGlzcGxheTogaW5saW5lO1xuYDsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0LCBleHBlY3RlZCwgImBkaXNwbGF5OiBp
bmxpbmVgIHByb3BlcnR5IHNob3VsZCBiZSBhcHBlbmRlZC4iKTsKIAogICAgICAgICAgICAgc3R5
bGVEZWNsYXJhdGlvbi5sb2NrZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jc3MvZ2VuZXJhdGVDU1NSdWxlU3RyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jc3MvZ2VuZXJhdGVDU1NSdWxlU3RyaW5nLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWU5ZTA1OGQ3OTQ3Li4wMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZW5lcmF0ZUNTU1J1bGVTdHJpbmctZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsODcgKzAsMCBAQAotVGVzdGluZyB0aGF0IGdlbmVy
YXRlZCBDU1MgcnVsZSBzdHJpbmdzIGhhdmUgcHJvcGVyIGZvcm1hdHRpbmcuCi0KLQotPT0gUnVu
bmluZyB0ZXN0IHN1aXRlOiBDU1MuZ2VuZXJhdGVDU1NSdWxlU3RyaW5nCi0tLSBSdW5uaW5nIHRl
c3QgY2FzZTogQ1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmluZy5JbmxpbmVTdHlsZQotI3Rlc3Qtbm9k
ZSB7Ci0gICAgYTogMTsKLSAgICBiOiAyOwotICAgIGM6IDM7Ci19Ci0KLS0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBDU1MuZ2VuZXJhdGVDU1NSdWxlU3RyaW5nLklubGluZVN0eWxlLldpdGhDb21tZW50
ZWRQcm9wZXJ0eQotI3Rlc3Qtbm9kZSB7Ci0gICAgYTogMTsKLSAgICAvKiBiOiAyOyAqLwotICAg
IGM6IDM7Ci19Ci0KLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDU1MuZ2VuZXJhdGVDU1NSdWxlU3Ry
aW5nLk1hdGNoZWRSdWxlcwotQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwcHgp
IHsKLSAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4taGVpZ2h0OiAwcHgpIHsKLSAgICAg
ICAgYm9keSA+IGRpdiN0ZXN0LW5vZGUgewotICAgICAgICAgICAgYTogMTsKLSAgICAgICAgICAg
IGI6IDI7Ci0gICAgICAgICAgICBjOiAzOwotICAgICAgICB9Ci0gICAgfQotfQotQG1lZGlhIG9u
bHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwcHgpIHsKLSAgICBib2R5ID4gI3Rlc3Qtbm9kZSB7
Ci0gICAgICAgIGE6IDE7Ci0gICAgICAgIGI6IDI7Ci0gICAgICAgIGM6IDM7Ci0gICAgfQotfQot
Ym9keSA+IGRpdiB7Ci0gICAgYTogMTsKLSAgICBiOiAyOwotICAgIGM6IDM7Ci19Ci1ib2R5ID4g
KiB7Ci0gICAgYTogMTsKLSAgICBiOiAyOwotICAgIGM6IDM7Ci19Ci0qIHsKLSAgICBhOiAxOwot
ICAgIGI6IDI7Ci0gICAgYzogMzsKLX0KLWFkZHJlc3MsIGFydGljbGUsIGFzaWRlLCBkaXYsIGZv
b3RlciwgaGVhZGVyLCBoZ3JvdXAsIGxheWVyLCBtYWluLCBuYXYsIHNlY3Rpb24gewotICAgIGRp
c3BsYXk6IGJsb2NrOwotfQotCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ1NTLmdlbmVyYXRlQ1NT
UnVsZVN0cmluZy5NYXRjaGVkUnVsZXMuV2l0aENvbW1lbnRlZFByb3BlcnRpZXMKLUBtZWRpYSBv
bmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMHB4KSB7Ci0gICAgQG1lZGlhIG9ubHkgc2NyZWVu
IGFuZCAobWluLWhlaWdodDogMHB4KSB7Ci0gICAgICAgIGJvZHkgPiBkaXYjdGVzdC1ub2RlIHsK
LSAgICAgICAgICAgIGE6IDE7Ci0gICAgICAgICAgICAvKiBiOiAyOyAqLwotICAgICAgICAgICAg
YzogMzsKLSAgICAgICAgfQotICAgIH0KLX0KLUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13
aWR0aDogMHB4KSB7Ci0gICAgYm9keSA+ICN0ZXN0LW5vZGUgewotICAgICAgICBhOiAxOwotICAg
ICAgICAvKiBiOiAyOyAqLwotICAgICAgICBjOiAzOwotICAgIH0KLX0KLWJvZHkgPiBkaXYgewot
ICAgIGE6IDE7Ci0gICAgLyogYjogMjsgKi8KLSAgICBjOiAzOwotfQotYm9keSA+ICogewotICAg
IGE6IDE7Ci0gICAgLyogYjogMjsgKi8KLSAgICBjOiAzOwotfQotKiB7Ci0gICAgYTogMTsKLSAg
ICAvKiBiOiAyOyAqLwotICAgIGM6IDM7Ci19Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jc3MvZ2VuZXJhdGVDU1NSdWxlU3RyaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY3NzL2dlbmVyYXRlQ1NTUnVsZVN0cmluZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA1ZWY5Zjc3YTlmYWYuLjAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY3NzL2dlbmVyYXRlQ1NTUnVsZVN0cmluZy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsODEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgot
KnthOjE7YjoyO2M6M30KLWJvZHk+KnthOjE7YjoyO2M6M30KLUBtZWRpYSBhbGwge2JvZHk+ZGl2
e2E6MTtiOjI7YzozfX0KLUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDowcHgpIHti
b2R5PiN0ZXN0LW5vZGV7YToxO2I6MjtjOjN9fQotQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWlu
LXdpZHRoOjBweCkge0BtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi1oZWlnaHQ6MHB4KSB7Ym9k
eT5kaXYjdGVzdC1ub2Rle2E6MTtiOjI7YzozfX19Ci08L3N0eWxlPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBsZXQgbm9kZVN0eWxlcyA9
IG51bGw7Ci0KLSAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVN5bmNTdWl0ZSgi
Q1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmluZyIpOwotCi0gICAgc3VpdGUuYWRkVGVzdENhc2Uoewot
ICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmluZy5JbmxpbmVTdHlsZSIsCi0g
ICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhlIGZvcm1hdHRpbmcgb2YgdGhlIGdlbmVyYXRl
ZCBpbmxpbmUgc3R5bGUgc3RyaW5nLiIsCi0gICAgICAgIHRlc3QoKSB7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZyhub2RlU3R5bGVzLmlubGluZVN0eWxlLmdlbmVyYXRlQ1NTUnVsZVN0
cmluZygpKTsKLSAgICAgICAgfQotICAgIH0pOwotCi0gICAgc3VpdGUuYWRkVGVzdENhc2Uoewot
ICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmluZy5JbmxpbmVTdHlsZS5XaXRo
Q29tbWVudGVkUHJvcGVydHkiLAotICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoZSBmb3Jt
YXR0aW5nIG9mIHRoZSBnZW5lcmF0ZWQgaW5saW5lIHN0eWxlIHN0cmluZyBpZiBhIHByb3BlcnR5
IGlzIGNvbW1lbnRlZCBvdXQuIiwKLSAgICAgICAgdGVzdCgpIHsKLSAgICAgICAgICAgIG5vZGVT
dHlsZXMuaW5saW5lU3R5bGUucHJvcGVydGllc1sxXS5jb21tZW50T3V0KHRydWUpOwotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2cobm9kZVN0eWxlcy5pbmxpbmVTdHlsZS5nZW5lcmF0ZUNT
U1J1bGVTdHJpbmcoKSk7Ci0gICAgICAgIH0sCi0gICAgfSk7Ci0KLSAgICBzdWl0ZS5hZGRUZXN0
Q2FzZSh7Ci0gICAgICAgIG5hbWU6ICJDU1MuZ2VuZXJhdGVDU1NSdWxlU3RyaW5nLk1hdGNoZWRS
dWxlcyIsCi0gICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhlIGZvcm1hdHRpbmcgb2YgdGhl
IGdlbmVyYXRlZCBzdHJpbmcgZm9yIGFsbCBtYXRjaGVkIENTUyBydWxlcy4iLAotICAgICAgICB0
ZXN0KCkgewotICAgICAgICAgICAgZm9yIChsZXQgcnVsZSBvZiBub2RlU3R5bGVzLm1hdGNoZWRS
dWxlcykKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhydWxlLnN0eWxlLmdlbmVy
YXRlQ1NTUnVsZVN0cmluZygpKTsKLSAgICAgICAgfQotICAgIH0pOwotCi0gICAgc3VpdGUuYWRk
VGVzdENhc2UoewotICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmluZy5NYXRj
aGVkUnVsZXMuV2l0aENvbW1lbnRlZFByb3BlcnRpZXMiLAotICAgICAgICBkZXNjcmlwdGlvbjog
IkNoZWNrIHRoZSBmb3JtYXR0aW5nIG9mIHRoZSBnZW5lcmF0ZWQgc3RyaW5nIGZvciBhbGwgbWF0
Y2hlZCBDU1MgcnVsZXMgaWYgYSBwcm9wZXJ0eSBpcyBjb21tZW50ZWQgb3V0IGluIGVhY2guIiwK
LSAgICAgICAgdGVzdCgpIHsKLSAgICAgICAgICAgIGZvciAobGV0IHJ1bGUgb2Ygbm9kZVN0eWxl
cy5tYXRjaGVkUnVsZXMpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXJ1bGUuc3R5bGUuZWRpdGFi
bGUpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICAgICAgcnVs
ZS5zdHlsZS5wcm9wZXJ0aWVzWzFdLmNvbW1lbnRPdXQodHJ1ZSk7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2cocnVsZS5zdHlsZS5nZW5lcmF0ZUNTU1J1bGVTdHJpbmcoKSk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9KTsKLQotICAgIFdJLmRvbU1hbmFnZXIucmVx
dWVzdERvY3VtZW50KChkb2N1bWVudE5vZGUpID0+IHsKLSAgICAgICAgZG9jdW1lbnROb2RlLnF1
ZXJ5U2VsZWN0b3IoIiN0ZXN0LW5vZGUiLCBhc3luYyAoY29udGVudE5vZGVJZCkgPT4gewotICAg
ICAgICAgICAgaWYgKCFjb250ZW50Tm9kZUlkKSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIkRPTSBub2RlIG5vdCBmb3VuZC4iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgbGV0IGRvbU5vZGUgPSBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJ
ZChjb250ZW50Tm9kZUlkKTsKLSAgICAgICAgICAgIG5vZGVTdHlsZXMgPSBXSS5jc3NNYW5hZ2Vy
LnN0eWxlc0Zvck5vZGUoZG9tTm9kZSk7Ci0gICAgICAgICAgICBpZiAobm9kZVN0eWxlcy5uZWVk
c1JlZnJlc2gpCi0gICAgICAgICAgICAgICAgYXdhaXQgbm9kZVN0eWxlcy5hd2FpdEV2ZW50KFdJ
LkRPTU5vZGVTdHlsZXMuRXZlbnQuUmVmcmVzaGVkKTsKLQotICAgICAgICAgICAgc3VpdGUucnVu
VGVzdENhc2VzQW5kRmluaXNoKCk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgPHA+VGVzdGluZyB0aGF0
IGdlbmVyYXRlZCBDU1MgcnVsZSBzdHJpbmdzIGhhdmUgcHJvcGVyIGZvcm1hdHRpbmcuPC9wPgot
ICAgIDxkaXYgaWQ9InRlc3Qtbm9kZSIgc3R5bGU9ImE6MTtiOjI7YzozIj48L2Rpdj4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2VuZXJh
dGVGb3JtYXR0ZWRUZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mv
Z2VuZXJhdGVGb3JtYXR0ZWRUZXh0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAuLmIyYzE2MzhhODU2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDE5MiBAQAorVGVzdGluZyB0aGF0IGdlbmVyYXRlZCBDU1MgcnVsZSBzdHJpbmdz
IGhhdmUgcHJvcGVyIGZvcm1hdHRpbmcuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBXSS5D
U1NTdHllbERlY2xhcmF0aW9uLnByb3RvdHlwZS5nZW5lcmF0ZUZvcm1hdHRlZFRleHQKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBDU1MuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0LklubGluZVN0eWxlCith
OiAxOyBiOiAyOyBjOiAzOworCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ1NTLmdlbmVyYXRlRm9y
bWF0dGVkVGV4dC5JbmxpbmVTdHlsZS5pbmNsdWRlR3JvdXBpbmdzQW5kU2VsZWN0b3JzCisjdGVz
dC1ub2RlIHthOiAxOyBiOiAyOyBjOiAzO30KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENTUy5n
ZW5lcmF0ZUZvcm1hdHRlZFRleHQuSW5saW5lU3R5bGUuTXVsdGlsaW5lCisKKyAgICBhOiAxOwor
ICAgIGI6IDI7CisgICAgYzogMzsKKworCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ1NTLmdlbmVy
YXRlRm9ybWF0dGVkVGV4dC5JbmxpbmVTdHlsZS5NdWx0aWxpbmUuaW5jbHVkZUdyb3VwaW5nc0Fu
ZFNlbGVjdG9ycworI3Rlc3Qtbm9kZSB7CisgICAgYTogMTsKKyAgICBiOiAyOworICAgIGM6IDM7
Cit9CisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDU1MuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0Lklu
bGluZVN0eWxlLldpdGhDb21tZW50ZWRQcm9wZXJ0eQorYTogMTsgLyogYjogMjsgKi8gYzogMzsK
KworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENTUy5nZW5lcmF0ZUZvcm1hdHRlZFRleHQuSW5saW5l
U3R5bGUuV2l0aENvbW1lbnRlZFByb3BlcnR5LmluY2x1ZGVHcm91cGluZ3NBbmRTZWxlY3RvcnMK
KyN0ZXN0LW5vZGUge2E6IDE7IC8qIGI6IDI7ICovIGM6IDM7fQorCistLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogQ1NTLmdlbmVyYXRlRm9ybWF0dGVkVGV4dC5JbmxpbmVTdHlsZS5XaXRoQ29tbWVudGVk
UHJvcGVydHkuTXVsdGlsaW5lCisKKyAgICBhOiAxOworICAgIC8qIGI6IDI7ICovCisgICAgYzog
MzsKKworCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ1NTLmdlbmVyYXRlRm9ybWF0dGVkVGV4dC5J
bmxpbmVTdHlsZS5XaXRoQ29tbWVudGVkUHJvcGVydHkuaW5jbHVkZUdyb3VwaW5nc0FuZFNlbGVj
dG9ycy5NdWx0aWxpbmUKKyN0ZXN0LW5vZGUgeworICAgIGE6IDE7CisgICAgLyogYjogMjsgKi8K
KyAgICBjOiAzOworfQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ1NTLmdlbmVyYXRlRm9ybWF0
dGVkVGV4dC5NYXRjaGVkUnVsZXMKK2E6IDE7IGI6IDI7IGM6IDM7CithOiAxOyBiOiAyOyBjOiAz
OworYTogMTsgYjogMjsgYzogMzsKK2E6IDE7IGI6IDI7IGM6IDM7CithOiAxOyBiOiAyOyBjOiAz
OworCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ1NTLmdlbmVyYXRlRm9ybWF0dGVkVGV4dC5NYXRj
aGVkUnVsZXMuaW5jbHVkZUdyb3VwaW5nc0FuZFNlbGVjdG9ycworQG1lZGlhIG9ubHkgc2NyZWVu
IGFuZCAobWluLXdpZHRoOiAwcHgpIHtAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4taGVpZ2h0
OiAwcHgpIHtib2R5ID4gZGl2I3Rlc3Qtbm9kZSB7YTogMTsgYjogMjsgYzogMzt9fX0KK0BtZWRp
YSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMHB4KSB7Ym9keSA+ICN0ZXN0LW5vZGUge2E6
IDE7IGI6IDI7IGM6IDM7fX0KK2JvZHkgPiBkaXYge2E6IDE7IGI6IDI7IGM6IDM7fQorYm9keSA+
ICoge2E6IDE7IGI6IDI7IGM6IDM7fQorKiB7YTogMTsgYjogMjsgYzogMzt9CisKKy0tIFJ1bm5p
bmcgdGVzdCBjYXNlOiBDU1MuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0Lk1hdGNoZWRSdWxlcy5NdWx0
aWxpbmUKKworICAgICAgICAgICAgYTogMTsKKyAgICAgICAgICAgIGI6IDI7CisgICAgICAgICAg
ICBjOiAzOworCisKKyAgICAgICAgYTogMTsKKyAgICAgICAgYjogMjsKKyAgICAgICAgYzogMzsK
KworCisgICAgYTogMTsKKyAgICBiOiAyOworICAgIGM6IDM7CisKKworICAgIGE6IDE7CisgICAg
YjogMjsKKyAgICBjOiAzOworCisKKyAgICBhOiAxOworICAgIGI6IDI7CisgICAgYzogMzsKKwor
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ1NTLmdlbmVyYXRlRm9ybWF0dGVkVGV4dC5NYXRjaGVk
UnVsZXMuaW5jbHVkZUdyb3VwaW5nc0FuZFNlbGVjdG9ycy5NdWx0aWxpbmUKK0BtZWRpYSBvbmx5
IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMHB4KSB7CisgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFu
ZCAobWluLWhlaWdodDogMHB4KSB7CisgICAgICAgIGJvZHkgPiBkaXYjdGVzdC1ub2RlIHsKKyAg
ICAgICAgICAgIGE6IDE7CisgICAgICAgICAgICBiOiAyOworICAgICAgICAgICAgYzogMzsKKyAg
ICAgICAgfQorICAgIH0KK30KK0BtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMHB4
KSB7CisgICAgYm9keSA+ICN0ZXN0LW5vZGUgeworICAgICAgICBhOiAxOworICAgICAgICBiOiAy
OworICAgICAgICBjOiAzOworICAgIH0KK30KK2JvZHkgPiBkaXYgeworICAgIGE6IDE7CisgICAg
YjogMjsKKyAgICBjOiAzOworfQorYm9keSA+ICogeworICAgIGE6IDE7CisgICAgYjogMjsKKyAg
ICBjOiAzOworfQorKiB7CisgICAgYTogMTsKKyAgICBiOiAyOworICAgIGM6IDM7Cit9CisKKy0t
IFJ1bm5pbmcgdGVzdCBjYXNlOiBDU1MuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0Lk1hdGNoZWRSdWxl
cy5XaXRoQ29tbWVudGVkUHJvcGVydGllcworYTogMTsgLyogYjogMjsgKi8gYzogMzsKK2E6IDE7
IC8qIGI6IDI7ICovIGM6IDM7CithOiAxOyAvKiBiOiAyOyAqLyBjOiAzOworYTogMTsgLyogYjog
MjsgKi8gYzogMzsKK2E6IDE7IC8qIGI6IDI7ICovIGM6IDM7CisKKy0tIFJ1bm5pbmcgdGVzdCBj
YXNlOiBDU1MuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0Lk1hdGNoZWRSdWxlcy5XaXRoQ29tbWVudGVk
UHJvcGVydGllcy5pbmNsdWRlR3JvdXBpbmdzQW5kU2VsZWN0b3JzCitAbWVkaWEgb25seSBzY3Jl
ZW4gYW5kIChtaW4td2lkdGg6IDBweCkge0BtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi1oZWln
aHQ6IDBweCkge2JvZHkgPiBkaXYjdGVzdC1ub2RlIHthOiAxOyAvKiBiOiAyOyAqLyBjOiAzO319
fQorQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwcHgpIHtib2R5ID4gI3Rlc3Qt
bm9kZSB7YTogMTsgLyogYjogMjsgKi8gYzogMzt9fQorYm9keSA+IGRpdiB7YTogMTsgLyogYjog
MjsgKi8gYzogMzt9Citib2R5ID4gKiB7YTogMTsgLyogYjogMjsgKi8gYzogMzt9CisqIHthOiAx
OyAvKiBiOiAyOyAqLyBjOiAzO30KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENTUy5nZW5lcmF0
ZUZvcm1hdHRlZFRleHQuTWF0Y2hlZFJ1bGVzLldpdGhDb21tZW50ZWRQcm9wZXJ0aWVzLk11bHRp
bGluZQorCisgICAgICAgICAgICBhOiAxOworICAgICAgICAgICAgLyogYjogMjsgKi8KKyAgICAg
ICAgICAgIGM6IDM7CisKKworICAgICAgICBhOiAxOworICAgICAgICAvKiBiOiAyOyAqLworICAg
ICAgICBjOiAzOworCisKKyAgICBhOiAxOworICAgIC8qIGI6IDI7ICovCisgICAgYzogMzsKKwor
CisgICAgYTogMTsKKyAgICAvKiBiOiAyOyAqLworICAgIGM6IDM7CisKKworICAgIGE6IDE7Cisg
ICAgLyogYjogMjsgKi8KKyAgICBjOiAzOworCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDU1Mu
Z2VuZXJhdGVGb3JtYXR0ZWRUZXh0Lk1hdGNoZWRSdWxlcy5XaXRoQ29tbWVudGVkUHJvcGVydGll
cy5pbmNsdWRlR3JvdXBpbmdzQW5kU2VsZWN0b3JzLk11bHRpbGluZQorQG1lZGlhIG9ubHkgc2Ny
ZWVuIGFuZCAobWluLXdpZHRoOiAwcHgpIHsKKyAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICht
aW4taGVpZ2h0OiAwcHgpIHsKKyAgICAgICAgYm9keSA+IGRpdiN0ZXN0LW5vZGUgeworICAgICAg
ICAgICAgYTogMTsKKyAgICAgICAgICAgIC8qIGI6IDI7ICovCisgICAgICAgICAgICBjOiAzOwor
ICAgICAgICB9CisgICAgfQorfQorQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAw
cHgpIHsKKyAgICBib2R5ID4gI3Rlc3Qtbm9kZSB7CisgICAgICAgIGE6IDE7CisgICAgICAgIC8q
IGI6IDI7ICovCisgICAgICAgIGM6IDM7CisgICAgfQorfQorYm9keSA+IGRpdiB7CisgICAgYTog
MTsKKyAgICAvKiBiOiAyOyAqLworICAgIGM6IDM7Cit9Citib2R5ID4gKiB7CisgICAgYTogMTsK
KyAgICAvKiBiOiAyOyAqLworICAgIGM6IDM7Cit9CisqIHsKKyAgICBhOiAxOworICAgIC8qIGI6
IDI7ICovCisgICAgYzogMzsKK30KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2Nzcy9nZW5lcmF0ZUZvcm1hdHRlZFRleHQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
c3MvZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwLi5lOGJjNzBhMGM2ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY3NzL2dlbmVyYXRlRm9ybWF0dGVkVGV4dC5odG1sCkBAIC0wLDAgKzEsMjA5
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Cisqe2E6MTtiOjI7
YzozfQorYm9keT4qe2E6MTtiOjI7YzozfQorQG1lZGlhIGFsbCB7Ym9keT5kaXZ7YToxO2I6Mjtj
OjN9fQorQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOjBweCkge2JvZHk+I3Rlc3Qt
bm9kZXthOjE7YjoyO2M6M319CitAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MHB4
KSB7QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLWhlaWdodDowcHgpIHtib2R5PmRpdiN0ZXN0
LW5vZGV7YToxO2I6MjtjOjN9fX0KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkgeworICAgIGxldCBub2RlU3R5bGVzID0gbnVsbDsKKwor
ICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlU3luY1N1aXRlKCJXSS5DU1NTdHll
bERlY2xhcmF0aW9uLnByb3RvdHlwZS5nZW5lcmF0ZUZvcm1hdHRlZFRleHQiKTsKKworICAgIHN1
aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkNTUy5nZW5lcmF0ZUZvcm1hdHRlZFRl
eHQuSW5saW5lU3R5bGUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoZSBmb3JtYXR0
aW5nIG9mIHRoZSBnZW5lcmF0ZWQgaW5saW5lIHN0eWxlIHN0cmluZy4iLAorICAgICAgICB0ZXN0
KCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2cobm9kZVN0eWxlcy5pbmxpbmVTdHls
ZS5nZW5lcmF0ZUZvcm1hdHRlZFRleHQoKSk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1
aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkNTUy5nZW5lcmF0ZUZvcm1hdHRlZFRl
eHQuSW5saW5lU3R5bGUuaW5jbHVkZUdyb3VwaW5nc0FuZFNlbGVjdG9ycyIsCisgICAgICAgIGRl
c2NyaXB0aW9uOiAiQ2hlY2sgdGhlIGZvcm1hdHRpbmcgb2YgdGhlIGdlbmVyYXRlZCBpbmxpbmUg
c3R5bGUgc3RyaW5nIChpbmNsdWRpbmcgZ3JvdXBpbmdzIGFuZCBzZWxlY3RvcnMpLiIsCisgICAg
ICAgIHRlc3QoKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhub2RlU3R5bGVzLmlu
bGluZVN0eWxlLmdlbmVyYXRlRm9ybWF0dGVkVGV4dCh7aW5jbHVkZUdyb3VwaW5nc0FuZFNlbGVj
dG9yczogdHJ1ZX0pKTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENh
c2UoeworICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlRm9ybWF0dGVkVGV4dC5JbmxpbmVTdHls
ZS5NdWx0aWxpbmUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoZSBmb3JtYXR0aW5n
IG9mIHRoZSBnZW5lcmF0ZWQgaW5saW5lIHN0eWxlIHN0cmluZyAobXVsdGlsaW5lKS4iLAorICAg
ICAgICB0ZXN0KCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2cobm9kZVN0eWxlcy5p
bmxpbmVTdHlsZS5nZW5lcmF0ZUZvcm1hdHRlZFRleHQoe211bHRpbGluZTogdHJ1ZX0pKTsKKyAg
ICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1l
OiAiQ1NTLmdlbmVyYXRlRm9ybWF0dGVkVGV4dC5JbmxpbmVTdHlsZS5NdWx0aWxpbmUuaW5jbHVk
ZUdyb3VwaW5nc0FuZFNlbGVjdG9ycyIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhl
IGZvcm1hdHRpbmcgb2YgdGhlIGdlbmVyYXRlZCBpbmxpbmUgc3R5bGUgc3RyaW5nIChtdWx0aWxp
bmUsIGFuZCBpbmNsdWRpbmcgZ3JvdXBpbmdzIGFuZCBzZWxlY3RvcnMpLiIsCisgICAgICAgIHRl
c3QoKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhub2RlU3R5bGVzLmlubGluZVN0
eWxlLmdlbmVyYXRlRm9ybWF0dGVkVGV4dCh7bXVsdGlsaW5lOiB0cnVlLCBpbmNsdWRlR3JvdXBp
bmdzQW5kU2VsZWN0b3JzOiB0cnVlfSkpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0
ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDU1MuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0
LklubGluZVN0eWxlLldpdGhDb21tZW50ZWRQcm9wZXJ0eSIsCisgICAgICAgIGRlc2NyaXB0aW9u
OiAiQ2hlY2sgdGhlIGZvcm1hdHRpbmcgb2YgdGhlIGdlbmVyYXRlZCBpbmxpbmUgc3R5bGUgc3Ry
aW5nIGlmIGEgcHJvcGVydHkgaXMgY29tbWVudGVkIG91dC4iLAorICAgICAgICB0ZXN0KCkgewor
ICAgICAgICAgICAgbm9kZVN0eWxlcy5pbmxpbmVTdHlsZS5wcm9wZXJ0aWVzWzFdLmNvbW1lbnRP
dXQodHJ1ZSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhub2RlU3R5bGVzLmlubGlu
ZVN0eWxlLmdlbmVyYXRlRm9ybWF0dGVkVGV4dCgpKTsKKyAgICAgICAgfSwKKyAgICB9KTsKKwor
ICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkNTUy5nZW5lcmF0ZUZvcm1h
dHRlZFRleHQuSW5saW5lU3R5bGUuV2l0aENvbW1lbnRlZFByb3BlcnR5LmluY2x1ZGVHcm91cGlu
Z3NBbmRTZWxlY3RvcnMiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoZSBmb3JtYXR0
aW5nIG9mIHRoZSBnZW5lcmF0ZWQgaW5saW5lIHN0eWxlIHN0cmluZyAoaW5jbHVkaW5nIGdyb3Vw
aW5ncyBhbmQgc2VsZWN0b3JzKSBpZiBhIHByb3BlcnR5IGlzIGNvbW1lbnRlZCBvdXQuIiwKKyAg
ICAgICAgdGVzdCgpIHsKKyAgICAgICAgICAgIG5vZGVTdHlsZXMuaW5saW5lU3R5bGUucHJvcGVy
dGllc1sxXS5jb21tZW50T3V0KHRydWUpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
bm9kZVN0eWxlcy5pbmxpbmVTdHlsZS5nZW5lcmF0ZUZvcm1hdHRlZFRleHQoe2luY2x1ZGVHcm91
cGluZ3NBbmRTZWxlY3RvcnM6IHRydWV9KSk7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBz
dWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDU1MuZ2VuZXJhdGVGb3JtYXR0ZWRU
ZXh0LklubGluZVN0eWxlLldpdGhDb21tZW50ZWRQcm9wZXJ0eS5NdWx0aWxpbmUiLAorICAgICAg
ICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoZSBmb3JtYXR0aW5nIG9mIHRoZSBnZW5lcmF0ZWQgaW5s
aW5lIHN0eWxlIHN0cmluZyAobXVsdGlsaW5lKSBpZiBhIHByb3BlcnR5IGlzIGNvbW1lbnRlZCBv
dXQuIiwKKyAgICAgICAgdGVzdCgpIHsKKyAgICAgICAgICAgIG5vZGVTdHlsZXMuaW5saW5lU3R5
bGUucHJvcGVydGllc1sxXS5jb21tZW50T3V0KHRydWUpOworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2cobm9kZVN0eWxlcy5pbmxpbmVTdHlsZS5nZW5lcmF0ZUZvcm1hdHRlZFRleHQoe211
bHRpbGluZTogdHJ1ZX0pKTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRl
c3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkNTUy5nZW5lcmF0ZUZvcm1hdHRlZFRleHQuSW5saW5l
U3R5bGUuV2l0aENvbW1lbnRlZFByb3BlcnR5LmluY2x1ZGVHcm91cGluZ3NBbmRTZWxlY3RvcnMu
TXVsdGlsaW5lIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGUgZm9ybWF0dGluZyBv
ZiB0aGUgZ2VuZXJhdGVkIGlubGluZSBzdHlsZSBzdHJpbmcgKG11bHRpbGluZSwgYW5kIGluY2x1
ZGluZyBncm91cGluZ3MgYW5kIHNlbGVjdG9ycykgaWYgYSBwcm9wZXJ0eSBpcyBjb21tZW50ZWQg
b3V0LiIsCisgICAgICAgIHRlc3QoKSB7CisgICAgICAgICAgICBub2RlU3R5bGVzLmlubGluZVN0
eWxlLnByb3BlcnRpZXNbMV0uY29tbWVudE91dCh0cnVlKTsKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKG5vZGVTdHlsZXMuaW5saW5lU3R5bGUuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0KHtp
bmNsdWRlR3JvdXBpbmdzQW5kU2VsZWN0b3JzOiB0cnVlLCBtdWx0aWxpbmU6IHRydWV9KSk7Cisg
ICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5h
bWU6ICJDU1MuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0Lk1hdGNoZWRSdWxlcyIsCisgICAgICAgIGRl
c2NyaXB0aW9uOiAiQ2hlY2sgdGhlIGZvcm1hdHRpbmcgb2YgdGhlIGdlbmVyYXRlZCBzdHJpbmcg
Zm9yIGFsbCBtYXRjaGVkIENTUyBydWxlcy4iLAorICAgICAgICB0ZXN0KCkgeworICAgICAgICAg
ICAgZm9yIChsZXQgcnVsZSBvZiBub2RlU3R5bGVzLm1hdGNoZWRSdWxlcykgeworICAgICAgICAg
ICAgICAgIGlmICghcnVsZS5zdHlsZS5lZGl0YWJsZSkKKyAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2cocnVsZS5zdHlsZS5nZW5l
cmF0ZUZvcm1hdHRlZFRleHQoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9KTsK
KworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkNTUy5nZW5lcmF0ZUZv
cm1hdHRlZFRleHQuTWF0Y2hlZFJ1bGVzLmluY2x1ZGVHcm91cGluZ3NBbmRTZWxlY3RvcnMiLAor
ICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoZSBmb3JtYXR0aW5nIG9mIHRoZSBnZW5lcmF0
ZWQgc3RyaW5nIChpbmNsdWRpbmcgZ3JvdXBpbmdzIGFuZCBzZWxlY3RvcnMpIGZvciBhbGwgbWF0
Y2hlZCBDU1MgcnVsZXMuIiwKKyAgICAgICAgdGVzdCgpIHsKKyAgICAgICAgICAgIGZvciAobGV0
IHJ1bGUgb2Ygbm9kZVN0eWxlcy5tYXRjaGVkUnVsZXMpIHsKKyAgICAgICAgICAgICAgICBpZiAo
IXJ1bGUuc3R5bGUuZWRpdGFibGUpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKHJ1bGUuc3R5bGUuZ2VuZXJhdGVGb3JtYXR0
ZWRUZXh0KHtpbmNsdWRlR3JvdXBpbmdzQW5kU2VsZWN0b3JzOiB0cnVlfSkpOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAg
ICAgIG5hbWU6ICJDU1MuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0Lk1hdGNoZWRSdWxlcy5NdWx0aWxp
bmUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoZSBmb3JtYXR0aW5nIG9mIHRoZSBn
ZW5lcmF0ZWQgc3RyaW5nIChtdWx0aWxpbmUpIGZvciBhbGwgbWF0Y2hlZCBDU1MgcnVsZXMuIiwK
KyAgICAgICAgdGVzdCgpIHsKKyAgICAgICAgICAgIGZvciAobGV0IHJ1bGUgb2Ygbm9kZVN0eWxl
cy5tYXRjaGVkUnVsZXMpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXJ1bGUuc3R5bGUuZWRpdGFi
bGUpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKHJ1bGUuc3R5bGUuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0KHttdWx0aWxpbmU6
IHRydWV9KSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRl
LmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkNTUy5nZW5lcmF0ZUZvcm1hdHRlZFRleHQu
TWF0Y2hlZFJ1bGVzLmluY2x1ZGVHcm91cGluZ3NBbmRTZWxlY3RvcnMuTXVsdGlsaW5lIiwKKyAg
ICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGUgZm9ybWF0dGluZyBvZiB0aGUgZ2VuZXJhdGVk
IHN0cmluZyAobXVsdGlsaW5lLCBhbmQgaW5jbHVkaW5nIGdyb3VwaW5ncyBhbmQgc2VsZWN0b3Jz
KSBmb3IgYWxsIG1hdGNoZWQgQ1NTIHJ1bGVzLiIsCisgICAgICAgIHRlc3QoKSB7CisgICAgICAg
ICAgICBmb3IgKGxldCBydWxlIG9mIG5vZGVTdHlsZXMubWF0Y2hlZFJ1bGVzKSB7CisgICAgICAg
ICAgICAgICAgaWYgKCFydWxlLnN0eWxlLmVkaXRhYmxlKQorICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhydWxlLnN0eWxlLmdl
bmVyYXRlRm9ybWF0dGVkVGV4dCh7aW5jbHVkZUdyb3VwaW5nc0FuZFNlbGVjdG9yczogdHJ1ZSwg
bXVsdGlsaW5lOiB0cnVlfSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSk7CisK
KyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDU1MuZ2VuZXJhdGVGb3Jt
YXR0ZWRUZXh0Lk1hdGNoZWRSdWxlcy5XaXRoQ29tbWVudGVkUHJvcGVydGllcyIsCisgICAgICAg
IGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhlIGZvcm1hdHRpbmcgb2YgdGhlIGdlbmVyYXRlZCBzdHJp
bmcgZm9yIGFsbCBtYXRjaGVkIENTUyBydWxlcyBpZiBhIHByb3BlcnR5IGlzIGNvbW1lbnRlZCBv
dXQgaW4gZWFjaC4iLAorICAgICAgICB0ZXN0KCkgeworICAgICAgICAgICAgZm9yIChsZXQgcnVs
ZSBvZiBub2RlU3R5bGVzLm1hdGNoZWRSdWxlcykgeworICAgICAgICAgICAgICAgIGlmICghcnVs
ZS5zdHlsZS5lZGl0YWJsZSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
ICAgICAgICAgcnVsZS5zdHlsZS5wcm9wZXJ0aWVzWzFdLmNvbW1lbnRPdXQodHJ1ZSk7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2cocnVsZS5zdHlsZS5nZW5lcmF0ZUZvcm1hdHRl
ZFRleHQoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRl
LmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkNTUy5nZW5lcmF0ZUZvcm1hdHRlZFRleHQu
TWF0Y2hlZFJ1bGVzLldpdGhDb21tZW50ZWRQcm9wZXJ0aWVzLmluY2x1ZGVHcm91cGluZ3NBbmRT
ZWxlY3RvcnMiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoZSBmb3JtYXR0aW5nIG9m
IHRoZSBnZW5lcmF0ZWQgc3RyaW5nIChpbmNsdWRpbmcgZ3JvdXBpbmdzIGFuZCBzZWxlY3RvcnMp
IGZvciBhbGwgbWF0Y2hlZCBDU1MgcnVsZXMgaWYgYSBwcm9wZXJ0eSBpcyBjb21tZW50ZWQgb3V0
IGluIGVhY2guIiwKKyAgICAgICAgdGVzdCgpIHsKKyAgICAgICAgICAgIGZvciAobGV0IHJ1bGUg
b2Ygbm9kZVN0eWxlcy5tYXRjaGVkUnVsZXMpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXJ1bGUu
c3R5bGUuZWRpdGFibGUpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgICAgIHJ1bGUuc3R5bGUucHJvcGVydGllc1sxXS5jb21tZW50T3V0KHRydWUpOworICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKHJ1bGUuc3R5bGUuZ2VuZXJhdGVGb3JtYXR0ZWRU
ZXh0KHtpbmNsdWRlR3JvdXBpbmdzQW5kU2VsZWN0b3JzOiB0cnVlfSkpOworICAgICAgICAgICAg
fQorICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAg
IG5hbWU6ICJDU1MuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0Lk1hdGNoZWRSdWxlcy5XaXRoQ29tbWVu
dGVkUHJvcGVydGllcy5NdWx0aWxpbmUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRo
ZSBmb3JtYXR0aW5nIG9mIHRoZSBnZW5lcmF0ZWQgc3RyaW5nIChtdWx0aWxpbmUpIGZvciBhbGwg
bWF0Y2hlZCBDU1MgcnVsZXMgaWYgYSBwcm9wZXJ0eSBpcyBjb21tZW50ZWQgb3V0IGluIGVhY2gu
IiwKKyAgICAgICAgdGVzdCgpIHsKKyAgICAgICAgICAgIGZvciAobGV0IHJ1bGUgb2Ygbm9kZVN0
eWxlcy5tYXRjaGVkUnVsZXMpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXJ1bGUuc3R5bGUuZWRp
dGFibGUpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIHJ1
bGUuc3R5bGUucHJvcGVydGllc1sxXS5jb21tZW50T3V0KHRydWUpOworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QubG9nKHJ1bGUuc3R5bGUuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0KHttdWx0
aWxpbmU6IHRydWV9KSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9KTsKKworICAg
IHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkNTUy5nZW5lcmF0ZUZvcm1hdHRl
ZFRleHQuTWF0Y2hlZFJ1bGVzLldpdGhDb21tZW50ZWRQcm9wZXJ0aWVzLmluY2x1ZGVHcm91cGlu
Z3NBbmRTZWxlY3RvcnMuTXVsdGlsaW5lIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0
aGUgZm9ybWF0dGluZyBvZiB0aGUgZ2VuZXJhdGVkIHN0cmluZyAobXVsdGlsaW5lLCBhbmQgaW5j
bHVkaW5nIGdyb3VwaW5ncyBhbmQgc2VsZWN0b3JzKSBmb3IgYWxsIG1hdGNoZWQgQ1NTIHJ1bGVz
IGlmIGEgcHJvcGVydHkgaXMgY29tbWVudGVkIG91dCBpbiBlYWNoLiIsCisgICAgICAgIHRlc3Qo
KSB7CisgICAgICAgICAgICBmb3IgKGxldCBydWxlIG9mIG5vZGVTdHlsZXMubWF0Y2hlZFJ1bGVz
KSB7CisgICAgICAgICAgICAgICAgaWYgKCFydWxlLnN0eWxlLmVkaXRhYmxlKQorICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBydWxlLnN0eWxlLnByb3BlcnRp
ZXNbMV0uY29tbWVudE91dCh0cnVlKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZyhydWxlLnN0eWxlLmdlbmVyYXRlRm9ybWF0dGVkVGV4dCh7aW5jbHVkZUdyb3VwaW5nc0FuZFNl
bGVjdG9yczogdHJ1ZSwgbXVsdGlsaW5lOiB0cnVlfSkpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgfSk7CisKKyAgICBXSS5kb21NYW5hZ2VyLnJlcXVlc3REb2N1bWVudCgoZG9jdW1l
bnROb2RlKSA9PiB7CisgICAgICAgIGRvY3VtZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCIjdGVzdC1u
b2RlIiwgYXN5bmMgKGNvbnRlbnROb2RlSWQpID0+IHsKKyAgICAgICAgICAgIGlmICghY29udGVu
dE5vZGVJZCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJET00gbm9kZSBu
b3QgZm91bmQuIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGxldCBkb21Ob2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQoY29udGVudE5vZGVJZCk7Cisg
ICAgICAgICAgICBub2RlU3R5bGVzID0gV0kuY3NzTWFuYWdlci5zdHlsZXNGb3JOb2RlKGRvbU5v
ZGUpOworICAgICAgICAgICAgaWYgKG5vZGVTdHlsZXMubmVlZHNSZWZyZXNoKQorICAgICAgICAg
ICAgICAgIGF3YWl0IG5vZGVTdHlsZXMuYXdhaXRFdmVudChXSS5ET01Ob2RlU3R5bGVzLkV2ZW50
LlJlZnJlc2hlZCk7CisKKyAgICAgICAgICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgp
OworICAgICAgICB9KTsKKyAgICB9KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3RpbmcgdGhhdCBnZW5lcmF0ZWQgQ1NTIHJ1bGUg
c3RyaW5ncyBoYXZlIHByb3BlciBmb3JtYXR0aW5nLjwvcD4KKyAgICA8ZGl2IGlkPSJ0ZXN0LW5v
ZGUiIHN0eWxlPSJhOjE7YjoyO2M6MyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1jc3MtcHJvcGVydHktZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5LWV4
cGVjdGVkLnR4dAppbmRleCBlYzE2MDczYjIzOTUuLjU0MjMyMjRjZDU4OSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5LWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1jc3MtcHJvcGVydHktZXhw
ZWN0ZWQudHh0CkBAIC01LDYgKzUsNyBAQCBUZXN0aW5nIHRoYXQgQ1NTU3R5bGVEZWNsYXJhdGlv
biB1cGRhdGUgaW1tZWRpYXRlbHkgYWZ0ZXIgbW9kaWZ5aW5nIGl0cyBwcm9wZXJ0aQogLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IFVwZGF0ZSB2YWx1ZSB3aGVuIENTU1N0eWxlRGVjbGFyYXRpb24gaXMg
bm90IGxvY2tlZAogUEFTUzogImZvbnQtc2l6ZSIgcHJvcGVydHkgdmFsdWUgc2hvdWxkIHVwZGF0
ZSBpbW1lZGlhdGVseS4KIFBBU1M6IFN0eWxlIGRlY2xhcmF0aW9uIHRleHQgc2hvdWxkIHVwZGF0
ZSBpbW1lZGlhdGVseS4KK1BBU1M6IHN0eWxlU2hlZXRUZXh0UmFuZ2Ugc2hvdWxkIGNvcnJlc3Bv
bmQgdG8gImZvbnQtc2l6ZTogMTBweDsiCiAKIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBVcGRhdGUg
dmFsdWUgd2hlbiBDU1NTdHlsZURlY2xhcmF0aW9uIGlzIGxvY2tlZAogUEFTUzogImZvbnQtc2l6
ZSIgcHJvcGVydHkgdmFsdWUgc2hvdWxkIHVwZGF0ZSBpbW1lZGlhdGVseS4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9kaWZ5LWNzcy1wcm9wZXJ0eS5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5Lmh0bWwKaW5kZXggMjg2
M2Y3ODI1MGRhLi5kOWRhOWFhMGMwNzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jc3MvbW9kaWZ5LWNzcy1wcm9wZXJ0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jc3MvbW9kaWZ5LWNzcy1wcm9wZXJ0eS5odG1sCkBAIC0xLDYgKzEsNyBAQAogPCFET0NUWVBF
IGh0bWw+CiA8aHRtbD4KIDxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNv
dXJjZXMvbW9kaWZ5LWNzcy1wcm9wZXJ0eS5jc3MiPgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0PgogZnVuY3Rpb24gbWFrZU5hcnJvdygpIHsKQEAgLTM5LDE0ICs0MCwyMiBAQCBmdW5j
dGlvbiB0ZXN0KCkgewogCiAgICAgICAgICAgICBsZXQgc3R5bGVEZWNsYXJhdGlvbiA9IGdldE1h
dGNoZWRTdHlsZURlY2xhcmF0aW9uKCk7CiAgICAgICAgICAgICBzdHlsZURlY2xhcmF0aW9uLmxv
Y2tlZCA9IGZhbHNlOworCisgICAgICAgICAgICBzdHlsZURlY2xhcmF0aW9uLnNpbmdsZUZpcmVF
dmVudExpc3RlbmVyKFdJLkNTU1N0eWxlRGVjbGFyYXRpb24uRXZlbnQuUHJvcGVydGllc0NoYW5n
ZWQsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgbGV0IGZvbnRQcm9wZXJ0eSA9
IGdldFByb3BlcnR5KCJmb250LXNpemUiKTsKKyAgICAgICAgICAgICAgICBsZXQgcmVsYXRpdmVS
YW5nZSA9IGZvbnRQcm9wZXJ0eS5zdHlsZVNoZWV0VGV4dFJhbmdlLnJlbGF0aXZlVG8oZm9udFBy
b3BlcnR5Lm93bmVyU3R5bGUuc3R5bGVTaGVldFRleHRSYW5nZS5zdGFydExpbmUsIGZvbnRQcm9w
ZXJ0eS5vd25lclN0eWxlLnN0eWxlU2hlZXRUZXh0UmFuZ2Uuc3RhcnRPZmZzZXQpOworICAgICAg
ICAgICAgICAgIHJlbGF0aXZlUmFuZ2UucmVzb2x2ZU9mZnNldHMoZm9udFByb3BlcnR5Lm93bmVy
U3R5bGUudGV4dCk7CisgICAgICAgICAgICAgICAgbGV0IHByb3BlcnR5VGV4dCA9IGZvbnRQcm9w
ZXJ0eS5vd25lclN0eWxlLnRleHQuc2xpY2UocmVsYXRpdmVSYW5nZS5zdGFydE9mZnNldCwgcmVs
YXRpdmVSYW5nZS5lbmRPZmZzZXQpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0RXF1YWwocHJvcGVydHlUZXh0LCAiZm9udC1zaXplOiAxMHB4OyIsIGBzdHlsZVNoZWV0VGV4
dFJhbmdlIHNob3VsZCBjb3JyZXNwb25kIHRvICJmb250LXNpemU6IDEwcHg7ImApOworICAgICAg
ICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgIH0pOworCiAgICAgICAgICAgICBnZXRQ
cm9wZXJ0eSgiZm9udC1zaXplIikucmF3VmFsdWUgPSAiMTFweCI7CiAgICAgICAgICAgICBnZXRQ
cm9wZXJ0eSgiZm9udC1zaXplIikucmF3VmFsdWUgPSAiMTBweCI7CiAKICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoZ2V0UHJvcGVydHkoImZvbnQtc2l6ZSIpLnJhd1ZhbHVl
LCAiMTBweCIsIGAiZm9udC1zaXplIiBwcm9wZXJ0eSB2YWx1ZSBzaG91bGQgdXBkYXRlIGltbWVk
aWF0ZWx5LmApOwogCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxl
RGVjbGFyYXRpb24udGV4dCwgYGZvbnQtc2l6ZTogMTBweDsgY29sb3I6IGFudGlxdWV3aGl0ZWAs
IGBTdHlsZSBkZWNsYXJhdGlvbiB0ZXh0IHNob3VsZCB1cGRhdGUgaW1tZWRpYXRlbHkuYCk7Ci0K
LSAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0
RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0LCBgXG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAg
IGNvbG9yOiBhbnRpcXVld2hpdGU7XG5gLCBgU3R5bGUgZGVjbGFyYXRpb24gdGV4dCBzaG91bGQg
dXBkYXRlIGltbWVkaWF0ZWx5LmApOwogICAgICAgICB9CiAgICAgfSk7CiAKQEAgLTgwLDEyICs4
OSwxMSBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3RFcXVhbChnZXRQcm9wZXJ0eSgiZm9udC1zaXplIikucmF3VmFsdWUsICIxNnB4IiwgYCJmb250
LXNpemUiIHByb3BlcnR5IHZhbHVlIHNob3VsZCB1cGRhdGUgaW1tZWRpYXRlbHkuYCk7CiAKICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0
LCBgCi0gICAgICAgIGZvbnQtc2l6ZTogMTZweDsKLSAgICAgICAgY29sb3I6ICMzMzM7Ci0KLSAg
ICAgICAgbWFyZ2luLWxlZnQ6IDA7Ci0gICAgICAgIG1hcmdpbi10b3A6IDFlbTsKLSAgICBgLCBg
U3R5bGUgZGVjbGFyYXRpb24gdGV4dCBzaG91bGQgdXBkYXRlIGltbWVkaWF0ZWx5LmApOworICAg
IGZvbnQtc2l6ZTogMTZweDsKKyAgICBjb2xvcjogIzMzMzsKKyAgICBtYXJnaW4tbGVmdDogMDsK
KyAgICBtYXJnaW4tdG9wOiAxZW07CitgLCBgU3R5bGUgZGVjbGFyYXRpb24gdGV4dCBzaG91bGQg
dXBkYXRlIGltbWVkaWF0ZWx5LmApOwogCiAgICAgICAgICAgICBzdHlsZURlY2xhcmF0aW9uLmxv
Y2tlZCA9IGZhbHNlOwogCkBAIC0yNDMsNyArMjUxLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAg
ICAgICAgICAgIGxldCBkaXNhYmxlZCA9IGZhbHNlOwogICAgICAgICAgICAgZ2V0UHJvcGVydHko
InBhZGRpbmctcmlnaHQiKS5jb21tZW50T3V0KGRpc2FibGVkKTsKIAotICAgICAgICAgICAgbGV0
IGV4cGVjdGVkU3R5bGVUZXh0ID0gYFxuICAgICAgICAvKiBwYWRkaW5nLWxlZnQ6IDJlbTsgKi9c
biAgICAgICAgcGFkZGluZy1yaWdodDogMHB4O1xuICAgIGA7CisgICAgICAgICAgICBsZXQgZXhw
ZWN0ZWRTdHlsZVRleHQgPSBgXG4gICAgLyogcGFkZGluZy1sZWZ0OiAyZW07ICovXG4gICAgcGFk
ZGluZy1yaWdodDogMHB4O1xuYDsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1
YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0LCBleHBlY3RlZFN0eWxlVGV4dCwgYFN0eWxlIGRlY2xh
cmF0aW9uIHRleHQgc2hvdWxkIHVwZGF0ZSBpbW1lZGlhdGVseSB3aXRoIHVuY29tbWVudGVkIHBy
b3BlcnR5LmApOwogCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZ2V0UHJv
cGVydHkoInBhZGRpbmctcmlnaHQiKS5lbmFibGVkLCBgVW5jb21tZW50ZWQgcHJvcGVydHkgc2hv
dWxkIGJlIGVuYWJsZWQuYCk7CkBAIC0yNTEsNyArMjU5LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsK
ICAgICAgICAgICAgIGRpc2FibGVkID0gdHJ1ZTsKICAgICAgICAgICAgIGdldFByb3BlcnR5KCJw
YWRkaW5nLXJpZ2h0IikuY29tbWVudE91dChkaXNhYmxlZCk7CiAKLSAgICAgICAgICAgIGV4cGVj
dGVkU3R5bGVUZXh0ID0gYFxuICAgICAgICAvKiBwYWRkaW5nLWxlZnQ6IDJlbTsgKi9cbiAgICAg
ICAgLyogcGFkZGluZy1yaWdodDogMHB4OyAqL1xuICAgIGA7CisgICAgICAgICAgICBleHBlY3Rl
ZFN0eWxlVGV4dCA9IGBcbiAgICAvKiBwYWRkaW5nLWxlZnQ6IDJlbTsgKi9cbiAgICAvKiBwYWRk
aW5nLXJpZ2h0OiAwcHg7ICovXG5gOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RF
cXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGV4cGVjdGVkU3R5bGVUZXh0LCBgU3R5bGUgZGVj
bGFyYXRpb24gdGV4dCBzaG91bGQgdXBkYXRlIGltbWVkaWF0ZWx5IHdpdGggY29tbWVudGVkIG91
dCBwcm9wZXJ0eS5gKTsKIAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KCFn
ZXRQcm9wZXJ0eSgicGFkZGluZy1yaWdodCIpLmVuYWJsZWQsIGBDb21tZW50ZWQgb3V0IHByb3Bl
cnR5IHNob3VsZCBiZSBkaXNhYmxlZC5gKTsKQEAgLTI5MCw3ICsyOTgsNyBAQCBmdW5jdGlvbiB0
ZXN0KCkgewogICAgICAgICAgICAgbGV0IGRpc2FibGVkID0gZmFsc2U7CiAgICAgICAgICAgICBn
ZXRQcm9wZXJ0eSgiZm9udC1zaXplIikuY29tbWVudE91dChkaXNhYmxlZCk7CiAKLSAgICAgICAg
ICAgIGxldCBleHBlY3RlZFN0eWxlVGV4dCA9IGBmb250LXNpemU6IDEzcHg7Lypib3JkZXI6IDJw
eCBzb2xpZCBicm93biovYDsKKyAgICAgICAgICAgIGxldCBleHBlY3RlZFN0eWxlVGV4dCA9IGBc
biAgICBmb250LXNpemU6IDEzcHg7XG4gICAgLyogYm9yZGVyOiAycHggc29saWQgYnJvd247ICov
XG5gOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHlsZURlY2xhcmF0
aW9uLnRleHQsIGV4cGVjdGVkU3R5bGVUZXh0LCBgU3R5bGUgZGVjbGFyYXRpb24gdGV4dCBzaG91
bGQgdXBkYXRlIGltbWVkaWF0ZWx5IHdpdGggdW5jb21tZW50ZWQgcHJvcGVydHkuYCk7CiAKICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChnZXRQcm9wZXJ0eSgiZm9udC1zaXpl
IikuZW5hYmxlZCwgYFVuY29tbWVudGVkIHByb3BlcnR5IHNob3VsZCBiZSBlbmFibGVkLmApOwpA
QCAtMjk5LDcgKzMwNyw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICBkaXNhYmxl
ZCA9IGZhbHNlOwogICAgICAgICAgICAgZ2V0UHJvcGVydHkoImJvcmRlciIpLmNvbW1lbnRPdXQo
ZGlzYWJsZWQpOwogCi0gICAgICAgICAgICBleHBlY3RlZFN0eWxlVGV4dCA9IGBmb250LXNpemU6
IDEzcHg7Ym9yZGVyOiAycHggc29saWQgYnJvd25gOworICAgICAgICAgICAgZXhwZWN0ZWRTdHls
ZVRleHQgPSBgXG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIGJy
b3duXG5gOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHlsZURlY2xh
cmF0aW9uLnRleHQsIGV4cGVjdGVkU3R5bGVUZXh0LCBgU3R5bGUgZGVjbGFyYXRpb24gdGV4dCBz
aG91bGQgdXBkYXRlIGltbWVkaWF0ZWx5IHdpdGggY29tbWVudGVkIG91dCBwcm9wZXJ0eS5gKTsK
IAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGdldFByb3BlcnR5KCJib3Jk
ZXIiKS5lbmFibGVkLCBgVW5jb21tZW50ZWQgcHJvcGVydHkgc2hvdWxkIGJlIGVuYWJsZWQuYCk7
CkBAIC0zMzEsMjIgKzMzOSw2IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiA8L2hlYWQ+CiA8Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+CiAgICAgPHA+VGVzdGluZyB0aGF0IENTU1N0eWxlRGVjbGFyYXRp
b24gdXBkYXRlIGltbWVkaWF0ZWx5IGFmdGVyIG1vZGlmeWluZyBpdHMgcHJvcGVydGllcyB3aGVu
IGl0IGlzIG5vdCBsb2NrZWQuPC9wPgotCi0gICAgPHN0eWxlPgotICAgIC5ydWxlLWEgewotICAg
ICAgICBmb250LXNpemU6IDE0cHg7Ci0gICAgICAgIGNvbG9yOiAjMzMzOwotCi0gICAgICAgIG1h
cmdpbi1sZWZ0OiAwOwotICAgICAgICBtYXJnaW4tdG9wOiAxZW07Ci0gICAgfQotICAgIC5ydWxl
LWIge2ZvbnQtc2l6ZTogMTJweDsgY29sb3I6IGFudGlxdWV3aGl0ZX0KLSAgICAucnVsZS1jIHsK
LSAgICAgICAgLyogcGFkZGluZy1sZWZ0OiAyZW07ICovCi0gICAgICAgIC8qIHBhZGRpbmctcmln
aHQ6IDBweDsgKi8KLSAgICB9Ci0gICAgLnJ1bGUtZCB7Lypmb250LXNpemU6IDEzcHg7Ki8vKmJv
cmRlcjogMnB4IHNvbGlkIGJyb3duKi99Ci0gICAgPC9zdHlsZT4KICAgICA8ZGl2IGlkPSJ4IiBj
bGFzcz0idGVzdC1ub2RlIHJ1bGUtYSBydWxlLWIgcnVsZS1jIHJ1bGUtZCIgc3R5bGU9IndpZHRo
OiAxMDBweCI+PC9kaXY+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1pbmxpbmUtc3R5bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktaW5saW5lLXN0eWxlLWV4cGVjdGVkLnR4dAppbmRl
eCAzOTdjYTY2MzA1ZjcuLjQxMjM1ZWZiMTg5YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2Nzcy9tb2RpZnktaW5saW5lLXN0eWxlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1pbmxpbmUtc3R5bGUtZXhwZWN0ZWQudHh0CkBAIC03
LDEyICs3LDEyIEBAIENTU1Byb3BlcnR5IGNoYW5nZWQgdG8gImZvbnQ6IDEycHggbm9ybWFsIHNh
bnMtc2VyaWYhaW1wb3J0YW50OyIuCiBmb250OiAxMnB4IG5vcm1hbCBzYW5zLXNlcmlmIWltcG9y
dGFudDsKIAogQ1NTUHJvcGVydHkgY2hhbmdlZCB0byAiY29sb3I6IHJlZDsiLgotZm9udDogMTJw
eCBub3JtYWwgc2Fucy1zZXJpZiFpbXBvcnRhbnQ7Y29sb3I6IHJlZDsKK2ZvbnQ6IDEycHggbm9y
bWFsIHNhbnMtc2VyaWYhaW1wb3J0YW50OyBjb2xvcjogcmVkOwogCiBDU1NQcm9wZXJ0eSBjaGFu
Z2VkIHRvICJmb250OiAxMnB4IHNhbnMtc2VyaWY7Ii4KLWZvbnQ6IDEycHggc2Fucy1zZXJpZjtj
b2xvcjogcmVkOworZm9udDogMTJweCBzYW5zLXNlcmlmOyBjb2xvcjogcmVkOwogCiBDU1NQcm9w
ZXJ0eSBjaGFuZ2VkIHRvICJjb2xvcjogaW52YWxpZF9jMDEwcjsiLgotZm9udDogMTJweCBzYW5z
LXNlcmlmO2NvbG9yOiBpbnZhbGlkX2MwMTByOworZm9udDogMTJweCBzYW5zLXNlcmlmOyBjb2xv
cjogaW52YWxpZF9jMDEwcjsKIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y3NzL3Jlc291cmNlcy9tb2RpZnktY3NzLXByb3BlcnR5LmNzcyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jc3MvcmVzb3VyY2VzL21vZGlmeS1jc3MtcHJvcGVydHkuY3NzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNTcwNTQ5ZmVlY2NmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9yZXNvdXJjZXMvbW9kaWZ5LWNzcy1wcm9wZXJ0
eS5jc3MKQEAgLTAsMCArMSwxNSBAQAorLyogQSBjb21tZW50LiAqLworCisucnVsZS1hIHsKKyAg
ICBmb250LXNpemU6IDE0cHg7CisgICAgY29sb3I6ICMzMzM7CisKKyAgICBtYXJnaW4tbGVmdDog
MDsKKyAgICBtYXJnaW4tdG9wOiAxZW07Cit9CisucnVsZS1iIHtmb250LXNpemU6IDEycHg7IGNv
bG9yOiBhbnRpcXVld2hpdGV9CisucnVsZS1jIHsKKyAgICAvKiBwYWRkaW5nLWxlZnQ6IDJlbTsg
Ki8KKyAgICAvKiBwYWRkaW5nLXJpZ2h0OiAwcHg7ICovCit9CisucnVsZS1kIHsvKmZvbnQtc2l6
ZTogMTNweDsqLy8qYm9yZGVyOiAycHggc29saWQgYnJvd24qL30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdl
TG9nCmluZGV4IDgxY2MxZDcyZmIzNy4uMjg2MTZhZjYxMmEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAyMS0wNy0yOCAgTmlraXRhIFZhc2lseWV2ICA8bnZh
c2lseWV2QGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBTdHlsZXM6IGZvcm1h
dCBzdHlsZSBkZWNsYXJhdGlvbnMgYWZ0ZXIgZWRpdGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4ODM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8zNTE4NTA2MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbmRlbnQgQ1NTIHByb3BlcnRpZXMgd2l0aCBzcGFjZXMvdGFicyBzZXQgaW4gV2ViIElu
c3BlY3RvciBzZXR0aW5ncy4gSW5jcmVzZSBpbmRlbnRhdGlvbiBsZXZlbCB3aGVuIENTUyBydWxl
cyBhcmUKKyAgICAgICAgaW5zaWRlIG9mIGF0LXJ1bGVzIChlLmcuIEBtZWRpYSwgQGtleWZyYW1l
cywgQHN1cHBvcnRzKS4KKworICAgICAgICBEb24ndCBpbmRlbnQgQ1NTIHByb3BlcnRpZXMgaW4g
c3R5bGUgYXR0cmlidXRlcy4gS2VlcCB0aGVtIG9uIHRoZSBzaW5nbGUgbGluZSwgc2VwYXJhdGVk
IGJ5IGEgc3BhY2UgY2hhcmFjdGVyOgorCisgICAgICAgICAgICBzdHlsZT0iZm9udC1zaXplOiAx
MnB4OyBjb2xvcjogYmxhY2s7IgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NT
UHJvcGVydHkuanM6CisgICAgICAgIChXSS5DU1NQcm9wZXJ0eS5wcm90b3R5cGUuc2V0IHRleHQp
OgorICAgICAgICBJbnRyb2R1Y2UgYF9pc1RleHRQZW5kaW5nU2F2ZWAgZmxhZy4gSXQncyBuZWVk
ZWQgd2hlbiBzYXZpbmcgcGFzdGVkIHRleHQsIGFuZCBzYXZpbmcgY29tbWVudGVkIG91dCBvciB1
bmNvbW1lbnRlZCBDU1MgcHJvcGVydGllcy4KKworICAgICAgICAoV0kuQ1NTUHJvcGVydHkucHJv
dG90eXBlLmdldCBmb3JtYXR0ZWRUZXh0KToKKworICAgICAgICAoV0kuQ1NTUHJvcGVydHkucHJv
dG90eXBlLnJlcGxhY2VXaXRoVGV4dCk6IERlbGV0ZWQuCisgICAgICAgIFRoaXMgaXMgcmVkdW5k
YW50IC0gc2V0dGluZyBgdGV4dGAgd29ya3MgdGhlIHNhbWUuCisKKyAgICAgICAgKFdJLkNTU1By
b3BlcnR5LnByb3RvdHlwZS5fdXBkYXRlU3R5bGVUZXh0KToKKyAgICAgICAgKFdJLkNTU1Byb3Bl
cnR5LnByb3RvdHlwZS5fdXBkYXRlT3duZXJTdHlsZVRleHQpOgorICAgICAgICAoV0kuQ1NTUHJv
cGVydHkucHJvdG90eXBlLl9wcmVwZW5kU2VtaWNvbG9uSWZOZWVkZWQpOiBEZWxldGVkLgorICAg
ICAgICBHcmVhdGx5IHNpbXBsaWZ5IHRoZSBsb2dpYyBub3cgdGhhdCB3ZSBzYXZlIGZvcm1hdHRl
ZCB0ZXh0IGFuZCBkb24ndCBtb2RpZnkgc3R5bGVUZXh0LgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9Nb2RlbHMvQ1NTU3R5bGVEZWNsYXJhdGlvbi5qczoKKyAgICAgICAgKFdJLkNTU1N0eWxl
RGVjbGFyYXRpb24ucHJvdG90eXBlLnJlbW92ZVByb3BlcnR5KToKKyAgICAgICAgUmVtb2RlIHVu
bmVjZXNzYXJ5IGNvZGUgdGhhdCBtb2RpZmllcyBgX3N0eWxlU2hlZXRUZXh0UmFuZ2VgLiBUaGUg
YmFja2VuZCBzZW5kcyBuZXcgYF9zdHlsZVNoZWV0VGV4dFJhbmdlYCBkYXRhCisgICAgICAgIHVw
b24gYSBjaGFuZ2UuCisKKyAgICAgICAgKFdJLkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBl
LmdlbmVyYXRlRm9ybWF0dGVkVGV4dCk6IFJlbmFtZWQgZnJvbSAnZ2VuZXJhdGVDU1NSdWxlU3Ry
aW5nJy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHls
ZURlY2xhcmF0aW9uU2VjdGlvbi5qczoKKyAgICAgICAgKFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVE
ZWNsYXJhdGlvblNlY3Rpb24ucHJvdG90eXBlLl9wb3B1bGF0ZUljb25FbGVtZW50Q29udGV4dE1l
bnUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRTdHlsZVByb3Bl
cnR5LmpzOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LnByb3RvdHlwZS5y
ZW1vdmUpOgorCiAyMDIxLTA3LTE0ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4K
IAogICAgICAgICBJbXBsZW1lbnQgQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0IGFuZCBBcnJheS5w
cm90b3R5cGUuZmluZExhc3RJbmRleApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5LmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5LmpzCmluZGV4IDk4MmZlOTVhZTQ3
NC4uZjlhZjU4MjA2ZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvQ1NTUHJvcGVydHkuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5LmpzCkBAIC0zNCw2ICszNCw3IEBAIFdJ
LkNTU1Byb3BlcnR5ID0gY2xhc3MgQ1NTUHJvcGVydHkgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAg
ICAgdGhpcy5fb3ZlcnJpZGluZ1Byb3BlcnR5ID0gbnVsbDsKICAgICAgICAgdGhpcy5faW5pdGlh
bFN0YXRlID0gbnVsbDsKICAgICAgICAgdGhpcy5fbW9kaWZpZWQgPSBmYWxzZTsKKyAgICAgICAg
dGhpcy5faXNVcGRhdGluZ1RleHQgPSBmYWxzZTsKIAogICAgICAgICB0aGlzLnVwZGF0ZSh0ZXh0
LCBuYW1lLCB2YWx1ZSwgcHJpb3JpdHksIGVuYWJsZWQsIG92ZXJyaWRkZW4sIGltcGxpY2l0LCBh
bm9ueW1vdXMsIHZhbGlkLCBzdHlsZVNoZWV0VGV4dFJhbmdlLCB0cnVlKTsKICAgICB9CkBAIC0x
ODQsMTMgKzE4NSw2IEBAIFdJLkNTU1Byb3BlcnR5ID0gY2xhc3MgQ1NTUHJvcGVydHkgZXh0ZW5k
cyBXSS5PYmplY3QKICAgICAgICAgdGhpcy5fdXBkYXRlU3R5bGVUZXh0KGZvcmNlUmVtb3ZlKTsK
ICAgICB9CiAKLSAgICByZXBsYWNlV2l0aFRleHQodGV4dCkKLSAgICB7Ci0gICAgICAgIHRoaXMu
X21hcmtNb2RpZmllZCgpOwotCi0gICAgICAgIHRoaXMuX3VwZGF0ZU93bmVyU3R5bGVUZXh0KHRo
aXMuX3RleHQsIHRleHQsIHRydWUpOwotICAgIH0KLQogICAgIGNvbW1lbnRPdXQoZGlzYWJsZWQp
CiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLmVkaXRhYmxlKTsKQEAgLTIxMywx
NiArMjA3LDIyIEBAIFdJLkNTU1Byb3BlcnR5ID0gY2xhc3MgQ1NTUHJvcGVydHkgZXh0ZW5kcyBX
SS5PYmplY3QKIAogICAgIHNldCB0ZXh0KG5ld1RleHQpCiAgICAgeworICAgICAgICBuZXdUZXh0
ID0gbmV3VGV4dC50cmltKCk7CiAgICAgICAgIGlmICh0aGlzLl90ZXh0ID09PSBuZXdUZXh0KQog
ICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHRoaXMuX21hcmtNb2RpZmllZCgpOwotICAg
ICAgICB0aGlzLl91cGRhdGVPd25lclN0eWxlVGV4dCh0aGlzLl90ZXh0LCBuZXdUZXh0KTsKICAg
ICAgICAgdGhpcy5fdGV4dCA9IG5ld1RleHQ7CisgICAgICAgIHRoaXMuX2lzVXBkYXRpbmdUZXh0
ID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fdXBkYXRlT3duZXJTdHlsZVRleHQoKTsKKyAgICAgICAg
dGhpcy5faXNVcGRhdGluZ1RleHQgPSBmYWxzZTsKICAgICB9CiAKICAgICBnZXQgZm9ybWF0dGVk
VGV4dCgpCiAgICAgeworICAgICAgICBpZiAodGhpcy5faXNVcGRhdGluZ1RleHQpCisgICAgICAg
ICAgICByZXR1cm4gdGhpcy5fdGV4dDsKKwogICAgICAgICBpZiAoIXRoaXMuX25hbWUpCiAgICAg
ICAgICAgICByZXR1cm4gIiI7CiAKQEAgLTUwMSw3NCArNTAxLDI0IEBAIFdJLkNTU1Byb3BlcnR5
ID0gY2xhc3MgQ1NTUHJvcGVydHkgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgIHRleHQg
PSB0aGlzLl9uYW1lICsgIjogIiArIHZhbHVlICsgIjsiOwogICAgICAgICB9CiAKLSAgICAgICAg
bGV0IG9sZFRleHQgPSB0aGlzLl90ZXh0OwogICAgICAgICB0aGlzLl90ZXh0ID0gdGV4dDsKLSAg
ICAgICAgdGhpcy5fdXBkYXRlT3duZXJTdHlsZVRleHQob2xkVGV4dCwgdGhpcy5fdGV4dCwgZm9y
Y2VSZW1vdmUpOworCisgICAgICAgIGlmIChmb3JjZVJlbW92ZSkKKyAgICAgICAgICAgIHRoaXMu
X293bmVyU3R5bGUucmVtb3ZlUHJvcGVydHkodGhpcyk7CisKKyAgICAgICAgdGhpcy5fdXBkYXRl
T3duZXJTdHlsZVRleHQoKTsKICAgICB9CiAKLSAgICBfdXBkYXRlT3duZXJTdHlsZVRleHQob2xk
VGV4dCwgbmV3VGV4dCwgZm9yY2VSZW1vdmUgPSBmYWxzZSkKKyAgICBfdXBkYXRlT3duZXJTdHls
ZVRleHQoKQogICAgIHsKLSAgICAgICAgaWYgKG9sZFRleHQgPT09IG5ld1RleHQpIHsKLSAgICAg
ICAgICAgIGlmIChmb3JjZVJlbW92ZSkgewotICAgICAgICAgICAgICAgIGNvbnN0IGxpbmVEZWx0
YSA9IDA7Ci0gICAgICAgICAgICAgICAgY29uc3QgY29sdW1uRGVsdGEgPSAwOwotICAgICAgICAg
ICAgICAgIHRoaXMuX293bmVyU3R5bGUuc2hpZnRQcm9wZXJ0aWVzQWZ0ZXIodGhpcywgbGluZURl
bHRhLCBjb2x1bW5EZWx0YSwgZm9yY2VSZW1vdmUpOwotICAgICAgICAgICAgICAgIHRoaXMuX293
bmVyU3R5bGUudXBkYXRlUHJvcGVydGllc01vZGlmaWVkU3RhdGUoKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KHRoaXMuX293bmVyU3R5bGUpOwogICAgICAgICBpZiAoIXRoaXMuX293bmVyU3R5bGUpCiAgICAg
ICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdGhpcy5fcHJlcGVuZFNlbWljb2xvbklmTmVlZGVk
KCk7Ci0KLSAgICAgICAgbGV0IHN0eWxlVGV4dCA9IHRoaXMuX293bmVyU3R5bGUudGV4dCB8fCAi
IjsKLQotICAgICAgICAvLyBfc3R5bGVTaGVldFRleHRSYW5nZSBpcyB0aGUgcG9zaXRpb24gb2Yg
dGhlIHByb3BlcnR5IHdpdGhpbiB0aGUgc3R5bGVzaGVldC4KLSAgICAgICAgLy8gcmFuZ2UgaXMg
dGhlIHBvc2l0aW9uIG9mIHRoZSBwcm9wZXJ0eSB3aXRoaW4gdGhlIHJ1bGUuCi0gICAgICAgIGxl
dCByYW5nZSA9IHRoaXMuX3N0eWxlU2hlZXRUZXh0UmFuZ2UucmVsYXRpdmVUbyh0aGlzLl9vd25l
clN0eWxlLnN0eWxlU2hlZXRUZXh0UmFuZ2Uuc3RhcnRMaW5lLCB0aGlzLl9vd25lclN0eWxlLnN0
eWxlU2hlZXRUZXh0UmFuZ2Uuc3RhcnRDb2x1bW4pOwotCi0gICAgICAgIC8vIEFwcGVuZCBhIGxp
bmUgYnJlYWsgdG8gY291bnQgdGhlIGxhc3QgbGluZSBvZiBzdHlsZVRleHQgdG93YXJkcyBlbmRP
ZmZzZXQuCi0gICAgICAgIHJhbmdlLnJlc29sdmVPZmZzZXRzKHN0eWxlVGV4dCArICJcbiIpOwot
Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KG9sZFRleHQgPT09IHN0eWxlVGV4dC5zbGljZShyYW5n
ZS5zdGFydE9mZnNldCwgcmFuZ2UuZW5kT2Zmc2V0KSwgIl9zdHlsZVNoZWV0VGV4dFJhbmdlIGRh
dGEgaXMgaW52YWxpZC4iKTsKLQotICAgICAgICBpZiAoV0kuc2V0dGluZ3MuZGVidWdFbmFibGVT
dHlsZUVkaXRpbmdEZWJ1Z01vZGUudmFsdWUpIHsKLSAgICAgICAgICAgIGxldCBwcmVmaXggPSBz
dHlsZVRleHQuc2xpY2UoMCwgcmFuZ2Uuc3RhcnRPZmZzZXQpOwotICAgICAgICAgICAgbGV0IHBv
c3RmaXggPSBzdHlsZVRleHQuc2xpY2UocmFuZ2UuZW5kT2Zmc2V0KTsKLSAgICAgICAgICAgIGNv
bnNvbGUuaW5mbyhgJHtwcmVmaXh9JWMke29sZFRleHR9JWMke25ld1RleHR9JWMke3Bvc3RmaXh9
YCwgYGJhY2tncm91bmQ6IGhzbCgzNTYsIDEwMCUsIDkwJSk7IGNvbG9yOiBibGFja2AsIGBiYWNr
Z3JvdW5kOiBoc2woMTAwLCAxMDAlLCA5MSUpOyBjb2xvcjogYmxhY2tgLCBgYmFja2dyb3VuZDog
dHJhbnNwYXJlbnRgKTsKLSAgICAgICAgfQotCi0gICAgICAgIGxldCBuZXdTdHlsZVRleHQgPSBz
dHlsZVRleHQuc2xpY2UoMCwgcmFuZ2Uuc3RhcnRPZmZzZXQpICsgbmV3VGV4dCArIHN0eWxlVGV4
dC5zbGljZShyYW5nZS5lbmRPZmZzZXQpOwotCi0gICAgICAgIGxldCBsaW5lRGVsdGEgPSBuZXdU
ZXh0LmxpbmVDb3VudCAtIG9sZFRleHQubGluZUNvdW50OwotICAgICAgICBsZXQgY29sdW1uRGVs
dGEgPSBuZXdUZXh0Lmxhc3RMaW5lLmxlbmd0aCAtIG9sZFRleHQubGFzdExpbmUubGVuZ3RoOwot
ICAgICAgICB0aGlzLl9zdHlsZVNoZWV0VGV4dFJhbmdlID0gdGhpcy5fc3R5bGVTaGVldFRleHRS
YW5nZS5jbG9uZUFuZE1vZGlmeSgwLCAwLCBsaW5lRGVsdGEsIGNvbHVtbkRlbHRhKTsKLQotICAg
ICAgICB0aGlzLl9vd25lclN0eWxlLnRleHQgPSBuZXdTdHlsZVRleHQ7Ci0KLSAgICAgICAgbGV0
IHByb3BlcnR5V2FzUmVtb3ZlZCA9ICFuZXdUZXh0OwotICAgICAgICB0aGlzLl9vd25lclN0eWxl
LnNoaWZ0UHJvcGVydGllc0FmdGVyKHRoaXMsIGxpbmVEZWx0YSwgY29sdW1uRGVsdGEsIHByb3Bl
cnR5V2FzUmVtb3ZlZCk7CisgICAgICAgIHRoaXMuX293bmVyU3R5bGUudGV4dCA9IHRoaXMuX293
bmVyU3R5bGUuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0KHttdWx0aWxpbmU6IHRoaXMuX293bmVyU3R5
bGUudHlwZSA9PT0gV0kuQ1NTU3R5bGVEZWNsYXJhdGlvbi5UeXBlLlJ1bGV9KTsKICAgICAgICAg
dGhpcy5fb3duZXJTdHlsZS51cGRhdGVQcm9wZXJ0aWVzTW9kaWZpZWRTdGF0ZSgpOwogICAgIH0K
IAotICAgIF9wcmVwZW5kU2VtaWNvbG9uSWZOZWVkZWQoKQotICAgIHsKLSAgICAgICAgZm9yIChs
ZXQgaSA9IHRoaXMuaW5kZXggLSAxOyBpID49IDA7IC0taSkgewotICAgICAgICAgICAgbGV0IHBy
b3BlcnR5ID0gdGhpcy5fb3duZXJTdHlsZS5wcm9wZXJ0aWVzW2ldOwotICAgICAgICAgICAgaWYg
KCFwcm9wZXJ0eS5lbmFibGVkKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAg
ICAgICBsZXQgbWF0Y2ggPSBwcm9wZXJ0eS50ZXh0Lm1hdGNoKC9bXjtcc10oXHMqKSQvKTsKLSAg
ICAgICAgICAgIGlmIChtYXRjaCkKLSAgICAgICAgICAgICAgICBwcm9wZXJ0eS50ZXh0ID0gcHJv
cGVydHkudGV4dC50cmltUmlnaHQoKSArICI7IiArIG1hdGNoWzFdOwotCi0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgfQotICAgIH0KLQogICAgIF9tYXJrTW9kaWZpZWQoKQogICAgIHsKICAg
ICAgICAgaWYgKHRoaXMuX293bmVyU3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTU3R5bGVEZWNsYXJhdGlvbi5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NTdHlsZURlY2xhcmF0aW9u
LmpzCmluZGV4IDcwOTEwMWY0MmE4Ny4uZWZiZjRhYWYxYjA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTU3R5bGVEZWNsYXJhdGlvbi5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTU3R5
bGVEZWNsYXJhdGlvbi5qcwpAQCAtNDQ1LDMyICs0NDUsMTQgQEAgV0kuQ1NTU3R5bGVEZWNsYXJh
dGlvbiA9IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb24gZXh0ZW5kcyBXSS5PYmplY3QKICAgICAg
ICAgV0kuY3NzTWFuYWdlci5hZGRNb2RpZmllZFN0eWxlKHRoaXMpOwogICAgIH0KIAotICAgIHNo
aWZ0UHJvcGVydGllc0FmdGVyKGNzc1Byb3BlcnR5LCBsaW5lRGVsdGEsIGNvbHVtbkRlbHRhLCBw
cm9wZXJ0eVdhc1JlbW92ZWQpCisgICAgcmVtb3ZlUHJvcGVydHkoY3NzUHJvcGVydHkpCiAgICAg
ewogICAgICAgICAvLyBjc3NQcm9wZXJ0eS5pbmRleCBjb3VsZCBiZSBzZXQgdG8gTmFOIGJ5IFdJ
LkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlLnVwZGF0ZS4KICAgICAgICAgbGV0IHJlYWxJ
bmRleCA9IHRoaXMuX3Byb3BlcnRpZXMuaW5kZXhPZihjc3NQcm9wZXJ0eSk7CiAgICAgICAgIGlm
IChyZWFsSW5kZXggPT09IC0xKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGxldCBl
bmRMaW5lID0gY3NzUHJvcGVydHkuc3R5bGVTaGVldFRleHRSYW5nZS5lbmRMaW5lOwotCi0gICAg
ICAgIGZvciAobGV0IGkgPSByZWFsSW5kZXggKyAxOyBpIDwgdGhpcy5fcHJvcGVydGllcy5sZW5n
dGg7IGkrKykgewotICAgICAgICAgICAgbGV0IHByb3BlcnR5ID0gdGhpcy5fcHJvcGVydGllc1tp
XTsKLQotICAgICAgICAgICAgaWYgKHByb3BlcnR5Ll9zdHlsZVNoZWV0VGV4dFJhbmdlKSB7Ci0g
ICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5LnN0eWxlU2hlZXRUZXh0UmFuZ2Uuc3RhcnRMaW5l
ID09PSBlbmRMaW5lKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIE9ubHkgdXBkYXRlIGNvbHVt
biBkYXRhIGlmIGl0J3Mgb24gdGhlIHNhbWUgbGluZS4KLSAgICAgICAgICAgICAgICAgICAgcHJv
cGVydHkuX3N0eWxlU2hlZXRUZXh0UmFuZ2UgPSBwcm9wZXJ0eS5fc3R5bGVTaGVldFRleHRSYW5n
ZS5jbG9uZUFuZE1vZGlmeShsaW5lRGVsdGEsIGNvbHVtbkRlbHRhLCBsaW5lRGVsdGEsIGNvbHVt
bkRlbHRhKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgcHJv
cGVydHkuX3N0eWxlU2hlZXRUZXh0UmFuZ2UgPSBwcm9wZXJ0eS5fc3R5bGVTaGVldFRleHRSYW5n
ZS5jbG9uZUFuZE1vZGlmeShsaW5lRGVsdGEsIDAsIGxpbmVEZWx0YSwgMCk7Ci0gICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgIGlmIChwcm9wZXJ0eVdhc1JlbW92ZWQgJiYgIWlzTmFOKHByb3Bl
cnR5Ll9pbmRleCkpCi0gICAgICAgICAgICAgICAgcHJvcGVydHkuX2luZGV4LS07Ci0gICAgICAg
IH0KLQotICAgICAgICBpZiAocHJvcGVydHlXYXNSZW1vdmVkKQotICAgICAgICAgICAgdGhpcy5f
cHJvcGVydGllcy5zcGxpY2UocmVhbEluZGV4LCAxKTsKKyAgICAgICAgdGhpcy5fcHJvcGVydGll
cy5zcGxpY2UocmVhbEluZGV4LCAxKTsKIAogICAgICAgICAvLyBJbnZhbGlkYXRlIGNhY2hlZCBw
cm9wZXJ0aWVzLgogICAgICAgICB0aGlzLl9lbmFibGVkUHJvcGVydGllcyA9IG51bGw7CkBAIC01
MDcsMjQgKzQ4OSw1OSBAQCBXSS5DU1NTdHlsZURlY2xhcmF0aW9uID0gY2xhc3MgQ1NTU3R5bGVE
ZWNsYXJhdGlvbiBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgV0kuY3NzTWFuYWdlci5y
ZW1vdmVNb2RpZmllZFN0eWxlKHRoaXMpOwogICAgIH0KIAotICAgIGdlbmVyYXRlQ1NTUnVsZVN0
cmluZygpCisgICAgZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0KG9wdGlvbnMgPSB7fSkKICAgICB7CiAg
ICAgICAgIGxldCBpbmRlbnRTdHJpbmcgPSBXSS5pbmRlbnRTdHJpbmcoKTsKICAgICAgICAgbGV0
IHN0eWxlVGV4dCA9ICIiOwogICAgICAgICBsZXQgZ3JvdXBpbmdzID0gdGhpcy5ncm91cGluZ3Mu
ZmlsdGVyKChncm91cGluZykgPT4gZ3JvdXBpbmcudGV4dCAhPT0gImFsbCIpOwogICAgICAgICBs
ZXQgZ3JvdXBpbmdzQ291bnQgPSBncm91cGluZ3MubGVuZ3RoOwotICAgICAgICBmb3IgKGxldCBp
ID0gZ3JvdXBpbmdzQ291bnQgLSAxOyBpID49IDA7IC0taSkKLSAgICAgICAgICAgIHN0eWxlVGV4
dCArPSBpbmRlbnRTdHJpbmcucmVwZWF0KGdyb3VwaW5nc0NvdW50IC0gaSAtIDEpICsgZ3JvdXBp
bmdzW2ldLnByZWZpeCArICIgIiArIGdyb3VwaW5nc1tpXS50ZXh0ICsgIiB7XG4iOwogCi0gICAg
ICAgIHN0eWxlVGV4dCArPSBpbmRlbnRTdHJpbmcucmVwZWF0KGdyb3VwaW5nc0NvdW50KSArIHRo
aXMuc2VsZWN0b3JUZXh0ICsgIiB7XG4iOworICAgICAgICBpZiAob3B0aW9ucy5pbmNsdWRlR3Jv
dXBpbmdzQW5kU2VsZWN0b3JzKSB7CisgICAgICAgICAgICBmb3IgKGxldCBpID0gZ3JvdXBpbmdz
Q291bnQgLSAxOyBpID49IDA7IC0taSkgeworICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLm11
bHRpbGluZSkKKyAgICAgICAgICAgICAgICAgICAgc3R5bGVUZXh0ICs9IGluZGVudFN0cmluZy5y
ZXBlYXQoZ3JvdXBpbmdzQ291bnQgLSBpIC0gMSk7CisKKyAgICAgICAgICAgICAgICBzdHlsZVRl
eHQgKz0gZ3JvdXBpbmdzW2ldLnByZWZpeCArICIgIiArIGdyb3VwaW5nc1tpXS50ZXh0ICsgIiB7
IjsKKworICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLm11bHRpbGluZSkKKyAgICAgICAgICAg
ICAgICAgICAgc3R5bGVUZXh0ICs9ICJcbiI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGlmIChvcHRpb25zLm11bHRpbGluZSkKKyAgICAgICAgICAgICAgICBzdHlsZVRleHQgKz0gaW5k
ZW50U3RyaW5nLnJlcGVhdChncm91cGluZ3NDb3VudCk7CisKKyAgICAgICAgICAgIHN0eWxlVGV4
dCArPSB0aGlzLnNlbGVjdG9yVGV4dCArICIgeyI7CisgICAgICAgIH0KIAotICAgICAgICBmb3Ig
KGxldCBwcm9wZXJ0eSBvZiAodGhpcy5fc3R5bGVTaGVldFRleHRSYW5nZSA/IHRoaXMudmlzaWJs
ZVByb3BlcnRpZXMgOiB0aGlzLl9wcm9wZXJ0aWVzKSkKLSAgICAgICAgICAgIHN0eWxlVGV4dCAr
PSBpbmRlbnRTdHJpbmcucmVwZWF0KGdyb3VwaW5nc0NvdW50ICsgMSkgKyBwcm9wZXJ0eS5mb3Jt
YXR0ZWRUZXh0ICsgIlxuIjsKKyAgICAgICAgbGV0IHByb3BlcnRpZXMgPSB0aGlzLl9zdHlsZVNo
ZWV0VGV4dFJhbmdlID8gdGhpcy52aXNpYmxlUHJvcGVydGllcyA6IHRoaXMuX3Byb3BlcnRpZXM7
CisgICAgICAgIGlmIChwcm9wZXJ0aWVzLmxlbmd0aCkgeworICAgICAgICAgICAgaWYgKG9wdGlv
bnMubXVsdGlsaW5lKSB7CisgICAgICAgICAgICAgICAgbGV0IHByb3BlcnR5SW5kZW50ID0gaW5k
ZW50U3RyaW5nLnJlcGVhdChncm91cGluZ3NDb3VudCArIDEpOworICAgICAgICAgICAgICAgIGZv
ciAobGV0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpCisgICAgICAgICAgICAgICAgICAgIHN0eWxl
VGV4dCArPSAiXG4iICsgcHJvcGVydHlJbmRlbnQgKyBwcm9wZXJ0eS5mb3JtYXR0ZWRUZXh0Owor
CisgICAgICAgICAgICAgICAgc3R5bGVUZXh0ICs9ICJcbiI7CisgICAgICAgICAgICAgICAgaWYg
KCFvcHRpb25zLmluY2x1ZGVHcm91cGluZ3NBbmRTZWxlY3RvcnMpIHsKKyAgICAgICAgICAgICAg
ICAgICAgLy8gSW5kZW50IHRoZSBjbG9zaW5nICJ9IiBmb3IgbmVzdGVkIHJ1bGVzLgorICAgICAg
ICAgICAgICAgICAgICBzdHlsZVRleHQgKz0gaW5kZW50U3RyaW5nLnJlcGVhdChncm91cGluZ3ND
b3VudCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICAgICAgc3R5bGVUZXh0ICs9IHByb3BlcnRpZXMubWFwKChwcm9wZXJ0eSkgPT4gcHJvcGVydHku
Zm9ybWF0dGVkVGV4dCkuam9pbigiICIpOworICAgICAgICB9CiAKLSAgICAgICAgZm9yIChsZXQg
aSA9IGdyb3VwaW5nc0NvdW50OyBpID4gMDsgLS1pKQotICAgICAgICAgICAgc3R5bGVUZXh0ICs9
IGluZGVudFN0cmluZy5yZXBlYXQoaSkgKyAifVxuIjsKKyAgICAgICAgaWYgKG9wdGlvbnMuaW5j
bHVkZUdyb3VwaW5nc0FuZFNlbGVjdG9ycykgeworICAgICAgICAgICAgZm9yIChsZXQgaSA9IGdy
b3VwaW5nc0NvdW50OyBpID4gMDsgLS1pKSB7CisgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMu
bXVsdGlsaW5lKQorICAgICAgICAgICAgICAgICAgICBzdHlsZVRleHQgKz0gaW5kZW50U3RyaW5n
LnJlcGVhdChpKTsKIAotICAgICAgICBzdHlsZVRleHQgKz0gIn0iOworICAgICAgICAgICAgICAg
IHN0eWxlVGV4dCArPSAifSI7CisKKyAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5tdWx0aWxp
bmUpCisgICAgICAgICAgICAgICAgICAgIHN0eWxlVGV4dCArPSAiXG4iOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBzdHlsZVRleHQgKz0gIn0iOworICAgICAgICB9CiAKICAgICAgICAg
cmV0dXJuIHN0eWxlVGV4dDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25TZWN0
aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFk
c2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qcwppbmRleCBiYzU1Y2QyNTlkMjAuLjRm
OTZmM2EzMDY4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldENTU1N0
eWxlRGVjbGFyYXRpb25TZWN0aW9uLmpzCkBAIC00ODEsNyArNDgxLDcgQEAgV0kuU3ByZWFkc2hl
ZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbiA9IGNsYXNzIFNwcmVhZHNoZWV0Q1NTU3R5bGVE
ZWNsYXJhdGlvblMKICAgICBfcG9wdWxhdGVJY29uRWxlbWVudENvbnRleHRNZW51KGNvbnRleHRN
ZW51KQogICAgIHsKICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygi
Q29weSBSdWxlIiksICgpID0+IHsKLSAgICAgICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5j
b3B5VGV4dCh0aGlzLl9zdHlsZS5nZW5lcmF0ZUNTU1J1bGVTdHJpbmcoKSk7CisgICAgICAgICAg
ICBJbnNwZWN0b3JGcm9udGVuZEhvc3QuY29weVRleHQodGhpcy5fc3R5bGUuZ2VuZXJhdGVGb3Jt
YXR0ZWRUZXh0KHtpbmNsdWRlR3JvdXBpbmdzQW5kU2VsZWN0b3JzOiB0cnVlLCBtdWx0aWxpbmU6
IHRydWV9KSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGlmICh0aGlzLl9zdHlsZS5lZGl0YWJs
ZSAmJiB0aGlzLl9zdHlsZS5wcm9wZXJ0aWVzLmxlbmd0aCkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRTdHlsZVByb3Bl
cnR5LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFk
c2hlZXRTdHlsZVByb3BlcnR5LmpzCmluZGV4IDIzNzUwM2I4OGQzYy4uZTEyMjY5YWQ2Nzk3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJl
YWRzaGVldFN0eWxlUHJvcGVydHkuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LmpzCkBAIC0xNDMsNyArMTQz
LDcgQEAgV0kuU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5ID0gY2xhc3MgU3ByZWFkc2hlZXRTdHls
ZVByb3BlcnR5IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmUo
KTsKIAogICAgICAgICBpZiAocmVwbGFjZW1lbnQpCi0gICAgICAgICAgICB0aGlzLl9wcm9wZXJ0
eS5yZXBsYWNlV2l0aFRleHQocmVwbGFjZW1lbnQpOworICAgICAgICAgICAgdGhpcy5fcHJvcGVy
dHkudGV4dCA9IHJlcGxhY2VtZW50OwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB0aGlzLl9w
cm9wZXJ0eS5yZW1vdmUoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440369</attachid>
            <date>2021-10-06 08:09:15 -0700</date>
            <delta_ts>2021-10-07 09:43:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178835-20211006170913.patch</filename>
            <type>text/plain</type>
            <size>46215</size>
            <attacher name="Razvan Caliman">rcaliman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDgzMGQ4MTI5NWYxZDRmN2QzODQyN2M5Njk1Njky
Y2FmM2FmMzU4NjguLjk4M2Q1YzM2OTQ3ZTEwMDE5MzFjODI2MTBhOTA2ZTY0ZTY5NjBiZjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIxLTEwLTA2ICBOaWtp
dGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFN0eWxlczogZm9ybWF0IHN0eWxlIGRlY2xhcmF0aW9ucyBhZnRlciBlZGl0aW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg4MzUKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzM1MTg1MDYwPgorCisgICAgICAgIFJldmlld2VkIGJ5IERldmlu
IFJvdXNzby4KKworICAgICAgICBJbmRlbnQgQ1NTIHByb3BlcnRpZXMgd2l0aCBzcGFjZXMvdGFi
cyBzZXQgaW4gV2ViIEluc3BlY3RvciBzZXR0aW5ncy4gSW5jcmVzZSBpbmRlbnRhdGlvbiBsZXZl
bCB3aGVuIENTUyBydWxlcyBhcmUKKyAgICAgICAgaW5zaWRlIG9mIGF0LXJ1bGVzIChlLmcuIEBt
ZWRpYSwgQGtleWZyYW1lcywgQHN1cHBvcnRzKS4KKworICAgICAgICBEb24ndCBpbmRlbnQgQ1NT
IHByb3BlcnRpZXMgaW4gc3R5bGUgYXR0cmlidXRlcy4gS2VlcCB0aGVtIG9uIHRoZSBzaW5nbGUg
bGluZSwgc2VwYXJhdGVkIGJ5IGEgc3BhY2UgY2hhcmFjdGVyOgorCisgICAgICAgICAgICBzdHls
ZT0iZm9udC1zaXplOiAxMnB4OyBjb2xvcjogYmxhY2s7IgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9Nb2RlbHMvQ1NTUHJvcGVydHkuanM6CisgICAgICAgIChXSS5DU1NQcm9wZXJ0eS5wcm90
b3R5cGUuc2V0IHRleHQpOgorICAgICAgICBJbnRyb2R1Y2UgYF9pc1RleHRQZW5kaW5nU2F2ZWAg
ZmxhZy4gSXQncyBuZWVkZWQgd2hlbiBzYXZpbmcgcGFzdGVkIHRleHQsIGFuZCBzYXZpbmcgY29t
bWVudGVkIG91dCBvciB1bmNvbW1lbnRlZCBDU1MgcHJvcGVydGllcy4KKworICAgICAgICAoV0ku
Q1NTUHJvcGVydHkucHJvdG90eXBlLmdldCBmb3JtYXR0ZWRUZXh0KToKKworICAgICAgICAoV0ku
Q1NTUHJvcGVydHkucHJvdG90eXBlLnJlcGxhY2VXaXRoVGV4dCk6IERlbGV0ZWQuCisgICAgICAg
IFRoaXMgaXMgcmVkdW5kYW50IC0gc2V0dGluZyBgdGV4dGAgd29ya3MgdGhlIHNhbWUuCisKKyAg
ICAgICAgKFdJLkNTU1Byb3BlcnR5LnByb3RvdHlwZS5fdXBkYXRlU3R5bGVUZXh0KToKKyAgICAg
ICAgKFdJLkNTU1Byb3BlcnR5LnByb3RvdHlwZS5fdXBkYXRlT3duZXJTdHlsZVRleHQpOgorICAg
ICAgICAoV0kuQ1NTUHJvcGVydHkucHJvdG90eXBlLl9wcmVwZW5kU2VtaWNvbG9uSWZOZWVkZWQp
OiBEZWxldGVkLgorICAgICAgICBHcmVhdGx5IHNpbXBsaWZ5IHRoZSBsb2dpYyBub3cgdGhhdCB3
ZSBzYXZlIGZvcm1hdHRlZCB0ZXh0IGFuZCBkb24ndCBtb2RpZnkgc3R5bGVUZXh0LgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTU3R5bGVEZWNsYXJhdGlvbi5qczoKKyAgICAg
ICAgKFdJLkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlLnJlbW92ZVByb3BlcnR5KToKKyAg
ICAgICAgUmVtb2RlIHVubmVjZXNzYXJ5IGNvZGUgdGhhdCBtb2RpZmllcyBgX3N0eWxlU2hlZXRU
ZXh0UmFuZ2VgLiBUaGUgYmFja2VuZCBzZW5kcyBuZXcgYF9zdHlsZVNoZWV0VGV4dFJhbmdlYCBk
YXRhCisgICAgICAgIHVwb24gYSBjaGFuZ2UuCisKKyAgICAgICAgKFdJLkNTU1N0eWxlRGVjbGFy
YXRpb24ucHJvdG90eXBlLmdlbmVyYXRlRm9ybWF0dGVkVGV4dCk6IFJlbmFtZWQgZnJvbSAnZ2Vu
ZXJhdGVDU1NSdWxlU3RyaW5nJy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU3By
ZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qczoKKyAgICAgICAgKFdJLlNwcmVh
ZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24ucHJvdG90eXBlLl9wb3B1bGF0ZUljb25F
bGVtZW50Q29udGV4dE1lbnUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFk
c2hlZXRTdHlsZVByb3BlcnR5LmpzOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRTdHlsZVByb3Bl
cnR5LnByb3RvdHlwZS5yZW1vdmUpOgorCiAyMDIxLTEwLTA1ICBQYXRyaWNrIEFuZ2xlICA8cGFu
Z2xlQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBTaG93IGNvbG9yIHNwYWNl
IGZvciBjYW52YXNlcyBpbiB0aGUgR3JhcGhpY3MgdGFiIG9uIHRoZSBvdmVydmlldyBjYXJkcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NT
U1Byb3BlcnR5LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0NTU1Byb3BlcnR5LmpzCmluZGV4IDk4MmZlOTVhZTQ3NDMzMWYxMjY1NjQ2ODY3ZDMwNjE1ZjU3
NDdjMDcuLmY5YWY1ODIwNmVlNzA0YzhjMWU1MWNmY2IxZDllYWJjOGIyNzM3M2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NQcm9wZXJ0
eS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NT
UHJvcGVydHkuanMKQEAgLTM0LDYgKzM0LDcgQEAgV0kuQ1NTUHJvcGVydHkgPSBjbGFzcyBDU1NQ
cm9wZXJ0eSBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0aGlzLl9vdmVycmlkaW5nUHJvcGVy
dHkgPSBudWxsOwogICAgICAgICB0aGlzLl9pbml0aWFsU3RhdGUgPSBudWxsOwogICAgICAgICB0
aGlzLl9tb2RpZmllZCA9IGZhbHNlOworICAgICAgICB0aGlzLl9pc1VwZGF0aW5nVGV4dCA9IGZh
bHNlOwogCiAgICAgICAgIHRoaXMudXBkYXRlKHRleHQsIG5hbWUsIHZhbHVlLCBwcmlvcml0eSwg
ZW5hYmxlZCwgb3ZlcnJpZGRlbiwgaW1wbGljaXQsIGFub255bW91cywgdmFsaWQsIHN0eWxlU2hl
ZXRUZXh0UmFuZ2UsIHRydWUpOwogICAgIH0KQEAgLTE4NCwxMyArMTg1LDYgQEAgV0kuQ1NTUHJv
cGVydHkgPSBjbGFzcyBDU1NQcm9wZXJ0eSBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0aGlz
Ll91cGRhdGVTdHlsZVRleHQoZm9yY2VSZW1vdmUpOwogICAgIH0KIAotICAgIHJlcGxhY2VXaXRo
VGV4dCh0ZXh0KQotICAgIHsKLSAgICAgICAgdGhpcy5fbWFya01vZGlmaWVkKCk7Ci0KLSAgICAg
ICAgdGhpcy5fdXBkYXRlT3duZXJTdHlsZVRleHQodGhpcy5fdGV4dCwgdGV4dCwgdHJ1ZSk7Ci0g
ICAgfQotCiAgICAgY29tbWVudE91dChkaXNhYmxlZCkKICAgICB7CiAgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KHRoaXMuZWRpdGFibGUpOwpAQCAtMjEzLDE2ICsyMDcsMjIgQEAgV0kuQ1NTUHJvcGVy
dHkgPSBjbGFzcyBDU1NQcm9wZXJ0eSBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgc2V0IHRleHQo
bmV3VGV4dCkKICAgICB7CisgICAgICAgIG5ld1RleHQgPSBuZXdUZXh0LnRyaW0oKTsKICAgICAg
ICAgaWYgKHRoaXMuX3RleHQgPT09IG5ld1RleHQpCiAgICAgICAgICAgICByZXR1cm47CiAKICAg
ICAgICAgdGhpcy5fbWFya01vZGlmaWVkKCk7Ci0gICAgICAgIHRoaXMuX3VwZGF0ZU93bmVyU3R5
bGVUZXh0KHRoaXMuX3RleHQsIG5ld1RleHQpOwogICAgICAgICB0aGlzLl90ZXh0ID0gbmV3VGV4
dDsKKyAgICAgICAgdGhpcy5faXNVcGRhdGluZ1RleHQgPSB0cnVlOworICAgICAgICB0aGlzLl91
cGRhdGVPd25lclN0eWxlVGV4dCgpOworICAgICAgICB0aGlzLl9pc1VwZGF0aW5nVGV4dCA9IGZh
bHNlOwogICAgIH0KIAogICAgIGdldCBmb3JtYXR0ZWRUZXh0KCkKICAgICB7CisgICAgICAgIGlm
ICh0aGlzLl9pc1VwZGF0aW5nVGV4dCkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl90ZXh0Owor
CiAgICAgICAgIGlmICghdGhpcy5fbmFtZSkKICAgICAgICAgICAgIHJldHVybiAiIjsKIApAQCAt
NTAxLDc0ICs1MDEsMjQgQEAgV0kuQ1NTUHJvcGVydHkgPSBjbGFzcyBDU1NQcm9wZXJ0eSBleHRl
bmRzIFdJLk9iamVjdAogICAgICAgICAgICAgdGV4dCA9IHRoaXMuX25hbWUgKyAiOiAiICsgdmFs
dWUgKyAiOyI7CiAgICAgICAgIH0KIAotICAgICAgICBsZXQgb2xkVGV4dCA9IHRoaXMuX3RleHQ7
CiAgICAgICAgIHRoaXMuX3RleHQgPSB0ZXh0OwotICAgICAgICB0aGlzLl91cGRhdGVPd25lclN0
eWxlVGV4dChvbGRUZXh0LCB0aGlzLl90ZXh0LCBmb3JjZVJlbW92ZSk7CisKKyAgICAgICAgaWYg
KGZvcmNlUmVtb3ZlKQorICAgICAgICAgICAgdGhpcy5fb3duZXJTdHlsZS5yZW1vdmVQcm9wZXJ0
eSh0aGlzKTsKKworICAgICAgICB0aGlzLl91cGRhdGVPd25lclN0eWxlVGV4dCgpOwogICAgIH0K
IAotICAgIF91cGRhdGVPd25lclN0eWxlVGV4dChvbGRUZXh0LCBuZXdUZXh0LCBmb3JjZVJlbW92
ZSA9IGZhbHNlKQorICAgIF91cGRhdGVPd25lclN0eWxlVGV4dCgpCiAgICAgewotICAgICAgICBp
ZiAob2xkVGV4dCA9PT0gbmV3VGV4dCkgewotICAgICAgICAgICAgaWYgKGZvcmNlUmVtb3ZlKSB7
Ci0gICAgICAgICAgICAgICAgY29uc3QgbGluZURlbHRhID0gMDsKLSAgICAgICAgICAgICAgICBj
b25zdCBjb2x1bW5EZWx0YSA9IDA7Ci0gICAgICAgICAgICAgICAgdGhpcy5fb3duZXJTdHlsZS5z
aGlmdFByb3BlcnRpZXNBZnRlcih0aGlzLCBsaW5lRGVsdGEsIGNvbHVtbkRlbHRhLCBmb3JjZVJl
bW92ZSk7Ci0gICAgICAgICAgICAgICAgdGhpcy5fb3duZXJTdHlsZS51cGRhdGVQcm9wZXJ0aWVz
TW9kaWZpZWRTdGF0ZSgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9Ci0KICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fb3duZXJTdHlsZSk7CiAgICAg
ICAgIGlmICghdGhpcy5fb3duZXJTdHlsZSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAg
ICB0aGlzLl9wcmVwZW5kU2VtaWNvbG9uSWZOZWVkZWQoKTsKLQotICAgICAgICBsZXQgc3R5bGVU
ZXh0ID0gdGhpcy5fb3duZXJTdHlsZS50ZXh0IHx8ICIiOwotCi0gICAgICAgIC8vIF9zdHlsZVNo
ZWV0VGV4dFJhbmdlIGlzIHRoZSBwb3NpdGlvbiBvZiB0aGUgcHJvcGVydHkgd2l0aGluIHRoZSBz
dHlsZXNoZWV0LgotICAgICAgICAvLyByYW5nZSBpcyB0aGUgcG9zaXRpb24gb2YgdGhlIHByb3Bl
cnR5IHdpdGhpbiB0aGUgcnVsZS4KLSAgICAgICAgbGV0IHJhbmdlID0gdGhpcy5fc3R5bGVTaGVl
dFRleHRSYW5nZS5yZWxhdGl2ZVRvKHRoaXMuX293bmVyU3R5bGUuc3R5bGVTaGVldFRleHRSYW5n
ZS5zdGFydExpbmUsIHRoaXMuX293bmVyU3R5bGUuc3R5bGVTaGVldFRleHRSYW5nZS5zdGFydENv
bHVtbik7Ci0KLSAgICAgICAgLy8gQXBwZW5kIGEgbGluZSBicmVhayB0byBjb3VudCB0aGUgbGFz
dCBsaW5lIG9mIHN0eWxlVGV4dCB0b3dhcmRzIGVuZE9mZnNldC4KLSAgICAgICAgcmFuZ2UucmVz
b2x2ZU9mZnNldHMoc3R5bGVUZXh0ICsgIlxuIik7Ci0KLSAgICAgICAgY29uc29sZS5hc3NlcnQo
b2xkVGV4dCA9PT0gc3R5bGVUZXh0LnNsaWNlKHJhbmdlLnN0YXJ0T2Zmc2V0LCByYW5nZS5lbmRP
ZmZzZXQpLCAiX3N0eWxlU2hlZXRUZXh0UmFuZ2UgZGF0YSBpcyBpbnZhbGlkLiIpOwotCi0gICAg
ICAgIGlmIChXSS5zZXR0aW5ncy5kZWJ1Z0VuYWJsZVN0eWxlRWRpdGluZ0RlYnVnTW9kZS52YWx1
ZSkgewotICAgICAgICAgICAgbGV0IHByZWZpeCA9IHN0eWxlVGV4dC5zbGljZSgwLCByYW5nZS5z
dGFydE9mZnNldCk7Ci0gICAgICAgICAgICBsZXQgcG9zdGZpeCA9IHN0eWxlVGV4dC5zbGljZShy
YW5nZS5lbmRPZmZzZXQpOwotICAgICAgICAgICAgY29uc29sZS5pbmZvKGAke3ByZWZpeH0lYyR7
b2xkVGV4dH0lYyR7bmV3VGV4dH0lYyR7cG9zdGZpeH1gLCBgYmFja2dyb3VuZDogaHNsKDM1Niwg
MTAwJSwgOTAlKTsgY29sb3I6IGJsYWNrYCwgYGJhY2tncm91bmQ6IGhzbCgxMDAsIDEwMCUsIDkx
JSk7IGNvbG9yOiBibGFja2AsIGBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudGApOwotICAgICAgICB9
Ci0KLSAgICAgICAgbGV0IG5ld1N0eWxlVGV4dCA9IHN0eWxlVGV4dC5zbGljZSgwLCByYW5nZS5z
dGFydE9mZnNldCkgKyBuZXdUZXh0ICsgc3R5bGVUZXh0LnNsaWNlKHJhbmdlLmVuZE9mZnNldCk7
Ci0KLSAgICAgICAgbGV0IGxpbmVEZWx0YSA9IG5ld1RleHQubGluZUNvdW50IC0gb2xkVGV4dC5s
aW5lQ291bnQ7Ci0gICAgICAgIGxldCBjb2x1bW5EZWx0YSA9IG5ld1RleHQubGFzdExpbmUubGVu
Z3RoIC0gb2xkVGV4dC5sYXN0TGluZS5sZW5ndGg7Ci0gICAgICAgIHRoaXMuX3N0eWxlU2hlZXRU
ZXh0UmFuZ2UgPSB0aGlzLl9zdHlsZVNoZWV0VGV4dFJhbmdlLmNsb25lQW5kTW9kaWZ5KDAsIDAs
IGxpbmVEZWx0YSwgY29sdW1uRGVsdGEpOwotCi0gICAgICAgIHRoaXMuX293bmVyU3R5bGUudGV4
dCA9IG5ld1N0eWxlVGV4dDsKLQotICAgICAgICBsZXQgcHJvcGVydHlXYXNSZW1vdmVkID0gIW5l
d1RleHQ7Ci0gICAgICAgIHRoaXMuX293bmVyU3R5bGUuc2hpZnRQcm9wZXJ0aWVzQWZ0ZXIodGhp
cywgbGluZURlbHRhLCBjb2x1bW5EZWx0YSwgcHJvcGVydHlXYXNSZW1vdmVkKTsKKyAgICAgICAg
dGhpcy5fb3duZXJTdHlsZS50ZXh0ID0gdGhpcy5fb3duZXJTdHlsZS5nZW5lcmF0ZUZvcm1hdHRl
ZFRleHQoe211bHRpbGluZTogdGhpcy5fb3duZXJTdHlsZS50eXBlID09PSBXSS5DU1NTdHlsZURl
Y2xhcmF0aW9uLlR5cGUuUnVsZX0pOwogICAgICAgICB0aGlzLl9vd25lclN0eWxlLnVwZGF0ZVBy
b3BlcnRpZXNNb2RpZmllZFN0YXRlKCk7CiAgICAgfQogCi0gICAgX3ByZXBlbmRTZW1pY29sb25J
Zk5lZWRlZCgpCi0gICAgewotICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5pbmRleCAtIDE7IGkg
Pj0gMDsgLS1pKSB7Ci0gICAgICAgICAgICBsZXQgcHJvcGVydHkgPSB0aGlzLl9vd25lclN0eWxl
LnByb3BlcnRpZXNbaV07Ci0gICAgICAgICAgICBpZiAoIXByb3BlcnR5LmVuYWJsZWQpCi0gICAg
ICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIGxldCBtYXRjaCA9IHByb3BlcnR5
LnRleHQubWF0Y2goL1teO1xzXShccyopJC8pOwotICAgICAgICAgICAgaWYgKG1hdGNoKQotICAg
ICAgICAgICAgICAgIHByb3BlcnR5LnRleHQgPSBwcm9wZXJ0eS50ZXh0LnRyaW1SaWdodCgpICsg
IjsiICsgbWF0Y2hbMV07Ci0KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQot
CiAgICAgX21hcmtNb2RpZmllZCgpCiAgICAgewogICAgICAgICBpZiAodGhpcy5fb3duZXJTdHls
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9DU1NTdHlsZURlY2xhcmF0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL0NTU1N0eWxlRGVjbGFyYXRpb24uanMKaW5kZXggNzA5MTAxZjQyYTg3OTUy
MjE2YjkzZjZlZmNmZDBkOGQ0ZjI1Y2Y0ZC4uMzkwMTAwNGFiZTA4NDlkZGQ1NzYwNDRiNDAyY2M5
MWZiMjdiZTY3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL0NTU1N0eWxlRGVjbGFyYXRpb24uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1N0eWxlRGVjbGFyYXRpb24uanMKQEAgLTQ0NSwz
MiArNDQ1LDE0IEBAIFdJLkNTU1N0eWxlRGVjbGFyYXRpb24gPSBjbGFzcyBDU1NTdHlsZURlY2xh
cmF0aW9uIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIFdJLmNzc01hbmFnZXIuYWRkTW9kaWZp
ZWRTdHlsZSh0aGlzKTsKICAgICB9CiAKLSAgICBzaGlmdFByb3BlcnRpZXNBZnRlcihjc3NQcm9w
ZXJ0eSwgbGluZURlbHRhLCBjb2x1bW5EZWx0YSwgcHJvcGVydHlXYXNSZW1vdmVkKQorICAgIHJl
bW92ZVByb3BlcnR5KGNzc1Byb3BlcnR5KQogICAgIHsKICAgICAgICAgLy8gY3NzUHJvcGVydHku
aW5kZXggY291bGQgYmUgc2V0IHRvIE5hTiBieSBXSS5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3Rv
dHlwZS51cGRhdGUuCiAgICAgICAgIGxldCByZWFsSW5kZXggPSB0aGlzLl9wcm9wZXJ0aWVzLmlu
ZGV4T2YoY3NzUHJvcGVydHkpOwogICAgICAgICBpZiAocmVhbEluZGV4ID09PSAtMSkKICAgICAg
ICAgICAgIHJldHVybjsKIAotICAgICAgICBsZXQgZW5kTGluZSA9IGNzc1Byb3BlcnR5LnN0eWxl
U2hlZXRUZXh0UmFuZ2UuZW5kTGluZTsKLQotICAgICAgICBmb3IgKGxldCBpID0gcmVhbEluZGV4
ICsgMTsgaSA8IHRoaXMuX3Byb3BlcnRpZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIGxl
dCBwcm9wZXJ0eSA9IHRoaXMuX3Byb3BlcnRpZXNbaV07Ci0KLSAgICAgICAgICAgIGlmIChwcm9w
ZXJ0eS5fc3R5bGVTaGVldFRleHRSYW5nZSkgewotICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0
eS5zdHlsZVNoZWV0VGV4dFJhbmdlLnN0YXJ0TGluZSA9PT0gZW5kTGluZSkgewotICAgICAgICAg
ICAgICAgICAgICAvLyBPbmx5IHVwZGF0ZSBjb2x1bW4gZGF0YSBpZiBpdCdzIG9uIHRoZSBzYW1l
IGxpbmUuCi0gICAgICAgICAgICAgICAgICAgIHByb3BlcnR5Ll9zdHlsZVNoZWV0VGV4dFJhbmdl
ID0gcHJvcGVydHkuX3N0eWxlU2hlZXRUZXh0UmFuZ2UuY2xvbmVBbmRNb2RpZnkobGluZURlbHRh
LCBjb2x1bW5EZWx0YSwgbGluZURlbHRhLCBjb2x1bW5EZWx0YSk7Ci0gICAgICAgICAgICAgICAg
fSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHByb3BlcnR5Ll9zdHlsZVNoZWV0VGV4dFJhbmdl
ID0gcHJvcGVydHkuX3N0eWxlU2hlZXRUZXh0UmFuZ2UuY2xvbmVBbmRNb2RpZnkobGluZURlbHRh
LCAwLCBsaW5lRGVsdGEsIDApOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAocHJv
cGVydHlXYXNSZW1vdmVkICYmICFpc05hTihwcm9wZXJ0eS5faW5kZXgpKQotICAgICAgICAgICAg
ICAgIHByb3BlcnR5Ll9pbmRleC0tOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHByb3BlcnR5
V2FzUmVtb3ZlZCkKLSAgICAgICAgICAgIHRoaXMuX3Byb3BlcnRpZXMuc3BsaWNlKHJlYWxJbmRl
eCwgMSk7CisgICAgICAgIHRoaXMuX3Byb3BlcnRpZXMuc3BsaWNlKHJlYWxJbmRleCwgMSk7CiAK
ICAgICAgICAgLy8gSW52YWxpZGF0ZSBjYWNoZWQgcHJvcGVydGllcy4KICAgICAgICAgdGhpcy5f
ZW5hYmxlZFByb3BlcnRpZXMgPSBudWxsOwpAQCAtNTA3LDI0ICs0ODksNTkgQEAgV0kuQ1NTU3R5
bGVEZWNsYXJhdGlvbiA9IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb24gZXh0ZW5kcyBXSS5PYmpl
Y3QKICAgICAgICAgICAgIFdJLmNzc01hbmFnZXIucmVtb3ZlTW9kaWZpZWRTdHlsZSh0aGlzKTsK
ICAgICB9CiAKLSAgICBnZW5lcmF0ZUNTU1J1bGVTdHJpbmcoKQorICAgIGdlbmVyYXRlRm9ybWF0
dGVkVGV4dChvcHRpb25zID0ge30pCiAgICAgewogICAgICAgICBsZXQgaW5kZW50U3RyaW5nID0g
V0kuaW5kZW50U3RyaW5nKCk7CiAgICAgICAgIGxldCBzdHlsZVRleHQgPSAiIjsKICAgICAgICAg
bGV0IGdyb3VwaW5ncyA9IHRoaXMuZ3JvdXBpbmdzLmZpbHRlcigoZ3JvdXBpbmcpID0+IGdyb3Vw
aW5nLnRleHQgIT09ICJhbGwiKTsKICAgICAgICAgbGV0IGdyb3VwaW5nc0NvdW50ID0gZ3JvdXBp
bmdzLmxlbmd0aDsKLSAgICAgICAgZm9yIChsZXQgaSA9IGdyb3VwaW5nc0NvdW50IC0gMTsgaSA+
PSAwOyAtLWkpCi0gICAgICAgICAgICBzdHlsZVRleHQgKz0gaW5kZW50U3RyaW5nLnJlcGVhdChn
cm91cGluZ3NDb3VudCAtIGkgLSAxKSArIGdyb3VwaW5nc1tpXS5wcmVmaXggKyAiICIgKyBncm91
cGluZ3NbaV0udGV4dCArICIge1xuIjsKIAotICAgICAgICBzdHlsZVRleHQgKz0gaW5kZW50U3Ry
aW5nLnJlcGVhdChncm91cGluZ3NDb3VudCkgKyB0aGlzLnNlbGVjdG9yVGV4dCArICIge1xuIjsK
KyAgICAgICAgaWYgKG9wdGlvbnMuaW5jbHVkZVNlbGVjdG9yc0FuZEdyb3VwaW5ncykgeworICAg
ICAgICAgICAgZm9yIChsZXQgaSA9IGdyb3VwaW5nc0NvdW50IC0gMTsgaSA+PSAwOyAtLWkpIHsK
KyAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5tdWx0aWxpbmUpCisgICAgICAgICAgICAgICAg
ICAgIHN0eWxlVGV4dCArPSBpbmRlbnRTdHJpbmcucmVwZWF0KGdyb3VwaW5nc0NvdW50IC0gaSAt
IDEpOworCisgICAgICAgICAgICAgICAgc3R5bGVUZXh0ICs9IGdyb3VwaW5nc1tpXS5wcmVmaXgg
KyAiICIgKyBncm91cGluZ3NbaV0udGV4dCArICIgeyI7CisKKyAgICAgICAgICAgICAgICBpZiAo
b3B0aW9ucy5tdWx0aWxpbmUpCisgICAgICAgICAgICAgICAgICAgIHN0eWxlVGV4dCArPSAiXG4i
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAob3B0aW9ucy5tdWx0aWxpbmUpCisg
ICAgICAgICAgICAgICAgc3R5bGVUZXh0ICs9IGluZGVudFN0cmluZy5yZXBlYXQoZ3JvdXBpbmdz
Q291bnQpOworCisgICAgICAgICAgICBzdHlsZVRleHQgKz0gdGhpcy5zZWxlY3RvclRleHQgKyAi
IHsiOworICAgICAgICB9CiAKLSAgICAgICAgZm9yIChsZXQgcHJvcGVydHkgb2YgKHRoaXMuX3N0
eWxlU2hlZXRUZXh0UmFuZ2UgPyB0aGlzLnZpc2libGVQcm9wZXJ0aWVzIDogdGhpcy5fcHJvcGVy
dGllcykpCi0gICAgICAgICAgICBzdHlsZVRleHQgKz0gaW5kZW50U3RyaW5nLnJlcGVhdChncm91
cGluZ3NDb3VudCArIDEpICsgcHJvcGVydHkuZm9ybWF0dGVkVGV4dCArICJcbiI7CisgICAgICAg
IGxldCBwcm9wZXJ0aWVzID0gdGhpcy5fc3R5bGVTaGVldFRleHRSYW5nZSA/IHRoaXMudmlzaWJs
ZVByb3BlcnRpZXMgOiB0aGlzLl9wcm9wZXJ0aWVzOworICAgICAgICBpZiAocHJvcGVydGllcy5s
ZW5ndGgpIHsKKyAgICAgICAgICAgIGlmIChvcHRpb25zLm11bHRpbGluZSkgeworICAgICAgICAg
ICAgICAgIGxldCBwcm9wZXJ0eUluZGVudCA9IGluZGVudFN0cmluZy5yZXBlYXQoZ3JvdXBpbmdz
Q291bnQgKyAxKTsKKyAgICAgICAgICAgICAgICBmb3IgKGxldCBwcm9wZXJ0eSBvZiBwcm9wZXJ0
aWVzKQorICAgICAgICAgICAgICAgICAgICBzdHlsZVRleHQgKz0gIlxuIiArIHByb3BlcnR5SW5k
ZW50ICsgcHJvcGVydHkuZm9ybWF0dGVkVGV4dDsKKworICAgICAgICAgICAgICAgIHN0eWxlVGV4
dCArPSAiXG4iOworICAgICAgICAgICAgICAgIGlmICghb3B0aW9ucy5pbmNsdWRlU2VsZWN0b3Jz
QW5kR3JvdXBpbmdzKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEluZGVudCB0aGUgY2xvc2lu
ZyAifSIgZm9yIG5lc3RlZCBydWxlcy4KKyAgICAgICAgICAgICAgICAgICAgc3R5bGVUZXh0ICs9
IGluZGVudFN0cmluZy5yZXBlYXQoZ3JvdXBpbmdzQ291bnQpOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHN0eWxlVGV4dCArPSBwcm9wZXJ0
aWVzLm1hcCgocHJvcGVydHkpID0+IHByb3BlcnR5LmZvcm1hdHRlZFRleHQpLmpvaW4oIiAiKTsK
KyAgICAgICAgfQogCi0gICAgICAgIGZvciAobGV0IGkgPSBncm91cGluZ3NDb3VudDsgaSA+IDA7
IC0taSkKLSAgICAgICAgICAgIHN0eWxlVGV4dCArPSBpbmRlbnRTdHJpbmcucmVwZWF0KGkpICsg
In1cbiI7CisgICAgICAgIGlmIChvcHRpb25zLmluY2x1ZGVTZWxlY3RvcnNBbmRHcm91cGluZ3Mp
IHsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSBncm91cGluZ3NDb3VudDsgaSA+IDA7IC0taSkg
eworICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLm11bHRpbGluZSkKKyAgICAgICAgICAgICAg
ICAgICAgc3R5bGVUZXh0ICs9IGluZGVudFN0cmluZy5yZXBlYXQoaSk7CiAKLSAgICAgICAgc3R5
bGVUZXh0ICs9ICJ9IjsKKyAgICAgICAgICAgICAgICBzdHlsZVRleHQgKz0gIn0iOworCisgICAg
ICAgICAgICAgICAgaWYgKG9wdGlvbnMubXVsdGlsaW5lKQorICAgICAgICAgICAgICAgICAgICBz
dHlsZVRleHQgKz0gIlxuIjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3R5bGVUZXh0
ICs9ICJ9IjsKKyAgICAgICAgfQogCiAgICAgICAgIHJldHVybiBzdHlsZVRleHQ7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3By
ZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvblNl
Y3Rpb24uanMKaW5kZXggYmM1NWNkMjU5ZDIwYmIyZGY4ZjlkYmJmYzU1YjE0NTVkN2VlN2E4NS4u
MzhiZmEwN2U5NTNmNmNjNmYzNmNlM2M2MGVkOWQ0OTVlOTVlN2VmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHls
ZURlY2xhcmF0aW9uU2VjdGlvbi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLmpzCkBA
IC00ODEsNyArNDgxLDcgQEAgV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlv
biA9IGNsYXNzIFNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvblMKICAgICBfcG9wdWxhdGVJ
Y29uRWxlbWVudENvbnRleHRNZW51KGNvbnRleHRNZW51KQogICAgIHsKICAgICAgICAgY29udGV4
dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiQ29weSBSdWxlIiksICgpID0+IHsKLSAgICAg
ICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5jb3B5VGV4dCh0aGlzLl9zdHlsZS5nZW5lcmF0
ZUNTU1J1bGVTdHJpbmcoKSk7CisgICAgICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3QuY29w
eVRleHQodGhpcy5fc3R5bGUuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0KHtpbmNsdWRlU2VsZWN0b3Jz
QW5kR3JvdXBpbmdzOiB0cnVlLCBtdWx0aWxpbmU6IHRydWV9KSk7CiAgICAgICAgIH0pOwogCiAg
ICAgICAgIGlmICh0aGlzLl9zdHlsZS5lZGl0YWJsZSAmJiB0aGlzLl9zdHlsZS5wcm9wZXJ0aWVz
Lmxlbmd0aCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LmpzCmluZGV4
IDA3OThiNDBhZTU1MDU5MmY0N2Q4NmZiMGFkNTk4ZWQ0NmY1NmUzOWYuLmMwMzFjMGM5N2E2N2Jk
NzJiYTEzNzBkOTQ0NTk2NTViZWM1YWQwNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eS5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldFN0
eWxlUHJvcGVydHkuanMKQEAgLTE0NCw3ICsxNDQsNyBAQCBXSS5TcHJlYWRzaGVldFN0eWxlUHJv
cGVydHkgPSBjbGFzcyBTcHJlYWRzaGVldFN0eWxlUHJvcGVydHkgZXh0ZW5kcyBXSS5PYmplY3QK
ICAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZSgpOwogCiAgICAgICAgIGlmIChyZXBsYWNlbWVu
dCkKLSAgICAgICAgICAgIHRoaXMuX3Byb3BlcnR5LnJlcGxhY2VXaXRoVGV4dChyZXBsYWNlbWVu
dCk7CisgICAgICAgICAgICB0aGlzLl9wcm9wZXJ0eS50ZXh0ID0gcmVwbGFjZW1lbnQ7CiAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIHRoaXMuX3Byb3BlcnR5LnJlbW92ZSgpOwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
ZGQ3NjA4MjQ3NzdiOWVlYWRjYTE4ZTJkYjQxOTFhNjA0NjEyZTU4ZS4uMDVjZGQ1MDAwYWMwMWVj
OGQwNjE5NjA5YWEzOTkxZTM4MmMwNzkwZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTEw
LTA2ICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IFN0eWxlczogZm9ybWF0IHN0eWxlIGRlY2xhcmF0aW9ucyBhZnRlciBlZGl0
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg4
MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1MTg1MDYwPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IERldmluIFJvdXNzby4KKworICAgICAgICAtIEluZGVudCB0ZXh0IG9mIGV4cGVjdGVkIENT
UyBwcm9wZXJ0aWVzLgorICAgICAgICAtIFRlc3QgZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0IHdpdGgg
YWxsIHBlcm11dGF0aW9ucyBvZiBpdHMgb3B0aW9ucy4KKyAgICAgICAgLSBBZGQgYSBiYXNpYyB0
ZXN0IGVuc3VyaW5nIHN0eWxlU2hlZXRUZXh0UmFuZ2UgdXBkYXRlcyBjb3JyZWN0bHkgZnJvbSB0
aGUgYmFja2VuZC4KKworICAgICAgICAqIGluc3BlY3Rvci9jc3MvYWRkLWNzcy1wcm9wZXJ0eS5o
dG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jc3MvZ2VuZXJhdGVDU1NSdWxlU3RyaW5nLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY3NzL2dlbmVyYXRlQ1NTUnVs
ZVN0cmluZy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jc3MvZ2VuZXJhdGVG
b3JtYXR0ZWRUZXh0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Nz
cy9nZW5lcmF0ZUZvcm1hdHRlZFRleHQuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvY3NzL21vZGlmeS1jc3MtcHJvcGVydHkuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY3Nz
L21vZGlmeS1pbmxpbmUtc3R5bGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9j
c3MvcmVzb3VyY2VzL21vZGlmeS1jc3MtcHJvcGVydHkuY3NzOiBBZGRlZC4KKyAgICAgICAgKC5y
dWxlLWEpOgorICAgICAgICAoLnJ1bGUtYik6CisgICAgICAgICgucnVsZS1jKToKKyAgICAgICAg
KC5ydWxlLWQpOgorCiAyMDIxLTEwLTA2ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBbTEZDXVtJRkNdIHdvcmQtYnJlYWs6IGJyZWFrLWFsbCBvbmx5IGFsbG93cyBt
aWQtd29yZCBhcmJpdHJhcnkgYnJlYWtpbmcgcG9zaXRpb25zCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY3NzL2FkZC1jc3MtcHJvcGVydHkuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jc3MvYWRkLWNzcy1wcm9wZXJ0eS5odG1sCmluZGV4IDQ1NWE5NWQ0ZTczYmZjYTlj
NGRmMDVjYTBkYzJjN2I0ZTVjMWRmY2IuLmY1ZGY5NTMxNDJjZjhjMTM0ZDU0NTdlYTkyYmQyMDll
ZTcyMjU4MWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvYWRkLWNzcy1w
cm9wZXJ0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvYWRkLWNzcy1wcm9w
ZXJ0eS5odG1sCkBAIC0yNyw3ICsyNyw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAg
ICBuZXdQcm9wZXJ0eS5uYW1lID0gImNvbG9yIjsKICAgICAgICAgICAgIG5ld1Byb3BlcnR5LnJh
d1ZhbHVlID0gImdyZWVuIjsKIAotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVh
bChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGBmb250LXNpemU6IDE0cHg7Y29sb3I6IGdyZWVuO2As
ICJgY29sb3I6IGdyZWVuYCBwcm9wZXJ0eSBzaG91bGQgYmUgYXBwZW5kZWQuIik7CisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlRGVjbGFyYXRpb24udGV4dCwgYFxu
ICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogZ3JlZW47XG5gLCAiYGNvbG9yOiBncmVl
bmAgcHJvcGVydHkgc2hvdWxkIGJlIGFwcGVuZGVkLiIpOwogCiAgICAgICAgICAgICBzdHlsZURl
Y2xhcmF0aW9uLmxvY2tlZCA9IGZhbHNlOwogICAgICAgICAgICAgcmVzb2x2ZSgpOwpAQCAtNDMs
NyArNDMsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgbmV3UHJvcGVydHkubmFt
ZSA9ICJjb2xvciI7CiAgICAgICAgICAgICBuZXdQcm9wZXJ0eS5yYXdWYWx1ZSA9ICJncmVlbiI7
CiAKLSAgICAgICAgICAgIGxldCBleHBlY3RlZCA9IGBjb2xvcjogZ3JlZW47XG4gICAgb3V0bGlu
ZTogMnB4IHNvbGlkIGJyb3duO1xuYDsKKyAgICAgICAgICAgIGxldCBleHBlY3RlZCA9IGBcbiAg
ICBjb2xvcjogZ3JlZW47XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIGJyb3duO1xuYDsKICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0LCBl
eHBlY3RlZCwgImBjb2xvcjogZ3JlZW5gIHByb3BlcnR5IHNob3VsZCBiZSBpbnNlcnRlZCBiZWZv
cmUgdGhlIGZpcnN0IHByb3BlcnR5LiIpOwogCiAgICAgICAgICAgICBzdHlsZURlY2xhcmF0aW9u
ID0gZ2V0TWF0Y2hlZFN0eWxlKCIucnVsZS1iIiwgcmVzb2x2ZSk7CkBAIC01MSw3ICs1MSw3IEBA
IGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICBuZXdQcm9wZXJ0eS5uYW1lID0gImRpc3Bs
YXkiOwogICAgICAgICAgICAgbmV3UHJvcGVydHkucmF3VmFsdWUgPSAiYmxvY2siOwogCi0gICAg
ICAgICAgICBleHBlY3RlZCA9IGBjb2xvcjogZ3JlZW47XG4gICAgb3V0bGluZTogMnB4IHNvbGlk
IGJyb3duO2Rpc3BsYXk6IGJsb2NrO1xuYDsKKyAgICAgICAgICAgIGV4cGVjdGVkID0gYFxuICAg
IGNvbG9yOiBncmVlbjtcbiAgICBvdXRsaW5lOiAycHggc29saWQgYnJvd247XG4gICAgZGlzcGxh
eTogYmxvY2s7XG5gOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHls
ZURlY2xhcmF0aW9uLnRleHQsIGV4cGVjdGVkLCAiYGRpc3BsYXk6IGJsb2NrYCBwcm9wZXJ0eSBz
aG91bGQgYmUgYXBwZW5kZWQgYXQgdGhlIGVuZC4iKTsKIAogICAgICAgICAgICAgc3R5bGVEZWNs
YXJhdGlvbi5sb2NrZWQgPSBmYWxzZTsKQEAgLTY4LDcgKzY4LDcgQEAgZnVuY3Rpb24gdGVzdCgp
IHsKICAgICAgICAgICAgIG5ld1Byb3BlcnR5Lm5hbWUgPSAiZm9udC1mYW1pbHkiOwogICAgICAg
ICAgICAgbmV3UHJvcGVydHkucmF3VmFsdWUgPSAiZmFudGFzeSI7CiAKLSAgICAgICAgICAgIGxl
dCBleHBlY3RlZCA9IGBcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBwZWFjaHB1ZmY7Zm9udC1mYW1p
bHk6IGZhbnRhc3k7XG4gICAgY29sb3I6IGJ1cmx5d29vZFxuYDsKKyAgICAgICAgICAgIGxldCBl
eHBlY3RlZCA9IGBcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBwZWFjaHB1ZmY7XG4gICAgZm9udC1m
YW1pbHk6IGZhbnRhc3k7XG4gICAgY29sb3I6IGJ1cmx5d29vZDtcbmA7CiAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlRGVjbGFyYXRpb24udGV4dCwgZXhwZWN0ZWQs
ICJgZm9udC1mYW1pbHk6IGZhbnRhc3lgIHByb3BlcnR5IHNob3VsZCBiZSBpbnNlcnRlZCBhZnRl
ciB0aGUgZmlyc3QgcHJvcGVydHkuIik7CiAKICAgICAgICAgICAgIHN0eWxlRGVjbGFyYXRpb24u
bG9ja2VkID0gZmFsc2U7CkBAIC04NSw3ICs4NSw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAg
ICAgICAgICBuZXdQcm9wZXJ0eS5uYW1lID0gImRpc3BsYXkiOwogICAgICAgICAgICAgbmV3UHJv
cGVydHkucmF3VmFsdWUgPSAiaW5saW5lIjsKIAotICAgICAgICAgICAgY29uc3QgZXhwZWN0ZWQg
PSBgXG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIC8qIGNvbG9yOiByZWQ7ICovZGlzcGxheTog
aW5saW5lO1xuYDsKKyAgICAgICAgICAgIGNvbnN0IGV4cGVjdGVkID0gYFxuICAgIGZvbnQtc2l6
ZTogMTRweDtcbiAgICAvKiBjb2xvcjogcmVkOyAqL1xuICAgIGRpc3BsYXk6IGlubGluZTtcbmA7
CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlRGVjbGFyYXRpb24u
dGV4dCwgZXhwZWN0ZWQsICJgZGlzcGxheTogaW5saW5lYCBwcm9wZXJ0eSBzaG91bGQgYmUgYXBw
ZW5kZWQuIik7CiAKICAgICAgICAgICAgIHN0eWxlRGVjbGFyYXRpb24ubG9ja2VkID0gZmFsc2U7
CkBAIC0xMDIsNyArMTAyLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgIG5ld1By
b3BlcnR5Lm5hbWUgPSAiZGlzcGxheSI7CiAgICAgICAgICAgICBuZXdQcm9wZXJ0eS5yYXdWYWx1
ZSA9ICJpbmxpbmUiOwogCi0gICAgICAgICAgICBjb25zdCBleHBlY3RlZCA9IGBcbiAgICBmb250
LXNpemU6IDE0cHg7XG4gICAgLyogY29sb3I6IHJlZCAqL2Rpc3BsYXk6IGlubGluZTtcbmA7Cisg
ICAgICAgICAgICBjb25zdCBleHBlY3RlZCA9IGBcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAg
LyogY29sb3I6IHJlZDsgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmU7XG5gOwogICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGV4cGVjdGVk
LCAiYGRpc3BsYXk6IGlubGluZWAgcHJvcGVydHkgc2hvdWxkIGJlIGFwcGVuZGVkLiIpOwogCiAg
ICAgICAgICAgICBzdHlsZURlY2xhcmF0aW9uLmxvY2tlZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZW5lcmF0ZUNTU1J1bGVTdHJpbmctZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZW5lcmF0ZUNTU1J1bGVTdHJpbmctZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZTllMDU4ZDc5NDdmODQ5
MjViMjg1NTY4NjJiYWRmYWU4MjQ4OGYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2VuZXJhdGVDU1NSdWxl
U3RyaW5nLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDg3ICswLDAgQEAKLVRlc3Rp
bmcgdGhhdCBnZW5lcmF0ZWQgQ1NTIHJ1bGUgc3RyaW5ncyBoYXZlIHByb3BlciBmb3JtYXR0aW5n
LgotCi0KLT09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQ1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmluZwot
LS0gUnVubmluZyB0ZXN0IGNhc2U6IENTUy5nZW5lcmF0ZUNTU1J1bGVTdHJpbmcuSW5saW5lU3R5
bGUKLSN0ZXN0LW5vZGUgewotICAgIGE6IDE7Ci0gICAgYjogMjsKLSAgICBjOiAzOwotfQotCi0t
LSBSdW5uaW5nIHRlc3QgY2FzZTogQ1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmluZy5JbmxpbmVTdHls
ZS5XaXRoQ29tbWVudGVkUHJvcGVydHkKLSN0ZXN0LW5vZGUgewotICAgIGE6IDE7Ci0gICAgLyog
YjogMjsgKi8KLSAgICBjOiAzOwotfQotCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ1NTLmdlbmVy
YXRlQ1NTUnVsZVN0cmluZy5NYXRjaGVkUnVsZXMKLUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1p
bi13aWR0aDogMHB4KSB7Ci0gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLWhlaWdodDog
MHB4KSB7Ci0gICAgICAgIGJvZHkgPiBkaXYjdGVzdC1ub2RlIHsKLSAgICAgICAgICAgIGE6IDE7
Ci0gICAgICAgICAgICBiOiAyOwotICAgICAgICAgICAgYzogMzsKLSAgICAgICAgfQotICAgIH0K
LX0KLUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMHB4KSB7Ci0gICAgYm9keSA+
ICN0ZXN0LW5vZGUgewotICAgICAgICBhOiAxOwotICAgICAgICBiOiAyOwotICAgICAgICBjOiAz
OwotICAgIH0KLX0KLWJvZHkgPiBkaXYgewotICAgIGE6IDE7Ci0gICAgYjogMjsKLSAgICBjOiAz
OwotfQotYm9keSA+ICogewotICAgIGE6IDE7Ci0gICAgYjogMjsKLSAgICBjOiAzOwotfQotKiB7
Ci0gICAgYTogMTsKLSAgICBiOiAyOwotICAgIGM6IDM7Ci19Ci1hZGRyZXNzLCBhcnRpY2xlLCBh
c2lkZSwgZGl2LCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBsYXllciwgbWFpbiwgbmF2LCBzZWN0
aW9uIHsKLSAgICBkaXNwbGF5OiBibG9jazsKLX0KLQotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENT
Uy5nZW5lcmF0ZUNTU1J1bGVTdHJpbmcuTWF0Y2hlZFJ1bGVzLldpdGhDb21tZW50ZWRQcm9wZXJ0
aWVzCi1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBweCkgewotICAgIEBtZWRp
YSBvbmx5IHNjcmVlbiBhbmQgKG1pbi1oZWlnaHQ6IDBweCkgewotICAgICAgICBib2R5ID4gZGl2
I3Rlc3Qtbm9kZSB7Ci0gICAgICAgICAgICBhOiAxOwotICAgICAgICAgICAgLyogYjogMjsgKi8K
LSAgICAgICAgICAgIGM6IDM7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci1AbWVkaWEgb25seSBzY3Jl
ZW4gYW5kIChtaW4td2lkdGg6IDBweCkgewotICAgIGJvZHkgPiAjdGVzdC1ub2RlIHsKLSAgICAg
ICAgYTogMTsKLSAgICAgICAgLyogYjogMjsgKi8KLSAgICAgICAgYzogMzsKLSAgICB9Ci19Ci1i
b2R5ID4gZGl2IHsKLSAgICBhOiAxOwotICAgIC8qIGI6IDI7ICovCi0gICAgYzogMzsKLX0KLWJv
ZHkgPiAqIHsKLSAgICBhOiAxOwotICAgIC8qIGI6IDI7ICovCi0gICAgYzogMzsKLX0KLSogewot
ICAgIGE6IDE7Ci0gICAgLyogYjogMjsgKi8KLSAgICBjOiAzOwotfQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dlbmVyYXRlQ1NTUnVsZVN0cmluZy5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZW5lcmF0ZUNTU1J1bGVTdHJpbmcuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWVmOWY3N2E5ZmFmMmFjNjc5MmNmM2VlZDMyNjhiNGRk
NzVkMTcwOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dlbmVyYXRlQ1NTUnVsZVN0cmluZy5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsODEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPHN0eWxlPgotKnthOjE7YjoyO2M6M30KLWJvZHk+KnthOjE7YjoyO2M6M30KLUBtZWRpYSBh
bGwge2JvZHk+ZGl2e2E6MTtiOjI7YzozfX0KLUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13
aWR0aDowcHgpIHtib2R5PiN0ZXN0LW5vZGV7YToxO2I6MjtjOjN9fQotQG1lZGlhIG9ubHkgc2Ny
ZWVuIGFuZCAobWluLXdpZHRoOjBweCkge0BtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi1oZWln
aHQ6MHB4KSB7Ym9keT5kaXYjdGVzdC1ub2Rle2E6MTtiOjI7YzozfX19Ci08L3N0eWxlPgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3It
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBsZXQg
bm9kZVN0eWxlcyA9IG51bGw7Ci0KLSAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0
ZVN5bmNTdWl0ZSgiQ1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmluZyIpOwotCi0gICAgc3VpdGUuYWRk
VGVzdENhc2UoewotICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmluZy5Jbmxp
bmVTdHlsZSIsCi0gICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhlIGZvcm1hdHRpbmcgb2Yg
dGhlIGdlbmVyYXRlZCBpbmxpbmUgc3R5bGUgc3RyaW5nLiIsCi0gICAgICAgIHRlc3QoKSB7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhub2RlU3R5bGVzLmlubGluZVN0eWxlLmdlbmVy
YXRlQ1NTUnVsZVN0cmluZygpKTsKLSAgICAgICAgfQotICAgIH0pOwotCi0gICAgc3VpdGUuYWRk
VGVzdENhc2UoewotICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmluZy5Jbmxp
bmVTdHlsZS5XaXRoQ29tbWVudGVkUHJvcGVydHkiLAotICAgICAgICBkZXNjcmlwdGlvbjogIkNo
ZWNrIHRoZSBmb3JtYXR0aW5nIG9mIHRoZSBnZW5lcmF0ZWQgaW5saW5lIHN0eWxlIHN0cmluZyBp
ZiBhIHByb3BlcnR5IGlzIGNvbW1lbnRlZCBvdXQuIiwKLSAgICAgICAgdGVzdCgpIHsKLSAgICAg
ICAgICAgIG5vZGVTdHlsZXMuaW5saW5lU3R5bGUucHJvcGVydGllc1sxXS5jb21tZW50T3V0KHRy
dWUpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2cobm9kZVN0eWxlcy5pbmxpbmVTdHls
ZS5nZW5lcmF0ZUNTU1J1bGVTdHJpbmcoKSk7Ci0gICAgICAgIH0sCi0gICAgfSk7Ci0KLSAgICBz
dWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWU6ICJDU1MuZ2VuZXJhdGVDU1NSdWxlU3Ry
aW5nLk1hdGNoZWRSdWxlcyIsCi0gICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhlIGZvcm1h
dHRpbmcgb2YgdGhlIGdlbmVyYXRlZCBzdHJpbmcgZm9yIGFsbCBtYXRjaGVkIENTUyBydWxlcy4i
LAotICAgICAgICB0ZXN0KCkgewotICAgICAgICAgICAgZm9yIChsZXQgcnVsZSBvZiBub2RlU3R5
bGVzLm1hdGNoZWRSdWxlcykKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhydWxl
LnN0eWxlLmdlbmVyYXRlQ1NTUnVsZVN0cmluZygpKTsKLSAgICAgICAgfQotICAgIH0pOwotCi0g
ICAgc3VpdGUuYWRkVGVzdENhc2UoewotICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlQ1NTUnVs
ZVN0cmluZy5NYXRjaGVkUnVsZXMuV2l0aENvbW1lbnRlZFByb3BlcnRpZXMiLAotICAgICAgICBk
ZXNjcmlwdGlvbjogIkNoZWNrIHRoZSBmb3JtYXR0aW5nIG9mIHRoZSBnZW5lcmF0ZWQgc3RyaW5n
IGZvciBhbGwgbWF0Y2hlZCBDU1MgcnVsZXMgaWYgYSBwcm9wZXJ0eSBpcyBjb21tZW50ZWQgb3V0
IGluIGVhY2guIiwKLSAgICAgICAgdGVzdCgpIHsKLSAgICAgICAgICAgIGZvciAobGV0IHJ1bGUg
b2Ygbm9kZVN0eWxlcy5tYXRjaGVkUnVsZXMpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXJ1bGUu
c3R5bGUuZWRpdGFibGUpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAg
ICAgICAgICAgcnVsZS5zdHlsZS5wcm9wZXJ0aWVzWzFdLmNvbW1lbnRPdXQodHJ1ZSk7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2cocnVsZS5zdHlsZS5nZW5lcmF0ZUNTU1J1bGVT
dHJpbmcoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9KTsKLQotICAgIFdJLmRv
bU1hbmFnZXIucmVxdWVzdERvY3VtZW50KChkb2N1bWVudE5vZGUpID0+IHsKLSAgICAgICAgZG9j
dW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiN0ZXN0LW5vZGUiLCBhc3luYyAoY29udGVudE5vZGVJ
ZCkgPT4gewotICAgICAgICAgICAgaWYgKCFjb250ZW50Tm9kZUlkKSB7Ci0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIkRPTSBub2RlIG5vdCBmb3VuZC4iKTsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbGV0IGRvbU5vZGUgPSBXSS5kb21NYW5h
Z2VyLm5vZGVGb3JJZChjb250ZW50Tm9kZUlkKTsKLSAgICAgICAgICAgIG5vZGVTdHlsZXMgPSBX
SS5jc3NNYW5hZ2VyLnN0eWxlc0Zvck5vZGUoZG9tTm9kZSk7Ci0gICAgICAgICAgICBpZiAobm9k
ZVN0eWxlcy5uZWVkc1JlZnJlc2gpCi0gICAgICAgICAgICAgICAgYXdhaXQgbm9kZVN0eWxlcy5h
d2FpdEV2ZW50KFdJLkRPTU5vZGVTdHlsZXMuRXZlbnQuUmVmcmVzaGVkKTsKLQotICAgICAgICAg
ICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Ci0gICAgICAgIH0pOwotICAgIH0pOwot
fQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgPHA+
VGVzdGluZyB0aGF0IGdlbmVyYXRlZCBDU1MgcnVsZSBzdHJpbmdzIGhhdmUgcHJvcGVyIGZvcm1h
dHRpbmcuPC9wPgotICAgIDxkaXYgaWQ9InRlc3Qtbm9kZSIgc3R5bGU9ImE6MTtiOjI7YzozIj48
L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jc3MvZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jc3MvZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iMmMxNjM4YTg1NmRjZWU3YjBjMzFmMjI5NmEyOTM2NWZiYmJjYWEyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZW5lcmF0ZUZvcm1hdHRlZFRleHQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTkyIEBACitUZXN0aW5nIHRoYXQgZ2VuZXJhdGVkIENTUyBy
dWxlIHN0cmluZ3MgaGF2ZSBwcm9wZXIgZm9ybWF0dGluZy4KKworCis9PSBSdW5uaW5nIHRlc3Qg
c3VpdGU6IFdJLkNTU1N0eWVsRGVjbGFyYXRpb24ucHJvdG90eXBlLmdlbmVyYXRlRm9ybWF0dGVk
VGV4dAorLS0gUnVubmluZyB0ZXN0IGNhc2U6IENTUy5nZW5lcmF0ZUZvcm1hdHRlZFRleHQuSW5s
aW5lU3R5bGUKK2E6IDE7IGI6IDI7IGM6IDM7CisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDU1Mu
Z2VuZXJhdGVGb3JtYXR0ZWRUZXh0LklubGluZVN0eWxlLmluY2x1ZGVHcm91cGluZ3NBbmRTZWxl
Y3RvcnMKKyN0ZXN0LW5vZGUge2E6IDE7IGI6IDI7IGM6IDM7fQorCistLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogQ1NTLmdlbmVyYXRlRm9ybWF0dGVkVGV4dC5JbmxpbmVTdHlsZS5NdWx0aWxpbmUKKwor
ICAgIGE6IDE7CisgICAgYjogMjsKKyAgICBjOiAzOworCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNl
OiBDU1MuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0LklubGluZVN0eWxlLk11bHRpbGluZS5pbmNsdWRl
R3JvdXBpbmdzQW5kU2VsZWN0b3JzCisjdGVzdC1ub2RlIHsKKyAgICBhOiAxOworICAgIGI6IDI7
CisgICAgYzogMzsKK30KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENTUy5nZW5lcmF0ZUZvcm1h
dHRlZFRleHQuSW5saW5lU3R5bGUuV2l0aENvbW1lbnRlZFByb3BlcnR5CithOiAxOyAvKiBiOiAy
OyAqLyBjOiAzOworCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ1NTLmdlbmVyYXRlRm9ybWF0dGVk
VGV4dC5JbmxpbmVTdHlsZS5XaXRoQ29tbWVudGVkUHJvcGVydHkuaW5jbHVkZUdyb3VwaW5nc0Fu
ZFNlbGVjdG9ycworI3Rlc3Qtbm9kZSB7YTogMTsgLyogYjogMjsgKi8gYzogMzt9CisKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBDU1MuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0LklubGluZVN0eWxlLldp
dGhDb21tZW50ZWRQcm9wZXJ0eS5NdWx0aWxpbmUKKworICAgIGE6IDE7CisgICAgLyogYjogMjsg
Ki8KKyAgICBjOiAzOworCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDU1MuZ2VuZXJhdGVGb3Jt
YXR0ZWRUZXh0LklubGluZVN0eWxlLldpdGhDb21tZW50ZWRQcm9wZXJ0eS5pbmNsdWRlR3JvdXBp
bmdzQW5kU2VsZWN0b3JzLk11bHRpbGluZQorI3Rlc3Qtbm9kZSB7CisgICAgYTogMTsKKyAgICAv
KiBiOiAyOyAqLworICAgIGM6IDM7Cit9CisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDU1MuZ2Vu
ZXJhdGVGb3JtYXR0ZWRUZXh0Lk1hdGNoZWRSdWxlcworYTogMTsgYjogMjsgYzogMzsKK2E6IDE7
IGI6IDI7IGM6IDM7CithOiAxOyBiOiAyOyBjOiAzOworYTogMTsgYjogMjsgYzogMzsKK2E6IDE7
IGI6IDI7IGM6IDM7CisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDU1MuZ2VuZXJhdGVGb3JtYXR0
ZWRUZXh0Lk1hdGNoZWRSdWxlcy5pbmNsdWRlR3JvdXBpbmdzQW5kU2VsZWN0b3JzCitAbWVkaWEg
b25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBweCkge0BtZWRpYSBvbmx5IHNjcmVlbiBhbmQg
KG1pbi1oZWlnaHQ6IDBweCkge2JvZHkgPiBkaXYjdGVzdC1ub2RlIHthOiAxOyBiOiAyOyBjOiAz
O319fQorQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwcHgpIHtib2R5ID4gI3Rl
c3Qtbm9kZSB7YTogMTsgYjogMjsgYzogMzt9fQorYm9keSA+IGRpdiB7YTogMTsgYjogMjsgYzog
Mzt9Citib2R5ID4gKiB7YTogMTsgYjogMjsgYzogMzt9CisqIHthOiAxOyBiOiAyOyBjOiAzO30K
KworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENTUy5nZW5lcmF0ZUZvcm1hdHRlZFRleHQuTWF0Y2hl
ZFJ1bGVzLk11bHRpbGluZQorCisgICAgICAgICAgICBhOiAxOworICAgICAgICAgICAgYjogMjsK
KyAgICAgICAgICAgIGM6IDM7CisKKworICAgICAgICBhOiAxOworICAgICAgICBiOiAyOworICAg
ICAgICBjOiAzOworCisKKyAgICBhOiAxOworICAgIGI6IDI7CisgICAgYzogMzsKKworCisgICAg
YTogMTsKKyAgICBiOiAyOworICAgIGM6IDM7CisKKworICAgIGE6IDE7CisgICAgYjogMjsKKyAg
ICBjOiAzOworCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDU1MuZ2VuZXJhdGVGb3JtYXR0ZWRU
ZXh0Lk1hdGNoZWRSdWxlcy5pbmNsdWRlR3JvdXBpbmdzQW5kU2VsZWN0b3JzLk11bHRpbGluZQor
QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwcHgpIHsKKyAgICBAbWVkaWEgb25s
eSBzY3JlZW4gYW5kIChtaW4taGVpZ2h0OiAwcHgpIHsKKyAgICAgICAgYm9keSA+IGRpdiN0ZXN0
LW5vZGUgeworICAgICAgICAgICAgYTogMTsKKyAgICAgICAgICAgIGI6IDI7CisgICAgICAgICAg
ICBjOiAzOworICAgICAgICB9CisgICAgfQorfQorQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWlu
LXdpZHRoOiAwcHgpIHsKKyAgICBib2R5ID4gI3Rlc3Qtbm9kZSB7CisgICAgICAgIGE6IDE7Cisg
ICAgICAgIGI6IDI7CisgICAgICAgIGM6IDM7CisgICAgfQorfQorYm9keSA+IGRpdiB7CisgICAg
YTogMTsKKyAgICBiOiAyOworICAgIGM6IDM7Cit9Citib2R5ID4gKiB7CisgICAgYTogMTsKKyAg
ICBiOiAyOworICAgIGM6IDM7Cit9CisqIHsKKyAgICBhOiAxOworICAgIGI6IDI7CisgICAgYzog
MzsKK30KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENTUy5nZW5lcmF0ZUZvcm1hdHRlZFRleHQu
TWF0Y2hlZFJ1bGVzLldpdGhDb21tZW50ZWRQcm9wZXJ0aWVzCithOiAxOyAvKiBiOiAyOyAqLyBj
OiAzOworYTogMTsgLyogYjogMjsgKi8gYzogMzsKK2E6IDE7IC8qIGI6IDI7ICovIGM6IDM7Cith
OiAxOyAvKiBiOiAyOyAqLyBjOiAzOworYTogMTsgLyogYjogMjsgKi8gYzogMzsKKworLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IENTUy5nZW5lcmF0ZUZvcm1hdHRlZFRleHQuTWF0Y2hlZFJ1bGVzLldp
dGhDb21tZW50ZWRQcm9wZXJ0aWVzLmluY2x1ZGVHcm91cGluZ3NBbmRTZWxlY3RvcnMKK0BtZWRp
YSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMHB4KSB7QG1lZGlhIG9ubHkgc2NyZWVuIGFu
ZCAobWluLWhlaWdodDogMHB4KSB7Ym9keSA+IGRpdiN0ZXN0LW5vZGUge2E6IDE7IC8qIGI6IDI7
ICovIGM6IDM7fX19CitAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBweCkge2Jv
ZHkgPiAjdGVzdC1ub2RlIHthOiAxOyAvKiBiOiAyOyAqLyBjOiAzO319Citib2R5ID4gZGl2IHth
OiAxOyAvKiBiOiAyOyAqLyBjOiAzO30KK2JvZHkgPiAqIHthOiAxOyAvKiBiOiAyOyAqLyBjOiAz
O30KKyoge2E6IDE7IC8qIGI6IDI7ICovIGM6IDM7fQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTog
Q1NTLmdlbmVyYXRlRm9ybWF0dGVkVGV4dC5NYXRjaGVkUnVsZXMuV2l0aENvbW1lbnRlZFByb3Bl
cnRpZXMuTXVsdGlsaW5lCisKKyAgICAgICAgICAgIGE6IDE7CisgICAgICAgICAgICAvKiBiOiAy
OyAqLworICAgICAgICAgICAgYzogMzsKKworCisgICAgICAgIGE6IDE7CisgICAgICAgIC8qIGI6
IDI7ICovCisgICAgICAgIGM6IDM7CisKKworICAgIGE6IDE7CisgICAgLyogYjogMjsgKi8KKyAg
ICBjOiAzOworCisKKyAgICBhOiAxOworICAgIC8qIGI6IDI7ICovCisgICAgYzogMzsKKworCisg
ICAgYTogMTsKKyAgICAvKiBiOiAyOyAqLworICAgIGM6IDM7CisKKworLS0gUnVubmluZyB0ZXN0
IGNhc2U6IENTUy5nZW5lcmF0ZUZvcm1hdHRlZFRleHQuTWF0Y2hlZFJ1bGVzLldpdGhDb21tZW50
ZWRQcm9wZXJ0aWVzLmluY2x1ZGVHcm91cGluZ3NBbmRTZWxlY3RvcnMuTXVsdGlsaW5lCitAbWVk
aWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBweCkgeworICAgIEBtZWRpYSBvbmx5IHNj
cmVlbiBhbmQgKG1pbi1oZWlnaHQ6IDBweCkgeworICAgICAgICBib2R5ID4gZGl2I3Rlc3Qtbm9k
ZSB7CisgICAgICAgICAgICBhOiAxOworICAgICAgICAgICAgLyogYjogMjsgKi8KKyAgICAgICAg
ICAgIGM6IDM7CisgICAgICAgIH0KKyAgICB9Cit9CitAbWVkaWEgb25seSBzY3JlZW4gYW5kICht
aW4td2lkdGg6IDBweCkgeworICAgIGJvZHkgPiAjdGVzdC1ub2RlIHsKKyAgICAgICAgYTogMTsK
KyAgICAgICAgLyogYjogMjsgKi8KKyAgICAgICAgYzogMzsKKyAgICB9Cit9Citib2R5ID4gZGl2
IHsKKyAgICBhOiAxOworICAgIC8qIGI6IDI7ICovCisgICAgYzogMzsKK30KK2JvZHkgPiAqIHsK
KyAgICBhOiAxOworICAgIC8qIGI6IDI7ICovCisgICAgYzogMzsKK30KKyogeworICAgIGE6IDE7
CisgICAgLyogYjogMjsgKi8KKyAgICBjOiAzOworfQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY3NzL2dlbmVyYXRlRm9ybWF0dGVkVGV4dC5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2Nzcy9nZW5lcmF0ZUZvcm1hdHRlZFRleHQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOGJj
NzBhMGM2ZjRhZTAxYjk0MjBlYTg1OWI3ZjdlZjcxNzI4MWZjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZW5lcmF0ZUZvcm1hdHRlZFRleHQuaHRtbApAQCAt
MCwwICsxLDIwOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgor
KnthOjE7YjoyO2M6M30KK2JvZHk+KnthOjE7YjoyO2M6M30KK0BtZWRpYSBhbGwge2JvZHk+ZGl2
e2E6MTtiOjI7YzozfX0KK0BtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDowcHgpIHti
b2R5PiN0ZXN0LW5vZGV7YToxO2I6MjtjOjN9fQorQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWlu
LXdpZHRoOjBweCkge0BtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi1oZWlnaHQ6MHB4KSB7Ym9k
eT5kaXYjdGVzdC1ub2Rle2E6MTtiOjI7YzozfX19Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBsZXQgbm9kZVN0eWxlcyA9
IG51bGw7CisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVN5bmNTdWl0ZSgi
V0kuQ1NTU3R5ZWxEZWNsYXJhdGlvbi5wcm90b3R5cGUuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0Iik7
CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDU1MuZ2VuZXJhdGVG
b3JtYXR0ZWRUZXh0LklubGluZVN0eWxlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0
aGUgZm9ybWF0dGluZyBvZiB0aGUgZ2VuZXJhdGVkIGlubGluZSBzdHlsZSBzdHJpbmcuIiwKKyAg
ICAgICAgdGVzdCgpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKG5vZGVTdHlsZXMu
aW5saW5lU3R5bGUuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0KCkpOworICAgICAgICB9CisgICAgfSk7
CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDU1MuZ2VuZXJhdGVG
b3JtYXR0ZWRUZXh0LklubGluZVN0eWxlLmluY2x1ZGVHcm91cGluZ3NBbmRTZWxlY3RvcnMiLAor
ICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoZSBmb3JtYXR0aW5nIG9mIHRoZSBnZW5lcmF0
ZWQgaW5saW5lIHN0eWxlIHN0cmluZyAoaW5jbHVkaW5nIGdyb3VwaW5ncyBhbmQgc2VsZWN0b3Jz
KS4iLAorICAgICAgICB0ZXN0KCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2cobm9k
ZVN0eWxlcy5pbmxpbmVTdHlsZS5nZW5lcmF0ZUZvcm1hdHRlZFRleHQoe2luY2x1ZGVHcm91cGlu
Z3NBbmRTZWxlY3RvcnM6IHRydWV9KSk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRl
LmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkNTUy5nZW5lcmF0ZUZvcm1hdHRlZFRleHQu
SW5saW5lU3R5bGUuTXVsdGlsaW5lIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGUg
Zm9ybWF0dGluZyBvZiB0aGUgZ2VuZXJhdGVkIGlubGluZSBzdHlsZSBzdHJpbmcgKG11bHRpbGlu
ZSkuIiwKKyAgICAgICAgdGVzdCgpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKG5v
ZGVTdHlsZXMuaW5saW5lU3R5bGUuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0KHttdWx0aWxpbmU6IHRy
dWV9KSk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAg
ICAgICAgbmFtZTogIkNTUy5nZW5lcmF0ZUZvcm1hdHRlZFRleHQuSW5saW5lU3R5bGUuTXVsdGls
aW5lLmluY2x1ZGVHcm91cGluZ3NBbmRTZWxlY3RvcnMiLAorICAgICAgICBkZXNjcmlwdGlvbjog
IkNoZWNrIHRoZSBmb3JtYXR0aW5nIG9mIHRoZSBnZW5lcmF0ZWQgaW5saW5lIHN0eWxlIHN0cmlu
ZyAobXVsdGlsaW5lLCBhbmQgaW5jbHVkaW5nIGdyb3VwaW5ncyBhbmQgc2VsZWN0b3JzKS4iLAor
ICAgICAgICB0ZXN0KCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2cobm9kZVN0eWxl
cy5pbmxpbmVTdHlsZS5nZW5lcmF0ZUZvcm1hdHRlZFRleHQoe211bHRpbGluZTogdHJ1ZSwgaW5j
bHVkZUdyb3VwaW5nc0FuZFNlbGVjdG9yczogdHJ1ZX0pKTsKKyAgICAgICAgfQorICAgIH0pOwor
CisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlRm9y
bWF0dGVkVGV4dC5JbmxpbmVTdHlsZS5XaXRoQ29tbWVudGVkUHJvcGVydHkiLAorICAgICAgICBk
ZXNjcmlwdGlvbjogIkNoZWNrIHRoZSBmb3JtYXR0aW5nIG9mIHRoZSBnZW5lcmF0ZWQgaW5saW5l
IHN0eWxlIHN0cmluZyBpZiBhIHByb3BlcnR5IGlzIGNvbW1lbnRlZCBvdXQuIiwKKyAgICAgICAg
dGVzdCgpIHsKKyAgICAgICAgICAgIG5vZGVTdHlsZXMuaW5saW5lU3R5bGUucHJvcGVydGllc1sx
XS5jb21tZW50T3V0KHRydWUpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2cobm9kZVN0
eWxlcy5pbmxpbmVTdHlsZS5nZW5lcmF0ZUZvcm1hdHRlZFRleHQoKSk7CisgICAgICAgIH0sCisg
ICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDU1MuZ2Vu
ZXJhdGVGb3JtYXR0ZWRUZXh0LklubGluZVN0eWxlLldpdGhDb21tZW50ZWRQcm9wZXJ0eS5pbmNs
dWRlR3JvdXBpbmdzQW5kU2VsZWN0b3JzIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0
aGUgZm9ybWF0dGluZyBvZiB0aGUgZ2VuZXJhdGVkIGlubGluZSBzdHlsZSBzdHJpbmcgKGluY2x1
ZGluZyBncm91cGluZ3MgYW5kIHNlbGVjdG9ycykgaWYgYSBwcm9wZXJ0eSBpcyBjb21tZW50ZWQg
b3V0LiIsCisgICAgICAgIHRlc3QoKSB7CisgICAgICAgICAgICBub2RlU3R5bGVzLmlubGluZVN0
eWxlLnByb3BlcnRpZXNbMV0uY29tbWVudE91dCh0cnVlKTsKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKG5vZGVTdHlsZXMuaW5saW5lU3R5bGUuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0KHtp
bmNsdWRlR3JvdXBpbmdzQW5kU2VsZWN0b3JzOiB0cnVlfSkpOworICAgICAgICB9LAorICAgIH0p
OworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRl
Rm9ybWF0dGVkVGV4dC5JbmxpbmVTdHlsZS5XaXRoQ29tbWVudGVkUHJvcGVydHkuTXVsdGlsaW5l
IiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGUgZm9ybWF0dGluZyBvZiB0aGUgZ2Vu
ZXJhdGVkIGlubGluZSBzdHlsZSBzdHJpbmcgKG11bHRpbGluZSkgaWYgYSBwcm9wZXJ0eSBpcyBj
b21tZW50ZWQgb3V0LiIsCisgICAgICAgIHRlc3QoKSB7CisgICAgICAgICAgICBub2RlU3R5bGVz
LmlubGluZVN0eWxlLnByb3BlcnRpZXNbMV0uY29tbWVudE91dCh0cnVlKTsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QubG9nKG5vZGVTdHlsZXMuaW5saW5lU3R5bGUuZ2VuZXJhdGVGb3JtYXR0
ZWRUZXh0KHttdWx0aWxpbmU6IHRydWV9KSk7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBz
dWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDU1MuZ2VuZXJhdGVGb3JtYXR0ZWRU
ZXh0LklubGluZVN0eWxlLldpdGhDb21tZW50ZWRQcm9wZXJ0eS5pbmNsdWRlR3JvdXBpbmdzQW5k
U2VsZWN0b3JzLk11bHRpbGluZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhlIGZv
cm1hdHRpbmcgb2YgdGhlIGdlbmVyYXRlZCBpbmxpbmUgc3R5bGUgc3RyaW5nIChtdWx0aWxpbmUs
IGFuZCBpbmNsdWRpbmcgZ3JvdXBpbmdzIGFuZCBzZWxlY3RvcnMpIGlmIGEgcHJvcGVydHkgaXMg
Y29tbWVudGVkIG91dC4iLAorICAgICAgICB0ZXN0KCkgeworICAgICAgICAgICAgbm9kZVN0eWxl
cy5pbmxpbmVTdHlsZS5wcm9wZXJ0aWVzWzFdLmNvbW1lbnRPdXQodHJ1ZSk7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZyhub2RlU3R5bGVzLmlubGluZVN0eWxlLmdlbmVyYXRlRm9ybWF0
dGVkVGV4dCh7aW5jbHVkZUdyb3VwaW5nc0FuZFNlbGVjdG9yczogdHJ1ZSwgbXVsdGlsaW5lOiB0
cnVlfSkpOworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENhc2Uoewor
ICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlRm9ybWF0dGVkVGV4dC5NYXRjaGVkUnVsZXMiLAor
ICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoZSBmb3JtYXR0aW5nIG9mIHRoZSBnZW5lcmF0
ZWQgc3RyaW5nIGZvciBhbGwgbWF0Y2hlZCBDU1MgcnVsZXMuIiwKKyAgICAgICAgdGVzdCgpIHsK
KyAgICAgICAgICAgIGZvciAobGV0IHJ1bGUgb2Ygbm9kZVN0eWxlcy5tYXRjaGVkUnVsZXMpIHsK
KyAgICAgICAgICAgICAgICBpZiAoIXJ1bGUuc3R5bGUuZWRpdGFibGUpCisgICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKHJ1bGUu
c3R5bGUuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0KCkpOworICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDU1Mu
Z2VuZXJhdGVGb3JtYXR0ZWRUZXh0Lk1hdGNoZWRSdWxlcy5pbmNsdWRlR3JvdXBpbmdzQW5kU2Vs
ZWN0b3JzIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGUgZm9ybWF0dGluZyBvZiB0
aGUgZ2VuZXJhdGVkIHN0cmluZyAoaW5jbHVkaW5nIGdyb3VwaW5ncyBhbmQgc2VsZWN0b3JzKSBm
b3IgYWxsIG1hdGNoZWQgQ1NTIHJ1bGVzLiIsCisgICAgICAgIHRlc3QoKSB7CisgICAgICAgICAg
ICBmb3IgKGxldCBydWxlIG9mIG5vZGVTdHlsZXMubWF0Y2hlZFJ1bGVzKSB7CisgICAgICAgICAg
ICAgICAgaWYgKCFydWxlLnN0eWxlLmVkaXRhYmxlKQorICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhydWxlLnN0eWxlLmdlbmVy
YXRlRm9ybWF0dGVkVGV4dCh7aW5jbHVkZUdyb3VwaW5nc0FuZFNlbGVjdG9yczogdHJ1ZX0pKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENh
c2UoeworICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlRm9ybWF0dGVkVGV4dC5NYXRjaGVkUnVs
ZXMuTXVsdGlsaW5lIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGUgZm9ybWF0dGlu
ZyBvZiB0aGUgZ2VuZXJhdGVkIHN0cmluZyAobXVsdGlsaW5lKSBmb3IgYWxsIG1hdGNoZWQgQ1NT
IHJ1bGVzLiIsCisgICAgICAgIHRlc3QoKSB7CisgICAgICAgICAgICBmb3IgKGxldCBydWxlIG9m
IG5vZGVTdHlsZXMubWF0Y2hlZFJ1bGVzKSB7CisgICAgICAgICAgICAgICAgaWYgKCFydWxlLnN0
eWxlLmVkaXRhYmxlKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZyhydWxlLnN0eWxlLmdlbmVyYXRlRm9ybWF0dGVkVGV4dCh7
bXVsdGlsaW5lOiB0cnVlfSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSk7CisK
KyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDU1MuZ2VuZXJhdGVGb3Jt
YXR0ZWRUZXh0Lk1hdGNoZWRSdWxlcy5pbmNsdWRlR3JvdXBpbmdzQW5kU2VsZWN0b3JzLk11bHRp
bGluZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhlIGZvcm1hdHRpbmcgb2YgdGhl
IGdlbmVyYXRlZCBzdHJpbmcgKG11bHRpbGluZSwgYW5kIGluY2x1ZGluZyBncm91cGluZ3MgYW5k
IHNlbGVjdG9ycykgZm9yIGFsbCBtYXRjaGVkIENTUyBydWxlcy4iLAorICAgICAgICB0ZXN0KCkg
eworICAgICAgICAgICAgZm9yIChsZXQgcnVsZSBvZiBub2RlU3R5bGVzLm1hdGNoZWRSdWxlcykg
eworICAgICAgICAgICAgICAgIGlmICghcnVsZS5zdHlsZS5lZGl0YWJsZSkKKyAgICAgICAgICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2cocnVs
ZS5zdHlsZS5nZW5lcmF0ZUZvcm1hdHRlZFRleHQoe2luY2x1ZGVHcm91cGluZ3NBbmRTZWxlY3Rv
cnM6IHRydWUsIG11bHRpbGluZTogdHJ1ZX0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
ICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQ1NTLmdl
bmVyYXRlRm9ybWF0dGVkVGV4dC5NYXRjaGVkUnVsZXMuV2l0aENvbW1lbnRlZFByb3BlcnRpZXMi
LAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoZSBmb3JtYXR0aW5nIG9mIHRoZSBnZW5l
cmF0ZWQgc3RyaW5nIGZvciBhbGwgbWF0Y2hlZCBDU1MgcnVsZXMgaWYgYSBwcm9wZXJ0eSBpcyBj
b21tZW50ZWQgb3V0IGluIGVhY2guIiwKKyAgICAgICAgdGVzdCgpIHsKKyAgICAgICAgICAgIGZv
ciAobGV0IHJ1bGUgb2Ygbm9kZVN0eWxlcy5tYXRjaGVkUnVsZXMpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoIXJ1bGUuc3R5bGUuZWRpdGFibGUpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICAgICAgICAgIHJ1bGUuc3R5bGUucHJvcGVydGllc1sxXS5jb21tZW50T3V0KHRy
dWUpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKHJ1bGUuc3R5bGUuZ2VuZXJh
dGVGb3JtYXR0ZWRUZXh0KCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSk7CisK
KyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDU1MuZ2VuZXJhdGVGb3Jt
YXR0ZWRUZXh0Lk1hdGNoZWRSdWxlcy5XaXRoQ29tbWVudGVkUHJvcGVydGllcy5pbmNsdWRlR3Jv
dXBpbmdzQW5kU2VsZWN0b3JzIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGUgZm9y
bWF0dGluZyBvZiB0aGUgZ2VuZXJhdGVkIHN0cmluZyAoaW5jbHVkaW5nIGdyb3VwaW5ncyBhbmQg
c2VsZWN0b3JzKSBmb3IgYWxsIG1hdGNoZWQgQ1NTIHJ1bGVzIGlmIGEgcHJvcGVydHkgaXMgY29t
bWVudGVkIG91dCBpbiBlYWNoLiIsCisgICAgICAgIHRlc3QoKSB7CisgICAgICAgICAgICBmb3Ig
KGxldCBydWxlIG9mIG5vZGVTdHlsZXMubWF0Y2hlZFJ1bGVzKSB7CisgICAgICAgICAgICAgICAg
aWYgKCFydWxlLnN0eWxlLmVkaXRhYmxlKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgICAgICAgICBydWxlLnN0eWxlLnByb3BlcnRpZXNbMV0uY29tbWVudE91dCh0cnVl
KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhydWxlLnN0eWxlLmdlbmVyYXRl
Rm9ybWF0dGVkVGV4dCh7aW5jbHVkZUdyb3VwaW5nc0FuZFNlbGVjdG9yczogdHJ1ZX0pKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENhc2Uo
eworICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlRm9ybWF0dGVkVGV4dC5NYXRjaGVkUnVsZXMu
V2l0aENvbW1lbnRlZFByb3BlcnRpZXMuTXVsdGlsaW5lIiwKKyAgICAgICAgZGVzY3JpcHRpb246
ICJDaGVjayB0aGUgZm9ybWF0dGluZyBvZiB0aGUgZ2VuZXJhdGVkIHN0cmluZyAobXVsdGlsaW5l
KSBmb3IgYWxsIG1hdGNoZWQgQ1NTIHJ1bGVzIGlmIGEgcHJvcGVydHkgaXMgY29tbWVudGVkIG91
dCBpbiBlYWNoLiIsCisgICAgICAgIHRlc3QoKSB7CisgICAgICAgICAgICBmb3IgKGxldCBydWxl
IG9mIG5vZGVTdHlsZXMubWF0Y2hlZFJ1bGVzKSB7CisgICAgICAgICAgICAgICAgaWYgKCFydWxl
LnN0eWxlLmVkaXRhYmxlKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
ICAgICAgICBydWxlLnN0eWxlLnByb3BlcnRpZXNbMV0uY29tbWVudE91dCh0cnVlKTsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhydWxlLnN0eWxlLmdlbmVyYXRlRm9ybWF0dGVk
VGV4dCh7bXVsdGlsaW5lOiB0cnVlfSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
fSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDU1MuZ2VuZXJh
dGVGb3JtYXR0ZWRUZXh0Lk1hdGNoZWRSdWxlcy5XaXRoQ29tbWVudGVkUHJvcGVydGllcy5pbmNs
dWRlR3JvdXBpbmdzQW5kU2VsZWN0b3JzLk11bHRpbGluZSIsCisgICAgICAgIGRlc2NyaXB0aW9u
OiAiQ2hlY2sgdGhlIGZvcm1hdHRpbmcgb2YgdGhlIGdlbmVyYXRlZCBzdHJpbmcgKG11bHRpbGlu
ZSwgYW5kIGluY2x1ZGluZyBncm91cGluZ3MgYW5kIHNlbGVjdG9ycykgZm9yIGFsbCBtYXRjaGVk
IENTUyBydWxlcyBpZiBhIHByb3BlcnR5IGlzIGNvbW1lbnRlZCBvdXQgaW4gZWFjaC4iLAorICAg
ICAgICB0ZXN0KCkgeworICAgICAgICAgICAgZm9yIChsZXQgcnVsZSBvZiBub2RlU3R5bGVzLm1h
dGNoZWRSdWxlcykgeworICAgICAgICAgICAgICAgIGlmICghcnVsZS5zdHlsZS5lZGl0YWJsZSkK
KyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgcnVsZS5zdHls
ZS5wcm9wZXJ0aWVzWzFdLmNvbW1lbnRPdXQodHJ1ZSk7CisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2cocnVsZS5zdHlsZS5nZW5lcmF0ZUZvcm1hdHRlZFRleHQoe2luY2x1ZGVHcm91
cGluZ3NBbmRTZWxlY3RvcnM6IHRydWUsIG11bHRpbGluZTogdHJ1ZX0pKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgIH0pOworCisgICAgV0kuZG9tTWFuYWdlci5yZXF1ZXN0RG9jdW1l
bnQoKGRvY3VtZW50Tm9kZSkgPT4geworICAgICAgICBkb2N1bWVudE5vZGUucXVlcnlTZWxlY3Rv
cigiI3Rlc3Qtbm9kZSIsIGFzeW5jIChjb250ZW50Tm9kZUlkKSA9PiB7CisgICAgICAgICAgICBp
ZiAoIWNvbnRlbnROb2RlSWQpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
RE9NIG5vZGUgbm90IGZvdW5kLiIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBsZXQgZG9tTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9kZUZvcklkKGNvbnRlbnRO
b2RlSWQpOworICAgICAgICAgICAgbm9kZVN0eWxlcyA9IFdJLmNzc01hbmFnZXIuc3R5bGVzRm9y
Tm9kZShkb21Ob2RlKTsKKyAgICAgICAgICAgIGlmIChub2RlU3R5bGVzLm5lZWRzUmVmcmVzaCkK
KyAgICAgICAgICAgICAgICBhd2FpdCBub2RlU3R5bGVzLmF3YWl0RXZlbnQoV0kuRE9NTm9kZVN0
eWxlcy5FdmVudC5SZWZyZXNoZWQpOworCisgICAgICAgICAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNB
bmRGaW5pc2goKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0aW5nIHRoYXQgZ2VuZXJhdGVk
IENTUyBydWxlIHN0cmluZ3MgaGF2ZSBwcm9wZXIgZm9ybWF0dGluZy48L3A+CisgICAgPGRpdiBp
ZD0idGVzdC1ub2RlIiBzdHlsZT0iYToxO2I6MjtjOjMiPjwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktY3NzLXByb3Bl
cnR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9kaWZ5LWNzcy1w
cm9wZXJ0eS1leHBlY3RlZC50eHQKaW5kZXggZWMxNjA3M2IyMzk1ZmRiOTEzNjQ2N2M1OGIzMjRl
MzBhMDE4OGM2MC4uNTQyMzIyNGNkNTg5MGZkYmZjMjgzYmFiMjM3NGUxODRkMzk4ZThlYSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1jc3MtcHJv
cGVydHktZXhwZWN0ZWQudHh0CkBAIC01LDYgKzUsNyBAQCBUZXN0aW5nIHRoYXQgQ1NTU3R5bGVE
ZWNsYXJhdGlvbiB1cGRhdGUgaW1tZWRpYXRlbHkgYWZ0ZXIgbW9kaWZ5aW5nIGl0cyBwcm9wZXJ0
aQogLS0gUnVubmluZyB0ZXN0IGNhc2U6IFVwZGF0ZSB2YWx1ZSB3aGVuIENTU1N0eWxlRGVjbGFy
YXRpb24gaXMgbm90IGxvY2tlZAogUEFTUzogImZvbnQtc2l6ZSIgcHJvcGVydHkgdmFsdWUgc2hv
dWxkIHVwZGF0ZSBpbW1lZGlhdGVseS4KIFBBU1M6IFN0eWxlIGRlY2xhcmF0aW9uIHRleHQgc2hv
dWxkIHVwZGF0ZSBpbW1lZGlhdGVseS4KK1BBU1M6IHN0eWxlU2hlZXRUZXh0UmFuZ2Ugc2hvdWxk
IGNvcnJlc3BvbmQgdG8gImZvbnQtc2l6ZTogMTBweDsiCiAKIC0tIFJ1bm5pbmcgdGVzdCBjYXNl
OiBVcGRhdGUgdmFsdWUgd2hlbiBDU1NTdHlsZURlY2xhcmF0aW9uIGlzIGxvY2tlZAogUEFTUzog
ImZvbnQtc2l6ZSIgcHJvcGVydHkgdmFsdWUgc2hvdWxkIHVwZGF0ZSBpbW1lZGlhdGVseS4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9kaWZ5LWNzcy1wcm9wZXJ0eS5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5Lmh0bWwK
aW5kZXggMjg2M2Y3ODI1MGRhZTZhMDJhYzYwY2U4MjFjMDljYmVlMWQ5NTRmOC4uZDlkYTlhYTBj
MDcwYjI0OTBmMjgwYTdiNGYzNGZlMjBmNDdlYWU2ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5Lmh0bWwKQEAgLTEsNiArMSw3IEBACiA8
IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9InJlc291cmNlcy9tb2RpZnktY3NzLXByb3BlcnR5LmNzcyI+CiA8c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQ+CiBmdW5jdGlvbiBtYWtlTmFycm93KCkgewpAQCAtMzksMTQgKzQwLDIy
IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAKICAgICAgICAgICAgIGxldCBzdHlsZURlY2xhcmF0aW9u
ID0gZ2V0TWF0Y2hlZFN0eWxlRGVjbGFyYXRpb24oKTsKICAgICAgICAgICAgIHN0eWxlRGVjbGFy
YXRpb24ubG9ja2VkID0gZmFsc2U7CisKKyAgICAgICAgICAgIHN0eWxlRGVjbGFyYXRpb24uc2lu
Z2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ1NTU3R5bGVEZWNsYXJhdGlvbi5FdmVudC5Qcm9wZXJ0
aWVzQ2hhbmdlZCwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgICAgICBsZXQgZm9udFBy
b3BlcnR5ID0gZ2V0UHJvcGVydHkoImZvbnQtc2l6ZSIpOworICAgICAgICAgICAgICAgIGxldCBy
ZWxhdGl2ZVJhbmdlID0gZm9udFByb3BlcnR5LnN0eWxlU2hlZXRUZXh0UmFuZ2UucmVsYXRpdmVU
byhmb250UHJvcGVydHkub3duZXJTdHlsZS5zdHlsZVNoZWV0VGV4dFJhbmdlLnN0YXJ0TGluZSwg
Zm9udFByb3BlcnR5Lm93bmVyU3R5bGUuc3R5bGVTaGVldFRleHRSYW5nZS5zdGFydE9mZnNldCk7
CisgICAgICAgICAgICAgICAgcmVsYXRpdmVSYW5nZS5yZXNvbHZlT2Zmc2V0cyhmb250UHJvcGVy
dHkub3duZXJTdHlsZS50ZXh0KTsKKyAgICAgICAgICAgICAgICBsZXQgcHJvcGVydHlUZXh0ID0g
Zm9udFByb3BlcnR5Lm93bmVyU3R5bGUudGV4dC5zbGljZShyZWxhdGl2ZVJhbmdlLnN0YXJ0T2Zm
c2V0LCByZWxhdGl2ZVJhbmdlLmVuZE9mZnNldCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RFcXVhbChwcm9wZXJ0eVRleHQsICJmb250LXNpemU6IDEwcHg7IiwgYHN0eWxl
U2hlZXRUZXh0UmFuZ2Ugc2hvdWxkIGNvcnJlc3BvbmQgdG8gImZvbnQtc2l6ZTogMTBweDsiYCk7
CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfSk7CisKICAgICAgICAg
ICAgIGdldFByb3BlcnR5KCJmb250LXNpemUiKS5yYXdWYWx1ZSA9ICIxMXB4IjsKICAgICAgICAg
ICAgIGdldFByb3BlcnR5KCJmb250LXNpemUiKS5yYXdWYWx1ZSA9ICIxMHB4IjsKIAogICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChnZXRQcm9wZXJ0eSgiZm9udC1zaXplIiku
cmF3VmFsdWUsICIxMHB4IiwgYCJmb250LXNpemUiIHByb3BlcnR5IHZhbHVlIHNob3VsZCB1cGRh
dGUgaW1tZWRpYXRlbHkuYCk7CiAKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1
YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0LCBgZm9udC1zaXplOiAxMHB4OyBjb2xvcjogYW50aXF1
ZXdoaXRlYCwgYFN0eWxlIGRlY2xhcmF0aW9uIHRleHQgc2hvdWxkIHVwZGF0ZSBpbW1lZGlhdGVs
eS5gKTsKLQotICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RFcXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGBcbiAgICBmb250LXNpemU6IDEw
cHg7XG4gICAgY29sb3I6IGFudGlxdWV3aGl0ZTtcbmAsIGBTdHlsZSBkZWNsYXJhdGlvbiB0ZXh0
IHNob3VsZCB1cGRhdGUgaW1tZWRpYXRlbHkuYCk7CiAgICAgICAgIH0KICAgICB9KTsKIApAQCAt
ODAsMTIgKzg5LDExIEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdEVxdWFsKGdldFByb3BlcnR5KCJmb250LXNpemUiKS5yYXdWYWx1ZSwgIjE2cHgi
LCBgImZvbnQtc2l6ZSIgcHJvcGVydHkgdmFsdWUgc2hvdWxkIHVwZGF0ZSBpbW1lZGlhdGVseS5g
KTsKIAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHlsZURlY2xhcmF0
aW9uLnRleHQsIGAKLSAgICAgICAgZm9udC1zaXplOiAxNnB4OwotICAgICAgICBjb2xvcjogIzMz
MzsKLQotICAgICAgICBtYXJnaW4tbGVmdDogMDsKLSAgICAgICAgbWFyZ2luLXRvcDogMWVtOwot
ICAgIGAsIGBTdHlsZSBkZWNsYXJhdGlvbiB0ZXh0IHNob3VsZCB1cGRhdGUgaW1tZWRpYXRlbHku
YCk7CisgICAgZm9udC1zaXplOiAxNnB4OworICAgIGNvbG9yOiAjMzMzOworICAgIG1hcmdpbi1s
ZWZ0OiAwOworICAgIG1hcmdpbi10b3A6IDFlbTsKK2AsIGBTdHlsZSBkZWNsYXJhdGlvbiB0ZXh0
IHNob3VsZCB1cGRhdGUgaW1tZWRpYXRlbHkuYCk7CiAKICAgICAgICAgICAgIHN0eWxlRGVjbGFy
YXRpb24ubG9ja2VkID0gZmFsc2U7CiAKQEAgLTI0Myw3ICsyNTEsNyBAQCBmdW5jdGlvbiB0ZXN0
KCkgewogICAgICAgICAgICAgbGV0IGRpc2FibGVkID0gZmFsc2U7CiAgICAgICAgICAgICBnZXRQ
cm9wZXJ0eSgicGFkZGluZy1yaWdodCIpLmNvbW1lbnRPdXQoZGlzYWJsZWQpOwogCi0gICAgICAg
ICAgICBsZXQgZXhwZWN0ZWRTdHlsZVRleHQgPSBgXG4gICAgICAgIC8qIHBhZGRpbmctbGVmdDog
MmVtOyAqL1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG4gICAgYDsKKyAgICAgICAgICAg
IGxldCBleHBlY3RlZFN0eWxlVGV4dCA9IGBcbiAgICAvKiBwYWRkaW5nLWxlZnQ6IDJlbTsgKi9c
biAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG5gOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RFcXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGV4cGVjdGVkU3R5bGVUZXh0LCBgU3R5
bGUgZGVjbGFyYXRpb24gdGV4dCBzaG91bGQgdXBkYXRlIGltbWVkaWF0ZWx5IHdpdGggdW5jb21t
ZW50ZWQgcHJvcGVydHkuYCk7CiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhh
dChnZXRQcm9wZXJ0eSgicGFkZGluZy1yaWdodCIpLmVuYWJsZWQsIGBVbmNvbW1lbnRlZCBwcm9w
ZXJ0eSBzaG91bGQgYmUgZW5hYmxlZC5gKTsKQEAgLTI1MSw3ICsyNTksNyBAQCBmdW5jdGlvbiB0
ZXN0KCkgewogICAgICAgICAgICAgZGlzYWJsZWQgPSB0cnVlOwogICAgICAgICAgICAgZ2V0UHJv
cGVydHkoInBhZGRpbmctcmlnaHQiKS5jb21tZW50T3V0KGRpc2FibGVkKTsKIAotICAgICAgICAg
ICAgZXhwZWN0ZWRTdHlsZVRleHQgPSBgXG4gICAgICAgIC8qIHBhZGRpbmctbGVmdDogMmVtOyAq
L1xuICAgICAgICAvKiBwYWRkaW5nLXJpZ2h0OiAwcHg7ICovXG4gICAgYDsKKyAgICAgICAgICAg
IGV4cGVjdGVkU3R5bGVUZXh0ID0gYFxuICAgIC8qIHBhZGRpbmctbGVmdDogMmVtOyAqL1xuICAg
IC8qIHBhZGRpbmctcmlnaHQ6IDBweDsgKi9cbmA7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdEVxdWFsKHN0eWxlRGVjbGFyYXRpb24udGV4dCwgZXhwZWN0ZWRTdHlsZVRleHQsIGBT
dHlsZSBkZWNsYXJhdGlvbiB0ZXh0IHNob3VsZCB1cGRhdGUgaW1tZWRpYXRlbHkgd2l0aCBjb21t
ZW50ZWQgb3V0IHByb3BlcnR5LmApOwogCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dFRoYXQoIWdldFByb3BlcnR5KCJwYWRkaW5nLXJpZ2h0IikuZW5hYmxlZCwgYENvbW1lbnRlZCBv
dXQgcHJvcGVydHkgc2hvdWxkIGJlIGRpc2FibGVkLmApOwpAQCAtMjkwLDcgKzI5OCw3IEBAIGZ1
bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICBsZXQgZGlzYWJsZWQgPSBmYWxzZTsKICAgICAg
ICAgICAgIGdldFByb3BlcnR5KCJmb250LXNpemUiKS5jb21tZW50T3V0KGRpc2FibGVkKTsKIAot
ICAgICAgICAgICAgbGV0IGV4cGVjdGVkU3R5bGVUZXh0ID0gYGZvbnQtc2l6ZTogMTNweDsvKmJv
cmRlcjogMnB4IHNvbGlkIGJyb3duKi9gOworICAgICAgICAgICAgbGV0IGV4cGVjdGVkU3R5bGVU
ZXh0ID0gYFxuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAvKiBib3JkZXI6IDJweCBzb2xpZCBi
cm93bjsgKi9cbmA7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxl
RGVjbGFyYXRpb24udGV4dCwgZXhwZWN0ZWRTdHlsZVRleHQsIGBTdHlsZSBkZWNsYXJhdGlvbiB0
ZXh0IHNob3VsZCB1cGRhdGUgaW1tZWRpYXRlbHkgd2l0aCB1bmNvbW1lbnRlZCBwcm9wZXJ0eS5g
KTsKIAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGdldFByb3BlcnR5KCJm
b250LXNpemUiKS5lbmFibGVkLCBgVW5jb21tZW50ZWQgcHJvcGVydHkgc2hvdWxkIGJlIGVuYWJs
ZWQuYCk7CkBAIC0yOTksNyArMzA3LDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAg
IGRpc2FibGVkID0gZmFsc2U7CiAgICAgICAgICAgICBnZXRQcm9wZXJ0eSgiYm9yZGVyIikuY29t
bWVudE91dChkaXNhYmxlZCk7CiAKLSAgICAgICAgICAgIGV4cGVjdGVkU3R5bGVUZXh0ID0gYGZv
bnQtc2l6ZTogMTNweDtib3JkZXI6IDJweCBzb2xpZCBicm93bmA7CisgICAgICAgICAgICBleHBl
Y3RlZFN0eWxlVGV4dCA9IGBcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgYm9yZGVyOiAycHgg
c29saWQgYnJvd25cbmA7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0
eWxlRGVjbGFyYXRpb24udGV4dCwgZXhwZWN0ZWRTdHlsZVRleHQsIGBTdHlsZSBkZWNsYXJhdGlv
biB0ZXh0IHNob3VsZCB1cGRhdGUgaW1tZWRpYXRlbHkgd2l0aCBjb21tZW50ZWQgb3V0IHByb3Bl
cnR5LmApOwogCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZ2V0UHJvcGVy
dHkoImJvcmRlciIpLmVuYWJsZWQsIGBVbmNvbW1lbnRlZCBwcm9wZXJ0eSBzaG91bGQgYmUgZW5h
YmxlZC5gKTsKQEAgLTMzMSwyMiArMzM5LDYgQEAgZnVuY3Rpb24gdGVzdCgpIHsKIDwvaGVhZD4K
IDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KICAgICA8cD5UZXN0aW5nIHRoYXQgQ1NTU3R5bGVE
ZWNsYXJhdGlvbiB1cGRhdGUgaW1tZWRpYXRlbHkgYWZ0ZXIgbW9kaWZ5aW5nIGl0cyBwcm9wZXJ0
aWVzIHdoZW4gaXQgaXMgbm90IGxvY2tlZC48L3A+Ci0KLSAgICA8c3R5bGU+Ci0gICAgLnJ1bGUt
YSB7Ci0gICAgICAgIGZvbnQtc2l6ZTogMTRweDsKLSAgICAgICAgY29sb3I6ICMzMzM7Ci0KLSAg
ICAgICAgbWFyZ2luLWxlZnQ6IDA7Ci0gICAgICAgIG1hcmdpbi10b3A6IDFlbTsKLSAgICB9Ci0g
ICAgLnJ1bGUtYiB7Zm9udC1zaXplOiAxMnB4OyBjb2xvcjogYW50aXF1ZXdoaXRlfQotICAgIC5y
dWxlLWMgewotICAgICAgICAvKiBwYWRkaW5nLWxlZnQ6IDJlbTsgKi8KLSAgICAgICAgLyogcGFk
ZGluZy1yaWdodDogMHB4OyAqLwotICAgIH0KLSAgICAucnVsZS1kIHsvKmZvbnQtc2l6ZTogMTNw
eDsqLy8qYm9yZGVyOiAycHggc29saWQgYnJvd24qL30KLSAgICA8L3N0eWxlPgogICAgIDxkaXYg
aWQ9IngiIGNsYXNzPSJ0ZXN0LW5vZGUgcnVsZS1hIHJ1bGUtYiBydWxlLWMgcnVsZS1kIiBzdHls
ZT0id2lkdGg6IDEwMHB4Ij48L2Rpdj4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9kaWZ5LWlubGluZS1zdHlsZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1pbmxpbmUtc3R5bGUtZXhwZWN0ZWQu
dHh0CmluZGV4IDM5N2NhNjYzMDVmNzI1NzFhMjFkYTJkZjcyYzcxMjUxOTViNDkzODYuLjQxMjM1
ZWZiMTg5YTc5OTYzZjNhMDNmYjA4YzNiMzFmMzNmZTZlMjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jc3MvbW9kaWZ5LWlubGluZS1zdHlsZS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktaW5saW5lLXN0eWxlLWV4cGVjdGVkLnR4
dApAQCAtNywxMiArNywxMiBAQCBDU1NQcm9wZXJ0eSBjaGFuZ2VkIHRvICJmb250OiAxMnB4IG5v
cm1hbCBzYW5zLXNlcmlmIWltcG9ydGFudDsiLgogZm9udDogMTJweCBub3JtYWwgc2Fucy1zZXJp
ZiFpbXBvcnRhbnQ7CiAKIENTU1Byb3BlcnR5IGNoYW5nZWQgdG8gImNvbG9yOiByZWQ7Ii4KLWZv
bnQ6IDEycHggbm9ybWFsIHNhbnMtc2VyaWYhaW1wb3J0YW50O2NvbG9yOiByZWQ7Citmb250OiAx
MnB4IG5vcm1hbCBzYW5zLXNlcmlmIWltcG9ydGFudDsgY29sb3I6IHJlZDsKIAogQ1NTUHJvcGVy
dHkgY2hhbmdlZCB0byAiZm9udDogMTJweCBzYW5zLXNlcmlmOyIuCi1mb250OiAxMnB4IHNhbnMt
c2VyaWY7Y29sb3I6IHJlZDsKK2ZvbnQ6IDEycHggc2Fucy1zZXJpZjsgY29sb3I6IHJlZDsKIAog
Q1NTUHJvcGVydHkgY2hhbmdlZCB0byAiY29sb3I6IGludmFsaWRfYzAxMHI7Ii4KLWZvbnQ6IDEy
cHggc2Fucy1zZXJpZjtjb2xvcjogaW52YWxpZF9jMDEwcjsKK2ZvbnQ6IDEycHggc2Fucy1zZXJp
ZjsgY29sb3I6IGludmFsaWRfYzAxMHI7CiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2Nzcy9yZXNvdXJjZXMvbW9kaWZ5LWNzcy1wcm9wZXJ0eS5jc3MgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY3NzL3Jlc291cmNlcy9tb2RpZnktY3NzLXByb3BlcnR5LmNzcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41NzA1NDlmZWVjY2ZlODAxYTgzMjMzZDk1ZjkxN2I4YzJhYzU0ZDMxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9yZXNvdXJjZXMvbW9kaWZ5LWNzcy1w
cm9wZXJ0eS5jc3MKQEAgLTAsMCArMSwxNSBAQAorLyogQSBjb21tZW50LiAqLworCisucnVsZS1h
IHsKKyAgICBmb250LXNpemU6IDE0cHg7CisgICAgY29sb3I6ICMzMzM7CisKKyAgICBtYXJnaW4t
bGVmdDogMDsKKyAgICBtYXJnaW4tdG9wOiAxZW07Cit9CisucnVsZS1iIHtmb250LXNpemU6IDEy
cHg7IGNvbG9yOiBhbnRpcXVld2hpdGV9CisucnVsZS1jIHsKKyAgICAvKiBwYWRkaW5nLWxlZnQ6
IDJlbTsgKi8KKyAgICAvKiBwYWRkaW5nLXJpZ2h0OiAwcHg7ICovCit9CisucnVsZS1kIHsvKmZv
bnQtc2l6ZTogMTNweDsqLy8qYm9yZGVyOiAycHggc29saWQgYnJvd24qL30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440505</attachid>
            <date>2021-10-07 09:43:56 -0700</date>
            <delta_ts>2021-10-07 11:15:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178835-20211007184355.patch</filename>
            <type>text/plain</type>
            <size>46230</size>
            <attacher name="Razvan Caliman">rcaliman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDgzMGQ4MTI5NWYxZDRmN2QzODQyN2M5Njk1Njky
Y2FmM2FmMzU4NjguLjI1NTdmNmI5ZjIzN2U2ODc2YjRmNjM3NTkyNmY4MTc2MzhkODkzYWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIxLTEwLTA3ICBOaWtp
dGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFN0eWxlczogZm9ybWF0IHN0eWxlIGRlY2xhcmF0aW9ucyBhZnRlciBlZGl0aW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg4MzUKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzM1MTg1MDYwPgorCisgICAgICAgIFJldmlld2VkIGJ5IERldmlu
IFJvdXNzby4KKworICAgICAgICBJbmRlbnQgQ1NTIHByb3BlcnRpZXMgd2l0aCBzcGFjZXMvdGFi
cyBzZXQgaW4gV2ViIEluc3BlY3RvciBzZXR0aW5ncy4gSW5jcmVzZSBpbmRlbnRhdGlvbiBsZXZl
bCB3aGVuIENTUyBydWxlcyBhcmUKKyAgICAgICAgaW5zaWRlIG9mIGF0LXJ1bGVzIChlLmcuIEBt
ZWRpYSwgQGtleWZyYW1lcywgQHN1cHBvcnRzKS4KKworICAgICAgICBEb24ndCBpbmRlbnQgQ1NT
IHByb3BlcnRpZXMgaW4gc3R5bGUgYXR0cmlidXRlcy4gS2VlcCB0aGVtIG9uIHRoZSBzaW5nbGUg
bGluZSwgc2VwYXJhdGVkIGJ5IGEgc3BhY2UgY2hhcmFjdGVyOgorCisgICAgICAgICAgICBzdHls
ZT0iZm9udC1zaXplOiAxMnB4OyBjb2xvcjogYmxhY2s7IgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9Nb2RlbHMvQ1NTUHJvcGVydHkuanM6CisgICAgICAgIChXSS5DU1NQcm9wZXJ0eS5wcm90
b3R5cGUuc2V0IHRleHQpOgorICAgICAgICBJbnRyb2R1Y2UgYF9pc1RleHRQZW5kaW5nU2F2ZWAg
ZmxhZy4gSXQncyBuZWVkZWQgd2hlbiBzYXZpbmcgcGFzdGVkIHRleHQsIGFuZCBzYXZpbmcgY29t
bWVudGVkIG91dCBvciB1bmNvbW1lbnRlZCBDU1MgcHJvcGVydGllcy4KKworICAgICAgICAoV0ku
Q1NTUHJvcGVydHkucHJvdG90eXBlLmdldCBmb3JtYXR0ZWRUZXh0KToKKworICAgICAgICAoV0ku
Q1NTUHJvcGVydHkucHJvdG90eXBlLnJlcGxhY2VXaXRoVGV4dCk6IERlbGV0ZWQuCisgICAgICAg
IFRoaXMgaXMgcmVkdW5kYW50IC0gc2V0dGluZyBgdGV4dGAgd29ya3MgdGhlIHNhbWUuCisKKyAg
ICAgICAgKFdJLkNTU1Byb3BlcnR5LnByb3RvdHlwZS5fdXBkYXRlU3R5bGVUZXh0KToKKyAgICAg
ICAgKFdJLkNTU1Byb3BlcnR5LnByb3RvdHlwZS5fdXBkYXRlT3duZXJTdHlsZVRleHQpOgorICAg
ICAgICAoV0kuQ1NTUHJvcGVydHkucHJvdG90eXBlLl9wcmVwZW5kU2VtaWNvbG9uSWZOZWVkZWQp
OiBEZWxldGVkLgorICAgICAgICBHcmVhdGx5IHNpbXBsaWZ5IHRoZSBsb2dpYyBub3cgdGhhdCB3
ZSBzYXZlIGZvcm1hdHRlZCB0ZXh0IGFuZCBkb24ndCBtb2RpZnkgc3R5bGVUZXh0LgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTU3R5bGVEZWNsYXJhdGlvbi5qczoKKyAgICAg
ICAgKFdJLkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlLnJlbW92ZVByb3BlcnR5KToKKyAg
ICAgICAgUmVtb2RlIHVubmVjZXNzYXJ5IGNvZGUgdGhhdCBtb2RpZmllcyBgX3N0eWxlU2hlZXRU
ZXh0UmFuZ2VgLiBUaGUgYmFja2VuZCBzZW5kcyBuZXcgYF9zdHlsZVNoZWV0VGV4dFJhbmdlYCBk
YXRhCisgICAgICAgIHVwb24gYSBjaGFuZ2UuCisKKyAgICAgICAgKFdJLkNTU1N0eWxlRGVjbGFy
YXRpb24ucHJvdG90eXBlLmdlbmVyYXRlRm9ybWF0dGVkVGV4dCk6IFJlbmFtZWQgZnJvbSAnZ2Vu
ZXJhdGVDU1NSdWxlU3RyaW5nJy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU3By
ZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qczoKKyAgICAgICAgKFdJLlNwcmVh
ZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24ucHJvdG90eXBlLl9wb3B1bGF0ZUljb25F
bGVtZW50Q29udGV4dE1lbnUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFk
c2hlZXRTdHlsZVByb3BlcnR5LmpzOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRTdHlsZVByb3Bl
cnR5LnByb3RvdHlwZS5yZW1vdmUpOgorCiAyMDIxLTEwLTA1ICBQYXRyaWNrIEFuZ2xlICA8cGFu
Z2xlQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBTaG93IGNvbG9yIHNwYWNl
IGZvciBjYW52YXNlcyBpbiB0aGUgR3JhcGhpY3MgdGFiIG9uIHRoZSBvdmVydmlldyBjYXJkcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NT
U1Byb3BlcnR5LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0NTU1Byb3BlcnR5LmpzCmluZGV4IDk4MmZlOTVhZTQ3NDMzMWYxMjY1NjQ2ODY3ZDMwNjE1ZjU3
NDdjMDcuLmY5YWY1ODIwNmVlNzA0YzhjMWU1MWNmY2IxZDllYWJjOGIyNzM3M2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NQcm9wZXJ0
eS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NT
UHJvcGVydHkuanMKQEAgLTM0LDYgKzM0LDcgQEAgV0kuQ1NTUHJvcGVydHkgPSBjbGFzcyBDU1NQ
cm9wZXJ0eSBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0aGlzLl9vdmVycmlkaW5nUHJvcGVy
dHkgPSBudWxsOwogICAgICAgICB0aGlzLl9pbml0aWFsU3RhdGUgPSBudWxsOwogICAgICAgICB0
aGlzLl9tb2RpZmllZCA9IGZhbHNlOworICAgICAgICB0aGlzLl9pc1VwZGF0aW5nVGV4dCA9IGZh
bHNlOwogCiAgICAgICAgIHRoaXMudXBkYXRlKHRleHQsIG5hbWUsIHZhbHVlLCBwcmlvcml0eSwg
ZW5hYmxlZCwgb3ZlcnJpZGRlbiwgaW1wbGljaXQsIGFub255bW91cywgdmFsaWQsIHN0eWxlU2hl
ZXRUZXh0UmFuZ2UsIHRydWUpOwogICAgIH0KQEAgLTE4NCwxMyArMTg1LDYgQEAgV0kuQ1NTUHJv
cGVydHkgPSBjbGFzcyBDU1NQcm9wZXJ0eSBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0aGlz
Ll91cGRhdGVTdHlsZVRleHQoZm9yY2VSZW1vdmUpOwogICAgIH0KIAotICAgIHJlcGxhY2VXaXRo
VGV4dCh0ZXh0KQotICAgIHsKLSAgICAgICAgdGhpcy5fbWFya01vZGlmaWVkKCk7Ci0KLSAgICAg
ICAgdGhpcy5fdXBkYXRlT3duZXJTdHlsZVRleHQodGhpcy5fdGV4dCwgdGV4dCwgdHJ1ZSk7Ci0g
ICAgfQotCiAgICAgY29tbWVudE91dChkaXNhYmxlZCkKICAgICB7CiAgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KHRoaXMuZWRpdGFibGUpOwpAQCAtMjEzLDE2ICsyMDcsMjIgQEAgV0kuQ1NTUHJvcGVy
dHkgPSBjbGFzcyBDU1NQcm9wZXJ0eSBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgc2V0IHRleHQo
bmV3VGV4dCkKICAgICB7CisgICAgICAgIG5ld1RleHQgPSBuZXdUZXh0LnRyaW0oKTsKICAgICAg
ICAgaWYgKHRoaXMuX3RleHQgPT09IG5ld1RleHQpCiAgICAgICAgICAgICByZXR1cm47CiAKICAg
ICAgICAgdGhpcy5fbWFya01vZGlmaWVkKCk7Ci0gICAgICAgIHRoaXMuX3VwZGF0ZU93bmVyU3R5
bGVUZXh0KHRoaXMuX3RleHQsIG5ld1RleHQpOwogICAgICAgICB0aGlzLl90ZXh0ID0gbmV3VGV4
dDsKKyAgICAgICAgdGhpcy5faXNVcGRhdGluZ1RleHQgPSB0cnVlOworICAgICAgICB0aGlzLl91
cGRhdGVPd25lclN0eWxlVGV4dCgpOworICAgICAgICB0aGlzLl9pc1VwZGF0aW5nVGV4dCA9IGZh
bHNlOwogICAgIH0KIAogICAgIGdldCBmb3JtYXR0ZWRUZXh0KCkKICAgICB7CisgICAgICAgIGlm
ICh0aGlzLl9pc1VwZGF0aW5nVGV4dCkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl90ZXh0Owor
CiAgICAgICAgIGlmICghdGhpcy5fbmFtZSkKICAgICAgICAgICAgIHJldHVybiAiIjsKIApAQCAt
NTAxLDc0ICs1MDEsMjQgQEAgV0kuQ1NTUHJvcGVydHkgPSBjbGFzcyBDU1NQcm9wZXJ0eSBleHRl
bmRzIFdJLk9iamVjdAogICAgICAgICAgICAgdGV4dCA9IHRoaXMuX25hbWUgKyAiOiAiICsgdmFs
dWUgKyAiOyI7CiAgICAgICAgIH0KIAotICAgICAgICBsZXQgb2xkVGV4dCA9IHRoaXMuX3RleHQ7
CiAgICAgICAgIHRoaXMuX3RleHQgPSB0ZXh0OwotICAgICAgICB0aGlzLl91cGRhdGVPd25lclN0
eWxlVGV4dChvbGRUZXh0LCB0aGlzLl90ZXh0LCBmb3JjZVJlbW92ZSk7CisKKyAgICAgICAgaWYg
KGZvcmNlUmVtb3ZlKQorICAgICAgICAgICAgdGhpcy5fb3duZXJTdHlsZS5yZW1vdmVQcm9wZXJ0
eSh0aGlzKTsKKworICAgICAgICB0aGlzLl91cGRhdGVPd25lclN0eWxlVGV4dCgpOwogICAgIH0K
IAotICAgIF91cGRhdGVPd25lclN0eWxlVGV4dChvbGRUZXh0LCBuZXdUZXh0LCBmb3JjZVJlbW92
ZSA9IGZhbHNlKQorICAgIF91cGRhdGVPd25lclN0eWxlVGV4dCgpCiAgICAgewotICAgICAgICBp
ZiAob2xkVGV4dCA9PT0gbmV3VGV4dCkgewotICAgICAgICAgICAgaWYgKGZvcmNlUmVtb3ZlKSB7
Ci0gICAgICAgICAgICAgICAgY29uc3QgbGluZURlbHRhID0gMDsKLSAgICAgICAgICAgICAgICBj
b25zdCBjb2x1bW5EZWx0YSA9IDA7Ci0gICAgICAgICAgICAgICAgdGhpcy5fb3duZXJTdHlsZS5z
aGlmdFByb3BlcnRpZXNBZnRlcih0aGlzLCBsaW5lRGVsdGEsIGNvbHVtbkRlbHRhLCBmb3JjZVJl
bW92ZSk7Ci0gICAgICAgICAgICAgICAgdGhpcy5fb3duZXJTdHlsZS51cGRhdGVQcm9wZXJ0aWVz
TW9kaWZpZWRTdGF0ZSgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9Ci0KICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fb3duZXJTdHlsZSk7CiAgICAg
ICAgIGlmICghdGhpcy5fb3duZXJTdHlsZSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAg
ICB0aGlzLl9wcmVwZW5kU2VtaWNvbG9uSWZOZWVkZWQoKTsKLQotICAgICAgICBsZXQgc3R5bGVU
ZXh0ID0gdGhpcy5fb3duZXJTdHlsZS50ZXh0IHx8ICIiOwotCi0gICAgICAgIC8vIF9zdHlsZVNo
ZWV0VGV4dFJhbmdlIGlzIHRoZSBwb3NpdGlvbiBvZiB0aGUgcHJvcGVydHkgd2l0aGluIHRoZSBz
dHlsZXNoZWV0LgotICAgICAgICAvLyByYW5nZSBpcyB0aGUgcG9zaXRpb24gb2YgdGhlIHByb3Bl
cnR5IHdpdGhpbiB0aGUgcnVsZS4KLSAgICAgICAgbGV0IHJhbmdlID0gdGhpcy5fc3R5bGVTaGVl
dFRleHRSYW5nZS5yZWxhdGl2ZVRvKHRoaXMuX293bmVyU3R5bGUuc3R5bGVTaGVldFRleHRSYW5n
ZS5zdGFydExpbmUsIHRoaXMuX293bmVyU3R5bGUuc3R5bGVTaGVldFRleHRSYW5nZS5zdGFydENv
bHVtbik7Ci0KLSAgICAgICAgLy8gQXBwZW5kIGEgbGluZSBicmVhayB0byBjb3VudCB0aGUgbGFz
dCBsaW5lIG9mIHN0eWxlVGV4dCB0b3dhcmRzIGVuZE9mZnNldC4KLSAgICAgICAgcmFuZ2UucmVz
b2x2ZU9mZnNldHMoc3R5bGVUZXh0ICsgIlxuIik7Ci0KLSAgICAgICAgY29uc29sZS5hc3NlcnQo
b2xkVGV4dCA9PT0gc3R5bGVUZXh0LnNsaWNlKHJhbmdlLnN0YXJ0T2Zmc2V0LCByYW5nZS5lbmRP
ZmZzZXQpLCAiX3N0eWxlU2hlZXRUZXh0UmFuZ2UgZGF0YSBpcyBpbnZhbGlkLiIpOwotCi0gICAg
ICAgIGlmIChXSS5zZXR0aW5ncy5kZWJ1Z0VuYWJsZVN0eWxlRWRpdGluZ0RlYnVnTW9kZS52YWx1
ZSkgewotICAgICAgICAgICAgbGV0IHByZWZpeCA9IHN0eWxlVGV4dC5zbGljZSgwLCByYW5nZS5z
dGFydE9mZnNldCk7Ci0gICAgICAgICAgICBsZXQgcG9zdGZpeCA9IHN0eWxlVGV4dC5zbGljZShy
YW5nZS5lbmRPZmZzZXQpOwotICAgICAgICAgICAgY29uc29sZS5pbmZvKGAke3ByZWZpeH0lYyR7
b2xkVGV4dH0lYyR7bmV3VGV4dH0lYyR7cG9zdGZpeH1gLCBgYmFja2dyb3VuZDogaHNsKDM1Niwg
MTAwJSwgOTAlKTsgY29sb3I6IGJsYWNrYCwgYGJhY2tncm91bmQ6IGhzbCgxMDAsIDEwMCUsIDkx
JSk7IGNvbG9yOiBibGFja2AsIGBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudGApOwotICAgICAgICB9
Ci0KLSAgICAgICAgbGV0IG5ld1N0eWxlVGV4dCA9IHN0eWxlVGV4dC5zbGljZSgwLCByYW5nZS5z
dGFydE9mZnNldCkgKyBuZXdUZXh0ICsgc3R5bGVUZXh0LnNsaWNlKHJhbmdlLmVuZE9mZnNldCk7
Ci0KLSAgICAgICAgbGV0IGxpbmVEZWx0YSA9IG5ld1RleHQubGluZUNvdW50IC0gb2xkVGV4dC5s
aW5lQ291bnQ7Ci0gICAgICAgIGxldCBjb2x1bW5EZWx0YSA9IG5ld1RleHQubGFzdExpbmUubGVu
Z3RoIC0gb2xkVGV4dC5sYXN0TGluZS5sZW5ndGg7Ci0gICAgICAgIHRoaXMuX3N0eWxlU2hlZXRU
ZXh0UmFuZ2UgPSB0aGlzLl9zdHlsZVNoZWV0VGV4dFJhbmdlLmNsb25lQW5kTW9kaWZ5KDAsIDAs
IGxpbmVEZWx0YSwgY29sdW1uRGVsdGEpOwotCi0gICAgICAgIHRoaXMuX293bmVyU3R5bGUudGV4
dCA9IG5ld1N0eWxlVGV4dDsKLQotICAgICAgICBsZXQgcHJvcGVydHlXYXNSZW1vdmVkID0gIW5l
d1RleHQ7Ci0gICAgICAgIHRoaXMuX293bmVyU3R5bGUuc2hpZnRQcm9wZXJ0aWVzQWZ0ZXIodGhp
cywgbGluZURlbHRhLCBjb2x1bW5EZWx0YSwgcHJvcGVydHlXYXNSZW1vdmVkKTsKKyAgICAgICAg
dGhpcy5fb3duZXJTdHlsZS50ZXh0ID0gdGhpcy5fb3duZXJTdHlsZS5nZW5lcmF0ZUZvcm1hdHRl
ZFRleHQoe211bHRpbGluZTogdGhpcy5fb3duZXJTdHlsZS50eXBlID09PSBXSS5DU1NTdHlsZURl
Y2xhcmF0aW9uLlR5cGUuUnVsZX0pOwogICAgICAgICB0aGlzLl9vd25lclN0eWxlLnVwZGF0ZVBy
b3BlcnRpZXNNb2RpZmllZFN0YXRlKCk7CiAgICAgfQogCi0gICAgX3ByZXBlbmRTZW1pY29sb25J
Zk5lZWRlZCgpCi0gICAgewotICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5pbmRleCAtIDE7IGkg
Pj0gMDsgLS1pKSB7Ci0gICAgICAgICAgICBsZXQgcHJvcGVydHkgPSB0aGlzLl9vd25lclN0eWxl
LnByb3BlcnRpZXNbaV07Ci0gICAgICAgICAgICBpZiAoIXByb3BlcnR5LmVuYWJsZWQpCi0gICAg
ICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIGxldCBtYXRjaCA9IHByb3BlcnR5
LnRleHQubWF0Y2goL1teO1xzXShccyopJC8pOwotICAgICAgICAgICAgaWYgKG1hdGNoKQotICAg
ICAgICAgICAgICAgIHByb3BlcnR5LnRleHQgPSBwcm9wZXJ0eS50ZXh0LnRyaW1SaWdodCgpICsg
IjsiICsgbWF0Y2hbMV07Ci0KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQot
CiAgICAgX21hcmtNb2RpZmllZCgpCiAgICAgewogICAgICAgICBpZiAodGhpcy5fb3duZXJTdHls
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9DU1NTdHlsZURlY2xhcmF0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL0NTU1N0eWxlRGVjbGFyYXRpb24uanMKaW5kZXggNzA5MTAxZjQyYTg3OTUy
MjE2YjkzZjZlZmNmZDBkOGQ0ZjI1Y2Y0ZC4uZWZiZjRhYWYxYjA0OWVmNzcyZmE4ZjVlMTFhMTFh
NjFlOGQ1YWFmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL0NTU1N0eWxlRGVjbGFyYXRpb24uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1N0eWxlRGVjbGFyYXRpb24uanMKQEAgLTQ0NSwz
MiArNDQ1LDE0IEBAIFdJLkNTU1N0eWxlRGVjbGFyYXRpb24gPSBjbGFzcyBDU1NTdHlsZURlY2xh
cmF0aW9uIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIFdJLmNzc01hbmFnZXIuYWRkTW9kaWZp
ZWRTdHlsZSh0aGlzKTsKICAgICB9CiAKLSAgICBzaGlmdFByb3BlcnRpZXNBZnRlcihjc3NQcm9w
ZXJ0eSwgbGluZURlbHRhLCBjb2x1bW5EZWx0YSwgcHJvcGVydHlXYXNSZW1vdmVkKQorICAgIHJl
bW92ZVByb3BlcnR5KGNzc1Byb3BlcnR5KQogICAgIHsKICAgICAgICAgLy8gY3NzUHJvcGVydHku
aW5kZXggY291bGQgYmUgc2V0IHRvIE5hTiBieSBXSS5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3Rv
dHlwZS51cGRhdGUuCiAgICAgICAgIGxldCByZWFsSW5kZXggPSB0aGlzLl9wcm9wZXJ0aWVzLmlu
ZGV4T2YoY3NzUHJvcGVydHkpOwogICAgICAgICBpZiAocmVhbEluZGV4ID09PSAtMSkKICAgICAg
ICAgICAgIHJldHVybjsKIAotICAgICAgICBsZXQgZW5kTGluZSA9IGNzc1Byb3BlcnR5LnN0eWxl
U2hlZXRUZXh0UmFuZ2UuZW5kTGluZTsKLQotICAgICAgICBmb3IgKGxldCBpID0gcmVhbEluZGV4
ICsgMTsgaSA8IHRoaXMuX3Byb3BlcnRpZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIGxl
dCBwcm9wZXJ0eSA9IHRoaXMuX3Byb3BlcnRpZXNbaV07Ci0KLSAgICAgICAgICAgIGlmIChwcm9w
ZXJ0eS5fc3R5bGVTaGVldFRleHRSYW5nZSkgewotICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0
eS5zdHlsZVNoZWV0VGV4dFJhbmdlLnN0YXJ0TGluZSA9PT0gZW5kTGluZSkgewotICAgICAgICAg
ICAgICAgICAgICAvLyBPbmx5IHVwZGF0ZSBjb2x1bW4gZGF0YSBpZiBpdCdzIG9uIHRoZSBzYW1l
IGxpbmUuCi0gICAgICAgICAgICAgICAgICAgIHByb3BlcnR5Ll9zdHlsZVNoZWV0VGV4dFJhbmdl
ID0gcHJvcGVydHkuX3N0eWxlU2hlZXRUZXh0UmFuZ2UuY2xvbmVBbmRNb2RpZnkobGluZURlbHRh
LCBjb2x1bW5EZWx0YSwgbGluZURlbHRhLCBjb2x1bW5EZWx0YSk7Ci0gICAgICAgICAgICAgICAg
fSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHByb3BlcnR5Ll9zdHlsZVNoZWV0VGV4dFJhbmdl
ID0gcHJvcGVydHkuX3N0eWxlU2hlZXRUZXh0UmFuZ2UuY2xvbmVBbmRNb2RpZnkobGluZURlbHRh
LCAwLCBsaW5lRGVsdGEsIDApOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAocHJv
cGVydHlXYXNSZW1vdmVkICYmICFpc05hTihwcm9wZXJ0eS5faW5kZXgpKQotICAgICAgICAgICAg
ICAgIHByb3BlcnR5Ll9pbmRleC0tOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHByb3BlcnR5
V2FzUmVtb3ZlZCkKLSAgICAgICAgICAgIHRoaXMuX3Byb3BlcnRpZXMuc3BsaWNlKHJlYWxJbmRl
eCwgMSk7CisgICAgICAgIHRoaXMuX3Byb3BlcnRpZXMuc3BsaWNlKHJlYWxJbmRleCwgMSk7CiAK
ICAgICAgICAgLy8gSW52YWxpZGF0ZSBjYWNoZWQgcHJvcGVydGllcy4KICAgICAgICAgdGhpcy5f
ZW5hYmxlZFByb3BlcnRpZXMgPSBudWxsOwpAQCAtNTA3LDI0ICs0ODksNTkgQEAgV0kuQ1NTU3R5
bGVEZWNsYXJhdGlvbiA9IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb24gZXh0ZW5kcyBXSS5PYmpl
Y3QKICAgICAgICAgICAgIFdJLmNzc01hbmFnZXIucmVtb3ZlTW9kaWZpZWRTdHlsZSh0aGlzKTsK
ICAgICB9CiAKLSAgICBnZW5lcmF0ZUNTU1J1bGVTdHJpbmcoKQorICAgIGdlbmVyYXRlRm9ybWF0
dGVkVGV4dChvcHRpb25zID0ge30pCiAgICAgewogICAgICAgICBsZXQgaW5kZW50U3RyaW5nID0g
V0kuaW5kZW50U3RyaW5nKCk7CiAgICAgICAgIGxldCBzdHlsZVRleHQgPSAiIjsKICAgICAgICAg
bGV0IGdyb3VwaW5ncyA9IHRoaXMuZ3JvdXBpbmdzLmZpbHRlcigoZ3JvdXBpbmcpID0+IGdyb3Vw
aW5nLnRleHQgIT09ICJhbGwiKTsKICAgICAgICAgbGV0IGdyb3VwaW5nc0NvdW50ID0gZ3JvdXBp
bmdzLmxlbmd0aDsKLSAgICAgICAgZm9yIChsZXQgaSA9IGdyb3VwaW5nc0NvdW50IC0gMTsgaSA+
PSAwOyAtLWkpCi0gICAgICAgICAgICBzdHlsZVRleHQgKz0gaW5kZW50U3RyaW5nLnJlcGVhdChn
cm91cGluZ3NDb3VudCAtIGkgLSAxKSArIGdyb3VwaW5nc1tpXS5wcmVmaXggKyAiICIgKyBncm91
cGluZ3NbaV0udGV4dCArICIge1xuIjsKIAotICAgICAgICBzdHlsZVRleHQgKz0gaW5kZW50U3Ry
aW5nLnJlcGVhdChncm91cGluZ3NDb3VudCkgKyB0aGlzLnNlbGVjdG9yVGV4dCArICIge1xuIjsK
KyAgICAgICAgaWYgKG9wdGlvbnMuaW5jbHVkZUdyb3VwaW5nc0FuZFNlbGVjdG9ycykgeworICAg
ICAgICAgICAgZm9yIChsZXQgaSA9IGdyb3VwaW5nc0NvdW50IC0gMTsgaSA+PSAwOyAtLWkpIHsK
KyAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5tdWx0aWxpbmUpCisgICAgICAgICAgICAgICAg
ICAgIHN0eWxlVGV4dCArPSBpbmRlbnRTdHJpbmcucmVwZWF0KGdyb3VwaW5nc0NvdW50IC0gaSAt
IDEpOworCisgICAgICAgICAgICAgICAgc3R5bGVUZXh0ICs9IGdyb3VwaW5nc1tpXS5wcmVmaXgg
KyAiICIgKyBncm91cGluZ3NbaV0udGV4dCArICIgeyI7CisKKyAgICAgICAgICAgICAgICBpZiAo
b3B0aW9ucy5tdWx0aWxpbmUpCisgICAgICAgICAgICAgICAgICAgIHN0eWxlVGV4dCArPSAiXG4i
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAob3B0aW9ucy5tdWx0aWxpbmUpCisg
ICAgICAgICAgICAgICAgc3R5bGVUZXh0ICs9IGluZGVudFN0cmluZy5yZXBlYXQoZ3JvdXBpbmdz
Q291bnQpOworCisgICAgICAgICAgICBzdHlsZVRleHQgKz0gdGhpcy5zZWxlY3RvclRleHQgKyAi
IHsiOworICAgICAgICB9CiAKLSAgICAgICAgZm9yIChsZXQgcHJvcGVydHkgb2YgKHRoaXMuX3N0
eWxlU2hlZXRUZXh0UmFuZ2UgPyB0aGlzLnZpc2libGVQcm9wZXJ0aWVzIDogdGhpcy5fcHJvcGVy
dGllcykpCi0gICAgICAgICAgICBzdHlsZVRleHQgKz0gaW5kZW50U3RyaW5nLnJlcGVhdChncm91
cGluZ3NDb3VudCArIDEpICsgcHJvcGVydHkuZm9ybWF0dGVkVGV4dCArICJcbiI7CisgICAgICAg
IGxldCBwcm9wZXJ0aWVzID0gdGhpcy5fc3R5bGVTaGVldFRleHRSYW5nZSA/IHRoaXMudmlzaWJs
ZVByb3BlcnRpZXMgOiB0aGlzLl9wcm9wZXJ0aWVzOworICAgICAgICBpZiAocHJvcGVydGllcy5s
ZW5ndGgpIHsKKyAgICAgICAgICAgIGlmIChvcHRpb25zLm11bHRpbGluZSkgeworICAgICAgICAg
ICAgICAgIGxldCBwcm9wZXJ0eUluZGVudCA9IGluZGVudFN0cmluZy5yZXBlYXQoZ3JvdXBpbmdz
Q291bnQgKyAxKTsKKyAgICAgICAgICAgICAgICBmb3IgKGxldCBwcm9wZXJ0eSBvZiBwcm9wZXJ0
aWVzKQorICAgICAgICAgICAgICAgICAgICBzdHlsZVRleHQgKz0gIlxuIiArIHByb3BlcnR5SW5k
ZW50ICsgcHJvcGVydHkuZm9ybWF0dGVkVGV4dDsKKworICAgICAgICAgICAgICAgIHN0eWxlVGV4
dCArPSAiXG4iOworICAgICAgICAgICAgICAgIGlmICghb3B0aW9ucy5pbmNsdWRlR3JvdXBpbmdz
QW5kU2VsZWN0b3JzKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEluZGVudCB0aGUgY2xvc2lu
ZyAifSIgZm9yIG5lc3RlZCBydWxlcy4KKyAgICAgICAgICAgICAgICAgICAgc3R5bGVUZXh0ICs9
IGluZGVudFN0cmluZy5yZXBlYXQoZ3JvdXBpbmdzQ291bnQpOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHN0eWxlVGV4dCArPSBwcm9wZXJ0
aWVzLm1hcCgocHJvcGVydHkpID0+IHByb3BlcnR5LmZvcm1hdHRlZFRleHQpLmpvaW4oIiAiKTsK
KyAgICAgICAgfQogCi0gICAgICAgIGZvciAobGV0IGkgPSBncm91cGluZ3NDb3VudDsgaSA+IDA7
IC0taSkKLSAgICAgICAgICAgIHN0eWxlVGV4dCArPSBpbmRlbnRTdHJpbmcucmVwZWF0KGkpICsg
In1cbiI7CisgICAgICAgIGlmIChvcHRpb25zLmluY2x1ZGVHcm91cGluZ3NBbmRTZWxlY3RvcnMp
IHsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSBncm91cGluZ3NDb3VudDsgaSA+IDA7IC0taSkg
eworICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLm11bHRpbGluZSkKKyAgICAgICAgICAgICAg
ICAgICAgc3R5bGVUZXh0ICs9IGluZGVudFN0cmluZy5yZXBlYXQoaSk7CiAKLSAgICAgICAgc3R5
bGVUZXh0ICs9ICJ9IjsKKyAgICAgICAgICAgICAgICBzdHlsZVRleHQgKz0gIn0iOworCisgICAg
ICAgICAgICAgICAgaWYgKG9wdGlvbnMubXVsdGlsaW5lKQorICAgICAgICAgICAgICAgICAgICBz
dHlsZVRleHQgKz0gIlxuIjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3R5bGVUZXh0
ICs9ICJ9IjsKKyAgICAgICAgfQogCiAgICAgICAgIHJldHVybiBzdHlsZVRleHQ7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3By
ZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvblNl
Y3Rpb24uanMKaW5kZXggYmM1NWNkMjU5ZDIwYmIyZGY4ZjlkYmJmYzU1YjE0NTVkN2VlN2E4NS4u
NGY5NmYzYTMwNjg5NWYxNzllM2I0NTg0NGZkOGNkMDFlNGYwZDNhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHls
ZURlY2xhcmF0aW9uU2VjdGlvbi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLmpzCkBA
IC00ODEsNyArNDgxLDcgQEAgV0kuU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlv
biA9IGNsYXNzIFNwcmVhZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvblMKICAgICBfcG9wdWxhdGVJ
Y29uRWxlbWVudENvbnRleHRNZW51KGNvbnRleHRNZW51KQogICAgIHsKICAgICAgICAgY29udGV4
dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiQ29weSBSdWxlIiksICgpID0+IHsKLSAgICAg
ICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5jb3B5VGV4dCh0aGlzLl9zdHlsZS5nZW5lcmF0
ZUNTU1J1bGVTdHJpbmcoKSk7CisgICAgICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3QuY29w
eVRleHQodGhpcy5fc3R5bGUuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0KHtpbmNsdWRlR3JvdXBpbmdz
QW5kU2VsZWN0b3JzOiB0cnVlLCBtdWx0aWxpbmU6IHRydWV9KSk7CiAgICAgICAgIH0pOwogCiAg
ICAgICAgIGlmICh0aGlzLl9zdHlsZS5lZGl0YWJsZSAmJiB0aGlzLl9zdHlsZS5wcm9wZXJ0aWVz
Lmxlbmd0aCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LmpzCmluZGV4
IDA3OThiNDBhZTU1MDU5MmY0N2Q4NmZiMGFkNTk4ZWQ0NmY1NmUzOWYuLmMwMzFjMGM5N2E2N2Jk
NzJiYTEzNzBkOTQ0NTk2NTViZWM1YWQwNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eS5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldFN0
eWxlUHJvcGVydHkuanMKQEAgLTE0NCw3ICsxNDQsNyBAQCBXSS5TcHJlYWRzaGVldFN0eWxlUHJv
cGVydHkgPSBjbGFzcyBTcHJlYWRzaGVldFN0eWxlUHJvcGVydHkgZXh0ZW5kcyBXSS5PYmplY3QK
ICAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZSgpOwogCiAgICAgICAgIGlmIChyZXBsYWNlbWVu
dCkKLSAgICAgICAgICAgIHRoaXMuX3Byb3BlcnR5LnJlcGxhY2VXaXRoVGV4dChyZXBsYWNlbWVu
dCk7CisgICAgICAgICAgICB0aGlzLl9wcm9wZXJ0eS50ZXh0ID0gcmVwbGFjZW1lbnQ7CiAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIHRoaXMuX3Byb3BlcnR5LnJlbW92ZSgpOwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NDI4YjZlN2RmYThmZDExZjY0NmM1M2JlZjc3YWFiZGFmMDY2MWViOS4uODQ4YzU5YjdhMDNmOGZi
MGFmNDdhNjgwYjBjM2ZjNGVjZDE4ZWEzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTEw
LTA3ICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IFN0eWxlczogZm9ybWF0IHN0eWxlIGRlY2xhcmF0aW9ucyBhZnRlciBlZGl0
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg4
MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1MTg1MDYwPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IERldmluIFJvdXNzby4KKworICAgICAgICAtIEluZGVudCB0ZXh0IG9mIGV4cGVjdGVkIENT
UyBwcm9wZXJ0aWVzLgorICAgICAgICAtIFRlc3QgZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0IHdpdGgg
YWxsIHBlcm11dGF0aW9ucyBvZiBpdHMgb3B0aW9ucy4KKyAgICAgICAgLSBBZGQgYSBiYXNpYyB0
ZXN0IGVuc3VyaW5nIHN0eWxlU2hlZXRUZXh0UmFuZ2UgdXBkYXRlcyBjb3JyZWN0bHkgZnJvbSB0
aGUgYmFja2VuZC4KKworICAgICAgICAqIGluc3BlY3Rvci9jc3MvYWRkLWNzcy1wcm9wZXJ0eS5o
dG1sOgorICAgICAgICAqIGluc3BlY3Rvci9jc3MvZ2VuZXJhdGVDU1NSdWxlU3RyaW5nLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY3NzL2dlbmVyYXRlQ1NTUnVs
ZVN0cmluZy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9jc3MvZ2VuZXJhdGVG
b3JtYXR0ZWRUZXh0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Nz
cy9nZW5lcmF0ZUZvcm1hdHRlZFRleHQuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvY3NzL21vZGlmeS1jc3MtcHJvcGVydHkuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY3Nz
L21vZGlmeS1pbmxpbmUtc3R5bGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9j
c3MvcmVzb3VyY2VzL21vZGlmeS1jc3MtcHJvcGVydHkuY3NzOiBBZGRlZC4KKyAgICAgICAgKC5y
dWxlLWEpOgorICAgICAgICAoLnJ1bGUtYik6CisgICAgICAgICgucnVsZS1jKToKKyAgICAgICAg
KC5ydWxlLWQpOgorCiAyMDIxLTEwLTA3ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KIAogICAgICAgICBSRUdSRVNTSU9OIChJRkMgc2VsZWN0aW9ucyk6IE92ZXJsYXBwaW5nIHNl
bGVjdGlvbiByZWN0YW5nbGVzIHdoZW4gc2VsZWN0aW5nIHByZWZvcm1hdHRlZCB0ZXh0CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2FkZC1jc3MtcHJvcGVydHkuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvYWRkLWNzcy1wcm9wZXJ0eS5odG1sCmluZGV4IDQ1
NWE5NWQ0ZTczYmZjYTljNGRmMDVjYTBkYzJjN2I0ZTVjMWRmY2IuLmY1ZGY5NTMxNDJjZjhjMTM0
ZDU0NTdlYTkyYmQyMDllZTcyMjU4MWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jc3MvYWRkLWNzcy1wcm9wZXJ0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
c3MvYWRkLWNzcy1wcm9wZXJ0eS5odG1sCkBAIC0yNyw3ICsyNyw3IEBAIGZ1bmN0aW9uIHRlc3Qo
KSB7CiAgICAgICAgICAgICBuZXdQcm9wZXJ0eS5uYW1lID0gImNvbG9yIjsKICAgICAgICAgICAg
IG5ld1Byb3BlcnR5LnJhd1ZhbHVlID0gImdyZWVuIjsKIAotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RFcXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGBmb250LXNpemU6IDE0cHg7
Y29sb3I6IGdyZWVuO2AsICJgY29sb3I6IGdyZWVuYCBwcm9wZXJ0eSBzaG91bGQgYmUgYXBwZW5k
ZWQuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlRGVjbGFy
YXRpb24udGV4dCwgYFxuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogZ3JlZW47XG5g
LCAiYGNvbG9yOiBncmVlbmAgcHJvcGVydHkgc2hvdWxkIGJlIGFwcGVuZGVkLiIpOwogCiAgICAg
ICAgICAgICBzdHlsZURlY2xhcmF0aW9uLmxvY2tlZCA9IGZhbHNlOwogICAgICAgICAgICAgcmVz
b2x2ZSgpOwpAQCAtNDMsNyArNDMsNyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAg
bmV3UHJvcGVydHkubmFtZSA9ICJjb2xvciI7CiAgICAgICAgICAgICBuZXdQcm9wZXJ0eS5yYXdW
YWx1ZSA9ICJncmVlbiI7CiAKLSAgICAgICAgICAgIGxldCBleHBlY3RlZCA9IGBjb2xvcjogZ3Jl
ZW47XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIGJyb3duO1xuYDsKKyAgICAgICAgICAgIGxldCBl
eHBlY3RlZCA9IGBcbiAgICBjb2xvcjogZ3JlZW47XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIGJy
b3duO1xuYDsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5bGVEZWNs
YXJhdGlvbi50ZXh0LCBleHBlY3RlZCwgImBjb2xvcjogZ3JlZW5gIHByb3BlcnR5IHNob3VsZCBi
ZSBpbnNlcnRlZCBiZWZvcmUgdGhlIGZpcnN0IHByb3BlcnR5LiIpOwogCiAgICAgICAgICAgICBz
dHlsZURlY2xhcmF0aW9uID0gZ2V0TWF0Y2hlZFN0eWxlKCIucnVsZS1iIiwgcmVzb2x2ZSk7CkBA
IC01MSw3ICs1MSw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICBuZXdQcm9wZXJ0
eS5uYW1lID0gImRpc3BsYXkiOwogICAgICAgICAgICAgbmV3UHJvcGVydHkucmF3VmFsdWUgPSAi
YmxvY2siOwogCi0gICAgICAgICAgICBleHBlY3RlZCA9IGBjb2xvcjogZ3JlZW47XG4gICAgb3V0
bGluZTogMnB4IHNvbGlkIGJyb3duO2Rpc3BsYXk6IGJsb2NrO1xuYDsKKyAgICAgICAgICAgIGV4
cGVjdGVkID0gYFxuICAgIGNvbG9yOiBncmVlbjtcbiAgICBvdXRsaW5lOiAycHggc29saWQgYnJv
d247XG4gICAgZGlzcGxheTogYmxvY2s7XG5gOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RFcXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGV4cGVjdGVkLCAiYGRpc3BsYXk6IGJs
b2NrYCBwcm9wZXJ0eSBzaG91bGQgYmUgYXBwZW5kZWQgYXQgdGhlIGVuZC4iKTsKIAogICAgICAg
ICAgICAgc3R5bGVEZWNsYXJhdGlvbi5sb2NrZWQgPSBmYWxzZTsKQEAgLTY4LDcgKzY4LDcgQEAg
ZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgIG5ld1Byb3BlcnR5Lm5hbWUgPSAiZm9udC1m
YW1pbHkiOwogICAgICAgICAgICAgbmV3UHJvcGVydHkucmF3VmFsdWUgPSAiZmFudGFzeSI7CiAK
LSAgICAgICAgICAgIGxldCBleHBlY3RlZCA9IGBcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBwZWFj
aHB1ZmY7Zm9udC1mYW1pbHk6IGZhbnRhc3k7XG4gICAgY29sb3I6IGJ1cmx5d29vZFxuYDsKKyAg
ICAgICAgICAgIGxldCBleHBlY3RlZCA9IGBcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBwZWFjaHB1
ZmY7XG4gICAgZm9udC1mYW1pbHk6IGZhbnRhc3k7XG4gICAgY29sb3I6IGJ1cmx5d29vZDtcbmA7
CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlRGVjbGFyYXRpb24u
dGV4dCwgZXhwZWN0ZWQsICJgZm9udC1mYW1pbHk6IGZhbnRhc3lgIHByb3BlcnR5IHNob3VsZCBi
ZSBpbnNlcnRlZCBhZnRlciB0aGUgZmlyc3QgcHJvcGVydHkuIik7CiAKICAgICAgICAgICAgIHN0
eWxlRGVjbGFyYXRpb24ubG9ja2VkID0gZmFsc2U7CkBAIC04NSw3ICs4NSw3IEBAIGZ1bmN0aW9u
IHRlc3QoKSB7CiAgICAgICAgICAgICBuZXdQcm9wZXJ0eS5uYW1lID0gImRpc3BsYXkiOwogICAg
ICAgICAgICAgbmV3UHJvcGVydHkucmF3VmFsdWUgPSAiaW5saW5lIjsKIAotICAgICAgICAgICAg
Y29uc3QgZXhwZWN0ZWQgPSBgXG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIC8qIGNvbG9yOiBy
ZWQ7ICovZGlzcGxheTogaW5saW5lO1xuYDsKKyAgICAgICAgICAgIGNvbnN0IGV4cGVjdGVkID0g
YFxuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAvKiBjb2xvcjogcmVkOyAqL1xuICAgIGRpc3Bs
YXk6IGlubGluZTtcbmA7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0
eWxlRGVjbGFyYXRpb24udGV4dCwgZXhwZWN0ZWQsICJgZGlzcGxheTogaW5saW5lYCBwcm9wZXJ0
eSBzaG91bGQgYmUgYXBwZW5kZWQuIik7CiAKICAgICAgICAgICAgIHN0eWxlRGVjbGFyYXRpb24u
bG9ja2VkID0gZmFsc2U7CkBAIC0xMDIsNyArMTAyLDcgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAg
ICAgICAgICAgIG5ld1Byb3BlcnR5Lm5hbWUgPSAiZGlzcGxheSI7CiAgICAgICAgICAgICBuZXdQ
cm9wZXJ0eS5yYXdWYWx1ZSA9ICJpbmxpbmUiOwogCi0gICAgICAgICAgICBjb25zdCBleHBlY3Rl
ZCA9IGBcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgLyogY29sb3I6IHJlZCAqL2Rpc3BsYXk6
IGlubGluZTtcbmA7CisgICAgICAgICAgICBjb25zdCBleHBlY3RlZCA9IGBcbiAgICBmb250LXNp
emU6IDE0cHg7XG4gICAgLyogY29sb3I6IHJlZDsgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmU7XG5g
OwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHlsZURlY2xhcmF0aW9u
LnRleHQsIGV4cGVjdGVkLCAiYGRpc3BsYXk6IGlubGluZWAgcHJvcGVydHkgc2hvdWxkIGJlIGFw
cGVuZGVkLiIpOwogCiAgICAgICAgICAgICBzdHlsZURlY2xhcmF0aW9uLmxvY2tlZCA9IGZhbHNl
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZW5lcmF0ZUNTU1J1bGVT
dHJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZW5lcmF0ZUNT
U1J1bGVTdHJpbmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBh
ZTllMDU4ZDc5NDdmODQ5MjViMjg1NTY4NjJiYWRmYWU4MjQ4OGYwLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mv
Z2VuZXJhdGVDU1NSdWxlU3RyaW5nLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDg3
ICswLDAgQEAKLVRlc3RpbmcgdGhhdCBnZW5lcmF0ZWQgQ1NTIHJ1bGUgc3RyaW5ncyBoYXZlIHBy
b3BlciBmb3JtYXR0aW5nLgotCi0KLT09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQ1NTLmdlbmVyYXRl
Q1NTUnVsZVN0cmluZwotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENTUy5nZW5lcmF0ZUNTU1J1bGVT
dHJpbmcuSW5saW5lU3R5bGUKLSN0ZXN0LW5vZGUgewotICAgIGE6IDE7Ci0gICAgYjogMjsKLSAg
ICBjOiAzOwotfQotCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ1NTLmdlbmVyYXRlQ1NTUnVsZVN0
cmluZy5JbmxpbmVTdHlsZS5XaXRoQ29tbWVudGVkUHJvcGVydHkKLSN0ZXN0LW5vZGUgewotICAg
IGE6IDE7Ci0gICAgLyogYjogMjsgKi8KLSAgICBjOiAzOwotfQotCi0tLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogQ1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmluZy5NYXRjaGVkUnVsZXMKLUBtZWRpYSBvbmx5
IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMHB4KSB7Ci0gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFu
ZCAobWluLWhlaWdodDogMHB4KSB7Ci0gICAgICAgIGJvZHkgPiBkaXYjdGVzdC1ub2RlIHsKLSAg
ICAgICAgICAgIGE6IDE7Ci0gICAgICAgICAgICBiOiAyOwotICAgICAgICAgICAgYzogMzsKLSAg
ICAgICAgfQotICAgIH0KLX0KLUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMHB4
KSB7Ci0gICAgYm9keSA+ICN0ZXN0LW5vZGUgewotICAgICAgICBhOiAxOwotICAgICAgICBiOiAy
OwotICAgICAgICBjOiAzOwotICAgIH0KLX0KLWJvZHkgPiBkaXYgewotICAgIGE6IDE7Ci0gICAg
YjogMjsKLSAgICBjOiAzOwotfQotYm9keSA+ICogewotICAgIGE6IDE7Ci0gICAgYjogMjsKLSAg
ICBjOiAzOwotfQotKiB7Ci0gICAgYTogMTsKLSAgICBiOiAyOwotICAgIGM6IDM7Ci19Ci1hZGRy
ZXNzLCBhcnRpY2xlLCBhc2lkZSwgZGl2LCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBsYXllciwg
bWFpbiwgbmF2LCBzZWN0aW9uIHsKLSAgICBkaXNwbGF5OiBibG9jazsKLX0KLQotLS0gUnVubmlu
ZyB0ZXN0IGNhc2U6IENTUy5nZW5lcmF0ZUNTU1J1bGVTdHJpbmcuTWF0Y2hlZFJ1bGVzLldpdGhD
b21tZW50ZWRQcm9wZXJ0aWVzCi1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBw
eCkgewotICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi1oZWlnaHQ6IDBweCkgewotICAg
ICAgICBib2R5ID4gZGl2I3Rlc3Qtbm9kZSB7Ci0gICAgICAgICAgICBhOiAxOwotICAgICAgICAg
ICAgLyogYjogMjsgKi8KLSAgICAgICAgICAgIGM6IDM7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci1A
bWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBweCkgewotICAgIGJvZHkgPiAjdGVz
dC1ub2RlIHsKLSAgICAgICAgYTogMTsKLSAgICAgICAgLyogYjogMjsgKi8KLSAgICAgICAgYzog
MzsKLSAgICB9Ci19Ci1ib2R5ID4gZGl2IHsKLSAgICBhOiAxOwotICAgIC8qIGI6IDI7ICovCi0g
ICAgYzogMzsKLX0KLWJvZHkgPiAqIHsKLSAgICBhOiAxOwotICAgIC8qIGI6IDI7ICovCi0gICAg
YzogMzsKLX0KLSogewotICAgIGE6IDE7Ci0gICAgLyogYjogMjsgKi8KLSAgICBjOiAzOwotfQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dlbmVyYXRlQ1NTUnVsZVN0
cmluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZW5lcmF0ZUNTU1J1bGVTdHJp
bmcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWVmOWY3N2E5ZmFmMmFjNjc5
MmNmM2VlZDMyNjhiNGRkNzVkMTcwOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dlbmVyYXRlQ1NTUnVsZVN0
cmluZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotKnthOjE7YjoyO2M6M30KLWJvZHk+KnthOjE7Yjoy
O2M6M30KLUBtZWRpYSBhbGwge2JvZHk+ZGl2e2E6MTtiOjI7YzozfX0KLUBtZWRpYSBvbmx5IHNj
cmVlbiBhbmQgKG1pbi13aWR0aDowcHgpIHtib2R5PiN0ZXN0LW5vZGV7YToxO2I6MjtjOjN9fQot
QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOjBweCkge0BtZWRpYSBvbmx5IHNjcmVl
biBhbmQgKG1pbi1oZWlnaHQ6MHB4KSB7Ym9keT5kaXYjdGVzdC1ub2Rle2E6MTtiOjI7YzozfX19
Ci08L3N0eWxlPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVz
dCgpIHsKLSAgICBsZXQgbm9kZVN0eWxlcyA9IG51bGw7Ci0KLSAgICBsZXQgc3VpdGUgPSBJbnNw
ZWN0b3JUZXN0LmNyZWF0ZVN5bmNTdWl0ZSgiQ1NTLmdlbmVyYXRlQ1NTUnVsZVN0cmluZyIpOwot
Ci0gICAgc3VpdGUuYWRkVGVzdENhc2UoewotICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlQ1NT
UnVsZVN0cmluZy5JbmxpbmVTdHlsZSIsCi0gICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhl
IGZvcm1hdHRpbmcgb2YgdGhlIGdlbmVyYXRlZCBpbmxpbmUgc3R5bGUgc3RyaW5nLiIsCi0gICAg
ICAgIHRlc3QoKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhub2RlU3R5bGVzLmlu
bGluZVN0eWxlLmdlbmVyYXRlQ1NTUnVsZVN0cmluZygpKTsKLSAgICAgICAgfQotICAgIH0pOwot
Ci0gICAgc3VpdGUuYWRkVGVzdENhc2UoewotICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlQ1NT
UnVsZVN0cmluZy5JbmxpbmVTdHlsZS5XaXRoQ29tbWVudGVkUHJvcGVydHkiLAotICAgICAgICBk
ZXNjcmlwdGlvbjogIkNoZWNrIHRoZSBmb3JtYXR0aW5nIG9mIHRoZSBnZW5lcmF0ZWQgaW5saW5l
IHN0eWxlIHN0cmluZyBpZiBhIHByb3BlcnR5IGlzIGNvbW1lbnRlZCBvdXQuIiwKLSAgICAgICAg
dGVzdCgpIHsKLSAgICAgICAgICAgIG5vZGVTdHlsZXMuaW5saW5lU3R5bGUucHJvcGVydGllc1sx
XS5jb21tZW50T3V0KHRydWUpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2cobm9kZVN0
eWxlcy5pbmxpbmVTdHlsZS5nZW5lcmF0ZUNTU1J1bGVTdHJpbmcoKSk7Ci0gICAgICAgIH0sCi0g
ICAgfSk7Ci0KLSAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWU6ICJDU1MuZ2Vu
ZXJhdGVDU1NSdWxlU3RyaW5nLk1hdGNoZWRSdWxlcyIsCi0gICAgICAgIGRlc2NyaXB0aW9uOiAi
Q2hlY2sgdGhlIGZvcm1hdHRpbmcgb2YgdGhlIGdlbmVyYXRlZCBzdHJpbmcgZm9yIGFsbCBtYXRj
aGVkIENTUyBydWxlcy4iLAotICAgICAgICB0ZXN0KCkgewotICAgICAgICAgICAgZm9yIChsZXQg
cnVsZSBvZiBub2RlU3R5bGVzLm1hdGNoZWRSdWxlcykKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZyhydWxlLnN0eWxlLmdlbmVyYXRlQ1NTUnVsZVN0cmluZygpKTsKLSAgICAgICAg
fQotICAgIH0pOwotCi0gICAgc3VpdGUuYWRkVGVzdENhc2UoewotICAgICAgICBuYW1lOiAiQ1NT
LmdlbmVyYXRlQ1NTUnVsZVN0cmluZy5NYXRjaGVkUnVsZXMuV2l0aENvbW1lbnRlZFByb3BlcnRp
ZXMiLAotICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoZSBmb3JtYXR0aW5nIG9mIHRoZSBn
ZW5lcmF0ZWQgc3RyaW5nIGZvciBhbGwgbWF0Y2hlZCBDU1MgcnVsZXMgaWYgYSBwcm9wZXJ0eSBp
cyBjb21tZW50ZWQgb3V0IGluIGVhY2guIiwKLSAgICAgICAgdGVzdCgpIHsKLSAgICAgICAgICAg
IGZvciAobGV0IHJ1bGUgb2Ygbm9kZVN0eWxlcy5tYXRjaGVkUnVsZXMpIHsKLSAgICAgICAgICAg
ICAgICBpZiAoIXJ1bGUuc3R5bGUuZWRpdGFibGUpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwotCi0gICAgICAgICAgICAgICAgcnVsZS5zdHlsZS5wcm9wZXJ0aWVzWzFdLmNvbW1lbnRP
dXQodHJ1ZSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2cocnVsZS5zdHlsZS5n
ZW5lcmF0ZUNTU1J1bGVTdHJpbmcoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9
KTsKLQotICAgIFdJLmRvbU1hbmFnZXIucmVxdWVzdERvY3VtZW50KChkb2N1bWVudE5vZGUpID0+
IHsKLSAgICAgICAgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIiN0ZXN0LW5vZGUiLCBhc3lu
YyAoY29udGVudE5vZGVJZCkgPT4gewotICAgICAgICAgICAgaWYgKCFjb250ZW50Tm9kZUlkKSB7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRPTSBub2RlIG5vdCBmb3VuZC4i
KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbGV0IGRvbU5v
ZGUgPSBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChjb250ZW50Tm9kZUlkKTsKLSAgICAgICAgICAg
IG5vZGVTdHlsZXMgPSBXSS5jc3NNYW5hZ2VyLnN0eWxlc0Zvck5vZGUoZG9tTm9kZSk7Ci0gICAg
ICAgICAgICBpZiAobm9kZVN0eWxlcy5uZWVkc1JlZnJlc2gpCi0gICAgICAgICAgICAgICAgYXdh
aXQgbm9kZVN0eWxlcy5hd2FpdEV2ZW50KFdJLkRPTU5vZGVTdHlsZXMuRXZlbnQuUmVmcmVzaGVk
KTsKLQotICAgICAgICAgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Ci0gICAgICAg
IH0pOwotICAgIH0pOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Ci0gICAgPHA+VGVzdGluZyB0aGF0IGdlbmVyYXRlZCBDU1MgcnVsZSBzdHJpbmdzIGhh
dmUgcHJvcGVyIGZvcm1hdHRpbmcuPC9wPgotICAgIDxkaXYgaWQ9InRlc3Qtbm9kZSIgc3R5bGU9
ImE6MTtiOjI7YzozIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iMmMxNjM4YTg1NmRjZWU3YjBjMzFmMjI5NmEyOTM2NWZiYmJjYWEy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZW5lcmF0ZUZv
cm1hdHRlZFRleHQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTkyIEBACitUZXN0aW5nIHRoYXQg
Z2VuZXJhdGVkIENTUyBydWxlIHN0cmluZ3MgaGF2ZSBwcm9wZXIgZm9ybWF0dGluZy4KKworCis9
PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFdJLkNTU1N0eWVsRGVjbGFyYXRpb24ucHJvdG90eXBlLmdl
bmVyYXRlRm9ybWF0dGVkVGV4dAorLS0gUnVubmluZyB0ZXN0IGNhc2U6IENTUy5nZW5lcmF0ZUZv
cm1hdHRlZFRleHQuSW5saW5lU3R5bGUKK2E6IDE7IGI6IDI7IGM6IDM7CisKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBDU1MuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0LklubGluZVN0eWxlLmluY2x1ZGVH
cm91cGluZ3NBbmRTZWxlY3RvcnMKKyN0ZXN0LW5vZGUge2E6IDE7IGI6IDI7IGM6IDM7fQorCist
LSBSdW5uaW5nIHRlc3QgY2FzZTogQ1NTLmdlbmVyYXRlRm9ybWF0dGVkVGV4dC5JbmxpbmVTdHls
ZS5NdWx0aWxpbmUKKworICAgIGE6IDE7CisgICAgYjogMjsKKyAgICBjOiAzOworCisKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBDU1MuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0LklubGluZVN0eWxlLk11
bHRpbGluZS5pbmNsdWRlR3JvdXBpbmdzQW5kU2VsZWN0b3JzCisjdGVzdC1ub2RlIHsKKyAgICBh
OiAxOworICAgIGI6IDI7CisgICAgYzogMzsKK30KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENT
Uy5nZW5lcmF0ZUZvcm1hdHRlZFRleHQuSW5saW5lU3R5bGUuV2l0aENvbW1lbnRlZFByb3BlcnR5
CithOiAxOyAvKiBiOiAyOyAqLyBjOiAzOworCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ1NTLmdl
bmVyYXRlRm9ybWF0dGVkVGV4dC5JbmxpbmVTdHlsZS5XaXRoQ29tbWVudGVkUHJvcGVydHkuaW5j
bHVkZUdyb3VwaW5nc0FuZFNlbGVjdG9ycworI3Rlc3Qtbm9kZSB7YTogMTsgLyogYjogMjsgKi8g
YzogMzt9CisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDU1MuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0
LklubGluZVN0eWxlLldpdGhDb21tZW50ZWRQcm9wZXJ0eS5NdWx0aWxpbmUKKworICAgIGE6IDE7
CisgICAgLyogYjogMjsgKi8KKyAgICBjOiAzOworCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBD
U1MuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0LklubGluZVN0eWxlLldpdGhDb21tZW50ZWRQcm9wZXJ0
eS5pbmNsdWRlR3JvdXBpbmdzQW5kU2VsZWN0b3JzLk11bHRpbGluZQorI3Rlc3Qtbm9kZSB7Cisg
ICAgYTogMTsKKyAgICAvKiBiOiAyOyAqLworICAgIGM6IDM7Cit9CisKKy0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBDU1MuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0Lk1hdGNoZWRSdWxlcworYTogMTsgYjog
MjsgYzogMzsKK2E6IDE7IGI6IDI7IGM6IDM7CithOiAxOyBiOiAyOyBjOiAzOworYTogMTsgYjog
MjsgYzogMzsKK2E6IDE7IGI6IDI7IGM6IDM7CisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDU1Mu
Z2VuZXJhdGVGb3JtYXR0ZWRUZXh0Lk1hdGNoZWRSdWxlcy5pbmNsdWRlR3JvdXBpbmdzQW5kU2Vs
ZWN0b3JzCitAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBweCkge0BtZWRpYSBv
bmx5IHNjcmVlbiBhbmQgKG1pbi1oZWlnaHQ6IDBweCkge2JvZHkgPiBkaXYjdGVzdC1ub2RlIHth
OiAxOyBiOiAyOyBjOiAzO319fQorQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAw
cHgpIHtib2R5ID4gI3Rlc3Qtbm9kZSB7YTogMTsgYjogMjsgYzogMzt9fQorYm9keSA+IGRpdiB7
YTogMTsgYjogMjsgYzogMzt9Citib2R5ID4gKiB7YTogMTsgYjogMjsgYzogMzt9CisqIHthOiAx
OyBiOiAyOyBjOiAzO30KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENTUy5nZW5lcmF0ZUZvcm1h
dHRlZFRleHQuTWF0Y2hlZFJ1bGVzLk11bHRpbGluZQorCisgICAgICAgICAgICBhOiAxOworICAg
ICAgICAgICAgYjogMjsKKyAgICAgICAgICAgIGM6IDM7CisKKworICAgICAgICBhOiAxOworICAg
ICAgICBiOiAyOworICAgICAgICBjOiAzOworCisKKyAgICBhOiAxOworICAgIGI6IDI7CisgICAg
YzogMzsKKworCisgICAgYTogMTsKKyAgICBiOiAyOworICAgIGM6IDM7CisKKworICAgIGE6IDE7
CisgICAgYjogMjsKKyAgICBjOiAzOworCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDU1MuZ2Vu
ZXJhdGVGb3JtYXR0ZWRUZXh0Lk1hdGNoZWRSdWxlcy5pbmNsdWRlR3JvdXBpbmdzQW5kU2VsZWN0
b3JzLk11bHRpbGluZQorQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwcHgpIHsK
KyAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4taGVpZ2h0OiAwcHgpIHsKKyAgICAgICAg
Ym9keSA+IGRpdiN0ZXN0LW5vZGUgeworICAgICAgICAgICAgYTogMTsKKyAgICAgICAgICAgIGI6
IDI7CisgICAgICAgICAgICBjOiAzOworICAgICAgICB9CisgICAgfQorfQorQG1lZGlhIG9ubHkg
c2NyZWVuIGFuZCAobWluLXdpZHRoOiAwcHgpIHsKKyAgICBib2R5ID4gI3Rlc3Qtbm9kZSB7Cisg
ICAgICAgIGE6IDE7CisgICAgICAgIGI6IDI7CisgICAgICAgIGM6IDM7CisgICAgfQorfQorYm9k
eSA+IGRpdiB7CisgICAgYTogMTsKKyAgICBiOiAyOworICAgIGM6IDM7Cit9Citib2R5ID4gKiB7
CisgICAgYTogMTsKKyAgICBiOiAyOworICAgIGM6IDM7Cit9CisqIHsKKyAgICBhOiAxOworICAg
IGI6IDI7CisgICAgYzogMzsKK30KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENTUy5nZW5lcmF0
ZUZvcm1hdHRlZFRleHQuTWF0Y2hlZFJ1bGVzLldpdGhDb21tZW50ZWRQcm9wZXJ0aWVzCithOiAx
OyAvKiBiOiAyOyAqLyBjOiAzOworYTogMTsgLyogYjogMjsgKi8gYzogMzsKK2E6IDE7IC8qIGI6
IDI7ICovIGM6IDM7CithOiAxOyAvKiBiOiAyOyAqLyBjOiAzOworYTogMTsgLyogYjogMjsgKi8g
YzogMzsKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENTUy5nZW5lcmF0ZUZvcm1hdHRlZFRleHQu
TWF0Y2hlZFJ1bGVzLldpdGhDb21tZW50ZWRQcm9wZXJ0aWVzLmluY2x1ZGVHcm91cGluZ3NBbmRT
ZWxlY3RvcnMKK0BtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMHB4KSB7QG1lZGlh
IG9ubHkgc2NyZWVuIGFuZCAobWluLWhlaWdodDogMHB4KSB7Ym9keSA+IGRpdiN0ZXN0LW5vZGUg
e2E6IDE7IC8qIGI6IDI7ICovIGM6IDM7fX19CitAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4t
d2lkdGg6IDBweCkge2JvZHkgPiAjdGVzdC1ub2RlIHthOiAxOyAvKiBiOiAyOyAqLyBjOiAzO319
Citib2R5ID4gZGl2IHthOiAxOyAvKiBiOiAyOyAqLyBjOiAzO30KK2JvZHkgPiAqIHthOiAxOyAv
KiBiOiAyOyAqLyBjOiAzO30KKyoge2E6IDE7IC8qIGI6IDI7ICovIGM6IDM7fQorCistLSBSdW5u
aW5nIHRlc3QgY2FzZTogQ1NTLmdlbmVyYXRlRm9ybWF0dGVkVGV4dC5NYXRjaGVkUnVsZXMuV2l0
aENvbW1lbnRlZFByb3BlcnRpZXMuTXVsdGlsaW5lCisKKyAgICAgICAgICAgIGE6IDE7CisgICAg
ICAgICAgICAvKiBiOiAyOyAqLworICAgICAgICAgICAgYzogMzsKKworCisgICAgICAgIGE6IDE7
CisgICAgICAgIC8qIGI6IDI7ICovCisgICAgICAgIGM6IDM7CisKKworICAgIGE6IDE7CisgICAg
LyogYjogMjsgKi8KKyAgICBjOiAzOworCisKKyAgICBhOiAxOworICAgIC8qIGI6IDI7ICovCisg
ICAgYzogMzsKKworCisgICAgYTogMTsKKyAgICAvKiBiOiAyOyAqLworICAgIGM6IDM7CisKKwor
LS0gUnVubmluZyB0ZXN0IGNhc2U6IENTUy5nZW5lcmF0ZUZvcm1hdHRlZFRleHQuTWF0Y2hlZFJ1
bGVzLldpdGhDb21tZW50ZWRQcm9wZXJ0aWVzLmluY2x1ZGVHcm91cGluZ3NBbmRTZWxlY3RvcnMu
TXVsdGlsaW5lCitAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBweCkgeworICAg
IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi1oZWlnaHQ6IDBweCkgeworICAgICAgICBib2R5
ID4gZGl2I3Rlc3Qtbm9kZSB7CisgICAgICAgICAgICBhOiAxOworICAgICAgICAgICAgLyogYjog
MjsgKi8KKyAgICAgICAgICAgIGM6IDM7CisgICAgICAgIH0KKyAgICB9Cit9CitAbWVkaWEgb25s
eSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBweCkgeworICAgIGJvZHkgPiAjdGVzdC1ub2RlIHsK
KyAgICAgICAgYTogMTsKKyAgICAgICAgLyogYjogMjsgKi8KKyAgICAgICAgYzogMzsKKyAgICB9
Cit9Citib2R5ID4gZGl2IHsKKyAgICBhOiAxOworICAgIC8qIGI6IDI7ICovCisgICAgYzogMzsK
K30KK2JvZHkgPiAqIHsKKyAgICBhOiAxOworICAgIC8qIGI6IDI7ICovCisgICAgYzogMzsKK30K
KyogeworICAgIGE6IDE7CisgICAgLyogYjogMjsgKi8KKyAgICBjOiAzOworfQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dlbmVyYXRlRm9ybWF0dGVkVGV4dC5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZW5lcmF0ZUZvcm1hdHRlZFRleHQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lOGJjNzBhMGM2ZjRhZTAxYjk0MjBlYTg1OWI3ZjdlZjcxNzI4MWZjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZW5lcmF0ZUZvcm1hdHRl
ZFRleHQuaHRtbApAQCAtMCwwICsxLDIwOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHN0eWxlPgorKnthOjE7YjoyO2M6M30KK2JvZHk+KnthOjE7YjoyO2M6M30KK0BtZWRp
YSBhbGwge2JvZHk+ZGl2e2E6MTtiOjI7YzozfX0KK0BtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1p
bi13aWR0aDowcHgpIHtib2R5PiN0ZXN0LW5vZGV7YToxO2I6MjtjOjN9fQorQG1lZGlhIG9ubHkg
c2NyZWVuIGFuZCAobWluLXdpZHRoOjBweCkge0BtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi1o
ZWlnaHQ6MHB4KSB7Ym9keT5kaXYjdGVzdC1ub2Rle2E6MTtiOjI7YzozfX19Cis8L3N0eWxlPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBs
ZXQgbm9kZVN0eWxlcyA9IG51bGw7CisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNy
ZWF0ZVN5bmNTdWl0ZSgiV0kuQ1NTU3R5ZWxEZWNsYXJhdGlvbi5wcm90b3R5cGUuZ2VuZXJhdGVG
b3JtYXR0ZWRUZXh0Iik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6
ICJDU1MuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0LklubGluZVN0eWxlIiwKKyAgICAgICAgZGVzY3Jp
cHRpb246ICJDaGVjayB0aGUgZm9ybWF0dGluZyBvZiB0aGUgZ2VuZXJhdGVkIGlubGluZSBzdHls
ZSBzdHJpbmcuIiwKKyAgICAgICAgdGVzdCgpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKG5vZGVTdHlsZXMuaW5saW5lU3R5bGUuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0KCkpOworICAg
ICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6
ICJDU1MuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0LklubGluZVN0eWxlLmluY2x1ZGVHcm91cGluZ3NB
bmRTZWxlY3RvcnMiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoZSBmb3JtYXR0aW5n
IG9mIHRoZSBnZW5lcmF0ZWQgaW5saW5lIHN0eWxlIHN0cmluZyAoaW5jbHVkaW5nIGdyb3VwaW5n
cyBhbmQgc2VsZWN0b3JzKS4iLAorICAgICAgICB0ZXN0KCkgeworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2cobm9kZVN0eWxlcy5pbmxpbmVTdHlsZS5nZW5lcmF0ZUZvcm1hdHRlZFRleHQo
e2luY2x1ZGVHcm91cGluZ3NBbmRTZWxlY3RvcnM6IHRydWV9KSk7CisgICAgICAgIH0KKyAgICB9
KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkNTUy5nZW5lcmF0
ZUZvcm1hdHRlZFRleHQuSW5saW5lU3R5bGUuTXVsdGlsaW5lIiwKKyAgICAgICAgZGVzY3JpcHRp
b246ICJDaGVjayB0aGUgZm9ybWF0dGluZyBvZiB0aGUgZ2VuZXJhdGVkIGlubGluZSBzdHlsZSBz
dHJpbmcgKG11bHRpbGluZSkuIiwKKyAgICAgICAgdGVzdCgpIHsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKG5vZGVTdHlsZXMuaW5saW5lU3R5bGUuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0
KHttdWx0aWxpbmU6IHRydWV9KSk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLmFk
ZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkNTUy5nZW5lcmF0ZUZvcm1hdHRlZFRleHQuSW5s
aW5lU3R5bGUuTXVsdGlsaW5lLmluY2x1ZGVHcm91cGluZ3NBbmRTZWxlY3RvcnMiLAorICAgICAg
ICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoZSBmb3JtYXR0aW5nIG9mIHRoZSBnZW5lcmF0ZWQgaW5s
aW5lIHN0eWxlIHN0cmluZyAobXVsdGlsaW5lLCBhbmQgaW5jbHVkaW5nIGdyb3VwaW5ncyBhbmQg
c2VsZWN0b3JzKS4iLAorICAgICAgICB0ZXN0KCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2cobm9kZVN0eWxlcy5pbmxpbmVTdHlsZS5nZW5lcmF0ZUZvcm1hdHRlZFRleHQoe211bHRp
bGluZTogdHJ1ZSwgaW5jbHVkZUdyb3VwaW5nc0FuZFNlbGVjdG9yczogdHJ1ZX0pKTsKKyAgICAg
ICAgfQorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAi
Q1NTLmdlbmVyYXRlRm9ybWF0dGVkVGV4dC5JbmxpbmVTdHlsZS5XaXRoQ29tbWVudGVkUHJvcGVy
dHkiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoZSBmb3JtYXR0aW5nIG9mIHRoZSBn
ZW5lcmF0ZWQgaW5saW5lIHN0eWxlIHN0cmluZyBpZiBhIHByb3BlcnR5IGlzIGNvbW1lbnRlZCBv
dXQuIiwKKyAgICAgICAgdGVzdCgpIHsKKyAgICAgICAgICAgIG5vZGVTdHlsZXMuaW5saW5lU3R5
bGUucHJvcGVydGllc1sxXS5jb21tZW50T3V0KHRydWUpOworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2cobm9kZVN0eWxlcy5pbmxpbmVTdHlsZS5nZW5lcmF0ZUZvcm1hdHRlZFRleHQoKSk7
CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAg
IG5hbWU6ICJDU1MuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0LklubGluZVN0eWxlLldpdGhDb21tZW50
ZWRQcm9wZXJ0eS5pbmNsdWRlR3JvdXBpbmdzQW5kU2VsZWN0b3JzIiwKKyAgICAgICAgZGVzY3Jp
cHRpb246ICJDaGVjayB0aGUgZm9ybWF0dGluZyBvZiB0aGUgZ2VuZXJhdGVkIGlubGluZSBzdHls
ZSBzdHJpbmcgKGluY2x1ZGluZyBncm91cGluZ3MgYW5kIHNlbGVjdG9ycykgaWYgYSBwcm9wZXJ0
eSBpcyBjb21tZW50ZWQgb3V0LiIsCisgICAgICAgIHRlc3QoKSB7CisgICAgICAgICAgICBub2Rl
U3R5bGVzLmlubGluZVN0eWxlLnByb3BlcnRpZXNbMV0uY29tbWVudE91dCh0cnVlKTsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKG5vZGVTdHlsZXMuaW5saW5lU3R5bGUuZ2VuZXJhdGVG
b3JtYXR0ZWRUZXh0KHtpbmNsdWRlR3JvdXBpbmdzQW5kU2VsZWN0b3JzOiB0cnVlfSkpOworICAg
ICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1l
OiAiQ1NTLmdlbmVyYXRlRm9ybWF0dGVkVGV4dC5JbmxpbmVTdHlsZS5XaXRoQ29tbWVudGVkUHJv
cGVydHkuTXVsdGlsaW5lIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGUgZm9ybWF0
dGluZyBvZiB0aGUgZ2VuZXJhdGVkIGlubGluZSBzdHlsZSBzdHJpbmcgKG11bHRpbGluZSkgaWYg
YSBwcm9wZXJ0eSBpcyBjb21tZW50ZWQgb3V0LiIsCisgICAgICAgIHRlc3QoKSB7CisgICAgICAg
ICAgICBub2RlU3R5bGVzLmlubGluZVN0eWxlLnByb3BlcnRpZXNbMV0uY29tbWVudE91dCh0cnVl
KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKG5vZGVTdHlsZXMuaW5saW5lU3R5bGUu
Z2VuZXJhdGVGb3JtYXR0ZWRUZXh0KHttdWx0aWxpbmU6IHRydWV9KSk7CisgICAgICAgIH0sCisg
ICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDU1MuZ2Vu
ZXJhdGVGb3JtYXR0ZWRUZXh0LklubGluZVN0eWxlLldpdGhDb21tZW50ZWRQcm9wZXJ0eS5pbmNs
dWRlR3JvdXBpbmdzQW5kU2VsZWN0b3JzLk11bHRpbGluZSIsCisgICAgICAgIGRlc2NyaXB0aW9u
OiAiQ2hlY2sgdGhlIGZvcm1hdHRpbmcgb2YgdGhlIGdlbmVyYXRlZCBpbmxpbmUgc3R5bGUgc3Ry
aW5nIChtdWx0aWxpbmUsIGFuZCBpbmNsdWRpbmcgZ3JvdXBpbmdzIGFuZCBzZWxlY3RvcnMpIGlm
IGEgcHJvcGVydHkgaXMgY29tbWVudGVkIG91dC4iLAorICAgICAgICB0ZXN0KCkgeworICAgICAg
ICAgICAgbm9kZVN0eWxlcy5pbmxpbmVTdHlsZS5wcm9wZXJ0aWVzWzFdLmNvbW1lbnRPdXQodHJ1
ZSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhub2RlU3R5bGVzLmlubGluZVN0eWxl
LmdlbmVyYXRlRm9ybWF0dGVkVGV4dCh7aW5jbHVkZUdyb3VwaW5nc0FuZFNlbGVjdG9yczogdHJ1
ZSwgbXVsdGlsaW5lOiB0cnVlfSkpOworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUu
YWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlRm9ybWF0dGVkVGV4dC5N
YXRjaGVkUnVsZXMiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoZSBmb3JtYXR0aW5n
IG9mIHRoZSBnZW5lcmF0ZWQgc3RyaW5nIGZvciBhbGwgbWF0Y2hlZCBDU1MgcnVsZXMuIiwKKyAg
ICAgICAgdGVzdCgpIHsKKyAgICAgICAgICAgIGZvciAobGV0IHJ1bGUgb2Ygbm9kZVN0eWxlcy5t
YXRjaGVkUnVsZXMpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXJ1bGUuc3R5bGUuZWRpdGFibGUp
CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKHJ1bGUuc3R5bGUuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0KCkpOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAg
ICAgIG5hbWU6ICJDU1MuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0Lk1hdGNoZWRSdWxlcy5pbmNsdWRl
R3JvdXBpbmdzQW5kU2VsZWN0b3JzIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGUg
Zm9ybWF0dGluZyBvZiB0aGUgZ2VuZXJhdGVkIHN0cmluZyAoaW5jbHVkaW5nIGdyb3VwaW5ncyBh
bmQgc2VsZWN0b3JzKSBmb3IgYWxsIG1hdGNoZWQgQ1NTIHJ1bGVzLiIsCisgICAgICAgIHRlc3Qo
KSB7CisgICAgICAgICAgICBmb3IgKGxldCBydWxlIG9mIG5vZGVTdHlsZXMubWF0Y2hlZFJ1bGVz
KSB7CisgICAgICAgICAgICAgICAgaWYgKCFydWxlLnN0eWxlLmVkaXRhYmxlKQorICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhy
dWxlLnN0eWxlLmdlbmVyYXRlRm9ybWF0dGVkVGV4dCh7aW5jbHVkZUdyb3VwaW5nc0FuZFNlbGVj
dG9yczogdHJ1ZX0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0pOworCisgICAg
c3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlRm9ybWF0dGVk
VGV4dC5NYXRjaGVkUnVsZXMuTXVsdGlsaW5lIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVj
ayB0aGUgZm9ybWF0dGluZyBvZiB0aGUgZ2VuZXJhdGVkIHN0cmluZyAobXVsdGlsaW5lKSBmb3Ig
YWxsIG1hdGNoZWQgQ1NTIHJ1bGVzLiIsCisgICAgICAgIHRlc3QoKSB7CisgICAgICAgICAgICBm
b3IgKGxldCBydWxlIG9mIG5vZGVTdHlsZXMubWF0Y2hlZFJ1bGVzKSB7CisgICAgICAgICAgICAg
ICAgaWYgKCFydWxlLnN0eWxlLmVkaXRhYmxlKQorICAgICAgICAgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhydWxlLnN0eWxlLmdlbmVyYXRl
Rm9ybWF0dGVkVGV4dCh7bXVsdGlsaW5lOiB0cnVlfSkpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJD
U1MuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0Lk1hdGNoZWRSdWxlcy5pbmNsdWRlR3JvdXBpbmdzQW5k
U2VsZWN0b3JzLk11bHRpbGluZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhlIGZv
cm1hdHRpbmcgb2YgdGhlIGdlbmVyYXRlZCBzdHJpbmcgKG11bHRpbGluZSwgYW5kIGluY2x1ZGlu
ZyBncm91cGluZ3MgYW5kIHNlbGVjdG9ycykgZm9yIGFsbCBtYXRjaGVkIENTUyBydWxlcy4iLAor
ICAgICAgICB0ZXN0KCkgeworICAgICAgICAgICAgZm9yIChsZXQgcnVsZSBvZiBub2RlU3R5bGVz
Lm1hdGNoZWRSdWxlcykgeworICAgICAgICAgICAgICAgIGlmICghcnVsZS5zdHlsZS5lZGl0YWJs
ZSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2cocnVsZS5zdHlsZS5nZW5lcmF0ZUZvcm1hdHRlZFRleHQoe2luY2x1ZGVHcm91
cGluZ3NBbmRTZWxlY3RvcnM6IHRydWUsIG11bHRpbGluZTogdHJ1ZX0pKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAg
ICBuYW1lOiAiQ1NTLmdlbmVyYXRlRm9ybWF0dGVkVGV4dC5NYXRjaGVkUnVsZXMuV2l0aENvbW1l
bnRlZFByb3BlcnRpZXMiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoZSBmb3JtYXR0
aW5nIG9mIHRoZSBnZW5lcmF0ZWQgc3RyaW5nIGZvciBhbGwgbWF0Y2hlZCBDU1MgcnVsZXMgaWYg
YSBwcm9wZXJ0eSBpcyBjb21tZW50ZWQgb3V0IGluIGVhY2guIiwKKyAgICAgICAgdGVzdCgpIHsK
KyAgICAgICAgICAgIGZvciAobGV0IHJ1bGUgb2Ygbm9kZVN0eWxlcy5tYXRjaGVkUnVsZXMpIHsK
KyAgICAgICAgICAgICAgICBpZiAoIXJ1bGUuc3R5bGUuZWRpdGFibGUpCisgICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIHJ1bGUuc3R5bGUucHJvcGVydGllc1sx
XS5jb21tZW50T3V0KHRydWUpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKHJ1
bGUuc3R5bGUuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0KCkpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJD
U1MuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0Lk1hdGNoZWRSdWxlcy5XaXRoQ29tbWVudGVkUHJvcGVy
dGllcy5pbmNsdWRlR3JvdXBpbmdzQW5kU2VsZWN0b3JzIiwKKyAgICAgICAgZGVzY3JpcHRpb246
ICJDaGVjayB0aGUgZm9ybWF0dGluZyBvZiB0aGUgZ2VuZXJhdGVkIHN0cmluZyAoaW5jbHVkaW5n
IGdyb3VwaW5ncyBhbmQgc2VsZWN0b3JzKSBmb3IgYWxsIG1hdGNoZWQgQ1NTIHJ1bGVzIGlmIGEg
cHJvcGVydHkgaXMgY29tbWVudGVkIG91dCBpbiBlYWNoLiIsCisgICAgICAgIHRlc3QoKSB7Cisg
ICAgICAgICAgICBmb3IgKGxldCBydWxlIG9mIG5vZGVTdHlsZXMubWF0Y2hlZFJ1bGVzKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKCFydWxlLnN0eWxlLmVkaXRhYmxlKQorICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBydWxlLnN0eWxlLnByb3BlcnRpZXNbMV0u
Y29tbWVudE91dCh0cnVlKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhydWxl
LnN0eWxlLmdlbmVyYXRlRm9ybWF0dGVkVGV4dCh7aW5jbHVkZUdyb3VwaW5nc0FuZFNlbGVjdG9y
czogdHJ1ZX0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3Vp
dGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQ1NTLmdlbmVyYXRlRm9ybWF0dGVkVGV4
dC5NYXRjaGVkUnVsZXMuV2l0aENvbW1lbnRlZFByb3BlcnRpZXMuTXVsdGlsaW5lIiwKKyAgICAg
ICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGUgZm9ybWF0dGluZyBvZiB0aGUgZ2VuZXJhdGVkIHN0
cmluZyAobXVsdGlsaW5lKSBmb3IgYWxsIG1hdGNoZWQgQ1NTIHJ1bGVzIGlmIGEgcHJvcGVydHkg
aXMgY29tbWVudGVkIG91dCBpbiBlYWNoLiIsCisgICAgICAgIHRlc3QoKSB7CisgICAgICAgICAg
ICBmb3IgKGxldCBydWxlIG9mIG5vZGVTdHlsZXMubWF0Y2hlZFJ1bGVzKSB7CisgICAgICAgICAg
ICAgICAgaWYgKCFydWxlLnN0eWxlLmVkaXRhYmxlKQorICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgICAgICAgICBydWxlLnN0eWxlLnByb3BlcnRpZXNbMV0uY29tbWVudE91
dCh0cnVlKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhydWxlLnN0eWxlLmdl
bmVyYXRlRm9ybWF0dGVkVGV4dCh7bXVsdGlsaW5lOiB0cnVlfSkpOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5h
bWU6ICJDU1MuZ2VuZXJhdGVGb3JtYXR0ZWRUZXh0Lk1hdGNoZWRSdWxlcy5XaXRoQ29tbWVudGVk
UHJvcGVydGllcy5pbmNsdWRlR3JvdXBpbmdzQW5kU2VsZWN0b3JzLk11bHRpbGluZSIsCisgICAg
ICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhlIGZvcm1hdHRpbmcgb2YgdGhlIGdlbmVyYXRlZCBz
dHJpbmcgKG11bHRpbGluZSwgYW5kIGluY2x1ZGluZyBncm91cGluZ3MgYW5kIHNlbGVjdG9ycykg
Zm9yIGFsbCBtYXRjaGVkIENTUyBydWxlcyBpZiBhIHByb3BlcnR5IGlzIGNvbW1lbnRlZCBvdXQg
aW4gZWFjaC4iLAorICAgICAgICB0ZXN0KCkgeworICAgICAgICAgICAgZm9yIChsZXQgcnVsZSBv
ZiBub2RlU3R5bGVzLm1hdGNoZWRSdWxlcykgeworICAgICAgICAgICAgICAgIGlmICghcnVsZS5z
dHlsZS5lZGl0YWJsZSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICAgICAgcnVsZS5zdHlsZS5wcm9wZXJ0aWVzWzFdLmNvbW1lbnRPdXQodHJ1ZSk7CisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2cocnVsZS5zdHlsZS5nZW5lcmF0ZUZvcm1hdHRlZFRl
eHQoe2luY2x1ZGVHcm91cGluZ3NBbmRTZWxlY3RvcnM6IHRydWUsIG11bHRpbGluZTogdHJ1ZX0p
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0pOworCisgICAgV0kuZG9tTWFuYWdl
ci5yZXF1ZXN0RG9jdW1lbnQoKGRvY3VtZW50Tm9kZSkgPT4geworICAgICAgICBkb2N1bWVudE5v
ZGUucXVlcnlTZWxlY3RvcigiI3Rlc3Qtbm9kZSIsIGFzeW5jIChjb250ZW50Tm9kZUlkKSA9PiB7
CisgICAgICAgICAgICBpZiAoIWNvbnRlbnROb2RlSWQpIHsKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiRE9NIG5vZGUgbm90IGZvdW5kLiIpOworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBsZXQgZG9tTm9kZSA9IFdJLmRvbU1hbmFnZXIubm9k
ZUZvcklkKGNvbnRlbnROb2RlSWQpOworICAgICAgICAgICAgbm9kZVN0eWxlcyA9IFdJLmNzc01h
bmFnZXIuc3R5bGVzRm9yTm9kZShkb21Ob2RlKTsKKyAgICAgICAgICAgIGlmIChub2RlU3R5bGVz
Lm5lZWRzUmVmcmVzaCkKKyAgICAgICAgICAgICAgICBhd2FpdCBub2RlU3R5bGVzLmF3YWl0RXZl
bnQoV0kuRE9NTm9kZVN0eWxlcy5FdmVudC5SZWZyZXNoZWQpOworCisgICAgICAgICAgICBzdWl0
ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9Cis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0aW5n
IHRoYXQgZ2VuZXJhdGVkIENTUyBydWxlIHN0cmluZ3MgaGF2ZSBwcm9wZXIgZm9ybWF0dGluZy48
L3A+CisgICAgPGRpdiBpZD0idGVzdC1ub2RlIiBzdHlsZT0iYToxO2I6MjtjOjMiPjwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9t
b2RpZnktY3NzLXByb3BlcnR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
c3MvbW9kaWZ5LWNzcy1wcm9wZXJ0eS1leHBlY3RlZC50eHQKaW5kZXggZWMxNjA3M2IyMzk1ZmRi
OTEzNjQ2N2M1OGIzMjRlMzBhMDE4OGM2MC4uNTQyMzIyNGNkNTg5MGZkYmZjMjgzYmFiMjM3NGUx
ODRkMzk4ZThlYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnkt
Y3NzLXByb3BlcnR5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3Nz
L21vZGlmeS1jc3MtcHJvcGVydHktZXhwZWN0ZWQudHh0CkBAIC01LDYgKzUsNyBAQCBUZXN0aW5n
IHRoYXQgQ1NTU3R5bGVEZWNsYXJhdGlvbiB1cGRhdGUgaW1tZWRpYXRlbHkgYWZ0ZXIgbW9kaWZ5
aW5nIGl0cyBwcm9wZXJ0aQogLS0gUnVubmluZyB0ZXN0IGNhc2U6IFVwZGF0ZSB2YWx1ZSB3aGVu
IENTU1N0eWxlRGVjbGFyYXRpb24gaXMgbm90IGxvY2tlZAogUEFTUzogImZvbnQtc2l6ZSIgcHJv
cGVydHkgdmFsdWUgc2hvdWxkIHVwZGF0ZSBpbW1lZGlhdGVseS4KIFBBU1M6IFN0eWxlIGRlY2xh
cmF0aW9uIHRleHQgc2hvdWxkIHVwZGF0ZSBpbW1lZGlhdGVseS4KK1BBU1M6IHN0eWxlU2hlZXRU
ZXh0UmFuZ2Ugc2hvdWxkIGNvcnJlc3BvbmQgdG8gImZvbnQtc2l6ZTogMTBweDsiCiAKIC0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBVcGRhdGUgdmFsdWUgd2hlbiBDU1NTdHlsZURlY2xhcmF0aW9uIGlz
IGxvY2tlZAogUEFTUzogImZvbnQtc2l6ZSIgcHJvcGVydHkgdmFsdWUgc2hvdWxkIHVwZGF0ZSBp
bW1lZGlhdGVseS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9kaWZ5
LWNzcy1wcm9wZXJ0eS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktY3Nz
LXByb3BlcnR5Lmh0bWwKaW5kZXggMjg2M2Y3ODI1MGRhZTZhMDJhYzYwY2U4MjFjMDljYmVlMWQ5
NTRmOC4uZDlkYTlhYTBjMDcwYjI0OTBmMjgwYTdiNGYzNGZlMjBmNDdlYWU2ZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5Lmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktY3NzLXByb3BlcnR5Lmh0bWwKQEAg
LTEsNiArMSw3IEBACiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9tb2RpZnktY3NzLXByb3BlcnR5LmNzcyI+CiA8
c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBmdW5jdGlvbiBtYWtlTmFycm93KCkgewpA
QCAtMzksMTQgKzQwLDIyIEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAKICAgICAgICAgICAgIGxldCBz
dHlsZURlY2xhcmF0aW9uID0gZ2V0TWF0Y2hlZFN0eWxlRGVjbGFyYXRpb24oKTsKICAgICAgICAg
ICAgIHN0eWxlRGVjbGFyYXRpb24ubG9ja2VkID0gZmFsc2U7CisKKyAgICAgICAgICAgIHN0eWxl
RGVjbGFyYXRpb24uc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuQ1NTU3R5bGVEZWNsYXJhdGlv
bi5FdmVudC5Qcm9wZXJ0aWVzQ2hhbmdlZCwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAg
ICAgICBsZXQgZm9udFByb3BlcnR5ID0gZ2V0UHJvcGVydHkoImZvbnQtc2l6ZSIpOworICAgICAg
ICAgICAgICAgIGxldCByZWxhdGl2ZVJhbmdlID0gZm9udFByb3BlcnR5LnN0eWxlU2hlZXRUZXh0
UmFuZ2UucmVsYXRpdmVUbyhmb250UHJvcGVydHkub3duZXJTdHlsZS5zdHlsZVNoZWV0VGV4dFJh
bmdlLnN0YXJ0TGluZSwgZm9udFByb3BlcnR5Lm93bmVyU3R5bGUuc3R5bGVTaGVldFRleHRSYW5n
ZS5zdGFydE9mZnNldCk7CisgICAgICAgICAgICAgICAgcmVsYXRpdmVSYW5nZS5yZXNvbHZlT2Zm
c2V0cyhmb250UHJvcGVydHkub3duZXJTdHlsZS50ZXh0KTsKKyAgICAgICAgICAgICAgICBsZXQg
cHJvcGVydHlUZXh0ID0gZm9udFByb3BlcnR5Lm93bmVyU3R5bGUudGV4dC5zbGljZShyZWxhdGl2
ZVJhbmdlLnN0YXJ0T2Zmc2V0LCByZWxhdGl2ZVJhbmdlLmVuZE9mZnNldCk7CisgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChwcm9wZXJ0eVRleHQsICJmb250LXNpemU6
IDEwcHg7IiwgYHN0eWxlU2hlZXRUZXh0UmFuZ2Ugc2hvdWxkIGNvcnJlc3BvbmQgdG8gImZvbnQt
c2l6ZTogMTBweDsiYCk7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAg
fSk7CisKICAgICAgICAgICAgIGdldFByb3BlcnR5KCJmb250LXNpemUiKS5yYXdWYWx1ZSA9ICIx
MXB4IjsKICAgICAgICAgICAgIGdldFByb3BlcnR5KCJmb250LXNpemUiKS5yYXdWYWx1ZSA9ICIx
MHB4IjsKIAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChnZXRQcm9wZXJ0
eSgiZm9udC1zaXplIikucmF3VmFsdWUsICIxMHB4IiwgYCJmb250LXNpemUiIHByb3BlcnR5IHZh
bHVlIHNob3VsZCB1cGRhdGUgaW1tZWRpYXRlbHkuYCk7CiAKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0RXF1YWwoc3R5bGVEZWNsYXJhdGlvbi50ZXh0LCBgZm9udC1zaXplOiAxMHB4
OyBjb2xvcjogYW50aXF1ZXdoaXRlYCwgYFN0eWxlIGRlY2xhcmF0aW9uIHRleHQgc2hvdWxkIHVw
ZGF0ZSBpbW1lZGlhdGVseS5gKTsKLQotICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGBcbiAg
ICBmb250LXNpemU6IDEwcHg7XG4gICAgY29sb3I6IGFudGlxdWV3aGl0ZTtcbmAsIGBTdHlsZSBk
ZWNsYXJhdGlvbiB0ZXh0IHNob3VsZCB1cGRhdGUgaW1tZWRpYXRlbHkuYCk7CiAgICAgICAgIH0K
ICAgICB9KTsKIApAQCAtODAsMTIgKzg5LDExIEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGdldFByb3BlcnR5KCJmb250LXNpemUiKS5y
YXdWYWx1ZSwgIjE2cHgiLCBgImZvbnQtc2l6ZSIgcHJvcGVydHkgdmFsdWUgc2hvdWxkIHVwZGF0
ZSBpbW1lZGlhdGVseS5gKTsKIAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVh
bChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGAKLSAgICAgICAgZm9udC1zaXplOiAxNnB4OwotICAg
ICAgICBjb2xvcjogIzMzMzsKLQotICAgICAgICBtYXJnaW4tbGVmdDogMDsKLSAgICAgICAgbWFy
Z2luLXRvcDogMWVtOwotICAgIGAsIGBTdHlsZSBkZWNsYXJhdGlvbiB0ZXh0IHNob3VsZCB1cGRh
dGUgaW1tZWRpYXRlbHkuYCk7CisgICAgZm9udC1zaXplOiAxNnB4OworICAgIGNvbG9yOiAjMzMz
OworICAgIG1hcmdpbi1sZWZ0OiAwOworICAgIG1hcmdpbi10b3A6IDFlbTsKK2AsIGBTdHlsZSBk
ZWNsYXJhdGlvbiB0ZXh0IHNob3VsZCB1cGRhdGUgaW1tZWRpYXRlbHkuYCk7CiAKICAgICAgICAg
ICAgIHN0eWxlRGVjbGFyYXRpb24ubG9ja2VkID0gZmFsc2U7CiAKQEAgLTI0Myw3ICsyNTEsNyBA
QCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgbGV0IGRpc2FibGVkID0gZmFsc2U7CiAg
ICAgICAgICAgICBnZXRQcm9wZXJ0eSgicGFkZGluZy1yaWdodCIpLmNvbW1lbnRPdXQoZGlzYWJs
ZWQpOwogCi0gICAgICAgICAgICBsZXQgZXhwZWN0ZWRTdHlsZVRleHQgPSBgXG4gICAgICAgIC8q
IHBhZGRpbmctbGVmdDogMmVtOyAqL1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG4gICAg
YDsKKyAgICAgICAgICAgIGxldCBleHBlY3RlZFN0eWxlVGV4dCA9IGBcbiAgICAvKiBwYWRkaW5n
LWxlZnQ6IDJlbTsgKi9cbiAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG5gOwogICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHlsZURlY2xhcmF0aW9uLnRleHQsIGV4cGVjdGVk
U3R5bGVUZXh0LCBgU3R5bGUgZGVjbGFyYXRpb24gdGV4dCBzaG91bGQgdXBkYXRlIGltbWVkaWF0
ZWx5IHdpdGggdW5jb21tZW50ZWQgcHJvcGVydHkuYCk7CiAKICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0VGhhdChnZXRQcm9wZXJ0eSgicGFkZGluZy1yaWdodCIpLmVuYWJsZWQsIGBV
bmNvbW1lbnRlZCBwcm9wZXJ0eSBzaG91bGQgYmUgZW5hYmxlZC5gKTsKQEAgLTI1MSw3ICsyNTks
NyBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgZGlzYWJsZWQgPSB0cnVlOwogICAg
ICAgICAgICAgZ2V0UHJvcGVydHkoInBhZGRpbmctcmlnaHQiKS5jb21tZW50T3V0KGRpc2FibGVk
KTsKIAotICAgICAgICAgICAgZXhwZWN0ZWRTdHlsZVRleHQgPSBgXG4gICAgICAgIC8qIHBhZGRp
bmctbGVmdDogMmVtOyAqL1xuICAgICAgICAvKiBwYWRkaW5nLXJpZ2h0OiAwcHg7ICovXG4gICAg
YDsKKyAgICAgICAgICAgIGV4cGVjdGVkU3R5bGVUZXh0ID0gYFxuICAgIC8qIHBhZGRpbmctbGVm
dDogMmVtOyAqL1xuICAgIC8qIHBhZGRpbmctcmlnaHQ6IDBweDsgKi9cbmA7CiAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlRGVjbGFyYXRpb24udGV4dCwgZXhwZWN0
ZWRTdHlsZVRleHQsIGBTdHlsZSBkZWNsYXJhdGlvbiB0ZXh0IHNob3VsZCB1cGRhdGUgaW1tZWRp
YXRlbHkgd2l0aCBjb21tZW50ZWQgb3V0IHByb3BlcnR5LmApOwogCiAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdFRoYXQoIWdldFByb3BlcnR5KCJwYWRkaW5nLXJpZ2h0IikuZW5hYmxl
ZCwgYENvbW1lbnRlZCBvdXQgcHJvcGVydHkgc2hvdWxkIGJlIGRpc2FibGVkLmApOwpAQCAtMjkw
LDcgKzI5OCw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICBsZXQgZGlzYWJsZWQg
PSBmYWxzZTsKICAgICAgICAgICAgIGdldFByb3BlcnR5KCJmb250LXNpemUiKS5jb21tZW50T3V0
KGRpc2FibGVkKTsKIAotICAgICAgICAgICAgbGV0IGV4cGVjdGVkU3R5bGVUZXh0ID0gYGZvbnQt
c2l6ZTogMTNweDsvKmJvcmRlcjogMnB4IHNvbGlkIGJyb3duKi9gOworICAgICAgICAgICAgbGV0
IGV4cGVjdGVkU3R5bGVUZXh0ID0gYFxuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAvKiBib3Jk
ZXI6IDJweCBzb2xpZCBicm93bjsgKi9cbmA7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdEVxdWFsKHN0eWxlRGVjbGFyYXRpb24udGV4dCwgZXhwZWN0ZWRTdHlsZVRleHQsIGBTdHls
ZSBkZWNsYXJhdGlvbiB0ZXh0IHNob3VsZCB1cGRhdGUgaW1tZWRpYXRlbHkgd2l0aCB1bmNvbW1l
bnRlZCBwcm9wZXJ0eS5gKTsKIAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0
KGdldFByb3BlcnR5KCJmb250LXNpemUiKS5lbmFibGVkLCBgVW5jb21tZW50ZWQgcHJvcGVydHkg
c2hvdWxkIGJlIGVuYWJsZWQuYCk7CkBAIC0yOTksNyArMzA3LDcgQEAgZnVuY3Rpb24gdGVzdCgp
IHsKICAgICAgICAgICAgIGRpc2FibGVkID0gZmFsc2U7CiAgICAgICAgICAgICBnZXRQcm9wZXJ0
eSgiYm9yZGVyIikuY29tbWVudE91dChkaXNhYmxlZCk7CiAKLSAgICAgICAgICAgIGV4cGVjdGVk
U3R5bGVUZXh0ID0gYGZvbnQtc2l6ZTogMTNweDtib3JkZXI6IDJweCBzb2xpZCBicm93bmA7Cisg
ICAgICAgICAgICBleHBlY3RlZFN0eWxlVGV4dCA9IGBcbiAgICBmb250LXNpemU6IDEzcHg7XG4g
ICAgYm9yZGVyOiAycHggc29saWQgYnJvd25cbmA7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdEVxdWFsKHN0eWxlRGVjbGFyYXRpb24udGV4dCwgZXhwZWN0ZWRTdHlsZVRleHQsIGBT
dHlsZSBkZWNsYXJhdGlvbiB0ZXh0IHNob3VsZCB1cGRhdGUgaW1tZWRpYXRlbHkgd2l0aCBjb21t
ZW50ZWQgb3V0IHByb3BlcnR5LmApOwogCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dFRoYXQoZ2V0UHJvcGVydHkoImJvcmRlciIpLmVuYWJsZWQsIGBVbmNvbW1lbnRlZCBwcm9wZXJ0
eSBzaG91bGQgYmUgZW5hYmxlZC5gKTsKQEAgLTMzMSwyMiArMzM5LDYgQEAgZnVuY3Rpb24gdGVz
dCgpIHsKIDwvaGVhZD4KIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KICAgICA8cD5UZXN0aW5n
IHRoYXQgQ1NTU3R5bGVEZWNsYXJhdGlvbiB1cGRhdGUgaW1tZWRpYXRlbHkgYWZ0ZXIgbW9kaWZ5
aW5nIGl0cyBwcm9wZXJ0aWVzIHdoZW4gaXQgaXMgbm90IGxvY2tlZC48L3A+Ci0KLSAgICA8c3R5
bGU+Ci0gICAgLnJ1bGUtYSB7Ci0gICAgICAgIGZvbnQtc2l6ZTogMTRweDsKLSAgICAgICAgY29s
b3I6ICMzMzM7Ci0KLSAgICAgICAgbWFyZ2luLWxlZnQ6IDA7Ci0gICAgICAgIG1hcmdpbi10b3A6
IDFlbTsKLSAgICB9Ci0gICAgLnJ1bGUtYiB7Zm9udC1zaXplOiAxMnB4OyBjb2xvcjogYW50aXF1
ZXdoaXRlfQotICAgIC5ydWxlLWMgewotICAgICAgICAvKiBwYWRkaW5nLWxlZnQ6IDJlbTsgKi8K
LSAgICAgICAgLyogcGFkZGluZy1yaWdodDogMHB4OyAqLwotICAgIH0KLSAgICAucnVsZS1kIHsv
KmZvbnQtc2l6ZTogMTNweDsqLy8qYm9yZGVyOiAycHggc29saWQgYnJvd24qL30KLSAgICA8L3N0
eWxlPgogICAgIDxkaXYgaWQ9IngiIGNsYXNzPSJ0ZXN0LW5vZGUgcnVsZS1hIHJ1bGUtYiBydWxl
LWMgcnVsZS1kIiBzdHlsZT0id2lkdGg6IDEwMHB4Ij48L2Rpdj4KIDwvYm9keT4KIDwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9kaWZ5LWlubGluZS1zdHls
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1pbmxpbmUt
c3R5bGUtZXhwZWN0ZWQudHh0CmluZGV4IDM5N2NhNjYzMDVmNzI1NzFhMjFkYTJkZjcyYzcxMjUx
OTViNDkzODYuLjQxMjM1ZWZiMTg5YTc5OTYzZjNhMDNmYjA4YzNiMzFmMzNmZTZlMjUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9kaWZ5LWlubGluZS1zdHlsZS1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktaW5saW5lLXN0
eWxlLWV4cGVjdGVkLnR4dApAQCAtNywxMiArNywxMiBAQCBDU1NQcm9wZXJ0eSBjaGFuZ2VkIHRv
ICJmb250OiAxMnB4IG5vcm1hbCBzYW5zLXNlcmlmIWltcG9ydGFudDsiLgogZm9udDogMTJweCBu
b3JtYWwgc2Fucy1zZXJpZiFpbXBvcnRhbnQ7CiAKIENTU1Byb3BlcnR5IGNoYW5nZWQgdG8gImNv
bG9yOiByZWQ7Ii4KLWZvbnQ6IDEycHggbm9ybWFsIHNhbnMtc2VyaWYhaW1wb3J0YW50O2NvbG9y
OiByZWQ7Citmb250OiAxMnB4IG5vcm1hbCBzYW5zLXNlcmlmIWltcG9ydGFudDsgY29sb3I6IHJl
ZDsKIAogQ1NTUHJvcGVydHkgY2hhbmdlZCB0byAiZm9udDogMTJweCBzYW5zLXNlcmlmOyIuCi1m
b250OiAxMnB4IHNhbnMtc2VyaWY7Y29sb3I6IHJlZDsKK2ZvbnQ6IDEycHggc2Fucy1zZXJpZjsg
Y29sb3I6IHJlZDsKIAogQ1NTUHJvcGVydHkgY2hhbmdlZCB0byAiY29sb3I6IGludmFsaWRfYzAx
MHI7Ii4KLWZvbnQ6IDEycHggc2Fucy1zZXJpZjtjb2xvcjogaW52YWxpZF9jMDEwcjsKK2ZvbnQ6
IDEycHggc2Fucy1zZXJpZjsgY29sb3I6IGludmFsaWRfYzAxMHI7CiAKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9yZXNvdXJjZXMvbW9kaWZ5LWNzcy1wcm9wZXJ0eS5j
c3MgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL3Jlc291cmNlcy9tb2RpZnktY3NzLXByb3Bl
cnR5LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41NzA1NDlmZWVjY2ZlODAxYTgzMjMzZDk1ZjkxN2I4YzJhYzU0
ZDMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9yZXNvdXJj
ZXMvbW9kaWZ5LWNzcy1wcm9wZXJ0eS5jc3MKQEAgLTAsMCArMSwxNSBAQAorLyogQSBjb21tZW50
LiAqLworCisucnVsZS1hIHsKKyAgICBmb250LXNpemU6IDE0cHg7CisgICAgY29sb3I6ICMzMzM7
CisKKyAgICBtYXJnaW4tbGVmdDogMDsKKyAgICBtYXJnaW4tdG9wOiAxZW07Cit9CisucnVsZS1i
IHtmb250LXNpemU6IDEycHg7IGNvbG9yOiBhbnRpcXVld2hpdGV9CisucnVsZS1jIHsKKyAgICAv
KiBwYWRkaW5nLWxlZnQ6IDJlbTsgKi8KKyAgICAvKiBwYWRkaW5nLXJpZ2h0OiAwcHg7ICovCit9
CisucnVsZS1kIHsvKmZvbnQtc2l6ZTogMTNweDsqLy8qYm9yZGVyOiAycHggc29saWQgYnJvd24q
L30K
</data>

          </attachment>
      

    </bug>

</bugzilla>