<?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>218569</bug_id>
          
          <creation_ts>2020-11-04 08:23:26 -0800</creation_ts>
          <short_desc>Remove support for experimental: and internal: prefixes from WebKitTestRunner and DumpRenderTree</short_desc>
          <delta_ts>2020-11-09 20:32:19 -0800</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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=218607</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1704432</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-11-04 08:23:26 -0800</bug_when>
    <thetext>Remove support for experimental: and internal: prefixes from WebKitTestRunner and DumpRenderTree</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704459</commentid>
    <comment_count>1</comment_count>
      <attachid>413170</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-11-04 09:12:14 -0800</bug_when>
    <thetext>Created attachment 413170
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704472</commentid>
    <comment_count>2</comment_count>
      <attachid>413173</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-11-04 09:46:32 -0800</bug_when>
    <thetext>Created attachment 413173
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704478</commentid>
    <comment_count>3</comment_count>
      <attachid>413174</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-11-04 10:14:07 -0800</bug_when>
    <thetext>Created attachment 413174
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704599</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-04 14:22:08 -0800</bug_when>
    <thetext>Committed r269390: &lt;https://trac.webkit.org/changeset/269390&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 413174.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704600</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-04 14:23:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/71051671&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413170</attachid>
            <date>2020-11-04 09:12:14 -0800</date>
            <delta_ts>2020-11-04 09:46:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218569-20201104091213.patch</filename>
            <type>text/plain</type>
            <size>25057</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2OTM2MikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDY3IEBACisyMDIwLTExLTA0ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgZXhwZXJpbWVudGFsOiBhbmQgaW50ZXJuYWw6IHBy
ZWZpeGVzIGZyb20gV2ViS2l0VGVzdFJ1bm5lciBhbmQgRHVtcFJlbmRlclRyZWUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODU2OQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwcmVmaXhlcyB3ZXJl
IHJlbW92ZWQgZnJvbSB1c2UgaW4gdGVzdHMgaW4gcjI2OTM2MC4KKworICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6Ondl
YlZpZXdJc0NvbXBhdGlibGVXaXRoT3B0aW9ucyBjb25zdCk6CisgICAgICAgIFJlcGxhY2UgZHVw
bGljYXRlZCBjb21wYXJpc29uIGNvZGUgd2l0aCBjYWxsIHRvIG9wZXJhdG9yPT0uCisKKyAgICAg
ICAgKiBUZXN0UnVubmVyU2hhcmVkL1Rlc3RGZWF0dXJlcy5jcHA6CisgICAgICAgIChXVFI6Om1l
cmdlKToKKyAgICAgICAgUmVtb3ZlIHNwZWNpYWwgbWFwcyBmb3IgaW50ZXJuYWwgYW5kIGV4cGVy
aW1lbnRhbCBmZWF0dXJlcy4KKworICAgICAgICAoV1RSOjpvcGVyYXRvcj09KToKKyAgICAgICAg
KFdUUjo6b3BlcmF0b3IhPSk6CisgICAgICAgIEFkZCBvcGVyYXRvcj09IHN1cHBvcnQgZm9yIHVz
ZSBieSBUZXN0T3B0aW9ucyBpbiBkZXRlcm1pbmluZyBjb21wYXRpYmlsaXR5LgorCisgICAgICAg
IChXVFI6OnBhcnNlVGVzdEhlYWRlckZlYXR1cmUpOgorICAgICAgICAoV1RSOjpwYXJzZVRlc3RI
ZWFkZXIpOgorICAgICAgICBTcGxpdCBvdXQgZmVhdHVyZSBwYXJzaW5nIGZvciBmdXR1cmUgdXNl
IGluIGNvbW1hbmQgbGluZSBwYXJzaW5nLgorCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9U
ZXN0RmVhdHVyZXMuaDoKKyAgICAgICAgUmVtb3ZlIHNwZWNpYWwgbWFwcyBmb3IgaW50ZXJuYWwg
YW5kIGV4cGVyaW1lbnRhbCBmZWF0dXJlcy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
T3B0aW9ucy5jcHA6CisgICAgICAgIChXVFI6OmhhbmRsZU9wdGlvbkFjY2VsZXJhdGVkRHJhd2lu
Zyk6CisgICAgICAgIChXVFI6OmhhbmRsZU9wdGlvblJlbW90ZUxheWVyVHJlZSk6CisgICAgICAg
IChXVFI6OmhhbmRsZU9wdGlvblNob3dXZWJWaWV3KToKKyAgICAgICAgKFdUUjo6aGFuZGxlT3B0
aW9uU2hvd1RvdWNoZXMpOgorICAgICAgICAoV1RSOjpwYXJzZUZlYXR1cmUpOgorICAgICAgICAo
V1RSOjpoYW5kbGVPcHRpb25FeHBlcmltZW50YWxGZWF0dXJlKToKKyAgICAgICAgKFdUUjo6aGFu
ZGxlT3B0aW9uSW50ZXJuYWxGZWF0dXJlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL09w
dGlvbnMuaDoKKyAgICAgICAgUmF0aGVyIHRoYW4gcGFyc2luZyBpbnRvIGJvb2xzIC8gZXh0cmEg
bWFwcywgcGFyc2UgdGhlIGNvbW1hbmQgbGluZSBvcHRpb25zCisgICAgICAgIGRpcmVjdGx5IGlu
dG8gYSBUZXN0RmVhdHVyZXMuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUpOgor
ICAgICAgICBJbml0aWFsaXplIGdsb2JhbCBmZWF0dXJlcyBmcm9tIHRoZSBuZXcgT3B0aW9ucycg
VGVzdEZlYXR1cmVzLiAKKworICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVm
ZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgIFJlbW92ZSBzcGVjaWFsIGNhc2lu
ZyBmb3IgZXhwZXJpbWVudGFsIGFuZCBpbnRlcm5hbCBmZWF0dXJlcywgdGhleSBhcmUgbm93IGp1
c3QKKyAgICAgICAgZ2VuZXJpYyBib29sIFdlYlByZWZlcmVuY2VzLiBNb3ZlIHNwZWNpYWwgY2Fz
ZXMgZm9yIGludGVybmFsIGZlYXR1cmVzIGludG8gVGVzdE9wdGlvbnMuCisKKyAgICAgICAgKFdU
Ujo6VGVzdENvbnRyb2xsZXI6OnRlc3RPcHRpb25zRm9yVGVzdCBjb25zdCk6CisgICAgICAgIE5v
dyB0aGF0IGdsb2JhbCBmZWF0dXJlcyBpcyBub3Qgc2VlZGVkIHdpdGggdGhlIGRlZmF1bHQgZmVh
dHVyZXMsIGNvbnN0cnVjdCB0aGUKKyAgICAgICAgZnVsbCBtZXJnZSBjaGFpbiBzdGFydGluZyB3
aXRoIHRoZSBkZWZhdWx0IGZlYXR1cmVzIGluc3RlYWQuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1Rlc3RPcHRpb25zLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmRlZmF1
bHRzKToKKyAgICAgICAgQWRkIHNvbWUgYWRkaXRpb25hbCBkZWZhdWx0cyBtb3ZlZCBmcm9tIFRl
c3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzLgorCisgICAg
ICAgIChXVFI6OlRlc3RPcHRpb25zOjpoYXNTYW1lSW5pdGlhbGl6YXRpb25PcHRpb25zIGNvbnN0
KToKKyAgICAgICAgVXNlIG9wZXJhdG9yPT0gdG8gcmVkdWNlIGR1cGxpY2F0ZWQgY29kZS4KKwor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaDoKKyAgICAgICAgKFdUUjo6
VGVzdE9wdGlvbnM6OmV4cGVyaW1lbnRhbEZlYXR1cmVzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdUUjo6VGVzdE9wdGlvbnM6OmludGVybmFsRGVidWdGZWF0dXJlcyBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIFJlbW92ZSBub3cgdW51c2VkIGV4dHJhIG1hcHMgZm9yIGV4dGVybmFsIGFu
ZCBpbnRlcm5hbCBmZWF0dXJlcy4KKwogMjAyMC0xMS0wMyAgU2lodWkgTGl1ICA8c2lodWlfbGl1
QGFwcGxlLmNvbT4KIAogICAgICAgICBTZXQgdXAgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIFNw
ZWVjaFJlY29nbml0aW9uCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCShy
ZXZpc2lvbiAyNjkzNjApCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEzMCwyOSArMTMwLDkgQEAgY29uc3Qgc3RkOjp1bm9yZGVyZWRf
bWFwPHN0ZDo6c3RyaW5nLCBUZQogICAgIHJldHVybiBtYXA7CiB9CiAKLWJvb2wgVGVzdE9wdGlv
bnM6OndlYlZpZXdJc0NvbXBhdGlibGVXaXRoT3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0
aW9ucykgY29uc3QKK2Jvb2wgVGVzdE9wdGlvbnM6OndlYlZpZXdJc0NvbXBhdGlibGVXaXRoT3B0
aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3RoZXIpIGNvbnN0CiB7Ci0gICAgaWYgKG1fZmVhdHVy
ZXMuZXhwZXJpbWVudGFsRmVhdHVyZXMgIT0gb3B0aW9ucy5tX2ZlYXR1cmVzLmV4cGVyaW1lbnRh
bEZlYXR1cmVzKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKG1fZmVhdHVyZXMuaW50
ZXJuYWxEZWJ1Z0ZlYXR1cmVzICE9IG9wdGlvbnMubV9mZWF0dXJlcy5pbnRlcm5hbERlYnVnRmVh
dHVyZXMpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAobV9mZWF0dXJlcy5ib29sV2Vi
UHJlZmVyZW5jZUZlYXR1cmVzICE9IG9wdGlvbnMubV9mZWF0dXJlcy5ib29sV2ViUHJlZmVyZW5j
ZUZlYXR1cmVzKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKG1fZmVhdHVyZXMuZG91
YmxlV2ViUHJlZmVyZW5jZUZlYXR1cmVzICE9IG9wdGlvbnMubV9mZWF0dXJlcy5kb3VibGVXZWJQ
cmVmZXJlbmNlRmVhdHVyZXMpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAobV9mZWF0
dXJlcy51aW50MzJXZWJQcmVmZXJlbmNlRmVhdHVyZXMgIT0gb3B0aW9ucy5tX2ZlYXR1cmVzLnVp
bnQzMldlYlByZWZlcmVuY2VGZWF0dXJlcykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlm
IChtX2ZlYXR1cmVzLnN0cmluZ1dlYlByZWZlcmVuY2VGZWF0dXJlcyAhPSBvcHRpb25zLm1fZmVh
dHVyZXMuc3RyaW5nV2ViUHJlZmVyZW5jZUZlYXR1cmVzKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgaWYgKG1fZmVhdHVyZXMuYm9vbFRlc3RSdW5uZXJGZWF0dXJlcyAhPSBvcHRpb25zLm1f
ZmVhdHVyZXMuYm9vbFRlc3RSdW5uZXJGZWF0dXJlcykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIGlmIChtX2ZlYXR1cmVzLmRvdWJsZVRlc3RSdW5uZXJGZWF0dXJlcyAhPSBvcHRpb25zLm1f
ZmVhdHVyZXMuZG91YmxlVGVzdFJ1bm5lckZlYXR1cmVzKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgaWYgKG1fZmVhdHVyZXMuc3RyaW5nVGVzdFJ1bm5lckZlYXR1cmVzICE9IG9wdGlvbnMu
bV9mZWF0dXJlcy5zdHJpbmdUZXN0UnVubmVyRmVhdHVyZXMpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICBpZiAobV9mZWF0dXJlcy5zdHJpbmdWZWN0b3JUZXN0UnVubmVyRmVhdHVyZXMgIT0g
b3B0aW9ucy5tX2ZlYXR1cmVzLnN0cmluZ1ZlY3RvclRlc3RSdW5uZXJGZWF0dXJlcykKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBtX2ZlYXR1cmVz
ID09IG90aGVyLm1fZmVhdHVyZXM7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFQgZmVhdHVy
ZVZhbHVlKHN0ZDo6c3RyaW5nIGtleSwgVCBkZWZhdWx0VmFsdWUsIGNvbnN0IHN0ZDo6dW5vcmRl
cmVkX21hcDxzdGQ6OnN0cmluZywgVD4mIG1hcCkKSW5kZXg6IFRvb2xzL1Rlc3RSdW5uZXJTaGFy
ZWQvVGVzdEZlYXR1cmVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0UnVubmVyU2hhcmVk
L1Rlc3RGZWF0dXJlcy5jcHAJKHJldmlzaW9uIDI2OTM2MCkKKysrIFRvb2xzL1Rlc3RSdW5uZXJT
aGFyZWQvVGVzdEZlYXR1cmVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsOCArNDIsNiBAQCB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIG1lcmdlKHN0ZDo6dW5vCiB2b2lkIG1lcmdlKFRlc3RG
ZWF0dXJlcyYgYmFzZSwgVGVzdEZlYXR1cmVzIGFkZGl0aW9uYWwpCiB7CiAgICAgLy8gRklYTUU6
IFRoaXMgc2hvdWxkIHVzZSBzdGQ6OnVub3JkZXJlZF9tYXA6Om1lcmdlIHdoZW4gaXQgaXMgYXZh
aWxhYmxlIGZvciBhbGwgcG9ydHMuCi0gICAgbWVyZ2UoYmFzZS5leHBlcmltZW50YWxGZWF0dXJl
cywgYWRkaXRpb25hbC5leHBlcmltZW50YWxGZWF0dXJlcyk7Ci0gICAgbWVyZ2UoYmFzZS5pbnRl
cm5hbERlYnVnRmVhdHVyZXMsIGFkZGl0aW9uYWwuaW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzKTsKICAg
ICBtZXJnZShiYXNlLmJvb2xXZWJQcmVmZXJlbmNlRmVhdHVyZXMsIGFkZGl0aW9uYWwuYm9vbFdl
YlByZWZlcmVuY2VGZWF0dXJlcyk7CiAgICAgbWVyZ2UoYmFzZS5kb3VibGVXZWJQcmVmZXJlbmNl
RmVhdHVyZXMsIGFkZGl0aW9uYWwuZG91YmxlV2ViUHJlZmVyZW5jZUZlYXR1cmVzKTsKICAgICBt
ZXJnZShiYXNlLnVpbnQzMldlYlByZWZlcmVuY2VGZWF0dXJlcywgYWRkaXRpb25hbC51aW50MzJX
ZWJQcmVmZXJlbmNlRmVhdHVyZXMpOwpAQCAtNTQsNiArNTIsMzIgQEAgdm9pZCBtZXJnZShUZXN0
RmVhdHVyZXMmIGJhc2UsIFRlc3RGZWF0dQogICAgIG1lcmdlKGJhc2Uuc3RyaW5nVmVjdG9yVGVz
dFJ1bm5lckZlYXR1cmVzLCBhZGRpdGlvbmFsLnN0cmluZ1ZlY3RvclRlc3RSdW5uZXJGZWF0dXJl
cyk7CiB9CiAKK2Jvb2wgb3BlcmF0b3I9PShjb25zdCBUZXN0RmVhdHVyZXMmIGEsIGNvbnN0IFRl
c3RGZWF0dXJlcyYgYikKK3sKKyAgICBpZiAoYS5ib29sV2ViUHJlZmVyZW5jZUZlYXR1cmVzICE9
IGIuYm9vbFdlYlByZWZlcmVuY2VGZWF0dXJlcykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGlmIChhLmRvdWJsZVdlYlByZWZlcmVuY2VGZWF0dXJlcyAhPSBiLmRvdWJsZVdlYlByZWZlcmVu
Y2VGZWF0dXJlcykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChhLnVpbnQzMldlYlBy
ZWZlcmVuY2VGZWF0dXJlcyAhPSBiLnVpbnQzMldlYlByZWZlcmVuY2VGZWF0dXJlcykKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChhLnN0cmluZ1dlYlByZWZlcmVuY2VGZWF0dXJlcyAh
PSBiLnN0cmluZ1dlYlByZWZlcmVuY2VGZWF0dXJlcykKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmIChhLmJvb2xUZXN0UnVubmVyRmVhdHVyZXMgIT0gYi5ib29sVGVzdFJ1bm5lckZlYXR1
cmVzKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGEuZG91YmxlVGVzdFJ1bm5lckZl
YXR1cmVzICE9IGIuZG91YmxlVGVzdFJ1bm5lckZlYXR1cmVzKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgaWYgKGEuc3RyaW5nVGVzdFJ1bm5lckZlYXR1cmVzICE9IGIuc3RyaW5nVGVzdFJ1
bm5lckZlYXR1cmVzKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGEuc3RyaW5nVmVj
dG9yVGVzdFJ1bm5lckZlYXR1cmVzICE9IGIuc3RyaW5nVmVjdG9yVGVzdFJ1bm5lckZlYXR1cmVz
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgb3Bl
cmF0b3IhPShjb25zdCBUZXN0RmVhdHVyZXMmIGEsIGNvbnN0IFRlc3RGZWF0dXJlcyYgYikKK3sK
KyAgICByZXR1cm4gIShhID09IGIpOworfQorCiBzdGF0aWMgYm9vbCBwYXRoQ29udGFpbnMoY29u
c3Qgc3RkOjpzdHJpbmcmIHBhdGhPclVSTCwgY29uc3QgY2hhciogc3Vic3RyaW5nKQogewogICAg
IHJldHVybiBwYXRoT3JVUkwuZmluZChzdWJzdHJpbmcpICE9IHN0ZDo6c3RyaW5nOjpucG9zOwpA
QCAtMTcwLDcgKzE5NCw3IEBAIHN0YXRpYyBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gcGFyc2VT
dHIKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgVGVzdEZlYXR1cmVzIHBhcnNlVGVz
dEhlYWRlcihzdGQ6OmZpbGVzeXN0ZW06OnBhdGggcGF0aCwgY29uc3Qgc3RkOjp1bm9yZGVyZWRf
bWFwPHN0ZDo6c3RyaW5nLCBUZXN0SGVhZGVyS2V5VHlwZT4mIGtleVR5cGVNYXApCitib29sIHBh
cnNlVGVzdEhlYWRlckZlYXR1cmUoVGVzdEZlYXR1cmVzJiBmZWF0dXJlcywgc3RkOjpzdHJpbmcg
a2V5LCBzdGQ6OnN0cmluZyB2YWx1ZSwgc3RkOjpmaWxlc3lzdGVtOjpwYXRoIHBhdGgsIGNvbnN0
IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgVGVzdEhlYWRlcktleVR5cGU+JiBrZXlU
eXBlTWFwKQogewogICAgIGF1dG8ga2V5VHlwZSA9IFsma2V5VHlwZU1hcF0oYXV0byYga2V5KSB7
CiAgICAgICAgIGF1dG8gaXQgPSBrZXlUeXBlTWFwLmZpbmQoa2V5KTsKQEAgLTE3OSw2ICsyMDMs
NDcgQEAgc3RhdGljIFRlc3RGZWF0dXJlcyBwYXJzZVRlc3RIZWFkZXIoc3RkOgogICAgICAgICBy
ZXR1cm4gaXQtPnNlY29uZDsKICAgICB9OwogCisgICAgc3dpdGNoIChrZXlUeXBlKGtleSkpIHsK
KyAgICBjYXNlIFRlc3RIZWFkZXJLZXlUeXBlOjpCb29sV2ViUHJlZmVyZW5jZToKKyAgICAgICAg
ZmVhdHVyZXMuYm9vbFdlYlByZWZlcmVuY2VGZWF0dXJlcy5pbnNlcnRfb3JfYXNzaWduKGtleSwg
cGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKSk7CisgICAgICAgIHJldHVybiB0cnVl
OworICAgIGNhc2UgVGVzdEhlYWRlcktleVR5cGU6OkRvdWJsZVdlYlByZWZlcmVuY2U6CisgICAg
ICAgIGZlYXR1cmVzLmRvdWJsZVdlYlByZWZlcmVuY2VGZWF0dXJlcy5pbnNlcnRfb3JfYXNzaWdu
KGtleSwgcGFyc2VEb3VibGVUZXN0SGVhZGVyVmFsdWUodmFsdWUpKTsKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgY2FzZSBUZXN0SGVhZGVyS2V5VHlwZTo6VUludDMyV2ViUHJlZmVyZW5jZToK
KyAgICAgICAgZmVhdHVyZXMudWludDMyV2ViUHJlZmVyZW5jZUZlYXR1cmVzLmluc2VydF9vcl9h
c3NpZ24oa2V5LCBwYXJzZVVJbnQzMlRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSkpOworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIFRlc3RIZWFkZXJLZXlUeXBlOjpTdHJpbmdXZWJQcmVmZXJl
bmNlOgorICAgICAgICBmZWF0dXJlcy5zdHJpbmdXZWJQcmVmZXJlbmNlRmVhdHVyZXMuaW5zZXJ0
X29yX2Fzc2lnbihrZXksIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBjYXNl
IFRlc3RIZWFkZXJLZXlUeXBlOjpCb29sVGVzdFJ1bm5lcjoKKyAgICAgICAgZmVhdHVyZXMuYm9v
bFRlc3RSdW5uZXJGZWF0dXJlcy5pbnNlcnRfb3JfYXNzaWduKGtleSwgcGFyc2VCb29sZWFuVGVz
dEhlYWRlclZhbHVlKHZhbHVlKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgVGVz
dEhlYWRlcktleVR5cGU6OkRvdWJsZVRlc3RSdW5uZXI6CisgICAgICAgIGZlYXR1cmVzLmRvdWJs
ZVRlc3RSdW5uZXJGZWF0dXJlcy5pbnNlcnRfb3JfYXNzaWduKGtleSwgcGFyc2VEb3VibGVUZXN0
SGVhZGVyVmFsdWUodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBUZXN0
SGVhZGVyS2V5VHlwZTo6U3RyaW5nVGVzdFJ1bm5lcjoKKyAgICAgICAgZmVhdHVyZXMuc3RyaW5n
VGVzdFJ1bm5lckZlYXR1cmVzLmluc2VydF9vcl9hc3NpZ24oa2V5LCB2YWx1ZSk7CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIGNhc2UgVGVzdEhlYWRlcktleVR5cGU6OlN0cmluZ1JlbGF0aXZl
UGF0aFRlc3RSdW5uZXI6CisgICAgICAgIGZlYXR1cmVzLnN0cmluZ1Rlc3RSdW5uZXJGZWF0dXJl
cy5pbnNlcnRfb3JfYXNzaWduKGtleSwgcGFyc2VTdHJpbmdUZXN0SGVhZGVyVmFsdWVBc1JlbGF0
aXZlUGF0aCh2YWx1ZSwgcGF0aCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIFRl
c3RIZWFkZXJLZXlUeXBlOjpTdHJpbmdVUkxUZXN0UnVubmVyOgorICAgICAgICBmZWF0dXJlcy5z
dHJpbmdUZXN0UnVubmVyRmVhdHVyZXMuaW5zZXJ0X29yX2Fzc2lnbihrZXksIHBhcnNlU3RyaW5n
VGVzdEhlYWRlclZhbHVlQXNVUkwodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
Y2FzZSBUZXN0SGVhZGVyS2V5VHlwZTo6U3RyaW5nVmVjdG9yVGVzdFJ1bm5lcjoKKyAgICAgICAg
ZmVhdHVyZXMuc3RyaW5nVmVjdG9yVGVzdFJ1bm5lckZlYXR1cmVzLmluc2VydF9vcl9hc3NpZ24o
a2V5LCBwYXJzZVN0cmluZ1Rlc3RIZWFkZXJWYWx1ZUFzU3RyaW5nVmVjdG9yKHZhbHVlKSk7Cisg
ICAgICAgIHJldHVybiB0cnVlOworCisgICAgY2FzZSBUZXN0SGVhZGVyS2V5VHlwZTo6VW5rbm93
bjoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworfQorCitzdGF0aWMgVGVzdEZlYXR1
cmVzIHBhcnNlVGVzdEhlYWRlcihzdGQ6OmZpbGVzeXN0ZW06OnBhdGggcGF0aCwgY29uc3Qgc3Rk
Ojp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBUZXN0SGVhZGVyS2V5VHlwZT4mIGtleVR5cGVN
YXApCit7CiAgICAgVGVzdEZlYXR1cmVzIGZlYXR1cmVzOwogICAgIGlmICghc3RkOjpmaWxlc3lz
dGVtOjpleGlzdHMocGF0aCkpCiAgICAgICAgIHJldHVybiBmZWF0dXJlczsKQEAgLTIxNCw1MyAr
Mjc5LDEwIEBAIHN0YXRpYyBUZXN0RmVhdHVyZXMgcGFyc2VUZXN0SGVhZGVyKHN0ZDoKICAgICAg
ICAgfQogICAgICAgICBhdXRvIGtleSA9IHBhaXJTdHJpbmcuc3Vic3RyKHBhaXJTdGFydCwgZXF1
YWxzTG9jYXRpb24gLSBwYWlyU3RhcnQpOwogICAgICAgICBhdXRvIHZhbHVlID0gcGFpclN0cmlu
Zy5zdWJzdHIoZXF1YWxzTG9jYXRpb24gKyAxLCBwYWlyRW5kIC0gKGVxdWFsc0xvY2F0aW9uICsg
MSkpOwotCi0gICAgICAgIGlmIChrZXkucmZpbmQoImV4cGVyaW1lbnRhbDoiKSA9PSAwKSB7Ci0g
ICAgICAgICAgICBrZXkgPSBrZXkuc3Vic3RyKDEzKTsKLSAgICAgICAgICAgIGZlYXR1cmVzLmV4
cGVyaW1lbnRhbEZlYXR1cmVzLmluc2VydCh7IGtleSwgcGFyc2VCb29sZWFuVGVzdEhlYWRlclZh
bHVlKHZhbHVlKSB9KTsKLSAgICAgICAgfSBlbHNlIGlmIChrZXkucmZpbmQoImludGVybmFsOiIp
ID09IDApIHsKLSAgICAgICAgICAgIGtleSA9IGtleS5zdWJzdHIoOSk7Ci0gICAgICAgICAgICBm
ZWF0dXJlcy5pbnRlcm5hbERlYnVnRmVhdHVyZXMuaW5zZXJ0KHsga2V5LCBwYXJzZUJvb2xlYW5U
ZXN0SGVhZGVyVmFsdWUodmFsdWUpIH0pOwotICAgICAgICB9Ci0KLSAgICAgICAgc3dpdGNoIChr
ZXlUeXBlKGtleSkpIHsKLSAgICAgICAgY2FzZSBUZXN0SGVhZGVyS2V5VHlwZTo6Qm9vbFdlYlBy
ZWZlcmVuY2U6Ci0gICAgICAgICAgICBmZWF0dXJlcy5ib29sV2ViUHJlZmVyZW5jZUZlYXR1cmVz
Lmluc2VydCh7IGtleSwgcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKSB9KTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFRlc3RIZWFkZXJLZXlUeXBlOjpEb3VibGVX
ZWJQcmVmZXJlbmNlOgotICAgICAgICAgICAgZmVhdHVyZXMuZG91YmxlV2ViUHJlZmVyZW5jZUZl
YXR1cmVzLmluc2VydCh7IGtleSwgcGFyc2VEb3VibGVUZXN0SGVhZGVyVmFsdWUodmFsdWUpIH0p
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVGVzdEhlYWRlcktleVR5cGU6OlVJ
bnQzMldlYlByZWZlcmVuY2U6Ci0gICAgICAgICAgICBmZWF0dXJlcy51aW50MzJXZWJQcmVmZXJl
bmNlRmVhdHVyZXMuaW5zZXJ0KHsga2V5LCBwYXJzZVVJbnQzMlRlc3RIZWFkZXJWYWx1ZSh2YWx1
ZSkgfSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUZXN0SGVhZGVyS2V5VHlw
ZTo6U3RyaW5nV2ViUHJlZmVyZW5jZToKLSAgICAgICAgICAgIGZlYXR1cmVzLnN0cmluZ1dlYlBy
ZWZlcmVuY2VGZWF0dXJlcy5pbnNlcnQoeyBrZXksIHZhbHVlIH0pOwotICAgICAgICAgICAgYnJl
YWs7Ci0KLSAgICAgICAgY2FzZSBUZXN0SGVhZGVyS2V5VHlwZTo6Qm9vbFRlc3RSdW5uZXI6Ci0g
ICAgICAgICAgICBmZWF0dXJlcy5ib29sVGVzdFJ1bm5lckZlYXR1cmVzLmluc2VydCh7IGtleSwg
cGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKSB9KTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIFRlc3RIZWFkZXJLZXlUeXBlOjpEb3VibGVUZXN0UnVubmVyOgotICAg
ICAgICAgICAgZmVhdHVyZXMuZG91YmxlVGVzdFJ1bm5lckZlYXR1cmVzLmluc2VydCh7IGtleSwg
cGFyc2VEb3VibGVUZXN0SGVhZGVyVmFsdWUodmFsdWUpIH0pOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgVGVzdEhlYWRlcktleVR5cGU6OlN0cmluZ1Rlc3RSdW5uZXI6Ci0gICAg
ICAgICAgICBmZWF0dXJlcy5zdHJpbmdUZXN0UnVubmVyRmVhdHVyZXMuaW5zZXJ0KHsga2V5LCB2
YWx1ZSB9KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFRlc3RIZWFkZXJLZXlU
eXBlOjpTdHJpbmdSZWxhdGl2ZVBhdGhUZXN0UnVubmVyOgotICAgICAgICAgICAgZmVhdHVyZXMu
c3RyaW5nVGVzdFJ1bm5lckZlYXR1cmVzLmluc2VydCh7IGtleSwgcGFyc2VTdHJpbmdUZXN0SGVh
ZGVyVmFsdWVBc1JlbGF0aXZlUGF0aCh2YWx1ZSwgcGF0aCkgfSk7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBUZXN0SGVhZGVyS2V5VHlwZTo6U3RyaW5nVVJMVGVzdFJ1bm5lcjoK
LSAgICAgICAgICAgIGZlYXR1cmVzLnN0cmluZ1Rlc3RSdW5uZXJGZWF0dXJlcy5pbnNlcnQoeyBr
ZXksIHBhcnNlU3RyaW5nVGVzdEhlYWRlclZhbHVlQXNVUkwodmFsdWUpIH0pOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVGVzdEhlYWRlcktleVR5cGU6OlN0cmluZ1ZlY3RvclRl
c3RSdW5uZXI6Ci0gICAgICAgICAgICBmZWF0dXJlcy5zdHJpbmdWZWN0b3JUZXN0UnVubmVyRmVh
dHVyZXMuaW5zZXJ0KHsga2V5LCBwYXJzZVN0cmluZ1Rlc3RIZWFkZXJWYWx1ZUFzU3RyaW5nVmVj
dG9yKHZhbHVlKSB9KTsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgVGVzdEhl
YWRlcktleVR5cGU6OlVua25vd246CisgICAgICAgIAorICAgICAgICBpZiAoIXBhcnNlVGVzdEhl
YWRlckZlYXR1cmUoZmVhdHVyZXMsIGtleSwgdmFsdWUsIHBhdGgsIGtleVR5cGVNYXApKQogICAg
ICAgICAgICAgTE9HX0VSUk9SKCJVbmtub3duIGtleSwgJyVzLCBpbiB0ZXN0IGhlYWRlciBpbiAl
cyIsIGtleS5jX3N0cigpLCBwYXRoLmNfc3RyKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIH0KLQorICAgICAgICAKICAgICAgICAgcGFpclN0YXJ0ID0gcGFpckVuZCArIDE7CiAgICAg
fQogCkluZGV4OiBUb29scy9UZXN0UnVubmVyU2hhcmVkL1Rlc3RGZWF0dXJlcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVGVzdEZlYXR1cmVzLmgJKHJldmlzaW9uIDI2
OTM2MCkKKysrIFRvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVGVzdEZlYXR1cmVzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM1LDkgKzM1LDYgQEAgbmFtZXNwYWNlIFdUUiB7CiBzdHJ1Y3QgVGVzdENvbW1h
bmQ7CiAKIHN0cnVjdCBUZXN0RmVhdHVyZXMgewotICAgIHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6
OnN0cmluZywgYm9vbD4gZXhwZXJpbWVudGFsRmVhdHVyZXM7Ci0gICAgc3RkOjp1bm9yZGVyZWRf
bWFwPHN0ZDo6c3RyaW5nLCBib29sPiBpbnRlcm5hbERlYnVnRmVhdHVyZXM7Ci0KICAgICBzdGQ6
OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIGJvb2w+IGJvb2xXZWJQcmVmZXJlbmNlRmVhdHVy
ZXM7CiAgICAgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBkb3VibGU+IGRvdWJsZVdl
YlByZWZlcmVuY2VGZWF0dXJlczsKICAgICBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcs
IHVpbnQzMl90PiB1aW50MzJXZWJQcmVmZXJlbmNlRmVhdHVyZXM7CkBAIC00OSw2ICs0Niw5IEBA
IHN0cnVjdCBUZXN0RmVhdHVyZXMgewogICAgIHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmlu
Zywgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+PiBzdHJpbmdWZWN0b3JUZXN0UnVubmVyRmVhdHVy
ZXM7CiB9OwogCitib29sIG9wZXJhdG9yPT0oY29uc3QgVGVzdEZlYXR1cmVzJiwgY29uc3QgVGVz
dEZlYXR1cmVzJik7Citib29sIG9wZXJhdG9yIT0oY29uc3QgVGVzdEZlYXR1cmVzJiwgY29uc3Qg
VGVzdEZlYXR1cmVzJik7CisKIHZvaWQgbWVyZ2UoVGVzdEZlYXR1cmVzJiBiYXNlLCBUZXN0RmVh
dHVyZXMgYWRkaXRpb25hbCk7CiAKIFRlc3RGZWF0dXJlcyBoYXJkY29kZWRGZWF0dXJlc0Jhc2Vk
T25QYXRoRm9yVGVzdChjb25zdCBUZXN0Q29tbWFuZCYpOwpJbmRleDogVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9PcHRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVy
L09wdGlvbnMuY3BwCShyZXZpc2lvbiAyNjkzNjApCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVy
L09wdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NiwyNSArNjYsMjUgQEAgc3RhdGljIGJv
b2wgaGFuZGxlT3B0aW9uQ29tcGxleFRleHQoT3B0aQogCiBzdGF0aWMgYm9vbCBoYW5kbGVPcHRp
b25BY2NlbGVyYXRlZERyYXdpbmcoT3B0aW9ucyYgb3B0aW9ucywgY29uc3QgY2hhciosIGNvbnN0
IGNoYXIqKQogewotICAgIG9wdGlvbnMuc2hvdWxkVXNlQWNjZWxlcmF0ZWREcmF3aW5nID0gdHJ1
ZTsKKyAgICBvcHRpb25zLmZlYXR1cmVzLmJvb2xXZWJQcmVmZXJlbmNlRmVhdHVyZXMuaW5zZXJ0
X29yX2Fzc2lnbigiQWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCIsIHRydWUpOwogICAgIHJldHVy
biB0cnVlOwogfQogCiBzdGF0aWMgYm9vbCBoYW5kbGVPcHRpb25SZW1vdGVMYXllclRyZWUoT3B0
aW9ucyYgb3B0aW9ucywgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqKQogewotICAgIG9wdGlvbnMu
c2hvdWxkVXNlUmVtb3RlTGF5ZXJUcmVlID0gdHJ1ZTsKKyAgICBvcHRpb25zLmZlYXR1cmVzLmJv
b2xUZXN0UnVubmVyRmVhdHVyZXMuaW5zZXJ0X29yX2Fzc2lnbigidXNlUmVtb3RlTGF5ZXJUcmVl
IiwgdHJ1ZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBib29sIGhhbmRsZU9wdGlv
blNob3dXZWJWaWV3KE9wdGlvbnMmIG9wdGlvbnMsIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKikK
IHsKLSAgICBvcHRpb25zLnNob3VsZFNob3dXZWJWaWV3ID0gdHJ1ZTsKKyAgICBvcHRpb25zLmZl
YXR1cmVzLmJvb2xUZXN0UnVubmVyRmVhdHVyZXMuaW5zZXJ0X29yX2Fzc2lnbigic2hvdWxkU2hv
d1dlYlZpZXciLCB0cnVlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIGJvb2wgaGFu
ZGxlT3B0aW9uU2hvd1RvdWNoZXMoT3B0aW9ucyYgb3B0aW9ucywgY29uc3QgY2hhciosIGNvbnN0
IGNoYXIqKQogewotICAgIG9wdGlvbnMuc2hvdWxkU2hvd1RvdWNoZXMgPSB0cnVlOworICAgIG9w
dGlvbnMuZmVhdHVyZXMuYm9vbFRlc3RSdW5uZXJGZWF0dXJlcy5pbnNlcnRfb3JfYXNzaWduKCJz
aG91bGRTaG93VG91Y2hlcyIsIHRydWUpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0xMTQs
NyArMTE0LDcgQEAgc3RhdGljIGJvb2wgaGFuZGxlT3B0aW9uQWxsb3dlZEhvc3QoT3B0aQogICAg
IHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCBwYXJzZUZlYXR1cmUoc3RkOjpzdHJpbmdf
dmlldyBmZWF0dXJlU3RyaW5nLCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIGJvb2w+
JiBmZWF0dXJlcykKK3N0YXRpYyBib29sIHBhcnNlRmVhdHVyZShzdGQ6OnN0cmluZ192aWV3IGZl
YXR1cmVTdHJpbmcsIFRlc3RGZWF0dXJlcyYgZmVhdHVyZXMpCiB7CiAgICAgYXV0byBzdHJpbmdz
ID0gc3BsaXQoZmVhdHVyZVN0cmluZywgJz0nKTsKICAgICBpZiAoc3RyaW5ncy5lbXB0eSgpIHx8
IHN0cmluZ3Muc2l6ZSgpID4gMikKQEAgLTEyMywxOCArMTIzLDE5IEBAIHN0YXRpYyBib29sIHBh
cnNlRmVhdHVyZShzdGQ6OnN0cmluZ192aWUKICAgICBhdXRvIGZlYXR1cmVOYW1lID0gc3RyaW5n
c1swXTsKICAgICBib29sIGVuYWJsZWQgPSBzdHJpbmdzLnNpemUoKSA9PSAxIHx8IHN0cmluZ3Nb
MV0gPT0gInRydWUiOwogCi0gICAgZmVhdHVyZXMuaW5zZXJ0KHsgc3RkOjpzdHJpbmcgeyBmZWF0
dXJlTmFtZSB9LCBlbmFibGVkIH0pOworICAgIC8vIEZJWE1FOiBHZW5lcmFsaXplIHRoaXMgdG8g
d29yayBmb3IgYW55IHR5cGUgb2Ygd2ViIHByZWZlcmVuY2UgdXNpbmcgdGVzdCBoZWFkZXIgbG9n
aWMgaW4gVGVzdEZlYXR1cmVzLmNwcAorICAgIGZlYXR1cmVzLmJvb2xXZWJQcmVmZXJlbmNlRmVh
dHVyZXMuaW5zZXJ0KHsgc3RkOjpzdHJpbmcgeyBmZWF0dXJlTmFtZSB9LCBlbmFibGVkIH0pOwog
ICAgIHJldHVybiB0cnVlOwogfQogCiBzdGF0aWMgYm9vbCBoYW5kbGVPcHRpb25FeHBlcmltZW50
YWxGZWF0dXJlKE9wdGlvbnMmIG9wdGlvbnMsIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKiBmZWF0
dXJlKQogewotICAgIHJldHVybiBwYXJzZUZlYXR1cmUoZmVhdHVyZSwgb3B0aW9ucy5leHBlcmlt
ZW50YWxGZWF0dXJlcyk7CisgICAgcmV0dXJuIHBhcnNlRmVhdHVyZShmZWF0dXJlLCBvcHRpb25z
LmZlYXR1cmVzKTsKIH0KIAogc3RhdGljIGJvb2wgaGFuZGxlT3B0aW9uSW50ZXJuYWxGZWF0dXJl
KE9wdGlvbnMmIG9wdGlvbnMsIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKiBmZWF0dXJlKQogewot
ICAgIHJldHVybiBwYXJzZUZlYXR1cmUoZmVhdHVyZSwgb3B0aW9ucy5pbnRlcm5hbEZlYXR1cmVz
KTsKKyAgICByZXR1cm4gcGFyc2VGZWF0dXJlKGZlYXR1cmUsIG9wdGlvbnMuZmVhdHVyZXMpOwog
fQogCiBzdGF0aWMgYm9vbCBoYW5kbGVPcHRpb25Vbm1hdGNoZWQoT3B0aW9ucyYgb3B0aW9ucywg
Y29uc3QgY2hhciogb3B0aW9uLCBjb25zdCBjaGFyKikKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvT3B0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvT3B0
aW9ucy5oCShyZXZpc2lvbiAyNjkzNjApCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL09wdGlv
bnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAor
I2luY2x1ZGUgIlRlc3RGZWF0dXJlcy5oIgogI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVk
ZSA8c2V0PgogI2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC00NiwxMCArNDcsNiBAQCBzdHJ1Y3QgT3B0
aW9ucyB7CiAgICAgYm9vbCBnY0JldHdlZW5UZXN0cyB7IGZhbHNlIH07CiAgICAgYm9vbCBzaG91
bGREdW1wUGl4ZWxzRm9yQWxsVGVzdHMgeyBmYWxzZSB9OwogICAgIGJvb2wgZm9yY2VDb21wbGV4
VGV4dCB7IGZhbHNlIH07Ci0gICAgYm9vbCBzaG91bGRVc2VBY2NlbGVyYXRlZERyYXdpbmcgeyBm
YWxzZSB9OwotICAgIGJvb2wgc2hvdWxkVXNlUmVtb3RlTGF5ZXJUcmVlIHsgZmFsc2UgfTsKLSAg
ICBib29sIHNob3VsZFNob3dXZWJWaWV3IHsgZmFsc2UgfTsKLSAgICBib29sIHNob3VsZFNob3dU
b3VjaGVzIHsgZmFsc2UgfTsKICAgICBib29sIGNoZWNrRm9yV29ybGRMZWFrcyB7IGZhbHNlIH07
CiAgICAgYm9vbCBhbGxvd0FueUhUVFBTQ2VydGlmaWNhdGVGb3JBbGxvd2VkSG9zdHMgeyBmYWxz
ZSB9OwogI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCkBAIC01Nyw4ICs1
NCw3IEBAIHN0cnVjdCBPcHRpb25zIHsKICNlbmRpZgogICAgIHN0ZDo6dmVjdG9yPHN0ZDo6c3Ry
aW5nPiBwYXRoczsKICAgICBzdGQ6OnNldDxzdGQ6OnN0cmluZz4gYWxsb3dlZEhvc3RzOwotICAg
IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgYm9vbD4gaW50ZXJuYWxGZWF0dXJlczsK
LSAgICBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIGJvb2w+IGV4cGVyaW1lbnRhbEZl
YXR1cmVzOworICAgIFRlc3RGZWF0dXJlcyBmZWF0dXJlczsKIH07CiAKIGNsYXNzIE9wdGlvbiB7
CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAkocmV2aXNp
b24gMjY5MzYwKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ2OCwxNCArNDY4LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6
aW5pdGlhbGl6ZShpbnQgYXJnYwogICAgIG1fYWxsb3dlZEhvc3RzID0gb3B0aW9ucy5hbGxvd2Vk
SG9zdHM7CiAgICAgbV9jaGVja0ZvcldvcmxkTGVha3MgPSBvcHRpb25zLmNoZWNrRm9yV29ybGRM
ZWFrczsKICAgICBtX2FsbG93QW55SFRUUFNDZXJ0aWZpY2F0ZUZvckFsbG93ZWRIb3N0cyA9IG9w
dGlvbnMuYWxsb3dBbnlIVFRQU0NlcnRpZmljYXRlRm9yQWxsb3dlZEhvc3RzOwotCi0gICAgbV9n
bG9iYWxGZWF0dXJlcyA9IFRlc3RPcHRpb25zOjpkZWZhdWx0cygpOwotICAgIG1fZ2xvYmFsRmVh
dHVyZXMuaW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzID0gb3B0aW9ucy5pbnRlcm5hbEZlYXR1cmVzOwot
ICAgIG1fZ2xvYmFsRmVhdHVyZXMuZXhwZXJpbWVudGFsRmVhdHVyZXMgPSBvcHRpb25zLmV4cGVy
aW1lbnRhbEZlYXR1cmVzOwotICAgIG1fZ2xvYmFsRmVhdHVyZXMuYm9vbFdlYlByZWZlcmVuY2VG
ZWF0dXJlcy5pbnNlcnRfb3JfYXNzaWduKCJBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkIiwgb3B0
aW9ucy5zaG91bGRVc2VBY2NlbGVyYXRlZERyYXdpbmcpOwotICAgIG1fZ2xvYmFsRmVhdHVyZXMu
Ym9vbFRlc3RSdW5uZXJGZWF0dXJlcy5pbnNlcnRfb3JfYXNzaWduKCJ1c2VSZW1vdGVMYXllclRy
ZWUiLCBvcHRpb25zLnNob3VsZFVzZVJlbW90ZUxheWVyVHJlZSk7Ci0gICAgbV9nbG9iYWxGZWF0
dXJlcy5ib29sVGVzdFJ1bm5lckZlYXR1cmVzLmluc2VydF9vcl9hc3NpZ24oInNob3VsZFNob3dX
ZWJWaWV3Iiwgb3B0aW9ucy5zaG91bGRTaG93V2ViVmlldyk7Ci0gICAgbV9nbG9iYWxGZWF0dXJl
cy5ib29sVGVzdFJ1bm5lckZlYXR1cmVzLmluc2VydF9vcl9hc3NpZ24oInNob3VsZFNob3dUb3Vj
aGVzIiwgb3B0aW9ucy5zaG91bGRTaG93VG91Y2hlcyk7CisgICAgbV9nbG9iYWxGZWF0dXJlcyA9
IHN0ZDo6bW92ZShvcHRpb25zLmZlYXR1cmVzKTsKIAogI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZ
X0lTT0xBVEVEX1RSRUUpCiAgICAgbV9hY2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlTW9kZSA9IG9w
dGlvbnMuYWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1vZGU7CkBAIC04MzYsMjMgKzgyOSw2IEBA
IHZvaWQgVGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0MKICAgICBXS1ByZWZlcmVu
Y2VzUmVzZXRUZXN0UnVubmVyT3ZlcnJpZGVzKHByZWZlcmVuY2VzKTsKIAogICAgIFdLUHJlZmVy
ZW5jZXNFbmFibGVBbGxFeHBlcmltZW50YWxGZWF0dXJlcyhwcmVmZXJlbmNlcyk7Ci0gICAgZm9y
IChjb25zdCBhdXRvJiBba2V5LCB2YWx1ZV0gOiBvcHRpb25zLmV4cGVyaW1lbnRhbEZlYXR1cmVz
KCkpCi0gICAgICAgIFdLUHJlZmVyZW5jZXNTZXRFeHBlcmltZW50YWxGZWF0dXJlRm9yS2V5KHBy
ZWZlcmVuY2VzLCB2YWx1ZSwgdG9XSyhrZXkpLmdldCgpKTsKLQotICAgIFdLUHJlZmVyZW5jZXNS
ZXNldEFsbEludGVybmFsRGVidWdGZWF0dXJlcyhwcmVmZXJlbmNlcyk7Ci0KLSAgICAvLyBTZXQg
aW50ZXJuYWwgZmVhdHVyZXMgdGhhdCBoYXZlIGRpZmZlcmVudCBkZWZhdWx0IHZhbHVlcyBmb3Ig
dGVzdGluZy4KLSAgICBXS1ByZWZlcmVuY2VzU2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVGb3JLZXko
cHJlZmVyZW5jZXMsIGZhbHNlLCB0b1dLKCJBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCIp
LmdldCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVGb3JLZXko
cHJlZmVyZW5jZXMsIGZhbHNlLCB0b1dLKCJBc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZCIpLmdl
dCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVGb3JLZXkocHJl
ZmVyZW5jZXMsIHRydWUsIHRvV0soIklucHV0VHlwZURhdGVFbmFibGVkIikuZ2V0KCkpOwotICAg
IFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZvcktleShwcmVmZXJlbmNlcywg
dHJ1ZSwgdG9XSygiSW5wdXRUeXBlRGF0ZVRpbWVMb2NhbEVuYWJsZWQiKS5nZXQoKSk7Ci0gICAg
V0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0dXJlRm9yS2V5KHByZWZlcmVuY2VzLCB0
cnVlLCB0b1dLKCJJbnB1dFR5cGVNb250aEVuYWJsZWQiKS5nZXQoKSk7Ci0gICAgV0tQcmVmZXJl
bmNlc1NldEludGVybmFsRGVidWdGZWF0dXJlRm9yS2V5KHByZWZlcmVuY2VzLCB0cnVlLCB0b1dL
KCJJbnB1dFR5cGVUaW1lRW5hYmxlZCIpLmdldCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0SW50
ZXJuYWxEZWJ1Z0ZlYXR1cmVGb3JLZXkocHJlZmVyZW5jZXMsIHRydWUsIHRvV0soIklucHV0VHlw
ZVdlZWtFbmFibGVkIikuZ2V0KCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVn
RmVhdHVyZUZvcktleShwcmVmZXJlbmNlcywgZmFsc2UsIHRvV0soIlNwZWFrZXJTZWxlY3Rpb25S
ZXF1aXJlc1VzZXJHZXN0dXJlIikuZ2V0KCkpOwotCi0gICAgZm9yIChjb25zdCBhdXRvJiBba2V5
LCB2YWx1ZV0gIDogb3B0aW9ucy5pbnRlcm5hbERlYnVnRmVhdHVyZXMoKSkKLSAgICAgICAgV0tQ
cmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0dXJlRm9yS2V5KHByZWZlcmVuY2VzLCB2YWx1
ZSwgdG9XSyhrZXkpLmdldCgpKTsKIAogICAgIC8vIEZJWE1FOiBDb252ZXJ0IHRoZXNlIHRvIGRl
ZmF1bHQgdmFsdWVzIGZvciBUZXN0T3B0aW9ucy4KICAgICBXS1ByZWZlcmVuY2VzU2V0UHJvY2Vz
c1N3YXBPbk5hdmlnYXRpb25FbmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLnNob3VsZEVuYWJs
ZVByb2Nlc3NTd2FwT25OYXZpZ2F0aW9uKCkpOwpAQCAtMTI3OSw3ICsxMjU1LDggQEAgV0tVUkxS
ZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVRlc3RVUkwoYwogCiBUZXN0T3B0aW9ucyBUZXN0Q29u
dHJvbGxlcjo6dGVzdE9wdGlvbnNGb3JUZXN0KGNvbnN0IFRlc3RDb21tYW5kJiBjb21tYW5kKSBj
b25zdAogewotICAgIFRlc3RGZWF0dXJlcyBmZWF0dXJlcyA9IG1fZ2xvYmFsRmVhdHVyZXM7Cisg
ICAgVGVzdEZlYXR1cmVzIGZlYXR1cmVzID0gVGVzdE9wdGlvbnM6OmRlZmF1bHRzKCk7CisgICAg
bWVyZ2UoZmVhdHVyZXMsIG1fZ2xvYmFsRmVhdHVyZXMpOwogICAgIG1lcmdlKGZlYXR1cmVzLCBo
YXJkY29kZWRGZWF0dXJlc0Jhc2VkT25QYXRoRm9yVGVzdChjb21tYW5kKSk7CiAgICAgbWVyZ2Uo
ZmVhdHVyZXMsIHBsYXRmb3JtU3BlY2lmaWNGZWF0dXJlRGVmYXVsdHNGb3JUZXN0KGNvbW1hbmQp
KTsKICAgICBtZXJnZShmZWF0dXJlcywgZmVhdHVyZURlZmF1bHRzRnJvbVRlc3RIZWFkZXJGb3JU
ZXN0KGNvbW1hbmQsIFRlc3RPcHRpb25zOjprZXlUeXBlTWFwcGluZygpKSk7CkluZGV4OiBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcAkocmV2aXNpb24gMjY5MzYwKQorKysgVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQx
LDYgKzQxLDggQEAgY29uc3QgVGVzdEZlYXR1cmVzJiBUZXN0T3B0aW9uczo6ZGVmYXVsdAogICAg
ICAgICAgICAgeyAiQWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzIiwgdHJ1ZSB9LAogICAgICAg
ICAgICAgeyAiQWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyIsIHRydWUgfSwKICAgICAgICAg
ICAgIHsgIkFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzIiwgdHJ1ZSB9LAorICAgICAg
ICAgICAgeyAiQXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQiLCBmYWxzZSB9LAorICAgICAgICAg
ICAgeyAiQXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQiLCBmYWxzZSB9LAogICAgICAgICAg
ICAgeyAiQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCIsIGZhbHNlIH0sCiAgICAgICAg
ICAgICB7ICJDYXB0dXJlQXVkaW9JblVJUHJvY2Vzc0VuYWJsZWQiLCBmYWxzZSB9LAogICAgICAg
ICAgICAgeyAiQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5hYmxlZCIsIGZhbHNlIH0sCkBAIC00
OCw2ICs1MCwxMSBAQCBjb25zdCBUZXN0RmVhdHVyZXMmIFRlc3RPcHRpb25zOjpkZWZhdWx0CiAg
ICAgICAgICAgICB7ICJET01QYXN0ZUFsbG93ZWQiLCB0cnVlIH0sCiAgICAgICAgICAgICB7ICJG
cmFtZUZsYXR0ZW5pbmdFbmFibGVkIiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgIkdlbmVyaWND
dWVBUElFbmFibGVkIiwgZmFsc2UgfSwKKyAgICAgICAgICAgIHsgIklucHV0VHlwZURhdGVFbmFi
bGVkIiwgdHJ1ZSB9LAorICAgICAgICAgICAgeyAiSW5wdXRUeXBlRGF0ZVRpbWVMb2NhbEVuYWJs
ZWQiLCB0cnVlIH0sCisgICAgICAgICAgICB7ICJJbnB1dFR5cGVNb250aEVuYWJsZWQiLCB0cnVl
IH0sCisgICAgICAgICAgICB7ICJJbnB1dFR5cGVUaW1lRW5hYmxlZCIsIHRydWUgfSwKKyAgICAg
ICAgICAgIHsgIklucHV0VHlwZVdlZWtFbmFibGVkIiwgdHJ1ZSB9LAogICAgICAgICAgICAgeyAi
SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCIsIHRydWUgfSwKICAgICAgICAgICAgIHsgIkph
dmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkiLCB0cnVlIH0sCiAgICAgICAgICAg
ICB7ICJNb2NrU2Nyb2xsYmFyc0VuYWJsZWQiLCB0cnVlIH0sCkBAIC01Nyw2ICs2NCw3IEBAIGNv
bnN0IFRlc3RGZWF0dXJlcyYgVGVzdE9wdGlvbnM6OmRlZmF1bHQKICAgICAgICAgICAgIHsgIk9m
ZnNjcmVlbkNhbnZhc0VuYWJsZWQiLCB0cnVlIH0sCiAgICAgICAgICAgICB7ICJQYWdlVmlzaWJp
bGl0eUJhc2VkUHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCIsIGZhbHNlIH0sCiAgICAgICAgICAg
ICB7ICJQbHVnaW5zRW5hYmxlZCIsIHRydWUgfSwKKyAgICAgICAgICAgIHsgIlNwZWFrZXJTZWxl
Y3Rpb25SZXF1aXJlc1VzZXJHZXN0dXJlIiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgIlVzZXNC
YWNrRm9yd2FyZENhY2hlIiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgIldlYkF1dGhlbnRpY2F0
aW9uRW5hYmxlZCIsIHRydWUgfSwKICAgICAgICAgICAgIHsgIlhTU0F1ZGl0b3JFbmFibGVkIiwg
ZmFsc2UgfSwKQEAgLTE1MSwyOSArMTU5LDkgQEAgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0
ZDo6c3RyaW5nLCBUZQogICAgIHJldHVybiBtYXA7CiB9CiAKLWJvb2wgVGVzdE9wdGlvbnM6Omhh
c1NhbWVJbml0aWFsaXphdGlvbk9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpIGNv
bnN0Citib29sIFRlc3RPcHRpb25zOjpoYXNTYW1lSW5pdGlhbGl6YXRpb25PcHRpb25zKGNvbnN0
IFRlc3RPcHRpb25zJiBvdGhlcikgY29uc3QKIHsKLSAgICBpZiAobV9mZWF0dXJlcy5leHBlcmlt
ZW50YWxGZWF0dXJlcyAhPSBvcHRpb25zLm1fZmVhdHVyZXMuZXhwZXJpbWVudGFsRmVhdHVyZXMp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAobV9mZWF0dXJlcy5pbnRlcm5hbERlYnVn
RmVhdHVyZXMgIT0gb3B0aW9ucy5tX2ZlYXR1cmVzLmludGVybmFsRGVidWdGZWF0dXJlcykKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChtX2ZlYXR1cmVzLmJvb2xXZWJQcmVmZXJlbmNl
RmVhdHVyZXMgIT0gb3B0aW9ucy5tX2ZlYXR1cmVzLmJvb2xXZWJQcmVmZXJlbmNlRmVhdHVyZXMp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAobV9mZWF0dXJlcy5kb3VibGVXZWJQcmVm
ZXJlbmNlRmVhdHVyZXMgIT0gb3B0aW9ucy5tX2ZlYXR1cmVzLmRvdWJsZVdlYlByZWZlcmVuY2VG
ZWF0dXJlcykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChtX2ZlYXR1cmVzLnVpbnQz
MldlYlByZWZlcmVuY2VGZWF0dXJlcyAhPSBvcHRpb25zLm1fZmVhdHVyZXMudWludDMyV2ViUHJl
ZmVyZW5jZUZlYXR1cmVzKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKG1fZmVhdHVy
ZXMuc3RyaW5nV2ViUHJlZmVyZW5jZUZlYXR1cmVzICE9IG9wdGlvbnMubV9mZWF0dXJlcy5zdHJp
bmdXZWJQcmVmZXJlbmNlRmVhdHVyZXMpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAo
bV9mZWF0dXJlcy5ib29sVGVzdFJ1bm5lckZlYXR1cmVzICE9IG9wdGlvbnMubV9mZWF0dXJlcy5i
b29sVGVzdFJ1bm5lckZlYXR1cmVzKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKG1f
ZmVhdHVyZXMuZG91YmxlVGVzdFJ1bm5lckZlYXR1cmVzICE9IG9wdGlvbnMubV9mZWF0dXJlcy5k
b3VibGVUZXN0UnVubmVyRmVhdHVyZXMpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAo
bV9mZWF0dXJlcy5zdHJpbmdUZXN0UnVubmVyRmVhdHVyZXMgIT0gb3B0aW9ucy5tX2ZlYXR1cmVz
LnN0cmluZ1Rlc3RSdW5uZXJGZWF0dXJlcykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlm
IChtX2ZlYXR1cmVzLnN0cmluZ1ZlY3RvclRlc3RSdW5uZXJGZWF0dXJlcyAhPSBvcHRpb25zLm1f
ZmVhdHVyZXMuc3RyaW5nVmVjdG9yVGVzdFJ1bm5lckZlYXR1cmVzKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIG1fZmVhdHVyZXMgPT0gb3RoZXIu
bV9mZWF0dXJlczsKIH0KIAogYm9vbCBUZXN0T3B0aW9uczo6Ym9vbFdlYlByZWZlcmVuY2VGZWF0
dXJlVmFsdWUoc3RkOjpzdHJpbmcga2V5LCBib29sIGRlZmF1bHRWYWx1ZSkgY29uc3QKSW5kZXg6
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgJKHJldmlzaW9uIDI2OTM2MCkKKysrIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtODYs
OSArODYsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBlbmFibGVQcm9jZXNzU3dhcE9uTmF2
aWdhdGlvbigpIHx8IGVuYWJsZVByb2Nlc3NTd2FwT25XaW5kb3dPcGVuKCk7CiAgICAgfQogCi0g
ICAgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBib29sPiYgZXhwZXJpbWVu
dGFsRmVhdHVyZXMoKSBjb25zdCB7IHJldHVybiBtX2ZlYXR1cmVzLmV4cGVyaW1lbnRhbEZlYXR1
cmVzOyB9Ci0gICAgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBib29sPiYg
aW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzKCkgY29uc3QgeyByZXR1cm4gbV9mZWF0dXJlcy5pbnRlcm5h
bERlYnVnRmVhdHVyZXM7IH0KLQogICAgIGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0
cmluZywgYm9vbD4mIGJvb2xXZWJQcmVmZXJlbmNlRmVhdHVyZXMoKSBjb25zdCB7IHJldHVybiBt
X2ZlYXR1cmVzLmJvb2xXZWJQcmVmZXJlbmNlRmVhdHVyZXM7IH0KICAgICBjb25zdCBzdGQ6OnVu
b3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIGRvdWJsZT4mIGRvdWJsZVdlYlByZWZlcmVuY2VGZWF0
dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fZmVhdHVyZXMuZG91YmxlV2ViUHJlZmVyZW5jZUZlYXR1
cmVzOyB9CiAgICAgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCB1aW50MzJf
dD4mIHVpbnQzMldlYlByZWZlcmVuY2VGZWF0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fZmVhdHVy
ZXMudWludDMyV2ViUHJlZmVyZW5jZUZlYXR1cmVzOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413173</attachid>
            <date>2020-11-04 09:46:32 -0800</date>
            <delta_ts>2020-11-04 10:51:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218569-20201104094631.patch</filename>
            <type>text/plain</type>
            <size>25327</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2OTM2MikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDY3IEBACisyMDIwLTExLTA0ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgZXhwZXJpbWVudGFsOiBhbmQgaW50ZXJuYWw6IHBy
ZWZpeGVzIGZyb20gV2ViS2l0VGVzdFJ1bm5lciBhbmQgRHVtcFJlbmRlclRyZWUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODU2OQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwcmVmaXhlcyB3ZXJl
IHJlbW92ZWQgZnJvbSB1c2UgaW4gdGVzdHMgaW4gcjI2OTM2MC4KKworICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6Ondl
YlZpZXdJc0NvbXBhdGlibGVXaXRoT3B0aW9ucyBjb25zdCk6CisgICAgICAgIFJlcGxhY2UgZHVw
bGljYXRlZCBjb21wYXJpc29uIGNvZGUgd2l0aCBjYWxsIHRvIG9wZXJhdG9yPT0uCisKKyAgICAg
ICAgKiBUZXN0UnVubmVyU2hhcmVkL1Rlc3RGZWF0dXJlcy5jcHA6CisgICAgICAgIChXVFI6Om1l
cmdlKToKKyAgICAgICAgUmVtb3ZlIHNwZWNpYWwgbWFwcyBmb3IgaW50ZXJuYWwgYW5kIGV4cGVy
aW1lbnRhbCBmZWF0dXJlcy4KKworICAgICAgICAoV1RSOjpvcGVyYXRvcj09KToKKyAgICAgICAg
KFdUUjo6b3BlcmF0b3IhPSk6CisgICAgICAgIEFkZCBvcGVyYXRvcj09IHN1cHBvcnQgZm9yIHVz
ZSBieSBUZXN0T3B0aW9ucyBpbiBkZXRlcm1pbmluZyBjb21wYXRpYmlsaXR5LgorCisgICAgICAg
IChXVFI6OnBhcnNlVGVzdEhlYWRlckZlYXR1cmUpOgorICAgICAgICAoV1RSOjpwYXJzZVRlc3RI
ZWFkZXIpOgorICAgICAgICBTcGxpdCBvdXQgZmVhdHVyZSBwYXJzaW5nIGZvciBmdXR1cmUgdXNl
IGluIGNvbW1hbmQgbGluZSBwYXJzaW5nLgorCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9U
ZXN0RmVhdHVyZXMuaDoKKyAgICAgICAgUmVtb3ZlIHNwZWNpYWwgbWFwcyBmb3IgaW50ZXJuYWwg
YW5kIGV4cGVyaW1lbnRhbCBmZWF0dXJlcy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
T3B0aW9ucy5jcHA6CisgICAgICAgIChXVFI6OmhhbmRsZU9wdGlvbkFjY2VsZXJhdGVkRHJhd2lu
Zyk6CisgICAgICAgIChXVFI6OmhhbmRsZU9wdGlvblJlbW90ZUxheWVyVHJlZSk6CisgICAgICAg
IChXVFI6OmhhbmRsZU9wdGlvblNob3dXZWJWaWV3KToKKyAgICAgICAgKFdUUjo6aGFuZGxlT3B0
aW9uU2hvd1RvdWNoZXMpOgorICAgICAgICAoV1RSOjpwYXJzZUZlYXR1cmUpOgorICAgICAgICAo
V1RSOjpoYW5kbGVPcHRpb25FeHBlcmltZW50YWxGZWF0dXJlKToKKyAgICAgICAgKFdUUjo6aGFu
ZGxlT3B0aW9uSW50ZXJuYWxGZWF0dXJlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL09w
dGlvbnMuaDoKKyAgICAgICAgUmF0aGVyIHRoYW4gcGFyc2luZyBpbnRvIGJvb2xzIC8gZXh0cmEg
bWFwcywgcGFyc2UgdGhlIGNvbW1hbmQgbGluZSBvcHRpb25zCisgICAgICAgIGRpcmVjdGx5IGlu
dG8gYSBUZXN0RmVhdHVyZXMuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUpOgor
ICAgICAgICBJbml0aWFsaXplIGdsb2JhbCBmZWF0dXJlcyBmcm9tIHRoZSBuZXcgT3B0aW9ucycg
VGVzdEZlYXR1cmVzLiAKKworICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVm
ZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgIFJlbW92ZSBzcGVjaWFsIGNhc2lu
ZyBmb3IgZXhwZXJpbWVudGFsIGFuZCBpbnRlcm5hbCBmZWF0dXJlcywgdGhleSBhcmUgbm93IGp1
c3QKKyAgICAgICAgZ2VuZXJpYyBib29sIFdlYlByZWZlcmVuY2VzLiBNb3ZlIHNwZWNpYWwgY2Fz
ZXMgZm9yIGludGVybmFsIGZlYXR1cmVzIGludG8gVGVzdE9wdGlvbnMuCisKKyAgICAgICAgKFdU
Ujo6VGVzdENvbnRyb2xsZXI6OnRlc3RPcHRpb25zRm9yVGVzdCBjb25zdCk6CisgICAgICAgIE5v
dyB0aGF0IGdsb2JhbCBmZWF0dXJlcyBpcyBub3Qgc2VlZGVkIHdpdGggdGhlIGRlZmF1bHQgZmVh
dHVyZXMsIGNvbnN0cnVjdCB0aGUKKyAgICAgICAgZnVsbCBtZXJnZSBjaGFpbiBzdGFydGluZyB3
aXRoIHRoZSBkZWZhdWx0IGZlYXR1cmVzIGluc3RlYWQuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1Rlc3RPcHRpb25zLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmRlZmF1
bHRzKToKKyAgICAgICAgQWRkIHNvbWUgYWRkaXRpb25hbCBkZWZhdWx0cyBtb3ZlZCBmcm9tIFRl
c3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzLgorCisgICAg
ICAgIChXVFI6OlRlc3RPcHRpb25zOjpoYXNTYW1lSW5pdGlhbGl6YXRpb25PcHRpb25zIGNvbnN0
KToKKyAgICAgICAgVXNlIG9wZXJhdG9yPT0gdG8gcmVkdWNlIGR1cGxpY2F0ZWQgY29kZS4KKwor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaDoKKyAgICAgICAgKFdUUjo6
VGVzdE9wdGlvbnM6OmV4cGVyaW1lbnRhbEZlYXR1cmVzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdUUjo6VGVzdE9wdGlvbnM6OmludGVybmFsRGVidWdGZWF0dXJlcyBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIFJlbW92ZSBub3cgdW51c2VkIGV4dHJhIG1hcHMgZm9yIGV4dGVybmFsIGFu
ZCBpbnRlcm5hbCBmZWF0dXJlcy4KKwogMjAyMC0xMS0wMyAgU2lodWkgTGl1ICA8c2lodWlfbGl1
QGFwcGxlLmNvbT4KIAogICAgICAgICBTZXQgdXAgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIFNw
ZWVjaFJlY29nbml0aW9uCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCShy
ZXZpc2lvbiAyNjkzNjApCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEzMCwyOSArMTMwLDkgQEAgY29uc3Qgc3RkOjp1bm9yZGVyZWRf
bWFwPHN0ZDo6c3RyaW5nLCBUZQogICAgIHJldHVybiBtYXA7CiB9CiAKLWJvb2wgVGVzdE9wdGlv
bnM6OndlYlZpZXdJc0NvbXBhdGlibGVXaXRoT3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0
aW9ucykgY29uc3QKK2Jvb2wgVGVzdE9wdGlvbnM6OndlYlZpZXdJc0NvbXBhdGlibGVXaXRoT3B0
aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3RoZXIpIGNvbnN0CiB7Ci0gICAgaWYgKG1fZmVhdHVy
ZXMuZXhwZXJpbWVudGFsRmVhdHVyZXMgIT0gb3B0aW9ucy5tX2ZlYXR1cmVzLmV4cGVyaW1lbnRh
bEZlYXR1cmVzKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKG1fZmVhdHVyZXMuaW50
ZXJuYWxEZWJ1Z0ZlYXR1cmVzICE9IG9wdGlvbnMubV9mZWF0dXJlcy5pbnRlcm5hbERlYnVnRmVh
dHVyZXMpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAobV9mZWF0dXJlcy5ib29sV2Vi
UHJlZmVyZW5jZUZlYXR1cmVzICE9IG9wdGlvbnMubV9mZWF0dXJlcy5ib29sV2ViUHJlZmVyZW5j
ZUZlYXR1cmVzKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKG1fZmVhdHVyZXMuZG91
YmxlV2ViUHJlZmVyZW5jZUZlYXR1cmVzICE9IG9wdGlvbnMubV9mZWF0dXJlcy5kb3VibGVXZWJQ
cmVmZXJlbmNlRmVhdHVyZXMpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAobV9mZWF0
dXJlcy51aW50MzJXZWJQcmVmZXJlbmNlRmVhdHVyZXMgIT0gb3B0aW9ucy5tX2ZlYXR1cmVzLnVp
bnQzMldlYlByZWZlcmVuY2VGZWF0dXJlcykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlm
IChtX2ZlYXR1cmVzLnN0cmluZ1dlYlByZWZlcmVuY2VGZWF0dXJlcyAhPSBvcHRpb25zLm1fZmVh
dHVyZXMuc3RyaW5nV2ViUHJlZmVyZW5jZUZlYXR1cmVzKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgaWYgKG1fZmVhdHVyZXMuYm9vbFRlc3RSdW5uZXJGZWF0dXJlcyAhPSBvcHRpb25zLm1f
ZmVhdHVyZXMuYm9vbFRlc3RSdW5uZXJGZWF0dXJlcykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIGlmIChtX2ZlYXR1cmVzLmRvdWJsZVRlc3RSdW5uZXJGZWF0dXJlcyAhPSBvcHRpb25zLm1f
ZmVhdHVyZXMuZG91YmxlVGVzdFJ1bm5lckZlYXR1cmVzKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgaWYgKG1fZmVhdHVyZXMuc3RyaW5nVGVzdFJ1bm5lckZlYXR1cmVzICE9IG9wdGlvbnMu
bV9mZWF0dXJlcy5zdHJpbmdUZXN0UnVubmVyRmVhdHVyZXMpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICBpZiAobV9mZWF0dXJlcy5zdHJpbmdWZWN0b3JUZXN0UnVubmVyRmVhdHVyZXMgIT0g
b3B0aW9ucy5tX2ZlYXR1cmVzLnN0cmluZ1ZlY3RvclRlc3RSdW5uZXJGZWF0dXJlcykKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBtX2ZlYXR1cmVz
ID09IG90aGVyLm1fZmVhdHVyZXM7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFQgZmVhdHVy
ZVZhbHVlKHN0ZDo6c3RyaW5nIGtleSwgVCBkZWZhdWx0VmFsdWUsIGNvbnN0IHN0ZDo6dW5vcmRl
cmVkX21hcDxzdGQ6OnN0cmluZywgVD4mIG1hcCkKSW5kZXg6IFRvb2xzL1Rlc3RSdW5uZXJTaGFy
ZWQvVGVzdEZlYXR1cmVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0UnVubmVyU2hhcmVk
L1Rlc3RGZWF0dXJlcy5jcHAJKHJldmlzaW9uIDI2OTM2MCkKKysrIFRvb2xzL1Rlc3RSdW5uZXJT
aGFyZWQvVGVzdEZlYXR1cmVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsOCArNDIsNiBAQCB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIG1lcmdlKHN0ZDo6dW5vCiB2b2lkIG1lcmdlKFRlc3RG
ZWF0dXJlcyYgYmFzZSwgVGVzdEZlYXR1cmVzIGFkZGl0aW9uYWwpCiB7CiAgICAgLy8gRklYTUU6
IFRoaXMgc2hvdWxkIHVzZSBzdGQ6OnVub3JkZXJlZF9tYXA6Om1lcmdlIHdoZW4gaXQgaXMgYXZh
aWxhYmxlIGZvciBhbGwgcG9ydHMuCi0gICAgbWVyZ2UoYmFzZS5leHBlcmltZW50YWxGZWF0dXJl
cywgYWRkaXRpb25hbC5leHBlcmltZW50YWxGZWF0dXJlcyk7Ci0gICAgbWVyZ2UoYmFzZS5pbnRl
cm5hbERlYnVnRmVhdHVyZXMsIGFkZGl0aW9uYWwuaW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzKTsKICAg
ICBtZXJnZShiYXNlLmJvb2xXZWJQcmVmZXJlbmNlRmVhdHVyZXMsIGFkZGl0aW9uYWwuYm9vbFdl
YlByZWZlcmVuY2VGZWF0dXJlcyk7CiAgICAgbWVyZ2UoYmFzZS5kb3VibGVXZWJQcmVmZXJlbmNl
RmVhdHVyZXMsIGFkZGl0aW9uYWwuZG91YmxlV2ViUHJlZmVyZW5jZUZlYXR1cmVzKTsKICAgICBt
ZXJnZShiYXNlLnVpbnQzMldlYlByZWZlcmVuY2VGZWF0dXJlcywgYWRkaXRpb25hbC51aW50MzJX
ZWJQcmVmZXJlbmNlRmVhdHVyZXMpOwpAQCAtNTQsNiArNTIsMzIgQEAgdm9pZCBtZXJnZShUZXN0
RmVhdHVyZXMmIGJhc2UsIFRlc3RGZWF0dQogICAgIG1lcmdlKGJhc2Uuc3RyaW5nVmVjdG9yVGVz
dFJ1bm5lckZlYXR1cmVzLCBhZGRpdGlvbmFsLnN0cmluZ1ZlY3RvclRlc3RSdW5uZXJGZWF0dXJl
cyk7CiB9CiAKK2Jvb2wgb3BlcmF0b3I9PShjb25zdCBUZXN0RmVhdHVyZXMmIGEsIGNvbnN0IFRl
c3RGZWF0dXJlcyYgYikKK3sKKyAgICBpZiAoYS5ib29sV2ViUHJlZmVyZW5jZUZlYXR1cmVzICE9
IGIuYm9vbFdlYlByZWZlcmVuY2VGZWF0dXJlcykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGlmIChhLmRvdWJsZVdlYlByZWZlcmVuY2VGZWF0dXJlcyAhPSBiLmRvdWJsZVdlYlByZWZlcmVu
Y2VGZWF0dXJlcykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChhLnVpbnQzMldlYlBy
ZWZlcmVuY2VGZWF0dXJlcyAhPSBiLnVpbnQzMldlYlByZWZlcmVuY2VGZWF0dXJlcykKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChhLnN0cmluZ1dlYlByZWZlcmVuY2VGZWF0dXJlcyAh
PSBiLnN0cmluZ1dlYlByZWZlcmVuY2VGZWF0dXJlcykKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmIChhLmJvb2xUZXN0UnVubmVyRmVhdHVyZXMgIT0gYi5ib29sVGVzdFJ1bm5lckZlYXR1
cmVzKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGEuZG91YmxlVGVzdFJ1bm5lckZl
YXR1cmVzICE9IGIuZG91YmxlVGVzdFJ1bm5lckZlYXR1cmVzKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgaWYgKGEuc3RyaW5nVGVzdFJ1bm5lckZlYXR1cmVzICE9IGIuc3RyaW5nVGVzdFJ1
bm5lckZlYXR1cmVzKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGEuc3RyaW5nVmVj
dG9yVGVzdFJ1bm5lckZlYXR1cmVzICE9IGIuc3RyaW5nVmVjdG9yVGVzdFJ1bm5lckZlYXR1cmVz
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgb3Bl
cmF0b3IhPShjb25zdCBUZXN0RmVhdHVyZXMmIGEsIGNvbnN0IFRlc3RGZWF0dXJlcyYgYikKK3sK
KyAgICByZXR1cm4gIShhID09IGIpOworfQorCiBzdGF0aWMgYm9vbCBwYXRoQ29udGFpbnMoY29u
c3Qgc3RkOjpzdHJpbmcmIHBhdGhPclVSTCwgY29uc3QgY2hhciogc3Vic3RyaW5nKQogewogICAg
IHJldHVybiBwYXRoT3JVUkwuZmluZChzdWJzdHJpbmcpICE9IHN0ZDo6c3RyaW5nOjpucG9zOwpA
QCAtMTcwLDcgKzE5NCw3IEBAIHN0YXRpYyBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gcGFyc2VT
dHIKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgVGVzdEZlYXR1cmVzIHBhcnNlVGVz
dEhlYWRlcihzdGQ6OmZpbGVzeXN0ZW06OnBhdGggcGF0aCwgY29uc3Qgc3RkOjp1bm9yZGVyZWRf
bWFwPHN0ZDo6c3RyaW5nLCBUZXN0SGVhZGVyS2V5VHlwZT4mIGtleVR5cGVNYXApCitib29sIHBh
cnNlVGVzdEhlYWRlckZlYXR1cmUoVGVzdEZlYXR1cmVzJiBmZWF0dXJlcywgc3RkOjpzdHJpbmcg
a2V5LCBzdGQ6OnN0cmluZyB2YWx1ZSwgc3RkOjpmaWxlc3lzdGVtOjpwYXRoIHBhdGgsIGNvbnN0
IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgVGVzdEhlYWRlcktleVR5cGU+JiBrZXlU
eXBlTWFwKQogewogICAgIGF1dG8ga2V5VHlwZSA9IFsma2V5VHlwZU1hcF0oYXV0byYga2V5KSB7
CiAgICAgICAgIGF1dG8gaXQgPSBrZXlUeXBlTWFwLmZpbmQoa2V5KTsKQEAgLTE3OSw2ICsyMDMs
NDYgQEAgc3RhdGljIFRlc3RGZWF0dXJlcyBwYXJzZVRlc3RIZWFkZXIoc3RkOgogICAgICAgICBy
ZXR1cm4gaXQtPnNlY29uZDsKICAgICB9OwogCisgICAgc3dpdGNoIChrZXlUeXBlKGtleSkpIHsK
KyAgICBjYXNlIFRlc3RIZWFkZXJLZXlUeXBlOjpCb29sV2ViUHJlZmVyZW5jZToKKyAgICAgICAg
ZmVhdHVyZXMuYm9vbFdlYlByZWZlcmVuY2VGZWF0dXJlcy5pbnNlcnRfb3JfYXNzaWduKGtleSwg
cGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKSk7CisgICAgICAgIHJldHVybiB0cnVl
OworICAgIGNhc2UgVGVzdEhlYWRlcktleVR5cGU6OkRvdWJsZVdlYlByZWZlcmVuY2U6CisgICAg
ICAgIGZlYXR1cmVzLmRvdWJsZVdlYlByZWZlcmVuY2VGZWF0dXJlcy5pbnNlcnRfb3JfYXNzaWdu
KGtleSwgcGFyc2VEb3VibGVUZXN0SGVhZGVyVmFsdWUodmFsdWUpKTsKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgY2FzZSBUZXN0SGVhZGVyS2V5VHlwZTo6VUludDMyV2ViUHJlZmVyZW5jZToK
KyAgICAgICAgZmVhdHVyZXMudWludDMyV2ViUHJlZmVyZW5jZUZlYXR1cmVzLmluc2VydF9vcl9h
c3NpZ24oa2V5LCBwYXJzZVVJbnQzMlRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSkpOworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIFRlc3RIZWFkZXJLZXlUeXBlOjpTdHJpbmdXZWJQcmVmZXJl
bmNlOgorICAgICAgICBmZWF0dXJlcy5zdHJpbmdXZWJQcmVmZXJlbmNlRmVhdHVyZXMuaW5zZXJ0
X29yX2Fzc2lnbihrZXksIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBjYXNl
IFRlc3RIZWFkZXJLZXlUeXBlOjpCb29sVGVzdFJ1bm5lcjoKKyAgICAgICAgZmVhdHVyZXMuYm9v
bFRlc3RSdW5uZXJGZWF0dXJlcy5pbnNlcnRfb3JfYXNzaWduKGtleSwgcGFyc2VCb29sZWFuVGVz
dEhlYWRlclZhbHVlKHZhbHVlKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgVGVz
dEhlYWRlcktleVR5cGU6OkRvdWJsZVRlc3RSdW5uZXI6CisgICAgICAgIGZlYXR1cmVzLmRvdWJs
ZVRlc3RSdW5uZXJGZWF0dXJlcy5pbnNlcnRfb3JfYXNzaWduKGtleSwgcGFyc2VEb3VibGVUZXN0
SGVhZGVyVmFsdWUodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBUZXN0
SGVhZGVyS2V5VHlwZTo6U3RyaW5nVGVzdFJ1bm5lcjoKKyAgICAgICAgZmVhdHVyZXMuc3RyaW5n
VGVzdFJ1bm5lckZlYXR1cmVzLmluc2VydF9vcl9hc3NpZ24oa2V5LCB2YWx1ZSk7CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIGNhc2UgVGVzdEhlYWRlcktleVR5cGU6OlN0cmluZ1JlbGF0aXZl
UGF0aFRlc3RSdW5uZXI6CisgICAgICAgIGZlYXR1cmVzLnN0cmluZ1Rlc3RSdW5uZXJGZWF0dXJl
cy5pbnNlcnRfb3JfYXNzaWduKGtleSwgcGFyc2VTdHJpbmdUZXN0SGVhZGVyVmFsdWVBc1JlbGF0
aXZlUGF0aCh2YWx1ZSwgcGF0aCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIFRl
c3RIZWFkZXJLZXlUeXBlOjpTdHJpbmdVUkxUZXN0UnVubmVyOgorICAgICAgICBmZWF0dXJlcy5z
dHJpbmdUZXN0UnVubmVyRmVhdHVyZXMuaW5zZXJ0X29yX2Fzc2lnbihrZXksIHBhcnNlU3RyaW5n
VGVzdEhlYWRlclZhbHVlQXNVUkwodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
Y2FzZSBUZXN0SGVhZGVyS2V5VHlwZTo6U3RyaW5nVmVjdG9yVGVzdFJ1bm5lcjoKKyAgICAgICAg
ZmVhdHVyZXMuc3RyaW5nVmVjdG9yVGVzdFJ1bm5lckZlYXR1cmVzLmluc2VydF9vcl9hc3NpZ24o
a2V5LCBwYXJzZVN0cmluZ1Rlc3RIZWFkZXJWYWx1ZUFzU3RyaW5nVmVjdG9yKHZhbHVlKSk7Cisg
ICAgICAgIHJldHVybiB0cnVlOworCisgICAgY2FzZSBUZXN0SGVhZGVyS2V5VHlwZTo6VW5rbm93
bjoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKworc3RhdGljIFRlc3RGZWF0dXJl
cyBwYXJzZVRlc3RIZWFkZXIoc3RkOjpmaWxlc3lzdGVtOjpwYXRoIHBhdGgsIGNvbnN0IHN0ZDo6
dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgVGVzdEhlYWRlcktleVR5cGU+JiBrZXlUeXBlTWFw
KQorewogICAgIFRlc3RGZWF0dXJlcyBmZWF0dXJlczsKICAgICBpZiAoIXN0ZDo6ZmlsZXN5c3Rl
bTo6ZXhpc3RzKHBhdGgpKQogICAgICAgICByZXR1cm4gZmVhdHVyZXM7CkBAIC0yMTQsNTMgKzI3
OCwxMCBAQCBzdGF0aWMgVGVzdEZlYXR1cmVzIHBhcnNlVGVzdEhlYWRlcihzdGQ6CiAgICAgICAg
IH0KICAgICAgICAgYXV0byBrZXkgPSBwYWlyU3RyaW5nLnN1YnN0cihwYWlyU3RhcnQsIGVxdWFs
c0xvY2F0aW9uIC0gcGFpclN0YXJ0KTsKICAgICAgICAgYXV0byB2YWx1ZSA9IHBhaXJTdHJpbmcu
c3Vic3RyKGVxdWFsc0xvY2F0aW9uICsgMSwgcGFpckVuZCAtIChlcXVhbHNMb2NhdGlvbiArIDEp
KTsKLQotICAgICAgICBpZiAoa2V5LnJmaW5kKCJleHBlcmltZW50YWw6IikgPT0gMCkgewotICAg
ICAgICAgICAga2V5ID0ga2V5LnN1YnN0cigxMyk7Ci0gICAgICAgICAgICBmZWF0dXJlcy5leHBl
cmltZW50YWxGZWF0dXJlcy5pbnNlcnQoeyBrZXksIHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1
ZSh2YWx1ZSkgfSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoa2V5LnJmaW5kKCJpbnRlcm5hbDoiKSA9
PSAwKSB7Ci0gICAgICAgICAgICBrZXkgPSBrZXkuc3Vic3RyKDkpOwotICAgICAgICAgICAgZmVh
dHVyZXMuaW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmluc2VydCh7IGtleSwgcGFyc2VCb29sZWFuVGVz
dEhlYWRlclZhbHVlKHZhbHVlKSB9KTsKLSAgICAgICAgfQotCi0gICAgICAgIHN3aXRjaCAoa2V5
VHlwZShrZXkpKSB7Ci0gICAgICAgIGNhc2UgVGVzdEhlYWRlcktleVR5cGU6OkJvb2xXZWJQcmVm
ZXJlbmNlOgotICAgICAgICAgICAgZmVhdHVyZXMuYm9vbFdlYlByZWZlcmVuY2VGZWF0dXJlcy5p
bnNlcnQoeyBrZXksIHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSkgfSk7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUZXN0SGVhZGVyS2V5VHlwZTo6RG91YmxlV2Vi
UHJlZmVyZW5jZToKLSAgICAgICAgICAgIGZlYXR1cmVzLmRvdWJsZVdlYlByZWZlcmVuY2VGZWF0
dXJlcy5pbnNlcnQoeyBrZXksIHBhcnNlRG91YmxlVGVzdEhlYWRlclZhbHVlKHZhbHVlKSB9KTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFRlc3RIZWFkZXJLZXlUeXBlOjpVSW50
MzJXZWJQcmVmZXJlbmNlOgotICAgICAgICAgICAgZmVhdHVyZXMudWludDMyV2ViUHJlZmVyZW5j
ZUZlYXR1cmVzLmluc2VydCh7IGtleSwgcGFyc2VVSW50MzJUZXN0SGVhZGVyVmFsdWUodmFsdWUp
IH0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVGVzdEhlYWRlcktleVR5cGU6
OlN0cmluZ1dlYlByZWZlcmVuY2U6Ci0gICAgICAgICAgICBmZWF0dXJlcy5zdHJpbmdXZWJQcmVm
ZXJlbmNlRmVhdHVyZXMuaW5zZXJ0KHsga2V5LCB2YWx1ZSB9KTsKLSAgICAgICAgICAgIGJyZWFr
OwotCi0gICAgICAgIGNhc2UgVGVzdEhlYWRlcktleVR5cGU6OkJvb2xUZXN0UnVubmVyOgotICAg
ICAgICAgICAgZmVhdHVyZXMuYm9vbFRlc3RSdW5uZXJGZWF0dXJlcy5pbnNlcnQoeyBrZXksIHBh
cnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSkgfSk7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBUZXN0SGVhZGVyS2V5VHlwZTo6RG91YmxlVGVzdFJ1bm5lcjoKLSAgICAg
ICAgICAgIGZlYXR1cmVzLmRvdWJsZVRlc3RSdW5uZXJGZWF0dXJlcy5pbnNlcnQoeyBrZXksIHBh
cnNlRG91YmxlVGVzdEhlYWRlclZhbHVlKHZhbHVlKSB9KTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIFRlc3RIZWFkZXJLZXlUeXBlOjpTdHJpbmdUZXN0UnVubmVyOgotICAgICAg
ICAgICAgZmVhdHVyZXMuc3RyaW5nVGVzdFJ1bm5lckZlYXR1cmVzLmluc2VydCh7IGtleSwgdmFs
dWUgfSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUZXN0SGVhZGVyS2V5VHlw
ZTo6U3RyaW5nUmVsYXRpdmVQYXRoVGVzdFJ1bm5lcjoKLSAgICAgICAgICAgIGZlYXR1cmVzLnN0
cmluZ1Rlc3RSdW5uZXJGZWF0dXJlcy5pbnNlcnQoeyBrZXksIHBhcnNlU3RyaW5nVGVzdEhlYWRl
clZhbHVlQXNSZWxhdGl2ZVBhdGgodmFsdWUsIHBhdGgpIH0pOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgVGVzdEhlYWRlcktleVR5cGU6OlN0cmluZ1VSTFRlc3RSdW5uZXI6Ci0g
ICAgICAgICAgICBmZWF0dXJlcy5zdHJpbmdUZXN0UnVubmVyRmVhdHVyZXMuaW5zZXJ0KHsga2V5
LCBwYXJzZVN0cmluZ1Rlc3RIZWFkZXJWYWx1ZUFzVVJMKHZhbHVlKSB9KTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIFRlc3RIZWFkZXJLZXlUeXBlOjpTdHJpbmdWZWN0b3JUZXN0
UnVubmVyOgotICAgICAgICAgICAgZmVhdHVyZXMuc3RyaW5nVmVjdG9yVGVzdFJ1bm5lckZlYXR1
cmVzLmluc2VydCh7IGtleSwgcGFyc2VTdHJpbmdUZXN0SGVhZGVyVmFsdWVBc1N0cmluZ1ZlY3Rv
cih2YWx1ZSkgfSk7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBjYXNlIFRlc3RIZWFk
ZXJLZXlUeXBlOjpVbmtub3duOgorICAgICAgICAKKyAgICAgICAgaWYgKCFwYXJzZVRlc3RIZWFk
ZXJGZWF0dXJlKGZlYXR1cmVzLCBrZXksIHZhbHVlLCBwYXRoLCBrZXlUeXBlTWFwKSkKICAgICAg
ICAgICAgIExPR19FUlJPUigiVW5rbm93biBrZXksICclcywgaW4gdGVzdCBoZWFkZXIgaW4gJXMi
LCBrZXkuY19zdHIoKSwgcGF0aC5jX3N0cigpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICB9Ci0KKyAgICAgICAgCiAgICAgICAgIHBhaXJTdGFydCA9IHBhaXJFbmQgKyAxOwogICAgIH0K
IApJbmRleDogVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9UZXN0RmVhdHVyZXMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0UnVubmVyU2hhcmVkL1Rlc3RGZWF0dXJlcy5oCShyZXZpc2lvbiAyNjkz
NjApCisrKyBUb29scy9UZXN0UnVubmVyU2hhcmVkL1Rlc3RGZWF0dXJlcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNSw5ICszNSw2IEBAIG5hbWVzcGFjZSBXVFIgewogc3RydWN0IFRlc3RDb21tYW5k
OwogCiBzdHJ1Y3QgVGVzdEZlYXR1cmVzIHsKLSAgICBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpz
dHJpbmcsIGJvb2w+IGV4cGVyaW1lbnRhbEZlYXR1cmVzOwotICAgIHN0ZDo6dW5vcmRlcmVkX21h
cDxzdGQ6OnN0cmluZywgYm9vbD4gaW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzOwotCiAgICAgc3RkOjp1
bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBib29sPiBib29sV2ViUHJlZmVyZW5jZUZlYXR1cmVz
OwogICAgIHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgZG91YmxlPiBkb3VibGVXZWJQ
cmVmZXJlbmNlRmVhdHVyZXM7CiAgICAgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCB1
aW50MzJfdD4gdWludDMyV2ViUHJlZmVyZW5jZUZlYXR1cmVzOwpAQCAtNDksNiArNDYsOSBAQCBz
dHJ1Y3QgVGVzdEZlYXR1cmVzIHsKICAgICBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcs
IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPj4gc3RyaW5nVmVjdG9yVGVzdFJ1bm5lckZlYXR1cmVz
OwogfTsKIAorYm9vbCBvcGVyYXRvcj09KGNvbnN0IFRlc3RGZWF0dXJlcyYsIGNvbnN0IFRlc3RG
ZWF0dXJlcyYpOworYm9vbCBvcGVyYXRvciE9KGNvbnN0IFRlc3RGZWF0dXJlcyYsIGNvbnN0IFRl
c3RGZWF0dXJlcyYpOworCiB2b2lkIG1lcmdlKFRlc3RGZWF0dXJlcyYgYmFzZSwgVGVzdEZlYXR1
cmVzIGFkZGl0aW9uYWwpOwogCiBUZXN0RmVhdHVyZXMgaGFyZGNvZGVkRmVhdHVyZXNCYXNlZE9u
UGF0aEZvclRlc3QoY29uc3QgVGVzdENvbW1hbmQmKTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvT3B0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9P
cHRpb25zLmNwcAkocmV2aXNpb24gMjY5MzYwKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9P
cHRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYsMjUgKzY2LDI1IEBAIHN0YXRpYyBib29s
IGhhbmRsZU9wdGlvbkNvbXBsZXhUZXh0KE9wdGkKIAogc3RhdGljIGJvb2wgaGFuZGxlT3B0aW9u
QWNjZWxlcmF0ZWREcmF3aW5nKE9wdGlvbnMmIG9wdGlvbnMsIGNvbnN0IGNoYXIqLCBjb25zdCBj
aGFyKikKIHsKLSAgICBvcHRpb25zLnNob3VsZFVzZUFjY2VsZXJhdGVkRHJhd2luZyA9IHRydWU7
CisgICAgb3B0aW9ucy5mZWF0dXJlcy5ib29sV2ViUHJlZmVyZW5jZUZlYXR1cmVzLmluc2VydF9v
cl9hc3NpZ24oIkFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQiLCB0cnVlKTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAogc3RhdGljIGJvb2wgaGFuZGxlT3B0aW9uUmVtb3RlTGF5ZXJUcmVlKE9wdGlv
bnMmIG9wdGlvbnMsIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKikKIHsKLSAgICBvcHRpb25zLnNo
b3VsZFVzZVJlbW90ZUxheWVyVHJlZSA9IHRydWU7CisgICAgb3B0aW9ucy5mZWF0dXJlcy5ib29s
VGVzdFJ1bm5lckZlYXR1cmVzLmluc2VydF9vcl9hc3NpZ24oInVzZVJlbW90ZUxheWVyVHJlZSIs
IHRydWUpOwogICAgIHJldHVybiB0cnVlOwogfQogCiBzdGF0aWMgYm9vbCBoYW5kbGVPcHRpb25T
aG93V2ViVmlldyhPcHRpb25zJiBvcHRpb25zLCBjb25zdCBjaGFyKiwgY29uc3QgY2hhciopCiB7
Ci0gICAgb3B0aW9ucy5zaG91bGRTaG93V2ViVmlldyA9IHRydWU7CisgICAgb3B0aW9ucy5mZWF0
dXJlcy5ib29sVGVzdFJ1bm5lckZlYXR1cmVzLmluc2VydF9vcl9hc3NpZ24oInNob3VsZFNob3dX
ZWJWaWV3IiwgdHJ1ZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBib29sIGhhbmRs
ZU9wdGlvblNob3dUb3VjaGVzKE9wdGlvbnMmIG9wdGlvbnMsIGNvbnN0IGNoYXIqLCBjb25zdCBj
aGFyKikKIHsKLSAgICBvcHRpb25zLnNob3VsZFNob3dUb3VjaGVzID0gdHJ1ZTsKKyAgICBvcHRp
b25zLmZlYXR1cmVzLmJvb2xUZXN0UnVubmVyRmVhdHVyZXMuaW5zZXJ0X29yX2Fzc2lnbigic2hv
dWxkU2hvd1RvdWNoZXMiLCB0cnVlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTE0LDcg
KzExNCw3IEBAIHN0YXRpYyBib29sIGhhbmRsZU9wdGlvbkFsbG93ZWRIb3N0KE9wdGkKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgcGFyc2VGZWF0dXJlKHN0ZDo6c3RyaW5nX3Zp
ZXcgZmVhdHVyZVN0cmluZywgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBib29sPiYg
ZmVhdHVyZXMpCitzdGF0aWMgYm9vbCBwYXJzZUZlYXR1cmUoc3RkOjpzdHJpbmdfdmlldyBmZWF0
dXJlU3RyaW5nLCBUZXN0RmVhdHVyZXMmIGZlYXR1cmVzKQogewogICAgIGF1dG8gc3RyaW5ncyA9
IHNwbGl0KGZlYXR1cmVTdHJpbmcsICc9Jyk7CiAgICAgaWYgKHN0cmluZ3MuZW1wdHkoKSB8fCBz
dHJpbmdzLnNpemUoKSA+IDIpCkBAIC0xMjMsMTggKzEyMywxOSBAQCBzdGF0aWMgYm9vbCBwYXJz
ZUZlYXR1cmUoc3RkOjpzdHJpbmdfdmllCiAgICAgYXV0byBmZWF0dXJlTmFtZSA9IHN0cmluZ3Nb
MF07CiAgICAgYm9vbCBlbmFibGVkID0gc3RyaW5ncy5zaXplKCkgPT0gMSB8fCBzdHJpbmdzWzFd
ID09ICJ0cnVlIjsKIAotICAgIGZlYXR1cmVzLmluc2VydCh7IHN0ZDo6c3RyaW5nIHsgZmVhdHVy
ZU5hbWUgfSwgZW5hYmxlZCB9KTsKKyAgICAvLyBGSVhNRTogR2VuZXJhbGl6ZSB0aGlzIHRvIHdv
cmsgZm9yIGFueSB0eXBlIG9mIHdlYiBwcmVmZXJlbmNlIHVzaW5nIHRlc3QgaGVhZGVyIGxvZ2lj
IGluIFRlc3RGZWF0dXJlcy5jcHAKKyAgICBmZWF0dXJlcy5ib29sV2ViUHJlZmVyZW5jZUZlYXR1
cmVzLmluc2VydCh7IHN0ZDo6c3RyaW5nIHsgZmVhdHVyZU5hbWUgfSwgZW5hYmxlZCB9KTsKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIGJvb2wgaGFuZGxlT3B0aW9uRXhwZXJpbWVudGFs
RmVhdHVyZShPcHRpb25zJiBvcHRpb25zLCBjb25zdCBjaGFyKiwgY29uc3QgY2hhciogZmVhdHVy
ZSkKIHsKLSAgICByZXR1cm4gcGFyc2VGZWF0dXJlKGZlYXR1cmUsIG9wdGlvbnMuZXhwZXJpbWVu
dGFsRmVhdHVyZXMpOworICAgIHJldHVybiBwYXJzZUZlYXR1cmUoZmVhdHVyZSwgb3B0aW9ucy5m
ZWF0dXJlcyk7CiB9CiAKIHN0YXRpYyBib29sIGhhbmRsZU9wdGlvbkludGVybmFsRmVhdHVyZShP
cHRpb25zJiBvcHRpb25zLCBjb25zdCBjaGFyKiwgY29uc3QgY2hhciogZmVhdHVyZSkKIHsKLSAg
ICByZXR1cm4gcGFyc2VGZWF0dXJlKGZlYXR1cmUsIG9wdGlvbnMuaW50ZXJuYWxGZWF0dXJlcyk7
CisgICAgcmV0dXJuIHBhcnNlRmVhdHVyZShmZWF0dXJlLCBvcHRpb25zLmZlYXR1cmVzKTsKIH0K
IAogc3RhdGljIGJvb2wgaGFuZGxlT3B0aW9uVW5tYXRjaGVkKE9wdGlvbnMmIG9wdGlvbnMsIGNv
bnN0IGNoYXIqIG9wdGlvbiwgY29uc3QgY2hhciopCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL09wdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL09wdGlv
bnMuaAkocmV2aXNpb24gMjY5MzYwKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25z
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNp
bmNsdWRlICJUZXN0RmVhdHVyZXMuaCIKICNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUg
PHNldD4KICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtNDYsMTAgKzQ3LDYgQEAgc3RydWN0IE9wdGlv
bnMgewogICAgIGJvb2wgZ2NCZXR3ZWVuVGVzdHMgeyBmYWxzZSB9OwogICAgIGJvb2wgc2hvdWxk
RHVtcFBpeGVsc0ZvckFsbFRlc3RzIHsgZmFsc2UgfTsKICAgICBib29sIGZvcmNlQ29tcGxleFRl
eHQgeyBmYWxzZSB9OwotICAgIGJvb2wgc2hvdWxkVXNlQWNjZWxlcmF0ZWREcmF3aW5nIHsgZmFs
c2UgfTsKLSAgICBib29sIHNob3VsZFVzZVJlbW90ZUxheWVyVHJlZSB7IGZhbHNlIH07Ci0gICAg
Ym9vbCBzaG91bGRTaG93V2ViVmlldyB7IGZhbHNlIH07Ci0gICAgYm9vbCBzaG91bGRTaG93VG91
Y2hlcyB7IGZhbHNlIH07CiAgICAgYm9vbCBjaGVja0ZvcldvcmxkTGVha3MgeyBmYWxzZSB9Owog
ICAgIGJvb2wgYWxsb3dBbnlIVFRQU0NlcnRpZmljYXRlRm9yQWxsb3dlZEhvc3RzIHsgZmFsc2Ug
fTsKICNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQpAQCAtNTcsOCArNTQs
NyBAQCBzdHJ1Y3QgT3B0aW9ucyB7CiAjZW5kaWYKICAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmlu
Zz4gcGF0aHM7CiAgICAgc3RkOjpzZXQ8c3RkOjpzdHJpbmc+IGFsbG93ZWRIb3N0czsKLSAgICBz
dGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIGJvb2w+IGludGVybmFsRmVhdHVyZXM7Ci0g
ICAgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBib29sPiBleHBlcmltZW50YWxGZWF0
dXJlczsKKyAgICBUZXN0RmVhdHVyZXMgZmVhdHVyZXM7CiB9OwogCiBjbGFzcyBPcHRpb24gewpJ
bmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAJKHJldmlzaW9u
IDI2OTM2MCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00NjgsMTQgKzQ2OCw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6Omlu
aXRpYWxpemUoaW50IGFyZ2MKICAgICBtX2FsbG93ZWRIb3N0cyA9IG9wdGlvbnMuYWxsb3dlZEhv
c3RzOwogICAgIG1fY2hlY2tGb3JXb3JsZExlYWtzID0gb3B0aW9ucy5jaGVja0ZvcldvcmxkTGVh
a3M7CiAgICAgbV9hbGxvd0FueUhUVFBTQ2VydGlmaWNhdGVGb3JBbGxvd2VkSG9zdHMgPSBvcHRp
b25zLmFsbG93QW55SFRUUFNDZXJ0aWZpY2F0ZUZvckFsbG93ZWRIb3N0czsKLQotICAgIG1fZ2xv
YmFsRmVhdHVyZXMgPSBUZXN0T3B0aW9uczo6ZGVmYXVsdHMoKTsKLSAgICBtX2dsb2JhbEZlYXR1
cmVzLmludGVybmFsRGVidWdGZWF0dXJlcyA9IG9wdGlvbnMuaW50ZXJuYWxGZWF0dXJlczsKLSAg
ICBtX2dsb2JhbEZlYXR1cmVzLmV4cGVyaW1lbnRhbEZlYXR1cmVzID0gb3B0aW9ucy5leHBlcmlt
ZW50YWxGZWF0dXJlczsKLSAgICBtX2dsb2JhbEZlYXR1cmVzLmJvb2xXZWJQcmVmZXJlbmNlRmVh
dHVyZXMuaW5zZXJ0X29yX2Fzc2lnbigiQWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCIsIG9wdGlv
bnMuc2hvdWxkVXNlQWNjZWxlcmF0ZWREcmF3aW5nKTsKLSAgICBtX2dsb2JhbEZlYXR1cmVzLmJv
b2xUZXN0UnVubmVyRmVhdHVyZXMuaW5zZXJ0X29yX2Fzc2lnbigidXNlUmVtb3RlTGF5ZXJUcmVl
Iiwgb3B0aW9ucy5zaG91bGRVc2VSZW1vdGVMYXllclRyZWUpOwotICAgIG1fZ2xvYmFsRmVhdHVy
ZXMuYm9vbFRlc3RSdW5uZXJGZWF0dXJlcy5pbnNlcnRfb3JfYXNzaWduKCJzaG91bGRTaG93V2Vi
VmlldyIsIG9wdGlvbnMuc2hvdWxkU2hvd1dlYlZpZXcpOwotICAgIG1fZ2xvYmFsRmVhdHVyZXMu
Ym9vbFRlc3RSdW5uZXJGZWF0dXJlcy5pbnNlcnRfb3JfYXNzaWduKCJzaG91bGRTaG93VG91Y2hl
cyIsIG9wdGlvbnMuc2hvdWxkU2hvd1RvdWNoZXMpOworICAgIG1fZ2xvYmFsRmVhdHVyZXMgPSBz
dGQ6Om1vdmUob3B0aW9ucy5mZWF0dXJlcyk7CiAKICNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9J
U09MQVRFRF9UUkVFKQogICAgIG1fYWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1vZGUgPSBvcHRp
b25zLmFjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVNb2RlOwpAQCAtODM2LDIzICs4MjksNiBAQCB2
b2lkIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9DCiAgICAgV0tQcmVmZXJlbmNl
c1Jlc2V0VGVzdFJ1bm5lck92ZXJyaWRlcyhwcmVmZXJlbmNlcyk7CiAKICAgICBXS1ByZWZlcmVu
Y2VzRW5hYmxlQWxsRXhwZXJpbWVudGFsRmVhdHVyZXMocHJlZmVyZW5jZXMpOwotICAgIGZvciAo
Y29uc3QgYXV0byYgW2tleSwgdmFsdWVdIDogb3B0aW9ucy5leHBlcmltZW50YWxGZWF0dXJlcygp
KQotICAgICAgICBXS1ByZWZlcmVuY2VzU2V0RXhwZXJpbWVudGFsRmVhdHVyZUZvcktleShwcmVm
ZXJlbmNlcywgdmFsdWUsIHRvV0soa2V5KS5nZXQoKSk7Ci0KLSAgICBXS1ByZWZlcmVuY2VzUmVz
ZXRBbGxJbnRlcm5hbERlYnVnRmVhdHVyZXMocHJlZmVyZW5jZXMpOwotCi0gICAgLy8gU2V0IGlu
dGVybmFsIGZlYXR1cmVzIHRoYXQgaGF2ZSBkaWZmZXJlbnQgZGVmYXVsdCB2YWx1ZXMgZm9yIHRl
c3RpbmcuCi0gICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0dXJlRm9yS2V5KHBy
ZWZlcmVuY2VzLCBmYWxzZSwgdG9XSygiQXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQiKS5n
ZXQoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0dXJlRm9yS2V5KHBy
ZWZlcmVuY2VzLCBmYWxzZSwgdG9XSygiQXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQiKS5nZXQo
KSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0dXJlRm9yS2V5KHByZWZl
cmVuY2VzLCB0cnVlLCB0b1dLKCJJbnB1dFR5cGVEYXRlRW5hYmxlZCIpLmdldCgpKTsKLSAgICBX
S1ByZWZlcmVuY2VzU2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVGb3JLZXkocHJlZmVyZW5jZXMsIHRy
dWUsIHRvV0soIklucHV0VHlwZURhdGVUaW1lTG9jYWxFbmFibGVkIikuZ2V0KCkpOwotICAgIFdL
UHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZvcktleShwcmVmZXJlbmNlcywgdHJ1
ZSwgdG9XSygiSW5wdXRUeXBlTW9udGhFbmFibGVkIikuZ2V0KCkpOwotICAgIFdLUHJlZmVyZW5j
ZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZvcktleShwcmVmZXJlbmNlcywgdHJ1ZSwgdG9XSygi
SW5wdXRUeXBlVGltZUVuYWJsZWQiKS5nZXQoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldEludGVy
bmFsRGVidWdGZWF0dXJlRm9yS2V5KHByZWZlcmVuY2VzLCB0cnVlLCB0b1dLKCJJbnB1dFR5cGVX
ZWVrRW5hYmxlZCIpLmdldCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0SW50ZXJuYWxEZWJ1Z0Zl
YXR1cmVGb3JLZXkocHJlZmVyZW5jZXMsIGZhbHNlLCB0b1dLKCJTcGVha2VyU2VsZWN0aW9uUmVx
dWlyZXNVc2VyR2VzdHVyZSIpLmdldCgpKTsKLQotICAgIGZvciAoY29uc3QgYXV0byYgW2tleSwg
dmFsdWVdICA6IG9wdGlvbnMuaW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzKCkpCi0gICAgICAgIFdLUHJl
ZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZvcktleShwcmVmZXJlbmNlcywgdmFsdWUs
IHRvV0soa2V5KS5nZXQoKSk7CiAKICAgICAvLyBGSVhNRTogQ29udmVydCB0aGVzZSB0byBkZWZh
dWx0IHZhbHVlcyBmb3IgVGVzdE9wdGlvbnMuCiAgICAgV0tQcmVmZXJlbmNlc1NldFByb2Nlc3NT
d2FwT25OYXZpZ2F0aW9uRW5hYmxlZChwcmVmZXJlbmNlcywgb3B0aW9ucy5zaG91bGRFbmFibGVQ
cm9jZXNzU3dhcE9uTmF2aWdhdGlvbigpKTsKQEAgLTEyNzksNyArMTI1NSw4IEBAIFdLVVJMUmVm
IFRlc3RDb250cm9sbGVyOjpjcmVhdGVUZXN0VVJMKGMKIAogVGVzdE9wdGlvbnMgVGVzdENvbnRy
b2xsZXI6OnRlc3RPcHRpb25zRm9yVGVzdChjb25zdCBUZXN0Q29tbWFuZCYgY29tbWFuZCkgY29u
c3QKIHsKLSAgICBUZXN0RmVhdHVyZXMgZmVhdHVyZXMgPSBtX2dsb2JhbEZlYXR1cmVzOworICAg
IFRlc3RGZWF0dXJlcyBmZWF0dXJlcyA9IFRlc3RPcHRpb25zOjpkZWZhdWx0cygpOworICAgIG1l
cmdlKGZlYXR1cmVzLCBtX2dsb2JhbEZlYXR1cmVzKTsKICAgICBtZXJnZShmZWF0dXJlcywgaGFy
ZGNvZGVkRmVhdHVyZXNCYXNlZE9uUGF0aEZvclRlc3QoY29tbWFuZCkpOwogICAgIG1lcmdlKGZl
YXR1cmVzLCBwbGF0Zm9ybVNwZWNpZmljRmVhdHVyZURlZmF1bHRzRm9yVGVzdChjb21tYW5kKSk7
CiAgICAgbWVyZ2UoZmVhdHVyZXMsIGZlYXR1cmVEZWZhdWx0c0Zyb21UZXN0SGVhZGVyRm9yVGVz
dChjb21tYW5kLCBUZXN0T3B0aW9uczo6a2V5VHlwZU1hcHBpbmcoKSkpOwpJbmRleDogVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAJKHJldmlzaW9uIDI2OTM2MCkKKysrIFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw5
ICszOCwxMiBAQCBjb25zdCBUZXN0RmVhdHVyZXMmIFRlc3RPcHRpb25zOjpkZWZhdWx0CiAgICAg
ICAgIGZlYXR1cmVzLmJvb2xXZWJQcmVmZXJlbmNlRmVhdHVyZXMgPSB7CiAgICAgICAgICAgICAv
LyBUaGVzZSBhcmUgV2ViUHJlZmVyZW5jZSB2YWx1ZXMgdGhhdCBtdXN0IGFsd2F5cyBiZSBzZXQg
YXMgdGhleSBtYXkKICAgICAgICAgICAgIC8vIGRpZmZlciBmcm9tIHRoZSBkZWZhdWx0IHNldCBp
biB0aGUgV2ViUHJlZmVyZW5jZXMqLnlhbWwgY29uZmlndXJhdGlvbi4KKyAgICAgICAgICAgIHsg
IkFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQiLCBmYWxzZSB9LAogICAgICAgICAgICAgeyAiQWxs
b3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzIiwgdHJ1ZSB9LAogICAgICAgICAgICAgeyAiQWxsb3dU
b3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyIsIHRydWUgfSwKICAgICAgICAgICAgIHsgIkFsbG93VW5p
dmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzIiwgdHJ1ZSB9LAorICAgICAgICAgICAgeyAiQXN5bmNG
cmFtZVNjcm9sbGluZ0VuYWJsZWQiLCBmYWxzZSB9LAorICAgICAgICAgICAgeyAiQXN5bmNPdmVy
Zmxvd1Njcm9sbGluZ0VuYWJsZWQiLCBmYWxzZSB9LAogICAgICAgICAgICAgeyAiQ2FwdHVyZUF1
ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCIsIGZhbHNlIH0sCiAgICAgICAgICAgICB7ICJDYXB0dXJl
QXVkaW9JblVJUHJvY2Vzc0VuYWJsZWQiLCBmYWxzZSB9LAogICAgICAgICAgICAgeyAiQ2FwdHVy
ZVZpZGVvSW5HUFVQcm9jZXNzRW5hYmxlZCIsIGZhbHNlIH0sCkBAIC00OCw2ICs1MSwxMSBAQCBj
b25zdCBUZXN0RmVhdHVyZXMmIFRlc3RPcHRpb25zOjpkZWZhdWx0CiAgICAgICAgICAgICB7ICJE
T01QYXN0ZUFsbG93ZWQiLCB0cnVlIH0sCiAgICAgICAgICAgICB7ICJGcmFtZUZsYXR0ZW5pbmdF
bmFibGVkIiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgIkdlbmVyaWNDdWVBUElFbmFibGVkIiwg
ZmFsc2UgfSwKKyAgICAgICAgICAgIHsgIklucHV0VHlwZURhdGVFbmFibGVkIiwgdHJ1ZSB9LAor
ICAgICAgICAgICAgeyAiSW5wdXRUeXBlRGF0ZVRpbWVMb2NhbEVuYWJsZWQiLCB0cnVlIH0sCisg
ICAgICAgICAgICB7ICJJbnB1dFR5cGVNb250aEVuYWJsZWQiLCB0cnVlIH0sCisgICAgICAgICAg
ICB7ICJJbnB1dFR5cGVUaW1lRW5hYmxlZCIsIHRydWUgfSwKKyAgICAgICAgICAgIHsgIklucHV0
VHlwZVdlZWtFbmFibGVkIiwgdHJ1ZSB9LAogICAgICAgICAgICAgeyAiSmF2YVNjcmlwdENhbkFj
Y2Vzc0NsaXBib2FyZCIsIHRydWUgfSwKICAgICAgICAgICAgIHsgIkphdmFTY3JpcHRDYW5PcGVu
V2luZG93c0F1dG9tYXRpY2FsbHkiLCB0cnVlIH0sCiAgICAgICAgICAgICB7ICJNb2NrU2Nyb2xs
YmFyc0VuYWJsZWQiLCB0cnVlIH0sCkBAIC01Nyw2ICs2NSw3IEBAIGNvbnN0IFRlc3RGZWF0dXJl
cyYgVGVzdE9wdGlvbnM6OmRlZmF1bHQKICAgICAgICAgICAgIHsgIk9mZnNjcmVlbkNhbnZhc0Vu
YWJsZWQiLCB0cnVlIH0sCiAgICAgICAgICAgICB7ICJQYWdlVmlzaWJpbGl0eUJhc2VkUHJvY2Vz
c1N1cHByZXNzaW9uRW5hYmxlZCIsIGZhbHNlIH0sCiAgICAgICAgICAgICB7ICJQbHVnaW5zRW5h
YmxlZCIsIHRydWUgfSwKKyAgICAgICAgICAgIHsgIlNwZWFrZXJTZWxlY3Rpb25SZXF1aXJlc1Vz
ZXJHZXN0dXJlIiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgIlVzZXNCYWNrRm9yd2FyZENhY2hl
IiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgIldlYkF1dGhlbnRpY2F0aW9uRW5hYmxlZCIsIHRy
dWUgfSwKICAgICAgICAgICAgIHsgIlhTU0F1ZGl0b3JFbmFibGVkIiwgZmFsc2UgfSwKQEAgLTE1
MSwyOSArMTYwLDkgQEAgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBUZQog
ICAgIHJldHVybiBtYXA7CiB9CiAKLWJvb2wgVGVzdE9wdGlvbnM6Omhhc1NhbWVJbml0aWFsaXph
dGlvbk9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpIGNvbnN0Citib29sIFRlc3RP
cHRpb25zOjpoYXNTYW1lSW5pdGlhbGl6YXRpb25PcHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJiBv
dGhlcikgY29uc3QKIHsKLSAgICBpZiAobV9mZWF0dXJlcy5leHBlcmltZW50YWxGZWF0dXJlcyAh
PSBvcHRpb25zLm1fZmVhdHVyZXMuZXhwZXJpbWVudGFsRmVhdHVyZXMpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICBpZiAobV9mZWF0dXJlcy5pbnRlcm5hbERlYnVnRmVhdHVyZXMgIT0gb3B0
aW9ucy5tX2ZlYXR1cmVzLmludGVybmFsRGVidWdGZWF0dXJlcykKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIGlmIChtX2ZlYXR1cmVzLmJvb2xXZWJQcmVmZXJlbmNlRmVhdHVyZXMgIT0gb3B0
aW9ucy5tX2ZlYXR1cmVzLmJvb2xXZWJQcmVmZXJlbmNlRmVhdHVyZXMpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICBpZiAobV9mZWF0dXJlcy5kb3VibGVXZWJQcmVmZXJlbmNlRmVhdHVyZXMg
IT0gb3B0aW9ucy5tX2ZlYXR1cmVzLmRvdWJsZVdlYlByZWZlcmVuY2VGZWF0dXJlcykKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChtX2ZlYXR1cmVzLnVpbnQzMldlYlByZWZlcmVuY2VG
ZWF0dXJlcyAhPSBvcHRpb25zLm1fZmVhdHVyZXMudWludDMyV2ViUHJlZmVyZW5jZUZlYXR1cmVz
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKG1fZmVhdHVyZXMuc3RyaW5nV2ViUHJl
ZmVyZW5jZUZlYXR1cmVzICE9IG9wdGlvbnMubV9mZWF0dXJlcy5zdHJpbmdXZWJQcmVmZXJlbmNl
RmVhdHVyZXMpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAobV9mZWF0dXJlcy5ib29s
VGVzdFJ1bm5lckZlYXR1cmVzICE9IG9wdGlvbnMubV9mZWF0dXJlcy5ib29sVGVzdFJ1bm5lckZl
YXR1cmVzKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKG1fZmVhdHVyZXMuZG91Ymxl
VGVzdFJ1bm5lckZlYXR1cmVzICE9IG9wdGlvbnMubV9mZWF0dXJlcy5kb3VibGVUZXN0UnVubmVy
RmVhdHVyZXMpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAobV9mZWF0dXJlcy5zdHJp
bmdUZXN0UnVubmVyRmVhdHVyZXMgIT0gb3B0aW9ucy5tX2ZlYXR1cmVzLnN0cmluZ1Rlc3RSdW5u
ZXJGZWF0dXJlcykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChtX2ZlYXR1cmVzLnN0
cmluZ1ZlY3RvclRlc3RSdW5uZXJGZWF0dXJlcyAhPSBvcHRpb25zLm1fZmVhdHVyZXMuc3RyaW5n
VmVjdG9yVGVzdFJ1bm5lckZlYXR1cmVzKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0
dXJuIHRydWU7CisgICAgcmV0dXJuIG1fZmVhdHVyZXMgPT0gb3RoZXIubV9mZWF0dXJlczsKIH0K
IAogYm9vbCBUZXN0T3B0aW9uczo6Ym9vbFdlYlByZWZlcmVuY2VGZWF0dXJlVmFsdWUoc3RkOjpz
dHJpbmcga2V5LCBib29sIGRlZmF1bHRWYWx1ZSkgY29uc3QKSW5kZXg6IFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdE9wdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RPcHRpb25zLmgJKHJldmlzaW9uIDI2OTM2MCkKKysrIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdE9wdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtODYsOSArODYsNiBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiBlbmFibGVQcm9jZXNzU3dhcE9uTmF2aWdhdGlvbigpIHx8IGVu
YWJsZVByb2Nlc3NTd2FwT25XaW5kb3dPcGVuKCk7CiAgICAgfQogCi0gICAgY29uc3Qgc3RkOjp1
bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBib29sPiYgZXhwZXJpbWVudGFsRmVhdHVyZXMoKSBj
b25zdCB7IHJldHVybiBtX2ZlYXR1cmVzLmV4cGVyaW1lbnRhbEZlYXR1cmVzOyB9Ci0gICAgY29u
c3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBib29sPiYgaW50ZXJuYWxEZWJ1Z0Zl
YXR1cmVzKCkgY29uc3QgeyByZXR1cm4gbV9mZWF0dXJlcy5pbnRlcm5hbERlYnVnRmVhdHVyZXM7
IH0KLQogICAgIGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgYm9vbD4mIGJv
b2xXZWJQcmVmZXJlbmNlRmVhdHVyZXMoKSBjb25zdCB7IHJldHVybiBtX2ZlYXR1cmVzLmJvb2xX
ZWJQcmVmZXJlbmNlRmVhdHVyZXM7IH0KICAgICBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3Rk
OjpzdHJpbmcsIGRvdWJsZT4mIGRvdWJsZVdlYlByZWZlcmVuY2VGZWF0dXJlcygpIGNvbnN0IHsg
cmV0dXJuIG1fZmVhdHVyZXMuZG91YmxlV2ViUHJlZmVyZW5jZUZlYXR1cmVzOyB9CiAgICAgY29u
c3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCB1aW50MzJfdD4mIHVpbnQzMldlYlBy
ZWZlcmVuY2VGZWF0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fZmVhdHVyZXMudWludDMyV2ViUHJl
ZmVyZW5jZUZlYXR1cmVzOyB9Cg==
</data>
<flag name="commit-queue"
          id="429734"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413174</attachid>
            <date>2020-11-04 10:14:07 -0800</date>
            <delta_ts>2020-11-04 14:22:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218569-20201104101406.patch</filename>
            <type>text/plain</type>
            <size>25348</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2OTM2MikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDY3IEBACisyMDIwLTExLTA0ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgZXhwZXJpbWVudGFsOiBhbmQgaW50ZXJuYWw6IHBy
ZWZpeGVzIGZyb20gV2ViS2l0VGVzdFJ1bm5lciBhbmQgRHVtcFJlbmRlclRyZWUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODU2OQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwcmVmaXhlcyB3ZXJl
IHJlbW92ZWQgZnJvbSB1c2UgaW4gdGVzdHMgaW4gcjI2OTM2MC4KKworICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6Ondl
YlZpZXdJc0NvbXBhdGlibGVXaXRoT3B0aW9ucyBjb25zdCk6CisgICAgICAgIFJlcGxhY2UgZHVw
bGljYXRlZCBjb21wYXJpc29uIGNvZGUgd2l0aCBjYWxsIHRvIG9wZXJhdG9yPT0uCisKKyAgICAg
ICAgKiBUZXN0UnVubmVyU2hhcmVkL1Rlc3RGZWF0dXJlcy5jcHA6CisgICAgICAgIChXVFI6Om1l
cmdlKToKKyAgICAgICAgUmVtb3ZlIHNwZWNpYWwgbWFwcyBmb3IgaW50ZXJuYWwgYW5kIGV4cGVy
aW1lbnRhbCBmZWF0dXJlcy4KKworICAgICAgICAoV1RSOjpvcGVyYXRvcj09KToKKyAgICAgICAg
KFdUUjo6b3BlcmF0b3IhPSk6CisgICAgICAgIEFkZCBvcGVyYXRvcj09IHN1cHBvcnQgZm9yIHVz
ZSBieSBUZXN0T3B0aW9ucyBpbiBkZXRlcm1pbmluZyBjb21wYXRpYmlsaXR5LgorCisgICAgICAg
IChXVFI6OnBhcnNlVGVzdEhlYWRlckZlYXR1cmUpOgorICAgICAgICAoV1RSOjpwYXJzZVRlc3RI
ZWFkZXIpOgorICAgICAgICBTcGxpdCBvdXQgZmVhdHVyZSBwYXJzaW5nIGZvciBmdXR1cmUgdXNl
IGluIGNvbW1hbmQgbGluZSBwYXJzaW5nLgorCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9U
ZXN0RmVhdHVyZXMuaDoKKyAgICAgICAgUmVtb3ZlIHNwZWNpYWwgbWFwcyBmb3IgaW50ZXJuYWwg
YW5kIGV4cGVyaW1lbnRhbCBmZWF0dXJlcy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
T3B0aW9ucy5jcHA6CisgICAgICAgIChXVFI6OmhhbmRsZU9wdGlvbkFjY2VsZXJhdGVkRHJhd2lu
Zyk6CisgICAgICAgIChXVFI6OmhhbmRsZU9wdGlvblJlbW90ZUxheWVyVHJlZSk6CisgICAgICAg
IChXVFI6OmhhbmRsZU9wdGlvblNob3dXZWJWaWV3KToKKyAgICAgICAgKFdUUjo6aGFuZGxlT3B0
aW9uU2hvd1RvdWNoZXMpOgorICAgICAgICAoV1RSOjpwYXJzZUZlYXR1cmUpOgorICAgICAgICAo
V1RSOjpoYW5kbGVPcHRpb25FeHBlcmltZW50YWxGZWF0dXJlKToKKyAgICAgICAgKFdUUjo6aGFu
ZGxlT3B0aW9uSW50ZXJuYWxGZWF0dXJlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL09w
dGlvbnMuaDoKKyAgICAgICAgUmF0aGVyIHRoYW4gcGFyc2luZyBpbnRvIGJvb2xzIC8gZXh0cmEg
bWFwcywgcGFyc2UgdGhlIGNvbW1hbmQgbGluZSBvcHRpb25zCisgICAgICAgIGRpcmVjdGx5IGlu
dG8gYSBUZXN0RmVhdHVyZXMuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUpOgor
ICAgICAgICBJbml0aWFsaXplIGdsb2JhbCBmZWF0dXJlcyBmcm9tIHRoZSBuZXcgT3B0aW9ucycg
VGVzdEZlYXR1cmVzLiAKKworICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVm
ZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgIFJlbW92ZSBzcGVjaWFsIGNhc2lu
ZyBmb3IgZXhwZXJpbWVudGFsIGFuZCBpbnRlcm5hbCBmZWF0dXJlcywgdGhleSBhcmUgbm93IGp1
c3QKKyAgICAgICAgZ2VuZXJpYyBib29sIFdlYlByZWZlcmVuY2VzLiBNb3ZlIHNwZWNpYWwgY2Fz
ZXMgZm9yIGludGVybmFsIGZlYXR1cmVzIGludG8gVGVzdE9wdGlvbnMuCisKKyAgICAgICAgKFdU
Ujo6VGVzdENvbnRyb2xsZXI6OnRlc3RPcHRpb25zRm9yVGVzdCBjb25zdCk6CisgICAgICAgIE5v
dyB0aGF0IGdsb2JhbCBmZWF0dXJlcyBpcyBub3Qgc2VlZGVkIHdpdGggdGhlIGRlZmF1bHQgZmVh
dHVyZXMsIGNvbnN0cnVjdCB0aGUKKyAgICAgICAgZnVsbCBtZXJnZSBjaGFpbiBzdGFydGluZyB3
aXRoIHRoZSBkZWZhdWx0IGZlYXR1cmVzIGluc3RlYWQuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1Rlc3RPcHRpb25zLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmRlZmF1
bHRzKToKKyAgICAgICAgQWRkIHNvbWUgYWRkaXRpb25hbCBkZWZhdWx0cyBtb3ZlZCBmcm9tIFRl
c3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzLgorCisgICAg
ICAgIChXVFI6OlRlc3RPcHRpb25zOjpoYXNTYW1lSW5pdGlhbGl6YXRpb25PcHRpb25zIGNvbnN0
KToKKyAgICAgICAgVXNlIG9wZXJhdG9yPT0gdG8gcmVkdWNlIGR1cGxpY2F0ZWQgY29kZS4KKwor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaDoKKyAgICAgICAgKFdUUjo6
VGVzdE9wdGlvbnM6OmV4cGVyaW1lbnRhbEZlYXR1cmVzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdUUjo6VGVzdE9wdGlvbnM6OmludGVybmFsRGVidWdGZWF0dXJlcyBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIFJlbW92ZSBub3cgdW51c2VkIGV4dHJhIG1hcHMgZm9yIGV4dGVybmFsIGFu
ZCBpbnRlcm5hbCBmZWF0dXJlcy4KKwogMjAyMC0xMS0wMyAgU2lodWkgTGl1ICA8c2lodWlfbGl1
QGFwcGxlLmNvbT4KIAogICAgICAgICBTZXQgdXAgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIFNw
ZWVjaFJlY29nbml0aW9uCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCShy
ZXZpc2lvbiAyNjkzNjApCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEzMCwyOSArMTMwLDkgQEAgY29uc3Qgc3RkOjp1bm9yZGVyZWRf
bWFwPHN0ZDo6c3RyaW5nLCBUZQogICAgIHJldHVybiBtYXA7CiB9CiAKLWJvb2wgVGVzdE9wdGlv
bnM6OndlYlZpZXdJc0NvbXBhdGlibGVXaXRoT3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0
aW9ucykgY29uc3QKK2Jvb2wgVGVzdE9wdGlvbnM6OndlYlZpZXdJc0NvbXBhdGlibGVXaXRoT3B0
aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3RoZXIpIGNvbnN0CiB7Ci0gICAgaWYgKG1fZmVhdHVy
ZXMuZXhwZXJpbWVudGFsRmVhdHVyZXMgIT0gb3B0aW9ucy5tX2ZlYXR1cmVzLmV4cGVyaW1lbnRh
bEZlYXR1cmVzKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKG1fZmVhdHVyZXMuaW50
ZXJuYWxEZWJ1Z0ZlYXR1cmVzICE9IG9wdGlvbnMubV9mZWF0dXJlcy5pbnRlcm5hbERlYnVnRmVh
dHVyZXMpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAobV9mZWF0dXJlcy5ib29sV2Vi
UHJlZmVyZW5jZUZlYXR1cmVzICE9IG9wdGlvbnMubV9mZWF0dXJlcy5ib29sV2ViUHJlZmVyZW5j
ZUZlYXR1cmVzKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKG1fZmVhdHVyZXMuZG91
YmxlV2ViUHJlZmVyZW5jZUZlYXR1cmVzICE9IG9wdGlvbnMubV9mZWF0dXJlcy5kb3VibGVXZWJQ
cmVmZXJlbmNlRmVhdHVyZXMpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAobV9mZWF0
dXJlcy51aW50MzJXZWJQcmVmZXJlbmNlRmVhdHVyZXMgIT0gb3B0aW9ucy5tX2ZlYXR1cmVzLnVp
bnQzMldlYlByZWZlcmVuY2VGZWF0dXJlcykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlm
IChtX2ZlYXR1cmVzLnN0cmluZ1dlYlByZWZlcmVuY2VGZWF0dXJlcyAhPSBvcHRpb25zLm1fZmVh
dHVyZXMuc3RyaW5nV2ViUHJlZmVyZW5jZUZlYXR1cmVzKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgaWYgKG1fZmVhdHVyZXMuYm9vbFRlc3RSdW5uZXJGZWF0dXJlcyAhPSBvcHRpb25zLm1f
ZmVhdHVyZXMuYm9vbFRlc3RSdW5uZXJGZWF0dXJlcykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIGlmIChtX2ZlYXR1cmVzLmRvdWJsZVRlc3RSdW5uZXJGZWF0dXJlcyAhPSBvcHRpb25zLm1f
ZmVhdHVyZXMuZG91YmxlVGVzdFJ1bm5lckZlYXR1cmVzKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgaWYgKG1fZmVhdHVyZXMuc3RyaW5nVGVzdFJ1bm5lckZlYXR1cmVzICE9IG9wdGlvbnMu
bV9mZWF0dXJlcy5zdHJpbmdUZXN0UnVubmVyRmVhdHVyZXMpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICBpZiAobV9mZWF0dXJlcy5zdHJpbmdWZWN0b3JUZXN0UnVubmVyRmVhdHVyZXMgIT0g
b3B0aW9ucy5tX2ZlYXR1cmVzLnN0cmluZ1ZlY3RvclRlc3RSdW5uZXJGZWF0dXJlcykKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBtX2ZlYXR1cmVz
ID09IG90aGVyLm1fZmVhdHVyZXM7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFQgZmVhdHVy
ZVZhbHVlKHN0ZDo6c3RyaW5nIGtleSwgVCBkZWZhdWx0VmFsdWUsIGNvbnN0IHN0ZDo6dW5vcmRl
cmVkX21hcDxzdGQ6OnN0cmluZywgVD4mIG1hcCkKSW5kZXg6IFRvb2xzL1Rlc3RSdW5uZXJTaGFy
ZWQvVGVzdEZlYXR1cmVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0UnVubmVyU2hhcmVk
L1Rlc3RGZWF0dXJlcy5jcHAJKHJldmlzaW9uIDI2OTM2MCkKKysrIFRvb2xzL1Rlc3RSdW5uZXJT
aGFyZWQvVGVzdEZlYXR1cmVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsOCArNDIsNiBAQCB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIG1lcmdlKHN0ZDo6dW5vCiB2b2lkIG1lcmdlKFRlc3RG
ZWF0dXJlcyYgYmFzZSwgVGVzdEZlYXR1cmVzIGFkZGl0aW9uYWwpCiB7CiAgICAgLy8gRklYTUU6
IFRoaXMgc2hvdWxkIHVzZSBzdGQ6OnVub3JkZXJlZF9tYXA6Om1lcmdlIHdoZW4gaXQgaXMgYXZh
aWxhYmxlIGZvciBhbGwgcG9ydHMuCi0gICAgbWVyZ2UoYmFzZS5leHBlcmltZW50YWxGZWF0dXJl
cywgYWRkaXRpb25hbC5leHBlcmltZW50YWxGZWF0dXJlcyk7Ci0gICAgbWVyZ2UoYmFzZS5pbnRl
cm5hbERlYnVnRmVhdHVyZXMsIGFkZGl0aW9uYWwuaW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzKTsKICAg
ICBtZXJnZShiYXNlLmJvb2xXZWJQcmVmZXJlbmNlRmVhdHVyZXMsIGFkZGl0aW9uYWwuYm9vbFdl
YlByZWZlcmVuY2VGZWF0dXJlcyk7CiAgICAgbWVyZ2UoYmFzZS5kb3VibGVXZWJQcmVmZXJlbmNl
RmVhdHVyZXMsIGFkZGl0aW9uYWwuZG91YmxlV2ViUHJlZmVyZW5jZUZlYXR1cmVzKTsKICAgICBt
ZXJnZShiYXNlLnVpbnQzMldlYlByZWZlcmVuY2VGZWF0dXJlcywgYWRkaXRpb25hbC51aW50MzJX
ZWJQcmVmZXJlbmNlRmVhdHVyZXMpOwpAQCAtNTQsNiArNTIsMzIgQEAgdm9pZCBtZXJnZShUZXN0
RmVhdHVyZXMmIGJhc2UsIFRlc3RGZWF0dQogICAgIG1lcmdlKGJhc2Uuc3RyaW5nVmVjdG9yVGVz
dFJ1bm5lckZlYXR1cmVzLCBhZGRpdGlvbmFsLnN0cmluZ1ZlY3RvclRlc3RSdW5uZXJGZWF0dXJl
cyk7CiB9CiAKK2Jvb2wgb3BlcmF0b3I9PShjb25zdCBUZXN0RmVhdHVyZXMmIGEsIGNvbnN0IFRl
c3RGZWF0dXJlcyYgYikKK3sKKyAgICBpZiAoYS5ib29sV2ViUHJlZmVyZW5jZUZlYXR1cmVzICE9
IGIuYm9vbFdlYlByZWZlcmVuY2VGZWF0dXJlcykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGlmIChhLmRvdWJsZVdlYlByZWZlcmVuY2VGZWF0dXJlcyAhPSBiLmRvdWJsZVdlYlByZWZlcmVu
Y2VGZWF0dXJlcykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChhLnVpbnQzMldlYlBy
ZWZlcmVuY2VGZWF0dXJlcyAhPSBiLnVpbnQzMldlYlByZWZlcmVuY2VGZWF0dXJlcykKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChhLnN0cmluZ1dlYlByZWZlcmVuY2VGZWF0dXJlcyAh
PSBiLnN0cmluZ1dlYlByZWZlcmVuY2VGZWF0dXJlcykKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmIChhLmJvb2xUZXN0UnVubmVyRmVhdHVyZXMgIT0gYi5ib29sVGVzdFJ1bm5lckZlYXR1
cmVzKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGEuZG91YmxlVGVzdFJ1bm5lckZl
YXR1cmVzICE9IGIuZG91YmxlVGVzdFJ1bm5lckZlYXR1cmVzKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgaWYgKGEuc3RyaW5nVGVzdFJ1bm5lckZlYXR1cmVzICE9IGIuc3RyaW5nVGVzdFJ1
bm5lckZlYXR1cmVzKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGEuc3RyaW5nVmVj
dG9yVGVzdFJ1bm5lckZlYXR1cmVzICE9IGIuc3RyaW5nVmVjdG9yVGVzdFJ1bm5lckZlYXR1cmVz
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgb3Bl
cmF0b3IhPShjb25zdCBUZXN0RmVhdHVyZXMmIGEsIGNvbnN0IFRlc3RGZWF0dXJlcyYgYikKK3sK
KyAgICByZXR1cm4gIShhID09IGIpOworfQorCiBzdGF0aWMgYm9vbCBwYXRoQ29udGFpbnMoY29u
c3Qgc3RkOjpzdHJpbmcmIHBhdGhPclVSTCwgY29uc3QgY2hhciogc3Vic3RyaW5nKQogewogICAg
IHJldHVybiBwYXRoT3JVUkwuZmluZChzdWJzdHJpbmcpICE9IHN0ZDo6c3RyaW5nOjpucG9zOwpA
QCAtMTcwLDcgKzE5NCw3IEBAIHN0YXRpYyBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gcGFyc2VT
dHIKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgVGVzdEZlYXR1cmVzIHBhcnNlVGVz
dEhlYWRlcihzdGQ6OmZpbGVzeXN0ZW06OnBhdGggcGF0aCwgY29uc3Qgc3RkOjp1bm9yZGVyZWRf
bWFwPHN0ZDo6c3RyaW5nLCBUZXN0SGVhZGVyS2V5VHlwZT4mIGtleVR5cGVNYXApCitib29sIHBh
cnNlVGVzdEhlYWRlckZlYXR1cmUoVGVzdEZlYXR1cmVzJiBmZWF0dXJlcywgc3RkOjpzdHJpbmcg
a2V5LCBzdGQ6OnN0cmluZyB2YWx1ZSwgc3RkOjpmaWxlc3lzdGVtOjpwYXRoIHBhdGgsIGNvbnN0
IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgVGVzdEhlYWRlcktleVR5cGU+JiBrZXlU
eXBlTWFwKQogewogICAgIGF1dG8ga2V5VHlwZSA9IFsma2V5VHlwZU1hcF0oYXV0byYga2V5KSB7
CiAgICAgICAgIGF1dG8gaXQgPSBrZXlUeXBlTWFwLmZpbmQoa2V5KTsKQEAgLTE3OSw2ICsyMDMs
NDggQEAgc3RhdGljIFRlc3RGZWF0dXJlcyBwYXJzZVRlc3RIZWFkZXIoc3RkOgogICAgICAgICBy
ZXR1cm4gaXQtPnNlY29uZDsKICAgICB9OwogCisgICAgc3dpdGNoIChrZXlUeXBlKGtleSkpIHsK
KyAgICBjYXNlIFRlc3RIZWFkZXJLZXlUeXBlOjpCb29sV2ViUHJlZmVyZW5jZToKKyAgICAgICAg
ZmVhdHVyZXMuYm9vbFdlYlByZWZlcmVuY2VGZWF0dXJlcy5pbnNlcnRfb3JfYXNzaWduKGtleSwg
cGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKSk7CisgICAgICAgIHJldHVybiB0cnVl
OworICAgIGNhc2UgVGVzdEhlYWRlcktleVR5cGU6OkRvdWJsZVdlYlByZWZlcmVuY2U6CisgICAg
ICAgIGZlYXR1cmVzLmRvdWJsZVdlYlByZWZlcmVuY2VGZWF0dXJlcy5pbnNlcnRfb3JfYXNzaWdu
KGtleSwgcGFyc2VEb3VibGVUZXN0SGVhZGVyVmFsdWUodmFsdWUpKTsKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgY2FzZSBUZXN0SGVhZGVyS2V5VHlwZTo6VUludDMyV2ViUHJlZmVyZW5jZToK
KyAgICAgICAgZmVhdHVyZXMudWludDMyV2ViUHJlZmVyZW5jZUZlYXR1cmVzLmluc2VydF9vcl9h
c3NpZ24oa2V5LCBwYXJzZVVJbnQzMlRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSkpOworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIFRlc3RIZWFkZXJLZXlUeXBlOjpTdHJpbmdXZWJQcmVmZXJl
bmNlOgorICAgICAgICBmZWF0dXJlcy5zdHJpbmdXZWJQcmVmZXJlbmNlRmVhdHVyZXMuaW5zZXJ0
X29yX2Fzc2lnbihrZXksIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBjYXNl
IFRlc3RIZWFkZXJLZXlUeXBlOjpCb29sVGVzdFJ1bm5lcjoKKyAgICAgICAgZmVhdHVyZXMuYm9v
bFRlc3RSdW5uZXJGZWF0dXJlcy5pbnNlcnRfb3JfYXNzaWduKGtleSwgcGFyc2VCb29sZWFuVGVz
dEhlYWRlclZhbHVlKHZhbHVlKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgVGVz
dEhlYWRlcktleVR5cGU6OkRvdWJsZVRlc3RSdW5uZXI6CisgICAgICAgIGZlYXR1cmVzLmRvdWJs
ZVRlc3RSdW5uZXJGZWF0dXJlcy5pbnNlcnRfb3JfYXNzaWduKGtleSwgcGFyc2VEb3VibGVUZXN0
SGVhZGVyVmFsdWUodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBUZXN0
SGVhZGVyS2V5VHlwZTo6U3RyaW5nVGVzdFJ1bm5lcjoKKyAgICAgICAgZmVhdHVyZXMuc3RyaW5n
VGVzdFJ1bm5lckZlYXR1cmVzLmluc2VydF9vcl9hc3NpZ24oa2V5LCB2YWx1ZSk7CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIGNhc2UgVGVzdEhlYWRlcktleVR5cGU6OlN0cmluZ1JlbGF0aXZl
UGF0aFRlc3RSdW5uZXI6CisgICAgICAgIGZlYXR1cmVzLnN0cmluZ1Rlc3RSdW5uZXJGZWF0dXJl
cy5pbnNlcnRfb3JfYXNzaWduKGtleSwgcGFyc2VTdHJpbmdUZXN0SGVhZGVyVmFsdWVBc1JlbGF0
aXZlUGF0aCh2YWx1ZSwgcGF0aCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIFRl
c3RIZWFkZXJLZXlUeXBlOjpTdHJpbmdVUkxUZXN0UnVubmVyOgorICAgICAgICBmZWF0dXJlcy5z
dHJpbmdUZXN0UnVubmVyRmVhdHVyZXMuaW5zZXJ0X29yX2Fzc2lnbihrZXksIHBhcnNlU3RyaW5n
VGVzdEhlYWRlclZhbHVlQXNVUkwodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
Y2FzZSBUZXN0SGVhZGVyS2V5VHlwZTo6U3RyaW5nVmVjdG9yVGVzdFJ1bm5lcjoKKyAgICAgICAg
ZmVhdHVyZXMuc3RyaW5nVmVjdG9yVGVzdFJ1bm5lckZlYXR1cmVzLmluc2VydF9vcl9hc3NpZ24o
a2V5LCBwYXJzZVN0cmluZ1Rlc3RIZWFkZXJWYWx1ZUFzU3RyaW5nVmVjdG9yKHZhbHVlKSk7Cisg
ICAgICAgIHJldHVybiB0cnVlOworCisgICAgY2FzZSBUZXN0SGVhZGVyS2V5VHlwZTo6VW5rbm93
bjoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30K
Kworc3RhdGljIFRlc3RGZWF0dXJlcyBwYXJzZVRlc3RIZWFkZXIoc3RkOjpmaWxlc3lzdGVtOjpw
YXRoIHBhdGgsIGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgVGVzdEhlYWRl
cktleVR5cGU+JiBrZXlUeXBlTWFwKQorewogICAgIFRlc3RGZWF0dXJlcyBmZWF0dXJlczsKICAg
ICBpZiAoIXN0ZDo6ZmlsZXN5c3RlbTo6ZXhpc3RzKHBhdGgpKQogICAgICAgICByZXR1cm4gZmVh
dHVyZXM7CkBAIC0yMTQsNTMgKzI4MCwxMCBAQCBzdGF0aWMgVGVzdEZlYXR1cmVzIHBhcnNlVGVz
dEhlYWRlcihzdGQ6CiAgICAgICAgIH0KICAgICAgICAgYXV0byBrZXkgPSBwYWlyU3RyaW5nLnN1
YnN0cihwYWlyU3RhcnQsIGVxdWFsc0xvY2F0aW9uIC0gcGFpclN0YXJ0KTsKICAgICAgICAgYXV0
byB2YWx1ZSA9IHBhaXJTdHJpbmcuc3Vic3RyKGVxdWFsc0xvY2F0aW9uICsgMSwgcGFpckVuZCAt
IChlcXVhbHNMb2NhdGlvbiArIDEpKTsKLQotICAgICAgICBpZiAoa2V5LnJmaW5kKCJleHBlcmlt
ZW50YWw6IikgPT0gMCkgewotICAgICAgICAgICAga2V5ID0ga2V5LnN1YnN0cigxMyk7Ci0gICAg
ICAgICAgICBmZWF0dXJlcy5leHBlcmltZW50YWxGZWF0dXJlcy5pbnNlcnQoeyBrZXksIHBhcnNl
Qm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSkgfSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoa2V5
LnJmaW5kKCJpbnRlcm5hbDoiKSA9PSAwKSB7Ci0gICAgICAgICAgICBrZXkgPSBrZXkuc3Vic3Ry
KDkpOwotICAgICAgICAgICAgZmVhdHVyZXMuaW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzLmluc2VydCh7
IGtleSwgcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKSB9KTsKLSAgICAgICAgfQot
Ci0gICAgICAgIHN3aXRjaCAoa2V5VHlwZShrZXkpKSB7Ci0gICAgICAgIGNhc2UgVGVzdEhlYWRl
cktleVR5cGU6OkJvb2xXZWJQcmVmZXJlbmNlOgotICAgICAgICAgICAgZmVhdHVyZXMuYm9vbFdl
YlByZWZlcmVuY2VGZWF0dXJlcy5pbnNlcnQoeyBrZXksIHBhcnNlQm9vbGVhblRlc3RIZWFkZXJW
YWx1ZSh2YWx1ZSkgfSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUZXN0SGVh
ZGVyS2V5VHlwZTo6RG91YmxlV2ViUHJlZmVyZW5jZToKLSAgICAgICAgICAgIGZlYXR1cmVzLmRv
dWJsZVdlYlByZWZlcmVuY2VGZWF0dXJlcy5pbnNlcnQoeyBrZXksIHBhcnNlRG91YmxlVGVzdEhl
YWRlclZhbHVlKHZhbHVlKSB9KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFRl
c3RIZWFkZXJLZXlUeXBlOjpVSW50MzJXZWJQcmVmZXJlbmNlOgotICAgICAgICAgICAgZmVhdHVy
ZXMudWludDMyV2ViUHJlZmVyZW5jZUZlYXR1cmVzLmluc2VydCh7IGtleSwgcGFyc2VVSW50MzJU
ZXN0SGVhZGVyVmFsdWUodmFsdWUpIH0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgVGVzdEhlYWRlcktleVR5cGU6OlN0cmluZ1dlYlByZWZlcmVuY2U6Ci0gICAgICAgICAgICBm
ZWF0dXJlcy5zdHJpbmdXZWJQcmVmZXJlbmNlRmVhdHVyZXMuaW5zZXJ0KHsga2V5LCB2YWx1ZSB9
KTsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgVGVzdEhlYWRlcktleVR5cGU6
OkJvb2xUZXN0UnVubmVyOgotICAgICAgICAgICAgZmVhdHVyZXMuYm9vbFRlc3RSdW5uZXJGZWF0
dXJlcy5pbnNlcnQoeyBrZXksIHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSkgfSk7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUZXN0SGVhZGVyS2V5VHlwZTo6RG91
YmxlVGVzdFJ1bm5lcjoKLSAgICAgICAgICAgIGZlYXR1cmVzLmRvdWJsZVRlc3RSdW5uZXJGZWF0
dXJlcy5pbnNlcnQoeyBrZXksIHBhcnNlRG91YmxlVGVzdEhlYWRlclZhbHVlKHZhbHVlKSB9KTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFRlc3RIZWFkZXJLZXlUeXBlOjpTdHJp
bmdUZXN0UnVubmVyOgotICAgICAgICAgICAgZmVhdHVyZXMuc3RyaW5nVGVzdFJ1bm5lckZlYXR1
cmVzLmluc2VydCh7IGtleSwgdmFsdWUgfSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBUZXN0SGVhZGVyS2V5VHlwZTo6U3RyaW5nUmVsYXRpdmVQYXRoVGVzdFJ1bm5lcjoKLSAg
ICAgICAgICAgIGZlYXR1cmVzLnN0cmluZ1Rlc3RSdW5uZXJGZWF0dXJlcy5pbnNlcnQoeyBrZXks
IHBhcnNlU3RyaW5nVGVzdEhlYWRlclZhbHVlQXNSZWxhdGl2ZVBhdGgodmFsdWUsIHBhdGgpIH0p
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVGVzdEhlYWRlcktleVR5cGU6OlN0
cmluZ1VSTFRlc3RSdW5uZXI6Ci0gICAgICAgICAgICBmZWF0dXJlcy5zdHJpbmdUZXN0UnVubmVy
RmVhdHVyZXMuaW5zZXJ0KHsga2V5LCBwYXJzZVN0cmluZ1Rlc3RIZWFkZXJWYWx1ZUFzVVJMKHZh
bHVlKSB9KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFRlc3RIZWFkZXJLZXlU
eXBlOjpTdHJpbmdWZWN0b3JUZXN0UnVubmVyOgotICAgICAgICAgICAgZmVhdHVyZXMuc3RyaW5n
VmVjdG9yVGVzdFJ1bm5lckZlYXR1cmVzLmluc2VydCh7IGtleSwgcGFyc2VTdHJpbmdUZXN0SGVh
ZGVyVmFsdWVBc1N0cmluZ1ZlY3Rvcih2YWx1ZSkgfSk7Ci0gICAgICAgICAgICBicmVhazsKLQot
ICAgICAgICBjYXNlIFRlc3RIZWFkZXJLZXlUeXBlOjpVbmtub3duOgorICAgICAgICAKKyAgICAg
ICAgaWYgKCFwYXJzZVRlc3RIZWFkZXJGZWF0dXJlKGZlYXR1cmVzLCBrZXksIHZhbHVlLCBwYXRo
LCBrZXlUeXBlTWFwKSkKICAgICAgICAgICAgIExPR19FUlJPUigiVW5rbm93biBrZXksICclcywg
aW4gdGVzdCBoZWFkZXIgaW4gJXMiLCBrZXkuY19zdHIoKSwgcGF0aC5jX3N0cigpKTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KKyAgICAgICAgCiAgICAgICAgIHBhaXJTdGFydCA9
IHBhaXJFbmQgKyAxOwogICAgIH0KIApJbmRleDogVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9UZXN0
RmVhdHVyZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0UnVubmVyU2hhcmVkL1Rlc3RGZWF0
dXJlcy5oCShyZXZpc2lvbiAyNjkzNjApCisrKyBUb29scy9UZXN0UnVubmVyU2hhcmVkL1Rlc3RG
ZWF0dXJlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw5ICszNSw2IEBAIG5hbWVzcGFjZSBXVFIg
ewogc3RydWN0IFRlc3RDb21tYW5kOwogCiBzdHJ1Y3QgVGVzdEZlYXR1cmVzIHsKLSAgICBzdGQ6
OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIGJvb2w+IGV4cGVyaW1lbnRhbEZlYXR1cmVzOwot
ICAgIHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgYm9vbD4gaW50ZXJuYWxEZWJ1Z0Zl
YXR1cmVzOwotCiAgICAgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBib29sPiBib29s
V2ViUHJlZmVyZW5jZUZlYXR1cmVzOwogICAgIHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmlu
ZywgZG91YmxlPiBkb3VibGVXZWJQcmVmZXJlbmNlRmVhdHVyZXM7CiAgICAgc3RkOjp1bm9yZGVy
ZWRfbWFwPHN0ZDo6c3RyaW5nLCB1aW50MzJfdD4gdWludDMyV2ViUHJlZmVyZW5jZUZlYXR1cmVz
OwpAQCAtNDksNiArNDYsOSBAQCBzdHJ1Y3QgVGVzdEZlYXR1cmVzIHsKICAgICBzdGQ6OnVub3Jk
ZXJlZF9tYXA8c3RkOjpzdHJpbmcsIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPj4gc3RyaW5nVmVj
dG9yVGVzdFJ1bm5lckZlYXR1cmVzOwogfTsKIAorYm9vbCBvcGVyYXRvcj09KGNvbnN0IFRlc3RG
ZWF0dXJlcyYsIGNvbnN0IFRlc3RGZWF0dXJlcyYpOworYm9vbCBvcGVyYXRvciE9KGNvbnN0IFRl
c3RGZWF0dXJlcyYsIGNvbnN0IFRlc3RGZWF0dXJlcyYpOworCiB2b2lkIG1lcmdlKFRlc3RGZWF0
dXJlcyYgYmFzZSwgVGVzdEZlYXR1cmVzIGFkZGl0aW9uYWwpOwogCiBUZXN0RmVhdHVyZXMgaGFy
ZGNvZGVkRmVhdHVyZXNCYXNlZE9uUGF0aEZvclRlc3QoY29uc3QgVGVzdENvbW1hbmQmKTsKSW5k
ZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmNwcAkocmV2aXNpb24gMjY5MzYwKQorKysgVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYsMjUg
KzY2LDI1IEBAIHN0YXRpYyBib29sIGhhbmRsZU9wdGlvbkNvbXBsZXhUZXh0KE9wdGkKIAogc3Rh
dGljIGJvb2wgaGFuZGxlT3B0aW9uQWNjZWxlcmF0ZWREcmF3aW5nKE9wdGlvbnMmIG9wdGlvbnMs
IGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKikKIHsKLSAgICBvcHRpb25zLnNob3VsZFVzZUFjY2Vs
ZXJhdGVkRHJhd2luZyA9IHRydWU7CisgICAgb3B0aW9ucy5mZWF0dXJlcy5ib29sV2ViUHJlZmVy
ZW5jZUZlYXR1cmVzLmluc2VydF9vcl9hc3NpZ24oIkFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQi
LCB0cnVlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIGJvb2wgaGFuZGxlT3B0aW9u
UmVtb3RlTGF5ZXJUcmVlKE9wdGlvbnMmIG9wdGlvbnMsIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFy
KikKIHsKLSAgICBvcHRpb25zLnNob3VsZFVzZVJlbW90ZUxheWVyVHJlZSA9IHRydWU7CisgICAg
b3B0aW9ucy5mZWF0dXJlcy5ib29sVGVzdFJ1bm5lckZlYXR1cmVzLmluc2VydF9vcl9hc3NpZ24o
InVzZVJlbW90ZUxheWVyVHJlZSIsIHRydWUpOwogICAgIHJldHVybiB0cnVlOwogfQogCiBzdGF0
aWMgYm9vbCBoYW5kbGVPcHRpb25TaG93V2ViVmlldyhPcHRpb25zJiBvcHRpb25zLCBjb25zdCBj
aGFyKiwgY29uc3QgY2hhciopCiB7Ci0gICAgb3B0aW9ucy5zaG91bGRTaG93V2ViVmlldyA9IHRy
dWU7CisgICAgb3B0aW9ucy5mZWF0dXJlcy5ib29sVGVzdFJ1bm5lckZlYXR1cmVzLmluc2VydF9v
cl9hc3NpZ24oInNob3VsZFNob3dXZWJWaWV3IiwgdHJ1ZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKIHN0YXRpYyBib29sIGhhbmRsZU9wdGlvblNob3dUb3VjaGVzKE9wdGlvbnMmIG9wdGlvbnMs
IGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKikKIHsKLSAgICBvcHRpb25zLnNob3VsZFNob3dUb3Vj
aGVzID0gdHJ1ZTsKKyAgICBvcHRpb25zLmZlYXR1cmVzLmJvb2xUZXN0UnVubmVyRmVhdHVyZXMu
aW5zZXJ0X29yX2Fzc2lnbigic2hvdWxkU2hvd1RvdWNoZXMiLCB0cnVlKTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIApAQCAtMTE0LDcgKzExNCw3IEBAIHN0YXRpYyBib29sIGhhbmRsZU9wdGlvbkFs
bG93ZWRIb3N0KE9wdGkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgcGFyc2VG
ZWF0dXJlKHN0ZDo6c3RyaW5nX3ZpZXcgZmVhdHVyZVN0cmluZywgc3RkOjp1bm9yZGVyZWRfbWFw
PHN0ZDo6c3RyaW5nLCBib29sPiYgZmVhdHVyZXMpCitzdGF0aWMgYm9vbCBwYXJzZUZlYXR1cmUo
c3RkOjpzdHJpbmdfdmlldyBmZWF0dXJlU3RyaW5nLCBUZXN0RmVhdHVyZXMmIGZlYXR1cmVzKQog
ewogICAgIGF1dG8gc3RyaW5ncyA9IHNwbGl0KGZlYXR1cmVTdHJpbmcsICc9Jyk7CiAgICAgaWYg
KHN0cmluZ3MuZW1wdHkoKSB8fCBzdHJpbmdzLnNpemUoKSA+IDIpCkBAIC0xMjMsMTggKzEyMywx
OSBAQCBzdGF0aWMgYm9vbCBwYXJzZUZlYXR1cmUoc3RkOjpzdHJpbmdfdmllCiAgICAgYXV0byBm
ZWF0dXJlTmFtZSA9IHN0cmluZ3NbMF07CiAgICAgYm9vbCBlbmFibGVkID0gc3RyaW5ncy5zaXpl
KCkgPT0gMSB8fCBzdHJpbmdzWzFdID09ICJ0cnVlIjsKIAotICAgIGZlYXR1cmVzLmluc2VydCh7
IHN0ZDo6c3RyaW5nIHsgZmVhdHVyZU5hbWUgfSwgZW5hYmxlZCB9KTsKKyAgICAvLyBGSVhNRTog
R2VuZXJhbGl6ZSB0aGlzIHRvIHdvcmsgZm9yIGFueSB0eXBlIG9mIHdlYiBwcmVmZXJlbmNlIHVz
aW5nIHRlc3QgaGVhZGVyIGxvZ2ljIGluIFRlc3RGZWF0dXJlcy5jcHAKKyAgICBmZWF0dXJlcy5i
b29sV2ViUHJlZmVyZW5jZUZlYXR1cmVzLmluc2VydCh7IHN0ZDo6c3RyaW5nIHsgZmVhdHVyZU5h
bWUgfSwgZW5hYmxlZCB9KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIGJvb2wgaGFu
ZGxlT3B0aW9uRXhwZXJpbWVudGFsRmVhdHVyZShPcHRpb25zJiBvcHRpb25zLCBjb25zdCBjaGFy
KiwgY29uc3QgY2hhciogZmVhdHVyZSkKIHsKLSAgICByZXR1cm4gcGFyc2VGZWF0dXJlKGZlYXR1
cmUsIG9wdGlvbnMuZXhwZXJpbWVudGFsRmVhdHVyZXMpOworICAgIHJldHVybiBwYXJzZUZlYXR1
cmUoZmVhdHVyZSwgb3B0aW9ucy5mZWF0dXJlcyk7CiB9CiAKIHN0YXRpYyBib29sIGhhbmRsZU9w
dGlvbkludGVybmFsRmVhdHVyZShPcHRpb25zJiBvcHRpb25zLCBjb25zdCBjaGFyKiwgY29uc3Qg
Y2hhciogZmVhdHVyZSkKIHsKLSAgICByZXR1cm4gcGFyc2VGZWF0dXJlKGZlYXR1cmUsIG9wdGlv
bnMuaW50ZXJuYWxGZWF0dXJlcyk7CisgICAgcmV0dXJuIHBhcnNlRmVhdHVyZShmZWF0dXJlLCBv
cHRpb25zLmZlYXR1cmVzKTsKIH0KIAogc3RhdGljIGJvb2wgaGFuZGxlT3B0aW9uVW5tYXRjaGVk
KE9wdGlvbnMmIG9wdGlvbnMsIGNvbnN0IGNoYXIqIG9wdGlvbiwgY29uc3QgY2hhciopCkluZGV4
OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL09wdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL09wdGlvbnMuaAkocmV2aXNpb24gMjY5MzYwKQorKysgVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9PcHRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAK
IAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJUZXN0RmVhdHVyZXMuaCIKICNpbmNsdWRlIDxm
dW5jdGlvbmFsPgogI2luY2x1ZGUgPHNldD4KICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtNDYsMTAg
KzQ3LDYgQEAgc3RydWN0IE9wdGlvbnMgewogICAgIGJvb2wgZ2NCZXR3ZWVuVGVzdHMgeyBmYWxz
ZSB9OwogICAgIGJvb2wgc2hvdWxkRHVtcFBpeGVsc0ZvckFsbFRlc3RzIHsgZmFsc2UgfTsKICAg
ICBib29sIGZvcmNlQ29tcGxleFRleHQgeyBmYWxzZSB9OwotICAgIGJvb2wgc2hvdWxkVXNlQWNj
ZWxlcmF0ZWREcmF3aW5nIHsgZmFsc2UgfTsKLSAgICBib29sIHNob3VsZFVzZVJlbW90ZUxheWVy
VHJlZSB7IGZhbHNlIH07Ci0gICAgYm9vbCBzaG91bGRTaG93V2ViVmlldyB7IGZhbHNlIH07Ci0g
ICAgYm9vbCBzaG91bGRTaG93VG91Y2hlcyB7IGZhbHNlIH07CiAgICAgYm9vbCBjaGVja0Zvcldv
cmxkTGVha3MgeyBmYWxzZSB9OwogICAgIGJvb2wgYWxsb3dBbnlIVFRQU0NlcnRpZmljYXRlRm9y
QWxsb3dlZEhvc3RzIHsgZmFsc2UgfTsKICNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRF
RF9UUkVFKQpAQCAtNTcsOCArNTQsNyBAQCBzdHJ1Y3QgT3B0aW9ucyB7CiAjZW5kaWYKICAgICBz
dGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gcGF0aHM7CiAgICAgc3RkOjpzZXQ8c3RkOjpzdHJpbmc+
IGFsbG93ZWRIb3N0czsKLSAgICBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIGJvb2w+
IGludGVybmFsRmVhdHVyZXM7Ci0gICAgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBi
b29sPiBleHBlcmltZW50YWxGZWF0dXJlczsKKyAgICBUZXN0RmVhdHVyZXMgZmVhdHVyZXM7CiB9
OwogCiBjbGFzcyBPcHRpb24gewpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAJKHJldmlzaW9uIDI2OTM2MCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NjgsMTQgKzQ2OCw3IEBAIHZv
aWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MKICAgICBtX2FsbG93ZWRIb3N0
cyA9IG9wdGlvbnMuYWxsb3dlZEhvc3RzOwogICAgIG1fY2hlY2tGb3JXb3JsZExlYWtzID0gb3B0
aW9ucy5jaGVja0ZvcldvcmxkTGVha3M7CiAgICAgbV9hbGxvd0FueUhUVFBTQ2VydGlmaWNhdGVG
b3JBbGxvd2VkSG9zdHMgPSBvcHRpb25zLmFsbG93QW55SFRUUFNDZXJ0aWZpY2F0ZUZvckFsbG93
ZWRIb3N0czsKLQotICAgIG1fZ2xvYmFsRmVhdHVyZXMgPSBUZXN0T3B0aW9uczo6ZGVmYXVsdHMo
KTsKLSAgICBtX2dsb2JhbEZlYXR1cmVzLmludGVybmFsRGVidWdGZWF0dXJlcyA9IG9wdGlvbnMu
aW50ZXJuYWxGZWF0dXJlczsKLSAgICBtX2dsb2JhbEZlYXR1cmVzLmV4cGVyaW1lbnRhbEZlYXR1
cmVzID0gb3B0aW9ucy5leHBlcmltZW50YWxGZWF0dXJlczsKLSAgICBtX2dsb2JhbEZlYXR1cmVz
LmJvb2xXZWJQcmVmZXJlbmNlRmVhdHVyZXMuaW5zZXJ0X29yX2Fzc2lnbigiQWNjZWxlcmF0ZWRE
cmF3aW5nRW5hYmxlZCIsIG9wdGlvbnMuc2hvdWxkVXNlQWNjZWxlcmF0ZWREcmF3aW5nKTsKLSAg
ICBtX2dsb2JhbEZlYXR1cmVzLmJvb2xUZXN0UnVubmVyRmVhdHVyZXMuaW5zZXJ0X29yX2Fzc2ln
bigidXNlUmVtb3RlTGF5ZXJUcmVlIiwgb3B0aW9ucy5zaG91bGRVc2VSZW1vdGVMYXllclRyZWUp
OwotICAgIG1fZ2xvYmFsRmVhdHVyZXMuYm9vbFRlc3RSdW5uZXJGZWF0dXJlcy5pbnNlcnRfb3Jf
YXNzaWduKCJzaG91bGRTaG93V2ViVmlldyIsIG9wdGlvbnMuc2hvdWxkU2hvd1dlYlZpZXcpOwot
ICAgIG1fZ2xvYmFsRmVhdHVyZXMuYm9vbFRlc3RSdW5uZXJGZWF0dXJlcy5pbnNlcnRfb3JfYXNz
aWduKCJzaG91bGRTaG93VG91Y2hlcyIsIG9wdGlvbnMuc2hvdWxkU2hvd1RvdWNoZXMpOworICAg
IG1fZ2xvYmFsRmVhdHVyZXMgPSBzdGQ6Om1vdmUob3B0aW9ucy5mZWF0dXJlcyk7CiAKICNpZiBF
TkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQogICAgIG1fYWNjZXNzaWJpbGl0eUlz
b2xhdGVkVHJlZU1vZGUgPSBvcHRpb25zLmFjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVNb2RlOwpA
QCAtODM2LDIzICs4MjksNiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2Vz
VG9DCiAgICAgV0tQcmVmZXJlbmNlc1Jlc2V0VGVzdFJ1bm5lck92ZXJyaWRlcyhwcmVmZXJlbmNl
cyk7CiAKICAgICBXS1ByZWZlcmVuY2VzRW5hYmxlQWxsRXhwZXJpbWVudGFsRmVhdHVyZXMocHJl
ZmVyZW5jZXMpOwotICAgIGZvciAoY29uc3QgYXV0byYgW2tleSwgdmFsdWVdIDogb3B0aW9ucy5l
eHBlcmltZW50YWxGZWF0dXJlcygpKQotICAgICAgICBXS1ByZWZlcmVuY2VzU2V0RXhwZXJpbWVu
dGFsRmVhdHVyZUZvcktleShwcmVmZXJlbmNlcywgdmFsdWUsIHRvV0soa2V5KS5nZXQoKSk7Ci0K
LSAgICBXS1ByZWZlcmVuY2VzUmVzZXRBbGxJbnRlcm5hbERlYnVnRmVhdHVyZXMocHJlZmVyZW5j
ZXMpOwotCi0gICAgLy8gU2V0IGludGVybmFsIGZlYXR1cmVzIHRoYXQgaGF2ZSBkaWZmZXJlbnQg
ZGVmYXVsdCB2YWx1ZXMgZm9yIHRlc3RpbmcuCi0gICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFs
RGVidWdGZWF0dXJlRm9yS2V5KHByZWZlcmVuY2VzLCBmYWxzZSwgdG9XSygiQXN5bmNPdmVyZmxv
d1Njcm9sbGluZ0VuYWJsZWQiKS5nZXQoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFs
RGVidWdGZWF0dXJlRm9yS2V5KHByZWZlcmVuY2VzLCBmYWxzZSwgdG9XSygiQXN5bmNGcmFtZVNj
cm9sbGluZ0VuYWJsZWQiKS5nZXQoKSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVi
dWdGZWF0dXJlRm9yS2V5KHByZWZlcmVuY2VzLCB0cnVlLCB0b1dLKCJJbnB1dFR5cGVEYXRlRW5h
YmxlZCIpLmdldCgpKTsKLSAgICBXS1ByZWZlcmVuY2VzU2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVG
b3JLZXkocHJlZmVyZW5jZXMsIHRydWUsIHRvV0soIklucHV0VHlwZURhdGVUaW1lTG9jYWxFbmFi
bGVkIikuZ2V0KCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZv
cktleShwcmVmZXJlbmNlcywgdHJ1ZSwgdG9XSygiSW5wdXRUeXBlTW9udGhFbmFibGVkIikuZ2V0
KCkpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZvcktleShwcmVm
ZXJlbmNlcywgdHJ1ZSwgdG9XSygiSW5wdXRUeXBlVGltZUVuYWJsZWQiKS5nZXQoKSk7Ci0gICAg
V0tQcmVmZXJlbmNlc1NldEludGVybmFsRGVidWdGZWF0dXJlRm9yS2V5KHByZWZlcmVuY2VzLCB0
cnVlLCB0b1dLKCJJbnB1dFR5cGVXZWVrRW5hYmxlZCIpLmdldCgpKTsKLSAgICBXS1ByZWZlcmVu
Y2VzU2V0SW50ZXJuYWxEZWJ1Z0ZlYXR1cmVGb3JLZXkocHJlZmVyZW5jZXMsIGZhbHNlLCB0b1dL
KCJTcGVha2VyU2VsZWN0aW9uUmVxdWlyZXNVc2VyR2VzdHVyZSIpLmdldCgpKTsKLQotICAgIGZv
ciAoY29uc3QgYXV0byYgW2tleSwgdmFsdWVdICA6IG9wdGlvbnMuaW50ZXJuYWxEZWJ1Z0ZlYXR1
cmVzKCkpCi0gICAgICAgIFdLUHJlZmVyZW5jZXNTZXRJbnRlcm5hbERlYnVnRmVhdHVyZUZvcktl
eShwcmVmZXJlbmNlcywgdmFsdWUsIHRvV0soa2V5KS5nZXQoKSk7CiAKICAgICAvLyBGSVhNRTog
Q29udmVydCB0aGVzZSB0byBkZWZhdWx0IHZhbHVlcyBmb3IgVGVzdE9wdGlvbnMuCiAgICAgV0tQ
cmVmZXJlbmNlc1NldFByb2Nlc3NTd2FwT25OYXZpZ2F0aW9uRW5hYmxlZChwcmVmZXJlbmNlcywg
b3B0aW9ucy5zaG91bGRFbmFibGVQcm9jZXNzU3dhcE9uTmF2aWdhdGlvbigpKTsKQEAgLTEyNzks
NyArMTI1NSw4IEBAIFdLVVJMUmVmIFRlc3RDb250cm9sbGVyOjpjcmVhdGVUZXN0VVJMKGMKIAog
VGVzdE9wdGlvbnMgVGVzdENvbnRyb2xsZXI6OnRlc3RPcHRpb25zRm9yVGVzdChjb25zdCBUZXN0
Q29tbWFuZCYgY29tbWFuZCkgY29uc3QKIHsKLSAgICBUZXN0RmVhdHVyZXMgZmVhdHVyZXMgPSBt
X2dsb2JhbEZlYXR1cmVzOworICAgIFRlc3RGZWF0dXJlcyBmZWF0dXJlcyA9IFRlc3RPcHRpb25z
OjpkZWZhdWx0cygpOworICAgIG1lcmdlKGZlYXR1cmVzLCBtX2dsb2JhbEZlYXR1cmVzKTsKICAg
ICBtZXJnZShmZWF0dXJlcywgaGFyZGNvZGVkRmVhdHVyZXNCYXNlZE9uUGF0aEZvclRlc3QoY29t
bWFuZCkpOwogICAgIG1lcmdlKGZlYXR1cmVzLCBwbGF0Zm9ybVNwZWNpZmljRmVhdHVyZURlZmF1
bHRzRm9yVGVzdChjb21tYW5kKSk7CiAgICAgbWVyZ2UoZmVhdHVyZXMsIGZlYXR1cmVEZWZhdWx0
c0Zyb21UZXN0SGVhZGVyRm9yVGVzdChjb21tYW5kLCBUZXN0T3B0aW9uczo6a2V5VHlwZU1hcHBp
bmcoKSkpOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAJKHJldmlz
aW9uIDI2OTM2MCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zOCw5ICszOCwxMiBAQCBjb25zdCBUZXN0RmVhdHVyZXMmIFRlc3RP
cHRpb25zOjpkZWZhdWx0CiAgICAgICAgIGZlYXR1cmVzLmJvb2xXZWJQcmVmZXJlbmNlRmVhdHVy
ZXMgPSB7CiAgICAgICAgICAgICAvLyBUaGVzZSBhcmUgV2ViUHJlZmVyZW5jZSB2YWx1ZXMgdGhh
dCBtdXN0IGFsd2F5cyBiZSBzZXQgYXMgdGhleSBtYXkKICAgICAgICAgICAgIC8vIGRpZmZlciBm
cm9tIHRoZSBkZWZhdWx0IHNldCBpbiB0aGUgV2ViUHJlZmVyZW5jZXMqLnlhbWwgY29uZmlndXJh
dGlvbi4KKyAgICAgICAgICAgIHsgIkFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQiLCBmYWxzZSB9
LAogICAgICAgICAgICAgeyAiQWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzIiwgdHJ1ZSB9LAog
ICAgICAgICAgICAgeyAiQWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyIsIHRydWUgfSwKICAg
ICAgICAgICAgIHsgIkFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzIiwgdHJ1ZSB9LAor
ICAgICAgICAgICAgeyAiQXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQiLCBmYWxzZSB9LAorICAg
ICAgICAgICAgeyAiQXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQiLCBmYWxzZSB9LAogICAg
ICAgICAgICAgeyAiQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCIsIGZhbHNlIH0sCiAg
ICAgICAgICAgICB7ICJDYXB0dXJlQXVkaW9JblVJUHJvY2Vzc0VuYWJsZWQiLCBmYWxzZSB9LAog
ICAgICAgICAgICAgeyAiQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5hYmxlZCIsIGZhbHNlIH0s
CkBAIC00OCw2ICs1MSwxMSBAQCBjb25zdCBUZXN0RmVhdHVyZXMmIFRlc3RPcHRpb25zOjpkZWZh
dWx0CiAgICAgICAgICAgICB7ICJET01QYXN0ZUFsbG93ZWQiLCB0cnVlIH0sCiAgICAgICAgICAg
ICB7ICJGcmFtZUZsYXR0ZW5pbmdFbmFibGVkIiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgIkdl
bmVyaWNDdWVBUElFbmFibGVkIiwgZmFsc2UgfSwKKyAgICAgICAgICAgIHsgIklucHV0VHlwZURh
dGVFbmFibGVkIiwgdHJ1ZSB9LAorICAgICAgICAgICAgeyAiSW5wdXRUeXBlRGF0ZVRpbWVMb2Nh
bEVuYWJsZWQiLCB0cnVlIH0sCisgICAgICAgICAgICB7ICJJbnB1dFR5cGVNb250aEVuYWJsZWQi
LCB0cnVlIH0sCisgICAgICAgICAgICB7ICJJbnB1dFR5cGVUaW1lRW5hYmxlZCIsIHRydWUgfSwK
KyAgICAgICAgICAgIHsgIklucHV0VHlwZVdlZWtFbmFibGVkIiwgdHJ1ZSB9LAogICAgICAgICAg
ICAgeyAiSmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCIsIHRydWUgfSwKICAgICAgICAgICAg
IHsgIkphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkiLCB0cnVlIH0sCiAgICAg
ICAgICAgICB7ICJNb2NrU2Nyb2xsYmFyc0VuYWJsZWQiLCB0cnVlIH0sCkBAIC01Nyw2ICs2NSw3
IEBAIGNvbnN0IFRlc3RGZWF0dXJlcyYgVGVzdE9wdGlvbnM6OmRlZmF1bHQKICAgICAgICAgICAg
IHsgIk9mZnNjcmVlbkNhbnZhc0VuYWJsZWQiLCB0cnVlIH0sCiAgICAgICAgICAgICB7ICJQYWdl
VmlzaWJpbGl0eUJhc2VkUHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCIsIGZhbHNlIH0sCiAgICAg
ICAgICAgICB7ICJQbHVnaW5zRW5hYmxlZCIsIHRydWUgfSwKKyAgICAgICAgICAgIHsgIlNwZWFr
ZXJTZWxlY3Rpb25SZXF1aXJlc1VzZXJHZXN0dXJlIiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsg
IlVzZXNCYWNrRm9yd2FyZENhY2hlIiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgIldlYkF1dGhl
bnRpY2F0aW9uRW5hYmxlZCIsIHRydWUgfSwKICAgICAgICAgICAgIHsgIlhTU0F1ZGl0b3JFbmFi
bGVkIiwgZmFsc2UgfSwKQEAgLTE1MSwyOSArMTYwLDkgQEAgY29uc3Qgc3RkOjp1bm9yZGVyZWRf
bWFwPHN0ZDo6c3RyaW5nLCBUZQogICAgIHJldHVybiBtYXA7CiB9CiAKLWJvb2wgVGVzdE9wdGlv
bnM6Omhhc1NhbWVJbml0aWFsaXphdGlvbk9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlv
bnMpIGNvbnN0Citib29sIFRlc3RPcHRpb25zOjpoYXNTYW1lSW5pdGlhbGl6YXRpb25PcHRpb25z
KGNvbnN0IFRlc3RPcHRpb25zJiBvdGhlcikgY29uc3QKIHsKLSAgICBpZiAobV9mZWF0dXJlcy5l
eHBlcmltZW50YWxGZWF0dXJlcyAhPSBvcHRpb25zLm1fZmVhdHVyZXMuZXhwZXJpbWVudGFsRmVh
dHVyZXMpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAobV9mZWF0dXJlcy5pbnRlcm5h
bERlYnVnRmVhdHVyZXMgIT0gb3B0aW9ucy5tX2ZlYXR1cmVzLmludGVybmFsRGVidWdGZWF0dXJl
cykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChtX2ZlYXR1cmVzLmJvb2xXZWJQcmVm
ZXJlbmNlRmVhdHVyZXMgIT0gb3B0aW9ucy5tX2ZlYXR1cmVzLmJvb2xXZWJQcmVmZXJlbmNlRmVh
dHVyZXMpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAobV9mZWF0dXJlcy5kb3VibGVX
ZWJQcmVmZXJlbmNlRmVhdHVyZXMgIT0gb3B0aW9ucy5tX2ZlYXR1cmVzLmRvdWJsZVdlYlByZWZl
cmVuY2VGZWF0dXJlcykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChtX2ZlYXR1cmVz
LnVpbnQzMldlYlByZWZlcmVuY2VGZWF0dXJlcyAhPSBvcHRpb25zLm1fZmVhdHVyZXMudWludDMy
V2ViUHJlZmVyZW5jZUZlYXR1cmVzKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKG1f
ZmVhdHVyZXMuc3RyaW5nV2ViUHJlZmVyZW5jZUZlYXR1cmVzICE9IG9wdGlvbnMubV9mZWF0dXJl
cy5zdHJpbmdXZWJQcmVmZXJlbmNlRmVhdHVyZXMpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICBpZiAobV9mZWF0dXJlcy5ib29sVGVzdFJ1bm5lckZlYXR1cmVzICE9IG9wdGlvbnMubV9mZWF0
dXJlcy5ib29sVGVzdFJ1bm5lckZlYXR1cmVzKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
aWYgKG1fZmVhdHVyZXMuZG91YmxlVGVzdFJ1bm5lckZlYXR1cmVzICE9IG9wdGlvbnMubV9mZWF0
dXJlcy5kb3VibGVUZXN0UnVubmVyRmVhdHVyZXMpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICBpZiAobV9mZWF0dXJlcy5zdHJpbmdUZXN0UnVubmVyRmVhdHVyZXMgIT0gb3B0aW9ucy5tX2Zl
YXR1cmVzLnN0cmluZ1Rlc3RSdW5uZXJGZWF0dXJlcykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIGlmIChtX2ZlYXR1cmVzLnN0cmluZ1ZlY3RvclRlc3RSdW5uZXJGZWF0dXJlcyAhPSBvcHRp
b25zLm1fZmVhdHVyZXMuc3RyaW5nVmVjdG9yVGVzdFJ1bm5lckZlYXR1cmVzKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIG1fZmVhdHVyZXMgPT0g
b3RoZXIubV9mZWF0dXJlczsKIH0KIAogYm9vbCBUZXN0T3B0aW9uczo6Ym9vbFdlYlByZWZlcmVu
Y2VGZWF0dXJlVmFsdWUoc3RkOjpzdHJpbmcga2V5LCBib29sIGRlZmF1bHRWYWx1ZSkgY29uc3QK
SW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgJKHJldmlzaW9uIDI2OTM2MCkK
KysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaAkod29ya2luZyBjb3B5KQpA
QCAtODYsOSArODYsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBlbmFibGVQcm9jZXNzU3dh
cE9uTmF2aWdhdGlvbigpIHx8IGVuYWJsZVByb2Nlc3NTd2FwT25XaW5kb3dPcGVuKCk7CiAgICAg
fQogCi0gICAgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBib29sPiYgZXhw
ZXJpbWVudGFsRmVhdHVyZXMoKSBjb25zdCB7IHJldHVybiBtX2ZlYXR1cmVzLmV4cGVyaW1lbnRh
bEZlYXR1cmVzOyB9Ci0gICAgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBi
b29sPiYgaW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzKCkgY29uc3QgeyByZXR1cm4gbV9mZWF0dXJlcy5p
bnRlcm5hbERlYnVnRmVhdHVyZXM7IH0KLQogICAgIGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxz
dGQ6OnN0cmluZywgYm9vbD4mIGJvb2xXZWJQcmVmZXJlbmNlRmVhdHVyZXMoKSBjb25zdCB7IHJl
dHVybiBtX2ZlYXR1cmVzLmJvb2xXZWJQcmVmZXJlbmNlRmVhdHVyZXM7IH0KICAgICBjb25zdCBz
dGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIGRvdWJsZT4mIGRvdWJsZVdlYlByZWZlcmVu
Y2VGZWF0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fZmVhdHVyZXMuZG91YmxlV2ViUHJlZmVyZW5j
ZUZlYXR1cmVzOyB9CiAgICAgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCB1
aW50MzJfdD4mIHVpbnQzMldlYlByZWZlcmVuY2VGZWF0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1f
ZmVhdHVyZXMudWludDMyV2ViUHJlZmVyZW5jZUZlYXR1cmVzOyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>