<?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>203439</bug_id>
          
          <creation_ts>2019-10-25 16:46:28 -0700</creation_ts>
          <short_desc>Web Inspector: Display color swatches for p3 colors</short_desc>
          <delta_ts>2019-11-01 12:34:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>203436</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikita Vasilyev">nvasilyev</reporter>
          <assigned_to name="Nikita Vasilyev">nvasilyev</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1584087</commentid>
    <comment_count>0</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2019-10-25 16:46:28 -0700</bug_when>
    <thetext>Currently, Web Inspector doesn&apos;t show color swatches for p3 colors in the style editor. It should!

For example,

    color(display-p3 0 1 0)

should have have a bright green square before it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584088</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-25 16:46:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/56637250&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584090</commentid>
    <comment_count>2</comment_count>
      <attachid>381980</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2019-10-25 16:50:15 -0700</bug_when>
    <thetext>Created attachment 381980
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584092</commentid>
    <comment_count>3</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2019-10-25 16:50:49 -0700</bug_when>
    <thetext>Page with P3 colors: https://codepen.io/NV/pen/zVeewL?editors=1100</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584093</commentid>
    <comment_count>4</comment_count>
      <attachid>381981</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2019-10-25 16:51:50 -0700</bug_when>
    <thetext>Created attachment 381981
[Image] With patch applied</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585488</commentid>
    <comment_count>5</comment_count>
      <attachid>381980</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-30 13:53:05 -0700</bug_when>
    <thetext>Comment on attachment 381980
Patch

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

r-, we should have tests for this.  You can add them to &apos;inspector/model/color.html&apos;.

&gt; Source/WebInspectorUI/UserInterface/Models/Color.js:51
&gt; +        const matchRegExp = /^(?:#(?&lt;hex&gt;[0-9a-f]{3,8})|rgba?\((?&lt;rgb&gt;[^)]+)\)|(?&lt;keyword&gt;\w+)|color\(display-p3\s(?&lt;p3&gt;[^)]+)\)|hsla?\((?&lt;hsl&gt;[^)]+)\))$/i;

It looks like we also support `srgb`.  We should make this more general to support all the color spaces of the `color(...)` function.

&gt; Source/WebInspectorUI/UserInterface/Models/Color.js:584
&gt; +        return `color(display-p3 ${r} ${g} ${b} ${alpha})`;

There should be a `/` before the `alpha`.
```
    return `color(display-p3 ${r} ${g} ${b} / ${alpha})`; 
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585637</commentid>
    <comment_count>6</comment_count>
      <attachid>382384</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2019-10-30 16:17:37 -0700</bug_when>
    <thetext>Created attachment 382384
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585759</commentid>
    <comment_count>7</comment_count>
      <attachid>382384</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-30 21:21:05 -0700</bug_when>
    <thetext>Comment on attachment 382384
Patch

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

&gt; LayoutTests/inspector/model/color.html:240
&gt; +            testGood(&quot;color(display-p3 999 999 999/0.5)&quot;, WI.Color.Format.Function);

Shouldn&apos;t the alpha for this also be `999`?

&gt; LayoutTests/inspector/model/color.html:245
&gt; +            testGood(&quot;color(display-p3 999 999 999 / 0.5)&quot;, WI.Color.Format.Function);

Ditto

&gt; LayoutTests/inspector/model/color.html:250
&gt; +            testGood(&quot;color(display-p3 999 999 999/33%)&quot;, WI.Color.Format.Function);

Ditto

&gt; LayoutTests/inspector/model/color.html:255
&gt; +            testGood(&quot;color(display-p3 999 999 999 / 33%)&quot;, WI.Color.Format.Function);

Ditto

&gt; LayoutTests/inspector/model/color.html:324
&gt; +            InspectorTest.expectThat(color.alpha === 1, &quot;the default alpha should be 1.&quot;);

These aren&apos;t good descriptions.  We should at least include the word &quot;p3&quot; in there somewhere (or better yet the entire color string) like &quot;P3 color should have a default alpha of 1&quot; (or &quot;&apos;color(display-p3 0 1 0.5)&apos; should have a default alpha of 1&quot;).

&gt; Source/WebInspectorUI/UserInterface/Models/Color.js:32
&gt; +    constructor(format, components, gamut = &quot;sRGB&quot;)

Please move this to be a fallback on the declaration.
```
    this.gamut = gamut || &quot;srgb&quot;;
```

&gt; Source/WebInspectorUI/UserInterface/Models/Color.js:177
&gt; +            let alpha = 1;

I think you can simplify this:
```
    let components = splitFunctionString(colorString);
    if (components.length !== 4 &amp;&amp; components.length !== 5)
        return null;

    let gamut = components[0].toLowerCase();
    if (gamut !== &quot;srgb&quot; &amp;&amp; gamut !== &quot;display-p3&quot;)
        return null;

    let alpha = 1;
    if (components.length === 5)
        alpha = parseFunctionAlpha(components[4]);

    function parseFunctionComponent(component) {
        let value = parseFloat(component);
        return Number.constrain(value, 0, 1);
    }

    return new WI.Color(WI.Color.Format.Function, [
        parseFunctionComponent(components[1]),
        parseFunctionComponent(components[2]),
        parseFunctionComponent(components[3]),
        alpha,
    ], gamut);
```

&gt; Source/WebInspectorUI/UserInterface/Models/Color.js:448
&gt; +        if (this.gamut.toLowerCase() !== &quot;srgb&quot;)

Why not just make it so that `WI.Color.fromString` calls `toLowerCase` so that we don&apos;t need to keep checking it?

&gt; Source/WebInspectorUI/UserInterface/Models/Color.js:590
&gt; +        let [r, g, b, alpha] = this._rgba;

We should still call `this.rgba` just in case this is the first time we&apos;re getting the components.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585783</commentid>
    <comment_count>8</comment_count>
      <attachid>382384</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2019-10-30 22:24:33 -0700</bug_when>
    <thetext>Comment on attachment 382384
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/Color.js:32
&gt;&gt; +    constructor(format, components, gamut = &quot;sRGB&quot;)
&gt; 
&gt; Please move this to be a fallback on the declaration.
&gt; ```
&gt;     this.gamut = gamut || &quot;srgb&quot;;
&gt; ```

Why? Having the default argument makes it immediately clear that `gamut` is optional.

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/Color.js:177
&gt;&gt; +            let alpha = 1;
&gt; 
&gt; I think you can simplify this:
&gt; ```
&gt;     let components = splitFunctionString(colorString);
&gt;     if (components.length !== 4 &amp;&amp; components.length !== 5)
&gt;         return null;
&gt; 
&gt;     let gamut = components[0].toLowerCase();
&gt;     if (gamut !== &quot;srgb&quot; &amp;&amp; gamut !== &quot;display-p3&quot;)
&gt;         return null;
&gt; 
&gt;     let alpha = 1;
&gt;     if (components.length === 5)
&gt;         alpha = parseFunctionAlpha(components[4]);
&gt; 
&gt;     function parseFunctionComponent(component) {
&gt;         let value = parseFloat(component);
&gt;         return Number.constrain(value, 0, 1);
&gt;     }
&gt; 
&gt;     return new WI.Color(WI.Color.Format.Function, [
&gt;         parseFunctionComponent(components[1]),
&gt;         parseFunctionComponent(components[2]),
&gt;         parseFunctionComponent(components[3]),
&gt;         alpha,
&gt;     ], gamut);
&gt; ```

This would parse `color(display-p3 0 1 1 0.5)` as a valid color, but it isn&apos;t. It doesn&apos;t include `/` before the alpha.

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/Color.js:448
&gt;&gt; +        if (this.gamut.toLowerCase() !== &quot;srgb&quot;)
&gt; 
&gt; Why not just make it so that `WI.Color.fromString` calls `toLowerCase` so that we don&apos;t need to keep checking it?

Sounds good.

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/Color.js:590
&gt;&gt; +        let [r, g, b, alpha] = this._rgba;
&gt; 
&gt; We should still call `this.rgba` just in case this is the first time we&apos;re getting the components.

It must always have `_rgba`.

    get rgba()
    {
        if (!this._rgba)
            this._rgba = this._hslaToRGBA(this._hsla);
        return this._rgba;
    }

The color function doesn&apos;t support HSLA.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585786</commentid>
    <comment_count>9</comment_count>
      <attachid>382429</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2019-10-30 22:34:12 -0700</bug_when>
    <thetext>Created attachment 382429
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585790</commentid>
    <comment_count>10</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2019-10-30 22:37:21 -0700</bug_when>
    <thetext>(In reply to Nikita Vasilyev from comment #8)
&gt; This would parse `color(display-p3 0 1 1 0.5)` as a valid color, but it
&gt; isn&apos;t. It doesn&apos;t include `/` before the alpha.

On the other hand, we currently detect `rgb(255 / 255 / 0)` as a color, even though it isn&apos;t a valid CSS color. I can go either way here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585998</commentid>
    <comment_count>11</comment_count>
      <attachid>382484</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2019-10-31 11:55:20 -0700</bug_when>
    <thetext>Created attachment 382484
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586119</commentid>
    <comment_count>12</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-31 16:05:00 -0700</bug_when>
    <thetext>(In reply to Nikita Vasilyev from comment #10)
&gt; (In reply to Nikita Vasilyev from comment #8)
&gt; &gt; This would parse `color(display-p3 0 1 1 0.5)` as a valid color, but it isn&apos;t. It doesn&apos;t include `/` before the alpha.
&gt; On the other hand, we currently detect `rgb(255 / 255 / 0)` as a color, even though it isn&apos;t a valid CSS color. I can go either way here.
Given that we already support invalid (but close to being valid) colors, I think it&apos;s fine to do something similar here.  Perhaps we should fix both in a followup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586120</commentid>
    <comment_count>13</comment_count>
      <attachid>382384</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-31 16:07:50 -0700</bug_when>
    <thetext>Comment on attachment 382384
Patch

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

&gt;&gt;&gt; Source/WebInspectorUI/UserInterface/Models/Color.js:32
&gt;&gt;&gt; +    constructor(format, components, gamut = &quot;sRGB&quot;)
&gt;&gt; 
&gt;&gt; Please move this to be a fallback on the declaration.
&gt;&gt; ```
&gt;&gt;     this.gamut = gamut || &quot;srgb&quot;;
&gt;&gt; ```
&gt; 
&gt; Why? Having the default argument makes it immediately clear that `gamut` is optional.

This is just not our style.  One problem with optional parameters is that passing _anything_ will override it, including falsy values like `null` or `undefined`.  We&apos;ve preferred the fallback approach for this reason.

&gt;&gt;&gt; Source/WebInspectorUI/UserInterface/Models/Color.js:590
&gt;&gt;&gt; +        let [r, g, b, alpha] = this._rgba;
&gt;&gt; 
&gt;&gt; We should still call `this.rgba` just in case this is the first time we&apos;re getting the components.
&gt; 
&gt; It must always have `_rgba`.
&gt; 
&gt;     get rgba()
&gt;     {
&gt;         if (!this._rgba)
&gt;             this._rgba = this._hslaToRGBA(this._hsla);
&gt;         return this._rgba;
&gt;     }
&gt; 
&gt; The color function doesn&apos;t support HSLA.

I realize that this is the case now, but in the future we&apos;d probably want to support switching formats from something like HSLA, in which case we may not have an `_rgba` yet.  Also, `get rgba` would be a very quick return in that case, so I think we could use it purely on defensive grounds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586134</commentid>
    <comment_count>14</comment_count>
      <attachid>382517</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2019-10-31 16:30:10 -0700</bug_when>
    <thetext>Created attachment 382517
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586296</commentid>
    <comment_count>15</comment_count>
      <attachid>382517</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-31 22:52:05 -0700</bug_when>
    <thetext>Comment on attachment 382517
Patch

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

r=me, nice tests!

Please create a followup bug for supporting `WI.Color.prototype.nextFormat` with `WI.Color.Format.ColorFunction` and add it as a FIXME inside the function&apos;s body.  Otherwise, right now, we&apos;d fail an assertion and log an error if a user tries to shift-click on a `color(...)` swatch.

&gt; Source/WebInspectorUI/UserInterface/Models/Color.js:35
&gt; +        this.gamut = gamut || &quot;srgb&quot;;

We should pass in `this.gamut` when creating new `WI.Color` inside `WI.Color.prototype.copy` as well.

&gt; Source/WebInspectorUI/UserInterface/Models/Color.js:591
&gt; +

Style: unnecessary newline

&gt; Source/WebInspectorUI/UserInterface/Models/Color.js:648
&gt; +    Function: &quot;color-format-function&quot;,

Rather than just `Function`, can we use something more specific like `ColorFunction`?  Given that rgb/rgba/hsl/hsla are also functions, the more general name could be confusing.

&gt; Source/WebInspectorUI/UserInterface/Models/Color.js:654
&gt; +    &quot;color&quot;,

NIT: is there a reason this is after &quot;rgba&quot; instead of just at the end as a new value?  Regardless, we should try to be consistent with the ordering in `WI.Color.Format` (and all the `switch`).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586442</commentid>
    <comment_count>16</comment_count>
      <attachid>382594</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2019-11-01 10:58:24 -0700</bug_when>
    <thetext>Created attachment 382594
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586447</commentid>
    <comment_count>17</comment_count>
      <attachid>382594</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-11-01 11:07:07 -0700</bug_when>
    <thetext>Comment on attachment 382594
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Models/Color.js:399
&gt;          case WI.Color.Format.RGBA:

Don&apos;t we need a case for `WI.Color.Format.ColorFunction` here too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586449</commentid>
    <comment_count>18</comment_count>
      <attachid>382596</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2019-11-01 11:11:55 -0700</bug_when>
    <thetext>Created attachment 382596
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586497</commentid>
    <comment_count>19</comment_count>
      <attachid>382596</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-01 12:34:17 -0700</bug_when>
    <thetext>Comment on attachment 382596
Patch

Clearing flags on attachment: 382596

Committed r251933: &lt;https://trac.webkit.org/changeset/251933&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586498</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-01 12:34:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381980</attachid>
            <date>2019-10-25 16:50:15 -0700</date>
            <delta_ts>2019-10-30 16:17:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>3531</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDJiNTA5NDY1NmZiLi5jYjZiMjg2OTFkMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTktMTAtMjUgIE5pa2l0
YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogRGlzcGxheSBjb2xvciBzd2F0Y2hlcyBmb3IgcDMgY29sb3JzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM0MzkKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU2NjM3MjUwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIERldGVjdCBgY29sb3IoZGlzcGxheS1wMyAwIDEgMClgIGFzIGEgY29sb3IgaW4g
dGhlIHN0eWxlIGVkaXRvci4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0NvbG9y
LmpzOgorICAgICAgICAoV0kuQ29sb3IuZnJvbVN0cmluZyk6CisgICAgICAgIChXSS5Db2xvci5w
cm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoV0kuQ29sb3IucHJvdG90eXBlLl90b1AzU3Ry
aW5nKToKKwogMjAxOS0xMC0yMyAgTmlraXRhIFZhc2lseWV2ICA8bnZhc2lseWV2QGFwcGxlLmNv
bT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZXBsYWNlIGNvbG9yIHdoZWVsIHdpdGggc3F1
YXJlIEhTQiBjb2xvciBwaWNrZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9Db2xvci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01vZGVscy9Db2xvci5qcwppbmRleCBiNjZmMWE2ZjljMy4uMzA0YjQ2YjAyMjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9D
b2xvci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
Q29sb3IuanMKQEAgLTQ4LDcgKzQ4LDcgQEAgV0kuQ29sb3IgPSBjbGFzcyBDb2xvcgogCiAgICAg
c3RhdGljIGZyb21TdHJpbmcoY29sb3JTdHJpbmcpCiAgICAgewotICAgICAgICBjb25zdCBtYXRj
aFJlZ0V4cCA9IC9eKD86Iyg/PGhleD5bMC05YS1mXXszLDh9KXxyZ2JhP1woKD88cmdiPlteKV0r
KVwpfCg/PGtleXdvcmQ+XHcrKXxoc2xhP1woKD88aHNsPlteKV0rKVwpKSQvaTsKKyAgICAgICAg
Y29uc3QgbWF0Y2hSZWdFeHAgPSAvXig/OiMoPzxoZXg+WzAtOWEtZl17Myw4fSl8cmdiYT9cKCg/
PHJnYj5bXildKylcKXwoPzxrZXl3b3JkPlx3Kyl8Y29sb3JcKGRpc3BsYXktcDNccyg/PHAzPlte
KV0rKVwpfGhzbGE/XCgoPzxoc2w+W14pXSspXCkpJC9pOwogICAgICAgICBsZXQgbWF0Y2ggPSBj
b2xvclN0cmluZy5tYXRjaChtYXRjaFJlZ0V4cCk7CiAgICAgICAgIGlmICghbWF0Y2gpCiAgICAg
ICAgICAgICByZXR1cm4gbnVsbDsKQEAgLTE3MCw2ICsxNzAsMjkgQEAgV0kuQ29sb3IgPSBjbGFz
cyBDb2xvcgogICAgICAgICAgICAgXSk7CiAgICAgICAgIH0KIAorICAgICAgICBpZiAobWF0Y2gu
Z3JvdXBzLnAzKSB7CisgICAgICAgICAgICBsZXQgcmdiID0gc3BsaXRGdW5jdGlvblN0cmluZyht
YXRjaC5ncm91cHMucDMpOworCisgICAgICAgICAgICBpZiAocmdiLmxlbmd0aCAhPT0gMyAmJiBy
Z2IubGVuZ3RoICE9PSA0KQorICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworCisgICAgICAg
ICAgICBsZXQgYWxwaGEgPSAxOworICAgICAgICAgICAgaWYgKHJnYi5sZW5ndGggPT09IDQpCisg
ICAgICAgICAgICAgICAgYWxwaGEgPSBwYXJzZUZ1bmN0aW9uQWxwaGEocmdiWzNdKTsKKworICAg
ICAgICAgICAgZnVuY3Rpb24gcGFyc2VGdW5jdGlvbkNvbXBvbmVudChjb21wb25lbnQpIHsKKyAg
ICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBwYXJzZUZsb2F0KGNvbXBvbmVudCk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIE51bWJlci5jb25zdHJhaW4odmFsdWUsIDAsIDEpOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICByZXR1cm4gbmV3IFdJLkNvbG9yKFdJLkNvbG9yLkZvcm1hdC5Q
MywgWworICAgICAgICAgICAgICAgIHBhcnNlRnVuY3Rpb25Db21wb25lbnQocmdiWzBdKSwKKyAg
ICAgICAgICAgICAgICBwYXJzZUZ1bmN0aW9uQ29tcG9uZW50KHJnYlsxXSksCisgICAgICAgICAg
ICAgICAgcGFyc2VGdW5jdGlvbkNvbXBvbmVudChyZ2JbMl0pLAorICAgICAgICAgICAgICAgIGFs
cGhhLAorICAgICAgICAgICAgXSk7CisgICAgICAgIH0KKwogICAgICAgICByZXR1cm4gbnVsbDsK
ICAgICB9CiAKQEAgLTM4OCw2ICs0MTEsOCBAQCBXSS5Db2xvciA9IGNsYXNzIENvbG9yCiAgICAg
ICAgICAgICByZXR1cm4gdGhpcy5fdG9SR0JTdHJpbmcoKTsKICAgICAgICAgY2FzZSBXSS5Db2xv
ci5Gb3JtYXQuUkdCQToKICAgICAgICAgICAgIHJldHVybiB0aGlzLl90b1JHQkFTdHJpbmcoKTsK
KyAgICAgICAgY2FzZSBXSS5Db2xvci5Gb3JtYXQuUDM6CisgICAgICAgICAgICByZXR1cm4gdGhp
cy5fdG9QM1N0cmluZygpOwogICAgICAgICBjYXNlIFdJLkNvbG9yLkZvcm1hdC5IU0w6CiAgICAg
ICAgICAgICByZXR1cm4gdGhpcy5fdG9IU0xTdHJpbmcoKTsKICAgICAgICAgY2FzZSBXSS5Db2xv
ci5Gb3JtYXQuSFNMQToKQEAgLTU1MCw2ICs1NzUsMTUgQEAgV0kuQ29sb3IgPSBjbGFzcyBDb2xv
cgogICAgICAgICByZXR1cm4gYHJnYmEoJHtyfSwgJHtnfSwgJHtifSwgJHt0aGlzLmFscGhhfSlg
OwogICAgIH0KIAorICAgIF90b1AzU3RyaW5nKCkKKyAgICB7CisgICAgICAgIGxldCBbciwgZywg
YiwgYWxwaGFdID0gdGhpcy5fcmdiYTsKKyAgICAgICAgaWYgKGFscGhhID09PSAxKQorICAgICAg
ICAgICAgcmV0dXJuIGBjb2xvcihkaXNwbGF5LXAzICR7cn0gJHtnfSAke2J9KWA7CisKKyAgICAg
ICAgcmV0dXJuIGBjb2xvcihkaXNwbGF5LXAzICR7cn0gJHtnfSAke2J9ICR7YWxwaGF9KWA7Cisg
ICAgfQorCiAgICAgX3RvSFNMU3RyaW5nKCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5zaW1w
bGUpCkBAIC02MDEsNiArNjM1LDcgQEAgV0kuQ29sb3IuRm9ybWF0ID0gewogICAgIFNob3J0SEVY
QWxwaGE6ICJjb2xvci1mb3JtYXQtc2hvcnQtaGV4LWFscGhhIiwKICAgICBSR0I6ICJjb2xvci1m
b3JtYXQtcmdiIiwKICAgICBSR0JBOiAiY29sb3ItZm9ybWF0LXJnYmEiLAorICAgIFAzOiAiY29s
b3ItZm9ybWF0LXAzIiwKICAgICBIU0w6ICJjb2xvci1mb3JtYXQtaHNsIiwKICAgICBIU0xBOiAi
Y29sb3ItZm9ybWF0LWhzbGEiCiB9OwpAQCAtNjA4LDYgKzY0Myw3IEBAIFdJLkNvbG9yLkZvcm1h
dCA9IHsKIFdJLkNvbG9yLkZ1bmN0aW9uTmFtZXMgPSBuZXcgU2V0KFsKICAgICAicmdiIiwKICAg
ICAicmdiYSIsCisgICAgImNvbG9yIiwKICAgICAiaHNsIiwKICAgICAiaHNsYSIsCiBdKTsK
</data>
<flag name="review"
          id="397713"
          type_id="1"
          status="-"
          setter="hi"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>381981</attachid>
            <date>2019-10-25 16:51:50 -0700</date>
            <delta_ts>2019-10-25 16:51:50 -0700</delta_ts>
            <desc>[Image] With patch applied</desc>
            <filename>Screen Shot 2019-10-25 at 4.51.27 PM.png</filename>
            <type>image/png</type>
            <size>19727</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">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
dvZ2KXY/2jXZPbU3sufaF9nX2991oDsEOUx3qHW45kh09HHMcVzveNkJdfJ0EjlVO11yRp29nMXO
653bRxBG+I6QjKgdcdOF5sJ2KXCpd3kwkjkyemTxyKaRL0bZjEobtWLUmVFfXD1dc123ut5x03cb
61bs1uL2yt3Jne9e7X7Ng+4R7jHPo9nj5Wjn0cLRG0bf8mR4jvP80bPV87OXt5fMq8Gr29vGO927
xvumj4FPnM8Sn7O+BN8Q33m+h30/+Hn55fvt8/vL38U/x3+n/9Mx9mOEY7aO6QywCuAFbA7oCGQF
pgduCuwIsgziBdUGPQy2DhYEbwt+wnZkZ7N3sV+EuIbIQg6GvOP4ceZwjodioRGhZaFtYfphSWFV
YffDrcKzwuvDeyM8I2ZFHI8kREZFroi8yTXj8rl13N6x3mPnjD0VRYtKiKqKehjtFC2LbhmHjhs7
btW4uzG2MZKYplgQy41dFXsvzj5uetyv44nj48ZXj38c7xY/O/5MAiNhasLOhLeJIYnLEu8kOSQp
klqTdZInJdclv0sJTVmZ0jFh1IQ5Ey6kmqSKU5vTSGnJadvS+iaGTVwzsWuS56TSSTcm208unHxu
ismU3ClHpupM5U3dn05IT0nfmf6JF8ur5fVlcDNqMnr5HP5a/nNBsGC1oFsYIFwpfJIZkLky82lW
QNaqrG5RkKhC1CPmiKvEL7Mjszdmv8uJzdmeM5Cbkrsnj5yXnndIoi/JkZyaZj6tcFq71FlaKu2Y
7jd9zfReWZRsmxyRT5Y35xvAD/aLCgfFD4oHBYEF1QXvZyTP2F+oVygpvDjTaebimU+Kwot+noXP
4s9qnW05e8HsB3PYczbPReZmzG2dZz2vZF7X/Ij5OxZQF+Qs+L3YtXhl8ZuFKQtbSsxK5pd0/hDx
Q32pdqms9OaP/j9uXIQvEi9qW+yxeN3iL2WCsvPlruUV5Z+W8Jec/8ntp8qfBpZmLm1b5rVsw3Li
csnyGyuCVuxYqbeyaGXnqnGrGlezVpetfrNm6ppzFaMrNq6lrlWs7aiMrmxeZ7Nu+bpPVaKq69Uh
1XtqTGsW17xbL1h/ZUPwhoaNZhvLN37cJN50a3PE5sZau9qKLcQtBVseb03eeuZnn5/rtplsK9/2
ebtke8eO+B2n6rzr6naa7lxWj9Yr6rt3Tdp1eXfo7uYGl4bNe5h7yveCvYq9z35J/+XGvqh9rft9
9jccsD1Qc5BxsKwRaZzZ2NskaupoTm1uPzT2UGuLf8vBX0f+uv2w5eHqI4ZHlh2lHi05OnCs6Fjf
cenxnhNZJzpbp7beOTnh5LVT40+1nY46ffa38N9OnmGfOXY24Ozhc37nDp33Od90wetC40XPiwd/
9/z9YJtXW+Ml70vNl30vt7SPaT96JejKiauhV3+7xr124XrM9fYbSTdu3Zx0s+OW4NbT27m3X/5R
8Ef/nfl3CXfL7uneq7hver/2X47/2tPh1XHkQeiDiw8THt7p5Hc+fyR/9Kmr5DH9ccUTiyd1T92f
Hu4O7778bOKzrufS5/09pX/q/VnzwuHFgb+C/7rYO6G366Xs5cCrJa+NX29/M/pNa19c3/23eW/7
35W9N36/44PPhzMfUz4+6Z/xifSp8rPj55YvUV/uDuQNDEh5Mp7qUwCDA83MBODVdgDoqQAwLsPv
h4nqc55KEPXZVIXAf8Lqs6BKvABogDfl5zrnOAB74bCDgx4MgPJTPTEYoB4eQ0Mj8kwPdzUXDZ54
CO8HBl6bAUBqAeCzbGCgf/3AwOetMNnbAByfrj5fKoUIzwab3JToisV+8L38G09SfqGEkwW7AAAA
CXBIWXMAABYlAAAWJQFJUiTwAAABnWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0
YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8
cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRh
eC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4
bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDxleGlm
OlBpeGVsWERpbWVuc2lvbj43MDg8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhp
ZjpQaXhlbFlEaW1lbnNpb24+MTAwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6
RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CpWmPRQAAAAcaURPVAAAAAIA
AAAAAAAAMgAAACgAAAAyAAAAMgAAGXIo7jbvAAAZPklEQVR4AeydB5QUxRaGC5EnIsqKKCIGVIyY
s6gomDBjQKI5C4qK8egRPHAQc0IUxSyiBHPOKKgoKApmzIoJTCgqiv3mq/fuWts7uzPbE5hl/nvO
7sxWd4X+q3rrr1v33moQpcRJhIAQEAJCQAgIASEgBIRAmSLQQIS4THtejy0EhIAQEAJCQAgIASHg
ERAh1kAQAkJACAgBISAEhIAQKGsERIjLuvv18EJACAgBISAEhIAQEAIixBoDQkAICAEhIASEgBAQ
AmWNgAhxWXe/Hl4ICAEhIASEgBAQAkJAhFhjQAgIASEgBISAEBACQqCsERAhLuvu18MLASEgBISA
EBACQkAINHj//fcVh1jjQAgIASEgBISAEBACQqBsEZCGuGy7Xg8uBISAEBACQkAICAEhAAIixBoH
QkAICAEhIASEgBAQAmWNgAhxWXe/Hl4ICAEhIASEgBAQAkJAhFhjQAgIASEgBISAEBACQqCsERAh
Luvu18MLASEgBISAEBACQkAIiBBrDAgBISAEhIAQEAJCQAiUNQIixGXd/Xp4ISAEhIAQEAJCQAgI
ARFijQEhIASEgBAQAkJACAiBskZAhLisu18PLwSEgBAQAkJACAgBISBCrDFQdgj88ccf7scff3R/
/vmn+/vvv91KK63kmjRpUnY46IGFgBAQAkJACAiB/yEgQqyRUFYIzJw506WOK3dR9O+J5VtssYVb
ccUVywoHPawQEAJCQAgIASHwLwIixP9ioW9FQgAyCimdPHmy++yzz9ycOXNcq1at3FprreX23ntv
t8QSSxSkJX/99Zd78sknPRlu2LCha9mypWvcuLFbbbXV3FJLLVWQOlWoEBACQkAIlC8Cv//+u5s3
b54HYNlll3WLLbZYjWAwR/3yyy/+etOmTQs2F9bYgDpeYJf1119/9c/Es9V3ESGu7z1YD9vfs2dP
N3r06LQtX2WVVdx1113n9tprr7TXc0mEeL/88su+iI022situuqquRSnvEJACAgBISAEakXg+eef
d/wg3bp1c+utt57/nu7XpEmT3FNPPeUv7bvvvm6zzTZLd1vJpD333HNuwoQJrkGDBm7AgAE5t4vF
A8qyr776yn377bd+QdCiRQu37rrresWVVfDaa69VLjIsrabPLbfcMmuTSBHimlBUesEQOOigg9x9
993nMFXgn8MyyyzjXnjhBffmm2/6OrHnfeWVV9yGG26Y1zZ8/fXXburUqb7MHXbYwTVr1iyv5asw
ISAEhIAQEAIhArNnz3bDhg3zSe3atXNdu3YNL1f5fsMNN7hZs2Y5djBPP/10t+SSS1a5Xmp/GCGm
XQMHDsypeb/99pu7/fbbPRGOFwTh3nbbbd1uu+3mL1155ZXup59+it+W9u/jjz8+a5NIEeK0ECqx
kAi8/vrrbuWVV3YrrLBClWomTpzoIKrIscce60aMGFHleq5/hIR4p512cmxJSYSAEBACQkAIFBKB
G2+80Ws9//Of/7gzzjjDNWrUqFp1OHpfddVVPh1FEdrkUpd8EmJ2htEKI+uvv753dv/yyy/dhx9+
6BYsWODTu3fv7rXFd911l/v55599WrpfVg4Li5NOOslVVFSku61aWtEIMbYmgIfmDxvR7bff3m23
3XZuypQpDq//DTbYwDVv3rxKA3ngl156ydun7L777j4iAFveTz/9tL9vq622cnvuuadX14cZ//nn
H781jsbx448/dmuuuabbZptt3KabbhreVuV7XfJgA/vEE094W1QIHO1n2+DVV1/1trC0tbZtkSoV
1/LHAw884Nq2betYVZaiEKHBtncgmJ988ol79tlnHYMY7W+nTp2q9Wmm52B7gzHBJ3jmU0SI84mm
yhICQkAICIFsEMBf5rHHHvO3oiFON6eH5hJG/OJlY1IAqYboZSPYJMNtCuWXky9CDNe74oor/CN1
7NjR7bjjjpWPx0Lh+uuv91GhMHM88sgjK6+l+4JpJMq0+fPnu/32269W3hfPXxRCTAO7dOni0ACG
ctxxx/mt8++++86NHz/eHXDAAeFl9+KLL7oOHTr4NJyvtt56a/fNN99UuQe7lVBVDxk75JBDKm12
wpv79u3rLr300mqDo655IMC2lXHTTTe50047rcpqBUetUaNGVXuesC3ZfAcPTAvat2/vjjnmGHfw
wQdnbQuTTfm53kO/4ZiGnHnmme6SSy6pEr0BLfDDDz/sNt5446yrYoHDPw7+aYwZMybrfNncyBia
Pn26v1Ua4mwQ0z1CQAgIASEQR4Dt/ZEjR8aTq/192GGHee0k91922WWenKL9ZC6Pi5lLwC0wlzDS
CyFkToSn4JyHdpm5FaVTOmKNwg4Czk4s5hoQYpSNq6++uttll10quQtaa8pDGbnzzjtXNgclJDa6
CPMwYUlNxo0b5zXd+OBAXJMQYpRmmIVgKomdNDJjxgxH2TgcnnPOOdU06Pfff7+bNm2a525cr0l4
VjgZNsibbLKJ55013ZsuvSiEeNddd/VaXR726KOPdmuvvbZ79NFHvTbRGpWJEKMxpJMgMgwCSDaD
BFJ90UUX+WLwzsT4Gk0g2+GQSAbBG2+84W677TY/MCCvDEyTJHlCQkw5a6yxhmNF9/bbb7uHHnrI
18NK5qOPPnKLL764VVXnT16Kyy+/vJJkYvPaq1cv/1x09sKWkBDTFnDgHwCrUl42ti2WW245H0ki
UxQH+hNHu5NPPtk/79ixYx22xvkUNM+2oOIfAwsXiRAQAkJACAiBuiAQajRry9enTx+3/PLL+1vY
5v/ggw882cNsAk2vSWguAdcxp3J2uFEMwTnSCZpUiKkJhPCee+7xjmmWFn5CjOEQzMvMtziwYbp4
4oknVt52yy23+DmbBLgbO/kIO8JwLeb3/fff3yu6khBiuBi7yUSl6Nevny+bnWY05PG2+IupX0aI
mbPPPvtsS672+fz/HRjhG3CJumrGC06I2fZGs4uwojrqqKP8d2xC9tlnn8pthEyEGCC4Bw2iCSTq
008/dZtvvrlPYpChAQZoVkiE8TIZPny4Y3BCUN95553Ka0nyhISYkF0Qbgs5Qsea4TcrLQzBcxGe
jwFkg8jKYnUI4e/Ro4dbeumlLbmonyEhJo4vOFg8X140SDtYYRfF4IwLpi/0F/3IapaXGTnwwAO9
hr2ugzlefvg3dbCg4qWmXF50iRAQAkJACAiBuiLAXIWWM4xnTxkoxTALRdDiHn744ZVKMa6h6EFQ
9qCZNQnNJVAakpe56pprrvG7z/ALtv+JwvTDDz943gRZRjAhsIhJzHGPPPKIT4d7YNKJIpL5GGUd
ZaK4OvTQQ/18yL04rMGDcGbn+tChQ/0nhcChINAIJBYewv0o6yCdSQjxnXfe6U1ZIeVwMoR6MXFA
Kx6f90OTiTZt2nhMfabYLzToN998s+cRhG+FI9VVCk6IbSudjgRQ2wagoajOTVWfiRD379/fk6ea
HpCBiVaYLQA8EG3lYfdDzBhkECM8PumIJHkoLyTEmAkwOEJhFUYnsrKrzaM0zJPpO23FTvnWW2/1
WwtswSA8M9ppnNBYWRZTQkLMNsaQIUOqVE+7WK3yUhJFIi4MXlsg2TVWxmyd5EN7+/333/vIFbxo
RrZ56YleYat2q1efQkAICAEhIASSIgBBRruKBhVzAObk0HEb0ocCCP4Qd5ozcwlIIk5gCP5S+CrB
mdgJD53QKevqq6/2MYsJzYbpAWnsKMOBmONQLIVidswQ2lNOOcXzH7gSYjbLKODgGCaQ07POOsuT
avga83jr1q29Mo57khBiKzubzy+++MLzAXOgg8hD6NOJabbBicgStcV7TpeftIITYmxlbPvbVkfW
GDrOttIzEWLCZdUWkw/7UFYPCIBAeMLVG98h5AxGi2CQJA/lh4T48ccfdzjRhcJgf++997whOAM5
30IgbLBk4BrRhIRD9ospISHGVti2eawNvLAsTFi9gnVcGOyYMTAO2ErCzAJzF5wg2c7JleDzDwrN
cygsijCryQfhDsvVdyEgBISAEChPBJiTIbWYYGLji9aWw6bi8uCDD/o5iZ1qtLIQztBcInQoQ6HG
bjbzJ35RcaEsfGKY+9mBZT5mJxzp3bt3lbi9pEEqLfwb/knYAV977bUOxRFBBzp37ux9rzA7QHv9
7rvv+ugO7ERDgtnhRwuL2So/SKEIMZwAAg7vg7tB4nHStyhUvvLgF1wC22EErOAQSaTghBi1PVsI
aGStM8KGQkyIQJGJELNNYGYJYX77zva7bYMzIGuz3YWkQyaT5KG+kBBD6Mxkw9rC6gwjcQZbaJtj
13P95AWCMLJ9YZEYFjYhZqsmvkXB1giDk76gjzOt2ObOnetfTP4J8LJaXOKkePEi0VfUzYvM6hdh
HJldlE/QLyEgBISAEBACCRBAMwufYI6BuGEOkc7ZjaJRDKHJRIyUmrkEeSG2xnPCMGQ+Qw2/cMJD
iwuBZUc2G9ljjz28KSsnt2LaCXlHeWemmbQNbvP55597XsXcjv0wO61GkKmnEISYep955hlHRA0E
rTnKtpo0w9xj9tCYbKIdTioFJ8TmUHfEEUd4+46woYDLCokBlYkQh9resAz7zqAilBsCocom7FmS
PJQfEuJ0mutCEGIwYvuEFw9bIEgewmCBdDJI8V4tpoQa4nT20nfccYe3VaKPGdy88JkExwOzWcJT
NPRwzZQ303W06XYsJqvh2hZNmcrSdSEgBISAEBAC9957r3vrrbc8EKH2NB0y8Bh8ajhUYp111vE+
QGYugSY4DCmG+YPNV0aS05UJIWbXm91QtMYIO++h0148H5polE5xu2BCn8E1MFGF26Atxo6Y3Vrm
ZsrFRNTm8nwSYkwbMZdktxhBWYpGGB+02uZqeAiLB7DFx4xwvEklMSEmWgNqbRMiN5j5g6XxCVFD
1Y66G9YfCoSHLWwkV0JMeBGzC0XVHnpehnWG35PkIX8xCTFbIqza0LZasGnawIvHS8BKDsKZT8m2
b0NCbGYxYTtYUeIRSixlgmtnI6FTYjqtczZl1HQPbcC5AGF8pBuvNeVVuhAQAkJACAiBEAFCydq5
CCik8BkyshjeF343W1xIHj40dgAVQQbC3WaziSW06QknnBAWkfa7kVsuZjoi2goguMHFF1/sFWwo
FHkes2NGO4yfD/yC0KnsRsdDmeWLEENm77777sr5GbNGHONCG2xrc/yTiGW0DTwh8hYSN35fNn8n
JsQYjbPFbQJZC42+LR0vSbYBMAxnuwBbFBMMuk899VT/Z66EmELQJmKDyiDLJkZg0jzFIsSYW7Dy
MQHfw1Neq3ihhhE07Hq+PrPt25AQY+wOcQ+FGNLEkkYba0HJw+vpvp977rmVznnYAKezw0qXL5s0
HcyRDUq6RwgIASEgBDIhgHIFEgeZY55Cu5vuBLp4OeFRzijxsOGFzKF5DX1bzN6Y/PAkwq6GwlkH
RJogjC0EGG0yWmWEQ8iIShEKdrbsMCNwCJtbMbPA3MIE8wjIKGQZpRaaWxMIf2gOki9C/GnKnNHa
FifdVndNn3BM/KdoV65BDApOiDE2ZysAu1fU3xw0wQoERo8dC7bBSD4IMU5ZaE0h35xsQqebMGhZ
yZHOiqxFixb+UpI8xSLEaH85rY6YuWjaGeDZvHD2zEk/kxBiXmRWaqaZ5yUjJBy4h33LwKdfWLRw
WIut5timYUXMIoDvvNBxh7ikz2P5RIgNCX0KASEgBIRAUgRQBuHEZb4xzGdxwkrZzG9hZC2rD97B
DrlJOjIHgUVDyxzKfIgG2fxw8MvCoR8JNcvsJM+cOdMTa5RUZnKIiQZ2tigumd8h2KbJDk0tKC8M
CQfptt1d6iZqWEjaQ0KMWWxNQl4ijSHkQdkFXhBvBHNGNOcIZxmEdfjE//9i4WCWACSF8aDreipd
WK59LzghpiIGDkQVm2GA4YHoGMwlMERHQtLkE1K/wpPqGBSZhPKJAWymGRhhY6cDgcWu2EwOGGhm
qpEkT7EIMTbDtL9NmzaZHj2v15MQYhqAzRKrS1aWmDuALVtAfLeXj1U12yEIY4EdA+pje8Z2HHgZ
6Pu4k57PlMMv/omZEyKn/+GIKBECQkAICAEhUBcEUFQRdz+TmONc/D7mIRRIJiiPmOvjEmqJIZAV
FRUOJaNFlELZyK4xcylCOko/Qr9BxE0LzNyHppd5uGfPnlV2mEPNMmUQ/cLMCS30G+mcuRAnvSEh
5p6ahHo5VRgxxz3soi08Lv5GHGSWSVhg4EBoQh/QFwjh6lC25iKJCTEdY7HhaABqf9O6pmsQjR48
eLCPHICWEy9/YviyrU6HpAtfZk5vgAm5yka4D8PwQYMGVWkfeVktoZXEZsY6nPS65mFVSMdA0umQ
+Klx2NtgZI+5Qy4ej7RtYUi2fRuaTGBwj/0OWlgTVn+sMCG8JowTtN3EVGbVGhe8SS+88EIfRzF+
Lde/IdzUi0DEcX5kxSkRAkJACAgBIZAtAiFRrS0PsYCZZ+KC/xV+VyiP4CL47aTTJMNNUA4xb4Uc
CAKMVplddmLrh8K8jILRFIB2DQLKuQ/hgSB2DRLNKa6YZYaRsUjjGsJOtQUusHy0C1KcSZhnzzvv
PH+bkV+zVSYRLmhnK9RWFlhB2E0IMIDzHxigvc5VEhPipBWzcoHgAhAExcgSmkNsYfIpaIJR91MX
6vo2KU0rddcmSfLUVt6ifC0kxMRdZoWLLRIvIh6stWlg+UeAEwD3suLlRSR2oI2HQuDGAgav2fDF
Y2ygxQ63YQpRt8oUAkJACAgBIZAEAaI0oWxCiQT5Q7lX21wJeUZbTB7mPcgwHCgT/0nStkUpT1EI
MeQn3eoHUwrsSelgbIxrCxOyKIG+qDxLOkJc6s/GrgbknX8sLM4QTDPsyOlSb7/aJwSEgBAQAkJA
COQfgaIQYkwUcLLCWJp4dpgbYESNCh0t8fnnn+8uuOCC/D+dSiwoAvWREIeAsIqGFLMQ08o5REbf
hYAQEAJCoCYEBg4cWNMlpZcYApisxI+xrqmJRSPEoSF02Bg8A7EzDW16w+v6XroI1HdCXLrIqmVC
QAgIASFQqghMmzatVJumdsUQwFwEh8BspCiEGOJEHFo8KzHSRjOHvSkG2hZ2I5vG6p7SQgBbXA7e
QNDyyw63tPpHrRECQkAICAEhIASyQ6AohDi7puguISAEhIAQEAJCQAgIASFQfAREiIuPuWoUAkJA
CAgBISAEhIAQKCEERIhLqDPUFCEgBIRAsREgLBOnQ1o4zGLXr/qEQDkiwDvHu1eM02fLEd8kzyxC
nAQ15RECCRGIFkTun78XVMndYLEGbrFGDaukLcp/zJk7x13z9jVu9OzRbu4/cxM9akWjCnd82+Pd
MWsc45ZsuGSiMgqViZMs40IkEztNKn5tYf9NUHyC2nNk69ixYxd2c4pWf33rp6IBo4qKggCHZHBc
Mcczx0+AK0oDVEk1BOo1If5r3nx3a/trXWqZ5Q669zC37Jq5HdtXDZ0cE37/YZ67s+P/TnnZ/57e
rsW6K+RYorIbAqN2HuHmzf7N7Xblfm61jmtacsl/vnzJ8+7Nm1+r0s6K1Zu77o8eVSVtUf0DMtx+
QvvERDiOC8R46m5TS4YU42jatGnTeDPd6NGjXffu3aulL+yE2bNnu7Zt2/pTPTnyvlOnTnVq0siR
I13fvn0dp3NOnjy51rycgDVu3Dgfe37IkCG13lvoi/WtnwqJByfF4vA+ffp0f5ADOwUcksTx9ulO
Ncu1LTjVz5gxw02cONGxKCEUKz+NGzfOtei0+aljypQpXhvLUcfZRhxIW1gNiUmeacyYMa5bt27+
eGUOEFOkrRrALWZySmVfb2X+r39G1617sf+Z8/53Jfcc82b/Wtm+76Z/XXLtq88NunW7YR7bj598
v149xozRb0T39Rzlf0bteoN/htGdR9arZ8ilsQNeHhC1eqBV1Pyl5lGjOY0it8Al+iEvZVDWVR9c
lUuT8po3daJUlIqeE6WOpvc/qe3QKPX/PEodbZ7XevJVWL9+/Xz7UidLJipy+PDhPn8q1mfG/D16
9PD39unTJ+O9hb6hvvVTofBInSwapXYufL8wTsOfFDGOevXqFaUWD3mrPnUqadSxY8cq9VBniqhG
KVKYt3ooKHUIUzR06NCoZcuWlfX1798/r3VQWNJnSsXAj1Knx/m2DRo0KO/tUoF1R4BVU70VEeJ6
23U5N7y+EuLwwd8d/1bZEeK1H1rbk9iGcxsmIsIhgaYMCPF6j64XwlpS35noS5UQpw5FilLHv/r2
pU4NTYRbXQhxKhZ91K5duyilHU5UVyEzlXI/FfK5U1ph3/8tWrSIunTpEqW0/VHXrl2jZs2a+XTG
bu/evfPShJQWNerQoYMvl4Vi6rCEKHVSbdS8eXOf1qpVq2jWrFl5qWvw4MFRRUVF5TMY0c83Ic71
mSDstC11FHMEQZYsXAREiAuIvzTEhQNXhLhw2BayZAgsPyGxzeW7lVfINudSdikTrREjRvjJOBU/
PEJjmkTqQoiTlF+sPKXcT4XEgEXRpEmTogULFlSpZv78+VHnzp0rCWU+iOqECRMqyxs2bFhlfVOn
Tq1Mh8jmQ1q3bu3LTB3KEA0YMCBijEM8802Ic32mOXPmRE2aNPFtGz9+fD4eXWXkgMB/AQAA//89
M4Q9AAAlUklEQVTtXQeYFcWyLpLknEGiBAUVBUTEhAJGRBHjw+xVMV/1mq4+01OvWRADkhRFJAuK
JCXDknOSnFlgCUtcYFnm1V97e5iZM2d39pxZ2YWq7zvMTOf+e5b5u7q6K4/FQrlUUg8epV5Nu0jr
7xj+AOXNn4+2zNxA+7fuo/INKlKVi6tT4TJFfHu3b1MybZ21iQ5s20+pB45QyVplqEzdclTh/MqU
N19e3zwmEHmTlm6n3at20vHUNCpRrRRVv7I2Fa1QzCSRa8qug9Tnsq/lvsOge6n8uZXseCvNos3T
15N1nKhQqUJSrx3JN3s37qGtMzdR8vrdVO7sClS1eQ3Kw81KXreHChQ9g8qdU8GZXO6P7j9C2+Zv
lXTVLqtFx9OO0/YFW2lzwgaJR99qXFGbKI87686/dlDS4m20b2MyFS5fVOqr3ORMypPPk5Czoe/7
t+wVXMvUK+8q6PCeFNq1YgflK5CPKnF+I3s37KG9G5KpCJddtn552rl8B2O/kQ4np3A/KlKtNnWj
Yg58t8zcSDsWJXK781CVi6pRpcZV6YcrvqaUXYfo2i9u5vz1TFVxX9OOHKNtjNme1Tu5r9zPckWk
jWdeAvwj8QDmiXM2EzBEW0vXKSftK1apeKZt+WvoYpr42mgqVbMM3TXq4UzTZ2WcTGFJS7ZRyu4U
KlWrtLynB3ccoE1T19EefneLVSlJta+tF/HepqWl0dq1a8n811CiRAmqVOnEu2vKjuVa5dcqki2x
LY9nCFJ5RGUpZWu7rYFLW7NmDc2dO5eWLl1KR48epdq1a9ONN95IVaqkt81b0N69e2ny5Mm0cOFC
Sd+gQQO69NJLqVq1at6kEc81atSgjRs3Ur9+/ejuu++OiPcGLFiwgGbPnk1oIzC/4IIL6PLLL6d8
+fJ5k8oz2paQkEB58+ala6+9lo4dO0bTp0+nP//8U+KbNWtGN9xwA//pRL67t99+Ow0ePJjuv/9+
+v77733LdwaiTRMnTqS//vqLzj//fGrVqhUNHz6cnnjiCTrvvPNo0aJFzuRyD4x37drlCj/zzDMF
c1eg5wE4TJkyRbArUKAAVa5cWTBv3LixJyVJe9atW0dVq1aVcidMmCCYVKxYkVq0aEHAIDPJyjjh
bwM4bNq0ifbt20f169enc889V+rJnz+/q6o//vhDxgT4oN9+gvYePnyYzj77bKpVq5ZfkkBhGJd4
cXBW9Pvvv1Pbtm0lCPd4j+KRhx56iL777jsZI7xLRvr27Uv33nuvPJ511lm0evVqExXzFWN+2223
0eOPP07FixenevXq0apVq+iFF16gTz75JOZyvRnD6BMwBr6PPfYYdevWzVtFxHNSUhLt2bPHDsc7
g78RlfgRyHOqEOILHm5GC7+bzQTzBL8vXLYoXf91+wiyOarTENowaa0veiBy13zeTsibNwHI0uyu
0yLqQTqQ6MveaE0N7mhkZ4tGiEFUx704gtaMWkH5C+Wna7veQiCwRlb+upQmvT6G0phgGSlYshDV
vfEcWtJvPoGIYgLglcS5m2n4PT9L8D3jH6Ohd/SlQzsPupI1fbIFNX3qUglLO5pGCR9MoKU/z3el
wUOVZtWo9Sc3ReAw89PJNL/nTKpx1VmM7a2ufGvHrqSxzw6nQjwJeWDak3acnaflWVSodGFa8csS
Ow43lZueSW173k75Cro/JiDYo58eRtu4X06p3/5cGb/Du8MlxNsXbqUJ/x5FyWt3O6uTe0x6QFqd
kyVMNv547leZVDkzYEwve701nd3hPGdwxH1QQhzLOJnKfntwAG2ZsZEw7nif5nefaaLkisnLQ3Oe
pXxnnCBchw4dovHjx9vpQCwuuugi+zmem5NJiEE63njjDfr000/p+HGeiToEROarr76iRx991BFK
Qi7vvPNOIT/OiMKFC9OXX35J+CBmJEGJ1pEjR+j555+nr79On0A7y2zZsqUQapBCr4A0XnHFFRK8
YcMGuvjii2nbtm2uZG+++Sa99dZbrjA8gNgvX76c3n33XXrttdci4p0Bffr0EWwwgTBSqlQpAqnu
0aNHVELcpk0bm5ybfE8++aRgZ56910ceeYR69uzpDZbnf/3rX/Txxx+74kDIv/nmG5kQ7Nixg+bP
d/9/9swzz9Dnn38ukwZXRsdD0HEy5MWR1b697LLLaODAgULeTWCTJk1o3rx5dM8999CPP/5ogu0r
yHWdOnVk8onJRbt27ey4rN6EgYOzTkzMzGQCExu8L/EIJpyJiYnUqVMnGS+UtXv3bpkIgOQZAXEF
JmFKdhHiMPr03HPPUefOnWXii4l3ZoLJ4ubNJ76JmDCXLFkys2waHwCBU4YQo6/Fq5YkkCWLCefy
wYvoUNJB0aaCHBYsUciGY9At37PmdQ/VZFIHrTC0yPtY67l80CI6svcwlaheiu4e+Y8IDenoJ3+h
9ePTZ6/QGEIDnTd/Xtq5bDutGbOCQMovfi7944TK/AgxyA1IFMopUOQMur7braL1NI0D+Rv2X1KL
ttVhEpx64Cgt7T+fjvIVEoQQVzivEu1grS+IbRnWWkIbu3HKOmpwZyNq/sKVUk7Cf8bToh/myn3N
q+sQtML7NifT8oGLRLtcvmFF6jD4Pok3/9jkNgZCbMpAn4pXKUGrfltmk8kr3r7GNZlAWkPmQELR
bozvOsbNSZDD0hBDkzr0rr787liEyUe9dg2pZI1SstqwYcIa1szvpkcXPU95mUBCMNHo16Y7HTt8
jIqUKyrkN3+hArR27ArRgCMNJgyYOESToIQ4lnEydRoMoZnftSJJtMGVWcuOv4ekpdtE8/6P+c/J
xMzkOVUJ8c0330y//vqrdLN169Z01VVXiWYFhGXQoEH00ksv0fvvv29gEGIJ7XFKSopoa0F+ixQp
QkOGDLFJF8q76aab7Dzem6BEy3wUkR+kCB85kCWQTWh9QazmzJnjLV60qIYQY9ICEgMC3bBhQ9HM
jho1SjRPH374oStvamoqFS1alHAdMGAA3XHHHa5454OTdF944YWECQKIJ7RZeFcg0TTEILbQXEJ+
++03WrlyJWVEiDERg+YZAlyh4S1WrJgQ9/79+4uWHRMRpxgiaMI6duxI0CRPmjTJHu8PPviAXn75
ZZMk4hp0nBo1aiR9QNugFa5QoYJoZdFPkDtoOFesWGFr9IERtJR4b0AGsdriFExW3nnnHSHRWEnw
apidaTO7DwMH1IGVIaygPP300zRjxgx5l5YscSsxMmuLNx4T0DPOOIOw+vTtt9/aE8+HH36Yevfu
LeOMlQ4I3jdMLsKU7CDEYfUJk2D8TZQtW5Z27tyZabeVEGcKUewJoCHOrXL0wBHrm7M/kt93Lb60
2PzB7kryht1Wzws/l7g5XyfY4bhh0mKl7DnkCsPD+olr7PI2Tl7rimeNsh3HGlJXHB6YXFhr/1zp
Cj+084CdZ8fiRCs1JdUa8Y9BEta7WReLNZKu9Hj4/dHBEt//xl7Wkf1H7PjEeZvtsga0+84Od95s
nbPJTtO90WfWhklrnNHS5x1LtknYwaQDVo8LPpP0U97905Vuzei/7HKYuLviZnwySeJGPj7EFY4H
nhRIHMbCKSYPxmrh97PtqOPHjlvD7ukneUY8PNAOxw2wMWO7YvgSO461nNavD/S34zCWcctxyxp6
Z18p8+frelr7E/e5ikw7esya132GhfYamfb+OEnf66IuFpu3mGAe46PWkDt+lLjBHfrY4X43y4cs
suv0i0dYrONkynNiNbLTENc7hTSbEta7+oWwgwcPWkxe7N+sWbMQHIpUHl7Zwo/SKJSfKS+zxo0c
ORJLR/JjchiRnAmA9csvv7jC//nPf0p61r5YvMRrxwEf1pxJHBNVO9zvpnr16pKOTSb8oiWMiZLF
GmdJxyTElY6JuoSj7Uy+XXF4YI2SHV+oUCGLl15dafgDazGRdoXhgTV+dj6eEETEOwOuu+46Sctm
EtaBAwfsKDbLsMtgQmyHR7thkxFJzx//aEmsa665RtLwhCAiDZNviwl1RDgTTrsdTDBd8Q888IDE
sfmJxSsErjjnQ5BxQnqeDFnA1CsjRoyw28CTEDuaTVosJsMS1717dzscN0yorJo1a0rcK6+84oqL
5SFeHNh0xmKNvlW+fHm7L7wKYLHZRyzNceXhCZRdJmvRJY7NTiw25bF4BcpatmyZHY93PmypW7eu
lM8mE6EVHVafxo4da/d9+/btmbaPV0Ds/5vx/3RycnKmeTRBMAQwG8y14iTECR9OiOjHuJd/F8Ix
qP33EXF+ASBbvS/+QvIs7b/AlQQEEARt4C1c1gle5ErjfXASYraDtYbf97OU8d0lXa2k5ZEvfuqh
oxKPepYNXOgtzhrWMZ08BiHEfng4C2QNutT1bcNPhHQ543APQo52jH9lpCvKkNtYCDGwBbl0yqI+
c6Qe1OeU6R9PlPAfWn5jsYmJM8rCZMWQZSchPnbkmHXscGqgX9qxNLtMTGb8yrMT+Nz8yO1Cninv
RH4sVo86MaFgjbtP7vSgIIQ41nEylRpC3OOCzy28j0EExIE1dfaPtUNBsgVKYwjs302IWaMnHx3W
8AkRCdJYthGWPH4EDh91Q7DZbjNqcUGIVq9evaQs1g5aIMde4aVqiQdh8YqTEGflY8+2w3b72Q7W
W6z9DAJs+ukldEjEJhoSHxYhZltuKY81+HYbMrsxRBATAi85YJMQu/3jxo2LWlSQcYqamSPYlMQq
U6aM1MVaYVdSQ8ovueQSVzjbDtttcxJ9XhGweFUi8M8UGi8O5n03440r/h8IQxYvXmz3FQQQ/8ew
zbSE4W8Jz6ZeNl0Ko0pXGdlBiMPqEybbpu+YJGQmvOJi/9+M8XFOUjPLq/EZI3DKEGKvdhbdXjpg
gZCW3s2+iEBh+6JEa9JbYy1oJge07W1BM4hf9/M/lTzzesxw5UEcCNCcr6a5wjN6cBJiaIQN6UK7
/GT36p12ml2rkiKSGJIYhBCD5GUks76YKnV5iajJA2zQXpB4p8RDiKGF9crqkculnj6Xuf8THPvc
cAkf8+xwbxbr6METKwOGEIMMG3yDXCe+Ptoud9WIZZIXkwOnFthO4LkBme7W8GPJA/LrFee4b5m1
0RttPwchxLGOk6nEEGK/CYxJ83deTxYh5iVT+ei8/fbbgbrLpgQWb2STPGxSEJGH7XQDfcSCEC22
a5ayzjnnnIh6EMA2lxLPphAR8U5CDC13UHFqNNl+M2o2p+bOb2IEEo6PeViEmDdY2bhef/31Fi+v
W6gXJDGaGCLYtGlT3ySlS5eWMnlp3jcegUHGyWTGignGBNpsNk2x8G7hV7BgQamHzTNMUrlOmzbN
7hPIjBFDlNnkxQTJFdpiQ5CCXNmeVPLFi8OYMWNEA84mKVb79u2lDbxZ03rqqadc7YvlAf02fcEq
Btu0yzObB0lxWHUx8RjzsCU7CHFYfXL+jbGJSthd1/KygMApQ4i3zd8S0W3n0j+0r0YmvTHGRZ66
NfjY6tm4s/y+OSfdBGN216kmuZCkb8/9RPL89ctiOzyzGycxcpI0PiHBStkdabLh1Hz6xWPZHuUE
IcSH96Zk2Lzxr46Usn69v79vOvQfdfVt7f7PKR5CjCV7r0QzszAmDBgrP4HGE+0LgxBjkiN9beXu
q1+9CGN7c0mPPFtnb4pIBo023inErxgWXbsahBDHOk6mUYYQT30vunbMpP07rieDEINM8S5s+eDy
aQqBurl+/Xr7A822qBF52BbSAlnAR5w3nEXEm4AgRMsQI7ZpNtlcV5gBoB7eTe4Kx4OTELMNa0R8
tAC2T7b7x7ab0ZJZo0ePttP5Led+9NFHEh8WIQYx4o1rdp2GJKHv0KRjouIVQwShXfYTtuuV8jKa
DAUZJ5TNmy5dbcM7wDbO8sPyP9qL8fKK0fKzHbNEQauHfEj/ww8/uJLHS4jjwcHZELNygTbCVCQe
4VMRbNxef/11mTzw6Q8Wn9QhxW7ZssWOHzZsWDxV+ebNDkIcVp9gCmXec5jYqJw8BE4ZQuyniTNL
1yAnZokcmmQQFfyw3A1bY6dWcMjtP0ickxBjeIw9steUIqOhcxLiATf1tkDaezXtLOWPfGxwRFY+
JcJu2/6tkX8YsIVGu4MQ4ojCPQGT3kyfFPzyPz95YtIfZ34+WeryapAzIsQG72g2xH5aymiE2BC5
if97QpNrN/S4ZZkJiiHEiIONdtCfeR+QDzbhwNWrpUacn8Cu17xDsMH1CsxCTLyfBtmkD0KIYx0n
U4fBEZrmnCAngxCj37yBTD463uXsaJjAdMF8pPxsKPlUCDveT4Nsyg1CtPi4JSmLj3Iz2VzXf//7
3xLvp0F2EmJXpkweYL9qbFszIvTO8kFavMInVEjbwiLEpnzeHGg9++yzFkxczDjg6rWxRnpDiKGx
9RPeGCll8IZJv2gJCzJOsDE3bYEZDZ+G4NJc86ZGifcjxJ999pnE8akEkgeYoyzYp8M22ikg/QgL
+jN5w8DBlGWuhkjyyR8mKOar0aAbDJ2mEXykoY1tdmhJTT+yYlYUpKNh9IlPvZG+87F8QarUNNmI
wClDiLHs7RVjnwo7VCN8rJaQlWia0e+ad5V4L4GAHTJITma2uaYeXJ2EeNuC9I8JH6lmk6WFbD/r
FGwKNEQKG+S8gmV+xIdBiOd9O13K6htFKwrbYdQ14pFBrmbM6jJFwvn0Alc4HgzesJF2SkYkOhoh
NppRP63yoV0HpQ1on5MQO+vMyv26P1ell8erA7BLz1SYkGPTIur3WzGA3TDi8PPbOGnKR16kwYpB
NIl1nEx5hhB7J3gm3u8K7SfveLd/fI6sX7KYwk4WIebzfOWjE/SDCMIIm1R8vP20yrAbNh/2jD7g
ZtOUn/2tARBEDWUhrZ/Adhjx2NzmFSdh9cZl9swnMUi50NhFE6em3G9zHp9sIGWETYid7QFZwiY7
YMCnOrhIKNIZIgjzBa84iT/MMaJJkHF68MEHpQ3RNPl8SoDEwwTGKzBL4VMWJB4mAygD/YHpRVgS
Bg7etvApH9LOaFpnb/qMno2mHv1GuRgbI3xsntSDOGMCYuLCuGYXIQ6jT8YkKtqEztt/rC4AI/PL
aLOoN68+Z4zAKUOI/3jht4ie/vbQQCEcTvI75plhEuZHtJwmC15CbDboQfsJG9Yg4iTEOGXCyLiX
Rkgbup/3qZW07MTmOiy1o3yQJNjwOgUb/kxcGITYaHNR107PBj9oOE1d3k1ji/vOlfb9dE13Z/Pk
3mAbBiGe2y2dsMOUxWnugorMRjO0PQxCjFMijKmM3wkiER3lALPpcPRT7pMJkBYnaaBtKJOPZ/PL
LmHQLks6Tuu3IoBEsY6TqTQWQnwqnjJx3333yQcXO+j3799v4MnwCo0sPtC33HJLRDqj8cMyuZ8p
gckArS/KAJmKJtAwIw1+fKSSKxk00WbXv9/mvngIMTtDkDo7dOjgqtP5AG2lOQHDa3KAiZPRrGYn
IUZ7oKU3GHltmQ0RxFg4TwNBPmykM/kymrgEGSfghLJg0uEVnCxh6vEjxEjPx9VJGmiSjXkFNOFh
SRg4ONuC0zT4mDhpM0xF4hU+1tDGyHtyjTGTad68ebzV+ObPLkIcRp9gQ453B6faBBFswHSeAuS3
chOkHE0TicApQ4hBLp3L12v/WGnbcWLjlpEZn6UfG4YNVDCXMLJnzS6r3zU9bILiJcR71u6yl+mx
9H9432GTVU6dWPzTPNeRYoiMRohxnBpsc0GGsFnPSbANEYRJwMrfWOvNk2gQ1AmvpWu2kScMQozT
GPpc/pW0Yfi9P7vaMO0/49NxYELH3tFO9JPvnMfP4SQMY26C49mM3WwYhPjA9v0WxhT9nfJ/f9pt
wJFoBjvEhUGIUbiZ8PRs0jni+DwQZhyHh0mJET6/WdqGzXV414zgPTK4slMRE+x7RR/xHqIfE1j7
70eeYx0nU6ES4nQksAHG2BHjxAnY/xmBpgobiUByndKlSxf5UGFz3dChQ+0onFzATjIk7tZbb7XD
/W4MScHRUjj6zU9wooAp78orr3QRdj6fWOoBgYKm1CvxEGJjAgBNeEYb67CpCh9sEHNsADJizCUQ
FxYhho0tPvbOTXQg3kY76zehMRijHRhbTCIgOD3DnIKBI+MyElNGRuP06quvCg44DQTmEkbwPrAj
CYlDG6IRYiepRzo+x9gUEcrV9CErOLz44osWOzux0AengHRhEyfKwo+dhjijY7p3bh7DqgfGFfLT
Tz/Z9YS1oQ5lY2XL/MwKADAyYWHY68bbJ/bKZ+9FwN9yEFFCHASl2NLkQTZ+4XOlOF03owNwkiHu
kblHO5YkipOFsuz2+DZ2LmHcEDNhocEdfiB4nYML40oXVBUvXfBSZsqAA4wmT7Sgi55O9+gmEfzP
vG4ziE0G5PGM4gXFfXIedhoBN79wAnLhoxdn6pjDlAUvZ/Aqx1phqndzQ7r6g3S3mHAFzARVnCgg
bcESBQnOPOAAomjFYnRw+4FAjjk6LX/RVBX1CkckvGlN4uHVD84bDrDba7iLhtRr14Cu/vBGuTf/
oL392vSgA4n7JKgouyiGY5Nd7LoYmMCxCbzRPZDwlMlCsTjzQGanQ4pStcuIUwm4zGaNsYwt0oTl
mAOONobe/qPtKKT0WWWpxJklCa6O96zeJV7enI458P7wxETcXcOlM947eHtLWrKdxyqVHV0UoFsH
dJSxQjujyeS3xtKyAQslGl7jChQ7Q+7v+v1hwREPsYyTFML/GMccTg+FJi7alW0XT0lPde+99x6x
eYB0G56d4GQCLpH5oyZOE5jwuBxz8FKkOF+Am1m4RuZTDIjJozjIAEZwtsBaR3FKEQ1LNjkg1jSL
a16kgXc3OF9ggke8Ic3OBgccxksePAPCNTI8z/HHT9JE83TmdJqR1f/KmTQQEwXxegVs2FbZbo/z
Bn0AVnykmTjzgAMQOKFwumpmQux6Rn54h/v553TPmXiGBzKUUa5cOZeLYrishYMGiPGeB4cXcHwB
5yFTp061XdWy6QnBk51TvA4pWGst7pTRPtbey9jBmQpr+p3ZXPdBxolJozj8wHvBExTiY9SIbUjl
HUBhcJ8LV85MiIm16a7y8YDxgQc23tAocfCYCO+EYUksOMCdOByeQOAApUaNGsQrKPJO8ERRwuGN
EB74whCeXIlHSJQF1+T4O4QjEwjw5EmDjLkExPEP3JfDqUtGgr5i3OOVePpkHPLgvYc3wCDCk3uX
e2s4oYnmdj5IeZrmBAK5mxAzMerVpIv0ps1nN9H0jybahAaB1a+oze6H2wpRO9FlIngem/z2WCGX
JhxkE6QUrm03T98gZBik2Cubpq4j1lgKEXLGgUy2eOUqqtq8hh3MJ0VQn0u/kufbhtxH5RpUtONw
M/eb6TT7i6kS5iR2IPpT3x1HqAtErWSN0lTnhrPFgxpcLVdsVIXa9+/oKgsP2+ZtIT6rWIh+p2WZ
E2LkWffHSpr05liCm2QjIHYXPnKxTApA9rwCMs/mETIJQBw8ydVqU5dqX1tfvPCBXN8/9Qk7G2/Q
E1xrtqpD133Z3g7HDdvv0hh2z+zNI4l4YoMJyIJes4g10RJUoHABuvzNNsR2yYLNtV/eQrVa1ZW4
eP/BRIhtxGnV8KUut9lwxVynbQO6kr3pOfE4su8wTXxtNK0btypdj/LfBuBdaMXvHTwEZiaYYMz9
KkHceLMm2nY9fv/UJxmTInb2WMYJmUc8NDDD99muwHGDDz47XbBD4DIYntLCkJPpuhnt56OlxCsU
SK5TQEBZQ2x7STNxrEkWssY734XQmHCkZ2cb4sXLhEW7wrMU2y6LC18QQghrqiLcNLMWWrzKOb1V
gXDxqQNCskDKvcJHeolXLxA0Q2C8aTJ6hhtkeOirWrWqkINontLwEQahNOQFZcKbGDy2wQMcPLih
n07hJWBiLbszyPce5BEkEoI8INHwhOcUPpGAeJOdEE0vDoYIwtseCBY8n4HsQ/DMNuAZkmFTT5Bx
Yu21jB0vU5tsgh1cW8MbHv5unP2xE/33BpMupAN5Rhms8fYmifk5FhwwEYPnPz5T1/V+oxGYuMCl
N8qFl7mwBO8z3KSzLawUCSzYPl7+nkDKwxBMVEGwMxJMBnkvQEZJAsfF0idMPHgjnUyi4OnQTAoz
qxRkn7XckgwT+quvvlomZpnl0/jMEcjVhNive3CxC20tSAlc8EYTaF2RFqS1dC3WPrKmMysCV8jJ
rG0+nmaJG+LirE3MDoFmGIQMMp3J2sLv54g7ZxD90ISJ5352Xb13U7K4IYY2FiQ3IwF+0IynHkol
uHjOz0Q1uwTaWDbdYDKalycVFTJtW7ztAEndtyGZ2DyDCpUqTKVqlRY329HKPZaSSrtWJtHx1OME
7KAxzxaJYZyypR1xFNpgVANKTk2mHVfvoLQi6aQl1uLyHcpHFcZXoOJ5i9OKtulapqBl4YMCjR8v
zYtWjI/1yjAr21ULaWAHDKLxDZPIOCuGFhFaKxB2aNDYeUFc7nydZfvdY/IDDTbqBBG96667/JLZ
YdBa8zKvaHIxUcoOAQbQovKmIQLeqAcutKGR9xNDBNF29AFEA+644QoXmjcvgfYrIythbJIhEwOQ
dowPSE1Qgbtwdr5AbI9M7BwlaLZA6eLBARp/uI7GZAyTIpBFdtRhu6AO1IAsJMKEhU2AZOWEN7xG
HdssFHnSk2a1T127dqVnnnlGVpgwGQvynqIOTOrN5Bd/F3jHVcJB4JQjxOHAcnJLsZhkGxMP0xKQ
NLY3pv2b91KzZy+nxp2amyi9KgK5BoEvVn1BHyz/gI6UP0L76++n1FKpMbW9QHIBKr6iOBVMKkiP
VHiU3m7+VkzlaCYimBOwowTizT32cnZuwsVLBHNq22fOnEm8aUyax5vwRCsaZltzCw5h9jk3l9Wx
Y0cxM+rcuXPEylS0fmHCAu03BBMXaIfD1N5Hq/d0CVdCnANHms/DpRotz6KaV9ehEtVLUQqbTczv
MYs2J6xnm+JC9D9jH8lQ+50Du6RNUgQEgZS0FGoytoloicOABNrhhCsTqGzxsmEUp2XkQgRyMhGE
rTkfsyarCzBPYA+HotHjkzLEDjlMuHMyDmH283QuCytHWNmC8MkZYit/OuMRdt+VEIeNaAjlsRMQ
2UTnLQomIFe9f70QZW+cPisCuQUBkOIea3tQt9XdYibGIMJ3l7ubnm74tJLh3DLw2dTOnEwEsSmy
fv36ds+xYRImEzC1CFtyMg5h9/V0LQ+mEsY+Hhpi7B1QCQ8BJcThYRlaSYlzNtPWWRtpL9uxwla5
SIViVJptU+ve1EBsfEOrSAtSBBQBRSCXIwBbXHavTTj9gs+bzlG9wRI3Ntlh8xM2HmLzWHbZXudk
HHLUoGhjFIEoCCghjgKMBisCioAioAgoAoqAIqAInB4IKCE+PcZZe6kIKAKKgCKgCCgCioAiEAWB
LBNiHM3C7jzlgHp26UmlS5dWO5Yo4GqwIqAIKAKKgCKgCCgCikDORyDLhJh9wxO7GrV7hoO0cUB7
tAPd7YR6owgoAoqAIqAIKAKKgCKgCORABLJMiHFgOg6px8H2xtMMdtHiCBAVRUARUAQUAUVAEVAE
FAFFILchkGVCbDqI4z/gphKehOBHG/60VRQBRUARUAQUAUVAEVAEFIHchkDMhBgdTUhIILh8LFOm
DLVo0SK39V3bqwgoAoqAIqAIKAKKgCKgCFBchBiuKJOSkmRj3aWXXqpwKgKKgCKgCCgCioAioAgo
ArkOASXEuW7ItMGKgCKgCCgCioAioAgoAmEiEAohxkkTLVu2DLNdWpYioAgoAoqAIqAIKAKKgCLw
tyAQFyGeP38+bdmyRRraqlUrwrnEKoqAIqAIKAKKgCKgCCgCikBuQiAuQrxmzRpavny59Ld69erU
oEEDPY84N42+tlURUAQUAUVAEVAEFAFFIL5NdWlpabRw4UJKTEwky7IEzoIFC8omu6ZNmyq8ioAi
oAgoAoqAIqAIKAKKQI5HIC4NMXq3bt06grMOp/c6uHPWUydy/NhrAxUBRUARUAQUAUVAEVAEGIG4
CPHWrVtp3rx5AmTRokXFZKJ48eJUoEAB+SnCioAioAgoAoqAIqAIKAKKQE5HIC5CDHOJTZs2SR8v
ueQSKlu2bE7vr7ZPEVAEFAFFQBFQBBQBRUARcCEQFyE2jjlgN9y6dWvKkyePq3B9UAQUAUVAEVAE
FAFFQBFQBHI6AqEQYrUZzunDrO1TBBQBRUARUAQUAUVAEYiGgBLiaMhouCKgCCgCioAioAgoAorA
aYFAXIR4ypQptHfvXrEdhg2xiiKgCCgCioAioAgoAoqAIpDbEIiZEO/cuZNgQ4zzh6tVq0aNGjXK
bX3X9ioCioAioAgoAoqAIqAIKAJZP3YNWuF9+/bZjjiAYePGjalKlSoKpyKgCCgCioAioAgoAoqA
IpDrEMiyhnj8+PF06NAhOVGiSJEiVKNGDapdu3au67g2WBFQBBQBRUARUAQUAUVAEQACWSbEqamp
ghycb6goAoqAIqAIKAKKgCKgCCgCuR2BLBPi3N5hbb8ioAgoAoqAIqAIKAKKgCLgREAJsRMNvVcE
FAFFQBFQBBQBRUAROO0QUEJ82g25dlgRUAQUAUVAEVAEFAFFwImAEmInGnqvCCgCioAioAgoAoqA
InDaIaCE+LQbcu2wIqAIKAKKgCKgCCgCioATASXETjT0XhFQBBQBRUARUAQUAUXgtENACfFpN+Ta
YUVAEVAEFAFFQBFQBBQBJwJKiJ1o6L0ioAgoAoqAIqAIKAKKwGmHwP8Df+3dZ4TnFBgAAAAASUVO
RK5CYII=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382384</attachid>
            <date>2019-10-30 16:17:37 -0700</date>
            <delta_ts>2019-10-30 22:34:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>12775</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhOTEzMGU0MDg1My4uNDE1MzQ5YjY0NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxOS0xMC0zMCAgTmlraXRhIFZhc2lseWV2ICA8bnZhc2lseWV2QGFwcGxlLmNvbT4KKworICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBEaXNwbGF5IGNvbG9yIHN3YXRjaGVzIGZvciBwMyBjb2xvcnMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzQzOQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTY2MzcyNTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvbW9kZWwvY29sb3ItZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9tb2RlbC9jb2xvci5odG1sOgorCiAyMDE5LTEw
LTI2ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmZvcmNl
IHVzZXIgZ2VzdHVyZSBmb3IgZ2V0VXNlck1lZGlhIGluIGNhc2UgYSBwcmV2aW91cyBnZXRVc2Vy
TWVkaWEgY2FsbCB3YXMgZGVuaWVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
bW9kZWwvY29sb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL2Nv
bG9yLWV4cGVjdGVkLnR4dAppbmRleCA5OTliOGZiYmE3Ni4uOTZhNGUzNmU1NWYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9jb2xvci1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL2NvbG9yLWV4cGVjdGVkLnR4dApAQCAtMzMxLDYg
KzMzMSwyOCBAQCBUZXN0cyBmb3IgdGhlIFdJLkNvbG9yIG1vZGVsIG9iamVjdC4KICJIU0xBKDEw
dHVybiAyMCUgMzAlIC8gNDAlKSIgcmVzb2x2ZXMgdG8gImhzbGEoMzYwLCAyMCUsIDMwJSwgMC40
KSIKICJoc2xhKCAxMHR1cm4gIDIwJSAgMzAlIC8gNDAlICkiIHJlc29sdmVzIHRvICJoc2xhKDM2
MCwgMjAlLCAzMCUsIDAuNCkiCiAiaHNsYSg5OTl0dXJuIDk5OSUgOTk5JSAvIDk5OSUpIiByZXNv
bHZlcyB0byAiaHNsYSgzNjAsIDEwMCUsIDEwMCUsIDEpIgorImNvbG9yKGRpc3BsYXktcDMgMCAx
IDAuNSkiIHJlc29sdmVzIHRvICJjb2xvcihkaXNwbGF5LXAzIDAgMSAwLjUpIgorIkNPTE9SKERJ
U1BMQVktUDMgMCAxIDAuNSkiIHJlc29sdmVzIHRvICJjb2xvcihESVNQTEFZLVAzIDAgMSAwLjUp
IgorImNvbG9yKHNyZ2IgMC4xMjMgMC45OTkgMSkiIHJlc29sdmVzIHRvICJjb2xvcihzcmdiIDAu
MTIzIDAuOTk5IDEpIgorIkNPTE9SKFNSR0IgMC4xMjMgMC45OTkgMSkiIHJlc29sdmVzIHRvICJj
b2xvcihTUkdCIDAuMTIzIDAuOTk5IDEpIgorImNvbG9yKCBkaXNwbGF5LXAzIDAgMSAwLjUgKSIg
cmVzb2x2ZXMgdG8gImNvbG9yKGRpc3BsYXktcDMgMCAxIDAuNSkiCisiY29sb3IoZGlzcGxheS1w
MyA5OTkgOTk5IDk5OSkiIHJlc29sdmVzIHRvICJjb2xvcihkaXNwbGF5LXAzIDEgMSAxKSIKKyJj
b2xvcihzcmdiIDAuMTIzIDAuOTk5IDEvMC41KSIgcmVzb2x2ZXMgdG8gImNvbG9yKHNyZ2IgMC4x
MjMgMC45OTkgMSAvIDAuNSkiCisiQ09MT1IoU1JHQiAwLjEyMyAwLjk5OSAxLzAuNSkiIHJlc29s
dmVzIHRvICJjb2xvcihTUkdCIDAuMTIzIDAuOTk5IDEgLyAwLjUpIgorImNvbG9yKCBkaXNwbGF5
LXAzIDAgMSAwLjUvMC41KSIgcmVzb2x2ZXMgdG8gImNvbG9yKGRpc3BsYXktcDMgMCAxIDAuNSAv
IDAuNSkiCisiY29sb3IoZGlzcGxheS1wMyA5OTkgOTk5IDk5OS8wLjUpIiByZXNvbHZlcyB0byAi
Y29sb3IoZGlzcGxheS1wMyAxIDEgMSAvIDAuNSkiCisiY29sb3Ioc3JnYiAwLjEyMyAwLjk5OSAx
IC8gMC41KSIgcmVzb2x2ZXMgdG8gImNvbG9yKHNyZ2IgMC4xMjMgMC45OTkgMSAvIDAuNSkiCisi
Q09MT1IoU1JHQiAwLjEyMyAwLjk5OSAxIC8gMC41KSIgcmVzb2x2ZXMgdG8gImNvbG9yKFNSR0Ig
MC4xMjMgMC45OTkgMSAvIDAuNSkiCisiY29sb3IoIGRpc3BsYXktcDMgMCAxIDAuNSAvIDAuNSki
IHJlc29sdmVzIHRvICJjb2xvcihkaXNwbGF5LXAzIDAgMSAwLjUgLyAwLjUpIgorImNvbG9yKGRp
c3BsYXktcDMgOTk5IDk5OSA5OTkgLyAwLjUpIiByZXNvbHZlcyB0byAiY29sb3IoZGlzcGxheS1w
MyAxIDEgMSAvIDAuNSkiCisiY29sb3Ioc3JnYiAwLjEyMyAwLjk5OSAxLzMzJSkiIHJlc29sdmVz
IHRvICJjb2xvcihzcmdiIDAuMTIzIDAuOTk5IDEgLyAwLjMzKSIKKyJDT0xPUihTUkdCIDAuMTIz
IDAuOTk5IDEvMzMlKSIgcmVzb2x2ZXMgdG8gImNvbG9yKFNSR0IgMC4xMjMgMC45OTkgMSAvIDAu
MzMpIgorImNvbG9yKCBkaXNwbGF5LXAzIDAgMSAwLjUvMzMlKSIgcmVzb2x2ZXMgdG8gImNvbG9y
KGRpc3BsYXktcDMgMCAxIDAuNSAvIDAuMzMpIgorImNvbG9yKGRpc3BsYXktcDMgOTk5IDk5OSA5
OTkvMzMlKSIgcmVzb2x2ZXMgdG8gImNvbG9yKGRpc3BsYXktcDMgMSAxIDEgLyAwLjMzKSIKKyJj
b2xvcihzcmdiIDAuMTIzIDAuOTk5IDEgLyAzMyUpIiByZXNvbHZlcyB0byAiY29sb3Ioc3JnYiAw
LjEyMyAwLjk5OSAxIC8gMC4zMykiCisiQ09MT1IoU1JHQiAwLjEyMyAwLjk5OSAxIC8gMzMlKSIg
cmVzb2x2ZXMgdG8gImNvbG9yKFNSR0IgMC4xMjMgMC45OTkgMSAvIDAuMzMpIgorImNvbG9yKCBk
aXNwbGF5LXAzIDAgMSAwLjUgLyAzMyUpIiByZXNvbHZlcyB0byAiY29sb3IoZGlzcGxheS1wMyAw
IDEgMC41IC8gMC4zMykiCisiY29sb3IoZGlzcGxheS1wMyA5OTkgOTk5IDk5OSAvIDMzJSkiIHJl
c29sdmVzIHRvICJjb2xvcihkaXNwbGF5LXAzIDEgMSAxIC8gMC4zMykiCiAKIFBBU1M6ICcgIzAw
MCAnIHNob3VsZCBub3QgYmUgZGV0ZWN0ZWQKIFBBU1M6ICcjcmdiJyBzaG91bGQgbm90IGJlIGRl
dGVjdGVkCkBAIC0zNDQsNiArMzY2LDggQEAgUEFTUzogJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC41
LCAxKScgc2hvdWxkIG5vdCBiZSBkZXRlY3RlZAogUEFTUzogJ2hzbCgwLCAwJSwgNTAlLCAxLCAy
KScgc2hvdWxkIG5vdCBiZSBkZXRlY3RlZAogUEFTUzogJ2hzbGEoMCwgMCUsIDUwJSwgMSwgMikn
IHNob3VsZCBub3QgYmUgZGV0ZWN0ZWQKIFBBU1M6ICdzdXBlcmJsdWUnIHNob3VsZCBub3QgYmUg
ZGV0ZWN0ZWQKK1BBU1M6ICdjb2xvcihkaXNwbGF5LXAzIDAgMSknIHNob3VsZCBub3QgYmUgZGV0
ZWN0ZWQKK1BBU1M6ICdjb2xvcihkaXNwbGF5LXAzIDAgMSAyIDQpJyBzaG91bGQgbm90IGJlIGRl
dGVjdGVkCiAKIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5Db2xvciBwcm9wZXJ0aWVzCiBQQVNT
OiAncmVkJyBzaG91bGQgaGF2ZSBhbHBoYSBvZiAxLgpAQCAtMzcwLDYgKzM5NCwxNCBAQCBQQVNT
OiAnIzExMTIyMjMzJyBoYXMgaHNsYSBvZiBbMjM2LjQ3LCAzMy4zMywgMTAsIDAuMl0uCiBQQVNT
OiAnIzExMTIyMjMzJyBzaG91bGQgbm90IGJlIHNlcmlhbGl6YWJsZSBhcyBhIHNob3J0IEhleAog
UEFTUzogJyMxMTIyMzM0NCcgc2hvdWxkIGJlIHNlcmlhbGl6YWJsZSBhcyBhIHNob3J0IEhleAog
UEFTUzogJyMxMTIyMzM0NScgc2hvdWxkIG5vdCBiZSBzZXJpYWxpemFibGUgYXMgYSBzaG9ydCBI
ZXgKK1BBU1M6IHRoZSBkZWZhdWx0IGFscGhhIHNob3VsZCBiZSAxLgorUEFTUzogY29sb3IgZnVu
Y3Rpb24gaXMgbm90IGEga2V5d29yZC4KK1BBU1M6IHJnYiB2YWx1ZXMgc2hvdWxkIG1hdGNoLgor
UEFTUzogYWxwaGEgdmFsdWUgc2hvdWxkIGJlIDEuCitQQVNTOiBhbHBoYSBzaG91bGQgYmUgMC4z
CitQQVNTOiBjb2xvciBmdW5jdGlvbiBpcyBub3QgYSBrZXl3b3JkLgorUEFTUzogcmdiIHZhbHVl
cyBzaG91bGQgbWF0Y2guCitQQVNTOiBhbHBoYSB2YWx1ZSBzaG91bGQgYmUgMC4zLgogCiAtLSBS
dW5uaW5nIHRlc3QgY2FzZTogV0kuQ29sb3IgZnJvbSBjb21wb25lbnRzCiBDaGVjayBjb21wb25l
bnRzIGZvciBjb2xvciAncmdiKDI1NSwgMCwgMCknLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL21vZGVsL2NvbG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwv
Y29sb3IuaHRtbAppbmRleCA2YjI5ZDIwYWMyNC4uMWM0ZmIxZTY3MTIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9jb2xvci5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9tb2RlbC9jb2xvci5odG1sCkBAIC0yNyw2ICsyNyw4IEBAIGZ1bmN0aW9uIHRlc3Qo
KQogICAgICAgICAgICAgcmV0dXJuICJIU0wiOwogICAgICAgICBjYXNlIFdJLkNvbG9yLkZvcm1h
dC5IU0xBOgogICAgICAgICAgICAgcmV0dXJuICJIU0xBIjsKKyAgICAgICAgY2FzZSBXSS5Db2xv
ci5Gb3JtYXQuRnVuY3Rpb246CisgICAgICAgICAgICByZXR1cm4gIkZ1bmN0aW9uIjsKICAgICAg
ICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiAiVW5leHBlY3RlZCBmb3JtYXQiOwogICAg
ICAgICB9CkBAIC0yMjQsNiArMjI2LDM0IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAg
ICAgIHRlc3RHb29kKGBoc2xhKDk5OSR7dW5pdH0gOTk5JSA5OTklIC8gOTk5JSlgLCBXSS5Db2xv
ci5Gb3JtYXQuSFNMQSk7CiAgICAgICAgICAgICB9CiAKKyAgICAgICAgICAgIHRlc3RHb29kKCJj
b2xvcihkaXNwbGF5LXAzIDAgMSAwLjUpIiwgV0kuQ29sb3IuRm9ybWF0LkZ1bmN0aW9uKTsKKyAg
ICAgICAgICAgIHRlc3RHb29kKCJDT0xPUihESVNQTEFZLVAzIDAgMSAwLjUpIiwgV0kuQ29sb3Iu
Rm9ybWF0LkZ1bmN0aW9uKTsKKworICAgICAgICAgICAgdGVzdEdvb2QoImNvbG9yKHNyZ2IgMC4x
MjMgMC45OTkgMSkiLCBXSS5Db2xvci5Gb3JtYXQuRnVuY3Rpb24pOworICAgICAgICAgICAgdGVz
dEdvb2QoIkNPTE9SKFNSR0IgMC4xMjMgMC45OTkgMSkiLCBXSS5Db2xvci5Gb3JtYXQuRnVuY3Rp
b24pOworICAgICAgICAgICAgdGVzdEdvb2QoImNvbG9yKCBkaXNwbGF5LXAzIDAgMSAwLjUgKSIs
IFdJLkNvbG9yLkZvcm1hdC5GdW5jdGlvbik7CisgICAgICAgICAgICB0ZXN0R29vZCgiY29sb3Io
ZGlzcGxheS1wMyA5OTkgOTk5IDk5OSkiLCBXSS5Db2xvci5Gb3JtYXQuRnVuY3Rpb24pOworCisg
ICAgICAgICAgICB0ZXN0R29vZCgiY29sb3Ioc3JnYiAwLjEyMyAwLjk5OSAxLzAuNSkiLCBXSS5D
b2xvci5Gb3JtYXQuRnVuY3Rpb24pOworICAgICAgICAgICAgdGVzdEdvb2QoIkNPTE9SKFNSR0Ig
MC4xMjMgMC45OTkgMS8wLjUpIiwgV0kuQ29sb3IuRm9ybWF0LkZ1bmN0aW9uKTsKKyAgICAgICAg
ICAgIHRlc3RHb29kKCJjb2xvciggZGlzcGxheS1wMyAwIDEgMC41LzAuNSkiLCBXSS5Db2xvci5G
b3JtYXQuRnVuY3Rpb24pOworICAgICAgICAgICAgdGVzdEdvb2QoImNvbG9yKGRpc3BsYXktcDMg
OTk5IDk5OSA5OTkvMC41KSIsIFdJLkNvbG9yLkZvcm1hdC5GdW5jdGlvbik7CisKKyAgICAgICAg
ICAgIHRlc3RHb29kKCJjb2xvcihzcmdiIDAuMTIzIDAuOTk5IDEgLyAwLjUpIiwgV0kuQ29sb3Iu
Rm9ybWF0LkZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJDT0xPUihTUkdCIDAuMTIz
IDAuOTk5IDEgLyAwLjUpIiwgV0kuQ29sb3IuRm9ybWF0LkZ1bmN0aW9uKTsKKyAgICAgICAgICAg
IHRlc3RHb29kKCJjb2xvciggZGlzcGxheS1wMyAwIDEgMC41IC8gMC41KSIsIFdJLkNvbG9yLkZv
cm1hdC5GdW5jdGlvbik7CisgICAgICAgICAgICB0ZXN0R29vZCgiY29sb3IoZGlzcGxheS1wMyA5
OTkgOTk5IDk5OSAvIDAuNSkiLCBXSS5Db2xvci5Gb3JtYXQuRnVuY3Rpb24pOworCisgICAgICAg
ICAgICB0ZXN0R29vZCgiY29sb3Ioc3JnYiAwLjEyMyAwLjk5OSAxLzMzJSkiLCBXSS5Db2xvci5G
b3JtYXQuRnVuY3Rpb24pOworICAgICAgICAgICAgdGVzdEdvb2QoIkNPTE9SKFNSR0IgMC4xMjMg
MC45OTkgMS8zMyUpIiwgV0kuQ29sb3IuRm9ybWF0LkZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRl
c3RHb29kKCJjb2xvciggZGlzcGxheS1wMyAwIDEgMC41LzMzJSkiLCBXSS5Db2xvci5Gb3JtYXQu
RnVuY3Rpb24pOworICAgICAgICAgICAgdGVzdEdvb2QoImNvbG9yKGRpc3BsYXktcDMgOTk5IDk5
OSA5OTkvMzMlKSIsIFdJLkNvbG9yLkZvcm1hdC5GdW5jdGlvbik7CisKKyAgICAgICAgICAgIHRl
c3RHb29kKCJjb2xvcihzcmdiIDAuMTIzIDAuOTk5IDEgLyAzMyUpIiwgV0kuQ29sb3IuRm9ybWF0
LkZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJDT0xPUihTUkdCIDAuMTIzIDAuOTk5
IDEgLyAzMyUpIiwgV0kuQ29sb3IuRm9ybWF0LkZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RH
b29kKCJjb2xvciggZGlzcGxheS1wMyAwIDEgMC41IC8gMzMlKSIsIFdJLkNvbG9yLkZvcm1hdC5G
dW5jdGlvbik7CisgICAgICAgICAgICB0ZXN0R29vZCgiY29sb3IoZGlzcGxheS1wMyA5OTkgOTk5
IDk5OSAvIDMzJSkiLCBXSS5Db2xvci5Gb3JtYXQuRnVuY3Rpb24pOworCiAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZygiIik7CiAKICAgICAgICAgICAgIHRlc3RCYWQoIiAjMDAwICIpOyAv
LyB3aGl0ZXNwYWNlCkBAIC0yMzgsNiArMjY4LDggQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAg
ICAgICB0ZXN0QmFkKCJoc2woMCwgMCUsIDUwJSwgMSwgMikiKTsgLy8gZXh0cmEgdmFsdWUKICAg
ICAgICAgICAgIHRlc3RCYWQoImhzbGEoMCwgMCUsIDUwJSwgMSwgMikiKTsgLy8gZXh0cmEgdmFs
dWVzCiAgICAgICAgICAgICB0ZXN0QmFkKCJzdXBlcmJsdWUiKTsgLy8gbm90IGEga2V5d29yZAor
ICAgICAgICAgICAgdGVzdEJhZCgiY29sb3IoZGlzcGxheS1wMyAwIDEpIik7IC8vIDIKKyAgICAg
ICAgICAgIHRlc3RCYWQoImNvbG9yKGRpc3BsYXktcDMgMCAxIDIgNCkiKTsgLy8gbWlzc2luZyBz
bGFzaCBiZWZvcmUgYWxwaGEKIAogICAgICAgICAgICAgLy8gRklYTUU6IGN1cnJlbnRDb2xvcj8K
ICAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgY29uc2lkZXIgbWlzc2luZyAlcyBhcyBi
YWQ/IEN1cnJlbnRseSB3ZSBqdXN0IHN0cmlwIHRoZW0uCkBAIC0yODgsNiArMzIwLDE4IEBAIGZ1
bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgY29sb3IgPSBXSS5Db2xvci5mcm9tU3RyaW5nKCIj
MTEyMjMzNDUiKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChjb2xvci5j
YW5CZVNlcmlhbGl6ZWRBc1Nob3J0SEVYKCkgPT09IGZhbHNlLCAiJyMxMTIyMzM0NScgc2hvdWxk
IG5vdCBiZSBzZXJpYWxpemFibGUgYXMgYSBzaG9ydCBIZXgiKTsKIAorICAgICAgICAgICAgY29s
b3IgPSBXSS5Db2xvci5mcm9tU3RyaW5nKCJjb2xvcihkaXNwbGF5LXAzIDAgMSAwLjUpIik7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoY29sb3IuYWxwaGEgPT09IDEsICJ0
aGUgZGVmYXVsdCBhbHBoYSBzaG91bGQgYmUgMS4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdChjb2xvci5pc0tleXdvcmQoKSA9PT0gZmFsc2UsICJjb2xvciBmdW5jdGlv
biBpcyBub3QgYSBrZXl3b3JkLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RT
aGFsbG93RXF1YWwoY29sb3IucmdiLCBbMCwgMSwgMC41XSwgInJnYiB2YWx1ZXMgc2hvdWxkIG1h
dGNoLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RTaGFsbG93RXF1YWwoY29s
b3IucmdiYSwgWzAsIDEsIDAuNSwgMV0sICJhbHBoYSB2YWx1ZSBzaG91bGQgYmUgMS4iKTsKKwor
ICAgICAgICAgICAgY29sb3IgPSBXSS5Db2xvci5mcm9tU3RyaW5nKCJjb2xvcihkaXNwbGF5LXAz
IDAgMSAwLjUgLyAwLjMpIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
Y29sb3IuYWxwaGEgPT09IDAuMywgImFscGhhIHNob3VsZCBiZSAwLjMiKTsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChjb2xvci5pc0tleXdvcmQoKSA9PT0gZmFsc2UsICJj
b2xvciBmdW5jdGlvbiBpcyBub3QgYSBrZXl3b3JkLiIpOworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RTaGFsbG93RXF1YWwoY29sb3IucmdiLCBbMCwgMSwgMC41XSwgInJnYiB2YWx1
ZXMgc2hvdWxkIG1hdGNoLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RTaGFs
bG93RXF1YWwoY29sb3IucmdiYSwgWzAsIDEsIDAuNSwgMC4zXSwgImFscGhhIHZhbHVlIHNob3Vs
ZCBiZSAwLjMuIik7CisKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAg
fSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA3MzM0ZGJiZDlhMi4uNDQ0MWU4YmRjZjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5LTEwLTMwICBO
aWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IERpc3BsYXkgY29sb3Igc3dhdGNoZXMgZm9yIHAzIGNvbG9ycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNDM5CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS81NjYzNzI1MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBEZXRlY3QgYGNvbG9yKGRpc3BsYXktcDMgMCAxIDApYCBhcyBhIGNvbG9y
IGluIHRoZSBzdHlsZSBlZGl0b3IuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9D
b2xvci5qczoKKyAgICAgICAgKFdJLkNvbG9yKToKKyAgICAgICAgKFdJLkNvbG9yLmZyb21TdHJp
bmcpOgorICAgICAgICAoV0kuQ29sb3IucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKFdJ
LkNvbG9yLnByb3RvdHlwZS5pc0tleXdvcmQpOgorICAgICAgICAoV0kuQ29sb3IucHJvdG90eXBl
Ll90b0Z1bmN0aW9uU3RyaW5nKToKKwogMjAxOS0xMC0yNSAgRGV2aW4gUm91c3NvICA8ZHJvdXNz
b0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogU3R5bGVzOiB1bi1leHBlcmlt
ZW50YWxpemUgc2hvd2luZyBydWxlIGljb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ29sb3IuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ29sb3IuanMKaW5kZXggYjY2ZjFhNmY5YzMuLjE1NTQ2
ZGM0MzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvQ29sb3IuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0NvbG9yLmpzCkBAIC0yOSw3ICsyOSw3IEBACiAKIFdJLkNvbG9yID0gY2xhc3MgQ29s
b3IKIHsKLSAgICBjb25zdHJ1Y3Rvcihmb3JtYXQsIGNvbXBvbmVudHMpCisgICAgY29uc3RydWN0
b3IoZm9ybWF0LCBjb21wb25lbnRzLCBnYW11dCA9ICJzUkdCIikKICAgICB7CiAgICAgICAgIHRo
aXMuZm9ybWF0ID0gZm9ybWF0OwogCkBAIC00MSw2ICs0MSw3IEBAIFdJLkNvbG9yID0gY2xhc3Mg
Q29sb3IKICAgICAgICAgZWxzZQogICAgICAgICAgICAgdGhpcy5fcmdiYSA9IGNvbXBvbmVudHM7
CiAKKyAgICAgICAgdGhpcy5nYW11dCA9IGdhbXV0OwogICAgICAgICB0aGlzLnZhbGlkID0gIWNv
bXBvbmVudHMuc29tZShpc05hTik7CiAgICAgfQogCkBAIC00OCw3ICs0OSw3IEBAIFdJLkNvbG9y
ID0gY2xhc3MgQ29sb3IKIAogICAgIHN0YXRpYyBmcm9tU3RyaW5nKGNvbG9yU3RyaW5nKQogICAg
IHsKLSAgICAgICAgY29uc3QgbWF0Y2hSZWdFeHAgPSAvXig/OiMoPzxoZXg+WzAtOWEtZl17Myw4
fSl8cmdiYT9cKCg/PHJnYj5bXildKylcKXwoPzxrZXl3b3JkPlx3Kyl8aHNsYT9cKCg/PGhzbD5b
XildKylcKSkkL2k7CisgICAgICAgIGNvbnN0IG1hdGNoUmVnRXhwID0gL14oPzojKD88aGV4Plsw
LTlhLWZdezMsOH0pfHJnYmE/XCgoPzxyZ2I+W14pXSspXCl8KD88a2V5d29yZD5cdyspfGNvbG9y
XCgoPzxjb2xvcj5bXildKylcKXxoc2xhP1woKD88aHNsPlteKV0rKVwpKSQvaTsKICAgICAgICAg
bGV0IG1hdGNoID0gY29sb3JTdHJpbmcubWF0Y2gobWF0Y2hSZWdFeHApOwogICAgICAgICBpZiAo
IW1hdGNoKQogICAgICAgICAgICAgcmV0dXJuIG51bGw7CkBAIC0xNzAsNiArMTcxLDM1IEBAIFdJ
LkNvbG9yID0gY2xhc3MgQ29sb3IKICAgICAgICAgICAgIF0pOwogICAgICAgICB9CiAKKyAgICAg
ICAgaWYgKG1hdGNoLmdyb3Vwcy5jb2xvcikgeworICAgICAgICAgICAgbGV0IGNvbG9yU3RyaW5n
ID0gbWF0Y2guZ3JvdXBzLmNvbG9yLnRyaW0oKTsKKworICAgICAgICAgICAgbGV0IGFscGhhID0g
MTsKKyAgICAgICAgICAgIGxldCBhbHBoYU1hdGNoID0gY29sb3JTdHJpbmcubWF0Y2goL1xzP1sv
XVxzPyhbMC05JS5dKykkLyk7CisgICAgICAgICAgICBpZiAoYWxwaGFNYXRjaCAmJiBhbHBoYU1h
dGNoWzFdKSB7CisgICAgICAgICAgICAgICAgYWxwaGEgPSBwYXJzZUZ1bmN0aW9uQWxwaGEoYWxw
aGFNYXRjaFsxXSk7CisgICAgICAgICAgICAgICAgY29sb3JTdHJpbmcgPSBjb2xvclN0cmluZy5z
bGljZSgwLCAtYWxwaGFNYXRjaFswXS5sZW5ndGgpOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBsZXQgcmdiID0gY29sb3JTdHJpbmcuc3BsaXQoL1xzLyk7CisgICAgICAgICAgICBsZXQg
Z2FtdXQgPSByZ2Iuc2hpZnQoKTsKKworICAgICAgICAgICAgaWYgKHJnYi5sZW5ndGggIT09IDMp
CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHBh
cnNlRnVuY3Rpb25Db21wb25lbnQoY29tcG9uZW50KSB7CisgICAgICAgICAgICAgICAgbGV0IHZh
bHVlID0gcGFyc2VGbG9hdChjb21wb25lbnQpOworICAgICAgICAgICAgICAgIHJldHVybiBOdW1i
ZXIuY29uc3RyYWluKHZhbHVlLCAwLCAxKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
cmV0dXJuIG5ldyBXSS5Db2xvcihXSS5Db2xvci5Gb3JtYXQuRnVuY3Rpb24sIFsKKyAgICAgICAg
ICAgICAgICBwYXJzZUZ1bmN0aW9uQ29tcG9uZW50KHJnYlswXSksCisgICAgICAgICAgICAgICAg
cGFyc2VGdW5jdGlvbkNvbXBvbmVudChyZ2JbMV0pLAorICAgICAgICAgICAgICAgIHBhcnNlRnVu
Y3Rpb25Db21wb25lbnQocmdiWzJdKSwKKyAgICAgICAgICAgICAgICBhbHBoYSwKKyAgICAgICAg
ICAgIF0sIGdhbXV0KTsKKyAgICAgICAgfQorCiAgICAgICAgIHJldHVybiBudWxsOwogICAgIH0K
IApAQCAtMzg4LDYgKzQxOCw4IEBAIFdJLkNvbG9yID0gY2xhc3MgQ29sb3IKICAgICAgICAgICAg
IHJldHVybiB0aGlzLl90b1JHQlN0cmluZygpOwogICAgICAgICBjYXNlIFdJLkNvbG9yLkZvcm1h
dC5SR0JBOgogICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RvUkdCQVN0cmluZygpOworICAgICAg
ICBjYXNlIFdJLkNvbG9yLkZvcm1hdC5GdW5jdGlvbjoKKyAgICAgICAgICAgIHJldHVybiB0aGlz
Ll90b0Z1bmN0aW9uU3RyaW5nKCk7CiAgICAgICAgIGNhc2UgV0kuQ29sb3IuRm9ybWF0LkhTTDoK
ICAgICAgICAgICAgIHJldHVybiB0aGlzLl90b0hTTFN0cmluZygpOwogICAgICAgICBjYXNlIFdJ
LkNvbG9yLkZvcm1hdC5IU0xBOgpAQCAtNDEzLDYgKzQ0NSw5IEBAIFdJLkNvbG9yID0gY2xhc3Mg
Q29sb3IKICAgICAgICAgaWYgKHRoaXMua2V5d29yZCkKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogCisgICAgICAgIGlmICh0aGlzLmdhbXV0LnRvTG93ZXJDYXNlKCkgIT09ICJzcmdiIikKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgICAgICBpZiAoIXRoaXMuc2ltcGxlKQogICAg
ICAgICAgICAgcmV0dXJuIEFycmF5LnNoYWxsb3dFcXVhbCh0aGlzLl9yZ2JhLCBbMCwgMCwgMCwg
MF0pIHx8IEFycmF5LnNoYWxsb3dFcXVhbCh0aGlzLl9oc2xhLCBbMCwgMCwgMCwgMF0pOwogCkBA
IC01NTAsNiArNTg1LDE1IEBAIFdJLkNvbG9yID0gY2xhc3MgQ29sb3IKICAgICAgICAgcmV0dXJu
IGByZ2JhKCR7cn0sICR7Z30sICR7Yn0sICR7dGhpcy5hbHBoYX0pYDsKICAgICB9CiAKKyAgICBf
dG9GdW5jdGlvblN0cmluZygpCisgICAgeworICAgICAgICBsZXQgW3IsIGcsIGIsIGFscGhhXSA9
IHRoaXMuX3JnYmE7CisgICAgICAgIGlmIChhbHBoYSA9PT0gMSkKKyAgICAgICAgICAgIHJldHVy
biBgY29sb3IoJHt0aGlzLmdhbXV0fSAke3J9ICR7Z30gJHtifSlgOworCisgICAgICAgIHJldHVy
biBgY29sb3IoJHt0aGlzLmdhbXV0fSAke3J9ICR7Z30gJHtifSAvICR7YWxwaGF9KWA7CisgICAg
fQorCiAgICAgX3RvSFNMU3RyaW5nKCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5zaW1wbGUp
CkBAIC02MDIsMTIgKzY0NiwxNCBAQCBXSS5Db2xvci5Gb3JtYXQgPSB7CiAgICAgUkdCOiAiY29s
b3ItZm9ybWF0LXJnYiIsCiAgICAgUkdCQTogImNvbG9yLWZvcm1hdC1yZ2JhIiwKICAgICBIU0w6
ICJjb2xvci1mb3JtYXQtaHNsIiwKLSAgICBIU0xBOiAiY29sb3ItZm9ybWF0LWhzbGEiCisgICAg
SFNMQTogImNvbG9yLWZvcm1hdC1oc2xhIiwKKyAgICBGdW5jdGlvbjogImNvbG9yLWZvcm1hdC1m
dW5jdGlvbiIsCiB9OwogCiBXSS5Db2xvci5GdW5jdGlvbk5hbWVzID0gbmV3IFNldChbCiAgICAg
InJnYiIsCiAgICAgInJnYmEiLAorICAgICJjb2xvciIsCiAgICAgImhzbCIsCiAgICAgImhzbGEi
LAogXSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382429</attachid>
            <date>2019-10-30 22:34:12 -0700</date>
            <delta_ts>2019-10-31 11:55:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>13264</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhOTEzMGU0MDg1My4uNDE1MzQ5YjY0NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxOS0xMC0zMCAgTmlraXRhIFZhc2lseWV2ICA8bnZhc2lseWV2QGFwcGxlLmNvbT4KKworICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBEaXNwbGF5IGNvbG9yIHN3YXRjaGVzIGZvciBwMyBjb2xvcnMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzQzOQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTY2MzcyNTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvbW9kZWwvY29sb3ItZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9tb2RlbC9jb2xvci5odG1sOgorCiAyMDE5LTEw
LTI2ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmZvcmNl
IHVzZXIgZ2VzdHVyZSBmb3IgZ2V0VXNlck1lZGlhIGluIGNhc2UgYSBwcmV2aW91cyBnZXRVc2Vy
TWVkaWEgY2FsbCB3YXMgZGVuaWVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
bW9kZWwvY29sb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL2Nv
bG9yLWV4cGVjdGVkLnR4dAppbmRleCA5OTliOGZiYmE3Ni4uYjc3Y2I3OTk4OGEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9jb2xvci1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL2NvbG9yLWV4cGVjdGVkLnR4dApAQCAtMzMxLDYg
KzMzMSwyOCBAQCBUZXN0cyBmb3IgdGhlIFdJLkNvbG9yIG1vZGVsIG9iamVjdC4KICJIU0xBKDEw
dHVybiAyMCUgMzAlIC8gNDAlKSIgcmVzb2x2ZXMgdG8gImhzbGEoMzYwLCAyMCUsIDMwJSwgMC40
KSIKICJoc2xhKCAxMHR1cm4gIDIwJSAgMzAlIC8gNDAlICkiIHJlc29sdmVzIHRvICJoc2xhKDM2
MCwgMjAlLCAzMCUsIDAuNCkiCiAiaHNsYSg5OTl0dXJuIDk5OSUgOTk5JSAvIDk5OSUpIiByZXNv
bHZlcyB0byAiaHNsYSgzNjAsIDEwMCUsIDEwMCUsIDEpIgorImNvbG9yKGRpc3BsYXktcDMgMCAx
IDAuNSkiIHJlc29sdmVzIHRvICJjb2xvcihkaXNwbGF5LXAzIDAgMSAwLjUpIgorIkNPTE9SKERJ
U1BMQVktUDMgMCAxIDAuNSkiIHJlc29sdmVzIHRvICJjb2xvcihkaXNwbGF5LXAzIDAgMSAwLjUp
IgorImNvbG9yKHNyZ2IgMC4xMjMgMC45OTkgMSkiIHJlc29sdmVzIHRvICJjb2xvcihzcmdiIDAu
MTIzIDAuOTk5IDEpIgorIkNPTE9SKFNSR0IgMC4xMjMgMC45OTkgMSkiIHJlc29sdmVzIHRvICJj
b2xvcihzcmdiIDAuMTIzIDAuOTk5IDEpIgorImNvbG9yKCBkaXNwbGF5LXAzIDAgMSAwLjUgKSIg
cmVzb2x2ZXMgdG8gImNvbG9yKGRpc3BsYXktcDMgMCAxIDAuNSkiCisiY29sb3IoZGlzcGxheS1w
MyA5OTkgOTk5IDk5OSkiIHJlc29sdmVzIHRvICJjb2xvcihkaXNwbGF5LXAzIDEgMSAxKSIKKyJj
b2xvcihzcmdiIDAuMTIzIDAuOTk5IDEvMC41KSIgcmVzb2x2ZXMgdG8gImNvbG9yKHNyZ2IgMC4x
MjMgMC45OTkgMSAvIDAuNSkiCisiQ09MT1IoU1JHQiAwLjEyMyAwLjk5OSAxLzAuNSkiIHJlc29s
dmVzIHRvICJjb2xvcihzcmdiIDAuMTIzIDAuOTk5IDEgLyAwLjUpIgorImNvbG9yKCBkaXNwbGF5
LXAzIDAgMSAwLjUvMC41KSIgcmVzb2x2ZXMgdG8gImNvbG9yKGRpc3BsYXktcDMgMCAxIDAuNSAv
IDAuNSkiCisiY29sb3IoZGlzcGxheS1wMyA5OTkgOTk5IDk5OS85OTkpIiByZXNvbHZlcyB0byAi
Y29sb3IoZGlzcGxheS1wMyAxIDEgMSkiCisiY29sb3Ioc3JnYiAwLjEyMyAwLjk5OSAxIC8gMC41
KSIgcmVzb2x2ZXMgdG8gImNvbG9yKHNyZ2IgMC4xMjMgMC45OTkgMSAvIDAuNSkiCisiQ09MT1Io
U1JHQiAwLjEyMyAwLjk5OSAxIC8gMC41KSIgcmVzb2x2ZXMgdG8gImNvbG9yKHNyZ2IgMC4xMjMg
MC45OTkgMSAvIDAuNSkiCisiY29sb3IoIGRpc3BsYXktcDMgMCAxIDAuNSAvIDAuNSkiIHJlc29s
dmVzIHRvICJjb2xvcihkaXNwbGF5LXAzIDAgMSAwLjUgLyAwLjUpIgorImNvbG9yKGRpc3BsYXkt
cDMgOTk5IDk5OSA5OTkgLyA5OTkpIiByZXNvbHZlcyB0byAiY29sb3IoZGlzcGxheS1wMyAxIDEg
MSkiCisiY29sb3Ioc3JnYiAwLjEyMyAwLjk5OSAxLzMzJSkiIHJlc29sdmVzIHRvICJjb2xvcihz
cmdiIDAuMTIzIDAuOTk5IDEgLyAwLjMzKSIKKyJDT0xPUihTUkdCIDAuMTIzIDAuOTk5IDEvMzMl
KSIgcmVzb2x2ZXMgdG8gImNvbG9yKHNyZ2IgMC4xMjMgMC45OTkgMSAvIDAuMzMpIgorImNvbG9y
KCBkaXNwbGF5LXAzIDAgMSAwLjUvMzMlKSIgcmVzb2x2ZXMgdG8gImNvbG9yKGRpc3BsYXktcDMg
MCAxIDAuNSAvIDAuMzMpIgorImNvbG9yKGRpc3BsYXktcDMgOTk5IDk5OSA5OTkvOTk5JSkiIHJl
c29sdmVzIHRvICJjb2xvcihkaXNwbGF5LXAzIDEgMSAxKSIKKyJjb2xvcihzcmdiIDAuMTIzIDAu
OTk5IDEgLyAzMyUpIiByZXNvbHZlcyB0byAiY29sb3Ioc3JnYiAwLjEyMyAwLjk5OSAxIC8gMC4z
MykiCisiQ09MT1IoU1JHQiAwLjEyMyAwLjk5OSAxIC8gMzMlKSIgcmVzb2x2ZXMgdG8gImNvbG9y
KHNyZ2IgMC4xMjMgMC45OTkgMSAvIDAuMzMpIgorImNvbG9yKCBkaXNwbGF5LXAzIDAgMSAwLjUg
LyAzMyUpIiByZXNvbHZlcyB0byAiY29sb3IoZGlzcGxheS1wMyAwIDEgMC41IC8gMC4zMykiCisi
Y29sb3IoZGlzcGxheS1wMyA5OTkgOTk5IDk5OSAvIDk5OSUpIiByZXNvbHZlcyB0byAiY29sb3Io
ZGlzcGxheS1wMyAxIDEgMSkiCiAKIFBBU1M6ICcgIzAwMCAnIHNob3VsZCBub3QgYmUgZGV0ZWN0
ZWQKIFBBU1M6ICcjcmdiJyBzaG91bGQgbm90IGJlIGRldGVjdGVkCkBAIC0zNDQsNiArMzY2LDgg
QEAgUEFTUzogJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC41LCAxKScgc2hvdWxkIG5vdCBiZSBkZXRl
Y3RlZAogUEFTUzogJ2hzbCgwLCAwJSwgNTAlLCAxLCAyKScgc2hvdWxkIG5vdCBiZSBkZXRlY3Rl
ZAogUEFTUzogJ2hzbGEoMCwgMCUsIDUwJSwgMSwgMiknIHNob3VsZCBub3QgYmUgZGV0ZWN0ZWQK
IFBBU1M6ICdzdXBlcmJsdWUnIHNob3VsZCBub3QgYmUgZGV0ZWN0ZWQKK1BBU1M6ICdjb2xvcihk
aXNwbGF5LXAzIDAgMSknIHNob3VsZCBub3QgYmUgZGV0ZWN0ZWQKK1BBU1M6ICdjb2xvcihkaXNw
bGF5LXAzIDAgMSAyIDQpJyBzaG91bGQgbm90IGJlIGRldGVjdGVkCiAKIC0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBXSS5Db2xvciBwcm9wZXJ0aWVzCiBQQVNTOiAncmVkJyBzaG91bGQgaGF2ZSBhbHBo
YSBvZiAxLgpAQCAtMzcwLDYgKzM5NCwxNCBAQCBQQVNTOiAnIzExMTIyMjMzJyBoYXMgaHNsYSBv
ZiBbMjM2LjQ3LCAzMy4zMywgMTAsIDAuMl0uCiBQQVNTOiAnIzExMTIyMjMzJyBzaG91bGQgbm90
IGJlIHNlcmlhbGl6YWJsZSBhcyBhIHNob3J0IEhleAogUEFTUzogJyMxMTIyMzM0NCcgc2hvdWxk
IGJlIHNlcmlhbGl6YWJsZSBhcyBhIHNob3J0IEhleAogUEFTUzogJyMxMTIyMzM0NScgc2hvdWxk
IG5vdCBiZSBzZXJpYWxpemFibGUgYXMgYSBzaG9ydCBIZXgKK1BBU1M6ICdjb2xvcihkaXNwbGF5
LXAzIDAgMSAwLjUpJyBjb2xvciBzaG91bGQgaGF2ZSBhIGRlZmF1bHQgYWxwaGEgb2YgMQorUEFT
UzogY29sb3IgZnVuY3Rpb24gaXMgbm90IGEga2V5d29yZAorUEFTUzogJ2NvbG9yKGRpc3BsYXkt
cDMgMCAxIDAuNSknIGhhcyByZ2Igb2YgWzAsIDEsIDAuNV0KK1BBU1M6ICdjb2xvcihkaXNwbGF5
LXAzIDAgMSAwLjUpJyBoYXMgcmdiYSBvZiBbMCwgMSwgMC41LCAxXQorUEFTUzogJ2NvbG9yKGRp
c3BsYXktcDMgMCAxIDAuNSAvIDAuMyknIHNob3VsZCBoYXZlIGFuIGFscGhhIG9mIDAuMworUEFT
UzogY29sb3IgZnVuY3Rpb24gaXMgbm90IGEga2V5d29yZAorUEFTUzogJ2NvbG9yKGRpc3BsYXkt
cDMgMCAxIDAuNSAvIDAuMyknIGhhcyByZ2Igb2YgWzAsIDEsIDAuNV0KK1BBU1M6ICdjb2xvcihk
aXNwbGF5LXAzIDAgMSAwLjUgLyAwLjMpJyBoYXMgcmdiYSBvZiBbMCwgMSwgMC41LCAwLjNdCiAK
IC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5Db2xvciBmcm9tIGNvbXBvbmVudHMKIENoZWNrIGNv
bXBvbmVudHMgZm9yIGNvbG9yICdyZ2IoMjU1LCAwLCAwKScuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvbW9kZWwvY29sb3IuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9t
b2RlbC9jb2xvci5odG1sCmluZGV4IDZiMjlkMjBhYzI0Li5mOWQyOTllMmFiNyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL2NvbG9yLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL21vZGVsL2NvbG9yLmh0bWwKQEAgLTI3LDYgKzI3LDggQEAgZnVuY3Rpb24g
dGVzdCgpCiAgICAgICAgICAgICByZXR1cm4gIkhTTCI7CiAgICAgICAgIGNhc2UgV0kuQ29sb3Iu
Rm9ybWF0LkhTTEE6CiAgICAgICAgICAgICByZXR1cm4gIkhTTEEiOworICAgICAgICBjYXNlIFdJ
LkNvbG9yLkZvcm1hdC5GdW5jdGlvbjoKKyAgICAgICAgICAgIHJldHVybiAiRnVuY3Rpb24iOwog
ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuICJVbmV4cGVjdGVkIGZvcm1hdCI7
CiAgICAgICAgIH0KQEAgLTIyNCw2ICsyMjYsMzQgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAg
ICAgICAgICAgdGVzdEdvb2QoYGhzbGEoOTk5JHt1bml0fSA5OTklIDk5OSUgLyA5OTklKWAsIFdJ
LkNvbG9yLkZvcm1hdC5IU0xBKTsKICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgdGVzdEdv
b2QoImNvbG9yKGRpc3BsYXktcDMgMCAxIDAuNSkiLCBXSS5Db2xvci5Gb3JtYXQuRnVuY3Rpb24p
OworICAgICAgICAgICAgdGVzdEdvb2QoIkNPTE9SKERJU1BMQVktUDMgMCAxIDAuNSkiLCBXSS5D
b2xvci5Gb3JtYXQuRnVuY3Rpb24pOworCisgICAgICAgICAgICB0ZXN0R29vZCgiY29sb3Ioc3Jn
YiAwLjEyMyAwLjk5OSAxKSIsIFdJLkNvbG9yLkZvcm1hdC5GdW5jdGlvbik7CisgICAgICAgICAg
ICB0ZXN0R29vZCgiQ09MT1IoU1JHQiAwLjEyMyAwLjk5OSAxKSIsIFdJLkNvbG9yLkZvcm1hdC5G
dW5jdGlvbik7CisgICAgICAgICAgICB0ZXN0R29vZCgiY29sb3IoIGRpc3BsYXktcDMgMCAxIDAu
NSApIiwgV0kuQ29sb3IuRm9ybWF0LkZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJj
b2xvcihkaXNwbGF5LXAzIDk5OSA5OTkgOTk5KSIsIFdJLkNvbG9yLkZvcm1hdC5GdW5jdGlvbik7
CisKKyAgICAgICAgICAgIHRlc3RHb29kKCJjb2xvcihzcmdiIDAuMTIzIDAuOTk5IDEvMC41KSIs
IFdJLkNvbG9yLkZvcm1hdC5GdW5jdGlvbik7CisgICAgICAgICAgICB0ZXN0R29vZCgiQ09MT1Io
U1JHQiAwLjEyMyAwLjk5OSAxLzAuNSkiLCBXSS5Db2xvci5Gb3JtYXQuRnVuY3Rpb24pOworICAg
ICAgICAgICAgdGVzdEdvb2QoImNvbG9yKCBkaXNwbGF5LXAzIDAgMSAwLjUvMC41KSIsIFdJLkNv
bG9yLkZvcm1hdC5GdW5jdGlvbik7CisgICAgICAgICAgICB0ZXN0R29vZCgiY29sb3IoZGlzcGxh
eS1wMyA5OTkgOTk5IDk5OS85OTkpIiwgV0kuQ29sb3IuRm9ybWF0LkZ1bmN0aW9uKTsKKworICAg
ICAgICAgICAgdGVzdEdvb2QoImNvbG9yKHNyZ2IgMC4xMjMgMC45OTkgMSAvIDAuNSkiLCBXSS5D
b2xvci5Gb3JtYXQuRnVuY3Rpb24pOworICAgICAgICAgICAgdGVzdEdvb2QoIkNPTE9SKFNSR0Ig
MC4xMjMgMC45OTkgMSAvIDAuNSkiLCBXSS5Db2xvci5Gb3JtYXQuRnVuY3Rpb24pOworICAgICAg
ICAgICAgdGVzdEdvb2QoImNvbG9yKCBkaXNwbGF5LXAzIDAgMSAwLjUgLyAwLjUpIiwgV0kuQ29s
b3IuRm9ybWF0LkZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJjb2xvcihkaXNwbGF5
LXAzIDk5OSA5OTkgOTk5IC8gOTk5KSIsIFdJLkNvbG9yLkZvcm1hdC5GdW5jdGlvbik7CisKKyAg
ICAgICAgICAgIHRlc3RHb29kKCJjb2xvcihzcmdiIDAuMTIzIDAuOTk5IDEvMzMlKSIsIFdJLkNv
bG9yLkZvcm1hdC5GdW5jdGlvbik7CisgICAgICAgICAgICB0ZXN0R29vZCgiQ09MT1IoU1JHQiAw
LjEyMyAwLjk5OSAxLzMzJSkiLCBXSS5Db2xvci5Gb3JtYXQuRnVuY3Rpb24pOworICAgICAgICAg
ICAgdGVzdEdvb2QoImNvbG9yKCBkaXNwbGF5LXAzIDAgMSAwLjUvMzMlKSIsIFdJLkNvbG9yLkZv
cm1hdC5GdW5jdGlvbik7CisgICAgICAgICAgICB0ZXN0R29vZCgiY29sb3IoZGlzcGxheS1wMyA5
OTkgOTk5IDk5OS85OTklKSIsIFdJLkNvbG9yLkZvcm1hdC5GdW5jdGlvbik7CisKKyAgICAgICAg
ICAgIHRlc3RHb29kKCJjb2xvcihzcmdiIDAuMTIzIDAuOTk5IDEgLyAzMyUpIiwgV0kuQ29sb3Iu
Rm9ybWF0LkZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJDT0xPUihTUkdCIDAuMTIz
IDAuOTk5IDEgLyAzMyUpIiwgV0kuQ29sb3IuRm9ybWF0LkZ1bmN0aW9uKTsKKyAgICAgICAgICAg
IHRlc3RHb29kKCJjb2xvciggZGlzcGxheS1wMyAwIDEgMC41IC8gMzMlKSIsIFdJLkNvbG9yLkZv
cm1hdC5GdW5jdGlvbik7CisgICAgICAgICAgICB0ZXN0R29vZCgiY29sb3IoZGlzcGxheS1wMyA5
OTkgOTk5IDk5OSAvIDk5OSUpIiwgV0kuQ29sb3IuRm9ybWF0LkZ1bmN0aW9uKTsKKwogICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiIpOwogCiAgICAgICAgICAgICB0ZXN0QmFkKCIgIzAw
MCAiKTsgLy8gd2hpdGVzcGFjZQpAQCAtMjM4LDYgKzI2OCw4IEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgICAgICAgICAgdGVzdEJhZCgiaHNsKDAsIDAlLCA1MCUsIDEsIDIpIik7IC8vIGV4dHJhIHZh
bHVlCiAgICAgICAgICAgICB0ZXN0QmFkKCJoc2xhKDAsIDAlLCA1MCUsIDEsIDIpIik7IC8vIGV4
dHJhIHZhbHVlcwogICAgICAgICAgICAgdGVzdEJhZCgic3VwZXJibHVlIik7IC8vIG5vdCBhIGtl
eXdvcmQKKyAgICAgICAgICAgIHRlc3RCYWQoImNvbG9yKGRpc3BsYXktcDMgMCAxKSIpOyAvLyAy
CisgICAgICAgICAgICB0ZXN0QmFkKCJjb2xvcihkaXNwbGF5LXAzIDAgMSAyIDQpIik7IC8vIG1p
c3Npbmcgc2xhc2ggYmVmb3JlIGFscGhhCiAKICAgICAgICAgICAgIC8vIEZJWE1FOiBjdXJyZW50
Q29sb3I/CiAgICAgICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIGNvbnNpZGVyIG1pc3Npbmcg
JXMgYXMgYmFkPyBDdXJyZW50bHkgd2UganVzdCBzdHJpcCB0aGVtLgpAQCAtMjg4LDYgKzMyMCwx
OCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIGNvbG9yID0gV0kuQ29sb3IuZnJvbVN0
cmluZygiIzExMjIzMzQ1Iik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
Y29sb3IuY2FuQmVTZXJpYWxpemVkQXNTaG9ydEhFWCgpID09PSBmYWxzZSwgIicjMTEyMjMzNDUn
IHNob3VsZCBub3QgYmUgc2VyaWFsaXphYmxlIGFzIGEgc2hvcnQgSGV4Iik7CiAKKyAgICAgICAg
ICAgIGNvbG9yID0gV0kuQ29sb3IuZnJvbVN0cmluZygiY29sb3IoZGlzcGxheS1wMyAwIDEgMC41
KSIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGNvbG9yLmFscGhhID09
PSAxLCAiJ2NvbG9yKGRpc3BsYXktcDMgMCAxIDAuNSknIGNvbG9yIHNob3VsZCBoYXZlIGEgZGVm
YXVsdCBhbHBoYSBvZiAxIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
Y29sb3IuaXNLZXl3b3JkKCkgPT09IGZhbHNlLCAiY29sb3IgZnVuY3Rpb24gaXMgbm90IGEga2V5
d29yZCIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RTaGFsbG93RXF1YWwoY29s
b3IucmdiLCBbMCwgMSwgMC41XSwgIidjb2xvcihkaXNwbGF5LXAzIDAgMSAwLjUpJyBoYXMgcmdi
IG9mIFswLCAxLCAwLjVdIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFNoYWxs
b3dFcXVhbChjb2xvci5yZ2JhLCBbMCwgMSwgMC41LCAxXSwgIidjb2xvcihkaXNwbGF5LXAzIDAg
MSAwLjUpJyBoYXMgcmdiYSBvZiBbMCwgMSwgMC41LCAxXSIpOworCisgICAgICAgICAgICBjb2xv
ciA9IFdJLkNvbG9yLmZyb21TdHJpbmcoImNvbG9yKGRpc3BsYXktcDMgMCAxIDAuNSAvIDAuMyki
KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChjb2xvci5hbHBoYSA9PT0g
MC4zLCAiJ2NvbG9yKGRpc3BsYXktcDMgMCAxIDAuNSAvIDAuMyknIHNob3VsZCBoYXZlIGFuIGFs
cGhhIG9mIDAuMyIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGNvbG9y
LmlzS2V5d29yZCgpID09PSBmYWxzZSwgImNvbG9yIGZ1bmN0aW9uIGlzIG5vdCBhIGtleXdvcmQi
KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0U2hhbGxvd0VxdWFsKGNvbG9yLnJn
YiwgWzAsIDEsIDAuNV0sICInY29sb3IoZGlzcGxheS1wMyAwIDEgMC41IC8gMC4zKScgaGFzIHJn
YiBvZiBbMCwgMSwgMC41XSIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RTaGFs
bG93RXF1YWwoY29sb3IucmdiYSwgWzAsIDEsIDAuNSwgMC4zXSwgIidjb2xvcihkaXNwbGF5LXAz
IDAgMSAwLjUgLyAwLjMpJyBoYXMgcmdiYSBvZiBbMCwgMSwgMC41LCAwLjNdIik7CisKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5n
ZUxvZwppbmRleCA3MzM0ZGJiZDlhMi4uMmEwZDA4ZTA5NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE5LTEwLTMwICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFz
aWx5ZXZAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IERpc3BsYXkgY29sb3Ig
c3dhdGNoZXMgZm9yIHAzIGNvbG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAzNDM5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NjYzNzI1MD4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEZXRlY3Qg
YGNvbG9yKGRpc3BsYXktcDMgMCAxIDApYCBhcyBhIGNvbG9yIGluIHRoZSBzdHlsZSBlZGl0b3Iu
CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9Db2xvci5qczoKKyAgICAgICAgKFdJ
LkNvbG9yKToKKyAgICAgICAgKFdJLkNvbG9yLmZyb21TdHJpbmcubWF0Y2guZ3JvdXBzLmNvbG9y
LnBhcnNlRnVuY3Rpb25Db21wb25lbnQpOgorICAgICAgICAoV0kuQ29sb3IuZnJvbVN0cmluZyk6
CisgICAgICAgIChXSS5Db2xvci5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoV0kuQ29s
b3IucHJvdG90eXBlLmlzS2V5d29yZCk6CisgICAgICAgIChXSS5Db2xvci5wcm90b3R5cGUuX3Rv
RnVuY3Rpb25TdHJpbmcpOgorCiAyMDE5LTEwLTI1ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFw
cGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBTdHlsZXM6IHVuLWV4cGVyaW1lbnRh
bGl6ZSBzaG93aW5nIHJ1bGUgaWNvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9Db2xvci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9Db2xvci5qcwppbmRleCBiNjZmMWE2ZjljMy4uMzAxMjVkMGNi
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9Db2xvci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvQ29sb3IuanMKQEAgLTI5LDcgKzI5LDcgQEAKIAogV0kuQ29sb3IgPSBjbGFzcyBDb2xvcgog
ewotICAgIGNvbnN0cnVjdG9yKGZvcm1hdCwgY29tcG9uZW50cykKKyAgICBjb25zdHJ1Y3Rvcihm
b3JtYXQsIGNvbXBvbmVudHMsIGdhbXV0ID0gInNyZ2IiKQogICAgIHsKICAgICAgICAgdGhpcy5m
b3JtYXQgPSBmb3JtYXQ7CiAKQEAgLTQxLDYgKzQxLDcgQEAgV0kuQ29sb3IgPSBjbGFzcyBDb2xv
cgogICAgICAgICBlbHNlCiAgICAgICAgICAgICB0aGlzLl9yZ2JhID0gY29tcG9uZW50czsKIAor
ICAgICAgICB0aGlzLmdhbXV0ID0gZ2FtdXQ7CiAgICAgICAgIHRoaXMudmFsaWQgPSAhY29tcG9u
ZW50cy5zb21lKGlzTmFOKTsKICAgICB9CiAKQEAgLTQ4LDcgKzQ5LDcgQEAgV0kuQ29sb3IgPSBj
bGFzcyBDb2xvcgogCiAgICAgc3RhdGljIGZyb21TdHJpbmcoY29sb3JTdHJpbmcpCiAgICAgewot
ICAgICAgICBjb25zdCBtYXRjaFJlZ0V4cCA9IC9eKD86Iyg/PGhleD5bMC05YS1mXXszLDh9KXxy
Z2JhP1woKD88cmdiPlteKV0rKVwpfCg/PGtleXdvcmQ+XHcrKXxoc2xhP1woKD88aHNsPlteKV0r
KVwpKSQvaTsKKyAgICAgICAgY29uc3QgbWF0Y2hSZWdFeHAgPSAvXig/OiMoPzxoZXg+WzAtOWEt
Zl17Myw4fSl8cmdiYT9cKCg/PHJnYj5bXildKylcKXwoPzxrZXl3b3JkPlx3Kyl8Y29sb3JcKCg/
PGNvbG9yPlteKV0rKVwpfGhzbGE/XCgoPzxoc2w+W14pXSspXCkpJC9pOwogICAgICAgICBsZXQg
bWF0Y2ggPSBjb2xvclN0cmluZy5tYXRjaChtYXRjaFJlZ0V4cCk7CiAgICAgICAgIGlmICghbWF0
Y2gpCiAgICAgICAgICAgICByZXR1cm4gbnVsbDsKQEAgLTE3MCw2ICsxNzEsMzUgQEAgV0kuQ29s
b3IgPSBjbGFzcyBDb2xvcgogICAgICAgICAgICAgXSk7CiAgICAgICAgIH0KIAorICAgICAgICBp
ZiAobWF0Y2guZ3JvdXBzLmNvbG9yKSB7CisgICAgICAgICAgICBsZXQgY29sb3JTdHJpbmcgPSBt
YXRjaC5ncm91cHMuY29sb3IudHJpbSgpOworCisgICAgICAgICAgICBsZXQgYWxwaGEgPSAxOwor
ICAgICAgICAgICAgbGV0IGFscGhhTWF0Y2ggPSBjb2xvclN0cmluZy5tYXRjaCgvXHM/Wy9dXHM/
KFswLTklLl0rKSQvKTsKKyAgICAgICAgICAgIGlmIChhbHBoYU1hdGNoICYmIGFscGhhTWF0Y2hb
MV0pIHsKKyAgICAgICAgICAgICAgICBhbHBoYSA9IHBhcnNlRnVuY3Rpb25BbHBoYShhbHBoYU1h
dGNoWzFdKTsKKyAgICAgICAgICAgICAgICBjb2xvclN0cmluZyA9IGNvbG9yU3RyaW5nLnNsaWNl
KDAsIC1hbHBoYU1hdGNoWzBdLmxlbmd0aCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGxldCBjb21wb25lbnRzID0gY29sb3JTdHJpbmcuc3BsaXQoL1xzLyk7CisgICAgICAgICAgICBs
ZXQgZ2FtdXQgPSBjb21wb25lbnRzWzBdLnRvTG93ZXJDYXNlKCk7CisKKyAgICAgICAgICAgIGlm
IChjb21wb25lbnRzLmxlbmd0aCAhPT0gNCkKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsK
KworICAgICAgICAgICAgZnVuY3Rpb24gcGFyc2VGdW5jdGlvbkNvbXBvbmVudChjb21wb25lbnQp
IHsKKyAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBwYXJzZUZsb2F0KGNvbXBvbmVudCk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIE51bWJlci5jb25zdHJhaW4odmFsdWUsIDAsIDEpOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gbmV3IFdJLkNvbG9yKFdJLkNvbG9yLkZv
cm1hdC5GdW5jdGlvbiwgWworICAgICAgICAgICAgICAgIHBhcnNlRnVuY3Rpb25Db21wb25lbnQo
Y29tcG9uZW50c1sxXSksCisgICAgICAgICAgICAgICAgcGFyc2VGdW5jdGlvbkNvbXBvbmVudChj
b21wb25lbnRzWzJdKSwKKyAgICAgICAgICAgICAgICBwYXJzZUZ1bmN0aW9uQ29tcG9uZW50KGNv
bXBvbmVudHNbM10pLAorICAgICAgICAgICAgICAgIGFscGhhLAorICAgICAgICAgICAgXSwgZ2Ft
dXQpOworICAgICAgICB9CisKICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgfQogCkBAIC0zODgs
NiArNDE4LDggQEAgV0kuQ29sb3IgPSBjbGFzcyBDb2xvcgogICAgICAgICAgICAgcmV0dXJuIHRo
aXMuX3RvUkdCU3RyaW5nKCk7CiAgICAgICAgIGNhc2UgV0kuQ29sb3IuRm9ybWF0LlJHQkE6CiAg
ICAgICAgICAgICByZXR1cm4gdGhpcy5fdG9SR0JBU3RyaW5nKCk7CisgICAgICAgIGNhc2UgV0ku
Q29sb3IuRm9ybWF0LkZ1bmN0aW9uOgorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RvRnVuY3Rp
b25TdHJpbmcoKTsKICAgICAgICAgY2FzZSBXSS5Db2xvci5Gb3JtYXQuSFNMOgogICAgICAgICAg
ICAgcmV0dXJuIHRoaXMuX3RvSFNMU3RyaW5nKCk7CiAgICAgICAgIGNhc2UgV0kuQ29sb3IuRm9y
bWF0LkhTTEE6CkBAIC00MTMsNiArNDQ1LDkgQEAgV0kuQ29sb3IgPSBjbGFzcyBDb2xvcgogICAg
ICAgICBpZiAodGhpcy5rZXl3b3JkKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKKyAgICAg
ICAgaWYgKHRoaXMuZ2FtdXQgIT09ICJzcmdiIikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KwogICAgICAgICBpZiAoIXRoaXMuc2ltcGxlKQogICAgICAgICAgICAgcmV0dXJuIEFycmF5LnNo
YWxsb3dFcXVhbCh0aGlzLl9yZ2JhLCBbMCwgMCwgMCwgMF0pIHx8IEFycmF5LnNoYWxsb3dFcXVh
bCh0aGlzLl9oc2xhLCBbMCwgMCwgMCwgMF0pOwogCkBAIC01NTAsNiArNTg1LDE1IEBAIFdJLkNv
bG9yID0gY2xhc3MgQ29sb3IKICAgICAgICAgcmV0dXJuIGByZ2JhKCR7cn0sICR7Z30sICR7Yn0s
ICR7dGhpcy5hbHBoYX0pYDsKICAgICB9CiAKKyAgICBfdG9GdW5jdGlvblN0cmluZygpCisgICAg
eworICAgICAgICBsZXQgW3IsIGcsIGIsIGFscGhhXSA9IHRoaXMuX3JnYmE7CisgICAgICAgIGlm
IChhbHBoYSA9PT0gMSkKKyAgICAgICAgICAgIHJldHVybiBgY29sb3IoJHt0aGlzLmdhbXV0fSAk
e3J9ICR7Z30gJHtifSlgOworCisgICAgICAgIHJldHVybiBgY29sb3IoJHt0aGlzLmdhbXV0fSAk
e3J9ICR7Z30gJHtifSAvICR7YWxwaGF9KWA7CisgICAgfQorCiAgICAgX3RvSFNMU3RyaW5nKCkK
ICAgICB7CiAgICAgICAgIGlmICghdGhpcy5zaW1wbGUpCkBAIC02MDIsMTIgKzY0NiwxNCBAQCBX
SS5Db2xvci5Gb3JtYXQgPSB7CiAgICAgUkdCOiAiY29sb3ItZm9ybWF0LXJnYiIsCiAgICAgUkdC
QTogImNvbG9yLWZvcm1hdC1yZ2JhIiwKICAgICBIU0w6ICJjb2xvci1mb3JtYXQtaHNsIiwKLSAg
ICBIU0xBOiAiY29sb3ItZm9ybWF0LWhzbGEiCisgICAgSFNMQTogImNvbG9yLWZvcm1hdC1oc2xh
IiwKKyAgICBGdW5jdGlvbjogImNvbG9yLWZvcm1hdC1mdW5jdGlvbiIsCiB9OwogCiBXSS5Db2xv
ci5GdW5jdGlvbk5hbWVzID0gbmV3IFNldChbCiAgICAgInJnYiIsCiAgICAgInJnYmEiLAorICAg
ICJjb2xvciIsCiAgICAgImhzbCIsCiAgICAgImhzbGEiLAogXSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382484</attachid>
            <date>2019-10-31 11:55:20 -0700</date>
            <delta_ts>2019-10-31 16:30:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>13198</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhOTEzMGU0MDg1My4uNDE1MzQ5YjY0NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxOS0xMC0zMCAgTmlraXRhIFZhc2lseWV2ICA8bnZhc2lseWV2QGFwcGxlLmNvbT4KKworICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBEaXNwbGF5IGNvbG9yIHN3YXRjaGVzIGZvciBwMyBjb2xvcnMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzQzOQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTY2MzcyNTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvbW9kZWwvY29sb3ItZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9tb2RlbC9jb2xvci5odG1sOgorCiAyMDE5LTEw
LTI2ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmZvcmNl
IHVzZXIgZ2VzdHVyZSBmb3IgZ2V0VXNlck1lZGlhIGluIGNhc2UgYSBwcmV2aW91cyBnZXRVc2Vy
TWVkaWEgY2FsbCB3YXMgZGVuaWVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
bW9kZWwvY29sb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL2Nv
bG9yLWV4cGVjdGVkLnR4dAppbmRleCA5OTliOGZiYmE3Ni4uNTcyODlkMGQzYjcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9jb2xvci1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL2NvbG9yLWV4cGVjdGVkLnR4dApAQCAtMzMxLDYg
KzMzMSwyOCBAQCBUZXN0cyBmb3IgdGhlIFdJLkNvbG9yIG1vZGVsIG9iamVjdC4KICJIU0xBKDEw
dHVybiAyMCUgMzAlIC8gNDAlKSIgcmVzb2x2ZXMgdG8gImhzbGEoMzYwLCAyMCUsIDMwJSwgMC40
KSIKICJoc2xhKCAxMHR1cm4gIDIwJSAgMzAlIC8gNDAlICkiIHJlc29sdmVzIHRvICJoc2xhKDM2
MCwgMjAlLCAzMCUsIDAuNCkiCiAiaHNsYSg5OTl0dXJuIDk5OSUgOTk5JSAvIDk5OSUpIiByZXNv
bHZlcyB0byAiaHNsYSgzNjAsIDEwMCUsIDEwMCUsIDEpIgorImNvbG9yKGRpc3BsYXktcDMgMCAx
IDAuNSkiIHJlc29sdmVzIHRvICJjb2xvcihkaXNwbGF5LXAzIDAgMSAwLjUpIgorIkNPTE9SKERJ
U1BMQVktUDMgMCAxIDAuNSkiIHJlc29sdmVzIHRvICJjb2xvcihkaXNwbGF5LXAzIDAgMSAwLjUp
IgorImNvbG9yKHNyZ2IgMC4xMjMgMC45OTkgMSkiIHJlc29sdmVzIHRvICJjb2xvcihzcmdiIDAu
MTIzIDAuOTk5IDEpIgorIkNPTE9SKFNSR0IgMC4xMjMgMC45OTkgMSkiIHJlc29sdmVzIHRvICJj
b2xvcihzcmdiIDAuMTIzIDAuOTk5IDEpIgorImNvbG9yKCBkaXNwbGF5LXAzIDAgMSAwLjUgKSIg
cmVzb2x2ZXMgdG8gImNvbG9yKGRpc3BsYXktcDMgMCAxIDAuNSkiCisiY29sb3IoZGlzcGxheS1w
MyA5OTkgOTk5IDk5OSkiIHJlc29sdmVzIHRvICJjb2xvcihkaXNwbGF5LXAzIDEgMSAxKSIKKyJj
b2xvcihzcmdiIDAuMTIzIDAuOTk5IDEvMC41KSIgcmVzb2x2ZXMgdG8gImNvbG9yKHNyZ2IgMC4x
MjMgMC45OTkgMSAvIDAuNSkiCisiQ09MT1IoU1JHQiAwLjEyMyAwLjk5OSAxLzAuNSkiIHJlc29s
dmVzIHRvICJjb2xvcihzcmdiIDAuMTIzIDAuOTk5IDEgLyAwLjUpIgorImNvbG9yKCBkaXNwbGF5
LXAzIDAgMSAwLjUvMC41KSIgcmVzb2x2ZXMgdG8gImNvbG9yKGRpc3BsYXktcDMgMCAxIDAuNSAv
IDAuNSkiCisiY29sb3IoZGlzcGxheS1wMyA5OTkgOTk5IDk5OS85OTkpIiByZXNvbHZlcyB0byAi
Y29sb3IoZGlzcGxheS1wMyAxIDEgMSkiCisiY29sb3Ioc3JnYiAwLjEyMyAwLjk5OSAxIC8gMC41
KSIgcmVzb2x2ZXMgdG8gImNvbG9yKHNyZ2IgMC4xMjMgMC45OTkgMSAvIDAuNSkiCisiQ09MT1Io
U1JHQiAwLjEyMyAwLjk5OSAxIC8gMC41KSIgcmVzb2x2ZXMgdG8gImNvbG9yKHNyZ2IgMC4xMjMg
MC45OTkgMSAvIDAuNSkiCisiY29sb3IoIGRpc3BsYXktcDMgMCAxIDAuNSAvIDAuNSkiIHJlc29s
dmVzIHRvICJjb2xvcihkaXNwbGF5LXAzIDAgMSAwLjUgLyAwLjUpIgorImNvbG9yKGRpc3BsYXkt
cDMgOTk5IDk5OSA5OTkgLyA5OTkpIiByZXNvbHZlcyB0byAiY29sb3IoZGlzcGxheS1wMyAxIDEg
MSkiCisiY29sb3Ioc3JnYiAwLjEyMyAwLjk5OSAxLzMzJSkiIHJlc29sdmVzIHRvICJjb2xvcihz
cmdiIDAuMTIzIDAuOTk5IDEgLyAwLjMzKSIKKyJDT0xPUihTUkdCIDAuMTIzIDAuOTk5IDEvMzMl
KSIgcmVzb2x2ZXMgdG8gImNvbG9yKHNyZ2IgMC4xMjMgMC45OTkgMSAvIDAuMzMpIgorImNvbG9y
KCBkaXNwbGF5LXAzIDAgMSAwLjUvMzMlKSIgcmVzb2x2ZXMgdG8gImNvbG9yKGRpc3BsYXktcDMg
MCAxIDAuNSAvIDAuMzMpIgorImNvbG9yKGRpc3BsYXktcDMgOTk5IDk5OSA5OTkvOTk5JSkiIHJl
c29sdmVzIHRvICJjb2xvcihkaXNwbGF5LXAzIDEgMSAxKSIKKyJjb2xvcihzcmdiIDAuMTIzIDAu
OTk5IDEgLyAzMyUpIiByZXNvbHZlcyB0byAiY29sb3Ioc3JnYiAwLjEyMyAwLjk5OSAxIC8gMC4z
MykiCisiQ09MT1IoU1JHQiAwLjEyMyAwLjk5OSAxIC8gMzMlKSIgcmVzb2x2ZXMgdG8gImNvbG9y
KHNyZ2IgMC4xMjMgMC45OTkgMSAvIDAuMzMpIgorImNvbG9yKCBkaXNwbGF5LXAzIDAgMSAwLjUg
LyAzMyUpIiByZXNvbHZlcyB0byAiY29sb3IoZGlzcGxheS1wMyAwIDEgMC41IC8gMC4zMykiCisi
Y29sb3IoZGlzcGxheS1wMyA5OTkgOTk5IDk5OSAvIDk5OSUpIiByZXNvbHZlcyB0byAiY29sb3Io
ZGlzcGxheS1wMyAxIDEgMSkiCiAKIFBBU1M6ICcgIzAwMCAnIHNob3VsZCBub3QgYmUgZGV0ZWN0
ZWQKIFBBU1M6ICcjcmdiJyBzaG91bGQgbm90IGJlIGRldGVjdGVkCkBAIC0zNDQsNiArMzY2LDgg
QEAgUEFTUzogJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC41LCAxKScgc2hvdWxkIG5vdCBiZSBkZXRl
Y3RlZAogUEFTUzogJ2hzbCgwLCAwJSwgNTAlLCAxLCAyKScgc2hvdWxkIG5vdCBiZSBkZXRlY3Rl
ZAogUEFTUzogJ2hzbGEoMCwgMCUsIDUwJSwgMSwgMiknIHNob3VsZCBub3QgYmUgZGV0ZWN0ZWQK
IFBBU1M6ICdzdXBlcmJsdWUnIHNob3VsZCBub3QgYmUgZGV0ZWN0ZWQKK1BBU1M6ICdjb2xvcihk
aXNwbGF5LXAzIDAgMSknIHNob3VsZCBub3QgYmUgZGV0ZWN0ZWQKK1BBU1M6ICdjb2xvcihkaXNw
bGF5LXAzIDAgMSAyIDQgNSknIHNob3VsZCBub3QgYmUgZGV0ZWN0ZWQKIAogLS0gUnVubmluZyB0
ZXN0IGNhc2U6IFdJLkNvbG9yIHByb3BlcnRpZXMKIFBBU1M6ICdyZWQnIHNob3VsZCBoYXZlIGFs
cGhhIG9mIDEuCkBAIC0zNzAsNiArMzk0LDE0IEBAIFBBU1M6ICcjMTExMjIyMzMnIGhhcyBoc2xh
IG9mIFsyMzYuNDcsIDMzLjMzLCAxMCwgMC4yXS4KIFBBU1M6ICcjMTExMjIyMzMnIHNob3VsZCBu
b3QgYmUgc2VyaWFsaXphYmxlIGFzIGEgc2hvcnQgSGV4CiBQQVNTOiAnIzExMjIzMzQ0JyBzaG91
bGQgYmUgc2VyaWFsaXphYmxlIGFzIGEgc2hvcnQgSGV4CiBQQVNTOiAnIzExMjIzMzQ1JyBzaG91
bGQgbm90IGJlIHNlcmlhbGl6YWJsZSBhcyBhIHNob3J0IEhleAorUEFTUzogJ2NvbG9yKGRpc3Bs
YXktcDMgMCAxIDAuNSknIGNvbG9yIHNob3VsZCBoYXZlIGEgZGVmYXVsdCBhbHBoYSBvZiAxCitQ
QVNTOiBjb2xvciBmdW5jdGlvbiBpcyBub3QgYSBrZXl3b3JkCitQQVNTOiAnY29sb3IoZGlzcGxh
eS1wMyAwIDEgMC41KScgaGFzIHJnYiBvZiBbMCwgMSwgMC41XQorUEFTUzogJ2NvbG9yKGRpc3Bs
YXktcDMgMCAxIDAuNSknIGhhcyByZ2JhIG9mIFswLCAxLCAwLjUsIDFdCitQQVNTOiAnY29sb3Io
ZGlzcGxheS1wMyAwIDEgMC41IC8gMC4zKScgc2hvdWxkIGhhdmUgYW4gYWxwaGEgb2YgMC4zCitQ
QVNTOiBjb2xvciBmdW5jdGlvbiBpcyBub3QgYSBrZXl3b3JkCitQQVNTOiAnY29sb3IoZGlzcGxh
eS1wMyAwIDEgMC41IC8gMC4zKScgaGFzIHJnYiBvZiBbMCwgMSwgMC41XQorUEFTUzogJ2NvbG9y
KGRpc3BsYXktcDMgMCAxIDAuNSAvIDAuMyknIGhhcyByZ2JhIG9mIFswLCAxLCAwLjUsIDAuM10K
IAogLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLkNvbG9yIGZyb20gY29tcG9uZW50cwogQ2hlY2sg
Y29tcG9uZW50cyBmb3IgY29sb3IgJ3JnYigyNTUsIDAsIDApJy4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9jb2xvci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L21vZGVsL2NvbG9yLmh0bWwKaW5kZXggNmIyOWQyMGFjMjQuLmMyNzIzYmY0NTgxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvY29sb3IuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvbW9kZWwvY29sb3IuaHRtbApAQCAtMjcsNiArMjcsOCBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICAgICAgICAgIHJldHVybiAiSFNMIjsKICAgICAgICAgY2FzZSBXSS5Db2xv
ci5Gb3JtYXQuSFNMQToKICAgICAgICAgICAgIHJldHVybiAiSFNMQSI7CisgICAgICAgIGNhc2Ug
V0kuQ29sb3IuRm9ybWF0LkZ1bmN0aW9uOgorICAgICAgICAgICAgcmV0dXJuICJGdW5jdGlvbiI7
CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gIlVuZXhwZWN0ZWQgZm9ybWF0
IjsKICAgICAgICAgfQpAQCAtMjI0LDYgKzIyNiwzNCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAg
ICAgICAgICAgICB0ZXN0R29vZChgaHNsYSg5OTkke3VuaXR9IDk5OSUgOTk5JSAvIDk5OSUpYCwg
V0kuQ29sb3IuRm9ybWF0LkhTTEEpOwogICAgICAgICAgICAgfQogCisgICAgICAgICAgICB0ZXN0
R29vZCgiY29sb3IoZGlzcGxheS1wMyAwIDEgMC41KSIsIFdJLkNvbG9yLkZvcm1hdC5GdW5jdGlv
bik7CisgICAgICAgICAgICB0ZXN0R29vZCgiQ09MT1IoRElTUExBWS1QMyAwIDEgMC41KSIsIFdJ
LkNvbG9yLkZvcm1hdC5GdW5jdGlvbik7CisKKyAgICAgICAgICAgIHRlc3RHb29kKCJjb2xvcihz
cmdiIDAuMTIzIDAuOTk5IDEpIiwgV0kuQ29sb3IuRm9ybWF0LkZ1bmN0aW9uKTsKKyAgICAgICAg
ICAgIHRlc3RHb29kKCJDT0xPUihTUkdCIDAuMTIzIDAuOTk5IDEpIiwgV0kuQ29sb3IuRm9ybWF0
LkZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJjb2xvciggZGlzcGxheS1wMyAwIDEg
MC41ICkiLCBXSS5Db2xvci5Gb3JtYXQuRnVuY3Rpb24pOworICAgICAgICAgICAgdGVzdEdvb2Qo
ImNvbG9yKGRpc3BsYXktcDMgOTk5IDk5OSA5OTkpIiwgV0kuQ29sb3IuRm9ybWF0LkZ1bmN0aW9u
KTsKKworICAgICAgICAgICAgdGVzdEdvb2QoImNvbG9yKHNyZ2IgMC4xMjMgMC45OTkgMS8wLjUp
IiwgV0kuQ29sb3IuRm9ybWF0LkZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJDT0xP
UihTUkdCIDAuMTIzIDAuOTk5IDEvMC41KSIsIFdJLkNvbG9yLkZvcm1hdC5GdW5jdGlvbik7Cisg
ICAgICAgICAgICB0ZXN0R29vZCgiY29sb3IoIGRpc3BsYXktcDMgMCAxIDAuNS8wLjUpIiwgV0ku
Q29sb3IuRm9ybWF0LkZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJjb2xvcihkaXNw
bGF5LXAzIDk5OSA5OTkgOTk5Lzk5OSkiLCBXSS5Db2xvci5Gb3JtYXQuRnVuY3Rpb24pOworCisg
ICAgICAgICAgICB0ZXN0R29vZCgiY29sb3Ioc3JnYiAwLjEyMyAwLjk5OSAxIC8gMC41KSIsIFdJ
LkNvbG9yLkZvcm1hdC5GdW5jdGlvbik7CisgICAgICAgICAgICB0ZXN0R29vZCgiQ09MT1IoU1JH
QiAwLjEyMyAwLjk5OSAxIC8gMC41KSIsIFdJLkNvbG9yLkZvcm1hdC5GdW5jdGlvbik7CisgICAg
ICAgICAgICB0ZXN0R29vZCgiY29sb3IoIGRpc3BsYXktcDMgMCAxIDAuNSAvIDAuNSkiLCBXSS5D
b2xvci5Gb3JtYXQuRnVuY3Rpb24pOworICAgICAgICAgICAgdGVzdEdvb2QoImNvbG9yKGRpc3Bs
YXktcDMgOTk5IDk5OSA5OTkgLyA5OTkpIiwgV0kuQ29sb3IuRm9ybWF0LkZ1bmN0aW9uKTsKKwor
ICAgICAgICAgICAgdGVzdEdvb2QoImNvbG9yKHNyZ2IgMC4xMjMgMC45OTkgMS8zMyUpIiwgV0ku
Q29sb3IuRm9ybWF0LkZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJDT0xPUihTUkdC
IDAuMTIzIDAuOTk5IDEvMzMlKSIsIFdJLkNvbG9yLkZvcm1hdC5GdW5jdGlvbik7CisgICAgICAg
ICAgICB0ZXN0R29vZCgiY29sb3IoIGRpc3BsYXktcDMgMCAxIDAuNS8zMyUpIiwgV0kuQ29sb3Iu
Rm9ybWF0LkZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJjb2xvcihkaXNwbGF5LXAz
IDk5OSA5OTkgOTk5Lzk5OSUpIiwgV0kuQ29sb3IuRm9ybWF0LkZ1bmN0aW9uKTsKKworICAgICAg
ICAgICAgdGVzdEdvb2QoImNvbG9yKHNyZ2IgMC4xMjMgMC45OTkgMSAvIDMzJSkiLCBXSS5Db2xv
ci5Gb3JtYXQuRnVuY3Rpb24pOworICAgICAgICAgICAgdGVzdEdvb2QoIkNPTE9SKFNSR0IgMC4x
MjMgMC45OTkgMSAvIDMzJSkiLCBXSS5Db2xvci5Gb3JtYXQuRnVuY3Rpb24pOworICAgICAgICAg
ICAgdGVzdEdvb2QoImNvbG9yKCBkaXNwbGF5LXAzIDAgMSAwLjUgLyAzMyUpIiwgV0kuQ29sb3Iu
Rm9ybWF0LkZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJjb2xvcihkaXNwbGF5LXAz
IDk5OSA5OTkgOTk5IC8gOTk5JSkiLCBXSS5Db2xvci5Gb3JtYXQuRnVuY3Rpb24pOworCiAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiIik7CiAKICAgICAgICAgICAgIHRlc3RCYWQoIiAj
MDAwICIpOyAvLyB3aGl0ZXNwYWNlCkBAIC0yMzgsNiArMjY4LDggQEAgZnVuY3Rpb24gdGVzdCgp
CiAgICAgICAgICAgICB0ZXN0QmFkKCJoc2woMCwgMCUsIDUwJSwgMSwgMikiKTsgLy8gZXh0cmEg
dmFsdWUKICAgICAgICAgICAgIHRlc3RCYWQoImhzbGEoMCwgMCUsIDUwJSwgMSwgMikiKTsgLy8g
ZXh0cmEgdmFsdWVzCiAgICAgICAgICAgICB0ZXN0QmFkKCJzdXBlcmJsdWUiKTsgLy8gbm90IGEg
a2V5d29yZAorICAgICAgICAgICAgdGVzdEJhZCgiY29sb3IoZGlzcGxheS1wMyAwIDEpIik7IC8v
IDIKKyAgICAgICAgICAgIHRlc3RCYWQoImNvbG9yKGRpc3BsYXktcDMgMCAxIDIgNCA1KSIpOyAv
LyA1CiAKICAgICAgICAgICAgIC8vIEZJWE1FOiBjdXJyZW50Q29sb3I/CiAgICAgICAgICAgICAv
LyBGSVhNRTogU2hvdWxkIHdlIGNvbnNpZGVyIG1pc3NpbmcgJXMgYXMgYmFkPyBDdXJyZW50bHkg
d2UganVzdCBzdHJpcCB0aGVtLgpAQCAtMjg4LDYgKzMyMCwxOCBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICAgICAgICAgIGNvbG9yID0gV0kuQ29sb3IuZnJvbVN0cmluZygiIzExMjIzMzQ1Iik7CiAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoY29sb3IuY2FuQmVTZXJpYWxpemVk
QXNTaG9ydEhFWCgpID09PSBmYWxzZSwgIicjMTEyMjMzNDUnIHNob3VsZCBub3QgYmUgc2VyaWFs
aXphYmxlIGFzIGEgc2hvcnQgSGV4Iik7CiAKKyAgICAgICAgICAgIGNvbG9yID0gV0kuQ29sb3Iu
ZnJvbVN0cmluZygiY29sb3IoZGlzcGxheS1wMyAwIDEgMC41KSIpOworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RUaGF0KGNvbG9yLmFscGhhID09PSAxLCAiJ2NvbG9yKGRpc3BsYXkt
cDMgMCAxIDAuNSknIGNvbG9yIHNob3VsZCBoYXZlIGEgZGVmYXVsdCBhbHBoYSBvZiAxIik7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoY29sb3IuaXNLZXl3b3JkKCkgPT09
IGZhbHNlLCAiY29sb3IgZnVuY3Rpb24gaXMgbm90IGEga2V5d29yZCIpOworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RTaGFsbG93RXF1YWwoY29sb3IucmdiLCBbMCwgMSwgMC41XSwg
Iidjb2xvcihkaXNwbGF5LXAzIDAgMSAwLjUpJyBoYXMgcmdiIG9mIFswLCAxLCAwLjVdIik7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFNoYWxsb3dFcXVhbChjb2xvci5yZ2JhLCBb
MCwgMSwgMC41LCAxXSwgIidjb2xvcihkaXNwbGF5LXAzIDAgMSAwLjUpJyBoYXMgcmdiYSBvZiBb
MCwgMSwgMC41LCAxXSIpOworCisgICAgICAgICAgICBjb2xvciA9IFdJLkNvbG9yLmZyb21TdHJp
bmcoImNvbG9yKGRpc3BsYXktcDMgMCAxIDAuNSAvIDAuMykiKTsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdChjb2xvci5hbHBoYSA9PT0gMC4zLCAiJ2NvbG9yKGRpc3BsYXkt
cDMgMCAxIDAuNSAvIDAuMyknIHNob3VsZCBoYXZlIGFuIGFscGhhIG9mIDAuMyIpOworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGNvbG9yLmlzS2V5d29yZCgpID09PSBmYWxz
ZSwgImNvbG9yIGZ1bmN0aW9uIGlzIG5vdCBhIGtleXdvcmQiKTsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0U2hhbGxvd0VxdWFsKGNvbG9yLnJnYiwgWzAsIDEsIDAuNV0sICInY29s
b3IoZGlzcGxheS1wMyAwIDEgMC41IC8gMC4zKScgaGFzIHJnYiBvZiBbMCwgMSwgMC41XSIpOwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RTaGFsbG93RXF1YWwoY29sb3IucmdiYSwg
WzAsIDEsIDAuNSwgMC4zXSwgIidjb2xvcihkaXNwbGF5LXAzIDAgMSAwLjUgLyAwLjMpJyBoYXMg
cmdiYSBvZiBbMCwgMSwgMC41LCAwLjNdIik7CisKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICB9CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA3MzM0ZGJiZDlh
Mi4uODc5MmNhNTI3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBA
CisyMDE5LTEwLTMxICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IERpc3BsYXkgY29sb3Igc3dhdGNoZXMgZm9yIHAzIGNvbG9y
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNDM5
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NjYzNzI1MD4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEZXRlY3QgYGNvbG9yKGRpc3BsYXktcDMgMCAx
IDApYCBhcyBhIGNvbG9yIGluIHRoZSBzdHlsZSBlZGl0b3IuCisKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL01vZGVscy9Db2xvci5qczoKKyAgICAgICAgKFdJLkNvbG9yKToKKyAgICAgICAgKFdJ
LkNvbG9yLmZyb21TdHJpbmcubWF0Y2guZ3JvdXBzLmNvbG9yLnBhcnNlRnVuY3Rpb25Db21wb25l
bnQpOgorICAgICAgICAoV0kuQ29sb3IuZnJvbVN0cmluZyk6CisgICAgICAgIChXSS5Db2xvci5w
cm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoV0kuQ29sb3IucHJvdG90eXBlLmlzS2V5d29y
ZCk6CisgICAgICAgIChXSS5Db2xvci5wcm90b3R5cGUuX3RvRnVuY3Rpb25TdHJpbmcpOgorCiAy
MDE5LTEwLTI1ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBTdHlsZXM6IHVuLWV4cGVyaW1lbnRhbGl6ZSBzaG93aW5nIHJ1bGUgaWNv
bnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9Db2xvci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9D
b2xvci5qcwppbmRleCBiNjZmMWE2ZjljMy4uYTVhMmMzODE1MjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Db2xvci5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ29sb3IuanMKQEAgLTI5LDcg
KzI5LDcgQEAKIAogV0kuQ29sb3IgPSBjbGFzcyBDb2xvcgogewotICAgIGNvbnN0cnVjdG9yKGZv
cm1hdCwgY29tcG9uZW50cykKKyAgICBjb25zdHJ1Y3Rvcihmb3JtYXQsIGNvbXBvbmVudHMsIGdh
bXV0ID0gInNyZ2IiKQogICAgIHsKICAgICAgICAgdGhpcy5mb3JtYXQgPSBmb3JtYXQ7CiAKQEAg
LTQxLDYgKzQxLDcgQEAgV0kuQ29sb3IgPSBjbGFzcyBDb2xvcgogICAgICAgICBlbHNlCiAgICAg
ICAgICAgICB0aGlzLl9yZ2JhID0gY29tcG9uZW50czsKIAorICAgICAgICB0aGlzLmdhbXV0ID0g
Z2FtdXQ7CiAgICAgICAgIHRoaXMudmFsaWQgPSAhY29tcG9uZW50cy5zb21lKGlzTmFOKTsKICAg
ICB9CiAKQEAgLTQ4LDcgKzQ5LDcgQEAgV0kuQ29sb3IgPSBjbGFzcyBDb2xvcgogCiAgICAgc3Rh
dGljIGZyb21TdHJpbmcoY29sb3JTdHJpbmcpCiAgICAgewotICAgICAgICBjb25zdCBtYXRjaFJl
Z0V4cCA9IC9eKD86Iyg/PGhleD5bMC05YS1mXXszLDh9KXxyZ2JhP1woKD88cmdiPlteKV0rKVwp
fCg/PGtleXdvcmQ+XHcrKXxoc2xhP1woKD88aHNsPlteKV0rKVwpKSQvaTsKKyAgICAgICAgY29u
c3QgbWF0Y2hSZWdFeHAgPSAvXig/OiMoPzxoZXg+WzAtOWEtZl17Myw4fSl8cmdiYT9cKCg/PHJn
Yj5bXildKylcKXwoPzxrZXl3b3JkPlx3Kyl8Y29sb3JcKCg/PGNvbG9yPlteKV0rKVwpfGhzbGE/
XCgoPzxoc2w+W14pXSspXCkpJC9pOwogICAgICAgICBsZXQgbWF0Y2ggPSBjb2xvclN0cmluZy5t
YXRjaChtYXRjaFJlZ0V4cCk7CiAgICAgICAgIGlmICghbWF0Y2gpCiAgICAgICAgICAgICByZXR1
cm4gbnVsbDsKQEAgLTE3MCw2ICsxNzEsMzMgQEAgV0kuQ29sb3IgPSBjbGFzcyBDb2xvcgogICAg
ICAgICAgICAgXSk7CiAgICAgICAgIH0KIAorICAgICAgICBpZiAobWF0Y2guZ3JvdXBzLmNvbG9y
KSB7CisgICAgICAgICAgICBsZXQgY29sb3JTdHJpbmcgPSBtYXRjaC5ncm91cHMuY29sb3IudHJp
bSgpOworICAgICAgICAgICAgbGV0IGNvbXBvbmVudHMgPSBzcGxpdEZ1bmN0aW9uU3RyaW5nKGNv
bG9yU3RyaW5nKTsKKyAgICAgICAgICAgIGlmIChjb21wb25lbnRzLmxlbmd0aCAhPT0gNCAmJiBj
b21wb25lbnRzLmxlbmd0aCAhPT0gNSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKwor
ICAgICAgICAgICAgbGV0IGdhbXV0ID0gY29tcG9uZW50c1swXS50b0xvd2VyQ2FzZSgpOworICAg
ICAgICAgICAgaWYgKGdhbXV0ICE9PSAic3JnYiIgJiYgZ2FtdXQgIT09ICJkaXNwbGF5LXAzIikK
KyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAgICAgICAgbGV0IGFscGhhID0g
MTsKKyAgICAgICAgICAgIGlmIChjb21wb25lbnRzLmxlbmd0aCA9PT0gNSkKKyAgICAgICAgICAg
ICAgICBhbHBoYSA9IHBhcnNlRnVuY3Rpb25BbHBoYShjb21wb25lbnRzWzRdKTsKKworICAgICAg
ICAgICAgZnVuY3Rpb24gcGFyc2VGdW5jdGlvbkNvbXBvbmVudChjb21wb25lbnQpIHsKKyAgICAg
ICAgICAgICAgICBsZXQgdmFsdWUgPSBwYXJzZUZsb2F0KGNvbXBvbmVudCk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIE51bWJlci5jb25zdHJhaW4odmFsdWUsIDAsIDEpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICByZXR1cm4gbmV3IFdJLkNvbG9yKFdJLkNvbG9yLkZvcm1hdC5GdW5j
dGlvbiwgWworICAgICAgICAgICAgICAgIHBhcnNlRnVuY3Rpb25Db21wb25lbnQoY29tcG9uZW50
c1sxXSksCisgICAgICAgICAgICAgICAgcGFyc2VGdW5jdGlvbkNvbXBvbmVudChjb21wb25lbnRz
WzJdKSwKKyAgICAgICAgICAgICAgICBwYXJzZUZ1bmN0aW9uQ29tcG9uZW50KGNvbXBvbmVudHNb
M10pLAorICAgICAgICAgICAgICAgIGFscGhhLAorICAgICAgICAgICAgXSwgZ2FtdXQpOworICAg
ICAgICB9CisKICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgfQogCkBAIC0zODgsNiArNDE2LDgg
QEAgV0kuQ29sb3IgPSBjbGFzcyBDb2xvcgogICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RvUkdC
U3RyaW5nKCk7CiAgICAgICAgIGNhc2UgV0kuQ29sb3IuRm9ybWF0LlJHQkE6CiAgICAgICAgICAg
ICByZXR1cm4gdGhpcy5fdG9SR0JBU3RyaW5nKCk7CisgICAgICAgIGNhc2UgV0kuQ29sb3IuRm9y
bWF0LkZ1bmN0aW9uOgorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RvRnVuY3Rpb25TdHJpbmco
KTsKICAgICAgICAgY2FzZSBXSS5Db2xvci5Gb3JtYXQuSFNMOgogICAgICAgICAgICAgcmV0dXJu
IHRoaXMuX3RvSFNMU3RyaW5nKCk7CiAgICAgICAgIGNhc2UgV0kuQ29sb3IuRm9ybWF0LkhTTEE6
CkBAIC00MTMsNiArNDQzLDkgQEAgV0kuQ29sb3IgPSBjbGFzcyBDb2xvcgogICAgICAgICBpZiAo
dGhpcy5rZXl3b3JkKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKKyAgICAgICAgaWYgKHRo
aXMuZ2FtdXQgIT09ICJzcmdiIikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgICAg
ICBpZiAoIXRoaXMuc2ltcGxlKQogICAgICAgICAgICAgcmV0dXJuIEFycmF5LnNoYWxsb3dFcXVh
bCh0aGlzLl9yZ2JhLCBbMCwgMCwgMCwgMF0pIHx8IEFycmF5LnNoYWxsb3dFcXVhbCh0aGlzLl9o
c2xhLCBbMCwgMCwgMCwgMF0pOwogCkBAIC01NTAsNiArNTgzLDE1IEBAIFdJLkNvbG9yID0gY2xh
c3MgQ29sb3IKICAgICAgICAgcmV0dXJuIGByZ2JhKCR7cn0sICR7Z30sICR7Yn0sICR7dGhpcy5h
bHBoYX0pYDsKICAgICB9CiAKKyAgICBfdG9GdW5jdGlvblN0cmluZygpCisgICAgeworICAgICAg
ICBsZXQgW3IsIGcsIGIsIGFscGhhXSA9IHRoaXMuX3JnYmE7CisgICAgICAgIGlmIChhbHBoYSA9
PT0gMSkKKyAgICAgICAgICAgIHJldHVybiBgY29sb3IoJHt0aGlzLmdhbXV0fSAke3J9ICR7Z30g
JHtifSlgOworCisgICAgICAgIHJldHVybiBgY29sb3IoJHt0aGlzLmdhbXV0fSAke3J9ICR7Z30g
JHtifSAvICR7YWxwaGF9KWA7CisgICAgfQorCiAgICAgX3RvSFNMU3RyaW5nKCkKICAgICB7CiAg
ICAgICAgIGlmICghdGhpcy5zaW1wbGUpCkBAIC02MDIsMTIgKzY0NCwxNCBAQCBXSS5Db2xvci5G
b3JtYXQgPSB7CiAgICAgUkdCOiAiY29sb3ItZm9ybWF0LXJnYiIsCiAgICAgUkdCQTogImNvbG9y
LWZvcm1hdC1yZ2JhIiwKICAgICBIU0w6ICJjb2xvci1mb3JtYXQtaHNsIiwKLSAgICBIU0xBOiAi
Y29sb3ItZm9ybWF0LWhzbGEiCisgICAgSFNMQTogImNvbG9yLWZvcm1hdC1oc2xhIiwKKyAgICBG
dW5jdGlvbjogImNvbG9yLWZvcm1hdC1mdW5jdGlvbiIsCiB9OwogCiBXSS5Db2xvci5GdW5jdGlv
bk5hbWVzID0gbmV3IFNldChbCiAgICAgInJnYiIsCiAgICAgInJnYmEiLAorICAgICJjb2xvciIs
CiAgICAgImhzbCIsCiAgICAgImhzbGEiLAogXSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382517</attachid>
            <date>2019-10-31 16:30:10 -0700</date>
            <delta_ts>2019-11-01 10:58:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>13119</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhOTEzMGU0MDg1My4uNDE1MzQ5YjY0NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxOS0xMC0zMCAgTmlraXRhIFZhc2lseWV2ICA8bnZhc2lseWV2QGFwcGxlLmNvbT4KKworICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBEaXNwbGF5IGNvbG9yIHN3YXRjaGVzIGZvciBwMyBjb2xvcnMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzQzOQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTY2MzcyNTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvbW9kZWwvY29sb3ItZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9tb2RlbC9jb2xvci5odG1sOgorCiAyMDE5LTEw
LTI2ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmZvcmNl
IHVzZXIgZ2VzdHVyZSBmb3IgZ2V0VXNlck1lZGlhIGluIGNhc2UgYSBwcmV2aW91cyBnZXRVc2Vy
TWVkaWEgY2FsbCB3YXMgZGVuaWVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
bW9kZWwvY29sb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL2Nv
bG9yLWV4cGVjdGVkLnR4dAppbmRleCA5OTliOGZiYmE3Ni4uNTcyODlkMGQzYjcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9jb2xvci1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL2NvbG9yLWV4cGVjdGVkLnR4dApAQCAtMzMxLDYg
KzMzMSwyOCBAQCBUZXN0cyBmb3IgdGhlIFdJLkNvbG9yIG1vZGVsIG9iamVjdC4KICJIU0xBKDEw
dHVybiAyMCUgMzAlIC8gNDAlKSIgcmVzb2x2ZXMgdG8gImhzbGEoMzYwLCAyMCUsIDMwJSwgMC40
KSIKICJoc2xhKCAxMHR1cm4gIDIwJSAgMzAlIC8gNDAlICkiIHJlc29sdmVzIHRvICJoc2xhKDM2
MCwgMjAlLCAzMCUsIDAuNCkiCiAiaHNsYSg5OTl0dXJuIDk5OSUgOTk5JSAvIDk5OSUpIiByZXNv
bHZlcyB0byAiaHNsYSgzNjAsIDEwMCUsIDEwMCUsIDEpIgorImNvbG9yKGRpc3BsYXktcDMgMCAx
IDAuNSkiIHJlc29sdmVzIHRvICJjb2xvcihkaXNwbGF5LXAzIDAgMSAwLjUpIgorIkNPTE9SKERJ
U1BMQVktUDMgMCAxIDAuNSkiIHJlc29sdmVzIHRvICJjb2xvcihkaXNwbGF5LXAzIDAgMSAwLjUp
IgorImNvbG9yKHNyZ2IgMC4xMjMgMC45OTkgMSkiIHJlc29sdmVzIHRvICJjb2xvcihzcmdiIDAu
MTIzIDAuOTk5IDEpIgorIkNPTE9SKFNSR0IgMC4xMjMgMC45OTkgMSkiIHJlc29sdmVzIHRvICJj
b2xvcihzcmdiIDAuMTIzIDAuOTk5IDEpIgorImNvbG9yKCBkaXNwbGF5LXAzIDAgMSAwLjUgKSIg
cmVzb2x2ZXMgdG8gImNvbG9yKGRpc3BsYXktcDMgMCAxIDAuNSkiCisiY29sb3IoZGlzcGxheS1w
MyA5OTkgOTk5IDk5OSkiIHJlc29sdmVzIHRvICJjb2xvcihkaXNwbGF5LXAzIDEgMSAxKSIKKyJj
b2xvcihzcmdiIDAuMTIzIDAuOTk5IDEvMC41KSIgcmVzb2x2ZXMgdG8gImNvbG9yKHNyZ2IgMC4x
MjMgMC45OTkgMSAvIDAuNSkiCisiQ09MT1IoU1JHQiAwLjEyMyAwLjk5OSAxLzAuNSkiIHJlc29s
dmVzIHRvICJjb2xvcihzcmdiIDAuMTIzIDAuOTk5IDEgLyAwLjUpIgorImNvbG9yKCBkaXNwbGF5
LXAzIDAgMSAwLjUvMC41KSIgcmVzb2x2ZXMgdG8gImNvbG9yKGRpc3BsYXktcDMgMCAxIDAuNSAv
IDAuNSkiCisiY29sb3IoZGlzcGxheS1wMyA5OTkgOTk5IDk5OS85OTkpIiByZXNvbHZlcyB0byAi
Y29sb3IoZGlzcGxheS1wMyAxIDEgMSkiCisiY29sb3Ioc3JnYiAwLjEyMyAwLjk5OSAxIC8gMC41
KSIgcmVzb2x2ZXMgdG8gImNvbG9yKHNyZ2IgMC4xMjMgMC45OTkgMSAvIDAuNSkiCisiQ09MT1Io
U1JHQiAwLjEyMyAwLjk5OSAxIC8gMC41KSIgcmVzb2x2ZXMgdG8gImNvbG9yKHNyZ2IgMC4xMjMg
MC45OTkgMSAvIDAuNSkiCisiY29sb3IoIGRpc3BsYXktcDMgMCAxIDAuNSAvIDAuNSkiIHJlc29s
dmVzIHRvICJjb2xvcihkaXNwbGF5LXAzIDAgMSAwLjUgLyAwLjUpIgorImNvbG9yKGRpc3BsYXkt
cDMgOTk5IDk5OSA5OTkgLyA5OTkpIiByZXNvbHZlcyB0byAiY29sb3IoZGlzcGxheS1wMyAxIDEg
MSkiCisiY29sb3Ioc3JnYiAwLjEyMyAwLjk5OSAxLzMzJSkiIHJlc29sdmVzIHRvICJjb2xvcihz
cmdiIDAuMTIzIDAuOTk5IDEgLyAwLjMzKSIKKyJDT0xPUihTUkdCIDAuMTIzIDAuOTk5IDEvMzMl
KSIgcmVzb2x2ZXMgdG8gImNvbG9yKHNyZ2IgMC4xMjMgMC45OTkgMSAvIDAuMzMpIgorImNvbG9y
KCBkaXNwbGF5LXAzIDAgMSAwLjUvMzMlKSIgcmVzb2x2ZXMgdG8gImNvbG9yKGRpc3BsYXktcDMg
MCAxIDAuNSAvIDAuMzMpIgorImNvbG9yKGRpc3BsYXktcDMgOTk5IDk5OSA5OTkvOTk5JSkiIHJl
c29sdmVzIHRvICJjb2xvcihkaXNwbGF5LXAzIDEgMSAxKSIKKyJjb2xvcihzcmdiIDAuMTIzIDAu
OTk5IDEgLyAzMyUpIiByZXNvbHZlcyB0byAiY29sb3Ioc3JnYiAwLjEyMyAwLjk5OSAxIC8gMC4z
MykiCisiQ09MT1IoU1JHQiAwLjEyMyAwLjk5OSAxIC8gMzMlKSIgcmVzb2x2ZXMgdG8gImNvbG9y
KHNyZ2IgMC4xMjMgMC45OTkgMSAvIDAuMzMpIgorImNvbG9yKCBkaXNwbGF5LXAzIDAgMSAwLjUg
LyAzMyUpIiByZXNvbHZlcyB0byAiY29sb3IoZGlzcGxheS1wMyAwIDEgMC41IC8gMC4zMykiCisi
Y29sb3IoZGlzcGxheS1wMyA5OTkgOTk5IDk5OSAvIDk5OSUpIiByZXNvbHZlcyB0byAiY29sb3Io
ZGlzcGxheS1wMyAxIDEgMSkiCiAKIFBBU1M6ICcgIzAwMCAnIHNob3VsZCBub3QgYmUgZGV0ZWN0
ZWQKIFBBU1M6ICcjcmdiJyBzaG91bGQgbm90IGJlIGRldGVjdGVkCkBAIC0zNDQsNiArMzY2LDgg
QEAgUEFTUzogJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC41LCAxKScgc2hvdWxkIG5vdCBiZSBkZXRl
Y3RlZAogUEFTUzogJ2hzbCgwLCAwJSwgNTAlLCAxLCAyKScgc2hvdWxkIG5vdCBiZSBkZXRlY3Rl
ZAogUEFTUzogJ2hzbGEoMCwgMCUsIDUwJSwgMSwgMiknIHNob3VsZCBub3QgYmUgZGV0ZWN0ZWQK
IFBBU1M6ICdzdXBlcmJsdWUnIHNob3VsZCBub3QgYmUgZGV0ZWN0ZWQKK1BBU1M6ICdjb2xvcihk
aXNwbGF5LXAzIDAgMSknIHNob3VsZCBub3QgYmUgZGV0ZWN0ZWQKK1BBU1M6ICdjb2xvcihkaXNw
bGF5LXAzIDAgMSAyIDQgNSknIHNob3VsZCBub3QgYmUgZGV0ZWN0ZWQKIAogLS0gUnVubmluZyB0
ZXN0IGNhc2U6IFdJLkNvbG9yIHByb3BlcnRpZXMKIFBBU1M6ICdyZWQnIHNob3VsZCBoYXZlIGFs
cGhhIG9mIDEuCkBAIC0zNzAsNiArMzk0LDE0IEBAIFBBU1M6ICcjMTExMjIyMzMnIGhhcyBoc2xh
IG9mIFsyMzYuNDcsIDMzLjMzLCAxMCwgMC4yXS4KIFBBU1M6ICcjMTExMjIyMzMnIHNob3VsZCBu
b3QgYmUgc2VyaWFsaXphYmxlIGFzIGEgc2hvcnQgSGV4CiBQQVNTOiAnIzExMjIzMzQ0JyBzaG91
bGQgYmUgc2VyaWFsaXphYmxlIGFzIGEgc2hvcnQgSGV4CiBQQVNTOiAnIzExMjIzMzQ1JyBzaG91
bGQgbm90IGJlIHNlcmlhbGl6YWJsZSBhcyBhIHNob3J0IEhleAorUEFTUzogJ2NvbG9yKGRpc3Bs
YXktcDMgMCAxIDAuNSknIGNvbG9yIHNob3VsZCBoYXZlIGEgZGVmYXVsdCBhbHBoYSBvZiAxCitQ
QVNTOiBjb2xvciBmdW5jdGlvbiBpcyBub3QgYSBrZXl3b3JkCitQQVNTOiAnY29sb3IoZGlzcGxh
eS1wMyAwIDEgMC41KScgaGFzIHJnYiBvZiBbMCwgMSwgMC41XQorUEFTUzogJ2NvbG9yKGRpc3Bs
YXktcDMgMCAxIDAuNSknIGhhcyByZ2JhIG9mIFswLCAxLCAwLjUsIDFdCitQQVNTOiAnY29sb3Io
ZGlzcGxheS1wMyAwIDEgMC41IC8gMC4zKScgc2hvdWxkIGhhdmUgYW4gYWxwaGEgb2YgMC4zCitQ
QVNTOiBjb2xvciBmdW5jdGlvbiBpcyBub3QgYSBrZXl3b3JkCitQQVNTOiAnY29sb3IoZGlzcGxh
eS1wMyAwIDEgMC41IC8gMC4zKScgaGFzIHJnYiBvZiBbMCwgMSwgMC41XQorUEFTUzogJ2NvbG9y
KGRpc3BsYXktcDMgMCAxIDAuNSAvIDAuMyknIGhhcyByZ2JhIG9mIFswLCAxLCAwLjUsIDAuM10K
IAogLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLkNvbG9yIGZyb20gY29tcG9uZW50cwogQ2hlY2sg
Y29tcG9uZW50cyBmb3IgY29sb3IgJ3JnYigyNTUsIDAsIDApJy4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9jb2xvci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L21vZGVsL2NvbG9yLmh0bWwKaW5kZXggNmIyOWQyMGFjMjQuLmMyNzIzYmY0NTgxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvY29sb3IuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvbW9kZWwvY29sb3IuaHRtbApAQCAtMjcsNiArMjcsOCBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICAgICAgICAgIHJldHVybiAiSFNMIjsKICAgICAgICAgY2FzZSBXSS5Db2xv
ci5Gb3JtYXQuSFNMQToKICAgICAgICAgICAgIHJldHVybiAiSFNMQSI7CisgICAgICAgIGNhc2Ug
V0kuQ29sb3IuRm9ybWF0LkZ1bmN0aW9uOgorICAgICAgICAgICAgcmV0dXJuICJGdW5jdGlvbiI7
CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gIlVuZXhwZWN0ZWQgZm9ybWF0
IjsKICAgICAgICAgfQpAQCAtMjI0LDYgKzIyNiwzNCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAg
ICAgICAgICAgICB0ZXN0R29vZChgaHNsYSg5OTkke3VuaXR9IDk5OSUgOTk5JSAvIDk5OSUpYCwg
V0kuQ29sb3IuRm9ybWF0LkhTTEEpOwogICAgICAgICAgICAgfQogCisgICAgICAgICAgICB0ZXN0
R29vZCgiY29sb3IoZGlzcGxheS1wMyAwIDEgMC41KSIsIFdJLkNvbG9yLkZvcm1hdC5GdW5jdGlv
bik7CisgICAgICAgICAgICB0ZXN0R29vZCgiQ09MT1IoRElTUExBWS1QMyAwIDEgMC41KSIsIFdJ
LkNvbG9yLkZvcm1hdC5GdW5jdGlvbik7CisKKyAgICAgICAgICAgIHRlc3RHb29kKCJjb2xvcihz
cmdiIDAuMTIzIDAuOTk5IDEpIiwgV0kuQ29sb3IuRm9ybWF0LkZ1bmN0aW9uKTsKKyAgICAgICAg
ICAgIHRlc3RHb29kKCJDT0xPUihTUkdCIDAuMTIzIDAuOTk5IDEpIiwgV0kuQ29sb3IuRm9ybWF0
LkZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJjb2xvciggZGlzcGxheS1wMyAwIDEg
MC41ICkiLCBXSS5Db2xvci5Gb3JtYXQuRnVuY3Rpb24pOworICAgICAgICAgICAgdGVzdEdvb2Qo
ImNvbG9yKGRpc3BsYXktcDMgOTk5IDk5OSA5OTkpIiwgV0kuQ29sb3IuRm9ybWF0LkZ1bmN0aW9u
KTsKKworICAgICAgICAgICAgdGVzdEdvb2QoImNvbG9yKHNyZ2IgMC4xMjMgMC45OTkgMS8wLjUp
IiwgV0kuQ29sb3IuRm9ybWF0LkZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJDT0xP
UihTUkdCIDAuMTIzIDAuOTk5IDEvMC41KSIsIFdJLkNvbG9yLkZvcm1hdC5GdW5jdGlvbik7Cisg
ICAgICAgICAgICB0ZXN0R29vZCgiY29sb3IoIGRpc3BsYXktcDMgMCAxIDAuNS8wLjUpIiwgV0ku
Q29sb3IuRm9ybWF0LkZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJjb2xvcihkaXNw
bGF5LXAzIDk5OSA5OTkgOTk5Lzk5OSkiLCBXSS5Db2xvci5Gb3JtYXQuRnVuY3Rpb24pOworCisg
ICAgICAgICAgICB0ZXN0R29vZCgiY29sb3Ioc3JnYiAwLjEyMyAwLjk5OSAxIC8gMC41KSIsIFdJ
LkNvbG9yLkZvcm1hdC5GdW5jdGlvbik7CisgICAgICAgICAgICB0ZXN0R29vZCgiQ09MT1IoU1JH
QiAwLjEyMyAwLjk5OSAxIC8gMC41KSIsIFdJLkNvbG9yLkZvcm1hdC5GdW5jdGlvbik7CisgICAg
ICAgICAgICB0ZXN0R29vZCgiY29sb3IoIGRpc3BsYXktcDMgMCAxIDAuNSAvIDAuNSkiLCBXSS5D
b2xvci5Gb3JtYXQuRnVuY3Rpb24pOworICAgICAgICAgICAgdGVzdEdvb2QoImNvbG9yKGRpc3Bs
YXktcDMgOTk5IDk5OSA5OTkgLyA5OTkpIiwgV0kuQ29sb3IuRm9ybWF0LkZ1bmN0aW9uKTsKKwor
ICAgICAgICAgICAgdGVzdEdvb2QoImNvbG9yKHNyZ2IgMC4xMjMgMC45OTkgMS8zMyUpIiwgV0ku
Q29sb3IuRm9ybWF0LkZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJDT0xPUihTUkdC
IDAuMTIzIDAuOTk5IDEvMzMlKSIsIFdJLkNvbG9yLkZvcm1hdC5GdW5jdGlvbik7CisgICAgICAg
ICAgICB0ZXN0R29vZCgiY29sb3IoIGRpc3BsYXktcDMgMCAxIDAuNS8zMyUpIiwgV0kuQ29sb3Iu
Rm9ybWF0LkZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJjb2xvcihkaXNwbGF5LXAz
IDk5OSA5OTkgOTk5Lzk5OSUpIiwgV0kuQ29sb3IuRm9ybWF0LkZ1bmN0aW9uKTsKKworICAgICAg
ICAgICAgdGVzdEdvb2QoImNvbG9yKHNyZ2IgMC4xMjMgMC45OTkgMSAvIDMzJSkiLCBXSS5Db2xv
ci5Gb3JtYXQuRnVuY3Rpb24pOworICAgICAgICAgICAgdGVzdEdvb2QoIkNPTE9SKFNSR0IgMC4x
MjMgMC45OTkgMSAvIDMzJSkiLCBXSS5Db2xvci5Gb3JtYXQuRnVuY3Rpb24pOworICAgICAgICAg
ICAgdGVzdEdvb2QoImNvbG9yKCBkaXNwbGF5LXAzIDAgMSAwLjUgLyAzMyUpIiwgV0kuQ29sb3Iu
Rm9ybWF0LkZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJjb2xvcihkaXNwbGF5LXAz
IDk5OSA5OTkgOTk5IC8gOTk5JSkiLCBXSS5Db2xvci5Gb3JtYXQuRnVuY3Rpb24pOworCiAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiIik7CiAKICAgICAgICAgICAgIHRlc3RCYWQoIiAj
MDAwICIpOyAvLyB3aGl0ZXNwYWNlCkBAIC0yMzgsNiArMjY4LDggQEAgZnVuY3Rpb24gdGVzdCgp
CiAgICAgICAgICAgICB0ZXN0QmFkKCJoc2woMCwgMCUsIDUwJSwgMSwgMikiKTsgLy8gZXh0cmEg
dmFsdWUKICAgICAgICAgICAgIHRlc3RCYWQoImhzbGEoMCwgMCUsIDUwJSwgMSwgMikiKTsgLy8g
ZXh0cmEgdmFsdWVzCiAgICAgICAgICAgICB0ZXN0QmFkKCJzdXBlcmJsdWUiKTsgLy8gbm90IGEg
a2V5d29yZAorICAgICAgICAgICAgdGVzdEJhZCgiY29sb3IoZGlzcGxheS1wMyAwIDEpIik7IC8v
IDIKKyAgICAgICAgICAgIHRlc3RCYWQoImNvbG9yKGRpc3BsYXktcDMgMCAxIDIgNCA1KSIpOyAv
LyA1CiAKICAgICAgICAgICAgIC8vIEZJWE1FOiBjdXJyZW50Q29sb3I/CiAgICAgICAgICAgICAv
LyBGSVhNRTogU2hvdWxkIHdlIGNvbnNpZGVyIG1pc3NpbmcgJXMgYXMgYmFkPyBDdXJyZW50bHkg
d2UganVzdCBzdHJpcCB0aGVtLgpAQCAtMjg4LDYgKzMyMCwxOCBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICAgICAgICAgIGNvbG9yID0gV0kuQ29sb3IuZnJvbVN0cmluZygiIzExMjIzMzQ1Iik7CiAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoY29sb3IuY2FuQmVTZXJpYWxpemVk
QXNTaG9ydEhFWCgpID09PSBmYWxzZSwgIicjMTEyMjMzNDUnIHNob3VsZCBub3QgYmUgc2VyaWFs
aXphYmxlIGFzIGEgc2hvcnQgSGV4Iik7CiAKKyAgICAgICAgICAgIGNvbG9yID0gV0kuQ29sb3Iu
ZnJvbVN0cmluZygiY29sb3IoZGlzcGxheS1wMyAwIDEgMC41KSIpOworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RUaGF0KGNvbG9yLmFscGhhID09PSAxLCAiJ2NvbG9yKGRpc3BsYXkt
cDMgMCAxIDAuNSknIGNvbG9yIHNob3VsZCBoYXZlIGEgZGVmYXVsdCBhbHBoYSBvZiAxIik7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoY29sb3IuaXNLZXl3b3JkKCkgPT09
IGZhbHNlLCAiY29sb3IgZnVuY3Rpb24gaXMgbm90IGEga2V5d29yZCIpOworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RTaGFsbG93RXF1YWwoY29sb3IucmdiLCBbMCwgMSwgMC41XSwg
Iidjb2xvcihkaXNwbGF5LXAzIDAgMSAwLjUpJyBoYXMgcmdiIG9mIFswLCAxLCAwLjVdIik7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFNoYWxsb3dFcXVhbChjb2xvci5yZ2JhLCBb
MCwgMSwgMC41LCAxXSwgIidjb2xvcihkaXNwbGF5LXAzIDAgMSAwLjUpJyBoYXMgcmdiYSBvZiBb
MCwgMSwgMC41LCAxXSIpOworCisgICAgICAgICAgICBjb2xvciA9IFdJLkNvbG9yLmZyb21TdHJp
bmcoImNvbG9yKGRpc3BsYXktcDMgMCAxIDAuNSAvIDAuMykiKTsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdChjb2xvci5hbHBoYSA9PT0gMC4zLCAiJ2NvbG9yKGRpc3BsYXkt
cDMgMCAxIDAuNSAvIDAuMyknIHNob3VsZCBoYXZlIGFuIGFscGhhIG9mIDAuMyIpOworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGNvbG9yLmlzS2V5d29yZCgpID09PSBmYWxz
ZSwgImNvbG9yIGZ1bmN0aW9uIGlzIG5vdCBhIGtleXdvcmQiKTsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0U2hhbGxvd0VxdWFsKGNvbG9yLnJnYiwgWzAsIDEsIDAuNV0sICInY29s
b3IoZGlzcGxheS1wMyAwIDEgMC41IC8gMC4zKScgaGFzIHJnYiBvZiBbMCwgMSwgMC41XSIpOwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RTaGFsbG93RXF1YWwoY29sb3IucmdiYSwg
WzAsIDEsIDAuNSwgMC4zXSwgIidjb2xvcihkaXNwbGF5LXAzIDAgMSAwLjUgLyAwLjMpJyBoYXMg
cmdiYSBvZiBbMCwgMSwgMC41LCAwLjNdIik7CisKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICB9CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA3MzM0ZGJiZDlh
Mi4uODc5MmNhNTI3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBA
CisyMDE5LTEwLTMxICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IERpc3BsYXkgY29sb3Igc3dhdGNoZXMgZm9yIHAzIGNvbG9y
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNDM5
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NjYzNzI1MD4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEZXRlY3QgYGNvbG9yKGRpc3BsYXktcDMgMCAx
IDApYCBhcyBhIGNvbG9yIGluIHRoZSBzdHlsZSBlZGl0b3IuCisKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL01vZGVscy9Db2xvci5qczoKKyAgICAgICAgKFdJLkNvbG9yKToKKyAgICAgICAgKFdJ
LkNvbG9yLmZyb21TdHJpbmcubWF0Y2guZ3JvdXBzLmNvbG9yLnBhcnNlRnVuY3Rpb25Db21wb25l
bnQpOgorICAgICAgICAoV0kuQ29sb3IuZnJvbVN0cmluZyk6CisgICAgICAgIChXSS5Db2xvci5w
cm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoV0kuQ29sb3IucHJvdG90eXBlLmlzS2V5d29y
ZCk6CisgICAgICAgIChXSS5Db2xvci5wcm90b3R5cGUuX3RvRnVuY3Rpb25TdHJpbmcpOgorCiAy
MDE5LTEwLTI1ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBTdHlsZXM6IHVuLWV4cGVyaW1lbnRhbGl6ZSBzaG93aW5nIHJ1bGUgaWNv
bnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9Db2xvci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9D
b2xvci5qcwppbmRleCBiNjZmMWE2ZjljMy4uOTEzOTExYTkxYTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Db2xvci5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ29sb3IuanMKQEAgLTI5LDkg
KzI5LDEwIEBACiAKIFdJLkNvbG9yID0gY2xhc3MgQ29sb3IKIHsKLSAgICBjb25zdHJ1Y3Rvcihm
b3JtYXQsIGNvbXBvbmVudHMpCisgICAgY29uc3RydWN0b3IoZm9ybWF0LCBjb21wb25lbnRzLCBn
YW11dCkKICAgICB7CiAgICAgICAgIHRoaXMuZm9ybWF0ID0gZm9ybWF0OworICAgICAgICB0aGlz
LmdhbXV0ID0gZ2FtdXQgfHwgInNyZ2IiOwogCiAgICAgICAgIGlmIChjb21wb25lbnRzLmxlbmd0
aCA9PT0gMykKICAgICAgICAgICAgIGNvbXBvbmVudHMucHVzaCgxKTsKQEAgLTQ4LDcgKzQ5LDcg
QEAgV0kuQ29sb3IgPSBjbGFzcyBDb2xvcgogCiAgICAgc3RhdGljIGZyb21TdHJpbmcoY29sb3JT
dHJpbmcpCiAgICAgewotICAgICAgICBjb25zdCBtYXRjaFJlZ0V4cCA9IC9eKD86Iyg/PGhleD5b
MC05YS1mXXszLDh9KXxyZ2JhP1woKD88cmdiPlteKV0rKVwpfCg/PGtleXdvcmQ+XHcrKXxoc2xh
P1woKD88aHNsPlteKV0rKVwpKSQvaTsKKyAgICAgICAgY29uc3QgbWF0Y2hSZWdFeHAgPSAvXig/
OiMoPzxoZXg+WzAtOWEtZl17Myw4fSl8cmdiYT9cKCg/PHJnYj5bXildKylcKXwoPzxrZXl3b3Jk
Plx3Kyl8Y29sb3JcKCg/PGNvbG9yPlteKV0rKVwpfGhzbGE/XCgoPzxoc2w+W14pXSspXCkpJC9p
OwogICAgICAgICBsZXQgbWF0Y2ggPSBjb2xvclN0cmluZy5tYXRjaChtYXRjaFJlZ0V4cCk7CiAg
ICAgICAgIGlmICghbWF0Y2gpCiAgICAgICAgICAgICByZXR1cm4gbnVsbDsKQEAgLTE3MCw2ICsx
NzEsMzMgQEAgV0kuQ29sb3IgPSBjbGFzcyBDb2xvcgogICAgICAgICAgICAgXSk7CiAgICAgICAg
IH0KIAorICAgICAgICBpZiAobWF0Y2guZ3JvdXBzLmNvbG9yKSB7CisgICAgICAgICAgICBsZXQg
Y29sb3JTdHJpbmcgPSBtYXRjaC5ncm91cHMuY29sb3IudHJpbSgpOworICAgICAgICAgICAgbGV0
IGNvbXBvbmVudHMgPSBzcGxpdEZ1bmN0aW9uU3RyaW5nKGNvbG9yU3RyaW5nKTsKKyAgICAgICAg
ICAgIGlmIChjb21wb25lbnRzLmxlbmd0aCAhPT0gNCAmJiBjb21wb25lbnRzLmxlbmd0aCAhPT0g
NSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAgICAgICAgbGV0IGdhbXV0
ID0gY29tcG9uZW50c1swXS50b0xvd2VyQ2FzZSgpOworICAgICAgICAgICAgaWYgKGdhbXV0ICE9
PSAic3JnYiIgJiYgZ2FtdXQgIT09ICJkaXNwbGF5LXAzIikKKyAgICAgICAgICAgICAgICByZXR1
cm4gbnVsbDsKKworICAgICAgICAgICAgbGV0IGFscGhhID0gMTsKKyAgICAgICAgICAgIGlmIChj
b21wb25lbnRzLmxlbmd0aCA9PT0gNSkKKyAgICAgICAgICAgICAgICBhbHBoYSA9IHBhcnNlRnVu
Y3Rpb25BbHBoYShjb21wb25lbnRzWzRdKTsKKworICAgICAgICAgICAgZnVuY3Rpb24gcGFyc2VG
dW5jdGlvbkNvbXBvbmVudChjb21wb25lbnQpIHsKKyAgICAgICAgICAgICAgICBsZXQgdmFsdWUg
PSBwYXJzZUZsb2F0KGNvbXBvbmVudCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIE51bWJlci5j
b25zdHJhaW4odmFsdWUsIDAsIDEpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1
cm4gbmV3IFdJLkNvbG9yKFdJLkNvbG9yLkZvcm1hdC5GdW5jdGlvbiwgWworICAgICAgICAgICAg
ICAgIHBhcnNlRnVuY3Rpb25Db21wb25lbnQoY29tcG9uZW50c1sxXSksCisgICAgICAgICAgICAg
ICAgcGFyc2VGdW5jdGlvbkNvbXBvbmVudChjb21wb25lbnRzWzJdKSwKKyAgICAgICAgICAgICAg
ICBwYXJzZUZ1bmN0aW9uQ29tcG9uZW50KGNvbXBvbmVudHNbM10pLAorICAgICAgICAgICAgICAg
IGFscGhhLAorICAgICAgICAgICAgXSwgZ2FtdXQpOworICAgICAgICB9CisKICAgICAgICAgcmV0
dXJuIG51bGw7CiAgICAgfQogCkBAIC0zODgsNiArNDE2LDggQEAgV0kuQ29sb3IgPSBjbGFzcyBD
b2xvcgogICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RvUkdCU3RyaW5nKCk7CiAgICAgICAgIGNh
c2UgV0kuQ29sb3IuRm9ybWF0LlJHQkE6CiAgICAgICAgICAgICByZXR1cm4gdGhpcy5fdG9SR0JB
U3RyaW5nKCk7CisgICAgICAgIGNhc2UgV0kuQ29sb3IuRm9ybWF0LkZ1bmN0aW9uOgorICAgICAg
ICAgICAgcmV0dXJuIHRoaXMuX3RvRnVuY3Rpb25TdHJpbmcoKTsKICAgICAgICAgY2FzZSBXSS5D
b2xvci5Gb3JtYXQuSFNMOgogICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RvSFNMU3RyaW5nKCk7
CiAgICAgICAgIGNhc2UgV0kuQ29sb3IuRm9ybWF0LkhTTEE6CkBAIC00MTMsNiArNDQzLDkgQEAg
V0kuQ29sb3IgPSBjbGFzcyBDb2xvcgogICAgICAgICBpZiAodGhpcy5rZXl3b3JkKQogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAKKyAgICAgICAgaWYgKHRoaXMuZ2FtdXQgIT09ICJzcmdiIikK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgICAgICBpZiAoIXRoaXMuc2ltcGxlKQog
ICAgICAgICAgICAgcmV0dXJuIEFycmF5LnNoYWxsb3dFcXVhbCh0aGlzLl9yZ2JhLCBbMCwgMCwg
MCwgMF0pIHx8IEFycmF5LnNoYWxsb3dFcXVhbCh0aGlzLl9oc2xhLCBbMCwgMCwgMCwgMF0pOwog
CkBAIC01NTAsNiArNTgzLDE1IEBAIFdJLkNvbG9yID0gY2xhc3MgQ29sb3IKICAgICAgICAgcmV0
dXJuIGByZ2JhKCR7cn0sICR7Z30sICR7Yn0sICR7dGhpcy5hbHBoYX0pYDsKICAgICB9CiAKKyAg
ICBfdG9GdW5jdGlvblN0cmluZygpCisgICAgeworICAgICAgICBsZXQgW3IsIGcsIGIsIGFscGhh
XSA9IHRoaXMucmdiYTsKKyAgICAgICAgaWYgKGFscGhhID09PSAxKQorICAgICAgICAgICAgcmV0
dXJuIGBjb2xvcigke3RoaXMuZ2FtdXR9ICR7cn0gJHtnfSAke2J9KWA7CisKKyAgICAgICAgcmV0
dXJuIGBjb2xvcigke3RoaXMuZ2FtdXR9ICR7cn0gJHtnfSAke2J9IC8gJHthbHBoYX0pYDsKKyAg
ICB9CisKICAgICBfdG9IU0xTdHJpbmcoKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLnNpbXBs
ZSkKQEAgLTYwMiwxMiArNjQ0LDE0IEBAIFdJLkNvbG9yLkZvcm1hdCA9IHsKICAgICBSR0I6ICJj
b2xvci1mb3JtYXQtcmdiIiwKICAgICBSR0JBOiAiY29sb3ItZm9ybWF0LXJnYmEiLAogICAgIEhT
TDogImNvbG9yLWZvcm1hdC1oc2wiLAotICAgIEhTTEE6ICJjb2xvci1mb3JtYXQtaHNsYSIKKyAg
ICBIU0xBOiAiY29sb3ItZm9ybWF0LWhzbGEiLAorICAgIEZ1bmN0aW9uOiAiY29sb3ItZm9ybWF0
LWZ1bmN0aW9uIiwKIH07CiAKIFdJLkNvbG9yLkZ1bmN0aW9uTmFtZXMgPSBuZXcgU2V0KFsKICAg
ICAicmdiIiwKICAgICAicmdiYSIsCisgICAgImNvbG9yIiwKICAgICAiaHNsIiwKICAgICAiaHNs
YSIsCiBdKTsK
</data>
<flag name="review"
          id="398257"
          type_id="1"
          status="+"
          setter="hi"
    />
    <flag name="commit-queue"
          id="398258"
          type_id="3"
          status="-"
          setter="hi"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382594</attachid>
            <date>2019-11-01 10:58:24 -0700</date>
            <delta_ts>2019-11-01 11:11:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>13789</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhOTEzMGU0MDg1My4uNTM4MTg1MDE4YWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxOS0xMS0wMSAgTmlraXRhIFZhc2lseWV2ICA8bnZhc2lseWV2QGFwcGxlLmNvbT4KKworICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBEaXNwbGF5IGNvbG9yIHN3YXRjaGVzIGZvciBwMyBjb2xvcnMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzQzOQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTY2MzcyNTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGV2aW4gUm91c3NvLgorCisgICAgICAgICogaW5zcGVjdG9yL21vZGVsL2NvbG9yLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvbW9kZWwvY29sb3IuaHRtbDoKKwogMjAxOS0xMC0y
NiAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRW5mb3JjZSB1
c2VyIGdlc3R1cmUgZm9yIGdldFVzZXJNZWRpYSBpbiBjYXNlIGEgcHJldmlvdXMgZ2V0VXNlck1l
ZGlhIGNhbGwgd2FzIGRlbmllZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21v
ZGVsL2NvbG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9jb2xv
ci1leHBlY3RlZC50eHQKaW5kZXggOTk5YjhmYmJhNzYuLjU3Mjg5ZDBkM2I3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvY29sb3ItZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9jb2xvci1leHBlY3RlZC50eHQKQEAgLTMzMSw2ICsz
MzEsMjggQEAgVGVzdHMgZm9yIHRoZSBXSS5Db2xvciBtb2RlbCBvYmplY3QuCiAiSFNMQSgxMHR1
cm4gMjAlIDMwJSAvIDQwJSkiIHJlc29sdmVzIHRvICJoc2xhKDM2MCwgMjAlLCAzMCUsIDAuNCki
CiAiaHNsYSggMTB0dXJuICAyMCUgIDMwJSAvIDQwJSApIiByZXNvbHZlcyB0byAiaHNsYSgzNjAs
IDIwJSwgMzAlLCAwLjQpIgogImhzbGEoOTk5dHVybiA5OTklIDk5OSUgLyA5OTklKSIgcmVzb2x2
ZXMgdG8gImhzbGEoMzYwLCAxMDAlLCAxMDAlLCAxKSIKKyJjb2xvcihkaXNwbGF5LXAzIDAgMSAw
LjUpIiByZXNvbHZlcyB0byAiY29sb3IoZGlzcGxheS1wMyAwIDEgMC41KSIKKyJDT0xPUihESVNQ
TEFZLVAzIDAgMSAwLjUpIiByZXNvbHZlcyB0byAiY29sb3IoZGlzcGxheS1wMyAwIDEgMC41KSIK
KyJjb2xvcihzcmdiIDAuMTIzIDAuOTk5IDEpIiByZXNvbHZlcyB0byAiY29sb3Ioc3JnYiAwLjEy
MyAwLjk5OSAxKSIKKyJDT0xPUihTUkdCIDAuMTIzIDAuOTk5IDEpIiByZXNvbHZlcyB0byAiY29s
b3Ioc3JnYiAwLjEyMyAwLjk5OSAxKSIKKyJjb2xvciggZGlzcGxheS1wMyAwIDEgMC41ICkiIHJl
c29sdmVzIHRvICJjb2xvcihkaXNwbGF5LXAzIDAgMSAwLjUpIgorImNvbG9yKGRpc3BsYXktcDMg
OTk5IDk5OSA5OTkpIiByZXNvbHZlcyB0byAiY29sb3IoZGlzcGxheS1wMyAxIDEgMSkiCisiY29s
b3Ioc3JnYiAwLjEyMyAwLjk5OSAxLzAuNSkiIHJlc29sdmVzIHRvICJjb2xvcihzcmdiIDAuMTIz
IDAuOTk5IDEgLyAwLjUpIgorIkNPTE9SKFNSR0IgMC4xMjMgMC45OTkgMS8wLjUpIiByZXNvbHZl
cyB0byAiY29sb3Ioc3JnYiAwLjEyMyAwLjk5OSAxIC8gMC41KSIKKyJjb2xvciggZGlzcGxheS1w
MyAwIDEgMC41LzAuNSkiIHJlc29sdmVzIHRvICJjb2xvcihkaXNwbGF5LXAzIDAgMSAwLjUgLyAw
LjUpIgorImNvbG9yKGRpc3BsYXktcDMgOTk5IDk5OSA5OTkvOTk5KSIgcmVzb2x2ZXMgdG8gImNv
bG9yKGRpc3BsYXktcDMgMSAxIDEpIgorImNvbG9yKHNyZ2IgMC4xMjMgMC45OTkgMSAvIDAuNSki
IHJlc29sdmVzIHRvICJjb2xvcihzcmdiIDAuMTIzIDAuOTk5IDEgLyAwLjUpIgorIkNPTE9SKFNS
R0IgMC4xMjMgMC45OTkgMSAvIDAuNSkiIHJlc29sdmVzIHRvICJjb2xvcihzcmdiIDAuMTIzIDAu
OTk5IDEgLyAwLjUpIgorImNvbG9yKCBkaXNwbGF5LXAzIDAgMSAwLjUgLyAwLjUpIiByZXNvbHZl
cyB0byAiY29sb3IoZGlzcGxheS1wMyAwIDEgMC41IC8gMC41KSIKKyJjb2xvcihkaXNwbGF5LXAz
IDk5OSA5OTkgOTk5IC8gOTk5KSIgcmVzb2x2ZXMgdG8gImNvbG9yKGRpc3BsYXktcDMgMSAxIDEp
IgorImNvbG9yKHNyZ2IgMC4xMjMgMC45OTkgMS8zMyUpIiByZXNvbHZlcyB0byAiY29sb3Ioc3Jn
YiAwLjEyMyAwLjk5OSAxIC8gMC4zMykiCisiQ09MT1IoU1JHQiAwLjEyMyAwLjk5OSAxLzMzJSki
IHJlc29sdmVzIHRvICJjb2xvcihzcmdiIDAuMTIzIDAuOTk5IDEgLyAwLjMzKSIKKyJjb2xvcigg
ZGlzcGxheS1wMyAwIDEgMC41LzMzJSkiIHJlc29sdmVzIHRvICJjb2xvcihkaXNwbGF5LXAzIDAg
MSAwLjUgLyAwLjMzKSIKKyJjb2xvcihkaXNwbGF5LXAzIDk5OSA5OTkgOTk5Lzk5OSUpIiByZXNv
bHZlcyB0byAiY29sb3IoZGlzcGxheS1wMyAxIDEgMSkiCisiY29sb3Ioc3JnYiAwLjEyMyAwLjk5
OSAxIC8gMzMlKSIgcmVzb2x2ZXMgdG8gImNvbG9yKHNyZ2IgMC4xMjMgMC45OTkgMSAvIDAuMzMp
IgorIkNPTE9SKFNSR0IgMC4xMjMgMC45OTkgMSAvIDMzJSkiIHJlc29sdmVzIHRvICJjb2xvcihz
cmdiIDAuMTIzIDAuOTk5IDEgLyAwLjMzKSIKKyJjb2xvciggZGlzcGxheS1wMyAwIDEgMC41IC8g
MzMlKSIgcmVzb2x2ZXMgdG8gImNvbG9yKGRpc3BsYXktcDMgMCAxIDAuNSAvIDAuMzMpIgorImNv
bG9yKGRpc3BsYXktcDMgOTk5IDk5OSA5OTkgLyA5OTklKSIgcmVzb2x2ZXMgdG8gImNvbG9yKGRp
c3BsYXktcDMgMSAxIDEpIgogCiBQQVNTOiAnICMwMDAgJyBzaG91bGQgbm90IGJlIGRldGVjdGVk
CiBQQVNTOiAnI3JnYicgc2hvdWxkIG5vdCBiZSBkZXRlY3RlZApAQCAtMzQ0LDYgKzM2Niw4IEBA
IFBBU1M6ICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSwgMSknIHNob3VsZCBub3QgYmUgZGV0ZWN0
ZWQKIFBBU1M6ICdoc2woMCwgMCUsIDUwJSwgMSwgMiknIHNob3VsZCBub3QgYmUgZGV0ZWN0ZWQK
IFBBU1M6ICdoc2xhKDAsIDAlLCA1MCUsIDEsIDIpJyBzaG91bGQgbm90IGJlIGRldGVjdGVkCiBQ
QVNTOiAnc3VwZXJibHVlJyBzaG91bGQgbm90IGJlIGRldGVjdGVkCitQQVNTOiAnY29sb3IoZGlz
cGxheS1wMyAwIDEpJyBzaG91bGQgbm90IGJlIGRldGVjdGVkCitQQVNTOiAnY29sb3IoZGlzcGxh
eS1wMyAwIDEgMiA0IDUpJyBzaG91bGQgbm90IGJlIGRldGVjdGVkCiAKIC0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBXSS5Db2xvciBwcm9wZXJ0aWVzCiBQQVNTOiAncmVkJyBzaG91bGQgaGF2ZSBhbHBo
YSBvZiAxLgpAQCAtMzcwLDYgKzM5NCwxNCBAQCBQQVNTOiAnIzExMTIyMjMzJyBoYXMgaHNsYSBv
ZiBbMjM2LjQ3LCAzMy4zMywgMTAsIDAuMl0uCiBQQVNTOiAnIzExMTIyMjMzJyBzaG91bGQgbm90
IGJlIHNlcmlhbGl6YWJsZSBhcyBhIHNob3J0IEhleAogUEFTUzogJyMxMTIyMzM0NCcgc2hvdWxk
IGJlIHNlcmlhbGl6YWJsZSBhcyBhIHNob3J0IEhleAogUEFTUzogJyMxMTIyMzM0NScgc2hvdWxk
IG5vdCBiZSBzZXJpYWxpemFibGUgYXMgYSBzaG9ydCBIZXgKK1BBU1M6ICdjb2xvcihkaXNwbGF5
LXAzIDAgMSAwLjUpJyBjb2xvciBzaG91bGQgaGF2ZSBhIGRlZmF1bHQgYWxwaGEgb2YgMQorUEFT
UzogY29sb3IgZnVuY3Rpb24gaXMgbm90IGEga2V5d29yZAorUEFTUzogJ2NvbG9yKGRpc3BsYXkt
cDMgMCAxIDAuNSknIGhhcyByZ2Igb2YgWzAsIDEsIDAuNV0KK1BBU1M6ICdjb2xvcihkaXNwbGF5
LXAzIDAgMSAwLjUpJyBoYXMgcmdiYSBvZiBbMCwgMSwgMC41LCAxXQorUEFTUzogJ2NvbG9yKGRp
c3BsYXktcDMgMCAxIDAuNSAvIDAuMyknIHNob3VsZCBoYXZlIGFuIGFscGhhIG9mIDAuMworUEFT
UzogY29sb3IgZnVuY3Rpb24gaXMgbm90IGEga2V5d29yZAorUEFTUzogJ2NvbG9yKGRpc3BsYXkt
cDMgMCAxIDAuNSAvIDAuMyknIGhhcyByZ2Igb2YgWzAsIDEsIDAuNV0KK1BBU1M6ICdjb2xvcihk
aXNwbGF5LXAzIDAgMSAwLjUgLyAwLjMpJyBoYXMgcmdiYSBvZiBbMCwgMSwgMC41LCAwLjNdCiAK
IC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5Db2xvciBmcm9tIGNvbXBvbmVudHMKIENoZWNrIGNv
bXBvbmVudHMgZm9yIGNvbG9yICdyZ2IoMjU1LCAwLCAwKScuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvbW9kZWwvY29sb3IuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9t
b2RlbC9jb2xvci5odG1sCmluZGV4IDZiMjlkMjBhYzI0Li4zNzY1ZjMxMGNlNiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL2NvbG9yLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL21vZGVsL2NvbG9yLmh0bWwKQEAgLTI3LDYgKzI3LDggQEAgZnVuY3Rpb24g
dGVzdCgpCiAgICAgICAgICAgICByZXR1cm4gIkhTTCI7CiAgICAgICAgIGNhc2UgV0kuQ29sb3Iu
Rm9ybWF0LkhTTEE6CiAgICAgICAgICAgICByZXR1cm4gIkhTTEEiOworICAgICAgICBjYXNlIFdJ
LkNvbG9yLkZvcm1hdC5Db2xvckZ1bmN0aW9uOgorICAgICAgICAgICAgcmV0dXJuICJGdW5jdGlv
biI7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gIlVuZXhwZWN0ZWQgZm9y
bWF0IjsKICAgICAgICAgfQpAQCAtMjI0LDYgKzIyNiwzNCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICAgICAgICAgICAgICB0ZXN0R29vZChgaHNsYSg5OTkke3VuaXR9IDk5OSUgOTk5JSAvIDk5OSUp
YCwgV0kuQ29sb3IuRm9ybWF0LkhTTEEpOwogICAgICAgICAgICAgfQogCisgICAgICAgICAgICB0
ZXN0R29vZCgiY29sb3IoZGlzcGxheS1wMyAwIDEgMC41KSIsIFdJLkNvbG9yLkZvcm1hdC5Db2xv
ckZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJDT0xPUihESVNQTEFZLVAzIDAgMSAw
LjUpIiwgV0kuQ29sb3IuRm9ybWF0LkNvbG9yRnVuY3Rpb24pOworCisgICAgICAgICAgICB0ZXN0
R29vZCgiY29sb3Ioc3JnYiAwLjEyMyAwLjk5OSAxKSIsIFdJLkNvbG9yLkZvcm1hdC5Db2xvckZ1
bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJDT0xPUihTUkdCIDAuMTIzIDAuOTk5IDEp
IiwgV0kuQ29sb3IuRm9ybWF0LkNvbG9yRnVuY3Rpb24pOworICAgICAgICAgICAgdGVzdEdvb2Qo
ImNvbG9yKCBkaXNwbGF5LXAzIDAgMSAwLjUgKSIsIFdJLkNvbG9yLkZvcm1hdC5Db2xvckZ1bmN0
aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJjb2xvcihkaXNwbGF5LXAzIDk5OSA5OTkgOTk5
KSIsIFdJLkNvbG9yLkZvcm1hdC5Db2xvckZ1bmN0aW9uKTsKKworICAgICAgICAgICAgdGVzdEdv
b2QoImNvbG9yKHNyZ2IgMC4xMjMgMC45OTkgMS8wLjUpIiwgV0kuQ29sb3IuRm9ybWF0LkNvbG9y
RnVuY3Rpb24pOworICAgICAgICAgICAgdGVzdEdvb2QoIkNPTE9SKFNSR0IgMC4xMjMgMC45OTkg
MS8wLjUpIiwgV0kuQ29sb3IuRm9ybWF0LkNvbG9yRnVuY3Rpb24pOworICAgICAgICAgICAgdGVz
dEdvb2QoImNvbG9yKCBkaXNwbGF5LXAzIDAgMSAwLjUvMC41KSIsIFdJLkNvbG9yLkZvcm1hdC5D
b2xvckZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJjb2xvcihkaXNwbGF5LXAzIDk5
OSA5OTkgOTk5Lzk5OSkiLCBXSS5Db2xvci5Gb3JtYXQuQ29sb3JGdW5jdGlvbik7CisKKyAgICAg
ICAgICAgIHRlc3RHb29kKCJjb2xvcihzcmdiIDAuMTIzIDAuOTk5IDEgLyAwLjUpIiwgV0kuQ29s
b3IuRm9ybWF0LkNvbG9yRnVuY3Rpb24pOworICAgICAgICAgICAgdGVzdEdvb2QoIkNPTE9SKFNS
R0IgMC4xMjMgMC45OTkgMSAvIDAuNSkiLCBXSS5Db2xvci5Gb3JtYXQuQ29sb3JGdW5jdGlvbik7
CisgICAgICAgICAgICB0ZXN0R29vZCgiY29sb3IoIGRpc3BsYXktcDMgMCAxIDAuNSAvIDAuNSki
LCBXSS5Db2xvci5Gb3JtYXQuQ29sb3JGdW5jdGlvbik7CisgICAgICAgICAgICB0ZXN0R29vZCgi
Y29sb3IoZGlzcGxheS1wMyA5OTkgOTk5IDk5OSAvIDk5OSkiLCBXSS5Db2xvci5Gb3JtYXQuQ29s
b3JGdW5jdGlvbik7CisKKyAgICAgICAgICAgIHRlc3RHb29kKCJjb2xvcihzcmdiIDAuMTIzIDAu
OTk5IDEvMzMlKSIsIFdJLkNvbG9yLkZvcm1hdC5Db2xvckZ1bmN0aW9uKTsKKyAgICAgICAgICAg
IHRlc3RHb29kKCJDT0xPUihTUkdCIDAuMTIzIDAuOTk5IDEvMzMlKSIsIFdJLkNvbG9yLkZvcm1h
dC5Db2xvckZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJjb2xvciggZGlzcGxheS1w
MyAwIDEgMC41LzMzJSkiLCBXSS5Db2xvci5Gb3JtYXQuQ29sb3JGdW5jdGlvbik7CisgICAgICAg
ICAgICB0ZXN0R29vZCgiY29sb3IoZGlzcGxheS1wMyA5OTkgOTk5IDk5OS85OTklKSIsIFdJLkNv
bG9yLkZvcm1hdC5Db2xvckZ1bmN0aW9uKTsKKworICAgICAgICAgICAgdGVzdEdvb2QoImNvbG9y
KHNyZ2IgMC4xMjMgMC45OTkgMSAvIDMzJSkiLCBXSS5Db2xvci5Gb3JtYXQuQ29sb3JGdW5jdGlv
bik7CisgICAgICAgICAgICB0ZXN0R29vZCgiQ09MT1IoU1JHQiAwLjEyMyAwLjk5OSAxIC8gMzMl
KSIsIFdJLkNvbG9yLkZvcm1hdC5Db2xvckZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29k
KCJjb2xvciggZGlzcGxheS1wMyAwIDEgMC41IC8gMzMlKSIsIFdJLkNvbG9yLkZvcm1hdC5Db2xv
ckZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJjb2xvcihkaXNwbGF5LXAzIDk5OSA5
OTkgOTk5IC8gOTk5JSkiLCBXSS5Db2xvci5Gb3JtYXQuQ29sb3JGdW5jdGlvbik7CisKICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCIiKTsKIAogICAgICAgICAgICAgdGVzdEJhZCgiICMw
MDAgIik7IC8vIHdoaXRlc3BhY2UKQEAgLTIzOCw2ICsyNjgsOCBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICAgICAgICAgIHRlc3RCYWQoImhzbCgwLCAwJSwgNTAlLCAxLCAyKSIpOyAvLyBleHRyYSB2
YWx1ZQogICAgICAgICAgICAgdGVzdEJhZCgiaHNsYSgwLCAwJSwgNTAlLCAxLCAyKSIpOyAvLyBl
eHRyYSB2YWx1ZXMKICAgICAgICAgICAgIHRlc3RCYWQoInN1cGVyYmx1ZSIpOyAvLyBub3QgYSBr
ZXl3b3JkCisgICAgICAgICAgICB0ZXN0QmFkKCJjb2xvcihkaXNwbGF5LXAzIDAgMSkiKTsgLy8g
MgorICAgICAgICAgICAgdGVzdEJhZCgiY29sb3IoZGlzcGxheS1wMyAwIDEgMiA0IDUpIik7IC8v
IDUKIAogICAgICAgICAgICAgLy8gRklYTUU6IGN1cnJlbnRDb2xvcj8KICAgICAgICAgICAgIC8v
IEZJWE1FOiBTaG91bGQgd2UgY29uc2lkZXIgbWlzc2luZyAlcyBhcyBiYWQ/IEN1cnJlbnRseSB3
ZSBqdXN0IHN0cmlwIHRoZW0uCkBAIC0yODgsNiArMzIwLDE4IEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgICAgICAgICAgY29sb3IgPSBXSS5Db2xvci5mcm9tU3RyaW5nKCIjMTEyMjMzNDUiKTsKICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChjb2xvci5jYW5CZVNlcmlhbGl6ZWRB
c1Nob3J0SEVYKCkgPT09IGZhbHNlLCAiJyMxMTIyMzM0NScgc2hvdWxkIG5vdCBiZSBzZXJpYWxp
emFibGUgYXMgYSBzaG9ydCBIZXgiKTsKIAorICAgICAgICAgICAgY29sb3IgPSBXSS5Db2xvci5m
cm9tU3RyaW5nKCJjb2xvcihkaXNwbGF5LXAzIDAgMSAwLjUpIik7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdFRoYXQoY29sb3IuYWxwaGEgPT09IDEsICInY29sb3IoZGlzcGxheS1w
MyAwIDEgMC41KScgY29sb3Igc2hvdWxkIGhhdmUgYSBkZWZhdWx0IGFscGhhIG9mIDEiKTsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChjb2xvci5pc0tleXdvcmQoKSA9PT0g
ZmFsc2UsICJjb2xvciBmdW5jdGlvbiBpcyBub3QgYSBrZXl3b3JkIik7CisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGVjdFNoYWxsb3dFcXVhbChjb2xvci5yZ2IsIFswLCAxLCAwLjVdLCAi
J2NvbG9yKGRpc3BsYXktcDMgMCAxIDAuNSknIGhhcyByZ2Igb2YgWzAsIDEsIDAuNV0iKTsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0U2hhbGxvd0VxdWFsKGNvbG9yLnJnYmEsIFsw
LCAxLCAwLjUsIDFdLCAiJ2NvbG9yKGRpc3BsYXktcDMgMCAxIDAuNSknIGhhcyByZ2JhIG9mIFsw
LCAxLCAwLjUsIDFdIik7CisKKyAgICAgICAgICAgIGNvbG9yID0gV0kuQ29sb3IuZnJvbVN0cmlu
ZygiY29sb3IoZGlzcGxheS1wMyAwIDEgMC41IC8gMC4zKSIpOworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RUaGF0KGNvbG9yLmFscGhhID09PSAwLjMsICInY29sb3IoZGlzcGxheS1w
MyAwIDEgMC41IC8gMC4zKScgc2hvdWxkIGhhdmUgYW4gYWxwaGEgb2YgMC4zIik7CisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoY29sb3IuaXNLZXl3b3JkKCkgPT09IGZhbHNl
LCAiY29sb3IgZnVuY3Rpb24gaXMgbm90IGEga2V5d29yZCIpOworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RTaGFsbG93RXF1YWwoY29sb3IucmdiLCBbMCwgMSwgMC41XSwgIidjb2xv
cihkaXNwbGF5LXAzIDAgMSAwLjUgLyAwLjMpJyBoYXMgcmdiIG9mIFswLCAxLCAwLjVdIik7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFNoYWxsb3dFcXVhbChjb2xvci5yZ2JhLCBb
MCwgMSwgMC41LCAwLjNdLCAiJ2NvbG9yKGRpc3BsYXktcDMgMCAxIDAuNSAvIDAuMyknIGhhcyBy
Z2JhIG9mIFswLCAxLCAwLjUsIDAuM10iKTsKKwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIH0KICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDczMzRkYmJkOWEy
Li44ODNmNzZmNDA1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTktMTEtMDEgIE5pa2l0YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogRGlzcGxheSBjb2xvciBzd2F0Y2hlcyBmb3IgcDMgY29sb3Jz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM0MzkK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2NjM3MjUwPgorCisgICAgICAgIFJldmlld2VkIGJ5
IERldmluIFJvdXNzby4KKworICAgICAgICBEZXRlY3QgYGNvbG9yKGRpc3BsYXktcDMgMCAxIDAp
YCBhcyBhIGNvbG9yIGluIHRoZSBzdHlsZSBlZGl0b3IuCisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL01vZGVscy9Db2xvci5qczoKKyAgICAgICAgKFdJLkNvbG9yKToKKyAgICAgICAgKFdJLkNv
bG9yLmZyb21TdHJpbmcpOgorICAgICAgICAoV0kuQ29sb3IucHJvdG90eXBlLmNvcHkpOgorICAg
ICAgICAoV0kuQ29sb3IucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKFdJLkNvbG9yLnBy
b3RvdHlwZS5pc0tleXdvcmQpOgorICAgICAgICAoV0kuQ29sb3IucHJvdG90eXBlLl90b0Z1bmN0
aW9uU3RyaW5nKToKKwogMjAxOS0xMC0yNSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5j
b20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogU3R5bGVzOiB1bi1leHBlcmltZW50YWxpemUg
c2hvd2luZyBydWxlIGljb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvQ29sb3IuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvQ29sb3IuanMKaW5kZXggYjY2ZjFhNmY5YzMuLjIyNWUyOWQ2M2RmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ29s
b3IuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0Nv
bG9yLmpzCkBAIC0yOSw5ICsyOSwxMCBAQAogCiBXSS5Db2xvciA9IGNsYXNzIENvbG9yCiB7Ci0g
ICAgY29uc3RydWN0b3IoZm9ybWF0LCBjb21wb25lbnRzKQorICAgIGNvbnN0cnVjdG9yKGZvcm1h
dCwgY29tcG9uZW50cywgZ2FtdXQpCiAgICAgewogICAgICAgICB0aGlzLmZvcm1hdCA9IGZvcm1h
dDsKKyAgICAgICAgdGhpcy5nYW11dCA9IGdhbXV0IHx8ICJzcmdiIjsKIAogICAgICAgICBpZiAo
Y29tcG9uZW50cy5sZW5ndGggPT09IDMpCiAgICAgICAgICAgICBjb21wb25lbnRzLnB1c2goMSk7
CkBAIC00OCw3ICs0OSw3IEBAIFdJLkNvbG9yID0gY2xhc3MgQ29sb3IKIAogICAgIHN0YXRpYyBm
cm9tU3RyaW5nKGNvbG9yU3RyaW5nKQogICAgIHsKLSAgICAgICAgY29uc3QgbWF0Y2hSZWdFeHAg
PSAvXig/OiMoPzxoZXg+WzAtOWEtZl17Myw4fSl8cmdiYT9cKCg/PHJnYj5bXildKylcKXwoPzxr
ZXl3b3JkPlx3Kyl8aHNsYT9cKCg/PGhzbD5bXildKylcKSkkL2k7CisgICAgICAgIGNvbnN0IG1h
dGNoUmVnRXhwID0gL14oPzojKD88aGV4PlswLTlhLWZdezMsOH0pfHJnYmE/XCgoPzxyZ2I+W14p
XSspXCl8KD88a2V5d29yZD5cdyspfGNvbG9yXCgoPzxjb2xvcj5bXildKylcKXxoc2xhP1woKD88
aHNsPlteKV0rKVwpKSQvaTsKICAgICAgICAgbGV0IG1hdGNoID0gY29sb3JTdHJpbmcubWF0Y2go
bWF0Y2hSZWdFeHApOwogICAgICAgICBpZiAoIW1hdGNoKQogICAgICAgICAgICAgcmV0dXJuIG51
bGw7CkBAIC0xNzAsNiArMTcxLDMzIEBAIFdJLkNvbG9yID0gY2xhc3MgQ29sb3IKICAgICAgICAg
ICAgIF0pOwogICAgICAgICB9CiAKKyAgICAgICAgaWYgKG1hdGNoLmdyb3Vwcy5jb2xvcikgewor
ICAgICAgICAgICAgbGV0IGNvbG9yU3RyaW5nID0gbWF0Y2guZ3JvdXBzLmNvbG9yLnRyaW0oKTsK
KyAgICAgICAgICAgIGxldCBjb21wb25lbnRzID0gc3BsaXRGdW5jdGlvblN0cmluZyhjb2xvclN0
cmluZyk7CisgICAgICAgICAgICBpZiAoY29tcG9uZW50cy5sZW5ndGggIT09IDQgJiYgY29tcG9u
ZW50cy5sZW5ndGggIT09IDUpCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICAg
ICAgICAgIGxldCBnYW11dCA9IGNvbXBvbmVudHNbMF0udG9Mb3dlckNhc2UoKTsKKyAgICAgICAg
ICAgIGlmIChnYW11dCAhPT0gInNyZ2IiICYmIGdhbXV0ICE9PSAiZGlzcGxheS1wMyIpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICAgICAgICAgIGxldCBhbHBoYSA9IDE7Cisg
ICAgICAgICAgICBpZiAoY29tcG9uZW50cy5sZW5ndGggPT09IDUpCisgICAgICAgICAgICAgICAg
YWxwaGEgPSBwYXJzZUZ1bmN0aW9uQWxwaGEoY29tcG9uZW50c1s0XSk7CisKKyAgICAgICAgICAg
IGZ1bmN0aW9uIHBhcnNlRnVuY3Rpb25Db21wb25lbnQoY29tcG9uZW50KSB7CisgICAgICAgICAg
ICAgICAgbGV0IHZhbHVlID0gcGFyc2VGbG9hdChjb21wb25lbnQpOworICAgICAgICAgICAgICAg
IHJldHVybiBOdW1iZXIuY29uc3RyYWluKHZhbHVlLCAwLCAxKTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgcmV0dXJuIG5ldyBXSS5Db2xvcihXSS5Db2xvci5Gb3JtYXQuQ29sb3JGdW5j
dGlvbiwgWworICAgICAgICAgICAgICAgIHBhcnNlRnVuY3Rpb25Db21wb25lbnQoY29tcG9uZW50
c1sxXSksCisgICAgICAgICAgICAgICAgcGFyc2VGdW5jdGlvbkNvbXBvbmVudChjb21wb25lbnRz
WzJdKSwKKyAgICAgICAgICAgICAgICBwYXJzZUZ1bmN0aW9uQ29tcG9uZW50KGNvbXBvbmVudHNb
M10pLAorICAgICAgICAgICAgICAgIGFscGhhLAorICAgICAgICAgICAgXSwgZ2FtdXQpOworICAg
ICAgICB9CisKICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgfQogCkBAIC0zNjksMTAgKzM5Nywx
MCBAQCBXSS5Db2xvciA9IGNsYXNzIENvbG9yCiAgICAgICAgIGNhc2UgV0kuQ29sb3IuRm9ybWF0
LlNob3J0SEVYQWxwaGE6CiAgICAgICAgIGNhc2UgV0kuQ29sb3IuRm9ybWF0LktleXdvcmQ6CiAg
ICAgICAgIGNhc2UgV0kuQ29sb3IuRm9ybWF0LlJHQkE6Ci0gICAgICAgICAgICByZXR1cm4gbmV3
IFdJLkNvbG9yKHRoaXMuZm9ybWF0LCB0aGlzLnJnYmEpOworICAgICAgICAgICAgcmV0dXJuIG5l
dyBXSS5Db2xvcih0aGlzLmZvcm1hdCwgdGhpcy5yZ2JhLCB0aGlzLmdhbXV0KTsKICAgICAgICAg
Y2FzZSBXSS5Db2xvci5Gb3JtYXQuSFNMOgogICAgICAgICBjYXNlIFdJLkNvbG9yLkZvcm1hdC5I
U0xBOgotICAgICAgICAgICAgcmV0dXJuIG5ldyBXSS5Db2xvcih0aGlzLmZvcm1hdCwgdGhpcy5o
c2xhKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgV0kuQ29sb3IodGhpcy5mb3JtYXQsIHRoaXMu
aHNsYSwgdGhpcy5nYW11dCk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTM4OCw2ICs0MTYsOCBA
QCBXSS5Db2xvciA9IGNsYXNzIENvbG9yCiAgICAgICAgICAgICByZXR1cm4gdGhpcy5fdG9SR0JT
dHJpbmcoKTsKICAgICAgICAgY2FzZSBXSS5Db2xvci5Gb3JtYXQuUkdCQToKICAgICAgICAgICAg
IHJldHVybiB0aGlzLl90b1JHQkFTdHJpbmcoKTsKKyAgICAgICAgY2FzZSBXSS5Db2xvci5Gb3Jt
YXQuQ29sb3JGdW5jdGlvbjoKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl90b0Z1bmN0aW9uU3Ry
aW5nKCk7CiAgICAgICAgIGNhc2UgV0kuQ29sb3IuRm9ybWF0LkhTTDoKICAgICAgICAgICAgIHJl
dHVybiB0aGlzLl90b0hTTFN0cmluZygpOwogICAgICAgICBjYXNlIFdJLkNvbG9yLkZvcm1hdC5I
U0xBOgpAQCAtNDEzLDYgKzQ0Myw5IEBAIFdJLkNvbG9yID0gY2xhc3MgQ29sb3IKICAgICAgICAg
aWYgKHRoaXMua2V5d29yZCkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgICAgIGlm
ICh0aGlzLmdhbXV0ICE9PSAic3JnYiIpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKICAg
ICAgICAgaWYgKCF0aGlzLnNpbXBsZSkKICAgICAgICAgICAgIHJldHVybiBBcnJheS5zaGFsbG93
RXF1YWwodGhpcy5fcmdiYSwgWzAsIDAsIDAsIDBdKSB8fCBBcnJheS5zaGFsbG93RXF1YWwodGhp
cy5faHNsYSwgWzAsIDAsIDAsIDBdKTsKIApAQCAtNTUwLDYgKzU4MywxNCBAQCBXSS5Db2xvciA9
IGNsYXNzIENvbG9yCiAgICAgICAgIHJldHVybiBgcmdiYSgke3J9LCAke2d9LCAke2J9LCAke3Ro
aXMuYWxwaGF9KWA7CiAgICAgfQogCisgICAgX3RvRnVuY3Rpb25TdHJpbmcoKQorICAgIHsKKyAg
ICAgICAgbGV0IFtyLCBnLCBiLCBhbHBoYV0gPSB0aGlzLnJnYmE7CisgICAgICAgIGlmIChhbHBo
YSA9PT0gMSkKKyAgICAgICAgICAgIHJldHVybiBgY29sb3IoJHt0aGlzLmdhbXV0fSAke3J9ICR7
Z30gJHtifSlgOworICAgICAgICByZXR1cm4gYGNvbG9yKCR7dGhpcy5nYW11dH0gJHtyfSAke2d9
ICR7Yn0gLyAke2FscGhhfSlgOworICAgIH0KKwogICAgIF90b0hTTFN0cmluZygpCiAgICAgewog
ICAgICAgICBpZiAoIXRoaXMuc2ltcGxlKQpAQCAtNjAyLDcgKzY0Myw4IEBAIFdJLkNvbG9yLkZv
cm1hdCA9IHsKICAgICBSR0I6ICJjb2xvci1mb3JtYXQtcmdiIiwKICAgICBSR0JBOiAiY29sb3It
Zm9ybWF0LXJnYmEiLAogICAgIEhTTDogImNvbG9yLWZvcm1hdC1oc2wiLAotICAgIEhTTEE6ICJj
b2xvci1mb3JtYXQtaHNsYSIKKyAgICBIU0xBOiAiY29sb3ItZm9ybWF0LWhzbGEiLAorICAgIENv
bG9yRnVuY3Rpb246ICJjb2xvci1mb3JtYXQtY29sb3ItZnVuY3Rpb24iLAogfTsKIAogV0kuQ29s
b3IuRnVuY3Rpb25OYW1lcyA9IG5ldyBTZXQoWwpAQCAtNjEwLDYgKzY1Miw3IEBAIFdJLkNvbG9y
LkZ1bmN0aW9uTmFtZXMgPSBuZXcgU2V0KFsKICAgICAicmdiYSIsCiAgICAgImhzbCIsCiAgICAg
ImhzbGEiLAorICAgICJjb2xvciIsCiBdKTsKIAogV0kuQ29sb3IuS2V5d29yZHMgPSB7Cg==
</data>
<flag name="commit-queue"
          id="398350"
          type_id="3"
          status="-"
          setter="nvasilyev"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382596</attachid>
            <date>2019-11-01 11:11:55 -0700</date>
            <delta_ts>2019-11-01 12:34:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>13834</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhOTEzMGU0MDg1My4uNTM4MTg1MDE4YWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxOS0xMS0wMSAgTmlraXRhIFZhc2lseWV2ICA8bnZhc2lseWV2QGFwcGxlLmNvbT4KKworICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBEaXNwbGF5IGNvbG9yIHN3YXRjaGVzIGZvciBwMyBjb2xvcnMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzQzOQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTY2MzcyNTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGV2aW4gUm91c3NvLgorCisgICAgICAgICogaW5zcGVjdG9yL21vZGVsL2NvbG9yLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvbW9kZWwvY29sb3IuaHRtbDoKKwogMjAxOS0xMC0y
NiAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRW5mb3JjZSB1
c2VyIGdlc3R1cmUgZm9yIGdldFVzZXJNZWRpYSBpbiBjYXNlIGEgcHJldmlvdXMgZ2V0VXNlck1l
ZGlhIGNhbGwgd2FzIGRlbmllZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21v
ZGVsL2NvbG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9jb2xv
ci1leHBlY3RlZC50eHQKaW5kZXggOTk5YjhmYmJhNzYuLjU3Mjg5ZDBkM2I3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvY29sb3ItZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9jb2xvci1leHBlY3RlZC50eHQKQEAgLTMzMSw2ICsz
MzEsMjggQEAgVGVzdHMgZm9yIHRoZSBXSS5Db2xvciBtb2RlbCBvYmplY3QuCiAiSFNMQSgxMHR1
cm4gMjAlIDMwJSAvIDQwJSkiIHJlc29sdmVzIHRvICJoc2xhKDM2MCwgMjAlLCAzMCUsIDAuNCki
CiAiaHNsYSggMTB0dXJuICAyMCUgIDMwJSAvIDQwJSApIiByZXNvbHZlcyB0byAiaHNsYSgzNjAs
IDIwJSwgMzAlLCAwLjQpIgogImhzbGEoOTk5dHVybiA5OTklIDk5OSUgLyA5OTklKSIgcmVzb2x2
ZXMgdG8gImhzbGEoMzYwLCAxMDAlLCAxMDAlLCAxKSIKKyJjb2xvcihkaXNwbGF5LXAzIDAgMSAw
LjUpIiByZXNvbHZlcyB0byAiY29sb3IoZGlzcGxheS1wMyAwIDEgMC41KSIKKyJDT0xPUihESVNQ
TEFZLVAzIDAgMSAwLjUpIiByZXNvbHZlcyB0byAiY29sb3IoZGlzcGxheS1wMyAwIDEgMC41KSIK
KyJjb2xvcihzcmdiIDAuMTIzIDAuOTk5IDEpIiByZXNvbHZlcyB0byAiY29sb3Ioc3JnYiAwLjEy
MyAwLjk5OSAxKSIKKyJDT0xPUihTUkdCIDAuMTIzIDAuOTk5IDEpIiByZXNvbHZlcyB0byAiY29s
b3Ioc3JnYiAwLjEyMyAwLjk5OSAxKSIKKyJjb2xvciggZGlzcGxheS1wMyAwIDEgMC41ICkiIHJl
c29sdmVzIHRvICJjb2xvcihkaXNwbGF5LXAzIDAgMSAwLjUpIgorImNvbG9yKGRpc3BsYXktcDMg
OTk5IDk5OSA5OTkpIiByZXNvbHZlcyB0byAiY29sb3IoZGlzcGxheS1wMyAxIDEgMSkiCisiY29s
b3Ioc3JnYiAwLjEyMyAwLjk5OSAxLzAuNSkiIHJlc29sdmVzIHRvICJjb2xvcihzcmdiIDAuMTIz
IDAuOTk5IDEgLyAwLjUpIgorIkNPTE9SKFNSR0IgMC4xMjMgMC45OTkgMS8wLjUpIiByZXNvbHZl
cyB0byAiY29sb3Ioc3JnYiAwLjEyMyAwLjk5OSAxIC8gMC41KSIKKyJjb2xvciggZGlzcGxheS1w
MyAwIDEgMC41LzAuNSkiIHJlc29sdmVzIHRvICJjb2xvcihkaXNwbGF5LXAzIDAgMSAwLjUgLyAw
LjUpIgorImNvbG9yKGRpc3BsYXktcDMgOTk5IDk5OSA5OTkvOTk5KSIgcmVzb2x2ZXMgdG8gImNv
bG9yKGRpc3BsYXktcDMgMSAxIDEpIgorImNvbG9yKHNyZ2IgMC4xMjMgMC45OTkgMSAvIDAuNSki
IHJlc29sdmVzIHRvICJjb2xvcihzcmdiIDAuMTIzIDAuOTk5IDEgLyAwLjUpIgorIkNPTE9SKFNS
R0IgMC4xMjMgMC45OTkgMSAvIDAuNSkiIHJlc29sdmVzIHRvICJjb2xvcihzcmdiIDAuMTIzIDAu
OTk5IDEgLyAwLjUpIgorImNvbG9yKCBkaXNwbGF5LXAzIDAgMSAwLjUgLyAwLjUpIiByZXNvbHZl
cyB0byAiY29sb3IoZGlzcGxheS1wMyAwIDEgMC41IC8gMC41KSIKKyJjb2xvcihkaXNwbGF5LXAz
IDk5OSA5OTkgOTk5IC8gOTk5KSIgcmVzb2x2ZXMgdG8gImNvbG9yKGRpc3BsYXktcDMgMSAxIDEp
IgorImNvbG9yKHNyZ2IgMC4xMjMgMC45OTkgMS8zMyUpIiByZXNvbHZlcyB0byAiY29sb3Ioc3Jn
YiAwLjEyMyAwLjk5OSAxIC8gMC4zMykiCisiQ09MT1IoU1JHQiAwLjEyMyAwLjk5OSAxLzMzJSki
IHJlc29sdmVzIHRvICJjb2xvcihzcmdiIDAuMTIzIDAuOTk5IDEgLyAwLjMzKSIKKyJjb2xvcigg
ZGlzcGxheS1wMyAwIDEgMC41LzMzJSkiIHJlc29sdmVzIHRvICJjb2xvcihkaXNwbGF5LXAzIDAg
MSAwLjUgLyAwLjMzKSIKKyJjb2xvcihkaXNwbGF5LXAzIDk5OSA5OTkgOTk5Lzk5OSUpIiByZXNv
bHZlcyB0byAiY29sb3IoZGlzcGxheS1wMyAxIDEgMSkiCisiY29sb3Ioc3JnYiAwLjEyMyAwLjk5
OSAxIC8gMzMlKSIgcmVzb2x2ZXMgdG8gImNvbG9yKHNyZ2IgMC4xMjMgMC45OTkgMSAvIDAuMzMp
IgorIkNPTE9SKFNSR0IgMC4xMjMgMC45OTkgMSAvIDMzJSkiIHJlc29sdmVzIHRvICJjb2xvcihz
cmdiIDAuMTIzIDAuOTk5IDEgLyAwLjMzKSIKKyJjb2xvciggZGlzcGxheS1wMyAwIDEgMC41IC8g
MzMlKSIgcmVzb2x2ZXMgdG8gImNvbG9yKGRpc3BsYXktcDMgMCAxIDAuNSAvIDAuMzMpIgorImNv
bG9yKGRpc3BsYXktcDMgOTk5IDk5OSA5OTkgLyA5OTklKSIgcmVzb2x2ZXMgdG8gImNvbG9yKGRp
c3BsYXktcDMgMSAxIDEpIgogCiBQQVNTOiAnICMwMDAgJyBzaG91bGQgbm90IGJlIGRldGVjdGVk
CiBQQVNTOiAnI3JnYicgc2hvdWxkIG5vdCBiZSBkZXRlY3RlZApAQCAtMzQ0LDYgKzM2Niw4IEBA
IFBBU1M6ICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSwgMSknIHNob3VsZCBub3QgYmUgZGV0ZWN0
ZWQKIFBBU1M6ICdoc2woMCwgMCUsIDUwJSwgMSwgMiknIHNob3VsZCBub3QgYmUgZGV0ZWN0ZWQK
IFBBU1M6ICdoc2xhKDAsIDAlLCA1MCUsIDEsIDIpJyBzaG91bGQgbm90IGJlIGRldGVjdGVkCiBQ
QVNTOiAnc3VwZXJibHVlJyBzaG91bGQgbm90IGJlIGRldGVjdGVkCitQQVNTOiAnY29sb3IoZGlz
cGxheS1wMyAwIDEpJyBzaG91bGQgbm90IGJlIGRldGVjdGVkCitQQVNTOiAnY29sb3IoZGlzcGxh
eS1wMyAwIDEgMiA0IDUpJyBzaG91bGQgbm90IGJlIGRldGVjdGVkCiAKIC0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBXSS5Db2xvciBwcm9wZXJ0aWVzCiBQQVNTOiAncmVkJyBzaG91bGQgaGF2ZSBhbHBo
YSBvZiAxLgpAQCAtMzcwLDYgKzM5NCwxNCBAQCBQQVNTOiAnIzExMTIyMjMzJyBoYXMgaHNsYSBv
ZiBbMjM2LjQ3LCAzMy4zMywgMTAsIDAuMl0uCiBQQVNTOiAnIzExMTIyMjMzJyBzaG91bGQgbm90
IGJlIHNlcmlhbGl6YWJsZSBhcyBhIHNob3J0IEhleAogUEFTUzogJyMxMTIyMzM0NCcgc2hvdWxk
IGJlIHNlcmlhbGl6YWJsZSBhcyBhIHNob3J0IEhleAogUEFTUzogJyMxMTIyMzM0NScgc2hvdWxk
IG5vdCBiZSBzZXJpYWxpemFibGUgYXMgYSBzaG9ydCBIZXgKK1BBU1M6ICdjb2xvcihkaXNwbGF5
LXAzIDAgMSAwLjUpJyBjb2xvciBzaG91bGQgaGF2ZSBhIGRlZmF1bHQgYWxwaGEgb2YgMQorUEFT
UzogY29sb3IgZnVuY3Rpb24gaXMgbm90IGEga2V5d29yZAorUEFTUzogJ2NvbG9yKGRpc3BsYXkt
cDMgMCAxIDAuNSknIGhhcyByZ2Igb2YgWzAsIDEsIDAuNV0KK1BBU1M6ICdjb2xvcihkaXNwbGF5
LXAzIDAgMSAwLjUpJyBoYXMgcmdiYSBvZiBbMCwgMSwgMC41LCAxXQorUEFTUzogJ2NvbG9yKGRp
c3BsYXktcDMgMCAxIDAuNSAvIDAuMyknIHNob3VsZCBoYXZlIGFuIGFscGhhIG9mIDAuMworUEFT
UzogY29sb3IgZnVuY3Rpb24gaXMgbm90IGEga2V5d29yZAorUEFTUzogJ2NvbG9yKGRpc3BsYXkt
cDMgMCAxIDAuNSAvIDAuMyknIGhhcyByZ2Igb2YgWzAsIDEsIDAuNV0KK1BBU1M6ICdjb2xvcihk
aXNwbGF5LXAzIDAgMSAwLjUgLyAwLjMpJyBoYXMgcmdiYSBvZiBbMCwgMSwgMC41LCAwLjNdCiAK
IC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5Db2xvciBmcm9tIGNvbXBvbmVudHMKIENoZWNrIGNv
bXBvbmVudHMgZm9yIGNvbG9yICdyZ2IoMjU1LCAwLCAwKScuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvbW9kZWwvY29sb3IuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9t
b2RlbC9jb2xvci5odG1sCmluZGV4IDZiMjlkMjBhYzI0Li4zNzY1ZjMxMGNlNiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL2NvbG9yLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL21vZGVsL2NvbG9yLmh0bWwKQEAgLTI3LDYgKzI3LDggQEAgZnVuY3Rpb24g
dGVzdCgpCiAgICAgICAgICAgICByZXR1cm4gIkhTTCI7CiAgICAgICAgIGNhc2UgV0kuQ29sb3Iu
Rm9ybWF0LkhTTEE6CiAgICAgICAgICAgICByZXR1cm4gIkhTTEEiOworICAgICAgICBjYXNlIFdJ
LkNvbG9yLkZvcm1hdC5Db2xvckZ1bmN0aW9uOgorICAgICAgICAgICAgcmV0dXJuICJGdW5jdGlv
biI7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gIlVuZXhwZWN0ZWQgZm9y
bWF0IjsKICAgICAgICAgfQpAQCAtMjI0LDYgKzIyNiwzNCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICAgICAgICAgICAgICB0ZXN0R29vZChgaHNsYSg5OTkke3VuaXR9IDk5OSUgOTk5JSAvIDk5OSUp
YCwgV0kuQ29sb3IuRm9ybWF0LkhTTEEpOwogICAgICAgICAgICAgfQogCisgICAgICAgICAgICB0
ZXN0R29vZCgiY29sb3IoZGlzcGxheS1wMyAwIDEgMC41KSIsIFdJLkNvbG9yLkZvcm1hdC5Db2xv
ckZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJDT0xPUihESVNQTEFZLVAzIDAgMSAw
LjUpIiwgV0kuQ29sb3IuRm9ybWF0LkNvbG9yRnVuY3Rpb24pOworCisgICAgICAgICAgICB0ZXN0
R29vZCgiY29sb3Ioc3JnYiAwLjEyMyAwLjk5OSAxKSIsIFdJLkNvbG9yLkZvcm1hdC5Db2xvckZ1
bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJDT0xPUihTUkdCIDAuMTIzIDAuOTk5IDEp
IiwgV0kuQ29sb3IuRm9ybWF0LkNvbG9yRnVuY3Rpb24pOworICAgICAgICAgICAgdGVzdEdvb2Qo
ImNvbG9yKCBkaXNwbGF5LXAzIDAgMSAwLjUgKSIsIFdJLkNvbG9yLkZvcm1hdC5Db2xvckZ1bmN0
aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJjb2xvcihkaXNwbGF5LXAzIDk5OSA5OTkgOTk5
KSIsIFdJLkNvbG9yLkZvcm1hdC5Db2xvckZ1bmN0aW9uKTsKKworICAgICAgICAgICAgdGVzdEdv
b2QoImNvbG9yKHNyZ2IgMC4xMjMgMC45OTkgMS8wLjUpIiwgV0kuQ29sb3IuRm9ybWF0LkNvbG9y
RnVuY3Rpb24pOworICAgICAgICAgICAgdGVzdEdvb2QoIkNPTE9SKFNSR0IgMC4xMjMgMC45OTkg
MS8wLjUpIiwgV0kuQ29sb3IuRm9ybWF0LkNvbG9yRnVuY3Rpb24pOworICAgICAgICAgICAgdGVz
dEdvb2QoImNvbG9yKCBkaXNwbGF5LXAzIDAgMSAwLjUvMC41KSIsIFdJLkNvbG9yLkZvcm1hdC5D
b2xvckZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJjb2xvcihkaXNwbGF5LXAzIDk5
OSA5OTkgOTk5Lzk5OSkiLCBXSS5Db2xvci5Gb3JtYXQuQ29sb3JGdW5jdGlvbik7CisKKyAgICAg
ICAgICAgIHRlc3RHb29kKCJjb2xvcihzcmdiIDAuMTIzIDAuOTk5IDEgLyAwLjUpIiwgV0kuQ29s
b3IuRm9ybWF0LkNvbG9yRnVuY3Rpb24pOworICAgICAgICAgICAgdGVzdEdvb2QoIkNPTE9SKFNS
R0IgMC4xMjMgMC45OTkgMSAvIDAuNSkiLCBXSS5Db2xvci5Gb3JtYXQuQ29sb3JGdW5jdGlvbik7
CisgICAgICAgICAgICB0ZXN0R29vZCgiY29sb3IoIGRpc3BsYXktcDMgMCAxIDAuNSAvIDAuNSki
LCBXSS5Db2xvci5Gb3JtYXQuQ29sb3JGdW5jdGlvbik7CisgICAgICAgICAgICB0ZXN0R29vZCgi
Y29sb3IoZGlzcGxheS1wMyA5OTkgOTk5IDk5OSAvIDk5OSkiLCBXSS5Db2xvci5Gb3JtYXQuQ29s
b3JGdW5jdGlvbik7CisKKyAgICAgICAgICAgIHRlc3RHb29kKCJjb2xvcihzcmdiIDAuMTIzIDAu
OTk5IDEvMzMlKSIsIFdJLkNvbG9yLkZvcm1hdC5Db2xvckZ1bmN0aW9uKTsKKyAgICAgICAgICAg
IHRlc3RHb29kKCJDT0xPUihTUkdCIDAuMTIzIDAuOTk5IDEvMzMlKSIsIFdJLkNvbG9yLkZvcm1h
dC5Db2xvckZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJjb2xvciggZGlzcGxheS1w
MyAwIDEgMC41LzMzJSkiLCBXSS5Db2xvci5Gb3JtYXQuQ29sb3JGdW5jdGlvbik7CisgICAgICAg
ICAgICB0ZXN0R29vZCgiY29sb3IoZGlzcGxheS1wMyA5OTkgOTk5IDk5OS85OTklKSIsIFdJLkNv
bG9yLkZvcm1hdC5Db2xvckZ1bmN0aW9uKTsKKworICAgICAgICAgICAgdGVzdEdvb2QoImNvbG9y
KHNyZ2IgMC4xMjMgMC45OTkgMSAvIDMzJSkiLCBXSS5Db2xvci5Gb3JtYXQuQ29sb3JGdW5jdGlv
bik7CisgICAgICAgICAgICB0ZXN0R29vZCgiQ09MT1IoU1JHQiAwLjEyMyAwLjk5OSAxIC8gMzMl
KSIsIFdJLkNvbG9yLkZvcm1hdC5Db2xvckZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29k
KCJjb2xvciggZGlzcGxheS1wMyAwIDEgMC41IC8gMzMlKSIsIFdJLkNvbG9yLkZvcm1hdC5Db2xv
ckZ1bmN0aW9uKTsKKyAgICAgICAgICAgIHRlc3RHb29kKCJjb2xvcihkaXNwbGF5LXAzIDk5OSA5
OTkgOTk5IC8gOTk5JSkiLCBXSS5Db2xvci5Gb3JtYXQuQ29sb3JGdW5jdGlvbik7CisKICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCIiKTsKIAogICAgICAgICAgICAgdGVzdEJhZCgiICMw
MDAgIik7IC8vIHdoaXRlc3BhY2UKQEAgLTIzOCw2ICsyNjgsOCBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICAgICAgICAgIHRlc3RCYWQoImhzbCgwLCAwJSwgNTAlLCAxLCAyKSIpOyAvLyBleHRyYSB2
YWx1ZQogICAgICAgICAgICAgdGVzdEJhZCgiaHNsYSgwLCAwJSwgNTAlLCAxLCAyKSIpOyAvLyBl
eHRyYSB2YWx1ZXMKICAgICAgICAgICAgIHRlc3RCYWQoInN1cGVyYmx1ZSIpOyAvLyBub3QgYSBr
ZXl3b3JkCisgICAgICAgICAgICB0ZXN0QmFkKCJjb2xvcihkaXNwbGF5LXAzIDAgMSkiKTsgLy8g
MgorICAgICAgICAgICAgdGVzdEJhZCgiY29sb3IoZGlzcGxheS1wMyAwIDEgMiA0IDUpIik7IC8v
IDUKIAogICAgICAgICAgICAgLy8gRklYTUU6IGN1cnJlbnRDb2xvcj8KICAgICAgICAgICAgIC8v
IEZJWE1FOiBTaG91bGQgd2UgY29uc2lkZXIgbWlzc2luZyAlcyBhcyBiYWQ/IEN1cnJlbnRseSB3
ZSBqdXN0IHN0cmlwIHRoZW0uCkBAIC0yODgsNiArMzIwLDE4IEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgICAgICAgICAgY29sb3IgPSBXSS5Db2xvci5mcm9tU3RyaW5nKCIjMTEyMjMzNDUiKTsKICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChjb2xvci5jYW5CZVNlcmlhbGl6ZWRB
c1Nob3J0SEVYKCkgPT09IGZhbHNlLCAiJyMxMTIyMzM0NScgc2hvdWxkIG5vdCBiZSBzZXJpYWxp
emFibGUgYXMgYSBzaG9ydCBIZXgiKTsKIAorICAgICAgICAgICAgY29sb3IgPSBXSS5Db2xvci5m
cm9tU3RyaW5nKCJjb2xvcihkaXNwbGF5LXAzIDAgMSAwLjUpIik7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdFRoYXQoY29sb3IuYWxwaGEgPT09IDEsICInY29sb3IoZGlzcGxheS1w
MyAwIDEgMC41KScgY29sb3Igc2hvdWxkIGhhdmUgYSBkZWZhdWx0IGFscGhhIG9mIDEiKTsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChjb2xvci5pc0tleXdvcmQoKSA9PT0g
ZmFsc2UsICJjb2xvciBmdW5jdGlvbiBpcyBub3QgYSBrZXl3b3JkIik7CisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGVjdFNoYWxsb3dFcXVhbChjb2xvci5yZ2IsIFswLCAxLCAwLjVdLCAi
J2NvbG9yKGRpc3BsYXktcDMgMCAxIDAuNSknIGhhcyByZ2Igb2YgWzAsIDEsIDAuNV0iKTsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0U2hhbGxvd0VxdWFsKGNvbG9yLnJnYmEsIFsw
LCAxLCAwLjUsIDFdLCAiJ2NvbG9yKGRpc3BsYXktcDMgMCAxIDAuNSknIGhhcyByZ2JhIG9mIFsw
LCAxLCAwLjUsIDFdIik7CisKKyAgICAgICAgICAgIGNvbG9yID0gV0kuQ29sb3IuZnJvbVN0cmlu
ZygiY29sb3IoZGlzcGxheS1wMyAwIDEgMC41IC8gMC4zKSIpOworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RUaGF0KGNvbG9yLmFscGhhID09PSAwLjMsICInY29sb3IoZGlzcGxheS1w
MyAwIDEgMC41IC8gMC4zKScgc2hvdWxkIGhhdmUgYW4gYWxwaGEgb2YgMC4zIik7CisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoY29sb3IuaXNLZXl3b3JkKCkgPT09IGZhbHNl
LCAiY29sb3IgZnVuY3Rpb24gaXMgbm90IGEga2V5d29yZCIpOworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RTaGFsbG93RXF1YWwoY29sb3IucmdiLCBbMCwgMSwgMC41XSwgIidjb2xv
cihkaXNwbGF5LXAzIDAgMSAwLjUgLyAwLjMpJyBoYXMgcmdiIG9mIFswLCAxLCAwLjVdIik7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFNoYWxsb3dFcXVhbChjb2xvci5yZ2JhLCBb
MCwgMSwgMC41LCAwLjNdLCAiJ2NvbG9yKGRpc3BsYXktcDMgMCAxIDAuNSAvIDAuMyknIGhhcyBy
Z2JhIG9mIFswLCAxLCAwLjUsIDAuM10iKTsKKwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIH0KICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDczMzRkYmJkOWEy
Li44ODNmNzZmNDA1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTktMTEtMDEgIE5pa2l0YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogRGlzcGxheSBjb2xvciBzd2F0Y2hlcyBmb3IgcDMgY29sb3Jz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM0MzkK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2NjM3MjUwPgorCisgICAgICAgIFJldmlld2VkIGJ5
IERldmluIFJvdXNzby4KKworICAgICAgICBEZXRlY3QgYGNvbG9yKGRpc3BsYXktcDMgMCAxIDAp
YCBhcyBhIGNvbG9yIGluIHRoZSBzdHlsZSBlZGl0b3IuCisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL01vZGVscy9Db2xvci5qczoKKyAgICAgICAgKFdJLkNvbG9yKToKKyAgICAgICAgKFdJLkNv
bG9yLmZyb21TdHJpbmcpOgorICAgICAgICAoV0kuQ29sb3IucHJvdG90eXBlLmNvcHkpOgorICAg
ICAgICAoV0kuQ29sb3IucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKFdJLkNvbG9yLnBy
b3RvdHlwZS5pc0tleXdvcmQpOgorICAgICAgICAoV0kuQ29sb3IucHJvdG90eXBlLl90b0Z1bmN0
aW9uU3RyaW5nKToKKwogMjAxOS0xMC0yNSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5j
b20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogU3R5bGVzOiB1bi1leHBlcmltZW50YWxpemUg
c2hvd2luZyBydWxlIGljb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvQ29sb3IuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvQ29sb3IuanMKaW5kZXggYjY2ZjFhNmY5YzMuLmE3NTljNDRkZjBkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ29s
b3IuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0Nv
bG9yLmpzCkBAIC0yOSw5ICsyOSwxMCBAQAogCiBXSS5Db2xvciA9IGNsYXNzIENvbG9yCiB7Ci0g
ICAgY29uc3RydWN0b3IoZm9ybWF0LCBjb21wb25lbnRzKQorICAgIGNvbnN0cnVjdG9yKGZvcm1h
dCwgY29tcG9uZW50cywgZ2FtdXQpCiAgICAgewogICAgICAgICB0aGlzLmZvcm1hdCA9IGZvcm1h
dDsKKyAgICAgICAgdGhpcy5nYW11dCA9IGdhbXV0IHx8ICJzcmdiIjsKIAogICAgICAgICBpZiAo
Y29tcG9uZW50cy5sZW5ndGggPT09IDMpCiAgICAgICAgICAgICBjb21wb25lbnRzLnB1c2goMSk7
CkBAIC00OCw3ICs0OSw3IEBAIFdJLkNvbG9yID0gY2xhc3MgQ29sb3IKIAogICAgIHN0YXRpYyBm
cm9tU3RyaW5nKGNvbG9yU3RyaW5nKQogICAgIHsKLSAgICAgICAgY29uc3QgbWF0Y2hSZWdFeHAg
PSAvXig/OiMoPzxoZXg+WzAtOWEtZl17Myw4fSl8cmdiYT9cKCg/PHJnYj5bXildKylcKXwoPzxr
ZXl3b3JkPlx3Kyl8aHNsYT9cKCg/PGhzbD5bXildKylcKSkkL2k7CisgICAgICAgIGNvbnN0IG1h
dGNoUmVnRXhwID0gL14oPzojKD88aGV4PlswLTlhLWZdezMsOH0pfHJnYmE/XCgoPzxyZ2I+W14p
XSspXCl8KD88a2V5d29yZD5cdyspfGNvbG9yXCgoPzxjb2xvcj5bXildKylcKXxoc2xhP1woKD88
aHNsPlteKV0rKVwpKSQvaTsKICAgICAgICAgbGV0IG1hdGNoID0gY29sb3JTdHJpbmcubWF0Y2go
bWF0Y2hSZWdFeHApOwogICAgICAgICBpZiAoIW1hdGNoKQogICAgICAgICAgICAgcmV0dXJuIG51
bGw7CkBAIC0xNzAsNiArMTcxLDMzIEBAIFdJLkNvbG9yID0gY2xhc3MgQ29sb3IKICAgICAgICAg
ICAgIF0pOwogICAgICAgICB9CiAKKyAgICAgICAgaWYgKG1hdGNoLmdyb3Vwcy5jb2xvcikgewor
ICAgICAgICAgICAgbGV0IGNvbG9yU3RyaW5nID0gbWF0Y2guZ3JvdXBzLmNvbG9yLnRyaW0oKTsK
KyAgICAgICAgICAgIGxldCBjb21wb25lbnRzID0gc3BsaXRGdW5jdGlvblN0cmluZyhjb2xvclN0
cmluZyk7CisgICAgICAgICAgICBpZiAoY29tcG9uZW50cy5sZW5ndGggIT09IDQgJiYgY29tcG9u
ZW50cy5sZW5ndGggIT09IDUpCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICAg
ICAgICAgIGxldCBnYW11dCA9IGNvbXBvbmVudHNbMF0udG9Mb3dlckNhc2UoKTsKKyAgICAgICAg
ICAgIGlmIChnYW11dCAhPT0gInNyZ2IiICYmIGdhbXV0ICE9PSAiZGlzcGxheS1wMyIpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICAgICAgICAgIGxldCBhbHBoYSA9IDE7Cisg
ICAgICAgICAgICBpZiAoY29tcG9uZW50cy5sZW5ndGggPT09IDUpCisgICAgICAgICAgICAgICAg
YWxwaGEgPSBwYXJzZUZ1bmN0aW9uQWxwaGEoY29tcG9uZW50c1s0XSk7CisKKyAgICAgICAgICAg
IGZ1bmN0aW9uIHBhcnNlRnVuY3Rpb25Db21wb25lbnQoY29tcG9uZW50KSB7CisgICAgICAgICAg
ICAgICAgbGV0IHZhbHVlID0gcGFyc2VGbG9hdChjb21wb25lbnQpOworICAgICAgICAgICAgICAg
IHJldHVybiBOdW1iZXIuY29uc3RyYWluKHZhbHVlLCAwLCAxKTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgcmV0dXJuIG5ldyBXSS5Db2xvcihXSS5Db2xvci5Gb3JtYXQuQ29sb3JGdW5j
dGlvbiwgWworICAgICAgICAgICAgICAgIHBhcnNlRnVuY3Rpb25Db21wb25lbnQoY29tcG9uZW50
c1sxXSksCisgICAgICAgICAgICAgICAgcGFyc2VGdW5jdGlvbkNvbXBvbmVudChjb21wb25lbnRz
WzJdKSwKKyAgICAgICAgICAgICAgICBwYXJzZUZ1bmN0aW9uQ29tcG9uZW50KGNvbXBvbmVudHNb
M10pLAorICAgICAgICAgICAgICAgIGFscGhhLAorICAgICAgICAgICAgXSwgZ2FtdXQpOworICAg
ICAgICB9CisKICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgfQogCkBAIC0zNjksMTAgKzM5Nywx
MSBAQCBXSS5Db2xvciA9IGNsYXNzIENvbG9yCiAgICAgICAgIGNhc2UgV0kuQ29sb3IuRm9ybWF0
LlNob3J0SEVYQWxwaGE6CiAgICAgICAgIGNhc2UgV0kuQ29sb3IuRm9ybWF0LktleXdvcmQ6CiAg
ICAgICAgIGNhc2UgV0kuQ29sb3IuRm9ybWF0LlJHQkE6Ci0gICAgICAgICAgICByZXR1cm4gbmV3
IFdJLkNvbG9yKHRoaXMuZm9ybWF0LCB0aGlzLnJnYmEpOworICAgICAgICBjYXNlIFdJLkNvbG9y
LkZvcm1hdC5Db2xvckZ1bmN0aW9uOgorICAgICAgICAgICAgcmV0dXJuIG5ldyBXSS5Db2xvcih0
aGlzLmZvcm1hdCwgdGhpcy5yZ2JhLCB0aGlzLmdhbXV0KTsKICAgICAgICAgY2FzZSBXSS5Db2xv
ci5Gb3JtYXQuSFNMOgogICAgICAgICBjYXNlIFdJLkNvbG9yLkZvcm1hdC5IU0xBOgotICAgICAg
ICAgICAgcmV0dXJuIG5ldyBXSS5Db2xvcih0aGlzLmZvcm1hdCwgdGhpcy5oc2xhKTsKKyAgICAg
ICAgICAgIHJldHVybiBuZXcgV0kuQ29sb3IodGhpcy5mb3JtYXQsIHRoaXMuaHNsYSwgdGhpcy5n
YW11dCk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTM4OCw2ICs0MTcsOCBAQCBXSS5Db2xvciA9
IGNsYXNzIENvbG9yCiAgICAgICAgICAgICByZXR1cm4gdGhpcy5fdG9SR0JTdHJpbmcoKTsKICAg
ICAgICAgY2FzZSBXSS5Db2xvci5Gb3JtYXQuUkdCQToKICAgICAgICAgICAgIHJldHVybiB0aGlz
Ll90b1JHQkFTdHJpbmcoKTsKKyAgICAgICAgY2FzZSBXSS5Db2xvci5Gb3JtYXQuQ29sb3JGdW5j
dGlvbjoKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl90b0Z1bmN0aW9uU3RyaW5nKCk7CiAgICAg
ICAgIGNhc2UgV0kuQ29sb3IuRm9ybWF0LkhTTDoKICAgICAgICAgICAgIHJldHVybiB0aGlzLl90
b0hTTFN0cmluZygpOwogICAgICAgICBjYXNlIFdJLkNvbG9yLkZvcm1hdC5IU0xBOgpAQCAtNDEz
LDYgKzQ0NCw5IEBAIFdJLkNvbG9yID0gY2xhc3MgQ29sb3IKICAgICAgICAgaWYgKHRoaXMua2V5
d29yZCkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgICAgIGlmICh0aGlzLmdhbXV0
ICE9PSAic3JnYiIpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICAgICAgaWYgKCF0
aGlzLnNpbXBsZSkKICAgICAgICAgICAgIHJldHVybiBBcnJheS5zaGFsbG93RXF1YWwodGhpcy5f
cmdiYSwgWzAsIDAsIDAsIDBdKSB8fCBBcnJheS5zaGFsbG93RXF1YWwodGhpcy5faHNsYSwgWzAs
IDAsIDAsIDBdKTsKIApAQCAtNTUwLDYgKzU4NCwxNCBAQCBXSS5Db2xvciA9IGNsYXNzIENvbG9y
CiAgICAgICAgIHJldHVybiBgcmdiYSgke3J9LCAke2d9LCAke2J9LCAke3RoaXMuYWxwaGF9KWA7
CiAgICAgfQogCisgICAgX3RvRnVuY3Rpb25TdHJpbmcoKQorICAgIHsKKyAgICAgICAgbGV0IFty
LCBnLCBiLCBhbHBoYV0gPSB0aGlzLnJnYmE7CisgICAgICAgIGlmIChhbHBoYSA9PT0gMSkKKyAg
ICAgICAgICAgIHJldHVybiBgY29sb3IoJHt0aGlzLmdhbXV0fSAke3J9ICR7Z30gJHtifSlgOwor
ICAgICAgICByZXR1cm4gYGNvbG9yKCR7dGhpcy5nYW11dH0gJHtyfSAke2d9ICR7Yn0gLyAke2Fs
cGhhfSlgOworICAgIH0KKwogICAgIF90b0hTTFN0cmluZygpCiAgICAgewogICAgICAgICBpZiAo
IXRoaXMuc2ltcGxlKQpAQCAtNjAyLDcgKzY0NCw4IEBAIFdJLkNvbG9yLkZvcm1hdCA9IHsKICAg
ICBSR0I6ICJjb2xvci1mb3JtYXQtcmdiIiwKICAgICBSR0JBOiAiY29sb3ItZm9ybWF0LXJnYmEi
LAogICAgIEhTTDogImNvbG9yLWZvcm1hdC1oc2wiLAotICAgIEhTTEE6ICJjb2xvci1mb3JtYXQt
aHNsYSIKKyAgICBIU0xBOiAiY29sb3ItZm9ybWF0LWhzbGEiLAorICAgIENvbG9yRnVuY3Rpb246
ICJjb2xvci1mb3JtYXQtY29sb3ItZnVuY3Rpb24iLAogfTsKIAogV0kuQ29sb3IuRnVuY3Rpb25O
YW1lcyA9IG5ldyBTZXQoWwpAQCAtNjEwLDYgKzY1Myw3IEBAIFdJLkNvbG9yLkZ1bmN0aW9uTmFt
ZXMgPSBuZXcgU2V0KFsKICAgICAicmdiYSIsCiAgICAgImhzbCIsCiAgICAgImhzbGEiLAorICAg
ICJjb2xvciIsCiBdKTsKIAogV0kuQ29sb3IuS2V5d29yZHMgPSB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>