<?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>224356</bug_id>
          
          <creation_ts>2021-04-08 19:36:37 -0700</creation_ts>
          <short_desc>ServiceWorker should save module scripts</short_desc>
          <delta_ts>2021-04-09 20:05:37 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>cdumez</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1748578</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-08 19:36:37 -0700</bug_when>
    <thetext>ServiceWorker saves module scripts</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748579</commentid>
    <comment_count>1</comment_count>
      <attachid>425573</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-08 19:37:57 -0700</bug_when>
    <thetext>Created attachment 425573
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748580</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-08 19:38:00 -0700</bug_when>
    <thetext>&lt;rdar://problem/75634897&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748582</commentid>
    <comment_count>3</comment_count>
      <attachid>425574</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-08 19:42:19 -0700</bug_when>
    <thetext>Created attachment 425574
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748586</commentid>
    <comment_count>4</comment_count>
      <attachid>425576</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-08 19:52:38 -0700</bug_when>
    <thetext>Created attachment 425576
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748589</commentid>
    <comment_count>5</comment_count>
      <attachid>425578</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-08 20:08:48 -0700</bug_when>
    <thetext>Created attachment 425578
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748590</commentid>
    <comment_count>6</comment_count>
      <attachid>425579</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-08 20:30:10 -0700</bug_when>
    <thetext>Created attachment 425579
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748597</commentid>
    <comment_count>7</comment_count>
      <attachid>425582</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-08 21:00:53 -0700</bug_when>
    <thetext>Created attachment 425582
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748600</commentid>
    <comment_count>8</comment_count>
      <attachid>425583</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-08 21:19:56 -0700</bug_when>
    <thetext>Created attachment 425583
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748605</commentid>
    <comment_count>9</comment_count>
      <attachid>425585</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-08 21:46:47 -0700</bug_when>
    <thetext>Created attachment 425585
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748611</commentid>
    <comment_count>10</comment_count>
      <attachid>425586</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-08 22:11:50 -0700</bug_when>
    <thetext>Created attachment 425586
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748613</commentid>
    <comment_count>11</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-08 22:31:06 -0700</bug_when>
    <thetext>We found that existing test mechanism &quot;testRunner.terminateNetworkProcess&quot; does not work well with guard-malloc configuration.

https://bugs.webkit.org/show_bug.cgi?id=224358</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748615</commentid>
    <comment_count>12</comment_count>
      <attachid>425588</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-08 23:03:08 -0700</bug_when>
    <thetext>Created attachment 425588
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748616</commentid>
    <comment_count>13</comment_count>
      <attachid>425589</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-08 23:05:59 -0700</bug_when>
    <thetext>Created attachment 425589
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748620</commentid>
    <comment_count>14</comment_count>
      <attachid>425589</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-08 23:34:16 -0700</bug_when>
    <thetext>Comment on attachment 425589
Patch

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

&gt; LayoutTests/http/wpt/service-workers/network-process-termination.html:21
&gt; +&lt;html&gt;
&gt; +&lt;head&gt;
&gt; +&lt;script src=&quot;resources/routines.js&quot;&gt;&lt;/script&gt;
&gt; +&lt;/head&gt;
&gt; +&lt;body&gt;
&gt; +&lt;script&gt;
&gt; +if (window.testRunner) {
&gt; +    testRunner.dumpAsText();
&gt; +    testRunner.waitUntilDone();
&gt; +}
&gt; +async function doTest() {
&gt; +    testRunner.terminateNetworkProcess();
&gt; +    await waitFor(100);
&gt; +    document.body.innerHTML = &quot;PASS&quot;;
&gt; +    if (window.testRunner)
&gt; +        testRunner.notifyDone();
&gt; +}
&gt; +doTest();
&gt; +&lt;/script&gt;
&gt; +&lt;/body&gt;
&gt; +&lt;/html&gt;

I added this test to show that existing testRunner.terminateNetworkProcess() is not working well with mac-wk2-stress&apos;s guard-malloc runs. (possibly, killing the process does not work well for guard-malloc runs?).
But this is not an issue of this patch itself since it is just using the existing test mechanism (we have many tests using this).
This issue is filed separately in https://bugs.webkit.org/show_bug.cgi?id=224358</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748621</commentid>
    <comment_count>15</comment_count>
      <attachid>425589</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-08 23:50:41 -0700</bug_when>
    <thetext>Comment on attachment 425589
Patch

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

&gt;&gt; LayoutTests/http/wpt/service-workers/network-process-termination.html:21
&gt;&gt; +&lt;/html&gt;
&gt; 
&gt; I added this test to show that existing testRunner.terminateNetworkProcess() is not working well with mac-wk2-stress&apos;s guard-malloc runs. (possibly, killing the process does not work well for guard-malloc runs?).
&gt; But this is not an issue of this patch itself since it is just using the existing test mechanism (we have many tests using this).
&gt; This issue is filed separately in https://bugs.webkit.org/show_bug.cgi?id=224358

Note that this worked on local working environment with --guard-malloc. And since guard-malloc bot does not report failures about terminateNetworkProcess, this failure is specific to new EWS mac-wk2-stress&apos;s configuration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748649</commentid>
    <comment_count>16</comment_count>
      <attachid>425589</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-04-09 01:35:09 -0700</bug_when>
    <thetext>Comment on attachment 425589
Patch

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

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:191
&gt; +        // This can invoke callback immediately.

This comment is not very clear to me.

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:411
&gt; +        m_requestURLToResponseURLMap.add(sourceURL.string(), responseURL);

WTFMove(responseURL)

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:459
&gt; +        m_requestURLToResponseURLMap.add(sourceURL.string(), responseURL);

WTFMove

&gt;&gt;&gt; LayoutTests/http/wpt/service-workers/network-process-termination.html:21
&gt;&gt;&gt; +&lt;/html&gt;
&gt;&gt; 
&gt;&gt; I added this test to show that existing testRunner.terminateNetworkProcess() is not working well with mac-wk2-stress&apos;s guard-malloc runs. (possibly, killing the process does not work well for guard-malloc runs?).
&gt;&gt; But this is not an issue of this patch itself since it is just using the existing test mechanism (we have many tests using this).
&gt;&gt; This issue is filed separately in https://bugs.webkit.org/show_bug.cgi?id=224358
&gt; 
&gt; Note that this worked on local working environment with --guard-malloc. And since guard-malloc bot does not report failures about terminateNetworkProcess, this failure is specific to new EWS mac-wk2-stress&apos;s configuration.

Maybe this test should be in its own patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748650</commentid>
    <comment_count>17</comment_count>
      <attachid>425589</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-09 01:37:12 -0700</bug_when>
    <thetext>Comment on attachment 425589
Patch

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

Thanks!

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:191
&gt;&gt; +        // This can invoke callback immediately.
&gt; 
&gt; This comment is not very clear to me.

OK, removed.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:411
&gt;&gt; +        m_requestURLToResponseURLMap.add(sourceURL.string(), responseURL);
&gt; 
&gt; WTFMove(responseURL)

Looks good!

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:459
&gt;&gt; +        m_requestURLToResponseURLMap.add(sourceURL.string(), responseURL);
&gt; 
&gt; WTFMove

We still use responseURL (L462).

&gt;&gt;&gt;&gt; LayoutTests/http/wpt/service-workers/network-process-termination.html:21
&gt;&gt;&gt;&gt; +&lt;/html&gt;
&gt;&gt;&gt; 
&gt;&gt;&gt; I added this test to show that existing testRunner.terminateNetworkProcess() is not working well with mac-wk2-stress&apos;s guard-malloc runs. (possibly, killing the process does not work well for guard-malloc runs?).
&gt;&gt;&gt; But this is not an issue of this patch itself since it is just using the existing test mechanism (we have many tests using this).
&gt;&gt;&gt; This issue is filed separately in https://bugs.webkit.org/show_bug.cgi?id=224358
&gt;&gt; 
&gt;&gt; Note that this worked on local working environment with --guard-malloc. And since guard-malloc bot does not report failures about terminateNetworkProcess, this failure is specific to new EWS mac-wk2-stress&apos;s configuration.
&gt; 
&gt; Maybe this test should be in its own patch?

Sounds good. I&apos;ll upload this test in a filed bugzilla.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748659</commentid>
    <comment_count>18</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-09 01:54:47 -0700</bug_when>
    <thetext>Committed r275751 (236329@main): &lt;https://commits.webkit.org/236329@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748956</commentid>
    <comment_count>19</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-09 20:05:37 -0700</bug_when>
    <thetext>*** Bug 223135 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425573</attachid>
            <date>2021-04-08 19:37:57 -0700</date>
            <delta_ts>2021-04-08 19:42:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224356-20210408193757.patch</filename>
            <type>text/plain</type>
            <size>14047</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1Njg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkyOTdjNTFkMDcxOTYy
NzkwNjM0ODk5NWI5N2YyMTRkZTQxMmZlMi4uOGM0YjhmODU5OWFhYjM4ZmE0ZjY5YmJlM2M2ZDdj
MWFjOWViNzYyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA0LTA4ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2VydmljZVdvcmtlciBz
YXZlcyBtb2R1bGUgc2NyaXB0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI0MzU2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NTYzNDg5Nz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBodHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLmh0bWwKKworICAgICAgICBJ
biB0aGlzIHBhdGNoLCB3ZSBhcHByb3ByaWF0ZWx5IGNhbGwgc2V0U2NyaXB0UmVzb3VyY2UgLyBz
Y3JpcHRSZXNvdXJjZSB3aGlsZSBsb2FkaW5nIHNlcnZpY2Utd29ya2VyIG1vZHVsZSBzY3JpcHRz
IGZyb20gbW9kdWxlIGxvYWRlcnMKKyAgICAgICAgc28gdGhhdCB3ZSBjYW4gZW5zdXJlIHRoYXQg
dGhleSBhcmUgc2F2ZWQgb24gdGhlIGRpc2suCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3Jp
cHRNb2R1bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVy
OjpmZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZp
bmlzaGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKToK
KyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNo
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlD
bGllbnRGaW5pc2hlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0
TG9hZGVyLmg6CisKIDIwMjEtMDQtMDggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNzM1NDEpIFdLV2ViVmlldyBjYW4n
dCBsb2FkIE5TVVJMUmVxdWVzdCBzdWJjbGFzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcAppbmRleCBhZDQ3ZmUxMzBiMGNkODRmYmZh
NTYxYzAzMzQ4ZTljZmI3M2I5M2M4Li41Y2FjN2M1N2ZhODA0ZGE1MTNmM2E4MzYxMzExMWU4YzE3
N2EzMjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1
bGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVs
ZUxvYWRlci5jcHAKQEAgLTE4OCw2ICsxODgsNyBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBT
Y3JpcHRNb2R1bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsTwog
ICAgIH0gZWxzZSB7CiAgICAgICAgIGF1dG8gbG9hZGVyID0gV29ya2VyTW9kdWxlU2NyaXB0TG9h
ZGVyOjpjcmVhdGUoKnRoaXMsIGRlZmVycmVkLmdldCgpLCAqc3RhdGljX2Nhc3Q8V29ya2VyU2Ny
aXB0RmV0Y2hlcio+KEpTQzo6anNDYXN0PEpTQzo6SlNTY3JpcHRGZXRjaGVyKj4oc2NyaXB0RmV0
Y2hlciktPmZldGNoZXIoKSksIFdURk1vdmUodG9wTGV2ZWxGZXRjaFBhcmFtZXRlcnMpKTsKICAg
ICAgICAgbV9sb2FkZXJzLmFkZChsb2FkZXIuY29weVJlZigpKTsKKyAgICAgICAgLy8gVGhpcyBj
YW4gaW52b2tlIGNhbGxiYWNrIGltbWVkaWF0ZWx5LgogICAgICAgICBsb2FkZXItPmxvYWQobV9j
b250ZXh0LCBXVEZNb3ZlKGNvbXBsZXRlZFVSTCkpOwogICAgIH0KIApAQCAtMzY5LDggKzM3MCw2
IEBAIHZvaWQgU2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChNb2R1bGVTY3JpcHRM
b2FkZXImIG1vZHVsZVNjcmlwdExvYWRlciwKICAgICAgICAgICAgIGlmIChzb3VyY2VVUkwuaGFz
RnJhZ21lbnRJZGVudGlmaWVyKCkpCiAgICAgICAgICAgICAgICAgcmVzcG9uc2VVUkwuc2V0RnJh
Z21lbnRJZGVudGlmaWVyKHNvdXJjZVVSTC5mcmFnbWVudElkZW50aWZpZXIoKSk7CiAgICAgICAg
IH0KLQotICAgICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwu
c3RyaW5nKCksIHJlc3BvbnNlVVJMKTsKICAgICAgICAgcmV0dXJuIHJlc3BvbnNlVVJMOwogICAg
IH07CiAKQEAgLTQwOCwxNiArNDA3LDE5IEBAIHZvaWQgU2NyaXB0TW9kdWxlTG9hZGVyOjpub3Rp
ZnlGaW5pc2hlZChNb2R1bGVTY3JpcHRMb2FkZXImIG1vZHVsZVNjcmlwdExvYWRlciwKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVz
cG9uc2VVUkwoY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkudXJsKCksIGNhY2hlZFNjcmlwdC5oYXNS
ZWRpcmVjdGlvbnMoKSwgY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkuc291cmNlKCkpOworICAgICAg
ICBVUkwgcmVzcG9uc2VVUkwgPSBjYW5vbmljYWxpemVBbmRSZWdpc3RlclJlc3BvbnNlVVJMKGNh
Y2hlZFNjcmlwdC5yZXNwb25zZSgpLnVybCgpLCBjYWNoZWRTY3JpcHQuaGFzUmVkaXJlY3Rpb25z
KCksIGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLnNvdXJjZSgpKTsKKyAgICAgICAgbV9yZXF1ZXN0
VVJMVG9SZXNwb25zZVVSTE1hcC5hZGQoc291cmNlVVJMLnN0cmluZygpLCByZXNwb25zZVVSTCk7
CiAgICAgICAgIHByb21pc2UtPnJlc29sdmVXaXRoQ2FsbGJhY2soWyZdIChKU0RPTUdsb2JhbE9i
amVjdCYganNHbG9iYWxPYmplY3QpIHsKICAgICAgICAgICAgIHJldHVybiBKU0M6OkpTU291cmNl
Q29kZTo6Y3JlYXRlKGpzR2xvYmFsT2JqZWN0LnZtKCksCiAgICAgICAgICAgICAgICAgSlNDOjpT
b3VyY2VDb2RlIHsgU2NyaXB0U291cmNlQ29kZSB7ICZjYWNoZWRTY3JpcHQsIEpTQzo6U291cmNl
UHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1bGUsIGxvYWRlci5zY3JpcHRGZXRjaGVyKCkgfS5qc1Nv
dXJjZUNvZGUoKSB9KTsKICAgICAgICAgfSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgYXV0byYg
bG9hZGVyID0gc3RhdGljX2Nhc3Q8V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyJj4obW9kdWxlU2Ny
aXB0TG9hZGVyKTsKLSAgICAgICAgYXV0byYgd29ya2VyU2NyaXB0TG9hZGVyID0gbG9hZGVyLnNj
cmlwdExvYWRlcigpOwogCi0gICAgICAgIGlmICh3b3JrZXJTY3JpcHRMb2FkZXIuZmFpbGVkKCkp
IHsKKyAgICAgICAgaWYgKGxvYWRlci5mYWlsZWQoKSkgeworICAgICAgICAgICAgQVNTRVJUKCFs
b2FkZXIucmV0cmlldmVkRnJvbVNlcnZpY2VXb3JrZXJDYWNoZSgpKTsKKyAgICAgICAgICAgIGF1
dG8mIHdvcmtlclNjcmlwdExvYWRlciA9IGxvYWRlci5zY3JpcHRMb2FkZXIoKTsKKyAgICAgICAg
ICAgIEFTU0VSVCh3b3JrZXJTY3JpcHRMb2FkZXIuZmFpbGVkKCkpOwogICAgICAgICAgICAgaWYg
KHdvcmtlclNjcmlwdExvYWRlci5lcnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7CiAgICAgICAg
ICAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9k
dWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9h
ZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtNDMyLDI0ICs0MzQsMzIgQEAgdm9pZCBTY3JpcHRN
b2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKE1vZHVsZVNjcmlwdExvYWRlciYgbW9kdWxlU2Ny
aXB0TG9hZGVyLAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgaWYg
KCFNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZSh3b3JrZXJT
Y3JpcHRMb2FkZXIucmVzcG9uc2VNSU1FVHlwZSgpKSkgeworICAgICAgICBpZiAoIU1JTUVUeXBl
UmVnaXN0cnk6OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKGxvYWRlci5yZXNwb25zZU1J
TUVUeXBlKCkpKSB7CiAgICAgICAgICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3Jn
L211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAog
ICAgICAgICAgICAgLy8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20g
cmVzcG9uc2UncyBoZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2
YVNjcmlwdCBNSU1FIHR5cGUuCiAgICAgICAgICAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25z
LCBmZXRjaGluZyBhIGNsYXNzaWMgc2NyaXB0IGRvZXMgbm90IGluY2x1ZGUgTUlNRSB0eXBlIGNo
ZWNraW5nLiBJbiBjb250cmFzdCwgbW9kdWxlIHNjcmlwdHMgd2lsbCBmYWlsIHRvIGxvYWQgaWYg
dGhleSBhcmUgbm90IG9mIGEgY29ycmVjdCBNSU1FIHR5cGUuCi0gICAgICAgICAgICBwcm9taXNl
LT5yZWplY3QoVHlwZUVycm9yLCBtYWtlU3RyaW5nKCInIiwgd29ya2VyU2NyaXB0TG9hZGVyLnJl
c3BvbnNlTUlNRVR5cGUoKSwgIicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUu
IikpOworICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygi
JyIsIGxvYWRlci5yZXNwb25zZU1JTUVUeXBlKCksICInIGlzIG5vdCBhIHZhbGlkIEphdmFTY3Jp
cHQgTUlNRSB0eXBlLiIpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAg
ICAgIGlmIChhdXRvKiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgewotICAgICAg
ICAgICAgLy8gSWYgdGhpcyBpcyB0b3AtbGV2ZWwtbW9kdWxlLCB0aGVuIHdlIGV4dHJhY3QgcmVm
ZXJyZXItcG9saWN5IGFuZCBhcHBseSB0byB0aGUgZGVwZW5kZW50IG1vZHVsZXMuCi0gICAgICAg
ICAgICBpZiAocGFyYW1ldGVycy0+aXNUb3BMZXZlbE1vZHVsZSgpKQotICAgICAgICAgICAgICAg
IHN0YXRpY19jYXN0PFdvcmtlclNjcmlwdEZldGNoZXImPihsb2FkZXIuc2NyaXB0RmV0Y2hlcigp
KS5zZXRSZWZlcnJlclBvbGljeShsb2FkZXIucmVmZXJyZXJQb2xpY3koKSk7CisgICAgICAgIFVS
TCByZXNwb25zZVVSTCA9IGxvYWRlci5yZXNwb25zZVVSTCgpOworICAgICAgICBpZiAoIWxvYWRl
ci5yZXRyaWV2ZWRGcm9tU2VydmljZVdvcmtlckNhY2hlKCkpIHsKKyAgICAgICAgICAgIGF1dG8m
IHdvcmtlclNjcmlwdExvYWRlciA9IGxvYWRlci5zY3JpcHRMb2FkZXIoKTsKKyAgICAgICAgICAg
IGlmIChhdXRvKiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgeworICAgICAgICAg
ICAgICAgIC8vIElmIHRoaXMgaXMgdG9wLWxldmVsLW1vZHVsZSwgdGhlbiB3ZSBleHRyYWN0IHJl
ZmVycmVyLXBvbGljeSBhbmQgYXBwbHkgdG8gdGhlIGRlcGVuZGVudCBtb2R1bGVzLgorICAgICAg
ICAgICAgICAgIGlmIChwYXJhbWV0ZXJzLT5pc1RvcExldmVsTW9kdWxlKCkpCisgICAgICAgICAg
ICAgICAgICAgIHN0YXRpY19jYXN0PFdvcmtlclNjcmlwdEZldGNoZXImPihsb2FkZXIuc2NyaXB0
RmV0Y2hlcigpKS5zZXRSZWZlcnJlclBvbGljeShsb2FkZXIucmVmZXJyZXJQb2xpY3koKSk7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICByZXNwb25zZVVSTCA9IGNhbm9uaWNhbGl6ZUFuZFJl
Z2lzdGVyUmVzcG9uc2VVUkwocmVzcG9uc2VVUkwsIHdvcmtlclNjcmlwdExvYWRlci5pc1JlZGly
ZWN0ZWQoKSwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlU291cmNlKCkpOworI2lmIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKKyAgICAgICAgICAgIGlmIChpczxTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGU+KG1fY29udGV4dCkpCisgICAgICAgICAgICAgICAgZG93bmNhc3Q8U2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlPihtX2NvbnRleHQpLnNldFNjcmlwdFJlc291cmNlKHNvdXJjZVVSTCwgU2Vy
dmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdCB7IGxvYWRlci5zY3JpcHQoKSwg
cmVzcG9uc2VVUkwsIGxvYWRlci5yZXNwb25zZU1JTUVUeXBlKCkgfSk7CisjZW5kaWYKICAgICAg
ICAgfQotCi0gICAgICAgIFVSTCByZXNwb25zZVVSTCA9IGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVy
UmVzcG9uc2VVUkwod29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlVVJMKCksIHdvcmtlclNjcmlw
dExvYWRlci5pc1JlZGlyZWN0ZWQoKSwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlU291cmNl
KCkpOworICAgICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwu
c3RyaW5nKCksIHJlc3BvbnNlVVJMKTsKICAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhDYWxs
YmFjayhbJl0gKEpTRE9NR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCkgewogICAgICAgICAg
ICAgcmV0dXJuIEpTQzo6SlNTb3VyY2VDb2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwK
LSAgICAgICAgICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgd29y
a2VyU2NyaXB0TG9hZGVyLnNjcmlwdCgpLCBXVEZNb3ZlKHJlc3BvbnNlVVJMKSwgeyB9LCBKU0M6
OlNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigp
IH0uanNTb3VyY2VDb2RlKCkgfSk7CisgICAgICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2RlIHsg
U2NyaXB0U291cmNlQ29kZSB7IGxvYWRlci5zY3JpcHQoKSwgV1RGTW92ZShyZXNwb25zZVVSTCks
IHsgfSwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNjcmlw
dEZldGNoZXIoKSB9LmpzU291cmNlQ29kZSgpIH0pOwogICAgICAgICB9KTsKICAgICB9CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0
TG9hZGVyLmNwcAppbmRleCBmODcwYTBkMWRhMzM4NTAwZjhlNGQ5MjY3MjNlZjU0MDlmZmNmNTli
Li44MmUyMzY5NzEwOGZlZDIyMjA5Yzg1Mjc2M2Q2ZTA0ZWMwOTE1ZTJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5j
cHAKQEAgLTYxLDYgKzYxLDE5IEBAIGJvb2wgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2Fk
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFVSTCYmIHNvdXJjCiB7CiAgICAgbV9z
b3VyY2VVUkwgPSBXVEZNb3ZlKHNvdXJjZVVSTCk7CiAKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCisgICAgaWYgKGlzPFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkpIHsKKyAg
ICAgICAgaWYgKGF1dG8qIHNjcmlwdFJlc291cmNlID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckds
b2JhbFNjb3BlPihjb250ZXh0KS5zY3JpcHRSZXNvdXJjZShtX3NvdXJjZVVSTCkpIHsKKyAgICAg
ICAgICAgIG1fc2NyaXB0ID0gc2NyaXB0UmVzb3VyY2UtPnNjcmlwdDsKKyAgICAgICAgICAgIG1f
cmVzcG9uc2VVUkwgPSBzY3JpcHRSZXNvdXJjZS0+cmVzcG9uc2VVUkw7CisgICAgICAgICAgICBt
X3Jlc3BvbnNlTUlNRVR5cGUgPSBzY3JpcHRSZXNvdXJjZS0+bWltZVR5cGU7CisgICAgICAgICAg
ICBtX3JldHJpZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGUgPSB0cnVlOworICAgICAgICAgICAg
bm90aWZ5Q2xpZW50RmluaXNoZWQoKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICB9CisgICAgfQorI2VuZGlmCisKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCB7IG1fc291
cmNlVVJMIH07CiAKICAgICBGZXRjaE9wdGlvbnMgZmV0Y2hPcHRpb25zOwpAQCAtOTQsNyArMTA3
LDIxIEBAIHZvaWQgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZCgpCiB7
CiAgICAgQVNTRVJUKG1fcHJvbWlzZSk7CiAKKyAgICBpZiAobV9zY3JpcHRMb2FkZXItPmZhaWxl
ZCgpKQorICAgICAgICBtX2ZhaWxlZCA9IHRydWU7CisgICAgZWxzZSB7CisgICAgICAgIG1fc2Ny
aXB0ID0gbV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpOworICAgICAgICBtX3Jlc3BvbnNlVVJMID0g
bV9zY3JpcHRMb2FkZXItPnJlc3BvbnNlVVJMKCk7CisgICAgICAgIG1fcmVzcG9uc2VNSU1FVHlw
ZSA9IG1fc2NyaXB0TG9hZGVyLT5yZXNwb25zZU1JTUVUeXBlKCk7CisgICAgfQorCisgICAgbm90
aWZ5Q2xpZW50RmluaXNoZWQoKTsKK30KKwordm9pZCBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6
Om5vdGlmeUNsaWVudEZpbmlzaGVkKCkKK3sKICAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKTsKKwogICAgIGlmIChtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPm5vdGlm
eUZpbmlzaGVkKCp0aGlzLCBXVEZNb3ZlKG1fc291cmNlVVJMKSwgbV9wcm9taXNlLnJlbGVhc2VO
b25OdWxsKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29y
a2VyTW9kdWxlU2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3Jr
ZXJNb2R1bGVTY3JpcHRMb2FkZXIuaAppbmRleCBjNWRiN2U5M2VjMzc0YmIxZWQ5MjhhZTdlZTAz
MWZkNTQwYmQyOGNlLi43NmQxNGRhZmFhYWQxMjI5YmVlMDNlYjcxMjk2MmIwYWI2M2EwNWI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRM
b2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3Jp
cHRMb2FkZXIuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJN
b2R1bGVTY3JpcHRMb2FkZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRCdWZmZXIuaCIKICNpbmNsdWRl
ICJXb3JrZXJTY3JpcHRGZXRjaGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xp
ZW50LmgiCiAjaW5jbHVkZSA8d3RmL1JlZi5oPgpAQCAtNTQsNiArNTUsMTIgQEAgY2xhc3MgV29y
a2VyTW9kdWxlU2NyaXB0TG9hZGVyIGZpbmFsIDogcHVibGljIE1vZHVsZVNjcmlwdExvYWRlciwg
cHJpdmF0ZSBXb3JrZXIKIAogICAgIHN0YXRpYyBTdHJpbmcgdGFza01vZGUoKTsKICAgICBSZWZl
cnJlclBvbGljeSByZWZlcnJlclBvbGljeSgpOworICAgIGJvb2wgZmFpbGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9mYWlsZWQ7IH0KKyAgICBib29sIHJldHJpZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2Fj
aGUoKSBjb25zdCB7IHJldHVybiBtX3JldHJpZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGU7IH0K
KworICAgIGNvbnN0IFNjcmlwdEJ1ZmZlciYgc2NyaXB0KCkgeyByZXR1cm4gbV9zY3JpcHQ7IH0K
KyAgICBjb25zdCBVUkwmIHJlc3BvbnNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZVVS
TDsgfQorICAgIGNvbnN0IFN0cmluZyYgcmVzcG9uc2VNSU1FVHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVzcG9uc2VNSU1FVHlwZTsgfQogCiBwcml2YXRlOgogICAgIFdvcmtlck1vZHVsZVNjcmlw
dExvYWRlcihNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBXb3Jr
ZXJTY3JpcHRGZXRjaGVyJiwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CkBAIC02
MSw4ICs2OCwxNSBAQCBjbGFzcyBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIgZmluYWwgOiBwdWJs
aWMgTW9kdWxlU2NyaXB0TG9hZGVyLCBwcml2YXRlIFdvcmtlcgogICAgIHZvaWQgZGlkUmVjZWl2
ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBmaW5hbCB7
IH0KICAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKCkgZmluYWw7CiAKKyAgICB2b2lkIG5vdGlmeUNs
aWVudEZpbmlzaGVkKCk7CisKICAgICBSZWY8V29ya2VyU2NyaXB0TG9hZGVyPiBtX3NjcmlwdExv
YWRlcjsKICAgICBVUkwgbV9zb3VyY2VVUkw7CisgICAgU2NyaXB0QnVmZmVyIG1fc2NyaXB0Owor
ICAgIFVSTCBtX3Jlc3BvbnNlVVJMOworICAgIFN0cmluZyBtX3Jlc3BvbnNlTUlNRVR5cGU7Cisg
ICAgYm9vbCBtX2ZhaWxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3JldHJpZXZlZEZyb21TZXJ2
aWNlV29ya2VyQ2FjaGUgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGVhMGY2NjY0ZDNkOGIzZDA5YWViMmY1YmY0OTZhYmY3M2I3NjU5ZTguLjhhMWQwYTU5
NmE0OTIwMjM4YTRjNDMyMTM3MWYzZDM1M2IyZDBmMDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAyMS0wNC0wOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAg
IFNlcnZpY2VXb3JrZXIgc2F2ZXMgbW9kdWxlIHNjcmlwdHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDM1NgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzU2MzQ4OTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNp
c3RlbnQtbW9kdWxlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdv
cmtlcnMvcmVzb3VyY2VzL3BlcnNpc3RlbnQtbW9kdWxlLXdvcmtlci5qczogQWRkZWQuCisKIDIw
MjEtMDQtMDggIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRkIHRlc3QgaW5mcmFzdHJ1Y3R1cmUgZm9yIGFwcCBib3VuZCByZXF1ZXN0IGNvbnRl
eHQgc3RyaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtl
cnMvcGVyc2lzdGVudC1tb2R1bGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LW1vZHVsZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdlZjIyZTlhNDMxYWQwMjcyNzEzYjcxZmRjODc5NDAxNmM4ZWYxMmYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1t
b2R1bGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjA4YjA0MTBmNzU2NTE4OWI5Nzg1NWZlYTFjN2IwMDhlYjg3M2Yx
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vy
cy9wZXJzaXN0ZW50LW1vZHVsZXMuaHRtbApAQCAtMCwwICsxLDU5IEBACis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9yb3V0aW5lcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBnZXRSYW5kb21JZEZyb21Xb3JrZXIod29ya2Vy
KQoreworICAgIHdvcmtlci5wb3N0TWVzc2FnZSgiZ2V0UmFuZG9tSWQiKTsKKyAgICByZXR1cm4g
bmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgbmF2aWdhdG9yLnNlcnZpY2VX
b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ICAgIHJlc29sdmUoZS5kYXRhKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK2lmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworfQorCit2YXIgcmVnaXN0cmF0aW9uOwordmFyIHdvcmtl
cjsKK2FzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpIHsKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoJ0ludGVybmFscyBBUEkgbmVlZGVkIGZv
ciB0aGlzIHRlc3QnKTsKKworICAgIHJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLnJlZ2lzdGVyKCJyZXNvdXJjZXMvcGVyc2lzdGVudC1tb2R1bGUtd29ya2VyLmpz
IiwgeworICAgICAgICB0eXBlOiAibW9kdWxlIgorICAgIH0pOworICAgIGlmIChyZWdpc3RyYXRp
b24uaW5zdGFsbGluZykgeworICAgICAgICB3b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGlu
ZzsKKyAgICAgICAgYXdhaXQgd2FpdEZvclN0YXRlKHdvcmtlciwgImFjdGl2YXRlZCIpOworICAg
IH0gZWxzZQorICAgICAgICB3b3JrZXIgPSByZWdpc3RyYXRpb24uYWN0aXZlOworCisgICAgbGV0
IGZyYW1lID0gYXdhaXQgd2l0aElmcmFtZSgicmVzb3VyY2VzIik7CisgICAgbGV0IHJhbmRvbUlk
ID0gYXdhaXQgZ2V0UmFuZG9tSWRGcm9tV29ya2VyKHdvcmtlcik7CisKKyAgICBpZiAoIXdpbmRv
dy5sb2NhdGlvbi5oYXNoLmxlbmd0aCkgeworICAgICAgICBpZiAod2luZG93LmludGVybmFscykK
KyAgICAgICAgICAgIGF3YWl0IGludGVybmFscy5zdG9yZVJlZ2lzdHJhdGlvbnNPbkRpc2soKTsK
KworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVy
LnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CisgICAgICAgIGF3YWl0IHdhaXRGb3IoMTAwKTsK
KyAgICAgICAgd2luZG93LmxvY2F0aW9uICs9ICI/dGVzdCMiICsgcmFuZG9tSWQ7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICgiIyIgKyBy
YW5kb21JZCkgPT0gd2luZG93LmxvY2F0aW9uLmhhc2ggPyAiUEFTUyIgOiAiRkFJTCI7CisgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
K30KK2RvVGVzdCgpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVu
dC1tb2R1bGUtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJz
L3Jlc291cmNlcy9wZXJzaXN0ZW50LW1vZHVsZS13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWJkZWQw
MGQ4YzY1M2Q1ZmVlMzBiYjViNjMxZjJiZWYxMDBiODYyNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVudC1t
b2R1bGUtd29ya2VyLmpzCkBAIC0wLDAgKzEsMiBAQAoraW1wb3J0ICIuL3BlcnNpc3RlbnQtaW1w
b3J0U2NyaXB0cy1zY3JpcHQucHkiOworCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425574</attachid>
            <date>2021-04-08 19:42:19 -0700</date>
            <delta_ts>2021-04-08 19:52:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224356-20210408194218.patch</filename>
            <type>text/plain</type>
            <size>16536</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1Njg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkyOTdjNTFkMDcxOTYy
NzkwNjM0ODk5NWI5N2YyMTRkZTQxMmZlMi4uOGM0YjhmODU5OWFhYjM4ZmE0ZjY5YmJlM2M2ZDdj
MWFjOWViNzYyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA0LTA4ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2VydmljZVdvcmtlciBz
YXZlcyBtb2R1bGUgc2NyaXB0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI0MzU2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NTYzNDg5Nz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBodHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLmh0bWwKKworICAgICAgICBJ
biB0aGlzIHBhdGNoLCB3ZSBhcHByb3ByaWF0ZWx5IGNhbGwgc2V0U2NyaXB0UmVzb3VyY2UgLyBz
Y3JpcHRSZXNvdXJjZSB3aGlsZSBsb2FkaW5nIHNlcnZpY2Utd29ya2VyIG1vZHVsZSBzY3JpcHRz
IGZyb20gbW9kdWxlIGxvYWRlcnMKKyAgICAgICAgc28gdGhhdCB3ZSBjYW4gZW5zdXJlIHRoYXQg
dGhleSBhcmUgc2F2ZWQgb24gdGhlIGRpc2suCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3Jp
cHRNb2R1bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVy
OjpmZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZp
bmlzaGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKToK
KyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNo
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlD
bGllbnRGaW5pc2hlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0
TG9hZGVyLmg6CisKIDIwMjEtMDQtMDggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNzM1NDEpIFdLV2ViVmlldyBjYW4n
dCBsb2FkIE5TVVJMUmVxdWVzdCBzdWJjbGFzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcAppbmRleCBhZDQ3ZmUxMzBiMGNkODRmYmZh
NTYxYzAzMzQ4ZTljZmI3M2I5M2M4Li41Y2FjN2M1N2ZhODA0ZGE1MTNmM2E4MzYxMzExMWU4YzE3
N2EzMjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1
bGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVs
ZUxvYWRlci5jcHAKQEAgLTE4OCw2ICsxODgsNyBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBT
Y3JpcHRNb2R1bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsTwog
ICAgIH0gZWxzZSB7CiAgICAgICAgIGF1dG8gbG9hZGVyID0gV29ya2VyTW9kdWxlU2NyaXB0TG9h
ZGVyOjpjcmVhdGUoKnRoaXMsIGRlZmVycmVkLmdldCgpLCAqc3RhdGljX2Nhc3Q8V29ya2VyU2Ny
aXB0RmV0Y2hlcio+KEpTQzo6anNDYXN0PEpTQzo6SlNTY3JpcHRGZXRjaGVyKj4oc2NyaXB0RmV0
Y2hlciktPmZldGNoZXIoKSksIFdURk1vdmUodG9wTGV2ZWxGZXRjaFBhcmFtZXRlcnMpKTsKICAg
ICAgICAgbV9sb2FkZXJzLmFkZChsb2FkZXIuY29weVJlZigpKTsKKyAgICAgICAgLy8gVGhpcyBj
YW4gaW52b2tlIGNhbGxiYWNrIGltbWVkaWF0ZWx5LgogICAgICAgICBsb2FkZXItPmxvYWQobV9j
b250ZXh0LCBXVEZNb3ZlKGNvbXBsZXRlZFVSTCkpOwogICAgIH0KIApAQCAtMzY5LDggKzM3MCw2
IEBAIHZvaWQgU2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChNb2R1bGVTY3JpcHRM
b2FkZXImIG1vZHVsZVNjcmlwdExvYWRlciwKICAgICAgICAgICAgIGlmIChzb3VyY2VVUkwuaGFz
RnJhZ21lbnRJZGVudGlmaWVyKCkpCiAgICAgICAgICAgICAgICAgcmVzcG9uc2VVUkwuc2V0RnJh
Z21lbnRJZGVudGlmaWVyKHNvdXJjZVVSTC5mcmFnbWVudElkZW50aWZpZXIoKSk7CiAgICAgICAg
IH0KLQotICAgICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwu
c3RyaW5nKCksIHJlc3BvbnNlVVJMKTsKICAgICAgICAgcmV0dXJuIHJlc3BvbnNlVVJMOwogICAg
IH07CiAKQEAgLTQwOCwxNiArNDA3LDE5IEBAIHZvaWQgU2NyaXB0TW9kdWxlTG9hZGVyOjpub3Rp
ZnlGaW5pc2hlZChNb2R1bGVTY3JpcHRMb2FkZXImIG1vZHVsZVNjcmlwdExvYWRlciwKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVz
cG9uc2VVUkwoY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkudXJsKCksIGNhY2hlZFNjcmlwdC5oYXNS
ZWRpcmVjdGlvbnMoKSwgY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkuc291cmNlKCkpOworICAgICAg
ICBVUkwgcmVzcG9uc2VVUkwgPSBjYW5vbmljYWxpemVBbmRSZWdpc3RlclJlc3BvbnNlVVJMKGNh
Y2hlZFNjcmlwdC5yZXNwb25zZSgpLnVybCgpLCBjYWNoZWRTY3JpcHQuaGFzUmVkaXJlY3Rpb25z
KCksIGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLnNvdXJjZSgpKTsKKyAgICAgICAgbV9yZXF1ZXN0
VVJMVG9SZXNwb25zZVVSTE1hcC5hZGQoc291cmNlVVJMLnN0cmluZygpLCByZXNwb25zZVVSTCk7
CiAgICAgICAgIHByb21pc2UtPnJlc29sdmVXaXRoQ2FsbGJhY2soWyZdIChKU0RPTUdsb2JhbE9i
amVjdCYganNHbG9iYWxPYmplY3QpIHsKICAgICAgICAgICAgIHJldHVybiBKU0M6OkpTU291cmNl
Q29kZTo6Y3JlYXRlKGpzR2xvYmFsT2JqZWN0LnZtKCksCiAgICAgICAgICAgICAgICAgSlNDOjpT
b3VyY2VDb2RlIHsgU2NyaXB0U291cmNlQ29kZSB7ICZjYWNoZWRTY3JpcHQsIEpTQzo6U291cmNl
UHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1bGUsIGxvYWRlci5zY3JpcHRGZXRjaGVyKCkgfS5qc1Nv
dXJjZUNvZGUoKSB9KTsKICAgICAgICAgfSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgYXV0byYg
bG9hZGVyID0gc3RhdGljX2Nhc3Q8V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyJj4obW9kdWxlU2Ny
aXB0TG9hZGVyKTsKLSAgICAgICAgYXV0byYgd29ya2VyU2NyaXB0TG9hZGVyID0gbG9hZGVyLnNj
cmlwdExvYWRlcigpOwogCi0gICAgICAgIGlmICh3b3JrZXJTY3JpcHRMb2FkZXIuZmFpbGVkKCkp
IHsKKyAgICAgICAgaWYgKGxvYWRlci5mYWlsZWQoKSkgeworICAgICAgICAgICAgQVNTRVJUKCFs
b2FkZXIucmV0cmlldmVkRnJvbVNlcnZpY2VXb3JrZXJDYWNoZSgpKTsKKyAgICAgICAgICAgIGF1
dG8mIHdvcmtlclNjcmlwdExvYWRlciA9IGxvYWRlci5zY3JpcHRMb2FkZXIoKTsKKyAgICAgICAg
ICAgIEFTU0VSVCh3b3JrZXJTY3JpcHRMb2FkZXIuZmFpbGVkKCkpOwogICAgICAgICAgICAgaWYg
KHdvcmtlclNjcmlwdExvYWRlci5lcnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7CiAgICAgICAg
ICAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9k
dWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9h
ZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtNDMyLDI0ICs0MzQsMzIgQEAgdm9pZCBTY3JpcHRN
b2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKE1vZHVsZVNjcmlwdExvYWRlciYgbW9kdWxlU2Ny
aXB0TG9hZGVyLAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgaWYg
KCFNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZSh3b3JrZXJT
Y3JpcHRMb2FkZXIucmVzcG9uc2VNSU1FVHlwZSgpKSkgeworICAgICAgICBpZiAoIU1JTUVUeXBl
UmVnaXN0cnk6OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKGxvYWRlci5yZXNwb25zZU1J
TUVUeXBlKCkpKSB7CiAgICAgICAgICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3Jn
L211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAog
ICAgICAgICAgICAgLy8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20g
cmVzcG9uc2UncyBoZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2
YVNjcmlwdCBNSU1FIHR5cGUuCiAgICAgICAgICAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25z
LCBmZXRjaGluZyBhIGNsYXNzaWMgc2NyaXB0IGRvZXMgbm90IGluY2x1ZGUgTUlNRSB0eXBlIGNo
ZWNraW5nLiBJbiBjb250cmFzdCwgbW9kdWxlIHNjcmlwdHMgd2lsbCBmYWlsIHRvIGxvYWQgaWYg
dGhleSBhcmUgbm90IG9mIGEgY29ycmVjdCBNSU1FIHR5cGUuCi0gICAgICAgICAgICBwcm9taXNl
LT5yZWplY3QoVHlwZUVycm9yLCBtYWtlU3RyaW5nKCInIiwgd29ya2VyU2NyaXB0TG9hZGVyLnJl
c3BvbnNlTUlNRVR5cGUoKSwgIicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUu
IikpOworICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygi
JyIsIGxvYWRlci5yZXNwb25zZU1JTUVUeXBlKCksICInIGlzIG5vdCBhIHZhbGlkIEphdmFTY3Jp
cHQgTUlNRSB0eXBlLiIpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAg
ICAgIGlmIChhdXRvKiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgewotICAgICAg
ICAgICAgLy8gSWYgdGhpcyBpcyB0b3AtbGV2ZWwtbW9kdWxlLCB0aGVuIHdlIGV4dHJhY3QgcmVm
ZXJyZXItcG9saWN5IGFuZCBhcHBseSB0byB0aGUgZGVwZW5kZW50IG1vZHVsZXMuCi0gICAgICAg
ICAgICBpZiAocGFyYW1ldGVycy0+aXNUb3BMZXZlbE1vZHVsZSgpKQotICAgICAgICAgICAgICAg
IHN0YXRpY19jYXN0PFdvcmtlclNjcmlwdEZldGNoZXImPihsb2FkZXIuc2NyaXB0RmV0Y2hlcigp
KS5zZXRSZWZlcnJlclBvbGljeShsb2FkZXIucmVmZXJyZXJQb2xpY3koKSk7CisgICAgICAgIFVS
TCByZXNwb25zZVVSTCA9IGxvYWRlci5yZXNwb25zZVVSTCgpOworICAgICAgICBpZiAoIWxvYWRl
ci5yZXRyaWV2ZWRGcm9tU2VydmljZVdvcmtlckNhY2hlKCkpIHsKKyAgICAgICAgICAgIGF1dG8m
IHdvcmtlclNjcmlwdExvYWRlciA9IGxvYWRlci5zY3JpcHRMb2FkZXIoKTsKKyAgICAgICAgICAg
IGlmIChhdXRvKiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgeworICAgICAgICAg
ICAgICAgIC8vIElmIHRoaXMgaXMgdG9wLWxldmVsLW1vZHVsZSwgdGhlbiB3ZSBleHRyYWN0IHJl
ZmVycmVyLXBvbGljeSBhbmQgYXBwbHkgdG8gdGhlIGRlcGVuZGVudCBtb2R1bGVzLgorICAgICAg
ICAgICAgICAgIGlmIChwYXJhbWV0ZXJzLT5pc1RvcExldmVsTW9kdWxlKCkpCisgICAgICAgICAg
ICAgICAgICAgIHN0YXRpY19jYXN0PFdvcmtlclNjcmlwdEZldGNoZXImPihsb2FkZXIuc2NyaXB0
RmV0Y2hlcigpKS5zZXRSZWZlcnJlclBvbGljeShsb2FkZXIucmVmZXJyZXJQb2xpY3koKSk7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICByZXNwb25zZVVSTCA9IGNhbm9uaWNhbGl6ZUFuZFJl
Z2lzdGVyUmVzcG9uc2VVUkwocmVzcG9uc2VVUkwsIHdvcmtlclNjcmlwdExvYWRlci5pc1JlZGly
ZWN0ZWQoKSwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlU291cmNlKCkpOworI2lmIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKKyAgICAgICAgICAgIGlmIChpczxTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGU+KG1fY29udGV4dCkpCisgICAgICAgICAgICAgICAgZG93bmNhc3Q8U2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlPihtX2NvbnRleHQpLnNldFNjcmlwdFJlc291cmNlKHNvdXJjZVVSTCwgU2Vy
dmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdCB7IGxvYWRlci5zY3JpcHQoKSwg
cmVzcG9uc2VVUkwsIGxvYWRlci5yZXNwb25zZU1JTUVUeXBlKCkgfSk7CisjZW5kaWYKICAgICAg
ICAgfQotCi0gICAgICAgIFVSTCByZXNwb25zZVVSTCA9IGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVy
UmVzcG9uc2VVUkwod29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlVVJMKCksIHdvcmtlclNjcmlw
dExvYWRlci5pc1JlZGlyZWN0ZWQoKSwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlU291cmNl
KCkpOworICAgICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwu
c3RyaW5nKCksIHJlc3BvbnNlVVJMKTsKICAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhDYWxs
YmFjayhbJl0gKEpTRE9NR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCkgewogICAgICAgICAg
ICAgcmV0dXJuIEpTQzo6SlNTb3VyY2VDb2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwK
LSAgICAgICAgICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgd29y
a2VyU2NyaXB0TG9hZGVyLnNjcmlwdCgpLCBXVEZNb3ZlKHJlc3BvbnNlVVJMKSwgeyB9LCBKU0M6
OlNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigp
IH0uanNTb3VyY2VDb2RlKCkgfSk7CisgICAgICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2RlIHsg
U2NyaXB0U291cmNlQ29kZSB7IGxvYWRlci5zY3JpcHQoKSwgV1RGTW92ZShyZXNwb25zZVVSTCks
IHsgfSwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNjcmlw
dEZldGNoZXIoKSB9LmpzU291cmNlQ29kZSgpIH0pOwogICAgICAgICB9KTsKICAgICB9CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0
TG9hZGVyLmNwcAppbmRleCBmODcwYTBkMWRhMzM4NTAwZjhlNGQ5MjY3MjNlZjU0MDlmZmNmNTli
Li44MmUyMzY5NzEwOGZlZDIyMjA5Yzg1Mjc2M2Q2ZTA0ZWMwOTE1ZTJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5j
cHAKQEAgLTYxLDYgKzYxLDE5IEBAIGJvb2wgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2Fk
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFVSTCYmIHNvdXJjCiB7CiAgICAgbV9z
b3VyY2VVUkwgPSBXVEZNb3ZlKHNvdXJjZVVSTCk7CiAKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCisgICAgaWYgKGlzPFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkpIHsKKyAg
ICAgICAgaWYgKGF1dG8qIHNjcmlwdFJlc291cmNlID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckds
b2JhbFNjb3BlPihjb250ZXh0KS5zY3JpcHRSZXNvdXJjZShtX3NvdXJjZVVSTCkpIHsKKyAgICAg
ICAgICAgIG1fc2NyaXB0ID0gc2NyaXB0UmVzb3VyY2UtPnNjcmlwdDsKKyAgICAgICAgICAgIG1f
cmVzcG9uc2VVUkwgPSBzY3JpcHRSZXNvdXJjZS0+cmVzcG9uc2VVUkw7CisgICAgICAgICAgICBt
X3Jlc3BvbnNlTUlNRVR5cGUgPSBzY3JpcHRSZXNvdXJjZS0+bWltZVR5cGU7CisgICAgICAgICAg
ICBtX3JldHJpZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGUgPSB0cnVlOworICAgICAgICAgICAg
bm90aWZ5Q2xpZW50RmluaXNoZWQoKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICB9CisgICAgfQorI2VuZGlmCisKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCB7IG1fc291
cmNlVVJMIH07CiAKICAgICBGZXRjaE9wdGlvbnMgZmV0Y2hPcHRpb25zOwpAQCAtOTQsNyArMTA3
LDIxIEBAIHZvaWQgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZCgpCiB7
CiAgICAgQVNTRVJUKG1fcHJvbWlzZSk7CiAKKyAgICBpZiAobV9zY3JpcHRMb2FkZXItPmZhaWxl
ZCgpKQorICAgICAgICBtX2ZhaWxlZCA9IHRydWU7CisgICAgZWxzZSB7CisgICAgICAgIG1fc2Ny
aXB0ID0gbV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpOworICAgICAgICBtX3Jlc3BvbnNlVVJMID0g
bV9zY3JpcHRMb2FkZXItPnJlc3BvbnNlVVJMKCk7CisgICAgICAgIG1fcmVzcG9uc2VNSU1FVHlw
ZSA9IG1fc2NyaXB0TG9hZGVyLT5yZXNwb25zZU1JTUVUeXBlKCk7CisgICAgfQorCisgICAgbm90
aWZ5Q2xpZW50RmluaXNoZWQoKTsKK30KKwordm9pZCBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6
Om5vdGlmeUNsaWVudEZpbmlzaGVkKCkKK3sKICAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKTsKKwogICAgIGlmIChtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPm5vdGlm
eUZpbmlzaGVkKCp0aGlzLCBXVEZNb3ZlKG1fc291cmNlVVJMKSwgbV9wcm9taXNlLnJlbGVhc2VO
b25OdWxsKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29y
a2VyTW9kdWxlU2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3Jr
ZXJNb2R1bGVTY3JpcHRMb2FkZXIuaAppbmRleCBjNWRiN2U5M2VjMzc0YmIxZWQ5MjhhZTdlZTAz
MWZkNTQwYmQyOGNlLi43NmQxNGRhZmFhYWQxMjI5YmVlMDNlYjcxMjk2MmIwYWI2M2EwNWI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRM
b2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3Jp
cHRMb2FkZXIuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJN
b2R1bGVTY3JpcHRMb2FkZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRCdWZmZXIuaCIKICNpbmNsdWRl
ICJXb3JrZXJTY3JpcHRGZXRjaGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xp
ZW50LmgiCiAjaW5jbHVkZSA8d3RmL1JlZi5oPgpAQCAtNTQsNiArNTUsMTIgQEAgY2xhc3MgV29y
a2VyTW9kdWxlU2NyaXB0TG9hZGVyIGZpbmFsIDogcHVibGljIE1vZHVsZVNjcmlwdExvYWRlciwg
cHJpdmF0ZSBXb3JrZXIKIAogICAgIHN0YXRpYyBTdHJpbmcgdGFza01vZGUoKTsKICAgICBSZWZl
cnJlclBvbGljeSByZWZlcnJlclBvbGljeSgpOworICAgIGJvb2wgZmFpbGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9mYWlsZWQ7IH0KKyAgICBib29sIHJldHJpZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2Fj
aGUoKSBjb25zdCB7IHJldHVybiBtX3JldHJpZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGU7IH0K
KworICAgIGNvbnN0IFNjcmlwdEJ1ZmZlciYgc2NyaXB0KCkgeyByZXR1cm4gbV9zY3JpcHQ7IH0K
KyAgICBjb25zdCBVUkwmIHJlc3BvbnNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZVVS
TDsgfQorICAgIGNvbnN0IFN0cmluZyYgcmVzcG9uc2VNSU1FVHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVzcG9uc2VNSU1FVHlwZTsgfQogCiBwcml2YXRlOgogICAgIFdvcmtlck1vZHVsZVNjcmlw
dExvYWRlcihNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBXb3Jr
ZXJTY3JpcHRGZXRjaGVyJiwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CkBAIC02
MSw4ICs2OCwxNSBAQCBjbGFzcyBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIgZmluYWwgOiBwdWJs
aWMgTW9kdWxlU2NyaXB0TG9hZGVyLCBwcml2YXRlIFdvcmtlcgogICAgIHZvaWQgZGlkUmVjZWl2
ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBmaW5hbCB7
IH0KICAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKCkgZmluYWw7CiAKKyAgICB2b2lkIG5vdGlmeUNs
aWVudEZpbmlzaGVkKCk7CisKICAgICBSZWY8V29ya2VyU2NyaXB0TG9hZGVyPiBtX3NjcmlwdExv
YWRlcjsKICAgICBVUkwgbV9zb3VyY2VVUkw7CisgICAgU2NyaXB0QnVmZmVyIG1fc2NyaXB0Owor
ICAgIFVSTCBtX3Jlc3BvbnNlVVJMOworICAgIFN0cmluZyBtX3Jlc3BvbnNlTUlNRVR5cGU7Cisg
ICAgYm9vbCBtX2ZhaWxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3JldHJpZXZlZEZyb21TZXJ2
aWNlV29ya2VyQ2FjaGUgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGVhMGY2NjY0ZDNkOGIzZDA5YWViMmY1YmY0OTZhYmY3M2I3NjU5ZTguLjk1MmMzNDFk
M2UxNDNmMzM3YjE4OWU5MTE3OGRhNDRkODdmYmE4YmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAyMS0wNC0wOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAg
IFNlcnZpY2VXb3JrZXIgc2F2ZXMgbW9kdWxlIHNjcmlwdHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDM1NgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzU2MzQ4OTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNp
c3RlbnQtbW9kdWxlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdv
cmtlcnMvcGVyc2lzdGVudC10b3AtbGV2ZWwtbW9kdWxlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LXRvcC1sZXZlbC1t
b2R1bGVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9y
ZXNvdXJjZXMvcGVyc2lzdGVudC1tb2R1bGUtd29ya2VyLmpzOiBBZGRlZC4KKwogMjAyMS0wNC0w
OCAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBB
ZGQgdGVzdCBpbmZyYXN0cnVjdHVyZSBmb3IgYXBwIGJvdW5kIHJlcXVlc3QgY29udGV4dCBzdHJp
bmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJz
aXN0ZW50LW1vZHVsZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2Vydmlj
ZS13b3JrZXJzL3BlcnNpc3RlbnQtbW9kdWxlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Vm
MjJlOWE0MzFhZDAyNzI3MTNiNzFmZGM4Nzk0MDE2YzhlZjEyZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LW1vZHVsZXMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LW1vZHVsZXMuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LW1vZHVsZXMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42MDhiMDQxMGY3NTY1MTg5Yjk3ODU1ZmVhMWM3YjAwOGViODczZjFiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNp
c3RlbnQtbW9kdWxlcy5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3JvdXRpbmVzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGdldFJhbmRvbUlkRnJvbVdvcmtlcih3b3JrZXIpCit7Cisg
ICAgd29ya2VyLnBvc3RNZXNzYWdlKCJnZXRSYW5kb21JZCIpOworICAgIHJldHVybiBuZXcgUHJv
bWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5h
ZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgcmVz
b2x2ZShlLmRhdGEpOworICAgICAgICB9KTsKKyAgICB9KTsKK30KKworaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7Cit9CisKK3ZhciByZWdpc3RyYXRpb247Cit2YXIgd29ya2VyOworYXN5
bmMgZnVuY3Rpb24gZG9UZXN0KCkgeworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgnSW50ZXJuYWxzIEFQSSBuZWVkZWQgZm9yIHRoaXMg
dGVzdCcpOworCisgICAgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3Jr
ZXIucmVnaXN0ZXIoInJlc291cmNlcy9wZXJzaXN0ZW50LW1vZHVsZS13b3JrZXIuanMiLCB7Cisg
ICAgICAgIHR5cGU6ICJtb2R1bGUiCisgICAgfSk7CisgICAgaWYgKHJlZ2lzdHJhdGlvbi5pbnN0
YWxsaW5nKSB7CisgICAgICAgIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOworICAg
ICAgICBhd2FpdCB3YWl0Rm9yU3RhdGUod29ya2VyLCAiYWN0aXZhdGVkIik7CisgICAgfSBlbHNl
CisgICAgICAgIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5hY3RpdmU7CisKKyAgICBsZXQgZnJhbWUg
PSBhd2FpdCB3aXRoSWZyYW1lKCJyZXNvdXJjZXMiKTsKKyAgICBsZXQgcmFuZG9tSWQgPSBhd2Fp
dCBnZXRSYW5kb21JZEZyb21Xb3JrZXIod29ya2VyKTsKKworICAgIGlmICghd2luZG93LmxvY2F0
aW9uLmhhc2gubGVuZ3RoKSB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAg
ICAgICAgYXdhaXQgaW50ZXJuYWxzLnN0b3JlUmVnaXN0cmF0aW9uc09uRGlzaygpOworCisgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIudGVybWlu
YXRlTmV0d29ya1Byb2Nlc3MoKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvcigxMDApOworICAgICAg
ICB3aW5kb3cubG9jYXRpb24gKz0gIj90ZXN0IyIgKyByYW5kb21JZDsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gKCIjIiArIHJhbmRvbUlk
KSA9PSB3aW5kb3cubG9jYXRpb24uaGFzaCA/ICJQQVNTIiA6ICJGQUlMIjsKKyAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorZG9U
ZXN0KCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNpc3RlbnQtdG9wLWxldmVsLW1vZHVs
ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Bl
cnNpc3RlbnQtdG9wLWxldmVsLW1vZHVsZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZjIy
ZTlhNDMxYWQwMjcyNzEzYjcxZmRjODc5NDAxNmM4ZWYxMmYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC10b3AtbGV2ZWwt
bW9kdWxlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNpc3RlbnQtdG9wLWxldmVsLW1v
ZHVsZXMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0
ZW50LXRvcC1sZXZlbC1tb2R1bGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWE3NGNhNWVjODA3Mjk2MDMy
YThjNWRmOGQxYjEwYjI1MjVmODE1ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LXRvcC1sZXZlbC1tb2R1bGVzLmh0bWwK
QEAgLTAsMCArMSw1OSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cm91dGluZXMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZnVuY3Rp
b24gZ2V0UmFuZG9tSWRGcm9tV29ya2VyKHdvcmtlcikKK3sKKyAgICB3b3JrZXIucG9zdE1lc3Nh
Z2UoImdldFJhbmRvbUlkIik7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29s
dmUpIHsKKyAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ21l
c3NhZ2UnLCBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICByZXNvbHZlKGUuZGF0YSk7CisgICAg
ICAgIH0pOworICAgIH0pOworfQorCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKK30K
KwordmFyIHJlZ2lzdHJhdGlvbjsKK3ZhciB3b3JrZXI7Cithc3luYyBmdW5jdGlvbiBkb1Rlc3Qo
KSB7CisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgcmV0dXJuIFByb21pc2Uu
cmVqZWN0KCdJbnRlcm5hbHMgQVBJIG5lZWRlZCBmb3IgdGhpcyB0ZXN0Jyk7CisKKyAgICByZWdp
c3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigicmVzb3Vy
Y2VzL3BlcnNpc3RlbnQtaW1wb3J0U2NyaXB0cy1zY3JpcHQucHkiLCB7CisgICAgICAgIHR5cGU6
ICJtb2R1bGUiCisgICAgfSk7CisgICAgaWYgKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nKSB7Cisg
ICAgICAgIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOworICAgICAgICBhd2FpdCB3
YWl0Rm9yU3RhdGUod29ya2VyLCAiYWN0aXZhdGVkIik7CisgICAgfSBlbHNlCisgICAgICAgIHdv
cmtlciA9IHJlZ2lzdHJhdGlvbi5hY3RpdmU7CisKKyAgICBsZXQgZnJhbWUgPSBhd2FpdCB3aXRo
SWZyYW1lKCJyZXNvdXJjZXMiKTsKKyAgICBsZXQgcmFuZG9tSWQgPSBhd2FpdCBnZXRSYW5kb21J
ZEZyb21Xb3JrZXIod29ya2VyKTsKKworICAgIGlmICghd2luZG93LmxvY2F0aW9uLmhhc2gubGVu
Z3RoKSB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgYXdhaXQg
aW50ZXJuYWxzLnN0b3JlUmVnaXN0cmF0aW9uc09uRGlzaygpOworCisgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIudGVybWluYXRlTmV0d29ya1By
b2Nlc3MoKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvcigxMDApOworICAgICAgICB3aW5kb3cubG9j
YXRpb24gKz0gIj90ZXN0IyIgKyByYW5kb21JZDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gKCIjIiArIHJhbmRvbUlkKSA9PSB3aW5kb3cu
bG9jYXRpb24uaGFzaCA/ICJQQVNTIiA6ICJGQUlMIjsKKyAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorZG9UZXN0KCk7CisKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93
cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9wZXJzaXN0ZW50LW1vZHVsZS13b3JrZXIuanMg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3BlcnNpc3Rl
bnQtbW9kdWxlLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYmRlZDAwZDhjNjUzZDVmZWUzMGJiNWI2
MzFmMmJlZjEwMGI4NjI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9wZXJzaXN0ZW50LW1vZHVsZS13b3JrZXIuanMKQEAg
LTAsMCArMSwyIEBACitpbXBvcnQgIi4vcGVyc2lzdGVudC1pbXBvcnRTY3JpcHRzLXNjcmlwdC5w
eSI7CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425576</attachid>
            <date>2021-04-08 19:52:38 -0700</date>
            <delta_ts>2021-04-08 20:08:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224356-20210408195238.patch</filename>
            <type>text/plain</type>
            <size>18144</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1Njg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkyOTdjNTFkMDcxOTYy
NzkwNjM0ODk5NWI5N2YyMTRkZTQxMmZlMi4uN2U0MDcwOTVjMWNiNjY4MGIzOWRlZWI5YmNkZDM4
YmI3MGU0NDMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA0LTA4ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2VydmljZVdvcmtlciBz
YXZlcyBtb2R1bGUgc2NyaXB0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI0MzU2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NTYzNDg5Nz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBodHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLmh0bWwKKworICAgICAgICBJ
biB0aGlzIHBhdGNoLCB3ZSBjYWxsIHNldFNjcmlwdFJlc291cmNlIC8gc2NyaXB0UmVzb3VyY2Ug
d2hpbGUgbG9hZGluZyBzZXJ2aWNlLXdvcmtlciBtb2R1bGUgc2NyaXB0cyBpbiBtb2R1bGUgbG9h
ZGVycywKKyAgICAgICAgc28gdGhhdCB3ZSBjYW4gZW5zdXJlIHRoYXQgdGhleSBhcmUgc2F2ZWQg
b24gdGhlIGRpc2suCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRjaCk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKToKKyAgICAgICAgKFdlYkNv
cmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlDbGllbnRGaW5pc2hlZCk6
CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmg6CisKIDIw
MjEtMDQtMDggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBSRUdSRVNTSU9OKHIyNzM1NDEpIFdLV2ViVmlldyBjYW4ndCBsb2FkIE5TVVJMUmVx
dWVzdCBzdWJjbGFzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRNb2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
TW9kdWxlTG9hZGVyLmNwcAppbmRleCBhZDQ3ZmUxMzBiMGNkODRmYmZhNTYxYzAzMzQ4ZTljZmI3
M2I5M2M4Li41Y2FjN2M1N2ZhODA0ZGE1MTNmM2E4MzYxMzExMWU4YzE3N2EzMjMwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKQEAg
LTE4OCw2ICsxODgsNyBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1bGVMb2Fk
ZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsTwogICAgIH0gZWxzZSB7CiAg
ICAgICAgIGF1dG8gbG9hZGVyID0gV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoKnRo
aXMsIGRlZmVycmVkLmdldCgpLCAqc3RhdGljX2Nhc3Q8V29ya2VyU2NyaXB0RmV0Y2hlcio+KEpT
Qzo6anNDYXN0PEpTQzo6SlNTY3JpcHRGZXRjaGVyKj4oc2NyaXB0RmV0Y2hlciktPmZldGNoZXIo
KSksIFdURk1vdmUodG9wTGV2ZWxGZXRjaFBhcmFtZXRlcnMpKTsKICAgICAgICAgbV9sb2FkZXJz
LmFkZChsb2FkZXIuY29weVJlZigpKTsKKyAgICAgICAgLy8gVGhpcyBjYW4gaW52b2tlIGNhbGxi
YWNrIGltbWVkaWF0ZWx5LgogICAgICAgICBsb2FkZXItPmxvYWQobV9jb250ZXh0LCBXVEZNb3Zl
KGNvbXBsZXRlZFVSTCkpOwogICAgIH0KIApAQCAtMzY5LDggKzM3MCw2IEBAIHZvaWQgU2NyaXB0
TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChNb2R1bGVTY3JpcHRMb2FkZXImIG1vZHVsZVNj
cmlwdExvYWRlciwKICAgICAgICAgICAgIGlmIChzb3VyY2VVUkwuaGFzRnJhZ21lbnRJZGVudGlm
aWVyKCkpCiAgICAgICAgICAgICAgICAgcmVzcG9uc2VVUkwuc2V0RnJhZ21lbnRJZGVudGlmaWVy
KHNvdXJjZVVSTC5mcmFnbWVudElkZW50aWZpZXIoKSk7CiAgICAgICAgIH0KLQotICAgICAgICBt
X3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCksIHJlc3Bv
bnNlVVJMKTsKICAgICAgICAgcmV0dXJuIHJlc3BvbnNlVVJMOwogICAgIH07CiAKQEAgLTQwOCwx
NiArNDA3LDE5IEBAIHZvaWQgU2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChNb2R1
bGVTY3JpcHRMb2FkZXImIG1vZHVsZVNjcmlwdExvYWRlciwKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogCi0gICAgICAgIGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVzcG9uc2VVUkwoY2FjaGVk
U2NyaXB0LnJlc3BvbnNlKCkudXJsKCksIGNhY2hlZFNjcmlwdC5oYXNSZWRpcmVjdGlvbnMoKSwg
Y2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkuc291cmNlKCkpOworICAgICAgICBVUkwgcmVzcG9uc2VV
UkwgPSBjYW5vbmljYWxpemVBbmRSZWdpc3RlclJlc3BvbnNlVVJMKGNhY2hlZFNjcmlwdC5yZXNw
b25zZSgpLnVybCgpLCBjYWNoZWRTY3JpcHQuaGFzUmVkaXJlY3Rpb25zKCksIGNhY2hlZFNjcmlw
dC5yZXNwb25zZSgpLnNvdXJjZSgpKTsKKyAgICAgICAgbV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVS
TE1hcC5hZGQoc291cmNlVVJMLnN0cmluZygpLCByZXNwb25zZVVSTCk7CiAgICAgICAgIHByb21p
c2UtPnJlc29sdmVXaXRoQ2FsbGJhY2soWyZdIChKU0RPTUdsb2JhbE9iamVjdCYganNHbG9iYWxP
YmplY3QpIHsKICAgICAgICAgICAgIHJldHVybiBKU0M6OkpTU291cmNlQ29kZTo6Y3JlYXRlKGpz
R2xvYmFsT2JqZWN0LnZtKCksCiAgICAgICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2RlIHsgU2Ny
aXB0U291cmNlQ29kZSB7ICZjYWNoZWRTY3JpcHQsIEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VU
eXBlOjpNb2R1bGUsIGxvYWRlci5zY3JpcHRGZXRjaGVyKCkgfS5qc1NvdXJjZUNvZGUoKSB9KTsK
ICAgICAgICAgfSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgYXV0byYgbG9hZGVyID0gc3RhdGlj
X2Nhc3Q8V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyJj4obW9kdWxlU2NyaXB0TG9hZGVyKTsKLSAg
ICAgICAgYXV0byYgd29ya2VyU2NyaXB0TG9hZGVyID0gbG9hZGVyLnNjcmlwdExvYWRlcigpOwog
Ci0gICAgICAgIGlmICh3b3JrZXJTY3JpcHRMb2FkZXIuZmFpbGVkKCkpIHsKKyAgICAgICAgaWYg
KGxvYWRlci5mYWlsZWQoKSkgeworICAgICAgICAgICAgQVNTRVJUKCFsb2FkZXIucmV0cmlldmVk
RnJvbVNlcnZpY2VXb3JrZXJDYWNoZSgpKTsKKyAgICAgICAgICAgIGF1dG8mIHdvcmtlclNjcmlw
dExvYWRlciA9IGxvYWRlci5zY3JpcHRMb2FkZXIoKTsKKyAgICAgICAgICAgIEFTU0VSVCh3b3Jr
ZXJTY3JpcHRMb2FkZXIuZmFpbGVkKCkpOwogICAgICAgICAgICAgaWYgKHdvcmtlclNjcmlwdExv
YWRlci5lcnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7CiAgICAgICAgICAgICAgICAgcmVqZWN0
VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJl
S2luZDo6V2FzRXJyb3JlZCwgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jv
c3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuOwpAQCAtNDMyLDI0ICs0MzQsMzIgQEAgdm9pZCBTY3JpcHRNb2R1bGVMb2FkZXI6Om5v
dGlmeUZpbmlzaGVkKE1vZHVsZVNjcmlwdExvYWRlciYgbW9kdWxlU2NyaXB0TG9hZGVyLAogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCFNSU1FVHlwZVJlZ2lz
dHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZSh3b3JrZXJTY3JpcHRMb2FkZXIucmVz
cG9uc2VNSU1FVHlwZSgpKSkgeworICAgICAgICBpZiAoIU1JTUVUeXBlUmVnaXN0cnk6OmlzU3Vw
cG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKGxvYWRlci5yZXNwb25zZU1JTUVUeXBlKCkpKSB7CiAg
ICAgICAgICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJh
cHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAogICAgICAgICAgICAgLy8g
VGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20gcmVzcG9uc2UncyBoZWFk
ZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2YVNjcmlwdCBNSU1FIHR5
cGUuCiAgICAgICAgICAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBmZXRjaGluZyBhIGNs
YXNzaWMgc2NyaXB0IGRvZXMgbm90IGluY2x1ZGUgTUlNRSB0eXBlIGNoZWNraW5nLiBJbiBjb250
cmFzdCwgbW9kdWxlIHNjcmlwdHMgd2lsbCBmYWlsIHRvIGxvYWQgaWYgdGhleSBhcmUgbm90IG9m
IGEgY29ycmVjdCBNSU1FIHR5cGUuCi0gICAgICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVy
cm9yLCBtYWtlU3RyaW5nKCInIiwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlTUlNRVR5cGUo
KSwgIicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIikpOworICAgICAgICAg
ICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygiJyIsIGxvYWRlci5yZXNw
b25zZU1JTUVUeXBlKCksICInIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLiIp
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChhdXRvKiBw
YXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgewotICAgICAgICAgICAgLy8gSWYgdGhp
cyBpcyB0b3AtbGV2ZWwtbW9kdWxlLCB0aGVuIHdlIGV4dHJhY3QgcmVmZXJyZXItcG9saWN5IGFu
ZCBhcHBseSB0byB0aGUgZGVwZW5kZW50IG1vZHVsZXMuCi0gICAgICAgICAgICBpZiAocGFyYW1l
dGVycy0+aXNUb3BMZXZlbE1vZHVsZSgpKQotICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFdv
cmtlclNjcmlwdEZldGNoZXImPihsb2FkZXIuc2NyaXB0RmV0Y2hlcigpKS5zZXRSZWZlcnJlclBv
bGljeShsb2FkZXIucmVmZXJyZXJQb2xpY3koKSk7CisgICAgICAgIFVSTCByZXNwb25zZVVSTCA9
IGxvYWRlci5yZXNwb25zZVVSTCgpOworICAgICAgICBpZiAoIWxvYWRlci5yZXRyaWV2ZWRGcm9t
U2VydmljZVdvcmtlckNhY2hlKCkpIHsKKyAgICAgICAgICAgIGF1dG8mIHdvcmtlclNjcmlwdExv
YWRlciA9IGxvYWRlci5zY3JpcHRMb2FkZXIoKTsKKyAgICAgICAgICAgIGlmIChhdXRvKiBwYXJh
bWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgeworICAgICAgICAgICAgICAgIC8vIElmIHRo
aXMgaXMgdG9wLWxldmVsLW1vZHVsZSwgdGhlbiB3ZSBleHRyYWN0IHJlZmVycmVyLXBvbGljeSBh
bmQgYXBwbHkgdG8gdGhlIGRlcGVuZGVudCBtb2R1bGVzLgorICAgICAgICAgICAgICAgIGlmIChw
YXJhbWV0ZXJzLT5pc1RvcExldmVsTW9kdWxlKCkpCisgICAgICAgICAgICAgICAgICAgIHN0YXRp
Y19jYXN0PFdvcmtlclNjcmlwdEZldGNoZXImPihsb2FkZXIuc2NyaXB0RmV0Y2hlcigpKS5zZXRS
ZWZlcnJlclBvbGljeShsb2FkZXIucmVmZXJyZXJQb2xpY3koKSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICByZXNwb25zZVVSTCA9IGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVzcG9uc2VV
UkwocmVzcG9uc2VVUkwsIHdvcmtlclNjcmlwdExvYWRlci5pc1JlZGlyZWN0ZWQoKSwgd29ya2Vy
U2NyaXB0TG9hZGVyLnJlc3BvbnNlU291cmNlKCkpOworI2lmIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKKyAgICAgICAgICAgIGlmIChpczxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KG1fY29udGV4
dCkpCisgICAgICAgICAgICAgICAgZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPiht
X2NvbnRleHQpLnNldFNjcmlwdFJlc291cmNlKHNvdXJjZVVSTCwgU2VydmljZVdvcmtlckNvbnRl
eHREYXRhOjpJbXBvcnRlZFNjcmlwdCB7IGxvYWRlci5zY3JpcHQoKSwgcmVzcG9uc2VVUkwsIGxv
YWRlci5yZXNwb25zZU1JTUVUeXBlKCkgfSk7CisjZW5kaWYKICAgICAgICAgfQotCi0gICAgICAg
IFVSTCByZXNwb25zZVVSTCA9IGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVzcG9uc2VVUkwod29y
a2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlVVJMKCksIHdvcmtlclNjcmlwdExvYWRlci5pc1JlZGly
ZWN0ZWQoKSwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlU291cmNlKCkpOworICAgICAgICBt
X3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCksIHJlc3Bv
bnNlVVJMKTsKICAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhDYWxsYmFjayhbJl0gKEpTRE9N
R2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCkgewogICAgICAgICAgICAgcmV0dXJuIEpTQzo6
SlNTb3VyY2VDb2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwKLSAgICAgICAgICAgICAg
ICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgd29ya2VyU2NyaXB0TG9hZGVy
LnNjcmlwdCgpLCBXVEZNb3ZlKHJlc3BvbnNlVVJMKSwgeyB9LCBKU0M6OlNvdXJjZVByb3ZpZGVy
U291cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNTb3VyY2VDb2Rl
KCkgfSk7CisgICAgICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2RlIHsgU2NyaXB0U291cmNlQ29k
ZSB7IGxvYWRlci5zY3JpcHQoKSwgV1RGTW92ZShyZXNwb25zZVVSTCksIHsgfSwgSlNDOjpTb3Vy
Y2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNjcmlwdEZldGNoZXIoKSB9Lmpz
U291cmNlQ29kZSgpIH0pOwogICAgICAgICB9KTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNwcAppbmRl
eCBmODcwYTBkMWRhMzM4NTAwZjhlNGQ5MjY3MjNlZjU0MDlmZmNmNTliLi44MmUyMzY5NzEwOGZl
ZDIyMjA5Yzg1Mjc2M2Q2ZTA0ZWMwOTE1ZTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAKQEAgLTYxLDYgKzYx
LDE5IEBAIGJvb2wgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIFVSTCYmIHNvdXJjCiB7CiAgICAgbV9zb3VyY2VVUkwgPSBXVEZN
b3ZlKHNvdXJjZVVSTCk7CiAKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisgICAgaWYgKGlz
PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkpIHsKKyAgICAgICAgaWYgKGF1dG8q
IHNjcmlwdFJlc291cmNlID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPihjb250
ZXh0KS5zY3JpcHRSZXNvdXJjZShtX3NvdXJjZVVSTCkpIHsKKyAgICAgICAgICAgIG1fc2NyaXB0
ID0gc2NyaXB0UmVzb3VyY2UtPnNjcmlwdDsKKyAgICAgICAgICAgIG1fcmVzcG9uc2VVUkwgPSBz
Y3JpcHRSZXNvdXJjZS0+cmVzcG9uc2VVUkw7CisgICAgICAgICAgICBtX3Jlc3BvbnNlTUlNRVR5
cGUgPSBzY3JpcHRSZXNvdXJjZS0+bWltZVR5cGU7CisgICAgICAgICAgICBtX3JldHJpZXZlZEZy
b21TZXJ2aWNlV29ya2VyQ2FjaGUgPSB0cnVlOworICAgICAgICAgICAgbm90aWZ5Q2xpZW50Rmlu
aXNoZWQoKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorI2Vu
ZGlmCisKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCB7IG1fc291cmNlVVJMIH07CiAKICAg
ICBGZXRjaE9wdGlvbnMgZmV0Y2hPcHRpb25zOwpAQCAtOTQsNyArMTA3LDIxIEBAIHZvaWQgV29y
a2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZCgpCiB7CiAgICAgQVNTRVJUKG1f
cHJvbWlzZSk7CiAKKyAgICBpZiAobV9zY3JpcHRMb2FkZXItPmZhaWxlZCgpKQorICAgICAgICBt
X2ZhaWxlZCA9IHRydWU7CisgICAgZWxzZSB7CisgICAgICAgIG1fc2NyaXB0ID0gbV9zY3JpcHRM
b2FkZXItPnNjcmlwdCgpOworICAgICAgICBtX3Jlc3BvbnNlVVJMID0gbV9zY3JpcHRMb2FkZXIt
PnJlc3BvbnNlVVJMKCk7CisgICAgICAgIG1fcmVzcG9uc2VNSU1FVHlwZSA9IG1fc2NyaXB0TG9h
ZGVyLT5yZXNwb25zZU1JTUVUeXBlKCk7CisgICAgfQorCisgICAgbm90aWZ5Q2xpZW50RmluaXNo
ZWQoKTsKK30KKwordm9pZCBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6Om5vdGlmeUNsaWVudEZp
bmlzaGVkKCkKK3sKICAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKTsKKwog
ICAgIGlmIChtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPm5vdGlmeUZpbmlzaGVkKCp0aGlz
LCBXVEZNb3ZlKG1fc291cmNlVVJMKSwgbV9wcm9taXNlLnJlbGVhc2VOb25OdWxsKCkpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0
TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRM
b2FkZXIuaAppbmRleCBjNWRiN2U5M2VjMzc0YmIxZWQ5MjhhZTdlZTAzMWZkNTQwYmQyOGNlLi43
NmQxNGRhZmFhYWQxMjI5YmVlMDNlYjcxMjk2MmIwYWI2M2EwNWI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaApAQCAt
MjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJNb2R1bGVTY3JpcHRMb2Fk
ZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRCdWZmZXIuaCIKICNpbmNsdWRlICJXb3JrZXJTY3JpcHRG
ZXRjaGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVk
ZSA8d3RmL1JlZi5oPgpAQCAtNTQsNiArNTUsMTIgQEAgY2xhc3MgV29ya2VyTW9kdWxlU2NyaXB0
TG9hZGVyIGZpbmFsIDogcHVibGljIE1vZHVsZVNjcmlwdExvYWRlciwgcHJpdmF0ZSBXb3JrZXIK
IAogICAgIHN0YXRpYyBTdHJpbmcgdGFza01vZGUoKTsKICAgICBSZWZlcnJlclBvbGljeSByZWZl
cnJlclBvbGljeSgpOworICAgIGJvb2wgZmFpbGVkKCkgY29uc3QgeyByZXR1cm4gbV9mYWlsZWQ7
IH0KKyAgICBib29sIHJldHJpZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGUoKSBjb25zdCB7IHJl
dHVybiBtX3JldHJpZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGU7IH0KKworICAgIGNvbnN0IFNj
cmlwdEJ1ZmZlciYgc2NyaXB0KCkgeyByZXR1cm4gbV9zY3JpcHQ7IH0KKyAgICBjb25zdCBVUkwm
IHJlc3BvbnNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZVVSTDsgfQorICAgIGNvbnN0
IFN0cmluZyYgcmVzcG9uc2VNSU1FVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VNSU1F
VHlwZTsgfQogCiBwcml2YXRlOgogICAgIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcihNb2R1bGVT
Y3JpcHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBXb3JrZXJTY3JpcHRGZXRjaGVy
JiwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CkBAIC02MSw4ICs2OCwxNSBAQCBj
bGFzcyBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIgZmluYWwgOiBwdWJsaWMgTW9kdWxlU2NyaXB0
TG9hZGVyLCBwcml2YXRlIFdvcmtlcgogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2ln
bmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBmaW5hbCB7IH0KICAgICB2b2lkIG5v
dGlmeUZpbmlzaGVkKCkgZmluYWw7CiAKKyAgICB2b2lkIG5vdGlmeUNsaWVudEZpbmlzaGVkKCk7
CisKICAgICBSZWY8V29ya2VyU2NyaXB0TG9hZGVyPiBtX3NjcmlwdExvYWRlcjsKICAgICBVUkwg
bV9zb3VyY2VVUkw7CisgICAgU2NyaXB0QnVmZmVyIG1fc2NyaXB0OworICAgIFVSTCBtX3Jlc3Bv
bnNlVVJMOworICAgIFN0cmluZyBtX3Jlc3BvbnNlTUlNRVR5cGU7CisgICAgYm9vbCBtX2ZhaWxl
ZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3JldHJpZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGUg
eyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVhMGY2NjY0
ZDNkOGIzZDA5YWViMmY1YmY0OTZhYmY3M2I3NjU5ZTguLjI3MThlOTU4ODJmYmJiMTRkNzE4MGNm
YWM5YWVlYTIxNDJkMzg0MGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0wNC0wOCAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFNlcnZpY2VXb3JrZXIg
c2F2ZXMgbW9kdWxlIHNjcmlwdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNDM1NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzU2MzQ4OTc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3dw
dC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNpc3RlbnQtbW9kdWxlcy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVu
dC10b3AtbGV2ZWwtbW9kdWxlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
d3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LXRvcC1sZXZlbC1tb2R1bGVzLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvcGVyc2lz
dGVudC1pbXBvcnRlZC1tb2R1bGUtc2NyaXB0LnB5OiBBZGRlZC4KKyAgICAgICAgKG1haW4pOgor
ICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVudC1t
b2R1bGUtd29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtl
cnMvcmVzb3VyY2VzL3BlcnNpc3RlbnQtdG9wLWxldmVsLW1vZHVsZS1zY3JpcHQucHk6IEFkZGVk
LgorICAgICAgICAobWFpbik6CisKIDIwMjEtMDQtMDggIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5l
X2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHRlc3QgaW5mcmFzdHJ1Y3R1cmUgZm9y
IGFwcCBib3VuZCByZXF1ZXN0IGNvbnRleHQgc3RyaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LW1vZHVs
ZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZjIyZTlhNDMxYWQwMjcyNzEzYjcxZmRjODc5
NDAxNmM4ZWYxMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2
aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBA
CitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMv
cGVyc2lzdGVudC1tb2R1bGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdv
cmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjA4YjA0MTBmNzU2NTE4
OWI5Nzg1NWZlYTFjN2IwMDhlYjg3M2YxYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LW1vZHVsZXMuaHRtbApAQCAtMCww
ICsxLDU5IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9yb3V0aW5l
cy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBnZXRS
YW5kb21JZEZyb21Xb3JrZXIod29ya2VyKQoreworICAgIHdvcmtlci5wb3N0TWVzc2FnZSgiZ2V0
UmFuZG9tSWQiKTsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgewor
ICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScs
IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHJlc29sdmUoZS5kYXRhKTsKKyAgICAgICAgfSk7
CisgICAgfSk7Cit9CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworfQorCit2YXIg
cmVnaXN0cmF0aW9uOwordmFyIHdvcmtlcjsKK2FzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpIHsKKyAg
ICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3Qo
J0ludGVybmFscyBBUEkgbmVlZGVkIGZvciB0aGlzIHRlc3QnKTsKKworICAgIHJlZ2lzdHJhdGlv
biA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJyZXNvdXJjZXMvcGVy
c2lzdGVudC1tb2R1bGUtd29ya2VyLmpzIiwgeworICAgICAgICB0eXBlOiAibW9kdWxlIgorICAg
IH0pOworICAgIGlmIChyZWdpc3RyYXRpb24uaW5zdGFsbGluZykgeworICAgICAgICB3b3JrZXIg
PSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKKyAgICAgICAgYXdhaXQgd2FpdEZvclN0YXRlKHdv
cmtlciwgImFjdGl2YXRlZCIpOworICAgIH0gZWxzZQorICAgICAgICB3b3JrZXIgPSByZWdpc3Ry
YXRpb24uYWN0aXZlOworCisgICAgbGV0IGZyYW1lID0gYXdhaXQgd2l0aElmcmFtZSgicmVzb3Vy
Y2VzIik7CisgICAgbGV0IHJhbmRvbUlkID0gYXdhaXQgZ2V0UmFuZG9tSWRGcm9tV29ya2VyKHdv
cmtlcik7CisKKyAgICBpZiAoIXdpbmRvdy5sb2NhdGlvbi5oYXNoLmxlbmd0aCkgeworICAgICAg
ICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGF3YWl0IGludGVybmFscy5zdG9y
ZVJlZ2lzdHJhdGlvbnNPbkRpc2soKTsKKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CisgICAg
ICAgIGF3YWl0IHdhaXRGb3IoMTAwKTsKKyAgICAgICAgd2luZG93LmxvY2F0aW9uICs9ICI/dGVz
dCMiICsgcmFuZG9tSWQ7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkb2N1bWVudC5i
b2R5LmlubmVySFRNTCA9ICgiIyIgKyByYW5kb21JZCkgPT0gd2luZG93LmxvY2F0aW9uLmhhc2gg
PyAiUEFTUyIgOiAiRkFJTCI7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KK2RvVGVzdCgpOworCis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy9wZXJzaXN0ZW50LXRvcC1sZXZlbC1tb2R1bGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LXRvcC1sZXZlbC1tb2R1bGVz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWYyMmU5YTQzMWFkMDI3MjcxM2I3MWZkYzg3OTQw
MTZjOGVmMTJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2Vydmlj
ZS13b3JrZXJzL3BlcnNpc3RlbnQtdG9wLWxldmVsLW1vZHVsZXMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEgQEAKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Ut
d29ya2Vycy9wZXJzaXN0ZW50LXRvcC1sZXZlbC1tb2R1bGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC10b3AtbGV2ZWwtbW9kdWxlcy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjU1YmM3NGIyMzEzMDVkYzYxNWQ4M2QxYzllMDYyN2QxNzA2NzI2YmYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVy
c2lzdGVudC10b3AtbGV2ZWwtbW9kdWxlcy5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JvdXRpbmVzLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGdldFJhbmRvbUlkRnJvbVdvcmtlcih3
b3JrZXIpCit7CisgICAgd29ya2VyLnBvc3RNZXNzYWdlKCJnZXRSYW5kb21JZCIpOworICAgIHJl
dHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICBuYXZpZ2F0b3Iuc2Vy
dmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24oZSkgeworICAg
ICAgICAgICAgcmVzb2x2ZShlLmRhdGEpOworICAgICAgICB9KTsKKyAgICB9KTsKK30KKworaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cisg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit9CisKK3ZhciByZWdpc3RyYXRpb247Cit2YXIg
d29ya2VyOworYXN5bmMgZnVuY3Rpb24gZG9UZXN0KCkgeworICAgIGlmICghd2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgnSW50ZXJuYWxzIEFQSSBuZWVk
ZWQgZm9yIHRoaXMgdGVzdCcpOworCisgICAgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNlcy9wZXJzaXN0ZW50LXRvcC1sZXZlbC1t
b2R1bGUtc2NyaXB0LnB5IiwgeworICAgICAgICB0eXBlOiAibW9kdWxlIgorICAgIH0pOworICAg
IGlmIChyZWdpc3RyYXRpb24uaW5zdGFsbGluZykgeworICAgICAgICB3b3JrZXIgPSByZWdpc3Ry
YXRpb24uaW5zdGFsbGluZzsKKyAgICAgICAgYXdhaXQgd2FpdEZvclN0YXRlKHdvcmtlciwgImFj
dGl2YXRlZCIpOworICAgIH0gZWxzZQorICAgICAgICB3b3JrZXIgPSByZWdpc3RyYXRpb24uYWN0
aXZlOworCisgICAgbGV0IGZyYW1lID0gYXdhaXQgd2l0aElmcmFtZSgicmVzb3VyY2VzIik7Cisg
ICAgbGV0IHJhbmRvbUlkID0gYXdhaXQgZ2V0UmFuZG9tSWRGcm9tV29ya2VyKHdvcmtlcik7CisK
KyAgICBpZiAoIXdpbmRvdy5sb2NhdGlvbi5oYXNoLmxlbmd0aCkgeworICAgICAgICBpZiAod2lu
ZG93LmludGVybmFscykKKyAgICAgICAgICAgIGF3YWl0IGludGVybmFscy5zdG9yZVJlZ2lzdHJh
dGlvbnNPbkRpc2soKTsKKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CisgICAgICAgIGF3YWl0
IHdhaXRGb3IoMTAwKTsKKyAgICAgICAgd2luZG93LmxvY2F0aW9uICs9ICI/dGVzdCMiICsgcmFu
ZG9tSWQ7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkb2N1bWVudC5ib2R5LmlubmVy
SFRNTCA9ICgiIyIgKyByYW5kb21JZCkgPT0gd2luZG93LmxvY2F0aW9uLmhhc2ggPyAiUEFTUyIg
OiAiRkFJTCI7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKK30KK2RvVGVzdCgpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNv
dXJjZXMvcGVyc2lzdGVudC1pbXBvcnRlZC1tb2R1bGUtc2NyaXB0LnB5IGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9wZXJzaXN0ZW50LWltcG9ydGVkLW1v
ZHVsZS1zY3JpcHQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWYyY2NhZWFmNmMwMTg3MTY3MWFlZGIzYjdkNWYz
YzUzMjU4OWE2ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVudC1pbXBvcnRlZC1tb2R1bGUtc2NyaXB0LnB5
CkBAIC0wLDAgKzEsOSBAQAoraW1wb3J0IHJhbmRvbQorCisKK2RlZiBtYWluKHJlcXVlc3QsIHJl
c3BvbnNlKToKKyAgICBoZWFkZXJzID0gWworICAgICAgICAoIkNvbnRlbnQtdHlwZSIsICJ0ZXh0
L2phdmFzY3JpcHQiKSwKKyAgICAgICAgKCJDYWNoZS1Db250cm9sIiwgIm5vLXN0b3JlIikKKyAg
ICBdCisgICAgcmV0dXJuIGhlYWRlcnMsICJzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2Un
LCBmdW5jdGlvbihlKSB7IGUuc291cmNlLnBvc3RNZXNzYWdlKCciICsgc3RyKHJhbmRvbS5yYW5k
b20oKSkgKyAiJyk7IH0pOyIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVudC1tb2R1bGUtd29ya2VyLmpzIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9wZXJzaXN0ZW50LW1vZHVs
ZS13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDNjNTBkZmVhZDU1YTE5OTFlZmY2OGVjZTE1MDA0NDYx
ZGI5YWNjZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Ut
d29ya2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVudC1tb2R1bGUtd29ya2VyLmpzCkBAIC0wLDAgKzEs
MiBAQAoraW1wb3J0ICIuL3BlcnNpc3RlbnQtaW1wb3J0ZWQtbW9kdWxlLXNjcmlwdC5weSI7CisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJj
ZXMvcGVyc2lzdGVudC10b3AtbGV2ZWwtbW9kdWxlLXNjcmlwdC5weSBiL0xheW91dFRlc3RzL2h0
dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVudC10b3AtbGV2ZWwtbW9k
dWxlLXNjcmlwdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZjJjY2FlYWY2YzAxODcxNjcxYWVkYjNiN2Q1ZjNj
NTMyNTg5YTZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2Vydmlj
ZS13b3JrZXJzL3Jlc291cmNlcy9wZXJzaXN0ZW50LXRvcC1sZXZlbC1tb2R1bGUtc2NyaXB0LnB5
CkBAIC0wLDAgKzEsOSBAQAoraW1wb3J0IHJhbmRvbQorCisKK2RlZiBtYWluKHJlcXVlc3QsIHJl
c3BvbnNlKToKKyAgICBoZWFkZXJzID0gWworICAgICAgICAoIkNvbnRlbnQtdHlwZSIsICJ0ZXh0
L2phdmFzY3JpcHQiKSwKKyAgICAgICAgKCJDYWNoZS1Db250cm9sIiwgIm5vLXN0b3JlIikKKyAg
ICBdCisgICAgcmV0dXJuIGhlYWRlcnMsICJzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2Un
LCBmdW5jdGlvbihlKSB7IGUuc291cmNlLnBvc3RNZXNzYWdlKCciICsgc3RyKHJhbmRvbS5yYW5k
b20oKSkgKyAiJyk7IH0pOyIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425578</attachid>
            <date>2021-04-08 20:08:48 -0700</date>
            <delta_ts>2021-04-08 20:30:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224356-20210408200847.patch</filename>
            <type>text/plain</type>
            <size>18156</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1Njg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkyOTdjNTFkMDcxOTYy
NzkwNjM0ODk5NWI5N2YyMTRkZTQxMmZlMi4uODMyMDEyNjcwZDBlMWMxMWI0ZjQ3ZTYxY2M0MWI5
MjcyYjM5NTYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA0LTA4ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2VydmljZVdvcmtlciBz
aG91bGQgc2F2ZSBtb2R1bGUgc2NyaXB0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MzU2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NTYzNDg5
Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
OiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLmh0bWwKKworICAg
ICAgICBJbiB0aGlzIHBhdGNoLCB3ZSBjYWxsIHNldFNjcmlwdFJlc291cmNlIC8gc2NyaXB0UmVz
b3VyY2Ugd2hpbGUgbG9hZGluZyBzZXJ2aWNlLXdvcmtlciBtb2R1bGUgc2NyaXB0cyBpbiBtb2R1
bGUgbG9hZGVycywKKyAgICAgICAgc28gdGhhdCB3ZSBjYW4gZW5zdXJlIHRoYXQgdGhleSBhcmUg
c2F2ZWQgb24gdGhlIGRpc2suCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRjaCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKToKKyAgICAgICAg
KFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlDbGllbnRGaW5p
c2hlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmg6
CisKIDIwMjEtMDQtMDggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNzM1NDEpIFdLV2ViVmlldyBjYW4ndCBsb2FkIE5T
VVJMUmVxdWVzdCBzdWJjbGFzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0TW9kdWxlTG9hZGVyLmNwcAppbmRleCBhZDQ3ZmUxMzBiMGNkODRmYmZhNTYxYzAzMzQ4
ZTljZmI3M2I5M2M4Li41Y2FjN2M1N2ZhODA0ZGE1MTNmM2E4MzYxMzExMWU4YzE3N2EzMjMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5j
cHAKQEAgLTE4OCw2ICsxODgsNyBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1
bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsTwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIGF1dG8gbG9hZGVyID0gV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVh
dGUoKnRoaXMsIGRlZmVycmVkLmdldCgpLCAqc3RhdGljX2Nhc3Q8V29ya2VyU2NyaXB0RmV0Y2hl
cio+KEpTQzo6anNDYXN0PEpTQzo6SlNTY3JpcHRGZXRjaGVyKj4oc2NyaXB0RmV0Y2hlciktPmZl
dGNoZXIoKSksIFdURk1vdmUodG9wTGV2ZWxGZXRjaFBhcmFtZXRlcnMpKTsKICAgICAgICAgbV9s
b2FkZXJzLmFkZChsb2FkZXIuY29weVJlZigpKTsKKyAgICAgICAgLy8gVGhpcyBjYW4gaW52b2tl
IGNhbGxiYWNrIGltbWVkaWF0ZWx5LgogICAgICAgICBsb2FkZXItPmxvYWQobV9jb250ZXh0LCBX
VEZNb3ZlKGNvbXBsZXRlZFVSTCkpOwogICAgIH0KIApAQCAtMzY5LDggKzM3MCw2IEBAIHZvaWQg
U2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChNb2R1bGVTY3JpcHRMb2FkZXImIG1v
ZHVsZVNjcmlwdExvYWRlciwKICAgICAgICAgICAgIGlmIChzb3VyY2VVUkwuaGFzRnJhZ21lbnRJ
ZGVudGlmaWVyKCkpCiAgICAgICAgICAgICAgICAgcmVzcG9uc2VVUkwuc2V0RnJhZ21lbnRJZGVu
dGlmaWVyKHNvdXJjZVVSTC5mcmFnbWVudElkZW50aWZpZXIoKSk7CiAgICAgICAgIH0KLQotICAg
ICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCks
IHJlc3BvbnNlVVJMKTsKICAgICAgICAgcmV0dXJuIHJlc3BvbnNlVVJMOwogICAgIH07CiAKQEAg
LTQwOCwxNiArNDA3LDE5IEBAIHZvaWQgU2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hl
ZChNb2R1bGVTY3JpcHRMb2FkZXImIG1vZHVsZVNjcmlwdExvYWRlciwKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogCi0gICAgICAgIGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVzcG9uc2VVUkwo
Y2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkudXJsKCksIGNhY2hlZFNjcmlwdC5oYXNSZWRpcmVjdGlv
bnMoKSwgY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkuc291cmNlKCkpOworICAgICAgICBVUkwgcmVz
cG9uc2VVUkwgPSBjYW5vbmljYWxpemVBbmRSZWdpc3RlclJlc3BvbnNlVVJMKGNhY2hlZFNjcmlw
dC5yZXNwb25zZSgpLnVybCgpLCBjYWNoZWRTY3JpcHQuaGFzUmVkaXJlY3Rpb25zKCksIGNhY2hl
ZFNjcmlwdC5yZXNwb25zZSgpLnNvdXJjZSgpKTsKKyAgICAgICAgbV9yZXF1ZXN0VVJMVG9SZXNw
b25zZVVSTE1hcC5hZGQoc291cmNlVVJMLnN0cmluZygpLCByZXNwb25zZVVSTCk7CiAgICAgICAg
IHByb21pc2UtPnJlc29sdmVXaXRoQ2FsbGJhY2soWyZdIChKU0RPTUdsb2JhbE9iamVjdCYganNH
bG9iYWxPYmplY3QpIHsKICAgICAgICAgICAgIHJldHVybiBKU0M6OkpTU291cmNlQ29kZTo6Y3Jl
YXRlKGpzR2xvYmFsT2JqZWN0LnZtKCksCiAgICAgICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2Rl
IHsgU2NyaXB0U291cmNlQ29kZSB7ICZjYWNoZWRTY3JpcHQsIEpTQzo6U291cmNlUHJvdmlkZXJT
b3VyY2VUeXBlOjpNb2R1bGUsIGxvYWRlci5zY3JpcHRGZXRjaGVyKCkgfS5qc1NvdXJjZUNvZGUo
KSB9KTsKICAgICAgICAgfSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgYXV0byYgbG9hZGVyID0g
c3RhdGljX2Nhc3Q8V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyJj4obW9kdWxlU2NyaXB0TG9hZGVy
KTsKLSAgICAgICAgYXV0byYgd29ya2VyU2NyaXB0TG9hZGVyID0gbG9hZGVyLnNjcmlwdExvYWRl
cigpOwogCi0gICAgICAgIGlmICh3b3JrZXJTY3JpcHRMb2FkZXIuZmFpbGVkKCkpIHsKKyAgICAg
ICAgaWYgKGxvYWRlci5mYWlsZWQoKSkgeworICAgICAgICAgICAgQVNTRVJUKCFsb2FkZXIucmV0
cmlldmVkRnJvbVNlcnZpY2VXb3JrZXJDYWNoZSgpKTsKKyAgICAgICAgICAgIGF1dG8mIHdvcmtl
clNjcmlwdExvYWRlciA9IGxvYWRlci5zY3JpcHRMb2FkZXIoKTsKKyAgICAgICAgICAgIEFTU0VS
VCh3b3JrZXJTY3JpcHRMb2FkZXIuZmFpbGVkKCkpOwogICAgICAgICAgICAgaWYgKHdvcmtlclNj
cmlwdExvYWRlci5lcnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7CiAgICAgICAgICAgICAgICAg
cmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hG
YWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQg
YnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwpAQCAtNDMyLDI0ICs0MzQsMzIgQEAgdm9pZCBTY3JpcHRNb2R1bGVMb2Fk
ZXI6Om5vdGlmeUZpbmlzaGVkKE1vZHVsZVNjcmlwdExvYWRlciYgbW9kdWxlU2NyaXB0TG9hZGVy
LAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCFNSU1FVHlw
ZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZSh3b3JrZXJTY3JpcHRMb2Fk
ZXIucmVzcG9uc2VNSU1FVHlwZSgpKSkgeworICAgICAgICBpZiAoIU1JTUVUeXBlUmVnaXN0cnk6
OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKGxvYWRlci5yZXNwb25zZU1JTUVUeXBlKCkp
KSB7CiAgICAgICAgICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFn
ZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAogICAgICAgICAg
ICAgLy8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20gcmVzcG9uc2Un
cyBoZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2YVNjcmlwdCBN
SU1FIHR5cGUuCiAgICAgICAgICAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBmZXRjaGlu
ZyBhIGNsYXNzaWMgc2NyaXB0IGRvZXMgbm90IGluY2x1ZGUgTUlNRSB0eXBlIGNoZWNraW5nLiBJ
biBjb250cmFzdCwgbW9kdWxlIHNjcmlwdHMgd2lsbCBmYWlsIHRvIGxvYWQgaWYgdGhleSBhcmUg
bm90IG9mIGEgY29ycmVjdCBNSU1FIHR5cGUuCi0gICAgICAgICAgICBwcm9taXNlLT5yZWplY3Qo
VHlwZUVycm9yLCBtYWtlU3RyaW5nKCInIiwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlTUlN
RVR5cGUoKSwgIicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIikpOworICAg
ICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygiJyIsIGxvYWRl
ci5yZXNwb25zZU1JTUVUeXBlKCksICInIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0
eXBlLiIpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChh
dXRvKiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgewotICAgICAgICAgICAgLy8g
SWYgdGhpcyBpcyB0b3AtbGV2ZWwtbW9kdWxlLCB0aGVuIHdlIGV4dHJhY3QgcmVmZXJyZXItcG9s
aWN5IGFuZCBhcHBseSB0byB0aGUgZGVwZW5kZW50IG1vZHVsZXMuCi0gICAgICAgICAgICBpZiAo
cGFyYW1ldGVycy0+aXNUb3BMZXZlbE1vZHVsZSgpKQotICAgICAgICAgICAgICAgIHN0YXRpY19j
YXN0PFdvcmtlclNjcmlwdEZldGNoZXImPihsb2FkZXIuc2NyaXB0RmV0Y2hlcigpKS5zZXRSZWZl
cnJlclBvbGljeShsb2FkZXIucmVmZXJyZXJQb2xpY3koKSk7CisgICAgICAgIFVSTCByZXNwb25z
ZVVSTCA9IGxvYWRlci5yZXNwb25zZVVSTCgpOworICAgICAgICBpZiAoIWxvYWRlci5yZXRyaWV2
ZWRGcm9tU2VydmljZVdvcmtlckNhY2hlKCkpIHsKKyAgICAgICAgICAgIGF1dG8mIHdvcmtlclNj
cmlwdExvYWRlciA9IGxvYWRlci5zY3JpcHRMb2FkZXIoKTsKKyAgICAgICAgICAgIGlmIChhdXRv
KiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgeworICAgICAgICAgICAgICAgIC8v
IElmIHRoaXMgaXMgdG9wLWxldmVsLW1vZHVsZSwgdGhlbiB3ZSBleHRyYWN0IHJlZmVycmVyLXBv
bGljeSBhbmQgYXBwbHkgdG8gdGhlIGRlcGVuZGVudCBtb2R1bGVzLgorICAgICAgICAgICAgICAg
IGlmIChwYXJhbWV0ZXJzLT5pc1RvcExldmVsTW9kdWxlKCkpCisgICAgICAgICAgICAgICAgICAg
IHN0YXRpY19jYXN0PFdvcmtlclNjcmlwdEZldGNoZXImPihsb2FkZXIuc2NyaXB0RmV0Y2hlcigp
KS5zZXRSZWZlcnJlclBvbGljeShsb2FkZXIucmVmZXJyZXJQb2xpY3koKSk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICByZXNwb25zZVVSTCA9IGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVz
cG9uc2VVUkwocmVzcG9uc2VVUkwsIHdvcmtlclNjcmlwdExvYWRlci5pc1JlZGlyZWN0ZWQoKSwg
d29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlU291cmNlKCkpOworI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKKyAgICAgICAgICAgIGlmIChpczxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KG1f
Y29udGV4dCkpCisgICAgICAgICAgICAgICAgZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNj
b3BlPihtX2NvbnRleHQpLnNldFNjcmlwdFJlc291cmNlKHNvdXJjZVVSTCwgU2VydmljZVdvcmtl
ckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdCB7IGxvYWRlci5zY3JpcHQoKSwgcmVzcG9uc2VV
UkwsIGxvYWRlci5yZXNwb25zZU1JTUVUeXBlKCkgfSk7CisjZW5kaWYKICAgICAgICAgfQotCi0g
ICAgICAgIFVSTCByZXNwb25zZVVSTCA9IGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVzcG9uc2VV
Ukwod29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlVVJMKCksIHdvcmtlclNjcmlwdExvYWRlci5p
c1JlZGlyZWN0ZWQoKSwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlU291cmNlKCkpOworICAg
ICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCks
IHJlc3BvbnNlVVJMKTsKICAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhDYWxsYmFjayhbJl0g
KEpTRE9NR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCkgewogICAgICAgICAgICAgcmV0dXJu
IEpTQzo6SlNTb3VyY2VDb2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwKLSAgICAgICAg
ICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgd29ya2VyU2NyaXB0
TG9hZGVyLnNjcmlwdCgpLCBXVEZNb3ZlKHJlc3BvbnNlVVJMKSwgeyB9LCBKU0M6OlNvdXJjZVBy
b3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNTb3Vy
Y2VDb2RlKCkgfSk7CisgICAgICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2RlIHsgU2NyaXB0U291
cmNlQ29kZSB7IGxvYWRlci5zY3JpcHQoKSwgV1RGTW92ZShyZXNwb25zZVVSTCksIHsgfSwgSlND
OjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNjcmlwdEZldGNoZXIo
KSB9LmpzU291cmNlQ29kZSgpIH0pOwogICAgICAgICB9KTsKICAgICB9CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNw
cAppbmRleCBmODcwYTBkMWRhMzM4NTAwZjhlNGQ5MjY3MjNlZjU0MDlmZmNmNTliLi44MmUyMzY5
NzEwOGZlZDIyMjA5Yzg1Mjc2M2Q2ZTA0ZWMwOTE1ZTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAKQEAgLTYx
LDYgKzYxLDE5IEBAIGJvb2wgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFVSTCYmIHNvdXJjCiB7CiAgICAgbV9zb3VyY2VVUkwg
PSBXVEZNb3ZlKHNvdXJjZVVSTCk7CiAKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisgICAg
aWYgKGlzPFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkpIHsKKyAgICAgICAgaWYg
KGF1dG8qIHNjcmlwdFJlc291cmNlID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Pihjb250ZXh0KS5zY3JpcHRSZXNvdXJjZShtX3NvdXJjZVVSTCkpIHsKKyAgICAgICAgICAgIG1f
c2NyaXB0ID0gc2NyaXB0UmVzb3VyY2UtPnNjcmlwdDsKKyAgICAgICAgICAgIG1fcmVzcG9uc2VV
UkwgPSBzY3JpcHRSZXNvdXJjZS0+cmVzcG9uc2VVUkw7CisgICAgICAgICAgICBtX3Jlc3BvbnNl
TUlNRVR5cGUgPSBzY3JpcHRSZXNvdXJjZS0+bWltZVR5cGU7CisgICAgICAgICAgICBtX3JldHJp
ZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGUgPSB0cnVlOworICAgICAgICAgICAgbm90aWZ5Q2xp
ZW50RmluaXNoZWQoKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAg
fQorI2VuZGlmCisKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCB7IG1fc291cmNlVVJMIH07
CiAKICAgICBGZXRjaE9wdGlvbnMgZmV0Y2hPcHRpb25zOwpAQCAtOTQsNyArMTA3LDIxIEBAIHZv
aWQgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZCgpCiB7CiAgICAgQVNT
RVJUKG1fcHJvbWlzZSk7CiAKKyAgICBpZiAobV9zY3JpcHRMb2FkZXItPmZhaWxlZCgpKQorICAg
ICAgICBtX2ZhaWxlZCA9IHRydWU7CisgICAgZWxzZSB7CisgICAgICAgIG1fc2NyaXB0ID0gbV9z
Y3JpcHRMb2FkZXItPnNjcmlwdCgpOworICAgICAgICBtX3Jlc3BvbnNlVVJMID0gbV9zY3JpcHRM
b2FkZXItPnJlc3BvbnNlVVJMKCk7CisgICAgICAgIG1fcmVzcG9uc2VNSU1FVHlwZSA9IG1fc2Ny
aXB0TG9hZGVyLT5yZXNwb25zZU1JTUVUeXBlKCk7CisgICAgfQorCisgICAgbm90aWZ5Q2xpZW50
RmluaXNoZWQoKTsKK30KKwordm9pZCBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6Om5vdGlmeUNs
aWVudEZpbmlzaGVkKCkKK3sKICAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KTsKKwogICAgIGlmIChtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPm5vdGlmeUZpbmlzaGVk
KCp0aGlzLCBXVEZNb3ZlKG1fc291cmNlVVJMKSwgbV9wcm9taXNlLnJlbGVhc2VOb25OdWxsKCkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXIuaAppbmRleCBjNWRiN2U5M2VjMzc0YmIxZWQ5MjhhZTdlZTAzMWZkNTQwYmQy
OGNlLi43NmQxNGRhZmFhYWQxMjI5YmVlMDNlYjcxMjk2MmIwYWI2M2EwNWI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIu
aApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJNb2R1bGVTY3Jp
cHRMb2FkZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRCdWZmZXIuaCIKICNpbmNsdWRlICJXb3JrZXJT
Y3JpcHRGZXRjaGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCiAj
aW5jbHVkZSA8d3RmL1JlZi5oPgpAQCAtNTQsNiArNTUsMTIgQEAgY2xhc3MgV29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyIGZpbmFsIDogcHVibGljIE1vZHVsZVNjcmlwdExvYWRlciwgcHJpdmF0ZSBX
b3JrZXIKIAogICAgIHN0YXRpYyBTdHJpbmcgdGFza01vZGUoKTsKICAgICBSZWZlcnJlclBvbGlj
eSByZWZlcnJlclBvbGljeSgpOworICAgIGJvb2wgZmFpbGVkKCkgY29uc3QgeyByZXR1cm4gbV9m
YWlsZWQ7IH0KKyAgICBib29sIHJldHJpZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGUoKSBjb25z
dCB7IHJldHVybiBtX3JldHJpZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGU7IH0KKworICAgIGNv
bnN0IFNjcmlwdEJ1ZmZlciYgc2NyaXB0KCkgeyByZXR1cm4gbV9zY3JpcHQ7IH0KKyAgICBjb25z
dCBVUkwmIHJlc3BvbnNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZVVSTDsgfQorICAg
IGNvbnN0IFN0cmluZyYgcmVzcG9uc2VNSU1FVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9u
c2VNSU1FVHlwZTsgfQogCiBwcml2YXRlOgogICAgIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcihN
b2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBXb3JrZXJTY3JpcHRG
ZXRjaGVyJiwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CkBAIC02MSw4ICs2OCwx
NSBAQCBjbGFzcyBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIgZmluYWwgOiBwdWJsaWMgTW9kdWxl
U2NyaXB0TG9hZGVyLCBwcml2YXRlIFdvcmtlcgogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBmaW5hbCB7IH0KICAgICB2
b2lkIG5vdGlmeUZpbmlzaGVkKCkgZmluYWw7CiAKKyAgICB2b2lkIG5vdGlmeUNsaWVudEZpbmlz
aGVkKCk7CisKICAgICBSZWY8V29ya2VyU2NyaXB0TG9hZGVyPiBtX3NjcmlwdExvYWRlcjsKICAg
ICBVUkwgbV9zb3VyY2VVUkw7CisgICAgU2NyaXB0QnVmZmVyIG1fc2NyaXB0OworICAgIFVSTCBt
X3Jlc3BvbnNlVVJMOworICAgIFN0cmluZyBtX3Jlc3BvbnNlTUlNRVR5cGU7CisgICAgYm9vbCBt
X2ZhaWxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3JldHJpZXZlZEZyb21TZXJ2aWNlV29ya2Vy
Q2FjaGUgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVh
MGY2NjY0ZDNkOGIzZDA5YWViMmY1YmY0OTZhYmY3M2I3NjU5ZTguLjRhZDMwNzk3MjEwODIyZWRk
ZWFjNWYzN2IyZDZkMDdmZDllM2U0NzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0wNC0w
OCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFNlcnZpY2VX
b3JrZXIgc2hvdWxkIHNhdmUgbW9kdWxlIHNjcmlwdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDM1NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzU2MzQ4OTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNpc3Rl
bnQtbW9kdWxlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtl
cnMvcGVyc2lzdGVudC10b3AtbGV2ZWwtbW9kdWxlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LXRvcC1sZXZlbC1tb2R1
bGVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNv
dXJjZXMvcGVyc2lzdGVudC1pbXBvcnRlZC1tb2R1bGUtc2NyaXB0LnB5OiBBZGRlZC4KKyAgICAg
ICAgKG1haW4pOgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMv
cGVyc2lzdGVudC1tb2R1bGUtd29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9z
ZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3BlcnNpc3RlbnQtdG9wLWxldmVsLW1vZHVsZS1zY3Jp
cHQucHk6IEFkZGVkLgorICAgICAgICAobWFpbik6CisKIDIwMjEtMDQtMDggIEthdGUgQ2hlbmV5
ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHRlc3QgaW5mcmFz
dHJ1Y3R1cmUgZm9yIGFwcCBib3VuZCByZXF1ZXN0IGNvbnRleHQgc3RyaW5nCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJz
aXN0ZW50LW1vZHVsZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZjIyZTlhNDMxYWQwMjcy
NzEzYjcxZmRjODc5NDAxNmM4ZWYxMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxIEBACitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2
aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGY0
MTNiZTRjNmY1YWMwYzRiYTk2NWE1MmY3NzllNzJiNWY2MzBjYwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LW1vZHVsZXMu
aHRtbApAQCAtMCwwICsxLDU5IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9yb3V0aW5lcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Citm
dW5jdGlvbiBnZXRSYW5kb21JZEZyb21Xb3JrZXIod29ya2VyKQoreworICAgIHdvcmtlci5wb3N0
TWVzc2FnZSgiZ2V0UmFuZG9tSWQiKTsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24o
cmVzb2x2ZSkgeworICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5l
cignbWVzc2FnZScsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHJlc29sdmUoZS5kYXRhKTsK
KyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OworfQorCit2YXIgcmVnaXN0cmF0aW9uOwordmFyIHdvcmtlcjsKK2FzeW5jIGZ1bmN0aW9uIGRv
VGVzdCgpIHsKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICByZXR1cm4gUHJv
bWlzZS5yZWplY3QoJ0ludGVybmFscyBBUEkgbmVlZGVkIGZvciB0aGlzIHRlc3QnKTsKKworICAg
IHJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJy
ZXNvdXJjZXMvcGVyc2lzdGVudC1tb2R1bGUtd29ya2VyLmpzIiwgeworICAgICAgICB0eXBlOiAi
bW9kdWxlIgorICAgIH0pOworICAgIGlmIChyZWdpc3RyYXRpb24uaW5zdGFsbGluZykgeworICAg
ICAgICB3b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKKyAgICAgICAgYXdhaXQgd2Fp
dEZvclN0YXRlKHdvcmtlciwgImFjdGl2YXRlZCIpOworICAgIH0gZWxzZQorICAgICAgICB3b3Jr
ZXIgPSByZWdpc3RyYXRpb24uYWN0aXZlOworCisgICAgbGV0IGZyYW1lID0gYXdhaXQgd2l0aElm
cmFtZSgicmVzb3VyY2VzIik7CisgICAgbGV0IHJhbmRvbUlkID0gYXdhaXQgZ2V0UmFuZG9tSWRG
cm9tV29ya2VyKHdvcmtlcik7CisKKyAgICBpZiAoIXdpbmRvdy5sb2NhdGlvbi5oYXNoLmxlbmd0
aCkgeworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGF3YWl0IGlu
dGVybmFscy5zdG9yZVJlZ2lzdHJhdGlvbnNPbkRpc2soKTsKKworICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLnRlcm1pbmF0ZU5ldHdvcmtQcm9j
ZXNzKCk7CisgICAgICAgIGF3YWl0IHdhaXRGb3IoMTAwKTsKKyAgICAgICAgd2luZG93LmxvY2F0
aW9uICs9ICI/dGVzdCMiICsgcmFuZG9tSWQ7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICgiIyIgKyByYW5kb21JZCkgPT0gd2luZG93Lmxv
Y2F0aW9uLmhhc2ggPyAiUEFTUyIgOiAiRkFJTCI7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KK2RvVGVzdCgpOworCis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LXRvcC1sZXZlbC1tb2R1bGVzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LXRvcC1s
ZXZlbC1tb2R1bGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWYyMmU5YTQzMWFkMDI3Mjcx
M2I3MWZkYzg3OTQwMTZjOGVmMTJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNpc3RlbnQtdG9wLWxldmVsLW1vZHVsZXMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LXRvcC1sZXZlbC1tb2R1bGVzLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC10b3AtbGV2ZWwt
bW9kdWxlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhMjc2OGRhYTNmMDdmNzhlNTMwMDg4NGU5MDU5NjQ2
NDZiYmI2MDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNl
LXdvcmtlcnMvcGVyc2lzdGVudC10b3AtbGV2ZWwtbW9kdWxlcy5odG1sCkBAIC0wLDAgKzEsNTkg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JvdXRpbmVzLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGdldFJhbmRvbUlk
RnJvbVdvcmtlcih3b3JrZXIpCit7CisgICAgd29ya2VyLnBvc3RNZXNzYWdlKCJnZXRSYW5kb21J
ZCIpOworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICBu
YXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgcmVzb2x2ZShlLmRhdGEpOworICAgICAgICB9KTsKKyAgICB9
KTsKK30KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciByZWdpc3Ry
YXRpb247Cit2YXIgd29ya2VyOworYXN5bmMgZnVuY3Rpb24gZG9UZXN0KCkgeworICAgIGlmICgh
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgnSW50ZXJu
YWxzIEFQSSBuZWVkZWQgZm9yIHRoaXMgdGVzdCcpOworCisgICAgcmVnaXN0cmF0aW9uID0gYXdh
aXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNlcy9wZXJzaXN0ZW50
LXRvcC1sZXZlbC1tb2R1bGUtc2NyaXB0LnB5IiwgeworICAgICAgICB0eXBlOiAibW9kdWxlIgor
ICAgIH0pOworICAgIGlmIChyZWdpc3RyYXRpb24uaW5zdGFsbGluZykgeworICAgICAgICB3b3Jr
ZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKKyAgICAgICAgYXdhaXQgd2FpdEZvclN0YXRl
KHdvcmtlciwgImFjdGl2YXRlZCIpOworICAgIH0gZWxzZQorICAgICAgICB3b3JrZXIgPSByZWdp
c3RyYXRpb24uYWN0aXZlOworCisgICAgbGV0IGZyYW1lID0gYXdhaXQgd2l0aElmcmFtZSgicmVz
b3VyY2VzIik7CisgICAgbGV0IHJhbmRvbUlkID0gYXdhaXQgZ2V0UmFuZG9tSWRGcm9tV29ya2Vy
KHdvcmtlcik7CisKKyAgICBpZiAoIXdpbmRvdy5sb2NhdGlvbi5oYXNoLmxlbmd0aCkgeworICAg
ICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGF3YWl0IGludGVybmFscy5z
dG9yZVJlZ2lzdHJhdGlvbnNPbkRpc2soKTsKKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7Cisg
ICAgICAgIGF3YWl0IHdhaXRGb3IoMTAwKTsKKyAgICAgICAgd2luZG93LmxvY2F0aW9uICs9ICI/
dGVzdCMiICsgcmFuZG9tSWQ7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkb2N1bWVu
dC5ib2R5LmlubmVySFRNTCA9ICgiIyIgKyByYW5kb21JZCkgPT0gd2luZG93LmxvY2F0aW9uLmhh
c2ggPyAiUEFTUyIgOiAiRkFJTCI7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KK2RvVGVzdCgpOworCis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Ut
d29ya2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVudC1pbXBvcnRlZC1tb2R1bGUtc2NyaXB0LnB5IGIv
TGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9wZXJzaXN0ZW50
LWltcG9ydGVkLW1vZHVsZS1zY3JpcHQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWYyY2NhZWFmNmMwMTg3MTY3
MWFlZGIzYjdkNWYzYzUzMjU4OWE2ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVudC1pbXBvcnRlZC1tb2R1
bGUtc2NyaXB0LnB5CkBAIC0wLDAgKzEsOSBAQAoraW1wb3J0IHJhbmRvbQorCisKK2RlZiBtYWlu
KHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICBoZWFkZXJzID0gWworICAgICAgICAoIkNvbnRlbnQt
dHlwZSIsICJ0ZXh0L2phdmFzY3JpcHQiKSwKKyAgICAgICAgKCJDYWNoZS1Db250cm9sIiwgIm5v
LXN0b3JlIikKKyAgICBdCisgICAgcmV0dXJuIGhlYWRlcnMsICJzZWxmLmFkZEV2ZW50TGlzdGVu
ZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihlKSB7IGUuc291cmNlLnBvc3RNZXNzYWdlKCciICsgc3Ry
KHJhbmRvbS5yYW5kb20oKSkgKyAiJyk7IH0pOyIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVudC1tb2R1bGUtd29ya2Vy
LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9wZXJz
aXN0ZW50LW1vZHVsZS13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDNjNTBkZmVhZDU1YTE5OTFlZmY2
OGVjZTE1MDA0NDYxZGI5YWNjZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVudC1tb2R1bGUtd29ya2VyLmpz
CkBAIC0wLDAgKzEsMiBAQAoraW1wb3J0ICIuL3BlcnNpc3RlbnQtaW1wb3J0ZWQtbW9kdWxlLXNj
cmlwdC5weSI7CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVudC10b3AtbGV2ZWwtbW9kdWxlLXNjcmlwdC5weSBiL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVudC10
b3AtbGV2ZWwtbW9kdWxlLXNjcmlwdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZjJjY2FlYWY2YzAxODcxNjcx
YWVkYjNiN2Q1ZjNjNTMyNTg5YTZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9wZXJzaXN0ZW50LXRvcC1sZXZlbC1tb2R1
bGUtc2NyaXB0LnB5CkBAIC0wLDAgKzEsOSBAQAoraW1wb3J0IHJhbmRvbQorCisKK2RlZiBtYWlu
KHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICBoZWFkZXJzID0gWworICAgICAgICAoIkNvbnRlbnQt
dHlwZSIsICJ0ZXh0L2phdmFzY3JpcHQiKSwKKyAgICAgICAgKCJDYWNoZS1Db250cm9sIiwgIm5v
LXN0b3JlIikKKyAgICBdCisgICAgcmV0dXJuIGhlYWRlcnMsICJzZWxmLmFkZEV2ZW50TGlzdGVu
ZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihlKSB7IGUuc291cmNlLnBvc3RNZXNzYWdlKCciICsgc3Ry
KHJhbmRvbS5yYW5kb20oKSkgKyAiJyk7IH0pOyIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425579</attachid>
            <date>2021-04-08 20:30:10 -0700</date>
            <delta_ts>2021-04-08 21:00:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224356-20210408203009.patch</filename>
            <type>text/plain</type>
            <size>18250</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1Njg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkyOTdjNTFkMDcxOTYy
NzkwNjM0ODk5NWI5N2YyMTRkZTQxMmZlMi4uODMyMDEyNjcwZDBlMWMxMWI0ZjQ3ZTYxY2M0MWI5
MjcyYjM5NTYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA0LTA4ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2VydmljZVdvcmtlciBz
aG91bGQgc2F2ZSBtb2R1bGUgc2NyaXB0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MzU2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NTYzNDg5
Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
OiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLmh0bWwKKworICAg
ICAgICBJbiB0aGlzIHBhdGNoLCB3ZSBjYWxsIHNldFNjcmlwdFJlc291cmNlIC8gc2NyaXB0UmVz
b3VyY2Ugd2hpbGUgbG9hZGluZyBzZXJ2aWNlLXdvcmtlciBtb2R1bGUgc2NyaXB0cyBpbiBtb2R1
bGUgbG9hZGVycywKKyAgICAgICAgc28gdGhhdCB3ZSBjYW4gZW5zdXJlIHRoYXQgdGhleSBhcmUg
c2F2ZWQgb24gdGhlIGRpc2suCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRjaCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKToKKyAgICAgICAg
KFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlDbGllbnRGaW5p
c2hlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmg6
CisKIDIwMjEtMDQtMDggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNzM1NDEpIFdLV2ViVmlldyBjYW4ndCBsb2FkIE5T
VVJMUmVxdWVzdCBzdWJjbGFzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0TW9kdWxlTG9hZGVyLmNwcAppbmRleCBhZDQ3ZmUxMzBiMGNkODRmYmZhNTYxYzAzMzQ4
ZTljZmI3M2I5M2M4Li41Y2FjN2M1N2ZhODA0ZGE1MTNmM2E4MzYxMzExMWU4YzE3N2EzMjMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5j
cHAKQEAgLTE4OCw2ICsxODgsNyBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1
bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsTwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIGF1dG8gbG9hZGVyID0gV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVh
dGUoKnRoaXMsIGRlZmVycmVkLmdldCgpLCAqc3RhdGljX2Nhc3Q8V29ya2VyU2NyaXB0RmV0Y2hl
cio+KEpTQzo6anNDYXN0PEpTQzo6SlNTY3JpcHRGZXRjaGVyKj4oc2NyaXB0RmV0Y2hlciktPmZl
dGNoZXIoKSksIFdURk1vdmUodG9wTGV2ZWxGZXRjaFBhcmFtZXRlcnMpKTsKICAgICAgICAgbV9s
b2FkZXJzLmFkZChsb2FkZXIuY29weVJlZigpKTsKKyAgICAgICAgLy8gVGhpcyBjYW4gaW52b2tl
IGNhbGxiYWNrIGltbWVkaWF0ZWx5LgogICAgICAgICBsb2FkZXItPmxvYWQobV9jb250ZXh0LCBX
VEZNb3ZlKGNvbXBsZXRlZFVSTCkpOwogICAgIH0KIApAQCAtMzY5LDggKzM3MCw2IEBAIHZvaWQg
U2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChNb2R1bGVTY3JpcHRMb2FkZXImIG1v
ZHVsZVNjcmlwdExvYWRlciwKICAgICAgICAgICAgIGlmIChzb3VyY2VVUkwuaGFzRnJhZ21lbnRJ
ZGVudGlmaWVyKCkpCiAgICAgICAgICAgICAgICAgcmVzcG9uc2VVUkwuc2V0RnJhZ21lbnRJZGVu
dGlmaWVyKHNvdXJjZVVSTC5mcmFnbWVudElkZW50aWZpZXIoKSk7CiAgICAgICAgIH0KLQotICAg
ICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCks
IHJlc3BvbnNlVVJMKTsKICAgICAgICAgcmV0dXJuIHJlc3BvbnNlVVJMOwogICAgIH07CiAKQEAg
LTQwOCwxNiArNDA3LDE5IEBAIHZvaWQgU2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hl
ZChNb2R1bGVTY3JpcHRMb2FkZXImIG1vZHVsZVNjcmlwdExvYWRlciwKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogCi0gICAgICAgIGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVzcG9uc2VVUkwo
Y2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkudXJsKCksIGNhY2hlZFNjcmlwdC5oYXNSZWRpcmVjdGlv
bnMoKSwgY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkuc291cmNlKCkpOworICAgICAgICBVUkwgcmVz
cG9uc2VVUkwgPSBjYW5vbmljYWxpemVBbmRSZWdpc3RlclJlc3BvbnNlVVJMKGNhY2hlZFNjcmlw
dC5yZXNwb25zZSgpLnVybCgpLCBjYWNoZWRTY3JpcHQuaGFzUmVkaXJlY3Rpb25zKCksIGNhY2hl
ZFNjcmlwdC5yZXNwb25zZSgpLnNvdXJjZSgpKTsKKyAgICAgICAgbV9yZXF1ZXN0VVJMVG9SZXNw
b25zZVVSTE1hcC5hZGQoc291cmNlVVJMLnN0cmluZygpLCByZXNwb25zZVVSTCk7CiAgICAgICAg
IHByb21pc2UtPnJlc29sdmVXaXRoQ2FsbGJhY2soWyZdIChKU0RPTUdsb2JhbE9iamVjdCYganNH
bG9iYWxPYmplY3QpIHsKICAgICAgICAgICAgIHJldHVybiBKU0M6OkpTU291cmNlQ29kZTo6Y3Jl
YXRlKGpzR2xvYmFsT2JqZWN0LnZtKCksCiAgICAgICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2Rl
IHsgU2NyaXB0U291cmNlQ29kZSB7ICZjYWNoZWRTY3JpcHQsIEpTQzo6U291cmNlUHJvdmlkZXJT
b3VyY2VUeXBlOjpNb2R1bGUsIGxvYWRlci5zY3JpcHRGZXRjaGVyKCkgfS5qc1NvdXJjZUNvZGUo
KSB9KTsKICAgICAgICAgfSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgYXV0byYgbG9hZGVyID0g
c3RhdGljX2Nhc3Q8V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyJj4obW9kdWxlU2NyaXB0TG9hZGVy
KTsKLSAgICAgICAgYXV0byYgd29ya2VyU2NyaXB0TG9hZGVyID0gbG9hZGVyLnNjcmlwdExvYWRl
cigpOwogCi0gICAgICAgIGlmICh3b3JrZXJTY3JpcHRMb2FkZXIuZmFpbGVkKCkpIHsKKyAgICAg
ICAgaWYgKGxvYWRlci5mYWlsZWQoKSkgeworICAgICAgICAgICAgQVNTRVJUKCFsb2FkZXIucmV0
cmlldmVkRnJvbVNlcnZpY2VXb3JrZXJDYWNoZSgpKTsKKyAgICAgICAgICAgIGF1dG8mIHdvcmtl
clNjcmlwdExvYWRlciA9IGxvYWRlci5zY3JpcHRMb2FkZXIoKTsKKyAgICAgICAgICAgIEFTU0VS
VCh3b3JrZXJTY3JpcHRMb2FkZXIuZmFpbGVkKCkpOwogICAgICAgICAgICAgaWYgKHdvcmtlclNj
cmlwdExvYWRlci5lcnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7CiAgICAgICAgICAgICAgICAg
cmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hG
YWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQg
YnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwpAQCAtNDMyLDI0ICs0MzQsMzIgQEAgdm9pZCBTY3JpcHRNb2R1bGVMb2Fk
ZXI6Om5vdGlmeUZpbmlzaGVkKE1vZHVsZVNjcmlwdExvYWRlciYgbW9kdWxlU2NyaXB0TG9hZGVy
LAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCFNSU1FVHlw
ZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZSh3b3JrZXJTY3JpcHRMb2Fk
ZXIucmVzcG9uc2VNSU1FVHlwZSgpKSkgeworICAgICAgICBpZiAoIU1JTUVUeXBlUmVnaXN0cnk6
OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKGxvYWRlci5yZXNwb25zZU1JTUVUeXBlKCkp
KSB7CiAgICAgICAgICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFn
ZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAogICAgICAgICAg
ICAgLy8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20gcmVzcG9uc2Un
cyBoZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2YVNjcmlwdCBN
SU1FIHR5cGUuCiAgICAgICAgICAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBmZXRjaGlu
ZyBhIGNsYXNzaWMgc2NyaXB0IGRvZXMgbm90IGluY2x1ZGUgTUlNRSB0eXBlIGNoZWNraW5nLiBJ
biBjb250cmFzdCwgbW9kdWxlIHNjcmlwdHMgd2lsbCBmYWlsIHRvIGxvYWQgaWYgdGhleSBhcmUg
bm90IG9mIGEgY29ycmVjdCBNSU1FIHR5cGUuCi0gICAgICAgICAgICBwcm9taXNlLT5yZWplY3Qo
VHlwZUVycm9yLCBtYWtlU3RyaW5nKCInIiwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlTUlN
RVR5cGUoKSwgIicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIikpOworICAg
ICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygiJyIsIGxvYWRl
ci5yZXNwb25zZU1JTUVUeXBlKCksICInIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0
eXBlLiIpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChh
dXRvKiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgewotICAgICAgICAgICAgLy8g
SWYgdGhpcyBpcyB0b3AtbGV2ZWwtbW9kdWxlLCB0aGVuIHdlIGV4dHJhY3QgcmVmZXJyZXItcG9s
aWN5IGFuZCBhcHBseSB0byB0aGUgZGVwZW5kZW50IG1vZHVsZXMuCi0gICAgICAgICAgICBpZiAo
cGFyYW1ldGVycy0+aXNUb3BMZXZlbE1vZHVsZSgpKQotICAgICAgICAgICAgICAgIHN0YXRpY19j
YXN0PFdvcmtlclNjcmlwdEZldGNoZXImPihsb2FkZXIuc2NyaXB0RmV0Y2hlcigpKS5zZXRSZWZl
cnJlclBvbGljeShsb2FkZXIucmVmZXJyZXJQb2xpY3koKSk7CisgICAgICAgIFVSTCByZXNwb25z
ZVVSTCA9IGxvYWRlci5yZXNwb25zZVVSTCgpOworICAgICAgICBpZiAoIWxvYWRlci5yZXRyaWV2
ZWRGcm9tU2VydmljZVdvcmtlckNhY2hlKCkpIHsKKyAgICAgICAgICAgIGF1dG8mIHdvcmtlclNj
cmlwdExvYWRlciA9IGxvYWRlci5zY3JpcHRMb2FkZXIoKTsKKyAgICAgICAgICAgIGlmIChhdXRv
KiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgeworICAgICAgICAgICAgICAgIC8v
IElmIHRoaXMgaXMgdG9wLWxldmVsLW1vZHVsZSwgdGhlbiB3ZSBleHRyYWN0IHJlZmVycmVyLXBv
bGljeSBhbmQgYXBwbHkgdG8gdGhlIGRlcGVuZGVudCBtb2R1bGVzLgorICAgICAgICAgICAgICAg
IGlmIChwYXJhbWV0ZXJzLT5pc1RvcExldmVsTW9kdWxlKCkpCisgICAgICAgICAgICAgICAgICAg
IHN0YXRpY19jYXN0PFdvcmtlclNjcmlwdEZldGNoZXImPihsb2FkZXIuc2NyaXB0RmV0Y2hlcigp
KS5zZXRSZWZlcnJlclBvbGljeShsb2FkZXIucmVmZXJyZXJQb2xpY3koKSk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICByZXNwb25zZVVSTCA9IGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVz
cG9uc2VVUkwocmVzcG9uc2VVUkwsIHdvcmtlclNjcmlwdExvYWRlci5pc1JlZGlyZWN0ZWQoKSwg
d29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlU291cmNlKCkpOworI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKKyAgICAgICAgICAgIGlmIChpczxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KG1f
Y29udGV4dCkpCisgICAgICAgICAgICAgICAgZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNj
b3BlPihtX2NvbnRleHQpLnNldFNjcmlwdFJlc291cmNlKHNvdXJjZVVSTCwgU2VydmljZVdvcmtl
ckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdCB7IGxvYWRlci5zY3JpcHQoKSwgcmVzcG9uc2VV
UkwsIGxvYWRlci5yZXNwb25zZU1JTUVUeXBlKCkgfSk7CisjZW5kaWYKICAgICAgICAgfQotCi0g
ICAgICAgIFVSTCByZXNwb25zZVVSTCA9IGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVzcG9uc2VV
Ukwod29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlVVJMKCksIHdvcmtlclNjcmlwdExvYWRlci5p
c1JlZGlyZWN0ZWQoKSwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlU291cmNlKCkpOworICAg
ICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCks
IHJlc3BvbnNlVVJMKTsKICAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhDYWxsYmFjayhbJl0g
KEpTRE9NR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCkgewogICAgICAgICAgICAgcmV0dXJu
IEpTQzo6SlNTb3VyY2VDb2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwKLSAgICAgICAg
ICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgd29ya2VyU2NyaXB0
TG9hZGVyLnNjcmlwdCgpLCBXVEZNb3ZlKHJlc3BvbnNlVVJMKSwgeyB9LCBKU0M6OlNvdXJjZVBy
b3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNTb3Vy
Y2VDb2RlKCkgfSk7CisgICAgICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2RlIHsgU2NyaXB0U291
cmNlQ29kZSB7IGxvYWRlci5zY3JpcHQoKSwgV1RGTW92ZShyZXNwb25zZVVSTCksIHsgfSwgSlND
OjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNjcmlwdEZldGNoZXIo
KSB9LmpzU291cmNlQ29kZSgpIH0pOwogICAgICAgICB9KTsKICAgICB9CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNw
cAppbmRleCBmODcwYTBkMWRhMzM4NTAwZjhlNGQ5MjY3MjNlZjU0MDlmZmNmNTliLi44MmUyMzY5
NzEwOGZlZDIyMjA5Yzg1Mjc2M2Q2ZTA0ZWMwOTE1ZTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAKQEAgLTYx
LDYgKzYxLDE5IEBAIGJvb2wgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFVSTCYmIHNvdXJjCiB7CiAgICAgbV9zb3VyY2VVUkwg
PSBXVEZNb3ZlKHNvdXJjZVVSTCk7CiAKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisgICAg
aWYgKGlzPFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkpIHsKKyAgICAgICAgaWYg
KGF1dG8qIHNjcmlwdFJlc291cmNlID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Pihjb250ZXh0KS5zY3JpcHRSZXNvdXJjZShtX3NvdXJjZVVSTCkpIHsKKyAgICAgICAgICAgIG1f
c2NyaXB0ID0gc2NyaXB0UmVzb3VyY2UtPnNjcmlwdDsKKyAgICAgICAgICAgIG1fcmVzcG9uc2VV
UkwgPSBzY3JpcHRSZXNvdXJjZS0+cmVzcG9uc2VVUkw7CisgICAgICAgICAgICBtX3Jlc3BvbnNl
TUlNRVR5cGUgPSBzY3JpcHRSZXNvdXJjZS0+bWltZVR5cGU7CisgICAgICAgICAgICBtX3JldHJp
ZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGUgPSB0cnVlOworICAgICAgICAgICAgbm90aWZ5Q2xp
ZW50RmluaXNoZWQoKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAg
fQorI2VuZGlmCisKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCB7IG1fc291cmNlVVJMIH07
CiAKICAgICBGZXRjaE9wdGlvbnMgZmV0Y2hPcHRpb25zOwpAQCAtOTQsNyArMTA3LDIxIEBAIHZv
aWQgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZCgpCiB7CiAgICAgQVNT
RVJUKG1fcHJvbWlzZSk7CiAKKyAgICBpZiAobV9zY3JpcHRMb2FkZXItPmZhaWxlZCgpKQorICAg
ICAgICBtX2ZhaWxlZCA9IHRydWU7CisgICAgZWxzZSB7CisgICAgICAgIG1fc2NyaXB0ID0gbV9z
Y3JpcHRMb2FkZXItPnNjcmlwdCgpOworICAgICAgICBtX3Jlc3BvbnNlVVJMID0gbV9zY3JpcHRM
b2FkZXItPnJlc3BvbnNlVVJMKCk7CisgICAgICAgIG1fcmVzcG9uc2VNSU1FVHlwZSA9IG1fc2Ny
aXB0TG9hZGVyLT5yZXNwb25zZU1JTUVUeXBlKCk7CisgICAgfQorCisgICAgbm90aWZ5Q2xpZW50
RmluaXNoZWQoKTsKK30KKwordm9pZCBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6Om5vdGlmeUNs
aWVudEZpbmlzaGVkKCkKK3sKICAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KTsKKwogICAgIGlmIChtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPm5vdGlmeUZpbmlzaGVk
KCp0aGlzLCBXVEZNb3ZlKG1fc291cmNlVVJMKSwgbV9wcm9taXNlLnJlbGVhc2VOb25OdWxsKCkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXIuaAppbmRleCBjNWRiN2U5M2VjMzc0YmIxZWQ5MjhhZTdlZTAzMWZkNTQwYmQy
OGNlLi43NmQxNGRhZmFhYWQxMjI5YmVlMDNlYjcxMjk2MmIwYWI2M2EwNWI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIu
aApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJNb2R1bGVTY3Jp
cHRMb2FkZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRCdWZmZXIuaCIKICNpbmNsdWRlICJXb3JrZXJT
Y3JpcHRGZXRjaGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCiAj
aW5jbHVkZSA8d3RmL1JlZi5oPgpAQCAtNTQsNiArNTUsMTIgQEAgY2xhc3MgV29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyIGZpbmFsIDogcHVibGljIE1vZHVsZVNjcmlwdExvYWRlciwgcHJpdmF0ZSBX
b3JrZXIKIAogICAgIHN0YXRpYyBTdHJpbmcgdGFza01vZGUoKTsKICAgICBSZWZlcnJlclBvbGlj
eSByZWZlcnJlclBvbGljeSgpOworICAgIGJvb2wgZmFpbGVkKCkgY29uc3QgeyByZXR1cm4gbV9m
YWlsZWQ7IH0KKyAgICBib29sIHJldHJpZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGUoKSBjb25z
dCB7IHJldHVybiBtX3JldHJpZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGU7IH0KKworICAgIGNv
bnN0IFNjcmlwdEJ1ZmZlciYgc2NyaXB0KCkgeyByZXR1cm4gbV9zY3JpcHQ7IH0KKyAgICBjb25z
dCBVUkwmIHJlc3BvbnNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZVVSTDsgfQorICAg
IGNvbnN0IFN0cmluZyYgcmVzcG9uc2VNSU1FVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9u
c2VNSU1FVHlwZTsgfQogCiBwcml2YXRlOgogICAgIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcihN
b2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBXb3JrZXJTY3JpcHRG
ZXRjaGVyJiwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CkBAIC02MSw4ICs2OCwx
NSBAQCBjbGFzcyBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIgZmluYWwgOiBwdWJsaWMgTW9kdWxl
U2NyaXB0TG9hZGVyLCBwcml2YXRlIFdvcmtlcgogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBmaW5hbCB7IH0KICAgICB2
b2lkIG5vdGlmeUZpbmlzaGVkKCkgZmluYWw7CiAKKyAgICB2b2lkIG5vdGlmeUNsaWVudEZpbmlz
aGVkKCk7CisKICAgICBSZWY8V29ya2VyU2NyaXB0TG9hZGVyPiBtX3NjcmlwdExvYWRlcjsKICAg
ICBVUkwgbV9zb3VyY2VVUkw7CisgICAgU2NyaXB0QnVmZmVyIG1fc2NyaXB0OworICAgIFVSTCBt
X3Jlc3BvbnNlVVJMOworICAgIFN0cmluZyBtX3Jlc3BvbnNlTUlNRVR5cGU7CisgICAgYm9vbCBt
X2ZhaWxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3JldHJpZXZlZEZyb21TZXJ2aWNlV29ya2Vy
Q2FjaGUgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVh
MGY2NjY0ZDNkOGIzZDA5YWViMmY1YmY0OTZhYmY3M2I3NjU5ZTguLjRhZDMwNzk3MjEwODIyZWRk
ZWFjNWYzN2IyZDZkMDdmZDllM2U0NzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0wNC0w
OCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFNlcnZpY2VX
b3JrZXIgc2hvdWxkIHNhdmUgbW9kdWxlIHNjcmlwdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDM1NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzU2MzQ4OTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNpc3Rl
bnQtbW9kdWxlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtl
cnMvcGVyc2lzdGVudC10b3AtbGV2ZWwtbW9kdWxlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LXRvcC1sZXZlbC1tb2R1
bGVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNv
dXJjZXMvcGVyc2lzdGVudC1pbXBvcnRlZC1tb2R1bGUtc2NyaXB0LnB5OiBBZGRlZC4KKyAgICAg
ICAgKG1haW4pOgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMv
cGVyc2lzdGVudC1tb2R1bGUtd29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9z
ZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3BlcnNpc3RlbnQtdG9wLWxldmVsLW1vZHVsZS1zY3Jp
cHQucHk6IEFkZGVkLgorICAgICAgICAobWFpbik6CisKIDIwMjEtMDQtMDggIEthdGUgQ2hlbmV5
ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHRlc3QgaW5mcmFz
dHJ1Y3R1cmUgZm9yIGFwcCBib3VuZCByZXF1ZXN0IGNvbnRleHQgc3RyaW5nCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJz
aXN0ZW50LW1vZHVsZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmN2MxZjY0NThjYzg5NWI5
YjAxOWFkYTliYWYxOTRlMDcwM2YwZTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDQgQEAKKworCitQQVNTIFRlc3Qgc2VydmljZS13b3JrZXIgaW1wb3J0ZWQgbW9k
dWxlIHNjcmlwdCBpcyBzYXZlZCBvbiBkaXNrCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LW1vZHVsZXMuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LW1vZHVsZXMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45MzIzNGMyYTExNjRmMGNjYjA3MzA2MDk4NTg5NzNhY2ZmM2YxNGYxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNpc3Rl
bnQtbW9kdWxlcy5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3JvdXRpbmVzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dD4KK2Z1bmN0aW9uIGdldFJhbmRvbUlkRnJvbVdvcmtlcih3b3JrZXIpCit7CisgICAgd29ya2Vy
LnBvc3RNZXNzYWdlKCJnZXRSYW5kb21JZCIpOworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5j
dGlvbihyZXNvbHZlKSB7CisgICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExp
c3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgcmVzb2x2ZShlLmRh
dGEpOworICAgICAgICB9KTsKKyAgICB9KTsKK30KKwordmFyIHJlZ2lzdHJhdGlvbjsKK3ZhciB3
b3JrZXI7Citwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBpZiAoIXdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoJ0ludGVybmFscyBBUEkg
bmVlZGVkIGZvciB0aGlzIHRlc3QnKTsKKworICAgIHJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmln
YXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJyZXNvdXJjZXMvcGVyc2lzdGVudC1tb2R1bGUt
d29ya2VyLmpzIiwgeworICAgICAgICB0eXBlOiAibW9kdWxlIgorICAgIH0pOworICAgIGlmIChy
ZWdpc3RyYXRpb24uaW5zdGFsbGluZykgeworICAgICAgICB3b3JrZXIgPSByZWdpc3RyYXRpb24u
aW5zdGFsbGluZzsKKyAgICAgICAgYXdhaXQgd2FpdEZvclN0YXRlKHdvcmtlciwgImFjdGl2YXRl
ZCIpOworICAgIH0gZWxzZQorICAgICAgICB3b3JrZXIgPSByZWdpc3RyYXRpb24uYWN0aXZlOwor
CisgICAgbGV0IGZyYW1lID0gYXdhaXQgd2l0aElmcmFtZSgicmVzb3VyY2VzIik7CisgICAgbGV0
IHJhbmRvbUlkID0gYXdhaXQgZ2V0UmFuZG9tSWRGcm9tV29ya2VyKHdvcmtlcik7CisKKyAgICBp
ZiAoIXdpbmRvdy5sb2NhdGlvbi5oYXNoLmxlbmd0aCkgeworICAgICAgICBpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICAgICAgICAgIGF3YWl0IGludGVybmFscy5zdG9yZVJlZ2lzdHJhdGlvbnNP
bkRpc2soKTsKKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0
ZXN0UnVubmVyLnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CisgICAgICAgIGF3YWl0IHdhaXRG
b3IoMTAwKTsKKyAgICAgICAgd2luZG93LmxvY2F0aW9uICs9ICI/dGVzdCMiICsgcmFuZG9tSWQ7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhc3NlcnRfZXF1YWxzKCIjIiArIHJhbmRv
bUlkLCB3aW5kb3cubG9jYXRpb24uaGFzaCk7Cit9LCAiVGVzdCBzZXJ2aWNlLXdvcmtlciBpbXBv
cnRlZCBtb2R1bGUgc2NyaXB0IGlzIHNhdmVkIG9uIGRpc2siKTsKKworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdv
cmtlcnMvcGVyc2lzdGVudC10b3AtbGV2ZWwtbW9kdWxlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC10b3AtbGV2ZWwtbW9kdWxl
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOThhYjUxMWMwNzdkNmEzOWM1ZWY4MGE0MzY5Zjcy
MjNkNjkwZTA0NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9wZXJzaXN0ZW50LXRvcC1sZXZlbC1tb2R1bGVzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQgQEAKKworCitQQVNTIFRlc3Qgc2VydmljZS13b3JrZXIgdG9wLWxldmVsIG1vZHVs
ZSBzY3JpcHQgaXMgc2F2ZWQgb24gZGlzaworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC10b3AtbGV2ZWwtbW9kdWxlcy5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNpc3RlbnQtdG9wLWxldmVs
LW1vZHVsZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTgxYjE3Zjk1ZjJkMjBiMDdhYmRiZDYxODcyOWVm
YTgxNTMzYTE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2Vydmlj
ZS13b3JrZXJzL3BlcnNpc3RlbnQtdG9wLWxldmVsLW1vZHVsZXMuaHRtbApAQCAtMCwwICsxLDUz
IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9yb3V0aW5lcy5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBnZXRSYW5kb21JZEZyb21X
b3JrZXIod29ya2VyKQoreworICAgIHdvcmtlci5wb3N0TWVzc2FnZSgiZ2V0UmFuZG9tSWQiKTsK
KyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgbmF2aWdh
dG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgIHJlc29sdmUoZS5kYXRhKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9
CisKK3ZhciByZWdpc3RyYXRpb247Cit2YXIgd29ya2VyOworcHJvbWlzZV90ZXN0KGFzeW5jICh0
ZXN0KSA9PiB7CisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgcmV0dXJuIFBy
b21pc2UucmVqZWN0KCdJbnRlcm5hbHMgQVBJIG5lZWRlZCBmb3IgdGhpcyB0ZXN0Jyk7CisKKyAg
ICByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcigi
cmVzb3VyY2VzL3BlcnNpc3RlbnQtdG9wLWxldmVsLW1vZHVsZS1zY3JpcHQucHkiLCB7CisgICAg
ICAgIHR5cGU6ICJtb2R1bGUiCisgICAgfSk7CisgICAgaWYgKHJlZ2lzdHJhdGlvbi5pbnN0YWxs
aW5nKSB7CisgICAgICAgIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOworICAgICAg
ICBhd2FpdCB3YWl0Rm9yU3RhdGUod29ya2VyLCAiYWN0aXZhdGVkIik7CisgICAgfSBlbHNlCisg
ICAgICAgIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5hY3RpdmU7CisKKyAgICBsZXQgZnJhbWUgPSBh
d2FpdCB3aXRoSWZyYW1lKCJyZXNvdXJjZXMiKTsKKyAgICBsZXQgcmFuZG9tSWQgPSBhd2FpdCBn
ZXRSYW5kb21JZEZyb21Xb3JrZXIod29ya2VyKTsKKworICAgIGlmICghd2luZG93LmxvY2F0aW9u
Lmhhc2gubGVuZ3RoKSB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAg
ICAgYXdhaXQgaW50ZXJuYWxzLnN0b3JlUmVnaXN0cmF0aW9uc09uRGlzaygpOworCisgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIudGVybWluYXRl
TmV0d29ya1Byb2Nlc3MoKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvcigxMDApOworICAgICAgICB3
aW5kb3cubG9jYXRpb24gKz0gIj90ZXN0IyIgKyByYW5kb21JZDsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGFzc2VydF9lcXVhbHMoIiMiICsgcmFuZG9tSWQsIHdpbmRvdy5sb2NhdGlv
bi5oYXNoKTsKK30sICJUZXN0IHNlcnZpY2Utd29ya2VyIHRvcC1sZXZlbCBtb2R1bGUgc2NyaXB0
IGlzIHNhdmVkIG9uIGRpc2siKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3Bl
cnNpc3RlbnQtaW1wb3J0ZWQtbW9kdWxlLXNjcmlwdC5weSBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVudC1pbXBvcnRlZC1tb2R1bGUtc2Ny
aXB0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjFmMmNjYWVhZjZjMDE4NzE2NzFhZWRiM2I3ZDVmM2M1MzI1ODlh
NmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtl
cnMvcmVzb3VyY2VzL3BlcnNpc3RlbnQtaW1wb3J0ZWQtbW9kdWxlLXNjcmlwdC5weQpAQCAtMCww
ICsxLDkgQEAKK2ltcG9ydCByYW5kb20KKworCitkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6
CisgICAgaGVhZGVycyA9IFsKKyAgICAgICAgKCJDb250ZW50LXR5cGUiLCAidGV4dC9qYXZhc2Ny
aXB0IiksCisgICAgICAgICgiQ2FjaGUtQ29udHJvbCIsICJuby1zdG9yZSIpCisgICAgXQorICAg
IHJldHVybiBoZWFkZXJzLCAic2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rp
b24oZSkgeyBlLnNvdXJjZS5wb3N0TWVzc2FnZSgnIiArIHN0cihyYW5kb20ucmFuZG9tKCkpICsg
IicpOyB9KTsiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtl
cnMvcmVzb3VyY2VzL3BlcnNpc3RlbnQtbW9kdWxlLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0
dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVudC1tb2R1bGUtd29ya2Vy
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQzYzUwZGZlYWQ1NWExOTkxZWZmNjhlY2UxNTAwNDQ2MWRiOWFjY2UK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMv
cmVzb3VyY2VzL3BlcnNpc3RlbnQtbW9kdWxlLXdvcmtlci5qcwpAQCAtMCwwICsxLDIgQEAKK2lt
cG9ydCAiLi9wZXJzaXN0ZW50LWltcG9ydGVkLW1vZHVsZS1zY3JpcHQucHkiOworCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3BlcnNp
c3RlbnQtdG9wLWxldmVsLW1vZHVsZS1zY3JpcHQucHkgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9z
ZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3BlcnNpc3RlbnQtdG9wLWxldmVsLW1vZHVsZS1zY3Jp
cHQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMWYyY2NhZWFmNmMwMTg3MTY3MWFlZGIzYjdkNWYzYzUzMjU4OWE2
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vy
cy9yZXNvdXJjZXMvcGVyc2lzdGVudC10b3AtbGV2ZWwtbW9kdWxlLXNjcmlwdC5weQpAQCAtMCww
ICsxLDkgQEAKK2ltcG9ydCByYW5kb20KKworCitkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6
CisgICAgaGVhZGVycyA9IFsKKyAgICAgICAgKCJDb250ZW50LXR5cGUiLCAidGV4dC9qYXZhc2Ny
aXB0IiksCisgICAgICAgICgiQ2FjaGUtQ29udHJvbCIsICJuby1zdG9yZSIpCisgICAgXQorICAg
IHJldHVybiBoZWFkZXJzLCAic2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rp
b24oZSkgeyBlLnNvdXJjZS5wb3N0TWVzc2FnZSgnIiArIHN0cihyYW5kb20ucmFuZG9tKCkpICsg
IicpOyB9KTsiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425582</attachid>
            <date>2021-04-08 21:00:53 -0700</date>
            <delta_ts>2021-04-08 21:46:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224356-20210408210052.patch</filename>
            <type>text/plain</type>
            <size>18870</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1Njg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkyOTdjNTFkMDcxOTYy
NzkwNjM0ODk5NWI5N2YyMTRkZTQxMmZlMi4uODMyMDEyNjcwZDBlMWMxMWI0ZjQ3ZTYxY2M0MWI5
MjcyYjM5NTYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA0LTA4ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2VydmljZVdvcmtlciBz
aG91bGQgc2F2ZSBtb2R1bGUgc2NyaXB0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MzU2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NTYzNDg5
Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
OiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLmh0bWwKKworICAg
ICAgICBJbiB0aGlzIHBhdGNoLCB3ZSBjYWxsIHNldFNjcmlwdFJlc291cmNlIC8gc2NyaXB0UmVz
b3VyY2Ugd2hpbGUgbG9hZGluZyBzZXJ2aWNlLXdvcmtlciBtb2R1bGUgc2NyaXB0cyBpbiBtb2R1
bGUgbG9hZGVycywKKyAgICAgICAgc28gdGhhdCB3ZSBjYW4gZW5zdXJlIHRoYXQgdGhleSBhcmUg
c2F2ZWQgb24gdGhlIGRpc2suCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRjaCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKToKKyAgICAgICAg
KFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlDbGllbnRGaW5p
c2hlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmg6
CisKIDIwMjEtMDQtMDggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNzM1NDEpIFdLV2ViVmlldyBjYW4ndCBsb2FkIE5T
VVJMUmVxdWVzdCBzdWJjbGFzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0TW9kdWxlTG9hZGVyLmNwcAppbmRleCBhZDQ3ZmUxMzBiMGNkODRmYmZhNTYxYzAzMzQ4
ZTljZmI3M2I5M2M4Li41Y2FjN2M1N2ZhODA0ZGE1MTNmM2E4MzYxMzExMWU4YzE3N2EzMjMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5j
cHAKQEAgLTE4OCw2ICsxODgsNyBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1
bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsTwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIGF1dG8gbG9hZGVyID0gV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVh
dGUoKnRoaXMsIGRlZmVycmVkLmdldCgpLCAqc3RhdGljX2Nhc3Q8V29ya2VyU2NyaXB0RmV0Y2hl
cio+KEpTQzo6anNDYXN0PEpTQzo6SlNTY3JpcHRGZXRjaGVyKj4oc2NyaXB0RmV0Y2hlciktPmZl
dGNoZXIoKSksIFdURk1vdmUodG9wTGV2ZWxGZXRjaFBhcmFtZXRlcnMpKTsKICAgICAgICAgbV9s
b2FkZXJzLmFkZChsb2FkZXIuY29weVJlZigpKTsKKyAgICAgICAgLy8gVGhpcyBjYW4gaW52b2tl
IGNhbGxiYWNrIGltbWVkaWF0ZWx5LgogICAgICAgICBsb2FkZXItPmxvYWQobV9jb250ZXh0LCBX
VEZNb3ZlKGNvbXBsZXRlZFVSTCkpOwogICAgIH0KIApAQCAtMzY5LDggKzM3MCw2IEBAIHZvaWQg
U2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChNb2R1bGVTY3JpcHRMb2FkZXImIG1v
ZHVsZVNjcmlwdExvYWRlciwKICAgICAgICAgICAgIGlmIChzb3VyY2VVUkwuaGFzRnJhZ21lbnRJ
ZGVudGlmaWVyKCkpCiAgICAgICAgICAgICAgICAgcmVzcG9uc2VVUkwuc2V0RnJhZ21lbnRJZGVu
dGlmaWVyKHNvdXJjZVVSTC5mcmFnbWVudElkZW50aWZpZXIoKSk7CiAgICAgICAgIH0KLQotICAg
ICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCks
IHJlc3BvbnNlVVJMKTsKICAgICAgICAgcmV0dXJuIHJlc3BvbnNlVVJMOwogICAgIH07CiAKQEAg
LTQwOCwxNiArNDA3LDE5IEBAIHZvaWQgU2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hl
ZChNb2R1bGVTY3JpcHRMb2FkZXImIG1vZHVsZVNjcmlwdExvYWRlciwKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogCi0gICAgICAgIGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVzcG9uc2VVUkwo
Y2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkudXJsKCksIGNhY2hlZFNjcmlwdC5oYXNSZWRpcmVjdGlv
bnMoKSwgY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkuc291cmNlKCkpOworICAgICAgICBVUkwgcmVz
cG9uc2VVUkwgPSBjYW5vbmljYWxpemVBbmRSZWdpc3RlclJlc3BvbnNlVVJMKGNhY2hlZFNjcmlw
dC5yZXNwb25zZSgpLnVybCgpLCBjYWNoZWRTY3JpcHQuaGFzUmVkaXJlY3Rpb25zKCksIGNhY2hl
ZFNjcmlwdC5yZXNwb25zZSgpLnNvdXJjZSgpKTsKKyAgICAgICAgbV9yZXF1ZXN0VVJMVG9SZXNw
b25zZVVSTE1hcC5hZGQoc291cmNlVVJMLnN0cmluZygpLCByZXNwb25zZVVSTCk7CiAgICAgICAg
IHByb21pc2UtPnJlc29sdmVXaXRoQ2FsbGJhY2soWyZdIChKU0RPTUdsb2JhbE9iamVjdCYganNH
bG9iYWxPYmplY3QpIHsKICAgICAgICAgICAgIHJldHVybiBKU0M6OkpTU291cmNlQ29kZTo6Y3Jl
YXRlKGpzR2xvYmFsT2JqZWN0LnZtKCksCiAgICAgICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2Rl
IHsgU2NyaXB0U291cmNlQ29kZSB7ICZjYWNoZWRTY3JpcHQsIEpTQzo6U291cmNlUHJvdmlkZXJT
b3VyY2VUeXBlOjpNb2R1bGUsIGxvYWRlci5zY3JpcHRGZXRjaGVyKCkgfS5qc1NvdXJjZUNvZGUo
KSB9KTsKICAgICAgICAgfSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgYXV0byYgbG9hZGVyID0g
c3RhdGljX2Nhc3Q8V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyJj4obW9kdWxlU2NyaXB0TG9hZGVy
KTsKLSAgICAgICAgYXV0byYgd29ya2VyU2NyaXB0TG9hZGVyID0gbG9hZGVyLnNjcmlwdExvYWRl
cigpOwogCi0gICAgICAgIGlmICh3b3JrZXJTY3JpcHRMb2FkZXIuZmFpbGVkKCkpIHsKKyAgICAg
ICAgaWYgKGxvYWRlci5mYWlsZWQoKSkgeworICAgICAgICAgICAgQVNTRVJUKCFsb2FkZXIucmV0
cmlldmVkRnJvbVNlcnZpY2VXb3JrZXJDYWNoZSgpKTsKKyAgICAgICAgICAgIGF1dG8mIHdvcmtl
clNjcmlwdExvYWRlciA9IGxvYWRlci5zY3JpcHRMb2FkZXIoKTsKKyAgICAgICAgICAgIEFTU0VS
VCh3b3JrZXJTY3JpcHRMb2FkZXIuZmFpbGVkKCkpOwogICAgICAgICAgICAgaWYgKHdvcmtlclNj
cmlwdExvYWRlci5lcnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7CiAgICAgICAgICAgICAgICAg
cmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hG
YWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQg
YnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwpAQCAtNDMyLDI0ICs0MzQsMzIgQEAgdm9pZCBTY3JpcHRNb2R1bGVMb2Fk
ZXI6Om5vdGlmeUZpbmlzaGVkKE1vZHVsZVNjcmlwdExvYWRlciYgbW9kdWxlU2NyaXB0TG9hZGVy
LAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCFNSU1FVHlw
ZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZSh3b3JrZXJTY3JpcHRMb2Fk
ZXIucmVzcG9uc2VNSU1FVHlwZSgpKSkgeworICAgICAgICBpZiAoIU1JTUVUeXBlUmVnaXN0cnk6
OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKGxvYWRlci5yZXNwb25zZU1JTUVUeXBlKCkp
KSB7CiAgICAgICAgICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFn
ZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAogICAgICAgICAg
ICAgLy8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20gcmVzcG9uc2Un
cyBoZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2YVNjcmlwdCBN
SU1FIHR5cGUuCiAgICAgICAgICAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBmZXRjaGlu
ZyBhIGNsYXNzaWMgc2NyaXB0IGRvZXMgbm90IGluY2x1ZGUgTUlNRSB0eXBlIGNoZWNraW5nLiBJ
biBjb250cmFzdCwgbW9kdWxlIHNjcmlwdHMgd2lsbCBmYWlsIHRvIGxvYWQgaWYgdGhleSBhcmUg
bm90IG9mIGEgY29ycmVjdCBNSU1FIHR5cGUuCi0gICAgICAgICAgICBwcm9taXNlLT5yZWplY3Qo
VHlwZUVycm9yLCBtYWtlU3RyaW5nKCInIiwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlTUlN
RVR5cGUoKSwgIicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIikpOworICAg
ICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygiJyIsIGxvYWRl
ci5yZXNwb25zZU1JTUVUeXBlKCksICInIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0
eXBlLiIpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChh
dXRvKiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgewotICAgICAgICAgICAgLy8g
SWYgdGhpcyBpcyB0b3AtbGV2ZWwtbW9kdWxlLCB0aGVuIHdlIGV4dHJhY3QgcmVmZXJyZXItcG9s
aWN5IGFuZCBhcHBseSB0byB0aGUgZGVwZW5kZW50IG1vZHVsZXMuCi0gICAgICAgICAgICBpZiAo
cGFyYW1ldGVycy0+aXNUb3BMZXZlbE1vZHVsZSgpKQotICAgICAgICAgICAgICAgIHN0YXRpY19j
YXN0PFdvcmtlclNjcmlwdEZldGNoZXImPihsb2FkZXIuc2NyaXB0RmV0Y2hlcigpKS5zZXRSZWZl
cnJlclBvbGljeShsb2FkZXIucmVmZXJyZXJQb2xpY3koKSk7CisgICAgICAgIFVSTCByZXNwb25z
ZVVSTCA9IGxvYWRlci5yZXNwb25zZVVSTCgpOworICAgICAgICBpZiAoIWxvYWRlci5yZXRyaWV2
ZWRGcm9tU2VydmljZVdvcmtlckNhY2hlKCkpIHsKKyAgICAgICAgICAgIGF1dG8mIHdvcmtlclNj
cmlwdExvYWRlciA9IGxvYWRlci5zY3JpcHRMb2FkZXIoKTsKKyAgICAgICAgICAgIGlmIChhdXRv
KiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgeworICAgICAgICAgICAgICAgIC8v
IElmIHRoaXMgaXMgdG9wLWxldmVsLW1vZHVsZSwgdGhlbiB3ZSBleHRyYWN0IHJlZmVycmVyLXBv
bGljeSBhbmQgYXBwbHkgdG8gdGhlIGRlcGVuZGVudCBtb2R1bGVzLgorICAgICAgICAgICAgICAg
IGlmIChwYXJhbWV0ZXJzLT5pc1RvcExldmVsTW9kdWxlKCkpCisgICAgICAgICAgICAgICAgICAg
IHN0YXRpY19jYXN0PFdvcmtlclNjcmlwdEZldGNoZXImPihsb2FkZXIuc2NyaXB0RmV0Y2hlcigp
KS5zZXRSZWZlcnJlclBvbGljeShsb2FkZXIucmVmZXJyZXJQb2xpY3koKSk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICByZXNwb25zZVVSTCA9IGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVz
cG9uc2VVUkwocmVzcG9uc2VVUkwsIHdvcmtlclNjcmlwdExvYWRlci5pc1JlZGlyZWN0ZWQoKSwg
d29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlU291cmNlKCkpOworI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKKyAgICAgICAgICAgIGlmIChpczxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KG1f
Y29udGV4dCkpCisgICAgICAgICAgICAgICAgZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNj
b3BlPihtX2NvbnRleHQpLnNldFNjcmlwdFJlc291cmNlKHNvdXJjZVVSTCwgU2VydmljZVdvcmtl
ckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdCB7IGxvYWRlci5zY3JpcHQoKSwgcmVzcG9uc2VV
UkwsIGxvYWRlci5yZXNwb25zZU1JTUVUeXBlKCkgfSk7CisjZW5kaWYKICAgICAgICAgfQotCi0g
ICAgICAgIFVSTCByZXNwb25zZVVSTCA9IGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVzcG9uc2VV
Ukwod29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlVVJMKCksIHdvcmtlclNjcmlwdExvYWRlci5p
c1JlZGlyZWN0ZWQoKSwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlU291cmNlKCkpOworICAg
ICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCks
IHJlc3BvbnNlVVJMKTsKICAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhDYWxsYmFjayhbJl0g
KEpTRE9NR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCkgewogICAgICAgICAgICAgcmV0dXJu
IEpTQzo6SlNTb3VyY2VDb2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwKLSAgICAgICAg
ICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgd29ya2VyU2NyaXB0
TG9hZGVyLnNjcmlwdCgpLCBXVEZNb3ZlKHJlc3BvbnNlVVJMKSwgeyB9LCBKU0M6OlNvdXJjZVBy
b3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNTb3Vy
Y2VDb2RlKCkgfSk7CisgICAgICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2RlIHsgU2NyaXB0U291
cmNlQ29kZSB7IGxvYWRlci5zY3JpcHQoKSwgV1RGTW92ZShyZXNwb25zZVVSTCksIHsgfSwgSlND
OjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNjcmlwdEZldGNoZXIo
KSB9LmpzU291cmNlQ29kZSgpIH0pOwogICAgICAgICB9KTsKICAgICB9CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNw
cAppbmRleCBmODcwYTBkMWRhMzM4NTAwZjhlNGQ5MjY3MjNlZjU0MDlmZmNmNTliLi44MmUyMzY5
NzEwOGZlZDIyMjA5Yzg1Mjc2M2Q2ZTA0ZWMwOTE1ZTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAKQEAgLTYx
LDYgKzYxLDE5IEBAIGJvb2wgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFVSTCYmIHNvdXJjCiB7CiAgICAgbV9zb3VyY2VVUkwg
PSBXVEZNb3ZlKHNvdXJjZVVSTCk7CiAKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisgICAg
aWYgKGlzPFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkpIHsKKyAgICAgICAgaWYg
KGF1dG8qIHNjcmlwdFJlc291cmNlID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Pihjb250ZXh0KS5zY3JpcHRSZXNvdXJjZShtX3NvdXJjZVVSTCkpIHsKKyAgICAgICAgICAgIG1f
c2NyaXB0ID0gc2NyaXB0UmVzb3VyY2UtPnNjcmlwdDsKKyAgICAgICAgICAgIG1fcmVzcG9uc2VV
UkwgPSBzY3JpcHRSZXNvdXJjZS0+cmVzcG9uc2VVUkw7CisgICAgICAgICAgICBtX3Jlc3BvbnNl
TUlNRVR5cGUgPSBzY3JpcHRSZXNvdXJjZS0+bWltZVR5cGU7CisgICAgICAgICAgICBtX3JldHJp
ZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGUgPSB0cnVlOworICAgICAgICAgICAgbm90aWZ5Q2xp
ZW50RmluaXNoZWQoKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAg
fQorI2VuZGlmCisKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCB7IG1fc291cmNlVVJMIH07
CiAKICAgICBGZXRjaE9wdGlvbnMgZmV0Y2hPcHRpb25zOwpAQCAtOTQsNyArMTA3LDIxIEBAIHZv
aWQgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZCgpCiB7CiAgICAgQVNT
RVJUKG1fcHJvbWlzZSk7CiAKKyAgICBpZiAobV9zY3JpcHRMb2FkZXItPmZhaWxlZCgpKQorICAg
ICAgICBtX2ZhaWxlZCA9IHRydWU7CisgICAgZWxzZSB7CisgICAgICAgIG1fc2NyaXB0ID0gbV9z
Y3JpcHRMb2FkZXItPnNjcmlwdCgpOworICAgICAgICBtX3Jlc3BvbnNlVVJMID0gbV9zY3JpcHRM
b2FkZXItPnJlc3BvbnNlVVJMKCk7CisgICAgICAgIG1fcmVzcG9uc2VNSU1FVHlwZSA9IG1fc2Ny
aXB0TG9hZGVyLT5yZXNwb25zZU1JTUVUeXBlKCk7CisgICAgfQorCisgICAgbm90aWZ5Q2xpZW50
RmluaXNoZWQoKTsKK30KKwordm9pZCBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6Om5vdGlmeUNs
aWVudEZpbmlzaGVkKCkKK3sKICAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KTsKKwogICAgIGlmIChtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPm5vdGlmeUZpbmlzaGVk
KCp0aGlzLCBXVEZNb3ZlKG1fc291cmNlVVJMKSwgbV9wcm9taXNlLnJlbGVhc2VOb25OdWxsKCkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXIuaAppbmRleCBjNWRiN2U5M2VjMzc0YmIxZWQ5MjhhZTdlZTAzMWZkNTQwYmQy
OGNlLi43NmQxNGRhZmFhYWQxMjI5YmVlMDNlYjcxMjk2MmIwYWI2M2EwNWI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIu
aApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJNb2R1bGVTY3Jp
cHRMb2FkZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRCdWZmZXIuaCIKICNpbmNsdWRlICJXb3JrZXJT
Y3JpcHRGZXRjaGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCiAj
aW5jbHVkZSA8d3RmL1JlZi5oPgpAQCAtNTQsNiArNTUsMTIgQEAgY2xhc3MgV29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyIGZpbmFsIDogcHVibGljIE1vZHVsZVNjcmlwdExvYWRlciwgcHJpdmF0ZSBX
b3JrZXIKIAogICAgIHN0YXRpYyBTdHJpbmcgdGFza01vZGUoKTsKICAgICBSZWZlcnJlclBvbGlj
eSByZWZlcnJlclBvbGljeSgpOworICAgIGJvb2wgZmFpbGVkKCkgY29uc3QgeyByZXR1cm4gbV9m
YWlsZWQ7IH0KKyAgICBib29sIHJldHJpZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGUoKSBjb25z
dCB7IHJldHVybiBtX3JldHJpZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGU7IH0KKworICAgIGNv
bnN0IFNjcmlwdEJ1ZmZlciYgc2NyaXB0KCkgeyByZXR1cm4gbV9zY3JpcHQ7IH0KKyAgICBjb25z
dCBVUkwmIHJlc3BvbnNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZVVSTDsgfQorICAg
IGNvbnN0IFN0cmluZyYgcmVzcG9uc2VNSU1FVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9u
c2VNSU1FVHlwZTsgfQogCiBwcml2YXRlOgogICAgIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcihN
b2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBXb3JrZXJTY3JpcHRG
ZXRjaGVyJiwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CkBAIC02MSw4ICs2OCwx
NSBAQCBjbGFzcyBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIgZmluYWwgOiBwdWJsaWMgTW9kdWxl
U2NyaXB0TG9hZGVyLCBwcml2YXRlIFdvcmtlcgogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBmaW5hbCB7IH0KICAgICB2
b2lkIG5vdGlmeUZpbmlzaGVkKCkgZmluYWw7CiAKKyAgICB2b2lkIG5vdGlmeUNsaWVudEZpbmlz
aGVkKCk7CisKICAgICBSZWY8V29ya2VyU2NyaXB0TG9hZGVyPiBtX3NjcmlwdExvYWRlcjsKICAg
ICBVUkwgbV9zb3VyY2VVUkw7CisgICAgU2NyaXB0QnVmZmVyIG1fc2NyaXB0OworICAgIFVSTCBt
X3Jlc3BvbnNlVVJMOworICAgIFN0cmluZyBtX3Jlc3BvbnNlTUlNRVR5cGU7CisgICAgYm9vbCBt
X2ZhaWxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3JldHJpZXZlZEZyb21TZXJ2aWNlV29ya2Vy
Q2FjaGUgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVh
MGY2NjY0ZDNkOGIzZDA5YWViMmY1YmY0OTZhYmY3M2I3NjU5ZTguLjRhZDMwNzk3MjEwODIyZWRk
ZWFjNWYzN2IyZDZkMDdmZDllM2U0NzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0wNC0w
OCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFNlcnZpY2VX
b3JrZXIgc2hvdWxkIHNhdmUgbW9kdWxlIHNjcmlwdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDM1NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzU2MzQ4OTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNpc3Rl
bnQtbW9kdWxlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtl
cnMvcGVyc2lzdGVudC10b3AtbGV2ZWwtbW9kdWxlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LXRvcC1sZXZlbC1tb2R1
bGVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNv
dXJjZXMvcGVyc2lzdGVudC1pbXBvcnRlZC1tb2R1bGUtc2NyaXB0LnB5OiBBZGRlZC4KKyAgICAg
ICAgKG1haW4pOgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMv
cGVyc2lzdGVudC1tb2R1bGUtd29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9z
ZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3BlcnNpc3RlbnQtdG9wLWxldmVsLW1vZHVsZS1zY3Jp
cHQucHk6IEFkZGVkLgorICAgICAgICAobWFpbik6CisKIDIwMjEtMDQtMDggIEthdGUgQ2hlbmV5
ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHRlc3QgaW5mcmFz
dHJ1Y3R1cmUgZm9yIGFwcCBib3VuZCByZXF1ZXN0IGNvbnRleHQgc3RyaW5nCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJz
aXN0ZW50LW1vZHVsZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZjIyZTlhNDMxYWQwMjcy
NzEzYjcxZmRjODc5NDAxNmM4ZWYxMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxIEBACitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2
aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODc2
MDYwZTg5MGQ3ZGY2NjQxMGYxM2M3ZDM0YWNmOTRjODg2NDY2NgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LW1vZHVsZXMu
aHRtbApAQCAtMCwwICsxLDczIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9yb3V0aW5lcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Citm
dW5jdGlvbiBnZXRSYW5kb21JZEZyb21Xb3JrZXIod29ya2VyKQoreworICAgIHdvcmtlci5wb3N0
TWVzc2FnZSgiZ2V0UmFuZG9tSWQiKTsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24o
cmVzb2x2ZSkgeworICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5l
cignbWVzc2FnZScsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHJlc29sdmUoZS5kYXRhKTsK
KyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHdpdGhJZnJhbWUyKHVybCkgewor
ICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbiAoZXYpIHsKKyAgICAgICAgcmVzb2x2
ZShldi5kYXRhKTsKKyAgICAgIH0sIGZhbHNlKTsKKyAgICAgIHZhciBmcmFtZSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworICAgICAgZnJhbWUuc3JjID0gdXJsOworICAgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFtZSk7CisgICAgfSk7Cit9CisKKworaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciByZWdpc3RyYXRpb247Cit2YXIgd29y
a2VyOworYXN5bmMgZnVuY3Rpb24gZG9UZXN0KCkgeworICAgIGlmICghd2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgnSW50ZXJuYWxzIEFQSSBuZWVkZWQg
Zm9yIHRoaXMgdGVzdCcpOworCisgICAgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNl
cnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNlcy9wZXJzaXN0ZW50LW1vZHVsZS13b3JrZXIu
anMiLCB7CisgICAgICAgIHR5cGU6ICJtb2R1bGUiCisgICAgfSk7CisgICAgaWYgKHJlZ2lzdHJh
dGlvbi5pbnN0YWxsaW5nKSB7CisgICAgICAgIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxs
aW5nOworICAgICAgICBhd2FpdCB3YWl0Rm9yU3RhdGUod29ya2VyLCAiYWN0aXZhdGVkIik7Cisg
ICAgfSBlbHNlCisgICAgICAgIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5hY3RpdmU7CisKKyAgICBs
ZXQgcmFuZG9tSWQgPSBhd2FpdCBnZXRSYW5kb21JZEZyb21Xb3JrZXIod29ya2VyKTsKKworICAg
IGlmICghd2luZG93LmxvY2F0aW9uLmhhc2gubGVuZ3RoKSB7CisgICAgICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgICAgICAgICAgYXdhaXQgaW50ZXJuYWxzLnN0b3JlUmVnaXN0cmF0aW9u
c09uRGlzaygpOworCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIudGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKKyAgICAgICAgYXdhaXQgd2Fp
dEZvcigxMDApOworCisgICAgICAgIGxldCByYW5kb21JZDIgPSBhd2FpdCB3aXRoSWZyYW1lMigi
Li9wZXJzaXN0ZW50LW1vZHVsZXMuaHRtbCNpZnJhbWUiKTsKKworICAgICAgICBkb2N1bWVudC5i
b2R5LmlubmVySFRNTCA9IHJhbmRvbUlkID09PSByYW5kb21JZDIgPyAiUEFTUyIgOiAiRkFJTCI7
CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworICAgIH0gZWxzZSB7CisgICAgICAgIHdpbmRvdy5wYXJlbnQucG9zdE1l
c3NhZ2UocmFuZG9tSWQsICcqJyk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9Citkb1Rlc3Qo
KTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC10b3AtbGV2ZWwtbW9kdWxlcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lz
dGVudC10b3AtbGV2ZWwtbW9kdWxlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VmMjJlOWE0
MzFhZDAyNzI3MTNiNzFmZGM4Nzk0MDE2YzhlZjEyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LXRvcC1sZXZlbC1tb2R1
bGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC10b3AtbGV2ZWwtbW9kdWxl
cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNpc3RlbnQt
dG9wLWxldmVsLW1vZHVsZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODljZTdiNzRjZmUzN2FjNTY5Y2U5
NGE1ZjE3MGNiYjhhZjg2OWMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvc2VydmljZS13b3JrZXJzL3BlcnNpc3RlbnQtdG9wLWxldmVsLW1vZHVsZXMuaHRtbApAQCAt
MCwwICsxLDczIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9yb3V0
aW5lcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBn
ZXRSYW5kb21JZEZyb21Xb3JrZXIod29ya2VyKQoreworICAgIHdvcmtlci5wb3N0TWVzc2FnZSgi
Z2V0UmFuZG9tSWQiKTsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkg
eworICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2Fn
ZScsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHJlc29sdmUoZS5kYXRhKTsKKyAgICAgICAg
fSk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHdpdGhJZnJhbWUyKHVybCkgeworICByZXR1cm4g
bmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbiAoZXYpIHsKKyAgICAgICAgcmVzb2x2ZShldi5kYXRh
KTsKKyAgICAgIH0sIGZhbHNlKTsKKyAgICAgIHZhciBmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2lmcmFtZScpOworICAgICAgZnJhbWUuc3JjID0gdXJsOworICAgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChmcmFtZSk7CisgICAgfSk7Cit9CisKKworaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciByZWdpc3RyYXRpb247Cit2YXIgd29ya2VyOworYXN5
bmMgZnVuY3Rpb24gZG9UZXN0KCkgeworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgnSW50ZXJuYWxzIEFQSSBuZWVkZWQgZm9yIHRoaXMg
dGVzdCcpOworCisgICAgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3Jr
ZXIucmVnaXN0ZXIoInJlc291cmNlcy9wZXJzaXN0ZW50LXRvcC1sZXZlbC1tb2R1bGUtc2NyaXB0
LnB5IiwgeworICAgICAgICB0eXBlOiAibW9kdWxlIgorICAgIH0pOworICAgIGlmIChyZWdpc3Ry
YXRpb24uaW5zdGFsbGluZykgeworICAgICAgICB3b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFs
bGluZzsKKyAgICAgICAgYXdhaXQgd2FpdEZvclN0YXRlKHdvcmtlciwgImFjdGl2YXRlZCIpOwor
ICAgIH0gZWxzZQorICAgICAgICB3b3JrZXIgPSByZWdpc3RyYXRpb24uYWN0aXZlOworCisgICAg
bGV0IHJhbmRvbUlkID0gYXdhaXQgZ2V0UmFuZG9tSWRGcm9tV29ya2VyKHdvcmtlcik7CisKKyAg
ICBpZiAoIXdpbmRvdy5sb2NhdGlvbi5oYXNoLmxlbmd0aCkgeworICAgICAgICBpZiAod2luZG93
LmludGVybmFscykKKyAgICAgICAgICAgIGF3YWl0IGludGVybmFscy5zdG9yZVJlZ2lzdHJhdGlv
bnNPbkRpc2soKTsKKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CisgICAgICAgIGF3YWl0IHdh
aXRGb3IoMTAwKTsKKworICAgICAgICBsZXQgcmFuZG9tSWQyID0gYXdhaXQgd2l0aElmcmFtZTIo
Ii4vcGVyc2lzdGVudC10b3AtbGV2ZWwtbW9kdWxlcy5odG1sI2lmcmFtZSIpOworCisgICAgICAg
IGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gcmFuZG9tSWQgPT09IHJhbmRvbUlkMiA/ICJQQVNT
IiA6ICJGQUlMIjsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgd2luZG93LnBh
cmVudC5wb3N0TWVzc2FnZShyYW5kb21JZCwgJyonKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
K30KK2RvVGVzdCgpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVu
dC1pbXBvcnRlZC1tb2R1bGUtc2NyaXB0LnB5IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2Vydmlj
ZS13b3JrZXJzL3Jlc291cmNlcy9wZXJzaXN0ZW50LWltcG9ydGVkLW1vZHVsZS1zY3JpcHQucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMWYyY2NhZWFmNmMwMTg3MTY3MWFlZGIzYjdkNWYzYzUzMjU4OWE2ZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNv
dXJjZXMvcGVyc2lzdGVudC1pbXBvcnRlZC1tb2R1bGUtc2NyaXB0LnB5CkBAIC0wLDAgKzEsOSBA
QAoraW1wb3J0IHJhbmRvbQorCisKK2RlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICBo
ZWFkZXJzID0gWworICAgICAgICAoIkNvbnRlbnQtdHlwZSIsICJ0ZXh0L2phdmFzY3JpcHQiKSwK
KyAgICAgICAgKCJDYWNoZS1Db250cm9sIiwgIm5vLXN0b3JlIikKKyAgICBdCisgICAgcmV0dXJu
IGhlYWRlcnMsICJzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihlKSB7
IGUuc291cmNlLnBvc3RNZXNzYWdlKCciICsgc3RyKHJhbmRvbS5yYW5kb20oKSkgKyAiJyk7IH0p
OyIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNv
dXJjZXMvcGVyc2lzdGVudC1tb2R1bGUtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9wZXJzaXN0ZW50LW1vZHVsZS13b3JrZXIuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDNjNTBkZmVhZDU1YTE5OTFlZmY2OGVjZTE1MDA0NDYxZGI5YWNjZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJj
ZXMvcGVyc2lzdGVudC1tb2R1bGUtd29ya2VyLmpzCkBAIC0wLDAgKzEsMiBAQAoraW1wb3J0ICIu
L3BlcnNpc3RlbnQtaW1wb3J0ZWQtbW9kdWxlLXNjcmlwdC5weSI7CisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVudC10
b3AtbGV2ZWwtbW9kdWxlLXNjcmlwdC5weSBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Ut
d29ya2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVudC10b3AtbGV2ZWwtbW9kdWxlLXNjcmlwdC5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xZjJjY2FlYWY2YzAxODcxNjcxYWVkYjNiN2Q1ZjNjNTMyNTg5YTZlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291
cmNlcy9wZXJzaXN0ZW50LXRvcC1sZXZlbC1tb2R1bGUtc2NyaXB0LnB5CkBAIC0wLDAgKzEsOSBA
QAoraW1wb3J0IHJhbmRvbQorCisKK2RlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICBo
ZWFkZXJzID0gWworICAgICAgICAoIkNvbnRlbnQtdHlwZSIsICJ0ZXh0L2phdmFzY3JpcHQiKSwK
KyAgICAgICAgKCJDYWNoZS1Db250cm9sIiwgIm5vLXN0b3JlIikKKyAgICBdCisgICAgcmV0dXJu
IGhlYWRlcnMsICJzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihlKSB7
IGUuc291cmNlLnBvc3RNZXNzYWdlKCciICsgc3RyKHJhbmRvbS5yYW5kb20oKSkgKyAiJyk7IH0p
OyIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425583</attachid>
            <date>2021-04-08 21:19:56 -0700</date>
            <delta_ts>2021-04-08 21:43:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224356-20210408211955.patch</filename>
            <type>text/plain</type>
            <size>18892</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1Njg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkyOTdjNTFkMDcxOTYy
NzkwNjM0ODk5NWI5N2YyMTRkZTQxMmZlMi4uODMyMDEyNjcwZDBlMWMxMWI0ZjQ3ZTYxY2M0MWI5
MjcyYjM5NTYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA0LTA4ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2VydmljZVdvcmtlciBz
aG91bGQgc2F2ZSBtb2R1bGUgc2NyaXB0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MzU2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NTYzNDg5
Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
OiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLmh0bWwKKworICAg
ICAgICBJbiB0aGlzIHBhdGNoLCB3ZSBjYWxsIHNldFNjcmlwdFJlc291cmNlIC8gc2NyaXB0UmVz
b3VyY2Ugd2hpbGUgbG9hZGluZyBzZXJ2aWNlLXdvcmtlciBtb2R1bGUgc2NyaXB0cyBpbiBtb2R1
bGUgbG9hZGVycywKKyAgICAgICAgc28gdGhhdCB3ZSBjYW4gZW5zdXJlIHRoYXQgdGhleSBhcmUg
c2F2ZWQgb24gdGhlIGRpc2suCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRjaCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKToKKyAgICAgICAg
KFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlDbGllbnRGaW5p
c2hlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmg6
CisKIDIwMjEtMDQtMDggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNzM1NDEpIFdLV2ViVmlldyBjYW4ndCBsb2FkIE5T
VVJMUmVxdWVzdCBzdWJjbGFzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0TW9kdWxlTG9hZGVyLmNwcAppbmRleCBhZDQ3ZmUxMzBiMGNkODRmYmZhNTYxYzAzMzQ4
ZTljZmI3M2I5M2M4Li41Y2FjN2M1N2ZhODA0ZGE1MTNmM2E4MzYxMzExMWU4YzE3N2EzMjMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5j
cHAKQEAgLTE4OCw2ICsxODgsNyBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1
bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsTwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIGF1dG8gbG9hZGVyID0gV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVh
dGUoKnRoaXMsIGRlZmVycmVkLmdldCgpLCAqc3RhdGljX2Nhc3Q8V29ya2VyU2NyaXB0RmV0Y2hl
cio+KEpTQzo6anNDYXN0PEpTQzo6SlNTY3JpcHRGZXRjaGVyKj4oc2NyaXB0RmV0Y2hlciktPmZl
dGNoZXIoKSksIFdURk1vdmUodG9wTGV2ZWxGZXRjaFBhcmFtZXRlcnMpKTsKICAgICAgICAgbV9s
b2FkZXJzLmFkZChsb2FkZXIuY29weVJlZigpKTsKKyAgICAgICAgLy8gVGhpcyBjYW4gaW52b2tl
IGNhbGxiYWNrIGltbWVkaWF0ZWx5LgogICAgICAgICBsb2FkZXItPmxvYWQobV9jb250ZXh0LCBX
VEZNb3ZlKGNvbXBsZXRlZFVSTCkpOwogICAgIH0KIApAQCAtMzY5LDggKzM3MCw2IEBAIHZvaWQg
U2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChNb2R1bGVTY3JpcHRMb2FkZXImIG1v
ZHVsZVNjcmlwdExvYWRlciwKICAgICAgICAgICAgIGlmIChzb3VyY2VVUkwuaGFzRnJhZ21lbnRJ
ZGVudGlmaWVyKCkpCiAgICAgICAgICAgICAgICAgcmVzcG9uc2VVUkwuc2V0RnJhZ21lbnRJZGVu
dGlmaWVyKHNvdXJjZVVSTC5mcmFnbWVudElkZW50aWZpZXIoKSk7CiAgICAgICAgIH0KLQotICAg
ICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCks
IHJlc3BvbnNlVVJMKTsKICAgICAgICAgcmV0dXJuIHJlc3BvbnNlVVJMOwogICAgIH07CiAKQEAg
LTQwOCwxNiArNDA3LDE5IEBAIHZvaWQgU2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hl
ZChNb2R1bGVTY3JpcHRMb2FkZXImIG1vZHVsZVNjcmlwdExvYWRlciwKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogCi0gICAgICAgIGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVzcG9uc2VVUkwo
Y2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkudXJsKCksIGNhY2hlZFNjcmlwdC5oYXNSZWRpcmVjdGlv
bnMoKSwgY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkuc291cmNlKCkpOworICAgICAgICBVUkwgcmVz
cG9uc2VVUkwgPSBjYW5vbmljYWxpemVBbmRSZWdpc3RlclJlc3BvbnNlVVJMKGNhY2hlZFNjcmlw
dC5yZXNwb25zZSgpLnVybCgpLCBjYWNoZWRTY3JpcHQuaGFzUmVkaXJlY3Rpb25zKCksIGNhY2hl
ZFNjcmlwdC5yZXNwb25zZSgpLnNvdXJjZSgpKTsKKyAgICAgICAgbV9yZXF1ZXN0VVJMVG9SZXNw
b25zZVVSTE1hcC5hZGQoc291cmNlVVJMLnN0cmluZygpLCByZXNwb25zZVVSTCk7CiAgICAgICAg
IHByb21pc2UtPnJlc29sdmVXaXRoQ2FsbGJhY2soWyZdIChKU0RPTUdsb2JhbE9iamVjdCYganNH
bG9iYWxPYmplY3QpIHsKICAgICAgICAgICAgIHJldHVybiBKU0M6OkpTU291cmNlQ29kZTo6Y3Jl
YXRlKGpzR2xvYmFsT2JqZWN0LnZtKCksCiAgICAgICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2Rl
IHsgU2NyaXB0U291cmNlQ29kZSB7ICZjYWNoZWRTY3JpcHQsIEpTQzo6U291cmNlUHJvdmlkZXJT
b3VyY2VUeXBlOjpNb2R1bGUsIGxvYWRlci5zY3JpcHRGZXRjaGVyKCkgfS5qc1NvdXJjZUNvZGUo
KSB9KTsKICAgICAgICAgfSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgYXV0byYgbG9hZGVyID0g
c3RhdGljX2Nhc3Q8V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyJj4obW9kdWxlU2NyaXB0TG9hZGVy
KTsKLSAgICAgICAgYXV0byYgd29ya2VyU2NyaXB0TG9hZGVyID0gbG9hZGVyLnNjcmlwdExvYWRl
cigpOwogCi0gICAgICAgIGlmICh3b3JrZXJTY3JpcHRMb2FkZXIuZmFpbGVkKCkpIHsKKyAgICAg
ICAgaWYgKGxvYWRlci5mYWlsZWQoKSkgeworICAgICAgICAgICAgQVNTRVJUKCFsb2FkZXIucmV0
cmlldmVkRnJvbVNlcnZpY2VXb3JrZXJDYWNoZSgpKTsKKyAgICAgICAgICAgIGF1dG8mIHdvcmtl
clNjcmlwdExvYWRlciA9IGxvYWRlci5zY3JpcHRMb2FkZXIoKTsKKyAgICAgICAgICAgIEFTU0VS
VCh3b3JrZXJTY3JpcHRMb2FkZXIuZmFpbGVkKCkpOwogICAgICAgICAgICAgaWYgKHdvcmtlclNj
cmlwdExvYWRlci5lcnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7CiAgICAgICAgICAgICAgICAg
cmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hG
YWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQg
YnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwpAQCAtNDMyLDI0ICs0MzQsMzIgQEAgdm9pZCBTY3JpcHRNb2R1bGVMb2Fk
ZXI6Om5vdGlmeUZpbmlzaGVkKE1vZHVsZVNjcmlwdExvYWRlciYgbW9kdWxlU2NyaXB0TG9hZGVy
LAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCFNSU1FVHlw
ZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZSh3b3JrZXJTY3JpcHRMb2Fk
ZXIucmVzcG9uc2VNSU1FVHlwZSgpKSkgeworICAgICAgICBpZiAoIU1JTUVUeXBlUmVnaXN0cnk6
OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKGxvYWRlci5yZXNwb25zZU1JTUVUeXBlKCkp
KSB7CiAgICAgICAgICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFn
ZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAogICAgICAgICAg
ICAgLy8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20gcmVzcG9uc2Un
cyBoZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2YVNjcmlwdCBN
SU1FIHR5cGUuCiAgICAgICAgICAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBmZXRjaGlu
ZyBhIGNsYXNzaWMgc2NyaXB0IGRvZXMgbm90IGluY2x1ZGUgTUlNRSB0eXBlIGNoZWNraW5nLiBJ
biBjb250cmFzdCwgbW9kdWxlIHNjcmlwdHMgd2lsbCBmYWlsIHRvIGxvYWQgaWYgdGhleSBhcmUg
bm90IG9mIGEgY29ycmVjdCBNSU1FIHR5cGUuCi0gICAgICAgICAgICBwcm9taXNlLT5yZWplY3Qo
VHlwZUVycm9yLCBtYWtlU3RyaW5nKCInIiwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlTUlN
RVR5cGUoKSwgIicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIikpOworICAg
ICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygiJyIsIGxvYWRl
ci5yZXNwb25zZU1JTUVUeXBlKCksICInIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0
eXBlLiIpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChh
dXRvKiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgewotICAgICAgICAgICAgLy8g
SWYgdGhpcyBpcyB0b3AtbGV2ZWwtbW9kdWxlLCB0aGVuIHdlIGV4dHJhY3QgcmVmZXJyZXItcG9s
aWN5IGFuZCBhcHBseSB0byB0aGUgZGVwZW5kZW50IG1vZHVsZXMuCi0gICAgICAgICAgICBpZiAo
cGFyYW1ldGVycy0+aXNUb3BMZXZlbE1vZHVsZSgpKQotICAgICAgICAgICAgICAgIHN0YXRpY19j
YXN0PFdvcmtlclNjcmlwdEZldGNoZXImPihsb2FkZXIuc2NyaXB0RmV0Y2hlcigpKS5zZXRSZWZl
cnJlclBvbGljeShsb2FkZXIucmVmZXJyZXJQb2xpY3koKSk7CisgICAgICAgIFVSTCByZXNwb25z
ZVVSTCA9IGxvYWRlci5yZXNwb25zZVVSTCgpOworICAgICAgICBpZiAoIWxvYWRlci5yZXRyaWV2
ZWRGcm9tU2VydmljZVdvcmtlckNhY2hlKCkpIHsKKyAgICAgICAgICAgIGF1dG8mIHdvcmtlclNj
cmlwdExvYWRlciA9IGxvYWRlci5zY3JpcHRMb2FkZXIoKTsKKyAgICAgICAgICAgIGlmIChhdXRv
KiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgeworICAgICAgICAgICAgICAgIC8v
IElmIHRoaXMgaXMgdG9wLWxldmVsLW1vZHVsZSwgdGhlbiB3ZSBleHRyYWN0IHJlZmVycmVyLXBv
bGljeSBhbmQgYXBwbHkgdG8gdGhlIGRlcGVuZGVudCBtb2R1bGVzLgorICAgICAgICAgICAgICAg
IGlmIChwYXJhbWV0ZXJzLT5pc1RvcExldmVsTW9kdWxlKCkpCisgICAgICAgICAgICAgICAgICAg
IHN0YXRpY19jYXN0PFdvcmtlclNjcmlwdEZldGNoZXImPihsb2FkZXIuc2NyaXB0RmV0Y2hlcigp
KS5zZXRSZWZlcnJlclBvbGljeShsb2FkZXIucmVmZXJyZXJQb2xpY3koKSk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICByZXNwb25zZVVSTCA9IGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVz
cG9uc2VVUkwocmVzcG9uc2VVUkwsIHdvcmtlclNjcmlwdExvYWRlci5pc1JlZGlyZWN0ZWQoKSwg
d29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlU291cmNlKCkpOworI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKKyAgICAgICAgICAgIGlmIChpczxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KG1f
Y29udGV4dCkpCisgICAgICAgICAgICAgICAgZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNj
b3BlPihtX2NvbnRleHQpLnNldFNjcmlwdFJlc291cmNlKHNvdXJjZVVSTCwgU2VydmljZVdvcmtl
ckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdCB7IGxvYWRlci5zY3JpcHQoKSwgcmVzcG9uc2VV
UkwsIGxvYWRlci5yZXNwb25zZU1JTUVUeXBlKCkgfSk7CisjZW5kaWYKICAgICAgICAgfQotCi0g
ICAgICAgIFVSTCByZXNwb25zZVVSTCA9IGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVzcG9uc2VV
Ukwod29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlVVJMKCksIHdvcmtlclNjcmlwdExvYWRlci5p
c1JlZGlyZWN0ZWQoKSwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlU291cmNlKCkpOworICAg
ICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCks
IHJlc3BvbnNlVVJMKTsKICAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhDYWxsYmFjayhbJl0g
KEpTRE9NR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCkgewogICAgICAgICAgICAgcmV0dXJu
IEpTQzo6SlNTb3VyY2VDb2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwKLSAgICAgICAg
ICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgd29ya2VyU2NyaXB0
TG9hZGVyLnNjcmlwdCgpLCBXVEZNb3ZlKHJlc3BvbnNlVVJMKSwgeyB9LCBKU0M6OlNvdXJjZVBy
b3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNTb3Vy
Y2VDb2RlKCkgfSk7CisgICAgICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2RlIHsgU2NyaXB0U291
cmNlQ29kZSB7IGxvYWRlci5zY3JpcHQoKSwgV1RGTW92ZShyZXNwb25zZVVSTCksIHsgfSwgSlND
OjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNjcmlwdEZldGNoZXIo
KSB9LmpzU291cmNlQ29kZSgpIH0pOwogICAgICAgICB9KTsKICAgICB9CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNw
cAppbmRleCBmODcwYTBkMWRhMzM4NTAwZjhlNGQ5MjY3MjNlZjU0MDlmZmNmNTliLi44MmUyMzY5
NzEwOGZlZDIyMjA5Yzg1Mjc2M2Q2ZTA0ZWMwOTE1ZTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAKQEAgLTYx
LDYgKzYxLDE5IEBAIGJvb2wgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFVSTCYmIHNvdXJjCiB7CiAgICAgbV9zb3VyY2VVUkwg
PSBXVEZNb3ZlKHNvdXJjZVVSTCk7CiAKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisgICAg
aWYgKGlzPFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkpIHsKKyAgICAgICAgaWYg
KGF1dG8qIHNjcmlwdFJlc291cmNlID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Pihjb250ZXh0KS5zY3JpcHRSZXNvdXJjZShtX3NvdXJjZVVSTCkpIHsKKyAgICAgICAgICAgIG1f
c2NyaXB0ID0gc2NyaXB0UmVzb3VyY2UtPnNjcmlwdDsKKyAgICAgICAgICAgIG1fcmVzcG9uc2VV
UkwgPSBzY3JpcHRSZXNvdXJjZS0+cmVzcG9uc2VVUkw7CisgICAgICAgICAgICBtX3Jlc3BvbnNl
TUlNRVR5cGUgPSBzY3JpcHRSZXNvdXJjZS0+bWltZVR5cGU7CisgICAgICAgICAgICBtX3JldHJp
ZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGUgPSB0cnVlOworICAgICAgICAgICAgbm90aWZ5Q2xp
ZW50RmluaXNoZWQoKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAg
fQorI2VuZGlmCisKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCB7IG1fc291cmNlVVJMIH07
CiAKICAgICBGZXRjaE9wdGlvbnMgZmV0Y2hPcHRpb25zOwpAQCAtOTQsNyArMTA3LDIxIEBAIHZv
aWQgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZCgpCiB7CiAgICAgQVNT
RVJUKG1fcHJvbWlzZSk7CiAKKyAgICBpZiAobV9zY3JpcHRMb2FkZXItPmZhaWxlZCgpKQorICAg
ICAgICBtX2ZhaWxlZCA9IHRydWU7CisgICAgZWxzZSB7CisgICAgICAgIG1fc2NyaXB0ID0gbV9z
Y3JpcHRMb2FkZXItPnNjcmlwdCgpOworICAgICAgICBtX3Jlc3BvbnNlVVJMID0gbV9zY3JpcHRM
b2FkZXItPnJlc3BvbnNlVVJMKCk7CisgICAgICAgIG1fcmVzcG9uc2VNSU1FVHlwZSA9IG1fc2Ny
aXB0TG9hZGVyLT5yZXNwb25zZU1JTUVUeXBlKCk7CisgICAgfQorCisgICAgbm90aWZ5Q2xpZW50
RmluaXNoZWQoKTsKK30KKwordm9pZCBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6Om5vdGlmeUNs
aWVudEZpbmlzaGVkKCkKK3sKICAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KTsKKwogICAgIGlmIChtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPm5vdGlmeUZpbmlzaGVk
KCp0aGlzLCBXVEZNb3ZlKG1fc291cmNlVVJMKSwgbV9wcm9taXNlLnJlbGVhc2VOb25OdWxsKCkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXIuaAppbmRleCBjNWRiN2U5M2VjMzc0YmIxZWQ5MjhhZTdlZTAzMWZkNTQwYmQy
OGNlLi43NmQxNGRhZmFhYWQxMjI5YmVlMDNlYjcxMjk2MmIwYWI2M2EwNWI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIu
aApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJNb2R1bGVTY3Jp
cHRMb2FkZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRCdWZmZXIuaCIKICNpbmNsdWRlICJXb3JrZXJT
Y3JpcHRGZXRjaGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCiAj
aW5jbHVkZSA8d3RmL1JlZi5oPgpAQCAtNTQsNiArNTUsMTIgQEAgY2xhc3MgV29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyIGZpbmFsIDogcHVibGljIE1vZHVsZVNjcmlwdExvYWRlciwgcHJpdmF0ZSBX
b3JrZXIKIAogICAgIHN0YXRpYyBTdHJpbmcgdGFza01vZGUoKTsKICAgICBSZWZlcnJlclBvbGlj
eSByZWZlcnJlclBvbGljeSgpOworICAgIGJvb2wgZmFpbGVkKCkgY29uc3QgeyByZXR1cm4gbV9m
YWlsZWQ7IH0KKyAgICBib29sIHJldHJpZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGUoKSBjb25z
dCB7IHJldHVybiBtX3JldHJpZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGU7IH0KKworICAgIGNv
bnN0IFNjcmlwdEJ1ZmZlciYgc2NyaXB0KCkgeyByZXR1cm4gbV9zY3JpcHQ7IH0KKyAgICBjb25z
dCBVUkwmIHJlc3BvbnNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZVVSTDsgfQorICAg
IGNvbnN0IFN0cmluZyYgcmVzcG9uc2VNSU1FVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9u
c2VNSU1FVHlwZTsgfQogCiBwcml2YXRlOgogICAgIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcihN
b2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBXb3JrZXJTY3JpcHRG
ZXRjaGVyJiwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CkBAIC02MSw4ICs2OCwx
NSBAQCBjbGFzcyBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIgZmluYWwgOiBwdWJsaWMgTW9kdWxl
U2NyaXB0TG9hZGVyLCBwcml2YXRlIFdvcmtlcgogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBmaW5hbCB7IH0KICAgICB2
b2lkIG5vdGlmeUZpbmlzaGVkKCkgZmluYWw7CiAKKyAgICB2b2lkIG5vdGlmeUNsaWVudEZpbmlz
aGVkKCk7CisKICAgICBSZWY8V29ya2VyU2NyaXB0TG9hZGVyPiBtX3NjcmlwdExvYWRlcjsKICAg
ICBVUkwgbV9zb3VyY2VVUkw7CisgICAgU2NyaXB0QnVmZmVyIG1fc2NyaXB0OworICAgIFVSTCBt
X3Jlc3BvbnNlVVJMOworICAgIFN0cmluZyBtX3Jlc3BvbnNlTUlNRVR5cGU7CisgICAgYm9vbCBt
X2ZhaWxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3JldHJpZXZlZEZyb21TZXJ2aWNlV29ya2Vy
Q2FjaGUgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVh
MGY2NjY0ZDNkOGIzZDA5YWViMmY1YmY0OTZhYmY3M2I3NjU5ZTguLjRhZDMwNzk3MjEwODIyZWRk
ZWFjNWYzN2IyZDZkMDdmZDllM2U0NzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0wNC0w
OCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFNlcnZpY2VX
b3JrZXIgc2hvdWxkIHNhdmUgbW9kdWxlIHNjcmlwdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDM1NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzU2MzQ4OTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNpc3Rl
bnQtbW9kdWxlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtl
cnMvcGVyc2lzdGVudC10b3AtbGV2ZWwtbW9kdWxlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LXRvcC1sZXZlbC1tb2R1
bGVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNv
dXJjZXMvcGVyc2lzdGVudC1pbXBvcnRlZC1tb2R1bGUtc2NyaXB0LnB5OiBBZGRlZC4KKyAgICAg
ICAgKG1haW4pOgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMv
cGVyc2lzdGVudC1tb2R1bGUtd29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9z
ZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3BlcnNpc3RlbnQtdG9wLWxldmVsLW1vZHVsZS1zY3Jp
cHQucHk6IEFkZGVkLgorICAgICAgICAobWFpbik6CisKIDIwMjEtMDQtMDggIEthdGUgQ2hlbmV5
ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHRlc3QgaW5mcmFz
dHJ1Y3R1cmUgZm9yIGFwcCBib3VuZCByZXF1ZXN0IGNvbnRleHQgc3RyaW5nCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJz
aXN0ZW50LW1vZHVsZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZjIyZTlhNDMxYWQwMjcy
NzEzYjcxZmRjODc5NDAxNmM4ZWYxMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxIEBACitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2
aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Zi
OTIxYjY5N2FiMmM2YzBlZmUyOGQ0MjlmNzZjOTA2NzQ5ZDY4MwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LW1vZHVsZXMu
aHRtbApAQCAtMCwwICsxLDc0IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9yb3V0aW5lcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Citm
dW5jdGlvbiBnZXRSYW5kb21JZEZyb21Xb3JrZXIod29ya2VyKQoreworICAgIHdvcmtlci5wb3N0
TWVzc2FnZSgiZ2V0UmFuZG9tSWQiKTsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24o
cmVzb2x2ZSkgeworICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5l
cignbWVzc2FnZScsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHJlc29sdmUoZS5kYXRhKTsK
KyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHdpdGhJZnJhbWUyKHVybCkgewor
ICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbiAoZXYpIHsKKyAgICAgICAgcmVzb2x2
ZShldi5kYXRhKTsKKyAgICAgIH0sIGZhbHNlKTsKKyAgICAgIHZhciBmcmFtZSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworICAgICAgZnJhbWUuc3JjID0gdXJsOworICAgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFtZSk7CisgICAgfSk7Cit9CisKKworaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciByZWdpc3RyYXRpb247Cit2YXIgd29y
a2VyOworYXN5bmMgZnVuY3Rpb24gZG9UZXN0KCkgeworICAgIGlmICghd2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgnSW50ZXJuYWxzIEFQSSBuZWVkZWQg
Zm9yIHRoaXMgdGVzdCcpOworCisgICAgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNl
cnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNlcy9wZXJzaXN0ZW50LW1vZHVsZS13b3JrZXIu
anMiLCB7CisgICAgICAgIHR5cGU6ICJtb2R1bGUiCisgICAgfSk7CisgICAgaWYgKHJlZ2lzdHJh
dGlvbi5pbnN0YWxsaW5nKSB7CisgICAgICAgIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxs
aW5nOworICAgICAgICBhd2FpdCB3YWl0Rm9yU3RhdGUod29ya2VyLCAiYWN0aXZhdGVkIik7Cisg
ICAgfSBlbHNlCisgICAgICAgIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5hY3RpdmU7CisKKyAgICBs
ZXQgcmFuZG9tSWQgPSBhd2FpdCBnZXRSYW5kb21JZEZyb21Xb3JrZXIod29ya2VyKTsKKworICAg
IGlmICghd2luZG93LmxvY2F0aW9uLmhhc2gubGVuZ3RoKSB7CisgICAgICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgICAgICAgICAgYXdhaXQgaW50ZXJuYWxzLnN0b3JlUmVnaXN0cmF0aW9u
c09uRGlzaygpOworICAgICAgICAvKgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CisgICAgICAg
ICovCisgICAgICAgIGF3YWl0IHdhaXRGb3IoMTAwKTsKKworICAgICAgICBsZXQgcmFuZG9tSWQy
ID0gYXdhaXQgd2l0aElmcmFtZTIoIi4vcGVyc2lzdGVudC1tb2R1bGVzLmh0bWwjaWZyYW1lIik7
CisKKyAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSByYW5kb21JZCA9PT0gcmFuZG9t
SWQyID8gIlBBU1MiIDogIkZBSUwiOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9IGVsc2UgeworICAgICAg
ICB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKHJhbmRvbUlkLCAnKicpOworICAgICAgICByZXR1
cm47CisgICAgfQorfQorZG9UZXN0KCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNpc3Rl
bnQtdG9wLWxldmVsLW1vZHVsZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL3BlcnNpc3RlbnQtdG9wLWxldmVsLW1vZHVsZXMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdlZjIyZTlhNDMxYWQwMjcyNzEzYjcxZmRjODc5NDAxNmM4ZWYxMmYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVy
c2lzdGVudC10b3AtbGV2ZWwtbW9kdWxlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorUEFT
UwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNp
c3RlbnQtdG9wLWxldmVsLW1vZHVsZXMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9wZXJzaXN0ZW50LXRvcC1sZXZlbC1tb2R1bGVzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Mzg5Y2U3Yjc0Y2ZlMzdhYzU2OWNlOTRhNWYxNzBjYmI4YWY4NjljMgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LXRvcC1s
ZXZlbC1tb2R1bGVzLmh0bWwKQEAgLTAsMCArMSw3MyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcm91dGluZXMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0PgorZnVuY3Rpb24gZ2V0UmFuZG9tSWRGcm9tV29ya2VyKHdvcmtlcikKK3sKKyAg
ICB3b3JrZXIucG9zdE1lc3NhZ2UoImdldFJhbmRvbUlkIik7CisgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFk
ZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICByZXNv
bHZlKGUuZGF0YSk7CisgICAgICAgIH0pOworICAgIH0pOworfQorCitmdW5jdGlvbiB3aXRoSWZy
YW1lMih1cmwpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAg
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24gKGV2KSB7Cisg
ICAgICAgIHJlc29sdmUoZXYuZGF0YSk7CisgICAgICB9LCBmYWxzZSk7CisgICAgICB2YXIgZnJh
bWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKKyAgICAgIGZyYW1lLnNyYyA9
IHVybDsKKyAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUpOworICAgIH0pOwor
fQorCisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCit2YXIgcmVnaXN0cmF0
aW9uOwordmFyIHdvcmtlcjsKK2FzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpIHsKKyAgICBpZiAoIXdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoJ0ludGVybmFs
cyBBUEkgbmVlZGVkIGZvciB0aGlzIHRlc3QnKTsKKworICAgIHJlZ2lzdHJhdGlvbiA9IGF3YWl0
IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJyZXNvdXJjZXMvcGVyc2lzdGVudC10
b3AtbGV2ZWwtbW9kdWxlLXNjcmlwdC5weSIsIHsKKyAgICAgICAgdHlwZTogIm1vZHVsZSIKKyAg
ICB9KTsKKyAgICBpZiAocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcpIHsKKyAgICAgICAgd29ya2Vy
ID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7CisgICAgICAgIGF3YWl0IHdhaXRGb3JTdGF0ZSh3
b3JrZXIsICJhY3RpdmF0ZWQiKTsKKyAgICB9IGVsc2UKKyAgICAgICAgd29ya2VyID0gcmVnaXN0
cmF0aW9uLmFjdGl2ZTsKKworICAgIGxldCByYW5kb21JZCA9IGF3YWl0IGdldFJhbmRvbUlkRnJv
bVdvcmtlcih3b3JrZXIpOworCisgICAgaWYgKCF3aW5kb3cubG9jYXRpb24uaGFzaC5sZW5ndGgp
IHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBhd2FpdCBpbnRl
cm5hbHMuc3RvcmVSZWdpc3RyYXRpb25zT25EaXNrKCk7CisKKyAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci50ZXJtaW5hdGVOZXR3b3JrUHJvY2Vz
cygpOworICAgICAgICBhd2FpdCB3YWl0Rm9yKDEwMCk7CisKKyAgICAgICAgbGV0IHJhbmRvbUlk
MiA9IGF3YWl0IHdpdGhJZnJhbWUyKCIuL3BlcnNpc3RlbnQtdG9wLWxldmVsLW1vZHVsZXMuaHRt
bCNpZnJhbWUiKTsKKworICAgICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IHJhbmRvbUlk
ID09PSByYW5kb21JZDIgPyAiUEFTUyIgOiAiRkFJTCI7CisgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UocmFuZG9tSWQsICcqJyk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9Cit9Citkb1Rlc3QoKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtl
cnMvcmVzb3VyY2VzL3BlcnNpc3RlbnQtaW1wb3J0ZWQtbW9kdWxlLXNjcmlwdC5weSBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVudC1pbXBv
cnRlZC1tb2R1bGUtc2NyaXB0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFmMmNjYWVhZjZjMDE4NzE2NzFhZWRi
M2I3ZDVmM2M1MzI1ODlhNmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3BlcnNpc3RlbnQtaW1wb3J0ZWQtbW9kdWxlLXNj
cmlwdC5weQpAQCAtMCwwICsxLDkgQEAKK2ltcG9ydCByYW5kb20KKworCitkZWYgbWFpbihyZXF1
ZXN0LCByZXNwb25zZSk6CisgICAgaGVhZGVycyA9IFsKKyAgICAgICAgKCJDb250ZW50LXR5cGUi
LCAidGV4dC9qYXZhc2NyaXB0IiksCisgICAgICAgICgiQ2FjaGUtQ29udHJvbCIsICJuby1zdG9y
ZSIpCisgICAgXQorICAgIHJldHVybiBoZWFkZXJzLCAic2VsZi5hZGRFdmVudExpc3RlbmVyKCdt
ZXNzYWdlJywgZnVuY3Rpb24oZSkgeyBlLnNvdXJjZS5wb3N0TWVzc2FnZSgnIiArIHN0cihyYW5k
b20ucmFuZG9tKCkpICsgIicpOyB9KTsiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dw
dC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3BlcnNpc3RlbnQtbW9kdWxlLXdvcmtlci5qcyBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVu
dC1tb2R1bGUtd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzYzUwZGZlYWQ1NWExOTkxZWZmNjhlY2Ux
NTAwNDQ2MWRiOWFjY2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9z
ZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3BlcnNpc3RlbnQtbW9kdWxlLXdvcmtlci5qcwpAQCAt
MCwwICsxLDIgQEAKK2ltcG9ydCAiLi9wZXJzaXN0ZW50LWltcG9ydGVkLW1vZHVsZS1zY3JpcHQu
cHkiOworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMv
cmVzb3VyY2VzL3BlcnNpc3RlbnQtdG9wLWxldmVsLW1vZHVsZS1zY3JpcHQucHkgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3BlcnNpc3RlbnQtdG9wLWxl
dmVsLW1vZHVsZS1zY3JpcHQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWYyY2NhZWFmNmMwMTg3MTY3MWFlZGIz
YjdkNWYzYzUzMjU4OWE2ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVudC10b3AtbGV2ZWwtbW9kdWxlLXNj
cmlwdC5weQpAQCAtMCwwICsxLDkgQEAKK2ltcG9ydCByYW5kb20KKworCitkZWYgbWFpbihyZXF1
ZXN0LCByZXNwb25zZSk6CisgICAgaGVhZGVycyA9IFsKKyAgICAgICAgKCJDb250ZW50LXR5cGUi
LCAidGV4dC9qYXZhc2NyaXB0IiksCisgICAgICAgICgiQ2FjaGUtQ29udHJvbCIsICJuby1zdG9y
ZSIpCisgICAgXQorICAgIHJldHVybiBoZWFkZXJzLCAic2VsZi5hZGRFdmVudExpc3RlbmVyKCdt
ZXNzYWdlJywgZnVuY3Rpb24oZSkgeyBlLnNvdXJjZS5wb3N0TWVzc2FnZSgnIiArIHN0cihyYW5k
b20ucmFuZG9tKCkpICsgIicpOyB9KTsiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425585</attachid>
            <date>2021-04-08 21:46:47 -0700</date>
            <delta_ts>2021-04-08 23:31:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224356-20210408214646.patch</filename>
            <type>text/plain</type>
            <size>15205</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1Njg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkyOTdjNTFkMDcxOTYy
NzkwNjM0ODk5NWI5N2YyMTRkZTQxMmZlMi4uODMyMDEyNjcwZDBlMWMxMWI0ZjQ3ZTYxY2M0MWI5
MjcyYjM5NTYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA0LTA4ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2VydmljZVdvcmtlciBz
aG91bGQgc2F2ZSBtb2R1bGUgc2NyaXB0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MzU2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NTYzNDg5
Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
OiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLmh0bWwKKworICAg
ICAgICBJbiB0aGlzIHBhdGNoLCB3ZSBjYWxsIHNldFNjcmlwdFJlc291cmNlIC8gc2NyaXB0UmVz
b3VyY2Ugd2hpbGUgbG9hZGluZyBzZXJ2aWNlLXdvcmtlciBtb2R1bGUgc2NyaXB0cyBpbiBtb2R1
bGUgbG9hZGVycywKKyAgICAgICAgc28gdGhhdCB3ZSBjYW4gZW5zdXJlIHRoYXQgdGhleSBhcmUg
c2F2ZWQgb24gdGhlIGRpc2suCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRjaCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKToKKyAgICAgICAg
KFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlDbGllbnRGaW5p
c2hlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmg6
CisKIDIwMjEtMDQtMDggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNzM1NDEpIFdLV2ViVmlldyBjYW4ndCBsb2FkIE5T
VVJMUmVxdWVzdCBzdWJjbGFzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0TW9kdWxlTG9hZGVyLmNwcAppbmRleCBhZDQ3ZmUxMzBiMGNkODRmYmZhNTYxYzAzMzQ4
ZTljZmI3M2I5M2M4Li41Y2FjN2M1N2ZhODA0ZGE1MTNmM2E4MzYxMzExMWU4YzE3N2EzMjMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5j
cHAKQEAgLTE4OCw2ICsxODgsNyBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1
bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsTwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIGF1dG8gbG9hZGVyID0gV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVh
dGUoKnRoaXMsIGRlZmVycmVkLmdldCgpLCAqc3RhdGljX2Nhc3Q8V29ya2VyU2NyaXB0RmV0Y2hl
cio+KEpTQzo6anNDYXN0PEpTQzo6SlNTY3JpcHRGZXRjaGVyKj4oc2NyaXB0RmV0Y2hlciktPmZl
dGNoZXIoKSksIFdURk1vdmUodG9wTGV2ZWxGZXRjaFBhcmFtZXRlcnMpKTsKICAgICAgICAgbV9s
b2FkZXJzLmFkZChsb2FkZXIuY29weVJlZigpKTsKKyAgICAgICAgLy8gVGhpcyBjYW4gaW52b2tl
IGNhbGxiYWNrIGltbWVkaWF0ZWx5LgogICAgICAgICBsb2FkZXItPmxvYWQobV9jb250ZXh0LCBX
VEZNb3ZlKGNvbXBsZXRlZFVSTCkpOwogICAgIH0KIApAQCAtMzY5LDggKzM3MCw2IEBAIHZvaWQg
U2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChNb2R1bGVTY3JpcHRMb2FkZXImIG1v
ZHVsZVNjcmlwdExvYWRlciwKICAgICAgICAgICAgIGlmIChzb3VyY2VVUkwuaGFzRnJhZ21lbnRJ
ZGVudGlmaWVyKCkpCiAgICAgICAgICAgICAgICAgcmVzcG9uc2VVUkwuc2V0RnJhZ21lbnRJZGVu
dGlmaWVyKHNvdXJjZVVSTC5mcmFnbWVudElkZW50aWZpZXIoKSk7CiAgICAgICAgIH0KLQotICAg
ICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCks
IHJlc3BvbnNlVVJMKTsKICAgICAgICAgcmV0dXJuIHJlc3BvbnNlVVJMOwogICAgIH07CiAKQEAg
LTQwOCwxNiArNDA3LDE5IEBAIHZvaWQgU2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hl
ZChNb2R1bGVTY3JpcHRMb2FkZXImIG1vZHVsZVNjcmlwdExvYWRlciwKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogCi0gICAgICAgIGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVzcG9uc2VVUkwo
Y2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkudXJsKCksIGNhY2hlZFNjcmlwdC5oYXNSZWRpcmVjdGlv
bnMoKSwgY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkuc291cmNlKCkpOworICAgICAgICBVUkwgcmVz
cG9uc2VVUkwgPSBjYW5vbmljYWxpemVBbmRSZWdpc3RlclJlc3BvbnNlVVJMKGNhY2hlZFNjcmlw
dC5yZXNwb25zZSgpLnVybCgpLCBjYWNoZWRTY3JpcHQuaGFzUmVkaXJlY3Rpb25zKCksIGNhY2hl
ZFNjcmlwdC5yZXNwb25zZSgpLnNvdXJjZSgpKTsKKyAgICAgICAgbV9yZXF1ZXN0VVJMVG9SZXNw
b25zZVVSTE1hcC5hZGQoc291cmNlVVJMLnN0cmluZygpLCByZXNwb25zZVVSTCk7CiAgICAgICAg
IHByb21pc2UtPnJlc29sdmVXaXRoQ2FsbGJhY2soWyZdIChKU0RPTUdsb2JhbE9iamVjdCYganNH
bG9iYWxPYmplY3QpIHsKICAgICAgICAgICAgIHJldHVybiBKU0M6OkpTU291cmNlQ29kZTo6Y3Jl
YXRlKGpzR2xvYmFsT2JqZWN0LnZtKCksCiAgICAgICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2Rl
IHsgU2NyaXB0U291cmNlQ29kZSB7ICZjYWNoZWRTY3JpcHQsIEpTQzo6U291cmNlUHJvdmlkZXJT
b3VyY2VUeXBlOjpNb2R1bGUsIGxvYWRlci5zY3JpcHRGZXRjaGVyKCkgfS5qc1NvdXJjZUNvZGUo
KSB9KTsKICAgICAgICAgfSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgYXV0byYgbG9hZGVyID0g
c3RhdGljX2Nhc3Q8V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyJj4obW9kdWxlU2NyaXB0TG9hZGVy
KTsKLSAgICAgICAgYXV0byYgd29ya2VyU2NyaXB0TG9hZGVyID0gbG9hZGVyLnNjcmlwdExvYWRl
cigpOwogCi0gICAgICAgIGlmICh3b3JrZXJTY3JpcHRMb2FkZXIuZmFpbGVkKCkpIHsKKyAgICAg
ICAgaWYgKGxvYWRlci5mYWlsZWQoKSkgeworICAgICAgICAgICAgQVNTRVJUKCFsb2FkZXIucmV0
cmlldmVkRnJvbVNlcnZpY2VXb3JrZXJDYWNoZSgpKTsKKyAgICAgICAgICAgIGF1dG8mIHdvcmtl
clNjcmlwdExvYWRlciA9IGxvYWRlci5zY3JpcHRMb2FkZXIoKTsKKyAgICAgICAgICAgIEFTU0VS
VCh3b3JrZXJTY3JpcHRMb2FkZXIuZmFpbGVkKCkpOwogICAgICAgICAgICAgaWYgKHdvcmtlclNj
cmlwdExvYWRlci5lcnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7CiAgICAgICAgICAgICAgICAg
cmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hG
YWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQg
YnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwpAQCAtNDMyLDI0ICs0MzQsMzIgQEAgdm9pZCBTY3JpcHRNb2R1bGVMb2Fk
ZXI6Om5vdGlmeUZpbmlzaGVkKE1vZHVsZVNjcmlwdExvYWRlciYgbW9kdWxlU2NyaXB0TG9hZGVy
LAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCFNSU1FVHlw
ZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZSh3b3JrZXJTY3JpcHRMb2Fk
ZXIucmVzcG9uc2VNSU1FVHlwZSgpKSkgeworICAgICAgICBpZiAoIU1JTUVUeXBlUmVnaXN0cnk6
OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKGxvYWRlci5yZXNwb25zZU1JTUVUeXBlKCkp
KSB7CiAgICAgICAgICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFn
ZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAogICAgICAgICAg
ICAgLy8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20gcmVzcG9uc2Un
cyBoZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2YVNjcmlwdCBN
SU1FIHR5cGUuCiAgICAgICAgICAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBmZXRjaGlu
ZyBhIGNsYXNzaWMgc2NyaXB0IGRvZXMgbm90IGluY2x1ZGUgTUlNRSB0eXBlIGNoZWNraW5nLiBJ
biBjb250cmFzdCwgbW9kdWxlIHNjcmlwdHMgd2lsbCBmYWlsIHRvIGxvYWQgaWYgdGhleSBhcmUg
bm90IG9mIGEgY29ycmVjdCBNSU1FIHR5cGUuCi0gICAgICAgICAgICBwcm9taXNlLT5yZWplY3Qo
VHlwZUVycm9yLCBtYWtlU3RyaW5nKCInIiwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlTUlN
RVR5cGUoKSwgIicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIikpOworICAg
ICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygiJyIsIGxvYWRl
ci5yZXNwb25zZU1JTUVUeXBlKCksICInIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0
eXBlLiIpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChh
dXRvKiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgewotICAgICAgICAgICAgLy8g
SWYgdGhpcyBpcyB0b3AtbGV2ZWwtbW9kdWxlLCB0aGVuIHdlIGV4dHJhY3QgcmVmZXJyZXItcG9s
aWN5IGFuZCBhcHBseSB0byB0aGUgZGVwZW5kZW50IG1vZHVsZXMuCi0gICAgICAgICAgICBpZiAo
cGFyYW1ldGVycy0+aXNUb3BMZXZlbE1vZHVsZSgpKQotICAgICAgICAgICAgICAgIHN0YXRpY19j
YXN0PFdvcmtlclNjcmlwdEZldGNoZXImPihsb2FkZXIuc2NyaXB0RmV0Y2hlcigpKS5zZXRSZWZl
cnJlclBvbGljeShsb2FkZXIucmVmZXJyZXJQb2xpY3koKSk7CisgICAgICAgIFVSTCByZXNwb25z
ZVVSTCA9IGxvYWRlci5yZXNwb25zZVVSTCgpOworICAgICAgICBpZiAoIWxvYWRlci5yZXRyaWV2
ZWRGcm9tU2VydmljZVdvcmtlckNhY2hlKCkpIHsKKyAgICAgICAgICAgIGF1dG8mIHdvcmtlclNj
cmlwdExvYWRlciA9IGxvYWRlci5zY3JpcHRMb2FkZXIoKTsKKyAgICAgICAgICAgIGlmIChhdXRv
KiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgeworICAgICAgICAgICAgICAgIC8v
IElmIHRoaXMgaXMgdG9wLWxldmVsLW1vZHVsZSwgdGhlbiB3ZSBleHRyYWN0IHJlZmVycmVyLXBv
bGljeSBhbmQgYXBwbHkgdG8gdGhlIGRlcGVuZGVudCBtb2R1bGVzLgorICAgICAgICAgICAgICAg
IGlmIChwYXJhbWV0ZXJzLT5pc1RvcExldmVsTW9kdWxlKCkpCisgICAgICAgICAgICAgICAgICAg
IHN0YXRpY19jYXN0PFdvcmtlclNjcmlwdEZldGNoZXImPihsb2FkZXIuc2NyaXB0RmV0Y2hlcigp
KS5zZXRSZWZlcnJlclBvbGljeShsb2FkZXIucmVmZXJyZXJQb2xpY3koKSk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICByZXNwb25zZVVSTCA9IGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVz
cG9uc2VVUkwocmVzcG9uc2VVUkwsIHdvcmtlclNjcmlwdExvYWRlci5pc1JlZGlyZWN0ZWQoKSwg
d29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlU291cmNlKCkpOworI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKKyAgICAgICAgICAgIGlmIChpczxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KG1f
Y29udGV4dCkpCisgICAgICAgICAgICAgICAgZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNj
b3BlPihtX2NvbnRleHQpLnNldFNjcmlwdFJlc291cmNlKHNvdXJjZVVSTCwgU2VydmljZVdvcmtl
ckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdCB7IGxvYWRlci5zY3JpcHQoKSwgcmVzcG9uc2VV
UkwsIGxvYWRlci5yZXNwb25zZU1JTUVUeXBlKCkgfSk7CisjZW5kaWYKICAgICAgICAgfQotCi0g
ICAgICAgIFVSTCByZXNwb25zZVVSTCA9IGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVzcG9uc2VV
Ukwod29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlVVJMKCksIHdvcmtlclNjcmlwdExvYWRlci5p
c1JlZGlyZWN0ZWQoKSwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlU291cmNlKCkpOworICAg
ICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCks
IHJlc3BvbnNlVVJMKTsKICAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhDYWxsYmFjayhbJl0g
KEpTRE9NR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCkgewogICAgICAgICAgICAgcmV0dXJu
IEpTQzo6SlNTb3VyY2VDb2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwKLSAgICAgICAg
ICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgd29ya2VyU2NyaXB0
TG9hZGVyLnNjcmlwdCgpLCBXVEZNb3ZlKHJlc3BvbnNlVVJMKSwgeyB9LCBKU0M6OlNvdXJjZVBy
b3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNTb3Vy
Y2VDb2RlKCkgfSk7CisgICAgICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2RlIHsgU2NyaXB0U291
cmNlQ29kZSB7IGxvYWRlci5zY3JpcHQoKSwgV1RGTW92ZShyZXNwb25zZVVSTCksIHsgfSwgSlND
OjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNjcmlwdEZldGNoZXIo
KSB9LmpzU291cmNlQ29kZSgpIH0pOwogICAgICAgICB9KTsKICAgICB9CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNw
cAppbmRleCBmODcwYTBkMWRhMzM4NTAwZjhlNGQ5MjY3MjNlZjU0MDlmZmNmNTliLi44MmUyMzY5
NzEwOGZlZDIyMjA5Yzg1Mjc2M2Q2ZTA0ZWMwOTE1ZTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAKQEAgLTYx
LDYgKzYxLDE5IEBAIGJvb2wgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFVSTCYmIHNvdXJjCiB7CiAgICAgbV9zb3VyY2VVUkwg
PSBXVEZNb3ZlKHNvdXJjZVVSTCk7CiAKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisgICAg
aWYgKGlzPFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkpIHsKKyAgICAgICAgaWYg
KGF1dG8qIHNjcmlwdFJlc291cmNlID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Pihjb250ZXh0KS5zY3JpcHRSZXNvdXJjZShtX3NvdXJjZVVSTCkpIHsKKyAgICAgICAgICAgIG1f
c2NyaXB0ID0gc2NyaXB0UmVzb3VyY2UtPnNjcmlwdDsKKyAgICAgICAgICAgIG1fcmVzcG9uc2VV
UkwgPSBzY3JpcHRSZXNvdXJjZS0+cmVzcG9uc2VVUkw7CisgICAgICAgICAgICBtX3Jlc3BvbnNl
TUlNRVR5cGUgPSBzY3JpcHRSZXNvdXJjZS0+bWltZVR5cGU7CisgICAgICAgICAgICBtX3JldHJp
ZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGUgPSB0cnVlOworICAgICAgICAgICAgbm90aWZ5Q2xp
ZW50RmluaXNoZWQoKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAg
fQorI2VuZGlmCisKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCB7IG1fc291cmNlVVJMIH07
CiAKICAgICBGZXRjaE9wdGlvbnMgZmV0Y2hPcHRpb25zOwpAQCAtOTQsNyArMTA3LDIxIEBAIHZv
aWQgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZCgpCiB7CiAgICAgQVNT
RVJUKG1fcHJvbWlzZSk7CiAKKyAgICBpZiAobV9zY3JpcHRMb2FkZXItPmZhaWxlZCgpKQorICAg
ICAgICBtX2ZhaWxlZCA9IHRydWU7CisgICAgZWxzZSB7CisgICAgICAgIG1fc2NyaXB0ID0gbV9z
Y3JpcHRMb2FkZXItPnNjcmlwdCgpOworICAgICAgICBtX3Jlc3BvbnNlVVJMID0gbV9zY3JpcHRM
b2FkZXItPnJlc3BvbnNlVVJMKCk7CisgICAgICAgIG1fcmVzcG9uc2VNSU1FVHlwZSA9IG1fc2Ny
aXB0TG9hZGVyLT5yZXNwb25zZU1JTUVUeXBlKCk7CisgICAgfQorCisgICAgbm90aWZ5Q2xpZW50
RmluaXNoZWQoKTsKK30KKwordm9pZCBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6Om5vdGlmeUNs
aWVudEZpbmlzaGVkKCkKK3sKICAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KTsKKwogICAgIGlmIChtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPm5vdGlmeUZpbmlzaGVk
KCp0aGlzLCBXVEZNb3ZlKG1fc291cmNlVVJMKSwgbV9wcm9taXNlLnJlbGVhc2VOb25OdWxsKCkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXIuaAppbmRleCBjNWRiN2U5M2VjMzc0YmIxZWQ5MjhhZTdlZTAzMWZkNTQwYmQy
OGNlLi43NmQxNGRhZmFhYWQxMjI5YmVlMDNlYjcxMjk2MmIwYWI2M2EwNWI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIu
aApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJNb2R1bGVTY3Jp
cHRMb2FkZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRCdWZmZXIuaCIKICNpbmNsdWRlICJXb3JrZXJT
Y3JpcHRGZXRjaGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCiAj
aW5jbHVkZSA8d3RmL1JlZi5oPgpAQCAtNTQsNiArNTUsMTIgQEAgY2xhc3MgV29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyIGZpbmFsIDogcHVibGljIE1vZHVsZVNjcmlwdExvYWRlciwgcHJpdmF0ZSBX
b3JrZXIKIAogICAgIHN0YXRpYyBTdHJpbmcgdGFza01vZGUoKTsKICAgICBSZWZlcnJlclBvbGlj
eSByZWZlcnJlclBvbGljeSgpOworICAgIGJvb2wgZmFpbGVkKCkgY29uc3QgeyByZXR1cm4gbV9m
YWlsZWQ7IH0KKyAgICBib29sIHJldHJpZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGUoKSBjb25z
dCB7IHJldHVybiBtX3JldHJpZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGU7IH0KKworICAgIGNv
bnN0IFNjcmlwdEJ1ZmZlciYgc2NyaXB0KCkgeyByZXR1cm4gbV9zY3JpcHQ7IH0KKyAgICBjb25z
dCBVUkwmIHJlc3BvbnNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZVVSTDsgfQorICAg
IGNvbnN0IFN0cmluZyYgcmVzcG9uc2VNSU1FVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9u
c2VNSU1FVHlwZTsgfQogCiBwcml2YXRlOgogICAgIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcihN
b2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBXb3JrZXJTY3JpcHRG
ZXRjaGVyJiwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CkBAIC02MSw4ICs2OCwx
NSBAQCBjbGFzcyBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIgZmluYWwgOiBwdWJsaWMgTW9kdWxl
U2NyaXB0TG9hZGVyLCBwcml2YXRlIFdvcmtlcgogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBmaW5hbCB7IH0KICAgICB2
b2lkIG5vdGlmeUZpbmlzaGVkKCkgZmluYWw7CiAKKyAgICB2b2lkIG5vdGlmeUNsaWVudEZpbmlz
aGVkKCk7CisKICAgICBSZWY8V29ya2VyU2NyaXB0TG9hZGVyPiBtX3NjcmlwdExvYWRlcjsKICAg
ICBVUkwgbV9zb3VyY2VVUkw7CisgICAgU2NyaXB0QnVmZmVyIG1fc2NyaXB0OworICAgIFVSTCBt
X3Jlc3BvbnNlVVJMOworICAgIFN0cmluZyBtX3Jlc3BvbnNlTUlNRVR5cGU7CisgICAgYm9vbCBt
X2ZhaWxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3JldHJpZXZlZEZyb21TZXJ2aWNlV29ya2Vy
Q2FjaGUgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVh
MGY2NjY0ZDNkOGIzZDA5YWViMmY1YmY0OTZhYmY3M2I3NjU5ZTguLjgzYTRiZTZiMGY0NDIzMTY0
ZjQ2OWEwMTRkMGJmYmJkYzMzZTA1ZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wNC0w
OCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFNlcnZpY2VX
b3JrZXIgc2hvdWxkIHNhdmUgbW9kdWxlIHNjcmlwdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDM1NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzU2MzQ4OTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNpc3Rl
bnQtbW9kdWxlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtl
cnMvcmVzb3VyY2VzL3BlcnNpc3RlbnQtaW1wb3J0ZWQtbW9kdWxlLXNjcmlwdC5weTogQWRkZWQu
CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVz
b3VyY2VzL3BlcnNpc3RlbnQtbW9kdWxlLXdvcmtlci5qczogQWRkZWQuCisKIDIwMjEtMDQtMDgg
IEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgZm9yIGFwcCBib3VuZCByZXF1ZXN0IGNvbnRleHQgc3RyaW5n
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lz
dGVudC1tb2R1bGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Ut
d29ya2Vycy9wZXJzaXN0ZW50LW1vZHVsZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZjIy
ZTlhNDMxYWQwMjcyNzEzYjcxZmRjODc5NDAxNmM4ZWYxMmYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODc2MDYwZTg5MGQ3ZGY2NjQxMGYxM2M3ZDM0YWNmOTRjODg2NDY2NgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0
ZW50LW1vZHVsZXMuaHRtbApAQCAtMCwwICsxLDczIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9yb3V0aW5lcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQ+CitmdW5jdGlvbiBnZXRSYW5kb21JZEZyb21Xb3JrZXIod29ya2VyKQoreworICAg
IHdvcmtlci5wb3N0TWVzc2FnZSgiZ2V0UmFuZG9tSWQiKTsKKyAgICByZXR1cm4gbmV3IFByb21p
c2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRk
RXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHJlc29s
dmUoZS5kYXRhKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHdpdGhJZnJh
bWUyKHVybCkgeworICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAg
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbiAoZXYpIHsKKyAg
ICAgICAgcmVzb2x2ZShldi5kYXRhKTsKKyAgICAgIH0sIGZhbHNlKTsKKyAgICAgIHZhciBmcmFt
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworICAgICAgZnJhbWUuc3JjID0g
dXJsOworICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFtZSk7CisgICAgfSk7Cit9
CisKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciByZWdpc3RyYXRp
b247Cit2YXIgd29ya2VyOworYXN5bmMgZnVuY3Rpb24gZG9UZXN0KCkgeworICAgIGlmICghd2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgnSW50ZXJuYWxz
IEFQSSBuZWVkZWQgZm9yIHRoaXMgdGVzdCcpOworCisgICAgcmVnaXN0cmF0aW9uID0gYXdhaXQg
bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNlcy9wZXJzaXN0ZW50LW1v
ZHVsZS13b3JrZXIuanMiLCB7CisgICAgICAgIHR5cGU6ICJtb2R1bGUiCisgICAgfSk7CisgICAg
aWYgKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nKSB7CisgICAgICAgIHdvcmtlciA9IHJlZ2lzdHJh
dGlvbi5pbnN0YWxsaW5nOworICAgICAgICBhd2FpdCB3YWl0Rm9yU3RhdGUod29ya2VyLCAiYWN0
aXZhdGVkIik7CisgICAgfSBlbHNlCisgICAgICAgIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5hY3Rp
dmU7CisKKyAgICBsZXQgcmFuZG9tSWQgPSBhd2FpdCBnZXRSYW5kb21JZEZyb21Xb3JrZXIod29y
a2VyKTsKKworICAgIGlmICghd2luZG93LmxvY2F0aW9uLmhhc2gubGVuZ3RoKSB7CisgICAgICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgYXdhaXQgaW50ZXJuYWxzLnN0b3Jl
UmVnaXN0cmF0aW9uc09uRGlzaygpOworCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIudGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKKyAgICAg
ICAgYXdhaXQgd2FpdEZvcigxMDApOworCisgICAgICAgIGxldCByYW5kb21JZDIgPSBhd2FpdCB3
aXRoSWZyYW1lMigiLi9wZXJzaXN0ZW50LW1vZHVsZXMuaHRtbCNpZnJhbWUiKTsKKworICAgICAg
ICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IHJhbmRvbUlkID09PSByYW5kb21JZDIgPyAiUEFT
UyIgOiAiRkFJTCI7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0gZWxzZSB7CisgICAgICAgIHdpbmRvdy5w
YXJlbnQucG9zdE1lc3NhZ2UocmFuZG9tSWQsICcqJyk7CisgICAgICAgIHJldHVybjsKKyAgICB9
Cit9Citkb1Rlc3QoKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3BlcnNpc3Rl
bnQtaW1wb3J0ZWQtbW9kdWxlLXNjcmlwdC5weSBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVudC1pbXBvcnRlZC1tb2R1bGUtc2NyaXB0LnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjFmMmNjYWVhZjZjMDE4NzE2NzFhZWRiM2I3ZDVmM2M1MzI1ODlhNmUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVz
b3VyY2VzL3BlcnNpc3RlbnQtaW1wb3J0ZWQtbW9kdWxlLXNjcmlwdC5weQpAQCAtMCwwICsxLDkg
QEAKK2ltcG9ydCByYW5kb20KKworCitkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CisgICAg
aGVhZGVycyA9IFsKKyAgICAgICAgKCJDb250ZW50LXR5cGUiLCAidGV4dC9qYXZhc2NyaXB0Iiks
CisgICAgICAgICgiQ2FjaGUtQ29udHJvbCIsICJuby1zdG9yZSIpCisgICAgXQorICAgIHJldHVy
biBoZWFkZXJzLCAic2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24oZSkg
eyBlLnNvdXJjZS5wb3N0TWVzc2FnZSgnIiArIHN0cihyYW5kb20ucmFuZG9tKCkpICsgIicpOyB9
KTsiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVz
b3VyY2VzL3BlcnNpc3RlbnQtbW9kdWxlLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVudC1tb2R1bGUtd29ya2VyLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQzYzUwZGZlYWQ1NWExOTkxZWZmNjhlY2UxNTAwNDQ2MWRiOWFjY2UKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3Vy
Y2VzL3BlcnNpc3RlbnQtbW9kdWxlLXdvcmtlci5qcwpAQCAtMCwwICsxLDIgQEAKK2ltcG9ydCAi
Li9wZXJzaXN0ZW50LWltcG9ydGVkLW1vZHVsZS1zY3JpcHQucHkiOworCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425586</attachid>
            <date>2021-04-08 22:11:50 -0700</date>
            <delta_ts>2021-04-08 22:30:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224356-20210408221149.patch</filename>
            <type>text/plain</type>
            <size>15208</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1Njg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkyOTdjNTFkMDcxOTYy
NzkwNjM0ODk5NWI5N2YyMTRkZTQxMmZlMi4uODMyMDEyNjcwZDBlMWMxMWI0ZjQ3ZTYxY2M0MWI5
MjcyYjM5NTYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA0LTA4ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2VydmljZVdvcmtlciBz
aG91bGQgc2F2ZSBtb2R1bGUgc2NyaXB0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MzU2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NTYzNDg5
Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
OiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLmh0bWwKKworICAg
ICAgICBJbiB0aGlzIHBhdGNoLCB3ZSBjYWxsIHNldFNjcmlwdFJlc291cmNlIC8gc2NyaXB0UmVz
b3VyY2Ugd2hpbGUgbG9hZGluZyBzZXJ2aWNlLXdvcmtlciBtb2R1bGUgc2NyaXB0cyBpbiBtb2R1
bGUgbG9hZGVycywKKyAgICAgICAgc28gdGhhdCB3ZSBjYW4gZW5zdXJlIHRoYXQgdGhleSBhcmUg
c2F2ZWQgb24gdGhlIGRpc2suCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRjaCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKToKKyAgICAgICAg
KFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlDbGllbnRGaW5p
c2hlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmg6
CisKIDIwMjEtMDQtMDggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNzM1NDEpIFdLV2ViVmlldyBjYW4ndCBsb2FkIE5T
VVJMUmVxdWVzdCBzdWJjbGFzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0TW9kdWxlTG9hZGVyLmNwcAppbmRleCBhZDQ3ZmUxMzBiMGNkODRmYmZhNTYxYzAzMzQ4
ZTljZmI3M2I5M2M4Li41Y2FjN2M1N2ZhODA0ZGE1MTNmM2E4MzYxMzExMWU4YzE3N2EzMjMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5j
cHAKQEAgLTE4OCw2ICsxODgsNyBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1
bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsTwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIGF1dG8gbG9hZGVyID0gV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVh
dGUoKnRoaXMsIGRlZmVycmVkLmdldCgpLCAqc3RhdGljX2Nhc3Q8V29ya2VyU2NyaXB0RmV0Y2hl
cio+KEpTQzo6anNDYXN0PEpTQzo6SlNTY3JpcHRGZXRjaGVyKj4oc2NyaXB0RmV0Y2hlciktPmZl
dGNoZXIoKSksIFdURk1vdmUodG9wTGV2ZWxGZXRjaFBhcmFtZXRlcnMpKTsKICAgICAgICAgbV9s
b2FkZXJzLmFkZChsb2FkZXIuY29weVJlZigpKTsKKyAgICAgICAgLy8gVGhpcyBjYW4gaW52b2tl
IGNhbGxiYWNrIGltbWVkaWF0ZWx5LgogICAgICAgICBsb2FkZXItPmxvYWQobV9jb250ZXh0LCBX
VEZNb3ZlKGNvbXBsZXRlZFVSTCkpOwogICAgIH0KIApAQCAtMzY5LDggKzM3MCw2IEBAIHZvaWQg
U2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChNb2R1bGVTY3JpcHRMb2FkZXImIG1v
ZHVsZVNjcmlwdExvYWRlciwKICAgICAgICAgICAgIGlmIChzb3VyY2VVUkwuaGFzRnJhZ21lbnRJ
ZGVudGlmaWVyKCkpCiAgICAgICAgICAgICAgICAgcmVzcG9uc2VVUkwuc2V0RnJhZ21lbnRJZGVu
dGlmaWVyKHNvdXJjZVVSTC5mcmFnbWVudElkZW50aWZpZXIoKSk7CiAgICAgICAgIH0KLQotICAg
ICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCks
IHJlc3BvbnNlVVJMKTsKICAgICAgICAgcmV0dXJuIHJlc3BvbnNlVVJMOwogICAgIH07CiAKQEAg
LTQwOCwxNiArNDA3LDE5IEBAIHZvaWQgU2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hl
ZChNb2R1bGVTY3JpcHRMb2FkZXImIG1vZHVsZVNjcmlwdExvYWRlciwKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogCi0gICAgICAgIGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVzcG9uc2VVUkwo
Y2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkudXJsKCksIGNhY2hlZFNjcmlwdC5oYXNSZWRpcmVjdGlv
bnMoKSwgY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkuc291cmNlKCkpOworICAgICAgICBVUkwgcmVz
cG9uc2VVUkwgPSBjYW5vbmljYWxpemVBbmRSZWdpc3RlclJlc3BvbnNlVVJMKGNhY2hlZFNjcmlw
dC5yZXNwb25zZSgpLnVybCgpLCBjYWNoZWRTY3JpcHQuaGFzUmVkaXJlY3Rpb25zKCksIGNhY2hl
ZFNjcmlwdC5yZXNwb25zZSgpLnNvdXJjZSgpKTsKKyAgICAgICAgbV9yZXF1ZXN0VVJMVG9SZXNw
b25zZVVSTE1hcC5hZGQoc291cmNlVVJMLnN0cmluZygpLCByZXNwb25zZVVSTCk7CiAgICAgICAg
IHByb21pc2UtPnJlc29sdmVXaXRoQ2FsbGJhY2soWyZdIChKU0RPTUdsb2JhbE9iamVjdCYganNH
bG9iYWxPYmplY3QpIHsKICAgICAgICAgICAgIHJldHVybiBKU0M6OkpTU291cmNlQ29kZTo6Y3Jl
YXRlKGpzR2xvYmFsT2JqZWN0LnZtKCksCiAgICAgICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2Rl
IHsgU2NyaXB0U291cmNlQ29kZSB7ICZjYWNoZWRTY3JpcHQsIEpTQzo6U291cmNlUHJvdmlkZXJT
b3VyY2VUeXBlOjpNb2R1bGUsIGxvYWRlci5zY3JpcHRGZXRjaGVyKCkgfS5qc1NvdXJjZUNvZGUo
KSB9KTsKICAgICAgICAgfSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgYXV0byYgbG9hZGVyID0g
c3RhdGljX2Nhc3Q8V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyJj4obW9kdWxlU2NyaXB0TG9hZGVy
KTsKLSAgICAgICAgYXV0byYgd29ya2VyU2NyaXB0TG9hZGVyID0gbG9hZGVyLnNjcmlwdExvYWRl
cigpOwogCi0gICAgICAgIGlmICh3b3JrZXJTY3JpcHRMb2FkZXIuZmFpbGVkKCkpIHsKKyAgICAg
ICAgaWYgKGxvYWRlci5mYWlsZWQoKSkgeworICAgICAgICAgICAgQVNTRVJUKCFsb2FkZXIucmV0
cmlldmVkRnJvbVNlcnZpY2VXb3JrZXJDYWNoZSgpKTsKKyAgICAgICAgICAgIGF1dG8mIHdvcmtl
clNjcmlwdExvYWRlciA9IGxvYWRlci5zY3JpcHRMb2FkZXIoKTsKKyAgICAgICAgICAgIEFTU0VS
VCh3b3JrZXJTY3JpcHRMb2FkZXIuZmFpbGVkKCkpOwogICAgICAgICAgICAgaWYgKHdvcmtlclNj
cmlwdExvYWRlci5lcnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7CiAgICAgICAgICAgICAgICAg
cmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hG
YWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQg
YnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwpAQCAtNDMyLDI0ICs0MzQsMzIgQEAgdm9pZCBTY3JpcHRNb2R1bGVMb2Fk
ZXI6Om5vdGlmeUZpbmlzaGVkKE1vZHVsZVNjcmlwdExvYWRlciYgbW9kdWxlU2NyaXB0TG9hZGVy
LAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCFNSU1FVHlw
ZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZSh3b3JrZXJTY3JpcHRMb2Fk
ZXIucmVzcG9uc2VNSU1FVHlwZSgpKSkgeworICAgICAgICBpZiAoIU1JTUVUeXBlUmVnaXN0cnk6
OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKGxvYWRlci5yZXNwb25zZU1JTUVUeXBlKCkp
KSB7CiAgICAgICAgICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFn
ZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAogICAgICAgICAg
ICAgLy8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20gcmVzcG9uc2Un
cyBoZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2YVNjcmlwdCBN
SU1FIHR5cGUuCiAgICAgICAgICAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBmZXRjaGlu
ZyBhIGNsYXNzaWMgc2NyaXB0IGRvZXMgbm90IGluY2x1ZGUgTUlNRSB0eXBlIGNoZWNraW5nLiBJ
biBjb250cmFzdCwgbW9kdWxlIHNjcmlwdHMgd2lsbCBmYWlsIHRvIGxvYWQgaWYgdGhleSBhcmUg
bm90IG9mIGEgY29ycmVjdCBNSU1FIHR5cGUuCi0gICAgICAgICAgICBwcm9taXNlLT5yZWplY3Qo
VHlwZUVycm9yLCBtYWtlU3RyaW5nKCInIiwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlTUlN
RVR5cGUoKSwgIicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIikpOworICAg
ICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygiJyIsIGxvYWRl
ci5yZXNwb25zZU1JTUVUeXBlKCksICInIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0
eXBlLiIpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChh
dXRvKiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgewotICAgICAgICAgICAgLy8g
SWYgdGhpcyBpcyB0b3AtbGV2ZWwtbW9kdWxlLCB0aGVuIHdlIGV4dHJhY3QgcmVmZXJyZXItcG9s
aWN5IGFuZCBhcHBseSB0byB0aGUgZGVwZW5kZW50IG1vZHVsZXMuCi0gICAgICAgICAgICBpZiAo
cGFyYW1ldGVycy0+aXNUb3BMZXZlbE1vZHVsZSgpKQotICAgICAgICAgICAgICAgIHN0YXRpY19j
YXN0PFdvcmtlclNjcmlwdEZldGNoZXImPihsb2FkZXIuc2NyaXB0RmV0Y2hlcigpKS5zZXRSZWZl
cnJlclBvbGljeShsb2FkZXIucmVmZXJyZXJQb2xpY3koKSk7CisgICAgICAgIFVSTCByZXNwb25z
ZVVSTCA9IGxvYWRlci5yZXNwb25zZVVSTCgpOworICAgICAgICBpZiAoIWxvYWRlci5yZXRyaWV2
ZWRGcm9tU2VydmljZVdvcmtlckNhY2hlKCkpIHsKKyAgICAgICAgICAgIGF1dG8mIHdvcmtlclNj
cmlwdExvYWRlciA9IGxvYWRlci5zY3JpcHRMb2FkZXIoKTsKKyAgICAgICAgICAgIGlmIChhdXRv
KiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgeworICAgICAgICAgICAgICAgIC8v
IElmIHRoaXMgaXMgdG9wLWxldmVsLW1vZHVsZSwgdGhlbiB3ZSBleHRyYWN0IHJlZmVycmVyLXBv
bGljeSBhbmQgYXBwbHkgdG8gdGhlIGRlcGVuZGVudCBtb2R1bGVzLgorICAgICAgICAgICAgICAg
IGlmIChwYXJhbWV0ZXJzLT5pc1RvcExldmVsTW9kdWxlKCkpCisgICAgICAgICAgICAgICAgICAg
IHN0YXRpY19jYXN0PFdvcmtlclNjcmlwdEZldGNoZXImPihsb2FkZXIuc2NyaXB0RmV0Y2hlcigp
KS5zZXRSZWZlcnJlclBvbGljeShsb2FkZXIucmVmZXJyZXJQb2xpY3koKSk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICByZXNwb25zZVVSTCA9IGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVz
cG9uc2VVUkwocmVzcG9uc2VVUkwsIHdvcmtlclNjcmlwdExvYWRlci5pc1JlZGlyZWN0ZWQoKSwg
d29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlU291cmNlKCkpOworI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKKyAgICAgICAgICAgIGlmIChpczxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KG1f
Y29udGV4dCkpCisgICAgICAgICAgICAgICAgZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNj
b3BlPihtX2NvbnRleHQpLnNldFNjcmlwdFJlc291cmNlKHNvdXJjZVVSTCwgU2VydmljZVdvcmtl
ckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdCB7IGxvYWRlci5zY3JpcHQoKSwgcmVzcG9uc2VV
UkwsIGxvYWRlci5yZXNwb25zZU1JTUVUeXBlKCkgfSk7CisjZW5kaWYKICAgICAgICAgfQotCi0g
ICAgICAgIFVSTCByZXNwb25zZVVSTCA9IGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVzcG9uc2VV
Ukwod29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlVVJMKCksIHdvcmtlclNjcmlwdExvYWRlci5p
c1JlZGlyZWN0ZWQoKSwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlU291cmNlKCkpOworICAg
ICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCks
IHJlc3BvbnNlVVJMKTsKICAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhDYWxsYmFjayhbJl0g
KEpTRE9NR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCkgewogICAgICAgICAgICAgcmV0dXJu
IEpTQzo6SlNTb3VyY2VDb2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwKLSAgICAgICAg
ICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgd29ya2VyU2NyaXB0
TG9hZGVyLnNjcmlwdCgpLCBXVEZNb3ZlKHJlc3BvbnNlVVJMKSwgeyB9LCBKU0M6OlNvdXJjZVBy
b3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNTb3Vy
Y2VDb2RlKCkgfSk7CisgICAgICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2RlIHsgU2NyaXB0U291
cmNlQ29kZSB7IGxvYWRlci5zY3JpcHQoKSwgV1RGTW92ZShyZXNwb25zZVVSTCksIHsgfSwgSlND
OjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNjcmlwdEZldGNoZXIo
KSB9LmpzU291cmNlQ29kZSgpIH0pOwogICAgICAgICB9KTsKICAgICB9CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNw
cAppbmRleCBmODcwYTBkMWRhMzM4NTAwZjhlNGQ5MjY3MjNlZjU0MDlmZmNmNTliLi44MmUyMzY5
NzEwOGZlZDIyMjA5Yzg1Mjc2M2Q2ZTA0ZWMwOTE1ZTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAKQEAgLTYx
LDYgKzYxLDE5IEBAIGJvb2wgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFVSTCYmIHNvdXJjCiB7CiAgICAgbV9zb3VyY2VVUkwg
PSBXVEZNb3ZlKHNvdXJjZVVSTCk7CiAKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisgICAg
aWYgKGlzPFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkpIHsKKyAgICAgICAgaWYg
KGF1dG8qIHNjcmlwdFJlc291cmNlID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Pihjb250ZXh0KS5zY3JpcHRSZXNvdXJjZShtX3NvdXJjZVVSTCkpIHsKKyAgICAgICAgICAgIG1f
c2NyaXB0ID0gc2NyaXB0UmVzb3VyY2UtPnNjcmlwdDsKKyAgICAgICAgICAgIG1fcmVzcG9uc2VV
UkwgPSBzY3JpcHRSZXNvdXJjZS0+cmVzcG9uc2VVUkw7CisgICAgICAgICAgICBtX3Jlc3BvbnNl
TUlNRVR5cGUgPSBzY3JpcHRSZXNvdXJjZS0+bWltZVR5cGU7CisgICAgICAgICAgICBtX3JldHJp
ZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGUgPSB0cnVlOworICAgICAgICAgICAgbm90aWZ5Q2xp
ZW50RmluaXNoZWQoKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAg
fQorI2VuZGlmCisKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCB7IG1fc291cmNlVVJMIH07
CiAKICAgICBGZXRjaE9wdGlvbnMgZmV0Y2hPcHRpb25zOwpAQCAtOTQsNyArMTA3LDIxIEBAIHZv
aWQgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZCgpCiB7CiAgICAgQVNT
RVJUKG1fcHJvbWlzZSk7CiAKKyAgICBpZiAobV9zY3JpcHRMb2FkZXItPmZhaWxlZCgpKQorICAg
ICAgICBtX2ZhaWxlZCA9IHRydWU7CisgICAgZWxzZSB7CisgICAgICAgIG1fc2NyaXB0ID0gbV9z
Y3JpcHRMb2FkZXItPnNjcmlwdCgpOworICAgICAgICBtX3Jlc3BvbnNlVVJMID0gbV9zY3JpcHRM
b2FkZXItPnJlc3BvbnNlVVJMKCk7CisgICAgICAgIG1fcmVzcG9uc2VNSU1FVHlwZSA9IG1fc2Ny
aXB0TG9hZGVyLT5yZXNwb25zZU1JTUVUeXBlKCk7CisgICAgfQorCisgICAgbm90aWZ5Q2xpZW50
RmluaXNoZWQoKTsKK30KKwordm9pZCBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6Om5vdGlmeUNs
aWVudEZpbmlzaGVkKCkKK3sKICAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KTsKKwogICAgIGlmIChtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPm5vdGlmeUZpbmlzaGVk
KCp0aGlzLCBXVEZNb3ZlKG1fc291cmNlVVJMKSwgbV9wcm9taXNlLnJlbGVhc2VOb25OdWxsKCkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXIuaAppbmRleCBjNWRiN2U5M2VjMzc0YmIxZWQ5MjhhZTdlZTAzMWZkNTQwYmQy
OGNlLi43NmQxNGRhZmFhYWQxMjI5YmVlMDNlYjcxMjk2MmIwYWI2M2EwNWI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIu
aApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJNb2R1bGVTY3Jp
cHRMb2FkZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRCdWZmZXIuaCIKICNpbmNsdWRlICJXb3JrZXJT
Y3JpcHRGZXRjaGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCiAj
aW5jbHVkZSA8d3RmL1JlZi5oPgpAQCAtNTQsNiArNTUsMTIgQEAgY2xhc3MgV29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyIGZpbmFsIDogcHVibGljIE1vZHVsZVNjcmlwdExvYWRlciwgcHJpdmF0ZSBX
b3JrZXIKIAogICAgIHN0YXRpYyBTdHJpbmcgdGFza01vZGUoKTsKICAgICBSZWZlcnJlclBvbGlj
eSByZWZlcnJlclBvbGljeSgpOworICAgIGJvb2wgZmFpbGVkKCkgY29uc3QgeyByZXR1cm4gbV9m
YWlsZWQ7IH0KKyAgICBib29sIHJldHJpZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGUoKSBjb25z
dCB7IHJldHVybiBtX3JldHJpZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGU7IH0KKworICAgIGNv
bnN0IFNjcmlwdEJ1ZmZlciYgc2NyaXB0KCkgeyByZXR1cm4gbV9zY3JpcHQ7IH0KKyAgICBjb25z
dCBVUkwmIHJlc3BvbnNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZVVSTDsgfQorICAg
IGNvbnN0IFN0cmluZyYgcmVzcG9uc2VNSU1FVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9u
c2VNSU1FVHlwZTsgfQogCiBwcml2YXRlOgogICAgIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcihN
b2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBXb3JrZXJTY3JpcHRG
ZXRjaGVyJiwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CkBAIC02MSw4ICs2OCwx
NSBAQCBjbGFzcyBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIgZmluYWwgOiBwdWJsaWMgTW9kdWxl
U2NyaXB0TG9hZGVyLCBwcml2YXRlIFdvcmtlcgogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBmaW5hbCB7IH0KICAgICB2
b2lkIG5vdGlmeUZpbmlzaGVkKCkgZmluYWw7CiAKKyAgICB2b2lkIG5vdGlmeUNsaWVudEZpbmlz
aGVkKCk7CisKICAgICBSZWY8V29ya2VyU2NyaXB0TG9hZGVyPiBtX3NjcmlwdExvYWRlcjsKICAg
ICBVUkwgbV9zb3VyY2VVUkw7CisgICAgU2NyaXB0QnVmZmVyIG1fc2NyaXB0OworICAgIFVSTCBt
X3Jlc3BvbnNlVVJMOworICAgIFN0cmluZyBtX3Jlc3BvbnNlTUlNRVR5cGU7CisgICAgYm9vbCBt
X2ZhaWxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3JldHJpZXZlZEZyb21TZXJ2aWNlV29ya2Vy
Q2FjaGUgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVh
MGY2NjY0ZDNkOGIzZDA5YWViMmY1YmY0OTZhYmY3M2I3NjU5ZTguLjgzYTRiZTZiMGY0NDIzMTY0
ZjQ2OWEwMTRkMGJmYmJkYzMzZTA1ZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wNC0w
OCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFNlcnZpY2VX
b3JrZXIgc2hvdWxkIHNhdmUgbW9kdWxlIHNjcmlwdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDM1NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzU2MzQ4OTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNpc3Rl
bnQtbW9kdWxlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtl
cnMvcmVzb3VyY2VzL3BlcnNpc3RlbnQtaW1wb3J0ZWQtbW9kdWxlLXNjcmlwdC5weTogQWRkZWQu
CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVz
b3VyY2VzL3BlcnNpc3RlbnQtbW9kdWxlLXdvcmtlci5qczogQWRkZWQuCisKIDIwMjEtMDQtMDgg
IEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgZm9yIGFwcCBib3VuZCByZXF1ZXN0IGNvbnRleHQgc3RyaW5n
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lz
dGVudC1tb2R1bGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Ut
d29ya2Vycy9wZXJzaXN0ZW50LW1vZHVsZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZjIy
ZTlhNDMxYWQwMjcyNzEzYjcxZmRjODc5NDAxNmM4ZWYxMmYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDdkY2ZmMjc4Nzk4ZTE0NWRiZDcyOGUwOWY0OTA2YzgyZTFjYmZmNQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0
ZW50LW1vZHVsZXMuaHRtbApAQCAtMCwwICsxLDczIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9yb3V0aW5lcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQ+CitmdW5jdGlvbiBnZXRSYW5kb21JZEZyb21Xb3JrZXIod29ya2VyKQoreworICAg
IHdvcmtlci5wb3N0TWVzc2FnZSgiZ2V0UmFuZG9tSWQiKTsKKyAgICByZXR1cm4gbmV3IFByb21p
c2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRk
RXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHJlc29s
dmUoZS5kYXRhKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHdpdGhJZnJh
bWUyKHVybCkgeworICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAg
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbiAoZXYpIHsKKyAg
ICAgICAgcmVzb2x2ZShldi5kYXRhKTsKKyAgICAgIH0sIGZhbHNlKTsKKyAgICAgIHZhciBmcmFt
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworICAgICAgZnJhbWUuc3JjID0g
dXJsOworICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFtZSk7CisgICAgfSk7Cit9
CisKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciByZWdpc3RyYXRp
b247Cit2YXIgd29ya2VyOworYXN5bmMgZnVuY3Rpb24gZG9UZXN0KCkgeworICAgIGlmICghd2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgnSW50ZXJuYWxz
IEFQSSBuZWVkZWQgZm9yIHRoaXMgdGVzdCcpOworCisgICAgcmVnaXN0cmF0aW9uID0gYXdhaXQg
bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNlcy9wZXJzaXN0ZW50LW1v
ZHVsZS13b3JrZXIuanMiLCB7CisgICAgICAgIHR5cGU6ICJtb2R1bGUiCisgICAgfSk7CisgICAg
aWYgKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nKSB7CisgICAgICAgIHdvcmtlciA9IHJlZ2lzdHJh
dGlvbi5pbnN0YWxsaW5nOworICAgICAgICBhd2FpdCB3YWl0Rm9yU3RhdGUod29ya2VyLCAiYWN0
aXZhdGVkIik7CisgICAgfSBlbHNlCisgICAgICAgIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5hY3Rp
dmU7CisKKyAgICBsZXQgcmFuZG9tSWQgPSBhd2FpdCBnZXRSYW5kb21JZEZyb21Xb3JrZXIod29y
a2VyKTsKKworICAgIGlmICghd2luZG93LmxvY2F0aW9uLmhhc2gubGVuZ3RoKSB7CisgICAgICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgYXdhaXQgaW50ZXJuYWxzLnN0b3Jl
UmVnaXN0cmF0aW9uc09uRGlzaygpOworCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgICAgIC8vIHRlc3RSdW5uZXIudGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKKyAg
ICAgICAgYXdhaXQgd2FpdEZvcigxMDApOworCisgICAgICAgIGxldCByYW5kb21JZDIgPSBhd2Fp
dCB3aXRoSWZyYW1lMigiLi9wZXJzaXN0ZW50LW1vZHVsZXMuaHRtbCNpZnJhbWUiKTsKKworICAg
ICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IHJhbmRvbUlkID09PSByYW5kb21JZDIgPyAi
UEFTUyIgOiAiRkFJTCI7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0gZWxzZSB7CisgICAgICAgIHdpbmRv
dy5wYXJlbnQucG9zdE1lc3NhZ2UocmFuZG9tSWQsICcqJyk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9Cit9Citkb1Rlc3QoKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3BlcnNp
c3RlbnQtaW1wb3J0ZWQtbW9kdWxlLXNjcmlwdC5weSBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3Nl
cnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVudC1pbXBvcnRlZC1tb2R1bGUtc2NyaXB0
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFmMmNjYWVhZjZjMDE4NzE2NzFhZWRiM2I3ZDVmM2M1MzI1ODlhNmUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMv
cmVzb3VyY2VzL3BlcnNpc3RlbnQtaW1wb3J0ZWQtbW9kdWxlLXNjcmlwdC5weQpAQCAtMCwwICsx
LDkgQEAKK2ltcG9ydCByYW5kb20KKworCitkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6Cisg
ICAgaGVhZGVycyA9IFsKKyAgICAgICAgKCJDb250ZW50LXR5cGUiLCAidGV4dC9qYXZhc2NyaXB0
IiksCisgICAgICAgICgiQ2FjaGUtQ29udHJvbCIsICJuby1zdG9yZSIpCisgICAgXQorICAgIHJl
dHVybiBoZWFkZXJzLCAic2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24o
ZSkgeyBlLnNvdXJjZS5wb3N0TWVzc2FnZSgnIiArIHN0cihyYW5kb20ucmFuZG9tKCkpICsgIicp
OyB9KTsiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMv
cmVzb3VyY2VzL3BlcnNpc3RlbnQtbW9kdWxlLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVudC1tb2R1bGUtd29ya2VyLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQzYzUwZGZlYWQ1NWExOTkxZWZmNjhlY2UxNTAwNDQ2MWRiOWFjY2UKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVz
b3VyY2VzL3BlcnNpc3RlbnQtbW9kdWxlLXdvcmtlci5qcwpAQCAtMCwwICsxLDIgQEAKK2ltcG9y
dCAiLi9wZXJzaXN0ZW50LWltcG9ydGVkLW1vZHVsZS1zY3JpcHQucHkiOworCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425588</attachid>
            <date>2021-04-08 23:03:08 -0700</date>
            <delta_ts>2021-04-08 23:03:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224356-20210408230307.patch</filename>
            <type>text/plain</type>
            <size>16396</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1Njg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkyOTdjNTFkMDcxOTYy
NzkwNjM0ODk5NWI5N2YyMTRkZTQxMmZlMi4uODMyMDEyNjcwZDBlMWMxMWI0ZjQ3ZTYxY2M0MWI5
MjcyYjM5NTYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA0LTA4ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2VydmljZVdvcmtlciBz
aG91bGQgc2F2ZSBtb2R1bGUgc2NyaXB0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MzU2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NTYzNDg5
Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
OiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLmh0bWwKKworICAg
ICAgICBJbiB0aGlzIHBhdGNoLCB3ZSBjYWxsIHNldFNjcmlwdFJlc291cmNlIC8gc2NyaXB0UmVz
b3VyY2Ugd2hpbGUgbG9hZGluZyBzZXJ2aWNlLXdvcmtlciBtb2R1bGUgc2NyaXB0cyBpbiBtb2R1
bGUgbG9hZGVycywKKyAgICAgICAgc28gdGhhdCB3ZSBjYW4gZW5zdXJlIHRoYXQgdGhleSBhcmUg
c2F2ZWQgb24gdGhlIGRpc2suCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRjaCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKToKKyAgICAgICAg
KFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlDbGllbnRGaW5p
c2hlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmg6
CisKIDIwMjEtMDQtMDggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNzM1NDEpIFdLV2ViVmlldyBjYW4ndCBsb2FkIE5T
VVJMUmVxdWVzdCBzdWJjbGFzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0TW9kdWxlTG9hZGVyLmNwcAppbmRleCBhZDQ3ZmUxMzBiMGNkODRmYmZhNTYxYzAzMzQ4
ZTljZmI3M2I5M2M4Li41Y2FjN2M1N2ZhODA0ZGE1MTNmM2E4MzYxMzExMWU4YzE3N2EzMjMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5j
cHAKQEAgLTE4OCw2ICsxODgsNyBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1
bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsTwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIGF1dG8gbG9hZGVyID0gV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVh
dGUoKnRoaXMsIGRlZmVycmVkLmdldCgpLCAqc3RhdGljX2Nhc3Q8V29ya2VyU2NyaXB0RmV0Y2hl
cio+KEpTQzo6anNDYXN0PEpTQzo6SlNTY3JpcHRGZXRjaGVyKj4oc2NyaXB0RmV0Y2hlciktPmZl
dGNoZXIoKSksIFdURk1vdmUodG9wTGV2ZWxGZXRjaFBhcmFtZXRlcnMpKTsKICAgICAgICAgbV9s
b2FkZXJzLmFkZChsb2FkZXIuY29weVJlZigpKTsKKyAgICAgICAgLy8gVGhpcyBjYW4gaW52b2tl
IGNhbGxiYWNrIGltbWVkaWF0ZWx5LgogICAgICAgICBsb2FkZXItPmxvYWQobV9jb250ZXh0LCBX
VEZNb3ZlKGNvbXBsZXRlZFVSTCkpOwogICAgIH0KIApAQCAtMzY5LDggKzM3MCw2IEBAIHZvaWQg
U2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChNb2R1bGVTY3JpcHRMb2FkZXImIG1v
ZHVsZVNjcmlwdExvYWRlciwKICAgICAgICAgICAgIGlmIChzb3VyY2VVUkwuaGFzRnJhZ21lbnRJ
ZGVudGlmaWVyKCkpCiAgICAgICAgICAgICAgICAgcmVzcG9uc2VVUkwuc2V0RnJhZ21lbnRJZGVu
dGlmaWVyKHNvdXJjZVVSTC5mcmFnbWVudElkZW50aWZpZXIoKSk7CiAgICAgICAgIH0KLQotICAg
ICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCks
IHJlc3BvbnNlVVJMKTsKICAgICAgICAgcmV0dXJuIHJlc3BvbnNlVVJMOwogICAgIH07CiAKQEAg
LTQwOCwxNiArNDA3LDE5IEBAIHZvaWQgU2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hl
ZChNb2R1bGVTY3JpcHRMb2FkZXImIG1vZHVsZVNjcmlwdExvYWRlciwKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogCi0gICAgICAgIGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVzcG9uc2VVUkwo
Y2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkudXJsKCksIGNhY2hlZFNjcmlwdC5oYXNSZWRpcmVjdGlv
bnMoKSwgY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkuc291cmNlKCkpOworICAgICAgICBVUkwgcmVz
cG9uc2VVUkwgPSBjYW5vbmljYWxpemVBbmRSZWdpc3RlclJlc3BvbnNlVVJMKGNhY2hlZFNjcmlw
dC5yZXNwb25zZSgpLnVybCgpLCBjYWNoZWRTY3JpcHQuaGFzUmVkaXJlY3Rpb25zKCksIGNhY2hl
ZFNjcmlwdC5yZXNwb25zZSgpLnNvdXJjZSgpKTsKKyAgICAgICAgbV9yZXF1ZXN0VVJMVG9SZXNw
b25zZVVSTE1hcC5hZGQoc291cmNlVVJMLnN0cmluZygpLCByZXNwb25zZVVSTCk7CiAgICAgICAg
IHByb21pc2UtPnJlc29sdmVXaXRoQ2FsbGJhY2soWyZdIChKU0RPTUdsb2JhbE9iamVjdCYganNH
bG9iYWxPYmplY3QpIHsKICAgICAgICAgICAgIHJldHVybiBKU0M6OkpTU291cmNlQ29kZTo6Y3Jl
YXRlKGpzR2xvYmFsT2JqZWN0LnZtKCksCiAgICAgICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2Rl
IHsgU2NyaXB0U291cmNlQ29kZSB7ICZjYWNoZWRTY3JpcHQsIEpTQzo6U291cmNlUHJvdmlkZXJT
b3VyY2VUeXBlOjpNb2R1bGUsIGxvYWRlci5zY3JpcHRGZXRjaGVyKCkgfS5qc1NvdXJjZUNvZGUo
KSB9KTsKICAgICAgICAgfSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgYXV0byYgbG9hZGVyID0g
c3RhdGljX2Nhc3Q8V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyJj4obW9kdWxlU2NyaXB0TG9hZGVy
KTsKLSAgICAgICAgYXV0byYgd29ya2VyU2NyaXB0TG9hZGVyID0gbG9hZGVyLnNjcmlwdExvYWRl
cigpOwogCi0gICAgICAgIGlmICh3b3JrZXJTY3JpcHRMb2FkZXIuZmFpbGVkKCkpIHsKKyAgICAg
ICAgaWYgKGxvYWRlci5mYWlsZWQoKSkgeworICAgICAgICAgICAgQVNTRVJUKCFsb2FkZXIucmV0
cmlldmVkRnJvbVNlcnZpY2VXb3JrZXJDYWNoZSgpKTsKKyAgICAgICAgICAgIGF1dG8mIHdvcmtl
clNjcmlwdExvYWRlciA9IGxvYWRlci5zY3JpcHRMb2FkZXIoKTsKKyAgICAgICAgICAgIEFTU0VS
VCh3b3JrZXJTY3JpcHRMb2FkZXIuZmFpbGVkKCkpOwogICAgICAgICAgICAgaWYgKHdvcmtlclNj
cmlwdExvYWRlci5lcnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7CiAgICAgICAgICAgICAgICAg
cmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hG
YWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQg
YnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwpAQCAtNDMyLDI0ICs0MzQsMzIgQEAgdm9pZCBTY3JpcHRNb2R1bGVMb2Fk
ZXI6Om5vdGlmeUZpbmlzaGVkKE1vZHVsZVNjcmlwdExvYWRlciYgbW9kdWxlU2NyaXB0TG9hZGVy
LAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCFNSU1FVHlw
ZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZSh3b3JrZXJTY3JpcHRMb2Fk
ZXIucmVzcG9uc2VNSU1FVHlwZSgpKSkgeworICAgICAgICBpZiAoIU1JTUVUeXBlUmVnaXN0cnk6
OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKGxvYWRlci5yZXNwb25zZU1JTUVUeXBlKCkp
KSB7CiAgICAgICAgICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFn
ZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAogICAgICAgICAg
ICAgLy8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20gcmVzcG9uc2Un
cyBoZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2YVNjcmlwdCBN
SU1FIHR5cGUuCiAgICAgICAgICAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBmZXRjaGlu
ZyBhIGNsYXNzaWMgc2NyaXB0IGRvZXMgbm90IGluY2x1ZGUgTUlNRSB0eXBlIGNoZWNraW5nLiBJ
biBjb250cmFzdCwgbW9kdWxlIHNjcmlwdHMgd2lsbCBmYWlsIHRvIGxvYWQgaWYgdGhleSBhcmUg
bm90IG9mIGEgY29ycmVjdCBNSU1FIHR5cGUuCi0gICAgICAgICAgICBwcm9taXNlLT5yZWplY3Qo
VHlwZUVycm9yLCBtYWtlU3RyaW5nKCInIiwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlTUlN
RVR5cGUoKSwgIicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIikpOworICAg
ICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygiJyIsIGxvYWRl
ci5yZXNwb25zZU1JTUVUeXBlKCksICInIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0
eXBlLiIpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChh
dXRvKiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgewotICAgICAgICAgICAgLy8g
SWYgdGhpcyBpcyB0b3AtbGV2ZWwtbW9kdWxlLCB0aGVuIHdlIGV4dHJhY3QgcmVmZXJyZXItcG9s
aWN5IGFuZCBhcHBseSB0byB0aGUgZGVwZW5kZW50IG1vZHVsZXMuCi0gICAgICAgICAgICBpZiAo
cGFyYW1ldGVycy0+aXNUb3BMZXZlbE1vZHVsZSgpKQotICAgICAgICAgICAgICAgIHN0YXRpY19j
YXN0PFdvcmtlclNjcmlwdEZldGNoZXImPihsb2FkZXIuc2NyaXB0RmV0Y2hlcigpKS5zZXRSZWZl
cnJlclBvbGljeShsb2FkZXIucmVmZXJyZXJQb2xpY3koKSk7CisgICAgICAgIFVSTCByZXNwb25z
ZVVSTCA9IGxvYWRlci5yZXNwb25zZVVSTCgpOworICAgICAgICBpZiAoIWxvYWRlci5yZXRyaWV2
ZWRGcm9tU2VydmljZVdvcmtlckNhY2hlKCkpIHsKKyAgICAgICAgICAgIGF1dG8mIHdvcmtlclNj
cmlwdExvYWRlciA9IGxvYWRlci5zY3JpcHRMb2FkZXIoKTsKKyAgICAgICAgICAgIGlmIChhdXRv
KiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgeworICAgICAgICAgICAgICAgIC8v
IElmIHRoaXMgaXMgdG9wLWxldmVsLW1vZHVsZSwgdGhlbiB3ZSBleHRyYWN0IHJlZmVycmVyLXBv
bGljeSBhbmQgYXBwbHkgdG8gdGhlIGRlcGVuZGVudCBtb2R1bGVzLgorICAgICAgICAgICAgICAg
IGlmIChwYXJhbWV0ZXJzLT5pc1RvcExldmVsTW9kdWxlKCkpCisgICAgICAgICAgICAgICAgICAg
IHN0YXRpY19jYXN0PFdvcmtlclNjcmlwdEZldGNoZXImPihsb2FkZXIuc2NyaXB0RmV0Y2hlcigp
KS5zZXRSZWZlcnJlclBvbGljeShsb2FkZXIucmVmZXJyZXJQb2xpY3koKSk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICByZXNwb25zZVVSTCA9IGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVz
cG9uc2VVUkwocmVzcG9uc2VVUkwsIHdvcmtlclNjcmlwdExvYWRlci5pc1JlZGlyZWN0ZWQoKSwg
d29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlU291cmNlKCkpOworI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKKyAgICAgICAgICAgIGlmIChpczxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KG1f
Y29udGV4dCkpCisgICAgICAgICAgICAgICAgZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNj
b3BlPihtX2NvbnRleHQpLnNldFNjcmlwdFJlc291cmNlKHNvdXJjZVVSTCwgU2VydmljZVdvcmtl
ckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdCB7IGxvYWRlci5zY3JpcHQoKSwgcmVzcG9uc2VV
UkwsIGxvYWRlci5yZXNwb25zZU1JTUVUeXBlKCkgfSk7CisjZW5kaWYKICAgICAgICAgfQotCi0g
ICAgICAgIFVSTCByZXNwb25zZVVSTCA9IGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVzcG9uc2VV
Ukwod29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlVVJMKCksIHdvcmtlclNjcmlwdExvYWRlci5p
c1JlZGlyZWN0ZWQoKSwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlU291cmNlKCkpOworICAg
ICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCks
IHJlc3BvbnNlVVJMKTsKICAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhDYWxsYmFjayhbJl0g
KEpTRE9NR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCkgewogICAgICAgICAgICAgcmV0dXJu
IEpTQzo6SlNTb3VyY2VDb2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwKLSAgICAgICAg
ICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgd29ya2VyU2NyaXB0
TG9hZGVyLnNjcmlwdCgpLCBXVEZNb3ZlKHJlc3BvbnNlVVJMKSwgeyB9LCBKU0M6OlNvdXJjZVBy
b3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNTb3Vy
Y2VDb2RlKCkgfSk7CisgICAgICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2RlIHsgU2NyaXB0U291
cmNlQ29kZSB7IGxvYWRlci5zY3JpcHQoKSwgV1RGTW92ZShyZXNwb25zZVVSTCksIHsgfSwgSlND
OjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNjcmlwdEZldGNoZXIo
KSB9LmpzU291cmNlQ29kZSgpIH0pOwogICAgICAgICB9KTsKICAgICB9CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNw
cAppbmRleCBmODcwYTBkMWRhMzM4NTAwZjhlNGQ5MjY3MjNlZjU0MDlmZmNmNTliLi44MmUyMzY5
NzEwOGZlZDIyMjA5Yzg1Mjc2M2Q2ZTA0ZWMwOTE1ZTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAKQEAgLTYx
LDYgKzYxLDE5IEBAIGJvb2wgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFVSTCYmIHNvdXJjCiB7CiAgICAgbV9zb3VyY2VVUkwg
PSBXVEZNb3ZlKHNvdXJjZVVSTCk7CiAKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisgICAg
aWYgKGlzPFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkpIHsKKyAgICAgICAgaWYg
KGF1dG8qIHNjcmlwdFJlc291cmNlID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Pihjb250ZXh0KS5zY3JpcHRSZXNvdXJjZShtX3NvdXJjZVVSTCkpIHsKKyAgICAgICAgICAgIG1f
c2NyaXB0ID0gc2NyaXB0UmVzb3VyY2UtPnNjcmlwdDsKKyAgICAgICAgICAgIG1fcmVzcG9uc2VV
UkwgPSBzY3JpcHRSZXNvdXJjZS0+cmVzcG9uc2VVUkw7CisgICAgICAgICAgICBtX3Jlc3BvbnNl
TUlNRVR5cGUgPSBzY3JpcHRSZXNvdXJjZS0+bWltZVR5cGU7CisgICAgICAgICAgICBtX3JldHJp
ZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGUgPSB0cnVlOworICAgICAgICAgICAgbm90aWZ5Q2xp
ZW50RmluaXNoZWQoKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAg
fQorI2VuZGlmCisKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCB7IG1fc291cmNlVVJMIH07
CiAKICAgICBGZXRjaE9wdGlvbnMgZmV0Y2hPcHRpb25zOwpAQCAtOTQsNyArMTA3LDIxIEBAIHZv
aWQgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZCgpCiB7CiAgICAgQVNT
RVJUKG1fcHJvbWlzZSk7CiAKKyAgICBpZiAobV9zY3JpcHRMb2FkZXItPmZhaWxlZCgpKQorICAg
ICAgICBtX2ZhaWxlZCA9IHRydWU7CisgICAgZWxzZSB7CisgICAgICAgIG1fc2NyaXB0ID0gbV9z
Y3JpcHRMb2FkZXItPnNjcmlwdCgpOworICAgICAgICBtX3Jlc3BvbnNlVVJMID0gbV9zY3JpcHRM
b2FkZXItPnJlc3BvbnNlVVJMKCk7CisgICAgICAgIG1fcmVzcG9uc2VNSU1FVHlwZSA9IG1fc2Ny
aXB0TG9hZGVyLT5yZXNwb25zZU1JTUVUeXBlKCk7CisgICAgfQorCisgICAgbm90aWZ5Q2xpZW50
RmluaXNoZWQoKTsKK30KKwordm9pZCBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6Om5vdGlmeUNs
aWVudEZpbmlzaGVkKCkKK3sKICAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KTsKKwogICAgIGlmIChtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPm5vdGlmeUZpbmlzaGVk
KCp0aGlzLCBXVEZNb3ZlKG1fc291cmNlVVJMKSwgbV9wcm9taXNlLnJlbGVhc2VOb25OdWxsKCkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXIuaAppbmRleCBjNWRiN2U5M2VjMzc0YmIxZWQ5MjhhZTdlZTAzMWZkNTQwYmQy
OGNlLi43NmQxNGRhZmFhYWQxMjI5YmVlMDNlYjcxMjk2MmIwYWI2M2EwNWI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIu
aApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJNb2R1bGVTY3Jp
cHRMb2FkZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRCdWZmZXIuaCIKICNpbmNsdWRlICJXb3JrZXJT
Y3JpcHRGZXRjaGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCiAj
aW5jbHVkZSA8d3RmL1JlZi5oPgpAQCAtNTQsNiArNTUsMTIgQEAgY2xhc3MgV29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyIGZpbmFsIDogcHVibGljIE1vZHVsZVNjcmlwdExvYWRlciwgcHJpdmF0ZSBX
b3JrZXIKIAogICAgIHN0YXRpYyBTdHJpbmcgdGFza01vZGUoKTsKICAgICBSZWZlcnJlclBvbGlj
eSByZWZlcnJlclBvbGljeSgpOworICAgIGJvb2wgZmFpbGVkKCkgY29uc3QgeyByZXR1cm4gbV9m
YWlsZWQ7IH0KKyAgICBib29sIHJldHJpZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGUoKSBjb25z
dCB7IHJldHVybiBtX3JldHJpZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGU7IH0KKworICAgIGNv
bnN0IFNjcmlwdEJ1ZmZlciYgc2NyaXB0KCkgeyByZXR1cm4gbV9zY3JpcHQ7IH0KKyAgICBjb25z
dCBVUkwmIHJlc3BvbnNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZVVSTDsgfQorICAg
IGNvbnN0IFN0cmluZyYgcmVzcG9uc2VNSU1FVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9u
c2VNSU1FVHlwZTsgfQogCiBwcml2YXRlOgogICAgIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcihN
b2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBXb3JrZXJTY3JpcHRG
ZXRjaGVyJiwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CkBAIC02MSw4ICs2OCwx
NSBAQCBjbGFzcyBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIgZmluYWwgOiBwdWJsaWMgTW9kdWxl
U2NyaXB0TG9hZGVyLCBwcml2YXRlIFdvcmtlcgogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBmaW5hbCB7IH0KICAgICB2
b2lkIG5vdGlmeUZpbmlzaGVkKCkgZmluYWw7CiAKKyAgICB2b2lkIG5vdGlmeUNsaWVudEZpbmlz
aGVkKCk7CisKICAgICBSZWY8V29ya2VyU2NyaXB0TG9hZGVyPiBtX3NjcmlwdExvYWRlcjsKICAg
ICBVUkwgbV9zb3VyY2VVUkw7CisgICAgU2NyaXB0QnVmZmVyIG1fc2NyaXB0OworICAgIFVSTCBt
X3Jlc3BvbnNlVVJMOworICAgIFN0cmluZyBtX3Jlc3BvbnNlTUlNRVR5cGU7CisgICAgYm9vbCBt
X2ZhaWxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3JldHJpZXZlZEZyb21TZXJ2aWNlV29ya2Vy
Q2FjaGUgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVh
MGY2NjY0ZDNkOGIzZDA5YWViMmY1YmY0OTZhYmY3M2I3NjU5ZTguLjE3OWFkNWEwYjQ0MWQ2Yjlk
ZTkwZGQ1M2MxZjFkYmE4ZTVjN2M1ZTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMS0wNC0w
OCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFNlcnZpY2VX
b3JrZXIgc2hvdWxkIHNhdmUgbW9kdWxlIHNjcmlwdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDM1NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzU2MzQ4OTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvbmV0d29yay1wcm9jZXNzLXRlcm1pbmF0aW9u
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJz
L25ldHdvcmstcHJvY2Vzcy10ZXJtaW5hdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNpc3RlbnQtbW9kdWxl
cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3Vy
Y2VzL3BlcnNpc3RlbnQtaW1wb3J0ZWQtbW9kdWxlLXNjcmlwdC5weTogQWRkZWQuCisgICAgICAg
IChtYWluKToKKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3Bl
cnNpc3RlbnQtbW9kdWxlLXdvcmtlci5qczogQWRkZWQuCisKIDIwMjEtMDQtMDggIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHRlc3QgaW5m
cmFzdHJ1Y3R1cmUgZm9yIGFwcCBib3VuZCByZXF1ZXN0IGNvbnRleHQgc3RyaW5nCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvbmV0d29yay1wcm9jZXNz
LXRlcm1pbmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Ut
d29ya2Vycy9uZXR3b3JrLXByb2Nlc3MtdGVybWluYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdlZjIyZTlhNDMxYWQwMjcyNzEzYjcxZmRjODc5NDAxNmM4ZWYxMmYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvbmV0d29yay1wcm9j
ZXNzLXRlcm1pbmF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvbmV0d29yay1wcm9jZXNz
LXRlcm1pbmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMv
bmV0d29yay1wcm9jZXNzLXRlcm1pbmF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Q0OTBjNTA5YmVi
ODcyMDM2MGI4ZmQwZWIxYzRmNTMyM2JkZmYwYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9uZXR3b3JrLXByb2Nlc3MtdGVybWluYXRpb24u
aHRtbApAQCAtMCwwICsxLDEyIEBACis8Ym9keT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKK30KK3Rlc3RSdW5uZXIudGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsK
K2RvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gIlBBU1MiOworaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1t
b2R1bGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vy
cy9wZXJzaXN0ZW50LW1vZHVsZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZjIyZTlhNDMx
YWQwMjcyNzEzYjcxZmRjODc5NDAxNmM4ZWYxMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxIEBACitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dw
dC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODc2MDYwZTg5MGQ3ZGY2NjQxMGYxM2M3ZDM0YWNmOTRjODg2NDY2NgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wZXJzaXN0ZW50LW1v
ZHVsZXMuaHRtbApAQCAtMCwwICsxLDczIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9yb3V0aW5lcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CitmdW5jdGlvbiBnZXRSYW5kb21JZEZyb21Xb3JrZXIod29ya2VyKQoreworICAgIHdvcmtl
ci5wb3N0TWVzc2FnZSgiZ2V0UmFuZG9tSWQiKTsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVu
Y3Rpb24ocmVzb2x2ZSkgeworICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRM
aXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHJlc29sdmUoZS5k
YXRhKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHdpdGhJZnJhbWUyKHVy
bCkgeworICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbiAoZXYpIHsKKyAgICAgICAg
cmVzb2x2ZShldi5kYXRhKTsKKyAgICAgIH0sIGZhbHNlKTsKKyAgICAgIHZhciBmcmFtZSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworICAgICAgZnJhbWUuc3JjID0gdXJsOwor
ICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFtZSk7CisgICAgfSk7Cit9CisKKwor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cisg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciByZWdpc3RyYXRpb247Cit2
YXIgd29ya2VyOworYXN5bmMgZnVuY3Rpb24gZG9UZXN0KCkgeworICAgIGlmICghd2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgnSW50ZXJuYWxzIEFQSSBu
ZWVkZWQgZm9yIHRoaXMgdGVzdCcpOworCisgICAgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdh
dG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNlcy9wZXJzaXN0ZW50LW1vZHVsZS13
b3JrZXIuanMiLCB7CisgICAgICAgIHR5cGU6ICJtb2R1bGUiCisgICAgfSk7CisgICAgaWYgKHJl
Z2lzdHJhdGlvbi5pbnN0YWxsaW5nKSB7CisgICAgICAgIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5p
bnN0YWxsaW5nOworICAgICAgICBhd2FpdCB3YWl0Rm9yU3RhdGUod29ya2VyLCAiYWN0aXZhdGVk
Iik7CisgICAgfSBlbHNlCisgICAgICAgIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5hY3RpdmU7CisK
KyAgICBsZXQgcmFuZG9tSWQgPSBhd2FpdCBnZXRSYW5kb21JZEZyb21Xb3JrZXIod29ya2VyKTsK
KworICAgIGlmICghd2luZG93LmxvY2F0aW9uLmhhc2gubGVuZ3RoKSB7CisgICAgICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgYXdhaXQgaW50ZXJuYWxzLnN0b3JlUmVnaXN0
cmF0aW9uc09uRGlzaygpOworCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIudGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKKyAgICAgICAgYXdh
aXQgd2FpdEZvcigxMDApOworCisgICAgICAgIGxldCByYW5kb21JZDIgPSBhd2FpdCB3aXRoSWZy
YW1lMigiLi9wZXJzaXN0ZW50LW1vZHVsZXMuaHRtbCNpZnJhbWUiKTsKKworICAgICAgICBkb2N1
bWVudC5ib2R5LmlubmVySFRNTCA9IHJhbmRvbUlkID09PSByYW5kb21JZDIgPyAiUEFTUyIgOiAi
RkFJTCI7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0gZWxzZSB7CisgICAgICAgIHdpbmRvdy5wYXJlbnQu
cG9zdE1lc3NhZ2UocmFuZG9tSWQsICcqJyk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9Citk
b1Rlc3QoKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3BlcnNpc3RlbnQtaW1w
b3J0ZWQtbW9kdWxlLXNjcmlwdC5weSBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVudC1pbXBvcnRlZC1tb2R1bGUtc2NyaXB0LnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjFmMmNjYWVhZjZjMDE4NzE2NzFhZWRiM2I3ZDVmM2M1MzI1ODlhNmUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2Vz
L3BlcnNpc3RlbnQtaW1wb3J0ZWQtbW9kdWxlLXNjcmlwdC5weQpAQCAtMCwwICsxLDkgQEAKK2lt
cG9ydCByYW5kb20KKworCitkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CisgICAgaGVhZGVy
cyA9IFsKKyAgICAgICAgKCJDb250ZW50LXR5cGUiLCAidGV4dC9qYXZhc2NyaXB0IiksCisgICAg
ICAgICgiQ2FjaGUtQ29udHJvbCIsICJuby1zdG9yZSIpCisgICAgXQorICAgIHJldHVybiBoZWFk
ZXJzLCAic2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24oZSkgeyBlLnNv
dXJjZS5wb3N0TWVzc2FnZSgnIiArIHN0cihyYW5kb20ucmFuZG9tKCkpICsgIicpOyB9KTsiCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2Vz
L3BlcnNpc3RlbnQtbW9kdWxlLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9yZXNvdXJjZXMvcGVyc2lzdGVudC1tb2R1bGUtd29ya2VyLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQzYzUwZGZlYWQ1NWExOTkxZWZmNjhlY2UxNTAwNDQ2MWRiOWFjY2UKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3Bl
cnNpc3RlbnQtbW9kdWxlLXdvcmtlci5qcwpAQCAtMCwwICsxLDIgQEAKK2ltcG9ydCAiLi9wZXJz
aXN0ZW50LWltcG9ydGVkLW1vZHVsZS1zY3JpcHQucHkiOworCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425589</attachid>
            <date>2021-04-08 23:05:59 -0700</date>
            <delta_ts>2021-04-09 02:23:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224356-20210408230558.patch</filename>
            <type>text/plain</type>
            <size>16559</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1Njg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkyOTdjNTFkMDcxOTYy
NzkwNjM0ODk5NWI5N2YyMTRkZTQxMmZlMi4uODMyMDEyNjcwZDBlMWMxMWI0ZjQ3ZTYxY2M0MWI5
MjcyYjM5NTYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA0LTA4ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2VydmljZVdvcmtlciBz
aG91bGQgc2F2ZSBtb2R1bGUgc2NyaXB0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MzU2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NTYzNDg5
Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
OiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLmh0bWwKKworICAg
ICAgICBJbiB0aGlzIHBhdGNoLCB3ZSBjYWxsIHNldFNjcmlwdFJlc291cmNlIC8gc2NyaXB0UmVz
b3VyY2Ugd2hpbGUgbG9hZGluZyBzZXJ2aWNlLXdvcmtlciBtb2R1bGUgc2NyaXB0cyBpbiBtb2R1
bGUgbG9hZGVycywKKyAgICAgICAgc28gdGhhdCB3ZSBjYW4gZW5zdXJlIHRoYXQgdGhleSBhcmUg
c2F2ZWQgb24gdGhlIGRpc2suCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRjaCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKToKKyAgICAgICAg
KFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlDbGllbnRGaW5p
c2hlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmg6
CisKIDIwMjEtMDQtMDggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNzM1NDEpIFdLV2ViVmlldyBjYW4ndCBsb2FkIE5T
VVJMUmVxdWVzdCBzdWJjbGFzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0TW9kdWxlTG9hZGVyLmNwcAppbmRleCBhZDQ3ZmUxMzBiMGNkODRmYmZhNTYxYzAzMzQ4
ZTljZmI3M2I5M2M4Li41Y2FjN2M1N2ZhODA0ZGE1MTNmM2E4MzYxMzExMWU4YzE3N2EzMjMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5j
cHAKQEAgLTE4OCw2ICsxODgsNyBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1
bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsTwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIGF1dG8gbG9hZGVyID0gV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVh
dGUoKnRoaXMsIGRlZmVycmVkLmdldCgpLCAqc3RhdGljX2Nhc3Q8V29ya2VyU2NyaXB0RmV0Y2hl
cio+KEpTQzo6anNDYXN0PEpTQzo6SlNTY3JpcHRGZXRjaGVyKj4oc2NyaXB0RmV0Y2hlciktPmZl
dGNoZXIoKSksIFdURk1vdmUodG9wTGV2ZWxGZXRjaFBhcmFtZXRlcnMpKTsKICAgICAgICAgbV9s
b2FkZXJzLmFkZChsb2FkZXIuY29weVJlZigpKTsKKyAgICAgICAgLy8gVGhpcyBjYW4gaW52b2tl
IGNhbGxiYWNrIGltbWVkaWF0ZWx5LgogICAgICAgICBsb2FkZXItPmxvYWQobV9jb250ZXh0LCBX
VEZNb3ZlKGNvbXBsZXRlZFVSTCkpOwogICAgIH0KIApAQCAtMzY5LDggKzM3MCw2IEBAIHZvaWQg
U2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChNb2R1bGVTY3JpcHRMb2FkZXImIG1v
ZHVsZVNjcmlwdExvYWRlciwKICAgICAgICAgICAgIGlmIChzb3VyY2VVUkwuaGFzRnJhZ21lbnRJ
ZGVudGlmaWVyKCkpCiAgICAgICAgICAgICAgICAgcmVzcG9uc2VVUkwuc2V0RnJhZ21lbnRJZGVu
dGlmaWVyKHNvdXJjZVVSTC5mcmFnbWVudElkZW50aWZpZXIoKSk7CiAgICAgICAgIH0KLQotICAg
ICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCks
IHJlc3BvbnNlVVJMKTsKICAgICAgICAgcmV0dXJuIHJlc3BvbnNlVVJMOwogICAgIH07CiAKQEAg
LTQwOCwxNiArNDA3LDE5IEBAIHZvaWQgU2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hl
ZChNb2R1bGVTY3JpcHRMb2FkZXImIG1vZHVsZVNjcmlwdExvYWRlciwKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogCi0gICAgICAgIGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVzcG9uc2VVUkwo
Y2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkudXJsKCksIGNhY2hlZFNjcmlwdC5oYXNSZWRpcmVjdGlv
bnMoKSwgY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkuc291cmNlKCkpOworICAgICAgICBVUkwgcmVz
cG9uc2VVUkwgPSBjYW5vbmljYWxpemVBbmRSZWdpc3RlclJlc3BvbnNlVVJMKGNhY2hlZFNjcmlw
dC5yZXNwb25zZSgpLnVybCgpLCBjYWNoZWRTY3JpcHQuaGFzUmVkaXJlY3Rpb25zKCksIGNhY2hl
ZFNjcmlwdC5yZXNwb25zZSgpLnNvdXJjZSgpKTsKKyAgICAgICAgbV9yZXF1ZXN0VVJMVG9SZXNw
b25zZVVSTE1hcC5hZGQoc291cmNlVVJMLnN0cmluZygpLCByZXNwb25zZVVSTCk7CiAgICAgICAg
IHByb21pc2UtPnJlc29sdmVXaXRoQ2FsbGJhY2soWyZdIChKU0RPTUdsb2JhbE9iamVjdCYganNH
bG9iYWxPYmplY3QpIHsKICAgICAgICAgICAgIHJldHVybiBKU0M6OkpTU291cmNlQ29kZTo6Y3Jl
YXRlKGpzR2xvYmFsT2JqZWN0LnZtKCksCiAgICAgICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2Rl
IHsgU2NyaXB0U291cmNlQ29kZSB7ICZjYWNoZWRTY3JpcHQsIEpTQzo6U291cmNlUHJvdmlkZXJT
b3VyY2VUeXBlOjpNb2R1bGUsIGxvYWRlci5zY3JpcHRGZXRjaGVyKCkgfS5qc1NvdXJjZUNvZGUo
KSB9KTsKICAgICAgICAgfSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgYXV0byYgbG9hZGVyID0g
c3RhdGljX2Nhc3Q8V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyJj4obW9kdWxlU2NyaXB0TG9hZGVy
KTsKLSAgICAgICAgYXV0byYgd29ya2VyU2NyaXB0TG9hZGVyID0gbG9hZGVyLnNjcmlwdExvYWRl
cigpOwogCi0gICAgICAgIGlmICh3b3JrZXJTY3JpcHRMb2FkZXIuZmFpbGVkKCkpIHsKKyAgICAg
ICAgaWYgKGxvYWRlci5mYWlsZWQoKSkgeworICAgICAgICAgICAgQVNTRVJUKCFsb2FkZXIucmV0
cmlldmVkRnJvbVNlcnZpY2VXb3JrZXJDYWNoZSgpKTsKKyAgICAgICAgICAgIGF1dG8mIHdvcmtl
clNjcmlwdExvYWRlciA9IGxvYWRlci5zY3JpcHRMb2FkZXIoKTsKKyAgICAgICAgICAgIEFTU0VS
VCh3b3JrZXJTY3JpcHRMb2FkZXIuZmFpbGVkKCkpOwogICAgICAgICAgICAgaWYgKHdvcmtlclNj
cmlwdExvYWRlci5lcnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7CiAgICAgICAgICAgICAgICAg
cmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hG
YWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQg
YnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwpAQCAtNDMyLDI0ICs0MzQsMzIgQEAgdm9pZCBTY3JpcHRNb2R1bGVMb2Fk
ZXI6Om5vdGlmeUZpbmlzaGVkKE1vZHVsZVNjcmlwdExvYWRlciYgbW9kdWxlU2NyaXB0TG9hZGVy
LAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCFNSU1FVHlw
ZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZSh3b3JrZXJTY3JpcHRMb2Fk
ZXIucmVzcG9uc2VNSU1FVHlwZSgpKSkgeworICAgICAgICBpZiAoIU1JTUVUeXBlUmVnaXN0cnk6
OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKGxvYWRlci5yZXNwb25zZU1JTUVUeXBlKCkp
KSB7CiAgICAgICAgICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFn
ZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAogICAgICAgICAg
ICAgLy8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20gcmVzcG9uc2Un
cyBoZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2YVNjcmlwdCBN
SU1FIHR5cGUuCiAgICAgICAgICAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBmZXRjaGlu
ZyBhIGNsYXNzaWMgc2NyaXB0IGRvZXMgbm90IGluY2x1ZGUgTUlNRSB0eXBlIGNoZWNraW5nLiBJ
biBjb250cmFzdCwgbW9kdWxlIHNjcmlwdHMgd2lsbCBmYWlsIHRvIGxvYWQgaWYgdGhleSBhcmUg
bm90IG9mIGEgY29ycmVjdCBNSU1FIHR5cGUuCi0gICAgICAgICAgICBwcm9taXNlLT5yZWplY3Qo
VHlwZUVycm9yLCBtYWtlU3RyaW5nKCInIiwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlTUlN
RVR5cGUoKSwgIicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIikpOworICAg
ICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygiJyIsIGxvYWRl
ci5yZXNwb25zZU1JTUVUeXBlKCksICInIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0
eXBlLiIpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChh
dXRvKiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgewotICAgICAgICAgICAgLy8g
SWYgdGhpcyBpcyB0b3AtbGV2ZWwtbW9kdWxlLCB0aGVuIHdlIGV4dHJhY3QgcmVmZXJyZXItcG9s
aWN5IGFuZCBhcHBseSB0byB0aGUgZGVwZW5kZW50IG1vZHVsZXMuCi0gICAgICAgICAgICBpZiAo
cGFyYW1ldGVycy0+aXNUb3BMZXZlbE1vZHVsZSgpKQotICAgICAgICAgICAgICAgIHN0YXRpY19j
YXN0PFdvcmtlclNjcmlwdEZldGNoZXImPihsb2FkZXIuc2NyaXB0RmV0Y2hlcigpKS5zZXRSZWZl
cnJlclBvbGljeShsb2FkZXIucmVmZXJyZXJQb2xpY3koKSk7CisgICAgICAgIFVSTCByZXNwb25z
ZVVSTCA9IGxvYWRlci5yZXNwb25zZVVSTCgpOworICAgICAgICBpZiAoIWxvYWRlci5yZXRyaWV2
ZWRGcm9tU2VydmljZVdvcmtlckNhY2hlKCkpIHsKKyAgICAgICAgICAgIGF1dG8mIHdvcmtlclNj
cmlwdExvYWRlciA9IGxvYWRlci5zY3JpcHRMb2FkZXIoKTsKKyAgICAgICAgICAgIGlmIChhdXRv
KiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgeworICAgICAgICAgICAgICAgIC8v
IElmIHRoaXMgaXMgdG9wLWxldmVsLW1vZHVsZSwgdGhlbiB3ZSBleHRyYWN0IHJlZmVycmVyLXBv
bGljeSBhbmQgYXBwbHkgdG8gdGhlIGRlcGVuZGVudCBtb2R1bGVzLgorICAgICAgICAgICAgICAg
IGlmIChwYXJhbWV0ZXJzLT5pc1RvcExldmVsTW9kdWxlKCkpCisgICAgICAgICAgICAgICAgICAg
IHN0YXRpY19jYXN0PFdvcmtlclNjcmlwdEZldGNoZXImPihsb2FkZXIuc2NyaXB0RmV0Y2hlcigp
KS5zZXRSZWZlcnJlclBvbGljeShsb2FkZXIucmVmZXJyZXJQb2xpY3koKSk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICByZXNwb25zZVVSTCA9IGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVz
cG9uc2VVUkwocmVzcG9uc2VVUkwsIHdvcmtlclNjcmlwdExvYWRlci5pc1JlZGlyZWN0ZWQoKSwg
d29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlU291cmNlKCkpOworI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKKyAgICAgICAgICAgIGlmIChpczxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KG1f
Y29udGV4dCkpCisgICAgICAgICAgICAgICAgZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNj
b3BlPihtX2NvbnRleHQpLnNldFNjcmlwdFJlc291cmNlKHNvdXJjZVVSTCwgU2VydmljZVdvcmtl
ckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdCB7IGxvYWRlci5zY3JpcHQoKSwgcmVzcG9uc2VV
UkwsIGxvYWRlci5yZXNwb25zZU1JTUVUeXBlKCkgfSk7CisjZW5kaWYKICAgICAgICAgfQotCi0g
ICAgICAgIFVSTCByZXNwb25zZVVSTCA9IGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVzcG9uc2VV
Ukwod29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlVVJMKCksIHdvcmtlclNjcmlwdExvYWRlci5p
c1JlZGlyZWN0ZWQoKSwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlU291cmNlKCkpOworICAg
ICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCks
IHJlc3BvbnNlVVJMKTsKICAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhDYWxsYmFjayhbJl0g
KEpTRE9NR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCkgewogICAgICAgICAgICAgcmV0dXJu
IEpTQzo6SlNTb3VyY2VDb2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwKLSAgICAgICAg
ICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgd29ya2VyU2NyaXB0
TG9hZGVyLnNjcmlwdCgpLCBXVEZNb3ZlKHJlc3BvbnNlVVJMKSwgeyB9LCBKU0M6OlNvdXJjZVBy
b3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNTb3Vy
Y2VDb2RlKCkgfSk7CisgICAgICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2RlIHsgU2NyaXB0U291
cmNlQ29kZSB7IGxvYWRlci5zY3JpcHQoKSwgV1RGTW92ZShyZXNwb25zZVVSTCksIHsgfSwgSlND
OjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNjcmlwdEZldGNoZXIo
KSB9LmpzU291cmNlQ29kZSgpIH0pOwogICAgICAgICB9KTsKICAgICB9CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNw
cAppbmRleCBmODcwYTBkMWRhMzM4NTAwZjhlNGQ5MjY3MjNlZjU0MDlmZmNmNTliLi44MmUyMzY5
NzEwOGZlZDIyMjA5Yzg1Mjc2M2Q2ZTA0ZWMwOTE1ZTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAKQEAgLTYx
LDYgKzYxLDE5IEBAIGJvb2wgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFVSTCYmIHNvdXJjCiB7CiAgICAgbV9zb3VyY2VVUkwg
PSBXVEZNb3ZlKHNvdXJjZVVSTCk7CiAKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisgICAg
aWYgKGlzPFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkpIHsKKyAgICAgICAgaWYg
KGF1dG8qIHNjcmlwdFJlc291cmNlID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Pihjb250ZXh0KS5zY3JpcHRSZXNvdXJjZShtX3NvdXJjZVVSTCkpIHsKKyAgICAgICAgICAgIG1f
c2NyaXB0ID0gc2NyaXB0UmVzb3VyY2UtPnNjcmlwdDsKKyAgICAgICAgICAgIG1fcmVzcG9uc2VV
UkwgPSBzY3JpcHRSZXNvdXJjZS0+cmVzcG9uc2VVUkw7CisgICAgICAgICAgICBtX3Jlc3BvbnNl
TUlNRVR5cGUgPSBzY3JpcHRSZXNvdXJjZS0+bWltZVR5cGU7CisgICAgICAgICAgICBtX3JldHJp
ZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGUgPSB0cnVlOworICAgICAgICAgICAgbm90aWZ5Q2xp
ZW50RmluaXNoZWQoKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAg
fQorI2VuZGlmCisKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCB7IG1fc291cmNlVVJMIH07
CiAKICAgICBGZXRjaE9wdGlvbnMgZmV0Y2hPcHRpb25zOwpAQCAtOTQsNyArMTA3LDIxIEBAIHZv
aWQgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZCgpCiB7CiAgICAgQVNT
RVJUKG1fcHJvbWlzZSk7CiAKKyAgICBpZiAobV9zY3JpcHRMb2FkZXItPmZhaWxlZCgpKQorICAg
ICAgICBtX2ZhaWxlZCA9IHRydWU7CisgICAgZWxzZSB7CisgICAgICAgIG1fc2NyaXB0ID0gbV9z
Y3JpcHRMb2FkZXItPnNjcmlwdCgpOworICAgICAgICBtX3Jlc3BvbnNlVVJMID0gbV9zY3JpcHRM
b2FkZXItPnJlc3BvbnNlVVJMKCk7CisgICAgICAgIG1fcmVzcG9uc2VNSU1FVHlwZSA9IG1fc2Ny
aXB0TG9hZGVyLT5yZXNwb25zZU1JTUVUeXBlKCk7CisgICAgfQorCisgICAgbm90aWZ5Q2xpZW50
RmluaXNoZWQoKTsKK30KKwordm9pZCBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6Om5vdGlmeUNs
aWVudEZpbmlzaGVkKCkKK3sKICAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KTsKKwogICAgIGlmIChtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPm5vdGlmeUZpbmlzaGVk
KCp0aGlzLCBXVEZNb3ZlKG1fc291cmNlVVJMKSwgbV9wcm9taXNlLnJlbGVhc2VOb25OdWxsKCkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXIuaAppbmRleCBjNWRiN2U5M2VjMzc0YmIxZWQ5MjhhZTdlZTAzMWZkNTQwYmQy
OGNlLi43NmQxNGRhZmFhYWQxMjI5YmVlMDNlYjcxMjk2MmIwYWI2M2EwNWI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIu
aApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJNb2R1bGVTY3Jp
cHRMb2FkZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRCdWZmZXIuaCIKICNpbmNsdWRlICJXb3JrZXJT
Y3JpcHRGZXRjaGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCiAj
aW5jbHVkZSA8d3RmL1JlZi5oPgpAQCAtNTQsNiArNTUsMTIgQEAgY2xhc3MgV29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyIGZpbmFsIDogcHVibGljIE1vZHVsZVNjcmlwdExvYWRlciwgcHJpdmF0ZSBX
b3JrZXIKIAogICAgIHN0YXRpYyBTdHJpbmcgdGFza01vZGUoKTsKICAgICBSZWZlcnJlclBvbGlj
eSByZWZlcnJlclBvbGljeSgpOworICAgIGJvb2wgZmFpbGVkKCkgY29uc3QgeyByZXR1cm4gbV9m
YWlsZWQ7IH0KKyAgICBib29sIHJldHJpZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGUoKSBjb25z
dCB7IHJldHVybiBtX3JldHJpZXZlZEZyb21TZXJ2aWNlV29ya2VyQ2FjaGU7IH0KKworICAgIGNv
bnN0IFNjcmlwdEJ1ZmZlciYgc2NyaXB0KCkgeyByZXR1cm4gbV9zY3JpcHQ7IH0KKyAgICBjb25z
dCBVUkwmIHJlc3BvbnNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZVVSTDsgfQorICAg
IGNvbnN0IFN0cmluZyYgcmVzcG9uc2VNSU1FVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9u
c2VNSU1FVHlwZTsgfQogCiBwcml2YXRlOgogICAgIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcihN
b2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBXb3JrZXJTY3JpcHRG
ZXRjaGVyJiwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CkBAIC02MSw4ICs2OCwx
NSBAQCBjbGFzcyBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIgZmluYWwgOiBwdWJsaWMgTW9kdWxl
U2NyaXB0TG9hZGVyLCBwcml2YXRlIFdvcmtlcgogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBmaW5hbCB7IH0KICAgICB2
b2lkIG5vdGlmeUZpbmlzaGVkKCkgZmluYWw7CiAKKyAgICB2b2lkIG5vdGlmeUNsaWVudEZpbmlz
aGVkKCk7CisKICAgICBSZWY8V29ya2VyU2NyaXB0TG9hZGVyPiBtX3NjcmlwdExvYWRlcjsKICAg
ICBVUkwgbV9zb3VyY2VVUkw7CisgICAgU2NyaXB0QnVmZmVyIG1fc2NyaXB0OworICAgIFVSTCBt
X3Jlc3BvbnNlVVJMOworICAgIFN0cmluZyBtX3Jlc3BvbnNlTUlNRVR5cGU7CisgICAgYm9vbCBt
X2ZhaWxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3JldHJpZXZlZEZyb21TZXJ2aWNlV29ya2Vy
Q2FjaGUgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVh
MGY2NjY0ZDNkOGIzZDA5YWViMmY1YmY0OTZhYmY3M2I3NjU5ZTguLjE3OWFkNWEwYjQ0MWQ2Yjlk
ZTkwZGQ1M2MxZjFkYmE4ZTVjN2M1ZTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMS0wNC0w
OCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFNlcnZpY2VX
b3JrZXIgc2hvdWxkIHNhdmUgbW9kdWxlIHNjcmlwdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDM1NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzU2MzQ4OTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvbmV0d29yay1wcm9jZXNzLXRlcm1pbmF0aW9u
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJz
L25ldHdvcmstcHJvY2Vzcy10ZXJtaW5hdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNpc3RlbnQtbW9kdWxl
cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3Vy
Y2VzL3BlcnNpc3RlbnQtaW1wb3J0ZWQtbW9kdWxlLXNjcmlwdC5weTogQWRkZWQuCisgICAgICAg
IChtYWluKToKKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3Bl
cnNpc3RlbnQtbW9kdWxlLXdvcmtlci5qczogQWRkZWQuCisKIDIwMjEtMDQtMDggIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHRlc3QgaW5m
cmFzdHJ1Y3R1cmUgZm9yIGFwcCBib3VuZCByZXF1ZXN0IGNvbnRleHQgc3RyaW5nCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvbmV0d29yay1wcm9jZXNz
LXRlcm1pbmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Ut
d29ya2Vycy9uZXR3b3JrLXByb2Nlc3MtdGVybWluYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdlZjIyZTlhNDMxYWQwMjcyNzEzYjcxZmRjODc5NDAxNmM4ZWYxMmYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvbmV0d29yay1wcm9j
ZXNzLXRlcm1pbmF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvbmV0d29yay1wcm9jZXNz
LXRlcm1pbmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMv
bmV0d29yay1wcm9jZXNzLXRlcm1pbmF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDFjZGM3OWU2ZmM0
Nzk1Y2I1MWEzOGY2OWU1MjI2ZmJmMDYxOTJmZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9uZXR3b3JrLXByb2Nlc3MtdGVybWluYXRpb24u
aHRtbApAQCAtMCwwICsxLDIxIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9yb3V0aW5lcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Citp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KK2FzeW5jIGZ1bmN0aW9uIGRvVGVzdCgp
IHsKKyAgICB0ZXN0UnVubmVyLnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CisgICAgYXdhaXQg
d2FpdEZvcigxMDApOworICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gIlBBU1MiOworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
Cit9Citkb1Rlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNpc3RlbnQtbW9kdWxlcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lz
dGVudC1tb2R1bGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWYyMmU5YTQzMWFkMDI3Mjcx
M2I3MWZkYzg3OTQwMTZjOGVmMTJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvc2VydmljZS13b3JrZXJzL3BlcnNpc3RlbnQtbW9kdWxlcy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSBAQAorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2Vydmlj
ZS13b3JrZXJzL3BlcnNpc3RlbnQtbW9kdWxlcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL3BlcnNpc3RlbnQtbW9kdWxlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3NjA2
MGU4OTBkN2RmNjY0MTBmMTNjN2QzNGFjZjk0Yzg4NjQ2NjYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcGVyc2lzdGVudC1tb2R1bGVzLmh0
bWwKQEAgLTAsMCArMSw3MyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvcm91dGluZXMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZnVu
Y3Rpb24gZ2V0UmFuZG9tSWRGcm9tV29ya2VyKHdvcmtlcikKK3sKKyAgICB3b3JrZXIucG9zdE1l
c3NhZ2UoImdldFJhbmRvbUlkIik7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJl
c29sdmUpIHsKKyAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIo
J21lc3NhZ2UnLCBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICByZXNvbHZlKGUuZGF0YSk7Cisg
ICAgICAgIH0pOworICAgIH0pOworfQorCitmdW5jdGlvbiB3aXRoSWZyYW1lMih1cmwpIHsKKyAg
cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24gKGV2KSB7CisgICAgICAgIHJlc29sdmUo
ZXYuZGF0YSk7CisgICAgICB9LCBmYWxzZSk7CisgICAgICB2YXIgZnJhbWUgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKKyAgICAgIGZyYW1lLnNyYyA9IHVybDsKKyAgICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUpOworICAgIH0pOworfQorCisKK2lmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCit2YXIgcmVnaXN0cmF0aW9uOwordmFyIHdvcmtl
cjsKK2FzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpIHsKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoJ0ludGVybmFscyBBUEkgbmVlZGVkIGZv
ciB0aGlzIHRlc3QnKTsKKworICAgIHJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLnJlZ2lzdGVyKCJyZXNvdXJjZXMvcGVyc2lzdGVudC1tb2R1bGUtd29ya2VyLmpz
IiwgeworICAgICAgICB0eXBlOiAibW9kdWxlIgorICAgIH0pOworICAgIGlmIChyZWdpc3RyYXRp
b24uaW5zdGFsbGluZykgeworICAgICAgICB3b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGlu
ZzsKKyAgICAgICAgYXdhaXQgd2FpdEZvclN0YXRlKHdvcmtlciwgImFjdGl2YXRlZCIpOworICAg
IH0gZWxzZQorICAgICAgICB3b3JrZXIgPSByZWdpc3RyYXRpb24uYWN0aXZlOworCisgICAgbGV0
IHJhbmRvbUlkID0gYXdhaXQgZ2V0UmFuZG9tSWRGcm9tV29ya2VyKHdvcmtlcik7CisKKyAgICBp
ZiAoIXdpbmRvdy5sb2NhdGlvbi5oYXNoLmxlbmd0aCkgeworICAgICAgICBpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICAgICAgICAgIGF3YWl0IGludGVybmFscy5zdG9yZVJlZ2lzdHJhdGlvbnNP
bkRpc2soKTsKKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0
ZXN0UnVubmVyLnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CisgICAgICAgIGF3YWl0IHdhaXRG
b3IoMTAwKTsKKworICAgICAgICBsZXQgcmFuZG9tSWQyID0gYXdhaXQgd2l0aElmcmFtZTIoIi4v
cGVyc2lzdGVudC1tb2R1bGVzLmh0bWwjaWZyYW1lIik7CisKKyAgICAgICAgZG9jdW1lbnQuYm9k
eS5pbm5lckhUTUwgPSByYW5kb21JZCA9PT0gcmFuZG9tSWQyID8gIlBBU1MiIDogIkZBSUwiOwor
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKKyAgICB9IGVsc2UgeworICAgICAgICB3aW5kb3cucGFyZW50LnBvc3RNZXNz
YWdlKHJhbmRvbUlkLCAnKicpOworICAgICAgICByZXR1cm47CisgICAgfQorfQorZG9UZXN0KCk7
CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9wZXJzaXN0ZW50LWltcG9ydGVkLW1v
ZHVsZS1zY3JpcHQucHkgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVz
b3VyY2VzL3BlcnNpc3RlbnQtaW1wb3J0ZWQtbW9kdWxlLXNjcmlwdC5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
ZjJjY2FlYWY2YzAxODcxNjcxYWVkYjNiN2Q1ZjNjNTMyNTg5YTZlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9wZXJzaXN0
ZW50LWltcG9ydGVkLW1vZHVsZS1zY3JpcHQucHkKQEAgLTAsMCArMSw5IEBACitpbXBvcnQgcmFu
ZG9tCisKKworZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgorICAgIGhlYWRlcnMgPSBbCisg
ICAgICAgICgiQ29udGVudC10eXBlIiwgInRleHQvamF2YXNjcmlwdCIpLAorICAgICAgICAoIkNh
Y2hlLUNvbnRyb2wiLCAibm8tc3RvcmUiKQorICAgIF0KKyAgICByZXR1cm4gaGVhZGVycywgInNl
bGYuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uKGUpIHsgZS5zb3VyY2UucG9z
dE1lc3NhZ2UoJyIgKyBzdHIocmFuZG9tLnJhbmRvbSgpKSArICInKTsgfSk7IgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9wZXJzaXN0
ZW50LW1vZHVsZS13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtl
cnMvcmVzb3VyY2VzL3BlcnNpc3RlbnQtbW9kdWxlLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kM2M1
MGRmZWFkNTVhMTk5MWVmZjY4ZWNlMTUwMDQ0NjFkYjlhY2NlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9wZXJzaXN0ZW50
LW1vZHVsZS13b3JrZXIuanMKQEAgLTAsMCArMSwyIEBACitpbXBvcnQgIi4vcGVyc2lzdGVudC1p
bXBvcnRlZC1tb2R1bGUtc2NyaXB0LnB5IjsKKwo=
</data>
<flag name="review"
          id="445576"
          type_id="1"
          status="+"
          setter="youennf"
    />
    <flag name="commit-queue"
          id="445593"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>