<?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>230065</bug_id>
          
          <creation_ts>2021-09-08 14:18:22 -0700</creation_ts>
          <short_desc>Web Inspector: Add a swatch for align-content</short_desc>
          <delta_ts>2021-12-03 16:24:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>233053</blocked>
    
    <blocked>233054</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikita Vasilyev">nvasilyev</reporter>
          <assigned_to name="Nikita Vasilyev">nvasilyev</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>pangle</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1791618</commentid>
    <comment_count>0</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-09-08 14:18:22 -0700</bug_when>
    <thetext>Add a swatch for &quot;align-content&quot; CSS property. Clicking on it should display a small popover with icons for most common values, such as &quot;start&quot;, &quot;end&quot;, &quot;center&quot;, &quot;space-between&quot; and etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791619</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-08 14:18:36 -0700</bug_when>
    <thetext>&lt;rdar://problem/82891361&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808610</commentid>
    <comment_count>2</comment_count>
      <attachid>442423</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-10-25 14:58:56 -0700</bug_when>
    <thetext>Created attachment 442423
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808611</commentid>
    <comment_count>3</comment_count>
      <attachid>442424</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-10-25 14:59:55 -0700</bug_when>
    <thetext>Created attachment 442424
[Image] align-content popover</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808614</commentid>
    <comment_count>4</comment_count>
      <attachid>442423</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-10-25 15:05:35 -0700</bug_when>
    <thetext>Comment on attachment 442423
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js:327
&gt; -        popover.present(bounds.pad(2), [WI.RectEdge.MIN_X]);
&gt; +        popover.present(bounds.pad(2), [WI.RectEdge.MIN_Y]);

I did some digging on why we try to display the popover to the left of the anchor. It&apos;s been like this at least since 2014, possibly since the 1st inline swatch was introduced: https://trac.webkit.org/browser/webkit/trunk/Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationTextEditor.js?rev=164543#L710.

I believe the better default for all popovers is to be positioned above the anchor. It matches macOS more closely and it doesn&apos;t cover CSS property names in the style editor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808618</commentid>
    <comment_count>5</comment_count>
      <attachid>442427</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-10-25 15:07:55 -0700</bug_when>
    <thetext>Created attachment 442427
[HTML] Align-content flexbox

An HTML page with a few align-content boxes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808656</commentid>
    <comment_count>6</comment_count>
      <attachid>442423</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-10-25 16:12:52 -0700</bug_when>
    <thetext>Comment on attachment 442423
Patch

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

&gt; Source/WebInspectorUI/ChangeLog:10
&gt; +        start, center, end, space-between, space-around, space-evenly, and stretch.

I really think we probably want to determine the writing direction and apply it&apos;s same effect to the visual representations for each of these values. E.g. `start` may be left-aligned in a horizontal layout in a LTR language, but would be right-aligned (mirror the icon on the X-axis) for an RTL element. Alignment also isn&apos;t always in the y-axis, where I would expect the icons to be rotated -90deg so that `start` is aligned to the top, for example. I don&apos;t think any of the icons need to be redrawn for these states, just mirrored/rotated.

&gt; Source/WebInspectorUI/ChangeLog:21
&gt; +        * UserInterface/Views/AlignContentEditor.css: Added.

Can we name this something like `AlignmentInlineSwatchEditor.css` to make clear it both related to inline swatches and makes it clearer that we will reuse these styles for other alignment properties like `justify-content`, `align-items`, `justify-items`? This kinda applies throughout in the naming of things.

&gt; Source/WebInspectorUI/UserInterface/Images/AlignContentCenter.svg:1
&gt; +&lt;!-- Copyright Â© 2021 Apple Inc. All rights reserved. --&gt;

Text encoding issue here. Same for all the other new SVGs as well.

&gt; Source/WebInspectorUI/UserInterface/Views/AlignContentEditor.css:39
&gt; +    margin-left: 0;

Do we really want `margin-inline-start` here?

&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.css:109
&gt; +.inline-swatch.align-content &gt; span {
&gt; +    background-size: 9px 9px;
&gt; +    background-repeat: no-repeat;
&gt; +}

Why doesn&apos;t the current `inline-swatch.image &gt; span` rule get us this?

&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.css:129
&gt; +    .inline-swatch.align-content &gt; span {

Why invert the span and not the svg?

&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js:197
&gt; +                // TODO: Display a glyph for an unrecognized value.

I think we will want an actual state for values we haven&apos;t drawn an icon for before this can land.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js:327
&gt;&gt; +        popover.present(bounds.pad(2), [WI.RectEdge.MIN_Y]);
&gt; 
&gt; I did some digging on why we try to display the popover to the left of the anchor. It&apos;s been like this at least since 2014, possibly since the 1st inline swatch was introduced: https://trac.webkit.org/browser/webkit/trunk/Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationTextEditor.js?rev=164543#L710.
&gt; 
&gt; I believe the better default for all popovers is to be positioned above the anchor. It matches macOS more closely and it doesn&apos;t cover CSS property names in the style editor.

I agree that displaying above/below is perhaps better, since it reduces the opportunity for the popover to cover some part of the property the author is working with, however I&apos;d argue in the direction of presenting below the swatch by default, since it is more likely that the values the author is most concerned with is higher in the Styles panel, and if we display the popover below by default there won&apos;t be an awkward transition between the first few items probably presenting the popover below the swatch anyways (since there won&apos;t be enough space above the swatch for things like color) and then transitioning a few items down to the popover fitting above.

&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js:376
&gt; +    _updateAlignContentPopover()

Many of the other editors we display in popovers are implemented as separate classes, and I kinda feel like we should do the same here. The editor is likely to grow in complexity to handle the other alignment properties, for example, and this class is already quite complicated - it would make it easier to iterate on and understand IMO if it were implemented in it&apos;s own class, like the ColorPicker, BoxShadowEditor, etc. are.

&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js:385
&gt; +        let values = [&quot;start&quot;, &quot;center&quot;, &quot;end&quot;, &quot;space-between&quot;, &quot;space-around&quot;, &quot;space-evenly&quot;, &quot;stretch&quot;];

Nit: `const`

&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js:557
&gt; +        let valueToFileName = {

Nit: `const`

&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js:567
&gt; +        return glyphIdentifier ? `Images/${glyphIdentifier}` : &quot;&quot;;

Should probably return null instead of an empty string to make it clearer that there there is no glyph path to satisfy the value.

&gt; Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js:850
&gt; +        let text = tokens.map((token) =&gt; token.value).join(&quot;&quot;);
&gt; +        let swatch = this._createInlineSwatch(WI.InlineSwatch.Type.AlignContent, tokens, text);
&gt; +        return [swatch];

This won&apos;t work for multi-token values, like `first baseline` or `unsafe center`, right? This should probably be made to work similar to `_addColorTokens` above so that the known part gets tokenized.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809731</commentid>
    <comment_count>7</comment_count>
      <attachid>442423</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-10-28 10:09:56 -0700</bug_when>
    <thetext>Comment on attachment 442423
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Images/AlignContentCenter.svg:1
&gt;&gt; +&lt;!-- Copyright Â© 2021 Apple Inc. All rights reserved. --&gt;
&gt; 
&gt; Text encoding issue here. Same for all the other new SVGs as well.

The code review tool doesn&apos;t show unicode properly. I copy/pasted this line with  ©, that is used in most (all?) our SVG files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810703</commentid>
    <comment_count>8</comment_count>
      <attachid>442423</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-11-01 11:18:25 -0700</bug_when>
    <thetext>Comment on attachment 442423
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Views/AlignContentEditor.css:30
&gt; +    background-color: var(--background-color-content);

I feel like this also needs some sort of `border-color` to help clarify where the parts of the glyph are relative to the box as a whole.  IMO the glyph white background color is not a subtle enough distinction from the lightgrey popover background color.

&gt; Source/WebInspectorUI/UserInterface/Views/AlignContentEditor.css:33
&gt; +.align-content-editor .glyph {

Why not merge this with the above?

&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js:258
&gt; -            popover.present(bounds.pad(2), [WI.RectEdge.MIN_X]);
&gt; +            popover.present(bounds.pad(2), [WI.RectEdge.MIN_Y]);

This should be a separate patch.  It doesn&apos;t have anything to do with visualizing/editing alignment values.

&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js:387
&gt; +            let glyphElement = WI.ImageUtilities.useSVGSymbol(this._getAlignContentGlyphPath(value), &quot;glyph&quot;, value);

please make sure that each glyph has a `title` so that it&apos;s possible for a developer to hover to find out what the symbol represents if it&apos;s not immediately clear to them

&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js:389
&gt; +            if (value === this._value)
&gt; +                glyphElement.classList.add(&quot;selected&quot;);

NIT: `glyphElement.classList.toggle(&quot;selected&quot;, value === this._value)`

&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js:558
&gt; +            &quot;start&quot;: &quot;AlignContentStart.svg&quot;,

This kinda strikes me as odd for some reason 🤔 Do we have to use `WI.ImageUtilities.useSVGSymbol` or can we use CSS `background-image` instead?  If so, we could just set the CSS `class` based on the value and then have a declarative list in CSS of what each icon should be.

NIT: I feel like we should include the `Images/` in each of these paths so it&apos;s explicitly clear where they come from (e.g. a hardcoded path, not some relative/composed thing).

&gt; Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js:630
&gt; +        if (this._property.name === &quot;align-content&quot;)

What about all the other alignment properties (e.g. `justify-content`, `align-items`, etc.)?

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js:850
&gt;&gt; +        return [swatch];
&gt; 
&gt; This won&apos;t work for multi-token values, like `first baseline` or `unsafe center`, right? This should probably be made to work similar to `_addColorTokens` above so that the known part gets tokenized.

since we&apos;re keying off the property name, we should also consider supporting resolving any CSS variable values in the value and having the swatch show based on that instead of just treating the CSS variable as an unknown value</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810865</commentid>
    <comment_count>9</comment_count>
      <attachid>442423</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-11-01 14:05:19 -0700</bug_when>
    <thetext>Comment on attachment 442423
Patch

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

&gt;&gt; Source/WebInspectorUI/ChangeLog:10
&gt;&gt; +        start, center, end, space-between, space-around, space-evenly, and stretch.
&gt; 
&gt; I really think we probably want to determine the writing direction and apply it&apos;s same effect to the visual representations for each of these values. E.g. `start` may be left-aligned in a horizontal layout in a LTR language, but would be right-aligned (mirror the icon on the X-axis) for an RTL element. Alignment also isn&apos;t always in the y-axis, where I would expect the icons to be rotated -90deg so that `start` is aligned to the top, for example. I don&apos;t think any of the icons need to be redrawn for these states, just mirrored/rotated.

I agree that we should do this, but I suggest to do this as a follow up. Aside from RTL text, `flex-direction` takes values &quot;row&quot;, &quot;row-reverse&quot;, &quot;column&quot;, &quot;column-reverse&quot;, so it affects both axis and direction. `grid-auto-flow` also affects direction.

&gt;&gt; Source/WebInspectorUI/ChangeLog:21
&gt;&gt; +        * UserInterface/Views/AlignContentEditor.css: Added.
&gt; 
&gt; Can we name this something like `AlignmentInlineSwatchEditor.css` to make clear it both related to inline swatches and makes it clearer that we will reuse these styles for other alignment properties like `justify-content`, `align-items`, `justify-items`? This kinda applies throughout in the naming of things.

Sounds good.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js:387
&gt;&gt; +            let glyphElement = WI.ImageUtilities.useSVGSymbol(this._getAlignContentGlyphPath(value), &quot;glyph&quot;, value);
&gt; 
&gt; please make sure that each glyph has a `title` so that it&apos;s possible for a developer to hover to find out what the symbol represents if it&apos;s not immediately clear to them

The &quot;title&quot; attribute is already set — it&apos;s the 3rd argument of `useSVGSymbol`.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js:558
&gt;&gt; +            &quot;start&quot;: &quot;AlignContentStart.svg&quot;,
&gt; 
&gt; This kinda strikes me as odd for some reason 🤔 Do we have to use `WI.ImageUtilities.useSVGSymbol` or can we use CSS `background-image` instead?  If so, we could just set the CSS `class` based on the value and then have a declarative list in CSS of what each icon should be.
&gt; 
&gt; NIT: I feel like we should include the `Images/` in each of these paths so it&apos;s explicitly clear where they come from (e.g. a hardcoded path, not some relative/composed thing).

I can&apos;t use `background-image`, unfortunately, because currentColor keyword doesn&apos;t work in SVGs set via CSS.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js:630
&gt;&gt; +        if (this._property.name === &quot;align-content&quot;)
&gt; 
&gt; What about all the other alignment properties (e.g. `justify-content`, `align-items`, etc.)?

The plan is to add those as well (a little more context in the radar), but &quot;align-content&quot; is the 1st one I&apos;m adding.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812641</commentid>
    <comment_count>10</comment_count>
      <attachid>442423</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-11-08 09:15:02 -0800</bug_when>
    <thetext>Comment on attachment 442423
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.css:109
&gt;&gt; +}
&gt; 
&gt; Why doesn&apos;t the current `inline-swatch.image &gt; span` rule get us this?

`inline-swatch.image` is specific to the image inline swatch type. My swatch doesn&apos;t have &quot;image&quot; class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812642</commentid>
    <comment_count>11</comment_count>
      <attachid>443556</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-11-08 09:15:56 -0800</bug_when>
    <thetext>Created attachment 443556
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812647</commentid>
    <comment_count>12</comment_count>
      <attachid>442423</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-11-08 09:24:30 -0800</bug_when>
    <thetext>Comment on attachment 442423
Patch

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

&gt;&gt;&gt; Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js:850
&gt;&gt;&gt; +        return [swatch];
&gt;&gt; 
&gt;&gt; This won&apos;t work for multi-token values, like `first baseline` or `unsafe center`, right? This should probably be made to work similar to `_addColorTokens` above so that the known part gets tokenized.
&gt; 
&gt; since we&apos;re keying off the property name, we should also consider supporting resolving any CSS variable values in the value and having the swatch show based on that instead of just treating the CSS variable as an unknown value

I tried Patrick&apos;s suggestion in my latest patch. There are cases when it really doesn&apos;t work well. Say, we have `align-content: unsafe center`. When I click on a swatch to change `center` to `space-between`, the value becomes `unsafe space-between`. It&apos;s invalid, so the entire property is ignored. &quot;unsafe&quot; only works for certain properties, e.g. &quot;start&quot;, &quot;center&quot;, &quot;end&quot;.

It seemed like a good idea at 1st, but it turned out to introduce footguns. I think we should revert to the approach in my first patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812648</commentid>
    <comment_count>13</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-11-08 09:25:45 -0800</bug_when>
    <thetext>(In reply to Patrick Angle from comment #6)
&gt; Comment on attachment 442423 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=442423&amp;action=review
&gt; 
&gt; &gt; Source/WebInspectorUI/ChangeLog:10
&gt; &gt; +        start, center, end, space-between, space-around, space-evenly, and stretch.
&gt; 
&gt; I really think we probably want to determine the writing direction and apply
&gt; it&apos;s same effect to the visual representations for each of these values.
&gt; E.g. `start` may be left-aligned in a horizontal layout in a LTR language,
&gt; but would be right-aligned (mirror the icon on the X-axis) for an RTL
&gt; element. Alignment also isn&apos;t always in the y-axis, where I would expect the
&gt; icons to be rotated -90deg so that `start` is aligned to the top, for
&gt; example. I don&apos;t think any of the icons need to be redrawn for these states,
&gt; just mirrored/rotated.

I ultimately want to do this, but my latest patch doesn&apos;t include any of this logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812721</commentid>
    <comment_count>14</comment_count>
      <attachid>442423</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-11-08 11:25:30 -0800</bug_when>
    <thetext>Comment on attachment 442423
Patch

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

&gt;&gt;&gt;&gt; Source/WebInspectorUI/ChangeLog:10
&gt;&gt;&gt;&gt; +        start, center, end, space-between, space-around, space-evenly, and stretch.
&gt;&gt;&gt; 
&gt;&gt;&gt; I really think we probably want to determine the writing direction and apply it&apos;s same effect to the visual representations for each of these values. E.g. `start` may be left-aligned in a horizontal layout in a LTR language, but would be right-aligned (mirror the icon on the X-axis) for an RTL element. Alignment also isn&apos;t always in the y-axis, where I would expect the icons to be rotated -90deg so that `start` is aligned to the top, for example. I don&apos;t think any of the icons need to be redrawn for these states, just mirrored/rotated.
&gt;&gt; 
&gt;&gt; I agree that we should do this, but I suggest to do this as a follow up. Aside from RTL text, `flex-direction` takes values &quot;row&quot;, &quot;row-reverse&quot;, &quot;column&quot;, &quot;column-reverse&quot;, so it affects both axis and direction. `grid-auto-flow` also affects direction.
&gt; 
&gt; I ultimately want to do this, but my latest patch doesn&apos;t include any of this logic.

If this is expected as a followup then please file a bug for it and include FIXME comments in relevant parts of the code so that this isn&apos;t forgotten.

&gt;&gt;&gt; Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js:630
&gt;&gt;&gt; +        if (this._property.name === &quot;align-content&quot;)
&gt;&gt; 
&gt;&gt; What about all the other alignment properties (e.g. `justify-content`, `align-items`, etc.)?
&gt; 
&gt; The plan is to add those as well (a little more context in the radar), but &quot;align-content&quot; is the 1st one I&apos;m adding.

ditto (Source/WebInspectorUI/ChangeLog:10)

&gt;&gt;&gt;&gt; Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js:850
&gt;&gt;&gt;&gt; +        return [swatch];
&gt;&gt;&gt; 
&gt;&gt;&gt; This won&apos;t work for multi-token values, like `first baseline` or `unsafe center`, right? This should probably be made to work similar to `_addColorTokens` above so that the known part gets tokenized.
&gt;&gt; 
&gt;&gt; since we&apos;re keying off the property name, we should also consider supporting resolving any CSS variable values in the value and having the swatch show based on that instead of just treating the CSS variable as an unknown value
&gt; 
&gt; I tried Patrick&apos;s suggestion in my latest patch. There are cases when it really doesn&apos;t work well. Say, we have `align-content: unsafe center`. When I click on a swatch to change `center` to `space-between`, the value becomes `unsafe space-between`. It&apos;s invalid, so the entire property is ignored. &quot;unsafe&quot; only works for certain properties, e.g. &quot;start&quot;, &quot;center&quot;, &quot;end&quot;.
&gt; 
&gt; It seemed like a good idea at 1st, but it turned out to introduce footguns. I think we should revert to the approach in my first patch.

ditto (Source/WebInspectorUI/ChangeLog:10)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812724</commentid>
    <comment_count>15</comment_count>
      <attachid>443556</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-11-08 11:32:48 -0800</bug_when>
    <thetext>Comment on attachment 443556
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Views/AlignmentInlineSwatchEditor.js:65
&gt; +        this._element.removeChildren();

This seems unnecessarily destructive.  The only thing that changes between `_update` calls is the `&quot;selected&quot;` element.  Why can&apos;t we just create the children once and update the `&quot;selected&quot;` element instead?

&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.css:107
&gt; +    background-size: 9px 9px;

Do we specifically have to use `9px` or can we use `cover` instead?  If so, please merge this with the above using `:is()`.

&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js:192
&gt; +        else if (this._type === WI.InlineSwatch.Type.AlignContent) {

NIT: Can we make this whole thing into a `switch`?

&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js:301
&gt; +            this._valueEditor.addEventListener(WI.AlignmentInlineSwatchEditor.Event.ValueChanged, this._valueEditorValueDidChange, this);

This also should be removed in `didDismissPopover`.

&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js:546
&gt; +    AlignContent: &quot;inline-swatch-type-align-content&quot;,

It&apos;s a bit odd to me that you&apos;re calling it `WI.AlignmentInlineSwatchEditor` yet simultaneously limiting this to just `AlignContent`.  I think this (and everything else that&apos;s only specific to `AlignContent`) to just be `Alignment` so that when we do expand this to all alignment properties we don&apos;t have to also do a bunch of renaming.

&gt; Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js:851
&gt; +                let swatch = this._createInlineSwatch(WI.InlineSwatch.Type.AlignContent, [token], token.value);

NIT: I&apos;d inline this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814555</commentid>
    <comment_count>16</comment_count>
      <attachid>444087</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-11-12 12:05:12 -0800</bug_when>
    <thetext>Created attachment 444087
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815676</commentid>
    <comment_count>17</comment_count>
      <attachid>444087</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-11-16 15:20:43 -0800</bug_when>
    <thetext>Comment on attachment 444087
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Views/AlignmentInlineSwatchEditor.js:26
&gt; +WI.AlignmentInlineSwatchEditor = class AlignmentInlineSwatchEditor extends WI.Object

Why not just `WI.AlignmentEditor`?

&gt; Source/WebInspectorUI/UserInterface/Views/AlignmentInlineSwatchEditor.js:89
&gt; +WI.AlignmentInlineSwatchEditor.AlignContentGlyphs = {

Can we name this something more generic like `ValueGlyphs`?  None of these values are unique to CSS `align-content` and could be reused for other properties too.

I&apos;d also rename the SVG files to just be `Alignment*.svg` too.

&gt; Source/WebInspectorUI/UserInterface/Views/AlignmentInlineSwatchEditor.js:99
&gt; +WI.AlignmentInlineSwatchEditor.UnknownValueAlignmentGlyph = &quot;Images/AlignmentUnknown.svg&quot;;

ditto (:89) with `UnknownValueGlyph`

&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.css:61
&gt; +.inline-swatch:not(.read-only):matches(.bezier, .box-shadow, .spring, .variable, .align-content):hover {

`.alignment`?

&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.css:65
&gt; +.inline-swatch:not(.read-only):matches(.bezier, .box-shadow, .spring, .variable, .align-content):active {

ditto (:61)

&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.css:102
&gt; +.inline-swatch.image &gt; span,
&gt; +.inline-swatch.alignment &gt; span {

```
    .inline-swatch:is(.image, .alignment) &gt; span {
```

&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js:194
&gt; +            if (this._type === WI.InlineSwatch.Type.Color) {

NIT: you could avoid this extra check by having a fallthrough
```
    case WI.InlineSwatch.Type.Color:
        if (this._allowChangingColorFormats())
            this._swatchElement.title = WI.UIString(&quot;Click to select a color\nShift-click to switch color formats&quot;);
        else
            this._swatchElement.title = WI.UIString(&quot;Click to select a color&quot;);
        // fallthrough

    case WI.InlineSwatch.Type.Gradient:
        this._swatchInnerElement.style.background = value ? value.toString() : null;
        break;
```

&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js:201
&gt; +        case WI.InlineSwatch.Type.Image:

Style: please add newlines before each `case` so it&apos;s easier to read :)

&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js:306
&gt; +            // FIXME: &lt;https://webkit.org/b/233054&gt; Web Inspector: Add a swatch for align-items and align-self
&gt; +            // FIXME: &lt;https://webkit.org/b/233055&gt; Web Inspector: Add a swatch for justify-content, justify-items, and justify-self

NIT: I&apos;d also put these in more places (e.g. inside `WI.SpreadsheetStyleProperty.prototype._replaceSpecialTokens`, `WI.AlignmentEditor.ValueGlyhps`, etc.) so that if another engineer comes along and wants to do the work, they don&apos;t have to figure out the other spots that they need to adjust

&gt; Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js:846
&gt; +    _addAlignContentTokens(tokens)

NIT: `_addAlignmentTokens`

&gt; Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js:848
&gt; +        let text = this._resolveVariables(tokens.map((token) =&gt; token.value).join(&quot;&quot;));

we should at least have a FIXME bug to handle multi-token values like `unsafe flex-start`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816115</commentid>
    <comment_count>18</comment_count>
      <attachid>444087</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-11-17 14:18:11 -0800</bug_when>
    <thetext>Comment on attachment 444087
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/AlignmentInlineSwatchEditor.js:89
&gt;&gt; +WI.AlignmentInlineSwatchEditor.AlignContentGlyphs = {
&gt; 
&gt; Can we name this something more generic like `ValueGlyphs`?  None of these values are unique to CSS `align-content` and could be reused for other properties too.
&gt; 
&gt; I&apos;d also rename the SVG files to just be `Alignment*.svg` too.

Note that `align-content: start` and `justify-content: start` will have different glyphs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816132</commentid>
    <comment_count>19</comment_count>
      <attachid>444580</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-11-17 14:34:27 -0800</bug_when>
    <thetext>Created attachment 444580
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816151</commentid>
    <comment_count>20</comment_count>
      <attachid>444087</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-11-17 15:23:01 -0800</bug_when>
    <thetext>Comment on attachment 444087
Patch

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

&gt;&gt;&gt; Source/WebInspectorUI/UserInterface/Views/AlignmentInlineSwatchEditor.js:89
&gt;&gt;&gt; +WI.AlignmentInlineSwatchEditor.AlignContentGlyphs = {
&gt;&gt; 
&gt;&gt; Can we name this something more generic like `ValueGlyphs`?  None of these values are unique to CSS `align-content` and could be reused for other properties too.
&gt;&gt; 
&gt;&gt; I&apos;d also rename the SVG files to just be `Alignment*.svg` too.
&gt; 
&gt; Note that `align-content: start` and `justify-content: start` will have different glyphs.

Oh hmm that&apos;s a good point.  It also probably should take into account the writing mode.  Perhaps we should name this with physical (as opposed to logical) directions in mind, e.g. `Images/AlignVerticalStart.svg` for `align-*` when horizontal and `justify-*` when vertical.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816178</commentid>
    <comment_count>21</comment_count>
      <attachid>444580</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-11-17 16:04:25 -0800</bug_when>
    <thetext>Comment on attachment 444580
Patch

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

r=me, nice work :)

&gt; Source/WebInspectorUI/UserInterface/Views/AlignmentEditor.js:53
&gt; +    static isAlignContentValue(value)

This should be changed to `isAlignmentValue` since `WI.AlignmentEditor.ValueGlyphs` is not specific to `align-content` anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816321</commentid>
    <comment_count>22</comment_count>
      <attachid>444087</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-11-17 23:03:01 -0800</bug_when>
    <thetext>Comment on attachment 444087
Patch

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

&gt;&gt;&gt;&gt; Source/WebInspectorUI/UserInterface/Views/AlignmentInlineSwatchEditor.js:89
&gt;&gt;&gt;&gt; +WI.AlignmentInlineSwatchEditor.AlignContentGlyphs = {
&gt;&gt;&gt; 
&gt;&gt;&gt; Can we name this something more generic like `ValueGlyphs`?  None of these values are unique to CSS `align-content` and could be reused for other properties too.
&gt;&gt;&gt; 
&gt;&gt;&gt; I&apos;d also rename the SVG files to just be `Alignment*.svg` too.
&gt;&gt; 
&gt;&gt; Note that `align-content: start` and `justify-content: start` will have different glyphs.
&gt; 
&gt; Oh hmm that&apos;s a good point.  It also probably should take into account the writing mode.  Perhaps we should name this with physical (as opposed to logical) directions in mind, e.g. `Images/AlignVerticalStart.svg` for `align-*` when horizontal and `justify-*` when vertical.

Yeah, it will be either this or mirroring/rotating glyphs. It should get more clear soon when I jump working on the other swatches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816322</commentid>
    <comment_count>23</comment_count>
      <attachid>444580</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-11-17 23:04:44 -0800</bug_when>
    <thetext>Comment on attachment 444580
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/AlignmentEditor.js:53
&gt;&gt; +    static isAlignContentValue(value)
&gt; 
&gt; This should be changed to `isAlignmentValue` since `WI.AlignmentEditor.ValueGlyphs` is not specific to `align-content` anymore.

The listed values are specific to `align-content` and, it appears, `justify-content` (which is likely going to have different glyphs anyway).
align-{items, self} and justify-{items, self} don&apos;t support space-between, space-evenly, and etc. And again, the glyphs might be different.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816324</commentid>
    <comment_count>24</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-17 23:18:12 -0800</bug_when>
    <thetext>Committed r285983 (244380@main): &lt;https://commits.webkit.org/244380@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 444580.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442423</attachid>
            <date>2021-10-25 14:58:56 -0700</date>
            <delta_ts>2021-11-08 09:15:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>17228</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGYyNjJhMWQ3MDAxYi4uMDNhOTQwMDQ2NjdjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAyMS0xMC0yNSAgTmlr
aXRhIFZhc2lseWV2ICA8bnZhc2lseWV2QGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBBZGQgYSBzd2F0Y2ggZm9yIGFsaWduLWNvbnRlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDA2NQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vODI4OTEzNjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW50cm9kdWNlIGFuIGlubGluZSBzd2F0Y2ggZm9yIGBhbGlnbi1jb250ZW50YCwgdGhh
dCBzaG93cyBpY29ucyBmb3IgY29tbW9uIGFsaWduLWNvbnRlbnQgdmFsdWVzOgorICAgICAgICBz
dGFydCwgY2VudGVyLCBlbmQsIHNwYWNlLWJldHdlZW4sIHNwYWNlLWFyb3VuZCwgc3BhY2UtZXZl
bmx5LCBhbmQgc3RyZXRjaC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL0FsaWdu
Q29udGVudENlbnRlci5zdmc6IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2Vz
L0FsaWduQ29udGVudEVuZC5zdmc6IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1h
Z2VzL0FsaWduQ29udGVudFNwYWNlQXJvdW5kLnN2ZzogQWRkZWQuCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9JbWFnZXMvQWxpZ25Db250ZW50U3BhY2VCZXR3ZWVuLnN2ZzogQWRkZWQuCisgICAg
ICAgICogVXNlckludGVyZmFjZS9JbWFnZXMvQWxpZ25Db250ZW50U3BhY2VFdmVubHkuc3ZnOiBB
ZGRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0ltYWdlcy9BbGlnbkNvbnRlbnRTdGFydC5z
dmc6IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL0FsaWduQ29udGVudFN0
cmV0Y2guc3ZnOiBBZGRlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTWFpbi5odG1sOgor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQWxpZ25Db250ZW50RWRpdG9yLmNzczogQWRk
ZWQuCisgICAgICAgICguYWxpZ24tY29udGVudC1lZGl0b3IgLmdseXBoKToKKyAgICAgICAgKC5h
bGlnbi1jb250ZW50LWVkaXRvciAuZ2x5cGg6bm90KDpmaXJzdC1jaGlsZCkpOgorICAgICAgICAo
LmFsaWduLWNvbnRlbnQtZWRpdG9yIC5nbHlwaDphY3RpdmUpOgorICAgICAgICAoLmFsaWduLWNv
bnRlbnQtZWRpdG9yIC5nbHlwaC5zZWxlY3RlZCk6CisgICAgICAgICguYWxpZ24tY29udGVudC1l
ZGl0b3IgLmdseXBoLnNlbGVjdGVkOmFjdGl2ZSk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L1ZpZXdzL0lubGluZVN3YXRjaC5jc3M6CisgICAgICAgICguaW5saW5lLXN3YXRjaDpub3QoLnJl
YWQtb25seSk6bWF0Y2hlcyguYmV6aWVyLCAuYm94LXNoYWRvdywgLnNwcmluZywgLnZhcmlhYmxl
LCAuYWxpZ24tY29udGVudCk6aG92ZXIpOgorICAgICAgICAoLmlubGluZS1zd2F0Y2g6bm90KC5y
ZWFkLW9ubHkpOm1hdGNoZXMoLmJlemllciwgLmJveC1zaGFkb3csIC5zcHJpbmcsIC52YXJpYWJs
ZSwgLmFsaWduLWNvbnRlbnQpOmFjdGl2ZSk6CisgICAgICAgICguaW5saW5lLXN3YXRjaC5hbGln
bi1jb250ZW50ID4gc3Bhbik6CisgICAgICAgIChAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1l
OiBkYXJrKSAuaW5saW5lLXN3YXRjaC5ib3gtc2hhZG93ID4gc3ZnLCk6CisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9JbmxpbmVTd2F0Y2guanM6CisgICAgICAgIChXSS5JbmxpbmVTd2F0
Y2gpOgorICAgICAgICAoV0kuSW5saW5lU3dhdGNoLnByb3RvdHlwZS5fdXBkYXRlU3dhdGNoKToK
KyAgICAgICAgKFdJLklubGluZVN3YXRjaC5wcm90b3R5cGUuX3VwZGF0ZUFsaWduQ29udGVudFBv
cG92ZXIpOgorICAgICAgICAoV0kuSW5saW5lU3dhdGNoLnByb3RvdHlwZS5fZ2V0QWxpZ25Db250
ZW50R2x5cGhQYXRoKToKKyAgICAgICAgUHJlc2VudCB0aGUgcG9wb3ZlciBhYm92ZSB0aGUgYW5j
aG9yIHdoZW4gcG9zc2libGUuIFByZXZpb3NseSwgaXQgd291bGQgc2hvdyB0byB0aGUgbGVmdCBv
ZiB0aGUgYW5jaG9yLAorICAgICAgICBjb3ZlcmluZyBgYWxpZ24tY29udGVudDogYC4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LmpzOgor
ICAgICAgICAoV0kuU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LnByb3RvdHlwZS5fcmVwbGFjZVNw
ZWNpYWxUb2tlbnMpOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LnByb3Rv
dHlwZS5fYWRkQWxpZ25Db250ZW50VG9rZW5zKToKKwogMjAyMS0wNy0yNiAgUWlhb3NvbmcgWmhv
dSAgPHFpYW9zb25nX3pob3VAYXBwbGUuY29tPgogCiAgICAgICAgIEZvcm1EYXRhRXZlbnQgYWRk
ZWQuIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1h
Z2VzL0FsaWduQ29udGVudENlbnRlci5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9JbWFnZXMvQWxpZ25Db250ZW50Q2VudGVyLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAuLjM5ZjQ2MmExZjRhNwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9BbGlnbkNvbnRlbnRDZW50
ZXIuc3ZnCkBAIC0wLDAgKzEsNSBAQAorPCEtLSBDb3B5cmlnaHQgwqkgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZp
ZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDAvc3ZnIiBpZD0icm9vdCI+CisgICAgPHJlY3QgeD0iMiIgeT0iOCIgd2lkdGg9IjEyIiBoZWln
aHQ9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIvPgorICAgIDxyZWN0IHg9IjIiIHk9IjUiIHdpZHRo
PSIxMiIgaGVpZ2h0PSIyIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0FsaWduQ29udGVu
dEVuZC5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQWxp
Z25Db250ZW50RW5kLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu
LjA1YThiZDg2Y2NlMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0ltYWdlcy9BbGlnbkNvbnRlbnRFbmQuc3ZnCkBAIC0wLDAgKzEsNSBAQAor
PCEtLSBDb3B5cmlnaHQgwqkgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0t
PgorPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9
Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBpZD0icm9vdCI+CisgICAgPHJlY3QgeD0iMiIg
eT0iOS41IiB3aWR0aD0iMTIiIGhlaWdodD0iMiIgZmlsbD0iY3VycmVudENvbG9yIi8+CisgICAg
PHJlY3QgeD0iMiIgeT0iMTIuNSIgd2lkdGg9IjEyIiBoZWlnaHQ9IjIiIGZpbGw9ImN1cnJlbnRD
b2xvciIvPgorPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9JbWFnZXMvQWxpZ25Db250ZW50U3BhY2VBcm91bmQuc3ZnIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0FsaWduQ29udGVudFNwYWNlQXJvdW5kLnN2
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjIzNDliMmJjYzM3Mgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0lt
YWdlcy9BbGlnbkNvbnRlbnRTcGFjZUFyb3VuZC5zdmcKQEAgLTAsMCArMSw1IEBACis8IS0tIENv
cHlyaWdodCDCqSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Cis8c3Zn
IHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiB4bWxucz0iaHR0cDov
L3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJyb290Ij4KKyAgICA8cmVjdCB4PSIyIiB5PSIzIiB3
aWR0aD0iMTIiIGhlaWdodD0iMiIgZmlsbD0iY3VycmVudENvbG9yIi8+CisgICAgPHJlY3QgeD0i
MiIgeT0iMTEiIHdpZHRoPSIxMiIgaGVpZ2h0PSIyIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KKzwv
c3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1h
Z2VzL0FsaWduQ29udGVudFNwYWNlQmV0d2Vlbi5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9JbWFnZXMvQWxpZ25Db250ZW50U3BhY2VCZXR3ZWVuLnN2ZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmY0M2U3NGYxZmU2ZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9BbGln
bkNvbnRlbnRTcGFjZUJldHdlZW4uc3ZnCkBAIC0wLDAgKzEsNSBAQAorPCEtLSBDb3B5cmlnaHQg
wqkgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB3aWR0aD0i
MTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzIwMDAvc3ZnIiBpZD0icm9vdCI+CisgICAgPHJlY3QgeD0iMiIgeT0iMSIgd2lkdGg9IjEy
IiBoZWlnaHQ9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIvPgorICAgIDxyZWN0IHg9IjIiIHk9IjEz
IiB3aWR0aD0iMTIiIGhlaWdodD0iMiIgZmlsbD0iY3VycmVudENvbG9yIi8+Cis8L3N2Zz4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9BbGln
bkNvbnRlbnRTcGFjZUV2ZW5seS5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9JbWFnZXMvQWxpZ25Db250ZW50U3BhY2VFdmVubHkuc3ZnCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZWFkYTk4N2M3MDk3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0FsaWduQ29udGVudFNw
YWNlRXZlbmx5LnN2ZwpAQCAtMCwwICsxLDUgQEAKKzwhLS0gQ29weXJpZ2h0IMKpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKzxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9
IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2
ZyIgaWQ9InJvb3QiPgorICAgIDxyZWN0IHg9IjIiIHk9IjQiIHdpZHRoPSIxMiIgaGVpZ2h0PSIy
IiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KKyAgICA8cmVjdCB4PSIyIiB5PSIxMCIgd2lkdGg9IjEy
IiBoZWlnaHQ9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIvPgorPC9zdmc+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQWxpZ25Db250ZW50U3Rh
cnQuc3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0FsaWdu
Q29udGVudFN0YXJ0LnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu
Ljg2M2E0NjM4NGVkYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0ltYWdlcy9BbGlnbkNvbnRlbnRTdGFydC5zdmcKQEAgLTAsMCArMSw1IEBA
Cis8IS0tIENvcHlyaWdodCDCqSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4g
LS0+Cis8c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiB4bWxu
cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJyb290Ij4KKyAgICA8cmVjdCB4PSIy
IiB5PSIxIiB3aWR0aD0iMTIiIGhlaWdodD0iMiIgZmlsbD0iY3VycmVudENvbG9yIi8+CisgICAg
PHJlY3QgeD0iMiIgeT0iNCIgd2lkdGg9IjEyIiBoZWlnaHQ9IjIiIGZpbGw9ImN1cnJlbnRDb2xv
ciIvPgorPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9JbWFnZXMvQWxpZ25Db250ZW50U3RyZXRjaC5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9JbWFnZXMvQWxpZ25Db250ZW50U3RyZXRjaC5zdmcKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kNzVkNjRjMTg1YWYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQWxpZ25D
b250ZW50U3RyZXRjaC5zdmcKQEAgLTAsMCArMSw1IEBACis8IS0tIENvcHlyaWdodCDCqSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Cis8c3ZnIHdpZHRoPSIxNiIgaGVp
Z2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAw
MC9zdmciIGlkPSJyb290Ij4KKyAgICA8cmVjdCB4PSIyIiB5PSIxIiB3aWR0aD0iMTIiIGhlaWdo
dD0iNi41IiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KKyAgICA8cmVjdCB4PSIyIiB5PSI4LjUiIHdp
ZHRoPSIxMiIgaGVpZ2h0PSI2LjUiIGZpbGw9ImN1cnJlbnRDb2xvciIvPgorPC9zdmc+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKaW5kZXggYTMyNzdj
OGRhZWIxLi43Nzc5OTE4NzBiY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01haW4uaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9NYWluLmh0bWwKQEAgLTM0LDYgKzM0LDcgQEAKIAogICAgIDxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iRXh0ZXJuYWwvQ29kZU1pcnJvci9jb2RlbWlycm9yLmNzcyI+CiAKKyAg
ICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0FsaWduQ29udGVudEVkaXRvci5j
c3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQW5pbWF0aW9uQ29s
bGVjdGlvbkNvbnRlbnRWaWV3LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSJWaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iVmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5jc3MiPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQWxpZ25D
b250ZW50RWRpdG9yLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0FsaWduQ29udGVudEVkaXRvci5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwLi44OTJjZWFjZjE5ODQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbGlnbkNvbnRlbnRFZGl0b3IuY3NzCkBAIC0w
LDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisuYWxpZ24tY29udGVudC1lZGl0b3IgLmdseXBoIHsK
KyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgd2lkdGg6IDE2cHg7CisgICAgaGVpZ2h0
OiAxNnB4OworICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3ItY29u
dGVudCk7Cit9CisKKy5hbGlnbi1jb250ZW50LWVkaXRvciAuZ2x5cGggeworICAgIGNvbG9yOiB2
YXIoLS1nbHlwaC1jb2xvcik7CisgICAgbWFyZ2luOiAxcHg7Cit9CisKKy5hbGlnbi1jb250ZW50
LWVkaXRvciAuZ2x5cGg6bm90KDpmaXJzdC1jaGlsZCkgeworICAgIG1hcmdpbi1sZWZ0OiAwOwor
fQorCisuYWxpZ24tY29udGVudC1lZGl0b3IgLmdseXBoOmFjdGl2ZSB7CisgICAgY29sb3I6IHZh
cigtLWdseXBoLWNvbG9yLXByZXNzZWQpOworfQorCisuYWxpZ24tY29udGVudC1lZGl0b3IgLmds
eXBoLnNlbGVjdGVkIHsKKyAgICBjb2xvcjogdmFyKC0tZ2x5cGgtY29sb3ItYWN0aXZlKTsKKyAg
ICBvdXRsaW5lOiAxcHggc29saWQgdmFyKC0tZ2x5cGgtY29sb3ItYWN0aXZlKTsKK30KKworLmFs
aWduLWNvbnRlbnQtZWRpdG9yIC5nbHlwaC5zZWxlY3RlZDphY3RpdmUgeworICAgIGNvbG9yOiB2
YXIoLS1nbHlwaC1jb2xvci1hY3RpdmUtcHJlc3NlZCk7CisgICAgb3V0bGluZS1jb2xvcjogdmFy
KC0tZ2x5cGgtY29sb3ItYWN0aXZlLXByZXNzZWQpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSW5saW5lU3dhdGNoLmNzcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lubGluZVN3YXRjaC5jc3MKaW5k
ZXggY2RmMThmOWEzY2YzLi41MWY5OWRhYjJjNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lubGluZVN3YXRjaC5jc3MKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSW5saW5lU3dhdGNoLmNzcwpAQCAt
NTgsMTEgKzU4LDExIEBACiAgICAgbWFyZ2luLXJpZ2h0OiAycHg7CiB9CiAKLS5pbmxpbmUtc3dh
dGNoOm5vdCgucmVhZC1vbmx5KTptYXRjaGVzKC5iZXppZXIsIC5ib3gtc2hhZG93LCAuc3ByaW5n
LCAudmFyaWFibGUpOmhvdmVyIHsKKy5pbmxpbmUtc3dhdGNoOm5vdCgucmVhZC1vbmx5KTptYXRj
aGVzKC5iZXppZXIsIC5ib3gtc2hhZG93LCAuc3ByaW5nLCAudmFyaWFibGUsIC5hbGlnbi1jb250
ZW50KTpob3ZlciB7CiAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDAuOSk7CiB9CiAKLS5pbmxpbmUt
c3dhdGNoOm5vdCgucmVhZC1vbmx5KTptYXRjaGVzKC5iZXppZXIsIC5ib3gtc2hhZG93LCAuc3By
aW5nLCAudmFyaWFibGUpOmFjdGl2ZSB7CisuaW5saW5lLXN3YXRjaDpub3QoLnJlYWQtb25seSk6
bWF0Y2hlcyguYmV6aWVyLCAuYm94LXNoYWRvdywgLnNwcmluZywgLnZhcmlhYmxlLCAuYWxpZ24t
Y29udGVudCk6YWN0aXZlIHsKICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMC44KTsKIH0KIApAQCAt
MTAzLDYgKzEwMywxMSBAQAogICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CiB9CiAK
Ky5pbmxpbmUtc3dhdGNoLmFsaWduLWNvbnRlbnQgPiBzcGFuIHsKKyAgICBiYWNrZ3JvdW5kLXNp
emU6IDlweCA5cHg7CisgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKK30KKwogLmlu
bGluZS1zd2F0Y2gtdmFyaWFibGUtcG9wb3ZlciB7CiAgICAgZGlzcGxheTogZmxleDsKICAgICBh
bGlnbi1pdGVtczogY2VudGVyOwpAQCAtMTIwLDcgKzEyNSw4IEBACiB9CiAKIEBtZWRpYSAocHJl
ZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKLSAgICAuaW5saW5lLXN3YXRjaC5ib3gtc2hhZG93
ID4gc3ZnIHsKKyAgICAuaW5saW5lLXN3YXRjaC5ib3gtc2hhZG93ID4gc3ZnLAorICAgIC5pbmxp
bmUtc3dhdGNoLmFsaWduLWNvbnRlbnQgPiBzcGFuIHsKICAgICAgICAgZmlsdGVyOiBpbnZlcnQo
KTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9JbmxpbmVTd2F0Y2guanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9JbmxpbmVTd2F0Y2guanMKaW5kZXggODFlNDhkYjQ0NzdiLi5hYWFmMDUz
MjA3OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0lubGluZVN3YXRjaC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9JbmxpbmVTd2F0Y2guanMKQEAgLTcwLDYgKzcwLDEwIEBAIFdJLklubGluZVN3
YXRjaCA9IGNsYXNzIElubGluZVN3YXRjaCBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAg
ICAgIC8vIEhhbmRsZWQgbGF0ZXIgYnkgX3VwZGF0ZVN3YXRjaC4KICAgICAgICAgICAgICAgICBi
cmVhazsKIAorICAgICAgICAgICAgY2FzZSBXSS5JbmxpbmVTd2F0Y2guVHlwZS5BbGlnbkNvbnRl
bnQ6CisgICAgICAgICAgICAgICAgLy8gSGFuZGxlZCBsYXRlciBieSBfdXBkYXRlU3dhdGNoLgor
ICAgICAgICAgICAgICAgIGJyZWFrOworCiAgICAgICAgICAgICBjYXNlIFdJLklubGluZVN3YXRj
aC5UeXBlLkdyYWRpZW50OgogICAgICAgICAgICAgICAgIHRoaXMuX3N3YXRjaEVsZW1lbnQudGl0
bGUgPSBXSS5VSVN0cmluZygiRWRpdCBjdXN0b20gZ3JhZGllbnQiKTsKICAgICAgICAgICAgICAg
ICBicmVhazsKQEAgLTE4NSw2ICsxODksMTQgQEAgV0kuSW5saW5lU3dhdGNoID0gY2xhc3MgSW5s
aW5lU3dhdGNoIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICB0aGlzLl9zd2F0Y2hJbm5l
ckVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZCA9IHZhbHVlID8gdmFsdWUudG9TdHJpbmcoKSA6IG51
bGw7CiAgICAgICAgIGVsc2UgaWYgKHRoaXMuX3R5cGUgPT09IFdJLklubGluZVN3YXRjaC5UeXBl
LkltYWdlKQogICAgICAgICAgICAgdGhpcy5fc3dhdGNoSW5uZXJFbGVtZW50LnN0eWxlLnNldFBy
b3BlcnR5KCJiYWNrZ3JvdW5kLWltYWdlIiwgYHVybCgke3ZhbHVlLnNyY30pYCk7CisgICAgICAg
IGVsc2UgaWYgKHRoaXMuX3R5cGUgPT09IFdJLklubGluZVN3YXRjaC5UeXBlLkFsaWduQ29udGVu
dCkgeworICAgICAgICAgICAgbGV0IGdseXBoUGF0aCA9IHRoaXMuX2dldEFsaWduQ29udGVudEds
eXBoUGF0aCh2YWx1ZSk7CisgICAgICAgICAgICBpZiAoZ2x5cGhQYXRoKQorICAgICAgICAgICAg
ICAgIHRoaXMuX3N3YXRjaElubmVyRWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPSBgdXJs
KCR7Z2x5cGhQYXRofSlgOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8g
VE9ETzogRGlzcGxheSBhIGdseXBoIGZvciBhbiB1bnJlY29nbml6ZWQgdmFsdWUuCisgICAgICAg
ICAgICB9CisgICAgICAgIH0KIAogICAgICAgICBpZiAodGhpcy5fdHlwZSA9PT0gV0kuSW5saW5l
U3dhdGNoLlR5cGUuQ29sb3IpIHsKICAgICAgICAgICAgIGlmICh0aGlzLl9hbGxvd0NoYW5naW5n
Q29sb3JGb3JtYXRzKCkpCkBAIC0yNDMsNyArMjU1LDcgQEAgV0kuSW5saW5lU3dhdGNoID0gY2xh
c3MgSW5saW5lU3dhdGNoIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICAgICAgcG9wb3Zlci53aW5k
b3dSZXNpemVIYW5kbGVyID0gKCkgPT4gewogICAgICAgICAgICAgbGV0IGJvdW5kcyA9IFdJLlJl
Y3QucmVjdEZyb21DbGllbnRSZWN0KHRoaXMuX3N3YXRjaEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCkpOwotICAgICAgICAgICAgcG9wb3Zlci5wcmVzZW50KGJvdW5kcy5wYWQoMiksIFtX
SS5SZWN0RWRnZS5NSU5fWF0pOworICAgICAgICAgICAgcG9wb3Zlci5wcmVzZW50KGJvdW5kcy5w
YWQoMiksIFtXSS5SZWN0RWRnZS5NSU5fWV0pOwogICAgICAgICB9OwogCiAgICAgICAgIHRoaXMu
X3ZhbHVlRWRpdG9yID0gbnVsbDsKQEAgLTMwMSwxMyArMzEzLDE4IEBAIFdJLklubGluZVN3YXRj
aCA9IGNsYXNzIElubGluZVN3YXRjaCBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgICAg
IHBvcG92ZXIudXBkYXRlKCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIGJyZWFrOwor
CisgICAgICAgIGNhc2UgV0kuSW5saW5lU3dhdGNoLlR5cGUuQWxpZ25Db250ZW50OgorICAgICAg
ICAgICAgdGhpcy5fdmFsdWVFZGl0b3IgPSB7fTsKKyAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUFs
aWduQ29udGVudFBvcG92ZXIoKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKICAg
ICAgICAgaWYgKCF0aGlzLl92YWx1ZUVkaXRvcikKICAgICAgICAgICAgIHJldHVybjsKIAogICAg
ICAgICBwb3BvdmVyLmNvbnRlbnQgPSB0aGlzLl92YWx1ZUVkaXRvci5lbGVtZW50OwotICAgICAg
ICBwb3BvdmVyLnByZXNlbnQoYm91bmRzLnBhZCgyKSwgW1dJLlJlY3RFZGdlLk1JTl9YXSk7Cisg
ICAgICAgIHBvcG92ZXIucHJlc2VudChib3VuZHMucGFkKDIpLCBbV0kuUmVjdEVkZ2UuTUlOX1ld
KTsKIAogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5JbmxpbmVTd2F0
Y2guRXZlbnQuQWN0aXZhdGVkKTsKIApAQCAtMzU2LDYgKzM3MywyOSBAQCBXSS5JbmxpbmVTd2F0
Y2ggPSBjbGFzcyBJbmxpbmVTd2F0Y2ggZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgfQogICAg
IH0KIAorICAgIF91cGRhdGVBbGlnbkNvbnRlbnRQb3BvdmVyKCkKKyAgICB7CisKKyAgICAgICAg
aWYgKCF0aGlzLl92YWx1ZUVkaXRvci5lbGVtZW50KSB7CisgICAgICAgICAgICB0aGlzLl92YWx1
ZUVkaXRvci5lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAg
ICAgICB0aGlzLl92YWx1ZUVkaXRvci5lbGVtZW50LmNsYXNzTmFtZSA9ICJhbGlnbi1jb250ZW50
LWVkaXRvciI7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGhpcy5fdmFsdWVFZGl0b3Iu
ZWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOworCisgICAgICAgIGxldCB2YWx1ZXMgPSBbInN0YXJ0
IiwgImNlbnRlciIsICJlbmQiLCAic3BhY2UtYmV0d2VlbiIsICJzcGFjZS1hcm91bmQiLCAic3Bh
Y2UtZXZlbmx5IiwgInN0cmV0Y2giXTsKKyAgICAgICAgZm9yIChsZXQgdmFsdWUgb2YgdmFsdWVz
KSB7CisgICAgICAgICAgICBsZXQgZ2x5cGhFbGVtZW50ID0gV0kuSW1hZ2VVdGlsaXRpZXMudXNl
U1ZHU3ltYm9sKHRoaXMuX2dldEFsaWduQ29udGVudEdseXBoUGF0aCh2YWx1ZSksICJnbHlwaCIs
IHZhbHVlKTsKKyAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5fdmFsdWUpCisgICAgICAg
ICAgICAgICAgZ2x5cGhFbGVtZW50LmNsYXNzTGlzdC5hZGQoInNlbGVjdGVkIik7CisgICAgICAg
ICAgICB0aGlzLl92YWx1ZUVkaXRvci5lbGVtZW50LmFwcGVuZChnbHlwaEVsZW1lbnQpOworICAg
ICAgICAgICAgZ2x5cGhFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgKCkgPT4gewor
ICAgICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLklubGluZVN3
YXRjaC5FdmVudC5WYWx1ZUNoYW5nZWQsIHt2YWx1ZX0pOworICAgICAgICAgICAgICAgIHRoaXMu
dmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVBbGlnbkNvbnRlbnRQ
b3BvdmVyKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIF92YWx1
ZUVkaXRvclZhbHVlRGlkQ2hhbmdlKGV2ZW50KQogICAgIHsKICAgICAgICAgc3dpdGNoICh0aGlz
Ll90eXBlKSB7CkBAIC01MTEsNiArNTUxLDIxIEBAIFdJLklubGluZVN3YXRjaCA9IGNsYXNzIElu
bGluZVN3YXRjaCBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB9CiAgICAgICAgIHJldHVybiBo
ZXhGb3JtYXRzWzBdOwogICAgIH0KKworICAgIF9nZXRBbGlnbkNvbnRlbnRHbHlwaFBhdGgodmFs
dWUpCisgICAgeworICAgICAgICBsZXQgdmFsdWVUb0ZpbGVOYW1lID0geworICAgICAgICAgICAg
InN0YXJ0IjogIkFsaWduQ29udGVudFN0YXJ0LnN2ZyIsCisgICAgICAgICAgICAiY2VudGVyIjog
IkFsaWduQ29udGVudENlbnRlci5zdmciLAorICAgICAgICAgICAgImVuZCI6ICJBbGlnbkNvbnRl
bnRFbmQuc3ZnIiwKKyAgICAgICAgICAgICJzcGFjZS1iZXR3ZWVuIjogIkFsaWduQ29udGVudFNw
YWNlQmV0d2Vlbi5zdmciLAorICAgICAgICAgICAgInNwYWNlLWFyb3VuZCI6ICJBbGlnbkNvbnRl
bnRTcGFjZUFyb3VuZC5zdmciLAorICAgICAgICAgICAgInNwYWNlLWV2ZW5seSI6ICJBbGlnbkNv
bnRlbnRTcGFjZUV2ZW5seS5zdmciLAorICAgICAgICAgICAgInN0cmV0Y2giOiAiQWxpZ25Db250
ZW50U3RyZXRjaC5zdmciLAorICAgICAgICB9OworICAgICAgICBsZXQgZ2x5cGhJZGVudGlmaWVy
ID0gdmFsdWVUb0ZpbGVOYW1lW3ZhbHVlXTsKKyAgICAgICAgcmV0dXJuIGdseXBoSWRlbnRpZmll
ciA/IGBJbWFnZXMvJHtnbHlwaElkZW50aWZpZXJ9YCA6ICIiOworICAgIH0KIH07CiAKIFdJLklu
bGluZVN3YXRjaC5UeXBlID0gewpAQCAtNTIxLDYgKzU3Niw3IEBAIFdJLklubGluZVN3YXRjaC5U
eXBlID0gewogICAgIFNwcmluZzogImlubGluZS1zd2F0Y2gtdHlwZS1zcHJpbmciLAogICAgIFZh
cmlhYmxlOiAiaW5saW5lLXN3YXRjaC10eXBlLXZhcmlhYmxlIiwKICAgICBJbWFnZTogImlubGlu
ZS1zd2F0Y2gtdHlwZS1pbWFnZSIsCisgICAgQWxpZ25Db250ZW50OiAiaW5saW5lLXN3YXRjaC10
eXBlLWFsaWduLWNvbnRlbnQiLAogfTsKIAogV0kuSW5saW5lU3dhdGNoLkV2ZW50ID0gewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFk
c2hlZXRTdHlsZVByb3BlcnR5LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LmpzCmluZGV4IDIzNzUwM2I4OGQzYy4u
NTJiMDgyMTU2NDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9TcHJlYWRzaGVldFN0eWxlUHJvcGVydHkuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5Lmpz
CkBAIC02MjcsNiArNjI3LDkgQEAgV0kuU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5ID0gY2xhc3Mg
U3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIGlmICh0
aGlzLl9wcm9wZXJ0eS5uYW1lID09PSAiYm94LXNoYWRvdyIpCiAgICAgICAgICAgICByZXR1cm4g
dGhpcy5fYWRkQm94U2hhZG93VG9rZW5zKHRva2Vucyk7CiAKKyAgICAgICAgaWYgKHRoaXMuX3By
b3BlcnR5Lm5hbWUgPT09ICJhbGlnbi1jb250ZW50IikKKyAgICAgICAgICAgIHJldHVybiB0aGlz
Ll9hZGRBbGlnbkNvbnRlbnRUb2tlbnModG9rZW5zKTsKKwogICAgICAgICBpZiAodGhpcy5fcHJv
cGVydHkuaXNWYXJpYWJsZSB8fCBXSS5DU1NLZXl3b3JkQ29tcGxldGlvbnMuaXNDb2xvckF3YXJl
UHJvcGVydHkodGhpcy5fcHJvcGVydHkubmFtZSkpIHsKICAgICAgICAgICAgIHRva2VucyA9IHRo
aXMuX2FkZEdyYWRpZW50VG9rZW5zKHRva2Vucyk7CiAgICAgICAgICAgICB0b2tlbnMgPSB0aGlz
Ll9hZGRDb2xvclRva2Vucyh0b2tlbnMpOwpAQCAtODQwLDYgKzg0MywxMyBAQCBXSS5TcHJlYWRz
aGVldFN0eWxlUHJvcGVydHkgPSBjbGFzcyBTcHJlYWRzaGVldFN0eWxlUHJvcGVydHkgZXh0ZW5k
cyBXSS5PYmplY3QKICAgICAgICAgcmV0dXJuIG5ld1Rva2VuczsKICAgICB9CiAKKyAgICBfYWRk
QWxpZ25Db250ZW50VG9rZW5zKHRva2VucykKKyAgICB7CisgICAgICAgIGxldCB0ZXh0ID0gdG9r
ZW5zLm1hcCgodG9rZW4pID0+IHRva2VuLnZhbHVlKS5qb2luKCIiKTsKKyAgICAgICAgbGV0IHN3
YXRjaCA9IHRoaXMuX2NyZWF0ZUlubGluZVN3YXRjaChXSS5JbmxpbmVTd2F0Y2guVHlwZS5BbGln
bkNvbnRlbnQsIHRva2VucywgdGV4dCk7CisgICAgICAgIHJldHVybiBbc3dhdGNoXTsKKyAgICB9
CisKICAgICBfYWRkVmFyaWFibGVUb2tlbnModG9rZW5zKQogICAgIHsKICAgICAgICAgbGV0IG5l
d1Rva2VucyA9IFtdOwo=
</data>
<flag name="commit-queue"
          id="466918"
          type_id="3"
          status="-"
          setter="nvasilyev"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>442424</attachid>
            <date>2021-10-25 14:59:55 -0700</date>
            <delta_ts>2021-10-25 14:59:55 -0700</delta_ts>
            <desc>[Image] align-content popover</desc>
            <filename>align-content popover.png</filename>
            <type>image/png</type>
            <size>18923</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">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
ACNjUZQXoPb28vUvyUmxtxuLRcOmS8JHmeytDgCpGeCrRCYb3i6Tfd2DFfsAoCV7bK4fEV3sG2OW
FCjfdj9cJCiAf8jYzP+XHv+pYaQCB/in/hMHgCBti3AmawAAAIplWElmTU0AKgAAAAgABAEaAAUA
AAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAACQAAAAAQAA
AJAAAAABAAOShgAHAAAAEgAAAHigAgAEAAAAAQAAAY6gAwAEAAAAAQAAAJwAAAAAQVNDSUkAAABT
Y3JlZW5zaG90Vs6pUwAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAdZpVFh0WE1MOmNvbS5hZG9iZS54
bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBD
b3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9
IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8i
PgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+MTU2PC9leGlmOlBpeGVsWURpbWVuc2lv
bj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjM5ODwvZXhpZjpQaXhlbFhEaW1lbnNp
b24+CiAgICAgICAgIDxleGlmOlVzZXJDb21tZW50PlNjcmVlbnNob3Q8L2V4aWY6VXNlckNvbW1l
bnQ+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgpb
3US0AAAAHGlET1QAAAACAAAAAAAAAE4AAAAoAAAATgAAAE4AABQI9olLrQAAE9RJREFUeAHsXWmM
FVUWPs3WQNON7FtAoBFEkCAg4gKiRowmGMbEfVwSg46T6KgTcSWj0QxuqPxxjIPbIMbROMYlhqAj
CIqIqCj7vgk0O3Q3O8L0d3ru4716776q169eV3XVd5PXtd2699zv3j5fnXPurSo6cODASWEiAkSA
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
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>442427</attachid>
            <date>2021-10-25 15:07:55 -0700</date>
            <delta_ts>2021-10-25 15:07:55 -0700</delta_ts>
            <desc>[HTML] Align-content flexbox</desc>
            <filename>align-content.html</filename>
            <type>text/html</type>
            <size>2339</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICAgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4K
ICAgIDx0aXRsZT5BbGlnbi1jb250ZW50IGZsZXhib3g8L3RpdGxlPgogICAgPHN0eWxlPgogICAg
Ym9keSB7CiAgICAgICAgZm9udDogMTJweCBzYW5zLXNlcmlmOwogICAgICAgIGNvbG9yOiAjNjVh
ODAwOwogICAgfQoKICAgIGgyIHsKICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7CiAgICAgICAg
Zm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgbWFyZ2luLXRvcDogMDsKICAgIH0KCiAgICAub3Zl
cnZpZXcgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICB9CgogICAgLmNvbnRhaW5lciB7CiAg
ICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDYwcHgg
NjBweDsKICAgICAgICBncmlkLWF1dG8tcm93czogNDBweDsKICAgICAgICBncmlkLWdhcDogMTBw
eDsKICAgICAgICBoZWlnaHQ6IDMyMHB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGhzbCgz
MywgNzIlLCA1OCUpOwogICAgICAgIGJhY2tncm91bmQ6IGhzbCgzMywgMTAwJSwgOTMlKTsKCiAg
ICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OwogICAgfQoKICAgIC5jb250YWluZXIgPiBkaXYgewog
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhzbCg2OCwgNDklLCA3MSUpOwogICAgICAgIGJvcmRl
cjogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjsKICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKICAg
IH0KICAgIDwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+CjxkaXYgY2xhc3M9Im92ZXJ2aWV3Ij4KICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciIgc3R5bGU9ImFsaWduLWNvbnRlbnQ6IHN0YXJ0OyI+CiAg
ICAgICAgPGgyPmFsaWduLWNvbnRlbnQ6IHN0YXJ0PC9oMj4KICAgICAgICA8ZGl2PjE8L2Rpdj4K
ICAgICAgICA8ZGl2PjI8L2Rpdj4KICAgICAgICA8ZGl2PjM8L2Rpdj4KICAgICAgICA8ZGl2PjQ8
L2Rpdj4KICAgICAgICA8ZGl2PjU8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIiBzdHlsZT0iYWxpZ24tY29udGVudDogZW5kOyI+CiAgICAgICAgPGgyPmFsaWduLWNv
bnRlbnQ6IGVuZDwvaDI+CiAgICAgICAgPGRpdj4xPC9kaXY+CiAgICAgICAgPGRpdj4yPC9kaXY+
CiAgICAgICAgPGRpdj4zPC9kaXY+CiAgICAgICAgPGRpdj40PC9kaXY+CiAgICAgICAgPGRpdj41
PC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciIgc3R5bGU9ImFsaWdu
LWNvbnRlbnQ6IGNlbnRlcjsiPgogICAgICAgIDxoMj5hbGlnbi1jb250ZW50OiBjZW50ZXI8L2gy
PgogICAgICAgIDxkaXY+MTwvZGl2PgogICAgICAgIDxkaXY+MjwvZGl2PgogICAgICAgIDxkaXY+
MzwvZGl2PgogICAgICAgIDxkaXY+NDwvZGl2PgogICAgICAgIDxkaXY+NTwvZGl2PgogICAgPC9k
aXY+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiIHN0eWxlPSJhbGlnbi1jb250ZW50OiBzcGFj
ZS1iZXR3ZWVuOyI+CiAgICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbgogICAgICAg
IDxkaXY+MTwvZGl2PgogICAgICAgIDxkaXY+MjwvZGl2PgogICAgICAgIDxkaXY+MzwvZGl2Pgog
ICAgICAgIDxkaXY+NDwvZGl2PgogICAgICAgIDxkaXY+NTwvZGl2PgogICAgPC9kaXY+CiAgICA8
ZGl2IGNsYXNzPSJjb250YWluZXIiIHN0eWxlPSJhbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQ7
Ij4KICAgICAgICA8aDI+YWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kPC9oMj4KICAgICAgICA8
ZGl2PjE8L2Rpdj4KICAgICAgICA8ZGl2PjI8L2Rpdj4KICAgICAgICA8ZGl2PjM8L2Rpdj4KICAg
ICAgICA8ZGl2PjQ8L2Rpdj4KICAgICAgICA8ZGl2PjU8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIiBzdHlsZT0iYWxpZ24tY29udGVudDogc3BhY2UtZXZlbmx5OyI+
CiAgICAgICAgPGgyPmFsaWduLWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTwvaDI+CiAgICAgICAgPGRp
dj4xPC9kaXY+CiAgICAgICAgPGRpdj4yPC9kaXY+CiAgICAgICAgPGRpdj4zPC9kaXY+CiAgICAg
ICAgPGRpdj40PC9kaXY+CiAgICAgICAgPGRpdj41PC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciIgc3R5bGU9ImFsaWduLWNvbnRlbnQ6IHN0cmV0Y2g7Ij4KICAgICAg
ICA8aDI+YWxpZ24tY29udGVudDogc3RyZXRjaDwvaDI+CiAgICAgICAgPGRpdj4xPC9kaXY+CiAg
ICAgICAgPGRpdj4yPC9kaXY+CiAgICAgICAgPGRpdj4zPC9kaXY+CiAgICAgICAgPGRpdj40PC9k
aXY+CiAgICAgICAgPGRpdj41PC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+CjwvYm9keT4KPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443556</attachid>
            <date>2021-11-08 09:15:56 -0800</date>
            <delta_ts>2021-11-12 12:05:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>20398</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGYyNjJhMWQ3MDAxYi4uMjBjYmJlYmQ4YWYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAyMS0xMS0wOCAgTmlr
aXRhIFZhc2lseWV2ICA8bnZhc2lseWV2QGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBBZGQgYSBzd2F0Y2ggZm9yIGFsaWduLWNvbnRlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDA2NQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vODI4OTEzNjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW50cm9kdWNlIGFuIGlubGluZSBzd2F0Y2ggZm9yIGBhbGlnbi1jb250ZW50YCwgdGhh
dCBzaG93cyBpY29ucyBmb3IgY29tbW9uIGFsaWduLWNvbnRlbnQgdmFsdWVzOgorICAgICAgICBz
dGFydCwgY2VudGVyLCBlbmQsIHNwYWNlLWJldHdlZW4sIHNwYWNlLWFyb3VuZCwgc3BhY2UtZXZl
bmx5LCBhbmQgc3RyZXRjaC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL0FsaWdu
Q29udGVudENlbnRlci5zdmc6IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2Vz
L0FsaWduQ29udGVudEVuZC5zdmc6IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1h
Z2VzL0FsaWduQ29udGVudFNwYWNlQXJvdW5kLnN2ZzogQWRkZWQuCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9JbWFnZXMvQWxpZ25Db250ZW50U3BhY2VCZXR3ZWVuLnN2ZzogQWRkZWQuCisgICAg
ICAgICogVXNlckludGVyZmFjZS9JbWFnZXMvQWxpZ25Db250ZW50U3BhY2VFdmVubHkuc3ZnOiBB
ZGRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0ltYWdlcy9BbGlnbkNvbnRlbnRTdGFydC5z
dmc6IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL0FsaWduQ29udGVudFN0
cmV0Y2guc3ZnOiBBZGRlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTWFpbi5odG1sOgor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQWxpZ25tZW50SW5saW5lU3dhdGNoRWRpdG9y
LmNzczogQWRkZWQuCisgICAgICAgICguYWxpZ25tZW50LWlubGluZS1zd2F0Y2gtZWRpdG9yIC5n
bHlwaCk6CisgICAgICAgICguYWxpZ25tZW50LWlubGluZS1zd2F0Y2gtZWRpdG9yIC5nbHlwaDpu
b3QoOmxhc3QtY2hpbGQpKToKKyAgICAgICAgKC5hbGlnbm1lbnQtaW5saW5lLXN3YXRjaC1lZGl0
b3IgLmdseXBoOmFjdGl2ZSk6CisgICAgICAgICguYWxpZ25tZW50LWlubGluZS1zd2F0Y2gtZWRp
dG9yIC5nbHlwaC5zZWxlY3RlZCk6CisgICAgICAgICguYWxpZ25tZW50LWlubGluZS1zd2F0Y2gt
ZWRpdG9yIC5nbHlwaC5zZWxlY3RlZCArIC5nbHlwaCk6CisgICAgICAgICguYWxpZ25tZW50LWlu
bGluZS1zd2F0Y2gtZWRpdG9yIC5nbHlwaC5zZWxlY3RlZDphY3RpdmUpOgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9BbGlnbm1lbnRJbmxpbmVTd2F0Y2hFZGl0b3IuanM6IEFkZGVk
LgorICAgICAgICAoV0kuQWxpZ25tZW50SW5saW5lU3dhdGNoRWRpdG9yKToKKyAgICAgICAgKFdJ
LkFsaWdubWVudElubGluZVN3YXRjaEVkaXRvci5pc0FsaWduQ29udGVudFZhbHVlKToKKyAgICAg
ICAgKFdJLkFsaWdubWVudElubGluZVN3YXRjaEVkaXRvci5wcm90b3R5cGUuZ2V0IGVsZW1lbnQp
OgorICAgICAgICAoV0kuQWxpZ25tZW50SW5saW5lU3dhdGNoRWRpdG9yLnByb3RvdHlwZS5nZXQg
dmFsdWUpOgorICAgICAgICAoV0kuQWxpZ25tZW50SW5saW5lU3dhdGNoRWRpdG9yLnByb3RvdHlw
ZS5zZXQgdmFsdWUpOgorICAgICAgICAoV0kuQWxpZ25tZW50SW5saW5lU3dhdGNoRWRpdG9yLnBy
b3RvdHlwZS5fdXBkYXRlKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvSW5saW5l
U3dhdGNoLmNzczoKKyAgICAgICAgKC5pbmxpbmUtc3dhdGNoOm5vdCgucmVhZC1vbmx5KTptYXRj
aGVzKC5iZXppZXIsIC5ib3gtc2hhZG93LCAuc3ByaW5nLCAudmFyaWFibGUsIC5hbGlnbi1jb250
ZW50KTpob3Zlcik6CisgICAgICAgICguaW5saW5lLXN3YXRjaDpub3QoLnJlYWQtb25seSk6bWF0
Y2hlcyguYmV6aWVyLCAuYm94LXNoYWRvdywgLnNwcmluZywgLnZhcmlhYmxlLCAuYWxpZ24tY29u
dGVudCk6YWN0aXZlKToKKyAgICAgICAgKC5pbmxpbmUtc3dhdGNoLmFsaWduLWNvbnRlbnQgPiBz
cGFuKToKKyAgICAgICAgKEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIC5pbmxp
bmUtc3dhdGNoLmJveC1zaGFkb3cgPiBzdmcsKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvSW5saW5lU3dhdGNoLmpzOgorICAgICAgICAoV0kuSW5saW5lU3dhdGNoKToKKyAgICAg
ICAgKFdJLklubGluZVN3YXRjaC5wcm90b3R5cGUuX3VwZGF0ZVN3YXRjaCk6CisgICAgICAgIChX
SS5JbmxpbmVTd2F0Y2gucHJvdG90eXBlLl92YWx1ZUVkaXRvclZhbHVlRGlkQ2hhbmdlKToKKwor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5Lmpz
OgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LnByb3RvdHlwZS5fcmVwbGFj
ZVNwZWNpYWxUb2tlbnMpOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LnBy
b3RvdHlwZS5fYWRkQWxpZ25Db250ZW50VG9rZW5zKToKKwogMjAyMS0wNy0yNiAgUWlhb3Nvbmcg
WmhvdSAgPHFpYW9zb25nX3pob3VAYXBwbGUuY29tPgogCiAgICAgICAgIEZvcm1EYXRhRXZlbnQg
YWRkZWQuIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
SW1hZ2VzL0FsaWduQ29udGVudENlbnRlci5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9JbWFnZXMvQWxpZ25Db250ZW50Q2VudGVyLnN2ZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjM5ZjQ2MmExZjRhNwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9BbGlnbkNvbnRlbnRD
ZW50ZXIuc3ZnCkBAIC0wLDAgKzEsNSBAQAorPCEtLSBDb3B5cmlnaHQgwqkgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYi
IHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzIwMDAvc3ZnIiBpZD0icm9vdCI+CisgICAgPHJlY3QgeD0iMiIgeT0iOCIgd2lkdGg9IjEyIiBo
ZWlnaHQ9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIvPgorICAgIDxyZWN0IHg9IjIiIHk9IjUiIHdp
ZHRoPSIxMiIgaGVpZ2h0PSIyIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KKzwvc3ZnPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0FsaWduQ29u
dGVudEVuZC5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMv
QWxpZ25Db250ZW50RW5kLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAuLjA1YThiZDg2Y2NlMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9BbGlnbkNvbnRlbnRFbmQuc3ZnCkBAIC0wLDAgKzEsNSBA
QAorPCEtLSBDb3B5cmlnaHQgwqkgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
IC0tPgorPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1s
bnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBpZD0icm9vdCI+CisgICAgPHJlY3QgeD0i
MiIgeT0iOS41IiB3aWR0aD0iMTIiIGhlaWdodD0iMiIgZmlsbD0iY3VycmVudENvbG9yIi8+Cisg
ICAgPHJlY3QgeD0iMiIgeT0iMTIuNSIgd2lkdGg9IjEyIiBoZWlnaHQ9IjIiIGZpbGw9ImN1cnJl
bnRDb2xvciIvPgorPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9JbWFnZXMvQWxpZ25Db250ZW50U3BhY2VBcm91bmQuc3ZnIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0FsaWduQ29udGVudFNwYWNlQXJvdW5k
LnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjIzNDliMmJjYzM3
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0ltYWdlcy9BbGlnbkNvbnRlbnRTcGFjZUFyb3VuZC5zdmcKQEAgLTAsMCArMSw1IEBACis8IS0t
IENvcHlyaWdodCDCqSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Cis8
c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJyb290Ij4KKyAgICA8cmVjdCB4PSIyIiB5PSIz
IiB3aWR0aD0iMTIiIGhlaWdodD0iMiIgZmlsbD0iY3VycmVudENvbG9yIi8+CisgICAgPHJlY3Qg
eD0iMiIgeT0iMTEiIHdpZHRoPSIxMiIgaGVpZ2h0PSIyIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4K
Kzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
SW1hZ2VzL0FsaWduQ29udGVudFNwYWNlQmV0d2Vlbi5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9JbWFnZXMvQWxpZ25Db250ZW50U3BhY2VCZXR3ZWVuLnN2ZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmRiZTlmNDcyOGZjOAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9B
bGlnbkNvbnRlbnRTcGFjZUJldHdlZW4uc3ZnCkBAIC0wLDAgKzEsNSBAQAorPCEtLSBDb3B5cmln
aHQgwqkgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB3aWR0
aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDAvc3ZnIiBpZD0icm9vdCI+CisgICAgPHJlY3QgeD0iMiIgeT0iMSIgd2lkdGg9
IjEyIiBoZWlnaHQ9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIvPgorICAgIDxyZWN0IHg9IjIiIHk9
IjEyLjUiIHdpZHRoPSIxMiIgaGVpZ2h0PSIyIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KKzwvc3Zn
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2Vz
L0FsaWduQ29udGVudFNwYWNlRXZlbmx5LnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0ltYWdlcy9BbGlnbkNvbnRlbnRTcGFjZUV2ZW5seS5zdmcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lYWRhOTg3YzcwOTcKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQWxpZ25Db250
ZW50U3BhY2VFdmVubHkuc3ZnCkBAIC0wLDAgKzEsNSBAQAorPCEtLSBDb3B5cmlnaHQgwqkgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB3aWR0aD0iMTYiIGhl
aWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDAvc3ZnIiBpZD0icm9vdCI+CisgICAgPHJlY3QgeD0iMiIgeT0iNCIgd2lkdGg9IjEyIiBoZWln
aHQ9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIvPgorICAgIDxyZWN0IHg9IjIiIHk9IjEwIiB3aWR0
aD0iMTIiIGhlaWdodD0iMiIgZmlsbD0iY3VycmVudENvbG9yIi8+Cis8L3N2Zz4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9BbGlnbkNvbnRl
bnRTdGFydC5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMv
QWxpZ25Db250ZW50U3RhcnQuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMC4uODYzYTQ2Mzg0ZWRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0FsaWduQ29udGVudFN0YXJ0LnN2ZwpAQCAtMCwwICsx
LDUgQEAKKzwhLS0gQ29weXJpZ2h0IMKpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLiAtLT4KKzxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYi
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaWQ9InJvb3QiPgorICAgIDxyZWN0
IHg9IjIiIHk9IjEiIHdpZHRoPSIxMiIgaGVpZ2h0PSIyIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4K
KyAgICA8cmVjdCB4PSIyIiB5PSI0IiB3aWR0aD0iMTIiIGhlaWdodD0iMiIgZmlsbD0iY3VycmVu
dENvbG9yIi8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0ltYWdlcy9BbGlnbkNvbnRlbnRTdHJldGNoLnN2ZyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9BbGlnbkNvbnRlbnRTdHJldGNoLnN2ZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ1NTcyNDEzYWY2OQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9B
bGlnbkNvbnRlbnRTdHJldGNoLnN2ZwpAQCAtMCwwICsxLDUgQEAKKzwhLS0gQ29weXJpZ2h0IMKp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKzxzdmcgd2lkdGg9IjE2
IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9y
Zy8yMDAwL3N2ZyIgaWQ9InJvb3QiPgorICAgIDxyZWN0IHg9IjIiIHk9IjEiIHdpZHRoPSIxMiIg
aGVpZ2h0PSI2LjUiIGZpbGw9ImN1cnJlbnRDb2xvciIvPgorICAgIDxyZWN0IHg9IjIiIHk9Ijgi
IHdpZHRoPSIxMiIgaGVpZ2h0PSI2LjUiIGZpbGw9ImN1cnJlbnRDb2xvciIvPgorPC9zdmc+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKaW5kZXggYTMy
NzdjOGRhZWIxLi4zNTA2NzY1OWI5YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9NYWluLmh0bWwKQEAgLTM0LDYgKzM0LDcgQEAKIAogICAgIDxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iRXh0ZXJuYWwvQ29kZU1pcnJvci9jb2RlbWlycm9yLmNzcyI+CiAK
KyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0FsaWdubWVudElubGluZVN3
YXRjaEVkaXRvci5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3Mv
QW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRlbnRWaWV3LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSJWaWV3cy9BbmltYXRpb25Db250ZW50Vmlldy5jc3MiPgogICAgIDxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5l
bC5jc3MiPgpAQCAtNjE3LDYgKzYxOCw3IEBACiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0xvY2Fs
UmVtb3RlT2JqZWN0Q29udGVudFZpZXcuanMiPjwvc2NyaXB0PgogCiAgICAgPHNjcmlwdCBzcmM9
IlZpZXdzL0FjdGl2YXRlQnV0dG9uTmF2aWdhdGlvbkl0ZW0uanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSJWaWV3cy9BbGlnbm1lbnRJbmxpbmVTd2F0Y2hFZGl0b3IuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BbmltYXRpb25Db2xsZWN0aW9uQ29udGVudFZpZXcu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BbmltYXRpb25Db250ZW50Vmll
dy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0FuaW1hdGlvbkRldGFpbHNT
aWRlYmFyUGFuZWwuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQWxpZ25tZW50SW5saW5lU3dhdGNoRWRpdG9yLmNzcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FsaWdubWVudElubGlu
ZVN3YXRjaEVkaXRvci5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
Li41NWI3ZDk5MTVmNWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9BbGlnbm1lbnRJbmxpbmVTd2F0Y2hFZGl0b3IuY3NzCkBAIC0w
LDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisuYWxpZ25tZW50LWlubGluZS1zd2F0Y2gtZWRpdG9y
IC5nbHlwaCB7CisgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgIHdpZHRoOiAxNnB4Owor
ICAgIGhlaWdodDogMTZweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5k
LWNvbG9yLWNvbnRlbnQpOworICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OworICAgIGJvcmRl
cjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7CisgICAgY29sb3I6IHZhcigtLWdseXBo
LWNvbG9yKTsKK30KKworLmFsaWdubWVudC1pbmxpbmUtc3dhdGNoLWVkaXRvciAuZ2x5cGg6bm90
KDpsYXN0LWNoaWxkKSB7CisgICAgYm9yZGVyLWlubGluZS1lbmQtd2lkdGg6IDA7Cit9CisKKy5h
bGlnbm1lbnQtaW5saW5lLXN3YXRjaC1lZGl0b3IgLmdseXBoOmFjdGl2ZSB7CisgICAgY29sb3I6
IHZhcigtLWdseXBoLWNvbG9yLXByZXNzZWQpOworfQorCisuYWxpZ25tZW50LWlubGluZS1zd2F0
Y2gtZWRpdG9yIC5nbHlwaC5zZWxlY3RlZCB7CisgICAgY29sb3I6IHZhcigtLWdseXBoLWNvbG9y
LWFjdGl2ZSk7CisgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1nbHlwaC1jb2xvci1hY3RpdmUpOwor
fQorCisuYWxpZ25tZW50LWlubGluZS1zd2F0Y2gtZWRpdG9yIC5nbHlwaC5zZWxlY3RlZCArIC5n
bHlwaCB7CisgICAgYm9yZGVyLWlubGluZS1zdGFydC1jb2xvcjogdmFyKC0tZ2x5cGgtY29sb3It
YWN0aXZlKTsKK30KKworLmFsaWdubWVudC1pbmxpbmUtc3dhdGNoLWVkaXRvciAuZ2x5cGguc2Vs
ZWN0ZWQ6YWN0aXZlIHsKKyAgICBjb2xvcjogdmFyKC0tZ2x5cGgtY29sb3ItYWN0aXZlLXByZXNz
ZWQpOworICAgIG91dGxpbmUtY29sb3I6IHZhcigtLWdseXBoLWNvbG9yLWFjdGl2ZS1wcmVzc2Vk
KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0FsaWdubWVudElubGluZVN3YXRjaEVkaXRvci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FsaWdubWVudElubGluZVN3YXRjaEVkaXRvci5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmJiYzBjYTA3YjEzYwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Fs
aWdubWVudElubGluZVN3YXRjaEVkaXRvci5qcwpAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworV0kuQWxpZ25tZW50SW5saW5lU3dhdGNoRWRpdG9yID0gY2xhc3MgQWxpZ25tZW50SW5saW5l
U3dhdGNoRWRpdG9yIGV4dGVuZHMgV0kuT2JqZWN0Cit7CisgICAgY29uc3RydWN0b3IoKQorICAg
IHsKKyAgICAgICAgc3VwZXIoKTsKKworICAgICAgICB0aGlzLl92YWx1ZSA9IG51bGw7CisKKyAg
ICAgICAgdGhpcy5fZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAg
ICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTmFtZSA9ICJhbGlnbm1lbnQtaW5saW5lLXN3YXRjaC1l
ZGl0b3IiOworICAgICAgICB0aGlzLl91cGRhdGUoKTsKKyAgICB9CisKKyAgICAvLyBTdGF0aWMK
KworICAgIHN0YXRpYyBpc0FsaWduQ29udGVudFZhbHVlKHZhbHVlKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIFdJLkFsaWdubWVudElubGluZVN3YXRjaEVkaXRvci5BbGlnbkNvbnRlbnRHbHlwaHMu
aGFzT3duUHJvcGVydHkodmFsdWUpOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgZ2V0
IGVsZW1lbnQoKSB7IHJldHVybiB0aGlzLl9lbGVtZW50OyB9CisKKyAgICBnZXQgdmFsdWUoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlOworICAgIH0KKworICAgIHNldCB2YWx1
ZSh2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7CisgICAgICAgIHRo
aXMuX3VwZGF0ZSgpOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF91cGRhdGUoKQor
ICAgIHsKKyAgICAgICAgdGhpcy5fZWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOworCisgICAgICAg
IGZvciAobGV0IFt2YWx1ZSwgcGF0aF0gb2YgT2JqZWN0LmVudHJpZXMoV0kuQWxpZ25tZW50SW5s
aW5lU3dhdGNoRWRpdG9yLkFsaWduQ29udGVudEdseXBocykpIHsKKyAgICAgICAgICAgIGxldCBn
bHlwaEVsZW1lbnQgPSBXSS5JbWFnZVV0aWxpdGllcy51c2VTVkdTeW1ib2wocGF0aCwgImdseXBo
IiwgdmFsdWUpOworICAgICAgICAgICAgZ2x5cGhFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoInNl
bGVjdGVkIiwgdmFsdWUgPT09IHRoaXMuX3ZhbHVlKTsKKyAgICAgICAgICAgIHRoaXMuX2VsZW1l
bnQuYXBwZW5kKGdseXBoRWxlbWVudCk7CisgICAgICAgICAgICBnbHlwaEVsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgdGhpcy5kaXNwYXRj
aEV2ZW50VG9MaXN0ZW5lcnMoV0kuQWxpZ25tZW50SW5saW5lU3dhdGNoRWRpdG9yLkV2ZW50LlZh
bHVlQ2hhbmdlZCwge3ZhbHVlfSk7CisgICAgICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1
ZTsKKyAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGUoKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9CisgICAgfQorfTsKKworV0kuQWxpZ25tZW50SW5saW5lU3dhdGNoRWRpdG9yLkFsaWdu
Q29udGVudEdseXBocyA9IHsKKyAgICAic3RhcnQiOiAiSW1hZ2VzL0FsaWduQ29udGVudFN0YXJ0
LnN2ZyIsCisgICAgImNlbnRlciI6ICJJbWFnZXMvQWxpZ25Db250ZW50Q2VudGVyLnN2ZyIsCisg
ICAgImVuZCI6ICJJbWFnZXMvQWxpZ25Db250ZW50RW5kLnN2ZyIsCisgICAgInNwYWNlLWJldHdl
ZW4iOiAiSW1hZ2VzL0FsaWduQ29udGVudFNwYWNlQmV0d2Vlbi5zdmciLAorICAgICJzcGFjZS1h
cm91bmQiOiAiSW1hZ2VzL0FsaWduQ29udGVudFNwYWNlQXJvdW5kLnN2ZyIsCisgICAgInNwYWNl
LWV2ZW5seSI6ICJJbWFnZXMvQWxpZ25Db250ZW50U3BhY2VFdmVubHkuc3ZnIiwKKyAgICAic3Ry
ZXRjaCI6ICJJbWFnZXMvQWxpZ25Db250ZW50U3RyZXRjaC5zdmciLAorfTsKKworV0kuQWxpZ25t
ZW50SW5saW5lU3dhdGNoRWRpdG9yLkV2ZW50ID0geworICAgIFZhbHVlQ2hhbmdlZDogImFsaWdu
bWVudC1pbmxpbmUtc3dhdGNoLWVkaXRvci12YWx1ZS1jaGFuZ2VkIiwKK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9JbmxpbmVTd2F0Y2gu
Y3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSW5saW5lU3dh
dGNoLmNzcwppbmRleCBjZGYxOGY5YTNjZjMuLjUxZjk5ZGFiMmM2ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSW5saW5lU3dhdGNoLmNzcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9JbmxpbmVTd2F0
Y2guY3NzCkBAIC01OCwxMSArNTgsMTEgQEAKICAgICBtYXJnaW4tcmlnaHQ6IDJweDsKIH0KIAot
LmlubGluZS1zd2F0Y2g6bm90KC5yZWFkLW9ubHkpOm1hdGNoZXMoLmJlemllciwgLmJveC1zaGFk
b3csIC5zcHJpbmcsIC52YXJpYWJsZSk6aG92ZXIgeworLmlubGluZS1zd2F0Y2g6bm90KC5yZWFk
LW9ubHkpOm1hdGNoZXMoLmJlemllciwgLmJveC1zaGFkb3csIC5zcHJpbmcsIC52YXJpYWJsZSwg
LmFsaWduLWNvbnRlbnQpOmhvdmVyIHsKICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMC45KTsKIH0K
IAotLmlubGluZS1zd2F0Y2g6bm90KC5yZWFkLW9ubHkpOm1hdGNoZXMoLmJlemllciwgLmJveC1z
aGFkb3csIC5zcHJpbmcsIC52YXJpYWJsZSk6YWN0aXZlIHsKKy5pbmxpbmUtc3dhdGNoOm5vdCgu
cmVhZC1vbmx5KTptYXRjaGVzKC5iZXppZXIsIC5ib3gtc2hhZG93LCAuc3ByaW5nLCAudmFyaWFi
bGUsIC5hbGlnbi1jb250ZW50KTphY3RpdmUgewogICAgIGZpbHRlcjogYnJpZ2h0bmVzcygwLjgp
OwogfQogCkBAIC0xMDMsNiArMTAzLDExIEBACiAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJl
cGVhdDsKIH0KIAorLmlubGluZS1zd2F0Y2guYWxpZ24tY29udGVudCA+IHNwYW4geworICAgIGJh
Y2tncm91bmQtc2l6ZTogOXB4IDlweDsKKyAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0
OworfQorCiAuaW5saW5lLXN3YXRjaC12YXJpYWJsZS1wb3BvdmVyIHsKICAgICBkaXNwbGF5OiBm
bGV4OwogICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CkBAIC0xMjAsNyArMTI1LDggQEAKIH0KIAog
QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykgewotICAgIC5pbmxpbmUtc3dhdGNo
LmJveC1zaGFkb3cgPiBzdmcgeworICAgIC5pbmxpbmUtc3dhdGNoLmJveC1zaGFkb3cgPiBzdmcs
CisgICAgLmlubGluZS1zd2F0Y2guYWxpZ24tY29udGVudCA+IHNwYW4gewogICAgICAgICBmaWx0
ZXI6IGludmVydCgpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lubGluZVN3YXRjaC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lubGluZVN3YXRjaC5qcwppbmRleCA4MWU0OGRiNDQ3
N2IuLmM1N2I3YmFmMzU1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvSW5saW5lU3dhdGNoLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lubGluZVN3YXRjaC5qcwpAQCAtNzAsNiArNzAsMTAgQEAg
V0kuSW5saW5lU3dhdGNoID0gY2xhc3MgSW5saW5lU3dhdGNoIGV4dGVuZHMgV0kuT2JqZWN0CiAg
ICAgICAgICAgICAgICAgLy8gSGFuZGxlZCBsYXRlciBieSBfdXBkYXRlU3dhdGNoLgogICAgICAg
ICAgICAgICAgIGJyZWFrOwogCisgICAgICAgICAgICBjYXNlIFdJLklubGluZVN3YXRjaC5UeXBl
LkFsaWduQ29udGVudDoKKyAgICAgICAgICAgICAgICAvLyBIYW5kbGVkIGxhdGVyIGJ5IF91cGRh
dGVTd2F0Y2guCisgICAgICAgICAgICAgICAgYnJlYWs7CisKICAgICAgICAgICAgIGNhc2UgV0ku
SW5saW5lU3dhdGNoLlR5cGUuR3JhZGllbnQ6CiAgICAgICAgICAgICAgICAgdGhpcy5fc3dhdGNo
RWxlbWVudC50aXRsZSA9IFdJLlVJU3RyaW5nKCJFZGl0IGN1c3RvbSBncmFkaWVudCIpOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTg1LDYgKzE4OSwxMSBAQCBXSS5JbmxpbmVTd2F0Y2gg
PSBjbGFzcyBJbmxpbmVTd2F0Y2ggZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgIHRoaXMu
X3N3YXRjaElubmVyRWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kID0gdmFsdWUgPyB2YWx1ZS50b1N0
cmluZygpIDogbnVsbDsKICAgICAgICAgZWxzZSBpZiAodGhpcy5fdHlwZSA9PT0gV0kuSW5saW5l
U3dhdGNoLlR5cGUuSW1hZ2UpCiAgICAgICAgICAgICB0aGlzLl9zd2F0Y2hJbm5lckVsZW1lbnQu
c3R5bGUuc2V0UHJvcGVydHkoImJhY2tncm91bmQtaW1hZ2UiLCBgdXJsKCR7dmFsdWUuc3JjfSlg
KTsKKyAgICAgICAgZWxzZSBpZiAodGhpcy5fdHlwZSA9PT0gV0kuSW5saW5lU3dhdGNoLlR5cGUu
QWxpZ25Db250ZW50KSB7CisgICAgICAgICAgICBsZXQgZ2x5cGhQYXRoID0gV0kuQWxpZ25tZW50
SW5saW5lU3dhdGNoRWRpdG9yLkFsaWduQ29udGVudEdseXBoc1t2YWx1ZV07CisgICAgICAgICAg
ICBjb25zb2xlLmFzc2VydChnbHlwaFBhdGgsIGBNaXNzaW5nIGdseXBoIGZvciAiJHt2YWx1ZX0i
YCk7CisgICAgICAgICAgICB0aGlzLl9zd2F0Y2hJbm5lckVsZW1lbnQuc3R5bGUuYmFja2dyb3Vu
ZEltYWdlID0gYHVybCgke2dseXBoUGF0aH0pYDsKKyAgICAgICAgfQogCiAgICAgICAgIGlmICh0
aGlzLl90eXBlID09PSBXSS5JbmxpbmVTd2F0Y2guVHlwZS5Db2xvcikgewogICAgICAgICAgICAg
aWYgKHRoaXMuX2FsbG93Q2hhbmdpbmdDb2xvckZvcm1hdHMoKSkKQEAgLTI4Nyw2ICsyOTYsMTEg
QEAgV0kuSW5saW5lU3dhdGNoID0gY2xhc3MgSW5saW5lU3dhdGNoIGV4dGVuZHMgV0kuT2JqZWN0
CiAgICAgICAgICAgICB0aGlzLl92YWx1ZUVkaXRvci5hZGRFdmVudExpc3RlbmVyKFdJLlNwcmlu
Z0VkaXRvci5FdmVudC5TcHJpbmdDaGFuZ2VkLCB0aGlzLl92YWx1ZUVkaXRvclZhbHVlRGlkQ2hh
bmdlLCB0aGlzKTsKICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgIGNhc2UgV0kuSW5saW5l
U3dhdGNoLlR5cGUuQWxpZ25Db250ZW50OgorICAgICAgICAgICAgdGhpcy5fdmFsdWVFZGl0b3Ig
PSBuZXcgV0kuQWxpZ25tZW50SW5saW5lU3dhdGNoRWRpdG9yOworICAgICAgICAgICAgdGhpcy5f
dmFsdWVFZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcihXSS5BbGlnbm1lbnRJbmxpbmVTd2F0Y2hFZGl0
b3IuRXZlbnQuVmFsdWVDaGFuZ2VkLCB0aGlzLl92YWx1ZUVkaXRvclZhbHVlRGlkQ2hhbmdlLCB0
aGlzKTsKKyAgICAgICAgICAgIGJyZWFrOworCiAgICAgICAgIGNhc2UgV0kuSW5saW5lU3dhdGNo
LlR5cGUuVmFyaWFibGU6CiAgICAgICAgICAgICB0aGlzLl92YWx1ZUVkaXRvciA9IHt9OwogCkBA
IC0zMzMsNiArMzQ3LDEwIEBAIFdJLklubGluZVN3YXRjaCA9IGNsYXNzIElubGluZVN3YXRjaCBl
eHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgdGhpcy5fdmFsdWVFZGl0b3Iuc3ByaW5nID0g
dmFsdWU7CiAgICAgICAgICAgICBicmVhazsKIAorICAgICAgICBjYXNlIFdJLklubGluZVN3YXRj
aC5UeXBlLkFsaWduQ29udGVudDoKKyAgICAgICAgICAgIHRoaXMuX3ZhbHVlRWRpdG9yLnZhbHVl
ID0gdmFsdWU7CisgICAgICAgICAgICBicmVhazsKKwogICAgICAgICBjYXNlIFdJLklubGluZVN3
YXRjaC5UeXBlLlZhcmlhYmxlOiB7CiAgICAgICAgICAgICBsZXQgY29kZU1pcnJvciA9IHRoaXMu
X3ZhbHVlRWRpdG9yLmNvZGVNaXJyb3I7CiAgICAgICAgICAgICBjb2RlTWlycm9yLnNldFZhbHVl
KHZhbHVlKTsKQEAgLTM3OCw2ICszOTYsMTAgQEAgV0kuSW5saW5lU3dhdGNoID0gY2xhc3MgSW5s
aW5lU3dhdGNoIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIGNhc2UgV0kuSW5saW5lU3dhdGNo
LlR5cGUuU3ByaW5nOgogICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSBldmVudC5kYXRhLnNwcmlu
ZzsKICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgV0kuSW5saW5lU3dhdGNoLlR5
cGUuQWxpZ25Db250ZW50OgorICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSBldmVudC5kYXRhLnZh
bHVlOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAogICAgICAgICB0aGlzLl91cGRh
dGVTd2F0Y2goKTsKQEAgLTUyMSw2ICs1NDMsNyBAQCBXSS5JbmxpbmVTd2F0Y2guVHlwZSA9IHsK
ICAgICBTcHJpbmc6ICJpbmxpbmUtc3dhdGNoLXR5cGUtc3ByaW5nIiwKICAgICBWYXJpYWJsZTog
ImlubGluZS1zd2F0Y2gtdHlwZS12YXJpYWJsZSIsCiAgICAgSW1hZ2U6ICJpbmxpbmUtc3dhdGNo
LXR5cGUtaW1hZ2UiLAorICAgIEFsaWduQ29udGVudDogImlubGluZS1zd2F0Y2gtdHlwZS1hbGln
bi1jb250ZW50IiwKIH07CiAKIFdJLklubGluZVN3YXRjaC5FdmVudCA9IHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0U3R5
bGVQcm9wZXJ0eS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1NwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eS5qcwppbmRleCAyMzc1MDNiODhkM2MuLmRmYjZiYTA0
ZTZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eS5qcwpAQCAtNjI3
LDYgKzYyNyw5IEBAIFdJLlNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eSA9IGNsYXNzIFNwcmVhZHNo
ZWV0U3R5bGVQcm9wZXJ0eSBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICBpZiAodGhpcy5fcHJv
cGVydHkubmFtZSA9PT0gImJveC1zaGFkb3ciKQogICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Fk
ZEJveFNoYWRvd1Rva2Vucyh0b2tlbnMpOwogCisgICAgICAgIGlmICh0aGlzLl9wcm9wZXJ0eS5u
YW1lID09PSAiYWxpZ24tY29udGVudCIpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYWRkQWxp
Z25Db250ZW50VG9rZW5zKHRva2Vucyk7CisKICAgICAgICAgaWYgKHRoaXMuX3Byb3BlcnR5Lmlz
VmFyaWFibGUgfHwgV0kuQ1NTS2V5d29yZENvbXBsZXRpb25zLmlzQ29sb3JBd2FyZVByb3BlcnR5
KHRoaXMuX3Byb3BlcnR5Lm5hbWUpKSB7CiAgICAgICAgICAgICB0b2tlbnMgPSB0aGlzLl9hZGRH
cmFkaWVudFRva2Vucyh0b2tlbnMpOwogICAgICAgICAgICAgdG9rZW5zID0gdGhpcy5fYWRkQ29s
b3JUb2tlbnModG9rZW5zKTsKQEAgLTg0MCw2ICs4NDMsMTkgQEAgV0kuU3ByZWFkc2hlZXRTdHls
ZVByb3BlcnR5ID0gY2xhc3MgU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5IGV4dGVuZHMgV0kuT2Jq
ZWN0CiAgICAgICAgIHJldHVybiBuZXdUb2tlbnM7CiAgICAgfQogCisgICAgX2FkZEFsaWduQ29u
dGVudFRva2Vucyh0b2tlbnMpCisgICAgeworICAgICAgICBsZXQgbmV3VG9rZW5zID0gW107Cisg
ICAgICAgIGZvciAobGV0IHRva2VuIG9mIHRva2VucykgeworICAgICAgICAgICAgaWYgKFdJLkFs
aWdubWVudElubGluZVN3YXRjaEVkaXRvci5pc0FsaWduQ29udGVudFZhbHVlKHRva2VuLnZhbHVl
KSkgeworICAgICAgICAgICAgICAgIGxldCBzd2F0Y2ggPSB0aGlzLl9jcmVhdGVJbmxpbmVTd2F0
Y2goV0kuSW5saW5lU3dhdGNoLlR5cGUuQWxpZ25Db250ZW50LCBbdG9rZW5dLCB0b2tlbi52YWx1
ZSk7CisgICAgICAgICAgICAgICAgbmV3VG9rZW5zLnB1c2goc3dhdGNoKTsKKyAgICAgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgICAgIG5ld1Rva2Vucy5wdXNoKHRva2VuKTsKKyAgICAgICAg
fQorICAgICAgICByZXR1cm4gbmV3VG9rZW5zOworICAgIH0KKwogICAgIF9hZGRWYXJpYWJsZVRv
a2Vucyh0b2tlbnMpCiAgICAgewogICAgICAgICBsZXQgbmV3VG9rZW5zID0gW107Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444087</attachid>
            <date>2021-11-12 12:05:12 -0800</date>
            <delta_ts>2021-11-17 14:34:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>23569</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGYyNjJhMWQ3MDAxYi4uNzMyMWEyODYxOTZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NiBAQAorMjAyMS0xMS0xMiAgTmlr
aXRhIFZhc2lseWV2ICA8bnZhc2lseWV2QGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBBZGQgYSBzd2F0Y2ggZm9yIGFsaWduLWNvbnRlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDA2NQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vODI4OTEzNjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW50cm9kdWNlIGFuIGlubGluZSBzd2F0Y2ggZm9yIGBhbGlnbi1jb250ZW50YCwgdGhh
dCBzaG93cyBpY29ucyBmb3IgY29tbW9uIGFsaWduLWNvbnRlbnQgdmFsdWVzOgorICAgICAgICBz
dGFydCwgY2VudGVyLCBlbmQsIHNwYWNlLWJldHdlZW4sIHNwYWNlLWFyb3VuZCwgc3BhY2UtZXZl
bmx5LCBhbmQgc3RyZXRjaC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL0FsaWdu
Q29udGVudENlbnRlci5zdmc6IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2Vz
L0FsaWduQ29udGVudEVuZC5zdmc6IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1h
Z2VzL0FsaWduQ29udGVudFNwYWNlQXJvdW5kLnN2ZzogQWRkZWQuCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9JbWFnZXMvQWxpZ25Db250ZW50U3BhY2VCZXR3ZWVuLnN2ZzogQWRkZWQuCisgICAg
ICAgICogVXNlckludGVyZmFjZS9JbWFnZXMvQWxpZ25Db250ZW50U3BhY2VFdmVubHkuc3ZnOiBB
ZGRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0ltYWdlcy9BbGlnbkNvbnRlbnRTdGFydC5z
dmc6IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL0FsaWduQ29udGVudFN0
cmV0Y2guc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0ltYWdlcy9BbGlnbm1l
bnRVbmtub3duLnN2ZzogQWRkZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01haW4uaHRt
bDoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0FsaWdubWVudElubGluZVN3YXRjaEVk
aXRvci5jc3M6IEFkZGVkLgorICAgICAgICAoLmFsaWdubWVudC1pbmxpbmUtc3dhdGNoLWVkaXRv
ciAuZ2x5cGgpOgorICAgICAgICAoLmFsaWdubWVudC1pbmxpbmUtc3dhdGNoLWVkaXRvciAuZ2x5
cGg6bm90KDpsYXN0LWNoaWxkKSk6CisgICAgICAgICguYWxpZ25tZW50LWlubGluZS1zd2F0Y2gt
ZWRpdG9yIC5nbHlwaDphY3RpdmUpOgorICAgICAgICAoLmFsaWdubWVudC1pbmxpbmUtc3dhdGNo
LWVkaXRvciAuZ2x5cGguc2VsZWN0ZWQpOgorICAgICAgICAoLmFsaWdubWVudC1pbmxpbmUtc3dh
dGNoLWVkaXRvciAuZ2x5cGguc2VsZWN0ZWQgKyAuZ2x5cGgpOgorICAgICAgICAoLmFsaWdubWVu
dC1pbmxpbmUtc3dhdGNoLWVkaXRvciAuZ2x5cGguc2VsZWN0ZWQ6YWN0aXZlKToKKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQWxpZ25tZW50SW5saW5lU3dhdGNoRWRpdG9yLmpzOiBB
ZGRlZC4KKyAgICAgICAgKFdJLkFsaWdubWVudElubGluZVN3YXRjaEVkaXRvcik6CisgICAgICAg
IChXSS5BbGlnbm1lbnRJbmxpbmVTd2F0Y2hFZGl0b3IuaXNBbGlnbkNvbnRlbnRWYWx1ZSk6Cisg
ICAgICAgIChXSS5BbGlnbm1lbnRJbmxpbmVTd2F0Y2hFZGl0b3IucHJvdG90eXBlLmdldCBlbGVt
ZW50KToKKyAgICAgICAgKFdJLkFsaWdubWVudElubGluZVN3YXRjaEVkaXRvci5wcm90b3R5cGUu
Z2V0IHZhbHVlKToKKyAgICAgICAgKFdJLkFsaWdubWVudElubGluZVN3YXRjaEVkaXRvci5wcm90
b3R5cGUuc2V0IHZhbHVlKToKKyAgICAgICAgKFdJLkFsaWdubWVudElubGluZVN3YXRjaEVkaXRv
ci5wcm90b3R5cGUuX3VwZGF0ZVNlbGVjdGVkKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvSW5saW5lU3dhdGNoLmNzczoKKyAgICAgICAgKC5pbmxpbmUtc3dhdGNoOm5vdCgucmVh
ZC1vbmx5KTptYXRjaGVzKC5iZXppZXIsIC5ib3gtc2hhZG93LCAuc3ByaW5nLCAudmFyaWFibGUs
IC5hbGlnbi1jb250ZW50KTpob3Zlcik6CisgICAgICAgICguaW5saW5lLXN3YXRjaDpub3QoLnJl
YWQtb25seSk6bWF0Y2hlcyguYmV6aWVyLCAuYm94LXNoYWRvdywgLnNwcmluZywgLnZhcmlhYmxl
LCAuYWxpZ24tY29udGVudCk6YWN0aXZlKToKKyAgICAgICAgKC5pbmxpbmUtc3dhdGNoLmltYWdl
ID4gc3BhbiwpOgorICAgICAgICAoQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykg
LmlubGluZS1zd2F0Y2guYm94LXNoYWRvdyA+IHN2ZywpOgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9WaWV3cy9JbmxpbmVTd2F0Y2guanM6CisgICAgICAgIChXSS5JbmxpbmVTd2F0Y2gpOgor
ICAgICAgICAoV0kuSW5saW5lU3dhdGNoLnByb3RvdHlwZS5kaWREaXNtaXNzUG9wb3Zlcik6Cisg
ICAgICAgIChXSS5JbmxpbmVTd2F0Y2gucHJvdG90eXBlLl91cGRhdGVTd2F0Y2gpOgorICAgICAg
ICAoV0kuSW5saW5lU3dhdGNoLnByb3RvdHlwZS5fdmFsdWVFZGl0b3JWYWx1ZURpZENoYW5nZSk6
CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0
eS5qczoKKyAgICAgICAgKFdJLlNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eS5wcm90b3R5cGUuX3Jl
cGxhY2VTcGVjaWFsVG9rZW5zKToKKyAgICAgICAgKFdJLlNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0
eS5wcm90b3R5cGUuX2FkZEFsaWduQ29udGVudFRva2Vucyk6CisKIDIwMjEtMDctMjYgIFFpYW9z
b25nIFpob3UgIDxxaWFvc29uZ196aG91QGFwcGxlLmNvbT4KIAogICAgICAgICBGb3JtRGF0YUV2
ZW50IGFkZGVkLiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0ltYWdlcy9BbGlnbkNvbnRlbnRDZW50ZXIuc3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0FsaWduQ29udGVudENlbnRlci5zdmcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zOWY0NjJhMWY0YTcKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQWxpZ25Db250
ZW50Q2VudGVyLnN2ZwpAQCAtMCwwICsxLDUgQEAKKzwhLS0gQ29weXJpZ2h0IMKpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKzxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9
IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3Lncz
Lm9yZy8yMDAwL3N2ZyIgaWQ9InJvb3QiPgorICAgIDxyZWN0IHg9IjIiIHk9IjgiIHdpZHRoPSIx
MiIgaGVpZ2h0PSIyIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KKyAgICA8cmVjdCB4PSIyIiB5PSI1
IiB3aWR0aD0iMTIiIGhlaWdodD0iMiIgZmlsbD0iY3VycmVudENvbG9yIi8+Cis8L3N2Zz4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9BbGln
bkNvbnRlbnRFbmQuc3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1h
Z2VzL0FsaWduQ29udGVudEVuZC5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwLi4wNWE4YmQ4NmNjZTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQWxpZ25Db250ZW50RW5kLnN2ZwpAQCAtMCwwICsx
LDUgQEAKKzwhLS0gQ29weXJpZ2h0IMKpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLiAtLT4KKzxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYi
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaWQ9InJvb3QiPgorICAgIDxyZWN0
IHg9IjIiIHk9IjkuNSIgd2lkdGg9IjEyIiBoZWlnaHQ9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIv
PgorICAgIDxyZWN0IHg9IjIiIHk9IjEyLjUiIHdpZHRoPSIxMiIgaGVpZ2h0PSIyIiBmaWxsPSJj
dXJyZW50Q29sb3IiLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0FsaWduQ29udGVudFNwYWNlQXJvdW5kLnN2ZyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9BbGlnbkNvbnRlbnRTcGFjZUFy
b3VuZC5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yMzQ5YjJi
Y2MzNzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9JbWFnZXMvQWxpZ25Db250ZW50U3BhY2VBcm91bmQuc3ZnCkBAIC0wLDAgKzEsNSBAQAor
PCEtLSBDb3B5cmlnaHQgwqkgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0t
PgorPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9
Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBpZD0icm9vdCI+CisgICAgPHJlY3QgeD0iMiIg
eT0iMyIgd2lkdGg9IjEyIiBoZWlnaHQ9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIvPgorICAgIDxy
ZWN0IHg9IjIiIHk9IjExIiB3aWR0aD0iMTIiIGhlaWdodD0iMiIgZmlsbD0iY3VycmVudENvbG9y
Ii8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0ltYWdlcy9BbGlnbkNvbnRlbnRTcGFjZUJldHdlZW4uc3ZnIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0FsaWduQ29udGVudFNwYWNlQmV0d2Vlbi5zdmcK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kYmU5ZjQ3MjhmYzgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFn
ZXMvQWxpZ25Db250ZW50U3BhY2VCZXR3ZWVuLnN2ZwpAQCAtMCwwICsxLDUgQEAKKzwhLS0gQ29w
eXJpZ2h0IMKpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKzxzdmcg
d2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAwL3N2ZyIgaWQ9InJvb3QiPgorICAgIDxyZWN0IHg9IjIiIHk9IjEiIHdp
ZHRoPSIxMiIgaGVpZ2h0PSIyIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KKyAgICA8cmVjdCB4PSIy
IiB5PSIxMi41IiB3aWR0aD0iMTIiIGhlaWdodD0iMiIgZmlsbD0iY3VycmVudENvbG9yIi8+Cis8
L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0lt
YWdlcy9BbGlnbkNvbnRlbnRTcGFjZUV2ZW5seS5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9JbWFnZXMvQWxpZ25Db250ZW50U3BhY2VFdmVubHkuc3ZnCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZWFkYTk4N2M3MDk3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0FsaWdu
Q29udGVudFNwYWNlRXZlbmx5LnN2ZwpAQCAtMCwwICsxLDUgQEAKKzwhLS0gQ29weXJpZ2h0IMKp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKzxzdmcgd2lkdGg9IjE2
IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9y
Zy8yMDAwL3N2ZyIgaWQ9InJvb3QiPgorICAgIDxyZWN0IHg9IjIiIHk9IjQiIHdpZHRoPSIxMiIg
aGVpZ2h0PSIyIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KKyAgICA8cmVjdCB4PSIyIiB5PSIxMCIg
d2lkdGg9IjEyIiBoZWlnaHQ9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIvPgorPC9zdmc+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQWxpZ25D
b250ZW50U3RhcnQuc3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1h
Z2VzL0FsaWduQ29udGVudFN0YXJ0LnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAuLjg2M2E0NjM4NGVkYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9BbGlnbkNvbnRlbnRTdGFydC5zdmcKQEAgLTAs
MCArMSw1IEBACis8IS0tIENvcHlyaWdodCDCqSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4gLS0+Cis8c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2
IDE2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJyb290Ij4KKyAgICA8
cmVjdCB4PSIyIiB5PSIxIiB3aWR0aD0iMTIiIGhlaWdodD0iMiIgZmlsbD0iY3VycmVudENvbG9y
Ii8+CisgICAgPHJlY3QgeD0iMiIgeT0iNCIgd2lkdGg9IjEyIiBoZWlnaHQ9IjIiIGZpbGw9ImN1
cnJlbnRDb2xvciIvPgorPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9JbWFnZXMvQWxpZ25Db250ZW50U3RyZXRjaC5zdmcgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQWxpZ25Db250ZW50U3RyZXRjaC5zdmcK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40NTU3MjQxM2FmNjkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFn
ZXMvQWxpZ25Db250ZW50U3RyZXRjaC5zdmcKQEAgLTAsMCArMSw1IEBACis8IS0tIENvcHlyaWdo
dCDCqSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Cis8c3ZnIHdpZHRo
PSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiB4bWxucz0iaHR0cDovL3d3dy53
My5vcmcvMjAwMC9zdmciIGlkPSJyb290Ij4KKyAgICA8cmVjdCB4PSIyIiB5PSIxIiB3aWR0aD0i
MTIiIGhlaWdodD0iNi41IiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KKyAgICA8cmVjdCB4PSIyIiB5
PSI4IiB3aWR0aD0iMTIiIGhlaWdodD0iNi41IiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KKzwvc3Zn
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2Vz
L0FsaWdubWVudFVua25vd24uc3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvSW1hZ2VzL0FsaWdubWVudFVua25vd24uc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMC4uZjU2OGUwYWRlN2M3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0FsaWdubWVudFVua25vd24uc3ZnCkBA
IC0wLDAgKzEsNyBAQAorPCEtLSBDb3B5cmlnaHQgwqkgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAg
MCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBpZD0icm9vdCI+Cisg
ICAgPHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjQiIGhlaWdodD0iNiIgZmlsbD0iYmxhY2siLz4K
KyAgICA8cmVjdCB4PSI4IiB5PSIyIiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBmaWxsPSJibGFjayIv
PgorICAgIDxyZWN0IHg9IjEwIiB5PSIxMCIgd2lkdGg9IjQiIGhlaWdodD0iNCIgZmlsbD0iYmxh
Y2siLz4KKyAgICA8cmVjdCB4PSIyIiB5PSIxMCIgd2lkdGg9IjYiIGhlaWdodD0iNCIgZmlsbD0i
YmxhY2siLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTWFpbi5odG1sIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TWFpbi5odG1sCmluZGV4IGEzMjc3YzhkYWViMS4uMzUwNjc2NTliOWE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCkBAIC0zNCw2ICszNCw3IEBA
CiAKICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IkV4dGVybmFsL0NvZGVNaXJyb3Iv
Y29kZW1pcnJvci5jc3MiPgogCisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3
cy9BbGlnbm1lbnRJbmxpbmVTd2F0Y2hFZGl0b3IuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9IlZpZXdzL0FuaW1hdGlvbkNvbGxlY3Rpb25Db250ZW50Vmlldy5jc3MiPgog
ICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQW5pbWF0aW9uQ29udGVudFZp
ZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0FuaW1hdGlv
bkRldGFpbHNTaWRlYmFyUGFuZWwuY3NzIj4KQEAgLTYxNyw2ICs2MTgsNyBAQAogICAgIDxzY3Jp
cHQgc3JjPSJWaWV3cy9Mb2NhbFJlbW90ZU9iamVjdENvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4K
IAogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BY3RpdmF0ZUJ1dHRvbk5hdmlnYXRpb25JdGVtLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iVmlld3MvQWxpZ25tZW50SW5saW5lU3dhdGNo
RWRpdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQW5pbWF0aW9uQ29s
bGVjdGlvbkNvbnRlbnRWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3Mv
QW5pbWF0aW9uQ29udGVudFZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3
cy9BbmltYXRpb25EZXRhaWxzU2lkZWJhclBhbmVsLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FsaWdubWVudElubGlu
ZVN3YXRjaEVkaXRvci5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9BbGlnbm1lbnRJbmxpbmVTd2F0Y2hFZGl0b3IuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMC4uNTViN2Q5OTE1ZjViCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQWxpZ25tZW50SW5saW5lU3dh
dGNoRWRpdG9yLmNzcwpAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLmFsaWdubWVudC1p
bmxpbmUtc3dhdGNoLWVkaXRvciAuZ2x5cGggeworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsK
KyAgICB3aWR0aDogMTZweDsKKyAgICBoZWlnaHQ6IDE2cHg7CisgICAgYmFja2dyb3VuZC1jb2xv
cjogdmFyKC0tYmFja2dyb3VuZC1jb2xvci1jb250ZW50KTsKKyAgICBib3gtc2l6aW5nOiBjb250
ZW50LWJveDsKKyAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOworICAg
IGNvbG9yOiB2YXIoLS1nbHlwaC1jb2xvcik7Cit9CisKKy5hbGlnbm1lbnQtaW5saW5lLXN3YXRj
aC1lZGl0b3IgLmdseXBoOm5vdCg6bGFzdC1jaGlsZCkgeworICAgIGJvcmRlci1pbmxpbmUtZW5k
LXdpZHRoOiAwOworfQorCisuYWxpZ25tZW50LWlubGluZS1zd2F0Y2gtZWRpdG9yIC5nbHlwaDph
Y3RpdmUgeworICAgIGNvbG9yOiB2YXIoLS1nbHlwaC1jb2xvci1wcmVzc2VkKTsKK30KKworLmFs
aWdubWVudC1pbmxpbmUtc3dhdGNoLWVkaXRvciAuZ2x5cGguc2VsZWN0ZWQgeworICAgIGNvbG9y
OiB2YXIoLS1nbHlwaC1jb2xvci1hY3RpdmUpOworICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZ2x5
cGgtY29sb3ItYWN0aXZlKTsKK30KKworLmFsaWdubWVudC1pbmxpbmUtc3dhdGNoLWVkaXRvciAu
Z2x5cGguc2VsZWN0ZWQgKyAuZ2x5cGggeworICAgIGJvcmRlci1pbmxpbmUtc3RhcnQtY29sb3I6
IHZhcigtLWdseXBoLWNvbG9yLWFjdGl2ZSk7Cit9CisKKy5hbGlnbm1lbnQtaW5saW5lLXN3YXRj
aC1lZGl0b3IgLmdseXBoLnNlbGVjdGVkOmFjdGl2ZSB7CisgICAgY29sb3I6IHZhcigtLWdseXBo
LWNvbG9yLWFjdGl2ZS1wcmVzc2VkKTsKKyAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1nbHlwaC1j
b2xvci1hY3RpdmUtcHJlc3NlZCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9BbGlnbm1lbnRJbmxpbmVTd2F0Y2hFZGl0b3IuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BbGlnbm1lbnRJbmxpbmVT
d2F0Y2hFZGl0b3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5l
YmZlOTczZjA4YTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9BbGlnbm1lbnRJbmxpbmVTd2F0Y2hFZGl0b3IuanMKQEAgLTAsMCAr
MSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5BbGlnbm1lbnRJbmxpbmVTd2F0Y2hFZGl0b3IgPSBj
bGFzcyBBbGlnbm1lbnRJbmxpbmVTd2F0Y2hFZGl0b3IgZXh0ZW5kcyBXSS5PYmplY3QKK3sKKyAg
ICBjb25zdHJ1Y3RvcigpCisgICAgeworICAgICAgICBzdXBlcigpOworCisgICAgICAgIHRoaXMu
X3ZhbHVlID0gbnVsbDsKKyAgICAgICAgdGhpcy5fdmFsdWVUb0dseXBoRWxlbWVudCA9IG5ldyBN
YXA7CisKKyAgICAgICAgdGhpcy5fZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRp
diIpOworICAgICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTmFtZSA9ICJhbGlnbm1lbnQtaW5saW5l
LXN3YXRjaC1lZGl0b3IiOworCisgICAgICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3Jn
L2IvMjMzMDUzPiBXZWIgSW5zcGVjdG9yOiBtaXJyb3Ivcm90YXRlIGFsaWdubWVudCBpY29ucyB3
aGVuIGZsZXgtZGlyZWN0aW9uL2dyaWQtYXV0by1mbG93L1JUTCBhZmZlY3QgYXhpcyBvciBkaXJl
Y3Rpb24KKyAgICAgICAgZm9yIChsZXQgW3ZhbHVlLCBwYXRoXSBvZiBPYmplY3QuZW50cmllcyhX
SS5BbGlnbm1lbnRJbmxpbmVTd2F0Y2hFZGl0b3IuQWxpZ25Db250ZW50R2x5cGhzKSkgeworICAg
ICAgICAgICAgbGV0IGdseXBoRWxlbWVudCA9IFdJLkltYWdlVXRpbGl0aWVzLnVzZVNWR1N5bWJv
bChwYXRoLCAiZ2x5cGgiLCB2YWx1ZSk7CisgICAgICAgICAgICB0aGlzLl9lbGVtZW50LmFwcGVu
ZChnbHlwaEVsZW1lbnQpOworICAgICAgICAgICAgZ2x5cGhFbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoImNsaWNrIiwgKCkgPT4geworICAgICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRv
TGlzdGVuZXJzKFdJLkFsaWdubWVudElubGluZVN3YXRjaEVkaXRvci5FdmVudC5WYWx1ZUNoYW5n
ZWQsIHt2YWx1ZX0pOworICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgdGhpcy5fdmFsdWVUb0dseXBoRWxlbWVudC5zZXQodmFs
dWUsIGdseXBoRWxlbWVudCk7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5fdXBkYXRlU2VsZWN0
ZWQoKTsKKyAgICB9CisKKyAgICAvLyBTdGF0aWMKKworICAgIHN0YXRpYyBpc0FsaWduQ29udGVu
dFZhbHVlKHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFdJLkFsaWdubWVudElubGluZVN3
YXRjaEVkaXRvci5BbGlnbkNvbnRlbnRHbHlwaHMuaGFzT3duUHJvcGVydHkodmFsdWUpOworICAg
IH0KKworICAgIC8vIFB1YmxpYworCisgICAgZ2V0IGVsZW1lbnQoKSB7IHJldHVybiB0aGlzLl9l
bGVtZW50OyB9CisKKyAgICBnZXQgdmFsdWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
X3ZhbHVlOworICAgIH0KKworICAgIHNldCB2YWx1ZSh2YWx1ZSkKKyAgICB7CisgICAgICAgIGlm
ICh0aGlzLl92YWx1ZSAmJiBXSS5BbGlnbm1lbnRJbmxpbmVTd2F0Y2hFZGl0b3IuaXNBbGlnbkNv
bnRlbnRWYWx1ZSh0aGlzLl92YWx1ZSkpIHsKKyAgICAgICAgICAgIGxldCBwcmV2aW91c0dseXBo
RWxlbWVudCA9IHRoaXMuX3ZhbHVlVG9HbHlwaEVsZW1lbnQuZ2V0KHRoaXMuX3ZhbHVlKTsKKyAg
ICAgICAgICAgIHByZXZpb3VzR2x5cGhFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoInNlbGVjdGVk
Iik7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgdGhp
cy5fdXBkYXRlU2VsZWN0ZWQoKTsKKyAgICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBfdXBk
YXRlU2VsZWN0ZWQoKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl92YWx1ZSB8fCAhV0kuQWxp
Z25tZW50SW5saW5lU3dhdGNoRWRpdG9yLmlzQWxpZ25Db250ZW50VmFsdWUodGhpcy5fdmFsdWUp
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxldCBnbHlwaEVsZW1lbnQgPSB0aGlz
Ll92YWx1ZVRvR2x5cGhFbGVtZW50LmdldCh0aGlzLl92YWx1ZSk7CisgICAgICAgIGdseXBoRWxl
bWVudC5jbGFzc0xpc3QuYWRkKCJzZWxlY3RlZCIpOworICAgIH0KK307CisKK1dJLkFsaWdubWVu
dElubGluZVN3YXRjaEVkaXRvci5BbGlnbkNvbnRlbnRHbHlwaHMgPSB7CisgICAgInN0YXJ0Ijog
IkltYWdlcy9BbGlnbkNvbnRlbnRTdGFydC5zdmciLAorICAgICJjZW50ZXIiOiAiSW1hZ2VzL0Fs
aWduQ29udGVudENlbnRlci5zdmciLAorICAgICJlbmQiOiAiSW1hZ2VzL0FsaWduQ29udGVudEVu
ZC5zdmciLAorICAgICJzcGFjZS1iZXR3ZWVuIjogIkltYWdlcy9BbGlnbkNvbnRlbnRTcGFjZUJl
dHdlZW4uc3ZnIiwKKyAgICAic3BhY2UtYXJvdW5kIjogIkltYWdlcy9BbGlnbkNvbnRlbnRTcGFj
ZUFyb3VuZC5zdmciLAorICAgICJzcGFjZS1ldmVubHkiOiAiSW1hZ2VzL0FsaWduQ29udGVudFNw
YWNlRXZlbmx5LnN2ZyIsCisgICAgInN0cmV0Y2giOiAiSW1hZ2VzL0FsaWduQ29udGVudFN0cmV0
Y2guc3ZnIiwKK307CisKK1dJLkFsaWdubWVudElubGluZVN3YXRjaEVkaXRvci5Vbmtub3duVmFs
dWVBbGlnbm1lbnRHbHlwaCA9ICJJbWFnZXMvQWxpZ25tZW50VW5rbm93bi5zdmciOworCitXSS5B
bGlnbm1lbnRJbmxpbmVTd2F0Y2hFZGl0b3IuRXZlbnQgPSB7CisgICAgVmFsdWVDaGFuZ2VkOiAi
YWxpZ25tZW50LWlubGluZS1zd2F0Y2gtZWRpdG9yLXZhbHVlLWNoYW5nZWQiLAorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lubGluZVN3
YXRjaC5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Jbmxp
bmVTd2F0Y2guY3NzCmluZGV4IGNkZjE4ZjlhM2NmMy4uZDExMTE4NjA5YmU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9JbmxpbmVTd2F0Y2gu
Y3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lubGlu
ZVN3YXRjaC5jc3MKQEAgLTU4LDExICs1OCwxMSBAQAogICAgIG1hcmdpbi1yaWdodDogMnB4Owog
fQogCi0uaW5saW5lLXN3YXRjaDpub3QoLnJlYWQtb25seSk6bWF0Y2hlcyguYmV6aWVyLCAuYm94
LXNoYWRvdywgLnNwcmluZywgLnZhcmlhYmxlKTpob3ZlciB7CisuaW5saW5lLXN3YXRjaDpub3Qo
LnJlYWQtb25seSk6bWF0Y2hlcyguYmV6aWVyLCAuYm94LXNoYWRvdywgLnNwcmluZywgLnZhcmlh
YmxlLCAuYWxpZ24tY29udGVudCk6aG92ZXIgewogICAgIGZpbHRlcjogYnJpZ2h0bmVzcygwLjkp
OwogfQogCi0uaW5saW5lLXN3YXRjaDpub3QoLnJlYWQtb25seSk6bWF0Y2hlcyguYmV6aWVyLCAu
Ym94LXNoYWRvdywgLnNwcmluZywgLnZhcmlhYmxlKTphY3RpdmUgeworLmlubGluZS1zd2F0Y2g6
bm90KC5yZWFkLW9ubHkpOm1hdGNoZXMoLmJlemllciwgLmJveC1zaGFkb3csIC5zcHJpbmcsIC52
YXJpYWJsZSwgLmFsaWduLWNvbnRlbnQpOmFjdGl2ZSB7CiAgICAgZmlsdGVyOiBicmlnaHRuZXNz
KDAuOCk7CiB9CiAKQEAgLTk4LDcgKzk4LDggQEAKICAgICBkaXNwbGF5OiBub25lOwogfQogCi0u
aW5saW5lLXN3YXRjaC5pbWFnZSA+IHNwYW4geworLmlubGluZS1zd2F0Y2guaW1hZ2UgPiBzcGFu
LAorLmlubGluZS1zd2F0Y2guYWxpZ25tZW50ID4gc3BhbiB7CiAgICAgYmFja2dyb3VuZC1zaXpl
OiBjb3ZlcjsKICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwogfQpAQCAtMTIwLDcg
KzEyMSw4IEBACiB9CiAKIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKLSAg
ICAuaW5saW5lLXN3YXRjaC5ib3gtc2hhZG93ID4gc3ZnIHsKKyAgICAuaW5saW5lLXN3YXRjaC5i
b3gtc2hhZG93ID4gc3ZnLAorICAgIC5pbmxpbmUtc3dhdGNoLmFsaWdubWVudCA+IHNwYW4gewog
ICAgICAgICBmaWx0ZXI6IGludmVydCgpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lubGluZVN3YXRjaC5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lubGluZVN3YXRjaC5qcwppbmRl
eCA4MWU0OGRiNDQ3N2IuLjJmMzQ4MDZhNmIxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSW5saW5lU3dhdGNoLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lubGluZVN3YXRjaC5qcwpAQCAtNzAs
NiArNzAsMTAgQEAgV0kuSW5saW5lU3dhdGNoID0gY2xhc3MgSW5saW5lU3dhdGNoIGV4dGVuZHMg
V0kuT2JqZWN0CiAgICAgICAgICAgICAgICAgLy8gSGFuZGxlZCBsYXRlciBieSBfdXBkYXRlU3dh
dGNoLgogICAgICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgICAgICBjYXNlIFdJLklubGlu
ZVN3YXRjaC5UeXBlLkFsaWdubWVudDoKKyAgICAgICAgICAgICAgICAvLyBIYW5kbGVkIGxhdGVy
IGJ5IF91cGRhdGVTd2F0Y2guCisgICAgICAgICAgICAgICAgYnJlYWs7CisKICAgICAgICAgICAg
IGNhc2UgV0kuSW5saW5lU3dhdGNoLlR5cGUuR3JhZGllbnQ6CiAgICAgICAgICAgICAgICAgdGhp
cy5fc3dhdGNoRWxlbWVudC50aXRsZSA9IFdJLlVJU3RyaW5nKCJFZGl0IGN1c3RvbSBncmFkaWVu
dCIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTUxLDYgKzE1NSw4IEBAIFdJLklubGlu
ZVN3YXRjaCA9IGNsYXNzIElubGluZVN3YXRjaCBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAg
ICAgdGhpcy5fdmFsdWVFZGl0b3IucmVtb3ZlRXZlbnRMaXN0ZW5lcihXSS5HcmFkaWVudEVkaXRv
ci5FdmVudC5HcmFkaWVudENoYW5nZWQsIHRoaXMuX3ZhbHVlRWRpdG9yVmFsdWVEaWRDaGFuZ2Us
IHRoaXMpOwogICAgICAgICBlbHNlIGlmICh0aGlzLl92YWx1ZUVkaXRvciBpbnN0YW5jZW9mIFdJ
LlNwcmluZ0VkaXRvcikKICAgICAgICAgICAgIHRoaXMuX3ZhbHVlRWRpdG9yLnJlbW92ZUV2ZW50
TGlzdGVuZXIoV0kuU3ByaW5nRWRpdG9yLkV2ZW50LlNwcmluZ0NoYW5nZWQsIHRoaXMuX3ZhbHVl
RWRpdG9yVmFsdWVEaWRDaGFuZ2UsIHRoaXMpOworICAgICAgICBlbHNlIGlmICh0aGlzLl92YWx1
ZUVkaXRvciBpbnN0YW5jZW9mIFdJLkFsaWdubWVudElubGluZVN3YXRjaEVkaXRvcikKKyAgICAg
ICAgICAgIHRoaXMuX3ZhbHVlRWRpdG9yLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQWxpZ25tZW50
SW5saW5lU3dhdGNoRWRpdG9yLkV2ZW50LlZhbHVlQ2hhbmdlZCwgdGhpcy5fdmFsdWVFZGl0b3JW
YWx1ZURpZENoYW5nZSwgdGhpcyk7CiAKICAgICAgICAgdGhpcy5fdmFsdWVFZGl0b3IgPSBudWxs
OwogCkBAIC0xODEsMTYgKzE4NywyNCBAQCBXSS5JbmxpbmVTd2F0Y2ggPSBjbGFzcyBJbmxpbmVT
d2F0Y2ggZXh0ZW5kcyBXSS5PYmplY3QKICAgICB7CiAgICAgICAgIGxldCB2YWx1ZSA9IHRoaXMu
dmFsdWU7CiAKLSAgICAgICAgaWYgKHRoaXMuX3R5cGUgPT09IFdJLklubGluZVN3YXRjaC5UeXBl
LkNvbG9yIHx8IHRoaXMuX3R5cGUgPT09IFdJLklubGluZVN3YXRjaC5UeXBlLkdyYWRpZW50KQor
ICAgICAgICBzd2l0Y2ggKHRoaXMuX3R5cGUpIHsKKyAgICAgICAgY2FzZSBXSS5JbmxpbmVTd2F0
Y2guVHlwZS5Db2xvcjoKKyAgICAgICAgY2FzZSBXSS5JbmxpbmVTd2F0Y2guVHlwZS5HcmFkaWVu
dDoKICAgICAgICAgICAgIHRoaXMuX3N3YXRjaElubmVyRWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5k
ID0gdmFsdWUgPyB2YWx1ZS50b1N0cmluZygpIDogbnVsbDsKLSAgICAgICAgZWxzZSBpZiAodGhp
cy5fdHlwZSA9PT0gV0kuSW5saW5lU3dhdGNoLlR5cGUuSW1hZ2UpCisgICAgICAgICAgICBpZiAo
dGhpcy5fdHlwZSA9PT0gV0kuSW5saW5lU3dhdGNoLlR5cGUuQ29sb3IpIHsKKyAgICAgICAgICAg
ICAgICBpZiAodGhpcy5fYWxsb3dDaGFuZ2luZ0NvbG9yRm9ybWF0cygpKQorICAgICAgICAgICAg
ICAgICAgICB0aGlzLl9zd2F0Y2hFbGVtZW50LnRpdGxlID0gV0kuVUlTdHJpbmcoIkNsaWNrIHRv
IHNlbGVjdCBhIGNvbG9yXG5TaGlmdC1jbGljayB0byBzd2l0Y2ggY29sb3IgZm9ybWF0cyIpOwor
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3dhdGNoRWxl
bWVudC50aXRsZSA9IFdJLlVJU3RyaW5nKCJDbGljayB0byBzZWxlY3QgYSBjb2xvciIpOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0kuSW5saW5lU3dh
dGNoLlR5cGUuSW1hZ2U6CiAgICAgICAgICAgICB0aGlzLl9zd2F0Y2hJbm5lckVsZW1lbnQuc3R5
bGUuc2V0UHJvcGVydHkoImJhY2tncm91bmQtaW1hZ2UiLCBgdXJsKCR7dmFsdWUuc3JjfSlgKTsK
LQotICAgICAgICBpZiAodGhpcy5fdHlwZSA9PT0gV0kuSW5saW5lU3dhdGNoLlR5cGUuQ29sb3Ip
IHsKLSAgICAgICAgICAgIGlmICh0aGlzLl9hbGxvd0NoYW5naW5nQ29sb3JGb3JtYXRzKCkpCi0g
ICAgICAgICAgICAgICAgdGhpcy5fc3dhdGNoRWxlbWVudC50aXRsZSA9IFdJLlVJU3RyaW5nKCJD
bGljayB0byBzZWxlY3QgYSBjb2xvclxuU2hpZnQtY2xpY2sgdG8gc3dpdGNoIGNvbG9yIGZvcm1h
dHMiKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICB0aGlzLl9zd2F0Y2hFbGVt
ZW50LnRpdGxlID0gV0kuVUlTdHJpbmcoIkNsaWNrIHRvIHNlbGVjdCBhIGNvbG9yIik7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXSS5JbmxpbmVTd2F0Y2guVHlwZS5BbGlnbm1l
bnQ6CisgICAgICAgICAgICBsZXQgZ2x5cGhQYXRoID0gV0kuQWxpZ25tZW50SW5saW5lU3dhdGNo
RWRpdG9yLkFsaWduQ29udGVudEdseXBoc1t2YWx1ZV0gfHwgV0kuQWxpZ25tZW50SW5saW5lU3dh
dGNoRWRpdG9yLlVua25vd25WYWx1ZUFsaWdubWVudEdseXBoOworICAgICAgICAgICAgdGhpcy5f
c3dhdGNoSW5uZXJFbGVtZW50LnN0eWxlLmJhY2tncm91bmRJbWFnZSA9IGB1cmwoJHtnbHlwaFBh
dGh9KWA7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCiAgICAgICAgIGlmICghZG9u
dEZpcmVFdmVudHMpCkBAIC0yODcsNiArMzAxLDEzIEBAIFdJLklubGluZVN3YXRjaCA9IGNsYXNz
IElubGluZVN3YXRjaCBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgdGhpcy5fdmFsdWVF
ZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcihXSS5TcHJpbmdFZGl0b3IuRXZlbnQuU3ByaW5nQ2hhbmdl
ZCwgdGhpcy5fdmFsdWVFZGl0b3JWYWx1ZURpZENoYW5nZSwgdGhpcyk7CiAgICAgICAgICAgICBi
cmVhazsKIAorICAgICAgICBjYXNlIFdJLklubGluZVN3YXRjaC5UeXBlLkFsaWdubWVudDoKKyAg
ICAgICAgICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMjMzMDU0PiBXZWIgSW5z
cGVjdG9yOiBBZGQgYSBzd2F0Y2ggZm9yIGFsaWduLWl0ZW1zIGFuZCBhbGlnbi1zZWxmCisgICAg
ICAgICAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIzMzA1NT4gV2ViIEluc3Bl
Y3RvcjogQWRkIGEgc3dhdGNoIGZvciBqdXN0aWZ5LWNvbnRlbnQsIGp1c3RpZnktaXRlbXMsIGFu
ZCBqdXN0aWZ5LXNlbGYKKyAgICAgICAgICAgIHRoaXMuX3ZhbHVlRWRpdG9yID0gbmV3IFdJLkFs
aWdubWVudElubGluZVN3YXRjaEVkaXRvcjsKKyAgICAgICAgICAgIHRoaXMuX3ZhbHVlRWRpdG9y
LmFkZEV2ZW50TGlzdGVuZXIoV0kuQWxpZ25tZW50SW5saW5lU3dhdGNoRWRpdG9yLkV2ZW50LlZh
bHVlQ2hhbmdlZCwgdGhpcy5fdmFsdWVFZGl0b3JWYWx1ZURpZENoYW5nZSwgdGhpcyk7CisgICAg
ICAgICAgICBicmVhazsKKwogICAgICAgICBjYXNlIFdJLklubGluZVN3YXRjaC5UeXBlLlZhcmlh
YmxlOgogICAgICAgICAgICAgdGhpcy5fdmFsdWVFZGl0b3IgPSB7fTsKIApAQCAtMzMzLDYgKzM1
NCwxMCBAQCBXSS5JbmxpbmVTd2F0Y2ggPSBjbGFzcyBJbmxpbmVTd2F0Y2ggZXh0ZW5kcyBXSS5P
YmplY3QKICAgICAgICAgICAgIHRoaXMuX3ZhbHVlRWRpdG9yLnNwcmluZyA9IHZhbHVlOwogICAg
ICAgICAgICAgYnJlYWs7CiAKKyAgICAgICAgY2FzZSBXSS5JbmxpbmVTd2F0Y2guVHlwZS5BbGln
bm1lbnQ6CisgICAgICAgICAgICB0aGlzLl92YWx1ZUVkaXRvci52YWx1ZSA9IHZhbHVlOworICAg
ICAgICAgICAgYnJlYWs7CisKICAgICAgICAgY2FzZSBXSS5JbmxpbmVTd2F0Y2guVHlwZS5WYXJp
YWJsZTogewogICAgICAgICAgICAgbGV0IGNvZGVNaXJyb3IgPSB0aGlzLl92YWx1ZUVkaXRvci5j
b2RlTWlycm9yOwogICAgICAgICAgICAgY29kZU1pcnJvci5zZXRWYWx1ZSh2YWx1ZSk7CkBAIC0z
NzgsNiArNDAzLDEwIEBAIFdJLklubGluZVN3YXRjaCA9IGNsYXNzIElubGluZVN3YXRjaCBleHRl
bmRzIFdJLk9iamVjdAogICAgICAgICBjYXNlIFdJLklubGluZVN3YXRjaC5UeXBlLlNwcmluZzoK
ICAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gZXZlbnQuZGF0YS5zcHJpbmc7CiAgICAgICAgICAg
ICBicmVhazsKKworICAgICAgICBjYXNlIFdJLklubGluZVN3YXRjaC5UeXBlLkFsaWdubWVudDoK
KyAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gZXZlbnQuZGF0YS52YWx1ZTsKKyAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAKICAgICAgICAgdGhpcy5fdXBkYXRlU3dhdGNoKCk7CkBAIC01
MjEsNiArNTUwLDcgQEAgV0kuSW5saW5lU3dhdGNoLlR5cGUgPSB7CiAgICAgU3ByaW5nOiAiaW5s
aW5lLXN3YXRjaC10eXBlLXNwcmluZyIsCiAgICAgVmFyaWFibGU6ICJpbmxpbmUtc3dhdGNoLXR5
cGUtdmFyaWFibGUiLAogICAgIEltYWdlOiAiaW5saW5lLXN3YXRjaC10eXBlLWltYWdlIiwKKyAg
ICBBbGlnbm1lbnQ6ICJpbmxpbmUtc3dhdGNoLXR5cGUtYWxpZ25tZW50IiwKIH07CiAKIFdJLklu
bGluZVN3YXRjaC5FdmVudCA9IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eS5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0
eS5qcwppbmRleCAyMzc1MDNiODhkM2MuLjNiMGFmYjA0OWRjNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRTdHlsZVByb3Bl
cnR5LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Nw
cmVhZHNoZWV0U3R5bGVQcm9wZXJ0eS5qcwpAQCAtNjI3LDYgKzYyNyw5IEBAIFdJLlNwcmVhZHNo
ZWV0U3R5bGVQcm9wZXJ0eSA9IGNsYXNzIFNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eSBleHRlbmRz
IFdJLk9iamVjdAogICAgICAgICBpZiAodGhpcy5fcHJvcGVydHkubmFtZSA9PT0gImJveC1zaGFk
b3ciKQogICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FkZEJveFNoYWRvd1Rva2Vucyh0b2tlbnMp
OwogCisgICAgICAgIGlmICh0aGlzLl9wcm9wZXJ0eS5uYW1lID09PSAiYWxpZ24tY29udGVudCIp
CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYWRkQWxpZ25Db250ZW50VG9rZW5zKHRva2Vucyk7
CisKICAgICAgICAgaWYgKHRoaXMuX3Byb3BlcnR5LmlzVmFyaWFibGUgfHwgV0kuQ1NTS2V5d29y
ZENvbXBsZXRpb25zLmlzQ29sb3JBd2FyZVByb3BlcnR5KHRoaXMuX3Byb3BlcnR5Lm5hbWUpKSB7
CiAgICAgICAgICAgICB0b2tlbnMgPSB0aGlzLl9hZGRHcmFkaWVudFRva2Vucyh0b2tlbnMpOwog
ICAgICAgICAgICAgdG9rZW5zID0gdGhpcy5fYWRkQ29sb3JUb2tlbnModG9rZW5zKTsKQEAgLTg0
MCw2ICs4NDMsMTMgQEAgV0kuU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5ID0gY2xhc3MgU3ByZWFk
c2hlZXRTdHlsZVByb3BlcnR5IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHJldHVybiBuZXdU
b2tlbnM7CiAgICAgfQogCisgICAgX2FkZEFsaWduQ29udGVudFRva2Vucyh0b2tlbnMpCisgICAg
eworICAgICAgICBsZXQgdGV4dCA9IHRoaXMuX3Jlc29sdmVWYXJpYWJsZXModG9rZW5zLm1hcCgo
dG9rZW4pID0+IHRva2VuLnZhbHVlKS5qb2luKCIiKSk7CisgICAgICAgIGxldCBzd2F0Y2ggPSB0
aGlzLl9jcmVhdGVJbmxpbmVTd2F0Y2goV0kuSW5saW5lU3dhdGNoLlR5cGUuQWxpZ25tZW50LCB0
aGlzLl9hZGRWYXJpYWJsZVRva2Vucyh0b2tlbnMpLCB0ZXh0KTsKKyAgICAgICAgcmV0dXJuIFtz
d2F0Y2hdOworICAgIH0KKwogICAgIF9hZGRWYXJpYWJsZVRva2Vucyh0b2tlbnMpCiAgICAgewog
ICAgICAgICBsZXQgbmV3VG9rZW5zID0gW107Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444580</attachid>
            <date>2021-11-17 14:34:27 -0800</date>
            <delta_ts>2021-11-17 23:18:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>23429</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGYyNjJhMWQ3MDAxYi4uMWE5MTVhMWI3ZDFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NiBAQAorMjAyMS0xMS0xNyAgTmlr
aXRhIFZhc2lseWV2ICA8bnZhc2lseWV2QGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBBZGQgYSBzd2F0Y2ggZm9yIGFsaWduLWNvbnRlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDA2NQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vODI4OTEzNjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW50cm9kdWNlIGFuIGlubGluZSBzd2F0Y2ggZm9yIGBhbGlnbi1jb250ZW50YCwgdGhh
dCBzaG93cyBpY29ucyBmb3IgY29tbW9uIGFsaWduLWNvbnRlbnQgdmFsdWVzOgorICAgICAgICBz
dGFydCwgY2VudGVyLCBlbmQsIHNwYWNlLWJldHdlZW4sIHNwYWNlLWFyb3VuZCwgc3BhY2UtZXZl
bmx5LCBhbmQgc3RyZXRjaC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL0FsaWdu
bWVudENlbnRlci5zdmc6IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL0Fs
aWdubWVudEVuZC5zdmc6IEFkZGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL0Fs
aWdubWVudFNwYWNlQXJvdW5kLnN2ZzogQWRkZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9J
bWFnZXMvQWxpZ25tZW50U3BhY2VCZXR3ZWVuLnN2ZzogQWRkZWQuCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9JbWFnZXMvQWxpZ25tZW50U3BhY2VFdmVubHkuc3ZnOiBBZGRlZC4KKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL0ltYWdlcy9BbGlnbm1lbnRTdGFydC5zdmc6IEFkZGVkLgorICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvSW1hZ2VzL0FsaWdubWVudFN0cmV0Y2guc3ZnOiBBZGRlZC4KKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL0ltYWdlcy9BbGlnbm1lbnRVbmtub3duLnN2ZzogQWRkZWQu
CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01haW4uaHRtbDoKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL1ZpZXdzL0FsaWdubWVudEVkaXRvci5jc3M6IEFkZGVkLgorICAgICAgICAoLmFsaWdu
bWVudC1lZGl0b3IgLmdseXBoKToKKyAgICAgICAgKC5hbGlnbm1lbnQtZWRpdG9yIC5nbHlwaDpu
b3QoOmxhc3QtY2hpbGQpKToKKyAgICAgICAgKC5hbGlnbm1lbnQtZWRpdG9yIC5nbHlwaDphY3Rp
dmUpOgorICAgICAgICAoLmFsaWdubWVudC1lZGl0b3IgLmdseXBoLnNlbGVjdGVkKToKKyAgICAg
ICAgKC5hbGlnbm1lbnQtZWRpdG9yIC5nbHlwaC5zZWxlY3RlZCArIC5nbHlwaCk6CisgICAgICAg
ICguYWxpZ25tZW50LWVkaXRvciAuZ2x5cGguc2VsZWN0ZWQ6YWN0aXZlKToKKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvQWxpZ25tZW50RWRpdG9yLmpzOiBBZGRlZC4KKyAgICAgICAg
KFdJLkFsaWdubWVudEVkaXRvcik6CisgICAgICAgIChXSS5BbGlnbm1lbnRFZGl0b3IuaXNBbGln
bkNvbnRlbnRWYWx1ZSk6CisgICAgICAgIChXSS5BbGlnbm1lbnRFZGl0b3IucHJvdG90eXBlLmdl
dCBlbGVtZW50KToKKyAgICAgICAgKFdJLkFsaWdubWVudEVkaXRvci5wcm90b3R5cGUuZ2V0IHZh
bHVlKToKKyAgICAgICAgKFdJLkFsaWdubWVudEVkaXRvci5wcm90b3R5cGUuc2V0IHZhbHVlKToK
KyAgICAgICAgKFdJLkFsaWdubWVudEVkaXRvci5wcm90b3R5cGUuX3VwZGF0ZVNlbGVjdGVkKToK
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvSW5saW5lU3dhdGNoLmNzczoKKyAgICAg
ICAgKC5pbmxpbmUtc3dhdGNoOm5vdCgucmVhZC1vbmx5KTptYXRjaGVzKC5iZXppZXIsIC5ib3gt
c2hhZG93LCAuc3ByaW5nLCAudmFyaWFibGUsIC5hbGlnbm1lbnQpOmhvdmVyKToKKyAgICAgICAg
KC5pbmxpbmUtc3dhdGNoOm5vdCgucmVhZC1vbmx5KTptYXRjaGVzKC5iZXppZXIsIC5ib3gtc2hh
ZG93LCAuc3ByaW5nLCAudmFyaWFibGUsIC5hbGlnbm1lbnQpOmFjdGl2ZSk6CisgICAgICAgICgu
aW5saW5lLXN3YXRjaDppcyguaW1hZ2UsIC5hbGlnbm1lbnQpID4gc3Bhbik6CisgICAgICAgIChA
bWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSAuaW5saW5lLXN3YXRjaC5ib3gtc2hh
ZG93ID4gc3ZnLCk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0lubGluZVN3YXRj
aC5qczoKKyAgICAgICAgKFdJLklubGluZVN3YXRjaCk6CisgICAgICAgIChXSS5JbmxpbmVTd2F0
Y2gucHJvdG90eXBlLmRpZERpc21pc3NQb3BvdmVyKToKKyAgICAgICAgKFdJLklubGluZVN3YXRj
aC5wcm90b3R5cGUuX3VwZGF0ZVN3YXRjaCk6CisgICAgICAgIChXSS5JbmxpbmVTd2F0Y2gucHJv
dG90eXBlLl92YWx1ZUVkaXRvclZhbHVlRGlkQ2hhbmdlKToKKworICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVmlld3MvU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LmpzOgorICAgICAgICAoV0kuU3By
ZWFkc2hlZXRTdHlsZVByb3BlcnR5LnByb3RvdHlwZS5fcmVwbGFjZVNwZWNpYWxUb2tlbnMpOgor
ICAgICAgICAoV0kuU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5LnByb3RvdHlwZS5fYWRkQWxpZ25t
ZW50VG9rZW5zKToKKwogMjAyMS0wNy0yNiAgUWlhb3NvbmcgWmhvdSAgPHFpYW9zb25nX3pob3VA
YXBwbGUuY29tPgogCiAgICAgICAgIEZvcm1EYXRhRXZlbnQgYWRkZWQuIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0FsaWdubWVudENlbnRl
ci5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQWxpZ25t
ZW50Q2VudGVyLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjM5
ZjQ2MmExZjRhNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0ltYWdlcy9BbGlnbm1lbnRDZW50ZXIuc3ZnCkBAIC0wLDAgKzEsNSBAQAorPCEt
LSBDb3B5cmlnaHQgwqkgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgor
PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9u
ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBpZD0icm9vdCI+CisgICAgPHJl
Y3QgeD0iMiIgeT0iOCIgd2lkdGg9IjEyIiBoZWlnaHQ9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIv
PgorICAgIDxyZWN0IHg9IjIiIHk9IjUiIHdpZHRoPSIxMiIgaGVpZ2h0PSIyIiBmaWxsPSJjdXJy
ZW50Q29sb3IiLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvSW1hZ2VzL0FsaWdubWVudEVuZC5zdmcgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9JbWFnZXMvQWxpZ25tZW50RW5kLnN2ZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjA1YThiZDg2Y2NlMwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9BbGlnbm1lbnRFbmQu
c3ZnCkBAIC0wLDAgKzEsNSBAQAorPCEtLSBDb3B5cmlnaHQgwqkgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdC
b3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBpZD0icm9v
dCI+CisgICAgPHJlY3QgeD0iMiIgeT0iOS41IiB3aWR0aD0iMTIiIGhlaWdodD0iMiIgZmlsbD0i
Y3VycmVudENvbG9yIi8+CisgICAgPHJlY3QgeD0iMiIgeT0iMTIuNSIgd2lkdGg9IjEyIiBoZWln
aHQ9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIvPgorPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQWxpZ25tZW50U3BhY2VBcm91bmQu
c3ZnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL0FsaWdubWVu
dFNwYWNlQXJvdW5kLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu
LjIzNDliMmJjYzM3MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0ltYWdlcy9BbGlnbm1lbnRTcGFjZUFyb3VuZC5zdmcKQEAgLTAsMCArMSw1
IEBACis8IS0tIENvcHlyaWdodCDCqSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4gLS0+Cis8c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJyb290Ij4KKyAgICA8cmVjdCB4
PSIyIiB5PSIzIiB3aWR0aD0iMTIiIGhlaWdodD0iMiIgZmlsbD0iY3VycmVudENvbG9yIi8+Cisg
ICAgPHJlY3QgeD0iMiIgeT0iMTEiIHdpZHRoPSIxMiIgaGVpZ2h0PSIyIiBmaWxsPSJjdXJyZW50
Q29sb3IiLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvSW1hZ2VzL0FsaWdubWVudFNwYWNlQmV0d2Vlbi5zdmcgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQWxpZ25tZW50U3BhY2VCZXR3ZWVuLnN2Zwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmRiZTlmNDcyOGZjOAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdl
cy9BbGlnbm1lbnRTcGFjZUJldHdlZW4uc3ZnCkBAIC0wLDAgKzEsNSBAQAorPCEtLSBDb3B5cmln
aHQgwqkgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB3aWR0
aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzIwMDAvc3ZnIiBpZD0icm9vdCI+CisgICAgPHJlY3QgeD0iMiIgeT0iMSIgd2lkdGg9
IjEyIiBoZWlnaHQ9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIvPgorICAgIDxyZWN0IHg9IjIiIHk9
IjEyLjUiIHdpZHRoPSIxMiIgaGVpZ2h0PSIyIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KKzwvc3Zn
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2Vz
L0FsaWdubWVudFNwYWNlRXZlbmx5LnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0ltYWdlcy9BbGlnbm1lbnRTcGFjZUV2ZW5seS5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lYWRhOTg3YzcwOTcKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQWxpZ25tZW50U3BhY2VF
dmVubHkuc3ZnCkBAIC0wLDAgKzEsNSBAQAorPCEtLSBDb3B5cmlnaHQgwqkgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYi
IHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBp
ZD0icm9vdCI+CisgICAgPHJlY3QgeD0iMiIgeT0iNCIgd2lkdGg9IjEyIiBoZWlnaHQ9IjIiIGZp
bGw9ImN1cnJlbnRDb2xvciIvPgorICAgIDxyZWN0IHg9IjIiIHk9IjEwIiB3aWR0aD0iMTIiIGhl
aWdodD0iMiIgZmlsbD0iY3VycmVudENvbG9yIi8+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9BbGlnbm1lbnRTdGFydC5zdmcg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQWxpZ25tZW50U3Rh
cnQuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uODYzYTQ2Mzg0
ZWRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvSW1hZ2VzL0FsaWdubWVudFN0YXJ0LnN2ZwpAQCAtMCwwICsxLDUgQEAKKzwhLS0gQ29weXJp
Z2h0IMKpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKzxzdmcgd2lk
dGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIHhtbG5zPSJodHRwOi8vd3d3
LnczLm9yZy8yMDAwL3N2ZyIgaWQ9InJvb3QiPgorICAgIDxyZWN0IHg9IjIiIHk9IjEiIHdpZHRo
PSIxMiIgaGVpZ2h0PSIyIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KKyAgICA8cmVjdCB4PSIyIiB5
PSI0IiB3aWR0aD0iMTIiIGhlaWdodD0iMiIgZmlsbD0iY3VycmVudENvbG9yIi8+Cis8L3N2Zz4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9B
bGlnbm1lbnRTdHJldGNoLnN2ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0ltYWdlcy9BbGlnbm1lbnRTdHJldGNoLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAuLjQ1NTcyNDEzYWY2OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9BbGlnbm1lbnRTdHJldGNoLnN2ZwpAQCAt
MCwwICsxLDUgQEAKKzwhLS0gQ29weXJpZ2h0IMKpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLiAtLT4KKzxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAg
MTYgMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaWQ9InJvb3QiPgorICAg
IDxyZWN0IHg9IjIiIHk9IjEiIHdpZHRoPSIxMiIgaGVpZ2h0PSI2LjUiIGZpbGw9ImN1cnJlbnRD
b2xvciIvPgorICAgIDxyZWN0IHg9IjIiIHk9IjgiIHdpZHRoPSIxMiIgaGVpZ2h0PSI2LjUiIGZp
bGw9ImN1cnJlbnRDb2xvciIvPgorPC9zdmc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQWxpZ25tZW50VW5rbm93bi5zdmcgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFnZXMvQWxpZ25tZW50VW5rbm93bi5zdmcK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mNTY4ZTBhZGU3YzcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9JbWFn
ZXMvQWxpZ25tZW50VW5rbm93bi5zdmcKQEAgLTAsMCArMSw3IEBACis8IS0tIENvcHlyaWdodCDC
qSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Cis8c3ZnIHdpZHRoPSIx
NiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMjAwMC9zdmciIGlkPSJyb290Ij4KKyAgICA8cmVjdCB4PSIyIiB5PSIyIiB3aWR0aD0iNCIg
aGVpZ2h0PSI2IiBmaWxsPSJibGFjayIvPgorICAgIDxyZWN0IHg9IjgiIHk9IjIiIHdpZHRoPSI2
IiBoZWlnaHQ9IjYiIGZpbGw9ImJsYWNrIi8+CisgICAgPHJlY3QgeD0iMTAiIHk9IjEwIiB3aWR0
aD0iNCIgaGVpZ2h0PSI0IiBmaWxsPSJibGFjayIvPgorICAgIDxyZWN0IHg9IjIiIHk9IjEwIiB3
aWR0aD0iNiIgaGVpZ2h0PSI0IiBmaWxsPSJibGFjayIvPgorPC9zdmc+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKaW5kZXggYTMyNzdjOGRhZWIxLi4x
ZTg5MDk5NTc2NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01haW4uaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
YWluLmh0bWwKQEAgLTM0LDYgKzM0LDcgQEAKIAogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iRXh0ZXJuYWwvQ29kZU1pcnJvci9jb2RlbWlycm9yLmNzcyI+CiAKKyAgICA8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0FsaWdubWVudEVkaXRvci5jc3MiPgogICAgIDxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQW5pbWF0aW9uQ29sbGVjdGlvbkNvbnRl
bnRWaWV3LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9Bbmlt
YXRpb25Db250ZW50Vmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Vmlld3MvQW5pbWF0aW9uRGV0YWlsc1NpZGViYXJQYW5lbC5jc3MiPgpAQCAtNjE3LDYgKzYxOCw3
IEBACiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0xvY2FsUmVtb3RlT2JqZWN0Q29udGVudFZpZXcu
anMiPjwvc2NyaXB0PgogCiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0FjdGl2YXRlQnV0dG9uTmF2
aWdhdGlvbkl0ZW0uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BbGlnbm1l
bnRFZGl0b3IuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BbmltYXRpb25D
b2xsZWN0aW9uQ29udGVudFZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3
cy9BbmltYXRpb25Db250ZW50Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZp
ZXdzL0FuaW1hdGlvbkRldGFpbHNTaWRlYmFyUGFuZWwuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQWxpZ25tZW50RWRp
dG9yLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FsaWdu
bWVudEVkaXRvci5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42
YjIxNWMzYjhmOGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9BbGlnbm1lbnRFZGl0b3IuY3NzCkBAIC0wLDAgKzEsNTYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisuYWxpZ25tZW50LWVkaXRvciAuZ2x5cGggeworICAgIGRpc3BsYXk6IGlubGlu
ZS1ibG9jazsKKyAgICB3aWR0aDogMTZweDsKKyAgICBoZWlnaHQ6IDE2cHg7CisgICAgYmFja2dy
b3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvci1jb250ZW50KTsKKyAgICBib3gtc2l6
aW5nOiBjb250ZW50LWJveDsKKyAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29s
b3IpOworICAgIGNvbG9yOiB2YXIoLS1nbHlwaC1jb2xvcik7Cit9CisKKy5hbGlnbm1lbnQtZWRp
dG9yIC5nbHlwaDpub3QoOmxhc3QtY2hpbGQpIHsKKyAgICBib3JkZXItaW5saW5lLWVuZC13aWR0
aDogMDsKK30KKworLmFsaWdubWVudC1lZGl0b3IgLmdseXBoOmFjdGl2ZSB7CisgICAgY29sb3I6
IHZhcigtLWdseXBoLWNvbG9yLXByZXNzZWQpOworfQorCisuYWxpZ25tZW50LWVkaXRvciAuZ2x5
cGguc2VsZWN0ZWQgeworICAgIGNvbG9yOiB2YXIoLS1nbHlwaC1jb2xvci1hY3RpdmUpOworICAg
IGJvcmRlci1jb2xvcjogdmFyKC0tZ2x5cGgtY29sb3ItYWN0aXZlKTsKK30KKworLmFsaWdubWVu
dC1lZGl0b3IgLmdseXBoLnNlbGVjdGVkICsgLmdseXBoIHsKKyAgICBib3JkZXItaW5saW5lLXN0
YXJ0LWNvbG9yOiB2YXIoLS1nbHlwaC1jb2xvci1hY3RpdmUpOworfQorCisuYWxpZ25tZW50LWVk
aXRvciAuZ2x5cGguc2VsZWN0ZWQ6YWN0aXZlIHsKKyAgICBjb2xvcjogdmFyKC0tZ2x5cGgtY29s
b3ItYWN0aXZlLXByZXNzZWQpOworICAgIG91dGxpbmUtY29sb3I6IHZhcigtLWdseXBoLWNvbG9y
LWFjdGl2ZS1wcmVzc2VkKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0FsaWdubWVudEVkaXRvci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FsaWdubWVudEVkaXRvci5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjg1MzlhMGM2MmUxMAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FsaWdubWVudEVk
aXRvci5qcwpAQCAtMCwwICsxLDEwNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dJLkFsaWdubWVudEVkaXRv
ciA9IGNsYXNzIEFsaWdubWVudEVkaXRvciBleHRlbmRzIFdJLk9iamVjdAoreworICAgIGNvbnN0
cnVjdG9yKCkKKyAgICB7CisgICAgICAgIHN1cGVyKCk7CisKKyAgICAgICAgdGhpcy5fdmFsdWUg
PSBudWxsOworICAgICAgICB0aGlzLl92YWx1ZVRvR2x5cGhFbGVtZW50ID0gbmV3IE1hcDsKKwor
ICAgICAgICB0aGlzLl9lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cisg
ICAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NOYW1lID0gImFsaWdubWVudC1lZGl0b3IiOworCisg
ICAgICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMjMzMDUzPiBXZWIgSW5zcGVj
dG9yOiBtaXJyb3Ivcm90YXRlIGFsaWdubWVudCBpY29ucyB3aGVuIGZsZXgtZGlyZWN0aW9uL2dy
aWQtYXV0by1mbG93L1JUTCBhZmZlY3QgYXhpcyBvciBkaXJlY3Rpb24KKyAgICAgICAgZm9yIChs
ZXQgW3ZhbHVlLCBwYXRoXSBvZiBPYmplY3QuZW50cmllcyhXSS5BbGlnbm1lbnRFZGl0b3IuVmFs
dWVHbHlwaHMpKSB7CisgICAgICAgICAgICBsZXQgZ2x5cGhFbGVtZW50ID0gV0kuSW1hZ2VVdGls
aXRpZXMudXNlU1ZHU3ltYm9sKHBhdGgsICJnbHlwaCIsIHZhbHVlKTsKKyAgICAgICAgICAgIHRo
aXMuX2VsZW1lbnQuYXBwZW5kKGdseXBoRWxlbWVudCk7CisgICAgICAgICAgICBnbHlwaEVsZW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgdGhp
cy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQWxpZ25tZW50RWRpdG9yLkV2ZW50LlZhbHVl
Q2hhbmdlZCwge3ZhbHVlfSk7CisgICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB0aGlzLl92YWx1ZVRvR2x5cGhFbGVtZW50LnNl
dCh2YWx1ZSwgZ2x5cGhFbGVtZW50KTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLl91cGRhdGVT
ZWxlY3RlZCgpOworICAgIH0KKworICAgIC8vIFN0YXRpYworCisgICAgc3RhdGljIGlzQWxpZ25D
b250ZW50VmFsdWUodmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gV0kuQWxpZ25tZW50RWRp
dG9yLlZhbHVlR2x5cGhzLmhhc093blByb3BlcnR5KHZhbHVlKTsKKyAgICB9CisKKyAgICAvLyBQ
dWJsaWMKKworICAgIGdldCBlbGVtZW50KCkgeyByZXR1cm4gdGhpcy5fZWxlbWVudDsgfQorCisg
ICAgZ2V0IHZhbHVlKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTsKKyAgICB9
CisKKyAgICBzZXQgdmFsdWUodmFsdWUpCisgICAgeworICAgICAgICBpZiAodGhpcy5fdmFsdWUg
JiYgV0kuQWxpZ25tZW50RWRpdG9yLmlzQWxpZ25Db250ZW50VmFsdWUodGhpcy5fdmFsdWUpKSB7
CisgICAgICAgICAgICBsZXQgcHJldmlvdXNHbHlwaEVsZW1lbnQgPSB0aGlzLl92YWx1ZVRvR2x5
cGhFbGVtZW50LmdldCh0aGlzLl92YWx1ZSk7CisgICAgICAgICAgICBwcmV2aW91c0dseXBoRWxl
bWVudC5jbGFzc0xpc3QucmVtb3ZlKCJzZWxlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIHRo
aXMuX3ZhbHVlID0gdmFsdWU7CisgICAgICAgIHRoaXMuX3VwZGF0ZVNlbGVjdGVkKCk7CisgICAg
fQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX3VwZGF0ZVNlbGVjdGVkKCkKKyAgICB7CisgICAg
ICAgIGlmICghdGhpcy5fdmFsdWUgfHwgIVdJLkFsaWdubWVudEVkaXRvci5pc0FsaWduQ29udGVu
dFZhbHVlKHRoaXMuX3ZhbHVlKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsZXQg
Z2x5cGhFbGVtZW50ID0gdGhpcy5fdmFsdWVUb0dseXBoRWxlbWVudC5nZXQodGhpcy5fdmFsdWUp
OworICAgICAgICBnbHlwaEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgic2VsZWN0ZWQiKTsKKyAgICB9
Cit9OworCisvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIzMzA1ND4gV2ViIEluc3Bl
Y3RvcjogQWRkIGEgc3dhdGNoIGZvciBhbGlnbi1pdGVtcyBhbmQgYWxpZ24tc2VsZgorLy8gRklY
TUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8yMzMwNTU+IFdlYiBJbnNwZWN0b3I6IEFkZCBhIHN3
YXRjaCBmb3IganVzdGlmeS1jb250ZW50LCBqdXN0aWZ5LWl0ZW1zLCBhbmQganVzdGlmeS1zZWxm
CitXSS5BbGlnbm1lbnRFZGl0b3IuVmFsdWVHbHlwaHMgPSB7CisgICAgInN0YXJ0IjogIkltYWdl
cy9BbGlnbm1lbnRTdGFydC5zdmciLAorICAgICJjZW50ZXIiOiAiSW1hZ2VzL0FsaWdubWVudENl
bnRlci5zdmciLAorICAgICJlbmQiOiAiSW1hZ2VzL0FsaWdubWVudEVuZC5zdmciLAorICAgICJz
cGFjZS1iZXR3ZWVuIjogIkltYWdlcy9BbGlnbm1lbnRTcGFjZUJldHdlZW4uc3ZnIiwKKyAgICAi
c3BhY2UtYXJvdW5kIjogIkltYWdlcy9BbGlnbm1lbnRTcGFjZUFyb3VuZC5zdmciLAorICAgICJz
cGFjZS1ldmVubHkiOiAiSW1hZ2VzL0FsaWdubWVudFNwYWNlRXZlbmx5LnN2ZyIsCisgICAgInN0
cmV0Y2giOiAiSW1hZ2VzL0FsaWdubWVudFN0cmV0Y2guc3ZnIiwKK307CisKK1dJLkFsaWdubWVu
dEVkaXRvci5Vbmtub3duVmFsdWVHbHlwaCA9ICJJbWFnZXMvQWxpZ25tZW50VW5rbm93bi5zdmci
OworCitXSS5BbGlnbm1lbnRFZGl0b3IuRXZlbnQgPSB7CisgICAgVmFsdWVDaGFuZ2VkOiAiYWxp
Z25tZW50LWVkaXRvci12YWx1ZS1jaGFuZ2VkIiwKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9JbmxpbmVTd2F0Y2guY3NzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSW5saW5lU3dhdGNoLmNzcwppbmRl
eCBjZGYxOGY5YTNjZjMuLmRlZjYzZjljNmFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSW5saW5lU3dhdGNoLmNzcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9JbmxpbmVTd2F0Y2guY3NzCkBAIC01
OCwxMSArNTgsMTEgQEAKICAgICBtYXJnaW4tcmlnaHQ6IDJweDsKIH0KIAotLmlubGluZS1zd2F0
Y2g6bm90KC5yZWFkLW9ubHkpOm1hdGNoZXMoLmJlemllciwgLmJveC1zaGFkb3csIC5zcHJpbmcs
IC52YXJpYWJsZSk6aG92ZXIgeworLmlubGluZS1zd2F0Y2g6bm90KC5yZWFkLW9ubHkpOm1hdGNo
ZXMoLmJlemllciwgLmJveC1zaGFkb3csIC5zcHJpbmcsIC52YXJpYWJsZSwgLmFsaWdubWVudCk6
aG92ZXIgewogICAgIGZpbHRlcjogYnJpZ2h0bmVzcygwLjkpOwogfQogCi0uaW5saW5lLXN3YXRj
aDpub3QoLnJlYWQtb25seSk6bWF0Y2hlcyguYmV6aWVyLCAuYm94LXNoYWRvdywgLnNwcmluZywg
LnZhcmlhYmxlKTphY3RpdmUgeworLmlubGluZS1zd2F0Y2g6bm90KC5yZWFkLW9ubHkpOm1hdGNo
ZXMoLmJlemllciwgLmJveC1zaGFkb3csIC5zcHJpbmcsIC52YXJpYWJsZSwgLmFsaWdubWVudCk6
YWN0aXZlIHsKICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMC44KTsKIH0KIApAQCAtOTgsNyArOTgs
NyBAQAogICAgIGRpc3BsYXk6IG5vbmU7CiB9CiAKLS5pbmxpbmUtc3dhdGNoLmltYWdlID4gc3Bh
biB7CisuaW5saW5lLXN3YXRjaDppcyguaW1hZ2UsIC5hbGlnbm1lbnQpID4gc3BhbiB7CiAgICAg
YmFja2dyb3VuZC1zaXplOiBjb3ZlcjsKICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0
OwogfQpAQCAtMTIwLDcgKzEyMCw4IEBACiB9CiAKIEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hl
bWU6IGRhcmspIHsKLSAgICAuaW5saW5lLXN3YXRjaC5ib3gtc2hhZG93ID4gc3ZnIHsKKyAgICAu
aW5saW5lLXN3YXRjaC5ib3gtc2hhZG93ID4gc3ZnLAorICAgIC5pbmxpbmUtc3dhdGNoLmFsaWdu
bWVudCA+IHNwYW4gewogICAgICAgICBmaWx0ZXI6IGludmVydCgpOwogICAgIH0KIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lubGluZVN3
YXRjaC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lubGlu
ZVN3YXRjaC5qcwppbmRleCA4MWU0OGRiNDQ3N2IuLmU3NjhhOTQ5ZDNjMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSW5saW5lU3dhdGNoLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lubGluZVN3
YXRjaC5qcwpAQCAtNzAsNiArNzAsMTAgQEAgV0kuSW5saW5lU3dhdGNoID0gY2xhc3MgSW5saW5l
U3dhdGNoIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICAgICAgLy8gSGFuZGxlZCBsYXRl
ciBieSBfdXBkYXRlU3dhdGNoLgogICAgICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgICAg
ICBjYXNlIFdJLklubGluZVN3YXRjaC5UeXBlLkFsaWdubWVudDoKKyAgICAgICAgICAgICAgICAv
LyBIYW5kbGVkIGxhdGVyIGJ5IF91cGRhdGVTd2F0Y2guCisgICAgICAgICAgICAgICAgYnJlYWs7
CisKICAgICAgICAgICAgIGNhc2UgV0kuSW5saW5lU3dhdGNoLlR5cGUuR3JhZGllbnQ6CiAgICAg
ICAgICAgICAgICAgdGhpcy5fc3dhdGNoRWxlbWVudC50aXRsZSA9IFdJLlVJU3RyaW5nKCJFZGl0
IGN1c3RvbSBncmFkaWVudCIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTUxLDYgKzE1
NSw4IEBAIFdJLklubGluZVN3YXRjaCA9IGNsYXNzIElubGluZVN3YXRjaCBleHRlbmRzIFdJLk9i
amVjdAogICAgICAgICAgICAgdGhpcy5fdmFsdWVFZGl0b3IucmVtb3ZlRXZlbnRMaXN0ZW5lcihX
SS5HcmFkaWVudEVkaXRvci5FdmVudC5HcmFkaWVudENoYW5nZWQsIHRoaXMuX3ZhbHVlRWRpdG9y
VmFsdWVEaWRDaGFuZ2UsIHRoaXMpOwogICAgICAgICBlbHNlIGlmICh0aGlzLl92YWx1ZUVkaXRv
ciBpbnN0YW5jZW9mIFdJLlNwcmluZ0VkaXRvcikKICAgICAgICAgICAgIHRoaXMuX3ZhbHVlRWRp
dG9yLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuU3ByaW5nRWRpdG9yLkV2ZW50LlNwcmluZ0NoYW5n
ZWQsIHRoaXMuX3ZhbHVlRWRpdG9yVmFsdWVEaWRDaGFuZ2UsIHRoaXMpOworICAgICAgICBlbHNl
IGlmICh0aGlzLl92YWx1ZUVkaXRvciBpbnN0YW5jZW9mIFdJLkFsaWdubWVudEVkaXRvcikKKyAg
ICAgICAgICAgIHRoaXMuX3ZhbHVlRWRpdG9yLnJlbW92ZUV2ZW50TGlzdGVuZXIoV0kuQWxpZ25t
ZW50RWRpdG9yLkV2ZW50LlZhbHVlQ2hhbmdlZCwgdGhpcy5fdmFsdWVFZGl0b3JWYWx1ZURpZENo
YW5nZSwgdGhpcyk7CiAKICAgICAgICAgdGhpcy5fdmFsdWVFZGl0b3IgPSBudWxsOwogCkBAIC0x
ODEsMTYgKzE4NywyNiBAQCBXSS5JbmxpbmVTd2F0Y2ggPSBjbGFzcyBJbmxpbmVTd2F0Y2ggZXh0
ZW5kcyBXSS5PYmplY3QKICAgICB7CiAgICAgICAgIGxldCB2YWx1ZSA9IHRoaXMudmFsdWU7CiAK
LSAgICAgICAgaWYgKHRoaXMuX3R5cGUgPT09IFdJLklubGluZVN3YXRjaC5UeXBlLkNvbG9yIHx8
IHRoaXMuX3R5cGUgPT09IFdJLklubGluZVN3YXRjaC5UeXBlLkdyYWRpZW50KQotICAgICAgICAg
ICAgdGhpcy5fc3dhdGNoSW5uZXJFbGVtZW50LnN0eWxlLmJhY2tncm91bmQgPSB2YWx1ZSA/IHZh
bHVlLnRvU3RyaW5nKCkgOiBudWxsOwotICAgICAgICBlbHNlIGlmICh0aGlzLl90eXBlID09PSBX
SS5JbmxpbmVTd2F0Y2guVHlwZS5JbWFnZSkKLSAgICAgICAgICAgIHRoaXMuX3N3YXRjaElubmVy
RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgiYmFja2dyb3VuZC1pbWFnZSIsIGB1cmwoJHt2YWx1
ZS5zcmN9KWApOwotCi0gICAgICAgIGlmICh0aGlzLl90eXBlID09PSBXSS5JbmxpbmVTd2F0Y2gu
VHlwZS5Db2xvcikgeworICAgICAgICBzd2l0Y2ggKHRoaXMuX3R5cGUpIHsKKyAgICAgICAgY2Fz
ZSBXSS5JbmxpbmVTd2F0Y2guVHlwZS5Db2xvcjoKICAgICAgICAgICAgIGlmICh0aGlzLl9hbGxv
d0NoYW5naW5nQ29sb3JGb3JtYXRzKCkpCiAgICAgICAgICAgICAgICAgdGhpcy5fc3dhdGNoRWxl
bWVudC50aXRsZSA9IFdJLlVJU3RyaW5nKCJDbGljayB0byBzZWxlY3QgYSBjb2xvclxuU2hpZnQt
Y2xpY2sgdG8gc3dpdGNoIGNvbG9yIGZvcm1hdHMiKTsKICAgICAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgICAgICB0aGlzLl9zd2F0Y2hFbGVtZW50LnRpdGxlID0gV0kuVUlTdHJpbmcoIkNsaWNr
IHRvIHNlbGVjdCBhIGNvbG9yIik7CisgICAgICAgICAgICAvLyBmYWxsdGhyb3VnaAorCisgICAg
ICAgIGNhc2UgV0kuSW5saW5lU3dhdGNoLlR5cGUuR3JhZGllbnQ6CisgICAgICAgICAgICB0aGlz
Ll9zd2F0Y2hJbm5lckVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZCA9IHZhbHVlID8gdmFsdWUudG9T
dHJpbmcoKSA6IG51bGw7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFdJLklu
bGluZVN3YXRjaC5UeXBlLkltYWdlOgorICAgICAgICAgICAgdGhpcy5fc3dhdGNoSW5uZXJFbGVt
ZW50LnN0eWxlLnNldFByb3BlcnR5KCJiYWNrZ3JvdW5kLWltYWdlIiwgYHVybCgke3ZhbHVlLnNy
Y30pYCk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFdJLklubGluZVN3YXRj
aC5UeXBlLkFsaWdubWVudDoKKyAgICAgICAgICAgIGxldCBnbHlwaFBhdGggPSBXSS5BbGlnbm1l
bnRFZGl0b3IuVmFsdWVHbHlwaHNbdmFsdWVdIHx8IFdJLkFsaWdubWVudEVkaXRvci5Vbmtub3du
VmFsdWVHbHlwaDsKKyAgICAgICAgICAgIHRoaXMuX3N3YXRjaElubmVyRWxlbWVudC5zdHlsZS5i
YWNrZ3JvdW5kSW1hZ2UgPSBgdXJsKCR7Z2x5cGhQYXRofSlgOworICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIWRvbnRGaXJlRXZlbnRzKQpAQCAtMjg3LDYgKzMw
MywxMyBAQCBXSS5JbmxpbmVTd2F0Y2ggPSBjbGFzcyBJbmxpbmVTd2F0Y2ggZXh0ZW5kcyBXSS5P
YmplY3QKICAgICAgICAgICAgIHRoaXMuX3ZhbHVlRWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoV0ku
U3ByaW5nRWRpdG9yLkV2ZW50LlNwcmluZ0NoYW5nZWQsIHRoaXMuX3ZhbHVlRWRpdG9yVmFsdWVE
aWRDaGFuZ2UsIHRoaXMpOwogICAgICAgICAgICAgYnJlYWs7CiAKKyAgICAgICAgY2FzZSBXSS5J
bmxpbmVTd2F0Y2guVHlwZS5BbGlnbm1lbnQ6CisgICAgICAgICAgICAvLyBGSVhNRTogPGh0dHBz
Oi8vd2Via2l0Lm9yZy9iLzIzMzA1ND4gV2ViIEluc3BlY3RvcjogQWRkIGEgc3dhdGNoIGZvciBh
bGlnbi1pdGVtcyBhbmQgYWxpZ24tc2VsZgorICAgICAgICAgICAgLy8gRklYTUU6IDxodHRwczov
L3dlYmtpdC5vcmcvYi8yMzMwNTU+IFdlYiBJbnNwZWN0b3I6IEFkZCBhIHN3YXRjaCBmb3IganVz
dGlmeS1jb250ZW50LCBqdXN0aWZ5LWl0ZW1zLCBhbmQganVzdGlmeS1zZWxmCisgICAgICAgICAg
ICB0aGlzLl92YWx1ZUVkaXRvciA9IG5ldyBXSS5BbGlnbm1lbnRFZGl0b3I7CisgICAgICAgICAg
ICB0aGlzLl92YWx1ZUVkaXRvci5hZGRFdmVudExpc3RlbmVyKFdJLkFsaWdubWVudEVkaXRvci5F
dmVudC5WYWx1ZUNoYW5nZWQsIHRoaXMuX3ZhbHVlRWRpdG9yVmFsdWVEaWRDaGFuZ2UsIHRoaXMp
OworICAgICAgICAgICAgYnJlYWs7CisKICAgICAgICAgY2FzZSBXSS5JbmxpbmVTd2F0Y2guVHlw
ZS5WYXJpYWJsZToKICAgICAgICAgICAgIHRoaXMuX3ZhbHVlRWRpdG9yID0ge307CiAKQEAgLTMz
Myw2ICszNTYsMTAgQEAgV0kuSW5saW5lU3dhdGNoID0gY2xhc3MgSW5saW5lU3dhdGNoIGV4dGVu
ZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICB0aGlzLl92YWx1ZUVkaXRvci5zcHJpbmcgPSB2YWx1
ZTsKICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgIGNhc2UgV0kuSW5saW5lU3dhdGNoLlR5
cGUuQWxpZ25tZW50OgorICAgICAgICAgICAgdGhpcy5fdmFsdWVFZGl0b3IudmFsdWUgPSB2YWx1
ZTsKKyAgICAgICAgICAgIGJyZWFrOworCiAgICAgICAgIGNhc2UgV0kuSW5saW5lU3dhdGNoLlR5
cGUuVmFyaWFibGU6IHsKICAgICAgICAgICAgIGxldCBjb2RlTWlycm9yID0gdGhpcy5fdmFsdWVF
ZGl0b3IuY29kZU1pcnJvcjsKICAgICAgICAgICAgIGNvZGVNaXJyb3Iuc2V0VmFsdWUodmFsdWUp
OwpAQCAtMzc4LDYgKzQwNSwxMCBAQCBXSS5JbmxpbmVTd2F0Y2ggPSBjbGFzcyBJbmxpbmVTd2F0
Y2ggZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgY2FzZSBXSS5JbmxpbmVTd2F0Y2guVHlwZS5T
cHJpbmc6CiAgICAgICAgICAgICB0aGlzLl92YWx1ZSA9IGV2ZW50LmRhdGEuc3ByaW5nOwogICAg
ICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBXSS5JbmxpbmVTd2F0Y2guVHlwZS5BbGln
bm1lbnQ6CisgICAgICAgICAgICB0aGlzLl92YWx1ZSA9IGV2ZW50LmRhdGEudmFsdWU7CisgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogCiAgICAgICAgIHRoaXMuX3VwZGF0ZVN3YXRjaCgp
OwpAQCAtNTIxLDYgKzU1Miw3IEBAIFdJLklubGluZVN3YXRjaC5UeXBlID0gewogICAgIFNwcmlu
ZzogImlubGluZS1zd2F0Y2gtdHlwZS1zcHJpbmciLAogICAgIFZhcmlhYmxlOiAiaW5saW5lLXN3
YXRjaC10eXBlLXZhcmlhYmxlIiwKICAgICBJbWFnZTogImlubGluZS1zd2F0Y2gtdHlwZS1pbWFn
ZSIsCisgICAgQWxpZ25tZW50OiAiaW5saW5lLXN3YXRjaC10eXBlLWFsaWdubWVudCIsCiB9Owog
CiBXSS5JbmxpbmVTd2F0Y2guRXZlbnQgPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldFN0eWxlUHJvcGVydHkuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldFN0eWxl
UHJvcGVydHkuanMKaW5kZXggMjM3NTAzYjg4ZDNjLi41ZDU1NGMyYTBkNTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0U3R5
bGVQcm9wZXJ0eS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9TcHJlYWRzaGVldFN0eWxlUHJvcGVydHkuanMKQEAgLTYyMywxMCArNjIzLDE1IEBAIFdJ
LlNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0eSA9IGNsYXNzIFNwcmVhZHNoZWV0U3R5bGVQcm9wZXJ0
eSBleHRlbmRzIFdJLk9iamVjdAogICAgIF9yZXBsYWNlU3BlY2lhbFRva2Vucyh0b2tlbnMpCiAg
ICAgewogICAgICAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE3ODYzNj4gV2Vi
IEluc3BlY3RvcjogU3R5bGVzOiBNYWtlIGlubGluZSB3aWRnZXRzIHdvcmsgd2l0aCBDU1MgZnVu
Y3Rpb25zICh2YXIoKSwgY2FsYygpLCBldGMuKQorICAgICAgICAvLyBGSVhNRTogPGh0dHBzOi8v
d2Via2l0Lm9yZy9iLzIzMzA1ND4gV2ViIEluc3BlY3RvcjogQWRkIGEgc3dhdGNoIGZvciBhbGln
bi1pdGVtcyBhbmQgYWxpZ24tc2VsZgorICAgICAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0
Lm9yZy9iLzIzMzA1NT4gV2ViIEluc3BlY3RvcjogQWRkIGEgc3dhdGNoIGZvciBqdXN0aWZ5LWNv
bnRlbnQsIGp1c3RpZnktaXRlbXMsIGFuZCBqdXN0aWZ5LXNlbGYKIAogICAgICAgICBpZiAodGhp
cy5fcHJvcGVydHkubmFtZSA9PT0gImJveC1zaGFkb3ciKQogICAgICAgICAgICAgcmV0dXJuIHRo
aXMuX2FkZEJveFNoYWRvd1Rva2Vucyh0b2tlbnMpOwogCisgICAgICAgIGlmICh0aGlzLl9wcm9w
ZXJ0eS5uYW1lID09PSAiYWxpZ24tY29udGVudCIpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5f
YWRkQWxpZ25tZW50VG9rZW5zKHRva2Vucyk7CisKICAgICAgICAgaWYgKHRoaXMuX3Byb3BlcnR5
LmlzVmFyaWFibGUgfHwgV0kuQ1NTS2V5d29yZENvbXBsZXRpb25zLmlzQ29sb3JBd2FyZVByb3Bl
cnR5KHRoaXMuX3Byb3BlcnR5Lm5hbWUpKSB7CiAgICAgICAgICAgICB0b2tlbnMgPSB0aGlzLl9h
ZGRHcmFkaWVudFRva2Vucyh0b2tlbnMpOwogICAgICAgICAgICAgdG9rZW5zID0gdGhpcy5fYWRk
Q29sb3JUb2tlbnModG9rZW5zKTsKQEAgLTg0MCw2ICs4NDUsMTQgQEAgV0kuU3ByZWFkc2hlZXRT
dHlsZVByb3BlcnR5ID0gY2xhc3MgU3ByZWFkc2hlZXRTdHlsZVByb3BlcnR5IGV4dGVuZHMgV0ku
T2JqZWN0CiAgICAgICAgIHJldHVybiBuZXdUb2tlbnM7CiAgICAgfQogCisgICAgX2FkZEFsaWdu
bWVudFRva2Vucyh0b2tlbnMpCisgICAgeworICAgICAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Vi
a2l0Lm9yZy9iLzIzMzI4MT4gV2ViIEluc3BlY3RvcjogQWxpZ25tZW50IHN3YXRjaCBzaG91bGQg
aGFuZGxlIG11bHRpLXRva2VuIHZhbHVlcyBiZXR0ZXIKKyAgICAgICAgbGV0IHRleHQgPSB0aGlz
Ll9yZXNvbHZlVmFyaWFibGVzKHRva2Vucy5tYXAoKHRva2VuKSA9PiB0b2tlbi52YWx1ZSkuam9p
bigiIikpOworICAgICAgICBsZXQgc3dhdGNoID0gdGhpcy5fY3JlYXRlSW5saW5lU3dhdGNoKFdJ
LklubGluZVN3YXRjaC5UeXBlLkFsaWdubWVudCwgdGhpcy5fYWRkVmFyaWFibGVUb2tlbnModG9r
ZW5zKSwgdGV4dCk7CisgICAgICAgIHJldHVybiBbc3dhdGNoXTsKKyAgICB9CisKICAgICBfYWRk
VmFyaWFibGVUb2tlbnModG9rZW5zKQogICAgIHsKICAgICAgICAgbGV0IG5ld1Rva2VucyA9IFtd
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>