<?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>203262</bug_id>
          
          <creation_ts>2019-10-22 12:25:29 -0700</creation_ts>
          <short_desc>Web Inspector: frontend tests should clear output before resending results</short_desc>
          <delta_ts>2019-10-23 12:10:16 -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>202704</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1582485</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-10-22 12:25:29 -0700</bug_when>
    <thetext>FrontendTestHarness._resendResults should clear output before re-adding results to the test output after navigation. Otherwise there is a race between TestPage.addResult commands that are sent after navigation started but before InspectorTest.testPageDidLoad is called again. Such in flight commands may be sent to the new page second time from _resendResults introducing flakiness to the tests that rely on navigation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582622</commentid>
    <comment_count>1</comment_count>
      <attachid>381619</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-10-22 15:25:28 -0700</bug_when>
    <thetext>Created attachment 381619
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582678</commentid>
    <comment_count>2</comment_count>
      <attachid>381637</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-10-22 17:30:17 -0700</bug_when>
    <thetext>Created attachment 381637
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582909</commentid>
    <comment_count>3</comment_count>
      <attachid>381637</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-23 11:25:31 -0700</bug_when>
    <thetext>Comment on attachment 381637
Patch

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

r=me, with some style comments

&gt; LayoutTests/http/tests/inspector/resources/inspector-test.js:180
&gt; +        return;
&gt; +    let output = this._resultElement;

Style: missing newline

&gt; LayoutTests/http/tests/inspector/resources/inspector-test.js:182
&gt; +    while (output.firstChild)
&gt; +        output.removeChild(output.firstChild);

NIT: we normally just use `output.textContent = &quot;&quot;;` to remove all children.

&gt; LayoutTests/inspector/debugger/breakpoint-action-eval.html:41
&gt; +    let reloadPromise = InspectorTest.awaitEvent(FrontendTestHarness.Event.TestPageDidLoad);

NIT: I&apos;d put this before the `InspectorTest.reloadPage` call, so that we&apos;re already listening for the event before we trigger anything on the backend

&gt; LayoutTests/inspector/debugger/breakpoint-action-eval.html:43
&gt; +    Promise.all([reloadPromise, breakpointPromise.promise])
&gt; +        .then(() =&gt; InspectorTest.evaluateInPage(&quot;runBreakpointActions()&quot;));

Style: we normally split this onto separate lines and don&apos;t indent the `.then(...)`:
```
    Promise.all([
        reloadPromise,
        breapointPromise.promise,
    ])
    .then(() =&gt; {
        InspectorTest.evaluateInPage(&quot;runBreakpointActions()&quot;);
    });
```

&gt; LayoutTests/inspector/debugger/breakpoint-action-log.html:53
&gt; +            let reloadPromise = InspectorTest.awaitEvent(FrontendTestHarness.Event.TestPageDidLoad);
&gt; +            Promise.all([reloadPromise, breakpointPromise.promise])
&gt; +                .then(() =&gt; InspectorTest.evaluateInPage(&quot;runBreakpointActions()&quot;))
&gt; +                .then(resolve);;

Ditto

&gt; LayoutTests/inspector/debugger/probe-manager-add-remove-actions.html:55
&gt; +    let reloadPromise = InspectorTest.awaitEvent(FrontendTestHarness.Event.TestPageDidLoad);
&gt; +    Promise.all([reloadPromise, breakpointPromise.promise])
&gt; +        .then(() =&gt; InspectorTest.evaluateInPage(&quot;breakpointActions(12, {x:1,y:2})&quot;));

Ditto

&gt; LayoutTests/inspector/debugger/probe-manager-add-remove-actions.html:56
&gt; +

Style: unnecessary newline</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582917</commentid>
    <comment_count>4</comment_count>
      <attachid>381637</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-10-23 11:38:42 -0700</bug_when>
    <thetext>Comment on attachment 381637
Patch

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

&gt;&gt; LayoutTests/http/tests/inspector/resources/inspector-test.js:180
&gt;&gt; +    let output = this._resultElement;
&gt; 
&gt; Style: missing newline

Done.

&gt;&gt; LayoutTests/http/tests/inspector/resources/inspector-test.js:182
&gt;&gt; +        output.removeChild(output.firstChild);
&gt; 
&gt; NIT: we normally just use `output.textContent = &quot;&quot;;` to remove all children.

Done. I was contemplating that, but then stackoverflow wisdom that iterating children and removing them one by one would be more performant convinced me otherwise :-)

&gt;&gt; LayoutTests/inspector/debugger/breakpoint-action-eval.html:41
&gt;&gt; +    let reloadPromise = InspectorTest.awaitEvent(FrontendTestHarness.Event.TestPageDidLoad);
&gt; 
&gt; NIT: I&apos;d put this before the `InspectorTest.reloadPage` call, so that we&apos;re already listening for the event before we trigger anything on the backend

Done.

&gt;&gt; LayoutTests/inspector/debugger/breakpoint-action-eval.html:43
&gt;&gt; +        .then(() =&gt; InspectorTest.evaluateInPage(&quot;runBreakpointActions()&quot;));
&gt; 
&gt; Style: we normally split this onto separate lines and don&apos;t indent the `.then(...)`:
&gt; ```
&gt;     Promise.all([
&gt;         reloadPromise,
&gt;         breapointPromise.promise,
&gt;     ])
&gt;     .then(() =&gt; {
&gt;         InspectorTest.evaluateInPage(&quot;runBreakpointActions()&quot;);
&gt;     });
&gt; ```

Done.

&gt;&gt; LayoutTests/inspector/debugger/breakpoint-action-log.html:53
&gt;&gt; +                .then(resolve);;
&gt; 
&gt; Ditto

Done.

&gt;&gt; LayoutTests/inspector/debugger/probe-manager-add-remove-actions.html:55
&gt;&gt; +        .then(() =&gt; InspectorTest.evaluateInPage(&quot;breakpointActions(12, {x:1,y:2})&quot;));
&gt; 
&gt; Ditto

Done.

&gt;&gt; LayoutTests/inspector/debugger/probe-manager-add-remove-actions.html:56
&gt;&gt; +
&gt; 
&gt; Style: unnecessary newline

Removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582918</commentid>
    <comment_count>5</comment_count>
      <attachid>381707</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-10-23 11:39:22 -0700</bug_when>
    <thetext>Created attachment 381707
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582935</commentid>
    <comment_count>6</comment_count>
      <attachid>381707</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-23 12:09:11 -0700</bug_when>
    <thetext>Comment on attachment 381707
Patch for landing

Clearing flags on attachment: 381707

Committed r251485: &lt;https://trac.webkit.org/changeset/251485&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582936</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-23 12:09:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582937</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-23 12:10:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/56548679&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381619</attachid>
            <date>2019-10-22 15:25:28 -0700</date>
            <delta_ts>2019-10-22 17:30:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203262-20191022152527.patch</filename>
            <type>text/plain</type>
            <size>9959</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA3
ZTVjMTkyMjQyMjFlYzBkZDBjZjUyZDU4NTNjNWNjODY2ZjllMmZiLi4yNDViNGE0YWNlZTU4MmYz
OGM1MWI3MWFjMjQ3MDNiZjY2YTEzOWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxOS0xMC0yMiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBmcm9udGVuZCB0ZXN0cyBzaG91bGQgY2xl
YXIgb3V0cHV0IGJlZm9yZSByZXNlbmRpbmcgcmVzdWx0cworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zcGVjdG9yIGZyb250LWVuZCB0ZXN0cyB3aWxs
IGNsZWFyIG91dHB1dCBsb2cgYmVmb3JlIHJlc2VuZGluZyB0ZXNldCByZXN1bHRzLiBUaGlzIGF2
b2lkcworICAgICAgICByYWNlIGJldHdlZW4gSW5zcGVjdG9yVGVzdC50ZXN0UGFnZURpZExvYWQg
ZXZlbnQgYW5kIFRlc3RQYWdlLmFkZFJlc3VsdCBjYWxscyB0aGF0IG1heSBoYXZlCisgICAgICAg
IGFscmVhZHkgYmUgc2VudCB0byB0aGUgbmV3IHBhZ2UgYWZ0ZXIgbmF2aWdhdGlvbi4gVGhlIGxh
dHRlciBldmVudHMgb3RoZXJ3aXNlIHdvdWxkIGJlIGFkZGVkCisgICAgICAgIHR3aWNlLgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9UZXN0L0Zyb250ZW5kVGVzdEhhcm5lc3MuanM6CisgICAg
ICAgIChGcm9udGVuZFRlc3RIYXJuZXNzLnByb3RvdHlwZS5fcmVzZW5kUmVzdWx0cyk6CisgICAg
ICAgIChGcm9udGVuZFRlc3RIYXJuZXNzKToKKwogMjAxOS0xMC0yMiAgRGV2aW4gUm91c3NvICA8
ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUkVHUkVTU0lPTjog
U291cmNlczogd2hlbiBlZGl0aW5nIHN0eWxlIHNoZWV0cywgdGhlIGNvbnRlbnQgaXMgc29tZXRp
bWVzIHN1ZGRlbmx5IHJlcGxhY2VkIHdpdGggdGhlIG9yaWdpbmFsIGNvbnRlbnQgb2YgdGhlIHJl
c291cmNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9U
ZXN0L0Zyb250ZW5kVGVzdEhhcm5lc3MuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9UZXN0L0Zyb250ZW5kVGVzdEhhcm5lc3MuanMKaW5kZXggMGU5ZjgwMTRmODMwZjM4
MGM1MmEzZjIxY2Q5OTQyMDU5NDJmNjM1My4uOTRmNzI1OWFiMWQwNmQ0MmRjNzg3OGI4OWViMDc0
ZDllZmI2OTVhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVGVzdC9Gcm9udGVuZFRlc3RIYXJuZXNzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1Rlc3QvRnJvbnRlbmRUZXN0SGFybmVzcy5qcwpAQCAtMzEyLDYgKzMx
Miw3IEBAIEZyb250ZW5kVGVzdEhhcm5lc3MgPSBjbGFzcyBGcm9udGVuZFRlc3RIYXJuZXNzIGV4
dGVuZHMgVGVzdEhhcm5lc3MKICAgICAgICAgaWYgKHRoaXMuZHVtcEFjdGl2aXR5VG9TeXN0ZW1D
b25zb2xlKQogICAgICAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LnVuYnVmZmVyZWRMb2co
Il9yZXNlbmRSZXN1bHRzKCkiKTsKIAorICAgICAgICB0aGlzLmV2YWx1YXRlSW5QYWdlKCJUZXN0
UGFnZS5jbGVhck91dHB1dCgpIik7CiAgICAgICAgIGZvciAobGV0IHJlc3VsdCBvZiB0aGlzLl9y
ZXN1bHRzKQogICAgICAgICAgICAgdGhpcy5ldmFsdWF0ZUluUGFnZShgVGVzdFBhZ2UuYWRkUmVz
dWx0KHVuZXNjYXBlKCIke2VzY2FwZShyZXN1bHQpfSIpKWApOwogICAgIH0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5ZmZi
NzNkOGUxYjI5MjBiN2Y0YTA5Y2ZlOTY4ZTBiNjNlZWU1OWJhLi5jNjE3ODhkZTYxNTY4OTE5YWFi
NmUyYjVkNzZjZmFjOGJmZDEzODAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTktMTAtMjIg
IFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogZnJvbnRlbmQgdGVzdHMgc2hvdWxkIGNsZWFyIG91dHB1dCBiZWZvcmUgcmVzZW5k
aW5nIHJlc3VsdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMzI2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVuZmxha2Ugc29tZSBvZiB0aGUgdGVzdHMgdGhhdCByZWxvYWQgaW5zcGVjdGVkIHBhZ2Uu
IFRoaXMgaXMgYWNoaWV2ZWQgYnkgd2FpdGluZyBmb3IKKyAgICAgICAgZXhwbGljaXQgVGVzdFBh
Z2VEaWRMb2FkIGV2ZW50LiBBdCB0aGF0IHBvaW50IGl0J3Mga25vd24gdGhhdCBhY2N1bXVsYXRl
ZCBzbyBmYXIgdGVzdAorICAgICAgICBvdXRwdXQgaGFzIGJlZW4gcmVzZW50IHRvIHRoZSBpbnNw
ZWN0ZWQgcGFnZSBhbmQgdGhlIGxvZyBsaW5lcyB3aWxsIG5vdCBjaGFuZ2UgdGhlaXIKKyAgICAg
ICAgb3JkZXIgLyBhcHBlYXIgdHdpY2UuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanM6CisgICAgICAgIChUZXN0UGFnZS5jbGVhck91
dHB1dCk6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWV2
YWwuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24t
bG9nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2lu
dC1hY3Rpb24tbG9nLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb2JlLW1h
bmFnZXItYWRkLXJlbW92ZS1hY3Rpb25zLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvcHJvYmUtbWFuYWdlci1hZGQtcmVtb3ZlLWFjdGlvbnMuaHRtbDoKKwogMjAx
OS0xMC0yMiAgUnVzc2VsbCBFcHN0ZWluICA8cmVwc3RlaW5AYXBwbGUuY29tPgogCiAgICAgICAg
IExheW91dCBUZXN0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS5odHRwcy5odG1sIGlzIGEgZmxha3kgZmFp
bHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2VzL2luc3BlY3Rvci10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
cmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzCmluZGV4IDU5NjUxMjA1Njc4YjM3ODgwOGQyNzM4
MjQwNWI5M2E4NjQ5YzVmMzQuLjA5M2UzYjdiYzlmOGI4YzM1YjZmZTY0ZTczOTcyNTU5ZWY0Mzhk
YjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNl
cy9pbnNwZWN0b3ItdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMKQEAgLTE3Myw2ICsxNzMsMTUgQEAgVGVzdFBh
Z2UuYWRkUmVzdWx0ID0gZnVuY3Rpb24odGV4dCkKIAogVGVzdFBhZ2UubG9nID0gVGVzdFBhZ2Uu
YWRkUmVzdWx0OwogCitUZXN0UGFnZS5jbGVhck91dHB1dCA9IGZ1bmN0aW9uKCkKK3sKKyAgICBp
ZiAoIXRoaXMuX3Jlc3VsdEVsZW1lbnQpCisgICAgICAgIHJldHVybjsKKyAgICBsZXQgb3V0cHV0
ID0gdGhpcy5fcmVzdWx0RWxlbWVudDsKKyAgICB3aGlsZSAob3V0cHV0LmZpcnN0Q2hpbGQpCisg
ICAgICAgIG91dHB1dC5yZW1vdmVDaGlsZChvdXRwdXQuZmlyc3RDaGlsZCk7Cit9CisKIFRlc3RQ
YWdlLmRpc3BhdGNoRXZlbnRUb0Zyb250ZW5kID0gZnVuY3Rpb24oZXZlbnROYW1lLCBkYXRhKQog
ewogICAgIGxldCBkaXNwYXRjaEV2ZW50Q29kZVN0cmluZyA9IGBJbnNwZWN0b3JUZXN0LmRpc3Bh
dGNoRXZlbnRUb0xpc3RlbmVycygke0pTT04uc3RyaW5naWZ5KGV2ZW50TmFtZSl9LCAke0pTT04u
c3RyaW5naWZ5KGRhdGEpfSk7YDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1ldmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZXZhbC5odG1sCmluZGV4IDdhNjA1YzgxNDQx
YjY5ZTY4N2U5NzE4ODc0OTc5MTIxMmE3YjY5N2MuLjU5ZmQ2OGQxYjc5YTFiNjNkZWM1NDg4Mjc1
MWJkZjlkNTliNjAzNzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9icmVha3BvaW50LWFjdGlvbi1ldmFsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWV2YWwuaHRtbApAQCAtMTksNiArMTksNyBAQCBm
dW5jdGlvbiBhY3Rpb24oYSwgYikKIAogZnVuY3Rpb24gdGVzdCgpCiB7CisgICAgbGV0IGJyZWFr
cG9pbnRQcm9taXNlID0gbmV3IFdJLldyYXBwZWRQcm9taXNlOwogICAgIFdJLmRlYnVnZ2VyTWFu
YWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5TY3JpcHRBZGRl
ZCwgZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgdmFyIHNjcmlwdE9iamVjdCA9IGV2ZW50LmRh
dGEuc2NyaXB0OwogCkBAIC0zMywxMCArMzQsMTQgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAg
ICAgV0kuZGVidWdnZXJNYW5hZ2VyLmFkZEJyZWFrcG9pbnQoYnJlYWtwb2ludCk7CiAKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgicnVuQnJlYWtwb2ludEFjdGlvbnMoKSIp
OworICAgICAgICBicmVha3BvaW50UHJvbWlzZS5yZXNvbHZlKCkKICAgICB9KTsKIAogICAgIElu
c3BlY3RvclRlc3QucmVsb2FkUGFnZSgpOworICAgIGxldCByZWxvYWRQcm9taXNlID0gSW5zcGVj
dG9yVGVzdC5hd2FpdEV2ZW50KEZyb250ZW5kVGVzdEhhcm5lc3MuRXZlbnQuVGVzdFBhZ2VEaWRM
b2FkKTsKKyAgICBQcm9taXNlLmFsbChbcmVsb2FkUHJvbWlzZSwgYnJlYWtwb2ludFByb21pc2Uu
cHJvbWlzZV0pCisgICAgICAgIC50aGVuKCgpID0+IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBh
Z2UoInJ1bkJyZWFrcG9pbnRBY3Rpb25zKCkiKSk7CisKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0
aW9uLWxvZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJl
YWtwb2ludC1hY3Rpb24tbG9nLWV4cGVjdGVkLnR4dAppbmRleCA2MTE0NGRjMTU5OGJjNTRhNjQ1
YTU5Njc1MGQwOTEzNDllNzliODMzLi5lZWNmYzdkMjA3YTY1MTE3NzA2MDE5YWYxM2NlYzNmODlk
MGIxNWUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtw
b2ludC1hY3Rpb24tbG9nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tbG9nLWV4cGVjdGVkLnR4dApAQCAtMTAsOCArMTAs
OCBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogY2xvc2UgY3VybHkgYnJhY2UgaW4gUmVnRXhw
OiB0cnVlCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogNDIgYW5kIHsieCI6MSwieSI6Mn0KIFRl
c3RpbmcgdGhhdCAiTG9nIiBicmVha3BvaW50IGFjdGlvbnMgd29yayBjb3JyZWN0bHkuCiAKLWlu
c2lkZSBicmVha3BvaW50QWN0aW9ucyBhOig0MikgYjooW29iamVjdCBPYmplY3RdKQogCiA9PSBS
dW5uaW5nIHRlc3Qgc3VpdGU6IERlYnVnZ2VyLkJyZWFrcG9pbnRBY3Rpb24uTG9nCiAtLSBSdW5u
aW5nIHRlc3QgY2FzZTogVGVtcGxhdGVMaXRlcmFsUGxhY2Vob2xkZXJzCitpbnNpZGUgYnJlYWtw
b2ludEFjdGlvbnMgYTooNDIpIGI6KFtvYmplY3QgT2JqZWN0XSkKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWxvZy5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWxvZy5odG1s
CmluZGV4IDIwZWVlMzkxODAyYWJkNjE5YTgzOGFlZDdkYjFjY2E4ZDg5NDkyNWUuLjdiZjVmNDEy
NjU2YzNkZDA2MDkyNDhmYTRkOWY2NGJlYjUxMGJlNjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1sb2cuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tbG9nLmh0bWwKQEAg
LTE3LDYgKzE3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIG5hbWU6ICJUZW1wbGF0ZUxp
dGVyYWxQbGFjZWhvbGRlcnMiLAogICAgICAgICBkZXNjcmlwdGlvbjogIkV2YWx1YXRlIGJyZWFr
cG9pbnQgd2l0aCBsb2dnaW5nIGFjdGlvbnMgdGhhdCBpbmNsdWRlIHBsYWNlaG9sZGVycy4iLAog
ICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgbGV0IGJyZWFrcG9p
bnRQcm9taXNlID0gbmV3IFdJLldyYXBwZWRQcm9taXNlOwogICAgICAgICAgICAgV0kuZGVidWdn
ZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlNjcmlw
dEFkZGVkLCAoZXZlbnQpID0+IHsKICAgICAgICAgICAgICAgICBsZXQgc2NyaXB0T2JqZWN0ID0g
ZXZlbnQuZGF0YS5zY3JpcHQ7CiAgICAgICAgICAgICAgICAgaWYgKCEvc2NyaXB0XC1mb3JcLWJy
ZWFrcG9pbnRcLWFjdGlvbnNcLmpzJC8udGVzdChzY3JpcHRPYmplY3QudXJsKSkKQEAgLTQyLDEx
ICs0MywxNCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgICAgICBhZGRMb2dBY3Rpb24o
IiR7YX0gYW5kICR7SlNPTi5zdHJpbmdpZnkoYil9Iik7CiAKICAgICAgICAgICAgICAgICBXSS5k
ZWJ1Z2dlck1hbmFnZXIuYWRkQnJlYWtwb2ludChicmVha3BvaW50KTsKLQotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInJ1bkJyZWFrcG9pbnRBY3Rpb25zKCki
LCByZXNvbHZlKTsKKyAgICAgICAgICAgICAgICBicmVha3BvaW50UHJvbWlzZS5yZXNvbHZlKCk7
CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdl
KCk7CisgICAgICAgICAgICBsZXQgcmVsb2FkUHJvbWlzZSA9IEluc3BlY3RvclRlc3QuYXdhaXRF
dmVudChGcm9udGVuZFRlc3RIYXJuZXNzLkV2ZW50LlRlc3RQYWdlRGlkTG9hZCk7CisgICAgICAg
ICAgICBQcm9taXNlLmFsbChbcmVsb2FkUHJvbWlzZSwgYnJlYWtwb2ludFByb21pc2UucHJvbWlz
ZV0pCisgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUlu
UGFnZSgicnVuQnJlYWtwb2ludEFjdGlvbnMoKSIpKQorICAgICAgICAgICAgICAgIC50aGVuKHJl
c29sdmUpOzsKICAgICAgICAgfQogICAgIH0pOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvcHJvYmUtbWFuYWdlci1hZGQtcmVtb3ZlLWFjdGlvbnMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb2JlLW1hbmFnZXItYWRk
LXJlbW92ZS1hY3Rpb25zLWV4cGVjdGVkLnR4dAppbmRleCBhYTBkZjUzYjI0NjVlNzM2YmRmOTI1
NmI3NDE3Yzg2NTQ2ZTAyNDMyLi4wMzRhNDU3ZThkOGUyMjE0ZjQwZmE5Y2ZiY2IyZDRiNzljODIx
NTBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcHJvYmUtbWFu
YWdlci1hZGQtcmVtb3ZlLWFjdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9wcm9iZS1tYW5hZ2VyLWFkZC1yZW1vdmUtYWN0aW9ucy1leHBlY3Rl
ZC50eHQKQEAgLTEsNiArMSw1IEBACiBUZXN0aW5nIHRoYXQgdGhlIHByb2JlIG1hbmFnZXIgcHJv
cGVybHkgaGFuZGxlcyBhZGRpdGlvbiBhbmQgcmVtb3ZhbCBvZiByZWxhdGVkIHByb2Jlcy4KIAot
aW5zaWRlIGJyZWFrcG9pbnRBY3Rpb25zIGE6KDEyKSBiOihbb2JqZWN0IE9iamVjdF0pCiBCcmVh
a3BvaW50IGF1dG9jb250aW51ZSBzdGF0ZSBjaGFuZ2VkOiB0cnVlCiBQcm9iZSBzZXQgd2FzIGFk
ZGVkLiBOZXcgY291bnQ6IDEKIFByb2JlIHdpdGggaWRlbnRpZmllciAxIHdhcyBhZGRlZCB0byBw
cm9iZSBzZXQuCkBAIC0xMiw2ICsxMSw3IEBAIEJyZWFrcG9pbnQgYWN0aW9ucyBjaGFuZ2VkLiBO
ZXcgY291bnQ6IDIKIEJyZWFrcG9pbnQgd2FzIGFkZGVkLgogUEFTUzogQnJlYWtwb2ludCBzaG91
bGQgYmUgcmVzb2x2ZWQuCiBCcmVha3BvaW50IHJlc29sdmVkIHN0YXRlIGNoYW5nZWQ6IHRydWUK
K2luc2lkZSBicmVha3BvaW50QWN0aW9ucyBhOigxMikgYjooW29iamVjdCBPYmplY3RdKQogUHJv
YmUgd2l0aCBpZGVudGlmaWVyIDEgYWRkZWQgc2FtcGxlOiBbb2JqZWN0IE9iamVjdF0KIEhpdCB0
ZXN0IGNoZWNrcG9pbnQgZXZlbnQgIzAgd2l0aCB0eXBlOiBwcm9iZS1vYmplY3Qtc2FtcGxlLWFk
ZGVkCiBQcm9iZSB3aXRoIGlkZW50aWZpZXIgMiBhZGRlZCBzYW1wbGU6IFtvYmplY3QgT2JqZWN0
XQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb2JlLW1hbmFn
ZXItYWRkLXJlbW92ZS1hY3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvcHJvYmUtbWFuYWdlci1hZGQtcmVtb3ZlLWFjdGlvbnMuaHRtbAppbmRleCBiMzY4MmUyMzEw
NTExMzhhMTkzZDNjNzQxZDAwM2UwZTdlYWFmMjBiLi5lNzA4NTkxODVmZWI0M2FjNTljMjgyMzk0
NjU1ZjRkZWU5ODAwM2JlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvcHJvYmUtbWFuYWdlci1hZGQtcmVtb3ZlLWFjdGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvcHJvYmUtbWFuYWdlci1hZGQtcmVtb3ZlLWFjdGlvbnMuaHRt
bApAQCAtNyw2ICs3LDcgQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiB0ZXN0KCkKIHsKKyAgICBsZXQg
YnJlYWtwb2ludFByb21pc2UgPSBuZXcgV0kuV3JhcHBlZFByb21pc2U7CiAgICAgV0kuRnJhbWUu
YWRkRXZlbnRMaXN0ZW5lcihXSS5GcmFtZS5FdmVudC5NYWluUmVzb3VyY2VEaWRDaGFuZ2UsIGZ1
bmN0aW9uKCkgewogICAgICAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0VHJhY2luZ0JyZWFrcG9pbnRz
KCk7CiAgICAgICAgIEluc3BlY3RvclRlc3Quc3RhcnRUcmFjaW5nUHJvYmVzKCk7CkBAIC00NCwx
MSArNDUsMTUgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICB9KTsKIAogCi0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJicmVha3BvaW50QWN0aW9ucygxMiwg
e3g6MSx5OjJ9KSIpOworICAgICAgICAgICAgYnJlYWtwb2ludFByb21pc2UucmVzb2x2ZSgpOwog
ICAgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7
CisgICAgbGV0IHJlbG9hZFByb21pc2UgPSBJbnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQoRnJvbnRl
bmRUZXN0SGFybmVzcy5FdmVudC5UZXN0UGFnZURpZExvYWQpOworICAgIFByb21pc2UuYWxsKFty
ZWxvYWRQcm9taXNlLCBicmVha3BvaW50UHJvbWlzZS5wcm9taXNlXSkKKyAgICAgICAgLnRoZW4o
KCkgPT4gSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiYnJlYWtwb2ludEFjdGlvbnMoMTIs
IHt4OjEseToyfSkiKSk7CisKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381637</attachid>
            <date>2019-10-22 17:30:17 -0700</date>
            <delta_ts>2019-10-23 11:39:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203262-20191022173017.patch</filename>
            <type>text/plain</type>
            <size>12782</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA3
ZTVjMTkyMjQyMjFlYzBkZDBjZjUyZDU4NTNjNWNjODY2ZjllMmZiLi5hOWE2NTYwMDg1NzkyYzNl
Y2Y1NDFhMDk3Yzk0NjEzY2FlNmIwMmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAxOS0xMC0yMiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBmcm9udGVuZCB0ZXN0cyBzaG91bGQgY2xl
YXIgb3V0cHV0IGJlZm9yZSByZXNlbmRpbmcgcmVzdWx0cworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zcGVjdG9yIGZyb250LWVuZCB0ZXN0cyB3aWxs
IGNsZWFyIG91dHB1dCBsb2cgYmVmb3JlIHJlc2VuZGluZyB0ZXNldCByZXN1bHRzLiBUaGlzIGF2
b2lkcworICAgICAgICByYWNlIGJldHdlZW4gSW5zcGVjdG9yVGVzdC50ZXN0UGFnZURpZExvYWQg
ZXZlbnQgYW5kIFRlc3RQYWdlLmFkZFJlc3VsdCBjYWxscyB0aGF0IG1heSBoYXZlCisgICAgICAg
IGFscmVhZHkgYmUgc2VudCB0byB0aGUgbmV3IHBhZ2UgYWZ0ZXIgbmF2aWdhdGlvbi4gVGhlIGxh
dHRlciBldmVudHMgb3RoZXJ3aXNlIHdvdWxkIGJlIGFkZGVkCisgICAgICAgIHR3aWNlLgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9UZXN0L0Zyb250ZW5kVGVzdEhhcm5lc3MuanM6CisgICAg
ICAgIChGcm9udGVuZFRlc3RIYXJuZXNzKToKKyAgICAgICAgKEZyb250ZW5kVGVzdEhhcm5lc3Mu
cHJvdG90eXBlLnRlc3RQYWdlRGlkTG9hZCk6CisgICAgICAgIChGcm9udGVuZFRlc3RIYXJuZXNz
LnByb3RvdHlwZS5yZWxvYWRQYWdlKToKKyAgICAgICAgKEZyb250ZW5kVGVzdEhhcm5lc3MucHJv
dG90eXBlLnJlcG9ydFVuaGFuZGxlZFJlamVjdGlvbik6CisgICAgICAgIChGcm9udGVuZFRlc3RI
YXJuZXNzLnByb3RvdHlwZS5yZXBvcnRVbmNhdWdodEV4Y2VwdGlvbik6CisgICAgICAgIChGcm9u
dGVuZFRlc3RIYXJuZXNzLnByb3RvdHlwZS5fcmVzZW5kUmVzdWx0cyk6IERvbid0IHJlc2VuZCB0
aGUgcmVzdWx0cyB3aGVuIHRoZSBwYWdlIGlzIGxvYWRlZAorICAgICAgICBmaXJzdCB0aW1lLgor
CiAyMDE5LTEwLTIyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBSRUdSRVNTSU9OOiBTb3VyY2VzOiB3aGVuIGVkaXRpbmcgc3R5bGUg
c2hlZXRzLCB0aGUgY29udGVudCBpcyBzb21ldGltZXMgc3VkZGVubHkgcmVwbGFjZWQgd2l0aCB0
aGUgb3JpZ2luYWwgY29udGVudCBvZiB0aGUgcmVzb3VyY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvRnJvbnRlbmRUZXN0SGFybmVzcy5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvRnJvbnRlbmRUZXN0SGFy
bmVzcy5qcwppbmRleCAwZTlmODAxNGY4MzBmMzgwYzUyYTNmMjFjZDk5NDIwNTk0MmY2MzUzLi4z
YWNjMzMwNzBmYjdmNWNlNDdmZTA0OGQyNGM2YjEwOTc5MjgxMTRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L0Zyb250ZW5kVGVzdEhhcm5lc3Mu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9Gcm9udGVu
ZFRlc3RIYXJuZXNzLmpzCkBAIC0zMCw3ICszMCw3IEBAIEZyb250ZW5kVGVzdEhhcm5lc3MgPSBj
bGFzcyBGcm9udGVuZFRlc3RIYXJuZXNzIGV4dGVuZHMgVGVzdEhhcm5lc3MKICAgICAgICAgc3Vw
ZXIoKTsKIAogICAgICAgICB0aGlzLl9yZXN1bHRzID0gW107Ci0gICAgICAgIHRoaXMuX3Nob3Vs
ZFJlc2VuZFJlc3VsdHMgPSB0cnVlOworICAgICAgICB0aGlzLl90ZXN0UGFnZUhhc0xvYWRlZCA9
IGZhbHNlOwogCiAgICAgICAgIC8vIE9wdGlvbnMgdGhhdCBhcmUgc2V0IHBlci10ZXN0IGZvciBk
ZWJ1Z2dpbmcgcHVycG9zZXMuCiAgICAgICAgIHRoaXMuZHVtcEFjdGl2aXR5VG9TeXN0ZW1Db25z
b2xlID0gZmFsc2U7CkBAIC0xMzMsNyArMTMzLDEwIEBAIEZyb250ZW5kVGVzdEhhcm5lc3MgPSBj
bGFzcyBGcm9udGVuZFRlc3RIYXJuZXNzIGV4dGVuZHMgVGVzdEhhcm5lc3MKICAgICAgICAgICAg
IEluc3BlY3RvckZyb250ZW5kSG9zdC51bmJ1ZmZlcmVkTG9nKCJ0ZXN0UGFnZURpZExvYWQoKSIp
OwogCiAgICAgICAgIHRoaXMuX3Rlc3RQYWdlSXNSZWxvYWRpbmcgPSBmYWxzZTsKLSAgICAgICAg
dGhpcy5fcmVzZW5kUmVzdWx0cygpOworICAgICAgICBpZiAodGhpcy5fdGVzdFBhZ2VIYXNMb2Fk
ZWQpCisgICAgICAgICAgICB0aGlzLl9yZXNlbmRSZXN1bHRzKCk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIHRoaXMuX3Rlc3RQYWdlSGFzTG9hZGVkID0gdHJ1ZTsKIAogICAgICAgICB0aGlz
LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhGcm9udGVuZFRlc3RIYXJuZXNzLkV2ZW50LlRlc3RQ
YWdlRGlkTG9hZCk7CiAKQEAgLTE1NSw3ICsxNTgsNiBAQCBGcm9udGVuZFRlc3RIYXJuZXNzID0g
Y2xhc3MgRnJvbnRlbmRUZXN0SGFybmVzcyBleHRlbmRzIFRlc3RIYXJuZXNzCiAgICAgICAgIGxl
dCB0YXJnZXQgPSBXSS5hc3N1bWluZ01haW5UYXJnZXQoKTsKICAgICAgICAgcmV0dXJuIHRhcmdl
dC5QYWdlQWdlbnQucmVsb2FkLmludm9rZSh7aWdub3JlQ2FjaGUsIHJldmFsaWRhdGVBbGxSZXNv
dXJjZXN9KQogICAgICAgICAgICAgLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIHRoaXMu
X3Nob3VsZFJlc2VuZFJlc3VsdHMgPSB0cnVlOwogICAgICAgICAgICAgICAgIHRoaXMuX3Rlc3RQ
YWdlUmVsb2FkZWRPbmNlID0gdHJ1ZTsKIAogICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNl
LnJlc29sdmUobnVsbCk7CkBAIC0yNTIsNyArMjU0LDcgQEAgRnJvbnRlbmRUZXN0SGFybmVzcyA9
IGNsYXNzIEZyb250ZW5kVGVzdEhhcm5lc3MgZXh0ZW5kcyBUZXN0SGFybmVzcwogCiAgICAgICAg
IC8vIElmIHRoZSBjb25uZWN0aW9uIHRvIHRoZSB0ZXN0IHBhZ2UgaXMgbm90IHNldCB1cCwgdGhl
biBqdXN0IGR1bXAgdG8gY29uc29sZSBhbmQgZ2l2ZSB1cC4KICAgICAgICAgLy8gRXJyb3JzIGVu
Y291bnRlcmVkIHRoaXMgZWFybHkgY2FuIGJlIGRlYnVnZ2VkIGJ5IGxvYWRpbmcgVGVzdC5odG1s
IGluIGEgbm9ybWFsIGJyb3dzZXIgcGFnZS4KLSAgICAgICAgaWYgKHRoaXMuX29yaWdpbmFsQ29u
c29sZSAmJiAhdGhpcy5fdGVzdFBhZ2VIYXNMb2FkZWQoKSkKKyAgICAgICAgaWYgKHRoaXMuX29y
aWdpbmFsQ29uc29sZSAmJiAhdGhpcy5fdGVzdFBhZ2VIYXNMb2FkZWQpCiAgICAgICAgICAgICB0
aGlzLl9vcmlnaW5hbENvbnNvbGVbImVycm9yIl0ocmVzdWx0KTsKIAogICAgICAgICB0aGlzLmFk
ZFJlc3VsdChyZXN1bHQpOwpAQCAtMjg4LDcgKzI5MCw3IEBAIEZyb250ZW5kVGVzdEhhcm5lc3Mg
PSBjbGFzcyBGcm9udGVuZFRlc3RIYXJuZXNzIGV4dGVuZHMgVGVzdEhhcm5lc3MKIAogICAgICAg
ICAvLyBJZiB0aGUgY29ubmVjdGlvbiB0byB0aGUgdGVzdCBwYWdlIGlzIG5vdCBzZXQgdXAsIHRo
ZW4ganVzdCBkdW1wIHRvIGNvbnNvbGUgYW5kIGdpdmUgdXAuCiAgICAgICAgIC8vIEVycm9ycyBl
bmNvdW50ZXJlZCB0aGlzIGVhcmx5IGNhbiBiZSBkZWJ1Z2dlZCBieSBsb2FkaW5nIFRlc3QuaHRt
bCBpbiBhIG5vcm1hbCBicm93c2VyIHBhZ2UuCi0gICAgICAgIGlmICh0aGlzLl9vcmlnaW5hbENv
bnNvbGUgJiYgIXRoaXMuX3Rlc3RQYWdlSGFzTG9hZGVkKCkpCisgICAgICAgIGlmICh0aGlzLl9v
cmlnaW5hbENvbnNvbGUgJiYgIXRoaXMuX3Rlc3RQYWdlSGFzTG9hZGVkKQogICAgICAgICAgICAg
dGhpcy5fb3JpZ2luYWxDb25zb2xlWyJlcnJvciJdKHJlc3VsdCk7CiAKICAgICAgICAgdGhpcy5h
ZGRSZXN1bHQocmVzdWx0KTsKQEAgLTI5OSwxOSArMzAxLDE0IEBAIEZyb250ZW5kVGVzdEhhcm5l
c3MgPSBjbGFzcyBGcm9udGVuZFRlc3RIYXJuZXNzIGV4dGVuZHMgVGVzdEhhcm5lc3MKIAogICAg
IC8vIFByaXZhdGUKIAotICAgIF90ZXN0UGFnZUhhc0xvYWRlZCgpCi0gICAgewotICAgICAgICBy
ZXR1cm4gc2VsZi5fc2hvdWxkUmVzZW5kUmVzdWx0czsKLSAgICB9Ci0KICAgICBfcmVzZW5kUmVz
dWx0cygpCiAgICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9zaG91bGRSZXNlbmRS
ZXN1bHRzKTsKLSAgICAgICAgdGhpcy5fc2hvdWxkUmVzZW5kUmVzdWx0cyA9IGZhbHNlOworICAg
ICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl90ZXN0UGFnZUhhc0xvYWRlZCk7CiAKICAgICAgICAg
aWYgKHRoaXMuZHVtcEFjdGl2aXR5VG9TeXN0ZW1Db25zb2xlKQogICAgICAgICAgICAgSW5zcGVj
dG9yRnJvbnRlbmRIb3N0LnVuYnVmZmVyZWRMb2coIl9yZXNlbmRSZXN1bHRzKCkiKTsKIAorICAg
ICAgICB0aGlzLmV2YWx1YXRlSW5QYWdlKCJUZXN0UGFnZS5jbGVhck91dHB1dCgpIik7CiAgICAg
ICAgIGZvciAobGV0IHJlc3VsdCBvZiB0aGlzLl9yZXN1bHRzKQogICAgICAgICAgICAgdGhpcy5l
dmFsdWF0ZUluUGFnZShgVGVzdFBhZ2UuYWRkUmVzdWx0KHVuZXNjYXBlKCIke2VzY2FwZShyZXN1
bHQpfSIpKWApOwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5ZmZiNzNkOGUxYjI5MjBiN2Y0YTA5Y2ZlOTY4ZTBi
NjNlZWU1OWJhLi5jNjE3ODhkZTYxNTY4OTE5YWFiNmUyYjVkNzZjZmFjOGJmZDEzODAwIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjMgQEAKKzIwMTktMTAtMjIgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0Bj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZnJvbnRlbmQgdGVzdHMgc2hv
dWxkIGNsZWFyIG91dHB1dCBiZWZvcmUgcmVzZW5kaW5nIHJlc3VsdHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzI2MgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuZmxha2Ugc29tZSBvZiB0aGUgdGVz
dHMgdGhhdCByZWxvYWQgaW5zcGVjdGVkIHBhZ2UuIFRoaXMgaXMgYWNoaWV2ZWQgYnkgd2FpdGlu
ZyBmb3IKKyAgICAgICAgZXhwbGljaXQgVGVzdFBhZ2VEaWRMb2FkIGV2ZW50LiBBdCB0aGF0IHBv
aW50IGl0J3Mga25vd24gdGhhdCBhY2N1bXVsYXRlZCBzbyBmYXIgdGVzdAorICAgICAgICBvdXRw
dXQgaGFzIGJlZW4gcmVzZW50IHRvIHRoZSBpbnNwZWN0ZWQgcGFnZSBhbmQgdGhlIGxvZyBsaW5l
cyB3aWxsIG5vdCBjaGFuZ2UgdGhlaXIKKyAgICAgICAgb3JkZXIgLyBhcHBlYXIgdHdpY2UuCisK
KyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3Qu
anM6CisgICAgICAgIChUZXN0UGFnZS5jbGVhck91dHB1dCk6CisgICAgICAgICogaW5zcGVjdG9y
L2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWV2YWwuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tbG9nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tbG9nLmh0bWw6CisgICAgICAg
ICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb2JlLW1hbmFnZXItYWRkLXJlbW92ZS1hY3Rpb25zLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvcHJvYmUtbWFuYWdlci1h
ZGQtcmVtb3ZlLWFjdGlvbnMuaHRtbDoKKwogMjAxOS0xMC0yMiAgUnVzc2VsbCBFcHN0ZWluICA8
cmVwc3RlaW5AYXBwbGUuY29tPgogCiAgICAgICAgIExheW91dCBUZXN0IGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25T
dGF0ZS5odHRwcy5odG1sIGlzIGEgZmxha3kgZmFpbHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0Lmpz
CmluZGV4IDU5NjUxMjA1Njc4YjM3ODgwOGQyNzM4MjQwNWI5M2E4NjQ5YzVmMzQuLjA5M2UzYjdi
YzlmOGI4YzM1YjZmZTY0ZTczOTcyNTU5ZWY0MzhkYjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcworKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3Qu
anMKQEAgLTE3Myw2ICsxNzMsMTUgQEAgVGVzdFBhZ2UuYWRkUmVzdWx0ID0gZnVuY3Rpb24odGV4
dCkKIAogVGVzdFBhZ2UubG9nID0gVGVzdFBhZ2UuYWRkUmVzdWx0OwogCitUZXN0UGFnZS5jbGVh
ck91dHB1dCA9IGZ1bmN0aW9uKCkKK3sKKyAgICBpZiAoIXRoaXMuX3Jlc3VsdEVsZW1lbnQpCisg
ICAgICAgIHJldHVybjsKKyAgICBsZXQgb3V0cHV0ID0gdGhpcy5fcmVzdWx0RWxlbWVudDsKKyAg
ICB3aGlsZSAob3V0cHV0LmZpcnN0Q2hpbGQpCisgICAgICAgIG91dHB1dC5yZW1vdmVDaGlsZChv
dXRwdXQuZmlyc3RDaGlsZCk7Cit9CisKIFRlc3RQYWdlLmRpc3BhdGNoRXZlbnRUb0Zyb250ZW5k
ID0gZnVuY3Rpb24oZXZlbnROYW1lLCBkYXRhKQogewogICAgIGxldCBkaXNwYXRjaEV2ZW50Q29k
ZVN0cmluZyA9IGBJbnNwZWN0b3JUZXN0LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycygke0pTT04u
c3RyaW5naWZ5KGV2ZW50TmFtZSl9LCAke0pTT04uc3RyaW5naWZ5KGRhdGEpfSk7YDsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1l
dmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rp
b24tZXZhbC5odG1sCmluZGV4IDdhNjA1YzgxNDQxYjY5ZTY4N2U5NzE4ODc0OTc5MTIxMmE3YjY5
N2MuLjU5ZmQ2OGQxYjc5YTFiNjNkZWM1NDg4Mjc1MWJkZjlkNTliNjAzNzMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1ldmFsLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9u
LWV2YWwuaHRtbApAQCAtMTksNiArMTksNyBAQCBmdW5jdGlvbiBhY3Rpb24oYSwgYikKIAogZnVu
Y3Rpb24gdGVzdCgpCiB7CisgICAgbGV0IGJyZWFrcG9pbnRQcm9taXNlID0gbmV3IFdJLldyYXBw
ZWRQcm9taXNlOwogICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkRl
YnVnZ2VyTWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKICAgICAg
ICAgdmFyIHNjcmlwdE9iamVjdCA9IGV2ZW50LmRhdGEuc2NyaXB0OwogCkBAIC0zMywxMCArMzQs
MTQgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLmFkZEJy
ZWFrcG9pbnQoYnJlYWtwb2ludCk7CiAKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUlu
UGFnZSgicnVuQnJlYWtwb2ludEFjdGlvbnMoKSIpOworICAgICAgICBicmVha3BvaW50UHJvbWlz
ZS5yZXNvbHZlKCkKICAgICB9KTsKIAogICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSgpOwor
ICAgIGxldCByZWxvYWRQcm9taXNlID0gSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KEZyb250ZW5k
VGVzdEhhcm5lc3MuRXZlbnQuVGVzdFBhZ2VEaWRMb2FkKTsKKyAgICBQcm9taXNlLmFsbChbcmVs
b2FkUHJvbWlzZSwgYnJlYWtwb2ludFByb21pc2UucHJvbWlzZV0pCisgICAgICAgIC50aGVuKCgp
ID0+IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInJ1bkJyZWFrcG9pbnRBY3Rpb25zKCki
KSk7CisKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWxvZy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tbG9nLWV4cGVjdGVk
LnR4dAppbmRleCA2MTE0NGRjMTU5OGJjNTRhNjQ1YTU5Njc1MGQwOTEzNDllNzliODMzLi5lZWNm
YzdkMjA3YTY1MTE3NzA2MDE5YWYxM2NlYzNmODlkMGIxNWUzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tbG9nLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24t
bG9nLWV4cGVjdGVkLnR4dApAQCAtMTAsOCArMTAsOCBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTogY2xvc2UgY3VybHkgYnJhY2UgaW4gUmVnRXhwOiB0cnVlCiBDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTogNDIgYW5kIHsieCI6MSwieSI6Mn0KIFRlc3RpbmcgdGhhdCAiTG9nIiBicmVha3BvaW50
IGFjdGlvbnMgd29yayBjb3JyZWN0bHkuCiAKLWluc2lkZSBicmVha3BvaW50QWN0aW9ucyBhOig0
MikgYjooW29iamVjdCBPYmplY3RdKQogCiA9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IERlYnVnZ2Vy
LkJyZWFrcG9pbnRBY3Rpb24uTG9nCiAtLSBSdW5uaW5nIHRlc3QgY2FzZTogVGVtcGxhdGVMaXRl
cmFsUGxhY2Vob2xkZXJzCitpbnNpZGUgYnJlYWtwb2ludEFjdGlvbnMgYTooNDIpIGI6KFtvYmpl
Y3QgT2JqZWN0XSkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2JyZWFrcG9pbnQtYWN0aW9uLWxvZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2JyZWFrcG9pbnQtYWN0aW9uLWxvZy5odG1sCmluZGV4IDIwZWVlMzkxODAyYWJkNjE5YTgz
OGFlZDdkYjFjY2E4ZDg5NDkyNWUuLjdiZjVmNDEyNjU2YzNkZDA2MDkyNDhmYTRkOWY2NGJlYjUx
MGJlNjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3Bv
aW50LWFjdGlvbi1sb2cuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
YnJlYWtwb2ludC1hY3Rpb24tbG9nLmh0bWwKQEAgLTE3LDYgKzE3LDcgQEAgZnVuY3Rpb24gdGVz
dCgpCiAgICAgICAgIG5hbWU6ICJUZW1wbGF0ZUxpdGVyYWxQbGFjZWhvbGRlcnMiLAogICAgICAg
ICBkZXNjcmlwdGlvbjogIkV2YWx1YXRlIGJyZWFrcG9pbnQgd2l0aCBsb2dnaW5nIGFjdGlvbnMg
dGhhdCBpbmNsdWRlIHBsYWNlaG9sZGVycy4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVj
dCkgeworICAgICAgICAgICAgbGV0IGJyZWFrcG9pbnRQcm9taXNlID0gbmV3IFdJLldyYXBwZWRQ
cm9taXNlOwogICAgICAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIo
V0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlNjcmlwdEFkZGVkLCAoZXZlbnQpID0+IHsKICAgICAg
ICAgICAgICAgICBsZXQgc2NyaXB0T2JqZWN0ID0gZXZlbnQuZGF0YS5zY3JpcHQ7CiAgICAgICAg
ICAgICAgICAgaWYgKCEvc2NyaXB0XC1mb3JcLWJyZWFrcG9pbnRcLWFjdGlvbnNcLmpzJC8udGVz
dChzY3JpcHRPYmplY3QudXJsKSkKQEAgLTQyLDExICs0MywxNCBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICAgICAgICAgICAgICBhZGRMb2dBY3Rpb24oIiR7YX0gYW5kICR7SlNPTi5zdHJpbmdpZnko
Yil9Iik7CiAKICAgICAgICAgICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIuYWRkQnJlYWtwb2lu
dChicmVha3BvaW50KTsKLQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJ
blBhZ2UoInJ1bkJyZWFrcG9pbnRBY3Rpb25zKCkiLCByZXNvbHZlKTsKKyAgICAgICAgICAgICAg
ICBicmVha3BvaW50UHJvbWlzZS5yZXNvbHZlKCk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7CisgICAgICAgICAgICBsZXQgcmVsb2Fk
UHJvbWlzZSA9IEluc3BlY3RvclRlc3QuYXdhaXRFdmVudChGcm9udGVuZFRlc3RIYXJuZXNzLkV2
ZW50LlRlc3RQYWdlRGlkTG9hZCk7CisgICAgICAgICAgICBQcm9taXNlLmFsbChbcmVsb2FkUHJv
bWlzZSwgYnJlYWtwb2ludFByb21pc2UucHJvbWlzZV0pCisgICAgICAgICAgICAgICAgLnRoZW4o
KCkgPT4gSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgicnVuQnJlYWtwb2ludEFjdGlvbnMo
KSIpKQorICAgICAgICAgICAgICAgIC50aGVuKHJlc29sdmUpOzsKICAgICAgICAgfQogICAgIH0p
OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcHJvYmUtbWFu
YWdlci1hZGQtcmVtb3ZlLWFjdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3Byb2JlLW1hbmFnZXItYWRkLXJlbW92ZS1hY3Rpb25zLWV4cGVjdGVkLnR4
dAppbmRleCBhYTBkZjUzYjI0NjVlNzM2YmRmOTI1NmI3NDE3Yzg2NTQ2ZTAyNDMyLi4wMzRhNDU3
ZThkOGUyMjE0ZjQwZmE5Y2ZiY2IyZDRiNzljODIxNTBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvcHJvYmUtbWFuYWdlci1hZGQtcmVtb3ZlLWFjdGlvbnMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wcm9iZS1tYW5h
Z2VyLWFkZC1yZW1vdmUtYWN0aW9ucy1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw1IEBACiBUZXN0
aW5nIHRoYXQgdGhlIHByb2JlIG1hbmFnZXIgcHJvcGVybHkgaGFuZGxlcyBhZGRpdGlvbiBhbmQg
cmVtb3ZhbCBvZiByZWxhdGVkIHByb2Jlcy4KIAotaW5zaWRlIGJyZWFrcG9pbnRBY3Rpb25zIGE6
KDEyKSBiOihbb2JqZWN0IE9iamVjdF0pCiBCcmVha3BvaW50IGF1dG9jb250aW51ZSBzdGF0ZSBj
aGFuZ2VkOiB0cnVlCiBQcm9iZSBzZXQgd2FzIGFkZGVkLiBOZXcgY291bnQ6IDEKIFByb2JlIHdp
dGggaWRlbnRpZmllciAxIHdhcyBhZGRlZCB0byBwcm9iZSBzZXQuCkBAIC0xMiw2ICsxMSw3IEBA
IEJyZWFrcG9pbnQgYWN0aW9ucyBjaGFuZ2VkLiBOZXcgY291bnQ6IDIKIEJyZWFrcG9pbnQgd2Fz
IGFkZGVkLgogUEFTUzogQnJlYWtwb2ludCBzaG91bGQgYmUgcmVzb2x2ZWQuCiBCcmVha3BvaW50
IHJlc29sdmVkIHN0YXRlIGNoYW5nZWQ6IHRydWUKK2luc2lkZSBicmVha3BvaW50QWN0aW9ucyBh
OigxMikgYjooW29iamVjdCBPYmplY3RdKQogUHJvYmUgd2l0aCBpZGVudGlmaWVyIDEgYWRkZWQg
c2FtcGxlOiBbb2JqZWN0IE9iamVjdF0KIEhpdCB0ZXN0IGNoZWNrcG9pbnQgZXZlbnQgIzAgd2l0
aCB0eXBlOiBwcm9iZS1vYmplY3Qtc2FtcGxlLWFkZGVkCiBQcm9iZSB3aXRoIGlkZW50aWZpZXIg
MiBhZGRlZCBzYW1wbGU6IFtvYmplY3QgT2JqZWN0XQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3Byb2JlLW1hbmFnZXItYWRkLXJlbW92ZS1hY3Rpb25zLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcHJvYmUtbWFuYWdlci1hZGQtcmVtb3Zl
LWFjdGlvbnMuaHRtbAppbmRleCBiMzY4MmUyMzEwNTExMzhhMTkzZDNjNzQxZDAwM2UwZTdlYWFm
MjBiLi5lNzA4NTkxODVmZWI0M2FjNTljMjgyMzk0NjU1ZjRkZWU5ODAwM2JlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcHJvYmUtbWFuYWdlci1hZGQtcmVtb3Zl
LWFjdGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcHJvYmUt
bWFuYWdlci1hZGQtcmVtb3ZlLWFjdGlvbnMuaHRtbApAQCAtNyw2ICs3LDcgQEAKIDxzY3JpcHQ+
CiBmdW5jdGlvbiB0ZXN0KCkKIHsKKyAgICBsZXQgYnJlYWtwb2ludFByb21pc2UgPSBuZXcgV0ku
V3JhcHBlZFByb21pc2U7CiAgICAgV0kuRnJhbWUuYWRkRXZlbnRMaXN0ZW5lcihXSS5GcmFtZS5F
dmVudC5NYWluUmVzb3VyY2VEaWRDaGFuZ2UsIGZ1bmN0aW9uKCkgewogICAgICAgICBJbnNwZWN0
b3JUZXN0LnN0YXJ0VHJhY2luZ0JyZWFrcG9pbnRzKCk7CiAgICAgICAgIEluc3BlY3RvclRlc3Qu
c3RhcnRUcmFjaW5nUHJvYmVzKCk7CkBAIC00NCwxMSArNDUsMTUgQEAgZnVuY3Rpb24gdGVzdCgp
CiAgICAgICAgICAgICB9KTsKIAogCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRl
SW5QYWdlKCJicmVha3BvaW50QWN0aW9ucygxMiwge3g6MSx5OjJ9KSIpOworICAgICAgICAgICAg
YnJlYWtwb2ludFByb21pc2UucmVzb2x2ZSgpOwogICAgICAgICAgIH0pOwogICAgIH0pOwogCiAg
ICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7CisgICAgbGV0IHJlbG9hZFByb21pc2UgPSBJ
bnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQoRnJvbnRlbmRUZXN0SGFybmVzcy5FdmVudC5UZXN0UGFn
ZURpZExvYWQpOworICAgIFByb21pc2UuYWxsKFtyZWxvYWRQcm9taXNlLCBicmVha3BvaW50UHJv
bWlzZS5wcm9taXNlXSkKKyAgICAgICAgLnRoZW4oKCkgPT4gSW5zcGVjdG9yVGVzdC5ldmFsdWF0
ZUluUGFnZSgiYnJlYWtwb2ludEFjdGlvbnMoMTIsIHt4OjEseToyfSkiKSk7CisKIH0KIDwvc2Ny
aXB0PgogPC9oZWFkPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381707</attachid>
            <date>2019-10-23 11:39:22 -0700</date>
            <delta_ts>2019-10-23 12:09:11 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-203262-20191023113921.patch</filename>
            <type>text/plain</type>
            <size>12826</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA4
ZDkyZDdlYzQ1YjZlMzkyYTRhNjg2YzQ4Nzk4ZTE2YTY2NWYyYTJjLi42MDkwMTk2NDVhMzhmMjU4
NWQxZDIxYjYyNDhlODMyOWQwNmFmYzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAxOS0xMC0yMiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBmcm9udGVuZCB0ZXN0cyBzaG91bGQgY2xl
YXIgb3V0cHV0IGJlZm9yZSByZXNlbmRpbmcgcmVzdWx0cworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGV2aW4gUm91c3NvLgorCisgICAgICAgIEluc3BlY3RvciBmcm9udC1lbmQgdGVzdHMgd2lsbCBj
bGVhciBvdXRwdXQgbG9nIGJlZm9yZSByZXNlbmRpbmcgdGVzZXQgcmVzdWx0cy4gVGhpcyBhdm9p
ZHMKKyAgICAgICAgcmFjZSBiZXR3ZWVuIEluc3BlY3RvclRlc3QudGVzdFBhZ2VEaWRMb2FkIGV2
ZW50IGFuZCBUZXN0UGFnZS5hZGRSZXN1bHQgY2FsbHMgdGhhdCBtYXkgaGF2ZQorICAgICAgICBh
bHJlYWR5IGJlIHNlbnQgdG8gdGhlIG5ldyBwYWdlIGFmdGVyIG5hdmlnYXRpb24uIFRoZSBsYXR0
ZXIgZXZlbnRzIG90aGVyd2lzZSB3b3VsZCBiZSBhZGRlZAorICAgICAgICB0d2ljZS4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVGVzdC9Gcm9udGVuZFRlc3RIYXJuZXNzLmpzOgorICAgICAg
ICAoRnJvbnRlbmRUZXN0SGFybmVzcyk6CisgICAgICAgIChGcm9udGVuZFRlc3RIYXJuZXNzLnBy
b3RvdHlwZS50ZXN0UGFnZURpZExvYWQpOgorICAgICAgICAoRnJvbnRlbmRUZXN0SGFybmVzcy5w
cm90b3R5cGUucmVsb2FkUGFnZSk6CisgICAgICAgIChGcm9udGVuZFRlc3RIYXJuZXNzLnByb3Rv
dHlwZS5yZXBvcnRVbmhhbmRsZWRSZWplY3Rpb24pOgorICAgICAgICAoRnJvbnRlbmRUZXN0SGFy
bmVzcy5wcm90b3R5cGUucmVwb3J0VW5jYXVnaHRFeGNlcHRpb24pOgorICAgICAgICAoRnJvbnRl
bmRUZXN0SGFybmVzcy5wcm90b3R5cGUuX3Jlc2VuZFJlc3VsdHMpOiBEb24ndCByZXNlbmQgdGhl
IHJlc3VsdHMgd2hlbiB0aGUgcGFnZSBpcyBsb2FkZWQKKyAgICAgICAgZmlyc3QgdGltZS4KKwog
MjAxOS0xMC0yMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAg
V2ViIEluc3BlY3RvcjogU291cmNlczoga2VlcCB0aGUgZnVuY3Rpb24vb2JqZWN0IG5hbWUgc3Rp
Y2t5IGluIHRoZSBvYmplY3QgcHJldmlldyBwb3BvdmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L0Zyb250ZW5kVGVzdEhhcm5lc3MuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0L0Zyb250ZW5kVGVzdEhhcm5l
c3MuanMKaW5kZXggMGU5ZjgwMTRmODMwZjM4MGM1MmEzZjIxY2Q5OTQyMDU5NDJmNjM1My4uM2Fj
YzMzMDcwZmI3ZjVjZTQ3ZmUwNDhkMjRjNmIxMDk3OTI4MTE0ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9Gcm9udGVuZFRlc3RIYXJuZXNzLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvRnJvbnRlbmRU
ZXN0SGFybmVzcy5qcwpAQCAtMzAsNyArMzAsNyBAQCBGcm9udGVuZFRlc3RIYXJuZXNzID0gY2xh
c3MgRnJvbnRlbmRUZXN0SGFybmVzcyBleHRlbmRzIFRlc3RIYXJuZXNzCiAgICAgICAgIHN1cGVy
KCk7CiAKICAgICAgICAgdGhpcy5fcmVzdWx0cyA9IFtdOwotICAgICAgICB0aGlzLl9zaG91bGRS
ZXNlbmRSZXN1bHRzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fdGVzdFBhZ2VIYXNMb2FkZWQgPSBm
YWxzZTsKIAogICAgICAgICAvLyBPcHRpb25zIHRoYXQgYXJlIHNldCBwZXItdGVzdCBmb3IgZGVi
dWdnaW5nIHB1cnBvc2VzLgogICAgICAgICB0aGlzLmR1bXBBY3Rpdml0eVRvU3lzdGVtQ29uc29s
ZSA9IGZhbHNlOwpAQCAtMTMzLDcgKzEzMywxMCBAQCBGcm9udGVuZFRlc3RIYXJuZXNzID0gY2xh
c3MgRnJvbnRlbmRUZXN0SGFybmVzcyBleHRlbmRzIFRlc3RIYXJuZXNzCiAgICAgICAgICAgICBJ
bnNwZWN0b3JGcm9udGVuZEhvc3QudW5idWZmZXJlZExvZygidGVzdFBhZ2VEaWRMb2FkKCkiKTsK
IAogICAgICAgICB0aGlzLl90ZXN0UGFnZUlzUmVsb2FkaW5nID0gZmFsc2U7Ci0gICAgICAgIHRo
aXMuX3Jlc2VuZFJlc3VsdHMoKTsKKyAgICAgICAgaWYgKHRoaXMuX3Rlc3RQYWdlSGFzTG9hZGVk
KQorICAgICAgICAgICAgdGhpcy5fcmVzZW5kUmVzdWx0cygpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICB0aGlzLl90ZXN0UGFnZUhhc0xvYWRlZCA9IHRydWU7CiAKICAgICAgICAgdGhpcy5k
aXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoRnJvbnRlbmRUZXN0SGFybmVzcy5FdmVudC5UZXN0UGFn
ZURpZExvYWQpOwogCkBAIC0xNTUsNyArMTU4LDYgQEAgRnJvbnRlbmRUZXN0SGFybmVzcyA9IGNs
YXNzIEZyb250ZW5kVGVzdEhhcm5lc3MgZXh0ZW5kcyBUZXN0SGFybmVzcwogICAgICAgICBsZXQg
dGFyZ2V0ID0gV0kuYXNzdW1pbmdNYWluVGFyZ2V0KCk7CiAgICAgICAgIHJldHVybiB0YXJnZXQu
UGFnZUFnZW50LnJlbG9hZC5pbnZva2Uoe2lnbm9yZUNhY2hlLCByZXZhbGlkYXRlQWxsUmVzb3Vy
Y2VzfSkKICAgICAgICAgICAgIC50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICB0aGlzLl9z
aG91bGRSZXNlbmRSZXN1bHRzID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB0aGlzLl90ZXN0UGFn
ZVJlbG9hZGVkT25jZSA9IHRydWU7CiAKICAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5y
ZXNvbHZlKG51bGwpOwpAQCAtMjUyLDcgKzI1NCw3IEBAIEZyb250ZW5kVGVzdEhhcm5lc3MgPSBj
bGFzcyBGcm9udGVuZFRlc3RIYXJuZXNzIGV4dGVuZHMgVGVzdEhhcm5lc3MKIAogICAgICAgICAv
LyBJZiB0aGUgY29ubmVjdGlvbiB0byB0aGUgdGVzdCBwYWdlIGlzIG5vdCBzZXQgdXAsIHRoZW4g
anVzdCBkdW1wIHRvIGNvbnNvbGUgYW5kIGdpdmUgdXAuCiAgICAgICAgIC8vIEVycm9ycyBlbmNv
dW50ZXJlZCB0aGlzIGVhcmx5IGNhbiBiZSBkZWJ1Z2dlZCBieSBsb2FkaW5nIFRlc3QuaHRtbCBp
biBhIG5vcm1hbCBicm93c2VyIHBhZ2UuCi0gICAgICAgIGlmICh0aGlzLl9vcmlnaW5hbENvbnNv
bGUgJiYgIXRoaXMuX3Rlc3RQYWdlSGFzTG9hZGVkKCkpCisgICAgICAgIGlmICh0aGlzLl9vcmln
aW5hbENvbnNvbGUgJiYgIXRoaXMuX3Rlc3RQYWdlSGFzTG9hZGVkKQogICAgICAgICAgICAgdGhp
cy5fb3JpZ2luYWxDb25zb2xlWyJlcnJvciJdKHJlc3VsdCk7CiAKICAgICAgICAgdGhpcy5hZGRS
ZXN1bHQocmVzdWx0KTsKQEAgLTI4OCw3ICsyOTAsNyBAQCBGcm9udGVuZFRlc3RIYXJuZXNzID0g
Y2xhc3MgRnJvbnRlbmRUZXN0SGFybmVzcyBleHRlbmRzIFRlc3RIYXJuZXNzCiAKICAgICAgICAg
Ly8gSWYgdGhlIGNvbm5lY3Rpb24gdG8gdGhlIHRlc3QgcGFnZSBpcyBub3Qgc2V0IHVwLCB0aGVu
IGp1c3QgZHVtcCB0byBjb25zb2xlIGFuZCBnaXZlIHVwLgogICAgICAgICAvLyBFcnJvcnMgZW5j
b3VudGVyZWQgdGhpcyBlYXJseSBjYW4gYmUgZGVidWdnZWQgYnkgbG9hZGluZyBUZXN0Lmh0bWwg
aW4gYSBub3JtYWwgYnJvd3NlciBwYWdlLgotICAgICAgICBpZiAodGhpcy5fb3JpZ2luYWxDb25z
b2xlICYmICF0aGlzLl90ZXN0UGFnZUhhc0xvYWRlZCgpKQorICAgICAgICBpZiAodGhpcy5fb3Jp
Z2luYWxDb25zb2xlICYmICF0aGlzLl90ZXN0UGFnZUhhc0xvYWRlZCkKICAgICAgICAgICAgIHRo
aXMuX29yaWdpbmFsQ29uc29sZVsiZXJyb3IiXShyZXN1bHQpOwogCiAgICAgICAgIHRoaXMuYWRk
UmVzdWx0KHJlc3VsdCk7CkBAIC0yOTksMTkgKzMwMSwxNCBAQCBGcm9udGVuZFRlc3RIYXJuZXNz
ID0gY2xhc3MgRnJvbnRlbmRUZXN0SGFybmVzcyBleHRlbmRzIFRlc3RIYXJuZXNzCiAKICAgICAv
LyBQcml2YXRlCiAKLSAgICBfdGVzdFBhZ2VIYXNMb2FkZWQoKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIHNlbGYuX3Nob3VsZFJlc2VuZFJlc3VsdHM7Ci0gICAgfQotCiAgICAgX3Jlc2VuZFJlc3Vs
dHMoKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fc2hvdWxkUmVzZW5kUmVz
dWx0cyk7Ci0gICAgICAgIHRoaXMuX3Nob3VsZFJlc2VuZFJlc3VsdHMgPSBmYWxzZTsKKyAgICAg
ICAgY29uc29sZS5hc3NlcnQodGhpcy5fdGVzdFBhZ2VIYXNMb2FkZWQpOwogCiAgICAgICAgIGlm
ICh0aGlzLmR1bXBBY3Rpdml0eVRvU3lzdGVtQ29uc29sZSkKICAgICAgICAgICAgIEluc3BlY3Rv
ckZyb250ZW5kSG9zdC51bmJ1ZmZlcmVkTG9nKCJfcmVzZW5kUmVzdWx0cygpIik7CiAKKyAgICAg
ICAgdGhpcy5ldmFsdWF0ZUluUGFnZSgiVGVzdFBhZ2UuY2xlYXJPdXRwdXQoKSIpOwogICAgICAg
ICBmb3IgKGxldCByZXN1bHQgb2YgdGhpcy5fcmVzdWx0cykKICAgICAgICAgICAgIHRoaXMuZXZh
bHVhdGVJblBhZ2UoYFRlc3RQYWdlLmFkZFJlc3VsdCh1bmVzY2FwZSgiJHtlc2NhcGUocmVzdWx0
KX0iKSlgKTsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTJkYzIwNzc1ZDM3YTMzN2RmZDkzMTBiOTNiN2FiMGEx
YmU2Y2JiOC4uNzQxZTlmYjNjZDNlNDM0YjkxOTI3OTI3NzM3ZDFmNGNiMjEwN2E5MCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIzIEBACisyMDE5LTEwLTIyICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGZyb250ZW5kIHRlc3RzIHNob3Vs
ZCBjbGVhciBvdXRwdXQgYmVmb3JlIHJlc2VuZGluZyByZXN1bHRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMyNjIKKworICAgICAgICBSZXZpZXdl
ZCBieSBEZXZpbiBSb3Vzc28uCisKKyAgICAgICAgVW5mbGFrZSBzb21lIG9mIHRoZSB0ZXN0cyB0
aGF0IHJlbG9hZCBpbnNwZWN0ZWQgcGFnZS4gVGhpcyBpcyBhY2hpZXZlZCBieSB3YWl0aW5nIGZv
cgorICAgICAgICBleHBsaWNpdCBUZXN0UGFnZURpZExvYWQgZXZlbnQuIEF0IHRoYXQgcG9pbnQg
aXQncyBrbm93biB0aGF0IGFjY3VtdWxhdGVkIHNvIGZhciB0ZXN0CisgICAgICAgIG91dHB1dCBo
YXMgYmVlbiByZXNlbnQgdG8gdGhlIGluc3BlY3RlZCBwYWdlIGFuZCB0aGUgbG9nIGxpbmVzIHdp
bGwgbm90IGNoYW5nZSB0aGVpcgorICAgICAgICBvcmRlciAvIGFwcGVhciB0d2ljZS4KKworICAg
ICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qczoK
KyAgICAgICAgKFRlc3RQYWdlLmNsZWFyT3V0cHV0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVi
dWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZXZhbC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9k
ZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1sb2ctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGlu
c3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1sb2cuaHRtbDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvZGVidWdnZXIvcHJvYmUtbWFuYWdlci1hZGQtcmVtb3ZlLWFjdGlvbnMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9wcm9iZS1tYW5hZ2VyLWFkZC1y
ZW1vdmUtYWN0aW9ucy5odG1sOgorCiAyMDE5LTEwLTIyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5m
cmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIHdwdC9jc3MvY3NzLWltYWdlcy9ncmFkaWVudC9j
b2xvci1zdG9wcy1wYXJzaW5nLmh0bWwgZmFpbHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcwppbmRl
eCA1OTY1MTIwNTY3OGIzNzg4MDhkMjczODI0MDViOTNhODY0OWM1ZjM0Li40OGY3YWY4NmQ1Yzc5
ZDFmNmE0ZDgzNzk2NjVmNTg4YTBkNjU5OTNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzCkBA
IC0xNzMsNiArMTczLDE2IEBAIFRlc3RQYWdlLmFkZFJlc3VsdCA9IGZ1bmN0aW9uKHRleHQpCiAK
IFRlc3RQYWdlLmxvZyA9IFRlc3RQYWdlLmFkZFJlc3VsdDsKIAorVGVzdFBhZ2UuY2xlYXJPdXRw
dXQgPSBmdW5jdGlvbigpCit7CisgICAgaWYgKCF0aGlzLl9yZXN1bHRFbGVtZW50KQorICAgICAg
ICByZXR1cm47CisKKyAgICBsZXQgb3V0cHV0ID0gdGhpcy5fcmVzdWx0RWxlbWVudDsKKyAgICB3
aGlsZSAob3V0cHV0LmZpcnN0Q2hpbGQpCisgICAgICAgIG91dHB1dC5yZW1vdmVDaGlsZChvdXRw
dXQuZmlyc3RDaGlsZCk7Cit9CisKIFRlc3RQYWdlLmRpc3BhdGNoRXZlbnRUb0Zyb250ZW5kID0g
ZnVuY3Rpb24oZXZlbnROYW1lLCBkYXRhKQogewogICAgIGxldCBkaXNwYXRjaEV2ZW50Q29kZVN0
cmluZyA9IGBJbnNwZWN0b3JUZXN0LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycygke0pTT04uc3Ry
aW5naWZ5KGV2ZW50TmFtZSl9LCAke0pTT04uc3RyaW5naWZ5KGRhdGEpfSk7YDsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1ldmFs
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24t
ZXZhbC5odG1sCmluZGV4IDdhNjA1YzgxNDQxYjY5ZTY4N2U5NzE4ODc0OTc5MTIxMmE3YjY5N2Mu
LjU1NjJlMmIzM2Y2ZTYzZjZmNzE2MjEzYTE1YTMxNThhMzg3YjA5MDQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1ldmFsLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWV2
YWwuaHRtbApAQCAtMTksNiArMTksNyBAQCBmdW5jdGlvbiBhY3Rpb24oYSwgYikKIAogZnVuY3Rp
b24gdGVzdCgpCiB7CisgICAgbGV0IGJyZWFrcG9pbnRQcm9taXNlID0gbmV3IFdJLldyYXBwZWRQ
cm9taXNlOwogICAgIFdJLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkRlYnVn
Z2VyTWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAg
dmFyIHNjcmlwdE9iamVjdCA9IGV2ZW50LmRhdGEuc2NyaXB0OwogCkBAIC0zMywxMCArMzQsMTkg
QEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLmFkZEJyZWFr
cG9pbnQoYnJlYWtwb2ludCk7CiAKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFn
ZSgicnVuQnJlYWtwb2ludEFjdGlvbnMoKSIpOworICAgICAgICBicmVha3BvaW50UHJvbWlzZS5y
ZXNvbHZlKCkKICAgICB9KTsKIAorICAgIGxldCByZWxvYWRQcm9taXNlID0gSW5zcGVjdG9yVGVz
dC5hd2FpdEV2ZW50KEZyb250ZW5kVGVzdEhhcm5lc3MuRXZlbnQuVGVzdFBhZ2VEaWRMb2FkKTsK
ICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2UoKTsKKyAgICBQcm9taXNlLmFsbChbCisgICAg
ICAgIHJlbG9hZFByb21pc2UsCisgICAgICAgIGJyZWFrcG9pbnRQcm9taXNlLnByb21pc2UKKyAg
ICBdKQorICAgIC50aGVuKCgpID0+IHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUlu
UGFnZSgicnVuQnJlYWtwb2ludEFjdGlvbnMoKSIpOworICAgIH0pOworCiB9CiA8L3NjcmlwdD4K
IDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVh
a3BvaW50LWFjdGlvbi1sb2ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWxvZy1leHBlY3RlZC50eHQKaW5kZXggNjExNDRkYzE1
OThiYzU0YTY0NWE1OTY3NTBkMDkxMzQ5ZTc5YjgzMy4uZWVjZmM3ZDIwN2E2NTExNzcwNjAxOWFm
MTNjZWMzZjg5ZDBiMTVlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2JyZWFrcG9pbnQtYWN0aW9uLWxvZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWxvZy1leHBlY3RlZC50eHQKQEAg
LTEwLDggKzEwLDggQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IGNsb3NlIGN1cmx5IGJyYWNl
IGluIFJlZ0V4cDogdHJ1ZQogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IDQyIGFuZCB7IngiOjEs
InkiOjJ9CiBUZXN0aW5nIHRoYXQgIkxvZyIgYnJlYWtwb2ludCBhY3Rpb25zIHdvcmsgY29ycmVj
dGx5LgogCi1pbnNpZGUgYnJlYWtwb2ludEFjdGlvbnMgYTooNDIpIGI6KFtvYmplY3QgT2JqZWN0
XSkKIAogPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBEZWJ1Z2dlci5CcmVha3BvaW50QWN0aW9uLkxv
ZwogLS0gUnVubmluZyB0ZXN0IGNhc2U6IFRlbXBsYXRlTGl0ZXJhbFBsYWNlaG9sZGVycworaW5z
aWRlIGJyZWFrcG9pbnRBY3Rpb25zIGE6KDQyKSBiOihbb2JqZWN0IE9iamVjdF0pCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1s
b2cuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlv
bi1sb2cuaHRtbAppbmRleCAyMGVlZTM5MTgwMmFiZDYxOWE4MzhhZWQ3ZGIxY2NhOGQ4OTQ5MjVl
Li5iN2NjMjNkYzM4NTVmNmZmNzc4MGJmZjZlNzg5NmY5NmRlNDQ4N2VlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tbG9nLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWxv
Zy5odG1sCkBAIC0xNyw2ICsxNyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBuYW1lOiAi
VGVtcGxhdGVMaXRlcmFsUGxhY2Vob2xkZXJzIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJFdmFs
dWF0ZSBicmVha3BvaW50IHdpdGggbG9nZ2luZyBhY3Rpb25zIHRoYXQgaW5jbHVkZSBwbGFjZWhv
bGRlcnMuIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgIGxl
dCBicmVha3BvaW50UHJvbWlzZSA9IG5ldyBXSS5XcmFwcGVkUHJvbWlzZTsKICAgICAgICAgICAg
IFdJLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkRlYnVnZ2VyTWFuYWdlci5F
dmVudC5TY3JpcHRBZGRlZCwgKGV2ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgbGV0IHNjcmlw
dE9iamVjdCA9IGV2ZW50LmRhdGEuc2NyaXB0OwogICAgICAgICAgICAgICAgIGlmICghL3Njcmlw
dFwtZm9yXC1icmVha3BvaW50XC1hY3Rpb25zXC5qcyQvLnRlc3Qoc2NyaXB0T2JqZWN0LnVybCkp
CkBAIC00MiwxMSArNDMsMTkgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICAgICAgYWRk
TG9nQWN0aW9uKCIke2F9IGFuZCAke0pTT04uc3RyaW5naWZ5KGIpfSIpOwogCiAgICAgICAgICAg
ICAgICAgV0kuZGVidWdnZXJNYW5hZ2VyLmFkZEJyZWFrcG9pbnQoYnJlYWtwb2ludCk7Ci0KLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJydW5CcmVha3BvaW50
QWN0aW9ucygpIiwgcmVzb2x2ZSk7CisgICAgICAgICAgICAgICAgYnJlYWtwb2ludFByb21pc2Uu
cmVzb2x2ZSgpOwogICAgICAgICAgICAgfSk7CiAKKyAgICAgICAgICAgIGxldCByZWxvYWRQcm9t
aXNlID0gSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KEZyb250ZW5kVGVzdEhhcm5lc3MuRXZlbnQu
VGVzdFBhZ2VEaWRMb2FkKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSgp
OworICAgICAgICAgICAgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIHJlbG9hZFByb21p
c2UsCisgICAgICAgICAgICAgICAgYnJlYWtwb2ludFByb21pc2UucHJvbWlzZQorICAgICAgICAg
ICAgXSkKKyAgICAgICAgICAgIC50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICByZXR1cm4g
SW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgicnVuQnJlYWtwb2ludEFjdGlvbnMoKSIpOwor
ICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVuKHJlc29sdmUpOzsKICAgICAgICAgfQog
ICAgIH0pOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcHJv
YmUtbWFuYWdlci1hZGQtcmVtb3ZlLWFjdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3Byb2JlLW1hbmFnZXItYWRkLXJlbW92ZS1hY3Rpb25zLWV4cGVj
dGVkLnR4dAppbmRleCBhYTBkZjUzYjI0NjVlNzM2YmRmOTI1NmI3NDE3Yzg2NTQ2ZTAyNDMyLi4w
MzRhNDU3ZThkOGUyMjE0ZjQwZmE5Y2ZiY2IyZDRiNzljODIxNTBkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcHJvYmUtbWFuYWdlci1hZGQtcmVtb3ZlLWFjdGlv
bnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wcm9i
ZS1tYW5hZ2VyLWFkZC1yZW1vdmUtYWN0aW9ucy1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw1IEBA
CiBUZXN0aW5nIHRoYXQgdGhlIHByb2JlIG1hbmFnZXIgcHJvcGVybHkgaGFuZGxlcyBhZGRpdGlv
biBhbmQgcmVtb3ZhbCBvZiByZWxhdGVkIHByb2Jlcy4KIAotaW5zaWRlIGJyZWFrcG9pbnRBY3Rp
b25zIGE6KDEyKSBiOihbb2JqZWN0IE9iamVjdF0pCiBCcmVha3BvaW50IGF1dG9jb250aW51ZSBz
dGF0ZSBjaGFuZ2VkOiB0cnVlCiBQcm9iZSBzZXQgd2FzIGFkZGVkLiBOZXcgY291bnQ6IDEKIFBy
b2JlIHdpdGggaWRlbnRpZmllciAxIHdhcyBhZGRlZCB0byBwcm9iZSBzZXQuCkBAIC0xMiw2ICsx
MSw3IEBAIEJyZWFrcG9pbnQgYWN0aW9ucyBjaGFuZ2VkLiBOZXcgY291bnQ6IDIKIEJyZWFrcG9p
bnQgd2FzIGFkZGVkLgogUEFTUzogQnJlYWtwb2ludCBzaG91bGQgYmUgcmVzb2x2ZWQuCiBCcmVh
a3BvaW50IHJlc29sdmVkIHN0YXRlIGNoYW5nZWQ6IHRydWUKK2luc2lkZSBicmVha3BvaW50QWN0
aW9ucyBhOigxMikgYjooW29iamVjdCBPYmplY3RdKQogUHJvYmUgd2l0aCBpZGVudGlmaWVyIDEg
YWRkZWQgc2FtcGxlOiBbb2JqZWN0IE9iamVjdF0KIEhpdCB0ZXN0IGNoZWNrcG9pbnQgZXZlbnQg
IzAgd2l0aCB0eXBlOiBwcm9iZS1vYmplY3Qtc2FtcGxlLWFkZGVkCiBQcm9iZSB3aXRoIGlkZW50
aWZpZXIgMiBhZGRlZCBzYW1wbGU6IFtvYmplY3QgT2JqZWN0XQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb2JlLW1hbmFnZXItYWRkLXJlbW92ZS1hY3Rpb25z
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcHJvYmUtbWFuYWdlci1hZGQt
cmVtb3ZlLWFjdGlvbnMuaHRtbAppbmRleCBiMzY4MmUyMzEwNTExMzhhMTkzZDNjNzQxZDAwM2Uw
ZTdlYWFmMjBiLi5iZjRhYWYyMWMyMjY5ZTZjMzExYjRlMzFmMzE3ZTdhOWExOGVlY2JiIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcHJvYmUtbWFuYWdlci1hZGQt
cmVtb3ZlLWFjdGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
cHJvYmUtbWFuYWdlci1hZGQtcmVtb3ZlLWFjdGlvbnMuaHRtbApAQCAtNyw2ICs3LDcgQEAKIDxz
Y3JpcHQ+CiBmdW5jdGlvbiB0ZXN0KCkKIHsKKyAgICBsZXQgYnJlYWtwb2ludFByb21pc2UgPSBu
ZXcgV0kuV3JhcHBlZFByb21pc2U7CiAgICAgV0kuRnJhbWUuYWRkRXZlbnRMaXN0ZW5lcihXSS5G
cmFtZS5FdmVudC5NYWluUmVzb3VyY2VEaWRDaGFuZ2UsIGZ1bmN0aW9uKCkgewogICAgICAgICBJ
bnNwZWN0b3JUZXN0LnN0YXJ0VHJhY2luZ0JyZWFrcG9pbnRzKCk7CiAgICAgICAgIEluc3BlY3Rv
clRlc3Quc3RhcnRUcmFjaW5nUHJvYmVzKCk7CkBAIC00NCwxMSArNDUsMTkgQEAgZnVuY3Rpb24g
dGVzdCgpCiAgICAgICAgICAgICB9KTsKIAogCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2
YWx1YXRlSW5QYWdlKCJicmVha3BvaW50QWN0aW9ucygxMiwge3g6MSx5OjJ9KSIpOworICAgICAg
ICAgICAgYnJlYWtwb2ludFByb21pc2UucmVzb2x2ZSgpOwogICAgICAgICAgIH0pOwogICAgIH0p
OwogCisgICAgbGV0IHJlbG9hZFByb21pc2UgPSBJbnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQoRnJv
bnRlbmRUZXN0SGFybmVzcy5FdmVudC5UZXN0UGFnZURpZExvYWQpOwogICAgIEluc3BlY3RvclRl
c3QucmVsb2FkUGFnZSgpOworICAgIFByb21pc2UuYWxsKFsKKyAgICAgICAgcmVsb2FkUHJvbWlz
ZSwKKyAgICAgICAgYnJlYWtwb2ludFByb21pc2UucHJvbWlzZQorICAgIF0pCisgICAgLnRoZW4o
KCkgPT4geworICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJicmVha3BvaW50
QWN0aW9ucygxMiwge3g6MSx5OjJ9KSIpOworICAgIH0pOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>