<?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>166787</bug_id>
          
          <creation_ts>2017-01-06 17:00:38 -0800</creation_ts>
          <short_desc>Web Inspector: Frontend should be made to expect and handle disabled properties</short_desc>
          <delta_ts>2017-09-13 13:48:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>176643</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Nikita Vasilyev">nvasilyev</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>hyatt</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1264575</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-01-06 17:00:38 -0800</bug_when>
    <thetext>Summary:
Frontend should be made to expect and handle disabled properties

See related: &lt;https://webkit.org/b/166786&gt; Web Inspector: Toggling CSS Properties in Styles Sidebar (comment / uncomment)

The backend can inform the frontend about commented out CSS Properties within a rule as disabled properties. The frontend doesn&apos;t expect these yet. It should be made to handle them and we should have tests for expected behavior in different cases of comments within a rule:

Examples of cases where a comment may contain a property and may send the frontend information about contents in the comment:

1. A single commented out property:

  div {
    /* color: blue; */
    background: green;
  }

2. Multiple commented out properties:

  div {
   /* color: blue;
      background: green; */
  }

3. Multi-line comments

  div {
    /*
    color:
    blue;
    */
    background: green;
  }


The frontend will need to handle these disabled properties in some cases. Most importantly CSSStyleDeclarationTextEditor generates checkboxes to toggle individual properties and it currently do not know how to handle disabled properties and makes an absolute mess of things!

There may be other places in the frontend that simply iterate properties without considering if the property is enabled/disabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264658</commentid>
    <comment_count>1</comment_count>
      <attachid>298259</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-01-06 22:33:46 -0800</bug_when>
    <thetext>Created attachment 298259
[WIP] Work in Progress

This patch is a starter. I believe it gets the Rules sidebar working as expected, but it needs real tests and heavy usage testing and code auditing to see if anywhere else in the inspector we are iterating properties and may be mishandling disabled properties (!property.enabled).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347711</commentid>
    <comment_count>2</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-09-11 16:26:00 -0700</bug_when>
    <thetext>&lt;rdar://problem/34379593&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347718</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-11 16:31:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/34379735&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348069</commentid>
    <comment_count>4</comment_count>
      <attachid>320575</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-09-12 15:47:14 -0700</bug_when>
    <thetext>Created attachment 320575
Patch

Run on bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348073</commentid>
    <comment_count>5</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-12 15:59:36 -0700</bug_when>
    <thetext>Attachment 320575 did not pass style-queue:


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


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348119</commentid>
    <comment_count>6</comment_count>
      <attachid>320585</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-09-12 17:27:04 -0700</bug_when>
    <thetext>Created attachment 320585
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348410</commentid>
    <comment_count>7</comment_count>
      <attachid>320585</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-09-13 11:46:31 -0700</bug_when>
    <thetext>Comment on attachment 320585
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        Add new test cases to inspector/css/css-property.html.

I think the normal syntax prepare-ChangeLog generates is:

    Tests: inspector/css/css-property.html
           inspector/css/matched-style-properties.html

&gt; Source/WebInspectorUI/UserInterface/Models/CSSStyleDeclaration.js:222
&gt; +    get allProperties() { return this._allProperties; }

I see that `visibleProperties` below filters on _properties and not _allProperties. Do disabled properties have a styleDeclarationTextRange? If so we might end up including a allVisibleProperties in the future.

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleSelectorSection.js:311
&gt; -        let styleEnabled = event &amp;&amp; event.data &amp;&amp; event.data.enabled;
&gt; +        let styleEnabled = event &amp;&amp; event.data &amp;&amp; event.data.attached;

This doesn&apos;t make sense. `enabled` is the event data associated with the VisualStyleSelectorTreeItem CheckboxChanged event:

        this.dispatchEventToListeners(WI.VisualStyleSelectorTreeItem.Event.CheckboxChanged, {enabled: this._checkboxElement.checked});

This should not change to `attached`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348439</commentid>
    <comment_count>8</comment_count>
      <attachid>320585</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-09-13 12:48:20 -0700</bug_when>
    <thetext>Comment on attachment 320585
Patch

Thank you for the review!

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

&gt;&gt; Source/WebCore/ChangeLog:11
&gt;&gt; +        Add new test cases to inspector/css/css-property.html.
&gt; 
&gt; I think the normal syntax prepare-ChangeLog generates is:
&gt; 
&gt;     Tests: inspector/css/css-property.html
&gt;            inspector/css/matched-style-properties.html

Hm, it certainly didn&apos;t generate this for me. I&apos;ll add it manually.

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/CSSStyleDeclaration.js:222
&gt;&gt; +    get allProperties() { return this._allProperties; }
&gt; 
&gt; I see that `visibleProperties` below filters on _properties and not _allProperties. Do disabled properties have a styleDeclarationTextRange? If so we might end up including a allVisibleProperties in the future.

Good point. In the current styles sidebar, disabled (commented out) properties aren&apos;t included in _properties at all.

In the new Styles sidebar, I want to deprecate visibleProperties. My understanding is they are *editable* properties, and whether a property is editable or not should be decided at a rule/declaration level.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleSelectorSection.js:311
&gt;&gt; +        let styleEnabled = event &amp;&amp; event.data &amp;&amp; event.data.attached;
&gt; 
&gt; This doesn&apos;t make sense. `enabled` is the event data associated with the VisualStyleSelectorTreeItem CheckboxChanged event:
&gt; 
&gt;         this.dispatchEventToListeners(WI.VisualStyleSelectorTreeItem.Event.CheckboxChanged, {enabled: this._checkboxElement.checked});
&gt; 
&gt; This should not change to `attached`.

My bad 🤦‍♂️</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348449</commentid>
    <comment_count>9</comment_count>
      <attachid>320680</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-09-13 13:01:21 -0700</bug_when>
    <thetext>Created attachment 320680
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348480</commentid>
    <comment_count>10</comment_count>
      <attachid>320680</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-13 13:48:12 -0700</bug_when>
    <thetext>Comment on attachment 320680
Patch

Clearing flags on attachment: 320680

Committed r221993: &lt;http://trac.webkit.org/changeset/221993&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348481</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-13 13:48:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298259</attachid>
            <date>2017-01-06 22:33:46 -0800</date>
            <delta_ts>2017-01-06 22:33:46 -0800</delta_ts>
            <desc>[WIP] Work in Progress</desc>
            <filename>in-progress-enable-disabled.patch</filename>
            <type>text/plain</type>
            <size>15631</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcApp
bmRleCBlM2RhOWIyLi4yZjdkNTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCkBAIC02MDQsOSArNjA0LDYgQEAgdm9pZCBJbnNwZWN0
b3JTdHlsZTo6cG9wdWxhdGVBbGxQcm9wZXJ0aWVzKFZlY3RvcjxJbnNwZWN0b3JTdHlsZVByb3Bl
cnR5PiogcmVzdWwKICAgICAgICAgQVNTRVJUKCFzdHlsZURlY2xhcmF0aW9uT3JFeGNlcHRpb24u
aGFzRXhjZXB0aW9uKCkpOwogICAgICAgICBTdHJpbmcgc3R5bGVEZWNsYXJhdGlvbiA9IHN0eWxl
RGVjbGFyYXRpb25PckV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSA/IGVtcHR5U3RyaW5nKCkgOiBz
dHlsZURlY2xhcmF0aW9uT3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCk7CiAgICAgICAg
IGZvciAoYXV0byYgc291cmNlRGF0YSA6ICpzb3VyY2VQcm9wZXJ0eURhdGEpIHsKLSAgICAgICAg
ICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTY2Nzg3PiBXZWIgSW5zcGVjdG9y
OiBGcm9udGVuZCBzaG91bGQgYmUgbWFkZSB0byBleHBlY3QgYW5kIGhhbmRsZSBkaXNhYmxlZCBw
cm9wZXJ0aWVzCi0gICAgICAgICAgICBpZiAoc291cmNlRGF0YS5kaXNhYmxlZCkKLSAgICAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIEluc3BlY3RvclN0eWxlUHJvcGVydHkgcChz
b3VyY2VEYXRhLCB0cnVlLCBzb3VyY2VEYXRhLmRpc2FibGVkKTsKICAgICAgICAgICAgIHAuc2V0
UmF3VGV4dEZyb21TdHlsZURlY2xhcmF0aW9uKHN0eWxlRGVjbGFyYXRpb24pOwogICAgICAgICAg
ICAgcmVzdWx0LT5hcHBlbmQocCk7CkBAIC02NjQsMTcgKzY2MSwyMSBAQCBSZWY8SW5zcGVjdG9y
OjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZT4gSW5zcGVjdG9yU3R5bGU6OnN0eWxlV2l0aFByb3Bl
cnRpZXMoKSBjbwogICAgICAgICAvLyBEZWZhdWx0ICJwcmlvcml0eSIgPT0gIiIuCiAgICAgICAg
IGlmIChwcm9wZXJ0eUVudHJ5LmltcG9ydGFudCkKICAgICAgICAgICAgIHByb3BlcnR5LT5zZXRQ
cmlvcml0eSgiaW1wb3J0YW50Iik7CisKKyAgICAgICAgaWYgKGl0LT5oYXNTb3VyY2UpIHsKKyAg
ICAgICAgICAgIC8vIFRoZSBwcm9wZXJ0eSByYW5nZSBpcyByZWxhdGl2ZSB0byB0aGUgc3R5bGUg
Ym9keSBzdGFydC4KKyAgICAgICAgICAgIC8vIFNob3VsZCBiZSBjb252ZXJ0ZWQgaW50byBhbiBh
YnNvbHV0ZSByYW5nZSAocmVsYXRpdmUgdG8gdGhlIHN0eWxlc2hlZXQgc3RhcnQpCisgICAgICAg
ICAgICAvLyBmb3IgdGhlIHByb3BlciBjb252ZXJzaW9uIGludG8gbGluZTpjb2x1bW4uCisgICAg
ICAgICAgICBTb3VyY2VSYW5nZSBhYnNvbHV0ZVByb3BlcnR5UmFuZ2UgPSBwcm9wZXJ0eUVudHJ5
LnJhbmdlOworICAgICAgICAgICAgYWJzb2x1dGVQcm9wZXJ0eVJhbmdlLnN0YXJ0ICs9IHJ1bGVC
b2R5UmFuZ2VTdGFydDsKKyAgICAgICAgICAgIGFic29sdXRlUHJvcGVydHlSYW5nZS5lbmQgKz0g
cnVsZUJvZHlSYW5nZVN0YXJ0OworICAgICAgICAgICAgcHJvcGVydHktPnNldFJhbmdlKGJ1aWxk
U291cmNlUmFuZ2VPYmplY3QoYWJzb2x1dGVQcm9wZXJ0eVJhbmdlLCBsaW5lRW5kaW5ncy5nZXQo
KSkpOworICAgICAgICB9CisKICAgICAgICAgaWYgKCFpdC0+ZGlzYWJsZWQpIHsKICAgICAgICAg
ICAgIGlmIChpdC0+aGFzU291cmNlKSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKHNvdXJjZURh
dGEpOwogICAgICAgICAgICAgICAgIHByb3BlcnR5LT5zZXRJbXBsaWNpdChmYWxzZSk7Ci0gICAg
ICAgICAgICAgICAgLy8gVGhlIHByb3BlcnR5IHJhbmdlIGlzIHJlbGF0aXZlIHRvIHRoZSBzdHls
ZSBib2R5IHN0YXJ0LgotICAgICAgICAgICAgICAgIC8vIFNob3VsZCBiZSBjb252ZXJ0ZWQgaW50
byBhbiBhYnNvbHV0ZSByYW5nZSAocmVsYXRpdmUgdG8gdGhlIHN0eWxlc2hlZXQgc3RhcnQpCi0g
ICAgICAgICAgICAgICAgLy8gZm9yIHRoZSBwcm9wZXIgY29udmVyc2lvbiBpbnRvIGxpbmU6Y29s
dW1uLgotICAgICAgICAgICAgICAgIFNvdXJjZVJhbmdlIGFic29sdXRlUHJvcGVydHlSYW5nZSA9
IHByb3BlcnR5RW50cnkucmFuZ2U7Ci0gICAgICAgICAgICAgICAgYWJzb2x1dGVQcm9wZXJ0eVJh
bmdlLnN0YXJ0ICs9IHJ1bGVCb2R5UmFuZ2VTdGFydDsKLSAgICAgICAgICAgICAgICBhYnNvbHV0
ZVByb3BlcnR5UmFuZ2UuZW5kICs9IHJ1bGVCb2R5UmFuZ2VTdGFydDsKLSAgICAgICAgICAgICAg
ICBwcm9wZXJ0eS0+c2V0UmFuZ2UoYnVpbGRTb3VyY2VSYW5nZU9iamVjdChhYnNvbHV0ZVByb3Bl
cnR5UmFuZ2UsIGxpbmVFbmRpbmdzLmdldCgpKSk7CiAKICAgICAgICAgICAgICAgICAvLyBQYXJz
ZWQgcHJvcGVydHkgb3ZlcnJpZGVzIGFueSBwcm9wZXJ0eSB3aXRoIHRoZSBzYW1lIG5hbWUuIE5v
bi1wYXJzZWQgcHJvcGVydHkgb3ZlcnJpZGVzCiAgICAgICAgICAgICAgICAgLy8gcHJldmlvdXMg
bm9uLXBhcnNlZCBwcm9wZXJ0eSB3aXRoIHRoZSBzYW1lIG5hbWUgKGlmIGFueSkuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTUHJvcGVy
dHkuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTUHJv
cGVydHkuanMKaW5kZXggZmVmOThlYS4uOTk4NzEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5LmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NQcm9wZXJ0eS5qcwpAQCAt
NDgsNiArNDgsMTUgQEAgV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5ID0gY2xhc3MgQ1NTUHJvcGVy
dHkgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAKICAgICAvLyBQdWJsaWMKIAorICAgIGdl
dCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQorICAgIGdldCB2YWx1ZSgpIHsgcmV0dXJu
IHRoaXMuX3ZhbHVlOyB9CisgICAgZ2V0IHByaW9yaXR5KCkgeyByZXR1cm4gdGhpcy5fcHJpb3Jp
dHk7IH0KKyAgICBnZXQgYW5vbnltb3VzKCkgeyByZXR1cm4gdGhpcy5fYW5vbnltb3VzOyB9Cisg
ICAgZ2V0IGluaGVyaXRlZCgpIHsgcmV0dXJuIHRoaXMuX2luaGVyaXRlZDsgfQorICAgIGdldCB2
YWxpZCgpIHsgcmV0dXJuIHRoaXMuX3ZhbGlkOyB9CisgICAgZ2V0IHZhcmlhYmxlKCkgeyByZXR1
cm4gdGhpcy5fdmFyaWFibGU7IH0KKyAgICBnZXQgc3R5bGVTaGVldFRleHRSYW5nZSgpIHsgcmV0
dXJuIHRoaXMuX3N0eWxlU2hlZXRUZXh0UmFuZ2U7IH0KKwogICAgIGdldCBvd25lclN0eWxlKCkK
ICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9vd25lclN0eWxlOwpAQCAtMTE4LDYgKzEyNywx
MSBAQCBXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkgPSBjbGFzcyBDU1NQcm9wZXJ0eSBleHRlbmRz
IFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5FdmVudC5DaGFuZ2VkKTsKICAgICB9CiAK
KyAgICBnZXQgdGV4dCgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fdGV4dCB8fCB0aGlz
LnN5bnRoZXNpemVkVGV4dDsKKyAgICB9CisKICAgICBnZXQgc3ludGhlc2l6ZWRUZXh0KCkKICAg
ICB7CiAgICAgICAgIHZhciBuYW1lID0gdGhpcy5uYW1lOwpAQCAtMTI4LDEzICsxNDIsNiBAQCBX
ZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkgPSBjbGFzcyBDU1NQcm9wZXJ0eSBleHRlbmRzIFdlYklu
c3BlY3Rvci5PYmplY3QKICAgICAgICAgcmV0dXJuIG5hbWUgKyAiOiAiICsgdGhpcy52YWx1ZS50
cmltKCkgKyAocHJpb3JpdHkgPyAiICEiICsgcHJpb3JpdHkgOiAiIikgKyAiOyI7CiAgICAgfQog
Ci0gICAgZ2V0IHRleHQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3RleHQgfHwgdGhp
cy5zeW50aGVzaXplZFRleHQ7Ci0gICAgfQotCi0gICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlz
Ll9uYW1lOyB9Ci0KICAgICBnZXQgY2Fub25pY2FsTmFtZSgpCiAgICAgewogICAgICAgICBpZiAo
dGhpcy5fY2Fub25pY2FsTmFtZSkKQEAgLTE0NSwyMSArMTUyLDIxIEBAIFdlYkluc3BlY3Rvci5D
U1NQcm9wZXJ0eSA9IGNsYXNzIENTU1Byb3BlcnR5IGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVj
dAogICAgICAgICByZXR1cm4gdGhpcy5fY2Fub25pY2FsTmFtZTsKICAgICB9CiAKLSAgICBnZXQg
dmFsdWUoKSB7IHJldHVybiB0aGlzLl92YWx1ZTsgfQotCiAgICAgZ2V0IGltcG9ydGFudCgpCiAg
ICAgewogICAgICAgICByZXR1cm4gdGhpcy5wcmlvcml0eSA9PT0gImltcG9ydGFudCI7CiAgICAg
fQogCi0gICAgZ2V0IHByaW9yaXR5KCkgeyByZXR1cm4gdGhpcy5fcHJpb3JpdHk7IH0KLQogICAg
IGdldCBlbmFibGVkKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9lbmFibGVkICYmIHRo
aXMuX293bmVyU3R5bGUgJiYgKCFpc05hTih0aGlzLl9pbmRleCkgfHwgdGhpcy5fb3duZXJTdHls
ZS50eXBlID09PSBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbi5UeXBlLkNvbXB1dGVk
KTsKICAgICB9CiAKLSAgICBnZXQgb3ZlcnJpZGRlbigpIHsgcmV0dXJuIHRoaXMuX292ZXJyaWRk
ZW47IH0KKyAgICBnZXQgb3ZlcnJpZGRlbigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5f
b3ZlcnJpZGRlbjsKKyAgICB9CisKICAgICBzZXQgb3ZlcnJpZGRlbihvdmVycmlkZGVuKQogICAg
IHsKICAgICAgICAgb3ZlcnJpZGRlbiA9IG92ZXJyaWRkZW4gfHwgZmFsc2U7CkBAIC0xODcsMTQg
KzE5NCwxNSBAQCBXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkgPSBjbGFzcyBDU1NQcm9wZXJ0eSBl
eHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgdGhpcy5fb3ZlcnJpZGRlblN0YXR1
c0NoYW5nZWRUaW1lb3V0ID0gc2V0VGltZW91dChkZWxheWVkLmJpbmQodGhpcyksIDApOwogICAg
IH0KIAotICAgIGdldCBpbXBsaWNpdCgpIHsgcmV0dXJuIHRoaXMuX2ltcGxpY2l0OyB9Ci0gICAg
c2V0IGltcGxpY2l0KGltcGxpY2l0KSB7IHRoaXMuX2ltcGxpY2l0ID0gaW1wbGljaXQ7IH0KKyAg
ICBnZXQgaW1wbGljaXQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2ltcGxpY2l0Owor
ICAgIH0KIAotICAgIGdldCBhbm9ueW1vdXMoKSB7IHJldHVybiB0aGlzLl9hbm9ueW1vdXM7IH0K
LSAgICBnZXQgaW5oZXJpdGVkKCkgeyByZXR1cm4gdGhpcy5faW5oZXJpdGVkOyB9Ci0gICAgZ2V0
IHZhbGlkKCkgeyByZXR1cm4gdGhpcy5fdmFsaWQ7IH0KLSAgICBnZXQgdmFyaWFibGUoKSB7IHJl
dHVybiB0aGlzLl92YXJpYWJsZTsgfQotICAgIGdldCBzdHlsZVNoZWV0VGV4dFJhbmdlKCkgeyBy
ZXR1cm4gdGhpcy5fc3R5bGVTaGVldFRleHRSYW5nZTsgfQorICAgIHNldCBpbXBsaWNpdChpbXBs
aWNpdCkKKyAgICB7CisgICAgICAgIHRoaXMuX2ltcGxpY2l0ID0gaW1wbGljaXQ7CisgICAgfQog
CiAgICAgZ2V0IHN0eWxlRGVjbGFyYXRpb25UZXh0UmFuZ2UoKQogICAgIHsKQEAgLTIyNCwxMyAr
MjMyLDIwIEBAIFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eSA9IGNsYXNzIENTU1Byb3BlcnR5IGV4
dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICByZXR1cm4gdGhpcy5fc3R5bGVEZWNs
YXJhdGlvblRleHRSYW5nZTsKICAgICB9CiAKLSAgICBnZXQgcmVsYXRlZFNob3J0aGFuZFByb3Bl
cnR5KCkgeyByZXR1cm4gdGhpcy5fcmVsYXRlZFNob3J0aGFuZFByb3BlcnR5OyB9CisgICAgZ2V0
IHJlbGF0ZWRTaG9ydGhhbmRQcm9wZXJ0eSgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5f
cmVsYXRlZFNob3J0aGFuZFByb3BlcnR5OworICAgIH0KKwogICAgIHNldCByZWxhdGVkU2hvcnRo
YW5kUHJvcGVydHkocHJvcGVydHkpCiAgICAgewogICAgICAgICB0aGlzLl9yZWxhdGVkU2hvcnRo
YW5kUHJvcGVydHkgPSBwcm9wZXJ0eSB8fCBudWxsOwogICAgIH0KIAotICAgIGdldCByZWxhdGVk
TG9uZ2hhbmRQcm9wZXJ0aWVzKCkgeyByZXR1cm4gdGhpcy5fcmVsYXRlZExvbmdoYW5kUHJvcGVy
dGllczt9CisgICAgZ2V0IHJlbGF0ZWRMb25naGFuZFByb3BlcnRpZXMoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuX3JlbGF0ZWRMb25naGFuZFByb3BlcnRpZXM7CisgICAgfQogCiAgICAg
YWRkUmVsYXRlZExvbmdoYW5kUHJvcGVydHkocHJvcGVydHkpCiAgICAgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJh
dGlvblRleHRFZGl0b3IuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuY3NzCmluZGV4IGEzOGJiODAuLmM2
YWQ0NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLmNzcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRv
ci5jc3MKQEAgLTY0LDcgKzY0LDcgQEAKIH0KIAogLmNzcy1zdHlsZS10ZXh0LWVkaXRvciA+IC5D
b2RlTWlycm9yIC5Db2RlTWlycm9yLWxpbmVzIHByZSA+IHNwYW4gc3Bhbjpub3QoLmNzcy1zdHls
ZS1kZWNsYXJhdGlvbi1wcm9wZXJ0eSwgLkNvZGVNaXJyb3Itd2lkZ2V0LCAuY20tY29tbWVudCwg
LmNtLXRhYiksCi0uY3NzLXN0eWxlLXRleHQtZWRpdG9yID4gLkNvZGVNaXJyb3IgLkNvZGVNaXJy
b3ItbGluZXMgLmNzcy1zdHlsZS1kZWNsYXJhdGlvbi1wcm9wZXJ0eTptYXRjaGVzKC5kaXNhYmxl
ZCwgLmludmFsaWQsIC5vdGhlci12ZW5kb3IsIC5ub3QtaW5oZXJpdGVkLCAub3ZlcnJpZGRlbikg
eworLmNzcy1zdHlsZS10ZXh0LWVkaXRvciA+IC5Db2RlTWlycm9yIC5Db2RlTWlycm9yLWxpbmVz
IC5jc3Mtc3R5bGUtZGVjbGFyYXRpb24tcHJvcGVydHk6bWF0Y2hlcyguaW52YWxpZCwgLm90aGVy
LXZlbmRvciwgLm5vdC1pbmhlcml0ZWQsIC5vdmVycmlkZGVuKSB7CiAgICAgdGV4dC1kZWNvcmF0
aW9uOiBsaW5lLXRocm91Z2g7CiAgICAgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMC4wMDAw
MDAwMDAwMDAwMDFweDsgLyogQSBoYWNrIHRvIGdldCBhIGRpZmZlcmVudCBsaW5lLXRocm91Z2gg
Y29sb3IuICovCiAgICAgLXdlYmtpdC10ZXh0LXN0cm9rZS1jb2xvcjogaHNsYSgwLCAwJSwgMCUs
IDAuNik7CkBAIC05Niw3ICs5Niw3IEBACiAgICAgb3BhY2l0eTogMC41OwogfQogCi0uY3NzLXN0
eWxlLXRleHQtZWRpdG9yID4gLkNvZGVNaXJyb3IgLkNvZGVNaXJyb3ItbGluZXMgLmVkaXRpbmct
bGluZSAuY3NzLXN0eWxlLWRlY2xhcmF0aW9uLXByb3BlcnR5Om1hdGNoZXMoLmRpc2FibGVkLCAu
b3RoZXItdmVuZG9yLCAubm90LWluaGVyaXRlZCwgLm92ZXJyaWRkZW4pIHsKKy5jc3Mtc3R5bGUt
dGV4dC1lZGl0b3IgPiAuQ29kZU1pcnJvciAuQ29kZU1pcnJvci1saW5lcyAuZWRpdGluZy1saW5l
IC5jc3Mtc3R5bGUtZGVjbGFyYXRpb24tcHJvcGVydHk6bWF0Y2hlcygub3RoZXItdmVuZG9yLCAu
bm90LWluaGVyaXRlZCwgLm92ZXJyaWRkZW4pIHsKICAgICAtd2Via2l0LXRleHQtc3Ryb2tlLWNv
bG9yOiBoc2xhKDAsIDAlLCAwJSwgMC4zKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0
b3IuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHls
ZURlY2xhcmF0aW9uVGV4dEVkaXRvci5qcwppbmRleCAyNTU4OTRhLi44YTBjOTgxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURl
Y2xhcmF0aW9uVGV4dEVkaXRvci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvci5qcwpAQCAtMzA5LDgg
KzMwOSw5IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvciA9IGNs
YXNzIENTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yCiAgICAgICAgICAgICBpZiAoIXByb3Bl
cnRpZXMubGVuZ3RoKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICAg
ICAgZm9yICh2YXIgcHJvcGVydHkgb2YgcHJvcGVydGllcykgeworICAgICAgICAgICAgZm9yIChs
ZXQgcHJvcGVydHkgb2YgcHJvcGVydGllcykgewogICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0
eS5fY29tbWVudFJhbmdlKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFw
cm9wZXJ0eS5lbmFibGVkKTsKICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdW5jb21tZW50UmFu
Z2UocHJvcGVydHkuX2NvbW1lbnRSYW5nZSk7CiAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5
Ll9jb21tZW50UmFuZ2UgPSBudWxsOwogICAgICAgICAgICAgICAgIH0KQEAgLTMxOSw3ICszMjAs
OSBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IgPSBjbGFzcyBD
U1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvcgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIH0KIAotICAgICAgICByZXR1cm4gdW5jb21tZW50UHJvcGVydGllcy5jYWxsKHRoaXMs
IHRoaXMuX3N0eWxlLnBlbmRpbmdQcm9wZXJ0aWVzKSB8fCB1bmNvbW1lbnRQcm9wZXJ0aWVzLmNh
bGwodGhpcywgdGhpcy5fc3R5bGUucHJvcGVydGllcyk7CisgICAgICAgIGxldCBjb21tZW50ZWRQ
ZW5kaW5nUHJvcGVydGllcyA9IHVuY29tbWVudFByb3BlcnRpZXMuY2FsbCh0aGlzLCB0aGlzLl9z
dHlsZS5wZW5kaW5nUHJvcGVydGllcyk7CisgICAgICAgIGxldCBjb21tZW50ZWROb3JtYWxQcm9w
ZXJ0aWVzID0gdW5jb21tZW50UHJvcGVydGllcy5jYWxsKHRoaXMsIHRoaXMuX3N0eWxlLnByb3Bl
cnRpZXMpOworICAgICAgICByZXR1cm4gY29tbWVudGVkUGVuZGluZ1Byb3BlcnRpZXMgfHwgY29t
bWVudGVkTm9ybWFsUHJvcGVydGllczsKICAgICB9CiAKICAgICBjb21tZW50QWxsUHJvcGVydGll
cygpCkBAIC0zMjcsNyArMzMwLDExIEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9u
VGV4dEVkaXRvciA9IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yCiAgICAgICAg
IGlmICghdGhpcy5fc3R5bGUuaGFzUHJvcGVydGllcygpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgICAgIGZvciAodmFyIHByb3BlcnR5IG9mIHRoaXMuX3N0eWxlLnByb3BlcnRp
ZXMpIHsKKyAgICAgICAgZm9yIChsZXQgcHJvcGVydHkgb2YgdGhpcy5fc3R5bGUucHJvcGVydGll
cykgeworICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eS5lbmFibGVkKSB7CisgICAgICAgICAgICAg
ICAgY29uc29sZS5hc3NlcnQocHJvcGVydHkuX2NvbW1lbnRSYW5nZSk7CisgICAgICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAocHJvcGVydHkuX19w
cm9wZXJ0eVRleHRNYXJrZXIpCiAgICAgICAgICAgICAgICAgdGhpcy5fY29tbWVudFByb3BlcnR5
KHByb3BlcnR5KTsKICAgICAgICAgfQpAQCAtODMzLDE0ICs4NDAsMjEgQEAgV2ViSW5zcGVjdG9y
LkNTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yID0gY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlv
blRleHRFZGl0b3IKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB3aGlsZSAobWF0Y2gp
IHsKLSAgICAgICAgICAgIHZhciBjaGVja2JveEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJpbnB1dCIpOwotICAgICAgICAgICAgY2hlY2tib3hFbGVtZW50LnR5cGUgPSAiY2hlY2ti
b3giOwotICAgICAgICAgICAgY2hlY2tib3hFbGVtZW50LmNoZWNrZWQgPSBmYWxzZTsKLSAgICAg
ICAgICAgIGNoZWNrYm94RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCB0aGlzLl9w
cm9wZXJ0eUNvbW1lbnRDaGVja2JveENoYW5nZWQuYmluZCh0aGlzKSk7Ci0KICAgICAgICAgICAg
IHZhciBmcm9tID0ge2xpbmU6IGxpbmVOdW1iZXIsIGNoOiBtYXRjaC5pbmRleH07CiAgICAgICAg
ICAgICB2YXIgdG8gPSB7bGluZTogbGluZU51bWJlciwgY2g6IG1hdGNoLmluZGV4ICsgbWF0Y2hb
MF0ubGVuZ3RofTsKIAorICAgICAgICAgICAgbGV0IGV4aXN0aW5nQm9va21hcmsgPSB0aGlzLl9j
b2RlTWlycm9yLmdldFVuaXF1ZUJvb2ttYXJrKGZyb20pOworICAgICAgICAgICAgaWYgKGV4aXN0
aW5nQm9va21hcmspIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlLmFzc2VydChleGlzdGluZ0Jv
b2ttYXJrLl9fcHJvcGVydHlDaGVja2JveCwgIklmIGFuIGV4aXN0aW5nIHVuaXF1ZSBib29rbWFy
ayBleGlzdHMgYXQgdGhpcyBsb2NhdGlvbiBpdCBzaG91bGQgYmUgYSBjaGVja2JveCBmb3IgYSBw
cm9wZXJ0eS4iKTsKKyAgICAgICAgICAgICAgICBtYXRjaCA9IGNvbW1lbnRlZFByb3BlcnR5UmVn
ZXguZXhlYyhsaW5lSGFuZGxlLnRleHQpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICB2YXIgY2hlY2tib3hFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKKyAgICAgICAgICAgIGNoZWNrYm94RWxlbWVudC50eXBl
ID0gImNoZWNrYm94IjsKKyAgICAgICAgICAgIGNoZWNrYm94RWxlbWVudC5jaGVja2VkID0gZmFs
c2U7CisgICAgICAgICAgICBjaGVja2JveEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdl
IiwgdGhpcy5fcHJvcGVydHlDb21tZW50Q2hlY2tib3hDaGFuZ2VkLmJpbmQodGhpcykpOworCiAg
ICAgICAgICAgICB2YXIgY2hlY2tib3hNYXJrZXIgPSB0aGlzLl9jb2RlTWlycm9yLnNldFVuaXF1
ZUJvb2ttYXJrKGZyb20sIGNoZWNrYm94RWxlbWVudCk7CiAgICAgICAgICAgICBjaGVja2JveE1h
cmtlci5fX3Byb3BlcnR5Q2hlY2tib3ggPSB0cnVlOwogCkBAIC05MjMsMTEgKzkzNyw5IEBAIFdl
Ykluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvciA9IGNsYXNzIENTU1N0eWxl
RGVjbGFyYXRpb25UZXh0RWRpdG9yCiAgICAgICAgIGlmICghdGhpcy5fY29kZU1pcnJvci5nZXRP
cHRpb24oInJlYWRPbmx5IikpIHsKICAgICAgICAgICAgIC8vIENyZWF0ZSBhIG5ldyBjaGVja2Jv
eCBlbGVtZW50IGFuZCBtYXJrZXIuCiAKLSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHByb3Bl
cnR5LmVuYWJsZWQpOwotCiAgICAgICAgICAgICB2YXIgY2hlY2tib3hFbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKICAgICAgICAgICAgIGNoZWNrYm94RWxlbWVudC50
eXBlID0gImNoZWNrYm94IjsKLSAgICAgICAgICAgIGNoZWNrYm94RWxlbWVudC5jaGVja2VkID0g
dHJ1ZTsKKyAgICAgICAgICAgIGNoZWNrYm94RWxlbWVudC5jaGVja2VkID0gcHJvcGVydHkuZW5h
YmxlZDsKICAgICAgICAgICAgIGNoZWNrYm94RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjaGFu
Z2UiLCB0aGlzLl9wcm9wZXJ0eUNoZWNrYm94Q2hhbmdlZC5iaW5kKHRoaXMpKTsKICAgICAgICAg
ICAgIGNoZWNrYm94RWxlbWVudC5fX2Nzc1Byb3BlcnR5ID0gcHJvcGVydHk7CiAKQEAgLTk4MSw5
ICs5OTMsNiBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IgPSBj
bGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvcgogICAgICAgICBlbHNlIGlmICghcHJv
cGVydHkudmFsaWQgJiYgKCFwcm9wZXJ0eU5hbWVJc1ZhbGlkIHx8IGR1cGxpY2F0ZVByb3BlcnR5
RXhpc3RzQmVsb3cuY2FsbCh0aGlzLCBwcm9wZXJ0eSkpKQogICAgICAgICAgICAgY2xhc3NOYW1l
cy5wdXNoKCJpbnZhbGlkIik7CiAKLSAgICAgICAgaWYgKCFwcm9wZXJ0eS5lbmFibGVkKQotICAg
ICAgICAgICAgY2xhc3NOYW1lcy5wdXNoKCJkaXNhYmxlZCIpOwotCiAgICAgICAgIGlmIChwcm9w
ZXJ0eS5fX2ZpbHRlclJlc3VsdENsYXNzTmFtZSAmJiAhcHJvcGVydHkuX19maWx0ZXJSZXN1bHRO
ZWVkbGVQb3NpdGlvbikKICAgICAgICAgICAgIGNsYXNzTmFtZXMucHVzaChwcm9wZXJ0eS5fX2Zp
bHRlclJlc3VsdENsYXNzTmFtZSk7CiAKQEAgLTEwMDcsNiArMTAxNiw5IEBAIFdlYkluc3BlY3Rv
ci5DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvciA9IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRp
b25UZXh0RWRpdG9yCiAKICAgICAgICAgcHJvcGVydHkuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuQ1NTUHJvcGVydHkuRXZlbnQuT3ZlcnJpZGRlblN0YXR1c0NoYW5nZWQsIHRoaXMuX3By
b3BlcnR5T3ZlcnJpZGRlblN0YXR1c0NoYW5nZWQsIHRoaXMpOwogCisgICAgICAgIGlmICghcHJv
cGVydHkuZW5hYmxlZCkKKyAgICAgICAgICAgIHByb3BlcnR5Ll9jb21tZW50UmFuZ2UgPSB7ZnJv
bSwgdG99OworCiAgICAgICAgIHRoaXMuX3JlbW92ZUNoZWNrYm94UGxhY2Vob2xkZXIoZnJvbS5s
aW5lKTsKIAogICAgICAgICBpZiAocHJvcGVydHkuX19maWx0ZXJSZXN1bHRDbGFzc05hbWUgJiYg
cHJvcGVydHkuX19maWx0ZXJSZXN1bHROZWVkbGVQb3NpdGlvbikgewpAQCAtMTI1MSwxMiArMTI2
MywxNyBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IgPSBjbGFz
cyBDU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvcgogCiAgICAgX3Byb3BlcnR5Q2hlY2tib3hD
aGFuZ2VkKGV2ZW50KQogICAgIHsKLSAgICAgICAgdmFyIHByb3BlcnR5ID0gZXZlbnQudGFyZ2V0
Ll9fY3NzUHJvcGVydHk7CisgICAgICAgIGxldCBjaGVja2JveEVsZW1lbnQgPSBldmVudC50YXJn
ZXQ7CisgICAgICAgIGxldCBwcm9wZXJ0eSA9IGNoZWNrYm94RWxlbWVudC5fX2Nzc1Byb3BlcnR5
OworCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHByb3BlcnR5KTsKICAgICAgICAgaWYgKCFwcm9w
ZXJ0eSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB0aGlzLl9jb21tZW50UHJvcGVy
dHkocHJvcGVydHkpOworICAgICAgICBpZiAoY2hlY2tib3hFbGVtZW50LmNoZWNrZWQpCisgICAg
ICAgICAgICB0aGlzLl91bmNvbW1lbnRQcm9wZXJ0eShwcm9wZXJ0eSk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHRoaXMuX2NvbW1lbnRQcm9wZXJ0eShwcm9wZXJ0eSk7CiAgICAgfQogCiAg
ICAgX2NvbW1lbnRQcm9wZXJ0eShwcm9wZXJ0eSkKQEAgLTEyNzIsNiArMTI4OSw3IEBAIFdlYklu
c3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvciA9IGNsYXNzIENTU1N0eWxlRGVj
bGFyYXRpb25UZXh0RWRpdG9yCiAgICAgICAgIGlmICghcmFuZ2UpCiAgICAgICAgICAgICByZXR1
cm47CiAKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIXByb3BlcnR5Ll9jb21tZW50UmFuZ2UpOwog
ICAgICAgICBwcm9wZXJ0eS5fY29tbWVudFJhbmdlID0gcmFuZ2U7CiAgICAgICAgIHByb3BlcnR5
Ll9jb21tZW50UmFuZ2UudG8uY2ggKz0gNjsgLy8gTnVtYmVyIG9mIGNoYXJhY3RlcnMgYWRkZWQg
YnkgY29tbWVudHMuCiAKQEAgLTEyODksNiArMTMwNywxNSBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5
bGVEZWNsYXJhdGlvblRleHRFZGl0b3IgPSBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVk
aXRvcgogICAgICAgICB0aGlzLl9jb2RlTWlycm9yLm9wZXJhdGlvbih1cGRhdGUuYmluZCh0aGlz
KSk7CiAgICAgfQogCisgICAgX3VuY29tbWVudFByb3BlcnR5KHByb3BlcnR5KQorICAgIHsKKyAg
ICAgICAgY29uc29sZS5hc3NlcnQocHJvcGVydHkuX2NvbW1lbnRSYW5nZSk7CisKKyAgICAgICAg
dGhpcy5fdW5jb21tZW50UmFuZ2UocHJvcGVydHkuX2NvbW1lbnRSYW5nZSk7CisKKyAgICAgICAg
cHJvcGVydHkuX2NvbW1lbnRSYW5nZSA9IG51bGw7CisgICAgfQorCiAgICAgX3Byb3BlcnR5Q29t
bWVudENoZWNrYm94Q2hhbmdlZChldmVudCkKICAgICB7CiAgICAgICAgIHZhciBjb21tZW50VGV4
dE1hcmtlciA9IGV2ZW50LnRhcmdldC5fX2NvbW1lbnRUZXh0TWFya2VyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29kZU1pcnJvckFkZGl0
aW9ucy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvZGVN
aXJyb3JBZGRpdGlvbnMuanMKaW5kZXggNTU0MmI5NS4uMzQ5ZmYzNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29kZU1pcnJvckFkZGl0aW9u
cy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db2Rl
TWlycm9yQWRkaXRpb25zLmpzCkBAIC00MDgsMTYgKzQwOCwyNiBAQAogICAgICAgICByZXR1cm4g
cGFkZGVkQ2xhc3MuaW5kZXhPZigiICIgKyBjbGFzc05hbWUgKyAiICIsIGluZGV4KSAhPT0gLTE7
CiAgICAgfSk7CiAKKyAgICBDb2RlTWlycm9yLmRlZmluZUV4dGVuc2lvbigiZ2V0VW5pcXVlQm9v
a21hcmsiLCBmdW5jdGlvbihwb3NpdGlvbikgeworICAgICAgICBsZXQgbWFya3MgPSB0aGlzLmZp
bmRNYXJrc0F0KHBvc2l0aW9uKTsKKyAgICAgICAgZm9yIChsZXQgbWFyayBvZiBtYXJrcykgewor
ICAgICAgICAgICAgaWYgKG1hcmsuX191bmlxdWVCb29rbWFyaykKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gbWFyazsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBudWxsOworICAgIH0pOwor
CiAgICAgQ29kZU1pcnJvci5kZWZpbmVFeHRlbnNpb24oInNldFVuaXF1ZUJvb2ttYXJrIiwgZnVu
Y3Rpb24ocG9zaXRpb24sIG9wdGlvbnMpIHsKLSAgICAgICAgdmFyIG1hcmtzID0gdGhpcy5maW5k
TWFya3NBdChwb3NpdGlvbik7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWFya3MubGVu
Z3RoOyArK2kpIHsKLSAgICAgICAgICAgIGlmIChtYXJrc1tpXS5fX3VuaXF1ZUJvb2ttYXJrKSB7
Ci0gICAgICAgICAgICAgICAgbWFya3NbaV0uY2xlYXIoKTsKKyAgICAgICAgbGV0IG1hcmtzID0g
dGhpcy5maW5kTWFya3NBdChwb3NpdGlvbik7CisgICAgICAgIGZvciAobGV0IG1hcmsgb2YgbWFy
a3MpIHsKKyAgICAgICAgICAgIGlmIChtYXJrLl9fdW5pcXVlQm9va21hcmspIHsKKyAgICAgICAg
ICAgICAgICBtYXJrLmNsZWFyKCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KIAotICAgICAgICB2YXIgdW5pcXVlQm9va21hcmsgPSB0aGlzLnNldEJv
b2ttYXJrKHBvc2l0aW9uLCBvcHRpb25zKTsKKyAgICAgICAgbGV0IHVuaXF1ZUJvb2ttYXJrID0g
dGhpcy5zZXRCb29rbWFyayhwb3NpdGlvbiwgb3B0aW9ucyk7CiAgICAgICAgIHVuaXF1ZUJvb2tt
YXJrLl9fdW5pcXVlQm9va21hcmsgPSB0cnVlOwogICAgICAgICByZXR1cm4gdW5pcXVlQm9va21h
cms7CiAgICAgfSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320575</attachid>
            <date>2017-09-12 15:47:14 -0700</date>
            <delta_ts>2017-09-12 17:27:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>10725</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhNzljODE4Li42ZDM2ZTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTctMDktMTIgIE5pa2l0YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogRnJvbnRlbmQgc2hvdWxkIGJlIG1hZGUgdG8gZXhwZWN0
IGFuZCBoYW5kbGUgZGlzYWJsZWQgcHJvcGVydGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2Nzg3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8z
NDM3OTU5Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbmNsdWRlIGRpc2FibGVkIChjb21tZW50ZWQgb3V0KSBDU1MgcHJvcGVydGllcyBpbiB0aGUg
cGF5bG9hZC4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclN0eWxlOjpwb3B1bGF0ZUFsbFByb3BlcnRpZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yU3R5bGU6OnN0eWxlV2l0aFByb3BlcnRpZXMgY29uc3QpOgorCiAyMDE3LTA5
LTExICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2lu
XSBBZGQgTW9kdWxlcy9jYWNoZSB0byBsaXN0IG9mIGZvcndhcmRpbmcgaGVhZGVycyBmb2xkZXJz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hl
ZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3Bw
CmluZGV4IDRlYjJkODguLmVlM2U2YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKQEAgLTYwMSw5ICs2MDEsNiBAQCB2b2lkIEluc3Bl
Y3RvclN0eWxlOjpwb3B1bGF0ZUFsbFByb3BlcnRpZXMoVmVjdG9yPEluc3BlY3RvclN0eWxlUHJv
cGVydHk+KiByZXN1bAogICAgICAgICBBU1NFUlQoIXN0eWxlRGVjbGFyYXRpb25PckV4Y2VwdGlv
bi5oYXNFeGNlcHRpb24oKSk7CiAgICAgICAgIFN0cmluZyBzdHlsZURlY2xhcmF0aW9uID0gc3R5
bGVEZWNsYXJhdGlvbk9yRXhjZXB0aW9uLmhhc0V4Y2VwdGlvbigpID8gZW1wdHlTdHJpbmcoKSA6
IHN0eWxlRGVjbGFyYXRpb25PckV4Y2VwdGlvbi5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKICAgICAg
ICAgZm9yIChhdXRvJiBzb3VyY2VEYXRhIDogKnNvdXJjZVByb3BlcnR5RGF0YSkgewotICAgICAg
ICAgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNjY3ODc+IFdlYiBJbnNwZWN0
b3I6IEZyb250ZW5kIHNob3VsZCBiZSBtYWRlIHRvIGV4cGVjdCBhbmQgaGFuZGxlIGRpc2FibGVk
IHByb3BlcnRpZXMKLSAgICAgICAgICAgIGlmIChzb3VyY2VEYXRhLmRpc2FibGVkKQotICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgSW5zcGVjdG9yU3R5bGVQcm9wZXJ0eSBw
KHNvdXJjZURhdGEsIHRydWUsIHNvdXJjZURhdGEuZGlzYWJsZWQpOwogICAgICAgICAgICAgcC5z
ZXRSYXdUZXh0RnJvbVN0eWxlRGVjbGFyYXRpb24oc3R5bGVEZWNsYXJhdGlvbik7CiAgICAgICAg
ICAgICByZXN1bHQtPmFwcGVuZChwKTsKQEAgLTY2MywxNyArNjYwLDIxIEBAIFJlZjxJbnNwZWN0
b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlPiBJbnNwZWN0b3JTdHlsZTo6c3R5bGVXaXRoUHJv
cGVydGllcygpIGNvCiAgICAgICAgIC8vIERlZmF1bHQgInByaW9yaXR5IiA9PSAiIi4KICAgICAg
ICAgaWYgKHByb3BlcnR5RW50cnkuaW1wb3J0YW50KQogICAgICAgICAgICAgcHJvcGVydHktPnNl
dFByaW9yaXR5KCJpbXBvcnRhbnQiKTsKKworICAgICAgICBpZiAoaXQtPmhhc1NvdXJjZSkgewor
ICAgICAgICAgICAgLy8gVGhlIHByb3BlcnR5IHJhbmdlIGlzIHJlbGF0aXZlIHRvIHRoZSBzdHls
ZSBib2R5IHN0YXJ0LgorICAgICAgICAgICAgLy8gU2hvdWxkIGJlIGNvbnZlcnRlZCBpbnRvIGFu
IGFic29sdXRlIHJhbmdlIChyZWxhdGl2ZSB0byB0aGUgc3R5bGVzaGVldCBzdGFydCkKKyAgICAg
ICAgICAgIC8vIGZvciB0aGUgcHJvcGVyIGNvbnZlcnNpb24gaW50byBsaW5lOmNvbHVtbi4KKyAg
ICAgICAgICAgIFNvdXJjZVJhbmdlIGFic29sdXRlUHJvcGVydHlSYW5nZSA9IHByb3BlcnR5RW50
cnkucmFuZ2U7CisgICAgICAgICAgICBhYnNvbHV0ZVByb3BlcnR5UmFuZ2Uuc3RhcnQgKz0gcnVs
ZUJvZHlSYW5nZVN0YXJ0OworICAgICAgICAgICAgYWJzb2x1dGVQcm9wZXJ0eVJhbmdlLmVuZCAr
PSBydWxlQm9keVJhbmdlU3RhcnQ7CisgICAgICAgICAgICBwcm9wZXJ0eS0+c2V0UmFuZ2UoYnVp
bGRTb3VyY2VSYW5nZU9iamVjdChhYnNvbHV0ZVByb3BlcnR5UmFuZ2UsIGxpbmVFbmRpbmdzLmdl
dCgpKSk7CisgICAgICAgIH0KKwogICAgICAgICBpZiAoIWl0LT5kaXNhYmxlZCkgewogICAgICAg
ICAgICAgaWYgKGl0LT5oYXNTb3VyY2UpIHsKICAgICAgICAgICAgICAgICBBU1NFUlQoc291cmNl
RGF0YSk7CiAgICAgICAgICAgICAgICAgcHJvcGVydHktPnNldEltcGxpY2l0KGZhbHNlKTsKLSAg
ICAgICAgICAgICAgICAvLyBUaGUgcHJvcGVydHkgcmFuZ2UgaXMgcmVsYXRpdmUgdG8gdGhlIHN0
eWxlIGJvZHkgc3RhcnQuCi0gICAgICAgICAgICAgICAgLy8gU2hvdWxkIGJlIGNvbnZlcnRlZCBp
bnRvIGFuIGFic29sdXRlIHJhbmdlIChyZWxhdGl2ZSB0byB0aGUgc3R5bGVzaGVldCBzdGFydCkK
LSAgICAgICAgICAgICAgICAvLyBmb3IgdGhlIHByb3BlciBjb252ZXJzaW9uIGludG8gbGluZTpj
b2x1bW4uCi0gICAgICAgICAgICAgICAgU291cmNlUmFuZ2UgYWJzb2x1dGVQcm9wZXJ0eVJhbmdl
ID0gcHJvcGVydHlFbnRyeS5yYW5nZTsKLSAgICAgICAgICAgICAgICBhYnNvbHV0ZVByb3BlcnR5
UmFuZ2Uuc3RhcnQgKz0gcnVsZUJvZHlSYW5nZVN0YXJ0OwotICAgICAgICAgICAgICAgIGFic29s
dXRlUHJvcGVydHlSYW5nZS5lbmQgKz0gcnVsZUJvZHlSYW5nZVN0YXJ0OwotICAgICAgICAgICAg
ICAgIHByb3BlcnR5LT5zZXRSYW5nZShidWlsZFNvdXJjZVJhbmdlT2JqZWN0KGFic29sdXRlUHJv
cGVydHlSYW5nZSwgbGluZUVuZGluZ3MuZ2V0KCkpKTsKIAogICAgICAgICAgICAgICAgIC8vIFBh
cnNlZCBwcm9wZXJ0eSBvdmVycmlkZXMgYW55IHByb3BlcnR5IHdpdGggdGhlIHNhbWUgbmFtZS4g
Tm9uLXBhcnNlZCBwcm9wZXJ0eSBvdmVycmlkZXMKICAgICAgICAgICAgICAgICAvLyBwcmV2aW91
cyBub24tcGFyc2VkIHByb3BlcnR5IHdpdGggdGhlIHNhbWUgbmFtZSAoaWYgYW55KS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nCmluZGV4IDcxOWYzZTMuLjk4ZGU3ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0No
YW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE3LTA5LTEyICBOaWtpdGEgVmFzaWx5ZXYgIDxu
dmFzaWx5ZXZAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEZyb250ZW5kIHNo
b3VsZCBiZSBtYWRlIHRvIGV4cGVjdCBhbmQgaGFuZGxlIGRpc2FibGVkIHByb3BlcnRpZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Njc4NworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMzQzNzk1OTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgbWFrZXMgaW50cm9kdWNlcyBXSS5D
U1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5hbGxQcm9wZXJ0aWVzIGdldHRlciwKKyAgICAg
ICAgdGhhdCBpbmNsdWRlcyBib3RoIGVuYWJsZWQgYW5kIGRpc2FibGVkIChjb21tZW50ZWQgb3V0
KSBDU1MgcHJvcGVydGllcy4KKworICAgICAgICBUaGUgZXhpc3RpbmcgV0kuQ1NTU3R5bGVEZWNs
YXJhdGlvbi5wcm90b3R5cGUucHJvcGVydGllcyBnZXR0ZXIgb25seSBpbmNsdWRlcyBlbmFibGVk
IENTUyBwcm9wZXJ0aWVzLAorICAgICAgICBzYW1lIGFzIGJlZm9yZSB0aGUgYmFja2VuZCBjaGFu
Z2UuCisKKyAgICAgICAgVGhlcmUgaXMgbm8gYmVoYXZpb3VyIGNoYW5nZSBpbiB0aGUgY3VycmVu
dCBzdHlsZXMgc2lkZWJhci4gVGhlIG5ldyByZWRlc2lnbmVkIHN0eWxlcyBzaWRlYmFyIHdpbGwK
KyAgICAgICAgdXNlIGRpc2FibGVkIHByb3BlcnRpZXMgYW5kIGRpc3BsYXkgdGhlbSBhcyBjb21t
ZW50ZWQgb3V0LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTUHJvcGVydHku
anM6CisgICAgICAgIChXSS5DU1NQcm9wZXJ0eS5wcm90b3R5cGUuZ2V0IGF0dGFjaGVkKToKKyAg
ICAgICAgUmVuYW1lIGBlbmFibGVkYCB0byBgYXR0YWNoZWRgLCBhcyBpdCBkaWRuJ3QgY29ycmVz
cG9uZCB0byBgX2VuYWJsZWRgIHByb3BlcnR5LiBBdHRhY2hlZCBtZWFucyB0aGF0IHRoZSBwcm9w
ZXJ0eQorICAgICAgICBpcyBlbmFibGVkIGFuZCBoYXMgYSBvd25lclN0eWxlIHdpdGggYSBzZXQg
aW5kZXggKHVubGVzcyBpdCdzIGEgY29tcHV0ZWQgc3R5bGUsIHdoZXJlIGluZGV4IGlzIG5vdCBh
cHBsaWNhYmxlKS4KKworICAgICAgICAoV0kuQ1NTUHJvcGVydHkucHJvdG90eXBlLmdldCBlbmFi
bGVkKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9DU1NTdHlsZURlY2xhcmF0aW9u
LmpzOgorICAgICAgICAoV0kuQ1NTU3R5bGVEZWNsYXJhdGlvbi5wcm90b3R5cGUuZ2V0IGFsbFBy
b3BlcnRpZXMpOgorICAgICAgICBBZGQgYWxsUHJvcGVydGllcyBnZXR0ZXIgdGhhdCB3aWxsIGJl
IHVzZWQgaW4gdGhlIG5ldyBzdHlsZXMgc2lkZWJhci4KKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvTW9kZWxzL0RPTU5vZGVTdHlsZXMuanM6CisgICAgICAgIChXSS5ET01Ob2RlU3R5bGVzLnBy
b3RvdHlwZS5fbWFya092ZXJyaWRkZW5Qcm9wZXJ0aWVzKToKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLmpzOgorICAgICAgICAoV0ku
Q1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IucHJvdG90eXBlLmhpZ2hsaWdodFByb3BlcnR5
LnByb3BlcnRpZXNNYXRjaCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxT
dHlsZVNlbGVjdG9yU2VjdGlvbi5qczoKKyAgICAgICAgKFdJLlZpc3VhbFN0eWxlU2VsZWN0b3JT
ZWN0aW9uLnByb3RvdHlwZS5fdHJlZUVsZW1lbnRDaGVja2JveFRvZ2dsZWQpOgorICAgICAgICBS
ZW5hbWUgImVuYWJsZWQiIHRvICJhdHRhY2hlZCIgd2l0aG91dCBhbnkgYmVoYXZpb3IgY2hhbmdl
LgorCiAyMDE3LTA5LTExICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogUmVuYW1lIE5ldHdvcmtUYWIgLyBOZXR3b3JrU2lkZWJh
ciB0byBMZWdhY3lOZXR3b3JrKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5LmpzCmluZGV4IDJmNzNhZWMuLmY2ODJl
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9DU1NQcm9wZXJ0eS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvQ1NTUHJvcGVydHkuanMKQEAgLTE1NCwxMSArMTU0LDE0IEBAIFdJLkNTU1Byb3Bl
cnR5ID0gY2xhc3MgQ1NTUHJvcGVydHkgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIGdldCBwcmlv
cml0eSgpIHsgcmV0dXJuIHRoaXMuX3ByaW9yaXR5OyB9CiAKLSAgICBnZXQgZW5hYmxlZCgpCisg
ICAgZ2V0IGF0dGFjaGVkKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9lbmFibGVkICYm
IHRoaXMuX293bmVyU3R5bGUgJiYgKCFpc05hTih0aGlzLl9pbmRleCkgfHwgdGhpcy5fb3duZXJT
dHlsZS50eXBlID09PSBXSS5DU1NTdHlsZURlY2xhcmF0aW9uLlR5cGUuQ29tcHV0ZWQpOwogICAg
IH0KIAorICAgIC8vIE9ubHkgY29tbWVudGVkIG91dCBwcm9wZXJ0aWVzIGFyZSBkaXNhYmxlZC4K
KyAgICBnZXQgZW5hYmxlZCgpIHsgcmV0dXJuIHRoaXMuX2VuYWJsZWQ7IH0KKwogICAgIGdldCBv
dmVycmlkZGVuKCkgeyByZXR1cm4gdGhpcy5fb3ZlcnJpZGRlbjsgfQogICAgIHNldCBvdmVycmlk
ZGVuKG92ZXJyaWRkZW4pCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1N0eWxlRGVjbGFyYXRpb24uanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTU3R5bGVEZWNsYXJhdGlvbi5qcwpp
bmRleCA5NjE1MTE5Li4xNjFlMWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTU3R5bGVEZWNsYXJhdGlvbi5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTU3R5bGVEZWNsYXJhdGlvbi5q
cwpAQCAtOTksNyArOTksOSBAQCBXSS5DU1NTdHlsZURlY2xhcmF0aW9uID0gY2xhc3MgQ1NTU3R5
bGVEZWNsYXJhdGlvbiBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB2YXIgb2xkVGV4dCA9IHRo
aXMuX3RleHQ7CiAKICAgICAgICAgdGhpcy5fdGV4dCA9IHRleHQ7Ci0gICAgICAgIHRoaXMuX3By
b3BlcnRpZXMgPSBwcm9wZXJ0aWVzOworICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzID0gcHJvcGVy
dGllcy5maWx0ZXIoKHByb3BlcnR5KSA9PiBwcm9wZXJ0eS5lbmFibGVkKTsKKyAgICAgICAgdGhp
cy5fYWxsUHJvcGVydGllcyA9IHByb3BlcnRpZXM7CisKICAgICAgICAgdGhpcy5fc3R5bGVTaGVl
dFRleHRSYW5nZSA9IHN0eWxlU2hlZXRUZXh0UmFuZ2U7CiAgICAgICAgIHRoaXMuX3Byb3BlcnR5
TmFtZU1hcCA9IHt9OwogCkBAIC0yMTcsNiArMjE5LDggQEAgV0kuQ1NTU3R5bGVEZWNsYXJhdGlv
biA9IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb24gZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAg
cmV0dXJuIHRoaXMuX3Byb3BlcnRpZXM7CiAgICAgfQogCisgICAgZ2V0IGFsbFByb3BlcnRpZXMo
KSB7IHJldHVybiB0aGlzLl9hbGxQcm9wZXJ0aWVzOyB9CisKICAgICBnZXQgdmlzaWJsZVByb3Bl
cnRpZXMoKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX3Zpc2libGVQcm9wZXJ0aWVzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTU5v
ZGVTdHlsZXMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
RE9NTm9kZVN0eWxlcy5qcwppbmRleCA3MWFjZTJlLi4wOTUxODdhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZVN0eWxlcy5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZVN0
eWxlcy5qcwpAQCAtOTAxLDcgKzkwMSw3IEBAIFdJLkRPTU5vZGVTdHlsZXMgPSBjbGFzcyBET01O
b2RlU3R5bGVzIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICAgICAgICAgIGZvciAodmFyIGogPSAw
OyBqIDwgcHJvcGVydGllcy5sZW5ndGg7ICsraikgewogICAgICAgICAgICAgICAgIHZhciBwcm9w
ZXJ0eSA9IHByb3BlcnRpZXNbal07Ci0gICAgICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eS5lbmFi
bGVkIHx8ICFwcm9wZXJ0eS52YWxpZCkgeworICAgICAgICAgICAgICAgIGlmICghcHJvcGVydHku
YXR0YWNoZWQgfHwgIXByb3BlcnR5LnZhbGlkKSB7CiAgICAgICAgICAgICAgICAgICAgIHByb3Bl
cnR5Lm92ZXJyaWRkZW4gPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uVGV4
dEVkaXRvci5qcwppbmRleCA3ZDMxNTQyLi4zMjU2MzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVk
aXRvci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
U1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvci5qcwpAQCAtMTg5LDcgKzE4OSw3IEBAIFdJLkNT
U1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yID0gY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvblRl
eHRFZGl0b3IgZXh0ZW5kcyBXCiAgICAgewogICAgICAgICBmdW5jdGlvbiBwcm9wZXJ0aWVzTWF0
Y2goY3NzUHJvcGVydHkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChjc3NQcm9wZXJ0eS5l
bmFibGVkICYmICFjc3NQcm9wZXJ0eS5vdmVycmlkZGVuKSB7CisgICAgICAgICAgICBpZiAoY3Nz
UHJvcGVydHkuYXR0YWNoZWQgJiYgIWNzc1Byb3BlcnR5Lm92ZXJyaWRkZW4pIHsKICAgICAgICAg
ICAgICAgICBpZiAoY3NzUHJvcGVydHkuY2Fub25pY2FsTmFtZSA9PT0gcHJvcGVydHkuY2Fub25p
Y2FsTmFtZSB8fCBoYXNNYXRjaGluZ0xvbmdoYW5kUHJvcGVydHkoY3NzUHJvcGVydHkpKQogICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KQEAgLTk4OSw3ICs5
ODksNyBAQCBXSS5DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvciA9IGNsYXNzIENTU1N0eWxl
RGVjbGFyYXRpb25UZXh0RWRpdG9yIGV4dGVuZHMgVwogICAgICAgICBpZiAoIXRoaXMuX2NvZGVN
aXJyb3IuZ2V0T3B0aW9uKCJyZWFkT25seSIpKSB7CiAgICAgICAgICAgICAvLyBDcmVhdGUgYSBu
ZXcgY2hlY2tib3ggZWxlbWVudCBhbmQgbWFya2VyLgogCi0gICAgICAgICAgICBjb25zb2xlLmFz
c2VydChwcm9wZXJ0eS5lbmFibGVkKTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHByb3Bl
cnR5LmF0dGFjaGVkKTsKIAogICAgICAgICAgICAgdmFyIGNoZWNrYm94RWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CiAgICAgICAgICAgICBjaGVja2JveEVsZW1lbnQu
dHlwZSA9ICJjaGVja2JveCI7CkBAIC0xMDQ3LDcgKzEwNDcsNyBAQCBXSS5DU1NTdHlsZURlY2xh
cmF0aW9uVGV4dEVkaXRvciA9IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yIGV4
dGVuZHMgVwogICAgICAgICBlbHNlIGlmICghcHJvcGVydHkudmFsaWQgJiYgKCFwcm9wZXJ0eU5h
bWVJc1ZhbGlkIHx8IGR1cGxpY2F0ZVByb3BlcnR5RXhpc3RzQmVsb3cuY2FsbCh0aGlzLCBwcm9w
ZXJ0eSkpKQogICAgICAgICAgICAgY2xhc3NOYW1lcy5wdXNoKCJpbnZhbGlkIik7CiAKLSAgICAg
ICAgaWYgKCFwcm9wZXJ0eS5lbmFibGVkKQorICAgICAgICBpZiAoIXByb3BlcnR5LmF0dGFjaGVk
KQogICAgICAgICAgICAgY2xhc3NOYW1lcy5wdXNoKCJkaXNhYmxlZCIpOwogCiAgICAgICAgIGlm
IChwcm9wZXJ0eS5fX2ZpbHRlclJlc3VsdENsYXNzTmFtZSAmJiAhcHJvcGVydHkuX19maWx0ZXJS
ZXN1bHROZWVkbGVQb3NpdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JTZWN0aW9uLmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVTZWxlY3RvclNl
Y3Rpb24uanMKaW5kZXggMzIyYjMxNi4uMWEyMzAzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVTZWxlY3RvclNlY3Rpb24u
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFs
U3R5bGVTZWxlY3RvclNlY3Rpb24uanMKQEAgLTMwOCw3ICszMDgsNyBAQCBXSS5WaXN1YWxTdHls
ZVNlbGVjdG9yU2VjdGlvbiA9IGNsYXNzIFZpc3VhbFN0eWxlU2VsZWN0b3JTZWN0aW9uIGV4dGVu
ZHMgV0kuRGV0YQogCiAgICAgICAgIC8vIENvbW1lbnQgb3IgdW5jb21tZW50IHRoZSBzdHlsZSB0
ZXh0LgogICAgICAgICBsZXQgbmV3U3R5bGVUZXh0ID0gIiI7Ci0gICAgICAgIGxldCBzdHlsZUVu
YWJsZWQgPSBldmVudCAmJiBldmVudC5kYXRhICYmIGV2ZW50LmRhdGEuZW5hYmxlZDsKKyAgICAg
ICAgbGV0IHN0eWxlRW5hYmxlZCA9IGV2ZW50ICYmIGV2ZW50LmRhdGEgJiYgZXZlbnQuZGF0YS5h
dHRhY2hlZDsKICAgICAgICAgaWYgKHN0eWxlRW5hYmxlZCkKICAgICAgICAgICAgIG5ld1N0eWxl
VGV4dCA9IHN0eWxlVGV4dC5yZXBsYWNlKC9ccyooXC9cKnxcKlwvKVxzKi9nLCAiIik7CiAgICAg
ICAgIGVsc2UK
</data>
<flag name="commit-queue"
          id="340680"
          type_id="3"
          status="-"
          setter="nvasilyev"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320585</attachid>
            <date>2017-09-12 17:27:04 -0700</date>
            <delta_ts>2017-09-13 13:01:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>16254</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhMDMwODU0Li42MWYyZDJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMDkt
MTIgIE5pa2l0YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogRnJvbnRlbmQgc2hvdWxkIGJlIG1hZGUgdG8gZXhwZWN0IGFuZCBoYW5kbGUg
ZGlzYWJsZWQgcHJvcGVydGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY2Nzg3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNDM3OTU5Mz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdCBj
YXNlcyBmb3IgZGlzYWJsZWQgKGNvbW1lbnRlZCBvdXQpIENTUyBwcm9wZXJ0aWVzLgorCisgICAg
ICAgICogaW5zcGVjdG9yL2Nzcy9jc3MtcHJvcGVydHktZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGluc3BlY3Rvci9jc3MvY3NzLXByb3BlcnR5Lmh0bWw6CisgICAgICAgIEFkZCB0ZXN0IGNhc2Vz
IGZvciBwcmV2aW91c2x5IHVudGVzdGVkIGBlbmFibGVkYCBhbmQgbmV3bHkgYWRkZWQgYGF0dGFj
aGVkYCBnZXR0ZXJzLgorCisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9tYXRjaGVkLXN0eWxlLXBy
b3BlcnRpZXMuaHRtbDoKKwogMjAxNy0wOS0xMSAgSm9hbm1hcmllIERpZ2dzICA8amRpZ2dzQGln
YWxpYS5jb20+CiAKICAgICAgICAgQVg6IFtBVEtdIGFyaWEtYXV0b2NvbXBsZXRlIG5vdCBleHBv
c2VkIG9uIGNvbWJvYm94ZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mv
Y3NzLXByb3BlcnR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvY3Nz
LXByb3BlcnR5LWV4cGVjdGVkLnR4dAppbmRleCA3MjFjNWRjLi45ZjBmOGFiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2Nzcy1wcm9wZXJ0eS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9jc3MtcHJvcGVydHktZXhwZWN0ZWQudHh0CkBA
IC0yNiw2ICsyNiwyMCBAQCBQQVNTOiAiYmFja2dyb3VuZC1yZXBlYXQteCIgaGFzIHRoZSB2YWx1
ZSAicmVwZWF0Ii4KIFBBU1M6ICJiYWNrZ3JvdW5kLXJlcGVhdC1pbnZhbGlkIiBoYXMgdGhlIHZh
bHVlICJyZXBlYXQiLgogUEFTUzogImJhY2tncm91bmQtcmVwZWF0LXkiIGhhcyB0aGUgdmFsdWUg
InJlcGVhdCIuCiAKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDU1NQcm9wZXJ0eS5wcm90b3R5cGUu
Z2V0IGVuYWJsZWQKK1BBU1M6ICJiYWNrZ3JvdW5kLXJlcGVhdCIgaXMgZW5hYmxlZC4KK1BBU1M6
ICJiYWNrZ3JvdW5kLXJlcGVhdC14IiBpcyBlbmFibGVkLgorUEFTUzogImJhY2tncm91bmQtcmVw
ZWF0LWludmFsaWQiIGlzIGVuYWJsZWQuCitQQVNTOiAiYmFja2dyb3VuZC1jb2xvciIgaXMgZGlz
YWJsZWQuCitQQVNTOiAiYmFja2dyb3VuZC1yZXBlYXQteSIgaXMgZW5hYmxlZC4KKworLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IENTU1Byb3BlcnR5LnByb3RvdHlwZS5nZXQgYXR0YWNoZWQKK1BBU1M6
ICJiYWNrZ3JvdW5kLXJlcGVhdCIgaXMgYXR0YWNoZWQuCitQQVNTOiAiYmFja2dyb3VuZC1yZXBl
YXQteCIgaXMgYXR0YWNoZWQuCitQQVNTOiAiYmFja2dyb3VuZC1yZXBlYXQtaW52YWxpZCIgaXMg
YXR0YWNoZWQuCitQQVNTOiAiYmFja2dyb3VuZC1jb2xvciIgaXMgZGV0YWNoZWQuCitQQVNTOiAi
YmFja2dyb3VuZC1yZXBlYXQteSIgaXMgYXR0YWNoZWQuCisKIC0tIFJ1bm5pbmcgdGVzdCBjYXNl
OiBDU1NQcm9wZXJ0eS5wcm90b3R5cGUuZ2V0IHRleHQKIFBBU1M6ICJiYWNrZ3JvdW5kLXJlcGVh
dCIgaGFzIHRoZSB0ZXh0ICJiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0OyIuCiBQQVNTOiAiYmFj
a2dyb3VuZC1yZXBlYXQiIGhhcyB0aGUgX3RleHQgKHByaXZhdGUpICJiYWNrZ3JvdW5kLXJlcGVh
dDogcmVwZWF0OyIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2Nzcy1w
cm9wZXJ0eS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9jc3MtcHJvcGVydHkuaHRt
bAppbmRleCBjMGZmNTU5Li40N2U2MmEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY3NzL2Nzcy1wcm9wZXJ0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mv
Y3NzLXByb3BlcnR5Lmh0bWwKQEAgLTExMCw2ICsxMTAsNjAgQEAgZnVuY3Rpb24gdGVzdCgpIHsK
ICAgICAgICAgfQogICAgIH0pOwogCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBu
YW1lOiAiQ1NTUHJvcGVydHkucHJvdG90eXBlLmdldCBlbmFibGVkIiwKKyAgICAgICAgZGVzY3Jp
cHRpb246ICJFbnN1cmUgdmFsaWQsIGludmFsaWQsIGFuZCBpbnRlcm5hbC1vbmx5IGhhdmUgY29y
cmVjdCBlbmFibGVkIHN0YXRlLiIsCisgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Cisg
ICAgICAgICAgICBmb3IgKGxldCBydWxlIG9mIG5vZGVTdHlsZXMubWF0Y2hlZFJ1bGVzKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKHJ1bGUuc2VsZWN0b3JUZXh0ICE9PSAiZGl2I3giKQorICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIGZvciAobGV0IHByb3Bl
cnR5IG9mIHJ1bGUuc3R5bGUuYWxsUHJvcGVydGllcykgeworICAgICAgICAgICAgICAgICAgICBz
d2l0Y2ggKHByb3BlcnR5Lm5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAiYmFja2dy
b3VuZC1yZXBlYXQiOgorICAgICAgICAgICAgICAgICAgICBjYXNlICJiYWNrZ3JvdW5kLXJlcGVh
dC14IjoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAiYmFja2dyb3VuZC1yZXBlYXQteSI6Cisg
ICAgICAgICAgICAgICAgICAgIGNhc2UgImJhY2tncm91bmQtcmVwZWF0LWludmFsaWQiOgorICAg
ICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHByb3BlcnR5LmVu
YWJsZWQsIGAiJHtwcm9wZXJ0eS5uYW1lfSIgaXMgZW5hYmxlZC5gKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlICJiYWNrZ3JvdW5kLWNv
bG9yIjoKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdCgh
cHJvcGVydHkuZW5hYmxlZCwgYCIke3Byb3BlcnR5Lm5hbWV9IiBpcyBkaXNhYmxlZC5gKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXNvbHZlKCk7Cisg
ICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFt
ZTogIkNTU1Byb3BlcnR5LnByb3RvdHlwZS5nZXQgYXR0YWNoZWQiLAorICAgICAgICBkZXNjcmlw
dGlvbjogIkVuc3VyZSB2YWxpZCwgaW52YWxpZCwgYW5kIGludGVybmFsLW9ubHkgaGF2ZSBjb3Jy
ZWN0IGF0dGFjaGVkIHN0YXRlLiIsCisgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Cisg
ICAgICAgICAgICBmb3IgKGxldCBydWxlIG9mIG5vZGVTdHlsZXMubWF0Y2hlZFJ1bGVzKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKHJ1bGUuc2VsZWN0b3JUZXh0ICE9PSAiZGl2I3giKQorICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIGZvciAobGV0IHByb3Bl
cnR5IG9mIHJ1bGUuc3R5bGUuYWxsUHJvcGVydGllcykgeworICAgICAgICAgICAgICAgICAgICBz
d2l0Y2ggKHByb3BlcnR5Lm5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAiYmFja2dy
b3VuZC1yZXBlYXQiOgorICAgICAgICAgICAgICAgICAgICBjYXNlICJiYWNrZ3JvdW5kLXJlcGVh
dC14IjoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAiYmFja2dyb3VuZC1yZXBlYXQteSI6Cisg
ICAgICAgICAgICAgICAgICAgIGNhc2UgImJhY2tncm91bmQtcmVwZWF0LWludmFsaWQiOgorICAg
ICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHByb3BlcnR5LmF0
dGFjaGVkLCBgIiR7cHJvcGVydHkubmFtZX0iIGlzIGF0dGFjaGVkLmApOworICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgImJhY2tncm91bmQt
Y29sb3IiOgorICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0
KCFwcm9wZXJ0eS5hdHRhY2hlZCwgYCIke3Byb3BlcnR5Lm5hbWV9IiBpcyBkZXRhY2hlZC5gKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXNvbHZlKCk7
CisgICAgICAgIH0KKyAgICB9KTsKKwogICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAg
bmFtZTogIkNTU1Byb3BlcnR5LnByb3RvdHlwZS5nZXQgdGV4dCIsCiAgICAgICAgIGRlc2NyaXB0
aW9uOiAiRW5zdXJlIHZhbGlkLCBpbnZhbGlkLCBhbmQgaW50ZXJuYWwtb25seSBoYXZlIGNvcnJl
Y3QgdGV4dC4iLApAQCAtMTc3LDYgKzIzMSw5IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAg
IGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQ7CiAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0LXg6
IHJlcGVhdDsKICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQtaW52YWxpZDogcmVwZWF0OworICAg
ICAgICAvKiBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsgKi8KKyAgICAgICAgLyogTm90IGEgQ1NT
IHByb3BlcnR5ICovCisgICAgICAgIC8qIGZvbzpiYXI7IGZvbzpiYXo7ICovCiAgICAgfQogICAg
IDwvc3R5bGU+CiAgICAgPGRpdiBpZD0ieCI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY3NzL21hdGNoZWQtc3R5bGUtcHJvcGVydGllcy5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2Nzcy9tYXRjaGVkLXN0eWxlLXByb3BlcnRpZXMuaHRtbAppbmRleCA1NmQ3
OTkzLi4xNWMzYzZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21hdGNo
ZWQtc3R5bGUtcHJvcGVydGllcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mv
bWF0Y2hlZC1zdHlsZS1wcm9wZXJ0aWVzLmh0bWwKQEAgLTEwLDYgKzEwLDggQEAgZGl2I25vZGUx
IHsKICAgICBwb3NpdGlvbjphYnNvbHV0ZTsKICAgICBUb1A6MDsKICAgICBsRWZUOjA7CisgICAg
LyogZm9udC1zaXplOiAxMnB4OyAqLworICAgIC8qZmxvYXQ6IGxlZnQ7Ki8KIH0KIDwvc3R5bGU+
CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhNzljODE4Li43ZTRiZWY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMDktMTIgIE5pa2l0YSBWYXNpbHlldiAg
PG52YXNpbHlldkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRnJvbnRlbmQg
c2hvdWxkIGJlIG1hZGUgdG8gZXhwZWN0IGFuZCBoYW5kbGUgZGlzYWJsZWQgcHJvcGVydGllcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2Nzg3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNDM3OTU5Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbmNsdWRlIGRpc2FibGVkIChjb21tZW50ZWQgb3V0
KSBDU1MgcHJvcGVydGllcyBpbiB0aGUgcGF5bG9hZC4KKworICAgICAgICBBZGQgbmV3IHRlc3Qg
Y2FzZXMgdG8gaW5zcGVjdG9yL2Nzcy9jc3MtcHJvcGVydHkuaHRtbC4KKworICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclN0eWxlOjpwb3B1bGF0ZUFsbFByb3BlcnRpZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yU3R5bGU6OnN0eWxlV2l0aFByb3BlcnRpZXMgY29uc3QpOgorCiAyMDE3LTA5
LTExICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2lu
XSBBZGQgTW9kdWxlcy9jYWNoZSB0byBsaXN0IG9mIGZvcndhcmRpbmcgaGVhZGVycyBmb2xkZXJz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hl
ZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3Bw
CmluZGV4IDRlYjJkODguLmVlM2U2YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKQEAgLTYwMSw5ICs2MDEsNiBAQCB2b2lkIEluc3Bl
Y3RvclN0eWxlOjpwb3B1bGF0ZUFsbFByb3BlcnRpZXMoVmVjdG9yPEluc3BlY3RvclN0eWxlUHJv
cGVydHk+KiByZXN1bAogICAgICAgICBBU1NFUlQoIXN0eWxlRGVjbGFyYXRpb25PckV4Y2VwdGlv
bi5oYXNFeGNlcHRpb24oKSk7CiAgICAgICAgIFN0cmluZyBzdHlsZURlY2xhcmF0aW9uID0gc3R5
bGVEZWNsYXJhdGlvbk9yRXhjZXB0aW9uLmhhc0V4Y2VwdGlvbigpID8gZW1wdHlTdHJpbmcoKSA6
IHN0eWxlRGVjbGFyYXRpb25PckV4Y2VwdGlvbi5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKICAgICAg
ICAgZm9yIChhdXRvJiBzb3VyY2VEYXRhIDogKnNvdXJjZVByb3BlcnR5RGF0YSkgewotICAgICAg
ICAgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNjY3ODc+IFdlYiBJbnNwZWN0
b3I6IEZyb250ZW5kIHNob3VsZCBiZSBtYWRlIHRvIGV4cGVjdCBhbmQgaGFuZGxlIGRpc2FibGVk
IHByb3BlcnRpZXMKLSAgICAgICAgICAgIGlmIChzb3VyY2VEYXRhLmRpc2FibGVkKQotICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgSW5zcGVjdG9yU3R5bGVQcm9wZXJ0eSBw
KHNvdXJjZURhdGEsIHRydWUsIHNvdXJjZURhdGEuZGlzYWJsZWQpOwogICAgICAgICAgICAgcC5z
ZXRSYXdUZXh0RnJvbVN0eWxlRGVjbGFyYXRpb24oc3R5bGVEZWNsYXJhdGlvbik7CiAgICAgICAg
ICAgICByZXN1bHQtPmFwcGVuZChwKTsKQEAgLTY2MywxNyArNjYwLDIxIEBAIFJlZjxJbnNwZWN0
b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlPiBJbnNwZWN0b3JTdHlsZTo6c3R5bGVXaXRoUHJv
cGVydGllcygpIGNvCiAgICAgICAgIC8vIERlZmF1bHQgInByaW9yaXR5IiA9PSAiIi4KICAgICAg
ICAgaWYgKHByb3BlcnR5RW50cnkuaW1wb3J0YW50KQogICAgICAgICAgICAgcHJvcGVydHktPnNl
dFByaW9yaXR5KCJpbXBvcnRhbnQiKTsKKworICAgICAgICBpZiAoaXQtPmhhc1NvdXJjZSkgewor
ICAgICAgICAgICAgLy8gVGhlIHByb3BlcnR5IHJhbmdlIGlzIHJlbGF0aXZlIHRvIHRoZSBzdHls
ZSBib2R5IHN0YXJ0LgorICAgICAgICAgICAgLy8gU2hvdWxkIGJlIGNvbnZlcnRlZCBpbnRvIGFu
IGFic29sdXRlIHJhbmdlIChyZWxhdGl2ZSB0byB0aGUgc3R5bGVzaGVldCBzdGFydCkKKyAgICAg
ICAgICAgIC8vIGZvciB0aGUgcHJvcGVyIGNvbnZlcnNpb24gaW50byBsaW5lOmNvbHVtbi4KKyAg
ICAgICAgICAgIFNvdXJjZVJhbmdlIGFic29sdXRlUHJvcGVydHlSYW5nZSA9IHByb3BlcnR5RW50
cnkucmFuZ2U7CisgICAgICAgICAgICBhYnNvbHV0ZVByb3BlcnR5UmFuZ2Uuc3RhcnQgKz0gcnVs
ZUJvZHlSYW5nZVN0YXJ0OworICAgICAgICAgICAgYWJzb2x1dGVQcm9wZXJ0eVJhbmdlLmVuZCAr
PSBydWxlQm9keVJhbmdlU3RhcnQ7CisgICAgICAgICAgICBwcm9wZXJ0eS0+c2V0UmFuZ2UoYnVp
bGRTb3VyY2VSYW5nZU9iamVjdChhYnNvbHV0ZVByb3BlcnR5UmFuZ2UsIGxpbmVFbmRpbmdzLmdl
dCgpKSk7CisgICAgICAgIH0KKwogICAgICAgICBpZiAoIWl0LT5kaXNhYmxlZCkgewogICAgICAg
ICAgICAgaWYgKGl0LT5oYXNTb3VyY2UpIHsKICAgICAgICAgICAgICAgICBBU1NFUlQoc291cmNl
RGF0YSk7CiAgICAgICAgICAgICAgICAgcHJvcGVydHktPnNldEltcGxpY2l0KGZhbHNlKTsKLSAg
ICAgICAgICAgICAgICAvLyBUaGUgcHJvcGVydHkgcmFuZ2UgaXMgcmVsYXRpdmUgdG8gdGhlIHN0
eWxlIGJvZHkgc3RhcnQuCi0gICAgICAgICAgICAgICAgLy8gU2hvdWxkIGJlIGNvbnZlcnRlZCBp
bnRvIGFuIGFic29sdXRlIHJhbmdlIChyZWxhdGl2ZSB0byB0aGUgc3R5bGVzaGVldCBzdGFydCkK
LSAgICAgICAgICAgICAgICAvLyBmb3IgdGhlIHByb3BlciBjb252ZXJzaW9uIGludG8gbGluZTpj
b2x1bW4uCi0gICAgICAgICAgICAgICAgU291cmNlUmFuZ2UgYWJzb2x1dGVQcm9wZXJ0eVJhbmdl
ID0gcHJvcGVydHlFbnRyeS5yYW5nZTsKLSAgICAgICAgICAgICAgICBhYnNvbHV0ZVByb3BlcnR5
UmFuZ2Uuc3RhcnQgKz0gcnVsZUJvZHlSYW5nZVN0YXJ0OwotICAgICAgICAgICAgICAgIGFic29s
dXRlUHJvcGVydHlSYW5nZS5lbmQgKz0gcnVsZUJvZHlSYW5nZVN0YXJ0OwotICAgICAgICAgICAg
ICAgIHByb3BlcnR5LT5zZXRSYW5nZShidWlsZFNvdXJjZVJhbmdlT2JqZWN0KGFic29sdXRlUHJv
cGVydHlSYW5nZSwgbGluZUVuZGluZ3MuZ2V0KCkpKTsKIAogICAgICAgICAgICAgICAgIC8vIFBh
cnNlZCBwcm9wZXJ0eSBvdmVycmlkZXMgYW55IHByb3BlcnR5IHdpdGggdGhlIHNhbWUgbmFtZS4g
Tm9uLXBhcnNlZCBwcm9wZXJ0eSBvdmVycmlkZXMKICAgICAgICAgICAgICAgICAvLyBwcmV2aW91
cyBub24tcGFyc2VkIHByb3BlcnR5IHdpdGggdGhlIHNhbWUgbmFtZSAoaWYgYW55KS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nCmluZGV4IDcxOWYzZTMuLjk4ZGU3ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0No
YW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE3LTA5LTEyICBOaWtpdGEgVmFzaWx5ZXYgIDxu
dmFzaWx5ZXZAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEZyb250ZW5kIHNo
b3VsZCBiZSBtYWRlIHRvIGV4cGVjdCBhbmQgaGFuZGxlIGRpc2FibGVkIHByb3BlcnRpZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Njc4NworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMzQzNzk1OTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgbWFrZXMgaW50cm9kdWNlcyBXSS5D
U1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5hbGxQcm9wZXJ0aWVzIGdldHRlciwKKyAgICAg
ICAgdGhhdCBpbmNsdWRlcyBib3RoIGVuYWJsZWQgYW5kIGRpc2FibGVkIChjb21tZW50ZWQgb3V0
KSBDU1MgcHJvcGVydGllcy4KKworICAgICAgICBUaGUgZXhpc3RpbmcgV0kuQ1NTU3R5bGVEZWNs
YXJhdGlvbi5wcm90b3R5cGUucHJvcGVydGllcyBnZXR0ZXIgb25seSBpbmNsdWRlcyBlbmFibGVk
IENTUyBwcm9wZXJ0aWVzLAorICAgICAgICBzYW1lIGFzIGJlZm9yZSB0aGUgYmFja2VuZCBjaGFu
Z2UuCisKKyAgICAgICAgVGhlcmUgaXMgbm8gYmVoYXZpb3VyIGNoYW5nZSBpbiB0aGUgY3VycmVu
dCBzdHlsZXMgc2lkZWJhci4gVGhlIG5ldyByZWRlc2lnbmVkIHN0eWxlcyBzaWRlYmFyIHdpbGwK
KyAgICAgICAgdXNlIGRpc2FibGVkIHByb3BlcnRpZXMgYW5kIGRpc3BsYXkgdGhlbSBhcyBjb21t
ZW50ZWQgb3V0LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTUHJvcGVydHku
anM6CisgICAgICAgIChXSS5DU1NQcm9wZXJ0eS5wcm90b3R5cGUuZ2V0IGF0dGFjaGVkKToKKyAg
ICAgICAgUmVuYW1lIGBlbmFibGVkYCB0byBgYXR0YWNoZWRgLCBhcyBpdCBkaWRuJ3QgY29ycmVz
cG9uZCB0byBgX2VuYWJsZWRgIHByb3BlcnR5LiBBdHRhY2hlZCBtZWFucyB0aGF0IHRoZSBwcm9w
ZXJ0eQorICAgICAgICBpcyBlbmFibGVkIGFuZCBoYXMgYSBvd25lclN0eWxlIHdpdGggYSBzZXQg
aW5kZXggKHVubGVzcyBpdCdzIGEgY29tcHV0ZWQgc3R5bGUsIHdoZXJlIGluZGV4IGlzIG5vdCBh
cHBsaWNhYmxlKS4KKworICAgICAgICAoV0kuQ1NTUHJvcGVydHkucHJvdG90eXBlLmdldCBlbmFi
bGVkKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9DU1NTdHlsZURlY2xhcmF0aW9u
LmpzOgorICAgICAgICAoV0kuQ1NTU3R5bGVEZWNsYXJhdGlvbi5wcm90b3R5cGUuZ2V0IGFsbFBy
b3BlcnRpZXMpOgorICAgICAgICBBZGQgYWxsUHJvcGVydGllcyBnZXR0ZXIgdGhhdCB3aWxsIGJl
IHVzZWQgaW4gdGhlIG5ldyBzdHlsZXMgc2lkZWJhci4KKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvTW9kZWxzL0RPTU5vZGVTdHlsZXMuanM6CisgICAgICAgIChXSS5ET01Ob2RlU3R5bGVzLnBy
b3RvdHlwZS5fbWFya092ZXJyaWRkZW5Qcm9wZXJ0aWVzKToKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yLmpzOgorICAgICAgICAoV0ku
Q1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IucHJvdG90eXBlLmhpZ2hsaWdodFByb3BlcnR5
LnByb3BlcnRpZXNNYXRjaCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxT
dHlsZVNlbGVjdG9yU2VjdGlvbi5qczoKKyAgICAgICAgKFdJLlZpc3VhbFN0eWxlU2VsZWN0b3JT
ZWN0aW9uLnByb3RvdHlwZS5fdHJlZUVsZW1lbnRDaGVja2JveFRvZ2dsZWQpOgorICAgICAgICBS
ZW5hbWUgImVuYWJsZWQiIHRvICJhdHRhY2hlZCIgd2l0aG91dCBhbnkgYmVoYXZpb3IgY2hhbmdl
LgorCiAyMDE3LTA5LTExICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogUmVuYW1lIE5ldHdvcmtUYWIgLyBOZXR3b3JrU2lkZWJh
ciB0byBMZWdhY3lOZXR3b3JrKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5LmpzCmluZGV4IDJmNzNhZWMuLmY2ODJl
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9DU1NQcm9wZXJ0eS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvQ1NTUHJvcGVydHkuanMKQEAgLTE1NCwxMSArMTU0LDE0IEBAIFdJLkNTU1Byb3Bl
cnR5ID0gY2xhc3MgQ1NTUHJvcGVydHkgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIGdldCBwcmlv
cml0eSgpIHsgcmV0dXJuIHRoaXMuX3ByaW9yaXR5OyB9CiAKLSAgICBnZXQgZW5hYmxlZCgpCisg
ICAgZ2V0IGF0dGFjaGVkKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9lbmFibGVkICYm
IHRoaXMuX293bmVyU3R5bGUgJiYgKCFpc05hTih0aGlzLl9pbmRleCkgfHwgdGhpcy5fb3duZXJT
dHlsZS50eXBlID09PSBXSS5DU1NTdHlsZURlY2xhcmF0aW9uLlR5cGUuQ29tcHV0ZWQpOwogICAg
IH0KIAorICAgIC8vIE9ubHkgY29tbWVudGVkIG91dCBwcm9wZXJ0aWVzIGFyZSBkaXNhYmxlZC4K
KyAgICBnZXQgZW5hYmxlZCgpIHsgcmV0dXJuIHRoaXMuX2VuYWJsZWQ7IH0KKwogICAgIGdldCBv
dmVycmlkZGVuKCkgeyByZXR1cm4gdGhpcy5fb3ZlcnJpZGRlbjsgfQogICAgIHNldCBvdmVycmlk
ZGVuKG92ZXJyaWRkZW4pCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1N0eWxlRGVjbGFyYXRpb24uanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTU3R5bGVEZWNsYXJhdGlvbi5qcwpp
bmRleCA5NjE1MTE5Li4xNjFlMWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTU3R5bGVEZWNsYXJhdGlvbi5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTU3R5bGVEZWNsYXJhdGlvbi5q
cwpAQCAtOTksNyArOTksOSBAQCBXSS5DU1NTdHlsZURlY2xhcmF0aW9uID0gY2xhc3MgQ1NTU3R5
bGVEZWNsYXJhdGlvbiBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB2YXIgb2xkVGV4dCA9IHRo
aXMuX3RleHQ7CiAKICAgICAgICAgdGhpcy5fdGV4dCA9IHRleHQ7Ci0gICAgICAgIHRoaXMuX3By
b3BlcnRpZXMgPSBwcm9wZXJ0aWVzOworICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzID0gcHJvcGVy
dGllcy5maWx0ZXIoKHByb3BlcnR5KSA9PiBwcm9wZXJ0eS5lbmFibGVkKTsKKyAgICAgICAgdGhp
cy5fYWxsUHJvcGVydGllcyA9IHByb3BlcnRpZXM7CisKICAgICAgICAgdGhpcy5fc3R5bGVTaGVl
dFRleHRSYW5nZSA9IHN0eWxlU2hlZXRUZXh0UmFuZ2U7CiAgICAgICAgIHRoaXMuX3Byb3BlcnR5
TmFtZU1hcCA9IHt9OwogCkBAIC0yMTcsNiArMjE5LDggQEAgV0kuQ1NTU3R5bGVEZWNsYXJhdGlv
biA9IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb24gZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAg
cmV0dXJuIHRoaXMuX3Byb3BlcnRpZXM7CiAgICAgfQogCisgICAgZ2V0IGFsbFByb3BlcnRpZXMo
KSB7IHJldHVybiB0aGlzLl9hbGxQcm9wZXJ0aWVzOyB9CisKICAgICBnZXQgdmlzaWJsZVByb3Bl
cnRpZXMoKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX3Zpc2libGVQcm9wZXJ0aWVzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTU5v
ZGVTdHlsZXMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
RE9NTm9kZVN0eWxlcy5qcwppbmRleCA3MWFjZTJlLi4wOTUxODdhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZVN0eWxlcy5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZVN0
eWxlcy5qcwpAQCAtOTAxLDcgKzkwMSw3IEBAIFdJLkRPTU5vZGVTdHlsZXMgPSBjbGFzcyBET01O
b2RlU3R5bGVzIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICAgICAgICAgIGZvciAodmFyIGogPSAw
OyBqIDwgcHJvcGVydGllcy5sZW5ndGg7ICsraikgewogICAgICAgICAgICAgICAgIHZhciBwcm9w
ZXJ0eSA9IHByb3BlcnRpZXNbal07Ci0gICAgICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eS5lbmFi
bGVkIHx8ICFwcm9wZXJ0eS52YWxpZCkgeworICAgICAgICAgICAgICAgIGlmICghcHJvcGVydHku
YXR0YWNoZWQgfHwgIXByb3BlcnR5LnZhbGlkKSB7CiAgICAgICAgICAgICAgICAgICAgIHByb3Bl
cnR5Lm92ZXJyaWRkZW4gPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uVGV4
dEVkaXRvci5qcwppbmRleCA3ZDMxNTQyLi4zMjU2MzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVk
aXRvci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
U1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvci5qcwpAQCAtMTg5LDcgKzE4OSw3IEBAIFdJLkNT
U1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yID0gY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvblRl
eHRFZGl0b3IgZXh0ZW5kcyBXCiAgICAgewogICAgICAgICBmdW5jdGlvbiBwcm9wZXJ0aWVzTWF0
Y2goY3NzUHJvcGVydHkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChjc3NQcm9wZXJ0eS5l
bmFibGVkICYmICFjc3NQcm9wZXJ0eS5vdmVycmlkZGVuKSB7CisgICAgICAgICAgICBpZiAoY3Nz
UHJvcGVydHkuYXR0YWNoZWQgJiYgIWNzc1Byb3BlcnR5Lm92ZXJyaWRkZW4pIHsKICAgICAgICAg
ICAgICAgICBpZiAoY3NzUHJvcGVydHkuY2Fub25pY2FsTmFtZSA9PT0gcHJvcGVydHkuY2Fub25p
Y2FsTmFtZSB8fCBoYXNNYXRjaGluZ0xvbmdoYW5kUHJvcGVydHkoY3NzUHJvcGVydHkpKQogICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KQEAgLTk4OSw3ICs5
ODksNyBAQCBXSS5DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvciA9IGNsYXNzIENTU1N0eWxl
RGVjbGFyYXRpb25UZXh0RWRpdG9yIGV4dGVuZHMgVwogICAgICAgICBpZiAoIXRoaXMuX2NvZGVN
aXJyb3IuZ2V0T3B0aW9uKCJyZWFkT25seSIpKSB7CiAgICAgICAgICAgICAvLyBDcmVhdGUgYSBu
ZXcgY2hlY2tib3ggZWxlbWVudCBhbmQgbWFya2VyLgogCi0gICAgICAgICAgICBjb25zb2xlLmFz
c2VydChwcm9wZXJ0eS5lbmFibGVkKTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHByb3Bl
cnR5LmF0dGFjaGVkKTsKIAogICAgICAgICAgICAgdmFyIGNoZWNrYm94RWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CiAgICAgICAgICAgICBjaGVja2JveEVsZW1lbnQu
dHlwZSA9ICJjaGVja2JveCI7CkBAIC0xMDQ3LDcgKzEwNDcsNyBAQCBXSS5DU1NTdHlsZURlY2xh
cmF0aW9uVGV4dEVkaXRvciA9IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9yIGV4
dGVuZHMgVwogICAgICAgICBlbHNlIGlmICghcHJvcGVydHkudmFsaWQgJiYgKCFwcm9wZXJ0eU5h
bWVJc1ZhbGlkIHx8IGR1cGxpY2F0ZVByb3BlcnR5RXhpc3RzQmVsb3cuY2FsbCh0aGlzLCBwcm9w
ZXJ0eSkpKQogICAgICAgICAgICAgY2xhc3NOYW1lcy5wdXNoKCJpbnZhbGlkIik7CiAKLSAgICAg
ICAgaWYgKCFwcm9wZXJ0eS5lbmFibGVkKQorICAgICAgICBpZiAoIXByb3BlcnR5LmF0dGFjaGVk
KQogICAgICAgICAgICAgY2xhc3NOYW1lcy5wdXNoKCJkaXNhYmxlZCIpOwogCiAgICAgICAgIGlm
IChwcm9wZXJ0eS5fX2ZpbHRlclJlc3VsdENsYXNzTmFtZSAmJiAhcHJvcGVydHkuX19maWx0ZXJS
ZXN1bHROZWVkbGVQb3NpdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JTZWN0aW9uLmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVTZWxlY3RvclNl
Y3Rpb24uanMKaW5kZXggMzIyYjMxNi4uMWEyMzAzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVTZWxlY3RvclNlY3Rpb24u
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFs
U3R5bGVTZWxlY3RvclNlY3Rpb24uanMKQEAgLTMwOCw3ICszMDgsNyBAQCBXSS5WaXN1YWxTdHls
ZVNlbGVjdG9yU2VjdGlvbiA9IGNsYXNzIFZpc3VhbFN0eWxlU2VsZWN0b3JTZWN0aW9uIGV4dGVu
ZHMgV0kuRGV0YQogCiAgICAgICAgIC8vIENvbW1lbnQgb3IgdW5jb21tZW50IHRoZSBzdHlsZSB0
ZXh0LgogICAgICAgICBsZXQgbmV3U3R5bGVUZXh0ID0gIiI7Ci0gICAgICAgIGxldCBzdHlsZUVu
YWJsZWQgPSBldmVudCAmJiBldmVudC5kYXRhICYmIGV2ZW50LmRhdGEuZW5hYmxlZDsKKyAgICAg
ICAgbGV0IHN0eWxlRW5hYmxlZCA9IGV2ZW50ICYmIGV2ZW50LmRhdGEgJiYgZXZlbnQuZGF0YS5h
dHRhY2hlZDsKICAgICAgICAgaWYgKHN0eWxlRW5hYmxlZCkKICAgICAgICAgICAgIG5ld1N0eWxl
VGV4dCA9IHN0eWxlVGV4dC5yZXBsYWNlKC9ccyooXC9cKnxcKlwvKVxzKi9nLCAiIik7CiAgICAg
ICAgIGVsc2UK
</data>
<flag name="review"
          id="340694"
          type_id="1"
          status="+"
          setter="joepeck"
    />
    <flag name="commit-queue"
          id="340695"
          type_id="3"
          status="-"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320680</attachid>
            <date>2017-09-13 13:01:21 -0700</date>
            <delta_ts>2017-09-13 13:48:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>15367</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhMDMwODU0Li4wNzc2MDBiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMDkt
MTMgIE5pa2l0YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogRnJvbnRlbmQgc2hvdWxkIGJlIG1hZGUgdG8gZXhwZWN0IGFuZCBoYW5kbGUg
ZGlzYWJsZWQgcHJvcGVydGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY2Nzg3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNDM3OTU5Mz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8uCisKKyAgICAgICAgQWRkIHRlc3Qg
Y2FzZXMgZm9yIGRpc2FibGVkIChjb21tZW50ZWQgb3V0KSBDU1MgcHJvcGVydGllcy4KKworICAg
ICAgICAqIGluc3BlY3Rvci9jc3MvY3NzLXByb3BlcnR5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvY3NzL2Nzcy1wcm9wZXJ0eS5odG1sOgorICAgICAgICBBZGQgdGVzdCBjYXNl
cyBmb3IgcHJldmlvdXNseSB1bnRlc3RlZCBgZW5hYmxlZGAgYW5kIG5ld2x5IGFkZGVkIGBhdHRh
Y2hlZGAgZ2V0dGVycy4KKworICAgICAgICAqIGluc3BlY3Rvci9jc3MvbWF0Y2hlZC1zdHlsZS1w
cm9wZXJ0aWVzLmh0bWw6CisKIDIwMTctMDktMTEgIEpvYW5tYXJpZSBEaWdncyAgPGpkaWdnc0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIEFYOiBbQVRLXSBhcmlhLWF1dG9jb21wbGV0ZSBub3QgZXhw
b3NlZCBvbiBjb21ib2JveGVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3Nz
L2Nzcy1wcm9wZXJ0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2Nz
cy1wcm9wZXJ0eS1leHBlY3RlZC50eHQKaW5kZXggNzIxYzVkYy4uOWYwZjhhYiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9jc3MtcHJvcGVydHktZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvY3NzLXByb3BlcnR5LWV4cGVjdGVkLnR4dApA
QCAtMjYsNiArMjYsMjAgQEAgUEFTUzogImJhY2tncm91bmQtcmVwZWF0LXgiIGhhcyB0aGUgdmFs
dWUgInJlcGVhdCIuCiBQQVNTOiAiYmFja2dyb3VuZC1yZXBlYXQtaW52YWxpZCIgaGFzIHRoZSB2
YWx1ZSAicmVwZWF0Ii4KIFBBU1M6ICJiYWNrZ3JvdW5kLXJlcGVhdC15IiBoYXMgdGhlIHZhbHVl
ICJyZXBlYXQiLgogCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ1NTUHJvcGVydHkucHJvdG90eXBl
LmdldCBlbmFibGVkCitQQVNTOiAiYmFja2dyb3VuZC1yZXBlYXQiIGlzIGVuYWJsZWQuCitQQVNT
OiAiYmFja2dyb3VuZC1yZXBlYXQteCIgaXMgZW5hYmxlZC4KK1BBU1M6ICJiYWNrZ3JvdW5kLXJl
cGVhdC1pbnZhbGlkIiBpcyBlbmFibGVkLgorUEFTUzogImJhY2tncm91bmQtY29sb3IiIGlzIGRp
c2FibGVkLgorUEFTUzogImJhY2tncm91bmQtcmVwZWF0LXkiIGlzIGVuYWJsZWQuCisKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBDU1NQcm9wZXJ0eS5wcm90b3R5cGUuZ2V0IGF0dGFjaGVkCitQQVNT
OiAiYmFja2dyb3VuZC1yZXBlYXQiIGlzIGF0dGFjaGVkLgorUEFTUzogImJhY2tncm91bmQtcmVw
ZWF0LXgiIGlzIGF0dGFjaGVkLgorUEFTUzogImJhY2tncm91bmQtcmVwZWF0LWludmFsaWQiIGlz
IGF0dGFjaGVkLgorUEFTUzogImJhY2tncm91bmQtY29sb3IiIGlzIGRldGFjaGVkLgorUEFTUzog
ImJhY2tncm91bmQtcmVwZWF0LXkiIGlzIGF0dGFjaGVkLgorCiAtLSBSdW5uaW5nIHRlc3QgY2Fz
ZTogQ1NTUHJvcGVydHkucHJvdG90eXBlLmdldCB0ZXh0CiBQQVNTOiAiYmFja2dyb3VuZC1yZXBl
YXQiIGhhcyB0aGUgdGV4dCAiYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDsiLgogUEFTUzogImJh
Y2tncm91bmQtcmVwZWF0IiBoYXMgdGhlIF90ZXh0IChwcml2YXRlKSAiYmFja2dyb3VuZC1yZXBl
YXQ6IHJlcGVhdDsiLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9jc3Mt
cHJvcGVydHkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvY3NzLXByb3BlcnR5Lmh0
bWwKaW5kZXggYzBmZjU1OS4uNDdlNjJhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2Nzcy9jc3MtcHJvcGVydHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3Nz
L2Nzcy1wcm9wZXJ0eS5odG1sCkBAIC0xMTAsNiArMTEwLDYwIEBAIGZ1bmN0aW9uIHRlc3QoKSB7
CiAgICAgICAgIH0KICAgICB9KTsKIAorICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAg
bmFtZTogIkNTU1Byb3BlcnR5LnByb3RvdHlwZS5nZXQgZW5hYmxlZCIsCisgICAgICAgIGRlc2Ny
aXB0aW9uOiAiRW5zdXJlIHZhbGlkLCBpbnZhbGlkLCBhbmQgaW50ZXJuYWwtb25seSBoYXZlIGNv
cnJlY3QgZW5hYmxlZCBzdGF0ZS4iLAorICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewor
ICAgICAgICAgICAgZm9yIChsZXQgcnVsZSBvZiBub2RlU3R5bGVzLm1hdGNoZWRSdWxlcykgewor
ICAgICAgICAgICAgICAgIGlmIChydWxlLnNlbGVjdG9yVGV4dCAhPT0gImRpdiN4IikKKyAgICAg
ICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICBmb3IgKGxldCBwcm9w
ZXJ0eSBvZiBydWxlLnN0eWxlLmFsbFByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgICAgICAgICAg
c3dpdGNoIChwcm9wZXJ0eS5uYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgImJhY2tn
cm91bmQtcmVwZWF0IjoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAiYmFja2dyb3VuZC1yZXBl
YXQteCI6CisgICAgICAgICAgICAgICAgICAgIGNhc2UgImJhY2tncm91bmQtcmVwZWF0LXkiOgor
ICAgICAgICAgICAgICAgICAgICBjYXNlICJiYWNrZ3JvdW5kLXJlcGVhdC1pbnZhbGlkIjoKKyAg
ICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChwcm9wZXJ0eS5l
bmFibGVkLCBgIiR7cHJvcGVydHkubmFtZX0iIGlzIGVuYWJsZWQuYCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAiYmFja2dyb3VuZC1j
b2xvciI6CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
IXByb3BlcnR5LmVuYWJsZWQsIGAiJHtwcm9wZXJ0eS5uYW1lfSIgaXMgZGlzYWJsZWQuYCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVzb2x2ZSgpOwor
ICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5h
bWU6ICJDU1NQcm9wZXJ0eS5wcm90b3R5cGUuZ2V0IGF0dGFjaGVkIiwKKyAgICAgICAgZGVzY3Jp
cHRpb246ICJFbnN1cmUgdmFsaWQsIGludmFsaWQsIGFuZCBpbnRlcm5hbC1vbmx5IGhhdmUgY29y
cmVjdCBhdHRhY2hlZCBzdGF0ZS4iLAorICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewor
ICAgICAgICAgICAgZm9yIChsZXQgcnVsZSBvZiBub2RlU3R5bGVzLm1hdGNoZWRSdWxlcykgewor
ICAgICAgICAgICAgICAgIGlmIChydWxlLnNlbGVjdG9yVGV4dCAhPT0gImRpdiN4IikKKyAgICAg
ICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICBmb3IgKGxldCBwcm9w
ZXJ0eSBvZiBydWxlLnN0eWxlLmFsbFByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgICAgICAgICAg
c3dpdGNoIChwcm9wZXJ0eS5uYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgImJhY2tn
cm91bmQtcmVwZWF0IjoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAiYmFja2dyb3VuZC1yZXBl
YXQteCI6CisgICAgICAgICAgICAgICAgICAgIGNhc2UgImJhY2tncm91bmQtcmVwZWF0LXkiOgor
ICAgICAgICAgICAgICAgICAgICBjYXNlICJiYWNrZ3JvdW5kLXJlcGVhdC1pbnZhbGlkIjoKKyAg
ICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChwcm9wZXJ0eS5h
dHRhY2hlZCwgYCIke3Byb3BlcnR5Lm5hbWV9IiBpcyBhdHRhY2hlZC5gKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlICJiYWNrZ3JvdW5k
LWNvbG9yIjoKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhh
dCghcHJvcGVydHkuYXR0YWNoZWQsIGAiJHtwcm9wZXJ0eS5uYW1lfSIgaXMgZGV0YWNoZWQuYCk7
CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVzb2x2ZSgp
OworICAgICAgICB9CisgICAgfSk7CisKICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CiAgICAgICAg
IG5hbWU6ICJDU1NQcm9wZXJ0eS5wcm90b3R5cGUuZ2V0IHRleHQiLAogICAgICAgICBkZXNjcmlw
dGlvbjogIkVuc3VyZSB2YWxpZCwgaW52YWxpZCwgYW5kIGludGVybmFsLW9ubHkgaGF2ZSBjb3Jy
ZWN0IHRleHQuIiwKQEAgLTE3Nyw2ICsyMzEsOSBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAg
ICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0OwogICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdC14
OiByZXBlYXQ7CiAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0LWludmFsaWQ6IHJlcGVhdDsKKyAg
ICAgICAgLyogYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7ICovCisgICAgICAgIC8qIE5vdCBhIENT
UyBwcm9wZXJ0eSAqLworICAgICAgICAvKiBmb286YmFyOyBmb286YmF6OyAqLwogICAgIH0KICAg
ICA8L3N0eWxlPgogICAgIDxkaXYgaWQ9IngiPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2Nzcy9tYXRjaGVkLXN0eWxlLXByb3BlcnRpZXMuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jc3MvbWF0Y2hlZC1zdHlsZS1wcm9wZXJ0aWVzLmh0bWwKaW5kZXggNTZk
Nzk5My4uMTVjM2M2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tYXRj
aGVkLXN0eWxlLXByb3BlcnRpZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3Nz
L21hdGNoZWQtc3R5bGUtcHJvcGVydGllcy5odG1sCkBAIC0xMCw2ICsxMCw4IEBAIGRpdiNub2Rl
MSB7CiAgICAgcG9zaXRpb246YWJzb2x1dGU7CiAgICAgVG9QOjA7CiAgICAgbEVmVDowOworICAg
IC8qIGZvbnQtc2l6ZTogMTJweDsgKi8KKyAgICAvKmZsb2F0OiBsZWZ0OyovCiB9CiA8L3N0eWxl
PgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNw
ZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTc5YzgxOC4uMGI4MDc2NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE3LTA5LTEzICBOaWtpdGEgVmFzaWx5ZXYg
IDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEZyb250ZW5k
IHNob3VsZCBiZSBtYWRlIHRvIGV4cGVjdCBhbmQgaGFuZGxlIGRpc2FibGVkIHByb3BlcnRpZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Njc4Nwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQzNzk1OTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Sm9zZXBoIFBlY29yYXJvLgorCisgICAgICAgIEluY2x1ZGUgZGlzYWJsZWQgKGNvbW1lbnRlZCBv
dXQpIENTUyBwcm9wZXJ0aWVzIGluIHRoZSBwYXlsb2FkLgorCisgICAgICAgIFRlc3RzOiBpbnNw
ZWN0b3IvY3NzL2Nzcy1wcm9wZXJ0eS5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvY3Nz
L21hdGNoZWQtc3R5bGUtcHJvcGVydGllcy5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZTo6
cG9wdWxhdGVBbGxQcm9wZXJ0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clN0eWxlOjpzdHlsZVdpdGhQcm9wZXJ0aWVzIGNvbnN0KToKKwogMjAxNy0wOS0xMSAgUGVyIEFy
bmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gQWRkIE1vZHVs
ZXMvY2FjaGUgdG8gbGlzdCBvZiBmb3J3YXJkaW5nIGhlYWRlcnMgZm9sZGVycy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAppbmRleCA0ZWIy
ZDg4Li5lZTNlNmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clN0eWxlU2hlZXQuY3BwCkBAIC02MDEsOSArNjAxLDYgQEAgdm9pZCBJbnNwZWN0b3JTdHlsZTo6
cG9wdWxhdGVBbGxQcm9wZXJ0aWVzKFZlY3RvcjxJbnNwZWN0b3JTdHlsZVByb3BlcnR5PiogcmVz
dWwKICAgICAgICAgQVNTRVJUKCFzdHlsZURlY2xhcmF0aW9uT3JFeGNlcHRpb24uaGFzRXhjZXB0
aW9uKCkpOwogICAgICAgICBTdHJpbmcgc3R5bGVEZWNsYXJhdGlvbiA9IHN0eWxlRGVjbGFyYXRp
b25PckV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSA/IGVtcHR5U3RyaW5nKCkgOiBzdHlsZURlY2xh
cmF0aW9uT3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCk7CiAgICAgICAgIGZvciAoYXV0
byYgc291cmNlRGF0YSA6ICpzb3VyY2VQcm9wZXJ0eURhdGEpIHsKLSAgICAgICAgICAgIC8vIEZJ
WE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTY2Nzg3PiBXZWIgSW5zcGVjdG9yOiBGcm9udGVu
ZCBzaG91bGQgYmUgbWFkZSB0byBleHBlY3QgYW5kIGhhbmRsZSBkaXNhYmxlZCBwcm9wZXJ0aWVz
Ci0gICAgICAgICAgICBpZiAoc291cmNlRGF0YS5kaXNhYmxlZCkKLSAgICAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgICAgIEluc3BlY3RvclN0eWxlUHJvcGVydHkgcChzb3VyY2VEYXRh
LCB0cnVlLCBzb3VyY2VEYXRhLmRpc2FibGVkKTsKICAgICAgICAgICAgIHAuc2V0UmF3VGV4dEZy
b21TdHlsZURlY2xhcmF0aW9uKHN0eWxlRGVjbGFyYXRpb24pOwogICAgICAgICAgICAgcmVzdWx0
LT5hcHBlbmQocCk7CkBAIC02NjMsMTcgKzY2MCwyMSBAQCBSZWY8SW5zcGVjdG9yOjpQcm90b2Nv
bDo6Q1NTOjpDU1NTdHlsZT4gSW5zcGVjdG9yU3R5bGU6OnN0eWxlV2l0aFByb3BlcnRpZXMoKSBj
bwogICAgICAgICAvLyBEZWZhdWx0ICJwcmlvcml0eSIgPT0gIiIuCiAgICAgICAgIGlmIChwcm9w
ZXJ0eUVudHJ5LmltcG9ydGFudCkKICAgICAgICAgICAgIHByb3BlcnR5LT5zZXRQcmlvcml0eSgi
aW1wb3J0YW50Iik7CisKKyAgICAgICAgaWYgKGl0LT5oYXNTb3VyY2UpIHsKKyAgICAgICAgICAg
IC8vIFRoZSBwcm9wZXJ0eSByYW5nZSBpcyByZWxhdGl2ZSB0byB0aGUgc3R5bGUgYm9keSBzdGFy
dC4KKyAgICAgICAgICAgIC8vIFNob3VsZCBiZSBjb252ZXJ0ZWQgaW50byBhbiBhYnNvbHV0ZSBy
YW5nZSAocmVsYXRpdmUgdG8gdGhlIHN0eWxlc2hlZXQgc3RhcnQpCisgICAgICAgICAgICAvLyBm
b3IgdGhlIHByb3BlciBjb252ZXJzaW9uIGludG8gbGluZTpjb2x1bW4uCisgICAgICAgICAgICBT
b3VyY2VSYW5nZSBhYnNvbHV0ZVByb3BlcnR5UmFuZ2UgPSBwcm9wZXJ0eUVudHJ5LnJhbmdlOwor
ICAgICAgICAgICAgYWJzb2x1dGVQcm9wZXJ0eVJhbmdlLnN0YXJ0ICs9IHJ1bGVCb2R5UmFuZ2VT
dGFydDsKKyAgICAgICAgICAgIGFic29sdXRlUHJvcGVydHlSYW5nZS5lbmQgKz0gcnVsZUJvZHlS
YW5nZVN0YXJ0OworICAgICAgICAgICAgcHJvcGVydHktPnNldFJhbmdlKGJ1aWxkU291cmNlUmFu
Z2VPYmplY3QoYWJzb2x1dGVQcm9wZXJ0eVJhbmdlLCBsaW5lRW5kaW5ncy5nZXQoKSkpOworICAg
ICAgICB9CisKICAgICAgICAgaWYgKCFpdC0+ZGlzYWJsZWQpIHsKICAgICAgICAgICAgIGlmIChp
dC0+aGFzU291cmNlKSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKHNvdXJjZURhdGEpOwogICAg
ICAgICAgICAgICAgIHByb3BlcnR5LT5zZXRJbXBsaWNpdChmYWxzZSk7Ci0gICAgICAgICAgICAg
ICAgLy8gVGhlIHByb3BlcnR5IHJhbmdlIGlzIHJlbGF0aXZlIHRvIHRoZSBzdHlsZSBib2R5IHN0
YXJ0LgotICAgICAgICAgICAgICAgIC8vIFNob3VsZCBiZSBjb252ZXJ0ZWQgaW50byBhbiBhYnNv
bHV0ZSByYW5nZSAocmVsYXRpdmUgdG8gdGhlIHN0eWxlc2hlZXQgc3RhcnQpCi0gICAgICAgICAg
ICAgICAgLy8gZm9yIHRoZSBwcm9wZXIgY29udmVyc2lvbiBpbnRvIGxpbmU6Y29sdW1uLgotICAg
ICAgICAgICAgICAgIFNvdXJjZVJhbmdlIGFic29sdXRlUHJvcGVydHlSYW5nZSA9IHByb3BlcnR5
RW50cnkucmFuZ2U7Ci0gICAgICAgICAgICAgICAgYWJzb2x1dGVQcm9wZXJ0eVJhbmdlLnN0YXJ0
ICs9IHJ1bGVCb2R5UmFuZ2VTdGFydDsKLSAgICAgICAgICAgICAgICBhYnNvbHV0ZVByb3BlcnR5
UmFuZ2UuZW5kICs9IHJ1bGVCb2R5UmFuZ2VTdGFydDsKLSAgICAgICAgICAgICAgICBwcm9wZXJ0
eS0+c2V0UmFuZ2UoYnVpbGRTb3VyY2VSYW5nZU9iamVjdChhYnNvbHV0ZVByb3BlcnR5UmFuZ2Us
IGxpbmVFbmRpbmdzLmdldCgpKSk7CiAKICAgICAgICAgICAgICAgICAvLyBQYXJzZWQgcHJvcGVy
dHkgb3ZlcnJpZGVzIGFueSBwcm9wZXJ0eSB3aXRoIHRoZSBzYW1lIG5hbWUuIE5vbi1wYXJzZWQg
cHJvcGVydHkgb3ZlcnJpZGVzCiAgICAgICAgICAgICAgICAgLy8gcHJldmlvdXMgbm9uLXBhcnNl
ZCBwcm9wZXJ0eSB3aXRoIHRoZSBzYW1lIG5hbWUgKGlmIGFueSkuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5n
ZUxvZwppbmRleCA3MTlmM2UzLi5mNjg3NGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNiBAQAorMjAxNy0wOS0xMyAgTmlraXRhIFZhc2lseWV2ICA8bnZhc2lseWV2QGFw
cGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBGcm9udGVuZCBzaG91bGQgYmUgbWFk
ZSB0byBleHBlY3QgYW5kIGhhbmRsZSBkaXNhYmxlZCBwcm9wZXJ0aWVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY3ODcKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzM0Mzc5NTkzPgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFy
by4KKworICAgICAgICBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIFdJLkNTU1N0eWxlRGVjbGFyYXRp
b24ucHJvdG90eXBlLmFsbFByb3BlcnRpZXMgZ2V0dGVyLAorICAgICAgICB0aGF0IGluY2x1ZGVz
IGJvdGggZW5hYmxlZCBhbmQgZGlzYWJsZWQgKGNvbW1lbnRlZCBvdXQpIENTUyBwcm9wZXJ0aWVz
LgorCisgICAgICAgIFRoZSBleGlzdGluZyBXSS5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlw
ZS5wcm9wZXJ0aWVzIGdldHRlciBvbmx5IGluY2x1ZGVzIGVuYWJsZWQgQ1NTIHByb3BlcnRpZXMs
CisgICAgICAgIHNhbWUgYXMgYmVmb3JlIHRoZSBiYWNrZW5kIGNoYW5nZS4KKworICAgICAgICBU
aGVyZSBpcyBubyBiZWhhdmlvdXIgY2hhbmdlIGluIHRoZSBjdXJyZW50IHN0eWxlcyBzaWRlYmFy
LiBUaGUgbmV3IHJlZGVzaWduZWQgc3R5bGVzIHNpZGViYXIgd2lsbAorICAgICAgICB1c2UgZGlz
YWJsZWQgcHJvcGVydGllcyBhbmQgZGlzcGxheSB0aGVtIGFzIGNvbW1lbnRlZCBvdXQuCisKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9DU1NQcm9wZXJ0eS5qczoKKyAgICAgICAgKFdJ
LkNTU1Byb3BlcnR5LnByb3RvdHlwZS5nZXQgYXR0YWNoZWQpOgorICAgICAgICBSZW5hbWUgYGVu
YWJsZWRgIHRvIGBhdHRhY2hlZGAsIGFzIGl0IGRpZG4ndCBjb3JyZXNwb25kIHRvIGBfZW5hYmxl
ZGAgcHJvcGVydHkuIEF0dGFjaGVkIG1lYW5zIHRoYXQgdGhlIHByb3BlcnR5CisgICAgICAgIGlz
IGVuYWJsZWQgYW5kIGhhcyBhIG93bmVyU3R5bGUgd2l0aCBhIHNldCBpbmRleCAodW5sZXNzIGl0
J3MgYSBjb21wdXRlZCBzdHlsZSwgd2hlcmUgaW5kZXggaXMgbm90IGFwcGxpY2FibGUpLgorCisg
ICAgICAgIChXSS5DU1NQcm9wZXJ0eS5wcm90b3R5cGUuZ2V0IGVuYWJsZWQpOgorICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1N0eWxlRGVjbGFyYXRpb24uanM6CisgICAgICAgIChX
SS5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5nZXQgYWxsUHJvcGVydGllcyk6CisgICAg
ICAgIEFkZCBhbGxQcm9wZXJ0aWVzIGdldHRlciB0aGF0IHdpbGwgYmUgdXNlZCBpbiB0aGUgbmV3
IHN0eWxlcyBzaWRlYmFyLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9k
ZVN0eWxlcy5qczoKKyAgICAgICAgKFdJLkRPTU5vZGVTdHlsZXMucHJvdG90eXBlLl9tYXJrT3Zl
cnJpZGRlblByb3BlcnRpZXMpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5
bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuanM6CisgICAgICAgIChXSS5DU1NTdHlsZURlY2xhcmF0
aW9uVGV4dEVkaXRvci5wcm90b3R5cGUuaGlnaGxpZ2h0UHJvcGVydHkucHJvcGVydGllc01hdGNo
KToKKyAgICAgICAgUmVuYW1lICJlbmFibGVkIiB0byAiYXR0YWNoZWQiIHdpdGhvdXQgYW55IGJl
aGF2aW9yIGNoYW5nZS4KKwogMjAxNy0wOS0xMSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9A
YXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbmFtZSBOZXR3b3JrVGFiIC8g
TmV0d29ya1NpZGViYXIgdG8gTGVnYWN5TmV0d29yayoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NQcm9wZXJ0eS5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NQcm9wZXJ0eS5qcwppbmRleCAy
ZjczYWVjLi5mNjgyZTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvQ1NTUHJvcGVydHkuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5LmpzCkBAIC0xNTQsMTEgKzE1NCwxNCBA
QCBXSS5DU1NQcm9wZXJ0eSA9IGNsYXNzIENTU1Byb3BlcnR5IGV4dGVuZHMgV0kuT2JqZWN0CiAK
ICAgICBnZXQgcHJpb3JpdHkoKSB7IHJldHVybiB0aGlzLl9wcmlvcml0eTsgfQogCi0gICAgZ2V0
IGVuYWJsZWQoKQorICAgIGdldCBhdHRhY2hlZCgpCiAgICAgewogICAgICAgICByZXR1cm4gdGhp
cy5fZW5hYmxlZCAmJiB0aGlzLl9vd25lclN0eWxlICYmICghaXNOYU4odGhpcy5faW5kZXgpIHx8
IHRoaXMuX293bmVyU3R5bGUudHlwZSA9PT0gV0kuQ1NTU3R5bGVEZWNsYXJhdGlvbi5UeXBlLkNv
bXB1dGVkKTsKICAgICB9CiAKKyAgICAvLyBPbmx5IGNvbW1lbnRlZCBvdXQgcHJvcGVydGllcyBh
cmUgZGlzYWJsZWQuCisgICAgZ2V0IGVuYWJsZWQoKSB7IHJldHVybiB0aGlzLl9lbmFibGVkOyB9
CisKICAgICBnZXQgb3ZlcnJpZGRlbigpIHsgcmV0dXJuIHRoaXMuX292ZXJyaWRkZW47IH0KICAg
ICBzZXQgb3ZlcnJpZGRlbihvdmVycmlkZGVuKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NTdHlsZURlY2xhcmF0aW9uLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1N0eWxlRGVj
bGFyYXRpb24uanMKaW5kZXggOTYxNTExOS4uMTYxZTFkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1N0eWxlRGVjbGFyYXRpb24uanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1N0eWxl
RGVjbGFyYXRpb24uanMKQEAgLTk5LDcgKzk5LDkgQEAgV0kuQ1NTU3R5bGVEZWNsYXJhdGlvbiA9
IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb24gZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgdmFy
IG9sZFRleHQgPSB0aGlzLl90ZXh0OwogCiAgICAgICAgIHRoaXMuX3RleHQgPSB0ZXh0OwotICAg
ICAgICB0aGlzLl9wcm9wZXJ0aWVzID0gcHJvcGVydGllczsKKyAgICAgICAgdGhpcy5fcHJvcGVy
dGllcyA9IHByb3BlcnRpZXMuZmlsdGVyKChwcm9wZXJ0eSkgPT4gcHJvcGVydHkuZW5hYmxlZCk7
CisgICAgICAgIHRoaXMuX2FsbFByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzOworCiAgICAgICAgIHRo
aXMuX3N0eWxlU2hlZXRUZXh0UmFuZ2UgPSBzdHlsZVNoZWV0VGV4dFJhbmdlOwogICAgICAgICB0
aGlzLl9wcm9wZXJ0eU5hbWVNYXAgPSB7fTsKIApAQCAtMjE3LDYgKzIxOSw4IEBAIFdJLkNTU1N0
eWxlRGVjbGFyYXRpb24gPSBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uIGV4dGVuZHMgV0kuT2Jq
ZWN0CiAgICAgICAgIHJldHVybiB0aGlzLl9wcm9wZXJ0aWVzOwogICAgIH0KIAorICAgIGdldCBh
bGxQcm9wZXJ0aWVzKCkgeyByZXR1cm4gdGhpcy5fYWxsUHJvcGVydGllczsgfQorCiAgICAgZ2V0
IHZpc2libGVQcm9wZXJ0aWVzKCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl92aXNpYmxlUHJv
cGVydGllcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9ET01Ob2RlU3R5bGVzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL0RPTU5vZGVTdHlsZXMuanMKaW5kZXggNzFhY2UyZS4uMDk1MTg3YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTU5v
ZGVTdHlsZXMuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL0RPTU5vZGVTdHlsZXMuanMKQEAgLTkwMSw3ICs5MDEsNyBAQCBXSS5ET01Ob2RlU3R5bGVz
ID0gY2xhc3MgRE9NTm9kZVN0eWxlcyBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgICAgICAgICBm
b3IgKHZhciBqID0gMDsgaiA8IHByb3BlcnRpZXMubGVuZ3RoOyArK2opIHsKICAgICAgICAgICAg
ICAgICB2YXIgcHJvcGVydHkgPSBwcm9wZXJ0aWVzW2pdOwotICAgICAgICAgICAgICAgIGlmICgh
cHJvcGVydHkuZW5hYmxlZCB8fCAhcHJvcGVydHkudmFsaWQpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoIXByb3BlcnR5LmF0dGFjaGVkIHx8ICFwcm9wZXJ0eS52YWxpZCkgewogICAgICAgICAgICAg
ICAgICAgICBwcm9wZXJ0eS5vdmVycmlkZGVuID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25UZXh0RWRpdG9y
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVE
ZWNsYXJhdGlvblRleHRFZGl0b3IuanMKaW5kZXggN2QzMTU0Mi4uMzI1NjMxOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNs
YXJhdGlvblRleHRFZGl0b3IuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IuanMKQEAgLTE4OSw3ICsx
ODksNyBAQCBXSS5DU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvciA9IGNsYXNzIENTU1N0eWxl
RGVjbGFyYXRpb25UZXh0RWRpdG9yIGV4dGVuZHMgVwogICAgIHsKICAgICAgICAgZnVuY3Rpb24g
cHJvcGVydGllc01hdGNoKGNzc1Byb3BlcnR5KQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAo
Y3NzUHJvcGVydHkuZW5hYmxlZCAmJiAhY3NzUHJvcGVydHkub3ZlcnJpZGRlbikgeworICAgICAg
ICAgICAgaWYgKGNzc1Byb3BlcnR5LmF0dGFjaGVkICYmICFjc3NQcm9wZXJ0eS5vdmVycmlkZGVu
KSB7CiAgICAgICAgICAgICAgICAgaWYgKGNzc1Byb3BlcnR5LmNhbm9uaWNhbE5hbWUgPT09IHBy
b3BlcnR5LmNhbm9uaWNhbE5hbWUgfHwgaGFzTWF0Y2hpbmdMb25naGFuZFByb3BlcnR5KGNzc1By
b3BlcnR5KSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9
CkBAIC05ODksNyArOTg5LDcgQEAgV0kuQ1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IgPSBj
bGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uVGV4dEVkaXRvciBleHRlbmRzIFcKICAgICAgICAgaWYg
KCF0aGlzLl9jb2RlTWlycm9yLmdldE9wdGlvbigicmVhZE9ubHkiKSkgewogICAgICAgICAgICAg
Ly8gQ3JlYXRlIGEgbmV3IGNoZWNrYm94IGVsZW1lbnQgYW5kIG1hcmtlci4KIAotICAgICAgICAg
ICAgY29uc29sZS5hc3NlcnQocHJvcGVydHkuZW5hYmxlZCk7CisgICAgICAgICAgICBjb25zb2xl
LmFzc2VydChwcm9wZXJ0eS5hdHRhY2hlZCk7CiAKICAgICAgICAgICAgIHZhciBjaGVja2JveEVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwogICAgICAgICAgICAgY2hl
Y2tib3hFbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOwpAQCAtMTA0Nyw3ICsxMDQ3LDcgQEAgV0ku
Q1NTU3R5bGVEZWNsYXJhdGlvblRleHRFZGl0b3IgPSBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9u
VGV4dEVkaXRvciBleHRlbmRzIFcKICAgICAgICAgZWxzZSBpZiAoIXByb3BlcnR5LnZhbGlkICYm
ICghcHJvcGVydHlOYW1lSXNWYWxpZCB8fCBkdXBsaWNhdGVQcm9wZXJ0eUV4aXN0c0JlbG93LmNh
bGwodGhpcywgcHJvcGVydHkpKSkKICAgICAgICAgICAgIGNsYXNzTmFtZXMucHVzaCgiaW52YWxp
ZCIpOwogCi0gICAgICAgIGlmICghcHJvcGVydHkuZW5hYmxlZCkKKyAgICAgICAgaWYgKCFwcm9w
ZXJ0eS5hdHRhY2hlZCkKICAgICAgICAgICAgIGNsYXNzTmFtZXMucHVzaCgiZGlzYWJsZWQiKTsK
IAogICAgICAgICBpZiAocHJvcGVydHkuX19maWx0ZXJSZXN1bHRDbGFzc05hbWUgJiYgIXByb3Bl
cnR5Ll9fZmlsdGVyUmVzdWx0TmVlZGxlUG9zaXRpb24pCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>