<?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>159315</bug_id>
          
          <creation_ts>2016-06-30 13:59:41 -0700</creation_ts>
          <short_desc>Web Inspector: Add visual editor for spring() timing-function</short_desc>
          <delta_ts>2016-08-23 00:25:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=159313</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <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>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1206844</commentid>
    <comment_count>0</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2016-06-30 13:59:41 -0700</bug_when>
    <thetext>We should add a visual editor like we have for the cubic-bezier editor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206846</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-06-30 14:00:08 -0700</bug_when>
    <thetext>&lt;rdar://problem/27114739&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219942</commentid>
    <comment_count>2</comment_count>
      <attachid>286029</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-14 13:48:36 -0700</bug_when>
    <thetext>Created attachment 286029
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219943</commentid>
    <comment_count>3</comment_count>
      <attachid>286030</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-14 13:50:01 -0700</bug_when>
    <thetext>Created attachment 286030
[Image] After Patch is applied

This will appear inside &quot;Style - Rules&quot;, &quot;Style - Visual&quot;, and files in the Resources tab</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220245</commentid>
    <comment_count>4</comment_count>
      <attachid>286029</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-08-15 17:05:19 -0700</bug_when>
    <thetext>Comment on attachment 286029
Patch

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

Cool! I think this is a great first pass. I&apos;d like to get someone more familiar with spring animations to review. I just played with it briefly and it looks good to me.

Ultimately it would be really nice to show the spring curve when changing values. That makes it much easier to see what changes when you toggle values, without having to watch the ball animation, change a value, watch the animation again, and try to determine what changed. I do think the ball animation is worth keeping. It may even make sense to make it more interactive. Often times spring animations are used for interactive animations. Clicking to move the ball between different points, like the default example at &lt;https://webkit.org/demos/spring/&gt;, will be a quick way for developers to better feel and understand the values.

&gt; Source/WebInspectorUI/UserInterface/Models/Geometry.js:518
&gt; +        matches.splice(0, 1);
&gt; +        return WebInspector.Spring.fromValues(matches);

Perhaps an easier way to do this would be to slice, not splice:

    return WebInspector.Spring.fromValues(matches.slice(1));

&gt; Source/WebInspectorUI/UserInterface/Models/Geometry.js:531
&gt; +        let values = [this.mass, this.stiffness, this.damping, this.initialVelocity];
&gt; +        return `spring(${values.join(&quot; &quot;)})`;

Avoiding the array and join might be easier to read and be less typing:

    return `spring(${this.mass} ${this.stiffness} ${this.damping} ${this.initialVelocity})`;

&gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationTextEditor.js:1330
&gt; +                    if (type !== WebInspector.TextMarker.Type.Color
&gt; +                    &amp;&amp; type !== WebInspector.TextMarker.Type.Gradient
&gt; +                    &amp;&amp; type !== WebInspector.TextMarker.Type.CubicBezier
&gt; +                    &amp;&amp; type !== WebInspector.TextMarker.Type.Spring) {

Style: The &quot;&amp;&amp;&quot; lines should be indented one.

&gt; Source/WebInspectorUI/UserInterface/Views/CodeMirrorSpringEditingController.js:31
&gt; +    constructor(codeMirror, marker)
&gt; +    {
&gt; +        super(codeMirror, marker);
&gt; +    }

Style: Since this constructor does nothing but call the super constructor, you can drop it entirely and it will just work! The default constructor ends up being: constructor() { super(...arguments); }

&gt; Source/WebInspectorUI/UserInterface/Views/CodeMirrorTextMarkers.js:201
&gt; +    var springRegex = /(spring\([^)]+\))/g;

Style: `let`, `const` , or inline it!

&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.css:3
&gt; + * Copyright (C) 2016 Devin Rousso &lt;dcrousso+webkit@gmail.com&gt;. All rights reserved.

Nit: Might as well make this 2015-2016.

&gt; Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js:295
&gt; -    Bezier: &quot;inline-swatch-type-bezier&quot;
&gt; +    Bezier: &quot;inline-swatch-type-bezier&quot;,
&gt; +    Spring: &quot;inline-swatch-type-spring&quot;

This is why I suggest adding the trailing comma, so that future diffs are nicer!

&gt; Source/WebInspectorUI/UserInterface/Views/SpringEditor.css:52
&gt; +@keyframes springPreview {

Style: All other inspector animation names are lowercase &quot;-&quot; separated. You could name this &quot;spring-preview&quot;.

&gt; Source/WebInspectorUI/UserInterface/Views/SpringEditor.js:62
&gt; +        createInputsForParameter.call(this, &quot;mass&quot;, WebInspector.UIString(&quot;Mass&quot;));
&gt; +        this._massInput.min = this._massSlider.min = 0;

Mass must be greater than 0, it should not be equal to zero. Lets make the min 1.

&gt; Source/WebInspectorUI/UserInterface/Views/SpringEditor.js:65
&gt; +        createInputsForParameter.call(this, &quot;stiffness&quot;, WebInspector.UIString(&quot;Stiffness&quot;));
&gt; +        this._stiffnessInput.min = this._stiffnessSlider.min = 0;

Stiffness must be greater than 0, it should not be equal to zero. Lets make the min 1.

&gt; Source/WebInspectorUI/UserInterface/Views/SpringEditor.js:70
&gt; +        createInputsForParameter.call(this, &quot;initialVelocity&quot;, WebInspector.UIString(&quot;Initial Velocity&quot;));

Initial Velocity can be negative. It may make sense to provide a -100...100 slider with the default being 0 in the middle.

My naive thinking is that developers will rarely need to input an initial velocity in the popover, so its fine if the animation preview doesn&apos;t look optimal for negative values.

&gt; Source/WebInspectorUI/UserInterface/Views/SpringEditor.js:100
&gt; +    get spring()

Style: Put getters before setters.

&gt; Source/WebInspectorUI/UserInterface/Views/SpringEditor.js:155
&gt; +            if (value &lt;= 0)
&gt; +                value = 1;
&gt; +            this._spring.mass = this._massInput.value = this._massSlider.value = value;
&gt; +            break;

Love the `a = b = c` style! You could also inline the min value. `a = b = c = Math.min(1, value)`, which makes the checks clearer anyways.

&gt; Source/WebInspectorUI/UserInterface/Views/SpringEditor.js:183
&gt; +        // Add extra 25% to ensure that the &quot;delay&quot; time of the animation does not shorten the spring

Style: End comment with a period.

Adding 25% might be overkill. For a very slow spring, 25% could be massive. It may be better to add a fixed 1s or 2s to the duration.

Given you have duration, does that seem worth displaying somewhere? In testing I had some seemingly very slow springs. Showing a running clock 0...5.5 out of 5.5 timer would have been nice so I could see that it was running!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220722</commentid>
    <comment_count>5</comment_count>
      <attachid>286029</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-16 19:27:22 -0700</bug_when>
    <thetext>Comment on attachment 286029
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/SpringEditor.js:183
&gt;&gt; +        // Add extra 25% to ensure that the &quot;delay&quot; time of the animation does not shorten the spring
&gt; 
&gt; Style: End comment with a period.
&gt; 
&gt; Adding 25% might be overkill. For a very slow spring, 25% could be massive. It may be better to add a fixed 1s or 2s to the duration.
&gt; 
&gt; Given you have duration, does that seem worth displaying somewhere? In testing I had some seemingly very slow springs. Showing a running clock 0...5.5 out of 5.5 timer would have been nice so I could see that it was running!

Is it possible to add a fixed amount to an animation that is iterating infinitely?  That is the reason that I add the 25% &quot;padding&quot; (see &quot;spring-preview&quot; in SpringEditor.css).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220724</commentid>
    <comment_count>6</comment_count>
      <attachid>286253</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-16 19:29:36 -0700</bug_when>
    <thetext>Created attachment 286253
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220725</commentid>
    <comment_count>7</comment_count>
      <attachid>286254</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-16 19:29:54 -0700</bug_when>
    <thetext>Created attachment 286254
[Image] After Patch is applied</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220728</commentid>
    <comment_count>8</comment_count>
      <attachid>286255</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-16 19:33:19 -0700</bug_when>
    <thetext>Created attachment 286255
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220946</commentid>
    <comment_count>9</comment_count>
      <attachid>286323</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-17 13:47:52 -0700</bug_when>
    <thetext>Created attachment 286323
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222089</commentid>
    <comment_count>10</comment_count>
      <attachid>286323</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-08-22 20:40:22 -0700</bug_when>
    <thetext>Comment on attachment 286323
Patch

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

r=me! I didn&apos;t apply this new version, but the code changes look good to me.

&gt; Source/WebInspectorUI/ChangeLog:109
&gt; +        * UserInterface/Views/VisualStyleTimingEditor.js:

Everywhere where there are newlines in this ChangeLog is an opportunity to provide a description about the changes you&apos;ve added. Particularly for new files.

&gt; Source/WebInspectorUI/UserInterface/Base/Utilities.js:1041
&gt; +    value: function(decimals)

Style: value(decimals)

&gt; Source/WebInspectorUI/UserInterface/Base/Utilities.js:1043
&gt; +        let power = 10 ** decimals;

I didn&apos;t know we supported exponentiation yet! Wow!

&gt; Source/WebInspectorUI/UserInterface/Controllers/CodeMirrorSpringEditingController.js:28
&gt; +    constructor(codeMirror, marker)

You can drop this constructor, the default should work just fine.

&gt; Source/WebInspectorUI/UserInterface/Models/Geometry.js:485
&gt; +        this.mass = mass &gt; 0 ? mass : 1;
&gt; +        this.stiffness = stiffness &gt; 0 ? stiffness : 1;

I think Math.max(1, ...) would be clearer here.

&gt; Source/WebInspectorUI/UserInterface/Models/Geometry.js:501
&gt; +        return new WebInspector.Spring(values[0], values[1], values[2], values[3]);

Style: new WebInspector.Spring(...values)

&gt; Source/WebInspectorUI/UserInterface/Models/TextMarker.js:87
&gt; +    Spring: &quot;text-marker-type-spring&quot;

Style: Add trailing comma.

&gt; Source/WebInspectorUI/UserInterface/Views/SpringEditor.css:72
&gt; +    content: attr(data-duration) &quot;s&quot;;

Clever!

&gt; Source/WebInspectorUI/UserInterface/Views/SpringEditor.js:63
&gt; +            this[`_${id}Slider`] = row.createChild(&quot;input&quot;);
&gt; +            this[`_${id}Slider`].type = &quot;range&quot;;
&gt; +            this[`_${id}Slider`].addEventListener(&quot;input&quot;, this._handleNumberSliderInput.bind(this));
&gt; +            this[`_${id}Slider`].addEventListener(&quot;mousedown&quot;, this._handleNumberSliderMousedown.bind(this));
&gt; +            this[`_${id}Slider`].addEventListener(&quot;mouseup&quot;, this._handleNumberSliderMouseup.bind(this));
&gt; +
&gt; +            this[`_${id}Input`] = row.createChild(&quot;input&quot;);
&gt; +            this[`_${id}Input`].type = &quot;number&quot;;
&gt; +            this[`_${id}Input`].addEventListener(&quot;input&quot;, this._handleNumberInputInput.bind(this));
&gt; +            this[`_${id}Input`].addEventListener(&quot;keydown&quot;, this._handleNumberInputKeydown.bind(this));

Nit: I don&apos;t like the idea of unnecessarily generating these property key strings lots of times. lets put them into a local.

&gt; Source/WebInspectorUI/UserInterface/Views/SpringEditor.js:169
&gt; +            this._spring.damping = Math.max(1, value);

Damping minimum is 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222153</commentid>
    <comment_count>11</comment_count>
      <attachid>286684</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-22 23:55:38 -0700</bug_when>
    <thetext>Created attachment 286684
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222162</commentid>
    <comment_count>12</comment_count>
      <attachid>286684</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-23 00:25:07 -0700</bug_when>
    <thetext>Comment on attachment 286684
Patch

Clearing flags on attachment: 286684

Committed r204775: &lt;http://trac.webkit.org/changeset/204775&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222163</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-23 00:25:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286029</attachid>
            <date>2016-08-14 13:48:36 -0700</date>
            <delta_ts>2016-08-16 19:29:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159315-20160814134653.patch</filename>
            <type>text/plain</type>
            <size>44549</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDc3YjliMjNiYjA0ZWZiMGVjNTMzZWI4MDU2NGEy
NDdkNzFmZjJiZWMuLjgyZmM1OWMwMzQzYWU0NTU1YTEzNzRlNmQ2OTlhMjAzYzFhYmE1MTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMyBAQAorMjAxNi0wOC0xNCAgRGV2
aW4gUm91c3NvICA8ZGNyb3Vzc28rd2Via2l0QGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBBZGQgdmlzdWFsIGVkaXRvciBmb3Igc3ByaW5nKCkgdGltaW5nLWZ1bmN0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTkzMTUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIExvY2FsaXph
dGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL01haW4uaHRtbDoKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0dlb21ldHJ5
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU3ByaW5nLmZyb21WYWx1ZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZy5mcm9t
U3RyaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TcHJpbmcucHJvdG90eXBlLmNvcHkpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZy5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlNwcmluZy5wcm90b3R5cGUuc29sdmUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNwcmluZy5wcm90b3R5cGUuY2FsY3VsYXRlRHVyYXRpb24pOgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9Nb2RlbHMvVGV4dE1hcmtlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5UZXh0TWFya2VyLlR5cGUpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DU1NT
dHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NT
dHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvci5wcm90b3R5cGUuX2NyZWF0ZUlubGluZVN3YXRjaGVz
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvci5w
cm90b3R5cGUuX2NyZWF0ZUlubGluZVN3YXRjaGVzLnVwZGF0ZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IucHJvdG90eXBlLl9pbmxpbmVTd2F0
Y2hWYWx1ZUNoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRp
b25UZXh0RWRpdG9yLnByb3RvdHlwZS5faW5saW5lU3dhdGNoVmFsdWVDaGFuZ2VkLnVwZGF0ZSk6
CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JTcHJpbmdFZGl0aW5n
Q29udHJvbGxlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2RlTWlycm9yU3ByaW5nRWRp
dGluZ0NvbnRyb2xsZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvZGVNaXJyb3JTcHJpbmdF
ZGl0aW5nQ29udHJvbGxlci5wcm90b3R5cGUuZ2V0IGluaXRpYWxWYWx1ZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ29kZU1pcnJvclNwcmluZ0VkaXRpbmdDb250cm9sbGVyLnByb3RvdHlwZS5n
ZXQgY3NzQ2xhc3NOYW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2RlTWlycm9yU3ByaW5n
RWRpdGluZ0NvbnRyb2xsZXIucHJvdG90eXBlLnBvcG92ZXJXaWxsUHJlc2VudCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ29kZU1pcnJvclNwcmluZ0VkaXRpbmdDb250cm9sbGVyLnByb3RvdHlw
ZS5wb3BvdmVyRGlkUHJlc2VudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29kZU1pcnJvclNw
cmluZ0VkaXRpbmdDb250cm9sbGVyLnByb3RvdHlwZS5wb3BvdmVyRGlkRGlzbWlzcyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ29kZU1pcnJvclNwcmluZ0VkaXRpbmdDb250cm9sbGVyLnByb3Rv
dHlwZS5fc3ByaW5nRWRpdG9yU3ByaW5nQ2hhbmdlZCk6CisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL0NvZGVNaXJyb3JUZXh0TWFya2Vycy5qczoKKyAgICAgICAgKGNyZWF0ZUNvZGVN
aXJyb3JTcHJpbmdUZXh0TWFya2Vycyk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L0lubGluZVN3YXRjaC5jc3M6CisgICAgICAgICguaW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXpp
ZXIsIC5zcHJpbmcpKToKKyAgICAgICAgKC5pbmxpbmUtc3dhdGNoOm1hdGNoZXMoLmJlemllciwg
LnNwcmluZyk6aG92ZXIpOgorICAgICAgICAoLmlubGluZS1zd2F0Y2g6bWF0Y2hlcyguYmV6aWVy
LCAuc3ByaW5nKTphY3RpdmUpOgorICAgICAgICAoLmlubGluZS1zd2F0Y2g6bWF0Y2hlcyguYmV6
aWVyLCAuc3ByaW5nKSA+IHNwYW4pOgorICAgICAgICAoLmlubGluZS1zd2F0Y2guYmV6aWVyKTog
RGVsZXRlZC4KKyAgICAgICAgKC5pbmxpbmUtc3dhdGNoLmJlemllcjpob3Zlcik6IERlbGV0ZWQu
CisgICAgICAgICguaW5saW5lLXN3YXRjaC5iZXppZXI6YWN0aXZlKTogRGVsZXRlZC4KKyAgICAg
ICAgKC5pbmxpbmUtc3dhdGNoLmJlemllciA+IHNwYW4pOiBEZWxldGVkLgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9JbmxpbmVTd2F0Y2guanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuSW5saW5lU3dhdGNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2gucHJv
dG90eXBlLl9mYWxsYmFja1ZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0
Y2gucHJvdG90eXBlLl9zd2F0Y2hFbGVtZW50Q2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuSW5saW5lU3dhdGNoLnByb3RvdHlwZS5fdmFsdWVFZGl0b3JWYWx1ZURpZENoYW5nZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUpOgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9Tb3VyY2VDb2RlVGV4dEVkaXRvci5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvci5wcm90b3R5cGUuX3VwZGF0ZUVkaXRhYmxlTWFy
a2Vycyk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmluZ0VkaXRvci5jc3M6
CisgICAgICAgICguc3ByaW5nLWVkaXRvcik6CisgICAgICAgICguc3ByaW5nLWVkaXRvciA+IC5z
cHJpbmctcHJldmlldyk6CisgICAgICAgICguc3ByaW5nLWVkaXRvciA+IC5zcHJpbmctcHJldmll
dyA+IGRpdik6CisgICAgICAgICguc3ByaW5nLWVkaXRvciA+IC5zcHJpbmctcHJldmlldy5hbmlt
YXRlID4gZGl2KToKKyAgICAgICAgKC5zcHJpbmctZWRpdG9yID4gLm51bWJlci1pbnB1dC1jb250
YWluZXIgPiAubnVtYmVyLWlucHV0LXJvdyk6CisgICAgICAgICguc3ByaW5nLWVkaXRvciA+IC5u
dW1iZXItaW5wdXQtY29udGFpbmVyID4gLm51bWJlci1pbnB1dC1yb3cgPiAubnVtYmVyLWlucHV0
LXJvdy10aXRsZSk6CisgICAgICAgICguc3ByaW5nLWVkaXRvciA+IC5udW1iZXItaW5wdXQtY29u
dGFpbmVyID4gLm51bWJlci1pbnB1dC1yb3cgPiBpbnB1dCk6CisgICAgICAgICguc3ByaW5nLWVk
aXRvciA+IC5udW1iZXItaW5wdXQtY29udGFpbmVyID4gLm51bWJlci1pbnB1dC1yb3cgPiBpbnB1
dFt0eXBlPSJyYW5nZSJdKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU3ByaW5n
RWRpdG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZ0VkaXRvcik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU3ByaW5nRWRpdG9yLnByb3RvdHlwZS5nZXQgZWxlbWVudCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU3ByaW5nRWRpdG9yLnByb3RvdHlwZS5zZXQgc3ByaW5nKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TcHJpbmdFZGl0b3IucHJvdG90eXBlLmdldCBzcHJpbmcpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZ0VkaXRvci5wcm90b3R5cGUuX2hhbmRsZU51bWJl
cklucHV0SW5wdXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZ0VkaXRvci5wcm90b3R5
cGUuX2hhbmRsZU51bWJlcklucHV0S2V5ZG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3By
aW5nRWRpdG9yLnByb3RvdHlwZS5faGFuZGxlTnVtYmVyU2xpZGVySW5wdXQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNwcmluZ0VkaXRvci5wcm90b3R5cGUuX2hhbmRsZU51bWJlclNsaWRlck1v
dXNlZG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3ByaW5nRWRpdG9yLnByb3RvdHlwZS5f
aGFuZGxlTnVtYmVyU2xpZGVyTW91c2V1cCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3ByaW5n
RWRpdG9yLnByb3RvdHlwZS5fY2hhbmdlU3ByaW5nRm9ySW5wdXQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNwcmluZ0VkaXRvci5wcm90b3R5cGUuX3VwZGF0ZVByZXZpZXdBbmltYXRpb24pOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZ0VkaXRvci5wcm90b3R5cGUuX3Jlc2V0UHJldmll
d0FuaW1hdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3ByaW5nRWRpdG9yLkV2ZW50KToK
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVGV4dEVkaXRvci5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZS5jcmVhdGVTcHJpbmdNYXJrZXJzKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZS5lZGl0aW5nQ29udHJv
bGxlckZvck1hcmtlcik6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0
eWxlVGltaW5nRWRpdG9yLmNzczoKKyAgICAgICAgKC52aXN1YWwtc3R5bGUtcHJvcGVydHktY29u
dGFpbmVyLnRpbWluZy1lZGl0b3IgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRh
aW5lciA+IC5pbmxpbmUtc3dhdGNoOm1hdGNoZXMoLmJlemllciwgLnNwcmluZykpOgorICAgICAg
ICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIudGltaW5nLWVkaXRvciA+IC52aXN1
YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyOm5vdCguc3ByaW5nLXZhbHVlKSA+IC5p
bmxpbmUtc3dhdGNoLnNwcmluZyk6CisgICAgICAgICgudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNv
bnRhaW5lci50aW1pbmctZWRpdG9yID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250
YWluZXIgPiAuaW5saW5lLXN3YXRjaC5iZXppZXIpOiBEZWxldGVkLgorICAgICAgICAoLnZpc3Vh
bC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIudGltaW5nLWVkaXRvciA+IC52aXN1YWwtc3R5bGUt
cHJvcGVydHktdmFsdWUtY29udGFpbmVyOm5vdCguYmV6aWVyLXZhbHVlKSA+IC5pbmxpbmUtc3dh
dGNoLmJlemllcik6IERlbGV0ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zp
c3VhbFN0eWxlVGltaW5nRWRpdG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0
eWxlVGltaW5nRWRpdG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVRpbWlu
Z0VkaXRvci5wcm90b3R5cGUuZ2V0IHZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1
YWxTdHlsZVRpbWluZ0VkaXRvci5wcm90b3R5cGUuc2V0IHZhbHVlKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5WaXN1YWxTdHlsZVRpbWluZ0VkaXRvci5wcm90b3R5cGUuZ2V0IHN5bnRoZXNpemVk
VmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlVGltaW5nRWRpdG9yLnBy
b3RvdHlwZS5wYXJzZVZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVRp
bWluZ0VkaXRvci5wcm90b3R5cGUuZ2V0IF9iZXppZXJWYWx1ZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVmlzdWFsU3R5bGVUaW1pbmdFZGl0b3IucHJvdG90eXBlLnNldCBfYmV6aWVyVmFsdWUp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlVGltaW5nRWRpdG9yLnByb3RvdHlw
ZS5nZXQgX3NwcmluZ1ZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVRp
bWluZ0VkaXRvci5wcm90b3R5cGUuc2V0IF9zcHJpbmdWYWx1ZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVmlzdWFsU3R5bGVUaW1pbmdFZGl0b3IucHJvdG90eXBlLl9oYW5kbGVLZXl3b3JkQ2hh
bmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVUaW1pbmdFZGl0b3IucHJv
dG90eXBlLl9zcHJpbmdTd2F0Y2hWYWx1ZUNoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlZpc3VhbFN0eWxlVGltaW5nRWRpdG9yLnByb3RvdHlwZS5nZXQgYmV6aWVyVmFsdWUpOiBSZW5h
bWVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlVGltaW5nRWRpdG9yLnByb3Rv
dHlwZS5zZXQgYmV6aWVyVmFsdWUpOiBSZW5hbWVkLgorCiAyMDE2LTA4LTEyICBUaW1vdGh5IEhh
dGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQg
YXBwbGljYXRpb24vdm5kLmFwaStqc29uIGFzIGEgdmFsaWQgSlNPTiBNSU1FLXR5cGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2Fs
aXplZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5s
cHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IDk5OTk2MjM2MDZkM2JmOGU3NDJmZDMwZmJi
YTk3NDdlMjhiNmY1OGUuLmYzZWFmY2U1ZDVhNzUyZTY3MTgzNDY4MzVkZGE1YjY2ODM4NTI5MWMg
MTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgMzQ4CnpjbWVBPSVsaHNqPnhSNDl2WilNSjQ0
RGs2M2BHbnw0NnpJZjQ3TmI1I05ZJUowZzZ2SGMmNU1rdylRbTkkXlJZcgp6eFFpSklmWFhyJUAp
Kik1VXZSSiRNJmJpQ3I4MTsyV0tLNypWPkkzekA4fXtrYEQ1JVYqPDdGd3V6RDIzVF5KRz4KemZI
SVI4VHIhK3xIOyFaVHs1WkNGJU4oRSlWTChIMjgxZm1DZnRwR2ZEcDUzZjA8OHMhVyYkOyVzR1ZM
SCQ3cn5ECno9SDZSRXFRd2x3RDArTj5ZS3RjP1ZBOT4zZV8+VERHdGwrWkgpdTE4R1p1bFlwOGl7
KGshUU5NOTs0ODlRJDBvdgp6Uj9TUj9HJDcwYXgmaHNzVjZlUyMrMzU/KzchOVl0SChfTCgtZmhl
JUdKVTV1KDRlXntqMnpwNi0yWC1aUXRWbmEKCmRlbHRhIDkyCnpjbWFFTmsrdGhBPnhSNDlvMyhZ
T2g7R2h4R0xsaHJXKy1KU1crLTlFWFVKdHhWdSlvPlY2WCpaQj9oP29xfDNVSwpwPWZ8enVKVWdC
JWV6V3hjYjMmVy1GRDtBUnU1N15RIWE3fndqRkR+b2FaXlRoVipxNkg5ZDdedAoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbCBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAppbmRleCA1MjVjZjEyOTgz
N2ZjN2I5Njk3YmYwZGMzMGUyYjcxNmM2YmUxMjliLi41MzQ2ODFhZTQ1ZjVmMDMzYzkyOTU3Njkw
NWRlNWQ1NTRlODQzZTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9NYWluLmh0bWwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTWFpbi5odG1sCkBAIC0xNTEsNiArMTUxLDcgQEAKICAgICA8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9IlZpZXdzL1NpZGViYXJQYW5lbC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iVmlld3MvU2xpZGVyLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSJWaWV3cy9Tb3VyY2VDb2RlVGV4dEVkaXRvci5jc3MiPgorICAgIDxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iVmlld3MvU3ByaW5nRWRpdG9yLmNzcyI+CiAgICAgPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9TdGFja1RyYWNlVmlldy5jc3MiPgogICAgIDxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvU3RvcmFnZVNpZGViYXJQYW5lbC5jc3MiPgog
ICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvU3R5bGVSdWxlSWNvbnMuY3Nz
Ij4KQEAgLTYyMSw2ICs2MjIsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9Tb3VyY2VDb2Rl
VGltZWxpbmVUaW1lbGluZURhdGFHcmlkTm9kZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IlZpZXdzL1NvdXJjZUNvZGVUaW1lbGluZVRyZWVFbGVtZW50LmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iVmlld3MvU291cmNlTWFwUmVzb3VyY2VUcmVlRWxlbWVudC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1NwcmluZ0VkaXRvci5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1N0YWNrVHJhY2VWaWV3LmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iVmlld3MvU3RhY2tlZExpbmVDaGFydC5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9IlZpZXdzL1N0b3JhZ2VTaWRlYmFyUGFuZWwuanMiPjwvc2NyaXB0PgpAQCAt
NjgwLDYgKzY4Miw3IEBACiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0NvZGVNaXJyb3JC
ZXppZXJFZGl0aW5nQ29udHJvbGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNv
bnRyb2xsZXJzL0NvZGVNaXJyb3JEcmFnVG9BZGp1c3ROdW1iZXJDb250cm9sbGVyLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQ29kZU1pcnJvckdyYWRpZW50RWRp
dGluZ0NvbnRyb2xsZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVy
cy9Db2RlTWlycm9yU3ByaW5nRWRpdGluZ0NvbnRyb2xsZXIuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJDb250cm9sbGVycy9Db2RlTWlycm9yVG9rZW5UcmFja2luZ0NvbnRyb2xsZXIu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9Db2RlTWlycm9yVGV4
dEtpbGxDb250cm9sbGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxl
cnMvRE9NVHJlZU1hbmFnZXIuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0dlb21ldHJ5LmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0dlb21ldHJ5LmpzCmluZGV4IDU5MTBjNjZk
MzJjYjk5YTQ0NjVmNjlmZWYzOTVkNGM1NWJiMzYzZDAuLjkzZmNiMWM0NTFlZmI0ZmIyNDY1ZDJm
OGJmZmI1YWI0MDAyZDA0YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01vZGVscy9HZW9tZXRyeS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvR2VvbWV0cnkuanMKQEAgLTQ3NiwzICs0NzYsOTggQEAgV2Vi
SW5zcGVjdG9yLkN1YmljQmV6aWVyLmtleXdvcmRWYWx1ZXMgPSB7CiAgICAgImVhc2UtaW4tb3V0
IjogIFswLjQyLCAwLCAwLjU4LCAxXSwKICAgICAibGluZWFyIjogICAgICAgWzAsIDAsIDEsIDFd
CiB9OworCitXZWJJbnNwZWN0b3IuU3ByaW5nID0gY2xhc3MgU3ByaW5nCit7CisgICAgY29uc3Ry
dWN0b3IobWFzcywgc3RpZmZuZXNzLCBkYW1waW5nLCBpbml0aWFsVmVsb2NpdHkpCisgICAgewor
ICAgICAgICB0aGlzLm1hc3MgPSBtYXNzID4gMCA/IG1hc3MgOiAxOworICAgICAgICB0aGlzLnN0
aWZmbmVzcyA9IHN0aWZmbmVzcyA+IDAgPyBzdGlmZm5lc3MgOiAxOworICAgICAgICB0aGlzLmRh
bXBpbmcgPSBNYXRoLm1heCgwLCBkYW1waW5nKTsKKyAgICAgICAgdGhpcy5pbml0aWFsVmVsb2Np
dHkgPSBpbml0aWFsVmVsb2NpdHk7CisgICAgfQorCisgICAgLy8gU3RhdGljCisKKyAgICBzdGF0
aWMgZnJvbVZhbHVlcyh2YWx1ZXMpCisgICAgeworICAgICAgICBpZiAoIXZhbHVlcyB8fCB2YWx1
ZXMubGVuZ3RoIDwgNCkKKyAgICAgICAgICAgIHJldHVybiBudWxsOworCisgICAgICAgIHZhbHVl
cyA9IHZhbHVlcy5tYXAoTnVtYmVyKTsKKyAgICAgICAgaWYgKHZhbHVlcy5pbmNsdWRlcyhOYU4p
KQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNw
ZWN0b3IuU3ByaW5nKHZhbHVlc1swXSwgdmFsdWVzWzFdLCB2YWx1ZXNbMl0sIHZhbHVlc1szXSk7
CisgICAgfQorCisgICAgc3RhdGljIGZyb21TdHJpbmcodGV4dCkKKyAgICB7CisgICAgICAgIGlm
ICghdGV4dCB8fCAhdGV4dC5sZW5ndGgpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAg
ICAgICBsZXQgdHJpbW1lZFRleHQgPSB0ZXh0LnRvTG93ZXJDYXNlKCkudHJpbSgpOworICAgICAg
ICBpZiAoIXRyaW1tZWRUZXh0Lmxlbmd0aCkKKyAgICAgICAgICAgIHJldHVybiBudWxsOworCisg
ICAgICAgIGxldCBtYXRjaGVzID0gdHJpbW1lZFRleHQubWF0Y2goL15zcHJpbmdcKChbXGQuXSsp
XHMrKFtcZC5dKylccysoW1xkLl0rKVxzKyhbLVxkLl0rKVwpJC8pOworICAgICAgICBpZiAoIW1h
dGNoZXMpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAgICBtYXRjaGVzLnNwbGlj
ZSgwLCAxKTsKKyAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5TcHJpbmcuZnJvbVZhbHVlcyht
YXRjaGVzKTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGNvcHkoKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuU3ByaW5nKHRoaXMubWFzcywgdGhpcy5zdGlm
Zm5lc3MsIHRoaXMuZGFtcGluZywgdGhpcy5pbml0aWFsVmVsb2NpdHkpOworICAgIH0KKworICAg
IHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIGxldCB2YWx1ZXMgPSBbdGhpcy5tYXNzLCB0aGlz
LnN0aWZmbmVzcywgdGhpcy5kYW1waW5nLCB0aGlzLmluaXRpYWxWZWxvY2l0eV07CisgICAgICAg
IHJldHVybiBgc3ByaW5nKCR7dmFsdWVzLmpvaW4oIiAiKX0pYDsKKyAgICB9CisKKyAgICBzb2x2
ZSh0KQorICAgIHsKKyAgICAgICAgbGV0IHcwID0gTWF0aC5zcXJ0KHRoaXMuc3RpZmZuZXNzIC8g
dGhpcy5tYXNzKTsKKyAgICAgICAgbGV0IHpldGEgPSB0aGlzLmRhbXBpbmcgLyAoMiAqIE1hdGgu
c3FydCh0aGlzLnN0aWZmbmVzcyAqIHRoaXMubWFzcykpOworCisgICAgICAgIGxldCB3ZCA9IDA7
CisgICAgICAgIGxldCBBID0gMTsKKyAgICAgICAgbGV0IEIgPSAtdGhpcy5pbml0aWFsVmVsb2Np
dHkgKyB3MDsKKyAgICAgICAgaWYgKHpldGEgPCAxKSB7CisgICAgICAgICAgICAvLyBVbmRlci1k
YW1wZWQuCisgICAgICAgICAgICB3ZCA9IHcwICogTWF0aC5zcXJ0KDEgLSB6ZXRhICogemV0YSk7
CisgICAgICAgICAgICBBID0gMTsKKyAgICAgICAgICAgIEIgPSAoemV0YSAqIHcwICsgLXRoaXMu
aW5pdGlhbFZlbG9jaXR5KSAvIHdkOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHpldGEgPCAx
KSAvLyBVbmRlci1kYW1wZWQKKyAgICAgICAgICAgIHQgPSBNYXRoLmV4cCgtdCAqIHpldGEgKiB3
MCkgKiAoQSAqIE1hdGguY29zKHdkICogdCkgKyBCICogTWF0aC5zaW4od2QgKiB0KSk7CisgICAg
ICAgIGVsc2UgLy8gQ3JpdGljYWxseSBkYW1wZWQgKGlnbm9yaW5nIG92ZXItZGFtcGVkIGNhc2Up
LgorICAgICAgICAgICAgdCA9IChBICsgQiAqIHQpICogTWF0aC5leHAoLXQgKiB3MCk7CisKKyAg
ICAgICAgcmV0dXJuIDEgLSB0OyAvLyBNYXAgcmFuZ2UgZnJvbSBbMS4uMF0gdG8gWzAuLjFdLgor
ICAgIH0KKworICAgIGNhbGN1bGF0ZUR1cmF0aW9uKGVwc2lsb24pCisgICAgeworICAgICAgICBl
cHNpbG9uID0gZXBzaWxvbiB8fCAwLjAwMDE7CisgICAgICAgIGxldCB0ID0gMDsKKyAgICAgICAg
bGV0IGN1cnJlbnQgPSAwOworICAgICAgICBsZXQgbWluaW11bSA9IE51bWJlci5QT1NJVElWRV9J
TkZJTklUWTsKKyAgICAgICAgd2hpbGUgKGN1cnJlbnQgPj0gZXBzaWxvbiB8fCBtaW5pbXVtID49
IGVwc2lsb24pIHsKKyAgICAgICAgICAgIGN1cnJlbnQgPSBNYXRoLmFicygxIC0gdGhpcy5zb2x2
ZSh0KSk7IC8vIFVuZG8gdGhlIHJhbmdlIG1hcHBpbmcKKyAgICAgICAgICAgIGlmIChtaW5pbXVt
IDwgZXBzaWxvbiAmJiBjdXJyZW50ID49IGVwc2lsb24pCisgICAgICAgICAgICAgICAgbWluaW11
bSA9IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTsgLy8gU3ByaW5nIHJldmVyc2VkIGRpcmVjdGlv
bgorICAgICAgICAgICAgZWxzZSBpZiAoY3VycmVudCA8IG1pbmltdW0pCisgICAgICAgICAgICAg
ICAgbWluaW11bSA9IGN1cnJlbnQ7CisgICAgICAgICAgICB0ICs9IDAuMTsKKyAgICAgICAgfQor
ICAgICAgICByZXR1cm4gdDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVGV4dE1hcmtlci5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9UZXh0TWFya2VyLmpzCmluZGV4IDMyMjBhMjQ4
MTMxOGE1YjJmOTk2MTI1ZTNmMWVmMTJkOGNlN2IxNDMuLjlmMjUyMmNhMWI1MzQ5ODA5OTZmM2E1
ZDIxZTZkMDA2OTI4MjdkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01vZGVscy9UZXh0TWFya2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9UZXh0TWFya2VyLmpzCkBAIC04Myw1ICs4Myw2IEBAIFdl
Ykluc3BlY3Rvci5UZXh0TWFya2VyLlR5cGUgPSB7CiAgICAgQ29sb3I6ICJ0ZXh0LW1hcmtlci10
eXBlLWNvbG9yIiwKICAgICBHcmFkaWVudDogInRleHQtbWFya2VyLXR5cGUtZ3JhZGllbnQiLAog
ICAgIFBsYWluOiAidGV4dC1tYXJrZXItdHlwZS1wbGFpbiIsCi0gICAgQ3ViaWNCZXppZXI6ICJ0
ZXh0LW1hcmtlci10eXBlLWN1YmljLWJlemllciIKKyAgICBDdWJpY0JlemllcjogInRleHQtbWFy
a2VyLXR5cGUtY3ViaWMtYmV6aWVyIiwKKyAgICBTcHJpbmc6ICJ0ZXh0LW1hcmtlci10eXBlLXNw
cmluZyIKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvci5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9y
LmpzCmluZGV4IDU4MDVlZDI2MDNkZTJjZDg2MjlmYTdlNTgzM2E1NDQ1ODcxZTZmYzguLjk4YmVl
YTMzOTUyMzEyOTA3MWU3YTQwZTdhYzVkMjVmM2E2MTk1NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25UZXh0
RWRpdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0NTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLmpzCkBAIC04ODYsNiArODg2LDEyIEBAIFdl
Ykluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvciA9IGNsYXNzIENTU1N0eWxl
RGVjbGFyYXRpb25UZXh0RWRpdG9yCiAgICAgICAgICAgICAgICAgbGV0IHN3YXRjaCA9IG5ldyBX
ZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoKFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2guVHlwZS5C
ZXppZXIsIGJlemllciwgdGhpcy5fY29kZU1pcnJvci5nZXRPcHRpb24oInJlYWRPbmx5IikpOwog
ICAgICAgICAgICAgICAgIGNyZWF0ZVN3YXRjaC5jYWxsKHRoaXMsIHN3YXRjaCwgbWFya2VyLCBi
ZXppZXIsIGJlemllclN0cmluZyk7CiAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgLy8g
TG9vayBmb3Igc3ByaW5nIHN0cmluZ3MgYW5kIGFkZCBzd2F0Y2hlcyBpbiBmcm9udCBvZiB0aGVt
LgorICAgICAgICAgICAgY3JlYXRlQ29kZU1pcnJvclNwcmluZ1RleHRNYXJrZXJzKHRoaXMuX2Nv
ZGVNaXJyb3IsIHJhbmdlLCAobWFya2VyLCBzcHJpbmcsIHNwcmluZ1N0cmluZykgPT4geworICAg
ICAgICAgICAgICAgIGxldCBzd2F0Y2ggPSBuZXcgV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaChX
ZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUuU3ByaW5nLCBzcHJpbmcsIHRoaXMuX2NvZGVN
aXJyb3IuZ2V0T3B0aW9uKCJyZWFkT25seSIpKTsKKyAgICAgICAgICAgICAgICBjcmVhdGVTd2F0
Y2guY2FsbCh0aGlzLCBzd2F0Y2gsIG1hcmtlciwgc3ByaW5nLCBzcHJpbmdTdHJpbmcpOworICAg
ICAgICAgICAgfSk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAobm9uYXRvbWljKQpAQCAtMTMx
OCw4ICsxMzI0LDEyIEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRv
ciA9IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yCiAKICAgICAgICAgICAgICAg
ICBmb3IgKGxldCBtYXJrIG9mIG1hcmtzKSB7CiAgICAgICAgICAgICAgICAgICAgIGxldCB0eXBl
ID0gV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIudGV4dE1hcmtlckZvckNvZGVNaXJyb3JUZXh0TWFy
a2VyKG1hcmspLnR5cGU7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlICE9PSBXZWJJbnNw
ZWN0b3IuVGV4dE1hcmtlci5UeXBlLkNvbG9yICYmIHR5cGUgIT09IFdlYkluc3BlY3Rvci5UZXh0
TWFya2VyLlR5cGUuR3JhZGllbnQgJiYgdHlwZSAhPT0gV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIu
VHlwZS5DdWJpY0JlemllcikKKyAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUgIT09IFdlYklu
c3BlY3Rvci5UZXh0TWFya2VyLlR5cGUuQ29sb3IKKyAgICAgICAgICAgICAgICAgICAgJiYgdHlw
ZSAhPT0gV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIuVHlwZS5HcmFkaWVudAorICAgICAgICAgICAg
ICAgICAgICAmJiB0eXBlICE9PSBXZWJJbnNwZWN0b3IuVGV4dE1hcmtlci5UeXBlLkN1YmljQmV6
aWVyCisgICAgICAgICAgICAgICAgICAgICYmIHR5cGUgIT09IFdlYkluc3BlY3Rvci5UZXh0TWFy
a2VyLlR5cGUuU3ByaW5nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB0ZXh0TWFya2VyID0gbWFy
azsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29kZU1pcnJv
clNwcmluZ0VkaXRpbmdDb250cm9sbGVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ29kZU1pcnJvclNwcmluZ0VkaXRpbmdDb250cm9sbGVyLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQ3NWI4OWU3MGVkOTU1YzA5MDA5NmEwZjU5YTM1NTk2ZjI4NDY2ODUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2Rl
TWlycm9yU3ByaW5nRWRpdGluZ0NvbnRyb2xsZXIuanMKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBEZXZpbiBSb3Vzc28gPGRjcm91c3NvK3dlYmtpdEBnbWFpbC5j
b20+LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXZWJJbnNwZWN0b3IuQ29kZU1p
cnJvclNwcmluZ0VkaXRpbmdDb250cm9sbGVyID0gY2xhc3MgQ29kZU1pcnJvclNwcmluZ0VkaXRp
bmdDb250cm9sbGVyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvZGVNaXJyb3JFZGl0aW5nQ29udHJv
bGxlcgoreworICAgIGNvbnN0cnVjdG9yKGNvZGVNaXJyb3IsIG1hcmtlcikKKyAgICB7CisgICAg
ICAgIHN1cGVyKGNvZGVNaXJyb3IsIG1hcmtlcik7CisgICAgfQorCisgICAgLy8gUHVibGljCisK
KyAgICBnZXQgaW5pdGlhbFZhbHVlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0
b3IuU3ByaW5nLmZyb21TdHJpbmcodGhpcy50ZXh0KTsKKyAgICB9CisKKyAgICBnZXQgY3NzQ2xh
c3NOYW1lKCkKKyAgICB7CisgICAgICAgIHJldHVybiAic3ByaW5nIjsKKyAgICB9CisKKyAgICBw
b3BvdmVyV2lsbFByZXNlbnQocG9wb3ZlcikKKyAgICB7CisgICAgICAgIHRoaXMuX3NwcmluZ0Vk
aXRvciA9IG5ldyBXZWJJbnNwZWN0b3IuU3ByaW5nRWRpdG9yOworICAgICAgICB0aGlzLl9zcHJp
bmdFZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuU3ByaW5nRWRpdG9yLkV2ZW50
LlNwcmluZ0NoYW5nZWQsIHRoaXMuX3NwcmluZ0VkaXRvclNwcmluZ0NoYW5nZWQsIHRoaXMpOwor
ICAgICAgICBwb3BvdmVyLmNvbnRlbnQgPSB0aGlzLl9zcHJpbmdFZGl0b3IuZWxlbWVudDsKKyAg
ICB9CisKKyAgICBwb3BvdmVyRGlkUHJlc2VudChwb3BvdmVyKQorICAgIHsKKyAgICAgICAgdGhp
cy5fc3ByaW5nRWRpdG9yLnNwcmluZyA9IHRoaXMudmFsdWU7CisgICAgfQorCisgICAgcG9wb3Zl
ckRpZERpc21pc3MocG9wb3ZlcikKKyAgICB7CisgICAgICAgIHRoaXMuX3NwcmluZ0VkaXRvci5y
ZW1vdmVMaXN0ZW5lcnMoKTsKKyAgICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBfc3ByaW5n
RWRpdG9yU3ByaW5nQ2hhbmdlZChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMudmFsdWUgPSBl
dmVudC5kYXRhLnNwcmluZzsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29kZU1pcnJvclRleHRNYXJrZXJzLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29kZU1pcnJvclRleHRNYXJr
ZXJzLmpzCmluZGV4IGMzMWM4NjZlNGI5OGM2N2E5YThlNTdkMGQyNGRkNzVmY2FhOWJlOWYuLjE4
Y2E0MTc0MDFkZjkyYzhmZWU0MDIzZWIwODY2MzAzMTY0YWM3YzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JUZXh0TWFya2Vy
cy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2Rl
TWlycm9yVGV4dE1hcmtlcnMuanMKQEAgLTE5NSwzICsxOTUsOSBAQCBmdW5jdGlvbiBjcmVhdGVD
b2RlTWlycm9yQ3ViaWNCZXppZXJUZXh0TWFya2Vycyhjb2RlTWlycm9yLCByYW5nZSwgY2FsbGJh
Y2spCiAgICAgdmFyIGN1YmljQmV6aWVyUmVnZXggPSAvKGN1YmljLWJlemllclwoW14pXStcKXxc
Ylx3K1xiKD86LVxiXHcrXGIpezAsMn0pL2c7CiAgICAgcmV0dXJuIGNyZWF0ZUNvZGVNaXJyb3JU
ZXh0TWFya2VycygiQ3ViaWNCZXppZXIiLCBjdWJpY0JlemllclJlZ2V4LCBudWxsLCBjb2RlTWly
cm9yLCByYW5nZSwgY2FsbGJhY2spOwogfQorCitmdW5jdGlvbiBjcmVhdGVDb2RlTWlycm9yU3By
aW5nVGV4dE1hcmtlcnMoY29kZU1pcnJvciwgcmFuZ2UsIGNhbGxiYWNrKQoreworICAgIHZhciBz
cHJpbmdSZWdleCA9IC8oc3ByaW5nXChbXildK1wpKS9nOworICAgIHJldHVybiBjcmVhdGVDb2Rl
TWlycm9yVGV4dE1hcmtlcnMoIlNwcmluZyIsIHNwcmluZ1JlZ2V4LCBudWxsLCBjb2RlTWlycm9y
LCByYW5nZSwgY2FsbGJhY2spOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvSW5saW5lU3dhdGNoLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lubGluZVN3YXRjaC5jc3MKaW5kZXggMTFmNmU2Mzhl
NzNiNDBjZmVhNTUxYmZjNzkyOTFmZDRlOWU0YTEzMS4uM2U0MWY3MmIzYjQyNmQ2ZThkZDI5ZWU2
MmE2ZmI1MDI4M2U3NzM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvSW5saW5lU3dhdGNoLmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9JbmxpbmVTd2F0Y2guY3NzCkBAIC0xLDYgKzEsNiBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgRGV2aW4gUm91c3NvIDxkY3JvdXNzbyt3ZWJraXRAZ21h
aWwuY29tPi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNiBEZXZp
biBSb3Vzc28gPGRjcm91c3NvK3dlYmtpdEBnbWFpbC5jb20+LiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MywxNyArNDMsMjAgQEAKICAg
ICBjdXJzb3I6IGRlZmF1bHQ7CiB9CiAKLS5pbmxpbmUtc3dhdGNoLmJlemllciB7Ci0gICAgbWFy
Z2luLXJpZ2h0OiAycHg7CisuaW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXppZXIsIC5zcHJpbmcp
IHsKICAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL0N1YmljQmV6aWVyLnN2Zyk7Cit9CisKKy5p
bmxpbmUtc3dhdGNoOm1hdGNoZXMoLmJlemllciwgLnNwcmluZykgeworICAgIG1hcmdpbi1yaWdo
dDogMnB4OwogICAgIGJhY2tncm91bmQ6IG5vbmU7CiB9CiAKLS5pbmxpbmUtc3dhdGNoLmJlemll
cjpob3ZlciB7CisuaW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXppZXIsIC5zcHJpbmcpOmhvdmVy
IHsKICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMC45KTsKIH0KIAotLmlubGluZS1zd2F0Y2guYmV6
aWVyOmFjdGl2ZSB7CisuaW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXppZXIsIC5zcHJpbmcpOmFj
dGl2ZSB7CiAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDAuOCk7CiB9CiAKQEAgLTg1LDcgKzg4LDcg
QEAKICAgICBib3JkZXItY29sb3I6IGhzbCgwLCAwJSwgMjUlKTsKIH0KIAotLmlubGluZS1zd2F0
Y2guYmV6aWVyID4gc3BhbiB7CisuaW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXppZXIsIC5zcHJp
bmcpID4gc3BhbiB7CiAgICAgZGlzcGxheTogbm9uZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSW5saW5lU3dhdGNoLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSW5saW5lU3dhdGNoLmpzCmlu
ZGV4IGQ2ZTM2OGM0NTEyYWNlMTlhNDlmMmQ1YjhkNTk5YWQ1M2E4NDcwOWUuLjJiOGNjMWMxNGIx
YmUyOTg4MDE2OGQ3ODM5OTBjMWVkZDNlZmE2OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lubGluZVN3YXRjaC5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9JbmxpbmVTd2F0Y2guanMKQEAgLTM5
LDYgKzM5LDkgQEAgV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaCA9IGNsYXNzIElubGluZVN3YXRj
aCBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3Iu
SW5saW5lU3dhdGNoLlR5cGUuQmV6aWVyOgogICAgICAgICAgICAgdGhpcy5fc3dhdGNoRWxlbWVu
dC50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2xpY2sgdG8gb3BlbiBhIGN1YmljLWJl
emllciBlZGl0b3IuIik7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJJbnNw
ZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUuU3ByaW5nOgorICAgICAgICAgICAgdGhpcy5fc3dhdGNo
RWxlbWVudC50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2xpY2sgdG8gb3BlbiBhIHNw
cmluZyBlZGl0b3IuIik7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXZWJJbnNw
ZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUuR3JhZGllbnQ6CiAgICAgICAgICAgICB0aGlzLl9zd2F0
Y2hFbGVtZW50LnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDbGljayB0byBzZWxlY3Qg
YSBncmFkaWVudC4iKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtOTgsNiArMTAxLDggQEAgV2Vi
SW5zcGVjdG9yLklubGluZVN3YXRjaCA9IGNsYXNzIElubGluZVN3YXRjaCBleHRlbmRzIFdlYklu
c3BlY3Rvci5PYmplY3QKICAgICAgICAgc3dpdGNoICh0aGlzLl90eXBlKSB7CiAgICAgICAgIGNh
c2UgV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5UeXBlLkJlemllcjoKICAgICAgICAgICAgIHJl
dHVybiBXZWJJbnNwZWN0b3IuQ3ViaWNCZXppZXIuZnJvbVN0cmluZygibGluZWFyIik7CisgICAg
ICAgIGNhc2UgV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5UeXBlLlNwcmluZzoKKyAgICAgICAg
ICAgIHJldHVybiBXZWJJbnNwZWN0b3IuU3ByaW5nLmZyb21TdHJpbmcoIjEgMTAwIDEwIDAiKTsK
ICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUuR3JhZGllbnQ6CiAg
ICAgICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLkdyYWRpZW50LmZyb21TdHJpbmcoImxpbmVh
ci1ncmFkaWVudCh0cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQpIik7CiAgICAgICAgIGNhc2UgV2Vi
SW5zcGVjdG9yLklubGluZVN3YXRjaC5UeXBlLkNvbG9yOgpAQCAtMTQzLDYgKzE0OCw5IEBAIFdl
Ykluc3BlY3Rvci5JbmxpbmVTd2F0Y2ggPSBjbGFzcyBJbmxpbmVTd2F0Y2ggZXh0ZW5kcyBXZWJJ
bnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIGlmICh0aGlzLl90eXBlID09PSBXZWJJbnNwZWN0b3Iu
SW5saW5lU3dhdGNoLlR5cGUuQmV6aWVyKSB7CiAgICAgICAgICAgICB0aGlzLl92YWx1ZUVkaXRv
ciA9IG5ldyBXZWJJbnNwZWN0b3IuQmV6aWVyRWRpdG9yOwogICAgICAgICAgICAgdGhpcy5fdmFs
dWVFZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQmV6aWVyRWRpdG9yLkV2ZW50
LkJlemllckNoYW5nZWQsIHRoaXMuX3ZhbHVlRWRpdG9yVmFsdWVEaWRDaGFuZ2UsIHRoaXMpOwor
ICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX3R5cGUgPT09IFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0
Y2guVHlwZS5TcHJpbmcpIHsKKyAgICAgICAgICAgIHRoaXMuX3ZhbHVlRWRpdG9yID0gbmV3IFdl
Ykluc3BlY3Rvci5TcHJpbmdFZGl0b3I7CisgICAgICAgICAgICB0aGlzLl92YWx1ZUVkaXRvci5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5TcHJpbmdFZGl0b3IuRXZlbnQuU3ByaW5nQ2hh
bmdlZCwgdGhpcy5fdmFsdWVFZGl0b3JWYWx1ZURpZENoYW5nZSwgdGhpcyk7CiAgICAgICAgIH0g
ZWxzZSBpZiAodGhpcy5fdHlwZSA9PT0gV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5UeXBlLkdy
YWRpZW50KSB7CiAgICAgICAgICAgICB0aGlzLl92YWx1ZUVkaXRvciA9IG5ldyBXZWJJbnNwZWN0
b3IuR3JhZGllbnRFZGl0b3I7CiAgICAgICAgICAgICB0aGlzLl92YWx1ZUVkaXRvci5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5HcmFkaWVudEVkaXRvci5FdmVudC5HcmFkaWVudENoYW5n
ZWQsIHRoaXMuX3ZhbHVlRWRpdG9yVmFsdWVEaWRDaGFuZ2UsIHRoaXMpOwpAQCAtMTU4LDYgKzE2
Niw4IEBAIFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2ggPSBjbGFzcyBJbmxpbmVTd2F0Y2ggZXh0
ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuX3ZhbHVl
IHx8IHRoaXMuX2ZhbGxiYWNrVmFsdWUoKTsKICAgICAgICAgaWYgKHRoaXMuX3R5cGUgPT09IFdl
Ykluc3BlY3Rvci5JbmxpbmVTd2F0Y2guVHlwZS5CZXppZXIpCiAgICAgICAgICAgICB0aGlzLl92
YWx1ZUVkaXRvci5iZXppZXIgPSB2YWx1ZTsKKyAgICAgICAgZWxzZSBpZiAodGhpcy5fdHlwZSA9
PT0gV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5UeXBlLlNwcmluZykKKyAgICAgICAgICAgIHRo
aXMuX3ZhbHVlRWRpdG9yLnNwcmluZyA9IHZhbHVlOwogICAgICAgICBlbHNlIGlmICh0aGlzLl90
eXBlID09PSBXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUuR3JhZGllbnQpCiAgICAgICAg
ICAgICB0aGlzLl92YWx1ZUVkaXRvci5ncmFkaWVudCA9IHZhbHVlOwogICAgICAgICBlbHNlCkBA
IC0xNjgsNiArMTc4LDggQEAgV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaCA9IGNsYXNzIElubGlu
ZVN3YXRjaCBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICB7CiAgICAgICAgIGlmICh0
aGlzLl90eXBlID09PSBXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUuQmV6aWVyKQogICAg
ICAgICAgICAgdGhpcy5fdmFsdWUgPSBldmVudC5kYXRhLmJlemllcjsKKyAgICAgICAgZWxzZSBp
ZiAodGhpcy5fdHlwZSA9PT0gV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5UeXBlLlNwcmluZykK
KyAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gZXZlbnQuZGF0YS5zcHJpbmc7CiAgICAgICAgIGVs
c2UgaWYgKHRoaXMuX3R5cGUgPT09IFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2guVHlwZS5HcmFk
aWVudCkKICAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gZXZlbnQuZGF0YS5ncmFkaWVudDsKICAg
ICAgICAgZWxzZQpAQCAtMjc5LDcgKzI5MSw4IEBAIFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2gg
PSBjbGFzcyBJbmxpbmVTd2F0Y2ggZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiBXZWJJbnNw
ZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUgPSB7CiAgICAgQ29sb3I6ICJpbmxpbmUtc3dhdGNoLXR5
cGUtY29sb3IiLAogICAgIEdyYWRpZW50OiAiaW5saW5lLXN3YXRjaC10eXBlLWdyYWRpZW50IiwK
LSAgICBCZXppZXI6ICJpbmxpbmUtc3dhdGNoLXR5cGUtYmV6aWVyIgorICAgIEJlemllcjogImlu
bGluZS1zd2F0Y2gtdHlwZS1iZXppZXIiLAorICAgIFNwcmluZzogImlubGluZS1zd2F0Y2gtdHlw
ZS1zcHJpbmciCiB9OwogCiBXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLkV2ZW50ID0gewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU291cmNl
Q29kZVRleHRFZGl0b3IuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9Tb3VyY2VDb2RlVGV4dEVkaXRvci5qcwppbmRleCAyMmUxZTdjZDgwNGRmNGZhMDhiNDEy
OTNlNWE3ZjQwNjQwMTgwOTBhLi43OTI0N2ExOTgzY2M5OWIwNmRjYThmY2Y2ZTIyYmI4MTFiYWFi
NDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Tb3VyY2VDb2RlVGV4dEVkaXRvci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9Tb3VyY2VDb2RlVGV4dEVkaXRvci5qcwpAQCAtMTYwNCw2ICsxNjA0
LDcgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGVUZXh0RWRpdG9yID0gY2xhc3MgU291cmNlQ29k
ZVRleHRFZGl0b3IgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgICAgIHRoaXMuY3JlYXRlQ29s
b3JNYXJrZXJzKHJhbmdlKTsKICAgICAgICAgICAgIHRoaXMuY3JlYXRlR3JhZGllbnRNYXJrZXJz
KHJhbmdlKTsKICAgICAgICAgICAgIHRoaXMuY3JlYXRlQ3ViaWNCZXppZXJNYXJrZXJzKHJhbmdl
KTsKKyAgICAgICAgICAgIHRoaXMuY3JlYXRlU3ByaW5nTWFya2VycyhyYW5nZSk7CiAgICAgICAg
IH0KIAogICAgICAgICB0aGlzLl91cGRhdGVUb2tlblRyYWNraW5nQ29udHJvbGxlclN0YXRlKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9T
cHJpbmdFZGl0b3IuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvU3ByaW5nRWRpdG9yLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYzhmMGY4ODM4ZjA2MzBhNTJhZThkNDY3
N2Q3NjdhOWE0ZGVhOGU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByaW5nRWRpdG9yLmNzcwpAQCAtMCwwICsxLDc4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IERldmluIFJvdXNzbyA8ZGNyb3Vzc28rd2Via2l0QGdt
YWlsLmNvbT4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy5zcHJpbmctZWRpdG9y
IHsKKyAgICB3aWR0aDogMjAwcHg7CisgICAgaGVpZ2h0OiAyMTBweDsKK30KKworLnNwcmluZy1l
ZGl0b3IgPiAuc3ByaW5nLXByZXZpZXcgeworICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxMHB4KTsK
KyAgICBoZWlnaHQ6IDI1cHg7CisgICAgbWFyZ2luOiA1cHggNXB4IDA7CisgICAgYm9yZGVyLWJv
dHRvbTogMXB4IHNvbGlkIGxpZ2h0Z3JleTsKK30KKworLnNwcmluZy1lZGl0b3IgPiAuc3ByaW5n
LXByZXZpZXcgPiBkaXYgeworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICB3aWR0aDogMjBw
eDsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2VsZWN0
ZWQtYmFja2dyb3VuZC1jb2xvcik7CisgICAgYm9yZGVyLXJhZGl1czogNTAlOworfQorCisuc3By
aW5nLWVkaXRvciA+IC5zcHJpbmctcHJldmlldy5hbmltYXRlID4gZGl2IHsKKyAgICBhbmltYXRp
b24tbmFtZTogc3ByaW5nUHJldmlldzsKKyAgICBhbmltYXRpb24tZGVsYXk6IDI1MG1zOworICAg
IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOworfQorCitAa2V5ZnJhbWVzIHNw
cmluZ1ByZXZpZXcgeworICAgIGZyb20geyBsZWZ0OiAwOyB9CisgICAgMTAlIHsgbGVmdDogMDsg
fQorICAgIDkwJSB7IGxlZnQ6IDg1cHg7IH0KKyAgICB0byB7IGxlZnQ6IDg1cHg7IH0KK30KKwor
LnNwcmluZy1lZGl0b3IgPiAubnVtYmVyLWlucHV0LWNvbnRhaW5lciA+IC5udW1iZXItaW5wdXQt
cm93IHsKKyAgICBkaXNwbGF5OiBmbGV4OworICAgIGZsZXgtd3JhcDogd3JhcDsKKyAgICBtYXJn
aW4tYm90dG9tOiAzcHg7Cit9CisKKy5zcHJpbmctZWRpdG9yID4gLm51bWJlci1pbnB1dC1jb250
YWluZXIgPiAubnVtYmVyLWlucHV0LXJvdyA+IC5udW1iZXItaW5wdXQtcm93LXRpdGxlIHsKKyAg
ICB3aWR0aDogMTAwJTsKKyAgICBtYXJnaW46IDdweCAwIDNweDsKKyAgICB0ZXh0LWFsaWduOiBj
ZW50ZXI7Cit9CisKKy5zcHJpbmctZWRpdG9yID4gLm51bWJlci1pbnB1dC1jb250YWluZXIgPiAu
bnVtYmVyLWlucHV0LXJvdyA+IGlucHV0IHsKKyAgICB3aWR0aDogY2FsYyg1MCUgLSAxMHB4KTsK
KyAgICBtYXJnaW46IDAgNXB4OworfQorCisuc3ByaW5nLWVkaXRvciA+IC5udW1iZXItaW5wdXQt
Y29udGFpbmVyID4gLm51bWJlci1pbnB1dC1yb3cgPiBpbnB1dFt0eXBlPSJyYW5nZSJdIHsKKyAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmluZ0VkaXRvci5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmluZ0VkaXRvci5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zOGIyZjNkN2YzMWJiMjBjZjg5ZjdjNGI5M2MwZTA1MzE5NmE2MzMyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3By
aW5nRWRpdG9yLmpzCkBAIC0wLDAgKzEsMTk3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2
IERldmluIFJvdXNzbyA8ZGNyb3Vzc28rd2Via2l0QGdtYWlsLmNvbT4uIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK1dlYkluc3BlY3Rvci5TcHJpbmdFZGl0b3IgPSBjbGFzcyBTcHJp
bmdFZGl0b3IgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0Cit7CisgICAgY29uc3RydWN0b3Io
KQorICAgIHsKKyAgICAgICAgc3VwZXIoKTsKKworICAgICAgICB0aGlzLl9lbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NM
aXN0LmFkZCgic3ByaW5nLWVkaXRvciIpOworCisgICAgICAgIHRoaXMuX3ByZXZpZXdDb250YWlu
ZXIgPSB0aGlzLl9lbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAic3ByaW5nLXByZXZpZXcgYW5p
bWF0ZSIpOworICAgICAgICB0aGlzLl9wcmV2aWV3Q29udGFpbmVyLnRpdGxlID0gV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJDbGljayB0byByZXN0YXJ0IHRoZSBhbmltYXRpb24iKTsKKyAgICAgICAg
dGhpcy5fcHJldmlld0NvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCB0aGlz
Ll9yZXNldFByZXZpZXdBbmltYXRpb24uYmluZCh0aGlzKSk7CisKKyAgICAgICAgdGhpcy5fcHJl
dmlld0VsZW1lbnQgPSB0aGlzLl9wcmV2aWV3Q29udGFpbmVyLmNyZWF0ZUNoaWxkKCJkaXYiKTsK
KworICAgICAgICB0aGlzLl9udW1iZXJJbnB1dENvbnRhaW5lciA9IHRoaXMuX2VsZW1lbnQuY3Jl
YXRlQ2hpbGQoImRpdiIsICJudW1iZXItaW5wdXQtY29udGFpbmVyIik7CisKKyAgICAgICAgZnVu
Y3Rpb24gY3JlYXRlSW5wdXRzRm9yUGFyYW1ldGVyKGlkLCB0aXRsZSkKKyAgICAgICAgeworICAg
ICAgICAgICAgbGV0IHJvdyA9IHRoaXMuX251bWJlcklucHV0Q29udGFpbmVyLmNyZWF0ZUNoaWxk
KCJkaXYiLCBgbnVtYmVyLWlucHV0LXJvdyAke2lkfWApOworCisgICAgICAgICAgICByb3cuY3Jl
YXRlQ2hpbGQoImRpdiIsICJudW1iZXItaW5wdXQtcm93LXRpdGxlIikudGV4dENvbnRlbnQgPSB0
aXRsZTsKKworICAgICAgICAgICAgdGhpc1tgXyR7aWR9U2xpZGVyYF0gPSByb3cuY3JlYXRlQ2hp
bGQoImlucHV0Iik7CisgICAgICAgICAgICB0aGlzW2BfJHtpZH1TbGlkZXJgXS50eXBlID0gInJh
bmdlIjsKKyAgICAgICAgICAgIHRoaXNbYF8ke2lkfVNsaWRlcmBdLmFkZEV2ZW50TGlzdGVuZXIo
ImlucHV0IiwgdGhpcy5faGFuZGxlTnVtYmVyU2xpZGVySW5wdXQuYmluZCh0aGlzKSk7CisgICAg
ICAgICAgICB0aGlzW2BfJHtpZH1TbGlkZXJgXS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24i
LCB0aGlzLl9oYW5kbGVOdW1iZXJTbGlkZXJNb3VzZWRvd24uYmluZCh0aGlzKSk7CisgICAgICAg
ICAgICB0aGlzW2BfJHtpZH1TbGlkZXJgXS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwgdGhp
cy5faGFuZGxlTnVtYmVyU2xpZGVyTW91c2V1cC5iaW5kKHRoaXMpKTsKKworICAgICAgICAgICAg
dGhpc1tgXyR7aWR9SW5wdXRgXSA9IHJvdy5jcmVhdGVDaGlsZCgiaW5wdXQiKTsKKyAgICAgICAg
ICAgIHRoaXNbYF8ke2lkfUlucHV0YF0udHlwZSA9ICJudW1iZXIiOworICAgICAgICAgICAgdGhp
c1tgXyR7aWR9SW5wdXRgXS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsIHRoaXMuX2hhbmRsZU51
bWJlcklucHV0SW5wdXQuYmluZCh0aGlzKSk7CisgICAgICAgICAgICB0aGlzW2BfJHtpZH1JbnB1
dGBdLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCB0aGlzLl9oYW5kbGVOdW1iZXJJbnB1dEtl
eWRvd24uYmluZCh0aGlzKSk7CisgICAgICAgIH0KKworICAgICAgICBjcmVhdGVJbnB1dHNGb3JQ
YXJhbWV0ZXIuY2FsbCh0aGlzLCAibWFzcyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiTWFzcyIp
KTsKKyAgICAgICAgdGhpcy5fbWFzc0lucHV0Lm1pbiA9IHRoaXMuX21hc3NTbGlkZXIubWluID0g
MDsKKworICAgICAgICBjcmVhdGVJbnB1dHNGb3JQYXJhbWV0ZXIuY2FsbCh0aGlzLCAic3RpZmZu
ZXNzIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTdGlmZm5lc3MiKSk7CisgICAgICAgIHRoaXMu
X3N0aWZmbmVzc0lucHV0Lm1pbiA9IHRoaXMuX3N0aWZmbmVzc1NsaWRlci5taW4gPSAwOworCisg
ICAgICAgIGNyZWF0ZUlucHV0c0ZvclBhcmFtZXRlci5jYWxsKHRoaXMsICJkYW1waW5nIiwgV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJEYW1waW5nIikpOworICAgICAgICB0aGlzLl9kYW1waW5nSW5w
dXQubWluID0gdGhpcy5fZGFtcGluZ1NsaWRlci5taW4gPSAwOworCisgICAgICAgIGNyZWF0ZUlu
cHV0c0ZvclBhcmFtZXRlci5jYWxsKHRoaXMsICJpbml0aWFsVmVsb2NpdHkiLCBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIkluaXRpYWwgVmVsb2NpdHkiKSk7CisKKyAgICAgICAgdGhpcy5fc3ByaW5n
ID0gbmV3IFdlYkluc3BlY3Rvci5TcHJpbmcoMSwgMTAwLCAxMCwgMCk7CisgICAgfQorCisgICAg
Ly8gUHVibGljCisKKyAgICBnZXQgZWxlbWVudCgpCisgICAgeworICAgICAgICByZXR1cm4gdGhp
cy5fZWxlbWVudDsKKyAgICB9CisKKyAgICBzZXQgc3ByaW5nKHNwcmluZykKKyAgICB7CisgICAg
ICAgIGlmICghc3ByaW5nKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxldCBpc1Nw
cmluZyA9IHNwcmluZyBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5TcHJpbmc7CisgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KGlzU3ByaW5nKTsKKyAgICAgICAgaWYgKCFpc1NwcmluZykKKyAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICB0aGlzLl9zcHJpbmcgPSBzcHJpbmc7CisgICAgICAgIHRo
aXMuX21hc3NJbnB1dC52YWx1ZSA9IHRoaXMuX21hc3NTbGlkZXIudmFsdWUgPSB0aGlzLl9zcHJp
bmcubWFzczsKKyAgICAgICAgdGhpcy5fc3RpZmZuZXNzSW5wdXQudmFsdWUgPSB0aGlzLl9zdGlm
Zm5lc3NTbGlkZXIudmFsdWUgPSB0aGlzLl9zcHJpbmcuc3RpZmZuZXNzOworICAgICAgICB0aGlz
Ll9kYW1waW5nSW5wdXQudmFsdWUgPSB0aGlzLl9kYW1waW5nU2xpZGVyLnZhbHVlID0gdGhpcy5f
c3ByaW5nLmRhbXBpbmc7CisgICAgICAgIHRoaXMuX2luaXRpYWxWZWxvY2l0eUlucHV0LnZhbHVl
ID0gdGhpcy5faW5pdGlhbFZlbG9jaXR5U2xpZGVyLnZhbHVlID0gdGhpcy5fc3ByaW5nLmluaXRp
YWxWZWxvY2l0eTsKKyAgICAgICAgdGhpcy5fdXBkYXRlUHJldmlld0FuaW1hdGlvbigpOworICAg
IH0KKworICAgIGdldCBzcHJpbmcoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3Nwcmlu
ZzsKKyAgICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBfaGFuZGxlTnVtYmVySW5wdXRJbnB1
dChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX2NoYW5nZVNwcmluZ0ZvcklucHV0KGV2ZW50
LnRhcmdldCwgZXZlbnQudGFyZ2V0LnZhbHVlKTsKKyAgICB9CisKKyAgICBfaGFuZGxlTnVtYmVy
SW5wdXRLZXlkb3duKGV2ZW50KQorICAgIHsKKyAgICAgICAgbGV0IHNoaWZ0ID0gMDsKKyAgICAg
ICAgaWYgKGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJVcCIpCisgICAgICAgICAgICBzaGlmdCA9
IDAuMDE7CisgICAgICAgICBlbHNlIGlmIChldmVudC5rZXlJZGVudGlmaWVyID09PSAiRG93biIp
CisgICAgICAgICAgICBzaGlmdCA9IC0wLjAxOworCisgICAgICAgIGlmICghc2hpZnQpCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5KQorICAgICAgICAg
ICAgc2hpZnQgKj0gMTA7CisKKyAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICAg
ICAgdGhpcy5fY2hhbmdlU3ByaW5nRm9ySW5wdXQoZXZlbnQudGFyZ2V0LCBwYXJzZUZsb2F0KGV2
ZW50LnRhcmdldC52YWx1ZSkgKyBzaGlmdCk7CisgICAgfQorCisgICAgX2hhbmRsZU51bWJlclNs
aWRlcklucHV0KGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fY2hhbmdlU3ByaW5nRm9ySW5w
dXQoZXZlbnQudGFyZ2V0LCBldmVudC50YXJnZXQudmFsdWUpOworICAgIH0KKworICAgIF9oYW5k
bGVOdW1iZXJTbGlkZXJNb3VzZWRvd24oZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl9wcmV2
aWV3Q29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoImFuaW1hdGUiKTsKKyAgICAgICAgdGhpcy5f
Y2hhbmdlU3ByaW5nRm9ySW5wdXQoZXZlbnQudGFyZ2V0LCBldmVudC50YXJnZXQudmFsdWUpOwor
ICAgIH0KKworICAgIF9oYW5kbGVOdW1iZXJTbGlkZXJNb3VzZXVwKGV2ZW50KQorICAgIHsKKyAg
ICAgICAgdGhpcy5fY2hhbmdlU3ByaW5nRm9ySW5wdXQoZXZlbnQudGFyZ2V0LCBldmVudC50YXJn
ZXQudmFsdWUpOworICAgICAgICB0aGlzLl9wcmV2aWV3Q29udGFpbmVyLmNsYXNzTGlzdC5hZGQo
ImFuaW1hdGUiKTsKKyAgICB9CisKKyAgICBfY2hhbmdlU3ByaW5nRm9ySW5wdXQodGFyZ2V0LCB2
YWx1ZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodGFyZ2V0KSB7CisgICAgICAgIGNhc2UgdGhp
cy5fbWFzc0lucHV0OgorICAgICAgICBjYXNlIHRoaXMuX21hc3NTbGlkZXI6CisgICAgICAgICAg
ICBpZiAodmFsdWUgPD0gMCkKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IDE7CisgICAgICAgICAg
ICB0aGlzLl9zcHJpbmcubWFzcyA9IHRoaXMuX21hc3NJbnB1dC52YWx1ZSA9IHRoaXMuX21hc3NT
bGlkZXIudmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRo
aXMuX3N0aWZmbmVzc0lucHV0OgorICAgICAgICBjYXNlIHRoaXMuX3N0aWZmbmVzc1NsaWRlcjoK
KyAgICAgICAgICAgIGlmICh2YWx1ZSA8PSAwKQorICAgICAgICAgICAgICAgIHZhbHVlID0gMTsK
KyAgICAgICAgICAgIHRoaXMuX3NwcmluZy5zdGlmZm5lc3MgPSB0aGlzLl9zdGlmZm5lc3NJbnB1
dC52YWx1ZSA9IHRoaXMuX3N0aWZmbmVzc1NsaWRlci52YWx1ZSA9IHZhbHVlOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpcy5fZGFtcGluZ0lucHV0OgorICAgICAgICBjYXNl
IHRoaXMuX2RhbXBpbmdTbGlkZXI6CisgICAgICAgICAgICBpZiAodmFsdWUgPCAwKQorICAgICAg
ICAgICAgICAgIHZhbHVlID0gMDsKKyAgICAgICAgICAgIHRoaXMuX3NwcmluZy5kYW1waW5nID0g
dGhpcy5fZGFtcGluZ0lucHV0LnZhbHVlID0gdGhpcy5fZGFtcGluZ1NsaWRlci52YWx1ZSA9IHZh
bHVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpcy5faW5pdGlhbFZlbG9j
aXR5SW5wdXQ6CisgICAgICAgIGNhc2UgdGhpcy5faW5pdGlhbFZlbG9jaXR5U2xpZGVyOgorICAg
ICAgICAgICAgdGhpcy5fc3ByaW5nLmluaXRpYWxWZWxvY2l0eSA9IHRoaXMuX2luaXRpYWxWZWxv
Y2l0eUlucHV0LnZhbHVlID0gdGhpcy5faW5pdGlhbFZlbG9jaXR5U2xpZGVyLnZhbHVlID0gdmFs
dWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX3VwZGF0ZVByZXZpZXdBbmltYXRpb24o
KTsKKworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3Iu
U3ByaW5nRWRpdG9yLkV2ZW50LlNwcmluZ0NoYW5nZWQsIHtzcHJpbmc6IHRoaXMuX3NwcmluZ30p
OworICAgIH0KKworICAgIF91cGRhdGVQcmV2aWV3QW5pbWF0aW9uKCkKKyAgICB7CisgICAgICAg
IC8vIEFkZCBleHRyYSAyNSUgdG8gZW5zdXJlIHRoYXQgdGhlICJkZWxheSIgdGltZSBvZiB0aGUg
YW5pbWF0aW9uIGRvZXMgbm90IHNob3J0ZW4gdGhlIHNwcmluZworICAgICAgICB0aGlzLl9wcmV2
aWV3RWxlbWVudC5zdHlsZS5hbmltYXRpb25EdXJhdGlvbiA9IGAke3RoaXMuX3NwcmluZy5jYWxj
dWxhdGVEdXJhdGlvbigpICogMS4yNX1zYDsKKyAgICAgICAgdGhpcy5fcHJldmlld0VsZW1lbnQu
c3R5bGUuYW5pbWF0aW9uVGltaW5nRnVuY3Rpb24gPSB0aGlzLl9zcHJpbmcudG9TdHJpbmcoKTsK
KyAgICB9CisKKyAgICBfcmVzZXRQcmV2aWV3QW5pbWF0aW9uKGV2ZW50KQorICAgIHsKKyAgICAg
ICAgdGhpcy5fcHJldmlld0NvbnRhaW5lci5yZW1vdmVDaGlsZCh0aGlzLl9wcmV2aWV3RWxlbWVu
dCk7CisgICAgICAgIHRoaXMuX3ByZXZpZXdDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5fcHJl
dmlld0VsZW1lbnQpOworICAgIH0KK307CisKK1dlYkluc3BlY3Rvci5TcHJpbmdFZGl0b3IuRXZl
bnQgPSB7CisgICAgU3ByaW5nQ2hhbmdlZDogInNwcmluZy1lZGl0b3Itc3ByaW5nLWNoYW5nZWQi
Cit9OwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RleHRFZGl0b3IuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UZXh0RWRpdG9yLmpzCmluZGV4IDJjODA5
MDRlMjUxYjAyZWQxY2I3M2VkMDdkZmNjNWExYjQ3MzQ2NDcuLmFkMDY1YTJhOTYxNTk0MGY1Zjg4
MjY0ODM0NzQ4YjMwMDI3ODliNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1RleHRFZGl0b3IuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGV4dEVkaXRvci5qcwpAQCAtNjExLDYgKzYxMSwxMSBA
QCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvciA9IGNsYXNzIFRleHRFZGl0b3IgZXh0ZW5kcyBXZWJJ
bnNwZWN0b3IuVmlldwogICAgICAgICByZXR1cm4gY3JlYXRlQ29kZU1pcnJvckN1YmljQmV6aWVy
VGV4dE1hcmtlcnModGhpcy5fY29kZU1pcnJvciwgcmFuZ2UpOwogICAgIH0KIAorICAgIGNyZWF0
ZVNwcmluZ01hcmtlcnMocmFuZ2UpCisgICAgeworICAgICAgICByZXR1cm4gY3JlYXRlQ29kZU1p
cnJvclNwcmluZ1RleHRNYXJrZXJzKHRoaXMuX2NvZGVNaXJyb3IsIHJhbmdlKTsKKyAgICB9CisK
ICAgICBlZGl0aW5nQ29udHJvbGxlckZvck1hcmtlcihlZGl0YWJsZU1hcmtlcikKICAgICB7CiAg
ICAgICAgIHN3aXRjaCAoZWRpdGFibGVNYXJrZXIudHlwZSkgewpAQCAtNjIwLDYgKzYyNSw4IEBA
IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yID0gY2xhc3MgVGV4dEVkaXRvciBleHRlbmRzIFdlYklu
c3BlY3Rvci5WaWV3CiAgICAgICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5Db2RlTWly
cm9yR3JhZGllbnRFZGl0aW5nQ29udHJvbGxlcih0aGlzLl9jb2RlTWlycm9yLCBlZGl0YWJsZU1h
cmtlcik7CiAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIuVHlwZS5DdWJpY0Jl
emllcjoKICAgICAgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNvZGVNaXJyb3JCZXpp
ZXJFZGl0aW5nQ29udHJvbGxlcih0aGlzLl9jb2RlTWlycm9yLCBlZGl0YWJsZU1hcmtlcik7Cisg
ICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIuVHlwZS5TcHJpbmc6CisgICAgICAg
ICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5Db2RlTWlycm9yU3ByaW5nRWRpdGluZ0NvbnRy
b2xsZXIodGhpcy5fY29kZU1pcnJvciwgZWRpdGFibGVNYXJrZXIpOwogICAgICAgICBkZWZhdWx0
OgogICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuQ29kZU1pcnJvckVkaXRpbmdD
b250cm9sbGVyKHRoaXMuX2NvZGVNaXJyb3IsIGVkaXRhYmxlTWFya2VyKTsKICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlz
dWFsU3R5bGVUaW1pbmdFZGl0b3IuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvVmlzdWFsU3R5bGVUaW1pbmdFZGl0b3IuY3NzCmluZGV4IGM3MWFkYmM1ZGMy
NjNlZTM3NzNlMDkwYjVlZDZiYmU0ZDgxNDJhOTAuLjRiMmNmYmUzMjBiYTk2NmM1YWI4ZGZmMzYz
MmZhNTkxNjAwMjlhZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVGltaW5nRWRpdG9yLmNzcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVRpbWluZ0VkaXRvci5j
c3MKQEAgLTMxLDEyICszMSwxMyBAQAogICAgIG9yZGVyOiAxOwogfQogCi0udmlzdWFsLXN0eWxl
LXByb3BlcnR5LWNvbnRhaW5lci50aW1pbmctZWRpdG9yID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0
eS12YWx1ZS1jb250YWluZXIgPiAuaW5saW5lLXN3YXRjaC5iZXppZXIgeworLnZpc3VhbC1zdHls
ZS1wcm9wZXJ0eS1jb250YWluZXIudGltaW5nLWVkaXRvciA+IC52aXN1YWwtc3R5bGUtcHJvcGVy
dHktdmFsdWUtY29udGFpbmVyID4gLmlubGluZS1zd2F0Y2g6bWF0Y2hlcyguYmV6aWVyLCAuc3By
aW5nKSB7CiAgICAgd2lkdGg6IDIzcHg7CiAgICAgaGVpZ2h0OiAyMHB4OwogfQogCi0udmlzdWFs
LXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci50aW1pbmctZWRpdG9yID4gLnZpc3VhbC1zdHlsZS1w
cm9wZXJ0eS12YWx1ZS1jb250YWluZXI6bm90KC5iZXppZXItdmFsdWUpID4gLmlubGluZS1zd2F0
Y2guYmV6aWVyIHsKKy52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLnRpbWluZy1lZGl0
b3IgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lcjpub3QoLmJlemllci12
YWx1ZSkgPiAuaW5saW5lLXN3YXRjaC5iZXppZXIsCisudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNv
bnRhaW5lci50aW1pbmctZWRpdG9yID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250
YWluZXI6bm90KC5zcHJpbmctdmFsdWUpID4gLmlubGluZS1zd2F0Y2guc3ByaW5nIHsKICAgICBk
aXNwbGF5OiBub25lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVRpbWluZ0VkaXRvci5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVGltaW5nRWRpdG9yLmpz
CmluZGV4IGJkMGYyMzgwZjZmYzBkYTZkM2Q4NGE3MTNjNzhlNGY5ZjYxOTRiODQuLmY5ZDBlY2Jm
MTIzOWMwOTgwYWRmYTI4MzFiZmY5YzE5MzVkYWM2ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVGltaW5nRWRpdG9yLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0
eWxlVGltaW5nRWRpdG9yLmpzCkBAIC0zMSw4MSArMzEsMTMxIEBAIFdlYkluc3BlY3Rvci5WaXN1
YWxTdHlsZVRpbWluZ0VkaXRvciA9IGNsYXNzIFZpc3VhbFN0eWxlVGltaW5nRWRpdG9yIGV4dGVu
ZHMgV2ViCiAKICAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoInRpbWluZy1lZGl0
b3IiKTsKIAotICAgICAgICB0aGlzLl9jdXN0b21WYWx1ZU9wdGlvbkVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTsKLSAgICAgICAgdGhpcy5fY3VzdG9tVmFsdWVPcHRp
b25FbGVtZW50LnZhbHVlID0gImN1c3RvbSI7Ci0gICAgICAgIHRoaXMuX2N1c3RvbVZhbHVlT3B0
aW9uRWxlbWVudC50ZXh0ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDdXN0b20iKTsKLSAgICAg
ICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fY3VzdG9tVmFs
dWVPcHRpb25FbGVtZW50KTsKKyAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQuY3Jl
YXRlQ2hpbGQoImhyIik7CisKKyAgICAgICAgdGhpcy5fY3VzdG9tQmV6aWVyT3B0aW9uRWxlbWVu
dCA9IHRoaXMuX2tleXdvcmRTZWxlY3RFbGVtZW50LmNyZWF0ZUNoaWxkKCJvcHRpb24iKTsKKyAg
ICAgICAgdGhpcy5fY3VzdG9tQmV6aWVyT3B0aW9uRWxlbWVudC52YWx1ZSA9ICJiZXppZXIiOwor
ICAgICAgICB0aGlzLl9jdXN0b21CZXppZXJPcHRpb25FbGVtZW50LnRleHQgPSBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIkJlemllciIpOworCisgICAgICAgIHRoaXMuX2N1c3RvbVNwcmluZ09wdGlv
bkVsZW1lbnQgPSB0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudC5jcmVhdGVDaGlsZCgib3B0aW9u
Iik7CisgICAgICAgIHRoaXMuX2N1c3RvbVNwcmluZ09wdGlvbkVsZW1lbnQudmFsdWUgPSAic3By
aW5nIjsKKyAgICAgICAgdGhpcy5fY3VzdG9tU3ByaW5nT3B0aW9uRWxlbWVudC50ZXh0ID0gV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJTcHJpbmciKTsKIAogICAgICAgICB0aGlzLl9iZXppZXJTd2F0
Y2ggPSBuZXcgV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaChXZWJJbnNwZWN0b3IuSW5saW5lU3dh
dGNoLlR5cGUuQmV6aWVyKTsKICAgICAgICAgdGhpcy5fYmV6aWVyU3dhdGNoLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5FdmVudC5WYWx1ZUNoYW5nZWQsIHRoaXMu
X2JlemllclN3YXRjaFZhbHVlQ2hhbmdlZCwgdGhpcyk7CiAgICAgICAgIHRoaXMuY29udGVudEVs
ZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fYmV6aWVyU3dhdGNoLmVsZW1lbnQpOwotICAgIH0KLQot
ICAgIC8vIFB1YmxpYwotCi0gICAgZ2V0IGJlemllclZhbHVlKCkKLSAgICB7Ci0gICAgICAgIGxl
dCBiZXppZXIgPSB0aGlzLl9iZXppZXJTd2F0Y2gudmFsdWU7Ci0gICAgICAgIGlmICghYmV6aWVy
KQotICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAKLSAgICAgICAgcmV0dXJuIGJlemllci50b1N0
cmluZygpOwotICAgIH0KLQotICAgIHNldCBiZXppZXJWYWx1ZSh0ZXh0KQotICAgIHsKLSAgICAg
ICAgbGV0IGJlemllciA9IFdlYkluc3BlY3Rvci5DdWJpY0Jlemllci5mcm9tU3RyaW5nKHRleHQp
OwotICAgICAgICB0aGlzLl9iZXppZXJTd2F0Y2gudmFsdWUgPSBiZXppZXI7CisgICAgICAgIHRo
aXMuX3NwcmluZ1N3YXRjaCA9IG5ldyBXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoKFdlYkluc3Bl
Y3Rvci5JbmxpbmVTd2F0Y2guVHlwZS5TcHJpbmcpOworICAgICAgICB0aGlzLl9zcHJpbmdTd2F0
Y2guYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLkV2ZW50LlZhbHVl
Q2hhbmdlZCwgdGhpcy5fc3ByaW5nU3dhdGNoVmFsdWVDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAg
dGhpcy5jb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9zcHJpbmdTd2F0Y2guZWxlbWVu
dCk7CiAgICAgfQogCiAgICAgLy8gUHJvdGVjdGVkCiAKICAgICBnZXQgdmFsdWUoKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIHRoaXMuX2N1c3RvbVZhbHVlT3B0aW9uRWxlbWVudC5zZWxlY3RlZCA/
IHRoaXMuYmV6aWVyVmFsdWUgOiBzdXBlci52YWx1ZTsKKyAgICAgICAgaWYgKHRoaXMuX2N1c3Rv
bUJlemllck9wdGlvbkVsZW1lbnQuc2VsZWN0ZWQpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5f
YmV6aWVyVmFsdWU7CisKKyAgICAgICAgaWYgKHRoaXMuX2N1c3RvbVNwcmluZ09wdGlvbkVsZW1l
bnQuc2VsZWN0ZWQpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fc3ByaW5nVmFsdWU7CisKKyAg
ICAgICAgcmV0dXJuIHN1cGVyLnZhbHVlOwogICAgIH0KIAogICAgIHNldCB2YWx1ZSh2YWx1ZSkK
ICAgICB7Ci0gICAgICAgIHRoaXMuYmV6aWVyVmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgdGhpcy5f
YmV6aWVyVmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgdGhpcy5fc3ByaW5nVmFsdWUgPSB2YWx1ZTsK
ICAgICAgICAgaWYgKHRoaXMudmFsdWVJc1N1cHBvcnRlZEtleXdvcmQodmFsdWUpKSB7CiAgICAg
ICAgICAgICBzdXBlci52YWx1ZSA9IHZhbHVlOwotICAgICAgICAgICAgdGhpcy5jb250ZW50RWxl
bWVudC5jbGFzc0xpc3QucmVtb3ZlKCJiZXppZXItdmFsdWUiKTsKKyAgICAgICAgICAgIHRoaXMu
Y29udGVudEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgiYmV6aWVyLXZhbHVlIiwgInNwcmluZy12
YWx1ZSIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgbGV0IGJl
emllciA9IHRoaXMuYmV6aWVyVmFsdWU7Ci0gICAgICAgIHRoaXMuX2N1c3RvbVZhbHVlT3B0aW9u
RWxlbWVudC5zZWxlY3RlZCA9ICEhYmV6aWVyOworICAgICAgICBsZXQgYmV6aWVyID0gdGhpcy5f
YmV6aWVyVmFsdWU7CisgICAgICAgIHRoaXMuX2N1c3RvbUJlemllck9wdGlvbkVsZW1lbnQuc2Vs
ZWN0ZWQgPSAhIWJlemllcjsKICAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5jbGFzc0xpc3Qu
dG9nZ2xlKCJiZXppZXItdmFsdWUiLCAhIWJlemllcik7Ci0gICAgICAgIHRoaXMuc3BlY2lhbFBy
b3BlcnR5UGxhY2Vob2xkZXJFbGVtZW50LmhpZGRlbiA9ICEhYmV6aWVyOwotICAgICAgICBpZiAo
IWJlemllcikKKworICAgICAgICBsZXQgc3ByaW5nID0gdGhpcy5fc3ByaW5nVmFsdWU7CisgICAg
ICAgIHRoaXMuX2N1c3RvbVNwcmluZ09wdGlvbkVsZW1lbnQuc2VsZWN0ZWQgPSAhIXNwcmluZzsK
KyAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJzcHJpbmctdmFs
dWUiLCAhIXNwcmluZyk7CisKKyAgICAgICAgdGhpcy5zcGVjaWFsUHJvcGVydHlQbGFjZWhvbGRl
ckVsZW1lbnQuaGlkZGVuID0gISFiZXppZXIgfHwgISFzcHJpbmc7CisgICAgICAgIGlmICghYmV6
aWVyICYmICFzcHJpbmcpCiAgICAgICAgICAgICBzdXBlci52YWx1ZSA9IHZhbHVlOwogICAgIH0K
IAogICAgIGdldCBzeW50aGVzaXplZFZhbHVlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlz
Ll9jdXN0b21WYWx1ZU9wdGlvbkVsZW1lbnQuc2VsZWN0ZWQgPyB0aGlzLmJlemllclZhbHVlIDog
c3VwZXIuc3ludGhlc2l6ZWRWYWx1ZTsKKyAgICAgICAgaWYgKHRoaXMuX2N1c3RvbUJlemllck9w
dGlvbkVsZW1lbnQuc2VsZWN0ZWQpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYmV6aWVyVmFs
dWU7CisKKyAgICAgICAgaWYgKHRoaXMuX2N1c3RvbVNwcmluZ09wdGlvbkVsZW1lbnQuc2VsZWN0
ZWQpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fc3ByaW5nVmFsdWU7CisKKyAgICAgICAgcmV0
dXJuIHN1cGVyLnN5bnRoZXNpemVkVmFsdWU7CiAgICAgfQogCiAgICAgcGFyc2VWYWx1ZSh0ZXh0
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIC8oY3ViaWMtYmV6aWVyXCguK1wpKS8uZXhlYyh0ZXh0
KTsKKyAgICAgICAgcmV0dXJuIC8oKD86Y3ViaWMtYmV6aWVyfHNwcmluZylcKC4rXCkpLy5leGVj
KHRleHQpOwogICAgIH0KIAogICAgIC8vIFByaXZhdGUKIAorICAgIGdldCBfYmV6aWVyVmFsdWUo
KQorICAgIHsKKyAgICAgICAgbGV0IGJlemllciA9IHRoaXMuX2JlemllclN3YXRjaC52YWx1ZTsK
KyAgICAgICAgaWYgKCFiZXppZXIpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAg
ICByZXR1cm4gYmV6aWVyLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgc2V0IF9iZXppZXJWYWx1
ZSh0ZXh0KQorICAgIHsKKyAgICAgICAgdGhpcy5fYmV6aWVyU3dhdGNoLnZhbHVlID0gV2ViSW5z
cGVjdG9yLkN1YmljQmV6aWVyLmZyb21TdHJpbmcodGV4dCk7CisgICAgfQorCisgICAgZ2V0IF9z
cHJpbmdWYWx1ZSgpCisgICAgeworICAgICAgICBsZXQgc3ByaW5nID0gdGhpcy5fc3ByaW5nU3dh
dGNoLnZhbHVlOworICAgICAgICBpZiAoIXNwcmluZykKKyAgICAgICAgICAgIHJldHVybiBudWxs
OworCisgICAgICAgIHJldHVybiBzcHJpbmcudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBzZXQg
X3NwcmluZ1ZhbHVlKHRleHQpCisgICAgeworICAgICAgICB0aGlzLl9zcHJpbmdTd2F0Y2gudmFs
dWUgPSBXZWJJbnNwZWN0b3IuU3ByaW5nLmZyb21TdHJpbmcodGV4dCk7CisgICAgfQorCiAgICAg
X2hhbmRsZUtleXdvcmRDaGFuZ2VkKCkKICAgICB7CiAgICAgICAgIHN1cGVyLl9oYW5kbGVLZXl3
b3JkQ2hhbmdlZCgpOwotICAgICAgICBsZXQgY3VzdG9tT3B0aW9uU2VsZWN0ZWQgPSB0aGlzLl9j
dXN0b21WYWx1ZU9wdGlvbkVsZW1lbnQuc2VsZWN0ZWQ7Ci0gICAgICAgIHRoaXMuY29udGVudEVs
ZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiYmV6aWVyLXZhbHVlIiwgISFjdXN0b21PcHRpb25TZWxl
Y3RlZCk7Ci0gICAgICAgIHRoaXMuc3BlY2lhbFByb3BlcnR5UGxhY2Vob2xkZXJFbGVtZW50Lmhp
ZGRlbiA9ICEhY3VzdG9tT3B0aW9uU2VsZWN0ZWQ7Ci0gICAgICAgIGlmIChjdXN0b21PcHRpb25T
ZWxlY3RlZCkKLSAgICAgICAgICAgIHRoaXMuYmV6aWVyVmFsdWUgPSAibGluZWFyIjsKKworICAg
ICAgICBsZXQgY3VzdG9tQmV6aWVyT3B0aW9uU2VsZWN0ZWQgPSB0aGlzLl9jdXN0b21CZXppZXJP
cHRpb25FbGVtZW50LnNlbGVjdGVkOworICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmNsYXNz
TGlzdC50b2dnbGUoImJlemllci12YWx1ZSIsICEhY3VzdG9tQmV6aWVyT3B0aW9uU2VsZWN0ZWQp
OworICAgICAgICBpZiAoY3VzdG9tQmV6aWVyT3B0aW9uU2VsZWN0ZWQpCisgICAgICAgICAgICB0
aGlzLl9iZXppZXJWYWx1ZSA9ICJsaW5lYXIiOworCisgICAgICAgIGxldCBjdXN0b21TcHJpbmdP
cHRpb25TZWxlY3RlZCA9IHRoaXMuX2N1c3RvbVNwcmluZ09wdGlvbkVsZW1lbnQuc2VsZWN0ZWQ7
CisgICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgic3ByaW5nLXZh
bHVlIiwgISFjdXN0b21TcHJpbmdPcHRpb25TZWxlY3RlZCk7CisgICAgICAgIGlmIChjdXN0b21T
cHJpbmdPcHRpb25TZWxlY3RlZCkKKyAgICAgICAgICAgIHRoaXMuX3NwcmluZ1ZhbHVlID0gIjEg
MTAwIDEwIDAiOworCisgICAgICAgIHRoaXMuc3BlY2lhbFByb3BlcnR5UGxhY2Vob2xkZXJFbGVt
ZW50LmhpZGRlbiA9ICEhY3VzdG9tQmV6aWVyT3B0aW9uU2VsZWN0ZWQgfHwgISFjdXN0b21TcHJp
bmdPcHRpb25TZWxlY3RlZDsKICAgICB9CiAKICAgICBfYmV6aWVyU3dhdGNoVmFsdWVDaGFuZ2Vk
KGV2ZW50KQogICAgIHsKICAgICAgICAgdGhpcy5fdmFsdWVEaWRDaGFuZ2UoKTsKICAgICB9CisK
KyAgICBfc3ByaW5nU3dhdGNoVmFsdWVDaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhp
cy5fdmFsdWVEaWRDaGFuZ2UoKTsKKyAgICB9CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>286030</attachid>
            <date>2016-08-14 13:50:01 -0700</date>
            <delta_ts>2016-08-16 19:29:54 -0700</delta_ts>
            <desc>[Image] After Patch is applied</desc>
            <filename>159315.png</filename>
            <type>image/png</type>
            <size>72201</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">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
mKebl5tftUAtHC14FtstuiYQJrhM4E+onHDbkmrpbZlvWWvZbcWwCrUqtGq0ejnRcGLSxHUTz038
au1gnWW9x/q+jYrNZJtCm2ab17bmtmzbctsbdjS7ALtFdk12r+wt7Ln2FfZ3HOgOYQ7LHdocvjg6
OQod6xz7nAydkp22Od12VnWOdF7lfN6F4OLjssilxeWjq6Nrnush17/cLN0y3fa5PZ9kMok7ac+k
Hnd9d5b7LnexB9Mj2WOnh9hTz5PlWen52MvAi+O11+uZt5l3hvd+75c+1j5Cn6M+731dfRf4tvph
foF+xX4d/ir+sf5l/o8C9APSAmoDBgIdAucFtgYRgkKC1gXdDtYOZgfXBA9Mdpq8YHJ7CDUkOqQs
5HGoeagwtDkMDZsctiHsQbhROD+8MQJEBEdsiHgYaRKZE/nbFOKUyCnlU55G2UTNjzoXTY+eGb0v
+l2MT8yamPuxprGi2LY4xbhpcTVx7+P94tfHixMmJixIuJSomchLbEoiJcUl7U0anOo/ddPU3mkO
04qm3ZpuMn3O9AszNGdkzTg+U3Ema+bhZEJyfPK+5M+sCFYlazAlOGVbygDbl72Z/YLjxdnI6eO6
c9dzn6W6p65PfZ7mnrYhrS/dM700vZ/nyyvjvcoIytiR8T4zIrMqczgrPqs+m5ydnH2Mr8LP5LfP
0pk1Z1aXwEJQJBDnuOZsyhkQhgj35iK503Ob8lThUeeyyFT0k6g73yO/PP/D7LjZh+coz+HPuTzX
fO7Kuc8KAgp+mYfPY89rm683f8n87gXeC3YtRBamLGxbZLBo2aLexYGLq5dQlmQuuVJoXbi+8O3S
+KXNy7SXLV7W81PgT7VFCkXCotvL3ZbvWIGv4K3oWGm3cuvKr8Wc4osl1iWlJZ9XsVdd/Nnm5y0/
D69OXd2xxnFNxVriWv7aW+s811WvV15fsL5nQ9iGho3MjcUb326auelCqX3pjs2UzaLN4i2hW5q2
Gm5du/VzWXrZzXKf8vptWttWbnu/nbP9WoVXRd0O7R0lOz7t5O28sytwV0OlcWXpbuLu/N1P98Tt
OfeL8y81ezX3luz9UsWvEldHVbfXONXU7NPat6YWrRXV9u2ftr/zgN+BpjrLul31jPqSg+Cg6OAf
vyb/eutQyKG2w86H644YHdl2lH60uAFpmNsw0JjeKG5KbOo6NvlYW7Nb89HfrH6ratFrKT+udnzN
CcqJZSeGTxacHGwVtPafSjvV0zaz7f7phNM32qe0d5wJOXP+bMDZ0+e8z508736+5YLrhWMXnS82
XnK81HDZ4fLRKw5XjnY4djRcdbra1OnS2dw1qevENc9rp677XT97I/jGpZvhN7tuxd66c3vabfEd
zp3nd7PuvrqXf2/o/uIHhAfFD5Uelj7SelT5u9nv9WJH8fFuv+7Lj6Mf3+9h97x4kvvkc++yp7Sn
pc90n9U8t33e0hfQ1/nH1D96XwheDPUX/an857aXpi+P/OX11+WBhIHeV8JXw69XvdF4U/XW/m3b
YOTgo3fZ74beF3/Q+FD90fnjuU/xn54Nzf5M+rzli9mX5q8hXx8MZw8PC1hClvQogMGGpqYC8LoK
AFoiPDvAexxFQXb/kgoiuzNKEfhPWHZHkwo8uVR5ARC7GIBQeEapgM0IYip8S47fMV4AtbMbayOS
m2pnK4tFhbcYwofh4TfaAJCaAfgiHB4e2j48/GUPJHsXgNYc2b1PIkR4xt8puVuBKwbLwY/yLxmr
bDPaqMgDAAAACXBIWXMAABYlAAAWJQFJUiTwAAABnWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAA
PHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40
LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjIt
cmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAg
ICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAg
ICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj40MzQ8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAg
ICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NDY2PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAg
ICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkIJhD0AAAAc
aURPVAAAAAIAAAAAAAAA6QAAACgAAADpAAAA6QAAkiPBk6TaAABAAElEQVR4Aex9B7wfRbX/uS2F
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
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286253</attachid>
            <date>2016-08-16 19:29:36 -0700</date>
            <delta_ts>2016-08-16 19:33:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159315-20160816192748.patch</filename>
            <type>text/plain</type>
            <size>46064</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDc3YjliMjNiYjA0ZWZiMGVjNTMzZWI4MDU2NGEy
NDdkNzFmZjJiZWMuLjRjODQ4YWZmNDQ2MGU1MzUyMjE0ZTI0M2EzZWYwOTFjMzRlMjQzYjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMCBAQAorMjAxNi0wOC0xNiAgRGV2
aW4gUm91c3NvICA8ZGNyb3Vzc28rd2Via2l0QGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBBZGQgdmlzdWFsIGVkaXRvciBmb3Igc3ByaW5nKCkgdGltaW5nLWZ1bmN0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTkzMTUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIExvY2FsaXph
dGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL01haW4uaHRtbDoKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0dlb21ldHJ5
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU3ByaW5nLmZyb21WYWx1ZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZy5mcm9t
U3RyaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TcHJpbmcucHJvdG90eXBlLmNvcHkpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZy5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlNwcmluZy5wcm90b3R5cGUuc29sdmUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNwcmluZy5wcm90b3R5cGUuY2FsY3VsYXRlRHVyYXRpb24pOgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9Nb2RlbHMvVGV4dE1hcmtlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5UZXh0TWFya2VyLlR5cGUpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DU1NT
dHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NT
dHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvci5wcm90b3R5cGUuX2NyZWF0ZUlubGluZVN3YXRjaGVz
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvci5w
cm90b3R5cGUuX2NyZWF0ZUlubGluZVN3YXRjaGVzLnVwZGF0ZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IucHJvdG90eXBlLl9pbmxpbmVTd2F0
Y2hWYWx1ZUNoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRp
b25UZXh0RWRpdG9yLnByb3RvdHlwZS5faW5saW5lU3dhdGNoVmFsdWVDaGFuZ2VkLnVwZGF0ZSk6
CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JTcHJpbmdFZGl0aW5n
Q29udHJvbGxlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2RlTWlycm9yU3ByaW5nRWRp
dGluZ0NvbnRyb2xsZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvZGVNaXJyb3JTcHJpbmdF
ZGl0aW5nQ29udHJvbGxlci5wcm90b3R5cGUuZ2V0IGluaXRpYWxWYWx1ZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ29kZU1pcnJvclNwcmluZ0VkaXRpbmdDb250cm9sbGVyLnByb3RvdHlwZS5n
ZXQgY3NzQ2xhc3NOYW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2RlTWlycm9yU3ByaW5n
RWRpdGluZ0NvbnRyb2xsZXIucHJvdG90eXBlLnBvcG92ZXJXaWxsUHJlc2VudCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ29kZU1pcnJvclNwcmluZ0VkaXRpbmdDb250cm9sbGVyLnByb3RvdHlw
ZS5wb3BvdmVyRGlkUHJlc2VudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29kZU1pcnJvclNw
cmluZ0VkaXRpbmdDb250cm9sbGVyLnByb3RvdHlwZS5wb3BvdmVyRGlkRGlzbWlzcyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ29kZU1pcnJvclNwcmluZ0VkaXRpbmdDb250cm9sbGVyLnByb3Rv
dHlwZS5fc3ByaW5nRWRpdG9yU3ByaW5nQ2hhbmdlZCk6CisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL0NvZGVNaXJyb3JUZXh0TWFya2Vycy5qczoKKyAgICAgICAgKGNyZWF0ZUNvZGVN
aXJyb3JTcHJpbmdUZXh0TWFya2Vycyk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L0lubGluZVN3YXRjaC5jc3M6CisgICAgICAgICguaW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXpp
ZXIsIC5zcHJpbmcpKToKKyAgICAgICAgKC5pbmxpbmUtc3dhdGNoOm1hdGNoZXMoLmJlemllciwg
LnNwcmluZyk6aG92ZXIpOgorICAgICAgICAoLmlubGluZS1zd2F0Y2g6bWF0Y2hlcyguYmV6aWVy
LCAuc3ByaW5nKTphY3RpdmUpOgorICAgICAgICAoLmlubGluZS1zd2F0Y2g6bWF0Y2hlcyguYmV6
aWVyLCAuc3ByaW5nKSA+IHNwYW4pOgorICAgICAgICAoLmlubGluZS1zd2F0Y2guYmV6aWVyKTog
RGVsZXRlZC4KKyAgICAgICAgKC5pbmxpbmUtc3dhdGNoLmJlemllcjpob3Zlcik6IERlbGV0ZWQu
CisgICAgICAgICguaW5saW5lLXN3YXRjaC5iZXppZXI6YWN0aXZlKTogRGVsZXRlZC4KKyAgICAg
ICAgKC5pbmxpbmUtc3dhdGNoLmJlemllciA+IHNwYW4pOiBEZWxldGVkLgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9JbmxpbmVTd2F0Y2guanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuSW5saW5lU3dhdGNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2gucHJv
dG90eXBlLl9mYWxsYmFja1ZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0
Y2gucHJvdG90eXBlLl9zd2F0Y2hFbGVtZW50Q2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuSW5saW5lU3dhdGNoLnByb3RvdHlwZS5fdmFsdWVFZGl0b3JWYWx1ZURpZENoYW5nZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUpOgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9Tb3VyY2VDb2RlVGV4dEVkaXRvci5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvci5wcm90b3R5cGUuX3VwZGF0ZUVkaXRhYmxlTWFy
a2Vycyk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmluZ0VkaXRvci5jc3M6
CisgICAgICAgICguc3ByaW5nLWVkaXRvcik6CisgICAgICAgICguc3ByaW5nLWVkaXRvciA+IC5z
cHJpbmctcHJldmlldyk6CisgICAgICAgICguc3ByaW5nLWVkaXRvciA+IC5zcHJpbmctcHJldmll
dyA+IGRpdik6CisgICAgICAgICguc3ByaW5nLWVkaXRvciA+IC5zcHJpbmctdGltaW5nKToKKyAg
ICAgICAgKC5zcHJpbmctZWRpdG9yID4gLnNwcmluZy10aW1pbmcgPiBkaXYpOgorICAgICAgICAo
LnNwcmluZy1lZGl0b3IgPiAuc3ByaW5nLXRpbWluZzptYXRjaGVzKDo6YmVmb3JlLCA6OmFmdGVy
KSk6CisgICAgICAgICguc3ByaW5nLWVkaXRvciA+IC5zcHJpbmctdGltaW5nOjpiZWZvcmUpOgor
ICAgICAgICAoLnNwcmluZy1lZGl0b3IgPiAuc3ByaW5nLXRpbWluZzo6YWZ0ZXIpOgorICAgICAg
ICAoLnNwcmluZy1lZGl0b3IgPiAuYW5pbWF0ZTptYXRjaGVzKC5zcHJpbmctcHJldmlldywgLnNw
cmluZy10aW1pbmcpID4gZGl2KToKKyAgICAgICAgKC5zcHJpbmctZWRpdG9yID4gLnNwcmluZy1w
cmV2aWV3LmFuaW1hdGUgPiBkaXYpOgorICAgICAgICAoLnNwcmluZy1lZGl0b3IgPiAuc3ByaW5n
LXRpbWluZy5hbmltYXRlID4gZGl2KToKKyAgICAgICAgKC5zcHJpbmctZWRpdG9yID4gLm51bWJl
ci1pbnB1dC1jb250YWluZXIgPiAubnVtYmVyLWlucHV0LXJvdyk6CisgICAgICAgICguc3ByaW5n
LWVkaXRvciA+IC5udW1iZXItaW5wdXQtY29udGFpbmVyID4gLm51bWJlci1pbnB1dC1yb3cgPiAu
bnVtYmVyLWlucHV0LXJvdy10aXRsZSk6CisgICAgICAgICguc3ByaW5nLWVkaXRvciA+IC5udW1i
ZXItaW5wdXQtY29udGFpbmVyID4gLm51bWJlci1pbnB1dC1yb3cgPiBpbnB1dCk6CisgICAgICAg
ICguc3ByaW5nLWVkaXRvciA+IC5udW1iZXItaW5wdXQtY29udGFpbmVyID4gLm51bWJlci1pbnB1
dC1yb3cgPiBpbnB1dFt0eXBlPSJyYW5nZSJdKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvU3ByaW5nRWRpdG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZ0VkaXRv
cik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3ByaW5nRWRpdG9yLnByb3RvdHlwZS5nZXQgZWxl
bWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3ByaW5nRWRpdG9yLnByb3RvdHlwZS5zZXQg
c3ByaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TcHJpbmdFZGl0b3IucHJvdG90eXBlLmdl
dCBzcHJpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZ0VkaXRvci5wcm90b3R5cGUu
X2hhbmRsZU51bWJlcklucHV0SW5wdXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZ0Vk
aXRvci5wcm90b3R5cGUuX2hhbmRsZU51bWJlcklucHV0S2V5ZG93bik6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU3ByaW5nRWRpdG9yLnByb3RvdHlwZS5faGFuZGxlTnVtYmVyU2xpZGVySW5wdXQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZ0VkaXRvci5wcm90b3R5cGUuX2hhbmRsZU51
bWJlclNsaWRlck1vdXNlZG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3ByaW5nRWRpdG9y
LnByb3RvdHlwZS5faGFuZGxlTnVtYmVyU2xpZGVyTW91c2V1cCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU3ByaW5nRWRpdG9yLnByb3RvdHlwZS5fY2hhbmdlU3ByaW5nRm9ySW5wdXQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZ0VkaXRvci5wcm90b3R5cGUuX3VwZGF0ZVByZXZpZXdB
bmltYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZ0VkaXRvci5wcm90b3R5cGUu
X3Jlc2V0UHJldmlld0FuaW1hdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3ByaW5nRWRp
dG9yLkV2ZW50KToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVGV4dEVkaXRvci5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZS5jcmVhdGVTcHJp
bmdNYXJrZXJzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZS5l
ZGl0aW5nQ29udHJvbGxlckZvck1hcmtlcik6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Zp
ZXdzL1Zpc3VhbFN0eWxlVGltaW5nRWRpdG9yLmNzczoKKyAgICAgICAgKC52aXN1YWwtc3R5bGUt
cHJvcGVydHktY29udGFpbmVyLnRpbWluZy1lZGl0b3IgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5
LXZhbHVlLWNvbnRhaW5lciA+IC5pbmxpbmUtc3dhdGNoOm1hdGNoZXMoLmJlemllciwgLnNwcmlu
ZykpOgorICAgICAgICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIudGltaW5nLWVk
aXRvciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyOm5vdCguc3ByaW5n
LXZhbHVlKSA+IC5pbmxpbmUtc3dhdGNoLnNwcmluZyk6CisgICAgICAgICgudmlzdWFsLXN0eWxl
LXByb3BlcnR5LWNvbnRhaW5lci50aW1pbmctZWRpdG9yID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0
eS12YWx1ZS1jb250YWluZXIgPiAuaW5saW5lLXN3YXRjaC5iZXppZXIpOiBEZWxldGVkLgorICAg
ICAgICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIudGltaW5nLWVkaXRvciA+IC52
aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyOm5vdCguYmV6aWVyLXZhbHVlKSA+
IC5pbmxpbmUtc3dhdGNoLmJlemllcik6IERlbGV0ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVGltaW5nRWRpdG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlZpc3VhbFN0eWxlVGltaW5nRWRpdG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1
YWxTdHlsZVRpbWluZ0VkaXRvci5wcm90b3R5cGUuZ2V0IHZhbHVlKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5WaXN1YWxTdHlsZVRpbWluZ0VkaXRvci5wcm90b3R5cGUuc2V0IHZhbHVlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVRpbWluZ0VkaXRvci5wcm90b3R5cGUuZ2V0
IHN5bnRoZXNpemVkVmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlVGlt
aW5nRWRpdG9yLnByb3RvdHlwZS5wYXJzZVZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5W
aXN1YWxTdHlsZVRpbWluZ0VkaXRvci5wcm90b3R5cGUuZ2V0IF9iZXppZXJWYWx1ZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVUaW1pbmdFZGl0b3IucHJvdG90eXBlLnNldCBf
YmV6aWVyVmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlVGltaW5nRWRp
dG9yLnByb3RvdHlwZS5nZXQgX3NwcmluZ1ZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5W
aXN1YWxTdHlsZVRpbWluZ0VkaXRvci5wcm90b3R5cGUuc2V0IF9zcHJpbmdWYWx1ZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVUaW1pbmdFZGl0b3IucHJvdG90eXBlLl9oYW5k
bGVLZXl3b3JkQ2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVUaW1p
bmdFZGl0b3IucHJvdG90eXBlLl9zcHJpbmdTd2F0Y2hWYWx1ZUNoYW5nZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlVGltaW5nRWRpdG9yLnByb3RvdHlwZS5nZXQgYmV6aWVy
VmFsdWUpOiBSZW5hbWVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlVGltaW5n
RWRpdG9yLnByb3RvdHlwZS5zZXQgYmV6aWVyVmFsdWUpOiBSZW5hbWVkLgorCiAyMDE2LTA4LTEy
ICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBBZGQgYXBwbGljYXRpb24vdm5kLmFwaStqc29uIGFzIGEgdmFsaWQgSlNPTiBNSU1F
LXR5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2Vu
Lmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxp
emF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IDk5OTk2MjM2MDZkM2Jm
OGU3NDJmZDMwZmJiYTk3NDdlMjhiNmY1OGUuLmYzZWFmY2U1ZDVhNzUyZTY3MTgzNDY4MzVkZGE1
YjY2ODM4NTI5MWMgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgMzQ4CnpjbWVBPSVsaHNq
PnhSNDl2WilNSjQ0RGs2M2BHbnw0NnpJZjQ3TmI1I05ZJUowZzZ2SGMmNU1rdylRbTkkXlJZcgp6
eFFpSklmWFhyJUApKik1VXZSSiRNJmJpQ3I4MTsyV0tLNypWPkkzekA4fXtrYEQ1JVYqPDdGd3V6
RDIzVF5KRz4KemZISVI4VHIhK3xIOyFaVHs1WkNGJU4oRSlWTChIMjgxZm1DZnRwR2ZEcDUzZjA8
OHMhVyYkOyVzR1ZMSCQ3cn5ECno9SDZSRXFRd2x3RDArTj5ZS3RjP1ZBOT4zZV8+VERHdGwrWkgp
dTE4R1p1bFlwOGl7KGshUU5NOTs0ODlRJDBvdgp6Uj9TUj9HJDcwYXgmaHNzVjZlUyMrMzU/Kzch
OVl0SChfTCgtZmhlJUdKVTV1KDRlXntqMnpwNi0yWC1aUXRWbmEKCmRlbHRhIDkyCnpjbWFFTmsr
dGhBPnhSNDlvMyhZT2g7R2h4R0xsaHJXKy1KU1crLTlFWFVKdHhWdSlvPlY2WCpaQj9oP29xfDNV
SwpwPWZ8enVKVWdCJWV6V3hjYjMmVy1GRDtBUnU1N15RIWE3fndqRkR+b2FaXlRoVipxNkg5ZDde
dAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4u
aHRtbCBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAppbmRl
eCA1MjVjZjEyOTgzN2ZjN2I5Njk3YmYwZGMzMGUyYjcxNmM2YmUxMjliLi41MzQ2ODFhZTQ1ZjVm
MDMzYzkyOTU3NjkwNWRlNWQ1NTRlODQzZTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCkBAIC0xNTEsNiArMTUxLDcgQEAKICAgICA8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL1NpZGViYXJQYW5lbC5jc3MiPgogICAgIDxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvU2xpZGVyLmNzcyI+CiAgICAgPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9Tb3VyY2VDb2RlVGV4dEVkaXRvci5jc3MiPgorICAg
IDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvU3ByaW5nRWRpdG9yLmNzcyI+CiAg
ICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9TdGFja1RyYWNlVmlldy5jc3Mi
PgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvU3RvcmFnZVNpZGViYXJQ
YW5lbC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvU3R5bGVS
dWxlSWNvbnMuY3NzIj4KQEAgLTYyMSw2ICs2MjIsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJWaWV3
cy9Tb3VyY2VDb2RlVGltZWxpbmVUaW1lbGluZURhdGFHcmlkTm9kZS5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IlZpZXdzL1NvdXJjZUNvZGVUaW1lbGluZVRyZWVFbGVtZW50LmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvU291cmNlTWFwUmVzb3VyY2VUcmVlRWxl
bWVudC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1NwcmluZ0VkaXRvci5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1N0YWNrVHJhY2VWaWV3LmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvU3RhY2tlZExpbmVDaGFydC5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1N0b3JhZ2VTaWRlYmFyUGFuZWwuanMiPjwv
c2NyaXB0PgpAQCAtNjgwLDYgKzY4Miw3IEBACiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJz
L0NvZGVNaXJyb3JCZXppZXJFZGl0aW5nQ29udHJvbGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IkNvbnRyb2xsZXJzL0NvZGVNaXJyb3JEcmFnVG9BZGp1c3ROdW1iZXJDb250cm9s
bGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQ29kZU1pcnJv
ckdyYWRpZW50RWRpdGluZ0NvbnRyb2xsZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSJDb250cm9sbGVycy9Db2RlTWlycm9yU3ByaW5nRWRpdGluZ0NvbnRyb2xsZXIuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9Db2RlTWlycm9yVG9rZW5UcmFja2lu
Z0NvbnRyb2xsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9D
b2RlTWlycm9yVGV4dEtpbGxDb250cm9sbGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iQ29udHJvbGxlcnMvRE9NVHJlZU1hbmFnZXIuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0dlb21ldHJ5LmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0dlb21ldHJ5LmpzCmlu
ZGV4IDU5MTBjNjZkMzJjYjk5YTQ0NjVmNjlmZWYzOTVkNGM1NWJiMzYzZDAuLjFmODU5NTMxYzEy
MmI5MzJlN2NjNzgwOWQ5ZDZhZDJkZTEyZTgxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9HZW9tZXRyeS5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvR2VvbWV0cnkuanMKQEAgLTQ3NiwzICs0
NzYsOTYgQEAgV2ViSW5zcGVjdG9yLkN1YmljQmV6aWVyLmtleXdvcmRWYWx1ZXMgPSB7CiAgICAg
ImVhc2UtaW4tb3V0IjogIFswLjQyLCAwLCAwLjU4LCAxXSwKICAgICAibGluZWFyIjogICAgICAg
WzAsIDAsIDEsIDFdCiB9OworCitXZWJJbnNwZWN0b3IuU3ByaW5nID0gY2xhc3MgU3ByaW5nCit7
CisgICAgY29uc3RydWN0b3IobWFzcywgc3RpZmZuZXNzLCBkYW1waW5nLCBpbml0aWFsVmVsb2Np
dHkpCisgICAgeworICAgICAgICB0aGlzLm1hc3MgPSBtYXNzID4gMCA/IG1hc3MgOiAxOworICAg
ICAgICB0aGlzLnN0aWZmbmVzcyA9IHN0aWZmbmVzcyA+IDAgPyBzdGlmZm5lc3MgOiAxOworICAg
ICAgICB0aGlzLmRhbXBpbmcgPSBNYXRoLm1heCgwLCBkYW1waW5nKTsKKyAgICAgICAgdGhpcy5p
bml0aWFsVmVsb2NpdHkgPSBpbml0aWFsVmVsb2NpdHk7CisgICAgfQorCisgICAgLy8gU3RhdGlj
CisKKyAgICBzdGF0aWMgZnJvbVZhbHVlcyh2YWx1ZXMpCisgICAgeworICAgICAgICBpZiAoIXZh
bHVlcyB8fCB2YWx1ZXMubGVuZ3RoIDwgNCkKKyAgICAgICAgICAgIHJldHVybiBudWxsOworCisg
ICAgICAgIHZhbHVlcyA9IHZhbHVlcy5tYXAoTnVtYmVyKTsKKyAgICAgICAgaWYgKHZhbHVlcy5p
bmNsdWRlcyhOYU4pKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICAgICAgcmV0dXJu
IG5ldyBXZWJJbnNwZWN0b3IuU3ByaW5nKHZhbHVlc1swXSwgdmFsdWVzWzFdLCB2YWx1ZXNbMl0s
IHZhbHVlc1szXSk7CisgICAgfQorCisgICAgc3RhdGljIGZyb21TdHJpbmcodGV4dCkKKyAgICB7
CisgICAgICAgIGlmICghdGV4dCB8fCAhdGV4dC5sZW5ndGgpCisgICAgICAgICAgICByZXR1cm4g
bnVsbDsKKworICAgICAgICBsZXQgdHJpbW1lZFRleHQgPSB0ZXh0LnRvTG93ZXJDYXNlKCkudHJp
bSgpOworICAgICAgICBpZiAoIXRyaW1tZWRUZXh0Lmxlbmd0aCkKKyAgICAgICAgICAgIHJldHVy
biBudWxsOworCisgICAgICAgIGxldCBtYXRjaGVzID0gdHJpbW1lZFRleHQubWF0Y2goL15zcHJp
bmdcKChbXGQuXSspXHMrKFtcZC5dKylccysoW1xkLl0rKVxzKyhbLVxkLl0rKVwpJC8pOworICAg
ICAgICBpZiAoIW1hdGNoZXMpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAgICBy
ZXR1cm4gV2ViSW5zcGVjdG9yLlNwcmluZy5mcm9tVmFsdWVzKG1hdGNoZXMuc2xpY2UoMSkpOwor
ICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgY29weSgpCisgICAgeworICAgICAgICByZXR1
cm4gbmV3IFdlYkluc3BlY3Rvci5TcHJpbmcodGhpcy5tYXNzLCB0aGlzLnN0aWZmbmVzcywgdGhp
cy5kYW1waW5nLCB0aGlzLmluaXRpYWxWZWxvY2l0eSk7CisgICAgfQorCisgICAgdG9TdHJpbmco
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGBzcHJpbmcoJHt0aGlzLm1hc3N9ICR7dGhpcy5zdGlm
Zm5lc3N9ICR7dGhpcy5kYW1waW5nfSAke3RoaXMuaW5pdGlhbFZlbG9jaXR5fSlgOworICAgIH0K
KworICAgIHNvbHZlKHQpCisgICAgeworICAgICAgICBsZXQgdzAgPSBNYXRoLnNxcnQodGhpcy5z
dGlmZm5lc3MgLyB0aGlzLm1hc3MpOworICAgICAgICBsZXQgemV0YSA9IHRoaXMuZGFtcGluZyAv
ICgyICogTWF0aC5zcXJ0KHRoaXMuc3RpZmZuZXNzICogdGhpcy5tYXNzKSk7CisKKyAgICAgICAg
bGV0IHdkID0gMDsKKyAgICAgICAgbGV0IEEgPSAxOworICAgICAgICBsZXQgQiA9IC10aGlzLmlu
aXRpYWxWZWxvY2l0eSArIHcwOworICAgICAgICBpZiAoemV0YSA8IDEpIHsKKyAgICAgICAgICAg
IC8vIFVuZGVyLWRhbXBlZC4KKyAgICAgICAgICAgIHdkID0gdzAgKiBNYXRoLnNxcnQoMSAtIHpl
dGEgKiB6ZXRhKTsKKyAgICAgICAgICAgIEEgPSAxOworICAgICAgICAgICAgQiA9ICh6ZXRhICog
dzAgKyAtdGhpcy5pbml0aWFsVmVsb2NpdHkpIC8gd2Q7CisgICAgICAgIH0KKworICAgICAgICBp
ZiAoemV0YSA8IDEpIC8vIFVuZGVyLWRhbXBlZAorICAgICAgICAgICAgdCA9IE1hdGguZXhwKC10
ICogemV0YSAqIHcwKSAqIChBICogTWF0aC5jb3Mod2QgKiB0KSArIEIgKiBNYXRoLnNpbih3ZCAq
IHQpKTsKKyAgICAgICAgZWxzZSAvLyBDcml0aWNhbGx5IGRhbXBlZCAoaWdub3Jpbmcgb3Zlci1k
YW1wZWQgY2FzZSkuCisgICAgICAgICAgICB0ID0gKEEgKyBCICogdCkgKiBNYXRoLmV4cCgtdCAq
IHcwKTsKKworICAgICAgICByZXR1cm4gMSAtIHQ7IC8vIE1hcCByYW5nZSBmcm9tIFsxLi4wXSB0
byBbMC4uMV0uCisgICAgfQorCisgICAgY2FsY3VsYXRlRHVyYXRpb24oZXBzaWxvbikKKyAgICB7
CisgICAgICAgIGVwc2lsb24gPSBlcHNpbG9uIHx8IDAuMDAwMTsKKyAgICAgICAgbGV0IHQgPSAw
OworICAgICAgICBsZXQgY3VycmVudCA9IDA7CisgICAgICAgIGxldCBtaW5pbXVtID0gTnVtYmVy
LlBPU0lUSVZFX0lORklOSVRZOworICAgICAgICB3aGlsZSAoY3VycmVudCA+PSBlcHNpbG9uIHx8
IG1pbmltdW0gPj0gZXBzaWxvbikgeworICAgICAgICAgICAgY3VycmVudCA9IE1hdGguYWJzKDEg
LSB0aGlzLnNvbHZlKHQpKTsgLy8gVW5kbyB0aGUgcmFuZ2UgbWFwcGluZworICAgICAgICAgICAg
aWYgKG1pbmltdW0gPCBlcHNpbG9uICYmIGN1cnJlbnQgPj0gZXBzaWxvbikKKyAgICAgICAgICAg
ICAgICBtaW5pbXVtID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZOyAvLyBTcHJpbmcgcmV2ZXJz
ZWQgZGlyZWN0aW9uCisgICAgICAgICAgICBlbHNlIGlmIChjdXJyZW50IDwgbWluaW11bSkKKyAg
ICAgICAgICAgICAgICBtaW5pbXVtID0gY3VycmVudDsKKyAgICAgICAgICAgIHQgKz0gMC4xOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiB0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9UZXh0TWFya2VyLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1RleHRNYXJrZXIuanMKaW5k
ZXggMzIyMGEyNDgxMzE4YTViMmY5OTYxMjVlM2YxZWYxMmQ4Y2U3YjE0My4uOWYyNTIyY2ExYjUz
NDk4MDk5NmYzYTVkMjFlNmQwMDY5MjgyN2Q0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1RleHRNYXJrZXIuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1RleHRNYXJrZXIuanMKQEAgLTgzLDUg
KzgzLDYgQEAgV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIuVHlwZSA9IHsKICAgICBDb2xvcjogInRl
eHQtbWFya2VyLXR5cGUtY29sb3IiLAogICAgIEdyYWRpZW50OiAidGV4dC1tYXJrZXItdHlwZS1n
cmFkaWVudCIsCiAgICAgUGxhaW46ICJ0ZXh0LW1hcmtlci10eXBlLXBsYWluIiwKLSAgICBDdWJp
Y0JlemllcjogInRleHQtbWFya2VyLXR5cGUtY3ViaWMtYmV6aWVyIgorICAgIEN1YmljQmV6aWVy
OiAidGV4dC1tYXJrZXItdHlwZS1jdWJpYy1iZXppZXIiLAorICAgIFNwcmluZzogInRleHQtbWFy
a2VyLXR5cGUtc3ByaW5nIgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlv
blRleHRFZGl0b3IuanMKaW5kZXggNTgwNWVkMjYwM2RlMmNkODYyOWZhN2U1ODMzYTU0NDU4NzFl
NmZjOC4uZTI0NGE5OTQ0ODRhN2JjNGFhYTA0M2Q2OGVkMmFlM2EyMzZmNmY2MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNs
YXJhdGlvblRleHRFZGl0b3IuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuanMKQEAgLTg4Niw2ICs4
ODYsMTIgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yID0gY2xh
c3MgQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IKICAgICAgICAgICAgICAgICBsZXQgc3dh
dGNoID0gbmV3IFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2goV2ViSW5zcGVjdG9yLklubGluZVN3
YXRjaC5UeXBlLkJlemllciwgYmV6aWVyLCB0aGlzLl9jb2RlTWlycm9yLmdldE9wdGlvbigicmVh
ZE9ubHkiKSk7CiAgICAgICAgICAgICAgICAgY3JlYXRlU3dhdGNoLmNhbGwodGhpcywgc3dhdGNo
LCBtYXJrZXIsIGJlemllciwgYmV6aWVyU3RyaW5nKTsKICAgICAgICAgICAgIH0pOworCisgICAg
ICAgICAgICAvLyBMb29rIGZvciBzcHJpbmcgc3RyaW5ncyBhbmQgYWRkIHN3YXRjaGVzIGluIGZy
b250IG9mIHRoZW0uCisgICAgICAgICAgICBjcmVhdGVDb2RlTWlycm9yU3ByaW5nVGV4dE1hcmtl
cnModGhpcy5fY29kZU1pcnJvciwgcmFuZ2UsIChtYXJrZXIsIHNwcmluZywgc3ByaW5nU3RyaW5n
KSA9PiB7CisgICAgICAgICAgICAgICAgbGV0IHN3YXRjaCA9IG5ldyBXZWJJbnNwZWN0b3IuSW5s
aW5lU3dhdGNoKFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2guVHlwZS5TcHJpbmcsIHNwcmluZywg
dGhpcy5fY29kZU1pcnJvci5nZXRPcHRpb24oInJlYWRPbmx5IikpOworICAgICAgICAgICAgICAg
IGNyZWF0ZVN3YXRjaC5jYWxsKHRoaXMsIHN3YXRjaCwgbWFya2VyLCBzcHJpbmcsIHNwcmluZ1N0
cmluZyk7CisgICAgICAgICAgICB9KTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChub25hdG9t
aWMpCkBAIC0xMzE4LDggKzEzMjQsOSBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlv
blRleHRFZGl0b3IgPSBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvcgogCiAgICAg
ICAgICAgICAgICAgZm9yIChsZXQgbWFyayBvZiBtYXJrcykgewogICAgICAgICAgICAgICAgICAg
ICBsZXQgdHlwZSA9IFdlYkluc3BlY3Rvci5UZXh0TWFya2VyLnRleHRNYXJrZXJGb3JDb2RlTWly
cm9yVGV4dE1hcmtlcihtYXJrKS50eXBlOwotICAgICAgICAgICAgICAgICAgICBpZiAodHlwZSAh
PT0gV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIuVHlwZS5Db2xvciAmJiB0eXBlICE9PSBXZWJJbnNw
ZWN0b3IuVGV4dE1hcmtlci5UeXBlLkdyYWRpZW50ICYmIHR5cGUgIT09IFdlYkluc3BlY3Rvci5U
ZXh0TWFya2VyLlR5cGUuQ3ViaWNCZXppZXIpCisgICAgICAgICAgICAgICAgICAgIGlmIChPYmpl
Y3QudmFsdWVzKFdlYkluc3BlY3Rvci5UZXh0TWFya2VyLlR5cGUpLmluY2x1ZGVzKHR5cGUpKQog
ICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisKICAgICAgICAgICAgICAgICAgICAg
dGV4dE1hcmtlciA9IG1hcms7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0NvZGVNaXJyb3JTcHJpbmdFZGl0aW5nQ29udHJvbGxlci5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JTcHJpbmdFZGl0aW5nQ29u
dHJvbGxlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZjFmOTFmMTQ2NzFjNWY4NTY1MjIzZmFiMTI2ZGVhODBk
NmM3YzQ5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQ29kZU1pcnJvclNwcmluZ0VkaXRpbmdDb250cm9sbGVyLmpzCkBAIC0wLDAg
KzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgRGV2aW4gUm91c3NvIDxkY3JvdXNz
byt3ZWJraXRAZ21haWwuY29tPi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV2Vi
SW5zcGVjdG9yLkNvZGVNaXJyb3JTcHJpbmdFZGl0aW5nQ29udHJvbGxlciA9IGNsYXNzIENvZGVN
aXJyb3JTcHJpbmdFZGl0aW5nQ29udHJvbGxlciBleHRlbmRzIFdlYkluc3BlY3Rvci5Db2RlTWly
cm9yRWRpdGluZ0NvbnRyb2xsZXIKK3sKKyAgICAvLyBQdWJsaWMKKworICAgIGdldCBpbml0aWFs
VmFsdWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5TcHJpbmcuZnJvbVN0
cmluZyh0aGlzLnRleHQpOworICAgIH0KKworICAgIGdldCBjc3NDbGFzc05hbWUoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuICJzcHJpbmciOworICAgIH0KKworICAgIHBvcG92ZXJXaWxsUHJlc2Vu
dChwb3BvdmVyKQorICAgIHsKKyAgICAgICAgdGhpcy5fc3ByaW5nRWRpdG9yID0gbmV3IFdlYklu
c3BlY3Rvci5TcHJpbmdFZGl0b3I7CisgICAgICAgIHRoaXMuX3NwcmluZ0VkaXRvci5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5TcHJpbmdFZGl0b3IuRXZlbnQuU3ByaW5nQ2hhbmdlZCwg
dGhpcy5fc3ByaW5nRWRpdG9yU3ByaW5nQ2hhbmdlZCwgdGhpcyk7CisgICAgICAgIHBvcG92ZXIu
Y29udGVudCA9IHRoaXMuX3NwcmluZ0VkaXRvci5lbGVtZW50OworICAgIH0KKworICAgIHBvcG92
ZXJEaWRQcmVzZW50KHBvcG92ZXIpCisgICAgeworICAgICAgICB0aGlzLl9zcHJpbmdFZGl0b3Iu
c3ByaW5nID0gdGhpcy52YWx1ZTsKKyAgICB9CisKKyAgICBwb3BvdmVyRGlkRGlzbWlzcyhwb3Bv
dmVyKQorICAgIHsKKyAgICAgICAgdGhpcy5fc3ByaW5nRWRpdG9yLnJlbW92ZUxpc3RlbmVycygp
OworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9zcHJpbmdFZGl0b3JTcHJpbmdDaGFu
Z2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy52YWx1ZSA9IGV2ZW50LmRhdGEuc3ByaW5n
OworICAgIH0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9Db2RlTWlycm9yVGV4dE1hcmtlcnMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2RlTWlycm9yVGV4dE1hcmtlcnMuanMKaW5kZXggYzMx
Yzg2NmU0Yjk4YzY3YTlhOGU1N2QwZDI0ZGQ3NWZjYWE5YmU5Zi4uOWRhNzUxM2FkNDA2Mzg4MGVk
ZTQ5YTVlY2ZiN2Y0YzUzYTliMzZkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQ29kZU1pcnJvclRleHRNYXJrZXJzLmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JUZXh0TWFya2Vy
cy5qcwpAQCAtMTk1LDMgKzE5NSw5IEBAIGZ1bmN0aW9uIGNyZWF0ZUNvZGVNaXJyb3JDdWJpY0Jl
emllclRleHRNYXJrZXJzKGNvZGVNaXJyb3IsIHJhbmdlLCBjYWxsYmFjaykKICAgICB2YXIgY3Vi
aWNCZXppZXJSZWdleCA9IC8oY3ViaWMtYmV6aWVyXChbXildK1wpfFxiXHcrXGIoPzotXGJcdytc
Yil7MCwyfSkvZzsKICAgICByZXR1cm4gY3JlYXRlQ29kZU1pcnJvclRleHRNYXJrZXJzKCJDdWJp
Y0JlemllciIsIGN1YmljQmV6aWVyUmVnZXgsIG51bGwsIGNvZGVNaXJyb3IsIHJhbmdlLCBjYWxs
YmFjayk7CiB9CisKK2Z1bmN0aW9uIGNyZWF0ZUNvZGVNaXJyb3JTcHJpbmdUZXh0TWFya2Vycyhj
b2RlTWlycm9yLCByYW5nZSwgY2FsbGJhY2spCit7CisgICAgY29uc3Qgc3ByaW5nUmVnZXggPSAv
KHNwcmluZ1woW14pXStcKSkvZzsKKyAgICByZXR1cm4gY3JlYXRlQ29kZU1pcnJvclRleHRNYXJr
ZXJzKCJTcHJpbmciLCBzcHJpbmdSZWdleCwgbnVsbCwgY29kZU1pcnJvciwgcmFuZ2UsIGNhbGxi
YWNrKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0lubGluZVN3YXRjaC5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9JbmxpbmVTd2F0Y2guY3NzCmluZGV4IDExZjZlNjM4ZTczYjQwY2ZlYTU1MWJm
Yzc5MjkxZmQ0ZTllNGExMzEuLmZjMmExNjhkMjk4MzlhMTI4NmJhYmFlZGUxMmY2N2I3YzQ1ZTg5
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0lubGluZVN3YXRjaC5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvSW5saW5lU3dhdGNoLmNzcwpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0
IChDKSAyMDE1IERldmluIFJvdXNzbyA8ZGNyb3Vzc28rd2Via2l0QGdtYWlsLmNvbT4uIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBEZXZpbiBSb3Vzc28g
PGRjcm91c3NvK3dlYmtpdEBnbWFpbC5jb20+LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MywxNyArNDMsMjAgQEAKICAgICBjdXJzb3I6
IGRlZmF1bHQ7CiB9CiAKLS5pbmxpbmUtc3dhdGNoLmJlemllciB7Ci0gICAgbWFyZ2luLXJpZ2h0
OiAycHg7CisuaW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXppZXIsIC5zcHJpbmcpIHsKICAgICBj
b250ZW50OiB1cmwoLi4vSW1hZ2VzL0N1YmljQmV6aWVyLnN2Zyk7Cit9CisKKy5pbmxpbmUtc3dh
dGNoOm1hdGNoZXMoLmJlemllciwgLnNwcmluZykgeworICAgIG1hcmdpbi1yaWdodDogMnB4Owog
ICAgIGJhY2tncm91bmQ6IG5vbmU7CiB9CiAKLS5pbmxpbmUtc3dhdGNoLmJlemllcjpob3ZlciB7
CisuaW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXppZXIsIC5zcHJpbmcpOmhvdmVyIHsKICAgICBm
aWx0ZXI6IGJyaWdodG5lc3MoMC45KTsKIH0KIAotLmlubGluZS1zd2F0Y2guYmV6aWVyOmFjdGl2
ZSB7CisuaW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXppZXIsIC5zcHJpbmcpOmFjdGl2ZSB7CiAg
ICAgZmlsdGVyOiBicmlnaHRuZXNzKDAuOCk7CiB9CiAKQEAgLTg1LDcgKzg4LDcgQEAKICAgICBi
b3JkZXItY29sb3I6IGhzbCgwLCAwJSwgMjUlKTsKIH0KIAotLmlubGluZS1zd2F0Y2guYmV6aWVy
ID4gc3BhbiB7CisuaW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXppZXIsIC5zcHJpbmcpID4gc3Bh
biB7CiAgICAgZGlzcGxheTogbm9uZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSW5saW5lU3dhdGNoLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSW5saW5lU3dhdGNoLmpzCmluZGV4IGQ2ZTM2
OGM0NTEyYWNlMTlhNDlmMmQ1YjhkNTk5YWQ1M2E4NDcwOWUuLmEwMGQ0MDgzZDcwNTRhM2I4MDFj
OTZhMzk2NDJiMzE1M2QyMDA1OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0lubGluZVN3YXRjaC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9JbmxpbmVTd2F0Y2guanMKQEAgLTM5LDYgKzM5LDkg
QEAgV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaCA9IGNsYXNzIElubGluZVN3YXRjaCBleHRlbmRz
IFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuSW5saW5lU3dh
dGNoLlR5cGUuQmV6aWVyOgogICAgICAgICAgICAgdGhpcy5fc3dhdGNoRWxlbWVudC50aXRsZSA9
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2xpY2sgdG8gb3BlbiBhIGN1YmljLWJlemllciBlZGl0
b3IuIik7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuSW5s
aW5lU3dhdGNoLlR5cGUuU3ByaW5nOgorICAgICAgICAgICAgdGhpcy5fc3dhdGNoRWxlbWVudC50
aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2xpY2sgdG8gb3BlbiBhIHNwcmluZyBlZGl0
b3IuIik7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuSW5s
aW5lU3dhdGNoLlR5cGUuR3JhZGllbnQ6CiAgICAgICAgICAgICB0aGlzLl9zd2F0Y2hFbGVtZW50
LnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDbGljayB0byBzZWxlY3QgYSBncmFkaWVu
dC4iKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtOTgsNiArMTAxLDggQEAgV2ViSW5zcGVjdG9y
LklubGluZVN3YXRjaCA9IGNsYXNzIElubGluZVN3YXRjaCBleHRlbmRzIFdlYkluc3BlY3Rvci5P
YmplY3QKICAgICAgICAgc3dpdGNoICh0aGlzLl90eXBlKSB7CiAgICAgICAgIGNhc2UgV2ViSW5z
cGVjdG9yLklubGluZVN3YXRjaC5UeXBlLkJlemllcjoKICAgICAgICAgICAgIHJldHVybiBXZWJJ
bnNwZWN0b3IuQ3ViaWNCZXppZXIuZnJvbVN0cmluZygibGluZWFyIik7CisgICAgICAgIGNhc2Ug
V2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5UeXBlLlNwcmluZzoKKyAgICAgICAgICAgIHJldHVy
biBXZWJJbnNwZWN0b3IuU3ByaW5nLmZyb21TdHJpbmcoIjEgMTAwIDEwIDAiKTsKICAgICAgICAg
Y2FzZSBXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUuR3JhZGllbnQ6CiAgICAgICAgICAg
ICByZXR1cm4gV2ViSW5zcGVjdG9yLkdyYWRpZW50LmZyb21TdHJpbmcoImxpbmVhci1ncmFkaWVu
dCh0cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQpIik7CiAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9y
LklubGluZVN3YXRjaC5UeXBlLkNvbG9yOgpAQCAtMTQzLDYgKzE0OCw5IEBAIFdlYkluc3BlY3Rv
ci5JbmxpbmVTd2F0Y2ggPSBjbGFzcyBJbmxpbmVTd2F0Y2ggZXh0ZW5kcyBXZWJJbnNwZWN0b3Iu
T2JqZWN0CiAgICAgICAgIGlmICh0aGlzLl90eXBlID09PSBXZWJJbnNwZWN0b3IuSW5saW5lU3dh
dGNoLlR5cGUuQmV6aWVyKSB7CiAgICAgICAgICAgICB0aGlzLl92YWx1ZUVkaXRvciA9IG5ldyBX
ZWJJbnNwZWN0b3IuQmV6aWVyRWRpdG9yOwogICAgICAgICAgICAgdGhpcy5fdmFsdWVFZGl0b3Iu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQmV6aWVyRWRpdG9yLkV2ZW50LkJlemllckNo
YW5nZWQsIHRoaXMuX3ZhbHVlRWRpdG9yVmFsdWVEaWRDaGFuZ2UsIHRoaXMpOworICAgICAgICB9
IGVsc2UgaWYgKHRoaXMuX3R5cGUgPT09IFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2guVHlwZS5T
cHJpbmcpIHsKKyAgICAgICAgICAgIHRoaXMuX3ZhbHVlRWRpdG9yID0gbmV3IFdlYkluc3BlY3Rv
ci5TcHJpbmdFZGl0b3I7CisgICAgICAgICAgICB0aGlzLl92YWx1ZUVkaXRvci5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5TcHJpbmdFZGl0b3IuRXZlbnQuU3ByaW5nQ2hhbmdlZCwgdGhp
cy5fdmFsdWVFZGl0b3JWYWx1ZURpZENoYW5nZSwgdGhpcyk7CiAgICAgICAgIH0gZWxzZSBpZiAo
dGhpcy5fdHlwZSA9PT0gV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5UeXBlLkdyYWRpZW50KSB7
CiAgICAgICAgICAgICB0aGlzLl92YWx1ZUVkaXRvciA9IG5ldyBXZWJJbnNwZWN0b3IuR3JhZGll
bnRFZGl0b3I7CiAgICAgICAgICAgICB0aGlzLl92YWx1ZUVkaXRvci5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5HcmFkaWVudEVkaXRvci5FdmVudC5HcmFkaWVudENoYW5nZWQsIHRoaXMu
X3ZhbHVlRWRpdG9yVmFsdWVEaWRDaGFuZ2UsIHRoaXMpOwpAQCAtMTU4LDYgKzE2Niw4IEBAIFdl
Ykluc3BlY3Rvci5JbmxpbmVTd2F0Y2ggPSBjbGFzcyBJbmxpbmVTd2F0Y2ggZXh0ZW5kcyBXZWJJ
bnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuX3ZhbHVlIHx8IHRoaXMu
X2ZhbGxiYWNrVmFsdWUoKTsKICAgICAgICAgaWYgKHRoaXMuX3R5cGUgPT09IFdlYkluc3BlY3Rv
ci5JbmxpbmVTd2F0Y2guVHlwZS5CZXppZXIpCiAgICAgICAgICAgICB0aGlzLl92YWx1ZUVkaXRv
ci5iZXppZXIgPSB2YWx1ZTsKKyAgICAgICAgZWxzZSBpZiAodGhpcy5fdHlwZSA9PT0gV2ViSW5z
cGVjdG9yLklubGluZVN3YXRjaC5UeXBlLlNwcmluZykKKyAgICAgICAgICAgIHRoaXMuX3ZhbHVl
RWRpdG9yLnNwcmluZyA9IHZhbHVlOwogICAgICAgICBlbHNlIGlmICh0aGlzLl90eXBlID09PSBX
ZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUuR3JhZGllbnQpCiAgICAgICAgICAgICB0aGlz
Ll92YWx1ZUVkaXRvci5ncmFkaWVudCA9IHZhbHVlOwogICAgICAgICBlbHNlCkBAIC0xNjgsNiAr
MTc4LDggQEAgV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaCA9IGNsYXNzIElubGluZVN3YXRjaCBl
eHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl90eXBl
ID09PSBXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUuQmV6aWVyKQogICAgICAgICAgICAg
dGhpcy5fdmFsdWUgPSBldmVudC5kYXRhLmJlemllcjsKKyAgICAgICAgZWxzZSBpZiAodGhpcy5f
dHlwZSA9PT0gV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5UeXBlLlNwcmluZykKKyAgICAgICAg
ICAgIHRoaXMuX3ZhbHVlID0gZXZlbnQuZGF0YS5zcHJpbmc7CiAgICAgICAgIGVsc2UgaWYgKHRo
aXMuX3R5cGUgPT09IFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2guVHlwZS5HcmFkaWVudCkKICAg
ICAgICAgICAgIHRoaXMuX3ZhbHVlID0gZXZlbnQuZGF0YS5ncmFkaWVudDsKICAgICAgICAgZWxz
ZQpAQCAtMjc5LDcgKzI5MSw4IEBAIFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2ggPSBjbGFzcyBJ
bmxpbmVTd2F0Y2ggZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiBXZWJJbnNwZWN0b3IuSW5s
aW5lU3dhdGNoLlR5cGUgPSB7CiAgICAgQ29sb3I6ICJpbmxpbmUtc3dhdGNoLXR5cGUtY29sb3Ii
LAogICAgIEdyYWRpZW50OiAiaW5saW5lLXN3YXRjaC10eXBlLWdyYWRpZW50IiwKLSAgICBCZXpp
ZXI6ICJpbmxpbmUtc3dhdGNoLXR5cGUtYmV6aWVyIgorICAgIEJlemllcjogImlubGluZS1zd2F0
Y2gtdHlwZS1iZXppZXIiLAorICAgIFNwcmluZzogImlubGluZS1zd2F0Y2gtdHlwZS1zcHJpbmci
LAogfTsKIAogV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5FdmVudCA9IHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NvdXJjZUNvZGVUZXh0
RWRpdG9yLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU291
cmNlQ29kZVRleHRFZGl0b3IuanMKaW5kZXggMjJlMWU3Y2Q4MDRkZjRmYTA4YjQxMjkzZTVhN2Y0
MDY0MDE4MDkwYS4uNzkyNDdhMTk4M2NjOTliMDZkY2E4ZmNmNmUyMmJiODExYmFhYjQyOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU291cmNl
Q29kZVRleHRFZGl0b3IuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvU291cmNlQ29kZVRleHRFZGl0b3IuanMKQEAgLTE2MDQsNiArMTYwNCw3IEBAIFdl
Ykluc3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvciA9IGNsYXNzIFNvdXJjZUNvZGVUZXh0RWRp
dG9yIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgICAgICB0aGlzLmNyZWF0ZUNvbG9yTWFya2Vy
cyhyYW5nZSk7CiAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyYWRpZW50TWFya2VycyhyYW5nZSk7
CiAgICAgICAgICAgICB0aGlzLmNyZWF0ZUN1YmljQmV6aWVyTWFya2VycyhyYW5nZSk7CisgICAg
ICAgICAgICB0aGlzLmNyZWF0ZVNwcmluZ01hcmtlcnMocmFuZ2UpOwogICAgICAgICB9CiAKICAg
ICAgICAgdGhpcy5fdXBkYXRlVG9rZW5UcmFja2luZ0NvbnRyb2xsZXJTdGF0ZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByaW5nRWRp
dG9yLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Nwcmlu
Z0VkaXRvci5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JkMTdhYjhhZmZhMWQ5MGZmODY5Y2I2YmY4ZWUxNTc0
ZTMzYjQ2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1NwcmluZ0VkaXRvci5jc3MKQEAgLTAsMCArMSwxMjEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgRGV2aW4gUm91c3NvIDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29t
Pi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLnNwcmluZy1lZGl0b3IgeworICAg
IHdpZHRoOiAyMDBweDsKKyAgICBoZWlnaHQ6IDIxMHB4OworfQorCisuc3ByaW5nLWVkaXRvciA+
IC5zcHJpbmctcHJldmlldyB7CisgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEwcHgpOworICAgIGhl
aWdodDogMjVweDsKKyAgICBtYXJnaW46IDVweCA1cHggMDsKKyAgICBib3JkZXItYm90dG9tOiAx
cHggc29saWQgbGlnaHRncmV5OworfQorCisuc3ByaW5nLWVkaXRvciA+IC5zcHJpbmctcHJldmll
dyA+IGRpdiB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIHdpZHRoOiAyMHB4OworICAg
IGhlaWdodDogMjBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWxlY3RlZC1iYWNr
Z3JvdW5kLWNvbG9yKTsKKyAgICBib3JkZXItcmFkaXVzOiA1MCU7Cit9CisKKy5zcHJpbmctZWRp
dG9yID4gLnNwcmluZy10aW1pbmcgeworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICBtYXJn
aW46IC0wLjVweCAxMXB4IDA7Cit9CisKKy5zcHJpbmctZWRpdG9yID4gLnNwcmluZy10aW1pbmcg
PiBkaXYgeworICAgIHdpZHRoOiAwOworICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdHJhbnNw
YXJlbnQ7CisgICAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7CisgICAgYm9y
ZGVyLXRvcDogNHB4IHNvbGlkIGJsYWNrOworfQorCisuc3ByaW5nLWVkaXRvciA+IC5zcHJpbmct
dGltaW5nOm1hdGNoZXMoOjpiZWZvcmUsIDo6YWZ0ZXIpIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CisgICAgdG9wOiAyLjVweDsKKyAgICBmb250LXNpemU6IDlweDsKK30KKworLnNwcmluZy1l
ZGl0b3IgPiAuc3ByaW5nLXRpbWluZzo6YmVmb3JlIHsKKyAgICBsZWZ0OiAwOworICAgIGNvbnRl
bnQ6ICIwcyI7Cit9CisKKy5zcHJpbmctZWRpdG9yID4gLnNwcmluZy10aW1pbmc6OmFmdGVyIHsK
KyAgICByaWdodDogMDsKKyAgICBjb250ZW50OiBhdHRyKGRhdGEtZHVyYXRpb24pICJzIjsKK30K
KworLnNwcmluZy1lZGl0b3IgPiAuYW5pbWF0ZTptYXRjaGVzKC5zcHJpbmctcHJldmlldywgLnNw
cmluZy10aW1pbmcpID4gZGl2IHsKKyAgICBhbmltYXRpb24tZGVsYXk6IDI1MG1zOworICAgIGFu
aW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOworfQorCisuc3ByaW5nLWVkaXRvciA+
IC5zcHJpbmctcHJldmlldy5hbmltYXRlID4gZGl2IHsKKyAgICBhbmltYXRpb24tbmFtZTogc3By
aW5nLXByZXZpZXc7Cit9CisKK0BrZXlmcmFtZXMgc3ByaW5nLXByZXZpZXcgeworICAgIGZyb20g
eyBsZWZ0OiAwOyB9CisgICAgMTAlIHsgbGVmdDogMDsgfQorICAgIDkwJSB7IGxlZnQ6IDg1cHg7
IH0KKyAgICB0byB7IGxlZnQ6IDg1cHg7IH0KK30KKworLnNwcmluZy1lZGl0b3IgPiAuc3ByaW5n
LXRpbWluZy5hbmltYXRlID4gZGl2IHsKKyAgICBhbmltYXRpb24tbmFtZTogc3ByaW5nLXRpbWlu
ZzsKKyAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7Cit9CisKK0BrZXlmcmFt
ZXMgc3ByaW5nLXRpbWluZyB7CisgICAgZnJvbSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsg
fQorICAgIDEwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfQorICAgIDkwJSB7IHRyYW5z
Zm9ybTogdHJhbnNsYXRlWCgxNzBweCk7IH0KKyAgICB0byB7IHRyYW5zZm9ybTogdHJhbnNsYXRl
WCgxNzBweCk7IH0KK30KKworLnNwcmluZy1lZGl0b3IgPiAubnVtYmVyLWlucHV0LWNvbnRhaW5l
ciA+IC5udW1iZXItaW5wdXQtcm93IHsKKyAgICBkaXNwbGF5OiBmbGV4OworICAgIGZsZXgtd3Jh
cDogd3JhcDsKKyAgICBtYXJnaW4tYm90dG9tOiAzcHg7Cit9CisKKy5zcHJpbmctZWRpdG9yID4g
Lm51bWJlci1pbnB1dC1jb250YWluZXIgPiAubnVtYmVyLWlucHV0LXJvdyA+IC5udW1iZXItaW5w
dXQtcm93LXRpdGxlIHsKKyAgICB3aWR0aDogMTAwJTsKKyAgICBtYXJnaW46IDdweCAwIDNweDsK
KyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cit9CisKKy5zcHJpbmctZWRpdG9yID4gLm51bWJlci1p
bnB1dC1jb250YWluZXIgPiAubnVtYmVyLWlucHV0LXJvdyA+IGlucHV0IHsKKyAgICB3aWR0aDog
Y2FsYyg1MCUgLSAxMHB4KTsKKyAgICBtYXJnaW46IDAgNXB4OworfQorCisuc3ByaW5nLWVkaXRv
ciA+IC5udW1iZXItaW5wdXQtY29udGFpbmVyID4gLm51bWJlci1pbnB1dC1yb3cgPiBpbnB1dFt0
eXBlPSJyYW5nZSJdIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Nwcmlu
Z0VkaXRvci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Nw
cmluZ0VkaXRvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OWJiMmE2OWJkYTEzM2EwZTlkYTFkOGVkZGI0Y2Rh
YTk2ZWMyNjU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvU3ByaW5nRWRpdG9yLmpzCkBAIC0wLDAgKzEsMjA1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE2IERldmluIFJvdXNzbyA8ZGNyb3Vzc28rd2Via2l0QGdtYWlsLmNv
bT4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dlYkluc3BlY3Rvci5TcHJpbmdF
ZGl0b3IgPSBjbGFzcyBTcHJpbmdFZGl0b3IgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0Cit7
CisgICAgY29uc3RydWN0b3IoKQorICAgIHsKKyAgICAgICAgc3VwZXIoKTsKKworICAgICAgICB0
aGlzLl9lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgIHRo
aXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZCgic3ByaW5nLWVkaXRvciIpOworCisgICAgICAgIHRo
aXMuX3ByZXZpZXdDb250YWluZXIgPSB0aGlzLl9lbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAi
c3ByaW5nLXByZXZpZXcgYW5pbWF0ZSIpOworICAgICAgICB0aGlzLl9wcmV2aWV3Q29udGFpbmVy
LnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDbGljayB0byByZXN0YXJ0IHRoZSBhbmlt
YXRpb24iKTsKKyAgICAgICAgdGhpcy5fcHJldmlld0NvbnRhaW5lci5hZGRFdmVudExpc3RlbmVy
KCJtb3VzZWRvd24iLCB0aGlzLl9yZXNldFByZXZpZXdBbmltYXRpb24uYmluZCh0aGlzKSk7CisK
KyAgICAgICAgdGhpcy5fcHJldmlld0VsZW1lbnQgPSB0aGlzLl9wcmV2aWV3Q29udGFpbmVyLmNy
ZWF0ZUNoaWxkKCJkaXYiKTsKKworICAgICAgICB0aGlzLl90aW1pbmdDb250YWluZXIgPSB0aGlz
Ll9lbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAic3ByaW5nLXRpbWluZyBhbmltYXRlIik7CisK
KyAgICAgICAgdGhpcy5fdGltaW5nRWxlbWVudCA9IHRoaXMuX3RpbWluZ0NvbnRhaW5lci5jcmVh
dGVDaGlsZCgiZGl2Iik7CisKKyAgICAgICAgdGhpcy5fbnVtYmVySW5wdXRDb250YWluZXIgPSB0
aGlzLl9lbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAibnVtYmVyLWlucHV0LWNvbnRhaW5lciIp
OworCisgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZUlucHV0c0ZvclBhcmFtZXRlcihpZCwgdGl0bGUp
CisgICAgICAgIHsKKyAgICAgICAgICAgIGxldCByb3cgPSB0aGlzLl9udW1iZXJJbnB1dENvbnRh
aW5lci5jcmVhdGVDaGlsZCgiZGl2IiwgYG51bWJlci1pbnB1dC1yb3cgJHtpZH1gKTsKKworICAg
ICAgICAgICAgcm93LmNyZWF0ZUNoaWxkKCJkaXYiLCAibnVtYmVyLWlucHV0LXJvdy10aXRsZSIp
LnRleHRDb250ZW50ID0gdGl0bGU7CisKKyAgICAgICAgICAgIHRoaXNbYF8ke2lkfVNsaWRlcmBd
ID0gcm93LmNyZWF0ZUNoaWxkKCJpbnB1dCIpOworICAgICAgICAgICAgdGhpc1tgXyR7aWR9U2xp
ZGVyYF0udHlwZSA9ICJyYW5nZSI7CisgICAgICAgICAgICB0aGlzW2BfJHtpZH1TbGlkZXJgXS5h
ZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsIHRoaXMuX2hhbmRsZU51bWJlclNsaWRlcklucHV0LmJp
bmQodGhpcykpOworICAgICAgICAgICAgdGhpc1tgXyR7aWR9U2xpZGVyYF0uYWRkRXZlbnRMaXN0
ZW5lcigibW91c2Vkb3duIiwgdGhpcy5faGFuZGxlTnVtYmVyU2xpZGVyTW91c2Vkb3duLmJpbmQo
dGhpcykpOworICAgICAgICAgICAgdGhpc1tgXyR7aWR9U2xpZGVyYF0uYWRkRXZlbnRMaXN0ZW5l
cigibW91c2V1cCIsIHRoaXMuX2hhbmRsZU51bWJlclNsaWRlck1vdXNldXAuYmluZCh0aGlzKSk7
CisKKyAgICAgICAgICAgIHRoaXNbYF8ke2lkfUlucHV0YF0gPSByb3cuY3JlYXRlQ2hpbGQoImlu
cHV0Iik7CisgICAgICAgICAgICB0aGlzW2BfJHtpZH1JbnB1dGBdLnR5cGUgPSAibnVtYmVyIjsK
KyAgICAgICAgICAgIHRoaXNbYF8ke2lkfUlucHV0YF0uYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQi
LCB0aGlzLl9oYW5kbGVOdW1iZXJJbnB1dElucHV0LmJpbmQodGhpcykpOworICAgICAgICAgICAg
dGhpc1tgXyR7aWR9SW5wdXRgXS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5faGFu
ZGxlTnVtYmVySW5wdXRLZXlkb3duLmJpbmQodGhpcykpOworICAgICAgICB9CisKKyAgICAgICAg
Y3JlYXRlSW5wdXRzRm9yUGFyYW1ldGVyLmNhbGwodGhpcywgIm1hc3MiLCBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIk1hc3MiKSk7CisgICAgICAgIHRoaXMuX21hc3NJbnB1dC5taW4gPSB0aGlzLl9t
YXNzU2xpZGVyLm1pbiA9IDE7CisKKyAgICAgICAgY3JlYXRlSW5wdXRzRm9yUGFyYW1ldGVyLmNh
bGwodGhpcywgInN0aWZmbmVzcyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU3RpZmZuZXNzIikp
OworICAgICAgICB0aGlzLl9zdGlmZm5lc3NJbnB1dC5taW4gPSB0aGlzLl9zdGlmZm5lc3NTbGlk
ZXIubWluID0gMTsKKworICAgICAgICBjcmVhdGVJbnB1dHNGb3JQYXJhbWV0ZXIuY2FsbCh0aGlz
LCAiZGFtcGluZyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRGFtcGluZyIpKTsKKyAgICAgICAg
dGhpcy5fZGFtcGluZ0lucHV0Lm1pbiA9IHRoaXMuX2RhbXBpbmdTbGlkZXIubWluID0gMDsKKwor
ICAgICAgICBjcmVhdGVJbnB1dHNGb3JQYXJhbWV0ZXIuY2FsbCh0aGlzLCAiaW5pdGlhbFZlbG9j
aXR5IiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJJbml0aWFsIFZlbG9jaXR5IikpOworCisgICAg
ICAgIHRoaXMuX3NwcmluZyA9IG5ldyBXZWJJbnNwZWN0b3IuU3ByaW5nKDEsIDEwMCwgMTAsIDAp
OworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgZ2V0IGVsZW1lbnQoKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnQ7CisgICAgfQorCisgICAgZ2V0IHNwcmluZygpCisg
ICAgeworICAgICAgICByZXR1cm4gdGhpcy5fc3ByaW5nOworICAgIH0KKworICAgIHNldCBzcHJp
bmcoc3ByaW5nKQorICAgIHsKKyAgICAgICAgaWYgKCFzcHJpbmcpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgbGV0IGlzU3ByaW5nID0gc3ByaW5nIGluc3RhbmNlb2YgV2ViSW5zcGVj
dG9yLlNwcmluZzsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoaXNTcHJpbmcpOworICAgICAgICBp
ZiAoIWlzU3ByaW5nKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuX3Nwcmlu
ZyA9IHNwcmluZzsKKyAgICAgICAgdGhpcy5fbWFzc0lucHV0LnZhbHVlID0gdGhpcy5fbWFzc1Ns
aWRlci52YWx1ZSA9IHRoaXMuX3NwcmluZy5tYXNzOworICAgICAgICB0aGlzLl9zdGlmZm5lc3NJ
bnB1dC52YWx1ZSA9IHRoaXMuX3N0aWZmbmVzc1NsaWRlci52YWx1ZSA9IHRoaXMuX3NwcmluZy5z
dGlmZm5lc3M7CisgICAgICAgIHRoaXMuX2RhbXBpbmdJbnB1dC52YWx1ZSA9IHRoaXMuX2RhbXBp
bmdTbGlkZXIudmFsdWUgPSB0aGlzLl9zcHJpbmcuZGFtcGluZzsKKyAgICAgICAgdGhpcy5faW5p
dGlhbFZlbG9jaXR5SW5wdXQudmFsdWUgPSB0aGlzLl9pbml0aWFsVmVsb2NpdHlTbGlkZXIudmFs
dWUgPSB0aGlzLl9zcHJpbmcuaW5pdGlhbFZlbG9jaXR5OworICAgICAgICB0aGlzLl91cGRhdGVQ
cmV2aWV3QW5pbWF0aW9uKCk7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX2hhbmRs
ZU51bWJlcklucHV0SW5wdXQoZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl9jaGFuZ2VTcHJp
bmdGb3JJbnB1dChldmVudC50YXJnZXQsIGV2ZW50LnRhcmdldC52YWx1ZSk7CisgICAgfQorCisg
ICAgX2hhbmRsZU51bWJlcklucHV0S2V5ZG93bihldmVudCkKKyAgICB7CisgICAgICAgIGxldCBz
aGlmdCA9IDA7CisgICAgICAgIGlmIChldmVudC5rZXlJZGVudGlmaWVyID09PSAiVXAiKQorICAg
ICAgICAgICAgc2hpZnQgPSAwLjAxOworICAgICAgICAgZWxzZSBpZiAoZXZlbnQua2V5SWRlbnRp
ZmllciA9PT0gIkRvd24iKQorICAgICAgICAgICAgc2hpZnQgPSAtMC4wMTsKKworICAgICAgICBp
ZiAoIXNoaWZ0KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmIChldmVudC5zaGlm
dEtleSkKKyAgICAgICAgICAgIHNoaWZ0ICo9IDEwOworCisgICAgICAgIGV2ZW50LnByZXZlbnRE
ZWZhdWx0KCk7CisgICAgICAgIHRoaXMuX2NoYW5nZVNwcmluZ0ZvcklucHV0KGV2ZW50LnRhcmdl
dCwgcGFyc2VGbG9hdChldmVudC50YXJnZXQudmFsdWUpICsgc2hpZnQpOworICAgIH0KKworICAg
IF9oYW5kbGVOdW1iZXJTbGlkZXJJbnB1dChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX2No
YW5nZVNwcmluZ0ZvcklucHV0KGV2ZW50LnRhcmdldCwgZXZlbnQudGFyZ2V0LnZhbHVlKTsKKyAg
ICB9CisKKyAgICBfaGFuZGxlTnVtYmVyU2xpZGVyTW91c2Vkb3duKGV2ZW50KQorICAgIHsKKyAg
ICAgICAgdGhpcy5fcHJldmlld0NvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKCJhbmltYXRlIik7
CisgICAgICAgIHRoaXMuX3RpbWluZ0NvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKCJhbmltYXRl
Iik7CisgICAgICAgIHRoaXMuX2NoYW5nZVNwcmluZ0ZvcklucHV0KGV2ZW50LnRhcmdldCwgZXZl
bnQudGFyZ2V0LnZhbHVlKTsKKyAgICB9CisKKyAgICBfaGFuZGxlTnVtYmVyU2xpZGVyTW91c2V1
cChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX2NoYW5nZVNwcmluZ0ZvcklucHV0KGV2ZW50
LnRhcmdldCwgZXZlbnQudGFyZ2V0LnZhbHVlKTsKKyAgICAgICAgdGhpcy5fcHJldmlld0NvbnRh
aW5lci5jbGFzc0xpc3QuYWRkKCJhbmltYXRlIik7CisgICAgICAgIHRoaXMuX3RpbWluZ0NvbnRh
aW5lci5jbGFzc0xpc3QucmVtb3ZlKCJhbmltYXRlIik7CisgICAgfQorCisgICAgX2NoYW5nZVNw
cmluZ0ZvcklucHV0KHRhcmdldCwgdmFsdWUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHRhcmdl
dCkgeworICAgICAgICBjYXNlIHRoaXMuX21hc3NJbnB1dDoKKyAgICAgICAgY2FzZSB0aGlzLl9t
YXNzU2xpZGVyOgorICAgICAgICAgICAgdGhpcy5fc3ByaW5nLm1hc3MgPSB0aGlzLl9tYXNzSW5w
dXQudmFsdWUgPSB0aGlzLl9tYXNzU2xpZGVyLnZhbHVlID0gTWF0aC5taW4oMSwgdmFsdWUpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpcy5fc3RpZmZuZXNzSW5wdXQ6Cisg
ICAgICAgIGNhc2UgdGhpcy5fc3RpZmZuZXNzU2xpZGVyOgorICAgICAgICAgICAgdGhpcy5fc3By
aW5nLnN0aWZmbmVzcyA9IHRoaXMuX3N0aWZmbmVzc0lucHV0LnZhbHVlID0gdGhpcy5fc3RpZmZu
ZXNzU2xpZGVyLnZhbHVlID0gTWF0aC5taW4oMSwgdmFsdWUpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgdGhpcy5fZGFtcGluZ0lucHV0OgorICAgICAgICBjYXNlIHRoaXMuX2Rh
bXBpbmdTbGlkZXI6CisgICAgICAgICAgICB0aGlzLl9zcHJpbmcuZGFtcGluZyA9IHRoaXMuX2Rh
bXBpbmdJbnB1dC52YWx1ZSA9IHRoaXMuX2RhbXBpbmdTbGlkZXIudmFsdWUgPSBNYXRoLm1pbigx
LCB2YWx1ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGlzLl9pbml0aWFs
VmVsb2NpdHlJbnB1dDoKKyAgICAgICAgY2FzZSB0aGlzLl9pbml0aWFsVmVsb2NpdHlTbGlkZXI6
CisgICAgICAgICAgICB0aGlzLl9zcHJpbmcuaW5pdGlhbFZlbG9jaXR5ID0gdGhpcy5faW5pdGlh
bFZlbG9jaXR5SW5wdXQudmFsdWUgPSB0aGlzLl9pbml0aWFsVmVsb2NpdHlTbGlkZXIudmFsdWUg
PSB2YWx1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fdXBkYXRlUHJldmlld0FuaW1h
dGlvbigpOworCisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3Bl
Y3Rvci5TcHJpbmdFZGl0b3IuRXZlbnQuU3ByaW5nQ2hhbmdlZCwge3NwcmluZzogdGhpcy5fc3By
aW5nfSk7CisgICAgfQorCisgICAgX3VwZGF0ZVByZXZpZXdBbmltYXRpb24oKQorICAgIHsKKyAg
ICAgICAgLy8gQWRkIGV4dHJhIDI1JSB0byBlbnN1cmUgdGhhdCB0aGUgImRlbGF5IiB0aW1lIG9m
IHRoZSBhbmltYXRpb24gZG9lcyBub3Qgc2hvcnRlbiB0aGUgc3ByaW5nLgorICAgICAgICBsZXQg
ZHVyYXRpb24gPSB0aGlzLl9zcHJpbmcuY2FsY3VsYXRlRHVyYXRpb24oKSAqIDEuMjU7CisKKyAg
ICAgICAgdGhpcy5fcHJldmlld0VsZW1lbnQuc3R5bGUuYW5pbWF0aW9uRHVyYXRpb24gPSBgJHtk
dXJhdGlvbn1zYDsKKyAgICAgICAgdGhpcy5fcHJldmlld0VsZW1lbnQuc3R5bGUuYW5pbWF0aW9u
VGltaW5nRnVuY3Rpb24gPSB0aGlzLl9zcHJpbmcudG9TdHJpbmcoKTsKKworICAgICAgICB0aGlz
Ll90aW1pbmdFbGVtZW50LnN0eWxlLmFuaW1hdGlvbkR1cmF0aW9uID0gYCR7ZHVyYXRpb259c2A7
CisgICAgICAgIHRoaXMuX3RpbWluZ0NvbnRhaW5lci5kYXRhc2V0LmR1cmF0aW9uID0gZHVyYXRp
b24udG9GaXhlZCgyKTsKKyAgICB9CisKKyAgICBfcmVzZXRQcmV2aWV3QW5pbWF0aW9uKGV2ZW50
KQorICAgIHsKKyAgICAgICAgdGhpcy5fcHJldmlld0NvbnRhaW5lci5yZW1vdmVDaGlsZCh0aGlz
Ll9wcmV2aWV3RWxlbWVudCk7CisgICAgICAgIHRoaXMuX3ByZXZpZXdDb250YWluZXIuYXBwZW5k
Q2hpbGQodGhpcy5fcHJldmlld0VsZW1lbnQpOworCisgICAgICAgIHRoaXMuX3RpbWluZ0NvbnRh
aW5lci5yZW1vdmVDaGlsZCh0aGlzLl90aW1pbmdFbGVtZW50KTsKKyAgICAgICAgdGhpcy5fdGlt
aW5nQ29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuX3RpbWluZ0VsZW1lbnQpOworICAgIH0KK307
CisKK1dlYkluc3BlY3Rvci5TcHJpbmdFZGl0b3IuRXZlbnQgPSB7CisgICAgU3ByaW5nQ2hhbmdl
ZDogInNwcmluZy1lZGl0b3Itc3ByaW5nLWNoYW5nZWQiCit9OwpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1RleHRFZGl0b3IuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9UZXh0RWRpdG9yLmpzCmluZGV4IDJjODA5MDRlMjUxYjAyZWQxY2I3M2VkMDdkZmNj
NWExYjQ3MzQ2NDcuLmFkMDY1YTJhOTYxNTk0MGY1Zjg4MjY0ODM0NzQ4YjMwMDI3ODliNzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RleHRF
ZGl0b3IuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
VGV4dEVkaXRvci5qcwpAQCAtNjExLDYgKzYxMSwxMSBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRv
ciA9IGNsYXNzIFRleHRFZGl0b3IgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVmlldwogICAgICAgICBy
ZXR1cm4gY3JlYXRlQ29kZU1pcnJvckN1YmljQmV6aWVyVGV4dE1hcmtlcnModGhpcy5fY29kZU1p
cnJvciwgcmFuZ2UpOwogICAgIH0KIAorICAgIGNyZWF0ZVNwcmluZ01hcmtlcnMocmFuZ2UpCisg
ICAgeworICAgICAgICByZXR1cm4gY3JlYXRlQ29kZU1pcnJvclNwcmluZ1RleHRNYXJrZXJzKHRo
aXMuX2NvZGVNaXJyb3IsIHJhbmdlKTsKKyAgICB9CisKICAgICBlZGl0aW5nQ29udHJvbGxlckZv
ck1hcmtlcihlZGl0YWJsZU1hcmtlcikKICAgICB7CiAgICAgICAgIHN3aXRjaCAoZWRpdGFibGVN
YXJrZXIudHlwZSkgewpAQCAtNjIwLDYgKzYyNSw4IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9y
ID0gY2xhc3MgVGV4dEVkaXRvciBleHRlbmRzIFdlYkluc3BlY3Rvci5WaWV3CiAgICAgICAgICAg
ICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5Db2RlTWlycm9yR3JhZGllbnRFZGl0aW5nQ29udHJv
bGxlcih0aGlzLl9jb2RlTWlycm9yLCBlZGl0YWJsZU1hcmtlcik7CiAgICAgICAgIGNhc2UgV2Vi
SW5zcGVjdG9yLlRleHRNYXJrZXIuVHlwZS5DdWJpY0JlemllcjoKICAgICAgICAgICAgIHJldHVy
biBuZXcgV2ViSW5zcGVjdG9yLkNvZGVNaXJyb3JCZXppZXJFZGl0aW5nQ29udHJvbGxlcih0aGlz
Ll9jb2RlTWlycm9yLCBlZGl0YWJsZU1hcmtlcik7CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9y
LlRleHRNYXJrZXIuVHlwZS5TcHJpbmc6CisgICAgICAgICAgICByZXR1cm4gbmV3IFdlYkluc3Bl
Y3Rvci5Db2RlTWlycm9yU3ByaW5nRWRpdGluZ0NvbnRyb2xsZXIodGhpcy5fY29kZU1pcnJvciwg
ZWRpdGFibGVNYXJrZXIpOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIG5l
dyBXZWJJbnNwZWN0b3IuQ29kZU1pcnJvckVkaXRpbmdDb250cm9sbGVyKHRoaXMuX2NvZGVNaXJy
b3IsIGVkaXRhYmxlTWFya2VyKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVUaW1pbmdFZGl0b3IuY3Nz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVU
aW1pbmdFZGl0b3IuY3NzCmluZGV4IGM3MWFkYmM1ZGMyNjNlZTM3NzNlMDkwYjVlZDZiYmU0ZDgx
NDJhOTAuLjRiMmNmYmUzMjBiYTk2NmM1YWI4ZGZmMzYzMmZhNTkxNjAwMjlhZGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxl
VGltaW5nRWRpdG9yLmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9WaXN1YWxTdHlsZVRpbWluZ0VkaXRvci5jc3MKQEAgLTMxLDEyICszMSwxMyBAQAog
ICAgIG9yZGVyOiAxOwogfQogCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci50aW1p
bmctZWRpdG9yID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXIgPiAuaW5s
aW5lLXN3YXRjaC5iZXppZXIgeworLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIudGlt
aW5nLWVkaXRvciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLmlu
bGluZS1zd2F0Y2g6bWF0Y2hlcyguYmV6aWVyLCAuc3ByaW5nKSB7CiAgICAgd2lkdGg6IDIzcHg7
CiAgICAgaGVpZ2h0OiAyMHB4OwogfQogCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5l
ci50aW1pbmctZWRpdG9yID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXI6
bm90KC5iZXppZXItdmFsdWUpID4gLmlubGluZS1zd2F0Y2guYmV6aWVyIHsKKy52aXN1YWwtc3R5
bGUtcHJvcGVydHktY29udGFpbmVyLnRpbWluZy1lZGl0b3IgPiAudmlzdWFsLXN0eWxlLXByb3Bl
cnR5LXZhbHVlLWNvbnRhaW5lcjpub3QoLmJlemllci12YWx1ZSkgPiAuaW5saW5lLXN3YXRjaC5i
ZXppZXIsCisudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci50aW1pbmctZWRpdG9yID4g
LnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXI6bm90KC5zcHJpbmctdmFsdWUp
ID4gLmlubGluZS1zd2F0Y2guc3ByaW5nIHsKICAgICBkaXNwbGF5OiBub25lOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxT
dHlsZVRpbWluZ0VkaXRvci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1Zpc3VhbFN0eWxlVGltaW5nRWRpdG9yLmpzCmluZGV4IGJkMGYyMzgwZjZmYzBkYTZk
M2Q4NGE3MTNjNzhlNGY5ZjYxOTRiODQuLmY5ZDBlY2JmMTIzOWMwOTgwYWRmYTI4MzFiZmY5YzE5
MzVkYWM2ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1Zpc3VhbFN0eWxlVGltaW5nRWRpdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVGltaW5nRWRpdG9yLmpzCkBAIC0z
MSw4MSArMzEsMTMxIEBAIFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVRpbWluZ0VkaXRvciA9IGNs
YXNzIFZpc3VhbFN0eWxlVGltaW5nRWRpdG9yIGV4dGVuZHMgV2ViCiAKICAgICAgICAgdGhpcy5l
bGVtZW50LmNsYXNzTGlzdC5hZGQoInRpbWluZy1lZGl0b3IiKTsKIAotICAgICAgICB0aGlzLl9j
dXN0b21WYWx1ZU9wdGlvbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24i
KTsKLSAgICAgICAgdGhpcy5fY3VzdG9tVmFsdWVPcHRpb25FbGVtZW50LnZhbHVlID0gImN1c3Rv
bSI7Ci0gICAgICAgIHRoaXMuX2N1c3RvbVZhbHVlT3B0aW9uRWxlbWVudC50ZXh0ID0gV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJDdXN0b20iKTsKLSAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVs
ZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fY3VzdG9tVmFsdWVPcHRpb25FbGVtZW50KTsKKyAgICAg
ICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQuY3JlYXRlQ2hpbGQoImhyIik7CisKKyAgICAg
ICAgdGhpcy5fY3VzdG9tQmV6aWVyT3B0aW9uRWxlbWVudCA9IHRoaXMuX2tleXdvcmRTZWxlY3RF
bGVtZW50LmNyZWF0ZUNoaWxkKCJvcHRpb24iKTsKKyAgICAgICAgdGhpcy5fY3VzdG9tQmV6aWVy
T3B0aW9uRWxlbWVudC52YWx1ZSA9ICJiZXppZXIiOworICAgICAgICB0aGlzLl9jdXN0b21CZXpp
ZXJPcHRpb25FbGVtZW50LnRleHQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkJlemllciIpOwor
CisgICAgICAgIHRoaXMuX2N1c3RvbVNwcmluZ09wdGlvbkVsZW1lbnQgPSB0aGlzLl9rZXl3b3Jk
U2VsZWN0RWxlbWVudC5jcmVhdGVDaGlsZCgib3B0aW9uIik7CisgICAgICAgIHRoaXMuX2N1c3Rv
bVNwcmluZ09wdGlvbkVsZW1lbnQudmFsdWUgPSAic3ByaW5nIjsKKyAgICAgICAgdGhpcy5fY3Vz
dG9tU3ByaW5nT3B0aW9uRWxlbWVudC50ZXh0ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTcHJp
bmciKTsKIAogICAgICAgICB0aGlzLl9iZXppZXJTd2F0Y2ggPSBuZXcgV2ViSW5zcGVjdG9yLklu
bGluZVN3YXRjaChXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUuQmV6aWVyKTsKICAgICAg
ICAgdGhpcy5fYmV6aWVyU3dhdGNoLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLklubGlu
ZVN3YXRjaC5FdmVudC5WYWx1ZUNoYW5nZWQsIHRoaXMuX2JlemllclN3YXRjaFZhbHVlQ2hhbmdl
ZCwgdGhpcyk7CiAgICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5f
YmV6aWVyU3dhdGNoLmVsZW1lbnQpOwotICAgIH0KLQotICAgIC8vIFB1YmxpYwotCi0gICAgZ2V0
IGJlemllclZhbHVlKCkKLSAgICB7Ci0gICAgICAgIGxldCBiZXppZXIgPSB0aGlzLl9iZXppZXJT
d2F0Y2gudmFsdWU7Ci0gICAgICAgIGlmICghYmV6aWVyKQotICAgICAgICAgICAgcmV0dXJuIG51
bGw7CiAKLSAgICAgICAgcmV0dXJuIGJlemllci50b1N0cmluZygpOwotICAgIH0KLQotICAgIHNl
dCBiZXppZXJWYWx1ZSh0ZXh0KQotICAgIHsKLSAgICAgICAgbGV0IGJlemllciA9IFdlYkluc3Bl
Y3Rvci5DdWJpY0Jlemllci5mcm9tU3RyaW5nKHRleHQpOwotICAgICAgICB0aGlzLl9iZXppZXJT
d2F0Y2gudmFsdWUgPSBiZXppZXI7CisgICAgICAgIHRoaXMuX3NwcmluZ1N3YXRjaCA9IG5ldyBX
ZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoKFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2guVHlwZS5T
cHJpbmcpOworICAgICAgICB0aGlzLl9zcHJpbmdTd2F0Y2guYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuSW5saW5lU3dhdGNoLkV2ZW50LlZhbHVlQ2hhbmdlZCwgdGhpcy5fc3ByaW5nU3dh
dGNoVmFsdWVDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5hcHBl
bmRDaGlsZCh0aGlzLl9zcHJpbmdTd2F0Y2guZWxlbWVudCk7CiAgICAgfQogCiAgICAgLy8gUHJv
dGVjdGVkCiAKICAgICBnZXQgdmFsdWUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2N1
c3RvbVZhbHVlT3B0aW9uRWxlbWVudC5zZWxlY3RlZCA/IHRoaXMuYmV6aWVyVmFsdWUgOiBzdXBl
ci52YWx1ZTsKKyAgICAgICAgaWYgKHRoaXMuX2N1c3RvbUJlemllck9wdGlvbkVsZW1lbnQuc2Vs
ZWN0ZWQpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYmV6aWVyVmFsdWU7CisKKyAgICAgICAg
aWYgKHRoaXMuX2N1c3RvbVNwcmluZ09wdGlvbkVsZW1lbnQuc2VsZWN0ZWQpCisgICAgICAgICAg
ICByZXR1cm4gdGhpcy5fc3ByaW5nVmFsdWU7CisKKyAgICAgICAgcmV0dXJuIHN1cGVyLnZhbHVl
OwogICAgIH0KIAogICAgIHNldCB2YWx1ZSh2YWx1ZSkKICAgICB7Ci0gICAgICAgIHRoaXMuYmV6
aWVyVmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgdGhpcy5fYmV6aWVyVmFsdWUgPSB2YWx1ZTsKKyAg
ICAgICAgdGhpcy5fc3ByaW5nVmFsdWUgPSB2YWx1ZTsKICAgICAgICAgaWYgKHRoaXMudmFsdWVJ
c1N1cHBvcnRlZEtleXdvcmQodmFsdWUpKSB7CiAgICAgICAgICAgICBzdXBlci52YWx1ZSA9IHZh
bHVlOwotICAgICAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJi
ZXppZXItdmFsdWUiKTsKKyAgICAgICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuY2xhc3NMaXN0
LnJlbW92ZSgiYmV6aWVyLXZhbHVlIiwgInNwcmluZy12YWx1ZSIpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgbGV0IGJlemllciA9IHRoaXMuYmV6aWVyVmFsdWU7
Ci0gICAgICAgIHRoaXMuX2N1c3RvbVZhbHVlT3B0aW9uRWxlbWVudC5zZWxlY3RlZCA9ICEhYmV6
aWVyOworICAgICAgICBsZXQgYmV6aWVyID0gdGhpcy5fYmV6aWVyVmFsdWU7CisgICAgICAgIHRo
aXMuX2N1c3RvbUJlemllck9wdGlvbkVsZW1lbnQuc2VsZWN0ZWQgPSAhIWJlemllcjsKICAgICAg
ICAgdGhpcy5jb250ZW50RWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJiZXppZXItdmFsdWUiLCAh
IWJlemllcik7Ci0gICAgICAgIHRoaXMuc3BlY2lhbFByb3BlcnR5UGxhY2Vob2xkZXJFbGVtZW50
LmhpZGRlbiA9ICEhYmV6aWVyOwotICAgICAgICBpZiAoIWJlemllcikKKworICAgICAgICBsZXQg
c3ByaW5nID0gdGhpcy5fc3ByaW5nVmFsdWU7CisgICAgICAgIHRoaXMuX2N1c3RvbVNwcmluZ09w
dGlvbkVsZW1lbnQuc2VsZWN0ZWQgPSAhIXNwcmluZzsKKyAgICAgICAgdGhpcy5jb250ZW50RWxl
bWVudC5jbGFzc0xpc3QudG9nZ2xlKCJzcHJpbmctdmFsdWUiLCAhIXNwcmluZyk7CisKKyAgICAg
ICAgdGhpcy5zcGVjaWFsUHJvcGVydHlQbGFjZWhvbGRlckVsZW1lbnQuaGlkZGVuID0gISFiZXpp
ZXIgfHwgISFzcHJpbmc7CisgICAgICAgIGlmICghYmV6aWVyICYmICFzcHJpbmcpCiAgICAgICAg
ICAgICBzdXBlci52YWx1ZSA9IHZhbHVlOwogICAgIH0KIAogICAgIGdldCBzeW50aGVzaXplZFZh
bHVlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9jdXN0b21WYWx1ZU9wdGlvbkVsZW1l
bnQuc2VsZWN0ZWQgPyB0aGlzLmJlemllclZhbHVlIDogc3VwZXIuc3ludGhlc2l6ZWRWYWx1ZTsK
KyAgICAgICAgaWYgKHRoaXMuX2N1c3RvbUJlemllck9wdGlvbkVsZW1lbnQuc2VsZWN0ZWQpCisg
ICAgICAgICAgICByZXR1cm4gdGhpcy5fYmV6aWVyVmFsdWU7CisKKyAgICAgICAgaWYgKHRoaXMu
X2N1c3RvbVNwcmluZ09wdGlvbkVsZW1lbnQuc2VsZWN0ZWQpCisgICAgICAgICAgICByZXR1cm4g
dGhpcy5fc3ByaW5nVmFsdWU7CisKKyAgICAgICAgcmV0dXJuIHN1cGVyLnN5bnRoZXNpemVkVmFs
dWU7CiAgICAgfQogCiAgICAgcGFyc2VWYWx1ZSh0ZXh0KQogICAgIHsKLSAgICAgICAgcmV0dXJu
IC8oY3ViaWMtYmV6aWVyXCguK1wpKS8uZXhlYyh0ZXh0KTsKKyAgICAgICAgcmV0dXJuIC8oKD86
Y3ViaWMtYmV6aWVyfHNwcmluZylcKC4rXCkpLy5leGVjKHRleHQpOwogICAgIH0KIAogICAgIC8v
IFByaXZhdGUKIAorICAgIGdldCBfYmV6aWVyVmFsdWUoKQorICAgIHsKKyAgICAgICAgbGV0IGJl
emllciA9IHRoaXMuX2JlemllclN3YXRjaC52YWx1ZTsKKyAgICAgICAgaWYgKCFiZXppZXIpCisg
ICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAgICByZXR1cm4gYmV6aWVyLnRvU3RyaW5n
KCk7CisgICAgfQorCisgICAgc2V0IF9iZXppZXJWYWx1ZSh0ZXh0KQorICAgIHsKKyAgICAgICAg
dGhpcy5fYmV6aWVyU3dhdGNoLnZhbHVlID0gV2ViSW5zcGVjdG9yLkN1YmljQmV6aWVyLmZyb21T
dHJpbmcodGV4dCk7CisgICAgfQorCisgICAgZ2V0IF9zcHJpbmdWYWx1ZSgpCisgICAgeworICAg
ICAgICBsZXQgc3ByaW5nID0gdGhpcy5fc3ByaW5nU3dhdGNoLnZhbHVlOworICAgICAgICBpZiAo
IXNwcmluZykKKyAgICAgICAgICAgIHJldHVybiBudWxsOworCisgICAgICAgIHJldHVybiBzcHJp
bmcudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBzZXQgX3NwcmluZ1ZhbHVlKHRleHQpCisgICAg
eworICAgICAgICB0aGlzLl9zcHJpbmdTd2F0Y2gudmFsdWUgPSBXZWJJbnNwZWN0b3IuU3ByaW5n
LmZyb21TdHJpbmcodGV4dCk7CisgICAgfQorCiAgICAgX2hhbmRsZUtleXdvcmRDaGFuZ2VkKCkK
ICAgICB7CiAgICAgICAgIHN1cGVyLl9oYW5kbGVLZXl3b3JkQ2hhbmdlZCgpOwotICAgICAgICBs
ZXQgY3VzdG9tT3B0aW9uU2VsZWN0ZWQgPSB0aGlzLl9jdXN0b21WYWx1ZU9wdGlvbkVsZW1lbnQu
c2VsZWN0ZWQ7Ci0gICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgi
YmV6aWVyLXZhbHVlIiwgISFjdXN0b21PcHRpb25TZWxlY3RlZCk7Ci0gICAgICAgIHRoaXMuc3Bl
Y2lhbFByb3BlcnR5UGxhY2Vob2xkZXJFbGVtZW50LmhpZGRlbiA9ICEhY3VzdG9tT3B0aW9uU2Vs
ZWN0ZWQ7Ci0gICAgICAgIGlmIChjdXN0b21PcHRpb25TZWxlY3RlZCkKLSAgICAgICAgICAgIHRo
aXMuYmV6aWVyVmFsdWUgPSAibGluZWFyIjsKKworICAgICAgICBsZXQgY3VzdG9tQmV6aWVyT3B0
aW9uU2VsZWN0ZWQgPSB0aGlzLl9jdXN0b21CZXppZXJPcHRpb25FbGVtZW50LnNlbGVjdGVkOwor
ICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImJlemllci12YWx1
ZSIsICEhY3VzdG9tQmV6aWVyT3B0aW9uU2VsZWN0ZWQpOworICAgICAgICBpZiAoY3VzdG9tQmV6
aWVyT3B0aW9uU2VsZWN0ZWQpCisgICAgICAgICAgICB0aGlzLl9iZXppZXJWYWx1ZSA9ICJsaW5l
YXIiOworCisgICAgICAgIGxldCBjdXN0b21TcHJpbmdPcHRpb25TZWxlY3RlZCA9IHRoaXMuX2N1
c3RvbVNwcmluZ09wdGlvbkVsZW1lbnQuc2VsZWN0ZWQ7CisgICAgICAgIHRoaXMuY29udGVudEVs
ZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgic3ByaW5nLXZhbHVlIiwgISFjdXN0b21TcHJpbmdPcHRp
b25TZWxlY3RlZCk7CisgICAgICAgIGlmIChjdXN0b21TcHJpbmdPcHRpb25TZWxlY3RlZCkKKyAg
ICAgICAgICAgIHRoaXMuX3NwcmluZ1ZhbHVlID0gIjEgMTAwIDEwIDAiOworCisgICAgICAgIHRo
aXMuc3BlY2lhbFByb3BlcnR5UGxhY2Vob2xkZXJFbGVtZW50LmhpZGRlbiA9ICEhY3VzdG9tQmV6
aWVyT3B0aW9uU2VsZWN0ZWQgfHwgISFjdXN0b21TcHJpbmdPcHRpb25TZWxlY3RlZDsKICAgICB9
CiAKICAgICBfYmV6aWVyU3dhdGNoVmFsdWVDaGFuZ2VkKGV2ZW50KQogICAgIHsKICAgICAgICAg
dGhpcy5fdmFsdWVEaWRDaGFuZ2UoKTsKICAgICB9CisKKyAgICBfc3ByaW5nU3dhdGNoVmFsdWVD
aGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fdmFsdWVEaWRDaGFuZ2UoKTsKKyAg
ICB9CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>286254</attachid>
            <date>2016-08-16 19:29:54 -0700</date>
            <delta_ts>2016-08-16 19:29:54 -0700</delta_ts>
            <desc>[Image] After Patch is applied</desc>
            <filename>159315.png</filename>
            <type>image/png</type>
            <size>63054</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">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
mKebl5tftUAtHC14FtstuiYQJrhM4E+onHDbkmrpbZlvWWvZbcWwCrUqtGq0ejnRcGLSxHUTz038
au1gnWW9x/q+jYrNZJtCm2ab17bmtmzbctsbdjS7ALtFdk12r+wt7Ln2FfZ3HOgOYQ7LHdocvjg6
OQod6xz7nAydkp22Od12VnWOdF7lfN6F4OLjssilxeWjq6Nrnush17/cLN0y3fa5PZ9kMok7ac+k
Hnd9d5b7LnexB9Mj2WOnh9hTz5PlWen52MvAi+O11+uZt5l3hvd+75c+1j5Cn6M+731dfRf4tvph
foF+xX4d/ir+sf5l/o8C9APSAmoDBgIdAucFtgYRgkKC1gXdDtYOZgfXBA9Mdpq8YHJ7CDUkOqQs
5HGoeagwtDkMDZsctiHsQbhROD+8MQJEBEdsiHgYaRKZE/nbFOKUyCnlU55G2UTNjzoXTY+eGb0v
+l2MT8yamPuxprGi2LY4xbhpcTVx7+P94tfHixMmJixIuJSomchLbEoiJcUl7U0anOo/ddPU3mkO
04qm3ZpuMn3O9AszNGdkzTg+U3Ema+bhZEJyfPK+5M+sCFYlazAlOGVbygDbl72Z/YLjxdnI6eO6
c9dzn6W6p65PfZ7mnrYhrS/dM700vZ/nyyvjvcoIytiR8T4zIrMqczgrPqs+m5ydnH2Mr8LP5LfP
0pk1Z1aXwEJQJBDnuOZsyhkQhgj35iK503Ob8lThUeeyyFT0k6g73yO/PP/D7LjZh+coz+HPuTzX
fO7Kuc8KAgp+mYfPY89rm683f8n87gXeC3YtRBamLGxbZLBo2aLexYGLq5dQlmQuuVJoXbi+8O3S
+KXNy7SXLV7W81PgT7VFCkXCotvL3ZbvWIGv4K3oWGm3cuvKr8Wc4osl1iWlJZ9XsVdd/Nnm5y0/
D69OXd2xxnFNxVriWv7aW+s811WvV15fsL5nQ9iGho3MjcUb326auelCqX3pjs2UzaLN4i2hW5q2
Gm5du/VzWXrZzXKf8vptWttWbnu/nbP9WoVXRd0O7R0lOz7t5O28sytwV0OlcWXpbuLu/N1P98Tt
OfeL8y81ezX3luz9UsWvEldHVbfXONXU7NPat6YWrRXV9u2ftr/zgN+BpjrLul31jPqSg+Cg6OAf
vyb/eutQyKG2w86H644YHdl2lH60uAFpmNsw0JjeKG5KbOo6NvlYW7Nb89HfrH6ratFrKT+udnzN
CcqJZSeGTxacHGwVtPafSjvV0zaz7f7phNM32qe0d5wJOXP+bMDZ0+e8z508736+5YLrhWMXnS82
XnK81HDZ4fLRKw5XjnY4djRcdbra1OnS2dw1qevENc9rp677XT97I/jGpZvhN7tuxd66c3vabfEd
zp3nd7PuvrqXf2/o/uIHhAfFD5Uelj7SelT5u9nv9WJH8fFuv+7Lj6Mf3+9h97x4kvvkc++yp7Sn
pc90n9U8t33e0hfQ1/nH1D96XwheDPUX/an857aXpi+P/OX11+WBhIHeV8JXw69XvdF4U/XW/m3b
YOTgo3fZ74beF3/Q+FD90fnjuU/xn54Nzf5M+rzli9mX5q8hXx8MZw8PC1hClvQogMGGpqYC8LoK
AFoiPDvAexxFQXb/kgoiuzNKEfhPWHZHkwo8uVR5ARC7GIBQeEapgM0IYip8S47fMV4AtbMbayOS
m2pnK4tFhbcYwofh4TfaAJCaAfgiHB4e2j48/GUPJHsXgNYc2b1PIkR4xt8puVuBKwbLwY/yLxmr
bDPaqMgDAAAACXBIWXMAABYlAAAWJQFJUiTwAAABnWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAA
PHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40
LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjIt
cmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAg
ICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAg
ICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj40MzI8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAg
ICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NDY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAg
ICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Ck/S518AAAAc
aURPVAAAAAIAAAAAAAAA6AAAACgAAADoAAAA6AAAcDcavBd5AABAAElEQVR4Aex9C4AVxZX2mRdv
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
AAAAAElFTkSuQmCC
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286255</attachid>
            <date>2016-08-16 19:33:19 -0700</date>
            <delta_ts>2016-08-17 13:47:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159315-20160816193131.patch</filename>
            <type>text/plain</type>
            <size>46022</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDg1NmU5Yjk0MWE1MDc4OGNiM2I4ZTExMTFiM2Yx
Mzk0NzVkYjJjODYuLjgyZTRlMWU5NzczOTM2Y2M3NjdiYWY2YTY0NzEzYmRkYzYyY2E4NGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMCBAQAorMjAxNi0wOC0xNiAgRGV2
aW4gUm91c3NvICA8ZGNyb3Vzc28rd2Via2l0QGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBBZGQgdmlzdWFsIGVkaXRvciBmb3Igc3ByaW5nKCkgdGltaW5nLWZ1bmN0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTkzMTUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIExvY2FsaXph
dGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL01haW4uaHRtbDoKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0dlb21ldHJ5
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU3ByaW5nLmZyb21WYWx1ZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZy5mcm9t
U3RyaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TcHJpbmcucHJvdG90eXBlLmNvcHkpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZy5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlNwcmluZy5wcm90b3R5cGUuc29sdmUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNwcmluZy5wcm90b3R5cGUuY2FsY3VsYXRlRHVyYXRpb24pOgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9Nb2RlbHMvVGV4dE1hcmtlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5UZXh0TWFya2VyLlR5cGUpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DU1NT
dHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NT
dHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvci5wcm90b3R5cGUuX2NyZWF0ZUlubGluZVN3YXRjaGVz
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvci5w
cm90b3R5cGUuX2NyZWF0ZUlubGluZVN3YXRjaGVzLnVwZGF0ZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IucHJvdG90eXBlLl9pbmxpbmVTd2F0
Y2hWYWx1ZUNoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRp
b25UZXh0RWRpdG9yLnByb3RvdHlwZS5faW5saW5lU3dhdGNoVmFsdWVDaGFuZ2VkLnVwZGF0ZSk6
CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JTcHJpbmdFZGl0aW5n
Q29udHJvbGxlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2RlTWlycm9yU3ByaW5nRWRp
dGluZ0NvbnRyb2xsZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvZGVNaXJyb3JTcHJpbmdF
ZGl0aW5nQ29udHJvbGxlci5wcm90b3R5cGUuZ2V0IGluaXRpYWxWYWx1ZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ29kZU1pcnJvclNwcmluZ0VkaXRpbmdDb250cm9sbGVyLnByb3RvdHlwZS5n
ZXQgY3NzQ2xhc3NOYW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2RlTWlycm9yU3ByaW5n
RWRpdGluZ0NvbnRyb2xsZXIucHJvdG90eXBlLnBvcG92ZXJXaWxsUHJlc2VudCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ29kZU1pcnJvclNwcmluZ0VkaXRpbmdDb250cm9sbGVyLnByb3RvdHlw
ZS5wb3BvdmVyRGlkUHJlc2VudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29kZU1pcnJvclNw
cmluZ0VkaXRpbmdDb250cm9sbGVyLnByb3RvdHlwZS5wb3BvdmVyRGlkRGlzbWlzcyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ29kZU1pcnJvclNwcmluZ0VkaXRpbmdDb250cm9sbGVyLnByb3Rv
dHlwZS5fc3ByaW5nRWRpdG9yU3ByaW5nQ2hhbmdlZCk6CisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL0NvZGVNaXJyb3JUZXh0TWFya2Vycy5qczoKKyAgICAgICAgKGNyZWF0ZUNvZGVN
aXJyb3JTcHJpbmdUZXh0TWFya2Vycyk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L0lubGluZVN3YXRjaC5jc3M6CisgICAgICAgICguaW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXpp
ZXIsIC5zcHJpbmcpKToKKyAgICAgICAgKC5pbmxpbmUtc3dhdGNoOm1hdGNoZXMoLmJlemllciwg
LnNwcmluZyk6aG92ZXIpOgorICAgICAgICAoLmlubGluZS1zd2F0Y2g6bWF0Y2hlcyguYmV6aWVy
LCAuc3ByaW5nKTphY3RpdmUpOgorICAgICAgICAoLmlubGluZS1zd2F0Y2g6bWF0Y2hlcyguYmV6
aWVyLCAuc3ByaW5nKSA+IHNwYW4pOgorICAgICAgICAoLmlubGluZS1zd2F0Y2guYmV6aWVyKTog
RGVsZXRlZC4KKyAgICAgICAgKC5pbmxpbmUtc3dhdGNoLmJlemllcjpob3Zlcik6IERlbGV0ZWQu
CisgICAgICAgICguaW5saW5lLXN3YXRjaC5iZXppZXI6YWN0aXZlKTogRGVsZXRlZC4KKyAgICAg
ICAgKC5pbmxpbmUtc3dhdGNoLmJlemllciA+IHNwYW4pOiBEZWxldGVkLgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9JbmxpbmVTd2F0Y2guanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuSW5saW5lU3dhdGNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2gucHJv
dG90eXBlLl9mYWxsYmFja1ZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0
Y2gucHJvdG90eXBlLl9zd2F0Y2hFbGVtZW50Q2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuSW5saW5lU3dhdGNoLnByb3RvdHlwZS5fdmFsdWVFZGl0b3JWYWx1ZURpZENoYW5nZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUpOgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9Tb3VyY2VDb2RlVGV4dEVkaXRvci5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvci5wcm90b3R5cGUuX3VwZGF0ZUVkaXRhYmxlTWFy
a2Vycyk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmluZ0VkaXRvci5jc3M6
CisgICAgICAgICguc3ByaW5nLWVkaXRvcik6CisgICAgICAgICguc3ByaW5nLWVkaXRvciA+IC5z
cHJpbmctcHJldmlldyk6CisgICAgICAgICguc3ByaW5nLWVkaXRvciA+IC5zcHJpbmctcHJldmll
dyA+IGRpdik6CisgICAgICAgICguc3ByaW5nLWVkaXRvciA+IC5zcHJpbmctdGltaW5nKToKKyAg
ICAgICAgKC5zcHJpbmctZWRpdG9yID4gLnNwcmluZy10aW1pbmcgPiBkaXYpOgorICAgICAgICAo
LnNwcmluZy1lZGl0b3IgPiAuc3ByaW5nLXRpbWluZzptYXRjaGVzKDo6YmVmb3JlLCA6OmFmdGVy
KSk6CisgICAgICAgICguc3ByaW5nLWVkaXRvciA+IC5zcHJpbmctdGltaW5nOjpiZWZvcmUpOgor
ICAgICAgICAoLnNwcmluZy1lZGl0b3IgPiAuc3ByaW5nLXRpbWluZzo6YWZ0ZXIpOgorICAgICAg
ICAoLnNwcmluZy1lZGl0b3IgPiAuYW5pbWF0ZTptYXRjaGVzKC5zcHJpbmctcHJldmlldywgLnNw
cmluZy10aW1pbmcpID4gZGl2KToKKyAgICAgICAgKC5zcHJpbmctZWRpdG9yID4gLnNwcmluZy1w
cmV2aWV3LmFuaW1hdGUgPiBkaXYpOgorICAgICAgICAoLnNwcmluZy1lZGl0b3IgPiAuc3ByaW5n
LXRpbWluZy5hbmltYXRlID4gZGl2KToKKyAgICAgICAgKC5zcHJpbmctZWRpdG9yID4gLm51bWJl
ci1pbnB1dC1jb250YWluZXIgPiAubnVtYmVyLWlucHV0LXJvdyk6CisgICAgICAgICguc3ByaW5n
LWVkaXRvciA+IC5udW1iZXItaW5wdXQtY29udGFpbmVyID4gLm51bWJlci1pbnB1dC1yb3cgPiAu
bnVtYmVyLWlucHV0LXJvdy10aXRsZSk6CisgICAgICAgICguc3ByaW5nLWVkaXRvciA+IC5udW1i
ZXItaW5wdXQtY29udGFpbmVyID4gLm51bWJlci1pbnB1dC1yb3cgPiBpbnB1dCk6CisgICAgICAg
ICguc3ByaW5nLWVkaXRvciA+IC5udW1iZXItaW5wdXQtY29udGFpbmVyID4gLm51bWJlci1pbnB1
dC1yb3cgPiBpbnB1dFt0eXBlPSJyYW5nZSJdKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvU3ByaW5nRWRpdG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZ0VkaXRv
cik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3ByaW5nRWRpdG9yLnByb3RvdHlwZS5nZXQgZWxl
bWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3ByaW5nRWRpdG9yLnByb3RvdHlwZS5zZXQg
c3ByaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TcHJpbmdFZGl0b3IucHJvdG90eXBlLmdl
dCBzcHJpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZ0VkaXRvci5wcm90b3R5cGUu
X2hhbmRsZU51bWJlcklucHV0SW5wdXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZ0Vk
aXRvci5wcm90b3R5cGUuX2hhbmRsZU51bWJlcklucHV0S2V5ZG93bik6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU3ByaW5nRWRpdG9yLnByb3RvdHlwZS5faGFuZGxlTnVtYmVyU2xpZGVySW5wdXQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZ0VkaXRvci5wcm90b3R5cGUuX2hhbmRsZU51
bWJlclNsaWRlck1vdXNlZG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3ByaW5nRWRpdG9y
LnByb3RvdHlwZS5faGFuZGxlTnVtYmVyU2xpZGVyTW91c2V1cCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU3ByaW5nRWRpdG9yLnByb3RvdHlwZS5fY2hhbmdlU3ByaW5nRm9ySW5wdXQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZ0VkaXRvci5wcm90b3R5cGUuX3VwZGF0ZVByZXZpZXdB
bmltYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZ0VkaXRvci5wcm90b3R5cGUu
X3Jlc2V0UHJldmlld0FuaW1hdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3ByaW5nRWRp
dG9yLkV2ZW50KToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVGV4dEVkaXRvci5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZS5jcmVhdGVTcHJp
bmdNYXJrZXJzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZS5l
ZGl0aW5nQ29udHJvbGxlckZvck1hcmtlcik6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Zp
ZXdzL1Zpc3VhbFN0eWxlVGltaW5nRWRpdG9yLmNzczoKKyAgICAgICAgKC52aXN1YWwtc3R5bGUt
cHJvcGVydHktY29udGFpbmVyLnRpbWluZy1lZGl0b3IgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5
LXZhbHVlLWNvbnRhaW5lciA+IC5pbmxpbmUtc3dhdGNoOm1hdGNoZXMoLmJlemllciwgLnNwcmlu
ZykpOgorICAgICAgICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIudGltaW5nLWVk
aXRvciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyOm5vdCguc3ByaW5n
LXZhbHVlKSA+IC5pbmxpbmUtc3dhdGNoLnNwcmluZyk6CisgICAgICAgICgudmlzdWFsLXN0eWxl
LXByb3BlcnR5LWNvbnRhaW5lci50aW1pbmctZWRpdG9yID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0
eS12YWx1ZS1jb250YWluZXIgPiAuaW5saW5lLXN3YXRjaC5iZXppZXIpOiBEZWxldGVkLgorICAg
ICAgICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIudGltaW5nLWVkaXRvciA+IC52
aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyOm5vdCguYmV6aWVyLXZhbHVlKSA+
IC5pbmxpbmUtc3dhdGNoLmJlemllcik6IERlbGV0ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVGltaW5nRWRpdG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlZpc3VhbFN0eWxlVGltaW5nRWRpdG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1
YWxTdHlsZVRpbWluZ0VkaXRvci5wcm90b3R5cGUuZ2V0IHZhbHVlKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5WaXN1YWxTdHlsZVRpbWluZ0VkaXRvci5wcm90b3R5cGUuc2V0IHZhbHVlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVRpbWluZ0VkaXRvci5wcm90b3R5cGUuZ2V0
IHN5bnRoZXNpemVkVmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlVGlt
aW5nRWRpdG9yLnByb3RvdHlwZS5wYXJzZVZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5W
aXN1YWxTdHlsZVRpbWluZ0VkaXRvci5wcm90b3R5cGUuZ2V0IF9iZXppZXJWYWx1ZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVUaW1pbmdFZGl0b3IucHJvdG90eXBlLnNldCBf
YmV6aWVyVmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlVGltaW5nRWRp
dG9yLnByb3RvdHlwZS5nZXQgX3NwcmluZ1ZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5W
aXN1YWxTdHlsZVRpbWluZ0VkaXRvci5wcm90b3R5cGUuc2V0IF9zcHJpbmdWYWx1ZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVUaW1pbmdFZGl0b3IucHJvdG90eXBlLl9oYW5k
bGVLZXl3b3JkQ2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVUaW1p
bmdFZGl0b3IucHJvdG90eXBlLl9zcHJpbmdTd2F0Y2hWYWx1ZUNoYW5nZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlVGltaW5nRWRpdG9yLnByb3RvdHlwZS5nZXQgYmV6aWVy
VmFsdWUpOiBSZW5hbWVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlVGltaW5n
RWRpdG9yLnByb3RvdHlwZS5zZXQgYmV6aWVyVmFsdWUpOiBSZW5hbWVkLgorCiAyMDE2LTA4LTE2
ICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IERPTSBub2RlcyBzaGlmdCB3aGVuIGhvdmVyaW5nIG92ZXIgdGhlbSBpbiBDb25z
b2xlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5s
cHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXph
dGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCA2ZmYzYzg0ODBhNGZkMzUz
M2ZjZGY2ZDViYThkYTZmNjdiOGM0ZDEwLi5lYzM2ODk2ZWM4OWEzMWMyOTk0OTIyMzVhMThiYTIz
MjdmMTM1MDMxIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDMxNwp6Y21leHptaTVMWiko
djtIV202ZmQ3JX59QjhIeU5gNy1BVXw3O0olOWlOT2dkMHUtT0RrZmd1KXcpUW05JF5SWXIKenhR
aUpJZlhYciVAKSopNVV2UktSPTVKUFVkP188SUkmUEowRT5JQ3ozNXQweDQyY1h0bmR1WD44NFdp
eCNgRERzCno9SyQ+cTFLTl9xa2s2MHwpS1M3dklYUTJpQnJsNWk8T0A1REMmJXlPblhKRSRaVGYw
K015fD0jYH1qOE4/XmBEJQp6VEZnKzRWdUxUeGhUX1ElPVlqNk11cCg5eD9vdCMqITMraEgxXnlV
TWYzTF5MdiVPYzMoVFlfd2xPWVdWXk1FY3YKV0ghJkZLQ000TygzeiY0YkEyd3oqR3pJezl1MlRh
NQoKZGVsdGEgODgKemNtY2F7aVNeNF8pKHY7SEgqNCFtNSM1fllHKUczIW5XMj1TbjR5RnJwQ09r
KWk2TkZqZngjQXRsXkVkU2xNbUdFCmxQVWVoWHdWNUA2RH1Ibjl7JlBaYFhJQCRzeVM+K2QoUz4h
cHdpJTxZRiNzTEY5VHh4cQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01haW4uaHRtbCBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01haW4uaHRtbAppbmRleCBjMzEwMTAwOGIwNjEwZDg4MTdkMjZjMDM0Y2I1YjFmNzhlYjZmMmUx
Li5lZmQ2OGY2MmQ1YTliY2U4YzdkZjcxNTkzMTdhMTkzZjQ5ZWM1YWQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCkBAIC0xNTEsNiArMTUxLDcg
QEAKICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL1NpZGViYXJQYW5lbC5j
c3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvU2xpZGVyLmNzcyI+
CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9Tb3VyY2VDb2RlVGV4dEVk
aXRvci5jc3MiPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvU3ByaW5n
RWRpdG9yLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9TdGFj
a1RyYWNlVmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3Mv
U3RvcmFnZVNpZGViYXJQYW5lbC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iVmlld3MvU3R5bGVSdWxlSWNvbnMuY3NzIj4KQEAgLTYyMSw2ICs2MjIsNyBAQAogICAgIDxz
Y3JpcHQgc3JjPSJWaWV3cy9Tb3VyY2VDb2RlVGltZWxpbmVUaW1lbGluZURhdGFHcmlkTm9kZS5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1NvdXJjZUNvZGVUaW1lbGluZVRy
ZWVFbGVtZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvU291cmNlTWFw
UmVzb3VyY2VUcmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlZpZXdz
L1NwcmluZ0VkaXRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1N0YWNr
VHJhY2VWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvU3RhY2tlZExp
bmVDaGFydC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1N0b3JhZ2VTaWRl
YmFyUGFuZWwuanMiPjwvc2NyaXB0PgpAQCAtNjgwLDYgKzY4Miw3IEBACiAgICAgPHNjcmlwdCBz
cmM9IkNvbnRyb2xsZXJzL0NvZGVNaXJyb3JCZXppZXJFZGl0aW5nQ29udHJvbGxlci5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0NvZGVNaXJyb3JEcmFnVG9BZGp1
c3ROdW1iZXJDb250cm9sbGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJv
bGxlcnMvQ29kZU1pcnJvckdyYWRpZW50RWRpdGluZ0NvbnRyb2xsZXIuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9Db2RlTWlycm9yU3ByaW5nRWRpdGluZ0NvbnRy
b2xsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9Db2RlTWly
cm9yVG9rZW5UcmFja2luZ0NvbnRyb2xsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJDb250cm9sbGVycy9Db2RlTWlycm9yVGV4dEtpbGxDb250cm9sbGVyLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvRE9NVHJlZU1hbmFnZXIuanMiPjwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0dlb21ldHJ5LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0dlb21ldHJ5LmpzCmluZGV4IDU5MTBjNjZkMzJjYjk5YTQ0NjVmNjlmZWYzOTVkNGM1NWJiMzYz
ZDAuLjFmODU5NTMxYzEyMmI5MzJlN2NjNzgwOWQ5ZDZhZDJkZTEyZTgxMjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9HZW9tZXRyeS5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvR2VvbWV0cnku
anMKQEAgLTQ3NiwzICs0NzYsOTYgQEAgV2ViSW5zcGVjdG9yLkN1YmljQmV6aWVyLmtleXdvcmRW
YWx1ZXMgPSB7CiAgICAgImVhc2UtaW4tb3V0IjogIFswLjQyLCAwLCAwLjU4LCAxXSwKICAgICAi
bGluZWFyIjogICAgICAgWzAsIDAsIDEsIDFdCiB9OworCitXZWJJbnNwZWN0b3IuU3ByaW5nID0g
Y2xhc3MgU3ByaW5nCit7CisgICAgY29uc3RydWN0b3IobWFzcywgc3RpZmZuZXNzLCBkYW1waW5n
LCBpbml0aWFsVmVsb2NpdHkpCisgICAgeworICAgICAgICB0aGlzLm1hc3MgPSBtYXNzID4gMCA/
IG1hc3MgOiAxOworICAgICAgICB0aGlzLnN0aWZmbmVzcyA9IHN0aWZmbmVzcyA+IDAgPyBzdGlm
Zm5lc3MgOiAxOworICAgICAgICB0aGlzLmRhbXBpbmcgPSBNYXRoLm1heCgwLCBkYW1waW5nKTsK
KyAgICAgICAgdGhpcy5pbml0aWFsVmVsb2NpdHkgPSBpbml0aWFsVmVsb2NpdHk7CisgICAgfQor
CisgICAgLy8gU3RhdGljCisKKyAgICBzdGF0aWMgZnJvbVZhbHVlcyh2YWx1ZXMpCisgICAgewor
ICAgICAgICBpZiAoIXZhbHVlcyB8fCB2YWx1ZXMubGVuZ3RoIDwgNCkKKyAgICAgICAgICAgIHJl
dHVybiBudWxsOworCisgICAgICAgIHZhbHVlcyA9IHZhbHVlcy5tYXAoTnVtYmVyKTsKKyAgICAg
ICAgaWYgKHZhbHVlcy5pbmNsdWRlcyhOYU4pKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisK
KyAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuU3ByaW5nKHZhbHVlc1swXSwgdmFsdWVz
WzFdLCB2YWx1ZXNbMl0sIHZhbHVlc1szXSk7CisgICAgfQorCisgICAgc3RhdGljIGZyb21TdHJp
bmcodGV4dCkKKyAgICB7CisgICAgICAgIGlmICghdGV4dCB8fCAhdGV4dC5sZW5ndGgpCisgICAg
ICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAgICBsZXQgdHJpbW1lZFRleHQgPSB0ZXh0LnRv
TG93ZXJDYXNlKCkudHJpbSgpOworICAgICAgICBpZiAoIXRyaW1tZWRUZXh0Lmxlbmd0aCkKKyAg
ICAgICAgICAgIHJldHVybiBudWxsOworCisgICAgICAgIGxldCBtYXRjaGVzID0gdHJpbW1lZFRl
eHQubWF0Y2goL15zcHJpbmdcKChbXGQuXSspXHMrKFtcZC5dKylccysoW1xkLl0rKVxzKyhbLVxk
Ll0rKVwpJC8pOworICAgICAgICBpZiAoIW1hdGNoZXMpCisgICAgICAgICAgICByZXR1cm4gbnVs
bDsKKworICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlNwcmluZy5mcm9tVmFsdWVzKG1hdGNo
ZXMuc2xpY2UoMSkpOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgY29weSgpCisgICAg
eworICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5TcHJpbmcodGhpcy5tYXNzLCB0aGlz
LnN0aWZmbmVzcywgdGhpcy5kYW1waW5nLCB0aGlzLmluaXRpYWxWZWxvY2l0eSk7CisgICAgfQor
CisgICAgdG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGBzcHJpbmcoJHt0aGlzLm1h
c3N9ICR7dGhpcy5zdGlmZm5lc3N9ICR7dGhpcy5kYW1waW5nfSAke3RoaXMuaW5pdGlhbFZlbG9j
aXR5fSlgOworICAgIH0KKworICAgIHNvbHZlKHQpCisgICAgeworICAgICAgICBsZXQgdzAgPSBN
YXRoLnNxcnQodGhpcy5zdGlmZm5lc3MgLyB0aGlzLm1hc3MpOworICAgICAgICBsZXQgemV0YSA9
IHRoaXMuZGFtcGluZyAvICgyICogTWF0aC5zcXJ0KHRoaXMuc3RpZmZuZXNzICogdGhpcy5tYXNz
KSk7CisKKyAgICAgICAgbGV0IHdkID0gMDsKKyAgICAgICAgbGV0IEEgPSAxOworICAgICAgICBs
ZXQgQiA9IC10aGlzLmluaXRpYWxWZWxvY2l0eSArIHcwOworICAgICAgICBpZiAoemV0YSA8IDEp
IHsKKyAgICAgICAgICAgIC8vIFVuZGVyLWRhbXBlZC4KKyAgICAgICAgICAgIHdkID0gdzAgKiBN
YXRoLnNxcnQoMSAtIHpldGEgKiB6ZXRhKTsKKyAgICAgICAgICAgIEEgPSAxOworICAgICAgICAg
ICAgQiA9ICh6ZXRhICogdzAgKyAtdGhpcy5pbml0aWFsVmVsb2NpdHkpIC8gd2Q7CisgICAgICAg
IH0KKworICAgICAgICBpZiAoemV0YSA8IDEpIC8vIFVuZGVyLWRhbXBlZAorICAgICAgICAgICAg
dCA9IE1hdGguZXhwKC10ICogemV0YSAqIHcwKSAqIChBICogTWF0aC5jb3Mod2QgKiB0KSArIEIg
KiBNYXRoLnNpbih3ZCAqIHQpKTsKKyAgICAgICAgZWxzZSAvLyBDcml0aWNhbGx5IGRhbXBlZCAo
aWdub3Jpbmcgb3Zlci1kYW1wZWQgY2FzZSkuCisgICAgICAgICAgICB0ID0gKEEgKyBCICogdCkg
KiBNYXRoLmV4cCgtdCAqIHcwKTsKKworICAgICAgICByZXR1cm4gMSAtIHQ7IC8vIE1hcCByYW5n
ZSBmcm9tIFsxLi4wXSB0byBbMC4uMV0uCisgICAgfQorCisgICAgY2FsY3VsYXRlRHVyYXRpb24o
ZXBzaWxvbikKKyAgICB7CisgICAgICAgIGVwc2lsb24gPSBlcHNpbG9uIHx8IDAuMDAwMTsKKyAg
ICAgICAgbGV0IHQgPSAwOworICAgICAgICBsZXQgY3VycmVudCA9IDA7CisgICAgICAgIGxldCBt
aW5pbXVtID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZOworICAgICAgICB3aGlsZSAoY3VycmVu
dCA+PSBlcHNpbG9uIHx8IG1pbmltdW0gPj0gZXBzaWxvbikgeworICAgICAgICAgICAgY3VycmVu
dCA9IE1hdGguYWJzKDEgLSB0aGlzLnNvbHZlKHQpKTsgLy8gVW5kbyB0aGUgcmFuZ2UgbWFwcGlu
ZworICAgICAgICAgICAgaWYgKG1pbmltdW0gPCBlcHNpbG9uICYmIGN1cnJlbnQgPj0gZXBzaWxv
bikKKyAgICAgICAgICAgICAgICBtaW5pbXVtID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZOyAv
LyBTcHJpbmcgcmV2ZXJzZWQgZGlyZWN0aW9uCisgICAgICAgICAgICBlbHNlIGlmIChjdXJyZW50
IDwgbWluaW11bSkKKyAgICAgICAgICAgICAgICBtaW5pbXVtID0gY3VycmVudDsKKyAgICAgICAg
ICAgIHQgKz0gMC4xOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0OworICAgIH0KK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9UZXh0
TWFya2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Rl
eHRNYXJrZXIuanMKaW5kZXggMzIyMGEyNDgxMzE4YTViMmY5OTYxMjVlM2YxZWYxMmQ4Y2U3YjE0
My4uOWYyNTIyY2ExYjUzNDk4MDk5NmYzYTVkMjFlNmQwMDY5MjgyN2Q0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1RleHRNYXJrZXIuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1RleHRNYXJr
ZXIuanMKQEAgLTgzLDUgKzgzLDYgQEAgV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIuVHlwZSA9IHsK
ICAgICBDb2xvcjogInRleHQtbWFya2VyLXR5cGUtY29sb3IiLAogICAgIEdyYWRpZW50OiAidGV4
dC1tYXJrZXItdHlwZS1ncmFkaWVudCIsCiAgICAgUGxhaW46ICJ0ZXh0LW1hcmtlci10eXBlLXBs
YWluIiwKLSAgICBDdWJpY0JlemllcjogInRleHQtbWFya2VyLXR5cGUtY3ViaWMtYmV6aWVyIgor
ICAgIEN1YmljQmV6aWVyOiAidGV4dC1tYXJrZXItdHlwZS1jdWJpYy1iZXppZXIiLAorICAgIFNw
cmluZzogInRleHQtbWFya2VyLXR5cGUtc3ByaW5nIgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25UZXh0
RWRpdG9yLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NT
U3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuanMKaW5kZXggNTgwNWVkMjYwM2RlMmNkODYyOWZh
N2U1ODMzYTU0NDU4NzFlNmZjOC4uZTI0NGE5OTQ0ODRhN2JjNGFhYTA0M2Q2OGVkMmFlM2EyMzZm
NmY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3Iu
anMKQEAgLTg4Niw2ICs4ODYsMTIgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25U
ZXh0RWRpdG9yID0gY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IKICAgICAgICAg
ICAgICAgICBsZXQgc3dhdGNoID0gbmV3IFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2goV2ViSW5z
cGVjdG9yLklubGluZVN3YXRjaC5UeXBlLkJlemllciwgYmV6aWVyLCB0aGlzLl9jb2RlTWlycm9y
LmdldE9wdGlvbigicmVhZE9ubHkiKSk7CiAgICAgICAgICAgICAgICAgY3JlYXRlU3dhdGNoLmNh
bGwodGhpcywgc3dhdGNoLCBtYXJrZXIsIGJlemllciwgYmV6aWVyU3RyaW5nKTsKICAgICAgICAg
ICAgIH0pOworCisgICAgICAgICAgICAvLyBMb29rIGZvciBzcHJpbmcgc3RyaW5ncyBhbmQgYWRk
IHN3YXRjaGVzIGluIGZyb250IG9mIHRoZW0uCisgICAgICAgICAgICBjcmVhdGVDb2RlTWlycm9y
U3ByaW5nVGV4dE1hcmtlcnModGhpcy5fY29kZU1pcnJvciwgcmFuZ2UsIChtYXJrZXIsIHNwcmlu
Zywgc3ByaW5nU3RyaW5nKSA9PiB7CisgICAgICAgICAgICAgICAgbGV0IHN3YXRjaCA9IG5ldyBX
ZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoKFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2guVHlwZS5T
cHJpbmcsIHNwcmluZywgdGhpcy5fY29kZU1pcnJvci5nZXRPcHRpb24oInJlYWRPbmx5IikpOwor
ICAgICAgICAgICAgICAgIGNyZWF0ZVN3YXRjaC5jYWxsKHRoaXMsIHN3YXRjaCwgbWFya2VyLCBz
cHJpbmcsIHNwcmluZ1N0cmluZyk7CisgICAgICAgICAgICB9KTsKICAgICAgICAgfQogCiAgICAg
ICAgIGlmIChub25hdG9taWMpCkBAIC0xMzE4LDggKzEzMjQsOSBAQCBXZWJJbnNwZWN0b3IuQ1NT
U3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IgPSBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uVGV4
dEVkaXRvcgogCiAgICAgICAgICAgICAgICAgZm9yIChsZXQgbWFyayBvZiBtYXJrcykgewogICAg
ICAgICAgICAgICAgICAgICBsZXQgdHlwZSA9IFdlYkluc3BlY3Rvci5UZXh0TWFya2VyLnRleHRN
YXJrZXJGb3JDb2RlTWlycm9yVGV4dE1hcmtlcihtYXJrKS50eXBlOwotICAgICAgICAgICAgICAg
ICAgICBpZiAodHlwZSAhPT0gV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIuVHlwZS5Db2xvciAmJiB0
eXBlICE9PSBXZWJJbnNwZWN0b3IuVGV4dE1hcmtlci5UeXBlLkdyYWRpZW50ICYmIHR5cGUgIT09
IFdlYkluc3BlY3Rvci5UZXh0TWFya2VyLlR5cGUuQ3ViaWNCZXppZXIpCisgICAgICAgICAgICAg
ICAgICAgIGlmIChPYmplY3QudmFsdWVzKFdlYkluc3BlY3Rvci5UZXh0TWFya2VyLlR5cGUpLmlu
Y2x1ZGVzKHR5cGUpKQogICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisKICAgICAg
ICAgICAgICAgICAgICAgdGV4dE1hcmtlciA9IG1hcms7CiAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JTcHJpbmdFZGl0aW5nQ29udHJvbGxlci5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JT
cHJpbmdFZGl0aW5nQ29udHJvbGxlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZjFmOTFmMTQ2NzFjNWY4NTY1
MjIzZmFiMTI2ZGVhODBkNmM3YzQ5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29kZU1pcnJvclNwcmluZ0VkaXRpbmdDb250cm9s
bGVyLmpzCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgRGV2aW4g
Um91c3NvIDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworV2ViSW5zcGVjdG9yLkNvZGVNaXJyb3JTcHJpbmdFZGl0aW5nQ29udHJvbGxl
ciA9IGNsYXNzIENvZGVNaXJyb3JTcHJpbmdFZGl0aW5nQ29udHJvbGxlciBleHRlbmRzIFdlYklu
c3BlY3Rvci5Db2RlTWlycm9yRWRpdGluZ0NvbnRyb2xsZXIKK3sKKyAgICAvLyBQdWJsaWMKKwor
ICAgIGdldCBpbml0aWFsVmFsdWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rv
ci5TcHJpbmcuZnJvbVN0cmluZyh0aGlzLnRleHQpOworICAgIH0KKworICAgIGdldCBjc3NDbGFz
c05hbWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJzcHJpbmciOworICAgIH0KKworICAgIHBv
cG92ZXJXaWxsUHJlc2VudChwb3BvdmVyKQorICAgIHsKKyAgICAgICAgdGhpcy5fc3ByaW5nRWRp
dG9yID0gbmV3IFdlYkluc3BlY3Rvci5TcHJpbmdFZGl0b3I7CisgICAgICAgIHRoaXMuX3Nwcmlu
Z0VkaXRvci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5TcHJpbmdFZGl0b3IuRXZlbnQu
U3ByaW5nQ2hhbmdlZCwgdGhpcy5fc3ByaW5nRWRpdG9yU3ByaW5nQ2hhbmdlZCwgdGhpcyk7Cisg
ICAgICAgIHBvcG92ZXIuY29udGVudCA9IHRoaXMuX3NwcmluZ0VkaXRvci5lbGVtZW50OworICAg
IH0KKworICAgIHBvcG92ZXJEaWRQcmVzZW50KHBvcG92ZXIpCisgICAgeworICAgICAgICB0aGlz
Ll9zcHJpbmdFZGl0b3Iuc3ByaW5nID0gdGhpcy52YWx1ZTsKKyAgICB9CisKKyAgICBwb3BvdmVy
RGlkRGlzbWlzcyhwb3BvdmVyKQorICAgIHsKKyAgICAgICAgdGhpcy5fc3ByaW5nRWRpdG9yLnJl
bW92ZUxpc3RlbmVycygpOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9zcHJpbmdF
ZGl0b3JTcHJpbmdDaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy52YWx1ZSA9IGV2
ZW50LmRhdGEuc3ByaW5nOworICAgIH0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2RlTWlycm9yVGV4dE1hcmtlcnMuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2RlTWlycm9yVGV4dE1hcmtl
cnMuanMKaW5kZXggYzMxYzg2NmU0Yjk4YzY3YTlhOGU1N2QwZDI0ZGQ3NWZjYWE5YmU5Zi4uOWRh
NzUxM2FkNDA2Mzg4MGVkZTQ5YTVlY2ZiN2Y0YzUzYTliMzZkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29kZU1pcnJvclRleHRNYXJrZXJz
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVN
aXJyb3JUZXh0TWFya2Vycy5qcwpAQCAtMTk1LDMgKzE5NSw5IEBAIGZ1bmN0aW9uIGNyZWF0ZUNv
ZGVNaXJyb3JDdWJpY0JlemllclRleHRNYXJrZXJzKGNvZGVNaXJyb3IsIHJhbmdlLCBjYWxsYmFj
aykKICAgICB2YXIgY3ViaWNCZXppZXJSZWdleCA9IC8oY3ViaWMtYmV6aWVyXChbXildK1wpfFxi
XHcrXGIoPzotXGJcdytcYil7MCwyfSkvZzsKICAgICByZXR1cm4gY3JlYXRlQ29kZU1pcnJvclRl
eHRNYXJrZXJzKCJDdWJpY0JlemllciIsIGN1YmljQmV6aWVyUmVnZXgsIG51bGwsIGNvZGVNaXJy
b3IsIHJhbmdlLCBjYWxsYmFjayk7CiB9CisKK2Z1bmN0aW9uIGNyZWF0ZUNvZGVNaXJyb3JTcHJp
bmdUZXh0TWFya2Vycyhjb2RlTWlycm9yLCByYW5nZSwgY2FsbGJhY2spCit7CisgICAgY29uc3Qg
c3ByaW5nUmVnZXggPSAvKHNwcmluZ1woW14pXStcKSkvZzsKKyAgICByZXR1cm4gY3JlYXRlQ29k
ZU1pcnJvclRleHRNYXJrZXJzKCJTcHJpbmciLCBzcHJpbmdSZWdleCwgbnVsbCwgY29kZU1pcnJv
ciwgcmFuZ2UsIGNhbGxiYWNrKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lubGluZVN3YXRjaC5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9JbmxpbmVTd2F0Y2guY3NzCmluZGV4IDExZjZlNjM4
ZTczYjQwY2ZlYTU1MWJmYzc5MjkxZmQ0ZTllNGExMzEuLmZjMmExNjhkMjk4MzlhMTI4NmJhYmFl
ZGUxMmY2N2I3YzQ1ZTg5OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0lubGluZVN3YXRjaC5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSW5saW5lU3dhdGNoLmNzcwpAQCAtMSw2ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICogQ29weXJpZ2h0IChDKSAyMDE1IERldmluIFJvdXNzbyA8ZGNyb3Vzc28rd2Via2l0QGdt
YWlsLmNvbT4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAx
NiBEZXZpbiBSb3Vzc28gPGRjcm91c3NvK3dlYmtpdEBnbWFpbC5jb20+LiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MywxNyArNDMsMjAg
QEAKICAgICBjdXJzb3I6IGRlZmF1bHQ7CiB9CiAKLS5pbmxpbmUtc3dhdGNoLmJlemllciB7Ci0g
ICAgbWFyZ2luLXJpZ2h0OiAycHg7CisuaW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXppZXIsIC5z
cHJpbmcpIHsKICAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL0N1YmljQmV6aWVyLnN2Zyk7Cit9
CisKKy5pbmxpbmUtc3dhdGNoOm1hdGNoZXMoLmJlemllciwgLnNwcmluZykgeworICAgIG1hcmdp
bi1yaWdodDogMnB4OwogICAgIGJhY2tncm91bmQ6IG5vbmU7CiB9CiAKLS5pbmxpbmUtc3dhdGNo
LmJlemllcjpob3ZlciB7CisuaW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXppZXIsIC5zcHJpbmcp
OmhvdmVyIHsKICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMC45KTsKIH0KIAotLmlubGluZS1zd2F0
Y2guYmV6aWVyOmFjdGl2ZSB7CisuaW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXppZXIsIC5zcHJp
bmcpOmFjdGl2ZSB7CiAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDAuOCk7CiB9CiAKQEAgLTg1LDcg
Kzg4LDcgQEAKICAgICBib3JkZXItY29sb3I6IGhzbCgwLCAwJSwgMjUlKTsKIH0KIAotLmlubGlu
ZS1zd2F0Y2guYmV6aWVyID4gc3BhbiB7CisuaW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXppZXIs
IC5zcHJpbmcpID4gc3BhbiB7CiAgICAgZGlzcGxheTogbm9uZTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSW5saW5lU3dhdGNoLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSW5saW5lU3dhdGNo
LmpzCmluZGV4IGQ2ZTM2OGM0NTEyYWNlMTlhNDlmMmQ1YjhkNTk5YWQ1M2E4NDcwOWUuLmEwMGQ0
MDgzZDcwNTRhM2I4MDFjOTZhMzk2NDJiMzE1M2QyMDA1OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lubGluZVN3YXRjaC5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9JbmxpbmVTd2F0Y2guanMK
QEAgLTM5LDYgKzM5LDkgQEAgV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaCA9IGNsYXNzIElubGlu
ZVN3YXRjaCBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgY2FzZSBXZWJJbnNw
ZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUuQmV6aWVyOgogICAgICAgICAgICAgdGhpcy5fc3dhdGNo
RWxlbWVudC50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2xpY2sgdG8gb3BlbiBhIGN1
YmljLWJlemllciBlZGl0b3IuIik7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBX
ZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUuU3ByaW5nOgorICAgICAgICAgICAgdGhpcy5f
c3dhdGNoRWxlbWVudC50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2xpY2sgdG8gb3Bl
biBhIHNwcmluZyBlZGl0b3IuIik7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBX
ZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUuR3JhZGllbnQ6CiAgICAgICAgICAgICB0aGlz
Ll9zd2F0Y2hFbGVtZW50LnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDbGljayB0byBz
ZWxlY3QgYSBncmFkaWVudC4iKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtOTgsNiArMTAxLDgg
QEAgV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaCA9IGNsYXNzIElubGluZVN3YXRjaCBleHRlbmRz
IFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgc3dpdGNoICh0aGlzLl90eXBlKSB7CiAgICAg
ICAgIGNhc2UgV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5UeXBlLkJlemllcjoKICAgICAgICAg
ICAgIHJldHVybiBXZWJJbnNwZWN0b3IuQ3ViaWNCZXppZXIuZnJvbVN0cmluZygibGluZWFyIik7
CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5UeXBlLlNwcmluZzoKKyAg
ICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuU3ByaW5nLmZyb21TdHJpbmcoIjEgMTAwIDEw
IDAiKTsKICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUuR3JhZGll
bnQ6CiAgICAgICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLkdyYWRpZW50LmZyb21TdHJpbmco
ImxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQpIik7CiAgICAgICAgIGNh
c2UgV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5UeXBlLkNvbG9yOgpAQCAtMTQzLDYgKzE0OCw5
IEBAIFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2ggPSBjbGFzcyBJbmxpbmVTd2F0Y2ggZXh0ZW5k
cyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIGlmICh0aGlzLl90eXBlID09PSBXZWJJbnNw
ZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUuQmV6aWVyKSB7CiAgICAgICAgICAgICB0aGlzLl92YWx1
ZUVkaXRvciA9IG5ldyBXZWJJbnNwZWN0b3IuQmV6aWVyRWRpdG9yOwogICAgICAgICAgICAgdGhp
cy5fdmFsdWVFZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQmV6aWVyRWRpdG9y
LkV2ZW50LkJlemllckNoYW5nZWQsIHRoaXMuX3ZhbHVlRWRpdG9yVmFsdWVEaWRDaGFuZ2UsIHRo
aXMpOworICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX3R5cGUgPT09IFdlYkluc3BlY3Rvci5Jbmxp
bmVTd2F0Y2guVHlwZS5TcHJpbmcpIHsKKyAgICAgICAgICAgIHRoaXMuX3ZhbHVlRWRpdG9yID0g
bmV3IFdlYkluc3BlY3Rvci5TcHJpbmdFZGl0b3I7CisgICAgICAgICAgICB0aGlzLl92YWx1ZUVk
aXRvci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5TcHJpbmdFZGl0b3IuRXZlbnQuU3By
aW5nQ2hhbmdlZCwgdGhpcy5fdmFsdWVFZGl0b3JWYWx1ZURpZENoYW5nZSwgdGhpcyk7CiAgICAg
ICAgIH0gZWxzZSBpZiAodGhpcy5fdHlwZSA9PT0gV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5U
eXBlLkdyYWRpZW50KSB7CiAgICAgICAgICAgICB0aGlzLl92YWx1ZUVkaXRvciA9IG5ldyBXZWJJ
bnNwZWN0b3IuR3JhZGllbnRFZGl0b3I7CiAgICAgICAgICAgICB0aGlzLl92YWx1ZUVkaXRvci5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5HcmFkaWVudEVkaXRvci5FdmVudC5HcmFkaWVu
dENoYW5nZWQsIHRoaXMuX3ZhbHVlRWRpdG9yVmFsdWVEaWRDaGFuZ2UsIHRoaXMpOwpAQCAtMTU4
LDYgKzE2Niw4IEBAIFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2ggPSBjbGFzcyBJbmxpbmVTd2F0
Y2ggZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIGxldCB2YWx1ZSA9IHRoaXMu
X3ZhbHVlIHx8IHRoaXMuX2ZhbGxiYWNrVmFsdWUoKTsKICAgICAgICAgaWYgKHRoaXMuX3R5cGUg
PT09IFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2guVHlwZS5CZXppZXIpCiAgICAgICAgICAgICB0
aGlzLl92YWx1ZUVkaXRvci5iZXppZXIgPSB2YWx1ZTsKKyAgICAgICAgZWxzZSBpZiAodGhpcy5f
dHlwZSA9PT0gV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5UeXBlLlNwcmluZykKKyAgICAgICAg
ICAgIHRoaXMuX3ZhbHVlRWRpdG9yLnNwcmluZyA9IHZhbHVlOwogICAgICAgICBlbHNlIGlmICh0
aGlzLl90eXBlID09PSBXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUuR3JhZGllbnQpCiAg
ICAgICAgICAgICB0aGlzLl92YWx1ZUVkaXRvci5ncmFkaWVudCA9IHZhbHVlOwogICAgICAgICBl
bHNlCkBAIC0xNjgsNiArMTc4LDggQEAgV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaCA9IGNsYXNz
IElubGluZVN3YXRjaCBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICB7CiAgICAgICAg
IGlmICh0aGlzLl90eXBlID09PSBXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUuQmV6aWVy
KQogICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSBldmVudC5kYXRhLmJlemllcjsKKyAgICAgICAg
ZWxzZSBpZiAodGhpcy5fdHlwZSA9PT0gV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5UeXBlLlNw
cmluZykKKyAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gZXZlbnQuZGF0YS5zcHJpbmc7CiAgICAg
ICAgIGVsc2UgaWYgKHRoaXMuX3R5cGUgPT09IFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2guVHlw
ZS5HcmFkaWVudCkKICAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gZXZlbnQuZGF0YS5ncmFkaWVu
dDsKICAgICAgICAgZWxzZQpAQCAtMjc5LDcgKzI5MSw4IEBAIFdlYkluc3BlY3Rvci5JbmxpbmVT
d2F0Y2ggPSBjbGFzcyBJbmxpbmVTd2F0Y2ggZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiBX
ZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUgPSB7CiAgICAgQ29sb3I6ICJpbmxpbmUtc3dh
dGNoLXR5cGUtY29sb3IiLAogICAgIEdyYWRpZW50OiAiaW5saW5lLXN3YXRjaC10eXBlLWdyYWRp
ZW50IiwKLSAgICBCZXppZXI6ICJpbmxpbmUtc3dhdGNoLXR5cGUtYmV6aWVyIgorICAgIEJlemll
cjogImlubGluZS1zd2F0Y2gtdHlwZS1iZXppZXIiLAorICAgIFNwcmluZzogImlubGluZS1zd2F0
Y2gtdHlwZS1zcHJpbmciLAogfTsKIAogV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5FdmVudCA9
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1NvdXJjZUNvZGVUZXh0RWRpdG9yLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvU291cmNlQ29kZVRleHRFZGl0b3IuanMKaW5kZXggMTNmY2FmOTlhMGI0NmYy
NTA1ZTgwOWNmZDM0NDcyNWE1NzAxNDFmOC4uNjg3YjIyOGNkZjU4MzY3MzRkNzZkMzhjOTIxODYx
MGEzNDdjMDk5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvU291cmNlQ29kZVRleHRFZGl0b3IuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU291cmNlQ29kZVRleHRFZGl0b3IuanMKQEAgLTE2MDQs
NiArMTYwNCw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvciA9IGNsYXNzIFNv
dXJjZUNvZGVUZXh0RWRpdG9yIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgICAgICB0aGlzLmNy
ZWF0ZUNvbG9yTWFya2VycyhyYW5nZSk7CiAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyYWRpZW50
TWFya2VycyhyYW5nZSk7CiAgICAgICAgICAgICB0aGlzLmNyZWF0ZUN1YmljQmV6aWVyTWFya2Vy
cyhyYW5nZSk7CisgICAgICAgICAgICB0aGlzLmNyZWF0ZVNwcmluZ01hcmtlcnMocmFuZ2UpOwog
ICAgICAgICB9CiAKICAgICAgICAgdGhpcy5fdXBkYXRlVG9rZW5UcmFja2luZ0NvbnRyb2xsZXJT
dGF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvU3ByaW5nRWRpdG9yLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1NwcmluZ0VkaXRvci5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JkMTdhYjhhZmZhMWQ5MGZm
ODY5Y2I2YmY4ZWUxNTc0ZTMzYjQ2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmluZ0VkaXRvci5jc3MKQEAgLTAsMCArMSwx
MjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgRGV2aW4gUm91c3NvIDxkY3JvdXNzbyt3
ZWJraXRAZ21haWwuY29tPi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLnNwcmlu
Zy1lZGl0b3IgeworICAgIHdpZHRoOiAyMDBweDsKKyAgICBoZWlnaHQ6IDIxMHB4OworfQorCisu
c3ByaW5nLWVkaXRvciA+IC5zcHJpbmctcHJldmlldyB7CisgICAgd2lkdGg6IGNhbGMoMTAwJSAt
IDEwcHgpOworICAgIGhlaWdodDogMjVweDsKKyAgICBtYXJnaW46IDVweCA1cHggMDsKKyAgICBi
b3JkZXItYm90dG9tOiAxcHggc29saWQgbGlnaHRncmV5OworfQorCisuc3ByaW5nLWVkaXRvciA+
IC5zcHJpbmctcHJldmlldyA+IGRpdiB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIHdp
ZHRoOiAyMHB4OworICAgIGhlaWdodDogMjBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIo
LS1zZWxlY3RlZC1iYWNrZ3JvdW5kLWNvbG9yKTsKKyAgICBib3JkZXItcmFkaXVzOiA1MCU7Cit9
CisKKy5zcHJpbmctZWRpdG9yID4gLnNwcmluZy10aW1pbmcgeworICAgIHBvc2l0aW9uOiByZWxh
dGl2ZTsKKyAgICBtYXJnaW46IC0wLjVweCAxMXB4IDA7Cit9CisKKy5zcHJpbmctZWRpdG9yID4g
LnNwcmluZy10aW1pbmcgPiBkaXYgeworICAgIHdpZHRoOiAwOworICAgIGJvcmRlci1sZWZ0OiA0
cHggc29saWQgdHJhbnNwYXJlbnQ7CisgICAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgdHJhbnNw
YXJlbnQ7CisgICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkIGJsYWNrOworfQorCisuc3ByaW5nLWVk
aXRvciA+IC5zcHJpbmctdGltaW5nOm1hdGNoZXMoOjpiZWZvcmUsIDo6YWZ0ZXIpIHsKKyAgICBw
b3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAyLjVweDsKKyAgICBmb250LXNpemU6IDlweDsK
K30KKworLnNwcmluZy1lZGl0b3IgPiAuc3ByaW5nLXRpbWluZzo6YmVmb3JlIHsKKyAgICBsZWZ0
OiAwOworICAgIGNvbnRlbnQ6ICIwcyI7Cit9CisKKy5zcHJpbmctZWRpdG9yID4gLnNwcmluZy10
aW1pbmc6OmFmdGVyIHsKKyAgICByaWdodDogMDsKKyAgICBjb250ZW50OiBhdHRyKGRhdGEtZHVy
YXRpb24pICJzIjsKK30KKworLnNwcmluZy1lZGl0b3IgPiAuYW5pbWF0ZTptYXRjaGVzKC5zcHJp
bmctcHJldmlldywgLnNwcmluZy10aW1pbmcpID4gZGl2IHsKKyAgICBhbmltYXRpb24tZGVsYXk6
IDI1MG1zOworICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOworfQorCisu
c3ByaW5nLWVkaXRvciA+IC5zcHJpbmctcHJldmlldy5hbmltYXRlID4gZGl2IHsKKyAgICBhbmlt
YXRpb24tbmFtZTogc3ByaW5nLXByZXZpZXc7Cit9CisKK0BrZXlmcmFtZXMgc3ByaW5nLXByZXZp
ZXcgeworICAgIGZyb20geyBsZWZ0OiAwOyB9CisgICAgMTAlIHsgbGVmdDogMDsgfQorICAgIDkw
JSB7IGxlZnQ6IDg1cHg7IH0KKyAgICB0byB7IGxlZnQ6IDg1cHg7IH0KK30KKworLnNwcmluZy1l
ZGl0b3IgPiAuc3ByaW5nLXRpbWluZy5hbmltYXRlID4gZGl2IHsKKyAgICBhbmltYXRpb24tbmFt
ZTogc3ByaW5nLXRpbWluZzsKKyAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7
Cit9CisKK0BrZXlmcmFtZXMgc3ByaW5nLXRpbWluZyB7CisgICAgZnJvbSB7IHRyYW5zZm9ybTog
dHJhbnNsYXRlWCgwKTsgfQorICAgIDEwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfQor
ICAgIDkwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxNzBweCk7IH0KKyAgICB0byB7IHRyYW5z
Zm9ybTogdHJhbnNsYXRlWCgxNzBweCk7IH0KK30KKworLnNwcmluZy1lZGl0b3IgPiAubnVtYmVy
LWlucHV0LWNvbnRhaW5lciA+IC5udW1iZXItaW5wdXQtcm93IHsKKyAgICBkaXNwbGF5OiBmbGV4
OworICAgIGZsZXgtd3JhcDogd3JhcDsKKyAgICBtYXJnaW4tYm90dG9tOiAzcHg7Cit9CisKKy5z
cHJpbmctZWRpdG9yID4gLm51bWJlci1pbnB1dC1jb250YWluZXIgPiAubnVtYmVyLWlucHV0LXJv
dyA+IC5udW1iZXItaW5wdXQtcm93LXRpdGxlIHsKKyAgICB3aWR0aDogMTAwJTsKKyAgICBtYXJn
aW46IDdweCAwIDNweDsKKyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cit9CisKKy5zcHJpbmctZWRp
dG9yID4gLm51bWJlci1pbnB1dC1jb250YWluZXIgPiAubnVtYmVyLWlucHV0LXJvdyA+IGlucHV0
IHsKKyAgICB3aWR0aDogY2FsYyg1MCUgLSAxMHB4KTsKKyAgICBtYXJnaW46IDAgNXB4OworfQor
Cisuc3ByaW5nLWVkaXRvciA+IC5udW1iZXItaW5wdXQtY29udGFpbmVyID4gLm51bWJlci1pbnB1
dC1yb3cgPiBpbnB1dFt0eXBlPSJyYW5nZSJdIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFu
c3BhcmVudDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1NwcmluZ0VkaXRvci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1NwcmluZ0VkaXRvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OWJiMmE2OWJkYTEzM2Ew
ZTlkYTFkOGVkZGI0Y2RhYTk2ZWMyNjU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByaW5nRWRpdG9yLmpzCkBAIC0wLDAgKzEs
MjA1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IERldmluIFJvdXNzbyA8ZGNyb3Vzc28r
d2Via2l0QGdtYWlsLmNvbT4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dlYklu
c3BlY3Rvci5TcHJpbmdFZGl0b3IgPSBjbGFzcyBTcHJpbmdFZGl0b3IgZXh0ZW5kcyBXZWJJbnNw
ZWN0b3IuT2JqZWN0Cit7CisgICAgY29uc3RydWN0b3IoKQorICAgIHsKKyAgICAgICAgc3VwZXIo
KTsKKworICAgICAgICB0aGlzLl9lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7CisgICAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZCgic3ByaW5nLWVkaXRvciIp
OworCisgICAgICAgIHRoaXMuX3ByZXZpZXdDb250YWluZXIgPSB0aGlzLl9lbGVtZW50LmNyZWF0
ZUNoaWxkKCJkaXYiLCAic3ByaW5nLXByZXZpZXcgYW5pbWF0ZSIpOworICAgICAgICB0aGlzLl9w
cmV2aWV3Q29udGFpbmVyLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDbGljayB0byBy
ZXN0YXJ0IHRoZSBhbmltYXRpb24iKTsKKyAgICAgICAgdGhpcy5fcHJldmlld0NvbnRhaW5lci5h
ZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCB0aGlzLl9yZXNldFByZXZpZXdBbmltYXRpb24u
YmluZCh0aGlzKSk7CisKKyAgICAgICAgdGhpcy5fcHJldmlld0VsZW1lbnQgPSB0aGlzLl9wcmV2
aWV3Q29udGFpbmVyLmNyZWF0ZUNoaWxkKCJkaXYiKTsKKworICAgICAgICB0aGlzLl90aW1pbmdD
b250YWluZXIgPSB0aGlzLl9lbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAic3ByaW5nLXRpbWlu
ZyBhbmltYXRlIik7CisKKyAgICAgICAgdGhpcy5fdGltaW5nRWxlbWVudCA9IHRoaXMuX3RpbWlu
Z0NvbnRhaW5lci5jcmVhdGVDaGlsZCgiZGl2Iik7CisKKyAgICAgICAgdGhpcy5fbnVtYmVySW5w
dXRDb250YWluZXIgPSB0aGlzLl9lbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAibnVtYmVyLWlu
cHV0LWNvbnRhaW5lciIpOworCisgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZUlucHV0c0ZvclBhcmFt
ZXRlcihpZCwgdGl0bGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGxldCByb3cgPSB0aGlzLl9u
dW1iZXJJbnB1dENvbnRhaW5lci5jcmVhdGVDaGlsZCgiZGl2IiwgYG51bWJlci1pbnB1dC1yb3cg
JHtpZH1gKTsKKworICAgICAgICAgICAgcm93LmNyZWF0ZUNoaWxkKCJkaXYiLCAibnVtYmVyLWlu
cHV0LXJvdy10aXRsZSIpLnRleHRDb250ZW50ID0gdGl0bGU7CisKKyAgICAgICAgICAgIHRoaXNb
YF8ke2lkfVNsaWRlcmBdID0gcm93LmNyZWF0ZUNoaWxkKCJpbnB1dCIpOworICAgICAgICAgICAg
dGhpc1tgXyR7aWR9U2xpZGVyYF0udHlwZSA9ICJyYW5nZSI7CisgICAgICAgICAgICB0aGlzW2Bf
JHtpZH1TbGlkZXJgXS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsIHRoaXMuX2hhbmRsZU51bWJl
clNsaWRlcklucHV0LmJpbmQodGhpcykpOworICAgICAgICAgICAgdGhpc1tgXyR7aWR9U2xpZGVy
YF0uYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcy5faGFuZGxlTnVtYmVyU2xpZGVy
TW91c2Vkb3duLmJpbmQodGhpcykpOworICAgICAgICAgICAgdGhpc1tgXyR7aWR9U2xpZGVyYF0u
YWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsIHRoaXMuX2hhbmRsZU51bWJlclNsaWRlck1vdXNl
dXAuYmluZCh0aGlzKSk7CisKKyAgICAgICAgICAgIHRoaXNbYF8ke2lkfUlucHV0YF0gPSByb3cu
Y3JlYXRlQ2hpbGQoImlucHV0Iik7CisgICAgICAgICAgICB0aGlzW2BfJHtpZH1JbnB1dGBdLnR5
cGUgPSAibnVtYmVyIjsKKyAgICAgICAgICAgIHRoaXNbYF8ke2lkfUlucHV0YF0uYWRkRXZlbnRM
aXN0ZW5lcigiaW5wdXQiLCB0aGlzLl9oYW5kbGVOdW1iZXJJbnB1dElucHV0LmJpbmQodGhpcykp
OworICAgICAgICAgICAgdGhpc1tgXyR7aWR9SW5wdXRgXS5hZGRFdmVudExpc3RlbmVyKCJrZXlk
b3duIiwgdGhpcy5faGFuZGxlTnVtYmVySW5wdXRLZXlkb3duLmJpbmQodGhpcykpOworICAgICAg
ICB9CisKKyAgICAgICAgY3JlYXRlSW5wdXRzRm9yUGFyYW1ldGVyLmNhbGwodGhpcywgIm1hc3Mi
LCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk1hc3MiKSk7CisgICAgICAgIHRoaXMuX21hc3NJbnB1
dC5taW4gPSB0aGlzLl9tYXNzU2xpZGVyLm1pbiA9IDE7CisKKyAgICAgICAgY3JlYXRlSW5wdXRz
Rm9yUGFyYW1ldGVyLmNhbGwodGhpcywgInN0aWZmbmVzcyIsIFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiU3RpZmZuZXNzIikpOworICAgICAgICB0aGlzLl9zdGlmZm5lc3NJbnB1dC5taW4gPSB0aGlz
Ll9zdGlmZm5lc3NTbGlkZXIubWluID0gMTsKKworICAgICAgICBjcmVhdGVJbnB1dHNGb3JQYXJh
bWV0ZXIuY2FsbCh0aGlzLCAiZGFtcGluZyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRGFtcGlu
ZyIpKTsKKyAgICAgICAgdGhpcy5fZGFtcGluZ0lucHV0Lm1pbiA9IHRoaXMuX2RhbXBpbmdTbGlk
ZXIubWluID0gMDsKKworICAgICAgICBjcmVhdGVJbnB1dHNGb3JQYXJhbWV0ZXIuY2FsbCh0aGlz
LCAiaW5pdGlhbFZlbG9jaXR5IiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJJbml0aWFsIFZlbG9j
aXR5IikpOworCisgICAgICAgIHRoaXMuX3NwcmluZyA9IG5ldyBXZWJJbnNwZWN0b3IuU3ByaW5n
KDEsIDEwMCwgMTAsIDApOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgZ2V0IGVsZW1l
bnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnQ7CisgICAgfQorCisgICAg
Z2V0IHNwcmluZygpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fc3ByaW5nOworICAgIH0K
KworICAgIHNldCBzcHJpbmcoc3ByaW5nKQorICAgIHsKKyAgICAgICAgaWYgKCFzcHJpbmcpCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbGV0IGlzU3ByaW5nID0gc3ByaW5nIGluc3Rh
bmNlb2YgV2ViSW5zcGVjdG9yLlNwcmluZzsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoaXNTcHJp
bmcpOworICAgICAgICBpZiAoIWlzU3ByaW5nKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIHRoaXMuX3NwcmluZyA9IHNwcmluZzsKKyAgICAgICAgdGhpcy5fbWFzc0lucHV0LnZhbHVl
ID0gdGhpcy5fbWFzc1NsaWRlci52YWx1ZSA9IHRoaXMuX3NwcmluZy5tYXNzOworICAgICAgICB0
aGlzLl9zdGlmZm5lc3NJbnB1dC52YWx1ZSA9IHRoaXMuX3N0aWZmbmVzc1NsaWRlci52YWx1ZSA9
IHRoaXMuX3NwcmluZy5zdGlmZm5lc3M7CisgICAgICAgIHRoaXMuX2RhbXBpbmdJbnB1dC52YWx1
ZSA9IHRoaXMuX2RhbXBpbmdTbGlkZXIudmFsdWUgPSB0aGlzLl9zcHJpbmcuZGFtcGluZzsKKyAg
ICAgICAgdGhpcy5faW5pdGlhbFZlbG9jaXR5SW5wdXQudmFsdWUgPSB0aGlzLl9pbml0aWFsVmVs
b2NpdHlTbGlkZXIudmFsdWUgPSB0aGlzLl9zcHJpbmcuaW5pdGlhbFZlbG9jaXR5OworICAgICAg
ICB0aGlzLl91cGRhdGVQcmV2aWV3QW5pbWF0aW9uKCk7CisgICAgfQorCisgICAgLy8gUHJpdmF0
ZQorCisgICAgX2hhbmRsZU51bWJlcklucHV0SW5wdXQoZXZlbnQpCisgICAgeworICAgICAgICB0
aGlzLl9jaGFuZ2VTcHJpbmdGb3JJbnB1dChldmVudC50YXJnZXQsIGV2ZW50LnRhcmdldC52YWx1
ZSk7CisgICAgfQorCisgICAgX2hhbmRsZU51bWJlcklucHV0S2V5ZG93bihldmVudCkKKyAgICB7
CisgICAgICAgIGxldCBzaGlmdCA9IDA7CisgICAgICAgIGlmIChldmVudC5rZXlJZGVudGlmaWVy
ID09PSAiVXAiKQorICAgICAgICAgICAgc2hpZnQgPSAwLjAxOworICAgICAgICAgZWxzZSBpZiAo
ZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIkRvd24iKQorICAgICAgICAgICAgc2hpZnQgPSAtMC4w
MTsKKworICAgICAgICBpZiAoIXNoaWZ0KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IGlmIChldmVudC5zaGlmdEtleSkKKyAgICAgICAgICAgIHNoaWZ0ICo9IDEwOworCisgICAgICAg
IGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgIHRoaXMuX2NoYW5nZVNwcmluZ0Zvcklu
cHV0KGV2ZW50LnRhcmdldCwgcGFyc2VGbG9hdChldmVudC50YXJnZXQudmFsdWUpICsgc2hpZnQp
OworICAgIH0KKworICAgIF9oYW5kbGVOdW1iZXJTbGlkZXJJbnB1dChldmVudCkKKyAgICB7Cisg
ICAgICAgIHRoaXMuX2NoYW5nZVNwcmluZ0ZvcklucHV0KGV2ZW50LnRhcmdldCwgZXZlbnQudGFy
Z2V0LnZhbHVlKTsKKyAgICB9CisKKyAgICBfaGFuZGxlTnVtYmVyU2xpZGVyTW91c2Vkb3duKGV2
ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fcHJldmlld0NvbnRhaW5lci5jbGFzc0xpc3QucmVt
b3ZlKCJhbmltYXRlIik7CisgICAgICAgIHRoaXMuX3RpbWluZ0NvbnRhaW5lci5jbGFzc0xpc3Qu
cmVtb3ZlKCJhbmltYXRlIik7CisgICAgICAgIHRoaXMuX2NoYW5nZVNwcmluZ0ZvcklucHV0KGV2
ZW50LnRhcmdldCwgZXZlbnQudGFyZ2V0LnZhbHVlKTsKKyAgICB9CisKKyAgICBfaGFuZGxlTnVt
YmVyU2xpZGVyTW91c2V1cChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX2NoYW5nZVNwcmlu
Z0ZvcklucHV0KGV2ZW50LnRhcmdldCwgZXZlbnQudGFyZ2V0LnZhbHVlKTsKKyAgICAgICAgdGhp
cy5fcHJldmlld0NvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJhbmltYXRlIik7CisgICAgICAgIHRo
aXMuX3RpbWluZ0NvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKCJhbmltYXRlIik7CisgICAgfQor
CisgICAgX2NoYW5nZVNwcmluZ0ZvcklucHV0KHRhcmdldCwgdmFsdWUpCisgICAgeworICAgICAg
ICBzd2l0Y2ggKHRhcmdldCkgeworICAgICAgICBjYXNlIHRoaXMuX21hc3NJbnB1dDoKKyAgICAg
ICAgY2FzZSB0aGlzLl9tYXNzU2xpZGVyOgorICAgICAgICAgICAgdGhpcy5fc3ByaW5nLm1hc3Mg
PSB0aGlzLl9tYXNzSW5wdXQudmFsdWUgPSB0aGlzLl9tYXNzU2xpZGVyLnZhbHVlID0gTWF0aC5t
aW4oMSwgdmFsdWUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpcy5fc3Rp
ZmZuZXNzSW5wdXQ6CisgICAgICAgIGNhc2UgdGhpcy5fc3RpZmZuZXNzU2xpZGVyOgorICAgICAg
ICAgICAgdGhpcy5fc3ByaW5nLnN0aWZmbmVzcyA9IHRoaXMuX3N0aWZmbmVzc0lucHV0LnZhbHVl
ID0gdGhpcy5fc3RpZmZuZXNzU2xpZGVyLnZhbHVlID0gTWF0aC5taW4oMSwgdmFsdWUpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpcy5fZGFtcGluZ0lucHV0OgorICAgICAg
ICBjYXNlIHRoaXMuX2RhbXBpbmdTbGlkZXI6CisgICAgICAgICAgICB0aGlzLl9zcHJpbmcuZGFt
cGluZyA9IHRoaXMuX2RhbXBpbmdJbnB1dC52YWx1ZSA9IHRoaXMuX2RhbXBpbmdTbGlkZXIudmFs
dWUgPSBNYXRoLm1pbigxLCB2YWx1ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSB0aGlzLl9pbml0aWFsVmVsb2NpdHlJbnB1dDoKKyAgICAgICAgY2FzZSB0aGlzLl9pbml0aWFs
VmVsb2NpdHlTbGlkZXI6CisgICAgICAgICAgICB0aGlzLl9zcHJpbmcuaW5pdGlhbFZlbG9jaXR5
ID0gdGhpcy5faW5pdGlhbFZlbG9jaXR5SW5wdXQudmFsdWUgPSB0aGlzLl9pbml0aWFsVmVsb2Np
dHlTbGlkZXIudmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fdXBk
YXRlUHJldmlld0FuaW1hdGlvbigpOworCisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKFdlYkluc3BlY3Rvci5TcHJpbmdFZGl0b3IuRXZlbnQuU3ByaW5nQ2hhbmdlZCwge3Nw
cmluZzogdGhpcy5fc3ByaW5nfSk7CisgICAgfQorCisgICAgX3VwZGF0ZVByZXZpZXdBbmltYXRp
b24oKQorICAgIHsKKyAgICAgICAgLy8gQWRkIGV4dHJhIDI1JSB0byBlbnN1cmUgdGhhdCB0aGUg
ImRlbGF5IiB0aW1lIG9mIHRoZSBhbmltYXRpb24gZG9lcyBub3Qgc2hvcnRlbiB0aGUgc3ByaW5n
LgorICAgICAgICBsZXQgZHVyYXRpb24gPSB0aGlzLl9zcHJpbmcuY2FsY3VsYXRlRHVyYXRpb24o
KSAqIDEuMjU7CisKKyAgICAgICAgdGhpcy5fcHJldmlld0VsZW1lbnQuc3R5bGUuYW5pbWF0aW9u
RHVyYXRpb24gPSBgJHtkdXJhdGlvbn1zYDsKKyAgICAgICAgdGhpcy5fcHJldmlld0VsZW1lbnQu
c3R5bGUuYW5pbWF0aW9uVGltaW5nRnVuY3Rpb24gPSB0aGlzLl9zcHJpbmcudG9TdHJpbmcoKTsK
KworICAgICAgICB0aGlzLl90aW1pbmdFbGVtZW50LnN0eWxlLmFuaW1hdGlvbkR1cmF0aW9uID0g
YCR7ZHVyYXRpb259c2A7CisgICAgICAgIHRoaXMuX3RpbWluZ0NvbnRhaW5lci5kYXRhc2V0LmR1
cmF0aW9uID0gZHVyYXRpb24udG9GaXhlZCgyKTsKKyAgICB9CisKKyAgICBfcmVzZXRQcmV2aWV3
QW5pbWF0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fcHJldmlld0NvbnRhaW5lci5y
ZW1vdmVDaGlsZCh0aGlzLl9wcmV2aWV3RWxlbWVudCk7CisgICAgICAgIHRoaXMuX3ByZXZpZXdD
b250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5fcHJldmlld0VsZW1lbnQpOworCisgICAgICAgIHRo
aXMuX3RpbWluZ0NvbnRhaW5lci5yZW1vdmVDaGlsZCh0aGlzLl90aW1pbmdFbGVtZW50KTsKKyAg
ICAgICAgdGhpcy5fdGltaW5nQ29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuX3RpbWluZ0VsZW1l
bnQpOworICAgIH0KK307CisKK1dlYkluc3BlY3Rvci5TcHJpbmdFZGl0b3IuRXZlbnQgPSB7Cisg
ICAgU3ByaW5nQ2hhbmdlZDogInNwcmluZy1lZGl0b3Itc3ByaW5nLWNoYW5nZWQiCit9OwpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RleHRFZGl0b3IuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9UZXh0RWRpdG9yLmpzCmluZGV4IDJjODA5MDRlMjUxYjAy
ZWQxY2I3M2VkMDdkZmNjNWExYjQ3MzQ2NDcuLmFkMDY1YTJhOTYxNTk0MGY1Zjg4MjY0ODM0NzQ4
YjMwMDI3ODliNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1RleHRFZGl0b3IuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvVGV4dEVkaXRvci5qcwpAQCAtNjExLDYgKzYxMSwxMSBAQCBXZWJJbnNw
ZWN0b3IuVGV4dEVkaXRvciA9IGNsYXNzIFRleHRFZGl0b3IgZXh0ZW5kcyBXZWJJbnNwZWN0b3Iu
VmlldwogICAgICAgICByZXR1cm4gY3JlYXRlQ29kZU1pcnJvckN1YmljQmV6aWVyVGV4dE1hcmtl
cnModGhpcy5fY29kZU1pcnJvciwgcmFuZ2UpOwogICAgIH0KIAorICAgIGNyZWF0ZVNwcmluZ01h
cmtlcnMocmFuZ2UpCisgICAgeworICAgICAgICByZXR1cm4gY3JlYXRlQ29kZU1pcnJvclNwcmlu
Z1RleHRNYXJrZXJzKHRoaXMuX2NvZGVNaXJyb3IsIHJhbmdlKTsKKyAgICB9CisKICAgICBlZGl0
aW5nQ29udHJvbGxlckZvck1hcmtlcihlZGl0YWJsZU1hcmtlcikKICAgICB7CiAgICAgICAgIHN3
aXRjaCAoZWRpdGFibGVNYXJrZXIudHlwZSkgewpAQCAtNjIwLDYgKzYyNSw4IEBAIFdlYkluc3Bl
Y3Rvci5UZXh0RWRpdG9yID0gY2xhc3MgVGV4dEVkaXRvciBleHRlbmRzIFdlYkluc3BlY3Rvci5W
aWV3CiAgICAgICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5Db2RlTWlycm9yR3JhZGll
bnRFZGl0aW5nQ29udHJvbGxlcih0aGlzLl9jb2RlTWlycm9yLCBlZGl0YWJsZU1hcmtlcik7CiAg
ICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIuVHlwZS5DdWJpY0JlemllcjoKICAg
ICAgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNvZGVNaXJyb3JCZXppZXJFZGl0aW5n
Q29udHJvbGxlcih0aGlzLl9jb2RlTWlycm9yLCBlZGl0YWJsZU1hcmtlcik7CisgICAgICAgIGNh
c2UgV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIuVHlwZS5TcHJpbmc6CisgICAgICAgICAgICByZXR1
cm4gbmV3IFdlYkluc3BlY3Rvci5Db2RlTWlycm9yU3ByaW5nRWRpdGluZ0NvbnRyb2xsZXIodGhp
cy5fY29kZU1pcnJvciwgZWRpdGFibGVNYXJrZXIpOwogICAgICAgICBkZWZhdWx0OgogICAgICAg
ICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuQ29kZU1pcnJvckVkaXRpbmdDb250cm9sbGVy
KHRoaXMuX2NvZGVNaXJyb3IsIGVkaXRhYmxlTWFya2VyKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVU
aW1pbmdFZGl0b3IuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvVmlzdWFsU3R5bGVUaW1pbmdFZGl0b3IuY3NzCmluZGV4IGM3MWFkYmM1ZGMyNjNlZTM3NzNl
MDkwYjVlZDZiYmU0ZDgxNDJhOTAuLjRiMmNmYmUzMjBiYTk2NmM1YWI4ZGZmMzYzMmZhNTkxNjAw
MjlhZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Zpc3VhbFN0eWxlVGltaW5nRWRpdG9yLmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVRpbWluZ0VkaXRvci5jc3MKQEAgLTMx
LDEyICszMSwxMyBAQAogICAgIG9yZGVyOiAxOwogfQogCi0udmlzdWFsLXN0eWxlLXByb3BlcnR5
LWNvbnRhaW5lci50aW1pbmctZWRpdG9yID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1j
b250YWluZXIgPiAuaW5saW5lLXN3YXRjaC5iZXppZXIgeworLnZpc3VhbC1zdHlsZS1wcm9wZXJ0
eS1jb250YWluZXIudGltaW5nLWVkaXRvciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUt
Y29udGFpbmVyID4gLmlubGluZS1zd2F0Y2g6bWF0Y2hlcyguYmV6aWVyLCAuc3ByaW5nKSB7CiAg
ICAgd2lkdGg6IDIzcHg7CiAgICAgaGVpZ2h0OiAyMHB4OwogfQogCi0udmlzdWFsLXN0eWxlLXBy
b3BlcnR5LWNvbnRhaW5lci50aW1pbmctZWRpdG9yID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12
YWx1ZS1jb250YWluZXI6bm90KC5iZXppZXItdmFsdWUpID4gLmlubGluZS1zd2F0Y2guYmV6aWVy
IHsKKy52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLnRpbWluZy1lZGl0b3IgPiAudmlz
dWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lcjpub3QoLmJlemllci12YWx1ZSkgPiAu
aW5saW5lLXN3YXRjaC5iZXppZXIsCisudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci50
aW1pbmctZWRpdG9yID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXI6bm90
KC5zcHJpbmctdmFsdWUpID4gLmlubGluZS1zd2F0Y2guc3ByaW5nIHsKICAgICBkaXNwbGF5OiBu
b25lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9WaXN1YWxTdHlsZVRpbWluZ0VkaXRvci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVGltaW5nRWRpdG9yLmpzCmluZGV4IGJk
MGYyMzgwZjZmYzBkYTZkM2Q4NGE3MTNjNzhlNGY5ZjYxOTRiODQuLmY5ZDBlY2JmMTIzOWMwOTgw
YWRmYTI4MzFiZmY5YzE5MzVkYWM2ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVGltaW5nRWRpdG9yLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVGltaW5n
RWRpdG9yLmpzCkBAIC0zMSw4MSArMzEsMTMxIEBAIFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVRp
bWluZ0VkaXRvciA9IGNsYXNzIFZpc3VhbFN0eWxlVGltaW5nRWRpdG9yIGV4dGVuZHMgV2ViCiAK
ICAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoInRpbWluZy1lZGl0b3IiKTsKIAot
ICAgICAgICB0aGlzLl9jdXN0b21WYWx1ZU9wdGlvbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJvcHRpb24iKTsKLSAgICAgICAgdGhpcy5fY3VzdG9tVmFsdWVPcHRpb25FbGVtZW50
LnZhbHVlID0gImN1c3RvbSI7Ci0gICAgICAgIHRoaXMuX2N1c3RvbVZhbHVlT3B0aW9uRWxlbWVu
dC50ZXh0ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDdXN0b20iKTsKLSAgICAgICAgdGhpcy5f
a2V5d29yZFNlbGVjdEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fY3VzdG9tVmFsdWVPcHRpb25F
bGVtZW50KTsKKyAgICAgICAgdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQuY3JlYXRlQ2hpbGQo
ImhyIik7CisKKyAgICAgICAgdGhpcy5fY3VzdG9tQmV6aWVyT3B0aW9uRWxlbWVudCA9IHRoaXMu
X2tleXdvcmRTZWxlY3RFbGVtZW50LmNyZWF0ZUNoaWxkKCJvcHRpb24iKTsKKyAgICAgICAgdGhp
cy5fY3VzdG9tQmV6aWVyT3B0aW9uRWxlbWVudC52YWx1ZSA9ICJiZXppZXIiOworICAgICAgICB0
aGlzLl9jdXN0b21CZXppZXJPcHRpb25FbGVtZW50LnRleHQgPSBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIkJlemllciIpOworCisgICAgICAgIHRoaXMuX2N1c3RvbVNwcmluZ09wdGlvbkVsZW1lbnQg
PSB0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudC5jcmVhdGVDaGlsZCgib3B0aW9uIik7CisgICAg
ICAgIHRoaXMuX2N1c3RvbVNwcmluZ09wdGlvbkVsZW1lbnQudmFsdWUgPSAic3ByaW5nIjsKKyAg
ICAgICAgdGhpcy5fY3VzdG9tU3ByaW5nT3B0aW9uRWxlbWVudC50ZXh0ID0gV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJTcHJpbmciKTsKIAogICAgICAgICB0aGlzLl9iZXppZXJTd2F0Y2ggPSBuZXcg
V2ViSW5zcGVjdG9yLklubGluZVN3YXRjaChXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUu
QmV6aWVyKTsKICAgICAgICAgdGhpcy5fYmV6aWVyU3dhdGNoLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLklubGluZVN3YXRjaC5FdmVudC5WYWx1ZUNoYW5nZWQsIHRoaXMuX2JlemllclN3
YXRjaFZhbHVlQ2hhbmdlZCwgdGhpcyk7CiAgICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuYXBw
ZW5kQ2hpbGQodGhpcy5fYmV6aWVyU3dhdGNoLmVsZW1lbnQpOwotICAgIH0KLQotICAgIC8vIFB1
YmxpYwotCi0gICAgZ2V0IGJlemllclZhbHVlKCkKLSAgICB7Ci0gICAgICAgIGxldCBiZXppZXIg
PSB0aGlzLl9iZXppZXJTd2F0Y2gudmFsdWU7Ci0gICAgICAgIGlmICghYmV6aWVyKQotICAgICAg
ICAgICAgcmV0dXJuIG51bGw7CiAKLSAgICAgICAgcmV0dXJuIGJlemllci50b1N0cmluZygpOwot
ICAgIH0KLQotICAgIHNldCBiZXppZXJWYWx1ZSh0ZXh0KQotICAgIHsKLSAgICAgICAgbGV0IGJl
emllciA9IFdlYkluc3BlY3Rvci5DdWJpY0Jlemllci5mcm9tU3RyaW5nKHRleHQpOwotICAgICAg
ICB0aGlzLl9iZXppZXJTd2F0Y2gudmFsdWUgPSBiZXppZXI7CisgICAgICAgIHRoaXMuX3Nwcmlu
Z1N3YXRjaCA9IG5ldyBXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoKFdlYkluc3BlY3Rvci5Jbmxp
bmVTd2F0Y2guVHlwZS5TcHJpbmcpOworICAgICAgICB0aGlzLl9zcHJpbmdTd2F0Y2guYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLkV2ZW50LlZhbHVlQ2hhbmdlZCwg
dGhpcy5fc3ByaW5nU3dhdGNoVmFsdWVDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgdGhpcy5jb250
ZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9zcHJpbmdTd2F0Y2guZWxlbWVudCk7CiAgICAg
fQogCiAgICAgLy8gUHJvdGVjdGVkCiAKICAgICBnZXQgdmFsdWUoKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIHRoaXMuX2N1c3RvbVZhbHVlT3B0aW9uRWxlbWVudC5zZWxlY3RlZCA/IHRoaXMuYmV6
aWVyVmFsdWUgOiBzdXBlci52YWx1ZTsKKyAgICAgICAgaWYgKHRoaXMuX2N1c3RvbUJlemllck9w
dGlvbkVsZW1lbnQuc2VsZWN0ZWQpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYmV6aWVyVmFs
dWU7CisKKyAgICAgICAgaWYgKHRoaXMuX2N1c3RvbVNwcmluZ09wdGlvbkVsZW1lbnQuc2VsZWN0
ZWQpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fc3ByaW5nVmFsdWU7CisKKyAgICAgICAgcmV0
dXJuIHN1cGVyLnZhbHVlOwogICAgIH0KIAogICAgIHNldCB2YWx1ZSh2YWx1ZSkKICAgICB7Ci0g
ICAgICAgIHRoaXMuYmV6aWVyVmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgdGhpcy5fYmV6aWVyVmFs
dWUgPSB2YWx1ZTsKKyAgICAgICAgdGhpcy5fc3ByaW5nVmFsdWUgPSB2YWx1ZTsKICAgICAgICAg
aWYgKHRoaXMudmFsdWVJc1N1cHBvcnRlZEtleXdvcmQodmFsdWUpKSB7CiAgICAgICAgICAgICBz
dXBlci52YWx1ZSA9IHZhbHVlOwotICAgICAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5jbGFz
c0xpc3QucmVtb3ZlKCJiZXppZXItdmFsdWUiKTsKKyAgICAgICAgICAgIHRoaXMuY29udGVudEVs
ZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgiYmV6aWVyLXZhbHVlIiwgInNwcmluZy12YWx1ZSIpOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgbGV0IGJlemllciA9IHRo
aXMuYmV6aWVyVmFsdWU7Ci0gICAgICAgIHRoaXMuX2N1c3RvbVZhbHVlT3B0aW9uRWxlbWVudC5z
ZWxlY3RlZCA9ICEhYmV6aWVyOworICAgICAgICBsZXQgYmV6aWVyID0gdGhpcy5fYmV6aWVyVmFs
dWU7CisgICAgICAgIHRoaXMuX2N1c3RvbUJlemllck9wdGlvbkVsZW1lbnQuc2VsZWN0ZWQgPSAh
IWJlemllcjsKICAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJi
ZXppZXItdmFsdWUiLCAhIWJlemllcik7Ci0gICAgICAgIHRoaXMuc3BlY2lhbFByb3BlcnR5UGxh
Y2Vob2xkZXJFbGVtZW50LmhpZGRlbiA9ICEhYmV6aWVyOwotICAgICAgICBpZiAoIWJlemllcikK
KworICAgICAgICBsZXQgc3ByaW5nID0gdGhpcy5fc3ByaW5nVmFsdWU7CisgICAgICAgIHRoaXMu
X2N1c3RvbVNwcmluZ09wdGlvbkVsZW1lbnQuc2VsZWN0ZWQgPSAhIXNwcmluZzsKKyAgICAgICAg
dGhpcy5jb250ZW50RWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJzcHJpbmctdmFsdWUiLCAhIXNw
cmluZyk7CisKKyAgICAgICAgdGhpcy5zcGVjaWFsUHJvcGVydHlQbGFjZWhvbGRlckVsZW1lbnQu
aGlkZGVuID0gISFiZXppZXIgfHwgISFzcHJpbmc7CisgICAgICAgIGlmICghYmV6aWVyICYmICFz
cHJpbmcpCiAgICAgICAgICAgICBzdXBlci52YWx1ZSA9IHZhbHVlOwogICAgIH0KIAogICAgIGdl
dCBzeW50aGVzaXplZFZhbHVlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9jdXN0b21W
YWx1ZU9wdGlvbkVsZW1lbnQuc2VsZWN0ZWQgPyB0aGlzLmJlemllclZhbHVlIDogc3VwZXIuc3lu
dGhlc2l6ZWRWYWx1ZTsKKyAgICAgICAgaWYgKHRoaXMuX2N1c3RvbUJlemllck9wdGlvbkVsZW1l
bnQuc2VsZWN0ZWQpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYmV6aWVyVmFsdWU7CisKKyAg
ICAgICAgaWYgKHRoaXMuX2N1c3RvbVNwcmluZ09wdGlvbkVsZW1lbnQuc2VsZWN0ZWQpCisgICAg
ICAgICAgICByZXR1cm4gdGhpcy5fc3ByaW5nVmFsdWU7CisKKyAgICAgICAgcmV0dXJuIHN1cGVy
LnN5bnRoZXNpemVkVmFsdWU7CiAgICAgfQogCiAgICAgcGFyc2VWYWx1ZSh0ZXh0KQogICAgIHsK
LSAgICAgICAgcmV0dXJuIC8oY3ViaWMtYmV6aWVyXCguK1wpKS8uZXhlYyh0ZXh0KTsKKyAgICAg
ICAgcmV0dXJuIC8oKD86Y3ViaWMtYmV6aWVyfHNwcmluZylcKC4rXCkpLy5leGVjKHRleHQpOwog
ICAgIH0KIAogICAgIC8vIFByaXZhdGUKIAorICAgIGdldCBfYmV6aWVyVmFsdWUoKQorICAgIHsK
KyAgICAgICAgbGV0IGJlemllciA9IHRoaXMuX2JlemllclN3YXRjaC52YWx1ZTsKKyAgICAgICAg
aWYgKCFiZXppZXIpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAgICByZXR1cm4g
YmV6aWVyLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgc2V0IF9iZXppZXJWYWx1ZSh0ZXh0KQor
ICAgIHsKKyAgICAgICAgdGhpcy5fYmV6aWVyU3dhdGNoLnZhbHVlID0gV2ViSW5zcGVjdG9yLkN1
YmljQmV6aWVyLmZyb21TdHJpbmcodGV4dCk7CisgICAgfQorCisgICAgZ2V0IF9zcHJpbmdWYWx1
ZSgpCisgICAgeworICAgICAgICBsZXQgc3ByaW5nID0gdGhpcy5fc3ByaW5nU3dhdGNoLnZhbHVl
OworICAgICAgICBpZiAoIXNwcmluZykKKyAgICAgICAgICAgIHJldHVybiBudWxsOworCisgICAg
ICAgIHJldHVybiBzcHJpbmcudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBzZXQgX3NwcmluZ1Zh
bHVlKHRleHQpCisgICAgeworICAgICAgICB0aGlzLl9zcHJpbmdTd2F0Y2gudmFsdWUgPSBXZWJJ
bnNwZWN0b3IuU3ByaW5nLmZyb21TdHJpbmcodGV4dCk7CisgICAgfQorCiAgICAgX2hhbmRsZUtl
eXdvcmRDaGFuZ2VkKCkKICAgICB7CiAgICAgICAgIHN1cGVyLl9oYW5kbGVLZXl3b3JkQ2hhbmdl
ZCgpOwotICAgICAgICBsZXQgY3VzdG9tT3B0aW9uU2VsZWN0ZWQgPSB0aGlzLl9jdXN0b21WYWx1
ZU9wdGlvbkVsZW1lbnQuc2VsZWN0ZWQ7Ci0gICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuY2xh
c3NMaXN0LnRvZ2dsZSgiYmV6aWVyLXZhbHVlIiwgISFjdXN0b21PcHRpb25TZWxlY3RlZCk7Ci0g
ICAgICAgIHRoaXMuc3BlY2lhbFByb3BlcnR5UGxhY2Vob2xkZXJFbGVtZW50LmhpZGRlbiA9ICEh
Y3VzdG9tT3B0aW9uU2VsZWN0ZWQ7Ci0gICAgICAgIGlmIChjdXN0b21PcHRpb25TZWxlY3RlZCkK
LSAgICAgICAgICAgIHRoaXMuYmV6aWVyVmFsdWUgPSAibGluZWFyIjsKKworICAgICAgICBsZXQg
Y3VzdG9tQmV6aWVyT3B0aW9uU2VsZWN0ZWQgPSB0aGlzLl9jdXN0b21CZXppZXJPcHRpb25FbGVt
ZW50LnNlbGVjdGVkOworICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmNsYXNzTGlzdC50b2dn
bGUoImJlemllci12YWx1ZSIsICEhY3VzdG9tQmV6aWVyT3B0aW9uU2VsZWN0ZWQpOworICAgICAg
ICBpZiAoY3VzdG9tQmV6aWVyT3B0aW9uU2VsZWN0ZWQpCisgICAgICAgICAgICB0aGlzLl9iZXpp
ZXJWYWx1ZSA9ICJsaW5lYXIiOworCisgICAgICAgIGxldCBjdXN0b21TcHJpbmdPcHRpb25TZWxl
Y3RlZCA9IHRoaXMuX2N1c3RvbVNwcmluZ09wdGlvbkVsZW1lbnQuc2VsZWN0ZWQ7CisgICAgICAg
IHRoaXMuY29udGVudEVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgic3ByaW5nLXZhbHVlIiwgISFj
dXN0b21TcHJpbmdPcHRpb25TZWxlY3RlZCk7CisgICAgICAgIGlmIChjdXN0b21TcHJpbmdPcHRp
b25TZWxlY3RlZCkKKyAgICAgICAgICAgIHRoaXMuX3NwcmluZ1ZhbHVlID0gIjEgMTAwIDEwIDAi
OworCisgICAgICAgIHRoaXMuc3BlY2lhbFByb3BlcnR5UGxhY2Vob2xkZXJFbGVtZW50LmhpZGRl
biA9ICEhY3VzdG9tQmV6aWVyT3B0aW9uU2VsZWN0ZWQgfHwgISFjdXN0b21TcHJpbmdPcHRpb25T
ZWxlY3RlZDsKICAgICB9CiAKICAgICBfYmV6aWVyU3dhdGNoVmFsdWVDaGFuZ2VkKGV2ZW50KQog
ICAgIHsKICAgICAgICAgdGhpcy5fdmFsdWVEaWRDaGFuZ2UoKTsKICAgICB9CisKKyAgICBfc3By
aW5nU3dhdGNoVmFsdWVDaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fdmFsdWVE
aWRDaGFuZ2UoKTsKKyAgICB9CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286323</attachid>
            <date>2016-08-17 13:47:52 -0700</date>
            <delta_ts>2016-08-22 23:55:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159315-20160817134603.patch</filename>
            <type>text/plain</type>
            <size>48645</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDg1NmU5Yjk0MWE1MDc4OGNiM2I4ZTExMTFiM2Yx
Mzk0NzVkYjJjODYuLjg3MThjNjg1ZjQ3ZmU0YjdmYmViM2MyOTQ0MDEwOWIwZDNjMDdlNzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyNiBAQAorMjAxNi0wOC0xNyAgRGV2
aW4gUm91c3NvICA8ZGNyb3Vzc28rd2Via2l0QGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBBZGQgdmlzdWFsIGVkaXRvciBmb3Igc3ByaW5nKCkgdGltaW5nLWZ1bmN0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTkzMTUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIExvY2FsaXph
dGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL01haW4uaHRtbDoKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9VdGlsaXRpZXMu
anM6CisgICAgICAgIChOdW1iZXIucHJvdG90eXBlLm1heERlY2ltYWxzKToKKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ29kZU1pcnJvclNwcmluZ0VkaXRpbmdDb250cm9s
bGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvZGVNaXJyb3JTcHJpbmdFZGl0aW5nQ29u
dHJvbGxlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29kZU1pcnJvclNwcmluZ0VkaXRpbmdD
b250cm9sbGVyLnByb3RvdHlwZS5nZXQgaW5pdGlhbFZhbHVlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Db2RlTWlycm9yU3ByaW5nRWRpdGluZ0NvbnRyb2xsZXIucHJvdG90eXBlLmdldCBjc3ND
bGFzc05hbWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvZGVNaXJyb3JTcHJpbmdFZGl0aW5n
Q29udHJvbGxlci5wcm90b3R5cGUucG9wb3ZlcldpbGxQcmVzZW50KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Db2RlTWlycm9yU3ByaW5nRWRpdGluZ0NvbnRyb2xsZXIucHJvdG90eXBlLnBvcG92
ZXJEaWRQcmVzZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2RlTWlycm9yU3ByaW5nRWRp
dGluZ0NvbnRyb2xsZXIucHJvdG90eXBlLnBvcG92ZXJEaWREaXNtaXNzKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Db2RlTWlycm9yU3ByaW5nRWRpdGluZ0NvbnRyb2xsZXIucHJvdG90eXBlLl9z
cHJpbmdFZGl0b3JTcHJpbmdDaGFuZ2VkKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9k
ZWxzL0dlb21ldHJ5LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZyk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU3ByaW5nLmZyb21WYWx1ZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNwcmluZy5mcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TcHJpbmcucHJvdG90
eXBlLmNvcHkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZy5wcm90b3R5cGUudG9TdHJp
bmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZy5wcm90b3R5cGUuc29sdmUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZy5wcm90b3R5cGUuY2FsY3VsYXRlRHVyYXRpb24pOgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvVGV4dE1hcmtlci5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5UZXh0TWFya2VyLlR5cGUpOgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvci5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvci5wcm90b3R5cGUuX2NyZWF0ZUlu
bGluZVN3YXRjaGVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9u
VGV4dEVkaXRvci5wcm90b3R5cGUuX2NyZWF0ZUlubGluZVN3YXRjaGVzLnVwZGF0ZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IucHJvdG90eXBl
Ll9pbmxpbmVTd2F0Y2hWYWx1ZUNoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0
eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLnByb3RvdHlwZS5faW5saW5lU3dhdGNoVmFsdWVDaGFu
Z2VkLnVwZGF0ZSk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JU
ZXh0TWFya2Vycy5qczoKKyAgICAgICAgKGNyZWF0ZUNvZGVNaXJyb3JTcHJpbmdUZXh0TWFya2Vy
cyk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0lubGluZVN3YXRjaC5jc3M6Cisg
ICAgICAgICguaW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXppZXIsIC5zcHJpbmcpKToKKyAgICAg
ICAgKC5pbmxpbmUtc3dhdGNoOm1hdGNoZXMoLmJlemllciwgLnNwcmluZyk6aG92ZXIpOgorICAg
ICAgICAoLmlubGluZS1zd2F0Y2g6bWF0Y2hlcyguYmV6aWVyLCAuc3ByaW5nKTphY3RpdmUpOgor
ICAgICAgICAoLmlubGluZS1zd2F0Y2g6bWF0Y2hlcyguYmV6aWVyLCAuc3ByaW5nKSA+IHNwYW4p
OgorICAgICAgICAoLmlubGluZS1zd2F0Y2guYmV6aWVyKTogRGVsZXRlZC4KKyAgICAgICAgKC5p
bmxpbmUtc3dhdGNoLmJlemllcjpob3Zlcik6IERlbGV0ZWQuCisgICAgICAgICguaW5saW5lLXN3
YXRjaC5iZXppZXI6YWN0aXZlKTogRGVsZXRlZC4KKyAgICAgICAgKC5pbmxpbmUtc3dhdGNoLmJl
emllciA+IHNwYW4pOiBEZWxldGVkLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9J
bmxpbmVTd2F0Y2guanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2gucHJvdG90eXBlLl9mYWxsYmFja1ZhbHVl
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2gucHJvdG90eXBlLl9zd2F0Y2hF
bGVtZW50Q2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLnByb3Rv
dHlwZS5fdmFsdWVFZGl0b3JWYWx1ZURpZENoYW5nZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
SW5saW5lU3dhdGNoLlR5cGUpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Tb3Vy
Y2VDb2RlVGV4dEVkaXRvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGV4
dEVkaXRvci5wcm90b3R5cGUuX3VwZGF0ZUVkaXRhYmxlTWFya2Vycyk6CisKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1ZpZXdzL1NwcmluZ0VkaXRvci5jc3M6CisgICAgICAgICguc3ByaW5nLWVk
aXRvcik6CisgICAgICAgICguc3ByaW5nLWVkaXRvciA+IC5zcHJpbmctcHJldmlldyk6CisgICAg
ICAgICguc3ByaW5nLWVkaXRvciA+IC5zcHJpbmctcHJldmlldyA+IGRpdik6CisgICAgICAgICgu
c3ByaW5nLWVkaXRvciA+IC5zcHJpbmctdGltaW5nKToKKyAgICAgICAgKC5zcHJpbmctZWRpdG9y
ID4gLnNwcmluZy10aW1pbmcgPiBkaXYpOgorICAgICAgICAoLnNwcmluZy1lZGl0b3IgPiAuc3By
aW5nLXRpbWluZzptYXRjaGVzKDo6YmVmb3JlLCA6OmFmdGVyKSk6CisgICAgICAgICguc3ByaW5n
LWVkaXRvciA+IC5zcHJpbmctdGltaW5nOjpiZWZvcmUpOgorICAgICAgICAoLnNwcmluZy1lZGl0
b3IgPiAuc3ByaW5nLXRpbWluZzo6YWZ0ZXIpOgorICAgICAgICAoLnNwcmluZy1lZGl0b3IgPiA6
bWF0Y2hlcyguc3ByaW5nLXByZXZpZXcsIC5zcHJpbmctdGltaW5nKSA+IGRpdik6CisgICAgICAg
ICguc3ByaW5nLWVkaXRvciA+IC5hbmltYXRlOm1hdGNoZXMoLnNwcmluZy1wcmV2aWV3LCAuc3By
aW5nLXRpbWluZykgPiBkaXYpOgorICAgICAgICAoLnNwcmluZy1lZGl0b3IgPiAubnVtYmVyLWlu
cHV0LWNvbnRhaW5lciA+IC5udW1iZXItaW5wdXQtcm93KToKKyAgICAgICAgKC5zcHJpbmctZWRp
dG9yID4gLm51bWJlci1pbnB1dC1jb250YWluZXIgPiAubnVtYmVyLWlucHV0LXJvdyA+IC5udW1i
ZXItaW5wdXQtcm93LXRpdGxlKToKKyAgICAgICAgKC5zcHJpbmctZWRpdG9yID4gLm51bWJlci1p
bnB1dC1jb250YWluZXIgPiAubnVtYmVyLWlucHV0LXJvdyA+IGlucHV0KToKKyAgICAgICAgKC5z
cHJpbmctZWRpdG9yID4gLm51bWJlci1pbnB1dC1jb250YWluZXIgPiAubnVtYmVyLWlucHV0LXJv
dyA+IGlucHV0W3R5cGU9InJhbmdlIl0pOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9TcHJpbmdFZGl0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3ByaW5nRWRpdG9yKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5TcHJpbmdFZGl0b3IucHJvdG90eXBlLmdldCBlbGVtZW50
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TcHJpbmdFZGl0b3IucHJvdG90eXBlLnNldCBzcHJp
bmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZ0VkaXRvci5wcm90b3R5cGUuZ2V0IHNw
cmluZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3ByaW5nRWRpdG9yLnByb3RvdHlwZS5faGFu
ZGxlTnVtYmVySW5wdXRJbnB1dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3ByaW5nRWRpdG9y
LnByb3RvdHlwZS5faGFuZGxlTnVtYmVySW5wdXRLZXlkb3duKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5TcHJpbmdFZGl0b3IucHJvdG90eXBlLl9oYW5kbGVOdW1iZXJTbGlkZXJJbnB1dCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU3ByaW5nRWRpdG9yLnByb3RvdHlwZS5faGFuZGxlTnVtYmVy
U2xpZGVyTW91c2Vkb3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TcHJpbmdFZGl0b3IucHJv
dG90eXBlLl9oYW5kbGVOdW1iZXJTbGlkZXJNb3VzZXVwKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TcHJpbmdFZGl0b3IucHJvdG90eXBlLl9jaGFuZ2VTcHJpbmdGb3JJbnB1dCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU3ByaW5nRWRpdG9yLnByb3RvdHlwZS5fcmVzZXRQcmV2aWV3QW5pbWF0
aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TcHJpbmdFZGl0b3IucHJvdG90eXBlLl91cGRh
dGVQcmV2aWV3QW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TcHJpbmdFZGl0b3Iu
RXZlbnQpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9UZXh0RWRpdG9yLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlLmNyZWF0ZVNwcmluZ01h
cmtlcnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlLmVkaXRp
bmdDb250cm9sbGVyRm9yTWFya2VyKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3Mv
VmlzdWFsU3R5bGVDb21tYVNlcGFyYXRlZEtleXdvcmRFZGl0b3IuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVmlzdWFsU3R5bGVDb21tYVNlcGFyYXRlZEtleXdvcmRFZGl0b3IucHJvdG90eXBl
LnNldCB2YWx1ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVDb21tYVNlcGFy
YXRlZEtleXdvcmRFZGl0b3IucHJvdG90eXBlLl9nZW5lcmF0ZVRleHRGcm9tTG9uZ2hhbmRQcm9w
ZXJ0aWVzKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVUaW1p
bmdFZGl0b3IuY3NzOgorICAgICAgICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIu
dGltaW5nLWVkaXRvciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4g
LmlubGluZS1zd2F0Y2g6bWF0Y2hlcyguYmV6aWVyLCAuc3ByaW5nKSk6CisgICAgICAgICgudmlz
dWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci50aW1pbmctZWRpdG9yID4gLnZpc3VhbC1zdHls
ZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXI6bm90KC5zcHJpbmctdmFsdWUpID4gLmlubGluZS1z
d2F0Y2guc3ByaW5nKToKKyAgICAgICAgKC52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVy
LnRpbWluZy1lZGl0b3IgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+
IC5pbmxpbmUtc3dhdGNoLmJlemllcik6IERlbGV0ZWQuCisgICAgICAgICgudmlzdWFsLXN0eWxl
LXByb3BlcnR5LWNvbnRhaW5lci50aW1pbmctZWRpdG9yID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0
eS12YWx1ZS1jb250YWluZXI6bm90KC5iZXppZXItdmFsdWUpID4gLmlubGluZS1zd2F0Y2guYmV6
aWVyKTogRGVsZXRlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5
bGVUaW1pbmdFZGl0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVUaW1p
bmdFZGl0b3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlVGltaW5nRWRpdG9y
LnByb3RvdHlwZS5nZXQgdmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxl
VGltaW5nRWRpdG9yLnByb3RvdHlwZS5zZXQgdmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlZpc3VhbFN0eWxlVGltaW5nRWRpdG9yLnByb3RvdHlwZS5nZXQgc3ludGhlc2l6ZWRWYWx1ZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVUaW1pbmdFZGl0b3IucHJvdG90eXBl
LnBhcnNlVmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlVGltaW5nRWRp
dG9yLnByb3RvdHlwZS5nZXQgX2JlemllclZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5W
aXN1YWxTdHlsZVRpbWluZ0VkaXRvci5wcm90b3R5cGUuc2V0IF9iZXppZXJWYWx1ZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVUaW1pbmdFZGl0b3IucHJvdG90eXBlLmdldCBf
c3ByaW5nVmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlVGltaW5nRWRp
dG9yLnByb3RvdHlwZS5zZXQgX3NwcmluZ1ZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5W
aXN1YWxTdHlsZVRpbWluZ0VkaXRvci5wcm90b3R5cGUuX2hhbmRsZUtleXdvcmRDaGFuZ2VkKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVRpbWluZ0VkaXRvci5wcm90b3R5cGUu
X3NwcmluZ1N3YXRjaFZhbHVlQ2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFs
U3R5bGVUaW1pbmdFZGl0b3IucHJvdG90eXBlLmdldCBiZXppZXJWYWx1ZSk6IFJlbmFtZWQuCisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVUaW1pbmdFZGl0b3IucHJvdG90eXBlLnNl
dCBiZXppZXJWYWx1ZSk6IFJlbmFtZWQuCisKIDIwMTYtMDgtMTYgIE5pa2l0YSBWYXNpbHlldiAg
PG52YXNpbHlldkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRE9NIG5vZGVz
IHNoaWZ0IHdoZW4gaG92ZXJpbmcgb3ZlciB0aGVtIGluIENvbnNvbGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmlu
Z3MuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2Nh
bGl6ZWRTdHJpbmdzLmpzCmluZGV4IDZmZjNjODQ4MGE0ZmQzNTMzZmNkZjZkNWJhOGRhNmY2N2I4
YzRkMTAuLmVjMzY4OTZlYzg5YTMxYzI5OTQ5MjIzNWExOGJhMjMyN2YxMzUwMzEgMTAwNjQ0CkdJ
VCBiaW5hcnkgcGF0Y2gKZGVsdGEgMzE3CnpjbWV4em1pNUxaKSh2O0hXbTZmZDclfn1COEh5TmA3
LUFVfDc7SiU5aU5PZ2QwdS1PRGtmZ3UpdylRbTkkXlJZcgp6eFFpSklmWFhyJUApKik1VXZSS1I9
NUpQVWQ/XzxJSSZQSjBFPklDejM1dDB4NDJjWHRuZHVYPjg0V2l4I2BERHMKej1LJD5xMUtOX3Fr
azYwfClLUzd2SVhRMmlCcmw1aTxPQDVEQyYleU9uWEpFJFpUZjArTXl8PSNgfWo4Tj9eYEQlCnpU
RmcrNFZ1TFR4aFRfUSU9WWo2TXVwKDl4P290IyohMytoSDFeeVVNZjNMXkx2JU9jMyhUWV93bE9Z
V1ZeTUVjdgpXSCEmRktDTTRPKDN6JjRiQTJ3eipHekl7OXUyVGE1CgpkZWx0YSA4OAp6Y21jYXtp
U140XykodjtISCo0IW01IzV+WUcpRzMhblcyPVNuNHlGcnBDT2spaTZORmpmeCNBdGxeRWRTbE1t
R0UKbFBVZWhYd1Y1QDZEfUhuOXsmUFpgWElAJHN5Uz4rZChTPiFwd2klPFlGI3NMRjlUeHhxCgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9VdGls
aXRpZXMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1V0aWxp
dGllcy5qcwppbmRleCAzNjc4YjJmYWMzN2FjOTU3ZGZjZDBhZGZiNzJhNzQ1ODhlNGEwMzc0Li5m
MDgyYTZiYWIxM2U0MzQ4NTAwNTAwYzJkODBhNDg2NmNlZjMwMGQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1V0aWxpdGllcy5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1V0aWxpdGllcy5qcwpAQCAt
MTAzNiw2ICsxMDM2LDE1IEBAIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShOdW1iZXIsICJieXRlc1Rv
U3RyaW5nIiwKICAgICB9CiB9KTsKIAorT2JqZWN0LmRlZmluZVByb3BlcnR5KE51bWJlci5wcm90
b3R5cGUsICJtYXhEZWNpbWFscyIsCit7CisgICAgdmFsdWU6IGZ1bmN0aW9uKGRlY2ltYWxzKQor
ICAgIHsKKyAgICAgICAgbGV0IHBvd2VyID0gMTAgKiogZGVjaW1hbHM7CisgICAgICAgIHJldHVy
biBNYXRoLnJvdW5kKHRoaXMgKiBwb3dlcikgLyBwb3dlcjsKKyAgICB9Cit9KTsKKwogT2JqZWN0
LmRlZmluZVByb3BlcnR5KFVpbnQzMkFycmF5LCAiaXNMaXR0bGVFbmRpYW4iLAogewogICAgIHZh
bHVlOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9Db2RlTWlycm9yU3ByaW5nRWRpdGluZ0NvbnRyb2xsZXIuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9Db2RlTWly
cm9yU3ByaW5nRWRpdGluZ0NvbnRyb2xsZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDc1Yjg5ZTcwZWQ5NTVj
MDkwMDk2YTBmNTlhMzU1OTZmMjg0NjY4NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NvZGVNaXJyb3JTcHJpbmdFZGl0
aW5nQ29udHJvbGxlci5qcwpAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2IERldmluIFJvdXNzbyA8ZGNyb3Vzc28rd2Via2l0QGdtYWlsLmNvbT4uIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK1dlYkluc3BlY3Rvci5Db2RlTWlycm9yU3ByaW5nRWRpdGlu
Z0NvbnRyb2xsZXIgPSBjbGFzcyBDb2RlTWlycm9yU3ByaW5nRWRpdGluZ0NvbnRyb2xsZXIgZXh0
ZW5kcyBXZWJJbnNwZWN0b3IuQ29kZU1pcnJvckVkaXRpbmdDb250cm9sbGVyCit7CisgICAgY29u
c3RydWN0b3IoY29kZU1pcnJvciwgbWFya2VyKQorICAgIHsKKyAgICAgICAgc3VwZXIoY29kZU1p
cnJvciwgbWFya2VyKTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGdldCBpbml0aWFs
VmFsdWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5TcHJpbmcuZnJvbVN0
cmluZyh0aGlzLnRleHQpOworICAgIH0KKworICAgIGdldCBjc3NDbGFzc05hbWUoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuICJzcHJpbmciOworICAgIH0KKworICAgIHBvcG92ZXJXaWxsUHJlc2Vu
dChwb3BvdmVyKQorICAgIHsKKyAgICAgICAgdGhpcy5fc3ByaW5nRWRpdG9yID0gbmV3IFdlYklu
c3BlY3Rvci5TcHJpbmdFZGl0b3I7CisgICAgICAgIHRoaXMuX3NwcmluZ0VkaXRvci5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5TcHJpbmdFZGl0b3IuRXZlbnQuU3ByaW5nQ2hhbmdlZCwg
dGhpcy5fc3ByaW5nRWRpdG9yU3ByaW5nQ2hhbmdlZCwgdGhpcyk7CisgICAgICAgIHBvcG92ZXIu
Y29udGVudCA9IHRoaXMuX3NwcmluZ0VkaXRvci5lbGVtZW50OworICAgIH0KKworICAgIHBvcG92
ZXJEaWRQcmVzZW50KHBvcG92ZXIpCisgICAgeworICAgICAgICB0aGlzLl9zcHJpbmdFZGl0b3Iu
c3ByaW5nID0gdGhpcy52YWx1ZTsKKyAgICB9CisKKyAgICBwb3BvdmVyRGlkRGlzbWlzcyhwb3Bv
dmVyKQorICAgIHsKKyAgICAgICAgdGhpcy5fc3ByaW5nRWRpdG9yLnJlbW92ZUxpc3RlbmVycygp
OworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9zcHJpbmdFZGl0b3JTcHJpbmdDaGFu
Z2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy52YWx1ZSA9IGV2ZW50LmRhdGEuc3ByaW5n
OworICAgIH0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9NYWluLmh0bWwgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWlu
Lmh0bWwKaW5kZXggYzMxMDEwMDhiMDYxMGQ4ODE3ZDI2YzAzNGNiNWIxZjc4ZWI2ZjJlMS4uZWZk
NjhmNjJkNWE5YmNlOGM3ZGY3MTU5MzE3YTE5M2Y0OWVjNWFkNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbApAQCAtMTUxLDYgKzE1MSw3IEBACiAg
ICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9TaWRlYmFyUGFuZWwuY3NzIj4K
ICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL1NsaWRlci5jc3MiPgogICAg
IDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvU291cmNlQ29kZVRleHRFZGl0b3Iu
Y3NzIj4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL1NwcmluZ0VkaXRv
ci5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvU3RhY2tUcmFj
ZVZpZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL1N0b3Jh
Z2VTaWRlYmFyUGFuZWwuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZp
ZXdzL1N0eWxlUnVsZUljb25zLmNzcyI+CkBAIC02MjEsNiArNjIyLDcgQEAKICAgICA8c2NyaXB0
IHNyYz0iVmlld3MvU291cmNlQ29kZVRpbWVsaW5lVGltZWxpbmVEYXRhR3JpZE5vZGUuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9Tb3VyY2VDb2RlVGltZWxpbmVUcmVlRWxl
bWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1NvdXJjZU1hcFJlc291
cmNlVHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9TcHJp
bmdFZGl0b3IuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9TdGFja1RyYWNl
Vmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1N0YWNrZWRMaW5lQ2hh
cnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9TdG9yYWdlU2lkZWJhclBh
bmVsLmpzIj48L3NjcmlwdD4KQEAgLTY4MCw2ICs2ODIsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJD
b250cm9sbGVycy9Db2RlTWlycm9yQmV6aWVyRWRpdGluZ0NvbnRyb2xsZXIuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9Db2RlTWlycm9yRHJhZ1RvQWRqdXN0TnVt
YmVyQ29udHJvbGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJz
L0NvZGVNaXJyb3JHcmFkaWVudEVkaXRpbmdDb250cm9sbGVyLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQ29kZU1pcnJvclNwcmluZ0VkaXRpbmdDb250cm9sbGVy
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQ29kZU1pcnJvclRv
a2VuVHJhY2tpbmdDb250cm9sbGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29u
dHJvbGxlcnMvQ29kZU1pcnJvclRleHRLaWxsQ29udHJvbGxlci5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0RPTVRyZWVNYW5hZ2VyLmpzIj48L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9HZW9t
ZXRyeS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9HZW9t
ZXRyeS5qcwppbmRleCA1OTEwYzY2ZDMyY2I5OWE0NDY1ZjY5ZmVmMzk1ZDRjNTViYjM2M2QwLi4x
Zjg1OTUzMWMxMjJiOTMyZTdjYzc4MDlkOWQ2YWQyZGUxMmU4MTIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvR2VvbWV0cnkuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0dlb21ldHJ5LmpzCkBA
IC00NzYsMyArNDc2LDk2IEBAIFdlYkluc3BlY3Rvci5DdWJpY0Jlemllci5rZXl3b3JkVmFsdWVz
ID0gewogICAgICJlYXNlLWluLW91dCI6ICBbMC40MiwgMCwgMC41OCwgMV0sCiAgICAgImxpbmVh
ciI6ICAgICAgIFswLCAwLCAxLCAxXQogfTsKKworV2ViSW5zcGVjdG9yLlNwcmluZyA9IGNsYXNz
IFNwcmluZworeworICAgIGNvbnN0cnVjdG9yKG1hc3MsIHN0aWZmbmVzcywgZGFtcGluZywgaW5p
dGlhbFZlbG9jaXR5KQorICAgIHsKKyAgICAgICAgdGhpcy5tYXNzID0gbWFzcyA+IDAgPyBtYXNz
IDogMTsKKyAgICAgICAgdGhpcy5zdGlmZm5lc3MgPSBzdGlmZm5lc3MgPiAwID8gc3RpZmZuZXNz
IDogMTsKKyAgICAgICAgdGhpcy5kYW1waW5nID0gTWF0aC5tYXgoMCwgZGFtcGluZyk7CisgICAg
ICAgIHRoaXMuaW5pdGlhbFZlbG9jaXR5ID0gaW5pdGlhbFZlbG9jaXR5OworICAgIH0KKworICAg
IC8vIFN0YXRpYworCisgICAgc3RhdGljIGZyb21WYWx1ZXModmFsdWVzKQorICAgIHsKKyAgICAg
ICAgaWYgKCF2YWx1ZXMgfHwgdmFsdWVzLmxlbmd0aCA8IDQpCisgICAgICAgICAgICByZXR1cm4g
bnVsbDsKKworICAgICAgICB2YWx1ZXMgPSB2YWx1ZXMubWFwKE51bWJlcik7CisgICAgICAgIGlm
ICh2YWx1ZXMuaW5jbHVkZXMoTmFOKSkKKyAgICAgICAgICAgIHJldHVybiBudWxsOworCisgICAg
ICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLlNwcmluZyh2YWx1ZXNbMF0sIHZhbHVlc1sxXSwg
dmFsdWVzWzJdLCB2YWx1ZXNbM10pOworICAgIH0KKworICAgIHN0YXRpYyBmcm9tU3RyaW5nKHRl
eHQpCisgICAgeworICAgICAgICBpZiAoIXRleHQgfHwgIXRleHQubGVuZ3RoKQorICAgICAgICAg
ICAgcmV0dXJuIG51bGw7CisKKyAgICAgICAgbGV0IHRyaW1tZWRUZXh0ID0gdGV4dC50b0xvd2Vy
Q2FzZSgpLnRyaW0oKTsKKyAgICAgICAgaWYgKCF0cmltbWVkVGV4dC5sZW5ndGgpCisgICAgICAg
ICAgICByZXR1cm4gbnVsbDsKKworICAgICAgICBsZXQgbWF0Y2hlcyA9IHRyaW1tZWRUZXh0Lm1h
dGNoKC9ec3ByaW5nXCgoW1xkLl0rKVxzKyhbXGQuXSspXHMrKFtcZC5dKylccysoWy1cZC5dKylc
KSQvKTsKKyAgICAgICAgaWYgKCFtYXRjaGVzKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisK
KyAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5TcHJpbmcuZnJvbVZhbHVlcyhtYXRjaGVzLnNs
aWNlKDEpKTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGNvcHkoKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuU3ByaW5nKHRoaXMubWFzcywgdGhpcy5zdGlm
Zm5lc3MsIHRoaXMuZGFtcGluZywgdGhpcy5pbml0aWFsVmVsb2NpdHkpOworICAgIH0KKworICAg
IHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiBgc3ByaW5nKCR7dGhpcy5tYXNzfSAk
e3RoaXMuc3RpZmZuZXNzfSAke3RoaXMuZGFtcGluZ30gJHt0aGlzLmluaXRpYWxWZWxvY2l0eX0p
YDsKKyAgICB9CisKKyAgICBzb2x2ZSh0KQorICAgIHsKKyAgICAgICAgbGV0IHcwID0gTWF0aC5z
cXJ0KHRoaXMuc3RpZmZuZXNzIC8gdGhpcy5tYXNzKTsKKyAgICAgICAgbGV0IHpldGEgPSB0aGlz
LmRhbXBpbmcgLyAoMiAqIE1hdGguc3FydCh0aGlzLnN0aWZmbmVzcyAqIHRoaXMubWFzcykpOwor
CisgICAgICAgIGxldCB3ZCA9IDA7CisgICAgICAgIGxldCBBID0gMTsKKyAgICAgICAgbGV0IEIg
PSAtdGhpcy5pbml0aWFsVmVsb2NpdHkgKyB3MDsKKyAgICAgICAgaWYgKHpldGEgPCAxKSB7Cisg
ICAgICAgICAgICAvLyBVbmRlci1kYW1wZWQuCisgICAgICAgICAgICB3ZCA9IHcwICogTWF0aC5z
cXJ0KDEgLSB6ZXRhICogemV0YSk7CisgICAgICAgICAgICBBID0gMTsKKyAgICAgICAgICAgIEIg
PSAoemV0YSAqIHcwICsgLXRoaXMuaW5pdGlhbFZlbG9jaXR5KSAvIHdkOworICAgICAgICB9CisK
KyAgICAgICAgaWYgKHpldGEgPCAxKSAvLyBVbmRlci1kYW1wZWQKKyAgICAgICAgICAgIHQgPSBN
YXRoLmV4cCgtdCAqIHpldGEgKiB3MCkgKiAoQSAqIE1hdGguY29zKHdkICogdCkgKyBCICogTWF0
aC5zaW4od2QgKiB0KSk7CisgICAgICAgIGVsc2UgLy8gQ3JpdGljYWxseSBkYW1wZWQgKGlnbm9y
aW5nIG92ZXItZGFtcGVkIGNhc2UpLgorICAgICAgICAgICAgdCA9IChBICsgQiAqIHQpICogTWF0
aC5leHAoLXQgKiB3MCk7CisKKyAgICAgICAgcmV0dXJuIDEgLSB0OyAvLyBNYXAgcmFuZ2UgZnJv
bSBbMS4uMF0gdG8gWzAuLjFdLgorICAgIH0KKworICAgIGNhbGN1bGF0ZUR1cmF0aW9uKGVwc2ls
b24pCisgICAgeworICAgICAgICBlcHNpbG9uID0gZXBzaWxvbiB8fCAwLjAwMDE7CisgICAgICAg
IGxldCB0ID0gMDsKKyAgICAgICAgbGV0IGN1cnJlbnQgPSAwOworICAgICAgICBsZXQgbWluaW11
bSA9IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTsKKyAgICAgICAgd2hpbGUgKGN1cnJlbnQgPj0g
ZXBzaWxvbiB8fCBtaW5pbXVtID49IGVwc2lsb24pIHsKKyAgICAgICAgICAgIGN1cnJlbnQgPSBN
YXRoLmFicygxIC0gdGhpcy5zb2x2ZSh0KSk7IC8vIFVuZG8gdGhlIHJhbmdlIG1hcHBpbmcKKyAg
ICAgICAgICAgIGlmIChtaW5pbXVtIDwgZXBzaWxvbiAmJiBjdXJyZW50ID49IGVwc2lsb24pCisg
ICAgICAgICAgICAgICAgbWluaW11bSA9IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTsgLy8gU3By
aW5nIHJldmVyc2VkIGRpcmVjdGlvbgorICAgICAgICAgICAgZWxzZSBpZiAoY3VycmVudCA8IG1p
bmltdW0pCisgICAgICAgICAgICAgICAgbWluaW11bSA9IGN1cnJlbnQ7CisgICAgICAgICAgICB0
ICs9IDAuMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdDsKKyAgICB9Cit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvVGV4dE1hcmtl
ci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9UZXh0TWFy
a2VyLmpzCmluZGV4IDMyMjBhMjQ4MTMxOGE1YjJmOTk2MTI1ZTNmMWVmMTJkOGNlN2IxNDMuLjlm
MjUyMmNhMWI1MzQ5ODA5OTZmM2E1ZDIxZTZkMDA2OTI4MjdkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9UZXh0TWFya2VyLmpzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9UZXh0TWFya2VyLmpz
CkBAIC04Myw1ICs4Myw2IEBAIFdlYkluc3BlY3Rvci5UZXh0TWFya2VyLlR5cGUgPSB7CiAgICAg
Q29sb3I6ICJ0ZXh0LW1hcmtlci10eXBlLWNvbG9yIiwKICAgICBHcmFkaWVudDogInRleHQtbWFy
a2VyLXR5cGUtZ3JhZGllbnQiLAogICAgIFBsYWluOiAidGV4dC1tYXJrZXItdHlwZS1wbGFpbiIs
Ci0gICAgQ3ViaWNCZXppZXI6ICJ0ZXh0LW1hcmtlci10eXBlLWN1YmljLWJlemllciIKKyAgICBD
dWJpY0JlemllcjogInRleHQtbWFya2VyLXR5cGUtY3ViaWMtYmV6aWVyIiwKKyAgICBTcHJpbmc6
ICJ0ZXh0LW1hcmtlci10eXBlLXNwcmluZyIKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRv
ci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxl
RGVjbGFyYXRpb25UZXh0RWRpdG9yLmpzCmluZGV4IDU4MDVlZDI2MDNkZTJjZDg2MjlmYTdlNTgz
M2E1NDQ1ODcxZTZmYzguLmUyNDRhOTk0NDg0YTdiYzRhYWEwNDNkNjhlZDJhZTNhMjM2ZjZmNjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NT
U1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLmpzCkBA
IC04ODYsNiArODg2LDEyIEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVk
aXRvciA9IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yCiAgICAgICAgICAgICAg
ICAgbGV0IHN3YXRjaCA9IG5ldyBXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoKFdlYkluc3BlY3Rv
ci5JbmxpbmVTd2F0Y2guVHlwZS5CZXppZXIsIGJlemllciwgdGhpcy5fY29kZU1pcnJvci5nZXRP
cHRpb24oInJlYWRPbmx5IikpOwogICAgICAgICAgICAgICAgIGNyZWF0ZVN3YXRjaC5jYWxsKHRo
aXMsIHN3YXRjaCwgbWFya2VyLCBiZXppZXIsIGJlemllclN0cmluZyk7CiAgICAgICAgICAgICB9
KTsKKworICAgICAgICAgICAgLy8gTG9vayBmb3Igc3ByaW5nIHN0cmluZ3MgYW5kIGFkZCBzd2F0
Y2hlcyBpbiBmcm9udCBvZiB0aGVtLgorICAgICAgICAgICAgY3JlYXRlQ29kZU1pcnJvclNwcmlu
Z1RleHRNYXJrZXJzKHRoaXMuX2NvZGVNaXJyb3IsIHJhbmdlLCAobWFya2VyLCBzcHJpbmcsIHNw
cmluZ1N0cmluZykgPT4geworICAgICAgICAgICAgICAgIGxldCBzd2F0Y2ggPSBuZXcgV2ViSW5z
cGVjdG9yLklubGluZVN3YXRjaChXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUuU3ByaW5n
LCBzcHJpbmcsIHRoaXMuX2NvZGVNaXJyb3IuZ2V0T3B0aW9uKCJyZWFkT25seSIpKTsKKyAgICAg
ICAgICAgICAgICBjcmVhdGVTd2F0Y2guY2FsbCh0aGlzLCBzd2F0Y2gsIG1hcmtlciwgc3ByaW5n
LCBzcHJpbmdTdHJpbmcpOworICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KIAogICAgICAgICBp
ZiAobm9uYXRvbWljKQpAQCAtMTMxOCw4ICsxMzI0LDkgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxl
RGVjbGFyYXRpb25UZXh0RWRpdG9yID0gY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0
b3IKIAogICAgICAgICAgICAgICAgIGZvciAobGV0IG1hcmsgb2YgbWFya3MpIHsKICAgICAgICAg
ICAgICAgICAgICAgbGV0IHR5cGUgPSBXZWJJbnNwZWN0b3IuVGV4dE1hcmtlci50ZXh0TWFya2Vy
Rm9yQ29kZU1pcnJvclRleHRNYXJrZXIobWFyaykudHlwZTsKLSAgICAgICAgICAgICAgICAgICAg
aWYgKHR5cGUgIT09IFdlYkluc3BlY3Rvci5UZXh0TWFya2VyLlR5cGUuQ29sb3IgJiYgdHlwZSAh
PT0gV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIuVHlwZS5HcmFkaWVudCAmJiB0eXBlICE9PSBXZWJJ
bnNwZWN0b3IuVGV4dE1hcmtlci5UeXBlLkN1YmljQmV6aWVyKQorICAgICAgICAgICAgICAgICAg
ICBpZiAoT2JqZWN0LnZhbHVlcyhXZWJJbnNwZWN0b3IuVGV4dE1hcmtlci5UeXBlKS5pbmNsdWRl
cyh0eXBlKSkKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCiAgICAgICAgICAg
ICAgICAgICAgIHRleHRNYXJrZXIgPSBtYXJrOwogICAgICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9Db2RlTWlycm9yVGV4dE1hcmtlcnMuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2RlTWlycm9yVGV4dE1hcmtlcnMuanMKaW5k
ZXggYzMxYzg2NmU0Yjk4YzY3YTlhOGU1N2QwZDI0ZGQ3NWZjYWE5YmU5Zi4uOWRhNzUxM2FkNDA2
Mzg4MGVkZTQ5YTVlY2ZiN2Y0YzUzYTliMzZkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29kZU1pcnJvclRleHRNYXJrZXJzLmpzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JUZXh0
TWFya2Vycy5qcwpAQCAtMTk1LDMgKzE5NSw5IEBAIGZ1bmN0aW9uIGNyZWF0ZUNvZGVNaXJyb3JD
dWJpY0JlemllclRleHRNYXJrZXJzKGNvZGVNaXJyb3IsIHJhbmdlLCBjYWxsYmFjaykKICAgICB2
YXIgY3ViaWNCZXppZXJSZWdleCA9IC8oY3ViaWMtYmV6aWVyXChbXildK1wpfFxiXHcrXGIoPzot
XGJcdytcYil7MCwyfSkvZzsKICAgICByZXR1cm4gY3JlYXRlQ29kZU1pcnJvclRleHRNYXJrZXJz
KCJDdWJpY0JlemllciIsIGN1YmljQmV6aWVyUmVnZXgsIG51bGwsIGNvZGVNaXJyb3IsIHJhbmdl
LCBjYWxsYmFjayk7CiB9CisKK2Z1bmN0aW9uIGNyZWF0ZUNvZGVNaXJyb3JTcHJpbmdUZXh0TWFy
a2Vycyhjb2RlTWlycm9yLCByYW5nZSwgY2FsbGJhY2spCit7CisgICAgY29uc3Qgc3ByaW5nUmVn
ZXggPSAvKHNwcmluZ1woW14pXStcKSkvZzsKKyAgICByZXR1cm4gY3JlYXRlQ29kZU1pcnJvclRl
eHRNYXJrZXJzKCJTcHJpbmciLCBzcHJpbmdSZWdleCwgbnVsbCwgY29kZU1pcnJvciwgcmFuZ2Us
IGNhbGxiYWNrKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0lubGluZVN3YXRjaC5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9JbmxpbmVTd2F0Y2guY3NzCmluZGV4IDExZjZlNjM4ZTczYjQwY2Zl
YTU1MWJmYzc5MjkxZmQ0ZTllNGExMzEuLmZjMmExNjhkMjk4MzlhMTI4NmJhYmFlZGUxMmY2N2I3
YzQ1ZTg5OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0lubGluZVN3YXRjaC5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvSW5saW5lU3dhdGNoLmNzcwpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29w
eXJpZ2h0IChDKSAyMDE1IERldmluIFJvdXNzbyA8ZGNyb3Vzc28rd2Via2l0QGdtYWlsLmNvbT4u
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBEZXZpbiBS
b3Vzc28gPGRjcm91c3NvK3dlYmtpdEBnbWFpbC5jb20+LiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MywxNyArNDMsMjAgQEAKICAgICBj
dXJzb3I6IGRlZmF1bHQ7CiB9CiAKLS5pbmxpbmUtc3dhdGNoLmJlemllciB7Ci0gICAgbWFyZ2lu
LXJpZ2h0OiAycHg7CisuaW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXppZXIsIC5zcHJpbmcpIHsK
ICAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL0N1YmljQmV6aWVyLnN2Zyk7Cit9CisKKy5pbmxp
bmUtc3dhdGNoOm1hdGNoZXMoLmJlemllciwgLnNwcmluZykgeworICAgIG1hcmdpbi1yaWdodDog
MnB4OwogICAgIGJhY2tncm91bmQ6IG5vbmU7CiB9CiAKLS5pbmxpbmUtc3dhdGNoLmJlemllcjpo
b3ZlciB7CisuaW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXppZXIsIC5zcHJpbmcpOmhvdmVyIHsK
ICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMC45KTsKIH0KIAotLmlubGluZS1zd2F0Y2guYmV6aWVy
OmFjdGl2ZSB7CisuaW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXppZXIsIC5zcHJpbmcpOmFjdGl2
ZSB7CiAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDAuOCk7CiB9CiAKQEAgLTg1LDcgKzg4LDcgQEAK
ICAgICBib3JkZXItY29sb3I6IGhzbCgwLCAwJSwgMjUlKTsKIH0KIAotLmlubGluZS1zd2F0Y2gu
YmV6aWVyID4gc3BhbiB7CisuaW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXppZXIsIC5zcHJpbmcp
ID4gc3BhbiB7CiAgICAgZGlzcGxheTogbm9uZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSW5saW5lU3dhdGNoLmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSW5saW5lU3dhdGNoLmpzCmluZGV4
IGQ2ZTM2OGM0NTEyYWNlMTlhNDlmMmQ1YjhkNTk5YWQ1M2E4NDcwOWUuLmEwMGQ0MDgzZDcwNTRh
M2I4MDFjOTZhMzk2NDJiMzE1M2QyMDA1OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lubGluZVN3YXRjaC5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9JbmxpbmVTd2F0Y2guanMKQEAgLTM5LDYg
KzM5LDkgQEAgV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaCA9IGNsYXNzIElubGluZVN3YXRjaCBl
eHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuSW5s
aW5lU3dhdGNoLlR5cGUuQmV6aWVyOgogICAgICAgICAgICAgdGhpcy5fc3dhdGNoRWxlbWVudC50
aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2xpY2sgdG8gb3BlbiBhIGN1YmljLWJlemll
ciBlZGl0b3IuIik7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJJbnNwZWN0
b3IuSW5saW5lU3dhdGNoLlR5cGUuU3ByaW5nOgorICAgICAgICAgICAgdGhpcy5fc3dhdGNoRWxl
bWVudC50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2xpY2sgdG8gb3BlbiBhIHNwcmlu
ZyBlZGl0b3IuIik7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXZWJJbnNwZWN0
b3IuSW5saW5lU3dhdGNoLlR5cGUuR3JhZGllbnQ6CiAgICAgICAgICAgICB0aGlzLl9zd2F0Y2hF
bGVtZW50LnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDbGljayB0byBzZWxlY3QgYSBn
cmFkaWVudC4iKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtOTgsNiArMTAxLDggQEAgV2ViSW5z
cGVjdG9yLklubGluZVN3YXRjaCA9IGNsYXNzIElubGluZVN3YXRjaCBleHRlbmRzIFdlYkluc3Bl
Y3Rvci5PYmplY3QKICAgICAgICAgc3dpdGNoICh0aGlzLl90eXBlKSB7CiAgICAgICAgIGNhc2Ug
V2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5UeXBlLkJlemllcjoKICAgICAgICAgICAgIHJldHVy
biBXZWJJbnNwZWN0b3IuQ3ViaWNCZXppZXIuZnJvbVN0cmluZygibGluZWFyIik7CisgICAgICAg
IGNhc2UgV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5UeXBlLlNwcmluZzoKKyAgICAgICAgICAg
IHJldHVybiBXZWJJbnNwZWN0b3IuU3ByaW5nLmZyb21TdHJpbmcoIjEgMTAwIDEwIDAiKTsKICAg
ICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUuR3JhZGllbnQ6CiAgICAg
ICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLkdyYWRpZW50LmZyb21TdHJpbmcoImxpbmVhci1n
cmFkaWVudCh0cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQpIik7CiAgICAgICAgIGNhc2UgV2ViSW5z
cGVjdG9yLklubGluZVN3YXRjaC5UeXBlLkNvbG9yOgpAQCAtMTQzLDYgKzE0OCw5IEBAIFdlYklu
c3BlY3Rvci5JbmxpbmVTd2F0Y2ggPSBjbGFzcyBJbmxpbmVTd2F0Y2ggZXh0ZW5kcyBXZWJJbnNw
ZWN0b3IuT2JqZWN0CiAgICAgICAgIGlmICh0aGlzLl90eXBlID09PSBXZWJJbnNwZWN0b3IuSW5s
aW5lU3dhdGNoLlR5cGUuQmV6aWVyKSB7CiAgICAgICAgICAgICB0aGlzLl92YWx1ZUVkaXRvciA9
IG5ldyBXZWJJbnNwZWN0b3IuQmV6aWVyRWRpdG9yOwogICAgICAgICAgICAgdGhpcy5fdmFsdWVF
ZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQmV6aWVyRWRpdG9yLkV2ZW50LkJl
emllckNoYW5nZWQsIHRoaXMuX3ZhbHVlRWRpdG9yVmFsdWVEaWRDaGFuZ2UsIHRoaXMpOworICAg
ICAgICB9IGVsc2UgaWYgKHRoaXMuX3R5cGUgPT09IFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2gu
VHlwZS5TcHJpbmcpIHsKKyAgICAgICAgICAgIHRoaXMuX3ZhbHVlRWRpdG9yID0gbmV3IFdlYklu
c3BlY3Rvci5TcHJpbmdFZGl0b3I7CisgICAgICAgICAgICB0aGlzLl92YWx1ZUVkaXRvci5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5TcHJpbmdFZGl0b3IuRXZlbnQuU3ByaW5nQ2hhbmdl
ZCwgdGhpcy5fdmFsdWVFZGl0b3JWYWx1ZURpZENoYW5nZSwgdGhpcyk7CiAgICAgICAgIH0gZWxz
ZSBpZiAodGhpcy5fdHlwZSA9PT0gV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5UeXBlLkdyYWRp
ZW50KSB7CiAgICAgICAgICAgICB0aGlzLl92YWx1ZUVkaXRvciA9IG5ldyBXZWJJbnNwZWN0b3Iu
R3JhZGllbnRFZGl0b3I7CiAgICAgICAgICAgICB0aGlzLl92YWx1ZUVkaXRvci5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5HcmFkaWVudEVkaXRvci5FdmVudC5HcmFkaWVudENoYW5nZWQs
IHRoaXMuX3ZhbHVlRWRpdG9yVmFsdWVEaWRDaGFuZ2UsIHRoaXMpOwpAQCAtMTU4LDYgKzE2Niw4
IEBAIFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2ggPSBjbGFzcyBJbmxpbmVTd2F0Y2ggZXh0ZW5k
cyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuX3ZhbHVlIHx8
IHRoaXMuX2ZhbGxiYWNrVmFsdWUoKTsKICAgICAgICAgaWYgKHRoaXMuX3R5cGUgPT09IFdlYklu
c3BlY3Rvci5JbmxpbmVTd2F0Y2guVHlwZS5CZXppZXIpCiAgICAgICAgICAgICB0aGlzLl92YWx1
ZUVkaXRvci5iZXppZXIgPSB2YWx1ZTsKKyAgICAgICAgZWxzZSBpZiAodGhpcy5fdHlwZSA9PT0g
V2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5UeXBlLlNwcmluZykKKyAgICAgICAgICAgIHRoaXMu
X3ZhbHVlRWRpdG9yLnNwcmluZyA9IHZhbHVlOwogICAgICAgICBlbHNlIGlmICh0aGlzLl90eXBl
ID09PSBXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUuR3JhZGllbnQpCiAgICAgICAgICAg
ICB0aGlzLl92YWx1ZUVkaXRvci5ncmFkaWVudCA9IHZhbHVlOwogICAgICAgICBlbHNlCkBAIC0x
NjgsNiArMTc4LDggQEAgV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaCA9IGNsYXNzIElubGluZVN3
YXRjaCBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICB7CiAgICAgICAgIGlmICh0aGlz
Ll90eXBlID09PSBXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUuQmV6aWVyKQogICAgICAg
ICAgICAgdGhpcy5fdmFsdWUgPSBldmVudC5kYXRhLmJlemllcjsKKyAgICAgICAgZWxzZSBpZiAo
dGhpcy5fdHlwZSA9PT0gV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5UeXBlLlNwcmluZykKKyAg
ICAgICAgICAgIHRoaXMuX3ZhbHVlID0gZXZlbnQuZGF0YS5zcHJpbmc7CiAgICAgICAgIGVsc2Ug
aWYgKHRoaXMuX3R5cGUgPT09IFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2guVHlwZS5HcmFkaWVu
dCkKICAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gZXZlbnQuZGF0YS5ncmFkaWVudDsKICAgICAg
ICAgZWxzZQpAQCAtMjc5LDcgKzI5MSw4IEBAIFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2ggPSBj
bGFzcyBJbmxpbmVTd2F0Y2ggZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiBXZWJJbnNwZWN0
b3IuSW5saW5lU3dhdGNoLlR5cGUgPSB7CiAgICAgQ29sb3I6ICJpbmxpbmUtc3dhdGNoLXR5cGUt
Y29sb3IiLAogICAgIEdyYWRpZW50OiAiaW5saW5lLXN3YXRjaC10eXBlLWdyYWRpZW50IiwKLSAg
ICBCZXppZXI6ICJpbmxpbmUtc3dhdGNoLXR5cGUtYmV6aWVyIgorICAgIEJlemllcjogImlubGlu
ZS1zd2F0Y2gtdHlwZS1iZXppZXIiLAorICAgIFNwcmluZzogImlubGluZS1zd2F0Y2gtdHlwZS1z
cHJpbmciLAogfTsKIAogV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5FdmVudCA9IHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NvdXJjZUNv
ZGVUZXh0RWRpdG9yLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvU291cmNlQ29kZVRleHRFZGl0b3IuanMKaW5kZXggMTNmY2FmOTlhMGI0NmYyNTA1ZTgwOWNm
ZDM0NDcyNWE1NzAxNDFmOC4uNjg3YjIyOGNkZjU4MzY3MzRkNzZkMzhjOTIxODYxMGEzNDdjMDk5
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
U291cmNlQ29kZVRleHRFZGl0b3IuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvU291cmNlQ29kZVRleHRFZGl0b3IuanMKQEAgLTE2MDQsNiArMTYwNCw3
IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvciA9IGNsYXNzIFNvdXJjZUNvZGVU
ZXh0RWRpdG9yIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgICAgICB0aGlzLmNyZWF0ZUNvbG9y
TWFya2VycyhyYW5nZSk7CiAgICAgICAgICAgICB0aGlzLmNyZWF0ZUdyYWRpZW50TWFya2Vycyhy
YW5nZSk7CiAgICAgICAgICAgICB0aGlzLmNyZWF0ZUN1YmljQmV6aWVyTWFya2VycyhyYW5nZSk7
CisgICAgICAgICAgICB0aGlzLmNyZWF0ZVNwcmluZ01hcmtlcnMocmFuZ2UpOwogICAgICAgICB9
CiAKICAgICAgICAgdGhpcy5fdXBkYXRlVG9rZW5UcmFja2luZ0NvbnRyb2xsZXJTdGF0ZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3By
aW5nRWRpdG9yLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1NwcmluZ0VkaXRvci5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTIyMjA1MTJjZjQyNTg2Mjk4ZmM1OTk5ZTI2
YjA0MzRkNzhmNDA0YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1NwcmluZ0VkaXRvci5jc3MKQEAgLTAsMCArMSwxMDIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgRGV2aW4gUm91c3NvIDxkY3JvdXNzbyt3ZWJraXRAZ21h
aWwuY29tPi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLnNwcmluZy1lZGl0b3Ig
eworICAgIHdpZHRoOiAyMDBweDsKKyAgICBoZWlnaHQ6IDIxMHB4OworfQorCisuc3ByaW5nLWVk
aXRvciA+IC5zcHJpbmctcHJldmlldyB7CisgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEwcHgpOwor
ICAgIGhlaWdodDogMjVweDsKKyAgICBtYXJnaW46IDVweCA1cHggMDsKKyAgICBib3JkZXItYm90
dG9tOiAxcHggc29saWQgbGlnaHRncmV5OworfQorCisuc3ByaW5nLWVkaXRvciA+IC5zcHJpbmct
cHJldmlldyA+IGRpdiB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIHdpZHRoOiAyMHB4
OworICAgIGhlaWdodDogMjBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWxlY3Rl
ZC1iYWNrZ3JvdW5kLWNvbG9yKTsKKyAgICBib3JkZXItcmFkaXVzOiA1MCU7Cit9CisKKy5zcHJp
bmctZWRpdG9yID4gLnNwcmluZy10aW1pbmcgeworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAg
ICBtYXJnaW46IC0wLjVweCAxMXB4IDA7Cit9CisKKy5zcHJpbmctZWRpdG9yID4gLnNwcmluZy10
aW1pbmcgPiBkaXYgeworICAgIHdpZHRoOiAwOworICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQg
dHJhbnNwYXJlbnQ7CisgICAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7Cisg
ICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkIGJsYWNrOworICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1
bmN0aW9uOiBsaW5lYXI7Cit9CisKKy5zcHJpbmctZWRpdG9yID4gLnNwcmluZy10aW1pbmc6bWF0
Y2hlcyg6OmJlZm9yZSwgOjphZnRlcikgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0
b3A6IDIuNXB4OworICAgIGZvbnQtc2l6ZTogOXB4OworfQorCisuc3ByaW5nLWVkaXRvciA+IC5z
cHJpbmctdGltaW5nOjpiZWZvcmUgeworICAgIGxlZnQ6IDA7CisgICAgY29udGVudDogIjBzIjsK
K30KKworLnNwcmluZy1lZGl0b3IgPiAuc3ByaW5nLXRpbWluZzo6YWZ0ZXIgeworICAgIHJpZ2h0
OiAwOworICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1kdXJhdGlvbikgInMiOworfQorCisuc3ByaW5n
LWVkaXRvciA+IDptYXRjaGVzKC5zcHJpbmctcHJldmlldywgLnNwcmluZy10aW1pbmcpID4gZGl2
IHsKKyAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBub25lOworfQorCisuc3ByaW5nLWVkaXRvciA+
IC5hbmltYXRlOm1hdGNoZXMoLnNwcmluZy1wcmV2aWV3LCAuc3ByaW5nLXRpbWluZykgPiBkaXYg
eworICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTsKK30KKworLnNwcmluZy1lZGl0
b3IgPiAubnVtYmVyLWlucHV0LWNvbnRhaW5lciA+IC5udW1iZXItaW5wdXQtcm93IHsKKyAgICBk
aXNwbGF5OiBmbGV4OworICAgIGZsZXgtd3JhcDogd3JhcDsKKyAgICBtYXJnaW4tYm90dG9tOiAz
cHg7Cit9CisKKy5zcHJpbmctZWRpdG9yID4gLm51bWJlci1pbnB1dC1jb250YWluZXIgPiAubnVt
YmVyLWlucHV0LXJvdyA+IC5udW1iZXItaW5wdXQtcm93LXRpdGxlIHsKKyAgICB3aWR0aDogMTAw
JTsKKyAgICBtYXJnaW46IDdweCAwIDNweDsKKyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cit9CisK
Ky5zcHJpbmctZWRpdG9yID4gLm51bWJlci1pbnB1dC1jb250YWluZXIgPiAubnVtYmVyLWlucHV0
LXJvdyA+IGlucHV0IHsKKyAgICB3aWR0aDogY2FsYyg1MCUgLSAxMHB4KTsKKyAgICBtYXJnaW46
IDAgNXB4OworfQorCisuc3ByaW5nLWVkaXRvciA+IC5udW1iZXItaW5wdXQtY29udGFpbmVyID4g
Lm51bWJlci1pbnB1dC1yb3cgPiBpbnB1dFt0eXBlPSJyYW5nZSJdIHsKKyAgICBiYWNrZ3JvdW5k
LWNvbG9yOiB0cmFuc3BhcmVudDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmluZ0VkaXRvci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmluZ0VkaXRvci5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjBk
ODQwZDNkYzliMTRjZjY2MDEwOWE1Y2Q4YTY3NTNmNmVjYjNkCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByaW5nRWRpdG9yLmpz
CkBAIC0wLDAgKzEsMjE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IERldmluIFJvdXNz
byA8ZGNyb3Vzc28rd2Via2l0QGdtYWlsLmNvbT4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK1dlYkluc3BlY3Rvci5TcHJpbmdFZGl0b3IgPSBjbGFzcyBTcHJpbmdFZGl0b3IgZXh0
ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0Cit7CisgICAgY29uc3RydWN0b3IoKQorICAgIHsKKyAg
ICAgICAgc3VwZXIoKTsKKworICAgICAgICB0aGlzLl9lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7CisgICAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZCgic3By
aW5nLWVkaXRvciIpOworCisgICAgICAgIHRoaXMuX3ByZXZpZXdDb250YWluZXIgPSB0aGlzLl9l
bGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAic3ByaW5nLXByZXZpZXciKTsKKyAgICAgICAgdGhp
cy5fcHJldmlld0NvbnRhaW5lci50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2xpY2sg
dG8gcmVzdGFydCB0aGUgYW5pbWF0aW9uIik7CisgICAgICAgIHRoaXMuX3ByZXZpZXdDb250YWlu
ZXIuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcy5fcmVzZXRQcmV2aWV3QW5pbWF0
aW9uLmJpbmQodGhpcykpOworCisgICAgICAgIHRoaXMuX3ByZXZpZXdFbGVtZW50ID0gdGhpcy5f
cHJldmlld0NvbnRhaW5lci5jcmVhdGVDaGlsZCgiZGl2Iik7CisgICAgICAgIHRoaXMuX3ByZXZp
ZXdFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLCB0aGlzLmRlYm91bmNl
KDUwMCkuX3Jlc2V0UHJldmlld0FuaW1hdGlvbik7CisKKyAgICAgICAgdGhpcy5fdGltaW5nQ29u
dGFpbmVyID0gdGhpcy5fZWxlbWVudC5jcmVhdGVDaGlsZCgiZGl2IiwgInNwcmluZy10aW1pbmci
KTsKKworICAgICAgICB0aGlzLl90aW1pbmdFbGVtZW50ID0gdGhpcy5fdGltaW5nQ29udGFpbmVy
LmNyZWF0ZUNoaWxkKCJkaXYiKTsKKworICAgICAgICB0aGlzLl9udW1iZXJJbnB1dENvbnRhaW5l
ciA9IHRoaXMuX2VsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJudW1iZXItaW5wdXQtY29udGFp
bmVyIik7CisKKyAgICAgICAgZnVuY3Rpb24gY3JlYXRlSW5wdXRzRm9yUGFyYW1ldGVyKGlkLCB0
aXRsZSkKKyAgICAgICAgeworICAgICAgICAgICAgbGV0IHJvdyA9IHRoaXMuX251bWJlcklucHV0
Q29udGFpbmVyLmNyZWF0ZUNoaWxkKCJkaXYiLCBgbnVtYmVyLWlucHV0LXJvdyAke2lkfWApOwor
CisgICAgICAgICAgICByb3cuY3JlYXRlQ2hpbGQoImRpdiIsICJudW1iZXItaW5wdXQtcm93LXRp
dGxlIikudGV4dENvbnRlbnQgPSB0aXRsZTsKKworICAgICAgICAgICAgdGhpc1tgXyR7aWR9U2xp
ZGVyYF0gPSByb3cuY3JlYXRlQ2hpbGQoImlucHV0Iik7CisgICAgICAgICAgICB0aGlzW2BfJHtp
ZH1TbGlkZXJgXS50eXBlID0gInJhbmdlIjsKKyAgICAgICAgICAgIHRoaXNbYF8ke2lkfVNsaWRl
cmBdLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwgdGhpcy5faGFuZGxlTnVtYmVyU2xpZGVySW5w
dXQuYmluZCh0aGlzKSk7CisgICAgICAgICAgICB0aGlzW2BfJHtpZH1TbGlkZXJgXS5hZGRFdmVu
dExpc3RlbmVyKCJtb3VzZWRvd24iLCB0aGlzLl9oYW5kbGVOdW1iZXJTbGlkZXJNb3VzZWRvd24u
YmluZCh0aGlzKSk7CisgICAgICAgICAgICB0aGlzW2BfJHtpZH1TbGlkZXJgXS5hZGRFdmVudExp
c3RlbmVyKCJtb3VzZXVwIiwgdGhpcy5faGFuZGxlTnVtYmVyU2xpZGVyTW91c2V1cC5iaW5kKHRo
aXMpKTsKKworICAgICAgICAgICAgdGhpc1tgXyR7aWR9SW5wdXRgXSA9IHJvdy5jcmVhdGVDaGls
ZCgiaW5wdXQiKTsKKyAgICAgICAgICAgIHRoaXNbYF8ke2lkfUlucHV0YF0udHlwZSA9ICJudW1i
ZXIiOworICAgICAgICAgICAgdGhpc1tgXyR7aWR9SW5wdXRgXS5hZGRFdmVudExpc3RlbmVyKCJp
bnB1dCIsIHRoaXMuX2hhbmRsZU51bWJlcklucHV0SW5wdXQuYmluZCh0aGlzKSk7CisgICAgICAg
ICAgICB0aGlzW2BfJHtpZH1JbnB1dGBdLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCB0aGlz
Ll9oYW5kbGVOdW1iZXJJbnB1dEtleWRvd24uYmluZCh0aGlzKSk7CisgICAgICAgIH0KKworICAg
ICAgICBjcmVhdGVJbnB1dHNGb3JQYXJhbWV0ZXIuY2FsbCh0aGlzLCAibWFzcyIsIFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiTWFzcyIpKTsKKyAgICAgICAgdGhpcy5fbWFzc0lucHV0Lm1pbiA9IHRo
aXMuX21hc3NTbGlkZXIubWluID0gMTsKKworICAgICAgICBjcmVhdGVJbnB1dHNGb3JQYXJhbWV0
ZXIuY2FsbCh0aGlzLCAic3RpZmZuZXNzIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTdGlmZm5l
c3MiKSk7CisgICAgICAgIHRoaXMuX3N0aWZmbmVzc0lucHV0Lm1pbiA9IHRoaXMuX3N0aWZmbmVz
c1NsaWRlci5taW4gPSAxOworCisgICAgICAgIGNyZWF0ZUlucHV0c0ZvclBhcmFtZXRlci5jYWxs
KHRoaXMsICJkYW1waW5nIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEYW1waW5nIikpOworICAg
ICAgICB0aGlzLl9kYW1waW5nSW5wdXQubWluID0gdGhpcy5fZGFtcGluZ1NsaWRlci5taW4gPSAw
OworCisgICAgICAgIGNyZWF0ZUlucHV0c0ZvclBhcmFtZXRlci5jYWxsKHRoaXMsICJpbml0aWFs
VmVsb2NpdHkiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkluaXRpYWwgVmVsb2NpdHkiKSk7CisK
KyAgICAgICAgdGhpcy5fc3ByaW5nID0gbmV3IFdlYkluc3BlY3Rvci5TcHJpbmcoMSwgMTAwLCAx
MCwgMCk7CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBnZXQgZWxlbWVudCgpCisgICAg
eworICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudDsKKyAgICB9CisKKyAgICBnZXQgc3ByaW5n
KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9zcHJpbmc7CisgICAgfQorCisgICAgc2V0
IHNwcmluZyhzcHJpbmcpCisgICAgeworICAgICAgICBpZiAoIXNwcmluZykKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICBsZXQgaXNTcHJpbmcgPSBzcHJpbmcgaW5zdGFuY2VvZiBXZWJJ
bnNwZWN0b3IuU3ByaW5nOworICAgICAgICBjb25zb2xlLmFzc2VydChpc1NwcmluZyk7CisgICAg
ICAgIGlmICghaXNTcHJpbmcpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5f
c3ByaW5nID0gc3ByaW5nOworICAgICAgICB0aGlzLl9tYXNzSW5wdXQudmFsdWUgPSB0aGlzLl9t
YXNzU2xpZGVyLnZhbHVlID0gdGhpcy5fc3ByaW5nLm1hc3M7CisgICAgICAgIHRoaXMuX3N0aWZm
bmVzc0lucHV0LnZhbHVlID0gdGhpcy5fc3RpZmZuZXNzU2xpZGVyLnZhbHVlID0gdGhpcy5fc3By
aW5nLnN0aWZmbmVzczsKKyAgICAgICAgdGhpcy5fZGFtcGluZ0lucHV0LnZhbHVlID0gdGhpcy5f
ZGFtcGluZ1NsaWRlci52YWx1ZSA9IHRoaXMuX3NwcmluZy5kYW1waW5nOworICAgICAgICB0aGlz
Ll9pbml0aWFsVmVsb2NpdHlJbnB1dC52YWx1ZSA9IHRoaXMuX2luaXRpYWxWZWxvY2l0eVNsaWRl
ci52YWx1ZSA9IHRoaXMuX3NwcmluZy5pbml0aWFsVmVsb2NpdHk7CisgICAgICAgIHRoaXMuX3Jl
c2V0UHJldmlld0FuaW1hdGlvbigpOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9o
YW5kbGVOdW1iZXJJbnB1dElucHV0KGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fY2hhbmdl
U3ByaW5nRm9ySW5wdXQoZXZlbnQudGFyZ2V0LCBldmVudC50YXJnZXQudmFsdWUpOworICAgIH0K
KworICAgIF9oYW5kbGVOdW1iZXJJbnB1dEtleWRvd24oZXZlbnQpCisgICAgeworICAgICAgICBs
ZXQgc2hpZnQgPSAwOworICAgICAgICBpZiAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlVwIikK
KyAgICAgICAgICAgIHNoaWZ0ID0gMTsKKyAgICAgICAgIGVsc2UgaWYgKGV2ZW50LmtleUlkZW50
aWZpZXIgPT09ICJEb3duIikKKyAgICAgICAgICAgIHNoaWZ0ID0gLTE7CisKKyAgICAgICAgaWYg
KCFzaGlmdCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoZXZlbnQuc2hpZnRL
ZXkpCisgICAgICAgICAgICBzaGlmdCAqPSAxMDsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQuYWx0
S2V5KQorICAgICAgICAgICAgc2hpZnQgLz0gMTA7CisKKyAgICAgICAgZXZlbnQucHJldmVudERl
ZmF1bHQoKTsKKyAgICAgICAgdGhpcy5fY2hhbmdlU3ByaW5nRm9ySW5wdXQoZXZlbnQudGFyZ2V0
LCBwYXJzZUZsb2F0KGV2ZW50LnRhcmdldC52YWx1ZSkgKyBzaGlmdCk7CisgICAgfQorCisgICAg
X2hhbmRsZU51bWJlclNsaWRlcklucHV0KGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fY2hh
bmdlU3ByaW5nRm9ySW5wdXQoZXZlbnQudGFyZ2V0LCBldmVudC50YXJnZXQudmFsdWUpOworICAg
IH0KKworICAgIF9oYW5kbGVOdW1iZXJTbGlkZXJNb3VzZWRvd24oZXZlbnQpCisgICAgeworICAg
ICAgICB0aGlzLl9jaGFuZ2VTcHJpbmdGb3JJbnB1dChldmVudC50YXJnZXQsIGV2ZW50LnRhcmdl
dC52YWx1ZSk7CisgICAgfQorCisgICAgX2hhbmRsZU51bWJlclNsaWRlck1vdXNldXAoZXZlbnQp
CisgICAgeworICAgICAgICB0aGlzLl9jaGFuZ2VTcHJpbmdGb3JJbnB1dChldmVudC50YXJnZXQs
IGV2ZW50LnRhcmdldC52YWx1ZSk7CisgICAgfQorCisgICAgX2NoYW5nZVNwcmluZ0ZvcklucHV0
KHRhcmdldCwgdmFsdWUpCisgICAgeworICAgICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUp
OworCisgICAgICAgIHN3aXRjaCAodGFyZ2V0KSB7CisgICAgICAgIGNhc2UgdGhpcy5fbWFzc0lu
cHV0OgorICAgICAgICBjYXNlIHRoaXMuX21hc3NTbGlkZXI6CisgICAgICAgICAgICB0aGlzLl9z
cHJpbmcubWFzcyA9IE1hdGgubWF4KDEsIHZhbHVlKTsKKyAgICAgICAgICAgIHRoaXMuX21hc3NJ
bnB1dC52YWx1ZSA9IHRoaXMuX21hc3NTbGlkZXIudmFsdWUgPSB0aGlzLl9zcHJpbmcubWFzcy5t
YXhEZWNpbWFscygzKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHRoaXMuX3N0
aWZmbmVzc0lucHV0OgorICAgICAgICBjYXNlIHRoaXMuX3N0aWZmbmVzc1NsaWRlcjoKKyAgICAg
ICAgICAgIHRoaXMuX3NwcmluZy5zdGlmZm5lc3MgPSBNYXRoLm1heCgxLCB2YWx1ZSk7CisgICAg
ICAgICAgICB0aGlzLl9zdGlmZm5lc3NJbnB1dC52YWx1ZSA9IHRoaXMuX3N0aWZmbmVzc1NsaWRl
ci52YWx1ZSA9IHRoaXMuX3NwcmluZy5zdGlmZm5lc3MubWF4RGVjaW1hbHMoMyk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGlzLl9kYW1waW5nSW5wdXQ6CisgICAgICAgIGNh
c2UgdGhpcy5fZGFtcGluZ1NsaWRlcjoKKyAgICAgICAgICAgIHRoaXMuX3NwcmluZy5kYW1waW5n
ID0gTWF0aC5tYXgoMSwgdmFsdWUpOworICAgICAgICAgICAgdGhpcy5fZGFtcGluZ0lucHV0LnZh
bHVlID0gdGhpcy5fZGFtcGluZ1NsaWRlci52YWx1ZSA9IHRoaXMuX3NwcmluZy5kYW1waW5nLm1h
eERlY2ltYWxzKDMpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpcy5faW5p
dGlhbFZlbG9jaXR5SW5wdXQ6CisgICAgICAgIGNhc2UgdGhpcy5faW5pdGlhbFZlbG9jaXR5U2xp
ZGVyOgorICAgICAgICAgICAgdGhpcy5fc3ByaW5nLmluaXRpYWxWZWxvY2l0eSA9IHZhbHVlOwor
ICAgICAgICAgICAgdGhpcy5faW5pdGlhbFZlbG9jaXR5SW5wdXQudmFsdWUgPSB0aGlzLl9pbml0
aWFsVmVsb2NpdHlTbGlkZXIudmFsdWUgPSB0aGlzLl9zcHJpbmcuaW5pdGlhbFZlbG9jaXR5Lm1h
eERlY2ltYWxzKDMpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRU
b0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuU3ByaW5nRWRpdG9yLkV2ZW50LlNwcmluZ0NoYW5nZWQs
IHtzcHJpbmc6IHRoaXMuX3NwcmluZ30pOworCisgICAgICAgIHRoaXMuX3Jlc2V0UHJldmlld0Fu
aW1hdGlvbigpOworICAgIH0KKworICAgIF9yZXNldFByZXZpZXdBbmltYXRpb24oZXZlbnQpCisg
ICAgeworICAgICAgICB0aGlzLl9wcmV2aWV3Q29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoImFu
aW1hdGUiKTsKKyAgICAgICAgdGhpcy5fcHJldmlld0VsZW1lbnQuc3R5bGUudHJhbnNpdGlvblRp
bWluZ0Z1bmN0aW9uID0gbnVsbDsKKyAgICAgICAgdGhpcy5fcHJldmlld0VsZW1lbnQuc3R5bGUu
dHJhbnNmb3JtID0gbnVsbDsKKworICAgICAgICB0aGlzLl90aW1pbmdDb250YWluZXIuY2xhc3NM
aXN0LnJlbW92ZSgiYW5pbWF0ZSIpOworICAgICAgICB0aGlzLl90aW1pbmdDb250YWluZXIuZGF0
YXNldC5kdXJhdGlvbiA9ICIwIjsKKyAgICAgICAgdGhpcy5fdGltaW5nRWxlbWVudC5zdHlsZS50
cmFuc2Zvcm0gPSBudWxsOworCisgICAgICAgIHRoaXMuZGVib3VuY2UoNTAwKS5fdXBkYXRlUHJl
dmlld0FuaW1hdGlvbigpOworICAgIH0KKworICAgIF91cGRhdGVQcmV2aWV3QW5pbWF0aW9uKCkK
KyAgICB7CisgICAgICAgIGxldCBkdXJhdGlvbiA9IHRoaXMuX3NwcmluZy5jYWxjdWxhdGVEdXJh
dGlvbigpOworCisgICAgICAgIHRoaXMuX3ByZXZpZXdDb250YWluZXIuY2xhc3NMaXN0LmFkZCgi
YW5pbWF0ZSIpOworICAgICAgICB0aGlzLl9wcmV2aWV3RWxlbWVudC5zdHlsZS50cmFuc2l0aW9u
RHVyYXRpb24gPSBgJHtkdXJhdGlvbn1zYDsKKyAgICAgICAgdGhpcy5fcHJldmlld0VsZW1lbnQu
c3R5bGUudHJhbnNmb3JtID0gInRyYW5zbGF0ZVgoODVweCkiOworICAgICAgICB0aGlzLl9wcmV2
aWV3RWxlbWVudC5zdHlsZS50cmFuc2l0aW9uVGltaW5nRnVuY3Rpb24gPSB0aGlzLl9zcHJpbmcu
dG9TdHJpbmcoKTsKKworICAgICAgICB0aGlzLl90aW1pbmdDb250YWluZXIuY2xhc3NMaXN0LmFk
ZCgiYW5pbWF0ZSIpOworICAgICAgICB0aGlzLl90aW1pbmdDb250YWluZXIuZGF0YXNldC5kdXJh
dGlvbiA9IGR1cmF0aW9uLnRvRml4ZWQoMik7CisgICAgICAgIHRoaXMuX3RpbWluZ0VsZW1lbnQu
c3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uID0gYCR7ZHVyYXRpb259c2A7CisgICAgICAgIHRoaXMu
X3RpbWluZ0VsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gInRyYW5zbGF0ZVgoMTcwcHgpIjsKKyAg
ICB9Cit9OworCitXZWJJbnNwZWN0b3IuU3ByaW5nRWRpdG9yLkV2ZW50ID0geworICAgIFNwcmlu
Z0NoYW5nZWQ6ICJzcHJpbmctZWRpdG9yLXNwcmluZy1jaGFuZ2VkIgorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RleHRFZGl0b3IuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UZXh0RWRpdG9yLmpz
CmluZGV4IDJjODA5MDRlMjUxYjAyZWQxY2I3M2VkMDdkZmNjNWExYjQ3MzQ2NDcuLmFkMDY1YTJh
OTYxNTk0MGY1Zjg4MjY0ODM0NzQ4YjMwMDI3ODliNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RleHRFZGl0b3IuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGV4dEVkaXRvci5qcwpAQCAtNjEx
LDYgKzYxMSwxMSBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvciA9IGNsYXNzIFRleHRFZGl0b3Ig
ZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVmlldwogICAgICAgICByZXR1cm4gY3JlYXRlQ29kZU1pcnJv
ckN1YmljQmV6aWVyVGV4dE1hcmtlcnModGhpcy5fY29kZU1pcnJvciwgcmFuZ2UpOwogICAgIH0K
IAorICAgIGNyZWF0ZVNwcmluZ01hcmtlcnMocmFuZ2UpCisgICAgeworICAgICAgICByZXR1cm4g
Y3JlYXRlQ29kZU1pcnJvclNwcmluZ1RleHRNYXJrZXJzKHRoaXMuX2NvZGVNaXJyb3IsIHJhbmdl
KTsKKyAgICB9CisKICAgICBlZGl0aW5nQ29udHJvbGxlckZvck1hcmtlcihlZGl0YWJsZU1hcmtl
cikKICAgICB7CiAgICAgICAgIHN3aXRjaCAoZWRpdGFibGVNYXJrZXIudHlwZSkgewpAQCAtNjIw
LDYgKzYyNSw4IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yID0gY2xhc3MgVGV4dEVkaXRvciBl
eHRlbmRzIFdlYkluc3BlY3Rvci5WaWV3CiAgICAgICAgICAgICByZXR1cm4gbmV3IFdlYkluc3Bl
Y3Rvci5Db2RlTWlycm9yR3JhZGllbnRFZGl0aW5nQ29udHJvbGxlcih0aGlzLl9jb2RlTWlycm9y
LCBlZGl0YWJsZU1hcmtlcik7CiAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIu
VHlwZS5DdWJpY0JlemllcjoKICAgICAgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNv
ZGVNaXJyb3JCZXppZXJFZGl0aW5nQ29udHJvbGxlcih0aGlzLl9jb2RlTWlycm9yLCBlZGl0YWJs
ZU1hcmtlcik7CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIuVHlwZS5TcHJp
bmc6CisgICAgICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5Db2RlTWlycm9yU3ByaW5n
RWRpdGluZ0NvbnRyb2xsZXIodGhpcy5fY29kZU1pcnJvciwgZWRpdGFibGVNYXJrZXIpOwogICAg
ICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuQ29kZU1p
cnJvckVkaXRpbmdDb250cm9sbGVyKHRoaXMuX2NvZGVNaXJyb3IsIGVkaXRhYmxlTWFya2VyKTsK
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvVmlzdWFsU3R5bGVDb21tYVNlcGFyYXRlZEtleXdvcmRFZGl0b3IuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUNvbW1hU2Vw
YXJhdGVkS2V5d29yZEVkaXRvci5qcwppbmRleCBjNjZiM2VhZTU1MWFjMDQxNGU3OGY1M2MwYWIx
Yjc1NDIxZTc5MzI3Li45YjQ1NDU4ZGI2Y2JjMTM5MzhhZmFiNTE4MTRiOGM0MzgzNTJmNzEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1
YWxTdHlsZUNvbW1hU2VwYXJhdGVkS2V5d29yZEVkaXRvci5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUNvbW1hU2VwYXJhdGVkS2V5
d29yZEVkaXRvci5qcwpAQCAtMTExLDcgKzExMSw5IEBAIFdlYkluc3BlY3Rvci5WaXN1YWxTdHls
ZUNvbW1hU2VwYXJhdGVkS2V5d29yZEVkaXRvciA9IGNsYXNzIFZpc3VhbFN0eWxlQ29tbWFTZXBh
CiAgICAgICAgICAgICB2YWx1ZXNbaV0gKz0gKG9wZW5QYXJlbnRoZXNlcyAtIGNsb3NlZFBhcmVu
dGhlc2lzID09PSAxKSA/ICIpIiA6ICIiOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHZhbHVl
cy5sZW5ndGggPT09IDEgJiYgIXZhbHVlc1swXS5pbmNsdWRlcygiKCIpICYmICF2YWx1ZXNbMF0u
aW5jbHVkZXMoIikiKSkKKyAgICAgICAgLy8gQWxsb3cgc3BsaXR0aW5nIHdpdGggcGFyZW50aGVz
aXMgaWYgdGhlIHBhcmVudGhlc2lzIGRvZXMgbm90IGhhdmUgYW55IGNvbW1hcy4KKyAgICAgICAg
bGV0IGhhc1BhcmVudGhlc2lzID0gdmFsdWVzWzBdICYmICh2YWx1ZXNbMF0uaW5jbHVkZXMoIigi
KSB8fCB2YWx1ZXNbMF0uaW5jbHVkZXMoIikiKSk7CisgICAgICAgIGlmICh2YWx1ZXMubGVuZ3Ro
ID09PSAxICYmICghaGFzUGFyZW50aGVzaXMgfHwgIS9cKFteXCldKixbXlwpXSpcKS8udGVzdCh2
YWx1ZXNbMF0pKSkKICAgICAgICAgICAgIHZhbHVlcyA9IHZhbHVlc1swXS5zcGxpdCgvXHMqLFxz
Ki8pOwogCiAgICAgICAgIGZvciAobGV0IHZhbHVlIG9mIHZhbHVlcykKQEAgLTE3Niw3ICsxNzgs
NyBAQCBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVDb21tYVNlcGFyYXRlZEtleXdvcmRFZGl0b3Ig
PSBjbGFzcyBWaXN1YWxTdHlsZUNvbW1hU2VwYQogICAgICAgICBsZXQgY291bnQgPSAwOwogICAg
ICAgICB3aGlsZSAoY291bnQgPCB2YWx1ZXNDb3VudCkgewogICAgICAgICAgICAgaWYgKGNvdW50
ID4gMCkKLSAgICAgICAgICAgICAgICB0ZXh0ICs9ICIsIjsKKyAgICAgICAgICAgICAgICB0ZXh0
ICs9ICIsICI7CiAKICAgICAgICAgICAgIGZvciAobGV0IHZhbHVlTGlzdCBvZiB2YWx1ZUxpc3Rz
KQogICAgICAgICAgICAgICAgIHRleHQgKz0gdmFsdWVMaXN0W2NvdW50ID4gdmFsdWVMaXN0Lmxl
bmd0aCAtIDEgPyB2YWx1ZUxpc3QubGVuZ3RoIC0gMSA6IGNvdW50XSArICIgIjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxl
VGltaW5nRWRpdG9yLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Zpc3VhbFN0eWxlVGltaW5nRWRpdG9yLmNzcwppbmRleCBjNzFhZGJjNWRjMjYzZWUzNzcz
ZTA5MGI1ZWQ2YmJlNGQ4MTQyYTkwLi40YjJjZmJlMzIwYmE5NjZjNWFiOGRmZjM2MzJmYTU5MTYw
MDI5YWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9WaXN1YWxTdHlsZVRpbWluZ0VkaXRvci5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVUaW1pbmdFZGl0b3IuY3NzCkBAIC0z
MSwxMiArMzEsMTMgQEAKICAgICBvcmRlcjogMTsKIH0KIAotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0
eS1jb250YWluZXIudGltaW5nLWVkaXRvciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUt
Y29udGFpbmVyID4gLmlubGluZS1zd2F0Y2guYmV6aWVyIHsKKy52aXN1YWwtc3R5bGUtcHJvcGVy
dHktY29udGFpbmVyLnRpbWluZy1lZGl0b3IgPiAudmlzdWFsLXN0eWxlLXByb3BlcnR5LXZhbHVl
LWNvbnRhaW5lciA+IC5pbmxpbmUtc3dhdGNoOm1hdGNoZXMoLmJlemllciwgLnNwcmluZykgewog
ICAgIHdpZHRoOiAyM3B4OwogICAgIGhlaWdodDogMjBweDsKIH0KIAotLnZpc3VhbC1zdHlsZS1w
cm9wZXJ0eS1jb250YWluZXIudGltaW5nLWVkaXRvciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHkt
dmFsdWUtY29udGFpbmVyOm5vdCguYmV6aWVyLXZhbHVlKSA+IC5pbmxpbmUtc3dhdGNoLmJlemll
ciB7CisudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRhaW5lci50aW1pbmctZWRpdG9yID4gLnZp
c3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWluZXI6bm90KC5iZXppZXItdmFsdWUpID4g
LmlubGluZS1zd2F0Y2guYmV6aWVyLAorLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIu
dGltaW5nLWVkaXRvciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyOm5v
dCguc3ByaW5nLXZhbHVlKSA+IC5pbmxpbmUtc3dhdGNoLnNwcmluZyB7CiAgICAgZGlzcGxheTog
bm9uZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvVmlzdWFsU3R5bGVUaW1pbmdFZGl0b3IuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVRpbWluZ0VkaXRvci5qcwppbmRleCBi
ZDBmMjM4MGY2ZmMwZGE2ZDNkODRhNzEzYzc4ZTRmOWY2MTk0Yjg0Li5mOWQwZWNiZjEyMzljMDk4
MGFkZmEyODMxYmZmOWMxOTM1ZGFjNjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVRpbWluZ0VkaXRvci5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVRpbWlu
Z0VkaXRvci5qcwpAQCAtMzEsODEgKzMxLDEzMSBAQCBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVU
aW1pbmdFZGl0b3IgPSBjbGFzcyBWaXN1YWxTdHlsZVRpbWluZ0VkaXRvciBleHRlbmRzIFdlYgog
CiAgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJ0aW1pbmctZWRpdG9yIik7CiAK
LSAgICAgICAgdGhpcy5fY3VzdG9tVmFsdWVPcHRpb25FbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgib3B0aW9uIik7Ci0gICAgICAgIHRoaXMuX2N1c3RvbVZhbHVlT3B0aW9uRWxlbWVu
dC52YWx1ZSA9ICJjdXN0b20iOwotICAgICAgICB0aGlzLl9jdXN0b21WYWx1ZU9wdGlvbkVsZW1l
bnQudGV4dCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ3VzdG9tIik7Ci0gICAgICAgIHRoaXMu
X2tleXdvcmRTZWxlY3RFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2N1c3RvbVZhbHVlT3B0aW9u
RWxlbWVudCk7CisgICAgICAgIHRoaXMuX2tleXdvcmRTZWxlY3RFbGVtZW50LmNyZWF0ZUNoaWxk
KCJociIpOworCisgICAgICAgIHRoaXMuX2N1c3RvbUJlemllck9wdGlvbkVsZW1lbnQgPSB0aGlz
Ll9rZXl3b3JkU2VsZWN0RWxlbWVudC5jcmVhdGVDaGlsZCgib3B0aW9uIik7CisgICAgICAgIHRo
aXMuX2N1c3RvbUJlemllck9wdGlvbkVsZW1lbnQudmFsdWUgPSAiYmV6aWVyIjsKKyAgICAgICAg
dGhpcy5fY3VzdG9tQmV6aWVyT3B0aW9uRWxlbWVudC50ZXh0ID0gV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJCZXppZXIiKTsKKworICAgICAgICB0aGlzLl9jdXN0b21TcHJpbmdPcHRpb25FbGVtZW50
ID0gdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQuY3JlYXRlQ2hpbGQoIm9wdGlvbiIpOworICAg
ICAgICB0aGlzLl9jdXN0b21TcHJpbmdPcHRpb25FbGVtZW50LnZhbHVlID0gInNwcmluZyI7Cisg
ICAgICAgIHRoaXMuX2N1c3RvbVNwcmluZ09wdGlvbkVsZW1lbnQudGV4dCA9IFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiU3ByaW5nIik7CiAKICAgICAgICAgdGhpcy5fYmV6aWVyU3dhdGNoID0gbmV3
IFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2goV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5UeXBl
LkJlemllcik7CiAgICAgICAgIHRoaXMuX2JlemllclN3YXRjaC5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5JbmxpbmVTd2F0Y2guRXZlbnQuVmFsdWVDaGFuZ2VkLCB0aGlzLl9iZXppZXJT
d2F0Y2hWYWx1ZUNoYW5nZWQsIHRoaXMpOwogICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmFw
cGVuZENoaWxkKHRoaXMuX2JlemllclN3YXRjaC5lbGVtZW50KTsKLSAgICB9Ci0KLSAgICAvLyBQ
dWJsaWMKLQotICAgIGdldCBiZXppZXJWYWx1ZSgpCi0gICAgewotICAgICAgICBsZXQgYmV6aWVy
ID0gdGhpcy5fYmV6aWVyU3dhdGNoLnZhbHVlOwotICAgICAgICBpZiAoIWJlemllcikKLSAgICAg
ICAgICAgIHJldHVybiBudWxsOwogCi0gICAgICAgIHJldHVybiBiZXppZXIudG9TdHJpbmcoKTsK
LSAgICB9Ci0KLSAgICBzZXQgYmV6aWVyVmFsdWUodGV4dCkKLSAgICB7Ci0gICAgICAgIGxldCBi
ZXppZXIgPSBXZWJJbnNwZWN0b3IuQ3ViaWNCZXppZXIuZnJvbVN0cmluZyh0ZXh0KTsKLSAgICAg
ICAgdGhpcy5fYmV6aWVyU3dhdGNoLnZhbHVlID0gYmV6aWVyOworICAgICAgICB0aGlzLl9zcHJp
bmdTd2F0Y2ggPSBuZXcgV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaChXZWJJbnNwZWN0b3IuSW5s
aW5lU3dhdGNoLlR5cGUuU3ByaW5nKTsKKyAgICAgICAgdGhpcy5fc3ByaW5nU3dhdGNoLmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5FdmVudC5WYWx1ZUNoYW5nZWQs
IHRoaXMuX3NwcmluZ1N3YXRjaFZhbHVlQ2hhbmdlZCwgdGhpcyk7CisgICAgICAgIHRoaXMuY29u
dGVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fc3ByaW5nU3dhdGNoLmVsZW1lbnQpOwogICAg
IH0KIAogICAgIC8vIFByb3RlY3RlZAogCiAgICAgZ2V0IHZhbHVlKCkKICAgICB7Ci0gICAgICAg
IHJldHVybiB0aGlzLl9jdXN0b21WYWx1ZU9wdGlvbkVsZW1lbnQuc2VsZWN0ZWQgPyB0aGlzLmJl
emllclZhbHVlIDogc3VwZXIudmFsdWU7CisgICAgICAgIGlmICh0aGlzLl9jdXN0b21CZXppZXJP
cHRpb25FbGVtZW50LnNlbGVjdGVkKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2JlemllclZh
bHVlOworCisgICAgICAgIGlmICh0aGlzLl9jdXN0b21TcHJpbmdPcHRpb25FbGVtZW50LnNlbGVj
dGVkKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NwcmluZ1ZhbHVlOworCisgICAgICAgIHJl
dHVybiBzdXBlci52YWx1ZTsKICAgICB9CiAKICAgICBzZXQgdmFsdWUodmFsdWUpCiAgICAgewot
ICAgICAgICB0aGlzLmJlemllclZhbHVlID0gdmFsdWU7CisgICAgICAgIHRoaXMuX2JlemllclZh
bHVlID0gdmFsdWU7CisgICAgICAgIHRoaXMuX3NwcmluZ1ZhbHVlID0gdmFsdWU7CiAgICAgICAg
IGlmICh0aGlzLnZhbHVlSXNTdXBwb3J0ZWRLZXl3b3JkKHZhbHVlKSkgewogICAgICAgICAgICAg
c3VwZXIudmFsdWUgPSB2YWx1ZTsKLSAgICAgICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuY2xh
c3NMaXN0LnJlbW92ZSgiYmV6aWVyLXZhbHVlIik7CisgICAgICAgICAgICB0aGlzLmNvbnRlbnRF
bGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoImJlemllci12YWx1ZSIsICJzcHJpbmctdmFsdWUiKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGxldCBiZXppZXIgPSB0
aGlzLmJlemllclZhbHVlOwotICAgICAgICB0aGlzLl9jdXN0b21WYWx1ZU9wdGlvbkVsZW1lbnQu
c2VsZWN0ZWQgPSAhIWJlemllcjsKKyAgICAgICAgbGV0IGJlemllciA9IHRoaXMuX2JlemllclZh
bHVlOworICAgICAgICB0aGlzLl9jdXN0b21CZXppZXJPcHRpb25FbGVtZW50LnNlbGVjdGVkID0g
ISFiZXppZXI7CiAgICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgi
YmV6aWVyLXZhbHVlIiwgISFiZXppZXIpOwotICAgICAgICB0aGlzLnNwZWNpYWxQcm9wZXJ0eVBs
YWNlaG9sZGVyRWxlbWVudC5oaWRkZW4gPSAhIWJlemllcjsKLSAgICAgICAgaWYgKCFiZXppZXIp
CisKKyAgICAgICAgbGV0IHNwcmluZyA9IHRoaXMuX3NwcmluZ1ZhbHVlOworICAgICAgICB0aGlz
Ll9jdXN0b21TcHJpbmdPcHRpb25FbGVtZW50LnNlbGVjdGVkID0gISFzcHJpbmc7CisgICAgICAg
IHRoaXMuY29udGVudEVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgic3ByaW5nLXZhbHVlIiwgISFz
cHJpbmcpOworCisgICAgICAgIHRoaXMuc3BlY2lhbFByb3BlcnR5UGxhY2Vob2xkZXJFbGVtZW50
LmhpZGRlbiA9ICEhYmV6aWVyIHx8ICEhc3ByaW5nOworICAgICAgICBpZiAoIWJlemllciAmJiAh
c3ByaW5nKQogICAgICAgICAgICAgc3VwZXIudmFsdWUgPSB2YWx1ZTsKICAgICB9CiAKICAgICBn
ZXQgc3ludGhlc2l6ZWRWYWx1ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fY3VzdG9t
VmFsdWVPcHRpb25FbGVtZW50LnNlbGVjdGVkID8gdGhpcy5iZXppZXJWYWx1ZSA6IHN1cGVyLnN5
bnRoZXNpemVkVmFsdWU7CisgICAgICAgIGlmICh0aGlzLl9jdXN0b21CZXppZXJPcHRpb25FbGVt
ZW50LnNlbGVjdGVkKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2JlemllclZhbHVlOworCisg
ICAgICAgIGlmICh0aGlzLl9jdXN0b21TcHJpbmdPcHRpb25FbGVtZW50LnNlbGVjdGVkKQorICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuX3NwcmluZ1ZhbHVlOworCisgICAgICAgIHJldHVybiBzdXBl
ci5zeW50aGVzaXplZFZhbHVlOwogICAgIH0KIAogICAgIHBhcnNlVmFsdWUodGV4dCkKICAgICB7
Ci0gICAgICAgIHJldHVybiAvKGN1YmljLWJlemllclwoLitcKSkvLmV4ZWModGV4dCk7CisgICAg
ICAgIHJldHVybiAvKCg/OmN1YmljLWJlemllcnxzcHJpbmcpXCguK1wpKS8uZXhlYyh0ZXh0KTsK
ICAgICB9CiAKICAgICAvLyBQcml2YXRlCiAKKyAgICBnZXQgX2JlemllclZhbHVlKCkKKyAgICB7
CisgICAgICAgIGxldCBiZXppZXIgPSB0aGlzLl9iZXppZXJTd2F0Y2gudmFsdWU7CisgICAgICAg
IGlmICghYmV6aWVyKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICAgICAgcmV0dXJu
IGJlemllci50b1N0cmluZygpOworICAgIH0KKworICAgIHNldCBfYmV6aWVyVmFsdWUodGV4dCkK
KyAgICB7CisgICAgICAgIHRoaXMuX2JlemllclN3YXRjaC52YWx1ZSA9IFdlYkluc3BlY3Rvci5D
dWJpY0Jlemllci5mcm9tU3RyaW5nKHRleHQpOworICAgIH0KKworICAgIGdldCBfc3ByaW5nVmFs
dWUoKQorICAgIHsKKyAgICAgICAgbGV0IHNwcmluZyA9IHRoaXMuX3NwcmluZ1N3YXRjaC52YWx1
ZTsKKyAgICAgICAgaWYgKCFzcHJpbmcpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAg
ICAgICByZXR1cm4gc3ByaW5nLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgc2V0IF9zcHJpbmdW
YWx1ZSh0ZXh0KQorICAgIHsKKyAgICAgICAgdGhpcy5fc3ByaW5nU3dhdGNoLnZhbHVlID0gV2Vi
SW5zcGVjdG9yLlNwcmluZy5mcm9tU3RyaW5nKHRleHQpOworICAgIH0KKwogICAgIF9oYW5kbGVL
ZXl3b3JkQ2hhbmdlZCgpCiAgICAgewogICAgICAgICBzdXBlci5faGFuZGxlS2V5d29yZENoYW5n
ZWQoKTsKLSAgICAgICAgbGV0IGN1c3RvbU9wdGlvblNlbGVjdGVkID0gdGhpcy5fY3VzdG9tVmFs
dWVPcHRpb25FbGVtZW50LnNlbGVjdGVkOwotICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmNs
YXNzTGlzdC50b2dnbGUoImJlemllci12YWx1ZSIsICEhY3VzdG9tT3B0aW9uU2VsZWN0ZWQpOwot
ICAgICAgICB0aGlzLnNwZWNpYWxQcm9wZXJ0eVBsYWNlaG9sZGVyRWxlbWVudC5oaWRkZW4gPSAh
IWN1c3RvbU9wdGlvblNlbGVjdGVkOwotICAgICAgICBpZiAoY3VzdG9tT3B0aW9uU2VsZWN0ZWQp
Ci0gICAgICAgICAgICB0aGlzLmJlemllclZhbHVlID0gImxpbmVhciI7CisKKyAgICAgICAgbGV0
IGN1c3RvbUJlemllck9wdGlvblNlbGVjdGVkID0gdGhpcy5fY3VzdG9tQmV6aWVyT3B0aW9uRWxl
bWVudC5zZWxlY3RlZDsKKyAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5jbGFzc0xpc3QudG9n
Z2xlKCJiZXppZXItdmFsdWUiLCAhIWN1c3RvbUJlemllck9wdGlvblNlbGVjdGVkKTsKKyAgICAg
ICAgaWYgKGN1c3RvbUJlemllck9wdGlvblNlbGVjdGVkKQorICAgICAgICAgICAgdGhpcy5fYmV6
aWVyVmFsdWUgPSAibGluZWFyIjsKKworICAgICAgICBsZXQgY3VzdG9tU3ByaW5nT3B0aW9uU2Vs
ZWN0ZWQgPSB0aGlzLl9jdXN0b21TcHJpbmdPcHRpb25FbGVtZW50LnNlbGVjdGVkOworICAgICAg
ICB0aGlzLmNvbnRlbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoInNwcmluZy12YWx1ZSIsICEh
Y3VzdG9tU3ByaW5nT3B0aW9uU2VsZWN0ZWQpOworICAgICAgICBpZiAoY3VzdG9tU3ByaW5nT3B0
aW9uU2VsZWN0ZWQpCisgICAgICAgICAgICB0aGlzLl9zcHJpbmdWYWx1ZSA9ICIxIDEwMCAxMCAw
IjsKKworICAgICAgICB0aGlzLnNwZWNpYWxQcm9wZXJ0eVBsYWNlaG9sZGVyRWxlbWVudC5oaWRk
ZW4gPSAhIWN1c3RvbUJlemllck9wdGlvblNlbGVjdGVkIHx8ICEhY3VzdG9tU3ByaW5nT3B0aW9u
U2VsZWN0ZWQ7CiAgICAgfQogCiAgICAgX2JlemllclN3YXRjaFZhbHVlQ2hhbmdlZChldmVudCkK
ICAgICB7CiAgICAgICAgIHRoaXMuX3ZhbHVlRGlkQ2hhbmdlKCk7CiAgICAgfQorCisgICAgX3Nw
cmluZ1N3YXRjaFZhbHVlQ2hhbmdlZChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX3ZhbHVl
RGlkQ2hhbmdlKCk7CisgICAgfQogfTsK
</data>
<flag name="review"
          id="309874"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286684</attachid>
            <date>2016-08-22 23:55:38 -0700</date>
            <delta_ts>2016-08-23 00:25:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>159315.diff</filename>
            <type>text/plain</type>
            <size>49800</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDJlNDkyNTQuLjA4YjYzMzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE0NSBAQAogMjAxNi0wOC0yMiAgRGV2aW4gUm91c3Nv
ICA8ZGNyb3Vzc28rd2Via2l0QGdtYWlsLmNvbT4KIAorICAgICAgICBXZWIgSW5zcGVjdG9yOiBB
ZGQgdmlzdWFsIGVkaXRvciBmb3Igc3ByaW5nKCkgdGltaW5nLWZ1bmN0aW9uCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTkzMTUKKworICAgICAgICBS
ZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8uCisKKyAgICAgICAgKiBMb2NhbGl6YXRpb25zL2Vu
Lmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9NYWlu
Lmh0bWw6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVzLmpzOgorICAg
ICAgICAoTnVtYmVyLnByb3RvdHlwZS5tYXhEZWNpbWFscyk6CisgICAgICAgIExpbWl0cyB0aGUg
bnVtYmVyIG9mIGRlY2ltYWxzIGZvciB0aGUgbnVtYmVyIG9iamVjdCB2aWEgcm91bmRpbmcuCisK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NvZGVNaXJyb3JTcHJpbmdFZGl0
aW5nQ29udHJvbGxlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2RlTWlycm9yU3ByaW5n
RWRpdGluZ0NvbnRyb2xsZXIucHJvdG90eXBlLmdldCBpbml0aWFsVmFsdWUpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkNvZGVNaXJyb3JTcHJpbmdFZGl0aW5nQ29udHJvbGxlci5wcm90b3R5cGUu
Z2V0IGNzc0NsYXNzTmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29kZU1pcnJvclNwcmlu
Z0VkaXRpbmdDb250cm9sbGVyLnByb3RvdHlwZS5wb3BvdmVyV2lsbFByZXNlbnQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNvZGVNaXJyb3JTcHJpbmdFZGl0aW5nQ29udHJvbGxlci5wcm90b3R5
cGUucG9wb3ZlckRpZFByZXNlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvZGVNaXJyb3JT
cHJpbmdFZGl0aW5nQ29udHJvbGxlci5wcm90b3R5cGUucG9wb3ZlckRpZERpc21pc3MpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNvZGVNaXJyb3JTcHJpbmdFZGl0aW5nQ29udHJvbGxlci5wcm90
b3R5cGUuX3NwcmluZ0VkaXRvclNwcmluZ0NoYW5nZWQpOgorICAgICAgICBDb250cm9sbGVyIGZv
ciBTcHJpbmcgZWRpdG9ycyBpbnNpZGUgQ29kZU1pcnJvciBpbnN0YW5jZXMuCisKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL01vZGVscy9HZW9tZXRyeS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TcHJpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZy5mcm9tVmFsdWVzKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TcHJpbmcuZnJvbVN0cmluZyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU3ByaW5nLnByb3RvdHlwZS5jb3B5KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TcHJp
bmcucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TcHJpbmcucHJv
dG90eXBlLnNvbHZlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TcHJpbmcucHJvdG90eXBlLmNh
bGN1bGF0ZUR1cmF0aW9uKToKKyAgICAgICAgU3ByaW5nIGRhdGEgY2xhc3MgYmFzZWQgb24gPGh0
dHBzOi8vd2Via2l0Lm9yZy9kZW1vcy9zcHJpbmcvPi4KKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvTW9kZWxzL1RleHRNYXJrZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dE1hcmtl
ci5UeXBlKToKKyAgICAgICAgQWRkZWQgU3ByaW5nIG1hcmtlciB0eXBlLgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvci5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvci5wcm90b3R5
cGUuX2NyZWF0ZUlubGluZVN3YXRjaGVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHls
ZURlY2xhcmF0aW9uVGV4dEVkaXRvci5wcm90b3R5cGUuX2NyZWF0ZUlubGluZVN3YXRjaGVzLnVw
ZGF0ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0
b3IucHJvdG90eXBlLl9pbmxpbmVTd2F0Y2hWYWx1ZUNoYW5nZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLnByb3RvdHlwZS5faW5saW5lU3dh
dGNoVmFsdWVDaGFuZ2VkLnVwZGF0ZSk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L0NvZGVNaXJyb3JUZXh0TWFya2Vycy5qczoKKyAgICAgICAgKGNyZWF0ZUNvZGVNaXJyb3JTcHJp
bmdUZXh0TWFya2Vycyk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0lubGluZVN3
YXRjaC5jc3M6CisgICAgICAgICguaW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXppZXIsIC5zcHJp
bmcpKToKKyAgICAgICAgKC5pbmxpbmUtc3dhdGNoOm1hdGNoZXMoLmJlemllciwgLnNwcmluZyk6
aG92ZXIpOgorICAgICAgICAoLmlubGluZS1zd2F0Y2g6bWF0Y2hlcyguYmV6aWVyLCAuc3ByaW5n
KTphY3RpdmUpOgorICAgICAgICAoLmlubGluZS1zd2F0Y2g6bWF0Y2hlcyguYmV6aWVyLCAuc3By
aW5nKSA+IHNwYW4pOgorICAgICAgICAoLmlubGluZS1zd2F0Y2guYmV6aWVyKTogRGVsZXRlZC4K
KyAgICAgICAgKC5pbmxpbmUtc3dhdGNoLmJlemllcjpob3Zlcik6IERlbGV0ZWQuCisgICAgICAg
ICguaW5saW5lLXN3YXRjaC5iZXppZXI6YWN0aXZlKTogRGVsZXRlZC4KKyAgICAgICAgKC5pbmxp
bmUtc3dhdGNoLmJlemllciA+IHNwYW4pOiBEZWxldGVkLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9WaWV3cy9JbmxpbmVTd2F0Y2guanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSW5saW5l
U3dhdGNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2gucHJvdG90eXBlLl9m
YWxsYmFja1ZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2gucHJvdG90
eXBlLl9zd2F0Y2hFbGVtZW50Q2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSW5saW5l
U3dhdGNoLnByb3RvdHlwZS5fdmFsdWVFZGl0b3JWYWx1ZURpZENoYW5nZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUpOgorICAgICAgICBBZGRlZCBzdXBwb3J0IGZv
ciBTcHJpbmcgZWRpdG9yIElubGluZSBTd2F0Y2hlcy4KKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvU291cmNlQ29kZVRleHRFZGl0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
U291cmNlQ29kZVRleHRFZGl0b3IucHJvdG90eXBlLl91cGRhdGVFZGl0YWJsZU1hcmtlcnMpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGVUZXh0RWRpdG9yLnByb3RvdHlwZS5fdG9r
ZW5UcmFja2luZ0NvbnRyb2xsZXJIaWdobGlnaHRlZE1hcmtlZEV4cHJlc3Npb24pOgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9TcHJpbmdFZGl0b3IuY3NzOgorICAgICAgICAoLnNw
cmluZy1lZGl0b3IpOgorICAgICAgICAoLnNwcmluZy1lZGl0b3IgPiAuc3ByaW5nLXByZXZpZXcp
OgorICAgICAgICAoLnNwcmluZy1lZGl0b3IgPiAuc3ByaW5nLXByZXZpZXcgPiBkaXYpOgorICAg
ICAgICAoLnNwcmluZy1lZGl0b3IgPiAuc3ByaW5nLXRpbWluZyk6CisgICAgICAgICguc3ByaW5n
LWVkaXRvciA+IC5zcHJpbmctdGltaW5nID4gZGl2KToKKyAgICAgICAgKC5zcHJpbmctZWRpdG9y
ID4gLnNwcmluZy10aW1pbmc6bWF0Y2hlcyg6OmJlZm9yZSwgOjphZnRlcikpOgorICAgICAgICAo
LnNwcmluZy1lZGl0b3IgPiAuc3ByaW5nLXRpbWluZzo6YmVmb3JlKToKKyAgICAgICAgKC5zcHJp
bmctZWRpdG9yID4gLnNwcmluZy10aW1pbmc6OmFmdGVyKToKKyAgICAgICAgKC5zcHJpbmctZWRp
dG9yID4gOm1hdGNoZXMoLnNwcmluZy1wcmV2aWV3LCAuc3ByaW5nLXRpbWluZykgPiBkaXYpOgor
ICAgICAgICAoLnNwcmluZy1lZGl0b3IgPiAuYW5pbWF0ZTptYXRjaGVzKC5zcHJpbmctcHJldmll
dywgLnNwcmluZy10aW1pbmcpID4gZGl2KToKKyAgICAgICAgKC5zcHJpbmctZWRpdG9yID4gLm51
bWJlci1pbnB1dC1jb250YWluZXIgPiAubnVtYmVyLWlucHV0LXJvdyk6CisgICAgICAgICguc3By
aW5nLWVkaXRvciA+IC5udW1iZXItaW5wdXQtY29udGFpbmVyID4gLm51bWJlci1pbnB1dC1yb3cg
PiAubnVtYmVyLWlucHV0LXJvdy10aXRsZSk6CisgICAgICAgICguc3ByaW5nLWVkaXRvciA+IC5u
dW1iZXItaW5wdXQtY29udGFpbmVyID4gLm51bWJlci1pbnB1dC1yb3cgPiBpbnB1dCk6CisgICAg
ICAgICguc3ByaW5nLWVkaXRvciA+IC5udW1iZXItaW5wdXQtY29udGFpbmVyID4gLm51bWJlci1p
bnB1dC1yb3cgPiBpbnB1dFt0eXBlPSJyYW5nZSJdKToKKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvU3ByaW5nRWRpdG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZ0Vk
aXRvcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3ByaW5nRWRpdG9yLnByb3RvdHlwZS5nZXQg
ZWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3ByaW5nRWRpdG9yLnByb3RvdHlwZS5z
ZXQgc3ByaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TcHJpbmdFZGl0b3IucHJvdG90eXBl
LmdldCBzcHJpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZ0VkaXRvci5wcm90b3R5
cGUuX2hhbmRsZU51bWJlcklucHV0SW5wdXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmlu
Z0VkaXRvci5wcm90b3R5cGUuX2hhbmRsZU51bWJlcklucHV0S2V5ZG93bik6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuU3ByaW5nRWRpdG9yLnByb3RvdHlwZS5faGFuZGxlTnVtYmVyU2xpZGVySW5w
dXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZ0VkaXRvci5wcm90b3R5cGUuX2hhbmRs
ZU51bWJlclNsaWRlck1vdXNlZG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3ByaW5nRWRp
dG9yLnByb3RvdHlwZS5faGFuZGxlTnVtYmVyU2xpZGVyTW91c2V1cCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU3ByaW5nRWRpdG9yLnByb3RvdHlwZS5fY2hhbmdlU3ByaW5nRm9ySW5wdXQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNwcmluZ0VkaXRvci5wcm90b3R5cGUuX3Jlc2V0UHJldmll
d0FuaW1hdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3ByaW5nRWRpdG9yLnByb3RvdHlw
ZS5fdXBkYXRlUHJldmlld0FuaW1hdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3ByaW5n
RWRpdG9yLkV2ZW50KToKKyAgICAgICAgVmlzdWFsIGVkaXRvciBmb3IgQ1NTIFNwcmluZyB0aW1p
bmcgZnVuY3Rpb24gdmFsdWVzLiAgT3JnYW5pemVkIGludG8gNSByb3dzOgorICAgICAgICAgLSBQ
cmV2aWV3OiBzaG93cyBtb3ZlbWVudCBvZiBzcHJpbmcgYW5kIHRvdGFsIGR1cmF0aW9uCisgICAg
ICAgICAtIE1hc3M6IHNsaWRlciBhbmQgaW5wdXQgZm9yICJtYXNzIiBwYXJhbWV0ZXIKKyAgICAg
ICAgIC0gU3RpZmZuZXNzOiBzbGlkZXIgYW5kIGlucHV0IGZvciAic3RpZmZuZXNzIiBwYXJhbWV0
ZXIKKyAgICAgICAgIC0gRGFtcGluZzogc2xpZGVyIGFuZCBpbnB1dCBmb3IgImRhbXBpbmciIHBh
cmFtZXRlcgorICAgICAgICAgLSBJbml0aWFsIFZlbG9jaXR5OiBzbGlkZXIgYW5kIGlucHV0IGZv
ciAiaW5pdGlhbCB2ZWxvY2l0eSIgcGFyYW1ldGVyCisgICAgICAgIFRoZSBwcmV2aWV3IGFuaW1h
dGlvbiB3aWxsIGxvb3AgaW5kZWZpbml0ZWx5IHVudGlsIHRoZSB1c2VyIGNsaWNrcyB0aGUgYW5p
bWF0aW9uIHJvdworICAgICAgICBvciBjaGFuZ2VzIHRoZSB2YWx1ZSBvZiBvbmUgb2YgdGhlIHBh
cmFtZXRlcnMsIGF0IHdoaWNoIHBvaW50IHRoZSBkdXJhdGlvbiB3aWxsIGFsc28KKyAgICAgICAg
YmUgcmVjYWxjdWxhdGVkLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9UZXh0RWRp
dG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlLmNyZWF0
ZVNwcmluZ01hcmtlcnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90
eXBlLmVkaXRpbmdDb250cm9sbGVyRm9yTWFya2VyKToKKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvVmlzdWFsU3R5bGVDb21tYVNlcGFyYXRlZEtleXdvcmRFZGl0b3IuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVDb21tYVNlcGFyYXRlZEtleXdvcmRFZGl0b3Iu
cHJvdG90eXBlLnNldCB2YWx1ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVD
b21tYVNlcGFyYXRlZEtleXdvcmRFZGl0b3IucHJvdG90eXBlLl9nZW5lcmF0ZVRleHRGcm9tTG9u
Z2hhbmRQcm9wZXJ0aWVzKToKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIENTUyBzcHJpbmcgdGlt
aW5nIGZ1bmN0aW9ucyBieSBhbGxvd2luZyBwYXJlbnRoZXNpcyBpbiBjb21tYSBzZXBhcmF0ZWQK
KyAgICAgICAgdmFsdWVzIHNvIGxvbmcgYXMgdGhlcmUgYXJlIG5vIGNvbW1hcyBpbnNpZGUgdGhl
IHBhcmVudGhlc2lzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHls
ZVRpbWluZ0VkaXRvci5jc3M6CisgICAgICAgICgudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRh
aW5lci50aW1pbmctZWRpdG9yID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWlu
ZXIgPiAuaW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXppZXIsIC5zcHJpbmcpKToKKyAgICAgICAg
KC52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLnRpbWluZy1lZGl0b3IgPiAudmlzdWFs
LXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lcjpub3QoLnNwcmluZy12YWx1ZSkgPiAuaW5s
aW5lLXN3YXRjaC5zcHJpbmcpOgorICAgICAgICAoLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250
YWluZXIudGltaW5nLWVkaXRvciA+IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFp
bmVyID4gLmlubGluZS1zd2F0Y2guYmV6aWVyKTogRGVsZXRlZC4KKyAgICAgICAgKC52aXN1YWwt
c3R5bGUtcHJvcGVydHktY29udGFpbmVyLnRpbWluZy1lZGl0b3IgPiAudmlzdWFsLXN0eWxlLXBy
b3BlcnR5LXZhbHVlLWNvbnRhaW5lcjpub3QoLmJlemllci12YWx1ZSkgPiAuaW5saW5lLXN3YXRj
aC5iZXppZXIpOiBEZWxldGVkLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1
YWxTdHlsZVRpbWluZ0VkaXRvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHls
ZVRpbWluZ0VkaXRvcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVUaW1pbmdF
ZGl0b3IucHJvdG90eXBlLmdldCB2YWx1ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFs
U3R5bGVUaW1pbmdFZGl0b3IucHJvdG90eXBlLnNldCB2YWx1ZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVmlzdWFsU3R5bGVUaW1pbmdFZGl0b3IucHJvdG90eXBlLmdldCBzeW50aGVzaXplZFZh
bHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVRpbWluZ0VkaXRvci5wcm90
b3R5cGUucGFyc2VWYWx1ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVUaW1p
bmdFZGl0b3IucHJvdG90eXBlLmdldCBfYmV6aWVyVmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlZpc3VhbFN0eWxlVGltaW5nRWRpdG9yLnByb3RvdHlwZS5zZXQgX2JlemllclZhbHVlKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVRpbWluZ0VkaXRvci5wcm90b3R5cGUu
Z2V0IF9zcHJpbmdWYWx1ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVUaW1p
bmdFZGl0b3IucHJvdG90eXBlLnNldCBfc3ByaW5nVmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlZpc3VhbFN0eWxlVGltaW5nRWRpdG9yLnByb3RvdHlwZS5faGFuZGxlS2V5d29yZENoYW5n
ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlVGltaW5nRWRpdG9yLnByb3Rv
dHlwZS5fc3ByaW5nU3dhdGNoVmFsdWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5W
aXN1YWxTdHlsZVRpbWluZ0VkaXRvci5wcm90b3R5cGUuZ2V0IGJlemllclZhbHVlKTogUmVuYW1l
ZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVRpbWluZ0VkaXRvci5wcm90b3R5
cGUuc2V0IGJlemllclZhbHVlKTogUmVuYW1lZC4KKyAgICAgICAgRHVwbGljYXRlIEJlemllciBj
dXN0b20gdGltaW5nIGZ1bmN0aW9uIGxvZ2ljIGZvciBTcHJpbmcgdGltaW5nIGZ1bmN0aW9ucy4K
KworMjAxNi0wOC0yMiAgRGV2aW4gUm91c3NvICA8ZGNyb3Vzc28rd2Via2l0QGdtYWlsLmNvbT4K
KwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBTdHlsZXMgLT4gQ29tcHV0ZWQgLT4gQm94IE1vZGVs
IHNob3dzIE5hTiB4IE5hTiBmb3IgaW52aXNpYmxlIGVsZW1lbnRzCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEwMzgKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5n
cy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2Fs
aXplZFN0cmluZ3MuanMKaW5kZXggNzA0YTRhYjU3OTAzYmU4NWQzMWI4OTdlYmUzNTQ3ODU5NDk3
YTY1ZC4uOGViYWUyYTcyNzRiNWRhMmNmZDFhMTJiN2E1ZDIwOGExYmM0OTE1OCAxMDA2NDQKR0lU
IGJpbmFyeSBwYXRjaApkZWx0YSAzMDMKemNtZXghbGw4JHApKHhkUHZaKU1KNDREazYzYEdufDQ2
eklmNDdOYjUjTlklSjBnNnZmeFQoTG5TZkBwN3h+NEI5Cno1M2Q0NEYrJX1SV2hPJSZMO0I8fUN0
R2VMe15uSXFGSiZlX2o5KD80M3NlTUZmP31pI0xuMUAmXmE8SUYjKyV5ewp6TEszKWhmRUktVHQ7
dTE/cEtTMChibkBFK0pwNCN2NDlQKDI5aXNGJXBGZn09RUxzZS04UUZjbEsqTmVCRkpSSyQKentR
Qn48SUJCP31QIXQ3Jjk2TFMwaHx6ZXV5KWglI19TOzVgUjstJHQzfjR9XjJlY1g4Jnxyb1ZwdTZG
KygqP3tKCk00WSFNMEZnYFp7MElORG9EZ1hjZwoKZGVsdGEgMTE1CnpjbWFFR2tNKytAKSh4ZFBu
LUErV2lBfUNfO29IcFUoa0NQOSV1dmN1JXV2RlImeWRUWSMxUEEleitlbCtOKF5BfQp6JCRFTips
bHYxXlpTR0RDTlNLXnxoLTNPe0o0VVhfZGtedFZVT0dXPF5aWX17Z2ZfM2ZgWTNNdGVsdGR7PkFh
P2wKU0xmZ05hRmx3LUZ1ZTQlKFpVTyl0JHw7SGYKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1V0aWxpdGllcy5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvVXRpbGl0aWVzLmpzCmluZGV4IDIxNTBkNjYuLjdi
MGI2YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jh
c2UvVXRpbGl0aWVzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0Jhc2UvVXRpbGl0aWVzLmpzCkBAIC0xMDY5LDYgKzEwNjksMTUgQEAgT2JqZWN0LmRlZmluZVBy
b3BlcnR5KE51bWJlciwgImFiYnJldmlhdGUiLAogICAgIH0KIH0pOwogCitPYmplY3QuZGVmaW5l
UHJvcGVydHkoTnVtYmVyLnByb3RvdHlwZSwgIm1heERlY2ltYWxzIiwKK3sKKyAgICB2YWx1ZShk
ZWNpbWFscykKKyAgICB7CisgICAgICAgIGxldCBwb3dlciA9IDEwICoqIGRlY2ltYWxzOworICAg
ICAgICByZXR1cm4gTWF0aC5yb3VuZCh0aGlzICogcG93ZXIpIC8gcG93ZXI7CisgICAgfQorfSk7
CisKIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShVaW50MzJBcnJheSwgImlzTGl0dGxlRW5kaWFuIiwK
IHsKICAgICB2YWx1ZTogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ29kZU1pcnJvclNwcmluZ0VkaXRpbmdDb250
cm9sbGVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxl
cnMvQ29kZU1pcnJvclNwcmluZ0VkaXRpbmdDb250cm9sbGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjdmMWY5MWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9Db2RlTWlycm9yU3ByaW5nRWRp
dGluZ0NvbnRyb2xsZXIuanMKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNiBEZXZpbiBSb3Vzc28gPGRjcm91c3NvK3dlYmtpdEBnbWFpbC5jb20+LiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCitXZWJJbnNwZWN0b3IuQ29kZU1pcnJvclNwcmluZ0VkaXRp
bmdDb250cm9sbGVyID0gY2xhc3MgQ29kZU1pcnJvclNwcmluZ0VkaXRpbmdDb250cm9sbGVyIGV4
dGVuZHMgV2ViSW5zcGVjdG9yLkNvZGVNaXJyb3JFZGl0aW5nQ29udHJvbGxlcgoreworICAgIC8v
IFB1YmxpYworCisgICAgZ2V0IGluaXRpYWxWYWx1ZSgpCisgICAgeworICAgICAgICByZXR1cm4g
V2ViSW5zcGVjdG9yLlNwcmluZy5mcm9tU3RyaW5nKHRoaXMudGV4dCk7CisgICAgfQorCisgICAg
Z2V0IGNzc0NsYXNzTmFtZSgpCisgICAgeworICAgICAgICByZXR1cm4gInNwcmluZyI7CisgICAg
fQorCisgICAgcG9wb3ZlcldpbGxQcmVzZW50KHBvcG92ZXIpCisgICAgeworICAgICAgICB0aGlz
Ll9zcHJpbmdFZGl0b3IgPSBuZXcgV2ViSW5zcGVjdG9yLlNwcmluZ0VkaXRvcjsKKyAgICAgICAg
dGhpcy5fc3ByaW5nRWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlNwcmluZ0Vk
aXRvci5FdmVudC5TcHJpbmdDaGFuZ2VkLCB0aGlzLl9zcHJpbmdFZGl0b3JTcHJpbmdDaGFuZ2Vk
LCB0aGlzKTsKKyAgICAgICAgcG9wb3Zlci5jb250ZW50ID0gdGhpcy5fc3ByaW5nRWRpdG9yLmVs
ZW1lbnQ7CisgICAgfQorCisgICAgcG9wb3ZlckRpZFByZXNlbnQocG9wb3ZlcikKKyAgICB7Cisg
ICAgICAgIHRoaXMuX3NwcmluZ0VkaXRvci5zcHJpbmcgPSB0aGlzLnZhbHVlOworICAgIH0KKwor
ICAgIHBvcG92ZXJEaWREaXNtaXNzKHBvcG92ZXIpCisgICAgeworICAgICAgICB0aGlzLl9zcHJp
bmdFZGl0b3IucmVtb3ZlTGlzdGVuZXJzKCk7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisg
ICAgX3NwcmluZ0VkaXRvclNwcmluZ0NoYW5nZWQoZXZlbnQpCisgICAgeworICAgICAgICB0aGlz
LnZhbHVlID0gZXZlbnQuZGF0YS5zcHJpbmc7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbCBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAppbmRleCBjMzEwMTAwLi5lZmQ2OGY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCkBAIC0x
NTEsNiArMTUxLDcgQEAKICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL1Np
ZGViYXJQYW5lbC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3Mv
U2xpZGVyLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9Tb3Vy
Y2VDb2RlVGV4dEVkaXRvci5jc3MiPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Vmlld3MvU3ByaW5nRWRpdG9yLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSJWaWV3cy9TdGFja1RyYWNlVmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iVmlld3MvU3RvcmFnZVNpZGViYXJQYW5lbC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iVmlld3MvU3R5bGVSdWxlSWNvbnMuY3NzIj4KQEAgLTYyMSw2ICs2MjIs
NyBAQAogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9Tb3VyY2VDb2RlVGltZWxpbmVUaW1lbGluZURh
dGFHcmlkTm9kZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL1NvdXJjZUNv
ZGVUaW1lbGluZVRyZWVFbGVtZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmll
d3MvU291cmNlTWFwUmVzb3VyY2VUcmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9IlZpZXdzL1NwcmluZ0VkaXRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
IlZpZXdzL1N0YWNrVHJhY2VWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmll
d3MvU3RhY2tlZExpbmVDaGFydC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdz
L1N0b3JhZ2VTaWRlYmFyUGFuZWwuanMiPjwvc2NyaXB0PgpAQCAtNjgwLDYgKzY4Miw3IEBACiAg
ICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0NvZGVNaXJyb3JCZXppZXJFZGl0aW5nQ29udHJv
bGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRyb2xsZXJzL0NvZGVNaXJy
b3JEcmFnVG9BZGp1c3ROdW1iZXJDb250cm9sbGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iQ29udHJvbGxlcnMvQ29kZU1pcnJvckdyYWRpZW50RWRpdGluZ0NvbnRyb2xsZXIuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9Db2RlTWlycm9yU3ByaW5n
RWRpdGluZ0NvbnRyb2xsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250cm9s
bGVycy9Db2RlTWlycm9yVG9rZW5UcmFja2luZ0NvbnRyb2xsZXIuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJDb250cm9sbGVycy9Db2RlTWlycm9yVGV4dEtpbGxDb250cm9sbGVyLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvRE9NVHJlZU1hbmFnZXIu
anMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL0dlb21ldHJ5LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL0dlb21ldHJ5LmpzCmluZGV4IDU5MTBjNjYuLjdlM2Q0YzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9HZW9tZXRyeS5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvR2VvbWV0
cnkuanMKQEAgLTQ3NiwzICs0NzYsOTYgQEAgV2ViSW5zcGVjdG9yLkN1YmljQmV6aWVyLmtleXdv
cmRWYWx1ZXMgPSB7CiAgICAgImVhc2UtaW4tb3V0IjogIFswLjQyLCAwLCAwLjU4LCAxXSwKICAg
ICAibGluZWFyIjogICAgICAgWzAsIDAsIDEsIDFdCiB9OworCitXZWJJbnNwZWN0b3IuU3ByaW5n
ID0gY2xhc3MgU3ByaW5nCit7CisgICAgY29uc3RydWN0b3IobWFzcywgc3RpZmZuZXNzLCBkYW1w
aW5nLCBpbml0aWFsVmVsb2NpdHkpCisgICAgeworICAgICAgICB0aGlzLm1hc3MgPSBNYXRoLm1h
eCgxLCBtYXNzKTsKKyAgICAgICAgdGhpcy5zdGlmZm5lc3MgPSBNYXRoLm1heCgxLCBzdGlmZm5l
c3MpOworICAgICAgICB0aGlzLmRhbXBpbmcgPSBNYXRoLm1heCgwLCBkYW1waW5nKTsKKyAgICAg
ICAgdGhpcy5pbml0aWFsVmVsb2NpdHkgPSBpbml0aWFsVmVsb2NpdHk7CisgICAgfQorCisgICAg
Ly8gU3RhdGljCisKKyAgICBzdGF0aWMgZnJvbVZhbHVlcyh2YWx1ZXMpCisgICAgeworICAgICAg
ICBpZiAoIXZhbHVlcyB8fCB2YWx1ZXMubGVuZ3RoIDwgNCkKKyAgICAgICAgICAgIHJldHVybiBu
dWxsOworCisgICAgICAgIHZhbHVlcyA9IHZhbHVlcy5tYXAoTnVtYmVyKTsKKyAgICAgICAgaWYg
KHZhbHVlcy5pbmNsdWRlcyhOYU4pKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICAg
ICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuU3ByaW5nKC4uLnZhbHVlcyk7CisgICAgfQorCisg
ICAgc3RhdGljIGZyb21TdHJpbmcodGV4dCkKKyAgICB7CisgICAgICAgIGlmICghdGV4dCB8fCAh
dGV4dC5sZW5ndGgpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAgICBsZXQgdHJp
bW1lZFRleHQgPSB0ZXh0LnRvTG93ZXJDYXNlKCkudHJpbSgpOworICAgICAgICBpZiAoIXRyaW1t
ZWRUZXh0Lmxlbmd0aCkKKyAgICAgICAgICAgIHJldHVybiBudWxsOworCisgICAgICAgIGxldCBt
YXRjaGVzID0gdHJpbW1lZFRleHQubWF0Y2goL15zcHJpbmdcKChbXGQuXSspXHMrKFtcZC5dKylc
cysoW1xkLl0rKVxzKyhbLVxkLl0rKVwpJC8pOworICAgICAgICBpZiAoIW1hdGNoZXMpCisgICAg
ICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlNwcmlu
Zy5mcm9tVmFsdWVzKG1hdGNoZXMuc2xpY2UoMSkpOworICAgIH0KKworICAgIC8vIFB1YmxpYwor
CisgICAgY29weSgpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5TcHJp
bmcodGhpcy5tYXNzLCB0aGlzLnN0aWZmbmVzcywgdGhpcy5kYW1waW5nLCB0aGlzLmluaXRpYWxW
ZWxvY2l0eSk7CisgICAgfQorCisgICAgdG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGBzcHJpbmcoJHt0aGlzLm1hc3N9ICR7dGhpcy5zdGlmZm5lc3N9ICR7dGhpcy5kYW1waW5nfSAk
e3RoaXMuaW5pdGlhbFZlbG9jaXR5fSlgOworICAgIH0KKworICAgIHNvbHZlKHQpCisgICAgewor
ICAgICAgICBsZXQgdzAgPSBNYXRoLnNxcnQodGhpcy5zdGlmZm5lc3MgLyB0aGlzLm1hc3MpOwor
ICAgICAgICBsZXQgemV0YSA9IHRoaXMuZGFtcGluZyAvICgyICogTWF0aC5zcXJ0KHRoaXMuc3Rp
ZmZuZXNzICogdGhpcy5tYXNzKSk7CisKKyAgICAgICAgbGV0IHdkID0gMDsKKyAgICAgICAgbGV0
IEEgPSAxOworICAgICAgICBsZXQgQiA9IC10aGlzLmluaXRpYWxWZWxvY2l0eSArIHcwOworICAg
ICAgICBpZiAoemV0YSA8IDEpIHsKKyAgICAgICAgICAgIC8vIFVuZGVyLWRhbXBlZC4KKyAgICAg
ICAgICAgIHdkID0gdzAgKiBNYXRoLnNxcnQoMSAtIHpldGEgKiB6ZXRhKTsKKyAgICAgICAgICAg
IEEgPSAxOworICAgICAgICAgICAgQiA9ICh6ZXRhICogdzAgKyAtdGhpcy5pbml0aWFsVmVsb2Np
dHkpIC8gd2Q7CisgICAgICAgIH0KKworICAgICAgICBpZiAoemV0YSA8IDEpIC8vIFVuZGVyLWRh
bXBlZAorICAgICAgICAgICAgdCA9IE1hdGguZXhwKC10ICogemV0YSAqIHcwKSAqIChBICogTWF0
aC5jb3Mod2QgKiB0KSArIEIgKiBNYXRoLnNpbih3ZCAqIHQpKTsKKyAgICAgICAgZWxzZSAvLyBD
cml0aWNhbGx5IGRhbXBlZCAoaWdub3Jpbmcgb3Zlci1kYW1wZWQgY2FzZSkuCisgICAgICAgICAg
ICB0ID0gKEEgKyBCICogdCkgKiBNYXRoLmV4cCgtdCAqIHcwKTsKKworICAgICAgICByZXR1cm4g
MSAtIHQ7IC8vIE1hcCByYW5nZSBmcm9tIFsxLi4wXSB0byBbMC4uMV0uCisgICAgfQorCisgICAg
Y2FsY3VsYXRlRHVyYXRpb24oZXBzaWxvbikKKyAgICB7CisgICAgICAgIGVwc2lsb24gPSBlcHNp
bG9uIHx8IDAuMDAwMTsKKyAgICAgICAgbGV0IHQgPSAwOworICAgICAgICBsZXQgY3VycmVudCA9
IDA7CisgICAgICAgIGxldCBtaW5pbXVtID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZOworICAg
ICAgICB3aGlsZSAoY3VycmVudCA+PSBlcHNpbG9uIHx8IG1pbmltdW0gPj0gZXBzaWxvbikgewor
ICAgICAgICAgICAgY3VycmVudCA9IE1hdGguYWJzKDEgLSB0aGlzLnNvbHZlKHQpKTsgLy8gVW5k
byB0aGUgcmFuZ2UgbWFwcGluZworICAgICAgICAgICAgaWYgKG1pbmltdW0gPCBlcHNpbG9uICYm
IGN1cnJlbnQgPj0gZXBzaWxvbikKKyAgICAgICAgICAgICAgICBtaW5pbXVtID0gTnVtYmVyLlBP
U0lUSVZFX0lORklOSVRZOyAvLyBTcHJpbmcgcmV2ZXJzZWQgZGlyZWN0aW9uCisgICAgICAgICAg
ICBlbHNlIGlmIChjdXJyZW50IDwgbWluaW11bSkKKyAgICAgICAgICAgICAgICBtaW5pbXVtID0g
Y3VycmVudDsKKyAgICAgICAgICAgIHQgKz0gMC4xOworICAgICAgICB9CisgICAgICAgIHJldHVy
biB0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy9UZXh0TWFya2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL1RleHRNYXJrZXIuanMKaW5kZXggMzIyMGEyNC4uZTNlNzFmNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1RleHRN
YXJrZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L1RleHRNYXJrZXIuanMKQEAgLTgzLDUgKzgzLDYgQEAgV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIu
VHlwZSA9IHsKICAgICBDb2xvcjogInRleHQtbWFya2VyLXR5cGUtY29sb3IiLAogICAgIEdyYWRp
ZW50OiAidGV4dC1tYXJrZXItdHlwZS1ncmFkaWVudCIsCiAgICAgUGxhaW46ICJ0ZXh0LW1hcmtl
ci10eXBlLXBsYWluIiwKLSAgICBDdWJpY0JlemllcjogInRleHQtbWFya2VyLXR5cGUtY3ViaWMt
YmV6aWVyIgorICAgIEN1YmljQmV6aWVyOiAidGV4dC1tYXJrZXItdHlwZS1jdWJpYy1iZXppZXIi
LAorICAgIFNwcmluZzogInRleHQtbWFya2VyLXR5cGUtc3ByaW5nIiwKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xh
cmF0aW9uVGV4dEVkaXRvci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLmpzCmluZGV4IDU4MDVlZDIuLmUy
NDRhOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9y
LmpzCkBAIC04ODYsNiArODg2LDEyIEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9u
VGV4dEVkaXRvciA9IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yCiAgICAgICAg
ICAgICAgICAgbGV0IHN3YXRjaCA9IG5ldyBXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoKFdlYklu
c3BlY3Rvci5JbmxpbmVTd2F0Y2guVHlwZS5CZXppZXIsIGJlemllciwgdGhpcy5fY29kZU1pcnJv
ci5nZXRPcHRpb24oInJlYWRPbmx5IikpOwogICAgICAgICAgICAgICAgIGNyZWF0ZVN3YXRjaC5j
YWxsKHRoaXMsIHN3YXRjaCwgbWFya2VyLCBiZXppZXIsIGJlemllclN0cmluZyk7CiAgICAgICAg
ICAgICB9KTsKKworICAgICAgICAgICAgLy8gTG9vayBmb3Igc3ByaW5nIHN0cmluZ3MgYW5kIGFk
ZCBzd2F0Y2hlcyBpbiBmcm9udCBvZiB0aGVtLgorICAgICAgICAgICAgY3JlYXRlQ29kZU1pcnJv
clNwcmluZ1RleHRNYXJrZXJzKHRoaXMuX2NvZGVNaXJyb3IsIHJhbmdlLCAobWFya2VyLCBzcHJp
bmcsIHNwcmluZ1N0cmluZykgPT4geworICAgICAgICAgICAgICAgIGxldCBzd2F0Y2ggPSBuZXcg
V2ViSW5zcGVjdG9yLklubGluZVN3YXRjaChXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUu
U3ByaW5nLCBzcHJpbmcsIHRoaXMuX2NvZGVNaXJyb3IuZ2V0T3B0aW9uKCJyZWFkT25seSIpKTsK
KyAgICAgICAgICAgICAgICBjcmVhdGVTd2F0Y2guY2FsbCh0aGlzLCBzd2F0Y2gsIG1hcmtlciwg
c3ByaW5nLCBzcHJpbmdTdHJpbmcpOworICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KIAogICAg
ICAgICBpZiAobm9uYXRvbWljKQpAQCAtMTMxOCw4ICsxMzI0LDkgQEAgV2ViSW5zcGVjdG9yLkNT
U1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yID0gY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvblRl
eHRFZGl0b3IKIAogICAgICAgICAgICAgICAgIGZvciAobGV0IG1hcmsgb2YgbWFya3MpIHsKICAg
ICAgICAgICAgICAgICAgICAgbGV0IHR5cGUgPSBXZWJJbnNwZWN0b3IuVGV4dE1hcmtlci50ZXh0
TWFya2VyRm9yQ29kZU1pcnJvclRleHRNYXJrZXIobWFyaykudHlwZTsKLSAgICAgICAgICAgICAg
ICAgICAgaWYgKHR5cGUgIT09IFdlYkluc3BlY3Rvci5UZXh0TWFya2VyLlR5cGUuQ29sb3IgJiYg
dHlwZSAhPT0gV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIuVHlwZS5HcmFkaWVudCAmJiB0eXBlICE9
PSBXZWJJbnNwZWN0b3IuVGV4dE1hcmtlci5UeXBlLkN1YmljQmV6aWVyKQorICAgICAgICAgICAg
ICAgICAgICBpZiAoT2JqZWN0LnZhbHVlcyhXZWJJbnNwZWN0b3IuVGV4dE1hcmtlci5UeXBlKS5p
bmNsdWRlcyh0eXBlKSkKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCiAgICAg
ICAgICAgICAgICAgICAgIHRleHRNYXJrZXIgPSBtYXJrOwogICAgICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2RlTWlycm9yVGV4dE1hcmtlcnMuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2RlTWlycm9yVGV4dE1hcmtlcnMu
anMKaW5kZXggYzMxYzg2Ni4uOWRhNzUxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29kZU1pcnJvclRleHRNYXJrZXJzLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVNaXJyb3JUZXh0TWFy
a2Vycy5qcwpAQCAtMTk1LDMgKzE5NSw5IEBAIGZ1bmN0aW9uIGNyZWF0ZUNvZGVNaXJyb3JDdWJp
Y0JlemllclRleHRNYXJrZXJzKGNvZGVNaXJyb3IsIHJhbmdlLCBjYWxsYmFjaykKICAgICB2YXIg
Y3ViaWNCZXppZXJSZWdleCA9IC8oY3ViaWMtYmV6aWVyXChbXildK1wpfFxiXHcrXGIoPzotXGJc
dytcYil7MCwyfSkvZzsKICAgICByZXR1cm4gY3JlYXRlQ29kZU1pcnJvclRleHRNYXJrZXJzKCJD
dWJpY0JlemllciIsIGN1YmljQmV6aWVyUmVnZXgsIG51bGwsIGNvZGVNaXJyb3IsIHJhbmdlLCBj
YWxsYmFjayk7CiB9CisKK2Z1bmN0aW9uIGNyZWF0ZUNvZGVNaXJyb3JTcHJpbmdUZXh0TWFya2Vy
cyhjb2RlTWlycm9yLCByYW5nZSwgY2FsbGJhY2spCit7CisgICAgY29uc3Qgc3ByaW5nUmVnZXgg
PSAvKHNwcmluZ1woW14pXStcKSkvZzsKKyAgICByZXR1cm4gY3JlYXRlQ29kZU1pcnJvclRleHRN
YXJrZXJzKCJTcHJpbmciLCBzcHJpbmdSZWdleCwgbnVsbCwgY29kZU1pcnJvciwgcmFuZ2UsIGNh
bGxiYWNrKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0lubGluZVN3YXRjaC5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9JbmxpbmVTd2F0Y2guY3NzCmluZGV4IDExZjZlNjMuLmZjMmExNjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lubGlu
ZVN3YXRjaC5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvSW5saW5lU3dhdGNoLmNzcwpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAy
MDE1IERldmluIFJvdXNzbyA8ZGNyb3Vzc28rd2Via2l0QGdtYWlsLmNvbT4uIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBEZXZpbiBSb3Vzc28gPGRjcm91
c3NvK3dlYmtpdEBnbWFpbC5jb20+LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC00MywxNyArNDMsMjAgQEAKICAgICBjdXJzb3I6IGRlZmF1
bHQ7CiB9CiAKLS5pbmxpbmUtc3dhdGNoLmJlemllciB7Ci0gICAgbWFyZ2luLXJpZ2h0OiAycHg7
CisuaW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXppZXIsIC5zcHJpbmcpIHsKICAgICBjb250ZW50
OiB1cmwoLi4vSW1hZ2VzL0N1YmljQmV6aWVyLnN2Zyk7Cit9CisKKy5pbmxpbmUtc3dhdGNoOm1h
dGNoZXMoLmJlemllciwgLnNwcmluZykgeworICAgIG1hcmdpbi1yaWdodDogMnB4OwogICAgIGJh
Y2tncm91bmQ6IG5vbmU7CiB9CiAKLS5pbmxpbmUtc3dhdGNoLmJlemllcjpob3ZlciB7CisuaW5s
aW5lLXN3YXRjaDptYXRjaGVzKC5iZXppZXIsIC5zcHJpbmcpOmhvdmVyIHsKICAgICBmaWx0ZXI6
IGJyaWdodG5lc3MoMC45KTsKIH0KIAotLmlubGluZS1zd2F0Y2guYmV6aWVyOmFjdGl2ZSB7Cisu
aW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXppZXIsIC5zcHJpbmcpOmFjdGl2ZSB7CiAgICAgZmls
dGVyOiBicmlnaHRuZXNzKDAuOCk7CiB9CiAKQEAgLTg1LDcgKzg4LDcgQEAKICAgICBib3JkZXIt
Y29sb3I6IGhzbCgwLCAwJSwgMjUlKTsKIH0KIAotLmlubGluZS1zd2F0Y2guYmV6aWVyID4gc3Bh
biB7CisuaW5saW5lLXN3YXRjaDptYXRjaGVzKC5iZXppZXIsIC5zcHJpbmcpID4gc3BhbiB7CiAg
ICAgZGlzcGxheTogbm9uZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvSW5saW5lU3dhdGNoLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSW5saW5lU3dhdGNoLmpzCmluZGV4IGQ2ZTM2OGMuLmEw
MGQ0MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0lubGluZVN3YXRjaC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9JbmxpbmVTd2F0Y2guanMKQEAgLTM5LDYgKzM5LDkgQEAgV2ViSW5zcGVjdG9y
LklubGluZVN3YXRjaCA9IGNsYXNzIElubGluZVN3YXRjaCBleHRlbmRzIFdlYkluc3BlY3Rvci5P
YmplY3QKICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUuQmV6aWVy
OgogICAgICAgICAgICAgdGhpcy5fc3dhdGNoRWxlbWVudC50aXRsZSA9IFdlYkluc3BlY3Rvci5V
SVN0cmluZygiQ2xpY2sgdG8gb3BlbiBhIGN1YmljLWJlemllciBlZGl0b3IuIik7CiAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUu
U3ByaW5nOgorICAgICAgICAgICAgdGhpcy5fc3dhdGNoRWxlbWVudC50aXRsZSA9IFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiQ2xpY2sgdG8gb3BlbiBhIHNwcmluZyBlZGl0b3IuIik7CisgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUu
R3JhZGllbnQ6CiAgICAgICAgICAgICB0aGlzLl9zd2F0Y2hFbGVtZW50LnRpdGxlID0gV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJDbGljayB0byBzZWxlY3QgYSBncmFkaWVudC4iKTsKICAgICAgICAg
ICAgIGJyZWFrOwpAQCAtOTgsNiArMTAxLDggQEAgV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaCA9
IGNsYXNzIElubGluZVN3YXRjaCBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAg
c3dpdGNoICh0aGlzLl90eXBlKSB7CiAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLklubGluZVN3
YXRjaC5UeXBlLkJlemllcjoKICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuQ3ViaWNC
ZXppZXIuZnJvbVN0cmluZygibGluZWFyIik7CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLklu
bGluZVN3YXRjaC5UeXBlLlNwcmluZzoKKyAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3Iu
U3ByaW5nLmZyb21TdHJpbmcoIjEgMTAwIDEwIDAiKTsKICAgICAgICAgY2FzZSBXZWJJbnNwZWN0
b3IuSW5saW5lU3dhdGNoLlR5cGUuR3JhZGllbnQ6CiAgICAgICAgICAgICByZXR1cm4gV2ViSW5z
cGVjdG9yLkdyYWRpZW50LmZyb21TdHJpbmcoImxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwg
dHJhbnNwYXJlbnQpIik7CiAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5U
eXBlLkNvbG9yOgpAQCAtMTQzLDYgKzE0OCw5IEBAIFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2gg
PSBjbGFzcyBJbmxpbmVTd2F0Y2ggZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAg
IGlmICh0aGlzLl90eXBlID09PSBXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUuQmV6aWVy
KSB7CiAgICAgICAgICAgICB0aGlzLl92YWx1ZUVkaXRvciA9IG5ldyBXZWJJbnNwZWN0b3IuQmV6
aWVyRWRpdG9yOwogICAgICAgICAgICAgdGhpcy5fdmFsdWVFZGl0b3IuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuQmV6aWVyRWRpdG9yLkV2ZW50LkJlemllckNoYW5nZWQsIHRoaXMuX3Zh
bHVlRWRpdG9yVmFsdWVEaWRDaGFuZ2UsIHRoaXMpOworICAgICAgICB9IGVsc2UgaWYgKHRoaXMu
X3R5cGUgPT09IFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2guVHlwZS5TcHJpbmcpIHsKKyAgICAg
ICAgICAgIHRoaXMuX3ZhbHVlRWRpdG9yID0gbmV3IFdlYkluc3BlY3Rvci5TcHJpbmdFZGl0b3I7
CisgICAgICAgICAgICB0aGlzLl92YWx1ZUVkaXRvci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5TcHJpbmdFZGl0b3IuRXZlbnQuU3ByaW5nQ2hhbmdlZCwgdGhpcy5fdmFsdWVFZGl0b3JW
YWx1ZURpZENoYW5nZSwgdGhpcyk7CiAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5fdHlwZSA9PT0g
V2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5UeXBlLkdyYWRpZW50KSB7CiAgICAgICAgICAgICB0
aGlzLl92YWx1ZUVkaXRvciA9IG5ldyBXZWJJbnNwZWN0b3IuR3JhZGllbnRFZGl0b3I7CiAgICAg
ICAgICAgICB0aGlzLl92YWx1ZUVkaXRvci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5H
cmFkaWVudEVkaXRvci5FdmVudC5HcmFkaWVudENoYW5nZWQsIHRoaXMuX3ZhbHVlRWRpdG9yVmFs
dWVEaWRDaGFuZ2UsIHRoaXMpOwpAQCAtMTU4LDYgKzE2Niw4IEBAIFdlYkluc3BlY3Rvci5Jbmxp
bmVTd2F0Y2ggPSBjbGFzcyBJbmxpbmVTd2F0Y2ggZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0
CiAgICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuX3ZhbHVlIHx8IHRoaXMuX2ZhbGxiYWNrVmFsdWUo
KTsKICAgICAgICAgaWYgKHRoaXMuX3R5cGUgPT09IFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2gu
VHlwZS5CZXppZXIpCiAgICAgICAgICAgICB0aGlzLl92YWx1ZUVkaXRvci5iZXppZXIgPSB2YWx1
ZTsKKyAgICAgICAgZWxzZSBpZiAodGhpcy5fdHlwZSA9PT0gV2ViSW5zcGVjdG9yLklubGluZVN3
YXRjaC5UeXBlLlNwcmluZykKKyAgICAgICAgICAgIHRoaXMuX3ZhbHVlRWRpdG9yLnNwcmluZyA9
IHZhbHVlOwogICAgICAgICBlbHNlIGlmICh0aGlzLl90eXBlID09PSBXZWJJbnNwZWN0b3IuSW5s
aW5lU3dhdGNoLlR5cGUuR3JhZGllbnQpCiAgICAgICAgICAgICB0aGlzLl92YWx1ZUVkaXRvci5n
cmFkaWVudCA9IHZhbHVlOwogICAgICAgICBlbHNlCkBAIC0xNjgsNiArMTc4LDggQEAgV2ViSW5z
cGVjdG9yLklubGluZVN3YXRjaCA9IGNsYXNzIElubGluZVN3YXRjaCBleHRlbmRzIFdlYkluc3Bl
Y3Rvci5PYmplY3QKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl90eXBlID09PSBXZWJJbnNwZWN0
b3IuSW5saW5lU3dhdGNoLlR5cGUuQmV6aWVyKQogICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSBl
dmVudC5kYXRhLmJlemllcjsKKyAgICAgICAgZWxzZSBpZiAodGhpcy5fdHlwZSA9PT0gV2ViSW5z
cGVjdG9yLklubGluZVN3YXRjaC5UeXBlLlNwcmluZykKKyAgICAgICAgICAgIHRoaXMuX3ZhbHVl
ID0gZXZlbnQuZGF0YS5zcHJpbmc7CiAgICAgICAgIGVsc2UgaWYgKHRoaXMuX3R5cGUgPT09IFdl
Ykluc3BlY3Rvci5JbmxpbmVTd2F0Y2guVHlwZS5HcmFkaWVudCkKICAgICAgICAgICAgIHRoaXMu
X3ZhbHVlID0gZXZlbnQuZGF0YS5ncmFkaWVudDsKICAgICAgICAgZWxzZQpAQCAtMjc5LDcgKzI5
MSw4IEBAIFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2ggPSBjbGFzcyBJbmxpbmVTd2F0Y2ggZXh0
ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiBXZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUg
PSB7CiAgICAgQ29sb3I6ICJpbmxpbmUtc3dhdGNoLXR5cGUtY29sb3IiLAogICAgIEdyYWRpZW50
OiAiaW5saW5lLXN3YXRjaC10eXBlLWdyYWRpZW50IiwKLSAgICBCZXppZXI6ICJpbmxpbmUtc3dh
dGNoLXR5cGUtYmV6aWVyIgorICAgIEJlemllcjogImlubGluZS1zd2F0Y2gtdHlwZS1iZXppZXIi
LAorICAgIFNwcmluZzogImlubGluZS1zd2F0Y2gtdHlwZS1zcHJpbmciLAogfTsKIAogV2ViSW5z
cGVjdG9yLklubGluZVN3YXRjaC5FdmVudCA9IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NvdXJjZUNvZGVUZXh0RWRpdG9yLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU291cmNlQ29kZVRleHRFZGl0
b3IuanMKaW5kZXggMTNmY2FmOS4uMTVmNmRiMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NvdXJjZUNvZGVUZXh0RWRpdG9yLmpzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NvdXJjZUNvZGVUZXh0
RWRpdG9yLmpzCkBAIC0xNjA0LDYgKzE2MDQsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlQ29kZVRl
eHRFZGl0b3IgPSBjbGFzcyBTb3VyY2VDb2RlVGV4dEVkaXRvciBleHRlbmRzIFdlYkluc3BlYwog
ICAgICAgICAgICAgdGhpcy5jcmVhdGVDb2xvck1hcmtlcnMocmFuZ2UpOwogICAgICAgICAgICAg
dGhpcy5jcmVhdGVHcmFkaWVudE1hcmtlcnMocmFuZ2UpOwogICAgICAgICAgICAgdGhpcy5jcmVh
dGVDdWJpY0Jlemllck1hcmtlcnMocmFuZ2UpOworICAgICAgICAgICAgdGhpcy5jcmVhdGVTcHJp
bmdNYXJrZXJzKHJhbmdlKTsKICAgICAgICAgfQogCiAgICAgICAgIHRoaXMuX3VwZGF0ZVRva2Vu
VHJhY2tpbmdDb250cm9sbGVyU3RhdGUoKTsKQEAgLTE2MTQsNyArMTYxNSw3IEBAIFdlYkluc3Bl
Y3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvciA9IGNsYXNzIFNvdXJjZUNvZGVUZXh0RWRpdG9yIGV4
dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgIC8vIExvb2sgZm9yIHRoZSBvdXRlcm1vc3QgZWRpdGFi
bGUgbWFya2VyLgogICAgICAgICB2YXIgZWRpdGFibGVNYXJrZXI7CiAgICAgICAgIGZvciAodmFy
IG1hcmtlciBvZiBtYXJrZXJzKSB7Ci0gICAgICAgICAgICBpZiAoIW1hcmtlci5yYW5nZSB8fCAo
bWFya2VyLnR5cGUgIT09IFdlYkluc3BlY3Rvci5UZXh0TWFya2VyLlR5cGUuQ29sb3IgJiYgbWFy
a2VyLnR5cGUgIT09IFdlYkluc3BlY3Rvci5UZXh0TWFya2VyLlR5cGUuR3JhZGllbnQgJiYgbWFy
a2VyLnR5cGUgIT09IFdlYkluc3BlY3Rvci5UZXh0TWFya2VyLlR5cGUuQ3ViaWNCZXppZXIpKQor
ICAgICAgICAgICAgaWYgKCFtYXJrZXIucmFuZ2UgfHwgIU9iamVjdC52YWx1ZXMoV2ViSW5zcGVj
dG9yLlRleHRNYXJrZXIuVHlwZSkuaW5jbHVkZXMobWFya2VyLnR5cGUpKQogICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICBpZiAoIWVkaXRhYmxlTWFya2VyIHx8IChtYXJr
ZXIucmFuZ2Uuc3RhcnRMaW5lIDwgZWRpdGFibGVNYXJrZXIucmFuZ2Uuc3RhcnRMaW5lIHx8ICht
YXJrZXIucmFuZ2Uuc3RhcnRMaW5lID09PSBlZGl0YWJsZU1hcmtlci5yYW5nZS5zdGFydExpbmUg
JiYgbWFya2VyLnJhbmdlLnN0YXJ0Q29sdW1uIDwgZWRpdGFibGVNYXJrZXIucmFuZ2Uuc3RhcnRD
b2x1bW4pKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1NwcmluZ0VkaXRvci5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9TcHJpbmdFZGl0b3IuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmUyMjIwNTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9TcHJpbmdFZGl0b3IuY3NzCkBAIC0wLDAgKzEsMTAyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IERldmluIFJvdXNzbyA8ZGNyb3Vzc28rd2Via2l0QGdt
YWlsLmNvbT4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy5zcHJpbmctZWRpdG9y
IHsKKyAgICB3aWR0aDogMjAwcHg7CisgICAgaGVpZ2h0OiAyMTBweDsKK30KKworLnNwcmluZy1l
ZGl0b3IgPiAuc3ByaW5nLXByZXZpZXcgeworICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxMHB4KTsK
KyAgICBoZWlnaHQ6IDI1cHg7CisgICAgbWFyZ2luOiA1cHggNXB4IDA7CisgICAgYm9yZGVyLWJv
dHRvbTogMXB4IHNvbGlkIGxpZ2h0Z3JleTsKK30KKworLnNwcmluZy1lZGl0b3IgPiAuc3ByaW5n
LXByZXZpZXcgPiBkaXYgeworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICB3aWR0aDogMjBw
eDsKKyAgICBoZWlnaHQ6IDIwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2VsZWN0
ZWQtYmFja2dyb3VuZC1jb2xvcik7CisgICAgYm9yZGVyLXJhZGl1czogNTAlOworfQorCisuc3By
aW5nLWVkaXRvciA+IC5zcHJpbmctdGltaW5nIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cisg
ICAgbWFyZ2luOiAtMC41cHggMTFweCAwOworfQorCisuc3ByaW5nLWVkaXRvciA+IC5zcHJpbmct
dGltaW5nID4gZGl2IHsKKyAgICB3aWR0aDogMDsKKyAgICBib3JkZXItbGVmdDogNHB4IHNvbGlk
IHRyYW5zcGFyZW50OworICAgIGJvcmRlci1yaWdodDogNHB4IHNvbGlkIHRyYW5zcGFyZW50Owor
ICAgIGJvcmRlci10b3A6IDRweCBzb2xpZCBibGFjazsKKyAgICB0cmFuc2l0aW9uLXRpbWluZy1m
dW5jdGlvbjogbGluZWFyOworfQorCisuc3ByaW5nLWVkaXRvciA+IC5zcHJpbmctdGltaW5nOm1h
dGNoZXMoOjpiZWZvcmUsIDo6YWZ0ZXIpIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAg
dG9wOiAyLjVweDsKKyAgICBmb250LXNpemU6IDlweDsKK30KKworLnNwcmluZy1lZGl0b3IgPiAu
c3ByaW5nLXRpbWluZzo6YmVmb3JlIHsKKyAgICBsZWZ0OiAwOworICAgIGNvbnRlbnQ6ICIwcyI7
Cit9CisKKy5zcHJpbmctZWRpdG9yID4gLnNwcmluZy10aW1pbmc6OmFmdGVyIHsKKyAgICByaWdo
dDogMDsKKyAgICBjb250ZW50OiBhdHRyKGRhdGEtZHVyYXRpb24pICJzIjsKK30KKworLnNwcmlu
Zy1lZGl0b3IgPiA6bWF0Y2hlcyguc3ByaW5nLXByZXZpZXcsIC5zcHJpbmctdGltaW5nKSA+IGRp
diB7CisgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9uZTsKK30KKworLnNwcmluZy1lZGl0b3Ig
PiAuYW5pbWF0ZTptYXRjaGVzKC5zcHJpbmctcHJldmlldywgLnNwcmluZy10aW1pbmcpID4gZGl2
IHsKKyAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm07Cit9CisKKy5zcHJpbmctZWRp
dG9yID4gLm51bWJlci1pbnB1dC1jb250YWluZXIgPiAubnVtYmVyLWlucHV0LXJvdyB7CisgICAg
ZGlzcGxheTogZmxleDsKKyAgICBmbGV4LXdyYXA6IHdyYXA7CisgICAgbWFyZ2luLWJvdHRvbTog
M3B4OworfQorCisuc3ByaW5nLWVkaXRvciA+IC5udW1iZXItaW5wdXQtY29udGFpbmVyID4gLm51
bWJlci1pbnB1dC1yb3cgPiAubnVtYmVyLWlucHV0LXJvdy10aXRsZSB7CisgICAgd2lkdGg6IDEw
MCU7CisgICAgbWFyZ2luOiA3cHggMCAzcHg7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOworfQor
Cisuc3ByaW5nLWVkaXRvciA+IC5udW1iZXItaW5wdXQtY29udGFpbmVyID4gLm51bWJlci1pbnB1
dC1yb3cgPiBpbnB1dCB7CisgICAgd2lkdGg6IGNhbGMoNTAlIC0gMTBweCk7CisgICAgbWFyZ2lu
OiAwIDVweDsKK30KKworLnNwcmluZy1lZGl0b3IgPiAubnVtYmVyLWlucHV0LWNvbnRhaW5lciA+
IC5udW1iZXItaW5wdXQtcm93ID4gaW5wdXRbdHlwZT0icmFuZ2UiXSB7CisgICAgYmFja2dyb3Vu
ZC1jb2xvcjogdHJhbnNwYXJlbnQ7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJpbmdFZGl0b3IuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJpbmdFZGl0b3IuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZGI0YTkwNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmluZ0VkaXRvci5qcwpAQCAtMCww
ICsxLDIyNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBEZXZpbiBSb3Vzc28gPGRjcm91
c3NvK3dlYmtpdEBnbWFpbC5jb20+LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitX
ZWJJbnNwZWN0b3IuU3ByaW5nRWRpdG9yID0gY2xhc3MgU3ByaW5nRWRpdG9yIGV4dGVuZHMgV2Vi
SW5zcGVjdG9yLk9iamVjdAoreworICAgIGNvbnN0cnVjdG9yKCkKKyAgICB7CisgICAgICAgIHN1
cGVyKCk7CisKKyAgICAgICAgdGhpcy5fZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOworICAgICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoInNwcmluZy1lZGl0
b3IiKTsKKworICAgICAgICB0aGlzLl9wcmV2aWV3Q29udGFpbmVyID0gdGhpcy5fZWxlbWVudC5j
cmVhdGVDaGlsZCgiZGl2IiwgInNwcmluZy1wcmV2aWV3Iik7CisgICAgICAgIHRoaXMuX3ByZXZp
ZXdDb250YWluZXIudGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNsaWNrIHRvIHJlc3Rh
cnQgdGhlIGFuaW1hdGlvbiIpOworICAgICAgICB0aGlzLl9wcmV2aWV3Q29udGFpbmVyLmFkZEV2
ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHRoaXMuX3Jlc2V0UHJldmlld0FuaW1hdGlvbi5iaW5k
KHRoaXMpKTsKKworICAgICAgICB0aGlzLl9wcmV2aWV3RWxlbWVudCA9IHRoaXMuX3ByZXZpZXdD
b250YWluZXIuY3JlYXRlQ2hpbGQoImRpdiIpOworICAgICAgICB0aGlzLl9wcmV2aWV3RWxlbWVu
dC5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIiwgdGhpcy5kZWJvdW5jZSg1MDApLl9y
ZXNldFByZXZpZXdBbmltYXRpb24pOworCisgICAgICAgIHRoaXMuX3RpbWluZ0NvbnRhaW5lciA9
IHRoaXMuX2VsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJzcHJpbmctdGltaW5nIik7CisKKyAg
ICAgICAgdGhpcy5fdGltaW5nRWxlbWVudCA9IHRoaXMuX3RpbWluZ0NvbnRhaW5lci5jcmVhdGVD
aGlsZCgiZGl2Iik7CisKKyAgICAgICAgdGhpcy5fbnVtYmVySW5wdXRDb250YWluZXIgPSB0aGlz
Ll9lbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAibnVtYmVyLWlucHV0LWNvbnRhaW5lciIpOwor
CisgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZUlucHV0c0ZvclBhcmFtZXRlcihpZCwgdGl0bGUpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGxldCByb3cgPSB0aGlzLl9udW1iZXJJbnB1dENvbnRhaW5l
ci5jcmVhdGVDaGlsZCgiZGl2IiwgYG51bWJlci1pbnB1dC1yb3cgJHtpZH1gKTsKKworICAgICAg
ICAgICAgcm93LmNyZWF0ZUNoaWxkKCJkaXYiLCAibnVtYmVyLWlucHV0LXJvdy10aXRsZSIpLnRl
eHRDb250ZW50ID0gdGl0bGU7CisKKyAgICAgICAgICAgIGxldCBzbGlkZXJLZXkgPSBgXyR7aWR9
U2xpZGVyYDsKKyAgICAgICAgICAgIHRoaXNbc2xpZGVyS2V5XSA9IHJvdy5jcmVhdGVDaGlsZCgi
aW5wdXQiKTsKKyAgICAgICAgICAgIHRoaXNbc2xpZGVyS2V5XS50eXBlID0gInJhbmdlIjsKKyAg
ICAgICAgICAgIHRoaXNbc2xpZGVyS2V5XS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsIHRoaXMu
X2hhbmRsZU51bWJlclNsaWRlcklucHV0LmJpbmQodGhpcykpOworICAgICAgICAgICAgdGhpc1tz
bGlkZXJLZXldLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHRoaXMuX2hhbmRsZU51bWJl
clNsaWRlck1vdXNlZG93bi5iaW5kKHRoaXMpKTsKKyAgICAgICAgICAgIHRoaXNbc2xpZGVyS2V5
XS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwgdGhpcy5faGFuZGxlTnVtYmVyU2xpZGVyTW91
c2V1cC5iaW5kKHRoaXMpKTsKKworICAgICAgICAgICAgbGV0IGlucHV0S2V5ID0gYF8ke2lkfUlu
cHV0YDsKKyAgICAgICAgICAgIHRoaXNbaW5wdXRLZXldID0gcm93LmNyZWF0ZUNoaWxkKCJpbnB1
dCIpOworICAgICAgICAgICAgdGhpc1tpbnB1dEtleV0udHlwZSA9ICJudW1iZXIiOworICAgICAg
ICAgICAgdGhpc1tpbnB1dEtleV0uYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCB0aGlzLl9oYW5k
bGVOdW1iZXJJbnB1dElucHV0LmJpbmQodGhpcykpOworICAgICAgICAgICAgdGhpc1tpbnB1dEtl
eV0uYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuX2hhbmRsZU51bWJlcklucHV0S2V5
ZG93bi5iaW5kKHRoaXMpKTsKKyAgICAgICAgfQorCisgICAgICAgIGNyZWF0ZUlucHV0c0ZvclBh
cmFtZXRlci5jYWxsKHRoaXMsICJtYXNzIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJNYXNzIikp
OworICAgICAgICB0aGlzLl9tYXNzSW5wdXQubWluID0gdGhpcy5fbWFzc1NsaWRlci5taW4gPSAx
OworCisgICAgICAgIGNyZWF0ZUlucHV0c0ZvclBhcmFtZXRlci5jYWxsKHRoaXMsICJzdGlmZm5l
c3MiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0aWZmbmVzcyIpKTsKKyAgICAgICAgdGhpcy5f
c3RpZmZuZXNzSW5wdXQubWluID0gdGhpcy5fc3RpZmZuZXNzU2xpZGVyLm1pbiA9IDE7CisKKyAg
ICAgICAgY3JlYXRlSW5wdXRzRm9yUGFyYW1ldGVyLmNhbGwodGhpcywgImRhbXBpbmciLCBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIkRhbXBpbmciKSk7CisgICAgICAgIHRoaXMuX2RhbXBpbmdJbnB1
dC5taW4gPSB0aGlzLl9kYW1waW5nU2xpZGVyLm1pbiA9IDA7CisKKyAgICAgICAgY3JlYXRlSW5w
dXRzRm9yUGFyYW1ldGVyLmNhbGwodGhpcywgImluaXRpYWxWZWxvY2l0eSIsIFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiSW5pdGlhbCBWZWxvY2l0eSIpKTsKKworICAgICAgICB0aGlzLl9zcHJpbmcg
PSBuZXcgV2ViSW5zcGVjdG9yLlNwcmluZygxLCAxMDAsIDEwLCAwKTsKKyAgICB9CisKKyAgICAv
LyBQdWJsaWMKKworICAgIGdldCBlbGVtZW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
Ll9lbGVtZW50OworICAgIH0KKworICAgIGdldCBzcHJpbmcoKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHRoaXMuX3NwcmluZzsKKyAgICB9CisKKyAgICBzZXQgc3ByaW5nKHNwcmluZykKKyAgICB7
CisgICAgICAgIGlmICghc3ByaW5nKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxl
dCBpc1NwcmluZyA9IHNwcmluZyBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5TcHJpbmc7CisgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KGlzU3ByaW5nKTsKKyAgICAgICAgaWYgKCFpc1NwcmluZykKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLl9zcHJpbmcgPSBzcHJpbmc7CisgICAg
ICAgIHRoaXMuX21hc3NJbnB1dC52YWx1ZSA9IHRoaXMuX21hc3NTbGlkZXIudmFsdWUgPSB0aGlz
Ll9zcHJpbmcubWFzczsKKyAgICAgICAgdGhpcy5fc3RpZmZuZXNzSW5wdXQudmFsdWUgPSB0aGlz
Ll9zdGlmZm5lc3NTbGlkZXIudmFsdWUgPSB0aGlzLl9zcHJpbmcuc3RpZmZuZXNzOworICAgICAg
ICB0aGlzLl9kYW1waW5nSW5wdXQudmFsdWUgPSB0aGlzLl9kYW1waW5nU2xpZGVyLnZhbHVlID0g
dGhpcy5fc3ByaW5nLmRhbXBpbmc7CisgICAgICAgIHRoaXMuX2luaXRpYWxWZWxvY2l0eUlucHV0
LnZhbHVlID0gdGhpcy5faW5pdGlhbFZlbG9jaXR5U2xpZGVyLnZhbHVlID0gdGhpcy5fc3ByaW5n
LmluaXRpYWxWZWxvY2l0eTsKKyAgICAgICAgdGhpcy5fcmVzZXRQcmV2aWV3QW5pbWF0aW9uKCk7
CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX2hhbmRsZU51bWJlcklucHV0SW5wdXQo
ZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl9jaGFuZ2VTcHJpbmdGb3JJbnB1dChldmVudC50
YXJnZXQsIGV2ZW50LnRhcmdldC52YWx1ZSk7CisgICAgfQorCisgICAgX2hhbmRsZU51bWJlcklu
cHV0S2V5ZG93bihldmVudCkKKyAgICB7CisgICAgICAgIGxldCBzaGlmdCA9IDA7CisgICAgICAg
IGlmIChldmVudC5rZXlJZGVudGlmaWVyID09PSAiVXAiKQorICAgICAgICAgICAgc2hpZnQgPSAx
OworICAgICAgICAgZWxzZSBpZiAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIkRvd24iKQorICAg
ICAgICAgICAgc2hpZnQgPSAtMTsKKworICAgICAgICBpZiAoIXNoaWZ0KQorICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgIGlmIChldmVudC5zaGlmdEtleSkKKyAgICAgICAgICAgIHNoaWZ0
ICo9IDEwOworICAgICAgICBlbHNlIGlmIChldmVudC5hbHRLZXkpCisgICAgICAgICAgICBzaGlm
dCAvPSAxMDsKKworICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICB0aGlz
Ll9jaGFuZ2VTcHJpbmdGb3JJbnB1dChldmVudC50YXJnZXQsIHBhcnNlRmxvYXQoZXZlbnQudGFy
Z2V0LnZhbHVlKSArIHNoaWZ0KTsKKyAgICB9CisKKyAgICBfaGFuZGxlTnVtYmVyU2xpZGVySW5w
dXQoZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl9jaGFuZ2VTcHJpbmdGb3JJbnB1dChldmVu
dC50YXJnZXQsIGV2ZW50LnRhcmdldC52YWx1ZSk7CisgICAgfQorCisgICAgX2hhbmRsZU51bWJl
clNsaWRlck1vdXNlZG93bihldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX2NoYW5nZVNwcmlu
Z0ZvcklucHV0KGV2ZW50LnRhcmdldCwgZXZlbnQudGFyZ2V0LnZhbHVlKTsKKyAgICB9CisKKyAg
ICBfaGFuZGxlTnVtYmVyU2xpZGVyTW91c2V1cChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMu
X2NoYW5nZVNwcmluZ0ZvcklucHV0KGV2ZW50LnRhcmdldCwgZXZlbnQudGFyZ2V0LnZhbHVlKTsK
KyAgICB9CisKKyAgICBfY2hhbmdlU3ByaW5nRm9ySW5wdXQodGFyZ2V0LCB2YWx1ZSkKKyAgICB7
CisgICAgICAgIHZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSk7CisKKyAgICAgICAgc3dpdGNoICh0
YXJnZXQpIHsKKyAgICAgICAgY2FzZSB0aGlzLl9tYXNzSW5wdXQ6CisgICAgICAgIGNhc2UgdGhp
cy5fbWFzc1NsaWRlcjoKKyAgICAgICAgICAgIHRoaXMuX3NwcmluZy5tYXNzID0gTWF0aC5tYXgo
MSwgdmFsdWUpOworICAgICAgICAgICAgdGhpcy5fbWFzc0lucHV0LnZhbHVlID0gdGhpcy5fbWFz
c1NsaWRlci52YWx1ZSA9IHRoaXMuX3NwcmluZy5tYXNzLm1heERlY2ltYWxzKDMpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdGhpcy5fc3RpZmZuZXNzSW5wdXQ6CisgICAgICAg
IGNhc2UgdGhpcy5fc3RpZmZuZXNzU2xpZGVyOgorICAgICAgICAgICAgdGhpcy5fc3ByaW5nLnN0
aWZmbmVzcyA9IE1hdGgubWF4KDEsIHZhbHVlKTsKKyAgICAgICAgICAgIHRoaXMuX3N0aWZmbmVz
c0lucHV0LnZhbHVlID0gdGhpcy5fc3RpZmZuZXNzU2xpZGVyLnZhbHVlID0gdGhpcy5fc3ByaW5n
LnN0aWZmbmVzcy5tYXhEZWNpbWFscygzKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIHRoaXMuX2RhbXBpbmdJbnB1dDoKKyAgICAgICAgY2FzZSB0aGlzLl9kYW1waW5nU2xpZGVy
OgorICAgICAgICAgICAgdGhpcy5fc3ByaW5nLmRhbXBpbmcgPSBNYXRoLm1heCgwLCB2YWx1ZSk7
CisgICAgICAgICAgICB0aGlzLl9kYW1waW5nSW5wdXQudmFsdWUgPSB0aGlzLl9kYW1waW5nU2xp
ZGVyLnZhbHVlID0gdGhpcy5fc3ByaW5nLmRhbXBpbmcubWF4RGVjaW1hbHMoMyk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSB0aGlzLl9pbml0aWFsVmVsb2NpdHlJbnB1dDoKKyAg
ICAgICAgY2FzZSB0aGlzLl9pbml0aWFsVmVsb2NpdHlTbGlkZXI6CisgICAgICAgICAgICB0aGlz
Ll9zcHJpbmcuaW5pdGlhbFZlbG9jaXR5ID0gdmFsdWU7CisgICAgICAgICAgICB0aGlzLl9pbml0
aWFsVmVsb2NpdHlJbnB1dC52YWx1ZSA9IHRoaXMuX2luaXRpYWxWZWxvY2l0eVNsaWRlci52YWx1
ZSA9IHRoaXMuX3NwcmluZy5pbml0aWFsVmVsb2NpdHkubWF4RGVjaW1hbHMoMyk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rv
ci5TcHJpbmdFZGl0b3IuRXZlbnQuU3ByaW5nQ2hhbmdlZCwge3NwcmluZzogdGhpcy5fc3ByaW5n
fSk7CisKKyAgICAgICAgdGhpcy5fcmVzZXRQcmV2aWV3QW5pbWF0aW9uKCk7CisgICAgfQorCisg
ICAgX3Jlc2V0UHJldmlld0FuaW1hdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX3By
ZXZpZXdDb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgiYW5pbWF0ZSIpOworICAgICAgICB0aGlz
Ll9wcmV2aWV3RWxlbWVudC5zdHlsZS50cmFuc2l0aW9uVGltaW5nRnVuY3Rpb24gPSBudWxsOwor
ICAgICAgICB0aGlzLl9wcmV2aWV3RWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSBudWxsOworCisg
ICAgICAgIHRoaXMuX3RpbWluZ0NvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKCJhbmltYXRlIik7
CisgICAgICAgIHRoaXMuX3RpbWluZ0VsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gbnVsbDsKKwor
ICAgICAgICAvLyBPbmx5IHJlc2V0IHRoZSBkdXJhdGlvbiB0ZXh0IHdoZW4gYSBzcHJpbmcgcGFy
YW1ldGVyIGlzIGNoYW5nZWQuCisgICAgICAgIGlmICghZXZlbnQpCisgICAgICAgICAgICB0aGlz
Ll90aW1pbmdDb250YWluZXIuZGF0YXNldC5kdXJhdGlvbiA9ICIwIjsKKworICAgICAgICB0aGlz
LmRlYm91bmNlKDUwMCkuX3VwZGF0ZVByZXZpZXdBbmltYXRpb24oZXZlbnQpOworICAgIH0KKwor
ICAgIF91cGRhdGVQcmV2aWV3QW5pbWF0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5f
cHJldmlld0NvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJhbmltYXRlIik7CisgICAgICAgIHRoaXMu
X3ByZXZpZXdFbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9ICJ0cmFuc2xhdGVYKDg1cHgpIjsKKyAg
ICAgICAgdGhpcy5fcHJldmlld0VsZW1lbnQuc3R5bGUudHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9u
ID0gdGhpcy5fc3ByaW5nLnRvU3RyaW5nKCk7CisKKyAgICAgICAgdGhpcy5fdGltaW5nQ29udGFp
bmVyLmNsYXNzTGlzdC5hZGQoImFuaW1hdGUiKTsKKyAgICAgICAgdGhpcy5fdGltaW5nRWxlbWVu
dC5zdHlsZS50cmFuc2Zvcm0gPSAidHJhbnNsYXRlWCgxNzBweCkiOworCisgICAgICAgIC8vIE9u
bHkgY2FsY3VsYXRlIHRoZSBkdXJhdGlvbiB3aGVuIGEgc3ByaW5nIHBhcmFtZXRlciBpcyBjaGFu
Z2VkLgorICAgICAgICBpZiAoIWV2ZW50KSB7CisgICAgICAgICAgICBsZXQgZHVyYXRpb24gPSB0
aGlzLl9zcHJpbmcuY2FsY3VsYXRlRHVyYXRpb24oKTsKKworICAgICAgICAgICAgdGhpcy5fdGlt
aW5nQ29udGFpbmVyLmRhdGFzZXQuZHVyYXRpb24gPSBkdXJhdGlvbi50b0ZpeGVkKDIpOworICAg
ICAgICAgICAgdGhpcy5fdGltaW5nRWxlbWVudC5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSBg
JHtkdXJhdGlvbn1zYDsKKworICAgICAgICAgICAgdGhpcy5fcHJldmlld0VsZW1lbnQuc3R5bGUu
dHJhbnNpdGlvbkR1cmF0aW9uID0gYCR7ZHVyYXRpb259c2A7CisgICAgICAgIH0KKyAgICB9Cit9
OworCitXZWJJbnNwZWN0b3IuU3ByaW5nRWRpdG9yLkV2ZW50ID0geworICAgIFNwcmluZ0NoYW5n
ZWQ6ICJzcHJpbmctZWRpdG9yLXNwcmluZy1jaGFuZ2VkIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RleHRFZGl0b3IuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UZXh0RWRpdG9yLmpzCmluZGV4
IDcyYTE1MjAuLjMyMzI3MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1RleHRFZGl0b3IuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvVGV4dEVkaXRvci5qcwpAQCAtNjE3LDYgKzYxNywxMSBAQCBX
ZWJJbnNwZWN0b3IuVGV4dEVkaXRvciA9IGNsYXNzIFRleHRFZGl0b3IgZXh0ZW5kcyBXZWJJbnNw
ZWN0b3IuVmlldwogICAgICAgICByZXR1cm4gY3JlYXRlQ29kZU1pcnJvckN1YmljQmV6aWVyVGV4
dE1hcmtlcnModGhpcy5fY29kZU1pcnJvciwgcmFuZ2UpOwogICAgIH0KIAorICAgIGNyZWF0ZVNw
cmluZ01hcmtlcnMocmFuZ2UpCisgICAgeworICAgICAgICByZXR1cm4gY3JlYXRlQ29kZU1pcnJv
clNwcmluZ1RleHRNYXJrZXJzKHRoaXMuX2NvZGVNaXJyb3IsIHJhbmdlKTsKKyAgICB9CisKICAg
ICBlZGl0aW5nQ29udHJvbGxlckZvck1hcmtlcihlZGl0YWJsZU1hcmtlcikKICAgICB7CiAgICAg
ICAgIHN3aXRjaCAoZWRpdGFibGVNYXJrZXIudHlwZSkgewpAQCAtNjI2LDYgKzYzMSw4IEBAIFdl
Ykluc3BlY3Rvci5UZXh0RWRpdG9yID0gY2xhc3MgVGV4dEVkaXRvciBleHRlbmRzIFdlYkluc3Bl
Y3Rvci5WaWV3CiAgICAgICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5Db2RlTWlycm9y
R3JhZGllbnRFZGl0aW5nQ29udHJvbGxlcih0aGlzLl9jb2RlTWlycm9yLCBlZGl0YWJsZU1hcmtl
cik7CiAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIuVHlwZS5DdWJpY0Jlemll
cjoKICAgICAgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNvZGVNaXJyb3JCZXppZXJF
ZGl0aW5nQ29udHJvbGxlcih0aGlzLl9jb2RlTWlycm9yLCBlZGl0YWJsZU1hcmtlcik7CisgICAg
ICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIuVHlwZS5TcHJpbmc6CisgICAgICAgICAg
ICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5Db2RlTWlycm9yU3ByaW5nRWRpdGluZ0NvbnRyb2xs
ZXIodGhpcy5fY29kZU1pcnJvciwgZWRpdGFibGVNYXJrZXIpOwogICAgICAgICBkZWZhdWx0Ogog
ICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuQ29kZU1pcnJvckVkaXRpbmdDb250
cm9sbGVyKHRoaXMuX2NvZGVNaXJyb3IsIGVkaXRhYmxlTWFya2VyKTsKICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFs
U3R5bGVDb21tYVNlcGFyYXRlZEtleXdvcmRFZGl0b3IuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUNvbW1hU2VwYXJhdGVkS2V5d29yZEVk
aXRvci5qcwppbmRleCBjNjZiM2VhLi45YjQ1NDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZUNvbW1hU2VwYXJhdGVkS2V5
d29yZEVkaXRvci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9WaXN1YWxTdHlsZUNvbW1hU2VwYXJhdGVkS2V5d29yZEVkaXRvci5qcwpAQCAtMTExLDcg
KzExMSw5IEBAIFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZUNvbW1hU2VwYXJhdGVkS2V5d29yZEVk
aXRvciA9IGNsYXNzIFZpc3VhbFN0eWxlQ29tbWFTZXBhCiAgICAgICAgICAgICB2YWx1ZXNbaV0g
Kz0gKG9wZW5QYXJlbnRoZXNlcyAtIGNsb3NlZFBhcmVudGhlc2lzID09PSAxKSA/ICIpIiA6ICIi
OwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDEgJiYgIXZhbHVl
c1swXS5pbmNsdWRlcygiKCIpICYmICF2YWx1ZXNbMF0uaW5jbHVkZXMoIikiKSkKKyAgICAgICAg
Ly8gQWxsb3cgc3BsaXR0aW5nIHdpdGggcGFyZW50aGVzaXMgaWYgdGhlIHBhcmVudGhlc2lzIGRv
ZXMgbm90IGhhdmUgYW55IGNvbW1hcy4KKyAgICAgICAgbGV0IGhhc1BhcmVudGhlc2lzID0gdmFs
dWVzWzBdICYmICh2YWx1ZXNbMF0uaW5jbHVkZXMoIigiKSB8fCB2YWx1ZXNbMF0uaW5jbHVkZXMo
IikiKSk7CisgICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAxICYmICghaGFzUGFyZW50aGVz
aXMgfHwgIS9cKFteXCldKixbXlwpXSpcKS8udGVzdCh2YWx1ZXNbMF0pKSkKICAgICAgICAgICAg
IHZhbHVlcyA9IHZhbHVlc1swXS5zcGxpdCgvXHMqLFxzKi8pOwogCiAgICAgICAgIGZvciAobGV0
IHZhbHVlIG9mIHZhbHVlcykKQEAgLTE3Niw3ICsxNzgsNyBAQCBXZWJJbnNwZWN0b3IuVmlzdWFs
U3R5bGVDb21tYVNlcGFyYXRlZEtleXdvcmRFZGl0b3IgPSBjbGFzcyBWaXN1YWxTdHlsZUNvbW1h
U2VwYQogICAgICAgICBsZXQgY291bnQgPSAwOwogICAgICAgICB3aGlsZSAoY291bnQgPCB2YWx1
ZXNDb3VudCkgewogICAgICAgICAgICAgaWYgKGNvdW50ID4gMCkKLSAgICAgICAgICAgICAgICB0
ZXh0ICs9ICIsIjsKKyAgICAgICAgICAgICAgICB0ZXh0ICs9ICIsICI7CiAKICAgICAgICAgICAg
IGZvciAobGV0IHZhbHVlTGlzdCBvZiB2YWx1ZUxpc3RzKQogICAgICAgICAgICAgICAgIHRleHQg
Kz0gdmFsdWVMaXN0W2NvdW50ID4gdmFsdWVMaXN0Lmxlbmd0aCAtIDEgPyB2YWx1ZUxpc3QubGVu
Z3RoIC0gMSA6IGNvdW50XSArICIgIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVGltaW5nRWRpdG9yLmNzcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlVGltaW5nRWRp
dG9yLmNzcwppbmRleCBjNzFhZGJjLi40YjJjZmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVRpbWluZ0VkaXRvci5jc3MK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5
bGVUaW1pbmdFZGl0b3IuY3NzCkBAIC0zMSwxMiArMzEsMTMgQEAKICAgICBvcmRlcjogMTsKIH0K
IAotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIudGltaW5nLWVkaXRvciA+IC52aXN1
YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyID4gLmlubGluZS1zd2F0Y2guYmV6aWVy
IHsKKy52aXN1YWwtc3R5bGUtcHJvcGVydHktY29udGFpbmVyLnRpbWluZy1lZGl0b3IgPiAudmlz
dWFsLXN0eWxlLXByb3BlcnR5LXZhbHVlLWNvbnRhaW5lciA+IC5pbmxpbmUtc3dhdGNoOm1hdGNo
ZXMoLmJlemllciwgLnNwcmluZykgewogICAgIHdpZHRoOiAyM3B4OwogICAgIGhlaWdodDogMjBw
eDsKIH0KIAotLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS1jb250YWluZXIudGltaW5nLWVkaXRvciA+
IC52aXN1YWwtc3R5bGUtcHJvcGVydHktdmFsdWUtY29udGFpbmVyOm5vdCguYmV6aWVyLXZhbHVl
KSA+IC5pbmxpbmUtc3dhdGNoLmJlemllciB7CisudmlzdWFsLXN0eWxlLXByb3BlcnR5LWNvbnRh
aW5lci50aW1pbmctZWRpdG9yID4gLnZpc3VhbC1zdHlsZS1wcm9wZXJ0eS12YWx1ZS1jb250YWlu
ZXI6bm90KC5iZXppZXItdmFsdWUpID4gLmlubGluZS1zd2F0Y2guYmV6aWVyLAorLnZpc3VhbC1z
dHlsZS1wcm9wZXJ0eS1jb250YWluZXIudGltaW5nLWVkaXRvciA+IC52aXN1YWwtc3R5bGUtcHJv
cGVydHktdmFsdWUtY29udGFpbmVyOm5vdCguc3ByaW5nLXZhbHVlKSA+IC5pbmxpbmUtc3dhdGNo
LnNwcmluZyB7CiAgICAgZGlzcGxheTogbm9uZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVUaW1pbmdFZGl0b3Iu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHls
ZVRpbWluZ0VkaXRvci5qcwppbmRleCBiZDBmMjM4Li5mOWQwZWNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVRpbWluZ0Vk
aXRvci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9W
aXN1YWxTdHlsZVRpbWluZ0VkaXRvci5qcwpAQCAtMzEsODEgKzMxLDEzMSBAQCBXZWJJbnNwZWN0
b3IuVmlzdWFsU3R5bGVUaW1pbmdFZGl0b3IgPSBjbGFzcyBWaXN1YWxTdHlsZVRpbWluZ0VkaXRv
ciBleHRlbmRzIFdlYgogCiAgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJ0aW1p
bmctZWRpdG9yIik7CiAKLSAgICAgICAgdGhpcy5fY3VzdG9tVmFsdWVPcHRpb25FbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9uIik7Ci0gICAgICAgIHRoaXMuX2N1c3RvbVZh
bHVlT3B0aW9uRWxlbWVudC52YWx1ZSA9ICJjdXN0b20iOwotICAgICAgICB0aGlzLl9jdXN0b21W
YWx1ZU9wdGlvbkVsZW1lbnQudGV4dCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ3VzdG9tIik7
Ci0gICAgICAgIHRoaXMuX2tleXdvcmRTZWxlY3RFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2N1
c3RvbVZhbHVlT3B0aW9uRWxlbWVudCk7CisgICAgICAgIHRoaXMuX2tleXdvcmRTZWxlY3RFbGVt
ZW50LmNyZWF0ZUNoaWxkKCJociIpOworCisgICAgICAgIHRoaXMuX2N1c3RvbUJlemllck9wdGlv
bkVsZW1lbnQgPSB0aGlzLl9rZXl3b3JkU2VsZWN0RWxlbWVudC5jcmVhdGVDaGlsZCgib3B0aW9u
Iik7CisgICAgICAgIHRoaXMuX2N1c3RvbUJlemllck9wdGlvbkVsZW1lbnQudmFsdWUgPSAiYmV6
aWVyIjsKKyAgICAgICAgdGhpcy5fY3VzdG9tQmV6aWVyT3B0aW9uRWxlbWVudC50ZXh0ID0gV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJCZXppZXIiKTsKKworICAgICAgICB0aGlzLl9jdXN0b21TcHJp
bmdPcHRpb25FbGVtZW50ID0gdGhpcy5fa2V5d29yZFNlbGVjdEVsZW1lbnQuY3JlYXRlQ2hpbGQo
Im9wdGlvbiIpOworICAgICAgICB0aGlzLl9jdXN0b21TcHJpbmdPcHRpb25FbGVtZW50LnZhbHVl
ID0gInNwcmluZyI7CisgICAgICAgIHRoaXMuX2N1c3RvbVNwcmluZ09wdGlvbkVsZW1lbnQudGV4
dCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU3ByaW5nIik7CiAKICAgICAgICAgdGhpcy5fYmV6
aWVyU3dhdGNoID0gbmV3IFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2goV2ViSW5zcGVjdG9yLklu
bGluZVN3YXRjaC5UeXBlLkJlemllcik7CiAgICAgICAgIHRoaXMuX2JlemllclN3YXRjaC5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5JbmxpbmVTd2F0Y2guRXZlbnQuVmFsdWVDaGFuZ2Vk
LCB0aGlzLl9iZXppZXJTd2F0Y2hWYWx1ZUNoYW5nZWQsIHRoaXMpOwogICAgICAgICB0aGlzLmNv
bnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2JlemllclN3YXRjaC5lbGVtZW50KTsKLSAg
ICB9Ci0KLSAgICAvLyBQdWJsaWMKLQotICAgIGdldCBiZXppZXJWYWx1ZSgpCi0gICAgewotICAg
ICAgICBsZXQgYmV6aWVyID0gdGhpcy5fYmV6aWVyU3dhdGNoLnZhbHVlOwotICAgICAgICBpZiAo
IWJlemllcikKLSAgICAgICAgICAgIHJldHVybiBudWxsOwogCi0gICAgICAgIHJldHVybiBiZXpp
ZXIudG9TdHJpbmcoKTsKLSAgICB9Ci0KLSAgICBzZXQgYmV6aWVyVmFsdWUodGV4dCkKLSAgICB7
Ci0gICAgICAgIGxldCBiZXppZXIgPSBXZWJJbnNwZWN0b3IuQ3ViaWNCZXppZXIuZnJvbVN0cmlu
Zyh0ZXh0KTsKLSAgICAgICAgdGhpcy5fYmV6aWVyU3dhdGNoLnZhbHVlID0gYmV6aWVyOworICAg
ICAgICB0aGlzLl9zcHJpbmdTd2F0Y2ggPSBuZXcgV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaChX
ZWJJbnNwZWN0b3IuSW5saW5lU3dhdGNoLlR5cGUuU3ByaW5nKTsKKyAgICAgICAgdGhpcy5fc3By
aW5nU3dhdGNoLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLklubGluZVN3YXRjaC5FdmVu
dC5WYWx1ZUNoYW5nZWQsIHRoaXMuX3NwcmluZ1N3YXRjaFZhbHVlQ2hhbmdlZCwgdGhpcyk7Cisg
ICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fc3ByaW5nU3dhdGNo
LmVsZW1lbnQpOwogICAgIH0KIAogICAgIC8vIFByb3RlY3RlZAogCiAgICAgZ2V0IHZhbHVlKCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9jdXN0b21WYWx1ZU9wdGlvbkVsZW1lbnQuc2Vs
ZWN0ZWQgPyB0aGlzLmJlemllclZhbHVlIDogc3VwZXIudmFsdWU7CisgICAgICAgIGlmICh0aGlz
Ll9jdXN0b21CZXppZXJPcHRpb25FbGVtZW50LnNlbGVjdGVkKQorICAgICAgICAgICAgcmV0dXJu
IHRoaXMuX2JlemllclZhbHVlOworCisgICAgICAgIGlmICh0aGlzLl9jdXN0b21TcHJpbmdPcHRp
b25FbGVtZW50LnNlbGVjdGVkKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NwcmluZ1ZhbHVl
OworCisgICAgICAgIHJldHVybiBzdXBlci52YWx1ZTsKICAgICB9CiAKICAgICBzZXQgdmFsdWUo
dmFsdWUpCiAgICAgewotICAgICAgICB0aGlzLmJlemllclZhbHVlID0gdmFsdWU7CisgICAgICAg
IHRoaXMuX2JlemllclZhbHVlID0gdmFsdWU7CisgICAgICAgIHRoaXMuX3NwcmluZ1ZhbHVlID0g
dmFsdWU7CiAgICAgICAgIGlmICh0aGlzLnZhbHVlSXNTdXBwb3J0ZWRLZXl3b3JkKHZhbHVlKSkg
ewogICAgICAgICAgICAgc3VwZXIudmFsdWUgPSB2YWx1ZTsKLSAgICAgICAgICAgIHRoaXMuY29u
dGVudEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgiYmV6aWVyLXZhbHVlIik7CisgICAgICAgICAg
ICB0aGlzLmNvbnRlbnRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoImJlemllci12YWx1ZSIsICJz
cHJpbmctdmFsdWUiKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAg
IGxldCBiZXppZXIgPSB0aGlzLmJlemllclZhbHVlOwotICAgICAgICB0aGlzLl9jdXN0b21WYWx1
ZU9wdGlvbkVsZW1lbnQuc2VsZWN0ZWQgPSAhIWJlemllcjsKKyAgICAgICAgbGV0IGJlemllciA9
IHRoaXMuX2JlemllclZhbHVlOworICAgICAgICB0aGlzLl9jdXN0b21CZXppZXJPcHRpb25FbGVt
ZW50LnNlbGVjdGVkID0gISFiZXppZXI7CiAgICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuY2xh
c3NMaXN0LnRvZ2dsZSgiYmV6aWVyLXZhbHVlIiwgISFiZXppZXIpOwotICAgICAgICB0aGlzLnNw
ZWNpYWxQcm9wZXJ0eVBsYWNlaG9sZGVyRWxlbWVudC5oaWRkZW4gPSAhIWJlemllcjsKLSAgICAg
ICAgaWYgKCFiZXppZXIpCisKKyAgICAgICAgbGV0IHNwcmluZyA9IHRoaXMuX3NwcmluZ1ZhbHVl
OworICAgICAgICB0aGlzLl9jdXN0b21TcHJpbmdPcHRpb25FbGVtZW50LnNlbGVjdGVkID0gISFz
cHJpbmc7CisgICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgic3By
aW5nLXZhbHVlIiwgISFzcHJpbmcpOworCisgICAgICAgIHRoaXMuc3BlY2lhbFByb3BlcnR5UGxh
Y2Vob2xkZXJFbGVtZW50LmhpZGRlbiA9ICEhYmV6aWVyIHx8ICEhc3ByaW5nOworICAgICAgICBp
ZiAoIWJlemllciAmJiAhc3ByaW5nKQogICAgICAgICAgICAgc3VwZXIudmFsdWUgPSB2YWx1ZTsK
ICAgICB9CiAKICAgICBnZXQgc3ludGhlc2l6ZWRWYWx1ZSgpCiAgICAgewotICAgICAgICByZXR1
cm4gdGhpcy5fY3VzdG9tVmFsdWVPcHRpb25FbGVtZW50LnNlbGVjdGVkID8gdGhpcy5iZXppZXJW
YWx1ZSA6IHN1cGVyLnN5bnRoZXNpemVkVmFsdWU7CisgICAgICAgIGlmICh0aGlzLl9jdXN0b21C
ZXppZXJPcHRpb25FbGVtZW50LnNlbGVjdGVkKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Jl
emllclZhbHVlOworCisgICAgICAgIGlmICh0aGlzLl9jdXN0b21TcHJpbmdPcHRpb25FbGVtZW50
LnNlbGVjdGVkKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NwcmluZ1ZhbHVlOworCisgICAg
ICAgIHJldHVybiBzdXBlci5zeW50aGVzaXplZFZhbHVlOwogICAgIH0KIAogICAgIHBhcnNlVmFs
dWUodGV4dCkKICAgICB7Ci0gICAgICAgIHJldHVybiAvKGN1YmljLWJlemllclwoLitcKSkvLmV4
ZWModGV4dCk7CisgICAgICAgIHJldHVybiAvKCg/OmN1YmljLWJlemllcnxzcHJpbmcpXCguK1wp
KS8uZXhlYyh0ZXh0KTsKICAgICB9CiAKICAgICAvLyBQcml2YXRlCiAKKyAgICBnZXQgX2Jlemll
clZhbHVlKCkKKyAgICB7CisgICAgICAgIGxldCBiZXppZXIgPSB0aGlzLl9iZXppZXJTd2F0Y2gu
dmFsdWU7CisgICAgICAgIGlmICghYmV6aWVyKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisK
KyAgICAgICAgcmV0dXJuIGJlemllci50b1N0cmluZygpOworICAgIH0KKworICAgIHNldCBfYmV6
aWVyVmFsdWUodGV4dCkKKyAgICB7CisgICAgICAgIHRoaXMuX2JlemllclN3YXRjaC52YWx1ZSA9
IFdlYkluc3BlY3Rvci5DdWJpY0Jlemllci5mcm9tU3RyaW5nKHRleHQpOworICAgIH0KKworICAg
IGdldCBfc3ByaW5nVmFsdWUoKQorICAgIHsKKyAgICAgICAgbGV0IHNwcmluZyA9IHRoaXMuX3Nw
cmluZ1N3YXRjaC52YWx1ZTsKKyAgICAgICAgaWYgKCFzcHJpbmcpCisgICAgICAgICAgICByZXR1
cm4gbnVsbDsKKworICAgICAgICByZXR1cm4gc3ByaW5nLnRvU3RyaW5nKCk7CisgICAgfQorCisg
ICAgc2V0IF9zcHJpbmdWYWx1ZSh0ZXh0KQorICAgIHsKKyAgICAgICAgdGhpcy5fc3ByaW5nU3dh
dGNoLnZhbHVlID0gV2ViSW5zcGVjdG9yLlNwcmluZy5mcm9tU3RyaW5nKHRleHQpOworICAgIH0K
KwogICAgIF9oYW5kbGVLZXl3b3JkQ2hhbmdlZCgpCiAgICAgewogICAgICAgICBzdXBlci5faGFu
ZGxlS2V5d29yZENoYW5nZWQoKTsKLSAgICAgICAgbGV0IGN1c3RvbU9wdGlvblNlbGVjdGVkID0g
dGhpcy5fY3VzdG9tVmFsdWVPcHRpb25FbGVtZW50LnNlbGVjdGVkOwotICAgICAgICB0aGlzLmNv
bnRlbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImJlemllci12YWx1ZSIsICEhY3VzdG9tT3B0
aW9uU2VsZWN0ZWQpOwotICAgICAgICB0aGlzLnNwZWNpYWxQcm9wZXJ0eVBsYWNlaG9sZGVyRWxl
bWVudC5oaWRkZW4gPSAhIWN1c3RvbU9wdGlvblNlbGVjdGVkOwotICAgICAgICBpZiAoY3VzdG9t
T3B0aW9uU2VsZWN0ZWQpCi0gICAgICAgICAgICB0aGlzLmJlemllclZhbHVlID0gImxpbmVhciI7
CisKKyAgICAgICAgbGV0IGN1c3RvbUJlemllck9wdGlvblNlbGVjdGVkID0gdGhpcy5fY3VzdG9t
QmV6aWVyT3B0aW9uRWxlbWVudC5zZWxlY3RlZDsKKyAgICAgICAgdGhpcy5jb250ZW50RWxlbWVu
dC5jbGFzc0xpc3QudG9nZ2xlKCJiZXppZXItdmFsdWUiLCAhIWN1c3RvbUJlemllck9wdGlvblNl
bGVjdGVkKTsKKyAgICAgICAgaWYgKGN1c3RvbUJlemllck9wdGlvblNlbGVjdGVkKQorICAgICAg
ICAgICAgdGhpcy5fYmV6aWVyVmFsdWUgPSAibGluZWFyIjsKKworICAgICAgICBsZXQgY3VzdG9t
U3ByaW5nT3B0aW9uU2VsZWN0ZWQgPSB0aGlzLl9jdXN0b21TcHJpbmdPcHRpb25FbGVtZW50LnNl
bGVjdGVkOworICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoInNw
cmluZy12YWx1ZSIsICEhY3VzdG9tU3ByaW5nT3B0aW9uU2VsZWN0ZWQpOworICAgICAgICBpZiAo
Y3VzdG9tU3ByaW5nT3B0aW9uU2VsZWN0ZWQpCisgICAgICAgICAgICB0aGlzLl9zcHJpbmdWYWx1
ZSA9ICIxIDEwMCAxMCAwIjsKKworICAgICAgICB0aGlzLnNwZWNpYWxQcm9wZXJ0eVBsYWNlaG9s
ZGVyRWxlbWVudC5oaWRkZW4gPSAhIWN1c3RvbUJlemllck9wdGlvblNlbGVjdGVkIHx8ICEhY3Vz
dG9tU3ByaW5nT3B0aW9uU2VsZWN0ZWQ7CiAgICAgfQogCiAgICAgX2JlemllclN3YXRjaFZhbHVl
Q2hhbmdlZChldmVudCkKICAgICB7CiAgICAgICAgIHRoaXMuX3ZhbHVlRGlkQ2hhbmdlKCk7CiAg
ICAgfQorCisgICAgX3NwcmluZ1N3YXRjaFZhbHVlQ2hhbmdlZChldmVudCkKKyAgICB7CisgICAg
ICAgIHRoaXMuX3ZhbHVlRGlkQ2hhbmdlKCk7CisgICAgfQogfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>