<?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>148269</bug_id>
          
          <creation_ts>2015-08-20 17:06:25 -0700</creation_ts>
          <short_desc>Web Inspector: Visual styles sidebar should do something sane for SVG elements</short_desc>
          <delta_ts>2016-08-22 22:58:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Local 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>
          <dependson>158272</dependson>
          <blocked>147563</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Timothy Hatcher">timothy</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mattbaker</cc>
    
    <cc>msaboff</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>saam</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1119468</commentid>
    <comment_count>0</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-08-20 17:06:25 -0700</bug_when>
    <thetext>We likely need to have SVG specific sections we swap in and hide the more HTML specific sections.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119469</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-08-20 17:07:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/22371972&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124435</commentid>
    <comment_count>2</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-09-08 16:05:46 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; We likely need to have SVG specific sections we swap in and hide the more
&gt; HTML specific sections.

I like this idea.  What specific sections do you have in mind?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124451</commentid>
    <comment_count>3</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-09-08 16:31:07 -0700</bug_when>
    <thetext>Anything that does not have an effect in SVG. :) I don&apos;t know off the top of my head.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220277</commentid>
    <comment_count>4</comment_count>
      <attachid>286129</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-15 18:16:13 -0700</bug_when>
    <thetext>Created attachment 286129
WIP-Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220278</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-15 18:17:41 -0700</bug_when>
    <thetext>Attachment 286129 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220320</commentid>
    <comment_count>6</comment_count>
      <attachid>286129</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-08-15 19:49:20 -0700</bug_when>
    <thetext>Comment on attachment 286129
WIP-Patch

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

Seems good, but I&apos;m weary of the protocol change needed. r- while we work that part out. I suggested a frontend change, does that miss something?

&gt; Source/JavaScriptCore/inspector/protocol/DOM.json:57
&gt; +                { &quot;name&quot;: &quot;ownerSVGElement&quot;, &quot;$ref&quot;: &quot;Node&quot;, &quot;optional&quot;: true, &quot;description&quot;: &quot;SVG element that contains this node.&quot; },

Hmm, I think we should avoid adding this to the protocol unless we (1) really need to (2) would get a good performance benefit from it.

I think we should be able to do this in the frontend. For example:

    ownerSVGElement()
    {
        if (this._nodeName === &quot;svg&quot;)
            return this;
        if (!this.parentNode)
            return null;
        return this.parentNode.ownerSVGElement;
    }

    isSVGElement()
    {
        return !!this.ownerSVGElement;
    }

Is there something this might miss?

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleDetailsPanel.js:226
&gt; +        this._groups.position.properties.cx.element.classList.toggle(&quot;inactive&quot;, !isSVGCircle &amp;&amp; !isSVGEllipse &amp;&amp; !isSVGRadialGradient);
&gt; +        this._groups.position.properties.cy.element.classList.toggle(&quot;inactive&quot;, !isSVGCircle &amp;&amp; !isSVGEllipse &amp;&amp; !isSVGRadialGradient);

My eyes glazed over reading the states here. I trust it, but a few screenshots would help =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220326</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-08-15 20:00:55 -0700</bug_when>
    <thetext>&gt;     ownerSVGElement()
&gt;     {
&gt;         if (this._nodeName === &quot;svg&quot;)
&gt;             return this;
&gt;         if (!this.parentNode)
&gt;             return null;
&gt;         return this.parentNode.ownerSVGElement;

Err, `return this.parentNode.ownerSVGElement()`


&gt;     }
&gt; 
&gt;     isSVGElement()
&gt;     {
&gt;         return !!this.ownerSVGElement;

Same here =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220415</commentid>
    <comment_count>8</comment_count>
      <attachid>286167</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-16 01:10:10 -0700</bug_when>
    <thetext>Created attachment 286167
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220512</commentid>
    <comment_count>9</comment_count>
      <attachid>286167</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-08-16 11:56:13 -0700</bug_when>
    <thetext>Comment on attachment 286167
Patch

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

r=me

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleDetailsPanel.js:212
&gt; +        // Only show the dimensions section if the current element is not &lt;svg&gt; or is &lt;ellipse&gt;, &lt;rect&gt;, &lt;circle&gt;, or &lt;radialGradient&gt;.
&gt; +        this._groups.dimensions.section.element.classList.toggle(&quot;inactive&quot;, isSVGElement &amp;&amp; !isSVGEllipse &amp;&amp; !isSVGRect &amp;&amp; !isSVGCircle &amp;&amp; !isSVGRadialGradient);

Does &quot;is not &lt;svg&gt;&quot; really mean the SVGSVGElement? Because &quot;isSVGElement&quot; is just checking if the element is any kind of SVG element. Perhaps the comment should say &quot;is not an SVG element&quot;.

The comments are great but they are the opposite of the conditions. Maybe the conditions should be written to match the comment?

    !( !isSVGElement || isSVGEllipse || isSVGRect || isSVGCircle || isSVGRadialGradient )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220667</commentid>
    <comment_count>10</comment_count>
      <attachid>286235</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-16 17:01:58 -0700</bug_when>
    <thetext>Created attachment 286235
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221394</commentid>
    <comment_count>11</comment_count>
      <attachid>286459</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-19 10:51:08 -0700</bug_when>
    <thetext>Created attachment 286459
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221429</commentid>
    <comment_count>12</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2016-08-19 12:31:44 -0700</bug_when>
    <thetext>I applied this patch, opened WebInspectorUI/UserInterface/Images/NavigationItemTypes.svg, opened &quot;Styles — Visual&quot; and immediately got this uncaught exception:

undefined is not an object (evaluating &apos;this._groups.content.section&apos;)​ (at VisualStyleDetailsPanel.js:​197:​29)​
    _updateSections @ VisualStyleDetailsPanel.js:​197:​29
    dispatch @ Object.js:​162:​30
    dispatchEventToListeners @ Object.js:​169:​17
    _selectorChanged @ VisualStyleSelectorSection.js:​257:​38
    dispatch @ Object.js:​162:​30
    dispatchEventToListeners @ Object.js:​169:​17
    select @ TreeElement.js:​507:​49
    createSelectorItem @ VisualStyleSelectorSection.js:​113:​32
    update @ VisualStyleSelectorSection.js:​163:​36
    refresh @ VisualStyleDetailsPanel.js:​64:​41
    _refreshPreservingScrollPosition @ StyleDetailsPanel.js:​143:​21
    nodeStylesRefreshed @ StyleDetailsPanel.js:​114:​50
    dispatch @ Object.js:​162:​30
    dispatchEventToListeners @ Object.js:​169:​17
    fetchedComputedStyle @ DOMNodeStyles.js:​228:​42
    fetchedComputedStyle @ [native code]​
    _dispatchResponseToCallback @ InspectorBackend.js:​311:​27
    _dispatchResponse @ InspectorBackend.js:​281:​45
    dispatch @ InspectorBackend.js:​157:​35
    dispatchNextQueuedMessageFromBackend @ MessageDispatcher.js:​42:​34

Additional Details:​
    cause --&gt; An uncaught exception was thrown while dispatching response callback for command CSS.getComputedStyleForNode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221430</commentid>
    <comment_count>13</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-19 12:33:37 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; I applied this patch, opened
&gt; WebInspectorUI/UserInterface/Images/NavigationItemTypes.svg, opened &quot;Styles
&gt; — Visual&quot; and immediately got this uncaught exception:
&gt; 
&gt; undefined is not an object (evaluating &apos;this._groups.content.section&apos;)​ (at
&gt; VisualStyleDetailsPanel.js:​197:​29)​
&gt;     _updateSections @ VisualStyleDetailsPanel.js:​197:​29
&gt;     dispatch @ Object.js:​162:​30
&gt;     dispatchEventToListeners @ Object.js:​169:​17
&gt;     _selectorChanged @ VisualStyleSelectorSection.js:​257:​38
&gt;     dispatch @ Object.js:​162:​30
&gt;     dispatchEventToListeners @ Object.js:​169:​17
&gt;     select @ TreeElement.js:​507:​49
&gt;     createSelectorItem @ VisualStyleSelectorSection.js:​113:​32
&gt;     update @ VisualStyleSelectorSection.js:​163:​36
&gt;     refresh @ VisualStyleDetailsPanel.js:​64:​41
&gt;     _refreshPreservingScrollPosition @ StyleDetailsPanel.js:​143:​21
&gt;     nodeStylesRefreshed @ StyleDetailsPanel.js:​114:​50
&gt;     dispatch @ Object.js:​162:​30
&gt;     dispatchEventToListeners @ Object.js:​169:​17
&gt;     fetchedComputedStyle @ DOMNodeStyles.js:​228:​42
&gt;     fetchedComputedStyle @ [native code]​
&gt;     _dispatchResponseToCallback @ InspectorBackend.js:​311:​27
&gt;     _dispatchResponse @ InspectorBackend.js:​281:​45
&gt;     dispatch @ InspectorBackend.js:​157:​35
&gt;     dispatchNextQueuedMessageFromBackend @ MessageDispatcher.js:​42:​34
&gt; 
&gt; Additional Details:​
&gt;     cause --&gt; An uncaught exception was thrown while dispatching response
&gt; callback for command CSS.getComputedStyleForNode.

This is because it depends on &lt;https://webkit.org/b/158272&gt;, which redefines the Content section in the Visual Styles sidebar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221436</commentid>
    <comment_count>14</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2016-08-19 12:42:41 -0700</bug_when>
    <thetext>I still see all existing HTML sections for SVG? Is this intended?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221626</commentid>
    <comment_count>15</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-19 22:44:31 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; I still see all existing HTML sections for SVG? Is this intended?

The hiding of sections/editors is also derived from &lt;https://webkit.org/b/158272&gt; via the CSS rule:

.sidebar &gt; .panel.details.css-style .visual &gt; .details-section :matches(.details-section, .group).inactive {
    display: none;
}

To answer your question, some of the HTML sections should disappear (float, content, border, list style, etc.) when selecting an SVG element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222100</commentid>
    <comment_count>16</comment_count>
      <attachid>286459</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-08-22 21:17:11 -0700</bug_when>
    <thetext>Comment on attachment 286459
Patch

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

r=me

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleDetailsPanel.js:199
&gt; +        this._groups.fill.section.element.classList.toggle(&quot;inactive&quot;, !isSVGElement);
&gt; +        this._groups.stroke.section.element.classList.toggle(&quot;inactive&quot;, !isSVGElement);

Can we separate these two lines from the others, so it is obvious that they are different?

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleUnitSlider.css:29
&gt; +    background-image: linear-gradient(90deg, hsla(0, 0%, 0%, 0), #000), url(../Images/Checkers.svg);

Nit: We normally just say `black` instead of #000?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222130</commentid>
    <comment_count>17</comment_count>
      <attachid>286677</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-22 22:47:46 -0700</bug_when>
    <thetext>Created attachment 286677
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222135</commentid>
    <comment_count>18</comment_count>
      <attachid>286677</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-22 22:58:27 -0700</bug_when>
    <thetext>Comment on attachment 286677
Patch

Clearing flags on attachment: 286677

Committed r204758: &lt;http://trac.webkit.org/changeset/204758&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222136</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-22 22:58:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286129</attachid>
            <date>2016-08-15 18:16:13 -0700</date>
            <delta_ts>2016-08-16 01:10:06 -0700</delta_ts>
            <desc>WIP-Patch</desc>
            <filename>bug-148269-20160815181428.patch</filename>
            <type>text/plain</type>
            <size>24654</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDBlNWUzYWYwZjFhNzA1MDYzNGRkYTMzNDdmYTY0
N2NkOGU2OWYzNDQuLmE1NDM4ZDMyMWNjZmZlNjFlZTQwMjM1YWNhN2I5YWYxNmM5NmMxZmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE2LTA4LTE1ICBEZXZp
biBSb3Vzc28gIDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFZpc3VhbCBzdHlsZXMgc2lkZWJhciBzaG91bGQgZG8gc29tZXRoaW5nIHNhbmUgZm9y
IFNWRyBlbGVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ4MjY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvRE9NLmpzb246CisgICAgICAgIEFkZGVkIG93bmVy
U1ZHRWxlbWVudCB0byBkZXRlcm1pbmUgaWYgbm9kZSBpcyBhbiBTVkcgbm9kZS4KKwogMjAxNi0w
OC0xNSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBKU1Zh
bHVlOjpzdHJpY3RFcXVhbCgpIGhhbmRsZSBmYWlsdXJlcyB0byByZXNvbHZlIEpTUm9wZVN0cmlu
Z3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggYTk3MGVmOTUwOGZkNjZmNTU1NmRkZTI3NzVkZmEyMTc2MWM4ZTcz
ZC4uZTRiYmE3ZjZhYzY0ZjhlODUzZGU4Y2QxZjA0NzE4ODViNzcxZmY3ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDE2LTA4LTE1ICBEZXZpbiBSb3Vzc28gIDxkY3JvdXNzbyt3ZWJr
aXRAZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFZpc3VhbCBzdHlsZXMgc2lk
ZWJhciBzaG91bGQgZG8gc29tZXRoaW5nIHNhbmUgZm9yIFNWRyBlbGVtZW50cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MjY5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BT
ISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yTm9kZSk6CisgICAg
ICAgIEFkZGVkIG93bmVyU1ZHRWxlbWVudCB0byBkZXRlcm1pbmUgaWYgbm9kZSBpcyBhbiBTVkcg
bm9kZS4KKwogMjAxNi0wOC0xNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFJlbmFtZSBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlIHRvIFNvY2tl
dFN0cmVhbUhhbmRsZSBhbmQgU29ja2V0U3RyZWFtSGFuZGxlIHRvIFNvY2tldFN0cmVhbUhhbmRs
ZUltcGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDc3YjliMjNiYjA0ZWZiMGVjNTMzZWI4
MDU2NGEyNDdkNzFmZjJiZWMuLjA2ZGE3YTNmMTU4Y2QzNTk3YTYwYWVjMDE5NGQwMGI4Mjk5NzIx
NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE2LTA4LTE1
ICBEZXZpbiBSb3Vzc28gIDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IFZpc3VhbCBzdHlsZXMgc2lkZWJhciBzaG91bGQgZG8gc29tZXRoaW5nIHNh
bmUgZm9yIFNWRyBlbGVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ4MjY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBMb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6
CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9ET01Ob2RlLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRPTU5vZGUpOgorICAgICAgICBBZGRlZCBvd25lclNWR0VsZW1lbnQgdG8g
ZGV0ZXJtaW5lIGlmIG5vZGUgaXMgYW4gU1ZHIG5vZGUuCisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL1Zpc3VhbFN0eWxlRGV0YWlsc1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlZpc3VhbFN0eWxlRGV0YWlsc1BhbmVsLnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZURldGFpbHNQYW5lbC5wcm90b3R5cGUuX3Vw
ZGF0ZVNlY3Rpb25zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZURldGFpbHNQ
YW5lbC5wcm90b3R5cGUuX3BvcHVsYXRlUG9zaXRpb25TZWN0aW9uKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5WaXN1YWxTdHlsZURldGFpbHNQYW5lbC5wcm90b3R5cGUuX3BvcHVsYXRlRGltZW5z
aW9uc1NlY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlRGV0YWlsc1Bh
bmVsLnByb3RvdHlwZS5fcG9wdWxhdGVDb250ZW50U2VjdGlvbik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwucHJvdG90eXBlLl9wb3B1bGF0ZUZpbGxTZWN0
aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZURldGFpbHNQYW5lbC5wcm90
b3R5cGUuX3BvcHVsYXRlU3Ryb2tlU2VjdGlvbik6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L1ZpZXdzL1Zpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3IuY3NzOgorICAgICAgICAoLnZpc3VhbC1z
dHlsZS1wcm9wZXJ0eS1jb250YWluZXIuaW5hY3RpdmUpOgorICAgICAgICAoLnZpc3VhbC1zdHls
ZS1wcm9wZXJ0eS1jb250YWluZXIgPiAqOmZpcnN0LWNoaWxkOm1hdGNoZXMoLnZpc3VhbC1zdHls
ZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIpKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvVmlzdWFsU3R5bGVSZWxhdGl2ZU51bWJlclNsaWRlci5jc3M6CisgICAgICAgICgudmlz
dWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5udW1iZXItaW5wdXQtYm94LnJlbGF0aXZlLW51
bWJlci1zbGlkZXIgPiAucmVsYXRpdmUtc2xpZGVyKToKKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvVmlzdWFsU3R5bGVVbml0U2xpZGVyLmNzczoKKyAgICAgICAgKC52aXN1YWwtc3R5
bGUtcHJvcGVydHktY29udGFpbmVyLnVuaXQtc2xpZGVyID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0
eS12YWx1ZS1jb250YWluZXIgPiAuc2xpZGVyKToKKyAgICAgICAgKC52aXN1YWwtc3R5bGUtcHJv
cGVydHktY29udGFpbmVyLnVuaXQtc2xpZGVyLm9wYWNpdHkgPiAudmlzdWFsLXN0eWxlLXByb3Bl
cnR5LXZhbHVlLWNvbnRhaW5lciA+IC5zbGlkZXIpOiBEZWxldGVkLgorCiAyMDE2LTA4LTEyICBU
aW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBBZGQgYXBwbGljYXRpb24vdm5kLmFwaStqc29uIGFzIGEgdmFsaWQgSlNPTiBNSU1FLXR5
cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wv
RE9NLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0RPTS5q
c29uCmluZGV4IGIwMDEzOTM4ODMxNjgyY2M5MjllNTdiMWY5YTdhNGZjZGNmMzYwNTAuLmFiZTU2
YzI1MDI5MDNlM2RlOGU3Y2I1MDVlZmM1NjVlZjUwN2JjOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRE9NLmpzb24KKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9ET00uanNvbgpAQCAtNTQsNiArNTQsNyBA
QAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2hhZG93Um9vdFR5cGUiLCAiJHJlZiI6ICJT
aGFkb3dSb290VHlwZSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJTaGFkb3cg
cm9vdCB0eXBlLiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAiJHJl
ZiI6ICJOZXR3b3JrLkZyYW1lSWQiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAi
RnJhbWUgSUQgZm9yIGZyYW1lIG93bmVyIGVsZW1lbnRzLiIgfSwKICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImNvbnRlbnREb2N1bWVudCIsICIkcmVmIjogIk5vZGUiLCAib3B0aW9uYWwiOiB0
cnVlLCAiZGVzY3JpcHRpb24iOiAiQ29udGVudCBkb2N1bWVudCBmb3IgZnJhbWUgb3duZXIgZWxl
bWVudHMuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib3duZXJTVkdFbGVtZW50Iiwg
IiRyZWYiOiAiTm9kZSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJTVkcgZWxl
bWVudCB0aGF0IGNvbnRhaW5zIHRoaXMgbm9kZS4iIH0sCiAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJzaGFkb3dSb290cyIsICJ0eXBlIjogImFycmF5IiwgIm9wdGlvbmFsIjogdHJ1ZSwgIml0
ZW1zIjogeyAiJHJlZiI6ICJOb2RlIiB9LCAiZGVzY3JpcHRpb24iOiAiU2hhZG93IHJvb3QgbGlz
dCBmb3IgZ2l2ZW4gZWxlbWVudCBob3N0LiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InRlbXBsYXRlQ29udGVudCIsICIkcmVmIjogIk5vZGUiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVz
Y3JpcHRpb24iOiAiQ29udGVudCBkb2N1bWVudCBmcmFnbWVudCBmb3IgdGVtcGxhdGUgZWxlbWVu
dHMiIH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwc2V1ZG9FbGVtZW50cyIsICJ0eXBl
IjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJOb2RlIiB9LCAib3B0aW9uYWwiOiB0cnVl
LCAiZGVzY3JpcHRpb24iOiAiUHNldWRvIGVsZW1lbnRzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG5v
ZGUuIiB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5j
cHAKaW5kZXggNjQ0M2I2NTY5ZWI3YmZjZjQ3NzkzM2E3YmZkODhlMGEyZWYzMjNmNy4uNjZkNzQy
YjMxMTdjYjQxNjNmZmVmYTA4MjVjZGQ0Y2Y2N2VjOTYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC04NCw2ICs4NCw4IEBACiAjaW5j
bHVkZSAiUHNldWRvRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKKyNpbmNsdWRlICJTVkdFbGVtZW50LmgiCisjaW5j
bHVkZSAiU1ZHU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCiAjaW5jbHVk
ZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCkBAIC0xMzcwLDYgKzEzNzIs
MTIgQEAgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6Tm9kZT4gSW5zcGVjdG9yRE9NQWdl
bnQ6OmJ1aWxkT2JqZWN0Rm9yTm9kZShOb2RlKgogICAgICAgICAgICAgICAgIHZhbHVlLT5zZXRD
b250ZW50RG9jdW1lbnQoYnVpbGRPYmplY3RGb3JOb2RlKGRvY3VtZW50LCAwLCBub2Rlc01hcCkp
OwogICAgICAgICB9CiAKKyAgICAgICAgaWYgKGlzPFNWR0VsZW1lbnQ+KGVsZW1lbnQpKSB7Cisg
ICAgICAgICAgICBTVkdFbGVtZW50JiBzdmdFbGVtZW50ID0gZG93bmNhc3Q8U1ZHRWxlbWVudD4o
ZWxlbWVudCk7CisgICAgICAgICAgICBpZiAoU1ZHU1ZHRWxlbWVudCogb3duZXJTVkdFbGVtZW50
ID0gc3ZnRWxlbWVudC5vd25lclNWR0VsZW1lbnQoKSkKKyAgICAgICAgICAgICAgICB2YWx1ZS0+
c2V0T3duZXJTVkdFbGVtZW50KGJ1aWxkT2JqZWN0Rm9yTm9kZShvd25lclNWR0VsZW1lbnQsIDAs
IG5vZGVzTWFwKSk7CisgICAgICAgIH0KKwogICAgICAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9
IGVsZW1lbnQuc2hhZG93Um9vdCgpKSB7CiAgICAgICAgICAgICBhdXRvIHNoYWRvd1Jvb3RzID0g
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpOb2Rl
Pjo6Y3JlYXRlKCk7CiAgICAgICAgICAgICBzaGFkb3dSb290cy0+YWRkSXRlbShidWlsZE9iamVj
dEZvck5vZGUocm9vdCwgMCwgbm9kZXNNYXApKTsKQEAgLTEzOTAsNyArMTM5OCw2IEBAIFJlZjxJ
bnNwZWN0b3I6OlByb3RvY29sOjpET006Ok5vZGU+IEluc3BlY3RvckRPTUFnZW50OjpidWlsZE9i
amVjdEZvck5vZGUoTm9kZSoKICAgICAgICAgICAgIGlmIChhdXRvIHBzZXVkb0VsZW1lbnRzID0g
YnVpbGRBcnJheUZvclBzZXVkb0VsZW1lbnRzKGVsZW1lbnQsIG5vZGVzTWFwKSkKICAgICAgICAg
ICAgICAgICB2YWx1ZS0+c2V0UHNldWRvRWxlbWVudHMoV1RGTW92ZShwc2V1ZG9FbGVtZW50cykp
OwogICAgICAgICB9Ci0KICAgICB9IGVsc2UgaWYgKGlzPERvY3VtZW50Pigqbm9kZSkpIHsKICAg
ICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpub2RlKTsKICAg
ICAgICAgdmFsdWUtPnNldEZyYW1lSWQobV9wYWdlQWdlbnQtPmZyYW1lSWQoZG9jdW1lbnQuZnJh
bWUoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMv
ZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2Nh
bGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggOTk5OTYyMzYwNmQz
YmY4ZTc0MmZkMzBmYmJhOTc0N2UyOGI2ZjU4ZS4uOGQzZjE2YWNkZjQ3NDk0NDFlNjYyZmRmNGYy
YzRiZjRhMTA1ZjdhMyAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSA1ODkKemNtZUE9JVIx
dmE+eFFxIXs3TVk1Mzw/YWtLJi1eeiUjYipGZn4pQEtrSCFVem55Q3pWMz8mU3kzYElieDIlc2Rn
CnpHOERQVjg7bz5PUjdjYGI5WFoqK09uLUItc2ZEST9GKyZFPlhoKXowTUdUMXlsXzs4QWZGZWxw
bGxTckhQcmUoKwp6djNZKm5KMlQtI3B2eDQxM1NiJSk3fEpIVW55ZV5AQXdLOz5EeD1CZmhOKzhu
TURyT2tmeDNgPTtsKz9ZYDlxJW0KelgybkJtZ2hlNDlNVjl0dSRlZ1RqKztIPkJ0M35SUS1+UW97
TS1QUHtwYkp1ZnJqYE83M1k0NDElJjBzMF4mYyp2CnpJI21Db3MqNDF2K2lkdylNYC1keEEoNj5+
SDtsSFlALXpDVyRyZHI+R2hfcFU4YCV4UHp6Nl9+UGhUTHdzNllMQAp6ODYoSGBvdS1VVHkxZEEk
QkJvelJWJD5CaE05fl8tVTxlVTVMSzhMdTJeJnR8cFR5WExWaFMpfip0TFp0OEJtUEAKVkB9YzZX
PTBxfFdmeUIydkNOcHw2MHwwQyZmMWR5VgoKZGVsdGEgNzIKemNtVi1PMEpyfmAqOUQ1cjErZXVx
dm98enMwa2Ntd0l3YFp+VS1DQXlVemU2RnZwZEE5NlNGVmFaWVEtIzBWKSE9CmV4ZUBfUkNZUFQl
MFMzMlFJUk9HS21sSjBKaF9fS18wWT9MQStaJk1wCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTU5vZGUuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZS5qcwppbmRleCAxN2ViZTE1NjJj
OWE0ZWI5ZTFlZjNjMjU0OGY1YzZkYThjNWRlMzU4Li5hMDg0YjQ4NzhlZmJkODBhOTRhZmRlM2Iy
OGNlNmFhNzAzMjM0ZTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvRE9NTm9kZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZS5qcwpAQCAtNTYsNiArNTYsMTEgQEAgV2ViSW5zcGVj
dG9yLkRPTU5vZGUgPSBjbGFzcyBET01Ob2RlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAog
ICAgICAgICBlbHNlCiAgICAgICAgICAgICB0aGlzLm93bmVyRG9jdW1lbnQgPSBkb2M7CiAKKyAg
ICAgICAgaWYgKHBheWxvYWQub3duZXJTVkdFbGVtZW50KQorICAgICAgICAgICAgdGhpcy5vd25l
clNWR0VsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLkRPTU5vZGUodGhpcy5fZG9tVHJlZU1hbmFn
ZXIsIHRoaXMub3duZXJEb2N1bWVudCwgZmFsc2UsIHBheWxvYWQub3duZXJTVkdFbGVtZW50KTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5vd25lclNWR0VsZW1lbnQgPSBudWxsOwor
CiAgICAgICAgIHRoaXMuX2F0dHJpYnV0ZXMgPSBbXTsKICAgICAgICAgdGhpcy5fYXR0cmlidXRl
c01hcCA9IHt9OwogICAgICAgICBpZiAocGF5bG9hZC5hdHRyaWJ1dGVzKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVEZXRh
aWxzUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9W
aXN1YWxTdHlsZURldGFpbHNQYW5lbC5qcwppbmRleCAwZTM3ZTA5Yjc5YTU4MGJkYjQyZjkyZjNi
OTI5NDNhN2ZjMzA1MDViLi45YTkzOTcxOWY4ODhlYmIwOTllMmJkZDgyZjUzM2Y4YmZhZWU2MDMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9W
aXN1YWxTdHlsZURldGFpbHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZURldGFpbHNQYW5lbC5qcwpAQCAtMTAxLDEzICsx
MDEsMTUgQEAgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlRGV0YWlsc1BhbmVsID0gY2xhc3MgVmlz
dWFsU3R5bGVEZXRhaWxzUGFuZWwgZXh0ZW5kcyBXZWIKICAgICAgICAgdGhpcy5lbGVtZW50LmFw
cGVuZENoaWxkKHRoaXMuX3NlY3Rpb25zLnRleHQuZWxlbWVudCk7CiAKICAgICAgICAgLy8gQmFj
a2dyb3VuZCBTZWN0aW9uCisgICAgICAgIHRoaXMuX2dlbmVyYXRlU2VjdGlvbigiZmlsbCIsIFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiRmlsbCIpKTsKKyAgICAgICAgdGhpcy5fZ2VuZXJhdGVTZWN0
aW9uKCJzdHJva2UiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0cm9rZSIpKTsKICAgICAgICAg
dGhpcy5fZ2VuZXJhdGVTZWN0aW9uKCJiYWNrZ3JvdW5kLXN0eWxlIiwgV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJTdHlsZSIpKTsKICAgICAgICAgdGhpcy5fZ2VuZXJhdGVTZWN0aW9uKCJib3JkZXIi
LCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkJvcmRlciIpKTsKICAgICAgICAgdGhpcy5fZ2VuZXJh
dGVTZWN0aW9uKCJvdXRsaW5lIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJPdXRsaW5lIikpOwog
ICAgICAgICB0aGlzLl9nZW5lcmF0ZVNlY3Rpb24oImJveC1zaGFkb3ciLCBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIkJveCBTaGFkb3ciKSk7CiAgICAgICAgIHRoaXMuX2dlbmVyYXRlU2VjdGlvbigi
bGlzdC1zdHlsZSIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiTGlzdCBTdHlsZXMiKSk7CiAKLSAg
ICAgICAgdGhpcy5fc2VjdGlvbnMuYmFja2dyb3VuZCA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWls
c1NlY3Rpb24oImJhY2tncm91bmQiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkJhY2tncm91bmQi
KSwgW3RoaXMuX2dyb3Vwcy5iYWNrZ3JvdW5kU3R5bGUuc2VjdGlvbiwgdGhpcy5fZ3JvdXBzLmJv
cmRlci5zZWN0aW9uLCB0aGlzLl9ncm91cHMub3V0bGluZS5zZWN0aW9uLCB0aGlzLl9ncm91cHMu
Ym94U2hhZG93LnNlY3Rpb24sIHRoaXMuX2dyb3Vwcy5saXN0U3R5bGUuc2VjdGlvbl0pOworICAg
ICAgICB0aGlzLl9zZWN0aW9ucy5iYWNrZ3JvdW5kID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxz
U2VjdGlvbigiYmFja2dyb3VuZCIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQmFja2dyb3VuZCIp
LCBbdGhpcy5fZ3JvdXBzLmZpbGwuc2VjdGlvbiwgdGhpcy5fZ3JvdXBzLnN0cm9rZS5zZWN0aW9u
LCB0aGlzLl9ncm91cHMuYmFja2dyb3VuZFN0eWxlLnNlY3Rpb24sIHRoaXMuX2dyb3Vwcy5ib3Jk
ZXIuc2VjdGlvbiwgdGhpcy5fZ3JvdXBzLm91dGxpbmUuc2VjdGlvbiwgdGhpcy5fZ3JvdXBzLmJv
eFNoYWRvdy5zZWN0aW9uLCB0aGlzLl9ncm91cHMubGlzdFN0eWxlLnNlY3Rpb25dKTsKICAgICAg
ICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3NlY3Rpb25zLmJhY2tncm91bmQuZWxl
bWVudCk7CiAKICAgICAgICAgLy8gRWZmZWN0cyBTZWN0aW9uCkBAIC0xODcsNiArMTg5LDQxIEBA
IFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZURldGFpbHNQYW5lbCA9IGNsYXNzIFZpc3VhbFN0eWxl
RGV0YWlsc1BhbmVsIGV4dGVuZHMgV2ViCiAgICAgICAgICAgICAgICAgICAgIHNlY3Rpb24uY29s
bGFwc2VkID0gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKworICAgICAgICBsZXQg
bm9kZSA9IHRoaXMuX25vZGVTdHlsZXMubm9kZTsKKyAgICAgICAgbGV0IGlzU1ZHRWxlbWVudCA9
ICEhbm9kZS5vd25lclNWR0VsZW1lbnQ7CisgICAgICAgIGxldCBpc1NWR1NWR0VsZW1lbnQgPSBu
b2RlLm5vZGVOYW1lKCkgPT09ICJzdmciOworCisgICAgICAgIHRoaXMuX2dyb3Vwcy5mbG9hdC5z
ZWN0aW9uLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCBpc1NWR0VsZW1lbnQp
OworICAgICAgICB0aGlzLl9ncm91cHMuY29udGVudC5zZWN0aW9uLmVsZW1lbnQuY2xhc3NMaXN0
LnRvZ2dsZSgiaW5hY3RpdmUiLCBpc1NWR0VsZW1lbnQpOworICAgICAgICB0aGlzLl9ncm91cHMu
ZmlsbC5zZWN0aW9uLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCAhaXNTVkdF
bGVtZW50ICYmICFpc1NWR1NWR0VsZW1lbnQpOworICAgICAgICB0aGlzLl9ncm91cHMuc3Ryb2tl
LnNlY3Rpb24uZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICFpc1NWR0VsZW1l
bnQgJiYgIWlzU1ZHU1ZHRWxlbWVudCk7CisgICAgICAgIHRoaXMuX2dyb3Vwcy5ib3JkZXIuc2Vj
dGlvbi5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImluYWN0aXZlIiwgaXNTVkdFbGVtZW50KTsK
KyAgICAgICAgdGhpcy5fZ3JvdXBzLmJveFNoYWRvdy5zZWN0aW9uLmVsZW1lbnQuY2xhc3NMaXN0
LnRvZ2dsZSgiaW5hY3RpdmUiLCBpc1NWR0VsZW1lbnQpOworICAgICAgICB0aGlzLl9ncm91cHMu
bGlzdFN0eWxlLnNlY3Rpb24uZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsIGlz
U1ZHRWxlbWVudCk7CisKKyAgICAgICAgbGV0IGlzU1ZHQ2lyY2xlID0gbm9kZS5ub2RlTmFtZSgp
ID09PSAiY2lyY2xlIjsKKyAgICAgICAgbGV0IGlzU1ZHRWxsaXBzZSA9IG5vZGUubm9kZU5hbWUo
KSA9PT0gImVsbGlwc2UiOworICAgICAgICBsZXQgaXNTVkdSYWRpYWxHcmFkaWVudCA9IG5vZGUu
bm9kZU5hbWUoKSA9PT0gInJhZGlhbEdyYWRpZW50IjsKKyAgICAgICAgbGV0IGlzU1ZHUmVjdCA9
IG5vZGUubm9kZU5hbWUoKSA9PT0gInJlY3QiOworICAgICAgICBsZXQgaXNTVkdMaW5lID0gbm9k
ZS5ub2RlTmFtZSgpID09PSAibGluZSI7CisgICAgICAgIGxldCBpc1NWR0xpbmVhckdyYWRpZW50
ID0gbm9kZS5ub2RlTmFtZSgpID09PSAibGluZWFyR3JhZGllbnQiOworCisgICAgICAgIHRoaXMu
X2dyb3Vwcy5kaW1lbnNpb25zLnNlY3Rpb24uZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFj
dGl2ZSIsIGlzU1ZHRWxlbWVudCAmJiAhaXNTVkdFbGxpcHNlICYmICFpc1NWR1JlY3QgJiYgIWlz
U1ZHQ2lyY2xlICYmICFpc1NWR1JhZGlhbEdyYWRpZW50KTsKKyAgICAgICAgdGhpcy5fZ3JvdXBz
LmRpbWVuc2lvbnMuZGVmYXVsdEdyb3VwLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3Rp
dmUiLCBpc1NWR0VsZW1lbnQgJiYgIWlzU1ZHUmVjdCk7CisgICAgICAgIHRoaXMuX2dyb3Vwcy5k
aW1lbnNpb25zLnN2Z0dyb3VwLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCAh
aXNTVkdFbGxpcHNlICYmICFpc1NWR1JlY3QgJiYgIWlzU1ZHQ2lyY2xlICYmICFpc1NWR1JhZGlh
bEdyYWRpZW50KTsKKyAgICAgICAgdGhpcy5fZ3JvdXBzLmRpbWVuc2lvbnMucHJvcGVydGllcy5y
LmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCAhaXNTVkdDaXJjbGUgJiYgIWlz
U1ZHUmFkaWFsR3JhZGllbnQpOworICAgICAgICB0aGlzLl9ncm91cHMuZGltZW5zaW9ucy5wcm9w
ZXJ0aWVzLnJ4LmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCAhaXNTVkdFbGxp
cHNlICYmICFpc1NWR1JlY3QpOworICAgICAgICB0aGlzLl9ncm91cHMuZGltZW5zaW9ucy5wcm9w
ZXJ0aWVzLnJ5LmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCAhaXNTVkdFbGxp
cHNlICYmICFpc1NWR1JlY3QpOworICAgICAgICB0aGlzLl9ncm91cHMucG9zaXRpb24uc3ZnR3Jv
dXAuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICFpc1NWR1JlY3QgJiYgIWlz
U1ZHQ2lyY2xlICYmICFpc1NWR0VsbGlwc2UgJiYgIWlzU1ZHTGluZSAmJiAhaXNTVkdSYWRpYWxH
cmFkaWVudCAmJiAhaXNTVkdMaW5lYXJHcmFkaWVudCk7CisgICAgICAgIHRoaXMuX2dyb3Vwcy5w
b3NpdGlvbi5wcm9wZXJ0aWVzLnguZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIs
ICFpc1NWR1JlY3QpOworICAgICAgICB0aGlzLl9ncm91cHMucG9zaXRpb24ucHJvcGVydGllcy55
LmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCAhaXNTVkdSZWN0KTsKKyAgICAg
ICAgdGhpcy5fZ3JvdXBzLnBvc2l0aW9uLnByb3BlcnRpZXMueDEuZWxlbWVudC5jbGFzc0xpc3Qu
dG9nZ2xlKCJpbmFjdGl2ZSIsICFpc1NWR0xpbmUgJiYgIWlzU1ZHTGluZWFyR3JhZGllbnQpOwor
ICAgICAgICB0aGlzLl9ncm91cHMucG9zaXRpb24ucHJvcGVydGllcy55MS5lbGVtZW50LmNsYXNz
TGlzdC50b2dnbGUoImluYWN0aXZlIiwgIWlzU1ZHTGluZSAmJiAhaXNTVkdMaW5lYXJHcmFkaWVu
dCk7CisgICAgICAgIHRoaXMuX2dyb3Vwcy5wb3NpdGlvbi5wcm9wZXJ0aWVzLngyLmVsZW1lbnQu
Y2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCAhaXNTVkdMaW5lICYmICFpc1NWR0xpbmVhckdy
YWRpZW50KTsKKyAgICAgICAgdGhpcy5fZ3JvdXBzLnBvc2l0aW9uLnByb3BlcnRpZXMueTIuZWxl
bWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICFpc1NWR0xpbmUgJiYgIWlzU1ZHTGlu
ZWFyR3JhZGllbnQpOworICAgICAgICB0aGlzLl9ncm91cHMucG9zaXRpb24ucHJvcGVydGllcy5j
eC5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImluYWN0aXZlIiwgIWlzU1ZHQ2lyY2xlICYmICFp
c1NWR0VsbGlwc2UgJiYgIWlzU1ZHUmFkaWFsR3JhZGllbnQpOworICAgICAgICB0aGlzLl9ncm91
cHMucG9zaXRpb24ucHJvcGVydGllcy5jeS5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImluYWN0
aXZlIiwgIWlzU1ZHQ2lyY2xlICYmICFpc1NWR0VsbGlwc2UgJiYgIWlzU1ZHUmFkaWFsR3JhZGll
bnQpOwogICAgIH0KIAogICAgIF91cGRhdGVQcm9wZXJ0aWVzKGdyb3VwLCBmb3JjZVN0eWxlVXBk
YXRlKQpAQCAtNDU0LDEwICs0OTEsNDUgQEAgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlRGV0YWls
c1BhbmVsID0gY2xhc3MgVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwgZXh0ZW5kcyBXZWIKICAgICAg
ICAgcG9zaXRpb25UeXBlLmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy56SW5kZXguZWxl
bWVudCk7CiAgICAgICAgIHBvc2l0aW9uVHlwZS5lbGVtZW50LmNsYXNzTGlzdC5hZGQoInZpc3Vh
bC1zdHlsZS1zZXBhcmF0ZWQtcm93Iik7CiAKLSAgICAgICAgcm93cy51bnNoaWZ0KHBvc2l0aW9u
VHlwZSkKKyAgICAgICAgcm93cy51bnNoaWZ0KHBvc2l0aW9uVHlwZSk7CisKKyAgICAgICAgZ3Jv
dXAuZGVmYXVsdEdyb3VwID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxzU2VjdGlvbkdyb3VwKHJv
d3MpOworCisgICAgICAgIGxldCB4eVJvdyA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rp
b25Sb3c7CisKKyAgICAgICAgcHJvcGVydGllcy54ID0gbmV3IFdlYkluc3BlY3Rvci5WaXN1YWxT
dHlsZU51bWJlcklucHV0Qm94KCJ4IiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJYIiksIHRoaXMu
X2tleXdvcmRzLmJveE1vZGVsLCB0aGlzLl91bml0cy5kZWZhdWx0cywgdHJ1ZSk7CisgICAgICAg
IHByb3BlcnRpZXMueSA9IG5ldyBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJv
eCgieSIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiWSIpLCB0aGlzLl9rZXl3b3Jkcy5ib3hNb2Rl
bCwgdGhpcy5fdW5pdHMuZGVmYXVsdHMsIHRydWUpOworCisgICAgICAgIHh5Um93LmVsZW1lbnQu
YXBwZW5kQ2hpbGQocHJvcGVydGllcy54LmVsZW1lbnQpOworICAgICAgICB4eVJvdy5lbGVtZW50
LmFwcGVuZENoaWxkKHByb3BlcnRpZXMueS5lbGVtZW50KTsKKworICAgICAgICBsZXQgeDF5MVJv
dyA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Sb3c7CisKKyAgICAgICAgcHJvcGVy
dGllcy54MSA9IG5ldyBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveCgieDEi
LCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlgxIiksIHRoaXMuX2tleXdvcmRzLmJveE1vZGVsLCB0
aGlzLl91bml0cy5kZWZhdWx0cywgdHJ1ZSk7CisgICAgICAgIHByb3BlcnRpZXMueTEgPSBuZXcg
V2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goInkxIiwgV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJZMSIpLCB0aGlzLl9rZXl3b3Jkcy5ib3hNb2RlbCwgdGhpcy5fdW5pdHMuZGVm
YXVsdHMsIHRydWUpOworCisgICAgICAgIHgxeTFSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9w
ZXJ0aWVzLngxLmVsZW1lbnQpOworICAgICAgICB4MXkxUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQo
cHJvcGVydGllcy55MS5lbGVtZW50KTsKKworICAgICAgICBsZXQgeDJ5MlJvdyA9IG5ldyBXZWJJ
bnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Sb3c7CisKKyAgICAgICAgcHJvcGVydGllcy54MiA9IG5l
dyBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveCgieDIiLCBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIlgyIiksIHRoaXMuX2tleXdvcmRzLmJveE1vZGVsLCB0aGlzLl91bml0cy5k
ZWZhdWx0cywgdHJ1ZSk7CisgICAgICAgIHByb3BlcnRpZXMueTIgPSBuZXcgV2ViSW5zcGVjdG9y
LlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goInkyIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJZ
MiIpLCB0aGlzLl9rZXl3b3Jkcy5ib3hNb2RlbCwgdGhpcy5fdW5pdHMuZGVmYXVsdHMsIHRydWUp
OworCisgICAgICAgIHgyeTJSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLngyLmVs
ZW1lbnQpOworICAgICAgICB4MnkyUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy55
Mi5lbGVtZW50KTsKKworICAgICAgICBsZXQgY3hjeVJvdyA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0
YWlsc1NlY3Rpb25Sb3c7CisKKyAgICAgICAgcHJvcGVydGllcy5jeCA9IG5ldyBXZWJJbnNwZWN0
b3IuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveCgiY3giLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IkNlbnRlciBYIiksIHRoaXMuX2tleXdvcmRzLmJveE1vZGVsLCB0aGlzLl91bml0cy5kZWZhdWx0
cywgdHJ1ZSk7CisgICAgICAgIHByb3BlcnRpZXMuY3kgPSBuZXcgV2ViSW5zcGVjdG9yLlZpc3Vh
bFN0eWxlTnVtYmVySW5wdXRCb3goImN5IiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDZW50ZXIg
WSIpLCB0aGlzLl9rZXl3b3Jkcy5ib3hNb2RlbCwgdGhpcy5fdW5pdHMuZGVmYXVsdHMsIHRydWUp
OworCisgICAgICAgIGN4Y3lSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmN4LmVs
ZW1lbnQpOworICAgICAgICBjeGN5Um93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5j
eS5lbGVtZW50KTsKKworICAgICAgICBncm91cC5zdmdHcm91cCA9IG5ldyBXZWJJbnNwZWN0b3Iu
RGV0YWlsc1NlY3Rpb25Hcm91cChbeHlSb3csIHgxeTFSb3csIHgyeTJSb3csIGN4Y3lSb3ddKTsK
IAotICAgICAgICBsZXQgcG9zaXRpb25Hcm91cCA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1Nl
Y3Rpb25Hcm91cChyb3dzKTsKLSAgICAgICAgdGhpcy5fcG9wdWxhdGVTZWN0aW9uKGdyb3VwLCBb
cG9zaXRpb25Hcm91cF0pOworICAgICAgICB0aGlzLl9wb3B1bGF0ZVNlY3Rpb24oZ3JvdXAsIFtn
cm91cC5kZWZhdWx0R3JvdXAsIGdyb3VwLnN2Z0dyb3VwXSk7CiAKICAgICAgICAgbGV0IGFsbG93
ZWRQb3NpdGlvblZhbHVlcyA9IFsicmVsYXRpdmUiLCAiYWJzb2x1dGUiLCAiZml4ZWQiLCAiLXdl
YmtpdC1zdGlja3kiXTsKICAgICAgICAgcHJvcGVydGllcy56SW5kZXguYWRkRGVwZW5kZW5jeSgi
cG9zaXRpb24iLCBhbGxvd2VkUG9zaXRpb25WYWx1ZXMpOwpAQCAtNTUxLDggKzYyMywyOSBAQCBX
ZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwgPSBjbGFzcyBWaXN1YWxTdHlsZURl
dGFpbHNQYW5lbCBleHRlbmRzIFdlYgogICAgICAgICB0aGlzLl9hZGRNZXRyaWNzTW91c2VMaXN0
ZW5lcnMoZ3JvdXAucHJvcGVydGllcy5tYXhXaWR0aCwgaGlnaGxpZ2h0TW9kZSk7CiAgICAgICAg
IHRoaXMuX2FkZE1ldHJpY3NNb3VzZUxpc3RlbmVycyhncm91cC5wcm9wZXJ0aWVzLm1heEhlaWdo
dCwgaGlnaGxpZ2h0TW9kZSk7CiAKLSAgICAgICAgbGV0IGRpbWVuc2lvbnNHcm91cCA9IG5ldyBX
ZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Hcm91cChbZGltZW5zaW9uc1RhYkNvbnRyb2xsZXIs
IGRpbWVuc2lvbnNSZWd1bGFyR3JvdXAsIGRpbWVuc2lvbnNNaW5Hcm91cCwgZGltZW5zaW9uc01h
eEdyb3VwXSk7Ci0gICAgICAgIHRoaXMuX3BvcHVsYXRlU2VjdGlvbihncm91cCwgW2RpbWVuc2lv
bnNHcm91cF0pOworICAgICAgICBncm91cC5kZWZhdWx0R3JvdXAgPSBuZXcgV2ViSW5zcGVjdG9y
LkRldGFpbHNTZWN0aW9uR3JvdXAoW2RpbWVuc2lvbnNUYWJDb250cm9sbGVyLCBkaW1lbnNpb25z
UmVndWxhckdyb3VwLCBkaW1lbnNpb25zTWluR3JvdXAsIGRpbWVuc2lvbnNNYXhHcm91cF0pOwor
CisgICAgICAgIGxldCByUm93ID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxzU2VjdGlvblJvdzsK
KworICAgICAgICBwcm9wZXJ0aWVzLnIgPSBuZXcgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlUmVs
YXRpdmVOdW1iZXJTbGlkZXIoInIiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJhZGl1cyIpLCB0
aGlzLl9rZXl3b3Jkcy5ib3hNb2RlbCwgdGhpcy5fdW5pdHMuZGVmYXVsdHMpOworCisgICAgICAg
IHJSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLnIuZWxlbWVudCk7CisKKyAgICAg
ICAgbGV0IHJ4Um93ID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxzU2VjdGlvblJvdzsKKworICAg
ICAgICBwcm9wZXJ0aWVzLnJ4ID0gbmV3IFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVJlbGF0aXZl
TnVtYmVyU2xpZGVyKCJyeCIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmFkaXVzIFgiKSwgdGhp
cy5fa2V5d29yZHMuYm94TW9kZWwsIHRoaXMuX3VuaXRzLmRlZmF1bHRzKTsKKworICAgICAgICBy
eFJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMucnguZWxlbWVudCk7CisKKyAgICAg
ICAgbGV0IHJ5Um93ID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxzU2VjdGlvblJvdzsKKworICAg
ICAgICBwcm9wZXJ0aWVzLnJ5ID0gbmV3IFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVJlbGF0aXZl
TnVtYmVyU2xpZGVyKCJyeSIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmFkaXVzIFkiKSwgdGhp
cy5fa2V5d29yZHMuYm94TW9kZWwsIHRoaXMuX3VuaXRzLmRlZmF1bHRzKTsKKworICAgICAgICBy
eVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMucnkuZWxlbWVudCk7CisKKyAgICAg
ICAgZ3JvdXAuc3ZnR3JvdXAgPSBuZXcgV2ViSW5zcGVjdG9yLkRldGFpbHNTZWN0aW9uR3JvdXAo
W3JSb3csIHJ4Um93LCByeVJvd10pOworCisgICAgICAgIHRoaXMuX3BvcHVsYXRlU2VjdGlvbihn
cm91cCwgW2dyb3VwLmRlZmF1bHRHcm91cCwgZ3JvdXAuc3ZnR3JvdXBdKTsKICAgICB9CiAKICAg
ICBfcG9wdWxhdGVNYXJnaW5TZWN0aW9uKCkKQEAgLTgyNyw2ICs5MjAsNzggQEAgV2ViSW5zcGVj
dG9yLlZpc3VhbFN0eWxlRGV0YWlsc1BhbmVsID0gY2xhc3MgVmlzdWFsU3R5bGVEZXRhaWxzUGFu
ZWwgZXh0ZW5kcyBXZWIKICAgICAgICAgdGhpcy5fcG9wdWxhdGVTZWN0aW9uKGdyb3VwLCBbdGV4
dFNoYWRvd0dyb3VwXSk7CiAgICAgfQogCisgICAgX3BvcHVsYXRlRmlsbFNlY3Rpb24oKQorICAg
IHsKKyAgICAgICAgbGV0IGdyb3VwID0gdGhpcy5fZ3JvdXBzLmZpbGw7CisgICAgICAgIGxldCBw
cm9wZXJ0aWVzID0gZ3JvdXAucHJvcGVydGllczsKKworICAgICAgICBsZXQgZmlsbFJvdyA9IG5l
dyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Sb3c7CisKKyAgICAgICAgcHJvcGVydGllcy5m
aWxsID0gbmV3IFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUNvbG9yUGlja2VyKCJmaWxsIiwgV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJDb2xvciIpKTsKKyAgICAgICAgcHJvcGVydGllcy5maWxsUnVs
ZSA9IG5ldyBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyKCJmaWxsLXJ1bGUi
LCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJ1bGUiKSwgdGhpcy5fa2V5d29yZHMuZGVmYXVsdHMu
Y29uY2F0KFsiTm9uemVybyIsICJFdmVub2RkIl0pKTsKKworICAgICAgICBmaWxsUm93LmVsZW1l
bnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5maWxsLmVsZW1lbnQpOworICAgICAgICBmaWxsUm93
LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5maWxsUnVsZS5lbGVtZW50KTsKKworICAg
ICAgICBsZXQgZmlsbE9wYWNpdHlSb3cgPSBuZXcgV2ViSW5zcGVjdG9yLkRldGFpbHNTZWN0aW9u
Um93OworCisgICAgICAgIHByb3BlcnRpZXMuZmlsbE9wYWNpdHkgPSBuZXcgV2ViSW5zcGVjdG9y
LlZpc3VhbFN0eWxlVW5pdFNsaWRlcigiZmlsbC1vcGFjaXR5IiwgV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJPcGFjaXR5IikpOworCisgICAgICAgIGZpbGxPcGFjaXR5Um93LmVsZW1lbnQuYXBwZW5k
Q2hpbGQocHJvcGVydGllcy5maWxsT3BhY2l0eS5lbGVtZW50KTsKKworICAgICAgICBncm91cC5z
cGVjaWZpZWRXaWR0aFByb3BlcnRpZXMgPSBbcHJvcGVydGllcy5maWxsT3BhY2l0eV07CisKKyAg
ICAgICAgbGV0IGZpbGxHcm91cCA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Hcm91
cChbZmlsbFJvdywgZmlsbE9wYWNpdHlSb3ddKTsKKyAgICAgICAgdGhpcy5fcG9wdWxhdGVTZWN0
aW9uKGdyb3VwLCBbZmlsbEdyb3VwXSk7CisgICAgfQorCisgICAgX3BvcHVsYXRlU3Ryb2tlU2Vj
dGlvbigpCisgICAgeworICAgICAgICBsZXQgZ3JvdXAgPSB0aGlzLl9ncm91cHMuc3Ryb2tlOwor
ICAgICAgICBsZXQgcHJvcGVydGllcyA9IGdyb3VwLnByb3BlcnRpZXM7CisKKyAgICAgICAgbGV0
IHN0cm9rZVJvdyA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Sb3c7CisKKyAgICAg
ICAgcHJvcGVydGllcy5zdHJva2UgPSBuZXcgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlQ29sb3JQ
aWNrZXIoInN0cm9rZSIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ29sb3IiKSk7CisgICAgICAg
IHByb3BlcnRpZXMuc3Ryb2tlV2lkdGggPSBuZXcgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlTnVt
YmVySW5wdXRCb3goInN0cm9rZS13aWR0aCIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiV2lkdGgi
KSwgdGhpcy5fa2V5d29yZHMuZGVmYXVsdHMsIHRoaXMuX3VuaXRzLmRlZmF1bHRzKTsKKworICAg
ICAgICBzdHJva2VSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLnN0cm9rZS5lbGVt
ZW50KTsKKyAgICAgICAgc3Ryb2tlUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5z
dHJva2VXaWR0aC5lbGVtZW50KTsKKworICAgICAgICBsZXQgc3Ryb2tlT3BhY2l0eSA9IG5ldyBX
ZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Sb3c7CisKKyAgICAgICAgcHJvcGVydGllcy5zdHJv
a2VPcGFjaXR5ID0gbmV3IFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVVuaXRTbGlkZXIoInN0cm9r
ZS1vcGFjaXR5IiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJPcGFjaXR5IikpOworCisgICAgICAg
IHN0cm9rZU9wYWNpdHkuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLnN0cm9rZU9wYWNp
dHkuZWxlbWVudCk7CisKKyAgICAgICAgbGV0IHN0cm9rZURhc2hhcnJheVJvdyA9IG5ldyBXZWJJ
bnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Sb3c7CisKKyAgICAgICAgcHJvcGVydGllcy5zdHJva2VE
YXNoYXJyYXkgPSBuZXcgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlQmFzaWNJbnB1dCgic3Ryb2tl
LWRhc2hhcnJheSIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRGFzaCBBcnJheSIpLCBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIkVudGVyIGFuIGFycmF5IHZhbHVlIikpOworCisgICAgICAgIHN0cm9r
ZURhc2hhcnJheVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuc3Ryb2tlRGFzaGFy
cmF5LmVsZW1lbnQpOworCisgICAgICAgIGxldCBzdHJva2VEYXNoYXJyYXlPcHRpb25zUm93ID0g
bmV3IFdlYkluc3BlY3Rvci5EZXRhaWxzU2VjdGlvblJvdzsKKworICAgICAgICBwcm9wZXJ0aWVz
LnN0cm9rZURhc2hvZmZzZXQgPSBuZXcgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlTnVtYmVySW5w
dXRCb3goInN0cm9rZS1kYXNob2Zmc2V0IiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJPZmZzZXQi
KSwgdGhpcy5fa2V5d29yZHMuZGVmYXVsdHMsIHRoaXMuX3VuaXRzLmRlZmF1bHRzKTsKKyAgICAg
ICAgcHJvcGVydGllcy5zdHJva2VNaXRlcmxpbWl0ID0gbmV3IFdlYkluc3BlY3Rvci5WaXN1YWxT
dHlsZU51bWJlcklucHV0Qm94KCJzdHJva2UtbWl0ZXJsaW1pdCIsIFdlYkluc3BlY3Rvci5VSVN0
cmluZygiTWl0ZXIiKSwgdGhpcy5fa2V5d29yZHMuZGVmYXVsdHMpOworCisgICAgICAgIHN0cm9r
ZURhc2hhcnJheU9wdGlvbnNSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLnN0cm9r
ZURhc2hvZmZzZXQuZWxlbWVudCk7CisgICAgICAgIHN0cm9rZURhc2hhcnJheU9wdGlvbnNSb3cu
ZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLnN0cm9rZU1pdGVybGltaXQuZWxlbWVudCk7
CisKKyAgICAgICAgbGV0IHN0cm9rZUxpbmVPcHRpb25zUm93ID0gbmV3IFdlYkluc3BlY3Rvci5E
ZXRhaWxzU2VjdGlvblJvdzsKKworICAgICAgICBwcm9wZXJ0aWVzLnN0cm9rZUxpbmVjYXAgPSBu
ZXcgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlcigic3Ryb2tlLWxpbmVjYXAi
LCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNhcCIpLCB0aGlzLl9rZXl3b3Jkcy5kZWZhdWx0cy5j
b25jYXQoWyJCdXR0IiwgIlJvdW5kIiwgIlNxdWFyZSJdKSk7CisgICAgICAgIHByb3BlcnRpZXMu
c3Ryb2tlTGluZWpvaW4gPSBuZXcgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tl
cigic3Ryb2tlLWxpbmVqb2luIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJKb2luIiksIHRoaXMu
X2tleXdvcmRzLmRlZmF1bHRzLmNvbmNhdChbIk1pdGVyIiwgIlJvdW5kIiwgIkJldmVsIl0pKTsK
KworICAgICAgICBzdHJva2VMaW5lT3B0aW9uc1Jvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3Bl
cnRpZXMuc3Ryb2tlTGluZWNhcC5lbGVtZW50KTsKKyAgICAgICAgc3Ryb2tlTGluZU9wdGlvbnNS
b3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLnN0cm9rZUxpbmVqb2luLmVsZW1lbnQp
OworCisgICAgICAgIGdyb3VwLnNwZWNpZmllZFdpZHRoUHJvcGVydGllcyA9IFtwcm9wZXJ0aWVz
LnN0cm9rZU9wYWNpdHldOworCisgICAgICAgIGxldCBzdHJva2VHcm91cCA9IG5ldyBXZWJJbnNw
ZWN0b3IuRGV0YWlsc1NlY3Rpb25Hcm91cChbc3Ryb2tlUm93LCBzdHJva2VPcGFjaXR5LCBzdHJv
a2VEYXNoYXJyYXlSb3csIHN0cm9rZURhc2hhcnJheU9wdGlvbnNSb3csIHN0cm9rZUxpbmVPcHRp
b25zUm93XSk7CisgICAgICAgIHRoaXMuX3BvcHVsYXRlU2VjdGlvbihncm91cCwgW3N0cm9rZUdy
b3VwXSk7CisgICAgfQorCiAgICAgX3BvcHVsYXRlQmFja2dyb3VuZFN0eWxlU2VjdGlvbigpCiAg
ICAgewogICAgICAgICBsZXQgZ3JvdXAgPSB0aGlzLl9ncm91cHMuYmFja2dyb3VuZFN0eWxlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlz
dWFsU3R5bGVQcm9wZXJ0eUVkaXRvci5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yLmNzcwppbmRleCBjNTJmZDFi
MGQ1ZTRiODQ2M2M1NzAyODRhZDExMDVjZDM1M2RiNWIzLi5iYjljYWEyOThlMDVhYjY2OTI4MTcy
MzExMmFmMjI0ZGJlZTg2YTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yLmNzcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVByb3BlcnR5
RWRpdG9yLmNzcwpAQCAtMzIsNiArMzIsMTAgQEAKICAgICBmbGV4LWdyb3c6IDE7CiB9CiAKKy52
aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmluYWN0aXZlIHsKKyAgICBkaXNwbGF5OiBu
b25lOworfQorCiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lciA+IC52aXN1YWwtc3R5
bGUtcHJvcGVydHktdGl0bGUgewogICAgIG1hcmdpbjogNHB4OwogICAgIHRleHQtYWxpZ246IHJp
Z2h0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvVmlzdWFsU3R5bGVSZWxhdGl2ZU51bWJlclNsaWRlci5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVJlbGF0aXZlTnVtYmVyU2xpZGVy
LmNzcwppbmRleCBjYzE3MjcwOGE2YWNiNTA4ZmY4ZDJkNTA2OTdmYTg3ODY3NDc0Y2U5Li4yYWFl
NTk3MTZmYThjN2I1MTI2ZTQ3MzM5NDBmYjAwYjk2Njc0ZjI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVJlbGF0aXZlTnVt
YmVyU2xpZGVyLmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9WaXN1YWxTdHlsZVJlbGF0aXZlTnVtYmVyU2xpZGVyLmNzcwpAQCAtNDMsNSArNDMsNiBA
QAogCiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5udW1iZXItaW5wdXQtYm94LnJl
bGF0aXZlLW51bWJlci1zbGlkZXIgPiAucmVsYXRpdmUtc2xpZGVyIHsKICAgICB3aWR0aDogNDcl
OworICAgIG1hcmdpbi10b3A6IDA7CiAgICAgbWFyZ2luLXJpZ2h0OiA3cHg7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHls
ZVVuaXRTbGlkZXIuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvVmlzdWFsU3R5bGVVbml0U2xpZGVyLmNzcwppbmRleCA5YzcxMDVlMDE3MTMyYWIxODJmZmNm
Mzc0YjJjMTM0MTA5NzUzYzEzLi4xMzU1NTIzMGQwYTkyOTNlZmI5MjQ1NWVlNWI4OWVhY2VmNzMx
N2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9WaXN1YWxTdHlsZVVuaXRTbGlkZXIuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVW5pdFNsaWRlci5jc3MKQEAgLTI2LDEyICsy
Niw5IEBACiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci51bml0LXNsaWRlciA+IC52
aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLnNsaWRlciB7CiAgICAgcG9z
aXRpb246IHJlbGF0aXZlOwogICAgIG1hcmdpbjogNXB4IDFweCAwOworICAgIGJhY2tncm91bmQt
aW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgaHNsYSgwLCAwJSwgMCUsIDApLCAjMDAwKSwg
dXJsKC4uL0ltYWdlcy9DaGVja2Vycy5zdmcpOwogfQogCiAudmlzdWFsLXN0eWxlLXByb3BlcnR5
LWNvbnRhaW5lci51bml0LXNsaWRlciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29u
dGFpbmVyID4gLnNsaWRlciA+IGltZyB7CiAgICAgdG9wOiAtMXB4OwogfQotCi0udmlzdWFsLXN0
eWxlLXByb3BlcnR5LWNvbnRhaW5lci51bml0LXNsaWRlci5vcGFjaXR5ID4gLnZpc3VhbC1zdHls
ZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAuc2xpZGVyIHsKLSAgICBiYWNrZ3JvdW5kLWlt
YWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIGhzbGEoMCwgMCUsIDAlLCAwKSwgIzAwMCksIHVy
bCguLi9JbWFnZXMvQ2hlY2tlcnMuc3ZnKTsKLX0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286167</attachid>
            <date>2016-08-16 01:10:10 -0700</date>
            <delta_ts>2016-08-16 17:01:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148269-20160816010824.patch</filename>
            <type>text/plain</type>
            <size>21031</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDc3YjliMjNiYjA0ZWZiMGVjNTMzZWI4MDU2NGEy
NDdkNzFmZjJiZWMuLjFmZDNlY2E4M2NkODU0MGQ4Y2QwMmYxN2I4NjQ3MDA3NTkwNTNkMGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE2LTA4LTE2ICBEZXZp
biBSb3Vzc28gIDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFZpc3VhbCBzdHlsZXMgc2lkZWJhciBzaG91bGQgZG8gc29tZXRoaW5nIHNhbmUgZm9y
IFNWRyBlbGVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ4MjY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBMb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9ET01Ob2RlLmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkRPTU5vZGUucHJvdG90eXBlLmdldCBvd25lclNWR0VsZW1lbnQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRPTU5vZGUucHJvdG90eXBlLmlzU1ZHRWxlbWVudCk6CisgICAgICAgIENs
aW1icyBhbmNlc3RvciB0cmVlIHRvIGRldGVybWluZSBpZiBub2RlIGlzIGFuIFNWRyBub2RlLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZURldGFpbHNQYW5lbC5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZURldGFpbHNQYW5lbC5wcm90b3R5
cGUuaW5pdGlhbExheW91dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVEZXRh
aWxzUGFuZWwucHJvdG90eXBlLl91cGRhdGVTZWN0aW9ucyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwucHJvdG90eXBlLl9wb3B1bGF0ZVBvc2l0aW9uU2Vj
dGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwucHJv
dG90eXBlLl9wb3B1bGF0ZURpbWVuc2lvbnNTZWN0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5WaXN1YWxTdHlsZURldGFpbHNQYW5lbC5wcm90b3R5cGUuX3BvcHVsYXRlQ29udGVudFNlY3Rp
b24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlRGV0YWlsc1BhbmVsLnByb3Rv
dHlwZS5fcG9wdWxhdGVGaWxsU2VjdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFs
U3R5bGVEZXRhaWxzUGFuZWwucHJvdG90eXBlLl9wb3B1bGF0ZVN0cm9rZVNlY3Rpb24pOgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yLmNz
czoKKyAgICAgICAgKC52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmluYWN0aXZlKToK
KyAgICAgICAgKC52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyID4gKjpmaXJzdC1jaGls
ZDptYXRjaGVzKC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyKSk6CisKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlUmVsYXRpdmVOdW1iZXJTbGlk
ZXIuY3NzOgorICAgICAgICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIubnVtYmVy
LWlucHV0LWJveC5yZWxhdGl2ZS1udW1iZXItc2xpZGVyID4gLnJlbGF0aXZlLXNsaWRlcik6CisK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVW5pdFNsaWRlci5jc3M6
CisgICAgICAgICgudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci51bml0LXNsaWRlciA+
IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLnNsaWRlcik6CisgICAg
ICAgICgudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci51bml0LXNsaWRlci5vcGFjaXR5
ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAuc2xpZGVyKTogRGVs
ZXRlZC4KKwogMjAxNi0wOC0xMiAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkIGFwcGxpY2F0aW9uL3ZuZC5hcGkranNvbiBh
cyBhIHZhbGlkIEpTT04gTUlNRS10eXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwpp
bmRleCA5OTk5NjIzNjA2ZDNiZjhlNzQyZmQzMGZiYmE5NzQ3ZTI4YjZmNThlLi44ZDNmMTZhY2Rm
NDc0OTQ0MWU2NjJmZGY0ZjJjNGJmNGExMDVmN2EzIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRl
bHRhIDU4OQp6Y21lQT0lUjF2YT54UXEhezdNWTUzPD9ha0smLV56JSNiKkZmfilAS2tIIVV6bnlD
elYzPyZTeTNgSWJ4MiVzZGcKekc4RFBWODtvPk9SN2NgYjlYWiorT24tQi1zZkRJP0YrJkU+WGgp
ejBNR1QxeWxfOzhBZkZlbHBsbFNySFByZSgrCnp2M1kqbkoyVC0jcHZ4NDEzU2IlKTd8SkhVbnll
XkBBd0s7PkR4PUJmaE4rOG5NRHJPa2Z4M2A9O2wrP1lgOXElbQp6WDJuQm1naGU0OU1WOXR1JGVn
VGorO0g+QnQzflJRLX5Rb3tNLVBQe3BiSnVmcmpgTzczWTQ0MSUmMHMwXiZjKnYKekkjbUNvcyo0
MXYraWR3KU1gLWR4QSg2Pn5IO2xIWUAtekNXJHJkcj5HaF9wVThgJXhQeno2X35QaFRMd3M2WUxA
Cno4NihIYG91LVVUeTFkQSRCQm96UlYkPkJoTTl+Xy1VPGVVNUxLOEx1Ml4mdHxwVHlYTFZoUyl+
KnRMWnQ4Qm1QQApWQH1jNlc9MHF8V2Z5QjJ2Q05wfDYwfDBDJmYxZHlWCgpkZWx0YSA3Mgp6Y21W
LU8wSnJ+YCo5RDVyMStldXF2b3x6czBrY213SXdgWn5VLUNBeVV6ZTZGdnBkQTk2U0ZWYVpZUS0j
MFYpIT0KZXhlQF9SQ1lQVCUwUzMyUUlST0dLbWxKMEpoX19LXzBZP0xBK1omTXAKCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZS5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9ET01Ob2RlLmpz
CmluZGV4IDE3ZWJlMTU2MmM5YTRlYjllMWVmM2MyNTQ4ZjVjNmRhOGM1ZGUzNTguLmEwMTFjYmY0
MzBkZDM1OWZhNGI4YmFiMzEyYTAwZTFjZmYxNjM2NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9ET01Ob2RlLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9ET01Ob2RlLmpzCkBAIC01NjgsNiAr
NTY4LDIyIEBAIFdlYkluc3BlY3Rvci5ET01Ob2RlID0gY2xhc3MgRE9NTm9kZSBleHRlbmRzIFdl
Ykluc3BlY3Rvci5PYmplY3QKICAgICAgICAgcmV0dXJuIGRlc2NlbmRhbnQgIT09IG51bGwgJiYg
ZGVzY2VuZGFudC5pc0FuY2VzdG9yKHRoaXMpOwogICAgIH0KIAorICAgIGdldCBvd25lclNWR0Vs
ZW1lbnQoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX25vZGVOYW1lID09PSAic3ZnIikKKyAg
ICAgICAgICAgIHJldHVybiB0aGlzOworCisgICAgICAgIGlmICghdGhpcy5wYXJlbnROb2RlKQor
ICAgICAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50Tm9k
ZS5vd25lclNWR0VsZW1lbnQ7CisgICAgfQorCisgICAgaXNTVkdFbGVtZW50KCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiAhIXRoaXMub3duZXJTVkdFbGVtZW50OworICAgIH0KKwogICAgIF9zZXRB
dHRyaWJ1dGVzUGF5bG9hZChhdHRycykKICAgICB7CiAgICAgICAgIHRoaXMuX2F0dHJpYnV0ZXMg
PSBbXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Zpc3VhbFN0eWxlRGV0YWlsc1BhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwuanMKaW5kZXggMGUzN2Uw
OWI3OWE1ODBiZGI0MmY5MmYzYjkyOTQzYTdmYzMwNTA1Yi4uYmZkMjgwYjNlMTNlZTlhZjU5MWVh
ODg2ZDA4ZjNhNDU2ZTU1Y2YwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVEZXRhaWxzUGFu
ZWwuanMKQEAgLTEwMSwxMyArMTAxLDE1IEBAIFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZURldGFp
bHNQYW5lbCA9IGNsYXNzIFZpc3VhbFN0eWxlRGV0YWlsc1BhbmVsIGV4dGVuZHMgV2ViCiAgICAg
ICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9zZWN0aW9ucy50ZXh0LmVsZW1lbnQp
OwogCiAgICAgICAgIC8vIEJhY2tncm91bmQgU2VjdGlvbgorICAgICAgICB0aGlzLl9nZW5lcmF0
ZVNlY3Rpb24oImZpbGwiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkZpbGwiKSk7CisgICAgICAg
IHRoaXMuX2dlbmVyYXRlU2VjdGlvbigic3Ryb2tlIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJT
dHJva2UiKSk7CiAgICAgICAgIHRoaXMuX2dlbmVyYXRlU2VjdGlvbigiYmFja2dyb3VuZC1zdHls
ZSIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU3R5bGUiKSk7CiAgICAgICAgIHRoaXMuX2dlbmVy
YXRlU2VjdGlvbigiYm9yZGVyIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJCb3JkZXIiKSk7CiAg
ICAgICAgIHRoaXMuX2dlbmVyYXRlU2VjdGlvbigib3V0bGluZSIsIFdlYkluc3BlY3Rvci5VSVN0
cmluZygiT3V0bGluZSIpKTsKICAgICAgICAgdGhpcy5fZ2VuZXJhdGVTZWN0aW9uKCJib3gtc2hh
ZG93IiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJCb3ggU2hhZG93IikpOwogICAgICAgICB0aGlz
Ll9nZW5lcmF0ZVNlY3Rpb24oImxpc3Qtc3R5bGUiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkxp
c3QgU3R5bGVzIikpOwogCi0gICAgICAgIHRoaXMuX3NlY3Rpb25zLmJhY2tncm91bmQgPSBuZXcg
V2ViSW5zcGVjdG9yLkRldGFpbHNTZWN0aW9uKCJiYWNrZ3JvdW5kIiwgV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJCYWNrZ3JvdW5kIiksIFt0aGlzLl9ncm91cHMuYmFja2dyb3VuZFN0eWxlLnNlY3Rp
b24sIHRoaXMuX2dyb3Vwcy5ib3JkZXIuc2VjdGlvbiwgdGhpcy5fZ3JvdXBzLm91dGxpbmUuc2Vj
dGlvbiwgdGhpcy5fZ3JvdXBzLmJveFNoYWRvdy5zZWN0aW9uLCB0aGlzLl9ncm91cHMubGlzdFN0
eWxlLnNlY3Rpb25dKTsKKyAgICAgICAgdGhpcy5fc2VjdGlvbnMuYmFja2dyb3VuZCA9IG5ldyBX
ZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb24oImJhY2tncm91bmQiLCBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIkJhY2tncm91bmQiKSwgW3RoaXMuX2dyb3Vwcy5maWxsLnNlY3Rpb24sIHRoaXMuX2dy
b3Vwcy5zdHJva2Uuc2VjdGlvbiwgdGhpcy5fZ3JvdXBzLmJhY2tncm91bmRTdHlsZS5zZWN0aW9u
LCB0aGlzLl9ncm91cHMuYm9yZGVyLnNlY3Rpb24sIHRoaXMuX2dyb3Vwcy5vdXRsaW5lLnNlY3Rp
b24sIHRoaXMuX2dyb3Vwcy5ib3hTaGFkb3cuc2VjdGlvbiwgdGhpcy5fZ3JvdXBzLmxpc3RTdHls
ZS5zZWN0aW9uXSk7CiAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9zZWN0
aW9ucy5iYWNrZ3JvdW5kLmVsZW1lbnQpOwogCiAgICAgICAgIC8vIEVmZmVjdHMgU2VjdGlvbgpA
QCAtMTg3LDYgKzE4OSw1NyBAQCBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwg
PSBjbGFzcyBWaXN1YWxTdHlsZURldGFpbHNQYW5lbCBleHRlbmRzIFdlYgogICAgICAgICAgICAg
ICAgICAgICBzZWN0aW9uLmNvbGxhcHNlZCA9IGZhbHNlOwogICAgICAgICAgICAgfQogICAgICAg
ICB9CisKKyAgICAgICAgbGV0IG5vZGUgPSB0aGlzLl9ub2RlU3R5bGVzLm5vZGU7CisgICAgICAg
IGxldCBpc1NWR0VsZW1lbnQgPSBub2RlLmlzU1ZHRWxlbWVudCgpOworCisgICAgICAgIHRoaXMu
X2dyb3Vwcy5mbG9hdC5zZWN0aW9uLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUi
LCBpc1NWR0VsZW1lbnQpOworICAgICAgICB0aGlzLl9ncm91cHMuY29udGVudC5zZWN0aW9uLmVs
ZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCBpc1NWR0VsZW1lbnQpOworICAgICAg
ICB0aGlzLl9ncm91cHMuZmlsbC5zZWN0aW9uLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5h
Y3RpdmUiLCAhaXNTVkdFbGVtZW50KTsKKyAgICAgICAgdGhpcy5fZ3JvdXBzLnN0cm9rZS5zZWN0
aW9uLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCAhaXNTVkdFbGVtZW50KTsK
KyAgICAgICAgdGhpcy5fZ3JvdXBzLmJvcmRlci5zZWN0aW9uLmVsZW1lbnQuY2xhc3NMaXN0LnRv
Z2dsZSgiaW5hY3RpdmUiLCBpc1NWR0VsZW1lbnQpOworICAgICAgICB0aGlzLl9ncm91cHMuYm94
U2hhZG93LnNlY3Rpb24uZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsIGlzU1ZH
RWxlbWVudCk7CisgICAgICAgIHRoaXMuX2dyb3Vwcy5saXN0U3R5bGUuc2VjdGlvbi5lbGVtZW50
LmNsYXNzTGlzdC50b2dnbGUoImluYWN0aXZlIiwgaXNTVkdFbGVtZW50KTsKKworICAgICAgICBs
ZXQgaXNTVkdDaXJjbGUgPSBub2RlLm5vZGVOYW1lKCkgPT09ICJjaXJjbGUiOworICAgICAgICBs
ZXQgaXNTVkdFbGxpcHNlID0gbm9kZS5ub2RlTmFtZSgpID09PSAiZWxsaXBzZSI7CisgICAgICAg
IGxldCBpc1NWR1JhZGlhbEdyYWRpZW50ID0gbm9kZS5ub2RlTmFtZSgpID09PSAicmFkaWFsR3Jh
ZGllbnQiOworICAgICAgICBsZXQgaXNTVkdSZWN0ID0gbm9kZS5ub2RlTmFtZSgpID09PSAicmVj
dCI7CisgICAgICAgIGxldCBpc1NWR0xpbmUgPSBub2RlLm5vZGVOYW1lKCkgPT09ICJsaW5lIjsK
KyAgICAgICAgbGV0IGlzU1ZHTGluZWFyR3JhZGllbnQgPSBub2RlLm5vZGVOYW1lKCkgPT09ICJs
aW5lYXJHcmFkaWVudCI7CisKKyAgICAgICAgLy8gT25seSBzaG93IHRoZSBkaW1lbnNpb25zIHNl
Y3Rpb24gaWYgdGhlIGN1cnJlbnQgZWxlbWVudCBpcyBub3QgPHN2Zz4gb3IgaXMgPGVsbGlwc2U+
LCA8cmVjdD4sIDxjaXJjbGU+LCBvciA8cmFkaWFsR3JhZGllbnQ+LgorICAgICAgICB0aGlzLl9n
cm91cHMuZGltZW5zaW9ucy5zZWN0aW9uLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3Rp
dmUiLCBpc1NWR0VsZW1lbnQgJiYgIWlzU1ZHRWxsaXBzZSAmJiAhaXNTVkdSZWN0ICYmICFpc1NW
R0NpcmNsZSAmJiAhaXNTVkdSYWRpYWxHcmFkaWVudCk7CisKKyAgICAgICAgLy8gT25seSBzaG93
IHRoZSBub24tU1ZHIGRpbWVuc2lvbnMgZ3JvdXAgaWYgdGhlIGN1cnJlbnQgZWxlbWVudCBpcyBu
b3QgPHN2Zz4gb3IgaXMgPHJlY3Q+LgorICAgICAgICB0aGlzLl9ncm91cHMuZGltZW5zaW9ucy5k
ZWZhdWx0R3JvdXAuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsIGlzU1ZHRWxl
bWVudCAmJiAhaXNTVkdSZWN0KTsKKworICAgICAgICAvLyBPbmx5IHNob3cgdGhlIFNWRyBkaW1l
bnNpb25zIGdyb3VwIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgaXMgPHN2Zz4sIDxyZWN0PiwgPGNp
cmNsZT4sIG9yIDxyYWRpYWxHcmFkaWVudD4uCisgICAgICAgIHRoaXMuX2dyb3Vwcy5kaW1lbnNp
b25zLnN2Z0dyb3VwLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCAhaXNTVkdF
bGxpcHNlICYmICFpc1NWR1JlY3QgJiYgIWlzU1ZHQ2lyY2xlICYmICFpc1NWR1JhZGlhbEdyYWRp
ZW50KTsKKworICAgICAgICAvLyBPbmx5IHNob3cgZWRpdG9yIGZvciAiciIgaWYgdGhlIGN1cnJl
bnQgZWxlbWVudCBpcyA8Y2lyY2xlPiBvciA8cmFkaWFsR3JhZGllbnQ+LgorICAgICAgICB0aGlz
Ll9ncm91cHMuZGltZW5zaW9ucy5wcm9wZXJ0aWVzLnIuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xl
KCJpbmFjdGl2ZSIsICFpc1NWR0NpcmNsZSAmJiAhaXNTVkdSYWRpYWxHcmFkaWVudCk7CisKKyAg
ICAgICAgLy8gT25seSBzaG93IGVkaXRvcnMgZm9yICJyeCIgYW5kICJyeSIgaWYgdGhlIGN1cnJl
bnQgZWxlbWVudCBpcyA8ZWxsaXBzZT4gb3IgPHJlY3Q+LgorICAgICAgICB0aGlzLl9ncm91cHMu
ZGltZW5zaW9ucy5wcm9wZXJ0aWVzLnJ4LmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3Rp
dmUiLCAhaXNTVkdFbGxpcHNlICYmICFpc1NWR1JlY3QpOworICAgICAgICB0aGlzLl9ncm91cHMu
ZGltZW5zaW9ucy5wcm9wZXJ0aWVzLnJ5LmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3Rp
dmUiLCAhaXNTVkdFbGxpcHNlICYmICFpc1NWR1JlY3QpOworCisgICAgICAgIC8vIE9ubHkgc2hv
dyB0aGUgU1ZHIHBvc2l0aW9uIGdyb3VwIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgaXMgPHJlY3Q+
LCA8Y2lyY2xlPiwgPGVsbGlwc2U+LCA8bGluZT4sIDxyYWRpYWxHcmFkaWVudD4sIG9yIDxsaW5l
YXJHcmFkaWVudD4uCisgICAgICAgIHRoaXMuX2dyb3Vwcy5wb3NpdGlvbi5zdmdHcm91cC5lbGVt
ZW50LmNsYXNzTGlzdC50b2dnbGUoImluYWN0aXZlIiwgIWlzU1ZHUmVjdCAmJiAhaXNTVkdDaXJj
bGUgJiYgIWlzU1ZHRWxsaXBzZSAmJiAhaXNTVkdMaW5lICYmICFpc1NWR1JhZGlhbEdyYWRpZW50
ICYmICFpc1NWR0xpbmVhckdyYWRpZW50KTsKKworICAgICAgICAvLyBPbmx5IHNob3cgZWRpdG9y
cyBmb3IgIngiIGFuZCAieSIgaWYgdGhlIGN1cnJlbnQgZWxlbWVudCBpcyA8cmVjdD4uCisgICAg
ICAgIHRoaXMuX2dyb3Vwcy5wb3NpdGlvbi5wcm9wZXJ0aWVzLnguZWxlbWVudC5jbGFzc0xpc3Qu
dG9nZ2xlKCJpbmFjdGl2ZSIsICFpc1NWR1JlY3QpOworICAgICAgICB0aGlzLl9ncm91cHMucG9z
aXRpb24ucHJvcGVydGllcy55LmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCAh
aXNTVkdSZWN0KTsKKworICAgICAgICAvLyBPbmx5IHNob3cgZWRpdG9ycyBmb3IgIngxIiwgInkx
IiwgIngyIiwgYW5kICJ5MiIgaWYgdGhlIGN1cnJlbnQgZWxlbWVudCBpcyA8bGluZT4gb3IgPGxp
bmVhckdyYWRpZW50Pi4KKyAgICAgICAgdGhpcy5fZ3JvdXBzLnBvc2l0aW9uLnByb3BlcnRpZXMu
eDEuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICFpc1NWR0xpbmUgJiYgIWlz
U1ZHTGluZWFyR3JhZGllbnQpOworICAgICAgICB0aGlzLl9ncm91cHMucG9zaXRpb24ucHJvcGVy
dGllcy55MS5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImluYWN0aXZlIiwgIWlzU1ZHTGluZSAm
JiAhaXNTVkdMaW5lYXJHcmFkaWVudCk7CisgICAgICAgIHRoaXMuX2dyb3Vwcy5wb3NpdGlvbi5w
cm9wZXJ0aWVzLngyLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCAhaXNTVkdM
aW5lICYmICFpc1NWR0xpbmVhckdyYWRpZW50KTsKKyAgICAgICAgdGhpcy5fZ3JvdXBzLnBvc2l0
aW9uLnByb3BlcnRpZXMueTIuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICFp
c1NWR0xpbmUgJiYgIWlzU1ZHTGluZWFyR3JhZGllbnQpOworCisgICAgICAgIC8vIE9ubHkgc2hv
dyBlZGl0b3JzIGZvciAiY3giIGFuZCAiY3kiIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgaXMgPGNp
cmNsZT4sIDxlbGxpcHNlPiwgb3IgPHJhZGlhbEdyYWRpZW50Pi4KKyAgICAgICAgdGhpcy5fZ3Jv
dXBzLnBvc2l0aW9uLnByb3BlcnRpZXMuY3guZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFj
dGl2ZSIsICFpc1NWR0NpcmNsZSAmJiAhaXNTVkdFbGxpcHNlICYmICFpc1NWR1JhZGlhbEdyYWRp
ZW50KTsKKyAgICAgICAgdGhpcy5fZ3JvdXBzLnBvc2l0aW9uLnByb3BlcnRpZXMuY3kuZWxlbWVu
dC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICFpc1NWR0NpcmNsZSAmJiAhaXNTVkdFbGxp
cHNlICYmICFpc1NWR1JhZGlhbEdyYWRpZW50KTsKICAgICB9CiAKICAgICBfdXBkYXRlUHJvcGVy
dGllcyhncm91cCwgZm9yY2VTdHlsZVVwZGF0ZSkKQEAgLTQ1NCwxMCArNTA3LDQ1IEBAIFdlYklu
c3BlY3Rvci5WaXN1YWxTdHlsZURldGFpbHNQYW5lbCA9IGNsYXNzIFZpc3VhbFN0eWxlRGV0YWls
c1BhbmVsIGV4dGVuZHMgV2ViCiAgICAgICAgIHBvc2l0aW9uVHlwZS5lbGVtZW50LmFwcGVuZENo
aWxkKHByb3BlcnRpZXMuekluZGV4LmVsZW1lbnQpOwogICAgICAgICBwb3NpdGlvblR5cGUuZWxl
bWVudC5jbGFzc0xpc3QuYWRkKCJ2aXN1YWwtc3R5bGUtc2VwYXJhdGVkLXJvdyIpOwogCi0gICAg
ICAgIHJvd3MudW5zaGlmdChwb3NpdGlvblR5cGUpCisgICAgICAgIHJvd3MudW5zaGlmdChwb3Np
dGlvblR5cGUpOworCisgICAgICAgIGdyb3VwLmRlZmF1bHRHcm91cCA9IG5ldyBXZWJJbnNwZWN0
b3IuRGV0YWlsc1NlY3Rpb25Hcm91cChyb3dzKTsKKworICAgICAgICBsZXQgeHlSb3cgPSBuZXcg
V2ViSW5zcGVjdG9yLkRldGFpbHNTZWN0aW9uUm93OworCisgICAgICAgIHByb3BlcnRpZXMueCA9
IG5ldyBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveCgieCIsIFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiWCIpLCB0aGlzLl9rZXl3b3Jkcy5ib3hNb2RlbCwgdGhpcy5fdW5pdHMu
ZGVmYXVsdHMsIHRydWUpOworICAgICAgICBwcm9wZXJ0aWVzLnkgPSBuZXcgV2ViSW5zcGVjdG9y
LlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goInkiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlki
KSwgdGhpcy5fa2V5d29yZHMuYm94TW9kZWwsIHRoaXMuX3VuaXRzLmRlZmF1bHRzLCB0cnVlKTsK
KworICAgICAgICB4eVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMueC5lbGVtZW50
KTsKKyAgICAgICAgeHlSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLnkuZWxlbWVu
dCk7CisKKyAgICAgICAgbGV0IHgxeTFSb3cgPSBuZXcgV2ViSW5zcGVjdG9yLkRldGFpbHNTZWN0
aW9uUm93OworCisgICAgICAgIHByb3BlcnRpZXMueDEgPSBuZXcgV2ViSW5zcGVjdG9yLlZpc3Vh
bFN0eWxlTnVtYmVySW5wdXRCb3goIngxIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJYMSIpLCB0
aGlzLl9rZXl3b3Jkcy5ib3hNb2RlbCwgdGhpcy5fdW5pdHMuZGVmYXVsdHMsIHRydWUpOworICAg
ICAgICBwcm9wZXJ0aWVzLnkxID0gbmV3IFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZU51bWJlcklu
cHV0Qm94KCJ5MSIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiWTEiKSwgdGhpcy5fa2V5d29yZHMu
Ym94TW9kZWwsIHRoaXMuX3VuaXRzLmRlZmF1bHRzLCB0cnVlKTsKIAotICAgICAgICBsZXQgcG9z
aXRpb25Hcm91cCA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Hcm91cChyb3dzKTsK
LSAgICAgICAgdGhpcy5fcG9wdWxhdGVTZWN0aW9uKGdyb3VwLCBbcG9zaXRpb25Hcm91cF0pOwor
ICAgICAgICB4MXkxUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy54MS5lbGVtZW50
KTsKKyAgICAgICAgeDF5MVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMueTEuZWxl
bWVudCk7CisKKyAgICAgICAgbGV0IHgyeTJSb3cgPSBuZXcgV2ViSW5zcGVjdG9yLkRldGFpbHNT
ZWN0aW9uUm93OworCisgICAgICAgIHByb3BlcnRpZXMueDIgPSBuZXcgV2ViSW5zcGVjdG9yLlZp
c3VhbFN0eWxlTnVtYmVySW5wdXRCb3goIngyIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJYMiIp
LCB0aGlzLl9rZXl3b3Jkcy5ib3hNb2RlbCwgdGhpcy5fdW5pdHMuZGVmYXVsdHMsIHRydWUpOwor
ICAgICAgICBwcm9wZXJ0aWVzLnkyID0gbmV3IFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZU51bWJl
cklucHV0Qm94KCJ5MiIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiWTIiKSwgdGhpcy5fa2V5d29y
ZHMuYm94TW9kZWwsIHRoaXMuX3VuaXRzLmRlZmF1bHRzLCB0cnVlKTsKKworICAgICAgICB4Mnky
Um93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy54Mi5lbGVtZW50KTsKKyAgICAgICAg
eDJ5MlJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMueTIuZWxlbWVudCk7CisKKyAg
ICAgICAgbGV0IGN4Y3lSb3cgPSBuZXcgV2ViSW5zcGVjdG9yLkRldGFpbHNTZWN0aW9uUm93Owor
CisgICAgICAgIHByb3BlcnRpZXMuY3ggPSBuZXcgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlTnVt
YmVySW5wdXRCb3goImN4IiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDZW50ZXIgWCIpLCB0aGlz
Ll9rZXl3b3Jkcy5ib3hNb2RlbCwgdGhpcy5fdW5pdHMuZGVmYXVsdHMsIHRydWUpOworICAgICAg
ICBwcm9wZXJ0aWVzLmN5ID0gbmV3IFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZU51bWJlcklucHV0
Qm94KCJjeSIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2VudGVyIFkiKSwgdGhpcy5fa2V5d29y
ZHMuYm94TW9kZWwsIHRoaXMuX3VuaXRzLmRlZmF1bHRzLCB0cnVlKTsKKworICAgICAgICBjeGN5
Um93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5jeC5lbGVtZW50KTsKKyAgICAgICAg
Y3hjeVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuY3kuZWxlbWVudCk7CisKKyAg
ICAgICAgZ3JvdXAuc3ZnR3JvdXAgPSBuZXcgV2ViSW5zcGVjdG9yLkRldGFpbHNTZWN0aW9uR3Jv
dXAoW3h5Um93LCB4MXkxUm93LCB4MnkyUm93LCBjeGN5Um93XSk7CisKKyAgICAgICAgdGhpcy5f
cG9wdWxhdGVTZWN0aW9uKGdyb3VwLCBbZ3JvdXAuZGVmYXVsdEdyb3VwLCBncm91cC5zdmdHcm91
cF0pOwogCiAgICAgICAgIGxldCBhbGxvd2VkUG9zaXRpb25WYWx1ZXMgPSBbInJlbGF0aXZlIiwg
ImFic29sdXRlIiwgImZpeGVkIiwgIi13ZWJraXQtc3RpY2t5Il07CiAgICAgICAgIHByb3BlcnRp
ZXMuekluZGV4LmFkZERlcGVuZGVuY3koInBvc2l0aW9uIiwgYWxsb3dlZFBvc2l0aW9uVmFsdWVz
KTsKQEAgLTU1MSw4ICs2MzksMjkgQEAgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlRGV0YWlsc1Bh
bmVsID0gY2xhc3MgVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwgZXh0ZW5kcyBXZWIKICAgICAgICAg
dGhpcy5fYWRkTWV0cmljc01vdXNlTGlzdGVuZXJzKGdyb3VwLnByb3BlcnRpZXMubWF4V2lkdGgs
IGhpZ2hsaWdodE1vZGUpOwogICAgICAgICB0aGlzLl9hZGRNZXRyaWNzTW91c2VMaXN0ZW5lcnMo
Z3JvdXAucHJvcGVydGllcy5tYXhIZWlnaHQsIGhpZ2hsaWdodE1vZGUpOwogCi0gICAgICAgIGxl
dCBkaW1lbnNpb25zR3JvdXAgPSBuZXcgV2ViSW5zcGVjdG9yLkRldGFpbHNTZWN0aW9uR3JvdXAo
W2RpbWVuc2lvbnNUYWJDb250cm9sbGVyLCBkaW1lbnNpb25zUmVndWxhckdyb3VwLCBkaW1lbnNp
b25zTWluR3JvdXAsIGRpbWVuc2lvbnNNYXhHcm91cF0pOwotICAgICAgICB0aGlzLl9wb3B1bGF0
ZVNlY3Rpb24oZ3JvdXAsIFtkaW1lbnNpb25zR3JvdXBdKTsKKyAgICAgICAgZ3JvdXAuZGVmYXVs
dEdyb3VwID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxzU2VjdGlvbkdyb3VwKFtkaW1lbnNpb25z
VGFiQ29udHJvbGxlciwgZGltZW5zaW9uc1JlZ3VsYXJHcm91cCwgZGltZW5zaW9uc01pbkdyb3Vw
LCBkaW1lbnNpb25zTWF4R3JvdXBdKTsKKworICAgICAgICBsZXQgclJvdyA9IG5ldyBXZWJJbnNw
ZWN0b3IuRGV0YWlsc1NlY3Rpb25Sb3c7CisKKyAgICAgICAgcHJvcGVydGllcy5yID0gbmV3IFdl
Ykluc3BlY3Rvci5WaXN1YWxTdHlsZVJlbGF0aXZlTnVtYmVyU2xpZGVyKCJyIiwgV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJSYWRpdXMiKSwgdGhpcy5fa2V5d29yZHMuYm94TW9kZWwsIHRoaXMuX3Vu
aXRzLmRlZmF1bHRzKTsKKworICAgICAgICByUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVy
dGllcy5yLmVsZW1lbnQpOworCisgICAgICAgIGxldCByeFJvdyA9IG5ldyBXZWJJbnNwZWN0b3Iu
RGV0YWlsc1NlY3Rpb25Sb3c7CisKKyAgICAgICAgcHJvcGVydGllcy5yeCA9IG5ldyBXZWJJbnNw
ZWN0b3IuVmlzdWFsU3R5bGVSZWxhdGl2ZU51bWJlclNsaWRlcigicngiLCBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIlJhZGl1cyBYIiksIHRoaXMuX2tleXdvcmRzLmJveE1vZGVsLCB0aGlzLl91bml0
cy5kZWZhdWx0cyk7CisKKyAgICAgICAgcnhSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0
aWVzLnJ4LmVsZW1lbnQpOworCisgICAgICAgIGxldCByeVJvdyA9IG5ldyBXZWJJbnNwZWN0b3Iu
RGV0YWlsc1NlY3Rpb25Sb3c7CisKKyAgICAgICAgcHJvcGVydGllcy5yeSA9IG5ldyBXZWJJbnNw
ZWN0b3IuVmlzdWFsU3R5bGVSZWxhdGl2ZU51bWJlclNsaWRlcigicnkiLCBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIlJhZGl1cyBZIiksIHRoaXMuX2tleXdvcmRzLmJveE1vZGVsLCB0aGlzLl91bml0
cy5kZWZhdWx0cyk7CisKKyAgICAgICAgcnlSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0
aWVzLnJ5LmVsZW1lbnQpOworCisgICAgICAgIGdyb3VwLnN2Z0dyb3VwID0gbmV3IFdlYkluc3Bl
Y3Rvci5EZXRhaWxzU2VjdGlvbkdyb3VwKFtyUm93LCByeFJvdywgcnlSb3ddKTsKKworICAgICAg
ICB0aGlzLl9wb3B1bGF0ZVNlY3Rpb24oZ3JvdXAsIFtncm91cC5kZWZhdWx0R3JvdXAsIGdyb3Vw
LnN2Z0dyb3VwXSk7CiAgICAgfQogCiAgICAgX3BvcHVsYXRlTWFyZ2luU2VjdGlvbigpCkBAIC04
MjcsNiArOTM2LDc4IEBAIFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZURldGFpbHNQYW5lbCA9IGNs
YXNzIFZpc3VhbFN0eWxlRGV0YWlsc1BhbmVsIGV4dGVuZHMgV2ViCiAgICAgICAgIHRoaXMuX3Bv
cHVsYXRlU2VjdGlvbihncm91cCwgW3RleHRTaGFkb3dHcm91cF0pOwogICAgIH0KIAorICAgIF9w
b3B1bGF0ZUZpbGxTZWN0aW9uKCkKKyAgICB7CisgICAgICAgIGxldCBncm91cCA9IHRoaXMuX2dy
b3Vwcy5maWxsOworICAgICAgICBsZXQgcHJvcGVydGllcyA9IGdyb3VwLnByb3BlcnRpZXM7CisK
KyAgICAgICAgbGV0IGZpbGxSb3cgPSBuZXcgV2ViSW5zcGVjdG9yLkRldGFpbHNTZWN0aW9uUm93
OworCisgICAgICAgIHByb3BlcnRpZXMuZmlsbCA9IG5ldyBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5
bGVDb2xvclBpY2tlcigiZmlsbCIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ29sb3IiKSk7Cisg
ICAgICAgIHByb3BlcnRpZXMuZmlsbFJ1bGUgPSBuZXcgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxl
S2V5d29yZFBpY2tlcigiZmlsbC1ydWxlIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSdWxlIiks
IHRoaXMuX2tleXdvcmRzLmRlZmF1bHRzLmNvbmNhdChbIk5vbnplcm8iLCAiRXZlbm9kZCJdKSk7
CisKKyAgICAgICAgZmlsbFJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuZmlsbC5l
bGVtZW50KTsKKyAgICAgICAgZmlsbFJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMu
ZmlsbFJ1bGUuZWxlbWVudCk7CisKKyAgICAgICAgbGV0IGZpbGxPcGFjaXR5Um93ID0gbmV3IFdl
Ykluc3BlY3Rvci5EZXRhaWxzU2VjdGlvblJvdzsKKworICAgICAgICBwcm9wZXJ0aWVzLmZpbGxP
cGFjaXR5ID0gbmV3IFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVVuaXRTbGlkZXIoImZpbGwtb3Bh
Y2l0eSIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiT3BhY2l0eSIpKTsKKworICAgICAgICBmaWxs
T3BhY2l0eVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuZmlsbE9wYWNpdHkuZWxl
bWVudCk7CisKKyAgICAgICAgZ3JvdXAuc3BlY2lmaWVkV2lkdGhQcm9wZXJ0aWVzID0gW3Byb3Bl
cnRpZXMuZmlsbE9wYWNpdHldOworCisgICAgICAgIGxldCBmaWxsR3JvdXAgPSBuZXcgV2ViSW5z
cGVjdG9yLkRldGFpbHNTZWN0aW9uR3JvdXAoW2ZpbGxSb3csIGZpbGxPcGFjaXR5Um93XSk7Cisg
ICAgICAgIHRoaXMuX3BvcHVsYXRlU2VjdGlvbihncm91cCwgW2ZpbGxHcm91cF0pOworICAgIH0K
KworICAgIF9wb3B1bGF0ZVN0cm9rZVNlY3Rpb24oKQorICAgIHsKKyAgICAgICAgbGV0IGdyb3Vw
ID0gdGhpcy5fZ3JvdXBzLnN0cm9rZTsKKyAgICAgICAgbGV0IHByb3BlcnRpZXMgPSBncm91cC5w
cm9wZXJ0aWVzOworCisgICAgICAgIGxldCBzdHJva2VSb3cgPSBuZXcgV2ViSW5zcGVjdG9yLkRl
dGFpbHNTZWN0aW9uUm93OworCisgICAgICAgIHByb3BlcnRpZXMuc3Ryb2tlID0gbmV3IFdlYklu
c3BlY3Rvci5WaXN1YWxTdHlsZUNvbG9yUGlja2VyKCJzdHJva2UiLCBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIkNvbG9yIikpOworICAgICAgICBwcm9wZXJ0aWVzLnN0cm9rZVdpZHRoID0gbmV3IFdl
Ykluc3BlY3Rvci5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJzdHJva2Utd2lkdGgiLCBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIldpZHRoIiksIHRoaXMuX2tleXdvcmRzLmRlZmF1bHRzLCB0aGlz
Ll91bml0cy5kZWZhdWx0cyk7CisKKyAgICAgICAgc3Ryb2tlUm93LmVsZW1lbnQuYXBwZW5kQ2hp
bGQocHJvcGVydGllcy5zdHJva2UuZWxlbWVudCk7CisgICAgICAgIHN0cm9rZVJvdy5lbGVtZW50
LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuc3Ryb2tlV2lkdGguZWxlbWVudCk7CisKKyAgICAgICAg
bGV0IHN0cm9rZU9wYWNpdHkgPSBuZXcgV2ViSW5zcGVjdG9yLkRldGFpbHNTZWN0aW9uUm93Owor
CisgICAgICAgIHByb3BlcnRpZXMuc3Ryb2tlT3BhY2l0eSA9IG5ldyBXZWJJbnNwZWN0b3IuVmlz
dWFsU3R5bGVVbml0U2xpZGVyKCJzdHJva2Utb3BhY2l0eSIsIFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiT3BhY2l0eSIpKTsKKworICAgICAgICBzdHJva2VPcGFjaXR5LmVsZW1lbnQuYXBwZW5kQ2hp
bGQocHJvcGVydGllcy5zdHJva2VPcGFjaXR5LmVsZW1lbnQpOworCisgICAgICAgIGxldCBzdHJv
a2VEYXNoYXJyYXlSb3cgPSBuZXcgV2ViSW5zcGVjdG9yLkRldGFpbHNTZWN0aW9uUm93OworCisg
ICAgICAgIHByb3BlcnRpZXMuc3Ryb2tlRGFzaGFycmF5ID0gbmV3IFdlYkluc3BlY3Rvci5WaXN1
YWxTdHlsZUJhc2ljSW5wdXQoInN0cm9rZS1kYXNoYXJyYXkiLCBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIkRhc2ggQXJyYXkiKSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFbnRlciBhbiBhcnJheSB2
YWx1ZSIpKTsKKworICAgICAgICBzdHJva2VEYXNoYXJyYXlSb3cuZWxlbWVudC5hcHBlbmRDaGls
ZChwcm9wZXJ0aWVzLnN0cm9rZURhc2hhcnJheS5lbGVtZW50KTsKKworICAgICAgICBsZXQgc3Ry
b2tlRGFzaGFycmF5T3B0aW9uc1JvdyA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25S
b3c7CisKKyAgICAgICAgcHJvcGVydGllcy5zdHJva2VEYXNob2Zmc2V0ID0gbmV3IFdlYkluc3Bl
Y3Rvci5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJzdHJva2UtZGFzaG9mZnNldCIsIFdlYklu
c3BlY3Rvci5VSVN0cmluZygiT2Zmc2V0IiksIHRoaXMuX2tleXdvcmRzLmRlZmF1bHRzLCB0aGlz
Ll91bml0cy5kZWZhdWx0cyk7CisgICAgICAgIHByb3BlcnRpZXMuc3Ryb2tlTWl0ZXJsaW1pdCA9
IG5ldyBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveCgic3Ryb2tlLW1pdGVy
bGltaXQiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk1pdGVyIiksIHRoaXMuX2tleXdvcmRzLmRl
ZmF1bHRzKTsKKworICAgICAgICBzdHJva2VEYXNoYXJyYXlPcHRpb25zUm93LmVsZW1lbnQuYXBw
ZW5kQ2hpbGQocHJvcGVydGllcy5zdHJva2VEYXNob2Zmc2V0LmVsZW1lbnQpOworICAgICAgICBz
dHJva2VEYXNoYXJyYXlPcHRpb25zUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5z
dHJva2VNaXRlcmxpbWl0LmVsZW1lbnQpOworCisgICAgICAgIGxldCBzdHJva2VMaW5lT3B0aW9u
c1JvdyA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Sb3c7CisKKyAgICAgICAgcHJv
cGVydGllcy5zdHJva2VMaW5lY2FwID0gbmV3IFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUtleXdv
cmRQaWNrZXIoInN0cm9rZS1saW5lY2FwIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDYXAiKSwg
dGhpcy5fa2V5d29yZHMuZGVmYXVsdHMuY29uY2F0KFsiQnV0dCIsICJSb3VuZCIsICJTcXVhcmUi
XSkpOworICAgICAgICBwcm9wZXJ0aWVzLnN0cm9rZUxpbmVqb2luID0gbmV3IFdlYkluc3BlY3Rv
ci5WaXN1YWxTdHlsZUtleXdvcmRQaWNrZXIoInN0cm9rZS1saW5lam9pbiIsIFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiSm9pbiIpLCB0aGlzLl9rZXl3b3Jkcy5kZWZhdWx0cy5jb25jYXQoWyJNaXRl
ciIsICJSb3VuZCIsICJCZXZlbCJdKSk7CisKKyAgICAgICAgc3Ryb2tlTGluZU9wdGlvbnNSb3cu
ZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLnN0cm9rZUxpbmVjYXAuZWxlbWVudCk7Cisg
ICAgICAgIHN0cm9rZUxpbmVPcHRpb25zUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGll
cy5zdHJva2VMaW5lam9pbi5lbGVtZW50KTsKKworICAgICAgICBncm91cC5zcGVjaWZpZWRXaWR0
aFByb3BlcnRpZXMgPSBbcHJvcGVydGllcy5zdHJva2VPcGFjaXR5XTsKKworICAgICAgICBsZXQg
c3Ryb2tlR3JvdXAgPSBuZXcgV2ViSW5zcGVjdG9yLkRldGFpbHNTZWN0aW9uR3JvdXAoW3N0cm9r
ZVJvdywgc3Ryb2tlT3BhY2l0eSwgc3Ryb2tlRGFzaGFycmF5Um93LCBzdHJva2VEYXNoYXJyYXlP
cHRpb25zUm93LCBzdHJva2VMaW5lT3B0aW9uc1Jvd10pOworICAgICAgICB0aGlzLl9wb3B1bGF0
ZVNlY3Rpb24oZ3JvdXAsIFtzdHJva2VHcm91cF0pOworICAgIH0KKwogICAgIF9wb3B1bGF0ZUJh
Y2tncm91bmRTdHlsZVNlY3Rpb24oKQogICAgIHsKICAgICAgICAgbGV0IGdyb3VwID0gdGhpcy5f
Z3JvdXBzLmJhY2tncm91bmRTdHlsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3IuY3NzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVQcm9wZXJ0
eUVkaXRvci5jc3MKaW5kZXggYzUyZmQxYjBkNWU0Yjg0NjNjNTcwMjg0YWQxMTA1Y2QzNTNkYjVi
My4uYmI5Y2FhMjk4ZTA1YWI2NjkyODE3MjMxMTJhZjIyNGRiZWU4NmE1NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVQcm9w
ZXJ0eUVkaXRvci5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvci5jc3MKQEAgLTMyLDYgKzMyLDEwIEBACiAg
ICAgZmxleC1ncm93OiAxOwogfQogCisudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5p
bmFjdGl2ZSB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKwogLnZpc3VhbC1zdHlsZS1wcm9wZXJ0
eS1jb250YWluZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXRpdGxlIHsKICAgICBtYXJnaW46
IDRweDsKICAgICB0ZXh0LWFsaWduOiByaWdodDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlUmVsYXRpdmVOdW1iZXJTbGlk
ZXIuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFs
U3R5bGVSZWxhdGl2ZU51bWJlclNsaWRlci5jc3MKaW5kZXggY2MxNzI3MDhhNmFjYjUwOGZmOGQy
ZDUwNjk3ZmE4Nzg2NzQ3NGNlOS4uMmFhZTU5NzE2ZmE4YzdiNTEyNmU0NzMzOTQwZmIwMGI5NjY3
NGYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvVmlzdWFsU3R5bGVSZWxhdGl2ZU51bWJlclNsaWRlci5jc3MKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVSZWxhdGl2ZU51bWJlclNs
aWRlci5jc3MKQEAgLTQzLDUgKzQzLDYgQEAKIAogLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250
YWluZXIubnVtYmVyLWlucHV0LWJveC5yZWxhdGl2ZS1udW1iZXItc2xpZGVyID4gLnJlbGF0aXZl
LXNsaWRlciB7CiAgICAgd2lkdGg6IDQ3JTsKKyAgICBtYXJnaW4tdG9wOiAwOwogICAgIG1hcmdp
bi1yaWdodDogN3B4OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVVbml0U2xpZGVyLmNzcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVW5pdFNsaWRlci5jc3MKaW5k
ZXggOWM3MTA1ZTAxNzEzMmFiMTgyZmZjZjM3NGIyYzEzNDEwOTc1M2MxMy4uMTM1NTUyMzBkMGE5
MjkzZWZiOTI0NTVlZTViODllYWNlZjczMTdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVVbml0U2xpZGVyLmNzcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVVu
aXRTbGlkZXIuY3NzCkBAIC0yNiwxMiArMjYsOSBAQAogLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1j
b250YWluZXIudW5pdC1zbGlkZXIgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRh
aW5lciA+IC5zbGlkZXIgewogICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICBtYXJnaW46IDVw
eCAxcHggMDsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIGhz
bGEoMCwgMCUsIDAlLCAwKSwgIzAwMCksIHVybCguLi9JbWFnZXMvQ2hlY2tlcnMuc3ZnKTsKIH0K
IAogLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIudW5pdC1zbGlkZXIgPiAudmlzdWFs
LXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5zbGlkZXIgPiBpbWcgewogICAgIHRv
cDogLTFweDsKIH0KLQotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIudW5pdC1zbGlk
ZXIub3BhY2l0eSA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLnNs
aWRlciB7Ci0gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCBoc2xh
KDAsIDAlLCAwJSwgMCksICMwMDApLCB1cmwoLi4vSW1hZ2VzL0NoZWNrZXJzLnN2Zyk7Ci19Cg==
</data>
<flag name="review"
          id="309736"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286235</attachid>
            <date>2016-08-16 17:01:58 -0700</date>
            <delta_ts>2016-08-19 10:51:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>148269.diff</filename>
            <type>text/plain</type>
            <size>20669</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDc3YjliMjMuLmFlYmI4NDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE2LTA4LTE2ICBEZXZpbiBSb3Vzc28g
IDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFZp
c3VhbCBzdHlsZXMgc2lkZWJhciBzaG91bGQgZG8gc29tZXRoaW5nIHNhbmUgZm9yIFNWRyBlbGVt
ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4
MjY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAgICAgICog
TG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5E
T01Ob2RlLnByb3RvdHlwZS5nZXQgb3duZXJTVkdFbGVtZW50KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5ET01Ob2RlLnByb3RvdHlwZS5pc1NWR0VsZW1lbnQpOgorICAgICAgICBDbGltYnMgYW5j
ZXN0b3IgdHJlZSB0byBkZXRlcm1pbmUgaWYgbm9kZSBpcyBhbiBTVkcgbm9kZS4KKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwucHJvdG90eXBlLmluaXRp
YWxMYXlvdXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlRGV0YWlsc1BhbmVs
LnByb3RvdHlwZS5fdXBkYXRlU2VjdGlvbnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3Vh
bFN0eWxlRGV0YWlsc1BhbmVsLnByb3RvdHlwZS5fcG9wdWxhdGVQb3NpdGlvblNlY3Rpb24pOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlRGV0YWlsc1BhbmVsLnByb3RvdHlwZS5f
cG9wdWxhdGVEaW1lbnNpb25zU2VjdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFs
U3R5bGVEZXRhaWxzUGFuZWwucHJvdG90eXBlLl9wb3B1bGF0ZUNvbnRlbnRTZWN0aW9uKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZURldGFpbHNQYW5lbC5wcm90b3R5cGUuX3Bv
cHVsYXRlRmlsbFNlY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlRGV0
YWlsc1BhbmVsLnByb3RvdHlwZS5fcG9wdWxhdGVTdHJva2VTZWN0aW9uKToKKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvci5jc3M6CisgICAg
ICAgICgudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5pbmFjdGl2ZSk6CisgICAgICAg
ICgudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lciA+ICo6Zmlyc3QtY2hpbGQ6bWF0Y2hl
cygudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lcikpOgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVJlbGF0aXZlTnVtYmVyU2xpZGVyLmNzczoK
KyAgICAgICAgKC52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLm51bWJlci1pbnB1dC1i
b3gucmVsYXRpdmUtbnVtYmVyLXNsaWRlciA+IC5yZWxhdGl2ZS1zbGlkZXIpOgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVVuaXRTbGlkZXIuY3NzOgorICAgICAg
ICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIudW5pdC1zbGlkZXIgPiAudmlzdWFs
LXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5zbGlkZXIpOgorICAgICAgICAoLnZp
c3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIudW5pdC1zbGlkZXIub3BhY2l0eSA+IC52aXN1
YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLnNsaWRlcik6IERlbGV0ZWQuCisK
IDIwMTYtMDgtMTIgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBhcHBsaWNhdGlvbi92bmQuYXBpK2pzb24gYXMgYSB2YWxp
ZCBKU09OIE1JTUUtdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2Fs
aXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggOTk5
OTYyMzYwNmQzYmY4ZTc0MmZkMzBmYmJhOTc0N2UyOGI2ZjU4ZS4uOGQzZjE2YWNkZjQ3NDk0NDFl
NjYyZmRmNGYyYzRiZjRhMTA1ZjdhMyAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSA1ODkK
emNtZUE9JVIxdmE+eFFxIXs3TVk1Mzw/YWtLJi1eeiUjYipGZn4pQEtrSCFVem55Q3pWMz8mU3kz
YElieDIlc2RnCnpHOERQVjg7bz5PUjdjYGI5WFoqK09uLUItc2ZEST9GKyZFPlhoKXowTUdUMXls
Xzs4QWZGZWxwbGxTckhQcmUoKwp6djNZKm5KMlQtI3B2eDQxM1NiJSk3fEpIVW55ZV5AQXdLOz5E
eD1CZmhOKzhuTURyT2tmeDNgPTtsKz9ZYDlxJW0KelgybkJtZ2hlNDlNVjl0dSRlZ1RqKztIPkJ0
M35SUS1+UW97TS1QUHtwYkp1ZnJqYE83M1k0NDElJjBzMF4mYyp2CnpJI21Db3MqNDF2K2lkdylN
YC1keEEoNj5+SDtsSFlALXpDVyRyZHI+R2hfcFU4YCV4UHp6Nl9+UGhUTHdzNllMQAp6ODYoSGBv
dS1VVHkxZEEkQkJvelJWJD5CaE05fl8tVTxlVTVMSzhMdTJeJnR8cFR5WExWaFMpfip0TFp0OEJt
UEAKVkB9YzZXPTBxfFdmeUIydkNOcHw2MHwwQyZmMWR5VgoKZGVsdGEgNzIKemNtVi1PMEpyfmAq
OUQ1cjErZXVxdm98enMwa2Ntd0l3YFp+VS1DQXlVemU2RnZwZEE5NlNGVmFaWVEtIzBWKSE9CmV4
ZUBfUkNZUFQlMFMzMlFJUk9HS21sSjBKaF9fS18wWT9MQStaJk1wCgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTU5vZGUuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZS5qcwppbmRleCAx
N2ViZTE1Li5hMDExY2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvRE9NTm9kZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZS5qcwpAQCAtNTY4LDYgKzU2OCwyMiBAQCBXZWJJbnNw
ZWN0b3IuRE9NTm9kZSA9IGNsYXNzIERPTU5vZGUgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0
CiAgICAgICAgIHJldHVybiBkZXNjZW5kYW50ICE9PSBudWxsICYmIGRlc2NlbmRhbnQuaXNBbmNl
c3Rvcih0aGlzKTsKICAgICB9CiAKKyAgICBnZXQgb3duZXJTVkdFbGVtZW50KCkKKyAgICB7Cisg
ICAgICAgIGlmICh0aGlzLl9ub2RlTmFtZSA9PT0gInN2ZyIpCisgICAgICAgICAgICByZXR1cm4g
dGhpczsKKworICAgICAgICBpZiAoIXRoaXMucGFyZW50Tm9kZSkKKyAgICAgICAgICAgIHJldHVy
biBudWxsOworCisgICAgICAgIHJldHVybiB0aGlzLnBhcmVudE5vZGUub3duZXJTVkdFbGVtZW50
OworICAgIH0KKworICAgIGlzU1ZHRWxlbWVudCgpCisgICAgeworICAgICAgICByZXR1cm4gISF0
aGlzLm93bmVyU1ZHRWxlbWVudDsKKyAgICB9CisKICAgICBfc2V0QXR0cmlidXRlc1BheWxvYWQo
YXR0cnMpCiAgICAgewogICAgICAgICB0aGlzLl9hdHRyaWJ1dGVzID0gW107CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZURl
dGFpbHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1Zpc3VhbFN0eWxlRGV0YWlsc1BhbmVsLmpzCmluZGV4IDBlMzdlMDkuLjAwM2U1YzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0
eWxlRGV0YWlsc1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1Zpc3VhbFN0eWxlRGV0YWlsc1BhbmVsLmpzCkBAIC0xMDEsMTMgKzEwMSwxNSBA
QCBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwgPSBjbGFzcyBWaXN1YWxTdHls
ZURldGFpbHNQYW5lbCBleHRlbmRzIFdlYgogICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hp
bGQodGhpcy5fc2VjdGlvbnMudGV4dC5lbGVtZW50KTsKIAogICAgICAgICAvLyBCYWNrZ3JvdW5k
IFNlY3Rpb24KKyAgICAgICAgdGhpcy5fZ2VuZXJhdGVTZWN0aW9uKCJmaWxsIiwgV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJGaWxsIikpOworICAgICAgICB0aGlzLl9nZW5lcmF0ZVNlY3Rpb24oInN0
cm9rZSIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU3Ryb2tlIikpOwogICAgICAgICB0aGlzLl9n
ZW5lcmF0ZVNlY3Rpb24oImJhY2tncm91bmQtc3R5bGUiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IlN0eWxlIikpOwogICAgICAgICB0aGlzLl9nZW5lcmF0ZVNlY3Rpb24oImJvcmRlciIsIFdlYklu
c3BlY3Rvci5VSVN0cmluZygiQm9yZGVyIikpOwogICAgICAgICB0aGlzLl9nZW5lcmF0ZVNlY3Rp
b24oIm91dGxpbmUiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk91dGxpbmUiKSk7CiAgICAgICAg
IHRoaXMuX2dlbmVyYXRlU2VjdGlvbigiYm94LXNoYWRvdyIsIFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiQm94IFNoYWRvdyIpKTsKICAgICAgICAgdGhpcy5fZ2VuZXJhdGVTZWN0aW9uKCJsaXN0LXN0
eWxlIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJMaXN0IFN0eWxlcyIpKTsKIAotICAgICAgICB0
aGlzLl9zZWN0aW9ucy5iYWNrZ3JvdW5kID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxzU2VjdGlv
bigiYmFja2dyb3VuZCIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQmFja2dyb3VuZCIpLCBbdGhp
cy5fZ3JvdXBzLmJhY2tncm91bmRTdHlsZS5zZWN0aW9uLCB0aGlzLl9ncm91cHMuYm9yZGVyLnNl
Y3Rpb24sIHRoaXMuX2dyb3Vwcy5vdXRsaW5lLnNlY3Rpb24sIHRoaXMuX2dyb3Vwcy5ib3hTaGFk
b3cuc2VjdGlvbiwgdGhpcy5fZ3JvdXBzLmxpc3RTdHlsZS5zZWN0aW9uXSk7CisgICAgICAgIHRo
aXMuX3NlY3Rpb25zLmJhY2tncm91bmQgPSBuZXcgV2ViSW5zcGVjdG9yLkRldGFpbHNTZWN0aW9u
KCJiYWNrZ3JvdW5kIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJCYWNrZ3JvdW5kIiksIFt0aGlz
Ll9ncm91cHMuZmlsbC5zZWN0aW9uLCB0aGlzLl9ncm91cHMuc3Ryb2tlLnNlY3Rpb24sIHRoaXMu
X2dyb3Vwcy5iYWNrZ3JvdW5kU3R5bGUuc2VjdGlvbiwgdGhpcy5fZ3JvdXBzLmJvcmRlci5zZWN0
aW9uLCB0aGlzLl9ncm91cHMub3V0bGluZS5zZWN0aW9uLCB0aGlzLl9ncm91cHMuYm94U2hhZG93
LnNlY3Rpb24sIHRoaXMuX2dyb3Vwcy5saXN0U3R5bGUuc2VjdGlvbl0pOwogICAgICAgICB0aGlz
LmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fc2VjdGlvbnMuYmFja2dyb3VuZC5lbGVtZW50KTsK
IAogICAgICAgICAvLyBFZmZlY3RzIFNlY3Rpb24KQEAgLTE4Nyw2ICsxODksNTcgQEAgV2ViSW5z
cGVjdG9yLlZpc3VhbFN0eWxlRGV0YWlsc1BhbmVsID0gY2xhc3MgVmlzdWFsU3R5bGVEZXRhaWxz
UGFuZWwgZXh0ZW5kcyBXZWIKICAgICAgICAgICAgICAgICAgICAgc2VjdGlvbi5jb2xsYXBzZWQg
PSBmYWxzZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQorCisgICAgICAgIGxldCBub2RlID0g
dGhpcy5fbm9kZVN0eWxlcy5ub2RlOworICAgICAgICBsZXQgaXNTVkdFbGVtZW50ID0gbm9kZS5p
c1NWR0VsZW1lbnQoKTsKKworICAgICAgICB0aGlzLl9ncm91cHMuZmxvYXQuc2VjdGlvbi5lbGVt
ZW50LmNsYXNzTGlzdC50b2dnbGUoImluYWN0aXZlIiwgaXNTVkdFbGVtZW50KTsKKyAgICAgICAg
dGhpcy5fZ3JvdXBzLmNvbnRlbnQuc2VjdGlvbi5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImlu
YWN0aXZlIiwgaXNTVkdFbGVtZW50KTsKKyAgICAgICAgdGhpcy5fZ3JvdXBzLmZpbGwuc2VjdGlv
bi5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImluYWN0aXZlIiwgIWlzU1ZHRWxlbWVudCk7Cisg
ICAgICAgIHRoaXMuX2dyb3Vwcy5zdHJva2Uuc2VjdGlvbi5lbGVtZW50LmNsYXNzTGlzdC50b2dn
bGUoImluYWN0aXZlIiwgIWlzU1ZHRWxlbWVudCk7CisgICAgICAgIHRoaXMuX2dyb3Vwcy5ib3Jk
ZXIuc2VjdGlvbi5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImluYWN0aXZlIiwgaXNTVkdFbGVt
ZW50KTsKKyAgICAgICAgdGhpcy5fZ3JvdXBzLmJveFNoYWRvdy5zZWN0aW9uLmVsZW1lbnQuY2xh
c3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCBpc1NWR0VsZW1lbnQpOworICAgICAgICB0aGlzLl9n
cm91cHMubGlzdFN0eWxlLnNlY3Rpb24uZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2
ZSIsIGlzU1ZHRWxlbWVudCk7CisKKyAgICAgICAgbGV0IGlzU1ZHQ2lyY2xlID0gbm9kZS5ub2Rl
TmFtZSgpID09PSAiY2lyY2xlIjsKKyAgICAgICAgbGV0IGlzU1ZHRWxsaXBzZSA9IG5vZGUubm9k
ZU5hbWUoKSA9PT0gImVsbGlwc2UiOworICAgICAgICBsZXQgaXNTVkdSYWRpYWxHcmFkaWVudCA9
IG5vZGUubm9kZU5hbWUoKSA9PT0gInJhZGlhbEdyYWRpZW50IjsKKyAgICAgICAgbGV0IGlzU1ZH
UmVjdCA9IG5vZGUubm9kZU5hbWUoKSA9PT0gInJlY3QiOworICAgICAgICBsZXQgaXNTVkdMaW5l
ID0gbm9kZS5ub2RlTmFtZSgpID09PSAibGluZSI7CisgICAgICAgIGxldCBpc1NWR0xpbmVhckdy
YWRpZW50ID0gbm9kZS5ub2RlTmFtZSgpID09PSAibGluZWFyR3JhZGllbnQiOworCisgICAgICAg
IC8vIE9ubHkgc2hvdyB0aGUgZGltZW5zaW9ucyBzZWN0aW9uIGlmIHRoZSBjdXJyZW50IGVsZW1l
bnQgaXMgbm90IGFuIFNWRyBlbGVtZW50IG9yIGlzIDxlbGxpcHNlPiwgPHJlY3Q+LCA8Y2lyY2xl
Piwgb3IgPHJhZGlhbEdyYWRpZW50Pi4KKyAgICAgICAgdGhpcy5fZ3JvdXBzLmRpbWVuc2lvbnMu
c2VjdGlvbi5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImluYWN0aXZlIiwgISghaXNTVkdFbGVt
ZW50IHx8IGlzU1ZHRWxsaXBzZSB8fCBpc1NWR1JlY3QgfHwgaXNTVkdDaXJjbGUgfHwgaXNTVkdS
YWRpYWxHcmFkaWVudCkpOworCisgICAgICAgIC8vIE9ubHkgc2hvdyB0aGUgbm9uLVNWRyBkaW1l
bnNpb25zIGdyb3VwIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgaXMgbm90IGFuIFNWRyBlbGVtZW50
IG9yIGlzIDxyZWN0Pi4KKyAgICAgICAgdGhpcy5fZ3JvdXBzLmRpbWVuc2lvbnMuZGVmYXVsdEdy
b3VwLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCAhKCFpc1NWR0VsZW1lbnQg
fHwgaXNTVkdSZWN0KSk7CisKKyAgICAgICAgLy8gT25seSBzaG93IHRoZSBTVkcgZGltZW5zaW9u
cyBncm91cCBpZiB0aGUgY3VycmVudCBlbGVtZW50IGlzIGFuIFNWRyBlbGVtZW50LCA8cmVjdD4s
IDxjaXJjbGU+LCBvciA8cmFkaWFsR3JhZGllbnQ+LgorICAgICAgICB0aGlzLl9ncm91cHMuZGlt
ZW5zaW9ucy5zdmdHcm91cC5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImluYWN0aXZlIiwgIShp
c1NWR0VsbGlwc2UgfHwgaXNTVkdSZWN0IHx8IGlzU1ZHQ2lyY2xlIHx8IGlzU1ZHUmFkaWFsR3Jh
ZGllbnQpKTsKKworICAgICAgICAvLyBPbmx5IHNob3cgZWRpdG9yIGZvciAiciIgaWYgdGhlIGN1
cnJlbnQgZWxlbWVudCBpcyA8Y2lyY2xlPiBvciA8cmFkaWFsR3JhZGllbnQ+LgorICAgICAgICB0
aGlzLl9ncm91cHMuZGltZW5zaW9ucy5wcm9wZXJ0aWVzLnIuZWxlbWVudC5jbGFzc0xpc3QudG9n
Z2xlKCJpbmFjdGl2ZSIsICEoaXNTVkdDaXJjbGUgfHwgaXNTVkdSYWRpYWxHcmFkaWVudCkpOwor
CisgICAgICAgIC8vIE9ubHkgc2hvdyBlZGl0b3JzIGZvciAicngiIGFuZCAicnkiIGlmIHRoZSBj
dXJyZW50IGVsZW1lbnQgaXMgPGVsbGlwc2U+IG9yIDxyZWN0Pi4KKyAgICAgICAgdGhpcy5fZ3Jv
dXBzLmRpbWVuc2lvbnMucHJvcGVydGllcy5yeC5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImlu
YWN0aXZlIiwgIShpc1NWR0VsbGlwc2UgfHwgaXNTVkdSZWN0KSk7CisgICAgICAgIHRoaXMuX2dy
b3Vwcy5kaW1lbnNpb25zLnByb3BlcnRpZXMucnkuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJp
bmFjdGl2ZSIsICEoaXNTVkdFbGxpcHNlIHx8IGlzU1ZHUmVjdCkpOworCisgICAgICAgIC8vIE9u
bHkgc2hvdyB0aGUgU1ZHIHBvc2l0aW9uIGdyb3VwIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgaXMg
PHJlY3Q+LCA8Y2lyY2xlPiwgPGVsbGlwc2U+LCA8bGluZT4sIDxyYWRpYWxHcmFkaWVudD4sIG9y
IDxsaW5lYXJHcmFkaWVudD4uCisgICAgICAgIHRoaXMuX2dyb3Vwcy5wb3NpdGlvbi5zdmdHcm91
cC5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImluYWN0aXZlIiwgIShpc1NWR1JlY3QgfHwgaXNT
VkdDaXJjbGUgfHwgaXNTVkdFbGxpcHNlIHx8IGlzU1ZHTGluZSB8fCBpc1NWR1JhZGlhbEdyYWRp
ZW50IHx8IGlzU1ZHTGluZWFyR3JhZGllbnQpKTsKKworICAgICAgICAvLyBPbmx5IHNob3cgZWRp
dG9ycyBmb3IgIngiIGFuZCAieSIgaWYgdGhlIGN1cnJlbnQgZWxlbWVudCBpcyA8cmVjdD4uCisg
ICAgICAgIHRoaXMuX2dyb3Vwcy5wb3NpdGlvbi5wcm9wZXJ0aWVzLnguZWxlbWVudC5jbGFzc0xp
c3QudG9nZ2xlKCJpbmFjdGl2ZSIsICFpc1NWR1JlY3QpOworICAgICAgICB0aGlzLl9ncm91cHMu
cG9zaXRpb24ucHJvcGVydGllcy55LmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUi
LCAhaXNTVkdSZWN0KTsKKworICAgICAgICAvLyBPbmx5IHNob3cgZWRpdG9ycyBmb3IgIngxIiwg
InkxIiwgIngyIiwgYW5kICJ5MiIgaWYgdGhlIGN1cnJlbnQgZWxlbWVudCBpcyA8bGluZT4gb3Ig
PGxpbmVhckdyYWRpZW50Pi4KKyAgICAgICAgdGhpcy5fZ3JvdXBzLnBvc2l0aW9uLnByb3BlcnRp
ZXMueDEuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICEoaXNTVkdMaW5lIHx8
IGlzU1ZHTGluZWFyR3JhZGllbnQpKTsKKyAgICAgICAgdGhpcy5fZ3JvdXBzLnBvc2l0aW9uLnBy
b3BlcnRpZXMueTEuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICEoaXNTVkdM
aW5lIHx8IGlzU1ZHTGluZWFyR3JhZGllbnQpKTsKKyAgICAgICAgdGhpcy5fZ3JvdXBzLnBvc2l0
aW9uLnByb3BlcnRpZXMueDIuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICEo
aXNTVkdMaW5lIHx8IGlzU1ZHTGluZWFyR3JhZGllbnQpKTsKKyAgICAgICAgdGhpcy5fZ3JvdXBz
LnBvc2l0aW9uLnByb3BlcnRpZXMueTIuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2
ZSIsICEoaXNTVkdMaW5lIHx8IGlzU1ZHTGluZWFyR3JhZGllbnQpKTsKKworICAgICAgICAvLyBP
bmx5IHNob3cgZWRpdG9ycyBmb3IgImN4IiBhbmQgImN5IiBpZiB0aGUgY3VycmVudCBlbGVtZW50
IGlzIDxjaXJjbGU+LCA8ZWxsaXBzZT4sIG9yIDxyYWRpYWxHcmFkaWVudD4uCisgICAgICAgIHRo
aXMuX2dyb3Vwcy5wb3NpdGlvbi5wcm9wZXJ0aWVzLmN4LmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2ds
ZSgiaW5hY3RpdmUiLCAhKGlzU1ZHQ2lyY2xlIHx8IGlzU1ZHRWxsaXBzZSB8fCBpc1NWR1JhZGlh
bEdyYWRpZW50KSk7CisgICAgICAgIHRoaXMuX2dyb3Vwcy5wb3NpdGlvbi5wcm9wZXJ0aWVzLmN5
LmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCAhKGlzU1ZHQ2lyY2xlIHx8IGlz
U1ZHRWxsaXBzZSB8fCBpc1NWR1JhZGlhbEdyYWRpZW50KSk7CiAgICAgfQogCiAgICAgX3VwZGF0
ZVByb3BlcnRpZXMoZ3JvdXAsIGZvcmNlU3R5bGVVcGRhdGUpCkBAIC00NTQsMTAgKzUwNyw0NSBA
QCBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwgPSBjbGFzcyBWaXN1YWxTdHls
ZURldGFpbHNQYW5lbCBleHRlbmRzIFdlYgogICAgICAgICBwb3NpdGlvblR5cGUuZWxlbWVudC5h
cHBlbmRDaGlsZChwcm9wZXJ0aWVzLnpJbmRleC5lbGVtZW50KTsKICAgICAgICAgcG9zaXRpb25U
eXBlLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgidmlzdWFsLXN0eWxlLXNlcGFyYXRlZC1yb3ciKTsK
IAotICAgICAgICByb3dzLnVuc2hpZnQocG9zaXRpb25UeXBlKQorICAgICAgICByb3dzLnVuc2hp
ZnQocG9zaXRpb25UeXBlKTsKKworICAgICAgICBncm91cC5kZWZhdWx0R3JvdXAgPSBuZXcgV2Vi
SW5zcGVjdG9yLkRldGFpbHNTZWN0aW9uR3JvdXAocm93cyk7CisKKyAgICAgICAgbGV0IHh5Um93
ID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxzU2VjdGlvblJvdzsKKworICAgICAgICBwcm9wZXJ0
aWVzLnggPSBuZXcgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goIngiLCBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlgiKSwgdGhpcy5fa2V5d29yZHMuYm94TW9kZWwsIHRoaXMu
X3VuaXRzLmRlZmF1bHRzLCB0cnVlKTsKKyAgICAgICAgcHJvcGVydGllcy55ID0gbmV3IFdlYklu
c3BlY3Rvci5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJ5IiwgV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJZIiksIHRoaXMuX2tleXdvcmRzLmJveE1vZGVsLCB0aGlzLl91bml0cy5kZWZhdWx0cywg
dHJ1ZSk7CisKKyAgICAgICAgeHlSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLngu
ZWxlbWVudCk7CisgICAgICAgIHh5Um93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy55
LmVsZW1lbnQpOworCisgICAgICAgIGxldCB4MXkxUm93ID0gbmV3IFdlYkluc3BlY3Rvci5EZXRh
aWxzU2VjdGlvblJvdzsKKworICAgICAgICBwcm9wZXJ0aWVzLngxID0gbmV3IFdlYkluc3BlY3Rv
ci5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJ4MSIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygi
WDEiKSwgdGhpcy5fa2V5d29yZHMuYm94TW9kZWwsIHRoaXMuX3VuaXRzLmRlZmF1bHRzLCB0cnVl
KTsKKyAgICAgICAgcHJvcGVydGllcy55MSA9IG5ldyBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVO
dW1iZXJJbnB1dEJveCgieTEiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlkxIiksIHRoaXMuX2tl
eXdvcmRzLmJveE1vZGVsLCB0aGlzLl91bml0cy5kZWZhdWx0cywgdHJ1ZSk7CiAKLSAgICAgICAg
bGV0IHBvc2l0aW9uR3JvdXAgPSBuZXcgV2ViSW5zcGVjdG9yLkRldGFpbHNTZWN0aW9uR3JvdXAo
cm93cyk7Ci0gICAgICAgIHRoaXMuX3BvcHVsYXRlU2VjdGlvbihncm91cCwgW3Bvc2l0aW9uR3Jv
dXBdKTsKKyAgICAgICAgeDF5MVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMueDEu
ZWxlbWVudCk7CisgICAgICAgIHgxeTFSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVz
LnkxLmVsZW1lbnQpOworCisgICAgICAgIGxldCB4MnkyUm93ID0gbmV3IFdlYkluc3BlY3Rvci5E
ZXRhaWxzU2VjdGlvblJvdzsKKworICAgICAgICBwcm9wZXJ0aWVzLngyID0gbmV3IFdlYkluc3Bl
Y3Rvci5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJ4MiIsIFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiWDIiKSwgdGhpcy5fa2V5d29yZHMuYm94TW9kZWwsIHRoaXMuX3VuaXRzLmRlZmF1bHRzLCB0
cnVlKTsKKyAgICAgICAgcHJvcGVydGllcy55MiA9IG5ldyBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5
bGVOdW1iZXJJbnB1dEJveCgieTIiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlkyIiksIHRoaXMu
X2tleXdvcmRzLmJveE1vZGVsLCB0aGlzLl91bml0cy5kZWZhdWx0cywgdHJ1ZSk7CisKKyAgICAg
ICAgeDJ5MlJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMueDIuZWxlbWVudCk7Cisg
ICAgICAgIHgyeTJSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLnkyLmVsZW1lbnQp
OworCisgICAgICAgIGxldCBjeGN5Um93ID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxzU2VjdGlv
blJvdzsKKworICAgICAgICBwcm9wZXJ0aWVzLmN4ID0gbmV3IFdlYkluc3BlY3Rvci5WaXN1YWxT
dHlsZU51bWJlcklucHV0Qm94KCJjeCIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2VudGVyIFgi
KSwgdGhpcy5fa2V5d29yZHMuYm94TW9kZWwsIHRoaXMuX3VuaXRzLmRlZmF1bHRzLCB0cnVlKTsK
KyAgICAgICAgcHJvcGVydGllcy5jeSA9IG5ldyBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVOdW1i
ZXJJbnB1dEJveCgiY3kiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNlbnRlciBZIiksIHRoaXMu
X2tleXdvcmRzLmJveE1vZGVsLCB0aGlzLl91bml0cy5kZWZhdWx0cywgdHJ1ZSk7CisKKyAgICAg
ICAgY3hjeVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuY3guZWxlbWVudCk7Cisg
ICAgICAgIGN4Y3lSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmN5LmVsZW1lbnQp
OworCisgICAgICAgIGdyb3VwLnN2Z0dyb3VwID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxzU2Vj
dGlvbkdyb3VwKFt4eVJvdywgeDF5MVJvdywgeDJ5MlJvdywgY3hjeVJvd10pOworCisgICAgICAg
IHRoaXMuX3BvcHVsYXRlU2VjdGlvbihncm91cCwgW2dyb3VwLmRlZmF1bHRHcm91cCwgZ3JvdXAu
c3ZnR3JvdXBdKTsKIAogICAgICAgICBsZXQgYWxsb3dlZFBvc2l0aW9uVmFsdWVzID0gWyJyZWxh
dGl2ZSIsICJhYnNvbHV0ZSIsICJmaXhlZCIsICItd2Via2l0LXN0aWNreSJdOwogICAgICAgICBw
cm9wZXJ0aWVzLnpJbmRleC5hZGREZXBlbmRlbmN5KCJwb3NpdGlvbiIsIGFsbG93ZWRQb3NpdGlv
blZhbHVlcyk7CkBAIC01NTEsOCArNjM5LDI5IEBAIFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZURl
dGFpbHNQYW5lbCA9IGNsYXNzIFZpc3VhbFN0eWxlRGV0YWlsc1BhbmVsIGV4dGVuZHMgV2ViCiAg
ICAgICAgIHRoaXMuX2FkZE1ldHJpY3NNb3VzZUxpc3RlbmVycyhncm91cC5wcm9wZXJ0aWVzLm1h
eFdpZHRoLCBoaWdobGlnaHRNb2RlKTsKICAgICAgICAgdGhpcy5fYWRkTWV0cmljc01vdXNlTGlz
dGVuZXJzKGdyb3VwLnByb3BlcnRpZXMubWF4SGVpZ2h0LCBoaWdobGlnaHRNb2RlKTsKIAotICAg
ICAgICBsZXQgZGltZW5zaW9uc0dyb3VwID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxzU2VjdGlv
bkdyb3VwKFtkaW1lbnNpb25zVGFiQ29udHJvbGxlciwgZGltZW5zaW9uc1JlZ3VsYXJHcm91cCwg
ZGltZW5zaW9uc01pbkdyb3VwLCBkaW1lbnNpb25zTWF4R3JvdXBdKTsKLSAgICAgICAgdGhpcy5f
cG9wdWxhdGVTZWN0aW9uKGdyb3VwLCBbZGltZW5zaW9uc0dyb3VwXSk7CisgICAgICAgIGdyb3Vw
LmRlZmF1bHRHcm91cCA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Hcm91cChbZGlt
ZW5zaW9uc1RhYkNvbnRyb2xsZXIsIGRpbWVuc2lvbnNSZWd1bGFyR3JvdXAsIGRpbWVuc2lvbnNN
aW5Hcm91cCwgZGltZW5zaW9uc01heEdyb3VwXSk7CisKKyAgICAgICAgbGV0IHJSb3cgPSBuZXcg
V2ViSW5zcGVjdG9yLkRldGFpbHNTZWN0aW9uUm93OworCisgICAgICAgIHByb3BlcnRpZXMuciA9
IG5ldyBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVSZWxhdGl2ZU51bWJlclNsaWRlcigiciIsIFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiUmFkaXVzIiksIHRoaXMuX2tleXdvcmRzLmJveE1vZGVsLCB0
aGlzLl91bml0cy5kZWZhdWx0cyk7CisKKyAgICAgICAgclJvdy5lbGVtZW50LmFwcGVuZENoaWxk
KHByb3BlcnRpZXMuci5lbGVtZW50KTsKKworICAgICAgICBsZXQgcnhSb3cgPSBuZXcgV2ViSW5z
cGVjdG9yLkRldGFpbHNTZWN0aW9uUm93OworCisgICAgICAgIHByb3BlcnRpZXMucnggPSBuZXcg
V2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlUmVsYXRpdmVOdW1iZXJTbGlkZXIoInJ4IiwgV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJSYWRpdXMgWCIpLCB0aGlzLl9rZXl3b3Jkcy5ib3hNb2RlbCwgdGhp
cy5fdW5pdHMuZGVmYXVsdHMpOworCisgICAgICAgIHJ4Um93LmVsZW1lbnQuYXBwZW5kQ2hpbGQo
cHJvcGVydGllcy5yeC5lbGVtZW50KTsKKworICAgICAgICBsZXQgcnlSb3cgPSBuZXcgV2ViSW5z
cGVjdG9yLkRldGFpbHNTZWN0aW9uUm93OworCisgICAgICAgIHByb3BlcnRpZXMucnkgPSBuZXcg
V2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlUmVsYXRpdmVOdW1iZXJTbGlkZXIoInJ5IiwgV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJSYWRpdXMgWSIpLCB0aGlzLl9rZXl3b3Jkcy5ib3hNb2RlbCwgdGhp
cy5fdW5pdHMuZGVmYXVsdHMpOworCisgICAgICAgIHJ5Um93LmVsZW1lbnQuYXBwZW5kQ2hpbGQo
cHJvcGVydGllcy5yeS5lbGVtZW50KTsKKworICAgICAgICBncm91cC5zdmdHcm91cCA9IG5ldyBX
ZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Hcm91cChbclJvdywgcnhSb3csIHJ5Um93XSk7CisK
KyAgICAgICAgdGhpcy5fcG9wdWxhdGVTZWN0aW9uKGdyb3VwLCBbZ3JvdXAuZGVmYXVsdEdyb3Vw
LCBncm91cC5zdmdHcm91cF0pOwogICAgIH0KIAogICAgIF9wb3B1bGF0ZU1hcmdpblNlY3Rpb24o
KQpAQCAtODI3LDYgKzkzNiw3OCBAQCBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVEZXRhaWxzUGFu
ZWwgPSBjbGFzcyBWaXN1YWxTdHlsZURldGFpbHNQYW5lbCBleHRlbmRzIFdlYgogICAgICAgICB0
aGlzLl9wb3B1bGF0ZVNlY3Rpb24oZ3JvdXAsIFt0ZXh0U2hhZG93R3JvdXBdKTsKICAgICB9CiAK
KyAgICBfcG9wdWxhdGVGaWxsU2VjdGlvbigpCisgICAgeworICAgICAgICBsZXQgZ3JvdXAgPSB0
aGlzLl9ncm91cHMuZmlsbDsKKyAgICAgICAgbGV0IHByb3BlcnRpZXMgPSBncm91cC5wcm9wZXJ0
aWVzOworCisgICAgICAgIGxldCBmaWxsUm93ID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxzU2Vj
dGlvblJvdzsKKworICAgICAgICBwcm9wZXJ0aWVzLmZpbGwgPSBuZXcgV2ViSW5zcGVjdG9yLlZp
c3VhbFN0eWxlQ29sb3JQaWNrZXIoImZpbGwiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNvbG9y
IikpOworICAgICAgICBwcm9wZXJ0aWVzLmZpbGxSdWxlID0gbmV3IFdlYkluc3BlY3Rvci5WaXN1
YWxTdHlsZUtleXdvcmRQaWNrZXIoImZpbGwtcnVsZSIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygi
UnVsZSIpLCB0aGlzLl9rZXl3b3Jkcy5kZWZhdWx0cy5jb25jYXQoWyJOb256ZXJvIiwgIkV2ZW5v
ZGQiXSkpOworCisgICAgICAgIGZpbGxSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVz
LmZpbGwuZWxlbWVudCk7CisgICAgICAgIGZpbGxSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9w
ZXJ0aWVzLmZpbGxSdWxlLmVsZW1lbnQpOworCisgICAgICAgIGxldCBmaWxsT3BhY2l0eVJvdyA9
IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Sb3c7CisKKyAgICAgICAgcHJvcGVydGll
cy5maWxsT3BhY2l0eSA9IG5ldyBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVVbml0U2xpZGVyKCJm
aWxsLW9wYWNpdHkiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk9wYWNpdHkiKSk7CisKKyAgICAg
ICAgZmlsbE9wYWNpdHlSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmZpbGxPcGFj
aXR5LmVsZW1lbnQpOworCisgICAgICAgIGdyb3VwLnNwZWNpZmllZFdpZHRoUHJvcGVydGllcyA9
IFtwcm9wZXJ0aWVzLmZpbGxPcGFjaXR5XTsKKworICAgICAgICBsZXQgZmlsbEdyb3VwID0gbmV3
IFdlYkluc3BlY3Rvci5EZXRhaWxzU2VjdGlvbkdyb3VwKFtmaWxsUm93LCBmaWxsT3BhY2l0eVJv
d10pOworICAgICAgICB0aGlzLl9wb3B1bGF0ZVNlY3Rpb24oZ3JvdXAsIFtmaWxsR3JvdXBdKTsK
KyAgICB9CisKKyAgICBfcG9wdWxhdGVTdHJva2VTZWN0aW9uKCkKKyAgICB7CisgICAgICAgIGxl
dCBncm91cCA9IHRoaXMuX2dyb3Vwcy5zdHJva2U7CisgICAgICAgIGxldCBwcm9wZXJ0aWVzID0g
Z3JvdXAucHJvcGVydGllczsKKworICAgICAgICBsZXQgc3Ryb2tlUm93ID0gbmV3IFdlYkluc3Bl
Y3Rvci5EZXRhaWxzU2VjdGlvblJvdzsKKworICAgICAgICBwcm9wZXJ0aWVzLnN0cm9rZSA9IG5l
dyBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVDb2xvclBpY2tlcigic3Ryb2tlIiwgV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJDb2xvciIpKTsKKyAgICAgICAgcHJvcGVydGllcy5zdHJva2VXaWR0aCA9
IG5ldyBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveCgic3Ryb2tlLXdpZHRo
IiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJXaWR0aCIpLCB0aGlzLl9rZXl3b3Jkcy5kZWZhdWx0
cywgdGhpcy5fdW5pdHMuZGVmYXVsdHMpOworCisgICAgICAgIHN0cm9rZVJvdy5lbGVtZW50LmFw
cGVuZENoaWxkKHByb3BlcnRpZXMuc3Ryb2tlLmVsZW1lbnQpOworICAgICAgICBzdHJva2VSb3cu
ZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLnN0cm9rZVdpZHRoLmVsZW1lbnQpOworCisg
ICAgICAgIGxldCBzdHJva2VPcGFjaXR5ID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxzU2VjdGlv
blJvdzsKKworICAgICAgICBwcm9wZXJ0aWVzLnN0cm9rZU9wYWNpdHkgPSBuZXcgV2ViSW5zcGVj
dG9yLlZpc3VhbFN0eWxlVW5pdFNsaWRlcigic3Ryb2tlLW9wYWNpdHkiLCBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIk9wYWNpdHkiKSk7CisKKyAgICAgICAgc3Ryb2tlT3BhY2l0eS5lbGVtZW50LmFw
cGVuZENoaWxkKHByb3BlcnRpZXMuc3Ryb2tlT3BhY2l0eS5lbGVtZW50KTsKKworICAgICAgICBs
ZXQgc3Ryb2tlRGFzaGFycmF5Um93ID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxzU2VjdGlvblJv
dzsKKworICAgICAgICBwcm9wZXJ0aWVzLnN0cm9rZURhc2hhcnJheSA9IG5ldyBXZWJJbnNwZWN0
b3IuVmlzdWFsU3R5bGVCYXNpY0lucHV0KCJzdHJva2UtZGFzaGFycmF5IiwgV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJEYXNoIEFycmF5IiksIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRW50ZXIgYW4g
YXJyYXkgdmFsdWUiKSk7CisKKyAgICAgICAgc3Ryb2tlRGFzaGFycmF5Um93LmVsZW1lbnQuYXBw
ZW5kQ2hpbGQocHJvcGVydGllcy5zdHJva2VEYXNoYXJyYXkuZWxlbWVudCk7CisKKyAgICAgICAg
bGV0IHN0cm9rZURhc2hhcnJheU9wdGlvbnNSb3cgPSBuZXcgV2ViSW5zcGVjdG9yLkRldGFpbHNT
ZWN0aW9uUm93OworCisgICAgICAgIHByb3BlcnRpZXMuc3Ryb2tlRGFzaG9mZnNldCA9IG5ldyBX
ZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveCgic3Ryb2tlLWRhc2hvZmZzZXQi
LCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk9mZnNldCIpLCB0aGlzLl9rZXl3b3Jkcy5kZWZhdWx0
cywgdGhpcy5fdW5pdHMuZGVmYXVsdHMpOworICAgICAgICBwcm9wZXJ0aWVzLnN0cm9rZU1pdGVy
bGltaXQgPSBuZXcgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goInN0cm9r
ZS1taXRlcmxpbWl0IiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJNaXRlciIpLCB0aGlzLl9rZXl3
b3Jkcy5kZWZhdWx0cyk7CisKKyAgICAgICAgc3Ryb2tlRGFzaGFycmF5T3B0aW9uc1Jvdy5lbGVt
ZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuc3Ryb2tlRGFzaG9mZnNldC5lbGVtZW50KTsKKyAg
ICAgICAgc3Ryb2tlRGFzaGFycmF5T3B0aW9uc1Jvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3Bl
cnRpZXMuc3Ryb2tlTWl0ZXJsaW1pdC5lbGVtZW50KTsKKworICAgICAgICBsZXQgc3Ryb2tlTGlu
ZU9wdGlvbnNSb3cgPSBuZXcgV2ViSW5zcGVjdG9yLkRldGFpbHNTZWN0aW9uUm93OworCisgICAg
ICAgIHByb3BlcnRpZXMuc3Ryb2tlTGluZWNhcCA9IG5ldyBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5
bGVLZXl3b3JkUGlja2VyKCJzdHJva2UtbGluZWNhcCIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygi
Q2FwIiksIHRoaXMuX2tleXdvcmRzLmRlZmF1bHRzLmNvbmNhdChbIkJ1dHQiLCAiUm91bmQiLCAi
U3F1YXJlIl0pKTsKKyAgICAgICAgcHJvcGVydGllcy5zdHJva2VMaW5lam9pbiA9IG5ldyBXZWJJ
bnNwZWN0b3IuVmlzdWFsU3R5bGVLZXl3b3JkUGlja2VyKCJzdHJva2UtbGluZWpvaW4iLCBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIkpvaW4iKSwgdGhpcy5fa2V5d29yZHMuZGVmYXVsdHMuY29uY2F0
KFsiTWl0ZXIiLCAiUm91bmQiLCAiQmV2ZWwiXSkpOworCisgICAgICAgIHN0cm9rZUxpbmVPcHRp
b25zUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5zdHJva2VMaW5lY2FwLmVsZW1l
bnQpOworICAgICAgICBzdHJva2VMaW5lT3B0aW9uc1Jvdy5lbGVtZW50LmFwcGVuZENoaWxkKHBy
b3BlcnRpZXMuc3Ryb2tlTGluZWpvaW4uZWxlbWVudCk7CisKKyAgICAgICAgZ3JvdXAuc3BlY2lm
aWVkV2lkdGhQcm9wZXJ0aWVzID0gW3Byb3BlcnRpZXMuc3Ryb2tlT3BhY2l0eV07CisKKyAgICAg
ICAgbGV0IHN0cm9rZUdyb3VwID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxzU2VjdGlvbkdyb3Vw
KFtzdHJva2VSb3csIHN0cm9rZU9wYWNpdHksIHN0cm9rZURhc2hhcnJheVJvdywgc3Ryb2tlRGFz
aGFycmF5T3B0aW9uc1Jvdywgc3Ryb2tlTGluZU9wdGlvbnNSb3ddKTsKKyAgICAgICAgdGhpcy5f
cG9wdWxhdGVTZWN0aW9uKGdyb3VwLCBbc3Ryb2tlR3JvdXBdKTsKKyAgICB9CisKICAgICBfcG9w
dWxhdGVCYWNrZ3JvdW5kU3R5bGVTZWN0aW9uKCkKICAgICB7CiAgICAgICAgIGxldCBncm91cCA9
IHRoaXMuX2dyb3Vwcy5iYWNrZ3JvdW5kU3R5bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yLmNz
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxl
UHJvcGVydHlFZGl0b3IuY3NzCmluZGV4IGM1MmZkMWIuLmJiOWNhYTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlUHJvcGVy
dHlFZGl0b3IuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Zpc3VhbFN0eWxlUHJvcGVydHlFZGl0b3IuY3NzCkBAIC0zMiw2ICszMiwxMCBAQAogICAg
IGZsZXgtZ3JvdzogMTsKIH0KIAorLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIuaW5h
Y3RpdmUgeworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKIC52aXN1YWwtc3R5bGUtcHJvcGVydHkt
Y29udGFpbmVyID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS10aXRsZSB7CiAgICAgbWFyZ2luOiA0
cHg7CiAgICAgdGV4dC1hbGlnbjogcmlnaHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVJlbGF0aXZlTnVtYmVyU2xpZGVy
LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0
eWxlUmVsYXRpdmVOdW1iZXJTbGlkZXIuY3NzCmluZGV4IGNjMTcyNzAuLjJhYWU1OTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0
eWxlUmVsYXRpdmVOdW1iZXJTbGlkZXIuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlUmVsYXRpdmVOdW1iZXJTbGlkZXIuY3NzCkBA
IC00Myw1ICs0Myw2IEBACiAKIC52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLm51bWJl
ci1pbnB1dC1ib3gucmVsYXRpdmUtbnVtYmVyLXNsaWRlciA+IC5yZWxhdGl2ZS1zbGlkZXIgewog
ICAgIHdpZHRoOiA0NyU7CisgICAgbWFyZ2luLXRvcDogMDsKICAgICBtYXJnaW4tcmlnaHQ6IDdw
eDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Zpc3VhbFN0eWxlVW5pdFNsaWRlci5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVVuaXRTbGlkZXIuY3NzCmluZGV4IDljNzEwNWUu
LjEzNTU1MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1Zpc3VhbFN0eWxlVW5pdFNsaWRlci5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVVbml0U2xpZGVyLmNzcwpAQCAtMjYs
MTIgKzI2LDkgQEAKIC52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLnVuaXQtc2xpZGVy
ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAuc2xpZGVyIHsKICAg
ICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgbWFyZ2luOiA1cHggMXB4IDA7CisgICAgYmFja2dy
b3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCBoc2xhKDAsIDAlLCAwJSwgMCksICMw
MDApLCB1cmwoLi4vSW1hZ2VzL0NoZWNrZXJzLnN2Zyk7CiB9CiAKIC52aXN1YWwtc3R5bGUtcHJv
cGVydHktY29udGFpbmVyLnVuaXQtc2xpZGVyID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1
ZS1jb250YWluZXIgPiAuc2xpZGVyID4gaW1nIHsKICAgICB0b3A6IC0xcHg7CiB9Ci0KLS52aXN1
YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLnVuaXQtc2xpZGVyLm9wYWNpdHkgPiAudmlzdWFs
LXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5zbGlkZXIgewotICAgIGJhY2tncm91
bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgaHNsYSgwLCAwJSwgMCUsIDApLCAjMDAw
KSwgdXJsKC4uL0ltYWdlcy9DaGVja2Vycy5zdmcpOwotfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286459</attachid>
            <date>2016-08-19 10:51:08 -0700</date>
            <delta_ts>2016-08-22 22:47:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148269-20160819104915.patch</filename>
            <type>text/plain</type>
            <size>21087</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDMzODg2ZjFjODBiOGIwN2IyMzkxMTZmY2EwNGRi
NTBhYWUwYzgxNjkuLmE4MDI3ZDIxMmE1Y2FhMzFhODU1NTNhYzQwYzg2ZGQ2MzMxNjg0ZjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE2LTA4LTE4ICBEZXZp
biBSb3Vzc28gIDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFZpc3VhbCBzdHlsZXMgc2lkZWJhciBzaG91bGQgZG8gc29tZXRoaW5nIHNhbmUgZm9y
IFNWRyBlbGVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ4MjY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisg
ICAgICAgICogTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZS5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5ET01Ob2RlLnByb3RvdHlwZS5nZXQgb3duZXJTVkdFbGVtZW50KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5ET01Ob2RlLnByb3RvdHlwZS5pc1NWR0VsZW1lbnQpOgorICAgICAgICBD
bGltYnMgYW5jZXN0b3IgdHJlZSB0byBkZXRlcm1pbmUgaWYgbm9kZSBpcyBhbiBTVkcgbm9kZS4K
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwucHJvdG90
eXBlLmluaXRpYWxMYXlvdXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlRGV0
YWlsc1BhbmVsLnByb3RvdHlwZS5fdXBkYXRlU2VjdGlvbnMpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlZpc3VhbFN0eWxlRGV0YWlsc1BhbmVsLnByb3RvdHlwZS5fcG9wdWxhdGVQb3NpdGlvblNl
Y3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlRGV0YWlsc1BhbmVsLnBy
b3RvdHlwZS5fcG9wdWxhdGVEaW1lbnNpb25zU2VjdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwucHJvdG90eXBlLl9wb3B1bGF0ZUNvbnRlbnRTZWN0
aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZURldGFpbHNQYW5lbC5wcm90
b3R5cGUuX3BvcHVsYXRlRmlsbFNlY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3Vh
bFN0eWxlRGV0YWlsc1BhbmVsLnByb3RvdHlwZS5fcG9wdWxhdGVTdHJva2VTZWN0aW9uKToKKwor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvci5j
c3M6CisgICAgICAgICgudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5pbmFjdGl2ZSk6
CisgICAgICAgICgudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lciA+ICo6Zmlyc3QtY2hp
bGQ6bWF0Y2hlcygudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lcikpOgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVJlbGF0aXZlTnVtYmVyU2xp
ZGVyLmNzczoKKyAgICAgICAgKC52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLm51bWJl
ci1pbnB1dC1ib3gucmVsYXRpdmUtbnVtYmVyLXNsaWRlciA+IC5yZWxhdGl2ZS1zbGlkZXIpOgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVVuaXRTbGlkZXIuY3Nz
OgorICAgICAgICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIudW5pdC1zbGlkZXIg
PiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5zbGlkZXIpOgorICAg
ICAgICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIudW5pdC1zbGlkZXIub3BhY2l0
eSA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLnNsaWRlcik6IERl
bGV0ZWQuCisKIDIwMTYtMDgtMTcgIE1hdHQgQmFrZXIgIDxtYXR0YmFrZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IE5ldHdvcmsgVGFiIHNob3VsZCBub3QgbGF5b3V0IGlm
IG5vdCB2aXNpYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0
aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCA2ZmYzYzg0
ODBhNGZkMzUzM2ZjZGY2ZDViYThkYTZmNjdiOGM0ZDEwLi4zMGI1MDQ1ZDA0OWM3M2JhNDUxOWUw
YTg2ZWRiZTVmMGQyZDk4MjZkIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDU5NAp6Y21l
eHptYkt7eT54UXEhezdNWTUzPD9ha0smLV56JSNiKkZmfilAS2tIIVV6bnlDelYzPyZTeTNgSWJ4
MiVzZGcKekc4RFBWODtvPk9SN2NgYjlTS3JCYE1mRkg9NSo2fW4lY3otODk/SjVmdEQwOEJyO1RA
WG1rT0pBandZLSRUOGZeCno5Ukl+a0c3OyE5MSl3Qk1sTEE4LWtlOTx5SSQyP3d2QGpPZz4zV2lr
IypeaXpAPVVnI3JaOykhV1U8WkcofUh3Rgp6XkJGUk1DTCNPR2l5P3BWaEhtfU0tR3xsKWkkWGsp
RWJZc1hJcitnbCFfQ0ltaXF5R05mVnhZODRnYGtJPGhafCoKeiVzX2hqMXkpOH4tYjRuM1IzdWE/
NS1jX089d0dxUHtVNW5EQU82Y0RIMkk7QjJ5K2xhPkdsUXVqSjBhQU1HV34yCnoqfSZqTndsNWVN
MGJ1ZHoyTHVAUHJee0x+YSFtR1k8SnFvbiNgc04jN2c9UypXQ00wPjtScHNwNiNZT3hSTk0kbgpt
K3oyRS1UeylTdDMmb2c3dTx9U1dWfU58OUlJMXlgM305b251VEV6NFdDajI9WT1yQ3AKCmRlbHRh
IDg0CnpjbVYtYTBJVUNrKmFoXj4xK2V1cXZvfHpzMGtjbXdxJCFoU0hXMEk2VkIkOEQ0Vlcmb19t
XmxhdiElcVU2U0pBdgpxWllQITEwVGg/NzBzIyFRKCpYKCt3PDhrKVBBMGQlSVJPWVFtd2pnZWhf
fTBGMFk/S1FlSWdEMwoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9ET01Ob2RlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL0RPTU5vZGUuanMKaW5kZXggMTdlYmUxNTYyYzlhNGViOWUxZWYzYzI1NDhm
NWM2ZGE4YzVkZTM1OC4uYTAxMWNiZjQzMGRkMzU5ZmE0YjhiYWIzMTJhMDBlMWNmZjE2MzY1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RP
TU5vZGUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0RPTU5vZGUuanMKQEAgLTU2OCw2ICs1NjgsMjIgQEAgV2ViSW5zcGVjdG9yLkRPTU5vZGUgPSBj
bGFzcyBET01Ob2RlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICByZXR1cm4g
ZGVzY2VuZGFudCAhPT0gbnVsbCAmJiBkZXNjZW5kYW50LmlzQW5jZXN0b3IodGhpcyk7CiAgICAg
fQogCisgICAgZ2V0IG93bmVyU1ZHRWxlbWVudCgpCisgICAgeworICAgICAgICBpZiAodGhpcy5f
bm9kZU5hbWUgPT09ICJzdmciKQorICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisKKyAgICAgICAg
aWYgKCF0aGlzLnBhcmVudE5vZGUpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAg
ICByZXR1cm4gdGhpcy5wYXJlbnROb2RlLm93bmVyU1ZHRWxlbWVudDsKKyAgICB9CisKKyAgICBp
c1NWR0VsZW1lbnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICEhdGhpcy5vd25lclNWR0VsZW1l
bnQ7CisgICAgfQorCiAgICAgX3NldEF0dHJpYnV0ZXNQYXlsb2FkKGF0dHJzKQogICAgIHsKICAg
ICAgICAgdGhpcy5fYXR0cmlidXRlcyA9IFtdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZURldGFp
bHNQYW5lbC5qcwppbmRleCAwZTM3ZTA5Yjc5YTU4MGJkYjQyZjkyZjNiOTI5NDNhN2ZjMzA1MDVi
Li4wMDNlNWM1MWVkYmUwNWYyMjk2NmViYTliZTJlZTkxYzIxOWFiZjY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZURldGFp
bHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9WaXN1YWxTdHlsZURldGFpbHNQYW5lbC5qcwpAQCAtMTAxLDEzICsxMDEsMTUgQEAgV2ViSW5z
cGVjdG9yLlZpc3VhbFN0eWxlRGV0YWlsc1BhbmVsID0gY2xhc3MgVmlzdWFsU3R5bGVEZXRhaWxz
UGFuZWwgZXh0ZW5kcyBXZWIKICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMu
X3NlY3Rpb25zLnRleHQuZWxlbWVudCk7CiAKICAgICAgICAgLy8gQmFja2dyb3VuZCBTZWN0aW9u
CisgICAgICAgIHRoaXMuX2dlbmVyYXRlU2VjdGlvbigiZmlsbCIsIFdlYkluc3BlY3Rvci5VSVN0
cmluZygiRmlsbCIpKTsKKyAgICAgICAgdGhpcy5fZ2VuZXJhdGVTZWN0aW9uKCJzdHJva2UiLCBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0cm9rZSIpKTsKICAgICAgICAgdGhpcy5fZ2VuZXJhdGVT
ZWN0aW9uKCJiYWNrZ3JvdW5kLXN0eWxlIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTdHlsZSIp
KTsKICAgICAgICAgdGhpcy5fZ2VuZXJhdGVTZWN0aW9uKCJib3JkZXIiLCBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIkJvcmRlciIpKTsKICAgICAgICAgdGhpcy5fZ2VuZXJhdGVTZWN0aW9uKCJvdXRs
aW5lIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJPdXRsaW5lIikpOwogICAgICAgICB0aGlzLl9n
ZW5lcmF0ZVNlY3Rpb24oImJveC1zaGFkb3ciLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkJveCBT
aGFkb3ciKSk7CiAgICAgICAgIHRoaXMuX2dlbmVyYXRlU2VjdGlvbigibGlzdC1zdHlsZSIsIFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiTGlzdCBTdHlsZXMiKSk7CiAKLSAgICAgICAgdGhpcy5fc2Vj
dGlvbnMuYmFja2dyb3VuZCA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb24oImJhY2tn
cm91bmQiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkJhY2tncm91bmQiKSwgW3RoaXMuX2dyb3Vw
cy5iYWNrZ3JvdW5kU3R5bGUuc2VjdGlvbiwgdGhpcy5fZ3JvdXBzLmJvcmRlci5zZWN0aW9uLCB0
aGlzLl9ncm91cHMub3V0bGluZS5zZWN0aW9uLCB0aGlzLl9ncm91cHMuYm94U2hhZG93LnNlY3Rp
b24sIHRoaXMuX2dyb3Vwcy5saXN0U3R5bGUuc2VjdGlvbl0pOworICAgICAgICB0aGlzLl9zZWN0
aW9ucy5iYWNrZ3JvdW5kID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxzU2VjdGlvbigiYmFja2dy
b3VuZCIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQmFja2dyb3VuZCIpLCBbdGhpcy5fZ3JvdXBz
LmZpbGwuc2VjdGlvbiwgdGhpcy5fZ3JvdXBzLnN0cm9rZS5zZWN0aW9uLCB0aGlzLl9ncm91cHMu
YmFja2dyb3VuZFN0eWxlLnNlY3Rpb24sIHRoaXMuX2dyb3Vwcy5ib3JkZXIuc2VjdGlvbiwgdGhp
cy5fZ3JvdXBzLm91dGxpbmUuc2VjdGlvbiwgdGhpcy5fZ3JvdXBzLmJveFNoYWRvdy5zZWN0aW9u
LCB0aGlzLl9ncm91cHMubGlzdFN0eWxlLnNlY3Rpb25dKTsKICAgICAgICAgdGhpcy5lbGVtZW50
LmFwcGVuZENoaWxkKHRoaXMuX3NlY3Rpb25zLmJhY2tncm91bmQuZWxlbWVudCk7CiAKICAgICAg
ICAgLy8gRWZmZWN0cyBTZWN0aW9uCkBAIC0xODcsNiArMTg5LDU3IEBAIFdlYkluc3BlY3Rvci5W
aXN1YWxTdHlsZURldGFpbHNQYW5lbCA9IGNsYXNzIFZpc3VhbFN0eWxlRGV0YWlsc1BhbmVsIGV4
dGVuZHMgV2ViCiAgICAgICAgICAgICAgICAgICAgIHNlY3Rpb24uY29sbGFwc2VkID0gZmFsc2U7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKworICAgICAgICBsZXQgbm9kZSA9IHRoaXMuX25v
ZGVTdHlsZXMubm9kZTsKKyAgICAgICAgbGV0IGlzU1ZHRWxlbWVudCA9IG5vZGUuaXNTVkdFbGVt
ZW50KCk7CisKKyAgICAgICAgdGhpcy5fZ3JvdXBzLmZsb2F0LnNlY3Rpb24uZWxlbWVudC5jbGFz
c0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsIGlzU1ZHRWxlbWVudCk7CisgICAgICAgIHRoaXMuX2dy
b3Vwcy5jb250ZW50LnNlY3Rpb24uZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIs
IGlzU1ZHRWxlbWVudCk7CisgICAgICAgIHRoaXMuX2dyb3Vwcy5maWxsLnNlY3Rpb24uZWxlbWVu
dC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICFpc1NWR0VsZW1lbnQpOworICAgICAgICB0
aGlzLl9ncm91cHMuc3Ryb2tlLnNlY3Rpb24uZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFj
dGl2ZSIsICFpc1NWR0VsZW1lbnQpOworICAgICAgICB0aGlzLl9ncm91cHMuYm9yZGVyLnNlY3Rp
b24uZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsIGlzU1ZHRWxlbWVudCk7Cisg
ICAgICAgIHRoaXMuX2dyb3Vwcy5ib3hTaGFkb3cuc2VjdGlvbi5lbGVtZW50LmNsYXNzTGlzdC50
b2dnbGUoImluYWN0aXZlIiwgaXNTVkdFbGVtZW50KTsKKyAgICAgICAgdGhpcy5fZ3JvdXBzLmxp
c3RTdHlsZS5zZWN0aW9uLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCBpc1NW
R0VsZW1lbnQpOworCisgICAgICAgIGxldCBpc1NWR0NpcmNsZSA9IG5vZGUubm9kZU5hbWUoKSA9
PT0gImNpcmNsZSI7CisgICAgICAgIGxldCBpc1NWR0VsbGlwc2UgPSBub2RlLm5vZGVOYW1lKCkg
PT09ICJlbGxpcHNlIjsKKyAgICAgICAgbGV0IGlzU1ZHUmFkaWFsR3JhZGllbnQgPSBub2RlLm5v
ZGVOYW1lKCkgPT09ICJyYWRpYWxHcmFkaWVudCI7CisgICAgICAgIGxldCBpc1NWR1JlY3QgPSBu
b2RlLm5vZGVOYW1lKCkgPT09ICJyZWN0IjsKKyAgICAgICAgbGV0IGlzU1ZHTGluZSA9IG5vZGUu
bm9kZU5hbWUoKSA9PT0gImxpbmUiOworICAgICAgICBsZXQgaXNTVkdMaW5lYXJHcmFkaWVudCA9
IG5vZGUubm9kZU5hbWUoKSA9PT0gImxpbmVhckdyYWRpZW50IjsKKworICAgICAgICAvLyBPbmx5
IHNob3cgdGhlIGRpbWVuc2lvbnMgc2VjdGlvbiBpZiB0aGUgY3VycmVudCBlbGVtZW50IGlzIG5v
dCBhbiBTVkcgZWxlbWVudCBvciBpcyA8ZWxsaXBzZT4sIDxyZWN0PiwgPGNpcmNsZT4sIG9yIDxy
YWRpYWxHcmFkaWVudD4uCisgICAgICAgIHRoaXMuX2dyb3Vwcy5kaW1lbnNpb25zLnNlY3Rpb24u
ZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICEoIWlzU1ZHRWxlbWVudCB8fCBp
c1NWR0VsbGlwc2UgfHwgaXNTVkdSZWN0IHx8IGlzU1ZHQ2lyY2xlIHx8IGlzU1ZHUmFkaWFsR3Jh
ZGllbnQpKTsKKworICAgICAgICAvLyBPbmx5IHNob3cgdGhlIG5vbi1TVkcgZGltZW5zaW9ucyBn
cm91cCBpZiB0aGUgY3VycmVudCBlbGVtZW50IGlzIG5vdCBhbiBTVkcgZWxlbWVudCBvciBpcyA8
cmVjdD4uCisgICAgICAgIHRoaXMuX2dyb3Vwcy5kaW1lbnNpb25zLmRlZmF1bHRHcm91cC5lbGVt
ZW50LmNsYXNzTGlzdC50b2dnbGUoImluYWN0aXZlIiwgISghaXNTVkdFbGVtZW50IHx8IGlzU1ZH
UmVjdCkpOworCisgICAgICAgIC8vIE9ubHkgc2hvdyB0aGUgU1ZHIGRpbWVuc2lvbnMgZ3JvdXAg
aWYgdGhlIGN1cnJlbnQgZWxlbWVudCBpcyBhbiBTVkcgZWxlbWVudCwgPHJlY3Q+LCA8Y2lyY2xl
Piwgb3IgPHJhZGlhbEdyYWRpZW50Pi4KKyAgICAgICAgdGhpcy5fZ3JvdXBzLmRpbWVuc2lvbnMu
c3ZnR3JvdXAuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICEoaXNTVkdFbGxp
cHNlIHx8IGlzU1ZHUmVjdCB8fCBpc1NWR0NpcmNsZSB8fCBpc1NWR1JhZGlhbEdyYWRpZW50KSk7
CisKKyAgICAgICAgLy8gT25seSBzaG93IGVkaXRvciBmb3IgInIiIGlmIHRoZSBjdXJyZW50IGVs
ZW1lbnQgaXMgPGNpcmNsZT4gb3IgPHJhZGlhbEdyYWRpZW50Pi4KKyAgICAgICAgdGhpcy5fZ3Jv
dXBzLmRpbWVuc2lvbnMucHJvcGVydGllcy5yLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5h
Y3RpdmUiLCAhKGlzU1ZHQ2lyY2xlIHx8IGlzU1ZHUmFkaWFsR3JhZGllbnQpKTsKKworICAgICAg
ICAvLyBPbmx5IHNob3cgZWRpdG9ycyBmb3IgInJ4IiBhbmQgInJ5IiBpZiB0aGUgY3VycmVudCBl
bGVtZW50IGlzIDxlbGxpcHNlPiBvciA8cmVjdD4uCisgICAgICAgIHRoaXMuX2dyb3Vwcy5kaW1l
bnNpb25zLnByb3BlcnRpZXMucnguZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIs
ICEoaXNTVkdFbGxpcHNlIHx8IGlzU1ZHUmVjdCkpOworICAgICAgICB0aGlzLl9ncm91cHMuZGlt
ZW5zaW9ucy5wcm9wZXJ0aWVzLnJ5LmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUi
LCAhKGlzU1ZHRWxsaXBzZSB8fCBpc1NWR1JlY3QpKTsKKworICAgICAgICAvLyBPbmx5IHNob3cg
dGhlIFNWRyBwb3NpdGlvbiBncm91cCBpZiB0aGUgY3VycmVudCBlbGVtZW50IGlzIDxyZWN0Piwg
PGNpcmNsZT4sIDxlbGxpcHNlPiwgPGxpbmU+LCA8cmFkaWFsR3JhZGllbnQ+LCBvciA8bGluZWFy
R3JhZGllbnQ+LgorICAgICAgICB0aGlzLl9ncm91cHMucG9zaXRpb24uc3ZnR3JvdXAuZWxlbWVu
dC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICEoaXNTVkdSZWN0IHx8IGlzU1ZHQ2lyY2xl
IHx8IGlzU1ZHRWxsaXBzZSB8fCBpc1NWR0xpbmUgfHwgaXNTVkdSYWRpYWxHcmFkaWVudCB8fCBp
c1NWR0xpbmVhckdyYWRpZW50KSk7CisKKyAgICAgICAgLy8gT25seSBzaG93IGVkaXRvcnMgZm9y
ICJ4IiBhbmQgInkiIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgaXMgPHJlY3Q+LgorICAgICAgICB0
aGlzLl9ncm91cHMucG9zaXRpb24ucHJvcGVydGllcy54LmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2ds
ZSgiaW5hY3RpdmUiLCAhaXNTVkdSZWN0KTsKKyAgICAgICAgdGhpcy5fZ3JvdXBzLnBvc2l0aW9u
LnByb3BlcnRpZXMueS5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImluYWN0aXZlIiwgIWlzU1ZH
UmVjdCk7CisKKyAgICAgICAgLy8gT25seSBzaG93IGVkaXRvcnMgZm9yICJ4MSIsICJ5MSIsICJ4
MiIsIGFuZCAieTIiIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgaXMgPGxpbmU+IG9yIDxsaW5lYXJH
cmFkaWVudD4uCisgICAgICAgIHRoaXMuX2dyb3Vwcy5wb3NpdGlvbi5wcm9wZXJ0aWVzLngxLmVs
ZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCAhKGlzU1ZHTGluZSB8fCBpc1NWR0xp
bmVhckdyYWRpZW50KSk7CisgICAgICAgIHRoaXMuX2dyb3Vwcy5wb3NpdGlvbi5wcm9wZXJ0aWVz
LnkxLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCAhKGlzU1ZHTGluZSB8fCBp
c1NWR0xpbmVhckdyYWRpZW50KSk7CisgICAgICAgIHRoaXMuX2dyb3Vwcy5wb3NpdGlvbi5wcm9w
ZXJ0aWVzLngyLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCAhKGlzU1ZHTGlu
ZSB8fCBpc1NWR0xpbmVhckdyYWRpZW50KSk7CisgICAgICAgIHRoaXMuX2dyb3Vwcy5wb3NpdGlv
bi5wcm9wZXJ0aWVzLnkyLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCAhKGlz
U1ZHTGluZSB8fCBpc1NWR0xpbmVhckdyYWRpZW50KSk7CisKKyAgICAgICAgLy8gT25seSBzaG93
IGVkaXRvcnMgZm9yICJjeCIgYW5kICJjeSIgaWYgdGhlIGN1cnJlbnQgZWxlbWVudCBpcyA8Y2ly
Y2xlPiwgPGVsbGlwc2U+LCBvciA8cmFkaWFsR3JhZGllbnQ+LgorICAgICAgICB0aGlzLl9ncm91
cHMucG9zaXRpb24ucHJvcGVydGllcy5jeC5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImluYWN0
aXZlIiwgIShpc1NWR0NpcmNsZSB8fCBpc1NWR0VsbGlwc2UgfHwgaXNTVkdSYWRpYWxHcmFkaWVu
dCkpOworICAgICAgICB0aGlzLl9ncm91cHMucG9zaXRpb24ucHJvcGVydGllcy5jeS5lbGVtZW50
LmNsYXNzTGlzdC50b2dnbGUoImluYWN0aXZlIiwgIShpc1NWR0NpcmNsZSB8fCBpc1NWR0VsbGlw
c2UgfHwgaXNTVkdSYWRpYWxHcmFkaWVudCkpOwogICAgIH0KIAogICAgIF91cGRhdGVQcm9wZXJ0
aWVzKGdyb3VwLCBmb3JjZVN0eWxlVXBkYXRlKQpAQCAtNDU0LDEwICs1MDcsNDUgQEAgV2ViSW5z
cGVjdG9yLlZpc3VhbFN0eWxlRGV0YWlsc1BhbmVsID0gY2xhc3MgVmlzdWFsU3R5bGVEZXRhaWxz
UGFuZWwgZXh0ZW5kcyBXZWIKICAgICAgICAgcG9zaXRpb25UeXBlLmVsZW1lbnQuYXBwZW5kQ2hp
bGQocHJvcGVydGllcy56SW5kZXguZWxlbWVudCk7CiAgICAgICAgIHBvc2l0aW9uVHlwZS5lbGVt
ZW50LmNsYXNzTGlzdC5hZGQoInZpc3VhbC1zdHlsZS1zZXBhcmF0ZWQtcm93Iik7CiAKLSAgICAg
ICAgcm93cy51bnNoaWZ0KHBvc2l0aW9uVHlwZSkKKyAgICAgICAgcm93cy51bnNoaWZ0KHBvc2l0
aW9uVHlwZSk7CisKKyAgICAgICAgZ3JvdXAuZGVmYXVsdEdyb3VwID0gbmV3IFdlYkluc3BlY3Rv
ci5EZXRhaWxzU2VjdGlvbkdyb3VwKHJvd3MpOworCisgICAgICAgIGxldCB4eVJvdyA9IG5ldyBX
ZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Sb3c7CisKKyAgICAgICAgcHJvcGVydGllcy54ID0g
bmV3IFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJ4IiwgV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJYIiksIHRoaXMuX2tleXdvcmRzLmJveE1vZGVsLCB0aGlzLl91bml0cy5k
ZWZhdWx0cywgdHJ1ZSk7CisgICAgICAgIHByb3BlcnRpZXMueSA9IG5ldyBXZWJJbnNwZWN0b3Iu
VmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveCgieSIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiWSIp
LCB0aGlzLl9rZXl3b3Jkcy5ib3hNb2RlbCwgdGhpcy5fdW5pdHMuZGVmYXVsdHMsIHRydWUpOwor
CisgICAgICAgIHh5Um93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy54LmVsZW1lbnQp
OworICAgICAgICB4eVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMueS5lbGVtZW50
KTsKKworICAgICAgICBsZXQgeDF5MVJvdyA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rp
b25Sb3c7CisKKyAgICAgICAgcHJvcGVydGllcy54MSA9IG5ldyBXZWJJbnNwZWN0b3IuVmlzdWFs
U3R5bGVOdW1iZXJJbnB1dEJveCgieDEiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlgxIiksIHRo
aXMuX2tleXdvcmRzLmJveE1vZGVsLCB0aGlzLl91bml0cy5kZWZhdWx0cywgdHJ1ZSk7CisgICAg
ICAgIHByb3BlcnRpZXMueTEgPSBuZXcgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlTnVtYmVySW5w
dXRCb3goInkxIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJZMSIpLCB0aGlzLl9rZXl3b3Jkcy5i
b3hNb2RlbCwgdGhpcy5fdW5pdHMuZGVmYXVsdHMsIHRydWUpOwogCi0gICAgICAgIGxldCBwb3Np
dGlvbkdyb3VwID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxzU2VjdGlvbkdyb3VwKHJvd3MpOwot
ICAgICAgICB0aGlzLl9wb3B1bGF0ZVNlY3Rpb24oZ3JvdXAsIFtwb3NpdGlvbkdyb3VwXSk7Cisg
ICAgICAgIHgxeTFSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLngxLmVsZW1lbnQp
OworICAgICAgICB4MXkxUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy55MS5lbGVt
ZW50KTsKKworICAgICAgICBsZXQgeDJ5MlJvdyA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1Nl
Y3Rpb25Sb3c7CisKKyAgICAgICAgcHJvcGVydGllcy54MiA9IG5ldyBXZWJJbnNwZWN0b3IuVmlz
dWFsU3R5bGVOdW1iZXJJbnB1dEJveCgieDIiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlgyIiks
IHRoaXMuX2tleXdvcmRzLmJveE1vZGVsLCB0aGlzLl91bml0cy5kZWZhdWx0cywgdHJ1ZSk7Cisg
ICAgICAgIHByb3BlcnRpZXMueTIgPSBuZXcgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlTnVtYmVy
SW5wdXRCb3goInkyIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJZMiIpLCB0aGlzLl9rZXl3b3Jk
cy5ib3hNb2RlbCwgdGhpcy5fdW5pdHMuZGVmYXVsdHMsIHRydWUpOworCisgICAgICAgIHgyeTJS
b3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLngyLmVsZW1lbnQpOworICAgICAgICB4
MnkyUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy55Mi5lbGVtZW50KTsKKworICAg
ICAgICBsZXQgY3hjeVJvdyA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Sb3c7CisK
KyAgICAgICAgcHJvcGVydGllcy5jeCA9IG5ldyBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVOdW1i
ZXJJbnB1dEJveCgiY3giLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNlbnRlciBYIiksIHRoaXMu
X2tleXdvcmRzLmJveE1vZGVsLCB0aGlzLl91bml0cy5kZWZhdWx0cywgdHJ1ZSk7CisgICAgICAg
IHByb3BlcnRpZXMuY3kgPSBuZXcgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRC
b3goImN5IiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDZW50ZXIgWSIpLCB0aGlzLl9rZXl3b3Jk
cy5ib3hNb2RlbCwgdGhpcy5fdW5pdHMuZGVmYXVsdHMsIHRydWUpOworCisgICAgICAgIGN4Y3lS
b3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmN4LmVsZW1lbnQpOworICAgICAgICBj
eGN5Um93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5jeS5lbGVtZW50KTsKKworICAg
ICAgICBncm91cC5zdmdHcm91cCA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Hcm91
cChbeHlSb3csIHgxeTFSb3csIHgyeTJSb3csIGN4Y3lSb3ddKTsKKworICAgICAgICB0aGlzLl9w
b3B1bGF0ZVNlY3Rpb24oZ3JvdXAsIFtncm91cC5kZWZhdWx0R3JvdXAsIGdyb3VwLnN2Z0dyb3Vw
XSk7CiAKICAgICAgICAgbGV0IGFsbG93ZWRQb3NpdGlvblZhbHVlcyA9IFsicmVsYXRpdmUiLCAi
YWJzb2x1dGUiLCAiZml4ZWQiLCAiLXdlYmtpdC1zdGlja3kiXTsKICAgICAgICAgcHJvcGVydGll
cy56SW5kZXguYWRkRGVwZW5kZW5jeSgicG9zaXRpb24iLCBhbGxvd2VkUG9zaXRpb25WYWx1ZXMp
OwpAQCAtNTUxLDggKzYzOSwyOSBAQCBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVEZXRhaWxzUGFu
ZWwgPSBjbGFzcyBWaXN1YWxTdHlsZURldGFpbHNQYW5lbCBleHRlbmRzIFdlYgogICAgICAgICB0
aGlzLl9hZGRNZXRyaWNzTW91c2VMaXN0ZW5lcnMoZ3JvdXAucHJvcGVydGllcy5tYXhXaWR0aCwg
aGlnaGxpZ2h0TW9kZSk7CiAgICAgICAgIHRoaXMuX2FkZE1ldHJpY3NNb3VzZUxpc3RlbmVycyhn
cm91cC5wcm9wZXJ0aWVzLm1heEhlaWdodCwgaGlnaGxpZ2h0TW9kZSk7CiAKLSAgICAgICAgbGV0
IGRpbWVuc2lvbnNHcm91cCA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Hcm91cChb
ZGltZW5zaW9uc1RhYkNvbnRyb2xsZXIsIGRpbWVuc2lvbnNSZWd1bGFyR3JvdXAsIGRpbWVuc2lv
bnNNaW5Hcm91cCwgZGltZW5zaW9uc01heEdyb3VwXSk7Ci0gICAgICAgIHRoaXMuX3BvcHVsYXRl
U2VjdGlvbihncm91cCwgW2RpbWVuc2lvbnNHcm91cF0pOworICAgICAgICBncm91cC5kZWZhdWx0
R3JvdXAgPSBuZXcgV2ViSW5zcGVjdG9yLkRldGFpbHNTZWN0aW9uR3JvdXAoW2RpbWVuc2lvbnNU
YWJDb250cm9sbGVyLCBkaW1lbnNpb25zUmVndWxhckdyb3VwLCBkaW1lbnNpb25zTWluR3JvdXAs
IGRpbWVuc2lvbnNNYXhHcm91cF0pOworCisgICAgICAgIGxldCByUm93ID0gbmV3IFdlYkluc3Bl
Y3Rvci5EZXRhaWxzU2VjdGlvblJvdzsKKworICAgICAgICBwcm9wZXJ0aWVzLnIgPSBuZXcgV2Vi
SW5zcGVjdG9yLlZpc3VhbFN0eWxlUmVsYXRpdmVOdW1iZXJTbGlkZXIoInIiLCBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIlJhZGl1cyIpLCB0aGlzLl9rZXl3b3Jkcy5ib3hNb2RlbCwgdGhpcy5fdW5p
dHMuZGVmYXVsdHMpOworCisgICAgICAgIHJSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0
aWVzLnIuZWxlbWVudCk7CisKKyAgICAgICAgbGV0IHJ4Um93ID0gbmV3IFdlYkluc3BlY3Rvci5E
ZXRhaWxzU2VjdGlvblJvdzsKKworICAgICAgICBwcm9wZXJ0aWVzLnJ4ID0gbmV3IFdlYkluc3Bl
Y3Rvci5WaXN1YWxTdHlsZVJlbGF0aXZlTnVtYmVyU2xpZGVyKCJyeCIsIFdlYkluc3BlY3Rvci5V
SVN0cmluZygiUmFkaXVzIFgiKSwgdGhpcy5fa2V5d29yZHMuYm94TW9kZWwsIHRoaXMuX3VuaXRz
LmRlZmF1bHRzKTsKKworICAgICAgICByeFJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRp
ZXMucnguZWxlbWVudCk7CisKKyAgICAgICAgbGV0IHJ5Um93ID0gbmV3IFdlYkluc3BlY3Rvci5E
ZXRhaWxzU2VjdGlvblJvdzsKKworICAgICAgICBwcm9wZXJ0aWVzLnJ5ID0gbmV3IFdlYkluc3Bl
Y3Rvci5WaXN1YWxTdHlsZVJlbGF0aXZlTnVtYmVyU2xpZGVyKCJyeSIsIFdlYkluc3BlY3Rvci5V
SVN0cmluZygiUmFkaXVzIFkiKSwgdGhpcy5fa2V5d29yZHMuYm94TW9kZWwsIHRoaXMuX3VuaXRz
LmRlZmF1bHRzKTsKKworICAgICAgICByeVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRp
ZXMucnkuZWxlbWVudCk7CisKKyAgICAgICAgZ3JvdXAuc3ZnR3JvdXAgPSBuZXcgV2ViSW5zcGVj
dG9yLkRldGFpbHNTZWN0aW9uR3JvdXAoW3JSb3csIHJ4Um93LCByeVJvd10pOworCisgICAgICAg
IHRoaXMuX3BvcHVsYXRlU2VjdGlvbihncm91cCwgW2dyb3VwLmRlZmF1bHRHcm91cCwgZ3JvdXAu
c3ZnR3JvdXBdKTsKICAgICB9CiAKICAgICBfcG9wdWxhdGVNYXJnaW5TZWN0aW9uKCkKQEAgLTgy
Nyw2ICs5MzYsNzggQEAgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlRGV0YWlsc1BhbmVsID0gY2xh
c3MgVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwgZXh0ZW5kcyBXZWIKICAgICAgICAgdGhpcy5fcG9w
dWxhdGVTZWN0aW9uKGdyb3VwLCBbdGV4dFNoYWRvd0dyb3VwXSk7CiAgICAgfQogCisgICAgX3Bv
cHVsYXRlRmlsbFNlY3Rpb24oKQorICAgIHsKKyAgICAgICAgbGV0IGdyb3VwID0gdGhpcy5fZ3Jv
dXBzLmZpbGw7CisgICAgICAgIGxldCBwcm9wZXJ0aWVzID0gZ3JvdXAucHJvcGVydGllczsKKwor
ICAgICAgICBsZXQgZmlsbFJvdyA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Sb3c7
CisKKyAgICAgICAgcHJvcGVydGllcy5maWxsID0gbmV3IFdlYkluc3BlY3Rvci5WaXN1YWxTdHls
ZUNvbG9yUGlja2VyKCJmaWxsIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb2xvciIpKTsKKyAg
ICAgICAgcHJvcGVydGllcy5maWxsUnVsZSA9IG5ldyBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVL
ZXl3b3JkUGlja2VyKCJmaWxsLXJ1bGUiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJ1bGUiKSwg
dGhpcy5fa2V5d29yZHMuZGVmYXVsdHMuY29uY2F0KFsiTm9uemVybyIsICJFdmVub2RkIl0pKTsK
KworICAgICAgICBmaWxsUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5maWxsLmVs
ZW1lbnQpOworICAgICAgICBmaWxsUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5m
aWxsUnVsZS5lbGVtZW50KTsKKworICAgICAgICBsZXQgZmlsbE9wYWNpdHlSb3cgPSBuZXcgV2Vi
SW5zcGVjdG9yLkRldGFpbHNTZWN0aW9uUm93OworCisgICAgICAgIHByb3BlcnRpZXMuZmlsbE9w
YWNpdHkgPSBuZXcgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlVW5pdFNsaWRlcigiZmlsbC1vcGFj
aXR5IiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJPcGFjaXR5IikpOworCisgICAgICAgIGZpbGxP
cGFjaXR5Um93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5maWxsT3BhY2l0eS5lbGVt
ZW50KTsKKworICAgICAgICBncm91cC5zcGVjaWZpZWRXaWR0aFByb3BlcnRpZXMgPSBbcHJvcGVy
dGllcy5maWxsT3BhY2l0eV07CisKKyAgICAgICAgbGV0IGZpbGxHcm91cCA9IG5ldyBXZWJJbnNw
ZWN0b3IuRGV0YWlsc1NlY3Rpb25Hcm91cChbZmlsbFJvdywgZmlsbE9wYWNpdHlSb3ddKTsKKyAg
ICAgICAgdGhpcy5fcG9wdWxhdGVTZWN0aW9uKGdyb3VwLCBbZmlsbEdyb3VwXSk7CisgICAgfQor
CisgICAgX3BvcHVsYXRlU3Ryb2tlU2VjdGlvbigpCisgICAgeworICAgICAgICBsZXQgZ3JvdXAg
PSB0aGlzLl9ncm91cHMuc3Ryb2tlOworICAgICAgICBsZXQgcHJvcGVydGllcyA9IGdyb3VwLnBy
b3BlcnRpZXM7CisKKyAgICAgICAgbGV0IHN0cm9rZVJvdyA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0
YWlsc1NlY3Rpb25Sb3c7CisKKyAgICAgICAgcHJvcGVydGllcy5zdHJva2UgPSBuZXcgV2ViSW5z
cGVjdG9yLlZpc3VhbFN0eWxlQ29sb3JQaWNrZXIoInN0cm9rZSIsIFdlYkluc3BlY3Rvci5VSVN0
cmluZygiQ29sb3IiKSk7CisgICAgICAgIHByb3BlcnRpZXMuc3Ryb2tlV2lkdGggPSBuZXcgV2Vi
SW5zcGVjdG9yLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goInN0cm9rZS13aWR0aCIsIFdlYklu
c3BlY3Rvci5VSVN0cmluZygiV2lkdGgiKSwgdGhpcy5fa2V5d29yZHMuZGVmYXVsdHMsIHRoaXMu
X3VuaXRzLmRlZmF1bHRzKTsKKworICAgICAgICBzdHJva2VSb3cuZWxlbWVudC5hcHBlbmRDaGls
ZChwcm9wZXJ0aWVzLnN0cm9rZS5lbGVtZW50KTsKKyAgICAgICAgc3Ryb2tlUm93LmVsZW1lbnQu
YXBwZW5kQ2hpbGQocHJvcGVydGllcy5zdHJva2VXaWR0aC5lbGVtZW50KTsKKworICAgICAgICBs
ZXQgc3Ryb2tlT3BhY2l0eSA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Sb3c7CisK
KyAgICAgICAgcHJvcGVydGllcy5zdHJva2VPcGFjaXR5ID0gbmV3IFdlYkluc3BlY3Rvci5WaXN1
YWxTdHlsZVVuaXRTbGlkZXIoInN0cm9rZS1vcGFjaXR5IiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJPcGFjaXR5IikpOworCisgICAgICAgIHN0cm9rZU9wYWNpdHkuZWxlbWVudC5hcHBlbmRDaGls
ZChwcm9wZXJ0aWVzLnN0cm9rZU9wYWNpdHkuZWxlbWVudCk7CisKKyAgICAgICAgbGV0IHN0cm9r
ZURhc2hhcnJheVJvdyA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Sb3c7CisKKyAg
ICAgICAgcHJvcGVydGllcy5zdHJva2VEYXNoYXJyYXkgPSBuZXcgV2ViSW5zcGVjdG9yLlZpc3Vh
bFN0eWxlQmFzaWNJbnB1dCgic3Ryb2tlLWRhc2hhcnJheSIsIFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiRGFzaCBBcnJheSIpLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkVudGVyIGFuIGFycmF5IHZh
bHVlIikpOworCisgICAgICAgIHN0cm9rZURhc2hhcnJheVJvdy5lbGVtZW50LmFwcGVuZENoaWxk
KHByb3BlcnRpZXMuc3Ryb2tlRGFzaGFycmF5LmVsZW1lbnQpOworCisgICAgICAgIGxldCBzdHJv
a2VEYXNoYXJyYXlPcHRpb25zUm93ID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxzU2VjdGlvblJv
dzsKKworICAgICAgICBwcm9wZXJ0aWVzLnN0cm9rZURhc2hvZmZzZXQgPSBuZXcgV2ViSW5zcGVj
dG9yLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goInN0cm9rZS1kYXNob2Zmc2V0IiwgV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJPZmZzZXQiKSwgdGhpcy5fa2V5d29yZHMuZGVmYXVsdHMsIHRoaXMu
X3VuaXRzLmRlZmF1bHRzKTsKKyAgICAgICAgcHJvcGVydGllcy5zdHJva2VNaXRlcmxpbWl0ID0g
bmV3IFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJzdHJva2UtbWl0ZXJs
aW1pdCIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiTWl0ZXIiKSwgdGhpcy5fa2V5d29yZHMuZGVm
YXVsdHMpOworCisgICAgICAgIHN0cm9rZURhc2hhcnJheU9wdGlvbnNSb3cuZWxlbWVudC5hcHBl
bmRDaGlsZChwcm9wZXJ0aWVzLnN0cm9rZURhc2hvZmZzZXQuZWxlbWVudCk7CisgICAgICAgIHN0
cm9rZURhc2hhcnJheU9wdGlvbnNSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLnN0
cm9rZU1pdGVybGltaXQuZWxlbWVudCk7CisKKyAgICAgICAgbGV0IHN0cm9rZUxpbmVPcHRpb25z
Um93ID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxzU2VjdGlvblJvdzsKKworICAgICAgICBwcm9w
ZXJ0aWVzLnN0cm9rZUxpbmVjYXAgPSBuZXcgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlS2V5d29y
ZFBpY2tlcigic3Ryb2tlLWxpbmVjYXAiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNhcCIpLCB0
aGlzLl9rZXl3b3Jkcy5kZWZhdWx0cy5jb25jYXQoWyJCdXR0IiwgIlJvdW5kIiwgIlNxdWFyZSJd
KSk7CisgICAgICAgIHByb3BlcnRpZXMuc3Ryb2tlTGluZWpvaW4gPSBuZXcgV2ViSW5zcGVjdG9y
LlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlcigic3Ryb2tlLWxpbmVqb2luIiwgV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJKb2luIiksIHRoaXMuX2tleXdvcmRzLmRlZmF1bHRzLmNvbmNhdChbIk1pdGVy
IiwgIlJvdW5kIiwgIkJldmVsIl0pKTsKKworICAgICAgICBzdHJva2VMaW5lT3B0aW9uc1Jvdy5l
bGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuc3Ryb2tlTGluZWNhcC5lbGVtZW50KTsKKyAg
ICAgICAgc3Ryb2tlTGluZU9wdGlvbnNSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVz
LnN0cm9rZUxpbmVqb2luLmVsZW1lbnQpOworCisgICAgICAgIGdyb3VwLnNwZWNpZmllZFdpZHRo
UHJvcGVydGllcyA9IFtwcm9wZXJ0aWVzLnN0cm9rZU9wYWNpdHldOworCisgICAgICAgIGxldCBz
dHJva2VHcm91cCA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Hcm91cChbc3Ryb2tl
Um93LCBzdHJva2VPcGFjaXR5LCBzdHJva2VEYXNoYXJyYXlSb3csIHN0cm9rZURhc2hhcnJheU9w
dGlvbnNSb3csIHN0cm9rZUxpbmVPcHRpb25zUm93XSk7CisgICAgICAgIHRoaXMuX3BvcHVsYXRl
U2VjdGlvbihncm91cCwgW3N0cm9rZUdyb3VwXSk7CisgICAgfQorCiAgICAgX3BvcHVsYXRlQmFj
a2dyb3VuZFN0eWxlU2VjdGlvbigpCiAgICAgewogICAgICAgICBsZXQgZ3JvdXAgPSB0aGlzLl9n
cm91cHMuYmFja2dyb3VuZFN0eWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvci5jc3MgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVByb3BlcnR5
RWRpdG9yLmNzcwppbmRleCBjMmZlODA1ZGJiOGZlMjJiYWZkMmFjMzQzNTAxNzI4M2ViOTBhMGVl
Li44ZjY4ZDI3ZjdhMmU2NjQ5YTc0ZTI5NmQyYjYyNzcwZWRhYTJlNDAwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVByb3Bl
cnR5RWRpdG9yLmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yLmNzcwpAQCAtMzIsNiArMzIsMTAgQEAKICAg
ICBmbGV4LWdyb3c6IDE7CiB9CiAKKy52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmlu
YWN0aXZlIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCiAudmlzdWFsLXN0eWxlLXByb3BlcnR5
LWNvbnRhaW5lciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdGl0bGUgewogICAgIG1hcmdpbjog
NHB4OwogICAgIHRleHQtYWxpZ246IHJpZ2h0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVSZWxhdGl2ZU51bWJlclNsaWRl
ci5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxT
dHlsZVJlbGF0aXZlTnVtYmVyU2xpZGVyLmNzcwppbmRleCBjYzE3MjcwOGE2YWNiNTA4ZmY4ZDJk
NTA2OTdmYTg3ODY3NDc0Y2U5Li4yYWFlNTk3MTZmYThjN2I1MTI2ZTQ3MzM5NDBmYjAwYjk2Njc0
ZjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9WaXN1YWxTdHlsZVJlbGF0aXZlTnVtYmVyU2xpZGVyLmNzcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVJlbGF0aXZlTnVtYmVyU2xp
ZGVyLmNzcwpAQCAtNDMsNSArNDMsNiBAQAogCiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRh
aW5lci5udW1iZXItaW5wdXQtYm94LnJlbGF0aXZlLW51bWJlci1zbGlkZXIgPiAucmVsYXRpdmUt
c2xpZGVyIHsKICAgICB3aWR0aDogNDclOworICAgIG1hcmdpbi10b3A6IDA7CiAgICAgbWFyZ2lu
LXJpZ2h0OiA3cHg7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVVuaXRTbGlkZXIuY3NzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVVbml0U2xpZGVyLmNzcwppbmRl
eCA5YzcxMDVlMDE3MTMyYWIxODJmZmNmMzc0YjJjMTM0MTA5NzUzYzEzLi4xMzU1NTIzMGQwYTky
OTNlZmI5MjQ1NWVlNWI4OWVhY2VmNzMxN2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVVuaXRTbGlkZXIuY3NzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVW5p
dFNsaWRlci5jc3MKQEAgLTI2LDEyICsyNiw5IEBACiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNv
bnRhaW5lci51bml0LXNsaWRlciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFp
bmVyID4gLnNsaWRlciB7CiAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgIG1hcmdpbjogNXB4
IDFweCAwOworICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgaHNs
YSgwLCAwJSwgMCUsIDApLCAjMDAwKSwgdXJsKC4uL0ltYWdlcy9DaGVja2Vycy5zdmcpOwogfQog
CiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci51bml0LXNsaWRlciA+IC52aXN1YWwt
c3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLnNsaWRlciA+IGltZyB7CiAgICAgdG9w
OiAtMXB4OwogfQotCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci51bml0LXNsaWRl
ci5vcGFjaXR5ID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAuc2xp
ZGVyIHsKLSAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIGhzbGEo
MCwgMCUsIDAlLCAwKSwgIzAwMCksIHVybCguLi9JbWFnZXMvQ2hlY2tlcnMuc3ZnKTsKLX0K
</data>
<flag name="review"
          id="309997"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286677</attachid>
            <date>2016-08-22 22:47:46 -0700</date>
            <delta_ts>2016-08-22 22:58:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>148269.diff</filename>
            <type>text/plain</type>
            <size>20946</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDM2NWUwZTQuLmZiN2FmNGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM5IEBACiAyMDE2LTA4LTIyICBEZXZpbiBSb3Vzc28g
IDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFZp
c3VhbCBzdHlsZXMgc2lkZWJhciBzaG91bGQgZG8gc29tZXRoaW5nIHNhbmUgZm9yIFNWRyBlbGVt
ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4
MjY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAgICAgICog
TG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5E
T01Ob2RlLnByb3RvdHlwZS5nZXQgb3duZXJTVkdFbGVtZW50KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5ET01Ob2RlLnByb3RvdHlwZS5pc1NWR0VsZW1lbnQpOgorICAgICAgICBDbGltYnMgYW5j
ZXN0b3IgdHJlZSB0byBkZXRlcm1pbmUgaWYgbm9kZSBpcyBhbiBTVkcgbm9kZS4KKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwucHJvdG90eXBlLmluaXRp
YWxMYXlvdXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlRGV0YWlsc1BhbmVs
LnByb3RvdHlwZS5fdXBkYXRlU2VjdGlvbnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3Vh
bFN0eWxlRGV0YWlsc1BhbmVsLnByb3RvdHlwZS5fcG9wdWxhdGVQb3NpdGlvblNlY3Rpb24pOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlRGV0YWlsc1BhbmVsLnByb3RvdHlwZS5f
cG9wdWxhdGVEaW1lbnNpb25zU2VjdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFs
U3R5bGVEZXRhaWxzUGFuZWwucHJvdG90eXBlLl9wb3B1bGF0ZUNvbnRlbnRTZWN0aW9uKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZURldGFpbHNQYW5lbC5wcm90b3R5cGUuX3Bv
cHVsYXRlRmlsbFNlY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlRGV0
YWlsc1BhbmVsLnByb3RvdHlwZS5fcG9wdWxhdGVTdHJva2VTZWN0aW9uKToKKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvci5jc3M6CisgICAg
ICAgICgudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5pbmFjdGl2ZSk6CisgICAgICAg
ICgudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lciA+ICo6Zmlyc3QtY2hpbGQ6bWF0Y2hl
cygudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lcikpOgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVJlbGF0aXZlTnVtYmVyU2xpZGVyLmNzczoK
KyAgICAgICAgKC52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLm51bWJlci1pbnB1dC1i
b3gucmVsYXRpdmUtbnVtYmVyLXNsaWRlciA+IC5yZWxhdGl2ZS1zbGlkZXIpOgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVVuaXRTbGlkZXIuY3NzOgorICAgICAg
ICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIudW5pdC1zbGlkZXIgPiAudmlzdWFs
LXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5zbGlkZXIpOgorICAgICAgICAoLnZp
c3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIudW5pdC1zbGlkZXIub3BhY2l0eSA+IC52aXN1
YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLnNsaWRlcik6IERlbGV0ZWQuCisK
KzIwMTYtMDgtMjIgIERldmluIFJvdXNzbyAgPGRjcm91c3NvK3dlYmtpdEBnbWFpbC5jb20+CisK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogVmlzdWFsIFN0eWxlczogIlRleHQgLT4gQ29udGVudCIg
c2VjdGlvbiBzaG91bGQgb25seSBiZSB2aXNpYmxlIGZvciBwc2V1ZG8tZWxlbWVudAogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4MjcyCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2Fs
aXplZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5s
cHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IGYwMTZjMjVlNTgzYjRjNTU1NGE2MDcyNzg5
NDU4ZDc0YjMxMjRiNTMuLjcwNGE0YWI1NzkwM2JlODVkMzFiODk3ZWJlMzU0Nzg1OTQ5N2E2NWQg
MTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgNTc3CnpjbWFFTnA3cWE3KSh5UVR7N01ZNTM8
P2FrSyYtXnolI2IrdyEkI2ZCP0l1TnhzO0xabDM/JlN5M2BJYngyJXNkZwp6R1B2QzIxPmcxNm9x
PyhsWTluIX57cjZwZV5MTnVfbiVjei04OStsRmZrcWNHQnI7VEBYbUEwRkFqd2FEbXVrM3EKemNL
akRKO1k2U3YzUDRHaUNJeURGWDtPQCRsWEl1PzMxWX1oPTlfQjJ4cXNSWjlucE0tT3JTPCY9WCl7
YVBnWT5qCnotYHNrNWpqJC1oaHNlXnQ0NElTZHgocWsjVU4ySHRQNjZzSjEtYmA0MiFlblBmeSNr
YFY2eUsmOSUlJnpSSWVrZQp6MGVPQSlLUnV6ejQ8a2pVN202e09ZKEZpKT0lWGZFI0V7UkI0R2Ni
SDJMdUN5OVZ8Wkd6P3sqMXlSMTFRbFApaV4KemZ7NGl0JS1YXmM0MkNHJGZQQVI5NXRfSVdOUEsj
SDNNMVFlPHJLeWlaWH5sTnttPlBUTF5CQTsyT0FYMGZOQnRzCk40LSgoTEc9PFRWODMwakRmSTxL
TwoKZGVsdGEgNzIKemNtVi1PMEpzMUEqIysqOzErYX1ZdihHZWEwa2h7ZXEkI3VNVkRkSlRySTs/
V2tDQDZWdiFCSlA2U0lAcVpZUV5gCmUwUmJ1IXc7ZEQjUEEwZHhJc3BoUm12PzlaaF98KEEwWT9L
YlN8Q09NCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0RPTU5vZGUuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvRE9NTm9kZS5qcwppbmRleCAxN2ViZTE1Li5hMDExY2JmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZS5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZS5qcwpAQCAt
NTY4LDYgKzU2OCwyMiBAQCBXZWJJbnNwZWN0b3IuRE9NTm9kZSA9IGNsYXNzIERPTU5vZGUgZXh0
ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHJldHVybiBkZXNjZW5kYW50ICE9PSBu
dWxsICYmIGRlc2NlbmRhbnQuaXNBbmNlc3Rvcih0aGlzKTsKICAgICB9CiAKKyAgICBnZXQgb3du
ZXJTVkdFbGVtZW50KCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9ub2RlTmFtZSA9PT0gInN2
ZyIpCisgICAgICAgICAgICByZXR1cm4gdGhpczsKKworICAgICAgICBpZiAoIXRoaXMucGFyZW50
Tm9kZSkKKyAgICAgICAgICAgIHJldHVybiBudWxsOworCisgICAgICAgIHJldHVybiB0aGlzLnBh
cmVudE5vZGUub3duZXJTVkdFbGVtZW50OworICAgIH0KKworICAgIGlzU1ZHRWxlbWVudCgpCisg
ICAgeworICAgICAgICByZXR1cm4gISF0aGlzLm93bmVyU1ZHRWxlbWVudDsKKyAgICB9CisKICAg
ICBfc2V0QXR0cmlidXRlc1BheWxvYWQoYXR0cnMpCiAgICAgewogICAgICAgICB0aGlzLl9hdHRy
aWJ1dGVzID0gW107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9WaXN1YWxTdHlsZURldGFpbHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlRGV0YWlsc1BhbmVsLmpzCmluZGV4
IDFkNTE5MzguLmViNGI3NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlRGV0YWlsc1BhbmVsLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlRGV0YWlsc1BhbmVs
LmpzCkBAIC0xMDIsMTMgKzEwMiwxNSBAQCBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVEZXRhaWxz
UGFuZWwgPSBjbGFzcyBWaXN1YWxTdHlsZURldGFpbHNQYW5lbCBleHRlbmRzIFdlYgogICAgICAg
ICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fc2VjdGlvbnMudGV4dC5lbGVtZW50KTsK
IAogICAgICAgICAvLyBCYWNrZ3JvdW5kIFNlY3Rpb24KKyAgICAgICAgdGhpcy5fZ2VuZXJhdGVT
ZWN0aW9uKCJmaWxsIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJGaWxsIikpOworICAgICAgICB0
aGlzLl9nZW5lcmF0ZVNlY3Rpb24oInN0cm9rZSIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU3Ry
b2tlIikpOwogICAgICAgICB0aGlzLl9nZW5lcmF0ZVNlY3Rpb24oImJhY2tncm91bmQtc3R5bGUi
LCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0eWxlIikpOwogICAgICAgICB0aGlzLl9nZW5lcmF0
ZVNlY3Rpb24oImJvcmRlciIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQm9yZGVyIikpOwogICAg
ICAgICB0aGlzLl9nZW5lcmF0ZVNlY3Rpb24oIm91dGxpbmUiLCBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIk91dGxpbmUiKSk7CiAgICAgICAgIHRoaXMuX2dlbmVyYXRlU2VjdGlvbigiYm94LXNoYWRv
dyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQm94IFNoYWRvdyIpKTsKICAgICAgICAgdGhpcy5f
Z2VuZXJhdGVTZWN0aW9uKCJsaXN0LXN0eWxlIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJMaXN0
IFN0eWxlcyIpKTsKIAotICAgICAgICB0aGlzLl9zZWN0aW9ucy5iYWNrZ3JvdW5kID0gbmV3IFdl
Ykluc3BlY3Rvci5EZXRhaWxzU2VjdGlvbigiYmFja2dyb3VuZCIsIFdlYkluc3BlY3Rvci5VSVN0
cmluZygiQmFja2dyb3VuZCIpLCBbdGhpcy5fZ3JvdXBzLmJhY2tncm91bmRTdHlsZS5zZWN0aW9u
LCB0aGlzLl9ncm91cHMuYm9yZGVyLnNlY3Rpb24sIHRoaXMuX2dyb3Vwcy5vdXRsaW5lLnNlY3Rp
b24sIHRoaXMuX2dyb3Vwcy5ib3hTaGFkb3cuc2VjdGlvbiwgdGhpcy5fZ3JvdXBzLmxpc3RTdHls
ZS5zZWN0aW9uXSk7CisgICAgICAgIHRoaXMuX3NlY3Rpb25zLmJhY2tncm91bmQgPSBuZXcgV2Vi
SW5zcGVjdG9yLkRldGFpbHNTZWN0aW9uKCJiYWNrZ3JvdW5kIiwgV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJCYWNrZ3JvdW5kIiksIFt0aGlzLl9ncm91cHMuZmlsbC5zZWN0aW9uLCB0aGlzLl9ncm91
cHMuc3Ryb2tlLnNlY3Rpb24sIHRoaXMuX2dyb3Vwcy5iYWNrZ3JvdW5kU3R5bGUuc2VjdGlvbiwg
dGhpcy5fZ3JvdXBzLmJvcmRlci5zZWN0aW9uLCB0aGlzLl9ncm91cHMub3V0bGluZS5zZWN0aW9u
LCB0aGlzLl9ncm91cHMuYm94U2hhZG93LnNlY3Rpb24sIHRoaXMuX2dyb3Vwcy5saXN0U3R5bGUu
c2VjdGlvbl0pOwogICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fc2VjdGlv
bnMuYmFja2dyb3VuZC5lbGVtZW50KTsKIAogICAgICAgICAvLyBFZmZlY3RzIFNlY3Rpb24KQEAg
LTE5Miw2ICsxOTQsNTcgQEAgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlRGV0YWlsc1BhbmVsID0g
Y2xhc3MgVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwgZXh0ZW5kcyBXZWIKICAgICAgICAgbGV0IGhh
c01hdGNoZWRFbGVtZW50UHNldWRvU2VsZWN0b3IgPSB0aGlzLl9jdXJyZW50U3R5bGUub3duZXJS
dWxlICYmIHRoaXMuX2N1cnJlbnRTdHlsZS5vd25lclJ1bGUuaGFzTWF0Y2hlZFBzZXVkb0VsZW1l
bnRTZWxlY3RvcigpOwogICAgICAgICB0aGlzLl9ncm91cHMuY29udGVudC5zZWN0aW9uLmVsZW1l
bnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCAhaGFzTWF0Y2hlZEVsZW1lbnRQc2V1ZG9T
ZWxlY3Rvcik7CiAgICAgICAgIHRoaXMuX2dyb3Vwcy5saXN0U3R5bGUuc2VjdGlvbi5lbGVtZW50
LmNsYXNzTGlzdC50b2dnbGUoImluYWN0aXZlIiwgaGFzTWF0Y2hlZEVsZW1lbnRQc2V1ZG9TZWxl
Y3Rvcik7CisKKyAgICAgICAgbGV0IG5vZGUgPSB0aGlzLl9ub2RlU3R5bGVzLm5vZGU7CisgICAg
ICAgIGxldCBpc1NWR0VsZW1lbnQgPSBub2RlLmlzU1ZHRWxlbWVudCgpOworCisgICAgICAgIHRo
aXMuX2dyb3Vwcy5mbG9hdC5zZWN0aW9uLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3Rp
dmUiLCBpc1NWR0VsZW1lbnQpOworICAgICAgICB0aGlzLl9ncm91cHMuYm9yZGVyLnNlY3Rpb24u
ZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsIGlzU1ZHRWxlbWVudCk7CisgICAg
ICAgIHRoaXMuX2dyb3Vwcy5ib3hTaGFkb3cuc2VjdGlvbi5lbGVtZW50LmNsYXNzTGlzdC50b2dn
bGUoImluYWN0aXZlIiwgaXNTVkdFbGVtZW50KTsKKyAgICAgICAgdGhpcy5fZ3JvdXBzLmxpc3RT
dHlsZS5zZWN0aW9uLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCBpc1NWR0Vs
ZW1lbnQpOworCisgICAgICAgIHRoaXMuX2dyb3Vwcy5maWxsLnNlY3Rpb24uZWxlbWVudC5jbGFz
c0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICFpc1NWR0VsZW1lbnQpOworICAgICAgICB0aGlzLl9n
cm91cHMuc3Ryb2tlLnNlY3Rpb24uZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIs
ICFpc1NWR0VsZW1lbnQpOworCisgICAgICAgIGxldCBpc1NWR0NpcmNsZSA9IG5vZGUubm9kZU5h
bWUoKSA9PT0gImNpcmNsZSI7CisgICAgICAgIGxldCBpc1NWR0VsbGlwc2UgPSBub2RlLm5vZGVO
YW1lKCkgPT09ICJlbGxpcHNlIjsKKyAgICAgICAgbGV0IGlzU1ZHUmFkaWFsR3JhZGllbnQgPSBu
b2RlLm5vZGVOYW1lKCkgPT09ICJyYWRpYWxHcmFkaWVudCI7CisgICAgICAgIGxldCBpc1NWR1Jl
Y3QgPSBub2RlLm5vZGVOYW1lKCkgPT09ICJyZWN0IjsKKyAgICAgICAgbGV0IGlzU1ZHTGluZSA9
IG5vZGUubm9kZU5hbWUoKSA9PT0gImxpbmUiOworICAgICAgICBsZXQgaXNTVkdMaW5lYXJHcmFk
aWVudCA9IG5vZGUubm9kZU5hbWUoKSA9PT0gImxpbmVhckdyYWRpZW50IjsKKworICAgICAgICAv
LyBPbmx5IHNob3cgdGhlIGRpbWVuc2lvbnMgc2VjdGlvbiBpZiB0aGUgY3VycmVudCBlbGVtZW50
IGlzIG5vdCBhbiBTVkcgZWxlbWVudCBvciBpcyA8ZWxsaXBzZT4sIDxyZWN0PiwgPGNpcmNsZT4s
IG9yIDxyYWRpYWxHcmFkaWVudD4uCisgICAgICAgIHRoaXMuX2dyb3Vwcy5kaW1lbnNpb25zLnNl
Y3Rpb24uZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICEoIWlzU1ZHRWxlbWVu
dCB8fCBpc1NWR0VsbGlwc2UgfHwgaXNTVkdSZWN0IHx8IGlzU1ZHQ2lyY2xlIHx8IGlzU1ZHUmFk
aWFsR3JhZGllbnQpKTsKKworICAgICAgICAvLyBPbmx5IHNob3cgdGhlIG5vbi1TVkcgZGltZW5z
aW9ucyBncm91cCBpZiB0aGUgY3VycmVudCBlbGVtZW50IGlzIG5vdCBhbiBTVkcgZWxlbWVudCBv
ciBpcyA8cmVjdD4uCisgICAgICAgIHRoaXMuX2dyb3Vwcy5kaW1lbnNpb25zLmRlZmF1bHRHcm91
cC5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImluYWN0aXZlIiwgISghaXNTVkdFbGVtZW50IHx8
IGlzU1ZHUmVjdCkpOworCisgICAgICAgIC8vIE9ubHkgc2hvdyB0aGUgU1ZHIGRpbWVuc2lvbnMg
Z3JvdXAgaWYgdGhlIGN1cnJlbnQgZWxlbWVudCBpcyBhbiBTVkcgZWxlbWVudCwgPHJlY3Q+LCA8
Y2lyY2xlPiwgb3IgPHJhZGlhbEdyYWRpZW50Pi4KKyAgICAgICAgdGhpcy5fZ3JvdXBzLmRpbWVu
c2lvbnMuc3ZnR3JvdXAuZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICEoaXNT
VkdFbGxpcHNlIHx8IGlzU1ZHUmVjdCB8fCBpc1NWR0NpcmNsZSB8fCBpc1NWR1JhZGlhbEdyYWRp
ZW50KSk7CisKKyAgICAgICAgLy8gT25seSBzaG93IGVkaXRvciBmb3IgInIiIGlmIHRoZSBjdXJy
ZW50IGVsZW1lbnQgaXMgPGNpcmNsZT4gb3IgPHJhZGlhbEdyYWRpZW50Pi4KKyAgICAgICAgdGhp
cy5fZ3JvdXBzLmRpbWVuc2lvbnMucHJvcGVydGllcy5yLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2ds
ZSgiaW5hY3RpdmUiLCAhKGlzU1ZHQ2lyY2xlIHx8IGlzU1ZHUmFkaWFsR3JhZGllbnQpKTsKKwor
ICAgICAgICAvLyBPbmx5IHNob3cgZWRpdG9ycyBmb3IgInJ4IiBhbmQgInJ5IiBpZiB0aGUgY3Vy
cmVudCBlbGVtZW50IGlzIDxlbGxpcHNlPiBvciA8cmVjdD4uCisgICAgICAgIHRoaXMuX2dyb3Vw
cy5kaW1lbnNpb25zLnByb3BlcnRpZXMucnguZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFj
dGl2ZSIsICEoaXNTVkdFbGxpcHNlIHx8IGlzU1ZHUmVjdCkpOworICAgICAgICB0aGlzLl9ncm91
cHMuZGltZW5zaW9ucy5wcm9wZXJ0aWVzLnJ5LmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5h
Y3RpdmUiLCAhKGlzU1ZHRWxsaXBzZSB8fCBpc1NWR1JlY3QpKTsKKworICAgICAgICAvLyBPbmx5
IHNob3cgdGhlIFNWRyBwb3NpdGlvbiBncm91cCBpZiB0aGUgY3VycmVudCBlbGVtZW50IGlzIDxy
ZWN0PiwgPGNpcmNsZT4sIDxlbGxpcHNlPiwgPGxpbmU+LCA8cmFkaWFsR3JhZGllbnQ+LCBvciA8
bGluZWFyR3JhZGllbnQ+LgorICAgICAgICB0aGlzLl9ncm91cHMucG9zaXRpb24uc3ZnR3JvdXAu
ZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbmFjdGl2ZSIsICEoaXNTVkdSZWN0IHx8IGlzU1ZH
Q2lyY2xlIHx8IGlzU1ZHRWxsaXBzZSB8fCBpc1NWR0xpbmUgfHwgaXNTVkdSYWRpYWxHcmFkaWVu
dCB8fCBpc1NWR0xpbmVhckdyYWRpZW50KSk7CisKKyAgICAgICAgLy8gT25seSBzaG93IGVkaXRv
cnMgZm9yICJ4IiBhbmQgInkiIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgaXMgPHJlY3Q+LgorICAg
ICAgICB0aGlzLl9ncm91cHMucG9zaXRpb24ucHJvcGVydGllcy54LmVsZW1lbnQuY2xhc3NMaXN0
LnRvZ2dsZSgiaW5hY3RpdmUiLCAhaXNTVkdSZWN0KTsKKyAgICAgICAgdGhpcy5fZ3JvdXBzLnBv
c2l0aW9uLnByb3BlcnRpZXMueS5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImluYWN0aXZlIiwg
IWlzU1ZHUmVjdCk7CisKKyAgICAgICAgLy8gT25seSBzaG93IGVkaXRvcnMgZm9yICJ4MSIsICJ5
MSIsICJ4MiIsIGFuZCAieTIiIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgaXMgPGxpbmU+IG9yIDxs
aW5lYXJHcmFkaWVudD4uCisgICAgICAgIHRoaXMuX2dyb3Vwcy5wb3NpdGlvbi5wcm9wZXJ0aWVz
LngxLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCAhKGlzU1ZHTGluZSB8fCBp
c1NWR0xpbmVhckdyYWRpZW50KSk7CisgICAgICAgIHRoaXMuX2dyb3Vwcy5wb3NpdGlvbi5wcm9w
ZXJ0aWVzLnkxLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCAhKGlzU1ZHTGlu
ZSB8fCBpc1NWR0xpbmVhckdyYWRpZW50KSk7CisgICAgICAgIHRoaXMuX2dyb3Vwcy5wb3NpdGlv
bi5wcm9wZXJ0aWVzLngyLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUiLCAhKGlz
U1ZHTGluZSB8fCBpc1NWR0xpbmVhckdyYWRpZW50KSk7CisgICAgICAgIHRoaXMuX2dyb3Vwcy5w
b3NpdGlvbi5wcm9wZXJ0aWVzLnkyLmVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW5hY3RpdmUi
LCAhKGlzU1ZHTGluZSB8fCBpc1NWR0xpbmVhckdyYWRpZW50KSk7CisKKyAgICAgICAgLy8gT25s
eSBzaG93IGVkaXRvcnMgZm9yICJjeCIgYW5kICJjeSIgaWYgdGhlIGN1cnJlbnQgZWxlbWVudCBp
cyA8Y2lyY2xlPiwgPGVsbGlwc2U+LCBvciA8cmFkaWFsR3JhZGllbnQ+LgorICAgICAgICB0aGlz
Ll9ncm91cHMucG9zaXRpb24ucHJvcGVydGllcy5jeC5lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUo
ImluYWN0aXZlIiwgIShpc1NWR0NpcmNsZSB8fCBpc1NWR0VsbGlwc2UgfHwgaXNTVkdSYWRpYWxH
cmFkaWVudCkpOworICAgICAgICB0aGlzLl9ncm91cHMucG9zaXRpb24ucHJvcGVydGllcy5jeS5l
bGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImluYWN0aXZlIiwgIShpc1NWR0NpcmNsZSB8fCBpc1NW
R0VsbGlwc2UgfHwgaXNTVkdSYWRpYWxHcmFkaWVudCkpOwogICAgIH0KIAogICAgIF91cGRhdGVQ
cm9wZXJ0aWVzKGdyb3VwLCBmb3JjZVN0eWxlVXBkYXRlKQpAQCAtNDU5LDEwICs1MTIsNDUgQEAg
V2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlRGV0YWlsc1BhbmVsID0gY2xhc3MgVmlzdWFsU3R5bGVE
ZXRhaWxzUGFuZWwgZXh0ZW5kcyBXZWIKICAgICAgICAgcG9zaXRpb25UeXBlLmVsZW1lbnQuYXBw
ZW5kQ2hpbGQocHJvcGVydGllcy56SW5kZXguZWxlbWVudCk7CiAgICAgICAgIHBvc2l0aW9uVHlw
ZS5lbGVtZW50LmNsYXNzTGlzdC5hZGQoInZpc3VhbC1zdHlsZS1zZXBhcmF0ZWQtcm93Iik7CiAK
LSAgICAgICAgcm93cy51bnNoaWZ0KHBvc2l0aW9uVHlwZSkKKyAgICAgICAgcm93cy51bnNoaWZ0
KHBvc2l0aW9uVHlwZSk7CisKKyAgICAgICAgZ3JvdXAuZGVmYXVsdEdyb3VwID0gbmV3IFdlYklu
c3BlY3Rvci5EZXRhaWxzU2VjdGlvbkdyb3VwKHJvd3MpOworCisgICAgICAgIGxldCB4eVJvdyA9
IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Sb3c7CisKKyAgICAgICAgcHJvcGVydGll
cy54ID0gbmV3IFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJ4IiwgV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJYIiksIHRoaXMuX2tleXdvcmRzLmJveE1vZGVsLCB0aGlzLl91
bml0cy5kZWZhdWx0cywgdHJ1ZSk7CisgICAgICAgIHByb3BlcnRpZXMueSA9IG5ldyBXZWJJbnNw
ZWN0b3IuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveCgieSIsIFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiWSIpLCB0aGlzLl9rZXl3b3Jkcy5ib3hNb2RlbCwgdGhpcy5fdW5pdHMuZGVmYXVsdHMsIHRy
dWUpOworCisgICAgICAgIHh5Um93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy54LmVs
ZW1lbnQpOworICAgICAgICB4eVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMueS5l
bGVtZW50KTsKKworICAgICAgICBsZXQgeDF5MVJvdyA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWls
c1NlY3Rpb25Sb3c7CiAKLSAgICAgICAgbGV0IHBvc2l0aW9uR3JvdXAgPSBuZXcgV2ViSW5zcGVj
dG9yLkRldGFpbHNTZWN0aW9uR3JvdXAocm93cyk7Ci0gICAgICAgIHRoaXMuX3BvcHVsYXRlU2Vj
dGlvbihncm91cCwgW3Bvc2l0aW9uR3JvdXBdKTsKKyAgICAgICAgcHJvcGVydGllcy54MSA9IG5l
dyBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveCgieDEiLCBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIlgxIiksIHRoaXMuX2tleXdvcmRzLmJveE1vZGVsLCB0aGlzLl91bml0cy5k
ZWZhdWx0cywgdHJ1ZSk7CisgICAgICAgIHByb3BlcnRpZXMueTEgPSBuZXcgV2ViSW5zcGVjdG9y
LlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goInkxIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJZ
MSIpLCB0aGlzLl9rZXl3b3Jkcy5ib3hNb2RlbCwgdGhpcy5fdW5pdHMuZGVmYXVsdHMsIHRydWUp
OworCisgICAgICAgIHgxeTFSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLngxLmVs
ZW1lbnQpOworICAgICAgICB4MXkxUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy55
MS5lbGVtZW50KTsKKworICAgICAgICBsZXQgeDJ5MlJvdyA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0
YWlsc1NlY3Rpb25Sb3c7CisKKyAgICAgICAgcHJvcGVydGllcy54MiA9IG5ldyBXZWJJbnNwZWN0
b3IuVmlzdWFsU3R5bGVOdW1iZXJJbnB1dEJveCgieDIiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IlgyIiksIHRoaXMuX2tleXdvcmRzLmJveE1vZGVsLCB0aGlzLl91bml0cy5kZWZhdWx0cywgdHJ1
ZSk7CisgICAgICAgIHByb3BlcnRpZXMueTIgPSBuZXcgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxl
TnVtYmVySW5wdXRCb3goInkyIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJZMiIpLCB0aGlzLl9r
ZXl3b3Jkcy5ib3hNb2RlbCwgdGhpcy5fdW5pdHMuZGVmYXVsdHMsIHRydWUpOworCisgICAgICAg
IHgyeTJSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLngyLmVsZW1lbnQpOworICAg
ICAgICB4MnkyUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy55Mi5lbGVtZW50KTsK
KworICAgICAgICBsZXQgY3hjeVJvdyA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25S
b3c7CisKKyAgICAgICAgcHJvcGVydGllcy5jeCA9IG5ldyBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5
bGVOdW1iZXJJbnB1dEJveCgiY3giLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNlbnRlciBYIiks
IHRoaXMuX2tleXdvcmRzLmJveE1vZGVsLCB0aGlzLl91bml0cy5kZWZhdWx0cywgdHJ1ZSk7Cisg
ICAgICAgIHByb3BlcnRpZXMuY3kgPSBuZXcgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlTnVtYmVy
SW5wdXRCb3goImN5IiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDZW50ZXIgWSIpLCB0aGlzLl9r
ZXl3b3Jkcy5ib3hNb2RlbCwgdGhpcy5fdW5pdHMuZGVmYXVsdHMsIHRydWUpOworCisgICAgICAg
IGN4Y3lSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLmN4LmVsZW1lbnQpOworICAg
ICAgICBjeGN5Um93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5jeS5lbGVtZW50KTsK
KworICAgICAgICBncm91cC5zdmdHcm91cCA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rp
b25Hcm91cChbeHlSb3csIHgxeTFSb3csIHgyeTJSb3csIGN4Y3lSb3ddKTsKKworICAgICAgICB0
aGlzLl9wb3B1bGF0ZVNlY3Rpb24oZ3JvdXAsIFtncm91cC5kZWZhdWx0R3JvdXAsIGdyb3VwLnN2
Z0dyb3VwXSk7CiAKICAgICAgICAgbGV0IGFsbG93ZWRQb3NpdGlvblZhbHVlcyA9IFsicmVsYXRp
dmUiLCAiYWJzb2x1dGUiLCAiZml4ZWQiLCAiLXdlYmtpdC1zdGlja3kiXTsKICAgICAgICAgcHJv
cGVydGllcy56SW5kZXguYWRkRGVwZW5kZW5jeSgicG9zaXRpb24iLCBhbGxvd2VkUG9zaXRpb25W
YWx1ZXMpOwpAQCAtNTU2LDggKzY0NCwyOSBAQCBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVEZXRh
aWxzUGFuZWwgPSBjbGFzcyBWaXN1YWxTdHlsZURldGFpbHNQYW5lbCBleHRlbmRzIFdlYgogICAg
ICAgICB0aGlzLl9hZGRNZXRyaWNzTW91c2VMaXN0ZW5lcnMoZ3JvdXAucHJvcGVydGllcy5tYXhX
aWR0aCwgaGlnaGxpZ2h0TW9kZSk7CiAgICAgICAgIHRoaXMuX2FkZE1ldHJpY3NNb3VzZUxpc3Rl
bmVycyhncm91cC5wcm9wZXJ0aWVzLm1heEhlaWdodCwgaGlnaGxpZ2h0TW9kZSk7CiAKLSAgICAg
ICAgbGV0IGRpbWVuc2lvbnNHcm91cCA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25H
cm91cChbZGltZW5zaW9uc1RhYkNvbnRyb2xsZXIsIGRpbWVuc2lvbnNSZWd1bGFyR3JvdXAsIGRp
bWVuc2lvbnNNaW5Hcm91cCwgZGltZW5zaW9uc01heEdyb3VwXSk7Ci0gICAgICAgIHRoaXMuX3Bv
cHVsYXRlU2VjdGlvbihncm91cCwgW2RpbWVuc2lvbnNHcm91cF0pOworICAgICAgICBncm91cC5k
ZWZhdWx0R3JvdXAgPSBuZXcgV2ViSW5zcGVjdG9yLkRldGFpbHNTZWN0aW9uR3JvdXAoW2RpbWVu
c2lvbnNUYWJDb250cm9sbGVyLCBkaW1lbnNpb25zUmVndWxhckdyb3VwLCBkaW1lbnNpb25zTWlu
R3JvdXAsIGRpbWVuc2lvbnNNYXhHcm91cF0pOworCisgICAgICAgIGxldCByUm93ID0gbmV3IFdl
Ykluc3BlY3Rvci5EZXRhaWxzU2VjdGlvblJvdzsKKworICAgICAgICBwcm9wZXJ0aWVzLnIgPSBu
ZXcgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlUmVsYXRpdmVOdW1iZXJTbGlkZXIoInIiLCBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIlJhZGl1cyIpLCB0aGlzLl9rZXl3b3Jkcy5ib3hNb2RlbCwgdGhp
cy5fdW5pdHMuZGVmYXVsdHMpOworCisgICAgICAgIHJSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChw
cm9wZXJ0aWVzLnIuZWxlbWVudCk7CisKKyAgICAgICAgbGV0IHJ4Um93ID0gbmV3IFdlYkluc3Bl
Y3Rvci5EZXRhaWxzU2VjdGlvblJvdzsKKworICAgICAgICBwcm9wZXJ0aWVzLnJ4ID0gbmV3IFdl
Ykluc3BlY3Rvci5WaXN1YWxTdHlsZVJlbGF0aXZlTnVtYmVyU2xpZGVyKCJyeCIsIFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiUmFkaXVzIFgiKSwgdGhpcy5fa2V5d29yZHMuYm94TW9kZWwsIHRoaXMu
X3VuaXRzLmRlZmF1bHRzKTsKKworICAgICAgICByeFJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHBy
b3BlcnRpZXMucnguZWxlbWVudCk7CisKKyAgICAgICAgbGV0IHJ5Um93ID0gbmV3IFdlYkluc3Bl
Y3Rvci5EZXRhaWxzU2VjdGlvblJvdzsKKworICAgICAgICBwcm9wZXJ0aWVzLnJ5ID0gbmV3IFdl
Ykluc3BlY3Rvci5WaXN1YWxTdHlsZVJlbGF0aXZlTnVtYmVyU2xpZGVyKCJyeSIsIFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiUmFkaXVzIFkiKSwgdGhpcy5fa2V5d29yZHMuYm94TW9kZWwsIHRoaXMu
X3VuaXRzLmRlZmF1bHRzKTsKKworICAgICAgICByeVJvdy5lbGVtZW50LmFwcGVuZENoaWxkKHBy
b3BlcnRpZXMucnkuZWxlbWVudCk7CisKKyAgICAgICAgZ3JvdXAuc3ZnR3JvdXAgPSBuZXcgV2Vi
SW5zcGVjdG9yLkRldGFpbHNTZWN0aW9uR3JvdXAoW3JSb3csIHJ4Um93LCByeVJvd10pOworCisg
ICAgICAgIHRoaXMuX3BvcHVsYXRlU2VjdGlvbihncm91cCwgW2dyb3VwLmRlZmF1bHRHcm91cCwg
Z3JvdXAuc3ZnR3JvdXBdKTsKICAgICB9CiAKICAgICBfcG9wdWxhdGVNYXJnaW5TZWN0aW9uKCkK
QEAgLTg0Nyw2ICs5NTYsNzggQEAgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlRGV0YWlsc1BhbmVs
ID0gY2xhc3MgVmlzdWFsU3R5bGVEZXRhaWxzUGFuZWwgZXh0ZW5kcyBXZWIKICAgICAgICAgdGhp
cy5fcG9wdWxhdGVTZWN0aW9uKGdyb3VwLCBbdGV4dFNoYWRvd0dyb3VwXSk7CiAgICAgfQogCisg
ICAgX3BvcHVsYXRlRmlsbFNlY3Rpb24oKQorICAgIHsKKyAgICAgICAgbGV0IGdyb3VwID0gdGhp
cy5fZ3JvdXBzLmZpbGw7CisgICAgICAgIGxldCBwcm9wZXJ0aWVzID0gZ3JvdXAucHJvcGVydGll
czsKKworICAgICAgICBsZXQgZmlsbFJvdyA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rp
b25Sb3c7CisKKyAgICAgICAgcHJvcGVydGllcy5maWxsID0gbmV3IFdlYkluc3BlY3Rvci5WaXN1
YWxTdHlsZUNvbG9yUGlja2VyKCJmaWxsIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb2xvciIp
KTsKKyAgICAgICAgcHJvcGVydGllcy5maWxsUnVsZSA9IG5ldyBXZWJJbnNwZWN0b3IuVmlzdWFs
U3R5bGVLZXl3b3JkUGlja2VyKCJmaWxsLXJ1bGUiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJ1
bGUiKSwgdGhpcy5fa2V5d29yZHMuZGVmYXVsdHMuY29uY2F0KFsiTm9uemVybyIsICJFdmVub2Rk
Il0pKTsKKworICAgICAgICBmaWxsUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5m
aWxsLmVsZW1lbnQpOworICAgICAgICBmaWxsUm93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVy
dGllcy5maWxsUnVsZS5lbGVtZW50KTsKKworICAgICAgICBsZXQgZmlsbE9wYWNpdHlSb3cgPSBu
ZXcgV2ViSW5zcGVjdG9yLkRldGFpbHNTZWN0aW9uUm93OworCisgICAgICAgIHByb3BlcnRpZXMu
ZmlsbE9wYWNpdHkgPSBuZXcgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlVW5pdFNsaWRlcigiZmls
bC1vcGFjaXR5IiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJPcGFjaXR5IikpOworCisgICAgICAg
IGZpbGxPcGFjaXR5Um93LmVsZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5maWxsT3BhY2l0
eS5lbGVtZW50KTsKKworICAgICAgICBncm91cC5zcGVjaWZpZWRXaWR0aFByb3BlcnRpZXMgPSBb
cHJvcGVydGllcy5maWxsT3BhY2l0eV07CisKKyAgICAgICAgbGV0IGZpbGxHcm91cCA9IG5ldyBX
ZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Hcm91cChbZmlsbFJvdywgZmlsbE9wYWNpdHlSb3dd
KTsKKyAgICAgICAgdGhpcy5fcG9wdWxhdGVTZWN0aW9uKGdyb3VwLCBbZmlsbEdyb3VwXSk7Cisg
ICAgfQorCisgICAgX3BvcHVsYXRlU3Ryb2tlU2VjdGlvbigpCisgICAgeworICAgICAgICBsZXQg
Z3JvdXAgPSB0aGlzLl9ncm91cHMuc3Ryb2tlOworICAgICAgICBsZXQgcHJvcGVydGllcyA9IGdy
b3VwLnByb3BlcnRpZXM7CisKKyAgICAgICAgbGV0IHN0cm9rZVJvdyA9IG5ldyBXZWJJbnNwZWN0
b3IuRGV0YWlsc1NlY3Rpb25Sb3c7CisKKyAgICAgICAgcHJvcGVydGllcy5zdHJva2UgPSBuZXcg
V2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlQ29sb3JQaWNrZXIoInN0cm9rZSIsIFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiQ29sb3IiKSk7CisgICAgICAgIHByb3BlcnRpZXMuc3Ryb2tlV2lkdGggPSBu
ZXcgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goInN0cm9rZS13aWR0aCIs
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiV2lkdGgiKSwgdGhpcy5fa2V5d29yZHMuZGVmYXVsdHMs
IHRoaXMuX3VuaXRzLmRlZmF1bHRzKTsKKworICAgICAgICBzdHJva2VSb3cuZWxlbWVudC5hcHBl
bmRDaGlsZChwcm9wZXJ0aWVzLnN0cm9rZS5lbGVtZW50KTsKKyAgICAgICAgc3Ryb2tlUm93LmVs
ZW1lbnQuYXBwZW5kQ2hpbGQocHJvcGVydGllcy5zdHJva2VXaWR0aC5lbGVtZW50KTsKKworICAg
ICAgICBsZXQgc3Ryb2tlT3BhY2l0eSA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25S
b3c7CisKKyAgICAgICAgcHJvcGVydGllcy5zdHJva2VPcGFjaXR5ID0gbmV3IFdlYkluc3BlY3Rv
ci5WaXN1YWxTdHlsZVVuaXRTbGlkZXIoInN0cm9rZS1vcGFjaXR5IiwgV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJPcGFjaXR5IikpOworCisgICAgICAgIHN0cm9rZU9wYWNpdHkuZWxlbWVudC5hcHBl
bmRDaGlsZChwcm9wZXJ0aWVzLnN0cm9rZU9wYWNpdHkuZWxlbWVudCk7CisKKyAgICAgICAgbGV0
IHN0cm9rZURhc2hhcnJheVJvdyA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Sb3c7
CisKKyAgICAgICAgcHJvcGVydGllcy5zdHJva2VEYXNoYXJyYXkgPSBuZXcgV2ViSW5zcGVjdG9y
LlZpc3VhbFN0eWxlQmFzaWNJbnB1dCgic3Ryb2tlLWRhc2hhcnJheSIsIFdlYkluc3BlY3Rvci5V
SVN0cmluZygiRGFzaCBBcnJheSIpLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkVudGVyIGFuIGFy
cmF5IHZhbHVlIikpOworCisgICAgICAgIHN0cm9rZURhc2hhcnJheVJvdy5lbGVtZW50LmFwcGVu
ZENoaWxkKHByb3BlcnRpZXMuc3Ryb2tlRGFzaGFycmF5LmVsZW1lbnQpOworCisgICAgICAgIGxl
dCBzdHJva2VEYXNoYXJyYXlPcHRpb25zUm93ID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxzU2Vj
dGlvblJvdzsKKworICAgICAgICBwcm9wZXJ0aWVzLnN0cm9rZURhc2hvZmZzZXQgPSBuZXcgV2Vi
SW5zcGVjdG9yLlZpc3VhbFN0eWxlTnVtYmVySW5wdXRCb3goInN0cm9rZS1kYXNob2Zmc2V0Iiwg
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJPZmZzZXQiKSwgdGhpcy5fa2V5d29yZHMuZGVmYXVsdHMs
IHRoaXMuX3VuaXRzLmRlZmF1bHRzKTsKKyAgICAgICAgcHJvcGVydGllcy5zdHJva2VNaXRlcmxp
bWl0ID0gbmV3IFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZU51bWJlcklucHV0Qm94KCJzdHJva2Ut
bWl0ZXJsaW1pdCIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiTWl0ZXIiKSwgdGhpcy5fa2V5d29y
ZHMuZGVmYXVsdHMpOworCisgICAgICAgIHN0cm9rZURhc2hhcnJheU9wdGlvbnNSb3cuZWxlbWVu
dC5hcHBlbmRDaGlsZChwcm9wZXJ0aWVzLnN0cm9rZURhc2hvZmZzZXQuZWxlbWVudCk7CisgICAg
ICAgIHN0cm9rZURhc2hhcnJheU9wdGlvbnNSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9wZXJ0
aWVzLnN0cm9rZU1pdGVybGltaXQuZWxlbWVudCk7CisKKyAgICAgICAgbGV0IHN0cm9rZUxpbmVP
cHRpb25zUm93ID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxzU2VjdGlvblJvdzsKKworICAgICAg
ICBwcm9wZXJ0aWVzLnN0cm9rZUxpbmVjYXAgPSBuZXcgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxl
S2V5d29yZFBpY2tlcigic3Ryb2tlLWxpbmVjYXAiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNh
cCIpLCB0aGlzLl9rZXl3b3Jkcy5kZWZhdWx0cy5jb25jYXQoWyJCdXR0IiwgIlJvdW5kIiwgIlNx
dWFyZSJdKSk7CisgICAgICAgIHByb3BlcnRpZXMuc3Ryb2tlTGluZWpvaW4gPSBuZXcgV2ViSW5z
cGVjdG9yLlZpc3VhbFN0eWxlS2V5d29yZFBpY2tlcigic3Ryb2tlLWxpbmVqb2luIiwgV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJKb2luIiksIHRoaXMuX2tleXdvcmRzLmRlZmF1bHRzLmNvbmNhdChb
Ik1pdGVyIiwgIlJvdW5kIiwgIkJldmVsIl0pKTsKKworICAgICAgICBzdHJva2VMaW5lT3B0aW9u
c1Jvdy5lbGVtZW50LmFwcGVuZENoaWxkKHByb3BlcnRpZXMuc3Ryb2tlTGluZWNhcC5lbGVtZW50
KTsKKyAgICAgICAgc3Ryb2tlTGluZU9wdGlvbnNSb3cuZWxlbWVudC5hcHBlbmRDaGlsZChwcm9w
ZXJ0aWVzLnN0cm9rZUxpbmVqb2luLmVsZW1lbnQpOworCisgICAgICAgIGdyb3VwLnNwZWNpZmll
ZFdpZHRoUHJvcGVydGllcyA9IFtwcm9wZXJ0aWVzLnN0cm9rZU9wYWNpdHldOworCisgICAgICAg
IGxldCBzdHJva2VHcm91cCA9IG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsc1NlY3Rpb25Hcm91cChb
c3Ryb2tlUm93LCBzdHJva2VPcGFjaXR5LCBzdHJva2VEYXNoYXJyYXlSb3csIHN0cm9rZURhc2hh
cnJheU9wdGlvbnNSb3csIHN0cm9rZUxpbmVPcHRpb25zUm93XSk7CisgICAgICAgIHRoaXMuX3Bv
cHVsYXRlU2VjdGlvbihncm91cCwgW3N0cm9rZUdyb3VwXSk7CisgICAgfQorCiAgICAgX3BvcHVs
YXRlQmFja2dyb3VuZFN0eWxlU2VjdGlvbigpCiAgICAgewogICAgICAgICBsZXQgZ3JvdXAgPSB0
aGlzLl9ncm91cHMuYmFja2dyb3VuZFN0eWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVQcm9wZXJ0eUVkaXRvci5jc3Mg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVBy
b3BlcnR5RWRpdG9yLmNzcwppbmRleCBjMmZlODA1Li44ZjY4ZDI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVByb3BlcnR5
RWRpdG9yLmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9WaXN1YWxTdHlsZVByb3BlcnR5RWRpdG9yLmNzcwpAQCAtMzIsNiArMzIsMTAgQEAKICAgICBm
bGV4LWdyb3c6IDE7CiB9CiAKKy52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLmluYWN0
aXZlIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNv
bnRhaW5lciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdGl0bGUgewogICAgIG1hcmdpbjogNHB4
OwogICAgIHRleHQtYWxpZ246IHJpZ2h0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVSZWxhdGl2ZU51bWJlclNsaWRlci5j
c3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHls
ZVJlbGF0aXZlTnVtYmVyU2xpZGVyLmNzcwppbmRleCBjYzE3MjcwLi4yYWFlNTk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHls
ZVJlbGF0aXZlTnVtYmVyU2xpZGVyLmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVJlbGF0aXZlTnVtYmVyU2xpZGVyLmNzcwpAQCAt
NDMsNSArNDMsNiBAQAogCiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci5udW1iZXIt
aW5wdXQtYm94LnJlbGF0aXZlLW51bWJlci1zbGlkZXIgPiAucmVsYXRpdmUtc2xpZGVyIHsKICAg
ICB3aWR0aDogNDclOworICAgIG1hcmdpbi10b3A6IDA7CiAgICAgbWFyZ2luLXJpZ2h0OiA3cHg7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9WaXN1YWxTdHlsZVVuaXRTbGlkZXIuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVVbml0U2xpZGVyLmNzcwppbmRleCA5YzcxMDVlLi4z
YTM1ZWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9WaXN1YWxTdHlsZVVuaXRTbGlkZXIuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVW5pdFNsaWRlci5jc3MKQEAgLTI2LDEy
ICsyNiw5IEBACiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci51bml0LXNsaWRlciA+
IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLnNsaWRlciB7CiAgICAg
cG9zaXRpb246IHJlbGF0aXZlOwogICAgIG1hcmdpbjogNXB4IDFweCAwOworICAgIGJhY2tncm91
bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsIGJsYWNrKSwgdXJs
KC4uL0ltYWdlcy9DaGVja2Vycy5zdmcpOwogfQogCiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNv
bnRhaW5lci51bml0LXNsaWRlciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFp
bmVyID4gLnNsaWRlciA+IGltZyB7CiAgICAgdG9wOiAtMXB4OwogfQotCi0udmlzdWFsLXN0eWxl
LXByb3BlcnR5LWNvbnRhaW5lci51bml0LXNsaWRlci5vcGFjaXR5ID4gLnZpc3VhbC1zdHlsZS1w
cm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAuc2xpZGVyIHsKLSAgICBiYWNrZ3JvdW5kLWltYWdl
OiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIGhzbGEoMCwgMCUsIDAlLCAwKSwgIzAwMCksIHVybCgu
Li9JbWFnZXMvQ2hlY2tlcnMuc3ZnKTsKLX0K
</data>

          </attachment>
      

    </bug>

</bugzilla>