<?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>209629</bug_id>
          
          <creation_ts>2020-03-26 16:40:51 -0700</creation_ts>
          <short_desc>Clean up fast/scrolling/latching tests</short_desc>
          <delta_ts>2020-03-27 10:05:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1634641</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-26 16:40:51 -0700</bug_when>
    <thetext>Clean up fast/scrolling/latching tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634642</commentid>
    <comment_count>1</comment_count>
      <attachid>394676</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-26 16:42:39 -0700</bug_when>
    <thetext>Created attachment 394676
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634645</commentid>
    <comment_count>2</comment_count>
      <attachid>394677</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-26 16:47:47 -0700</bug_when>
    <thetext>Created attachment 394677
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634750</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-26 23:16:56 -0700</bug_when>
    <thetext>ChangeLog entry in LayoutTests/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634844</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-27 10:04:36 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/259121/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634845</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-27 10:05:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/60972636&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394676</attachid>
            <date>2020-03-26 16:42:39 -0700</date>
            <delta_ts>2020-03-26 16:43:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209629-20200326164238.patch</filename>
            <type>text/plain</type>
            <size>143579</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MDE1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDYwMjFmMWNhNWMwMTgyZmM3MjEy
ZDUxNWEwMThjZjdjNzU4NTRmZi4uNTk4ZGIyMDI4YmYwMjUzYjk2ODkxMjY4ZWU0ZWY4MWM5NGJi
MjIzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIwLTAzLTI2ICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENsZWFuIHVwIGZhc3Qvc2Nyb2xsaW5n
L2xhdGNoaW5nIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDk2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAg
ICAgICAgCisgICAgICAgIFRoZXNlIHRlc3RzIGhhZCBhIGJ1bmNoIG9mIGlzc3VlczoKKyAgICAg
ICAgICAgIC0gbWl4dHVyZSBvZiB3YWl0VW50aWxEb25lL2pzVGVzdElzQXN5bmMKKyAgICAgICAg
ICAgIC0gbm90IGFsbCB1c2VkIGV2ZW50U2VuZGVyLm1vbml0b3JXaGVlbEV2ZW50cworICAgICAg
ICAgICAgLSBzY3JpcHQgaW4gdGhlIGJvZHkgZm9yIG5vIHJlYXNvbgorICAgICAgICAgICAgLSBj
b21tZW50ZWQgb3V0IGNvZGUsIHVudXNlZCB2YXJpYWJsZXMKKyAgICAgICAgICAgIC0gY29uZnVz
aW5nIGNvbW1lbnRzCisgICAgICAgICAgICAtIGNvbnRyYWRpY3RvcnkgdGVzdCBjb250ZW50CisK
KyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9sYXRjaGluZy9pZnJhbWVfaW5faWZyYW1lLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9sYXRjaGluZy9pZnJhbWVfaW5faWZy
YW1lLmh0bWw6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvcmVzb3VyY2VzL2lu
bmVyX2NvbnRlbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9sYXRjaGluZy9yZXNv
dXJjZXMvc2Nyb2xsX25lc3RlZF9pZnJhbWVfdGVzdF9pbm5lci5odG1sOgorICAgICAgICAqIGZh
c3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1kaXYtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1k
aXYuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtZGl2LWxh
dGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9s
YXRjaGluZy9zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWw6CisgICAgICAgICogZmFz
dC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWRpdi1uby1sYXRjaGluZy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWRpdi1uby1sYXRjaGlu
Zy5odG1sOgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1kaXYtd2l0
aC1uZXN0ZWQtbm9uc2Nyb2xsYWJsZS1pZnJhbWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZh
c3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1kaXYtd2l0aC1uZXN0ZWQtbm9uc2Nyb2xsYWJs
ZS1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwt
aWZyYW1lLWZyYWdtZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9s
YXRjaGluZy9zY3JvbGwtaWZyYW1lLWZyYWdtZW50Lmh0bWw6CisgICAgICAgICogZmFzdC9zY3Jv
bGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWlmcmFtZS1pbi1vdmVyZmxvdy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWlmcmFtZS1pbi1vdmVyZmxv
dy5odG1sOgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1pZnJhbWUt
bGF0Y2hlZC1pZnJhbWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2xh
dGNoaW5nL3Njcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiBmYXN0
L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtaWZyYW1l
LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvbGF0Y2hp
bmcvc2Nyb2xsLWlmcmFtZS13ZWJraXQxLWxhdGNoaW5nLWJ1Zy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWlmcmFtZS13ZWJraXQxLWxhdGNo
aW5nLWJ1Zy5odG1sOgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1s
YXRjaGVkLW5lc3RlZC1kaXYtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5n
L2xhdGNoaW5nL3Njcm9sbC1sYXRjaGVkLW5lc3RlZC1kaXYuaHRtbDoKKyAgICAgICAgKiBmYXN0
L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtbmVzdGVkLWlmcmFtZS1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLW5lc3RlZC1pZnJhbWUuaHRt
bDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtc2VsZWN0LWJvdHRv
bS10ZXN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9sYXRjaGluZy9z
Y3JvbGwtc2VsZWN0LWJvdHRvbS10ZXN0Lmh0bWw6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcv
bGF0Y2hpbmcvc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1h
aW5mcmFtZS5odG1sOgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1z
ZWxlY3QtbGF0Y2hlZC1zZWxlY3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qvc2Nyb2xs
aW5nL2xhdGNoaW5nL3Njcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3QuaHRtbDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjAtMDMtMjUgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRmxhc2hpbmcgYW5k
IHBhcnRseSB2aXNpYmxlIGVsZW1lbnRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9sYXRjaGluZy9pZnJhbWVfaW5faWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL2lmcmFtZV9pbl9pZnJhbWUtZXhwZWN0ZWQudHh0
CmluZGV4IGEzZGFlMDZlZTY1ZTg4MjZkNzNhNmM4YWZkZmIzYjQzMmNjMWEzZTguLjJmM2UzMzk4
YTcyNTY0YThhZDQzNGVmOGJkNWE1NmUxYzA3N2NlMmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL2lmcmFtZV9pbl9pZnJhbWUtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL2lmcmFtZV9pbl9pZnJhbWUt
ZXhwZWN0ZWQudHh0CkBAIC01LDkgKzUsNiBAQCBUZXN0cyB0aGF0IGlmcmFtZSBkb2Vzbid0IHBh
c3Mgd2hlZWwgZXZlbnRzIHRvIG1haW4gZnJhbWUgd2hlbiBzY3JvbGxpbmcgaW5zaWRlCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQotCi1URVNUIENPTVBMRVRFCiBQQVNTIFBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50
cy4KIFBBU1MgaWZyYW1lIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuCiBQQVNTIGlmcmFt
ZSByZWNlaXZlZCB3aGVlbCBldmVudHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9sYXRjaGluZy9pZnJhbWVfaW5faWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9sYXRjaGluZy9pZnJhbWVfaW5faWZyYW1lLmh0bWwKaW5kZXggNDhiYjkxNWZk
ZjJhODY0OTA1MWM1NWI2NDc3ODYxY2ViYzc5NTI0MC4uM2EwMTZiZjI0NjBkOWQwZjQ0YmVmMDI4
N2E3N2RmZThhZjMwZjc4YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
bGF0Y2hpbmcvaWZyYW1lX2luX2lmcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2xhdGNoaW5nL2lmcmFtZV9pbl9pZnJhbWUuaHRtbApAQCAtMSwxMTEgKzEsMTExIEBA
CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8dGl0bGU+aUZy
YW1lIGluIGlGcmFtZSBUZXN0PC90aXRsZT4KLSAgICAgICAgPHN0eWxlPgotICAgICAgICAqIHsK
LSAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cis8aGVhZD4KKyAgICA8c3R5bGU+
CisgICAgKiB7CisgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgfQorCisgICAg
LmNvbnRhaW5lciB7CisgICAgICAgIHdpZHRoOjEwMCU7CisgICAgICAgIG92ZXJmbG93OmF1dG87
CisgICAgICAgIGhlaWdodDphdXRvOworICAgIH0KKworICAgIC5pbm5lcmNvbnRhaW5lciB7Cisg
ICAgICAgIGhlaWdodDoxMDAlOworICAgICAgICB3aWR0aDo1MCU7CisgICAgfQorICAgIDwvc3R5
bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisK
KyAgICAgICAgdmFyIGlmcmFtZVRhcmdldDsKKyAgICAgICAgdmFyIGlubmVySUZyYW1lVGFyZ2V0
OworICAgICAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlOworICAgICAgICB2YXIgaWZy
YW1lU2Nyb2xsUG9zaXRpb25CZWZvcmU7CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tGb3JTY3Jv
bGwoKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBUaGUgaWZyYW1lIHNob3VsZCBub3QgaGF2
ZSBzY3JvbGxlZCBhdCBhbGwuCisgICAgICAgICAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0
ZXIgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKKyAgICAgICAgICAgIHZh
ciBpZnJhbWVTY3JvbGxQb3NpdGlvbkFmdGVyID0gd2luZG93LmZyYW1lc1sndGFyZ2V0J10uZG9j
dW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7CisgICAgICAgICAgICB2YXIgaW5uZXJJ
RnJhbWVTY3JvbGxQb3NpdGlvbkFmdGVyID0gaWZyYW1lVGFyZ2V0LmNvbnRlbnRXaW5kb3cuZnJh
bWVzWyd0YXJnZXQnXS5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKKworICAg
ICAgICAgICAgaWYgKHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBwYWdlU2Nyb2xsUG9zaXRp
b25BZnRlcikKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJQYWdlIHJlY2VpdmVkIHdoZWVs
IGV2ZW50cy4iKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2Vk
KCJQYWdlIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7CisKKyAgICAgICAgICAgIGlm
IChpZnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBpZnJhbWVTY3JvbGxQb3NpdGlvbkFmdGVy
KQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoImlmcmFtZSByZWNlaXZlZCB3aGVlbCBldmVu
dHMuIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiaWZy
YW1lIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7CisKKyAgICAgICAgICAgIGlmIChp
bm5lcklGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IGlubmVySUZyYW1lU2Nyb2xsUG9zaXRp
b25BZnRlcikKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJpZnJhbWUgcmVjZWl2ZWQgd2hl
ZWwgZXZlbnRzLiIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoImlmcmFtZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLiIpOworCisgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgfQogCi0gICAgICAgIC5jb250YWluZXIgewotICAg
ICAgICAgICAgd2lkdGg6MTAwJTsKLSAgICAgICAgICAgIG92ZXJmbG93OmF1dG87Ci0gICAgICAg
ICAgICBoZWlnaHQ6YXV0bzsKKyAgICAgICAgZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCisgICAgICAg
IHsKKyAgICAgICAgICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LnNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wOworCisgICAgICAgICAgICBpZnJhbWVUYXJnZXQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisKKyAgICAgICAgICAgIHZhciBpZnJhbWVT
Y3JvbGxpbmdFbGVtZW50ID0gd2luZG93LmZyYW1lc1sndGFyZ2V0J10uZG9jdW1lbnQuc2Nyb2xs
aW5nRWxlbWVudDsKKyAgICAgICAgICAgIGlmcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gaWZy
YW1lU2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7CisKKyAgICAgICAgICAgIGlubmVySUZyYW1l
VGFyZ2V0ID0gaWZyYW1lVGFyZ2V0LmNvbnRlbnRXaW5kb3cuZnJhbWVzWyd0YXJnZXQnXS5kb2N1
bWVudC5zY3JvbGxpbmdFbGVtZW50OworICAgICAgICAgICAgaW5uZXJJRnJhbWVTY3JvbGxQb3Np
dGlvbkJlZm9yZSA9IGlubmVySUZyYW1lVGFyZ2V0LnNjcm9sbFRvcDsKKworICAgICAgICAgICAg
Ly8gU2Nyb2xsIHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgorICAgICAg
ICAgICAgdmFyIHN0YXJ0UG9zWCA9IE1hdGgucm91bmQoaWZyYW1lVGFyZ2V0Lm9mZnNldExlZnQp
ICsgMjA7CisgICAgICAgICAgICB2YXIgc3RhcnRQb3NZID0gTWF0aC5yb3VuZChpZnJhbWVUYXJn
ZXQub2Zmc2V0VG9wKSArIDgwOworCisgICAgICAgICAgICBldmVudFNlbmRlci5tb25pdG9yV2hl
ZWxFdmVudHMoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9z
WCwgc3RhcnRQb3NZKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnKTsKKyAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25l
Jyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUn
LCAnYmVnaW4nKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKKyAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAwLCAnbm9uZScsICdlbmQnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLmNhbGxBZnRlclNj
cm9sbGluZ0NvbXBsZXRlcyhjaGVja0ZvclNjcm9sbCk7CiAgICAgICAgIH0KIAotICAgICAgICAu
aW5uZXJjb250YWluZXIgewotICAgICAgICAgICAgaGVpZ2h0OjEwMCU7Ci0gICAgICAgICAgICB3
aWR0aDo1MCU7CisgICAgICAgIGZ1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKQorICAgICAgICB7Cisg
ICAgICAgICAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAgICAgIGRl
YnVnKCdUaGlzIHRlc3QgcmVxdWlyZXMgZXZlbnRTZW5kZXInKTsKKyAgICAgICAgICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMCk7CiAgICAgICAgIH0KLSAgICAg
ICAgPC9zdHlsZT4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPC9oZWFkPgotICAgIDxib2R5PgotPHNjcmlwdD4K
LQotdmFyIGlmcmFtZVRhcmdldDsKLXZhciBpbm5lcklGcmFtZVRhcmdldDsKLXZhciBwYWdlU2Ny
b2xsUG9zaXRpb25CZWZvcmU7Ci12YXIgaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmU7Ci12YXIg
Y29udGludWVDb3VudCA9IDU7Ci0KLWZ1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkKLXsKLSAgICAv
LyBUaGUgSUZyYW1lIHNob3VsZCBub3QgaGF2ZSBzY3JvbGxlZCBhdCBhbGwuCi0gICAgdmFyIHBh
Z2VTY3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3A7Ci0gICAgdmFyIGlGcmFtZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSB3aW5kb3cuZnJhbWVzWyd0
YXJnZXQnXS5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKLSAgICB2YXIgaW5u
ZXJJRnJhbWVTY3JvbGxQb3NpdGlvbkFmdGVyID0gaWZyYW1lVGFyZ2V0LmNvbnRlbnRXaW5kb3cu
ZnJhbWVzWyd0YXJnZXQnXS5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKLQot
ICAgIGlmIChwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gcGFnZVNjcm9sbFBvc2l0aW9uQWZ0
ZXIpCi0gICAgICAgIHRlc3RGYWlsZWQoIlBhZ2UgcmVjZWl2ZWQgd2hlZWwgZXZlbnRzLiIpOwot
ICAgIGVsc2UKLSAgICAgICAgdGVzdFBhc3NlZCgiUGFnZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwg
ZXZlbnRzLiIpOwotCi0gICAgaWYgKGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IGlGcmFt
ZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpCi0gICAgICAgIHRlc3RGYWlsZWQoImlmcmFtZSByZWNlaXZl
ZCB3aGVlbCBldmVudHMuIik7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0UGFzc2VkKCJpZnJhbWUg
ZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsKLQotICAgIGlmIChpbm5lcklGcmFtZVNj
cm9sbFBvc2l0aW9uQmVmb3JlICE9IGlubmVySUZyYW1lU2Nyb2xsUG9zaXRpb25BZnRlcikKLSAg
ICAgICAgdGVzdFBhc3NlZCgiaWZyYW1lIHJlY2VpdmVkIHdoZWVsIGV2ZW50cy4iKTsKLSAgICBl
bHNlCi0gICAgICAgIHRlc3RGYWlsZWQoImlmcmFtZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZl
bnRzLiIpOwotCi0gICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7Ci19Ci0KLWZ1bmN0aW9uIHNjcm9sbFRlc3QoKQotewotICAgIHBhZ2VTY3JvbGxQb3NpdGlv
bkJlZm9yZSA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOwotCi0gICAgaWZy
YW1lVGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOwotCi0gICAgdmFy
IGlGcmFtZVNjcm9sbGluZ0VsZW1lbnQgPSB3aW5kb3cuZnJhbWVzWyd0YXJnZXQnXS5kb2N1bWVu
dC5zY3JvbGxpbmdFbGVtZW50OwotICAgIGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gaUZy
YW1lU2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7Ci0KLSAgICBpbm5lcklGcmFtZVRhcmdldCA9
IGlmcmFtZVRhcmdldC5jb250ZW50V2luZG93LmZyYW1lc1sndGFyZ2V0J10uZG9jdW1lbnQuc2Ny
b2xsaW5nRWxlbWVudDsKLSAgICBpbm5lcklGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gaW5u
ZXJJRnJhbWVUYXJnZXQuc2Nyb2xsVG9wOwotCi0gICAgLy8gU2Nyb2xsIHRoZSAjc291cmNlIHVu
dGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgotICAgIHZhciBzdGFydFBvc1ggPSBNYXRoLnJvdW5k
KGlmcmFtZVRhcmdldC5vZmZzZXRMZWZ0KSArIDIwOwotICAgIHZhciBzdGFydFBvc1kgPSBNYXRo
LnJvdW5kKGlmcmFtZVRhcmdldC5vZmZzZXRUb3ApICsgODA7Ci0gICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnKTsK
LSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKLSAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
MCwgJ2VuZGVkJywgJ25vbmUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJyk7Ci0gICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9u
ZScsICdjb250aW51ZScpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnKTsKLSAgICBldmVudFNlbmRlci5j
YWxsQWZ0ZXJTY3JvbGxpbmdDb21wbGV0ZXMoY2hlY2tGb3JTY3JvbGwpOwotfQotCi1mdW5jdGlv
biBzZXR1cFRvcExldmVsKCkKLXsKLSAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKLQotICAgICAgICBldmVudFNlbmRlci5tb25pdG9yV2hlZWxFdmVudHMoKTsKLSAg
ICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAwKTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLSAg
ICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9Imlu
bmVyY29udGFpbmVyIj4KLSAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJ3aWR0aDoxMDAlOyI+
Ci0gICAgICAgICAgICAgICAgICAgIDxkaXY+SW5uZXIgRnJhbWU6PC9kaXY+Ci0gICAgICAgICAg
ICAgICAgICAgIDxkaXYgc3R5bGU9ImhlaWdodDo5MiU7Ij4KLSAgICAgICAgICAgICAgICAgICAg
ICAgIDxpZnJhbWUgaWQ9InRhcmdldCIgbmFtZT0idGFyZ2V0IiBzcmM9InJlc291cmNlcy90ZXN0
Q29udGVudC5odG1sIiBvbmxvYWQ9InNldHVwVG9wTGV2ZWwoKTsiPjwvaWZyYW1lPgotICAgICAg
ICAgICAgICAgICAgICA8L2Rpdj4KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImlubmVyY29udGFp
bmVyIj4KKyAgICAgICAgICAgIDxkaXYgc3R5bGU9IndpZHRoOjEwMCU7Ij4KKyAgICAgICAgICAg
ICAgICA8ZGl2PklubmVyIEZyYW1lOjwvZGl2PgorICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9
ImhlaWdodDo5MiU7Ij4KKyAgICAgICAgICAgICAgICAgICAgPGlmcmFtZSBpZD0idGFyZ2V0IiBu
YW1lPSJ0YXJnZXQiIHNyYz0icmVzb3VyY2VzL3Rlc3RDb250ZW50Lmh0bWwiIG9ubG9hZD0ic2V0
dXBUb3BMZXZlbCgpOyI+PC9pZnJhbWU+CiAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAg
ICAgICA8L2Rpdj4KICAgICAgICAgPC9kaXY+Ci0gICAgICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgotICAgICAgICA8c2NyaXB0PgotICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBp
ZnJhbWUgZG9lc24ndCBwYXNzIHdoZWVsIGV2ZW50cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xs
aW5nIGluc2lkZSBpZnJhbWUiKTsKLSAgICAgICAgPC9zY3JpcHQ+Ci0gICAgICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLSAgICA8
L2JvZHk+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgPHNj
cmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBpZnJhbWUgZG9lc24ndCBwYXNzIHdo
ZWVsIGV2ZW50cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5nIGluc2lkZSBpZnJhbWUiKTsK
KyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CiA8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hp
bmcvcmVzb3VyY2VzL2lubmVyX2NvbnRlbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2xhdGNoaW5nL3Jlc291cmNlcy9pbm5lcl9jb250ZW50Lmh0bWwKaW5kZXggNTQwZGQwMTVm
N2QyZTdjYzUwYTFmY2Y5ZTFhODViYTM2MDlkYTFlMC4uZmNkZjQ0YmYwZmY5YjUwODFmZGZkNzk3
Yjc1ODBkYmJiOTQ3ZGRjNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
bGF0Y2hpbmcvcmVzb3VyY2VzL2lubmVyX2NvbnRlbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9sYXRjaGluZy9yZXNvdXJjZXMvaW5uZXJfY29udGVudC5odG1sCkBAIC0x
LDcgKzEsNyBAQAogPCFET0NUWVBFIGh0bWw+CiA8aHRtbCBsYW5nPSJlbi1VUyI+CiAgICAgPGhl
YWQ+Ci0gICAgICAgIDx0aXRsZT5Jbm5lciBpRnJhbWUgRXhhbXBsZTwvdGl0bGU+CisgICAgICAg
IDx0aXRsZT5Jbm5lciBpZnJhbWUgRXhhbXBsZTwvdGl0bGU+CiAgICAgICAgIDxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KICAgICA8L2hlYWQ+CiAgICAgPGJvZHkgc3R5bGU9InBvc2l0aW9uOiByZWxh
dGl2ZTsgbWluLWhlaWdodDogMTAwJTsgdG9wOiAwcHg7Ij4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Jlc291cmNlcy9zY3JvbGxfbmVzdGVkX2lmcmFt
ZV90ZXN0X2lubmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9y
ZXNvdXJjZXMvc2Nyb2xsX25lc3RlZF9pZnJhbWVfdGVzdF9pbm5lci5odG1sCmluZGV4IDVkYWFi
OWE3MmJmMTgzOGVmMjEwODhhM2QyMjNhYmQ3NDhlNGM0ZTcuLjgwNGIzNTUwNWNlMjJkNzNhNzE5
YzNhYTQyNTdlNmRhNjE3NGUxYjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2xhdGNoaW5nL3Jlc291cmNlcy9zY3JvbGxfbmVzdGVkX2lmcmFtZV90ZXN0X2lubmVyLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvcmVzb3VyY2VzL3Nj
cm9sbF9uZXN0ZWRfaWZyYW1lX3Rlc3RfaW5uZXIuaHRtbApAQCAtMSw5ICsxLDcgQEAKIDwhRE9D
VFlQRSBodG1sPgotCiA8aHRtbD4KIDxoZWFkPgogICAgIDxzdHlsZT4KLSAgICAgICAgCiAgICAg
ICAgIGJvZHkgewogICAgICAgICAgICAgaGVpZ2h0OiAyMDAwcHg7CiAgICAgICAgIH0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1kaXYtbGF0
Y2hlZC1kaXYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hp
bmcvc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi1leHBlY3RlZC50eHQKaW5kZXggYzFiMWMzNTA5MjE0
YTYzODY5MDgyNTg1NDY2NDY3MmNlYmM3NmEzZC4uNjQzNmFmOGQ2N2RmNmM3ODVjM2M0ZTQwMzBl
OGM3MzE3ZTZkZTM5NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0
Y2hpbmcvc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi1leHBlY3Rl
ZC50eHQKQEAgLTEsNTYgKzEsMTMgQEAKLVB1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2Fy
ZHMKLVNjcm9sbGFibGUgUmVnaW9uCi0KLUNvdW50CURBVEEJUmV2IENvdW50Ci1UT1AgVE9QIFRP
UCBUT1AgVE9QCVRPUCBUT1AgVE9QIFRPUCBUT1AJVE9QIFRPUCBUT1AgVE9QIFRPUAotMQkwLjEx
MDAJNDAKLTIJMC4xMTU1CTM5Ci0zCTAuMjIwMAkzOAotNAkwLjIyNTUJMzcKLTUJMC4zMzAwCTM2
Ci02CTAuMzM1NQkzNQotNwkwLjQ0MDAJMzQKLTgJMC40NDU1CTMzCi05CTAuNTUwMAkzMgotMTAJ
MC41NTU1CTMxCi0xMQkwLjY2MDAJMzAKLTEyCTAuNjY1NQkyOQotMTMJMC43NzAwCTI4Ci0xNAkw
Ljc3NTUJMjcKLTE1CTAuODgwMAkyNgotMTYJMC44ODU1CTI1Ci0xNwkwLjk5MDAJMjQKLTE4CTAu
OTk1NQkyMwotMTkJMC45OTk5CTIyCi0yMAkxLjAwMDAJMjEKLTIxCTEuMDAwMAkyMAotMjIJMC45
OTk5CTE5Ci0yMwkwLjk5NTUJMTgKLTI0CTAuOTkwMAkxNwotMjUJMC44ODU1CTE2Ci0yNgkwLjg4
MDAJMTUKLTI3CTAuNzc1NQkxNAotMjgJMC43NzAwCTEzCi0yOQkwLjY2NTUJMTIKLTMwCTAuNjYw
MAkxMQotMzEJMC41NTU1CTEwCi0zMgkwLjU1MDAJOQotMzMJMC40NDU1CTgKLTM0CTAuNDQwMAk3
Ci0zNQkwLjMzNTUJNgotMzYJMC4zMzAwCTUKLTM3CTAuMjI1NQk0Ci0zOAkwLjIyMDAJMwotMzkJ
MC4xMTU1CTIKLTQwCTAuMTEwMAkxCi1FTkQgRU5EIEVORCBFTkQgRU5ECUVORCBFTkQgRU5EIEVO
RCBFTkQJRU5EIEVORCBFTkQgRU5EIEVORAogVGVzdHMgdGhhdCBhIHNjcm9sbGFibGUgZGl2IGRv
ZXNuJ3QgcGFzcyB3aGVlbCBldmVudHMgdG8gbWFpbiBmcmFtZSB3aGVuIHNjcm9sbGluZyBhdCBi
b3R0b20KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK1BBU1MgUGFnZSBkaWQgbm90
IHJlY2VpdmUgd2hlZWwgZXZlbnRzLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQog
CiBURVNUIENPTVBMRVRFCi1QQVNTIFBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4K
K1B1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2FyZHMKK1Njcm9sbGFibGUgUmVnaW9uCiAK
K1Njcm9sbGVkIGNvbnRlbnRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9sYXRjaGluZy9zY3JvbGwtZGl2LWxhdGNoZWQtZGl2Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtZGl2LWxhdGNoZWQtZGl2Lmh0bWwKaW5kZXggNjE5
ZTA5MGQxYTUxY2JjZGFmNzE1N2Q5NzliZjJlODI3NjNkODkwNi4uMGEwYWNhMDY5MGM4MjI2YTU4
Y2I4MmYzZDhiYzMyN2Q1OTZjZmNiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1kaXYuaHRtbApA
QCAtNiwxNTUgKzYsOTYgQEAKICAgICB3aWR0aDogNjgwcHg7CiB9CiAKLS50YWJsZSB0ZCwgLnRh
YmxlIHRoIHsKLSAgICBwYWRkaW5nOiAycHg7CisuY29udGVudHMgeworICAgIGhlaWdodDogMTAz
NnB4OworICAgIHdpZHRoOiAxMDAlOworICAgIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1s
aW5lYXItZ3JhZGllbnQoc2lsdmVyLCB3aGl0ZSAyMDBweCk7CiB9Ci0KLS50YWJsZSB0aCB7Ci0g
ICAgaGVpZ2h0OiAyMHB4OwotICAgIHRleHQtYWxpZ246IGxlZnQ7Ci0gICAgZm9udC13ZWlnaHQ6
IHN0cm9uZzsKLX0KLQotLnRhYmxlIHRyOm50aC1jaGlsZChvZGQpIHsKLSAgICBiYWNrZ3JvdW5k
OiAjZjNmM2YzOwotfQotCi0uc2Nyb2xsYWJsZV9zZWxlY3Qgb3B0aW9uOm50aC1jaGlsZChvZGQp
IHsKLSAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzOwotfQotCiA8L3N0eWxlPgogPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0Pgot
ZnVuY3Rpb24gb25Mb2FkKCkgewotICAgIHNldHVwVG9wTGV2ZWwoKTsKLX0KLTwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiPgotPHNjcmlwdD4KKyAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKIAotdmFyIGRpdlRhcmdldDsKLXZhciBwYWdlU2Nyb2xsUG9zaXRpb25C
ZWZvcmU7Ci12YXIgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmU7Ci12YXIgY29udGludWVDb3VudCA9
IDU7CisgICAgdmFyIGRpdlRhcmdldDsKKyAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3Jl
OworICAgIHZhciBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZTsKIAotZnVuY3Rpb24gY2hlY2tGb3JT
Y3JvbGwoKQotewotICAgIC8vIFRoZSBkaXYgc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFs
bC4KLSAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5zY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcDsKLSAgICB2YXIgZGl2U2Nyb2xsUG9zaXRpb25BZnRlciA9IGRpdlRh
cmdldC5zY3JvbGxUb3A7CisgICAgZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKQorICAgIHsKKyAg
ICAgICAgLy8gVGhlIGRpdiBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgorICAgICAg
ICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcDsKKyAgICAgICAgdmFyIGRpdlNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkaXZUYXJn
ZXQuc2Nyb2xsVG9wOwogCi0gICAgaWYgKHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBwYWdl
U2Nyb2xsUG9zaXRpb25BZnRlcikKLSAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSByZWNlaXZlZCB3
aGVlbCBldmVudHMuIik7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0UGFzc2VkKCJQYWdlIGRpZCBu
b3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7CisgICAgICAgIGlmIChwYWdlU2Nyb2xsUG9zaXRp
b25CZWZvcmUgIT0gcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJQYWdlIHJlY2VpdmVkIHdoZWVsIGV2ZW50cy4iKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgdGVzdFBhc3NlZCgiUGFnZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLiIpOwog
Ci0gICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci19Ci0KLWZ1bmN0aW9uIHNjcm9sbFRlc3Qo
KQotewotICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LnNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsVG9wOwotCi0gICAgZGl2VGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3RhcmdldCcpOwotICAgIGRpdlRhcmdldC5zY3JvbGxUb3AgPSBkaXZUYXJnZXQuc2Nyb2xs
SGVpZ2h0IC0gZGl2VGFyZ2V0LmNsaWVudEhlaWdodCAtIDEwMDsKLQotICAgIGRpdlNjcm9sbFBv
c2l0aW9uQmVmb3JlID0gZGl2VGFyZ2V0LnNjcm9sbFRvcDsKKyAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgfQogCi0gICAgLy8gU2Nyb2xsIHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNoIHRo
ZSAjdGFyZ2V0LgotICAgIHZhciBzdGFydFBvc1ggPSBNYXRoLnJvdW5kKGRpdlRhcmdldC5vZmZz
ZXRMZWZ0KSArIDIwOwotICAgIHZhciBzdGFydFBvc1kgPSBNYXRoLnJvdW5kKGRpdlRhcmdldC5v
ZmZzZXRUb3ApICsgMTAwOyAvLyBPbmUgd2hlZWwgdHVybiBiZWZvcmUgZW5kLgotICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsKLSAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbics
ICdub25lJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdu
b25lJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicpOwot
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJyk7Ci0gICAgc2V0
VGltZW91dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKLX0KKyAgICBmdW5jdGlvbiBzY3JvbGxUZXN0
KCkKKyAgICB7CisgICAgICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LnNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOworCisgICAgICAgIGRpdlRhcmdldCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKyAgICAgICAgZGl2VGFyZ2V0LnNjcm9sbFRvcCA9
IGRpdlRhcmdldC5zY3JvbGxIZWlnaHQgLSBkaXZUYXJnZXQuY2xpZW50SGVpZ2h0IC0gMTAwOwor
CisgICAgICAgIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZGl2VGFyZ2V0LnNjcm9sbFRvcDsK
KworICAgICAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2UgdW50aWwgd2UgcmVhY2ggdGhlICN0YXJn
ZXQuCisgICAgICAgIHZhciBzdGFydFBvc1ggPSBNYXRoLnJvdW5kKGRpdlRhcmdldC5vZmZzZXRM
ZWZ0KSArIDIwOworICAgICAgICB2YXIgc3RhcnRQb3NZID0gTWF0aC5yb3VuZChkaXZUYXJnZXQu
b2Zmc2V0VG9wKSArIDEwMDsgLy8gT25lIHdoZWVsIHR1cm4gYmVmb3JlIGVuZC4KKworICAgICAg
ICBldmVudFNlbmRlci5tb25pdG9yV2hlZWxFdmVudHMoKTsKKyAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOworICAgICAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdu
b25lJyk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2Vk
JywgJ25vbmUnKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJyk7CisgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUn
LCAnYmVnaW4nKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOworICAgICAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25v
bmUnLCAnZW5kJyk7CisgICAgICAgIGV2ZW50U2VuZGVyLmNhbGxBZnRlclNjcm9sbGluZ0NvbXBs
ZXRlcyhjaGVja0ZvclNjcm9sbCk7CisgICAgfQogCi1mdW5jdGlvbiBzZXR1cFRvcExldmVsKCkK
LXsKLSAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBmdW5j
dGlvbiBzZXR1cFRvcExldmVsKCkKKyAgICB7CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0
aGF0IGEgc2Nyb2xsYWJsZSBkaXYgZG9lc24ndCBwYXNzIHdoZWVsIGV2ZW50cyB0byBtYWluIGZy
YW1lIHdoZW4gc2Nyb2xsaW5nIGF0IGJvdHRvbSIpOworICAgICAgICBpZiAod2luZG93LmV2ZW50
U2VuZGVyKSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDApOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLSAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0
LCAxMDAwKTsKLSAgICB9IGVsc2UgewogICAgICAgICB2YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudCcpOwogICAgICAgICB2YXIgbWVzc2FnZSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9
ICI8cD5UaGlzIHRlc3QgaXMgYmV0dGVyIHJ1biB1bmRlciBEdW1wUmVuZGVyVHJlZS4gVG8gbWFu
dWFsbHkgdGVzdCBpdCwgcGxhY2UgdGhlIG1vdXNlIHBvaW50ZXI8YnIvPiIKLSAgICAgICAgICAg
ICsgImF0IHRoZSB0b3Agb2YgdGhlIHBhZ2UsIGFuZCB0aGVuIHVzZSB0aGUgbW91c2Ugd2hlZWwg
b3IgYSB0d28tZmluZ2VyIHN3aXBlIHRvIHNjcm9sbCB0aGU8YnIvPiIKLSAgICAgICAgICAgICsg
ImRvd24gcGFzdCB0aGUgZGl2Ljxici8+PGJyLz4iCi0gICAgICAgICAgICArICJZb3Ugc2hvdWxk
IG5vdCBzZWUgdGhlIHJvdyBvZiBFTkQgbGFiZWxzIGlmIHRoaXMgdGVzdCBpcyBzdWNjZXNzZnVs
LjwvcD4iOworICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UbyBtYW51YWxseSBydW4g
dGhpcyB0ZXN0LCBwbGFjZSB0aGUgbW91c2UgcG9pbnRlciAiCisgICAgICAgICAgICArICJhdCB0
aGUgdG9wIG9mIHRoZSBwYWdlLCBhbmQgdGhlbiB1c2UgdGhlIG1vdXNlIHdoZWVsIG9yIGEgdHdv
LWZpbmdlciBzd2lwZSB0byBzY3JvbGwgdGhlICIKKyAgICAgICAgICAgICsgImRvd24gcGFzdCB0
aGUgZGl2LjxwPiIKKyAgICAgICAgICAgICsgIjxwPllvdSBzaG91bGQgbm90IHNlZSB0aGUgcm93
IG9mIEVORCBsYWJlbHMgaWYgdGhpcyB0ZXN0IGlzIHN1Y2Nlc3NmdWwuPC9wPiI7CiAgICAgICAg
IG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZChtZXNzYWdlKTsKKyAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CiAgICAgfQotfQogCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAo
KSA9PiB7CisgICAgICAgIHNldHVwVG9wTGV2ZWwoKTsKKyAgICB9LCBmYWxzZSk7CiA8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgogPGRpdiBpZD0icGFyZW50IiBzdHlsZT0iaGVpZ2h0OiAyMDAw
cHg7IHdpZHRoOiAyMDAwcHg7Ij4KICAgICA8ZGl2IGlkPSJzb3VyY2UiIHN0eWxlPSJoZWlnaHQ6
IDEwMHB4OyB3aWR0aDogNTAwcHg7Ij4KICAgICAgICAgUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNr
IGRvd253YXJkcwogICAgIDwvZGl2PgogICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGVfcmVnaW9u
Ij4KICAgICAgICAgPGgzPlNjcm9sbGFibGUgUmVnaW9uPC9oMz4KLSAgICAgICAgPGRpdiBpZD0i
dGFyZ2V0IiBzdHlsZT0nb3ZlcmZsb3cteTogYXV0bzsgb3ZlcmZsb3cteDogaGlkZGVuOyBtYXgt
aGVpZ2h0OiAzNTBweDsnPgotICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSIgc3R5bGU9
J3dpZHRoOiA5OSUnPgotICAgICAgICAgICAgICAgIDx0cj48dGg+Q291bnQ8L3RoPjx0aD5EQVRB
PC90aD48dGg+UmV2IENvdW50PC90aD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+VE9Q
IFRPUCBUT1AgVE9QIFRPUDwvdGQ+PHRkPlRPUCBUT1AgVE9QIFRPUCBUT1A8L3RkPjx0ZD5UT1Ag
VE9QIFRPUCBUT1AgVE9QPC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+MTwvdGQ+
PHRkPjAuMTEwMDwvdGQ+PHRkPjQwPC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+
MjwvdGQ+PHRkPjAuMTE1NTwvdGQ+PHRkPjM5PC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0
cj48dGQ+MzwvdGQ+PHRkPjAuMjIwMDwvdGQ+PHRkPjM4PC90ZD48L3RyPgotICAgICAgICAgICAg
ICAgIDx0cj48dGQ+NDwvdGQ+PHRkPjAuMjI1NTwvdGQ+PHRkPjM3PC90ZD48L3RyPgotICAgICAg
ICAgICAgICAgIDx0cj48dGQ+NTwvdGQ+PHRkPjAuMzMwMDwvdGQ+PHRkPjM2PC90ZD48L3RyPgot
ICAgICAgICAgICAgICAgIDx0cj48dGQ+NjwvdGQ+PHRkPjAuMzM1NTwvdGQ+PHRkPjM1PC90ZD48
L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+NzwvdGQ+PHRkPjAuNDQwMDwvdGQ+PHRkPjM0
PC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+ODwvdGQ+PHRkPjAuNDQ1NTwvdGQ+
PHRkPjMzPC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+OTwvdGQ+PHRkPjAuNTUw
MDwvdGQ+PHRkPjMyPC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+MTA8L3RkPjx0
ZD4wLjU1NTU8L3RkPjx0ZD4zMTwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPjEx
PC90ZD48dGQ+MC42NjAwPC90ZD48dGQ+MzA8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRy
Pjx0ZD4xMjwvdGQ+PHRkPjAuNjY1NTwvdGQ+PHRkPjI5PC90ZD48L3RyPgotICAgICAgICAgICAg
ICAgIDx0cj48dGQ+MTM8L3RkPjx0ZD4wLjc3MDA8L3RkPjx0ZD4yODwvdGQ+PC90cj4KLSAgICAg
ICAgICAgICAgICA8dHI+PHRkPjE0PC90ZD48dGQ+MC43NzU1PC90ZD48dGQ+Mjc8L3RkPjwvdHI+
Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD4xNTwvdGQ+PHRkPjAuODgwMDwvdGQ+PHRkPjI2PC90
ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+MTY8L3RkPjx0ZD4wLjg4NTU8L3RkPjx0
ZD4yNTwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPjE3PC90ZD48dGQ+MC45OTAw
PC90ZD48dGQ+MjQ8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD4xODwvdGQ+PHRk
PjAuOTk1NTwvdGQ+PHRkPjIzPC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+MTk8
L3RkPjx0ZD4wLjk5OTk8L3RkPjx0ZD4yMjwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+
PHRkPjIwPC90ZD48dGQ+MS4wMDAwPC90ZD48dGQ+MjE8L3RkPjwvdHI+Ci0gICAgICAgICAgICAg
ICAgPHRyPjx0ZD4yMTwvdGQ+PHRkPjEuMDAwMDwvdGQ+PHRkPjIwPC90ZD48L3RyPgotICAgICAg
ICAgICAgICAgIDx0cj48dGQ+MjI8L3RkPjx0ZD4wLjk5OTk8L3RkPjx0ZD4xOTwvdGQ+PC90cj4K
LSAgICAgICAgICAgICAgICA8dHI+PHRkPjIzPC90ZD48dGQ+MC45OTU1PC90ZD48dGQ+MTg8L3Rk
PjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD4yNDwvdGQ+PHRkPjAuOTkwMDwvdGQ+PHRk
PjE3PC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+MjU8L3RkPjx0ZD4wLjg4NTU8
L3RkPjx0ZD4xNjwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPjI2PC90ZD48dGQ+
MC44ODAwPC90ZD48dGQ+MTU8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD4yNzwv
dGQ+PHRkPjAuNzc1NTwvdGQ+PHRkPjE0PC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48
dGQ+Mjg8L3RkPjx0ZD4wLjc3MDA8L3RkPjx0ZD4xMzwvdGQ+PC90cj4KLSAgICAgICAgICAgICAg
ICA8dHI+PHRkPjI5PC90ZD48dGQ+MC42NjU1PC90ZD48dGQ+MTI8L3RkPjwvdHI+Ci0gICAgICAg
ICAgICAgICAgPHRyPjx0ZD4zMDwvdGQ+PHRkPjAuNjYwMDwvdGQ+PHRkPjExPC90ZD48L3RyPgot
ICAgICAgICAgICAgICAgIDx0cj48dGQ+MzE8L3RkPjx0ZD4wLjU1NTU8L3RkPjx0ZD4xMDwvdGQ+
PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPjMyPC90ZD48dGQ+MC41NTAwPC90ZD48dGQ+
OTwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPjMzPC90ZD48dGQ+MC40NDU1PC90
ZD48dGQ+ODwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPjM0PC90ZD48dGQ+MC40
NDAwPC90ZD48dGQ+NzwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPjM1PC90ZD48
dGQ+MC4zMzU1PC90ZD48dGQ+NjwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPjM2
PC90ZD48dGQ+MC4zMzAwPC90ZD48dGQ+NTwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+
PHRkPjM3PC90ZD48dGQ+MC4yMjU1PC90ZD48dGQ+NDwvdGQ+PC90cj4KLSAgICAgICAgICAgICAg
ICA8dHI+PHRkPjM4PC90ZD48dGQ+MC4yMjAwPC90ZD48dGQ+MzwvdGQ+PC90cj4KLSAgICAgICAg
ICAgICAgICA8dHI+PHRkPjM5PC90ZD48dGQ+MC4xMTU1PC90ZD48dGQ+MjwvdGQ+PC90cj4KLSAg
ICAgICAgICAgICAgICA8dHI+PHRkPjQwPC90ZD48dGQ+MC4xMTAwPC90ZD48dGQ+MTwvdGQ+PC90
cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPkVORCBFTkQgRU5EIEVORCBFTkQ8L3RkPjx0ZD5F
TkQgRU5EIEVORCBFTkQgRU5EPC90ZD48dGQ+RU5EIEVORCBFTkQgRU5EIEVORDwvdGQ+PC90cj4K
LSAgICAgICAgICAgIDwvdGFibGU+CisgICAgICAgIDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9Im92
ZXJmbG93LXk6IGF1dG87IG92ZXJmbG93LXg6IGhpZGRlbjsgbWF4LWhlaWdodDogMzUwcHg7Ij4K
KyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnRzIj4KKyAgICAgICAgICAgICAgICBTY3Jv
bGxlZCBjb250ZW50cworICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgIDwvZGl2PgogICAgIDwv
ZGl2PgogPC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci1kZXNjcmlw
dGlvbigiVGVzdHMgdGhhdCBhIHNjcm9sbGFibGUgZGl2IGRvZXNuJ3QgcGFzcyB3aGVlbCBldmVu
dHMgdG8gbWFpbiBmcmFtZSB3aGVuIHNjcm9sbGluZyBhdCBib3R0b20iKTsKLTwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvbGF0Y2hpbmcvc2Nyb2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtZGl2LWxhdGNoZWQtbWFp
bmZyYW1lLWV4cGVjdGVkLnR4dAppbmRleCA2ODlhMGM1ZDFkM2VlZmZjYjVlYjBhZDA5ODRlN2Jk
NWQyY2YzNzhhLi5mZjkyZjJmN2M4MzVhODQ1MTQ3MThiZmQwNjhiOGQ0ODZhMjIzY2E2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtZGl2LWxh
dGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9sYXRjaGluZy9zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dApA
QCAtMSw1NyArMSwxNSBAQAogUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcwogU2Ny
b2xsYWJsZSBSZWdpb24KIAotQ291bnQJREFUQQlSZXYgQ291bnQKLVRPUCBUT1AgVE9QIFRPUCBU
T1AJVE9QIFRPUCBUT1AgVE9QIFRPUAlUT1AgVE9QIFRPUCBUT1AgVE9QCi0xCTAuMTEwMAk0MAot
MgkwLjExNTUJMzkKLTMJMC4yMjAwCTM4Ci00CTAuMjI1NQkzNwotNQkwLjMzMDAJMzYKLTYJMC4z
MzU1CTM1Ci03CTAuNDQwMAkzNAotOAkwLjQ0NTUJMzMKLTkJMC41NTAwCTMyCi0xMAkwLjU1NTUJ
MzEKLTExCTAuNjYwMAkzMAotMTIJMC42NjU1CTI5Ci0xMwkwLjc3MDAJMjgKLTE0CTAuNzc1NQky
NwotMTUJMC44ODAwCTI2Ci0xNgkwLjg4NTUJMjUKLTE3CTAuOTkwMAkyNAotMTgJMC45OTU1CTIz
Ci0xOQkwLjk5OTkJMjIKLTIwCTEuMDAwMAkyMQotMjEJMS4wMDAwCTIwCi0yMgkwLjk5OTkJMTkK
LTIzCTAuOTk1NQkxOAotMjQJMC45OTAwCTE3Ci0yNQkwLjg4NTUJMTYKLTI2CTAuODgwMAkxNQot
MjcJMC43NzU1CTE0Ci0yOAkwLjc3MDAJMTMKLTI5CTAuNjY1NQkxMgotMzAJMC42NjAwCTExCi0z
MQkwLjU1NTUJMTAKLTMyCTAuNTUwMAk5Ci0zMwkwLjQ0NTUJOAotMzQJMC40NDAwCTcKLTM1CTAu
MzM1NQk2Ci0zNgkwLjMzMDAJNQotMzcJMC4yMjU1CTQKLTM4CTAuMjIwMAkzCi0zOQkwLjExNTUJ
MgotNDAJMC4xMTAwCTEKLUVORCBFTkQgRU5EIEVORCBFTkQJRU5EIEVORCBFTkQgRU5EIEVORAlF
TkQgRU5EIEVORCBFTkQgRU5ECitTY3JvbGxlZCBjb250ZW50cwogVGVzdHMgdGhhdCBhIHNjcm9s
bGFibGUgZGl2IGRvZXNuJ3QgY29uc3VtZSB3aGVlbCBldmVudHMgd2hlbiBzY3JvbGwgaXMgbGF0
Y2hlZCB0byBtYWluIGZyYW1lLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAorTW91
c2UgbW92ZWQgdG8gKDI4LCAxMjUpCitQQVNTIFNjcm9sbGFibGUgZGl2IGRpZCBub3QgcmVjZWl2
ZSB3aGVlbCBldmVudHMuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1Qg
Q09NUExFVEUKLU1vdXNlIG1vdmVkIHRvICgyOCwgMTI1KQotUEFTUyBTY3JvbGxhYmxlIGRpdiBk
aWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtZGl2LWxhdGNoZWQt
bWFpbmZyYW1lLmh0bWwKaW5kZXggNDBjMWFmMzE2YTg0MmY3MzcxODMwMjEzMmU0NjViMTA3ODU4
NTQzYy4uYWJjMjc4NGZjZTRiY2NiYmRhY2ZlMzRkNmViOWY1MzU3OTMwZTM4NSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWRpdi1sYXRjaGVk
LW1haW5mcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5n
L3Njcm9sbC1kaXYtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbApAQCAtNiw5OCArNiw4MyBAQAogICAg
IHdpZHRoOiA2ODBweDsKIH0KIAotLnRhYmxlIHRkLCAudGFibGUgdGggewotICAgIHBhZGRpbmc6
IDJweDsKKy5jb250ZW50cyB7CisgICAgaGVpZ2h0OiAxMDM2cHg7CisgICAgd2lkdGg6IDEwMCU7
CisgICAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChzaWx2ZXIs
IHdoaXRlIDIwMHB4KTsKIH0KLQotLnRhYmxlIHRoIHsKLSAgICBoZWlnaHQ6IDIwcHg7Ci0gICAg
dGV4dC1hbGlnbjogbGVmdDsKLSAgICBmb250LXdlaWdodDogc3Ryb25nOwotfQotCi0udGFibGUg
dHI6bnRoLWNoaWxkKG9kZCkgewotICAgIGJhY2tncm91bmQ6ICNmM2YzZjM7Ci19Ci0KLS5zY3Jv
bGxhYmxlX3NlbGVjdCBvcHRpb246bnRoLWNoaWxkKG9kZCkgewotICAgIGJhY2tncm91bmQ6ICNm
M2YzZjM7Ci19Ci0KIDwvc3R5bGU+CiA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1mdW5jdGlvbiBvbkxvYWQoKSB7Ci0g
ICAgc2V0dXBUb3BMZXZlbCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9
Im9uTG9hZCgpOyI+Ci08c2NyaXB0PgotCi12YXIgZGl2VGFyZ2V0OwotdmFyIHBhZ2VTY3JvbGxQ
b3NpdGlvbkJlZm9yZTsKLXZhciBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZTsKLXZhciBjb250aW51
ZUNvdW50ID0gNTsKLQotZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7CisgICAganNUZXN0SXNB
c3luYyA9IHRydWU7CiAKLSAgICAvLyBUaGUgZGl2IHNob3VsZCBub3QgaGF2ZSBzY3JvbGxlZCBh
dCBhbGwuCi0gICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQuc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3A7Ci0gICAgdmFyIGRpdlNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBk
aXZUYXJnZXQuc2Nyb2xsVG9wOworICAgIHZhciBkaXZUYXJnZXQ7CisgICAgdmFyIHBhZ2VTY3Jv
bGxQb3NpdGlvbkJlZm9yZTsKKyAgICB2YXIgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmU7CiAKLSAg
ICAvL2RlYnVnKCJQYWdlIGJlZm9yZTogIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSArICIs
IGRpdiBiZWZvcmU6ICIgKyBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZSk7Ci0gICAgLy9kZWJ1Zygi
UGFnZSBhZnRlcjogICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciArICIsIGRpdiBhZnRlcjog
IiArIGRpdlNjcm9sbFBvc2l0aW9uQWZ0ZXIpOworICAgIGZ1bmN0aW9uIGNoZWNrRm9yU2Nyb2xs
KCkKKyAgICB7CisgICAgICAgIC8vIFRoZSBkaXYgc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0
IGFsbC4KKyAgICAgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQuc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7CisgICAgICAgIHZhciBkaXZTY3JvbGxQb3NpdGlvbkFm
dGVyID0gZGl2VGFyZ2V0LnNjcm9sbFRvcDsKIAotICAgIGlmIChkaXZTY3JvbGxQb3NpdGlvbkJl
Zm9yZSAhPSBkaXZTY3JvbGxQb3NpdGlvbkFmdGVyKQotICAgICAgICB0ZXN0RmFpbGVkKCJTY3Jv
bGxhYmxlIGRpdiBjb25zdW1lZCB3aGVlbCBldmVudHMuIik7Ci0gICAgZWxzZQotICAgICAgICB0
ZXN0UGFzc2VkKCJTY3JvbGxhYmxlIGRpdiBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLiIp
OworICAgICAgICBpZiAoZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gZGl2U2Nyb2xsUG9zaXRp
b25BZnRlcikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNjcm9sbGFibGUgZGl2IGNvbnN1bWVk
IHdoZWVsIGV2ZW50cy4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgi
U2Nyb2xsYWJsZSBkaXYgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsKIAotICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfQotCi1mdW5jdGlvbiBzY3JvbGxUZXN0KCkgewotICAg
IC8vIFNlZSB3aGVyZSBvdXIgSUZyYW1lIGxpdmVzOgotICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJl
Zm9yZSA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOwotCi0gICAgZGl2VGFy
Z2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOwotCi0gICAgZGl2U2Nyb2xs
UG9zaXRpb25CZWZvcmUgPSBkaXZUYXJnZXQuc2Nyb2xsVG9wOwotCi0gICAgLy8gU2Nyb2xsIHRo
ZSAjc291cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgotICAgIHZhciBzdGFydFBvc1gg
PSBNYXRoLnJvdW5kKGRpdlRhcmdldC5vZmZzZXRMZWZ0KSArIDIwOwotICAgIHZhciBzdGFydFBv
c1kgPSBNYXRoLnJvdW5kKGRpdlRhcmdldC5vZmZzZXRUb3ApIC0gNDI7IC8vIFNsaWdodGx5IG1v
cmUgdGhhbiBvbmUgd2hlZWwgc2Nyb2xsIGF3YXkgZnJvbSB0aGUgSUZyYW1lCi0gICAgZXZlbnRT
ZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2Ug
YXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1lCi0gICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgi
ICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7Ci0gICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAn
bm9uZScpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9u
ZScpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nKTsKLSAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
LTEsICdub25lJywgJ2NvbnRpbnVlJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcpOwotICAgIHNldFRp
bWVvdXQoY2hlY2tGb3JTY3JvbGwsIDEwMCk7Ci19CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOwor
ICAgIH0KIAotZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpIHsKKyAgICBmdW5jdGlvbiBzY3JvbGxU
ZXN0KCkKKyAgICB7CisgICAgICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50
LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOworCisgICAgICAgIGRpdlRhcmdldCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKworICAgICAgICBkaXZTY3JvbGxQb3NpdGlv
bkJlZm9yZSA9IGRpdlRhcmdldC5zY3JvbGxUb3A7CisKKyAgICAgICAgLy8gU2Nyb2xsIHRoZSAj
c291cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgorICAgICAgICB2YXIgc3RhcnRQb3NY
ID0gTWF0aC5yb3VuZChkaXZUYXJnZXQub2Zmc2V0TGVmdCkgKyAyMDsKKyAgICAgICAgdmFyIHN0
YXJ0UG9zWSA9IE1hdGgucm91bmQoZGl2VGFyZ2V0Lm9mZnNldFRvcCkgLSA0MjsgLy8gU2xpZ2h0
bHkgbW9yZSB0aGFuIG9uZSB3aGVlbCBzY3JvbGwgYXdheSBmcm9tIHRoZSBpZnJhbWUKKworICAg
ICAgICBldmVudFNlbmRlci5tb25pdG9yV2hlZWxFdmVudHMoKTsKKyAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJl
IGp1c3Qgb3V0c2lkZSB0aGUgaWZyYW1lCisgICAgICAgIGRlYnVnKCJNb3VzZSBtb3ZlZCB0byAo
IiArIHN0YXJ0UG9zWCArICIsICIgKyBzdGFydFBvc1kgKyAiKSIpOworICAgICAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdh
bicsICdub25lJyk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgICAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdj
aGFuZ2VkJywgJ25vbmUnKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJyk7CisgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J25vbmUnLCAnYmVnaW4nKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOworICAgICAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
MCwgJ25vbmUnLCAnZW5kJyk7CisgICAgICAgIGV2ZW50U2VuZGVyLmNhbGxBZnRlclNjcm9sbGlu
Z0NvbXBsZXRlcyhjaGVja0ZvclNjcm9sbCk7CisgICAgfQogCi0gICAgaWYgKHdpbmRvdy5ldmVu
dFNlbmRlcikgewotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBmdW5j
dGlvbiBzZXR1cFRvcExldmVsKCkKKyAgICB7CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0
aGF0IGEgc2Nyb2xsYWJsZSBkaXYgZG9lc24ndCBjb25zdW1lIHdoZWVsIGV2ZW50cyB3aGVuIHNj
cm9sbCBpcyBsYXRjaGVkIHRvIG1haW4gZnJhbWUuIik7CisgICAgICAgIGlmICh3aW5kb3cuZXZl
bnRTZW5kZXIpIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMCk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAotICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRl
c3QsIDEwMDApOwotICAgIH0gZWxzZSB7CiAgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7CiAgICAgICAgIHZhciBtZXNzYWdlID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1M
ID0gIjxwPlRoaXMgdGVzdCBpcyBiZXR0ZXIgcnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBt
YW51YWxseSB0ZXN0IGl0LCBwbGFjZSB0aGUgbW91c2UgcG9pbnRlcjxici8+IgotICAgICAgICAg
ICAgKyAiYXQgdGhlIHRvcCBvZiB0aGUgcGFnZSwgYW5kIHRoZW4gdXNlIHRoZSBtb3VzZSB3aGVl
bCBvciBhIHR3by1maW5nZXIgc3dpcGUgdG8gc2Nyb2xsIHRoZTxici8+IgotICAgICAgICAgICAg
KyAiZG93biBwYXN0IHRoZSBkaXYuPGJyLz48YnIvPiIKLSAgICAgICAgICAgICsgIllvdSBzaG91
bGQgbm90IHNlZSB0aGUgcm93IG9mIEVORCBsYWJlbHMgaWYgdGhpcyB0ZXN0IGlzIHN1Y2Nlc3Nm
dWwuPC9wPiI7CisgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRvIG1hbnVhbGx5IHJ1
biB0aGlzIHRlc3QsIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVyICIKKyAgICAgICAgICAgICsgImF0
IHRoZSB0b3Agb2YgdGhlIHBhZ2UsIGFuZCB0aGVuIHVzZSB0aGUgbW91c2Ugd2hlZWwgb3IgYSB0
d28tZmluZ2VyIHN3aXBlIHRvIHNjcm9sbCB0aGUgIgorICAgICAgICAgICAgKyAiZG93biBwYXN0
IHRoZSBkaXYuPHA+IgorICAgICAgICAgICAgKyAiPHA+VGhlIHNjcm9sbGFibGUgZGl2IHNob3Vs
ZCBub3Qgc2Nyb2xsLjwvcD4iOwogICAgICAgICBtZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hpbGQo
bWVzc2FnZSk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0KLX0KIAorICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4geworICAgICAgICBzZXR1cFRvcExldmVs
KCk7CisgICAgfSwgZmFsc2UpOwogPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KIDxkaXYgaWQ9
InBhcmVudCIgc3R5bGU9ImhlaWdodDogMjAwMHB4OyB3aWR0aDogMjAwMHB4OyI+CiAgICAgPGRp
diBpZD0ic291cmNlIiBzdHlsZT0iaGVpZ2h0OiAxMDBweDsgd2lkdGg6IDUwMHB4OyI+CiAgICAg
ICAgIFB1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2FyZHMKQEAgLTEwNSw1OCArOTAsMTMg
QEAgZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpIHsKICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxl
X3JlZ2lvbiI+CiAgICAgICAgIDxoMz5TY3JvbGxhYmxlIFJlZ2lvbjwvaDM+CiAgICAgICAgIDxk
aXYgaWQ9InRhcmdldCIgc3R5bGU9J292ZXJmbG93LXk6IGF1dG87IG92ZXJmbG93LXg6IGhpZGRl
bjsgbWF4LWhlaWdodDogNDg1cHg7Jz4KLSAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUi
IHN0eWxlPSd3aWR0aDogOTklJz4KLSAgICAgICAgICAgICAgICA8dHI+PHRoPkNvdW50PC90aD48
dGg+REFUQTwvdGg+PHRoPlJldiBDb3VudDwvdGg+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+
PHRkPlRPUCBUT1AgVE9QIFRPUCBUT1A8L3RkPjx0ZD5UT1AgVE9QIFRPUCBUT1AgVE9QPC90ZD48
dGQ+VE9QIFRPUCBUT1AgVE9QIFRPUDwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRk
PjE8L3RkPjx0ZD4wLjExMDA8L3RkPjx0ZD40MDwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8
dHI+PHRkPjI8L3RkPjx0ZD4wLjExNTU8L3RkPjx0ZD4zOTwvdGQ+PC90cj4KLSAgICAgICAgICAg
ICAgICA8dHI+PHRkPjM8L3RkPjx0ZD4wLjIyMDA8L3RkPjx0ZD4zODwvdGQ+PC90cj4KLSAgICAg
ICAgICAgICAgICA8dHI+PHRkPjQ8L3RkPjx0ZD4wLjIyNTU8L3RkPjx0ZD4zNzwvdGQ+PC90cj4K
LSAgICAgICAgICAgICAgICA8dHI+PHRkPjU8L3RkPjx0ZD4wLjMzMDA8L3RkPjx0ZD4zNjwvdGQ+
PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPjY8L3RkPjx0ZD4wLjMzNTU8L3RkPjx0ZD4z
NTwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPjc8L3RkPjx0ZD4wLjQ0MDA8L3Rk
Pjx0ZD4zNDwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPjg8L3RkPjx0ZD4wLjQ0
NTU8L3RkPjx0ZD4zMzwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPjk8L3RkPjx0
ZD4wLjU1MDA8L3RkPjx0ZD4zMjwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPjEw
PC90ZD48dGQ+MC41NTU1PC90ZD48dGQ+MzE8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRy
Pjx0ZD4xMTwvdGQ+PHRkPjAuNjYwMDwvdGQ+PHRkPjMwPC90ZD48L3RyPgotICAgICAgICAgICAg
ICAgIDx0cj48dGQ+MTI8L3RkPjx0ZD4wLjY2NTU8L3RkPjx0ZD4yOTwvdGQ+PC90cj4KLSAgICAg
ICAgICAgICAgICA8dHI+PHRkPjEzPC90ZD48dGQ+MC43NzAwPC90ZD48dGQ+Mjg8L3RkPjwvdHI+
Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD4xNDwvdGQ+PHRkPjAuNzc1NTwvdGQ+PHRkPjI3PC90
ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+MTU8L3RkPjx0ZD4wLjg4MDA8L3RkPjx0
ZD4yNjwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPjE2PC90ZD48dGQ+MC44ODU1
PC90ZD48dGQ+MjU8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD4xNzwvdGQ+PHRk
PjAuOTkwMDwvdGQ+PHRkPjI0PC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+MTg8
L3RkPjx0ZD4wLjk5NTU8L3RkPjx0ZD4yMzwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+
PHRkPjE5PC90ZD48dGQ+MC45OTk5PC90ZD48dGQ+MjI8L3RkPjwvdHI+Ci0gICAgICAgICAgICAg
ICAgPHRyPjx0ZD4yMDwvdGQ+PHRkPjEuMDAwMDwvdGQ+PHRkPjIxPC90ZD48L3RyPgotICAgICAg
ICAgICAgICAgIDx0cj48dGQ+MjE8L3RkPjx0ZD4xLjAwMDA8L3RkPjx0ZD4yMDwvdGQ+PC90cj4K
LSAgICAgICAgICAgICAgICA8dHI+PHRkPjIyPC90ZD48dGQ+MC45OTk5PC90ZD48dGQ+MTk8L3Rk
PjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD4yMzwvdGQ+PHRkPjAuOTk1NTwvdGQ+PHRk
PjE4PC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+MjQ8L3RkPjx0ZD4wLjk5MDA8
L3RkPjx0ZD4xNzwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPjI1PC90ZD48dGQ+
MC44ODU1PC90ZD48dGQ+MTY8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD4yNjwv
dGQ+PHRkPjAuODgwMDwvdGQ+PHRkPjE1PC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48
dGQ+Mjc8L3RkPjx0ZD4wLjc3NTU8L3RkPjx0ZD4xNDwvdGQ+PC90cj4KLSAgICAgICAgICAgICAg
ICA8dHI+PHRkPjI4PC90ZD48dGQ+MC43NzAwPC90ZD48dGQ+MTM8L3RkPjwvdHI+Ci0gICAgICAg
ICAgICAgICAgPHRyPjx0ZD4yOTwvdGQ+PHRkPjAuNjY1NTwvdGQ+PHRkPjEyPC90ZD48L3RyPgot
ICAgICAgICAgICAgICAgIDx0cj48dGQ+MzA8L3RkPjx0ZD4wLjY2MDA8L3RkPjx0ZD4xMTwvdGQ+
PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPjMxPC90ZD48dGQ+MC41NTU1PC90ZD48dGQ+
MTA8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD4zMjwvdGQ+PHRkPjAuNTUwMDwv
dGQ+PHRkPjk8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD4zMzwvdGQ+PHRkPjAu
NDQ1NTwvdGQ+PHRkPjg8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD4zNDwvdGQ+
PHRkPjAuNDQwMDwvdGQ+PHRkPjc8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD4z
NTwvdGQ+PHRkPjAuMzM1NTwvdGQ+PHRkPjY8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRy
Pjx0ZD4zNjwvdGQ+PHRkPjAuMzMwMDwvdGQ+PHRkPjU8L3RkPjwvdHI+Ci0gICAgICAgICAgICAg
ICAgPHRyPjx0ZD4zNzwvdGQ+PHRkPjAuMjI1NTwvdGQ+PHRkPjQ8L3RkPjwvdHI+Ci0gICAgICAg
ICAgICAgICAgPHRyPjx0ZD4zODwvdGQ+PHRkPjAuMjIwMDwvdGQ+PHRkPjM8L3RkPjwvdHI+Ci0g
ICAgICAgICAgICAgICAgPHRyPjx0ZD4zOTwvdGQ+PHRkPjAuMTE1NTwvdGQ+PHRkPjI8L3RkPjwv
dHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD40MDwvdGQ+PHRkPjAuMTEwMDwvdGQ+PHRkPjE8
L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD5FTkQgRU5EIEVORCBFTkQgRU5EPC90
ZD48dGQ+RU5EIEVORCBFTkQgRU5EIEVORDwvdGQ+PHRkPkVORCBFTkQgRU5EIEVORCBFTkQ8L3Rk
PjwvdHI+Ci0gICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29u
dGVudHMiPgorICAgICAgICAgICAgICAgIFNjcm9sbGVkIGNvbnRlbnRzCisgICAgICAgICAgICA8
L2Rpdj4KICAgICAgICAgPC9kaXY+CiAgICAgPC9kaXY+CiA8L2Rpdj4KIDxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEgc2Nyb2xsYWJs
ZSBkaXYgZG9lc24ndCBjb25zdW1lIHdoZWVsIGV2ZW50cyB3aGVuIHNjcm9sbCBpcyBsYXRjaGVk
IHRvIG1haW4gZnJhbWUuIik7Ci08L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1kaXYtbm8t
bGF0Y2hpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hp
bmcvc2Nyb2xsLWRpdi1uby1sYXRjaGluZy1leHBlY3RlZC50eHQKaW5kZXggNzc1NTZmMjBiNzI1
YTQ3ODU1NzIwZDgxNWRkMTdhN2FiMzQ0N2E4MS4uZThmZjM4Y2ZlNjQ0NGUyZDc3MWIwNDlmOGU1
NzY1MWM3OWJjNWQ1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0
Y2hpbmcvc2Nyb2xsLWRpdi1uby1sYXRjaGluZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWRpdi1uby1sYXRjaGluZy1leHBlY3Rl
ZC50eHQKQEAgLTQsOCArNCw4IEBAIFRlc3RzIHRoYXQgc2Nyb2xsIGV2ZW50cyBvZiB0eXBlICdu
b25lJyB3b3JrIHByb3Blcmx5LgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK1BBU1Mg
UGFnZSByZWNlaXZlZCB3aGVlbCBldmVudHMuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCiAKIFRFU1QgQ09NUExFVEUKLVBBU1MgUGFnZSByZWNlaXZlZCB3aGVlbCBldmVudHMuCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1k
aXYtbm8tbGF0Y2hpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5n
L3Njcm9sbC1kaXYtbm8tbGF0Y2hpbmcuaHRtbAppbmRleCA3MmZkODFlODA2YmM5ZGRlYzJkZTEw
ZmQxNzgxZjljMTIxMmE1ZjAzLi5hNDEzZGY1ZmRhZGEzYTA0NTM4ZWQ3OTI2MzllZDI1ZDkzMzNk
MjU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3Jv
bGwtZGl2LW5vLWxhdGNoaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
bGF0Y2hpbmcvc2Nyb2xsLWRpdi1uby1sYXRjaGluZy5odG1sCkBAIC0yMiw3MyArMjIsNjMgQEAg
Ym9keSB7CiA8L3N0eWxlPgogPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gb25Mb2FkKCkgewotICAgIHNl
dHVwVG9wTGV2ZWwoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJvbkxv
YWQoKTsiPgotPHNjcmlwdD4KKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotdmFyIGRpdlRh
cmdldDsKLXZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7Ci12YXIgZGl2U2Nyb2xsUG9zaXRp
b25CZWZvcmU7Ci12YXIgY29udGludWVDb3VudCA9IDU7CisgICAgdmFyIGRpdlRhcmdldDsKKyAg
ICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlOworICAgIHZhciBkaXZTY3JvbGxQb3NpdGlv
bkJlZm9yZTsKIAotZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7Ci0gICAgdmFyIHBhZ2VTY3Jv
bGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7Ci0g
ICAgdmFyIGRpdlNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkaXZUYXJnZXQuc2Nyb2xsTGVmdDsKKyAg
ICBmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpCisgICAgeworICAgICAgICB2YXIgcGFnZVNjcm9s
bFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKKyAg
ICAgICAgdmFyIGRpdlNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkaXZUYXJnZXQuc2Nyb2xsTGVmdDsK
IAotICAgIC8vZGVidWcoIlBhZ2UgYmVmb3JlOiAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3Jl
ICsgIiwgZGl2IGJlZm9yZTogIiArIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlKTsKLSAgICAvL2Rl
YnVnKCJQYWdlIGFmdGVyOiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyICsgIiwgZGl2IGFm
dGVyOiAiICsgZGl2U2Nyb2xsUG9zaXRpb25BZnRlcik7Ci0KLSAgICBpZiAocGFnZVNjcm9sbFBv
c2l0aW9uQmVmb3JlICE9IHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyKQotICAgICAgICB0ZXN0UGFz
c2VkKCJQYWdlIHJlY2VpdmVkIHdoZWVsIGV2ZW50cy4iKTsKLSAgICBlbHNlCi0gICAgICAgIHRl
c3RGYWlsZWQoIlBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsKLQotICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfQorICAgICAgICBpZiAocGFnZVNjcm9sbFBvc2l0aW9u
QmVmb3JlICE9IHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyKQorICAgICAgICAgICAgdGVzdFBhc3Nl
ZCgiUGFnZSByZWNlaXZlZCB3aGVlbCBldmVudHMuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIlBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsKIAot
ZnVuY3Rpb24gc2Nyb2xsVGVzdCgpIHsKLSAgICAvLyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZl
czoKLSAgICBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVt
ZW50LnNjcm9sbFRvcDsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQogCi0gICAgZGl2
VGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudCcpOworICAgIGZ1bmN0aW9u
IHNjcm9sbFRlc3QoKQorICAgIHsKKyAgICAgICAgLy8gU2VlIHdoZXJlIG91ciBpZnJhbWUgbGl2
ZXM6CisgICAgICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LnNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wOwogCi0gICAgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkaXZU
YXJnZXQuc2Nyb2xsTGVmdDsKKyAgICAgICAgZGl2VGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3BhcmVudCcpOwogCi0gICAgdmFyIHN0YXJ0UG9zWCA9IGRpdlRhcmdldC5vZmZzZXRM
ZWZ0ICsgMjA7Ci0gICAgLy9kZWJ1ZygiZGl2IGRpc3BsYXkgaGVpZ2h0ID0gIiArIGRpdlRhcmdl
dC5jbGllbnRIZWlnaHQpOwotICAgIHZhciBzdGFydFBvc1kgPSBkaXZUYXJnZXQub2Zmc2V0VG9w
ICsgKGRpdlRhcmdldC5jbGllbnRIZWlnaHQgLyAyKTsgLy8gT25lIHdoZWVsIHR1cm4gYmVmb3Jl
IGVuZC4KLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7
IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpRnJhbWUKLSAgICAvL2RlYnVn
KCJNb3VzZSBtb3ZlZCB0byAoIiArIHN0YXJ0UG9zWCArICIsICIgKyBzdGFydFBvc1kgKyAiKSIp
OworICAgICAgICBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRpdlRhcmdldC5zY3JvbGxMZWZ0
OwogCi0gICAgLy9kZWJ1ZygiUGFnZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25CZWZv
cmUgKyAiLCBkaXYgYmVmb3JlOiAiICsgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUpOwotICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J25vbmUnLCAnbm9uZScpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAxLCAnbm9uZScsICdub25lJyk7Ci0gICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdu
b25lJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIDEsICdub25lJywgJ25vbmUnKTsKKyAgICAgICAgdmFyIHN0YXJ0UG9zWCA9IGRp
dlRhcmdldC5vZmZzZXRMZWZ0ICsgMjA7CisgICAgICAgIHZhciBzdGFydFBvc1kgPSBkaXZUYXJn
ZXQub2Zmc2V0VG9wICsgKGRpdlRhcmdldC5jbGllbnRIZWlnaHQgLyAyKTsgLy8gT25lIHdoZWVs
IHR1cm4gYmVmb3JlIGVuZC4KKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQ
b3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZy
YW1lCiAKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoLTEsIDAsICdub25lJywgJ25vbmUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEsIDAsICdub25lJywgJ25vbmUnKTsKLSAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEs
IDAsICdub25lJywgJ25vbmUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEsIDAsICdub25lJywgJ25vbmUnKTsKKyAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAn
bm9uZScsICdub25lJyk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAxLCAnbm9uZScsICdub25lJyk7CisgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25v
bmUnLCAnbm9uZScpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgMSwgJ25vbmUnLCAnbm9uZScpOwogCi0gICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScs
ICdub25lJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdub25lJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdub25lJyk7
CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygtMSwgMCwgJ25vbmUnLCAnbm9uZScpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEsIDAsICdub25lJywgJ25vbmUnKTsK
KyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKC0xLCAwLCAnbm9uZScsICdub25lJyk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygtMSwgMCwgJ25vbmUnLCAnbm9uZScpOwog
Ci0gICAgc2V0VGltZW91dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKLX0KKyAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9u
ZScsICdub25lJyk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnbm9uZScpOworICAgICAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25l
JywgJ25vbmUnKTsKIAotZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpIHsKKyAgICAgICAgc2V0VGlt
ZW91dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKKyAgICB9CiAKLSAgICBpZiAod2luZG93LmV2ZW50
U2VuZGVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIGZ1bmN0
aW9uIHNldHVwVG9wTGV2ZWwoKQorICAgIHsKKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRo
YXQgc2Nyb2xsIGV2ZW50cyBvZiB0eXBlICdub25lJyB3b3JrIHByb3Blcmx5LiIpOworICAgICAg
ICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KHNjcm9s
bFRlc3QsIDApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLSAgICAgICAgc2V0
VGltZW91dChzY3JvbGxUZXN0LCAxMDAwKTsKLSAgICB9IGVsc2UgewogICAgICAgICB2YXIgbWVz
c2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudCcpOwogICAgICAg
ICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICBt
ZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UaGlzIHRlc3QgaXMgYmV0dGVyIHJ1biB1bmRlciBEdW1w
UmVuZGVyVHJlZS4gVG8gbWFudWFsbHkgdGVzdCBpdCwgcGxhY2UgdGhlIG1vdXNlIHBvaW50ZXI8
YnIvPiIKQEAgLTk2LDEwICs4NiwxNSBAQCBmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkgewogICAg
ICAgICAgICAgKyAibW92aW5nIHRoZSBtb3VzZSB3aGVlbCB0byBzY3JvbGwgaG9yaXpvbnRhbGx5
LCB0aGVuICgzKSByZWxlYXNlIHRoZSBzaGlmdCBrZXkgYW5kIGF0dGVtcHQgdG8gc2Nyb2xsIHZl
cnRpY2FsbHkuPGJyLz48YnIvPiIKICAgICAgICAgICAgICsgIlRoZSBmaW5hbCBzZXQgb2YgdmVy
dGljYWwgbW92ZXMgc2hvdWxkIG1vZGlmeSB0aGUgcGFyZW50IHBhZ2Ugc2Nyb2xsIHBvc2l0aW9u
LjwvcD4iOwogICAgICAgICBtZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hpbGQobWVzc2FnZSk7Cisg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0KLX0KIAorICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdsb2FkJywgKCkgPT4geworICAgICAgICBzZXR1cFRvcExldmVsKCk7CisgICAgfSwg
ZmFsc2UpOwogPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KICAgICA8ZGl2IGlkPSJwYXJlbnQi
IGNsYXNzPSJwb3N0Ij4KICAgICAgICAgPGRpdiBpZD0idGFyZ2V0IiBjbGFzcz0iY29udGVudCI+
CiAgICAgICAgICAgICBUZXN0IHJlZ2lvbi4KQEAgLTEwNyw5ICsxMDIsNiBAQCBmdW5jdGlvbiBz
ZXR1cFRvcExldmVsKCkgewogICAgIDwvZGl2PgogPC9kaXY+CiA8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBzY3JvbGwgZXZlbnRzIG9m
IHR5cGUgJ25vbmUnIHdvcmsgcHJvcGVybHkuIik7Ci08L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Nj
cm9sbC1kaXYtd2l0aC1uZXN0ZWQtbm9uc2Nyb2xsYWJsZS1pZnJhbWUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWRpdi13aXRoLW5lc3Rl
ZC1ub25zY3JvbGxhYmxlLWlmcmFtZS1leHBlY3RlZC50eHQKaW5kZXggOGQ5ODU4MWE5ODZkMGFl
NWNlNDhjNWZlYzFlOGJjMWQyM2U2MzYzMS4uYTI0ODNkZjVlNmM3NTg0YWJiYjgxZDUyNjRhZTE3
OGY4YzcwMjk2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hp
bmcvc2Nyb2xsLWRpdi13aXRoLW5lc3RlZC1ub25zY3JvbGxhYmxlLWlmcmFtZS1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWRpdi13
aXRoLW5lc3RlZC1ub25zY3JvbGxhYmxlLWlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTUsOSArNSw2
IEBAIFRlc3RzIHRoYXQgaWZyYW1lIGRvZXMgc2Nyb2xsIHdoZW4gaW5uZXIgaWZyYW1lIGlzIE5P
VCBzY3JvbGxhYmxlLgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQogUEFTUyBkaXYgZGlkIHNjcm9s
bC4KIFBBU1MgUGFnZSBkaWQgTk9UIHNjcm9sbC4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Nj
cm9sbC1kaXYtd2l0aC1uZXN0ZWQtbm9uc2Nyb2xsYWJsZS1pZnJhbWUuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1kaXYtd2l0aC1uZXN0ZWQtbm9uc2Ny
b2xsYWJsZS1pZnJhbWUuaHRtbAppbmRleCA0ODEwNjQ5MmEwYTMxZTAwN2MxOTM3NjJjODc5ZDI1
Yzg5NjA0YjA3Li4wZmQ4NzY4MTk5Nzc4Mzc3MjNlZGRhNWYwZjVhZTljZjM5OGYxYmYxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtZGl2LXdp
dGgtbmVzdGVkLW5vbnNjcm9sbGFibGUtaWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWRpdi13aXRoLW5lc3RlZC1ub25zY3JvbGxhYmxl
LWlmcmFtZS5odG1sCkBAIC0xLDExNSArMSwxMDQgQEAKIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+
CiA8aGVhZD4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvRE9N
LUxldmVsLTMtRXZlbnRzLyNldmVudHMtV2hlZWxFdmVudCI+CiA8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5Pgog
PHNjcmlwdD4KKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotdmFyIGRpdlRhcmdldDsKLXZh
ciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7Ci12YXIgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmU7
Ci0KLWZ1bmN0aW9uIGxvY2F0aW9uSW5XaW5kb3dDb29yZGluYXRlcyhlbGVtZW50KQotewotICAg
IHZhciBwb3NpdGlvbiA9IHt9OwotICAgIHBvc2l0aW9uLnggPSBlbGVtZW50Lm9mZnNldExlZnQ7
Ci0gICAgcG9zaXRpb24ueSA9IGVsZW1lbnQub2Zmc2V0VG9wOwotCi0gICAgd2hpbGUgKGVsZW1l
bnQub2Zmc2V0UGFyZW50KSB7Ci0gICAgICAgIHBvc2l0aW9uLnggPSBwb3NpdGlvbi54ICsgZWxl
bWVudC5vZmZzZXRQYXJlbnQub2Zmc2V0TGVmdDsKLSAgICAgICAgcG9zaXRpb24ueSA9IHBvc2l0
aW9uLnkgKyBlbGVtZW50Lm9mZnNldFBhcmVudC5vZmZzZXRUb3A7Ci0gICAgICAgIGlmIChlbGVt
ZW50ID09IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0pCi0gICAgICAg
ICAgICBicmVhazsKKyAgICB2YXIgZGl2VGFyZ2V0OworICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRp
b25CZWZvcmU7CisgICAgdmFyIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlOwogCi0gICAgICAgIGVs
ZW1lbnQgPSBlbGVtZW50Lm9mZnNldFBhcmVudDsKLSAgICB9Ci0KLSAgICByZXR1cm4gcG9zaXRp
b247Ci19CisgICAgZnVuY3Rpb24gbG9jYXRpb25JbldpbmRvd0Nvb3JkaW5hdGVzKGVsZW1lbnQp
CisgICAgeworICAgICAgICB2YXIgcG9zaXRpb24gPSB7fTsKKyAgICAgICAgcG9zaXRpb24ueCA9
IGVsZW1lbnQub2Zmc2V0TGVmdDsKKyAgICAgICAgcG9zaXRpb24ueSA9IGVsZW1lbnQub2Zmc2V0
VG9wOwogCi1mdW5jdGlvbiBmaW5pc2hUZXN0KCkKLXsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLSAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsgICAgICAgICAgICAKLX0KKyAgICAgICAgd2hpbGUg
KGVsZW1lbnQub2Zmc2V0UGFyZW50KSB7CisgICAgICAgICAgICBwb3NpdGlvbi54ID0gcG9zaXRp
b24ueCArIGVsZW1lbnQub2Zmc2V0UGFyZW50Lm9mZnNldExlZnQ7CisgICAgICAgICAgICBwb3Np
dGlvbi55ID0gcG9zaXRpb24ueSArIGVsZW1lbnQub2Zmc2V0UGFyZW50Lm9mZnNldFRvcDsKKyAg
ICAgICAgICAgIGlmIChlbGVtZW50ID09IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJi
b2R5IilbMF0pCisgICAgICAgICAgICAgICAgYnJlYWs7CiAKLWZ1bmN0aW9uIGNoZWNrRm9yU2Ny
b2xsKCkKLXsKLSAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5zY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKLSAgICB2YXIgZGl2U2Nyb2xsUG9zaXRpb25BZnRlciA9
IGRpdlRhcmdldC5zY3JvbGxUb3A7CisgICAgICAgICAgICBlbGVtZW50ID0gZWxlbWVudC5vZmZz
ZXRQYXJlbnQ7CisgICAgICAgIH0KIAotICAgIGlmIChkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZSAh
PSBkaXZTY3JvbGxQb3NpdGlvbkFmdGVyKQotICAgICAgICB0ZXN0UGFzc2VkKCJkaXYgZGlkIHNj
cm9sbC4iKTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RGYWlsZWQoImRpdiBkaWQgTk9UIHNjcm9s
bC4iKTsKKyAgICAgICAgcmV0dXJuIHBvc2l0aW9uOworICAgIH0KIAotICAgIGlmIChwYWdlU2Ny
b2xsUG9zaXRpb25CZWZvcmUgPT0gcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpCi0gICAgICAgIHRl
c3RQYXNzZWQoIlBhZ2UgZGlkIE5PVCBzY3JvbGwuIik7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0
RmFpbGVkKCJQYWdlIERJRCBzY3JvbGwuIik7CisgICAgZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwo
KQorICAgIHsKKyAgICAgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQu
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7CisgICAgICAgIHZhciBkaXZTY3JvbGxQb3NpdGlv
bkFmdGVyID0gZGl2VGFyZ2V0LnNjcm9sbFRvcDsKIAotICAgIGZpbmlzaFRlc3QoKTsKLX0KKyAg
ICAgICAgaWYgKGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IGRpdlNjcm9sbFBvc2l0aW9uQWZ0
ZXIpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJkaXYgZGlkIHNjcm9sbC4iKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZGl2IGRpZCBOT1Qgc2Nyb2xsLiIpOwogCi1m
dW5jdGlvbiBzY3JvbGxUZXN0KCkKLXsKLSAgICBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBk
b2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKKyAgICAgICAgaWYgKHBhZ2VTY3Jv
bGxQb3NpdGlvbkJlZm9yZSA9PSBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAgICAg
IHRlc3RQYXNzZWQoIlBhZ2UgZGlkIE5PVCBzY3JvbGwuIik7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIlBhZ2UgRElEIHNjcm9sbC4iKTsKIAotICAgIGRpdlRhcmdldCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY3JvbGxhYmxlX2RpdicpOworICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKKyAgICB9CiAKLSAgICB2YXIgd2luZG93UG9zaXRpb24gPSBsb2NhdGlvbklu
V2luZG93Q29vcmRpbmF0ZXMoZGl2VGFyZ2V0KTsKKyAgICBmdW5jdGlvbiBzY3JvbGxUZXN0KCkK
KyAgICB7CisgICAgICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LnNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wOwogCi0gICAgdmFyIHN0YXJ0UG9zWCA9IHdpbmRvd1Bvc2l0
aW9uLnggKyAwLjUgKiBkaXZUYXJnZXQuY2xpZW50V2lkdGg7Ci0gICAgdmFyIHN0YXJ0UG9zWSA9
IHdpbmRvd1Bvc2l0aW9uLnkgKyAwLjUgKiBkaXZUYXJnZXQuY2xpZW50SGVpZ2h0OworICAgICAg
ICBkaXZUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Nyb2xsYWJsZV9kaXYnKTsK
IAotICAgIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZGl2VGFyZ2V0LnNjcm9sbFRvcDsKKyAg
ICAgICAgdmFyIHdpbmRvd1Bvc2l0aW9uID0gbG9jYXRpb25JbldpbmRvd0Nvb3JkaW5hdGVzKGRp
dlRhcmdldCk7CiAKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0
UG9zWSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScp
OwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScpOwotICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ25vbmUnLCAnYmVnaW4nKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7Ci0gICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdu
b25lJywgJ2VuZCcpOwotICAgIGV2ZW50U2VuZGVyLmNhbGxBZnRlclNjcm9sbGluZ0NvbXBsZXRl
cyhjaGVja0ZvclNjcm9sbCk7Ci19CisgICAgICAgIHZhciBzdGFydFBvc1ggPSB3aW5kb3dQb3Np
dGlvbi54ICsgMC41ICogZGl2VGFyZ2V0LmNsaWVudFdpZHRoOworICAgICAgICB2YXIgc3RhcnRQ
b3NZID0gd2luZG93UG9zaXRpb24ueSArIDAuNSAqIGRpdlRhcmdldC5jbGllbnRIZWlnaHQ7CiAK
LWZ1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKQotewotICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIp
IHsKLSAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7Ci0gICAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOworICAgICAgICBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRpdlRhcmdl
dC5zY3JvbGxUb3A7CiAKICAgICAgICAgZXZlbnRTZW5kZXIubW9uaXRvcldoZWVsRXZlbnRzKCk7
Ci0gICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMCk7Ci0gICAgfSBlbHNlIHsKKyAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOworICAgICAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
LTEsICdiZWdhbicsICdub25lJyk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAg
ICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJyk7Cisg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScp
OworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJyk7CisgICAgICAgIGV2ZW50U2VuZGVyLmNhbGxBZnRl
clNjcm9sbGluZ0NvbXBsZXRlcyhjaGVja0ZvclNjcm9sbCk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gc2V0dXBUb3BMZXZlbCgpCisgICAgeworICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhh
dCBpZnJhbWUgZG9lcyBzY3JvbGwgd2hlbiBpbm5lciBpZnJhbWUgaXMgTk9UIHNjcm9sbGFibGUu
Iik7CisgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgICAgIHNldFRp
bWVvdXQoc2Nyb2xsVGVzdCwgMCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAg
ICAgICAgCiAgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgncGFyZW50Jyk7CiAgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7Ci0gICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBp
cyBiZXR0ZXIgcnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0LCBw
bGFjZSB0aGUgbW91c2UgcG9pbnRlcjxici8+IgotICAgICAgICAgICAgKyAiaW5zaWRlIHRoZSBJ
RnJhbWUsIHRoZW4gdXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1maW5nZXIgc3dpcGUgdG8g
c2Nyb2xsIHRoZSBJRnJhbWUgdG8gdGhlIGJvdHRvbSAoYW5kIGJleW9uZCkuPGJyLz4iCi0gICAg
ICAgICAgICArICI8YnIvPjxici8+IgotICAgICAgICAgICAgKyAiVGhlIHRlc3QgcGFzc2VzIGlm
IHlvdSBzY3JvbGwgZmFyIGVub3VnaCB0byBzZWUgdGhlIHJvdyBvZiBFTkQgbGFiZWxzIGJ1dCB0
aGUgbWFpbiBwYWdlIGRvZXMgbm90IHNjcm9sbC48L3A+IjsKKyAgICAgICAgbWVzc2FnZS5pbm5l
ckhUTUwgPSAiPHA+VG8gbWFudWFsbHkgcnVuIHRoaXMgdGVzdCwgcGxhY2UgdGhlIG1vdXNlIHBv
aW50ZXIgIgorICAgICAgICAgICAgKyAiaW5zaWRlIHRoZSBpZnJhbWUsIHRoZW4gdXNlIHRoZSBt
b3VzZSB3aGVlbCBvciBhIHR3by1maW5nZXIgc3dpcGUgdG8gc2Nyb2xsIHRoZSBpZnJhbWUgdG8g
dGhlIGJvdHRvbSAoYW5kIGJleW9uZCkuPC9wPiIKKyAgICAgICAgICAgICsgIjxwPlRoZSB0ZXN0
IHBhc3NlcyBpZiB5b3Ugc2Nyb2xsIHRvIHRoZSBib3R0b20gb2YgdGhlIGlmcmFtZSBidXQgdGhl
IG1haW4gcGFnZSBkb2VzIG5vdCBzY3JvbGwuPC9wPiI7CiAgICAgICAgIG1lc3NhZ2VMb2NhdGlv
bi5hcHBlbmRDaGlsZChtZXNzYWdlKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfQot
fQotCiA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgogPGRpdiBpZD0icGFyZW50IiBzdHlsZT0i
aGVpZ2h0OiAyMDAwcHgiPgogICAgIDxkaXYgaWQ9InNvdXJjZSIgc3R5bGU9ImhlaWdodDogMjBw
eCI+CiAgICAgICAgIFB1dCBtb3VzZSBpbnNpZGUgdGhlIGlmcmFtZSAoYmVsb3cpIGFuZCBmbGlj
ayBkb3dud2FyZHMKICAgICA8L2Rpdj4KICAgICA8ZGl2IGlkPSJzY3JvbGxhYmxlX2RpdiIgc3R5
bGU9ImhlaWdodDogNDAwcHg7IHdpZHRoOiA0MzBweDsgb3ZlcmZsb3cteTphdXRvOyBwYWRkaW5n
OiAwOyI+Ci0gICAgICAgIDxpZnJhbWUgaWQ9Im5vbl9zY3JvbGxhYmxlX2lmcmFtZSIgc3JjPSJy
ZXNvdXJjZXMvYmFja2dyb3VuZC5odG1sIiBzdHlsZT0iaGVpZ2h0OiAyMTAwcHg7IHdpZHRoOjQx
MHB4OyBvdmVyZmxvdzpoaWRkZW47IHNjcm9sbGluZzogbm8iIG9ubG9hZD0ic2V0dXBUb3BMZXZl
bCgpOyI+CisgICAgICAgIDxpZnJhbWUgaWQ9Im5vbl9zY3JvbGxhYmxlX2lmcmFtZSIgc3JjPSJy
ZXNvdXJjZXMvYmFja2dyb3VuZC5odG1sIiBzY3JvbGxpbmc9Im5vIiBzdHlsZT0iaGVpZ2h0OiAy
MTAwcHg7IHdpZHRoOjQxMHB4OyIgb25sb2FkPSJzZXR1cFRvcExldmVsKCk7Ij4KICAgICAgICAg
PC9pZnJhbWU+CiAgICAgPC9kaXY+CiA8L2Rpdj4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgot
PHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGlmcmFtZSBkb2VzIHNjcm9sbCB3aGVu
IGlubmVyIGlmcmFtZSBpcyBOT1Qgc2Nyb2xsYWJsZS4iKTsKLTwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5
PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hp
bmcvc2Nyb2xsLWlmcmFtZS1mcmFnbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtaWZyYW1lLWZyYWdtZW50LWV4cGVjdGVkLnR4dApp
bmRleCA4Nzg4OWM4NWYwZjg2ODgxZWMyNmM3MDVhOGE0ZTdhMjZiZTA4Y2E5Li4zOTE0MjI0NjI0
ZjNhOWVlYzYyMWY4ZDFlNzhmYTJmZmVhZDQ2ODk5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtaWZyYW1lLWZyYWdtZW50LWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtaWZyYW1l
LWZyYWdtZW50LWV4cGVjdGVkLnR4dApAQCAtNCwxMCArNCwxMCBAQCBUZXN0cyB0aGF0IGlmcmFt
ZSBkb2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRvIG1haW4gZnJhbWUgd2hlbiBzY3JvbGxpbmcg
YXQgYm90dAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQogSUZyYW1lIGRpc3BsYXkgaGVpZ2h0ID0g
NTAwCiBNb3VzZSBtb3ZlZCB0byAoMjgsIDQ2NikKIFBBU1MgSUZyYW1lIHJlY2VpdmVkIHdoZWVs
IGV2ZW50cy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3Jv
bGwtaWZyYW1lLWZyYWdtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRj
aGluZy9zY3JvbGwtaWZyYW1lLWZyYWdtZW50Lmh0bWwKaW5kZXggY2EwMDg2MTlkNGIzZGM1MGZi
NDc1YjNkNTE2OTU5MDFiNmE2MjAzOC4uOWUzZWZkNDJjYjRhMDMwOWZjNDE4YWM4MDlkYjM4MmE0
YzQ5NjNiNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcv
c2Nyb2xsLWlmcmFtZS1mcmFnbWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2xhdGNoaW5nL3Njcm9sbC1pZnJhbWUtZnJhZ21lbnQuaHRtbApAQCAtMSw0NyArMSw0OCBA
QAogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVudHMvI2V2
ZW50cy1XaGVlbEV2ZW50Ij4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPC9oZWFkPgotICAgIDxib2R5PgotICAg
ICAgICA8c2NyaXB0PgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAganNUZXN0
SXNBc3luYyA9IHRydWU7CisKICAgICAgICAgdmFyIGlmcmFtZVRhcmdldDsKICAgICAgICAgdmFy
IHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZTsKLSAgICAgICAgdmFyIGlGcmFtZVNjcm9sbFBvc2l0
aW9uQmVmb3JlOwotICAgICAgICB2YXIgY29udGludWVDb3VudCA9IDU7Ci0KLSAgICAgICAgZnVu
Y3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7CisgICAgICAgIHZhciBpZnJhbWVTY3JvbGxQb3NpdGlv
bkJlZm9yZTsKIAotICAgICAgICAgICAgLy8gVGhlIElGcmFtZSBzaG91bGQgaGF2ZSBzY3JvbGxl
ZCwgYnV0IG5vdCB0aGUgbWFpbiBwYWdlLgorICAgICAgICBmdW5jdGlvbiBjaGVja0ZvclNjcm9s
bCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIFRoZSBpZnJhbWUgc2hvdWxkIGhhdmUgc2Ny
b2xsZWQsIGJ1dCBub3QgdGhlIG1haW4gcGFnZS4KICAgICAgICAgICAgIHZhciBwYWdlU2Nyb2xs
UG9zaXRpb25BZnRlciA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOwotICAg
ICAgICAgICAgdmFyIGlGcmFtZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSB3aW5kb3cuZnJhbWVzWyd0
YXJnZXQnXS5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKKyAgICAgICAgICAg
IHZhciBpZnJhbWVTY3JvbGxQb3NpdGlvbkFmdGVyID0gd2luZG93LmZyYW1lc1sndGFyZ2V0J10u
ZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7CiAKLSAgICAgICAgICAgIGlmIChp
RnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBpRnJhbWVTY3JvbGxQb3NpdGlvbkFmdGVyKQor
ICAgICAgICAgICAgaWYgKGlmcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IGlmcmFtZVNjcm9s
bFBvc2l0aW9uQWZ0ZXIpCiAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiSUZyYW1lIHJlY2Vp
dmVkIHdoZWVsIGV2ZW50cy4iKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJJRnJhbWUgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsKIAotICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKICAgICAgICAgfQogCi0gICAgICAgIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKSB7Ci0gICAg
ICAgICAgICAvLyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZlczoKKyAgICAgICAgZnVuY3Rpb24g
c2Nyb2xsVGVzdCgpCisgICAgICAgIHsKICAgICAgICAgICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJl
Zm9yZSA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOwogCiAgICAgICAgICAg
ICBpZnJhbWVUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CiAKLSAg
ICAgICAgICAgIHZhciBpRnJhbWVCb2R5ID0gd2luZG93LmZyYW1lc1sndGFyZ2V0J10uZG9jdW1l
bnQuYm9keTsKLSAgICAgICAgICAgIGlGcmFtZUJvZHkuc2Nyb2xsVG9wID0gaUZyYW1lQm9keS5z
Y3JvbGxIZWlnaHQgLSBpZnJhbWVUYXJnZXQuY2xpZW50SGVpZ2h0IC0gMTAwOworICAgICAgICAg
ICAgdmFyIGlmcmFtZVNjcm9sbGluZ0VsZW1lbnQgPSB3aW5kb3cuZnJhbWVzWyd0YXJnZXQnXS5k
b2N1bWVudC5zY3JvbGxpbmdFbGVtZW50OworICAgICAgICAgICAgaWZyYW1lU2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3AgPSBpZnJhbWVTY3JvbGxpbmdFbGVtZW50LnNjcm9sbEhlaWdodCAtIGlm
cmFtZVRhcmdldC5jbGllbnRIZWlnaHQgLSAxMDA7CiAKLSAgICAgICAgICAgIGlGcmFtZVNjcm9s
bFBvc2l0aW9uQmVmb3JlID0gaUZyYW1lQm9keS5zY3JvbGxUb3A7CisgICAgICAgICAgICBpZnJh
bWVTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGlmcmFtZVNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9w
OwogCiAgICAgICAgICAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2UgdW50aWwgd2UgcmVhY2ggdGhl
ICN0YXJnZXQuCiAgICAgICAgICAgICB2YXIgc3RhcnRQb3NYID0gaWZyYW1lVGFyZ2V0Lm9mZnNl
dExlZnQgKyAyMDsKICAgICAgICAgICAgIGRlYnVnKCJJRnJhbWUgZGlzcGxheSBoZWlnaHQgPSAi
ICsgaWZyYW1lVGFyZ2V0LmNsaWVudEhlaWdodCk7CiAgICAgICAgICAgICB2YXIgc3RhcnRQb3NZ
ID0gaWZyYW1lVGFyZ2V0Lm9mZnNldFRvcCArIGlmcmFtZVRhcmdldC5jbGllbnRIZWlnaHQgLSA0
MjsgLy8gT25lIHdoZWVsIHR1cm4gYmVmb3JlIGVuZC4KKworICAgICAgICAgICAgZXZlbnRTZW5k
ZXIubW9uaXRvcldoZWVsRXZlbnRzKCk7CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRz
aWRlIHRoZSBpRnJhbWUKICAgICAgICAgICAgIGRlYnVnKCJNb3VzZSBtb3ZlZCB0byAoIiArIHN0
YXJ0UG9zWCArICIsICIgKyBzdGFydFBvc1kgKyAiKSIpOworCiAgICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdh
bicsICdub25lJyk7CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKICAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOwpAQCAtNDksNTAgKzUwLDUyIEBACiAgICAgICAgICAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
LTEsICdub25lJywgJ2JlZ2luJyk7CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7
CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50
dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJyk7Ci0gICAgICAgICAgICBzZXRUaW1lb3V0KGNo
ZWNrRm9yU2Nyb2xsLCAxMDApOworICAgICAgICAgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Ny
b2xsaW5nQ29tcGxldGVzKGNoZWNrRm9yU2Nyb2xsKTsKICAgICAgICAgfQogCi0gICAgICAgIGZ1
bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7CisgICAgICAgIGZ1bmN0aW9uIHNldHVwVG9wTGV2ZWwo
KQorICAgICAgICB7CisgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBzZWVtcyBsaWtlIGEgYmFz
aWMgaWZyYW1lIGxhdGNoaW5nIHRlc3QsIGJ1dCB0aGF0IGNvbnRyYWRpY3RzIHdpdGggdGhlIHRl
c3QgbmFtZQorICAgICAgICAgICAgLy8gYW5kIHRoZSBpZnJhbWUgY29udGVudHMuCisgICAgICAg
ICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBpZnJhbWUgZG9lc24ndCBwYXNzIHdoZWVsIGV2
ZW50cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5nIGF0IGJvdHRvbSIpOwogICAgICAgICAg
ICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOwotCi0gICAgICAgICAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0
LCAxMDAwKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgdmFyIG1lc3Nh
Z2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKLSAgICAgICAg
ICAgICAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAg
ICAgICAgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBpcyBiZXR0ZXIg
cnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0LCBwbGFjZSB0aGUg
bW91c2UgcG9pbnRlcjxici8+IgotICAgICAgICAgICAgICAgICAgICArICJpbnNpZGUgdGhlIElG
cmFtZSwgdGhlbiB1c2UgdGhlIG1vdXNlIHdoZWVsIG9yIGEgdHdvLWZpbmdlciBzd2lwZSB0byBz
Y3JvbGwgdGhlIElGcmFtZSB0byB0aGUgYm90dG9tIChhbmQgYmV5b25kKS48YnIvPiIKLSAgICAg
ICAgICAgICAgICAgICAgKyAiPGJyLz48YnIvPiIKLSAgICAgICAgICAgICAgICAgICAgKyAiVGhl
IHRlc3QgcGFzc2VzIGlmIHlvdSBzY3JvbGwgZmFyIGVub3VnaCB0byBzZWUgdGhlIHJvdyBvZiBF
TkQgbGFiZWxzIGJ1dCB0aGUgbWFpbiBwYWdlIGRvZXMgbm90IHNjcm9sbC48L3A+IjsKLSAgICAg
ICAgICAgICAgICBtZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgICAg
ICAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAwKTsKKyAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgICAgIG1lc3NhZ2UuaW5uZXJI
VE1MID0gIjxwPlRvIG1hbnVhbGx5IHJ1biB0aGlzIHRlc3QsIHBsYWNlIHRoZSBtb3VzZSBwb2lu
dGVyICIKKyAgICAgICAgICAgICAgICArICJpbnNpZGUgdGhlIGlmcmFtZSwgdGhlbiB1c2UgdGhl
IG1vdXNlIHdoZWVsIG9yIGEgdHdvLWZpbmdlciBzd2lwZSB0byBzY3JvbGwgdGhlIGlmcmFtZSB0
byB0aGUgYm90dG9tIChhbmQgYmV5b25kKS48L3A+IgorICAgICAgICAgICAgICAgICsgIjxwPlRo
ZSB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2Nyb2xsIGZhciBlbm91Z2ggdG8gc2VlIHRoZSByb3cgb2Yg
RU5EIGxhYmVscyBidXQgdGhlIG1haW4gcGFnZSBkb2VzIG5vdCBzY3JvbGwuPC9wPiI7CisgICAg
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CiAgICAgICAgIH0KLSAgICAgICAgPC9zY3JpcHQ+Ci0gICAgICAgIDxp
ZnJhbWUgaWQ9InRhcmdldCIgbmFtZT0idGFyZ2V0IiBzdHlsZT0iYm9yZGVyOnNvbGlkIDFweCBn
cmVlbjsgaGVpZ2h0OiA1MDBweDsgd2lkdGg6IDUwMHB4OyIgCi0gICAgICAgICAgICBzcmM9ICJk
YXRhOnRleHQvaHRtbCwKLSAgICAgICAgICAgICAgICA8aHRtbD4KLSAgICAgICAgICAgICAgICAg
ICAgPGhlYWQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8c3R5bGU+ZGl2IHsgd2lkdGg6IDQw
MHB4OyBoZWlnaHQ6IDIwMHB4OyB9IDwvc3R5bGU+Ci0gICAgICAgICAgICAgICAgICAgIDwvaGVh
ZD4KLSAgICAgICAgICAgICAgICAgICAgPGJvZHk+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8
ZGl2IGlkPSdub3RUb0JlU2Nyb2xsZWQnIHN0eWxlPSdoZWlnaHQ6IDEwMDBweDsgd2lkdGg6IDEw
MDBweDsnPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRPUCBUT1AgVE9QIFRPUCBUT1Ag
VE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1A8YnIvPjxici8+Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVGhpcyBzaG91bGQgc3RpbGwgYmUgdmlzaWJsZSBpbnNpZGUgdGhl
IGZyYW1lIGFmdGVyIHlvdSBzY3JvbGwgZG93bgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48
YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA8YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+
PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFRoaXMgc2hvdWxkIE5PVCBiZSB2aXNpYmxlIGluc2lkZSB0aGUgZnJhbWUgYWZ0ZXIgeW91
IHNjcm9sbCBkb3duPGJyLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIvPgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQg
RU5EIEVORCBFTkQgRU5EIEVORAotICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAg
ICAgICAgICAgICAgICAgIDwvYm9keT4KLSAgICAgICAgICAgICAgICA8L2h0bWw+IgotICAgICAg
ICAgICAgb25sb2FkPSJzZXR1cFRvcExldmVsKCk7Ij4KLSAgICAgICAgPC9pZnJhbWU+Ci0gICAg
ICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotICAgICAgICA8c2NyaXB0PgotICAgICAgICBk
ZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBpZnJhbWUgZG9lc24ndCBwYXNzIHdoZWVsIGV2ZW50cyB0
byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5nIGF0IGJvdHRvbSIpOwotICAgICAgICA8L3Njcmlw
dD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgotICAgIDwvYm9keT4KKyAgICAKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorICAgIDxpZnJhbWUgaWQ9InRhcmdldCIgbmFtZT0idGFyZ2V0IiBzdHlsZT0iYm9y
ZGVyOnNvbGlkIDFweCBncmVlbjsgaGVpZ2h0OiA1MDBweDsgd2lkdGg6IDUwMHB4OyIgCisgICAg
ICAgIHNyYz0gImRhdGE6dGV4dC9odG1sLAorICAgICAgICAgICAgPGh0bWw+CisgICAgICAgICAg
ICAgICAgPGhlYWQ+CisgICAgICAgICAgICAgICAgICAgIDxzdHlsZT5kaXYgeyB3aWR0aDogNDAw
cHg7IGhlaWdodDogMjAwcHg7IH0gPC9zdHlsZT4KKyAgICAgICAgICAgICAgICA8L2hlYWQ+Cisg
ICAgICAgICAgICAgICAgPGJvZHk+CisgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9J2hl
aWdodDogMTAwMHB4OyB3aWR0aDogMTAwMHB4Oyc+CisgICAgICAgICAgICAgICAgICAgICAgICBU
T1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QPGJy
Lz48YnIvPgorICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBzaG91bGQgc3RpbGwgYmUgdmlz
aWJsZSBpbnNpZGUgdGhlIGZyYW1lIGFmdGVyIHlvdSBzY3JvbGwgZG93bgorICAgICAgICAgICAg
ICAgICAgICAgICAgPGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+
PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPgorICAgICAgICAgICAgICAg
ICAgICAgICAgPGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJy
Lz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPgorICAgICAgICAgICAgICAgICAg
ICAgICAgPGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48
YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPgorICAgICAgICAgICAgICAgICAgICAg
ICAgVGhpcyBzaG91bGQgTk9UIGJlIHZpc2libGUgaW5zaWRlIHRoZSBmcmFtZSBhZnRlciB5b3Ug
c2Nyb2xsIGRvd248YnIvPgorICAgICAgICAgICAgICAgICAgICAgICAgPGJyLz4KKyAgICAgICAg
ICAgICAgICAgICAgICAgIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBF
TkQgRU5EIEVORAorICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAgICA8
L2JvZHk+CisgICAgICAgICAgICA8L2h0bWw+IgorICAgICAgICBvbmxvYWQ9InNldHVwVG9wTGV2
ZWwoKTsiPgorICAgIDwvaWZyYW1lPgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2xhdGNoaW5nL3Njcm9sbC1pZnJhbWUtaW4tb3ZlcmZsb3ctZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWlmcmFtZS1pbi1vdmVyZmxv
dy1leHBlY3RlZC50eHQKaW5kZXggZjcwNDE5NjQ0NWEwMjI0NjBlMmY1OWVkNzdkNGZkNjEwNzBi
ZWZkOS4uZWQ3MDY4OGMzMzA0NDY1MDYwNDFmNWIyYmMxODg0YjY1MDNiYzE1OCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWlmcmFtZS1pbi1v
dmVyZmxvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0
Y2hpbmcvc2Nyb2xsLWlmcmFtZS1pbi1vdmVyZmxvdy1leHBlY3RlZC50eHQKQEAgLTEsMiArMSw1
IEBACiBQQVNTIFRoZSBpZnJhbWUgc2Nyb2xsZWQgYnV0IHRoZSB3cmFwcGVyIGRpZCBub3QuCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWlmcmFtZS1p
bi1vdmVyZmxvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Ny
b2xsLWlmcmFtZS1pbi1vdmVyZmxvdy5odG1sCmluZGV4IGQyNTY2N2FiOWQ5Y2Q0Y2U2NTYyMmRm
N2YzZWU5ZmY2MzU3MjUzM2QuLjQyZDcxMTY1MTg3MDkxMmI2NDAwNmIxZTMzYzk3OTEwMTNlZGMy
MWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9s
bC1pZnJhbWUtaW4tb3ZlcmZsb3cuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9sYXRjaGluZy9zY3JvbGwtaWZyYW1lLWluLW92ZXJmbG93Lmh0bWwKQEAgLTIxLDcgKzIxLDcg
QEAKICAgICB9CiAgICAgPC9zdHlsZT4KICAgICA8c2NyaXB0PgotICAgIHdpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgIGZ1bmN0aW9u
IGNoZWNrRm9yU2Nyb2xsKCkgewogICAgICAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImZyYW1lIik7CkBAIC0zMSwxMCArMzEsMTIgQEAKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiVGhlIGlmcmFtZSdzIHNjcm9sbCBwb3NpdGlvbiBpczogIiAr
IGlmcmFtZS5jb250ZW50V2luZG93LnNjcm9sbFkgKyAiLCBhbmQgdGhlIHdyYXBwZXIncyBzY3Jv
bGwgcG9zaXRpb24gaXM6ICIgKyB3cmFwcGVyLnNjcm9sbFRvcCk7CiAKLSAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0KIAotICAg
IGZ1bmN0aW9uIHNjcm9sbFRlc3QoKSB7CisgICAgZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCisgICAg
eworICAgICAgICBldmVudFNlbmRlci5tb25pdG9yV2hlZWxFdmVudHMoKTsKICAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8oMjAwLCA1MCk7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgImJlZ2FuIiwgIm5vbmUi
KTsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAiY2hhbmdlZCIsICJub25lIik7CkBAIC01NSwxNiArNTcsMTYgQEAKIAog
ICAgIGZ1bmN0aW9uIHNldHVwKCkgewogICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7
Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb25pdG9yV2hlZWxFdmVudHMoKTsKICAgICAgICAg
ICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAg
ICAgICAgbWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+VGhpcyB0ZXN0IGlzIGJldHRlciBydW4gdW5k
ZXIgRHVtcFJlbmRlclRyZWUuIFRvIG1hbnVhbGx5IHRlc3QgaXQsIHBsYWNlIHRoZSBtb3VzZSBw
b2ludGVyPGJyLz4iCi0gICAgICAgICAgICAgICAgKyAiaW5zaWRlIHRoZSBJRnJhbWUsIHRoZW4g
dXNlIGEgdHdvLWZpbmdlciBzd2lwZSB0byBzY3JvbGwgdGhlIGlmcmFtZSB0byB0aGUgYm90dG9t
IChhbmQgYmV5b25kKS48YnIvPiIKLSAgICAgICAgICAgICAgICArICI8YnIvPjxici8+IgotICAg
ICAgICAgICAgICAgICsgIlRoZSB0ZXN0IHBhc3NlcyBpZiB0aGUgb3ZlcmZsb3cgY29udGFpbmVy
IGRvZXMgbm90IHNjcm9sbCBidXQgdGhlIGlmcmFtZSBzY3JvbGxzIHRvIHRoZSBib3R0b20uPC9w
PiI7Ci0gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisgICAgICAgIAorICAgICAgICB2YXIgbWVzc2Fn
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICBtZXNzYWdlLmlubmVy
SFRNTCA9ICI8cD5UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBwbGFjZSB0aGUgbW91c2UgcG9p
bnRlciAiCisgICAgICAgICAgICArICJpbnNpZGUgdGhlIGlmcmFtZSwgdGhlbiB1c2UgYSB0d28t
ZmluZ2VyIHN3aXBlIHRvIHNjcm9sbCB0aGUgaWZyYW1lIHRvIHRoZSBib3R0b20gKGFuZCBiZXlv
bmQpLjwvcD4iCisgICAgICAgICAgICArICI8cD5UaGUgdGVzdCBwYXNzZXMgaWYgdGhlIG92ZXJm
bG93IGNvbnRhaW5lciBkb2VzIG5vdCBzY3JvbGwgYnV0IHRoZSBpZnJhbWUgc2Nyb2xscyB0byB0
aGUgYm90dG9tLjwvcD4iOworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG1lc3Nh
Z2UpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9CiAKICAgICA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1pZnJh
bWUtbGF0Y2hlZC1pZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvbGF0Y2hpbmcvc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS1leHBlY3RlZC50eHQKaW5k
ZXggN2QxNDg3MzNkNDU3NTgzNmZjZmIwYmQ5Zjc4YjgyMzU4ZjljY2E3Ny4uNmI0ODIzZjFiNDky
OWQ3Y2NlZGU5Y2Q2YzU2MjQzZGEzYjVkYzliZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWlm
cmFtZS1sYXRjaGVkLWlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTUsMTAgKzUsMTAgQEAgVGVzdHMg
dGhhdCBpZnJhbWUgZG9lc24ndCBwYXNzIHdoZWVsIGV2ZW50cyB0byBtYWluIGZyYW1lIHdoZW4g
c2Nyb2xsaW5nIGF0IGJvdHQKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKIElGcmFtZSBkaXNwbGF5
IGhlaWdodCA9IDUwMAogTW91c2UgbW92ZWQgdG8gKDI4LCA1NjYpCiBQQVNTIFBhZ2UgZGlkIG5v
dCByZWNlaXZlIHdoZWVsIGV2ZW50cy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9sYXRjaGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLmh0
bWwKaW5kZXggMTdiMzVkNTRkMjc0NDdlZDZhNjc0N2JlNjQ1YzZiYTRkOGQ2ZDZiOS4uN2NlMDQ4
MjAwM2IzNWM0ZmJhZDM2YWQ0YmZjMzM1ZjJkMjM1YzQ1YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWlmcmFtZS1sYXRjaGVkLWlmcmFtZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1pZnJh
bWUtbGF0Y2hlZC1pZnJhbWUuaHRtbApAQCAtMSw4NiArMSw4NyBAQAogPCFET0NUWVBFIGh0bWw+
CiA8aHRtbD4KIDxoZWFkPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9y
Zy9UUi9ET00tTGV2ZWwtMy1FdmVudHMvI2V2ZW50cy1XaGVlbEV2ZW50Ij4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHk+Ci08c2NyaXB0PgotCi12YXIgaWZyYW1lVGFyZ2V0OwotdmFyIHBhZ2VTY3JvbGxQb3Np
dGlvbkJlZm9yZTsKLXZhciBpRnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZTsKLXZhciBjb250aW51
ZUNvdW50ID0gNTsKKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKIAotZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7CisgICAgICAgIHZhciBpZnJhbWVU
YXJnZXQ7CisgICAgICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7CisgICAgICAgIHZh
ciBpZnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZTsKIAotICAgIC8vIFRoZSBJRnJhbWUgc2hvdWxk
IG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFsbC4KLSAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0
ZXIgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKLSAgICB2YXIgaUZyYW1l
U2Nyb2xsUG9zaXRpb25BZnRlciA9IHdpbmRvdy5mcmFtZXNbJ3RhcmdldCddLmRvY3VtZW50LnNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOworICAgICAgICBmdW5jdGlvbiBjaGVja0ZvclNjcm9s
bCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIFRoZSBpZnJhbWUgc2hvdWxkIG5vdCBoYXZl
IHNjcm9sbGVkIGF0IGFsbC4KKyAgICAgICAgICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRl
ciA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOworICAgICAgICAgICAgdmFy
IGlmcmFtZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSB3aW5kb3cuZnJhbWVzWyd0YXJnZXQnXS5kb2N1
bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKIAotICAgIC8vZGVidWcoIlBhZ2UgYmVm
b3JlOiAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICsgIiwgSUZyYW1lIGJlZm9yZTogIiAr
IGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlKTsKLSAgICAvL2RlYnVnKCJQYWdlIGFmdGVyOiAg
IiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyICsgIiwgSUZyYW1lIGFmdGVyOiAiICsgaUZyYW1l
U2Nyb2xsUG9zaXRpb25BZnRlcik7CisgICAgICAgICAgICBpZiAocGFnZVNjcm9sbFBvc2l0aW9u
QmVmb3JlICE9IHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyKQorICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIlBhZ2UgcmVjZWl2ZWQgd2hlZWwgZXZlbnRzLiIpOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2
ZW50cy4iKTsKIAotICAgIGlmIChwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gcGFnZVNjcm9s
bFBvc2l0aW9uQWZ0ZXIpCi0gICAgICAgIHRlc3RGYWlsZWQoIlBhZ2UgcmVjZWl2ZWQgd2hlZWwg
ZXZlbnRzLiIpOwotICAgIGVsc2UKLSAgICAgICAgdGVzdFBhc3NlZCgiUGFnZSBkaWQgbm90IHJl
Y2VpdmUgd2hlZWwgZXZlbnRzLiIpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAg
ICAgIH0KIAotICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfQorICAgICAgICBmdW5jdGlv
biBzY3JvbGxUZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgcGFnZVNjcm9sbFBvc2l0aW9u
QmVmb3JlID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7CiAKLWZ1bmN0aW9u
IHNjcm9sbFRlc3QoKSB7Ci0gICAgLy8gU2VlIHdoZXJlIG91ciBJRnJhbWUgbGl2ZXM6Ci0gICAg
cGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3A7CisgICAgICAgICAgICBpZnJhbWVUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGFyZ2V0Jyk7CiAKLSAgICBpZnJhbWVUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGFyZ2V0Jyk7CisgICAgICAgICAgICB2YXIgaWZyYW1lU2Nyb2xsaW5nRWxlbWVudCA9IHdp
bmRvdy5mcmFtZXNbJ3RhcmdldCddLmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQ7CisgICAgICAg
ICAgICBpZnJhbWVTY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9IGlmcmFtZVNjcm9sbGluZ0Vs
ZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gaWZyYW1lVGFyZ2V0LmNsaWVudEhlaWdodCAtIDEwMDsKIAot
ICAgIHZhciBpRnJhbWVCb2R5ID0gd2luZG93LmZyYW1lc1sndGFyZ2V0J10uZG9jdW1lbnQuYm9k
eTsKLSAgICBpRnJhbWVCb2R5LnNjcm9sbFRvcCA9IGlGcmFtZUJvZHkuc2Nyb2xsSGVpZ2h0IC0g
aWZyYW1lVGFyZ2V0LmNsaWVudEhlaWdodCAtIDEwMDsKKyAgICAgICAgICAgIGlmcmFtZVNjcm9s
bFBvc2l0aW9uQmVmb3JlID0gaWZyYW1lU2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7CiAKLSAg
ICBpRnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGlGcmFtZUJvZHkuc2Nyb2xsVG9wOworICAg
ICAgICAgICAgLy8gU2Nyb2xsIHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0
LgorICAgICAgICAgICAgdmFyIHN0YXJ0UG9zWCA9IGlmcmFtZVRhcmdldC5vZmZzZXRMZWZ0ICsg
MjA7CisgICAgICAgICAgICBkZWJ1ZygiSUZyYW1lIGRpc3BsYXkgaGVpZ2h0ID0gIiArIGlmcmFt
ZVRhcmdldC5jbGllbnRIZWlnaHQpOworICAgICAgICAgICAgdmFyIHN0YXJ0UG9zWSA9IGlmcmFt
ZVRhcmdldC5vZmZzZXRUb3AgKyBpZnJhbWVUYXJnZXQuY2xpZW50SGVpZ2h0IC0gNDI7IC8vIE9u
ZSB3aGVlbCB0dXJuIGJlZm9yZSBlbmQuCiAKLSAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2UgdW50
aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQuCi0gICAgdmFyIHN0YXJ0UG9zWCA9IGlmcmFtZVRhcmdl
dC5vZmZzZXRMZWZ0ICsgMjA7Ci0gICAgZGVidWcoIklGcmFtZSBkaXNwbGF5IGhlaWdodCA9ICIg
KyBpZnJhbWVUYXJnZXQuY2xpZW50SGVpZ2h0KTsKLSAgICB2YXIgc3RhcnRQb3NZID0gaWZyYW1l
VGFyZ2V0Lm9mZnNldFRvcCArIGlmcmFtZVRhcmdldC5jbGllbnRIZWlnaHQgLSA0MjsgLy8gT25l
IHdoZWVsIHR1cm4gYmVmb3JlIGVuZC4KLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFy
dFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBp
RnJhbWUKLSAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAiICsg
c3RhcnRQb3NZICsgIikiKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJyk7Ci0gICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdl
ZCcsICdub25lJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7Ci0gICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdu
b25lJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUn
KTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgMCwgJ25vbmUnLCAnZW5kJyk7Ci0gICAgc2V0VGltZW91dChjaGVja0ZvclNjcm9sbCwg
MTAwKTsKLX0KKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vbml0b3JXaGVlbEV2ZW50cygpOwor
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kp
OyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1lCiAKLWZ1bmN0aW9u
IHNldHVwVG9wTGV2ZWwoKSB7CisgICAgICAgICAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIg
KyBzdGFydFBvc1ggKyAiLCAiICsgc3RhcnRQb3NZICsgIikiKTsKKyAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2Jl
Z2FuJywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUn
KTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nKTsKKyAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUn
LCAnY29udGludWUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnKTsKKyAgICAgICAgICAg
IGV2ZW50U2VuZGVyLmNhbGxBZnRlclNjcm9sbGluZ0NvbXBsZXRlcyhjaGVja0ZvclNjcm9sbCk7
CisgICAgICAgIH0KIAotICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGZ1bmN0aW9uIHNldHVwVG9wTGV2ZWwo
KSAKKyAgICAgICAgeworICAgICAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgaWZyYW1l
IGRvZXNuJ3QgcGFzcyB3aGVlbCBldmVudHMgdG8gbWFpbiBmcmFtZSB3aGVuIHNjcm9sbGluZyBh
dCBib3R0b20iKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAg
ICAgICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDApOworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgdmFyIG1lc3Nh
Z2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKKyAgICAgICAg
ICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAg
ICAgICBtZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UaGlzIHRlc3QgaXMgYmV0dGVyIHJ1biB1bmRl
ciBEdW1wUmVuZGVyVHJlZS4gVG8gbWFudWFsbHkgdGVzdCBpdCwgcGxhY2UgdGhlIG1vdXNlIHBv
aW50ZXI8YnIvPiIKKyAgICAgICAgICAgICAgICArICJpbnNpZGUgdGhlIGlmcmFtZSwgdGhlbiB1
c2UgdGhlIG1vdXNlIHdoZWVsIG9yIGEgdHdvLWZpbmdlciBzd2lwZSB0byBzY3JvbGwgdGhlIGlm
cmFtZSB0byB0aGUgYm90dG9tIChhbmQgYmV5b25kKS48YnIvPiIKKyAgICAgICAgICAgICAgICAr
ICI8YnIvPjxici8+IgorICAgICAgICAgICAgICAgICsgIlRoZSB0ZXN0IHBhc3NlcyBpZiB5b3Ug
c2Nyb2xsIGZhciBlbm91Z2ggdG8gc2VlIHRoZSByb3cgb2YgRU5EIGxhYmVscyBidXQgdGhlIG1h
aW4gcGFnZSBkb2VzIG5vdCBzY3JvbGwuPC9wPiI7CisgICAgICAgICAgICBtZXNzYWdlTG9jYXRp
b24uYXBwZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICAgICAgfQorICAgICAgICAKKyAgICA8L3NjcmlwdD4KIAotICAgICAgICBzZXRUaW1lb3V0KHNj
cm9sbFRlc3QsIDEwMDApOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHZhciBtZXNzYWdlTG9jYXRp
b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7Ci0gICAgICAgIHZhciBtZXNz
YWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG1lc3NhZ2UuaW5u
ZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBpcyBiZXR0ZXIgcnVuIHVuZGVyIER1bXBSZW5kZXJUcmVl
LiBUbyBtYW51YWxseSB0ZXN0IGl0LCBwbGFjZSB0aGUgbW91c2UgcG9pbnRlcjxici8+IgotICAg
ICAgICAgICAgKyAiaW5zaWRlIHRoZSBJRnJhbWUsIHRoZW4gdXNlIHRoZSBtb3VzZSB3aGVlbCBv
ciBhIHR3by1maW5nZXIgc3dpcGUgdG8gc2Nyb2xsIHRoZSBJRnJhbWUgdG8gdGhlIGJvdHRvbSAo
YW5kIGJleW9uZCkuPGJyLz4iCi0gICAgICAgICAgICArICI8YnIvPjxici8+IgotICAgICAgICAg
ICAgKyAiVGhlIHRlc3QgcGFzc2VzIGlmIHlvdSBzY3JvbGwgZmFyIGVub3VnaCB0byBzZWUgdGhl
IHJvdyBvZiBFTkQgbGFiZWxzIGJ1dCB0aGUgbWFpbiBwYWdlIGRvZXMgbm90IHNjcm9sbC48L3A+
IjsKLSAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOwotICAgIH0K
LX0KLQotPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KIDxkaXYgaWQ9InBhcmVudCIgc3R5bGU9
ImhlaWdodDogMjAwMHB4Ij4KICAgICA8ZGl2IGlkPSJzb3VyY2UiIHN0eWxlPSJoZWlnaHQ6IDEw
MHB4Ij4KICAgICAgICAgUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcwogICAgIDwv
ZGl2PgogICAgIDxpZnJhbWUgaWQ9InRhcmdldCIgbmFtZT0idGFyZ2V0IiBzdHlsZT0iYm9yZGVy
OnNvbGlkIDFweCBncmVlbjsgaGVpZ2h0OiA1MDBweDsgd2lkdGg6IDUwMHB4OyIgCiAgICAgIHNy
Yz0gImRhdGE6dGV4dC9odG1sLAotICAgICA8ZGl2IGlkPSdub3RUb0JlU2Nyb2xsZWQnIHN0eWxl
PSdoZWlnaHQ6IDEwMDBweDsgd2lkdGg6IDEwMDBweDsnPgorICAgICA8ZGl2IHN0eWxlPSdoZWln
aHQ6IDEwMDBweDsgd2lkdGg6IDEwMDBweDsnPgogICAgICBUT1AgVE9QIFRPUCBUT1AgVE9QIFRP
UCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QPGJyLz48YnIvPgogICAgICBUaGlzIHNo
b3VsZCBzdGlsbCBiZSB2aXNpYmxlIGluc2lkZSB0aGUgZnJhbWUgYWZ0ZXIgeW91IHNjcm9sbCBk
b3duCiAgICAgIDxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxi
ci8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz4KQEAgLTk2LDkgKzk3LDYgQEAg
ZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpIHsKICAgICA8L2lmcmFtZT4KIDwvZGl2PgogPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgaWZy
YW1lIGRvZXNuJ3QgcGFzcyB3aGVlbCBldmVudHMgdG8gbWFpbiBmcmFtZSB3aGVuIHNjcm9sbGlu
ZyBhdCBib3R0b20iKTsKLTwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWlmcmFtZS1sYXRj
aGVkLW1haW5mcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9s
YXRjaGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dAppbmRl
eCAxOWFhM2I5YjY4MTAxNzRmODE4MzM2OTc3OTRjYmZlMjNlYjYxNTZjLi5iMDM1OGVhMmJmNDZh
N2I5NTI3ZjE2NWYzMTk4MGE1OTkxYTM0OTJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwt
aWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dApAQCAtNSw5ICs1LDkgQEAgVGVz
dHMgdGhhdCBpZnJhbWUgZG9lc24ndCBjb25zdW1lIHdoZWVsIGV2ZW50cyB3aGVuIHNjcm9sbAog
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK01vdXNlIG1vdmVkIHRvICgyOCwgNjYpCitQ
QVNTIElGcmFtZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLgogUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCi1Nb3VzZSBtb3ZlZCB0byAoMjgsIDY2
KQotUEFTUyBJRnJhbWUgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWlmcmFtZS1sYXRj
aGVkLW1haW5mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcv
c2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5mcmFtZS5odG1sCmluZGV4IDIyYjIyMWYwZmUxMzAz
YTQzNzYzY2NhMzdhOGM3NjUwN2EyODQ0ZjIuLmIwZTAxMzM5NDI2MGU3MDg4ZTJhMjZmYzY4YmRk
ZTU4MmI3ZjViMzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNo
aW5nL3Njcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1l
Lmh0bWwKQEAgLTEsODEgKzEsODEgQEAKIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4K
LTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTMt
RXZlbnRzLyNldmVudHMtV2hlZWxFdmVudCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdD4K
LQotdmFyIGlmcmFtZVRhcmdldDsKLXZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7Ci12YXIg
aUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmU7Ci12YXIgY29udGludWVDb3VudCA9IDU7Ci0KLWZ1
bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkgeworICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGpz
VGVzdElzQXN5bmMgPSB0cnVlOwogCi0gICAgLy8gVGhlIElGcmFtZSBzaG91bGQgbm90IGhhdmUg
c2Nyb2xsZWQgYXQgYWxsLgotICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3Vt
ZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOwotICAgIHZhciBpRnJhbWVTY3JvbGxQb3Np
dGlvbkFmdGVyID0gd2luZG93LmZyYW1lc1sndGFyZ2V0J10uZG9jdW1lbnQuc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3A7CisgICAgICAgIHZhciBpZnJhbWVUYXJnZXQ7CisgICAgICAgIHZhciBw
YWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7CisgICAgICAgIHZhciBpZnJhbWVTY3JvbGxQb3NpdGlv
bkJlZm9yZTsKIAotICAgIC8vZGVidWcoIlBhZ2UgYmVmb3JlOiAiICsgcGFnZVNjcm9sbFBvc2l0
aW9uQmVmb3JlICsgIiwgSUZyYW1lIGJlZm9yZTogIiArIGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVm
b3JlKTsKLSAgICAvL2RlYnVnKCJQYWdlIGFmdGVyOiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFm
dGVyICsgIiwgSUZyYW1lIGFmdGVyOiAiICsgaUZyYW1lU2Nyb2xsUG9zaXRpb25BZnRlcik7Cisg
ICAgICAgIGZ1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkKKyAgICAgICAgeworICAgICAgICAgICAg
Ly8gVGhlIGlmcmFtZSBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgorICAgICAgICAg
ICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3A7CisgICAgICAgICAgICB2YXIgaWZyYW1lU2Nyb2xsUG9zaXRpb25BZnRlciA9
IHdpbmRvdy5mcmFtZXNbJ3RhcmdldCddLmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wOwogCi0gICAgaWYgKGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IGlGcmFtZVNjcm9s
bFBvc2l0aW9uQWZ0ZXIpCi0gICAgICAgIHRlc3RGYWlsZWQoIklGcmFtZSBjb25zdW1lZCB3aGVl
bCBldmVudHMuIik7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0UGFzc2VkKCJJRnJhbWUgZGlkIG5v
dCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsKKyAgICAgICAgICAgIGlmIChpZnJhbWVTY3JvbGxQ
b3NpdGlvbkJlZm9yZSAhPSBpZnJhbWVTY3JvbGxQb3NpdGlvbkFmdGVyKQorICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIklGcmFtZSBjb25zdW1lZCB3aGVlbCBldmVudHMuIik7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiSUZyYW1lIGRpZCBub3QgcmVj
ZWl2ZSB3aGVlbCBldmVudHMuIik7CiAKLSAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0K
KyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CiAKLWZ1bmN0aW9uIHNjcm9s
bFRlc3QoKSB7Ci0gICAgLy8gU2VlIHdoZXJlIG91ciBJRnJhbWUgbGl2ZXM6Ci0gICAgcGFnZVNj
cm9sbFBvc2l0aW9uQmVmb3JlID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7
Ci0gICAgaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSB3aW5kb3cuZnJhbWVzWyd0YXJnZXQn
XS5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKKyAgICAgICAgZnVuY3Rpb24g
c2Nyb2xsVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJl
Zm9yZSA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOworICAgICAgICAgICAg
aWZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSB3aW5kb3cuZnJhbWVzWyd0YXJnZXQnXS5kb2N1
bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKIAotICAgIGlmcmFtZVRhcmdldCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKyAgICAgICAgICAgIGlmcmFtZVRhcmdl
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKIAotICAgIC8vIFNjcm9sbCB0
aGUgI3NvdXJjZSB1bnRpbCB3ZSByZWFjaCB0aGUgI3RhcmdldC4KLSAgICB2YXIgc3RhcnRQb3NY
ID0gaWZyYW1lVGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKLSAgICB2YXIgc3RhcnRQb3NZID0gaWZy
YW1lVGFyZ2V0Lm9mZnNldFRvcCAtIDQyOyAvLyBTbGlnaHRseSBtb3JlIHRoYW4gb25lIHdoZWVs
IHNjcm9sbCBhd2F5IGZyb20gdGhlIElGcmFtZQotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUg
dGhlIGlGcmFtZQotICAgIGRlYnVnKCJNb3VzZSBtb3ZlZCB0byAoIiArIHN0YXJ0UG9zWCArICIs
ICIgKyBzdGFydFBvc1kgKyAiKSIpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnKTsKLSAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdj
aGFuZ2VkJywgJ25vbmUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKLSAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVk
JywgJ25vbmUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250
aW51ZScpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnKTsKLSAgICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Ny
b2xsLCAxMDApOwotfQorICAgICAgICAgICAgLy8gU2Nyb2xsIHRoZSAjc291cmNlIHVudGlsIHdl
IHJlYWNoIHRoZSAjdGFyZ2V0LgorICAgICAgICAgICAgdmFyIHN0YXJ0UG9zWCA9IGlmcmFtZVRh
cmdldC5vZmZzZXRMZWZ0ICsgMjA7CisgICAgICAgICAgICB2YXIgc3RhcnRQb3NZID0gaWZyYW1l
VGFyZ2V0Lm9mZnNldFRvcCAtIDQyOyAvLyBTbGlnaHRseSBtb3JlIHRoYW4gb25lIHdoZWVsIHNj
cm9sbCBhd2F5IGZyb20gdGhlIGlmcmFtZQogCi1mdW5jdGlvbiBzZXR1cFRvcExldmVsKCkgewor
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW9uaXRvcldoZWVsRXZlbnRzKCk7CisgICAgICAgICAg
ICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ug
c3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpRnJhbWUKKyAgICAgICAgICAgIGRlYnVnKCJN
b3VzZSBtb3ZlZCB0byAoIiArIHN0YXJ0UG9zWCArICIsICIgKyBzdGFydFBvc1kgKyAiKSIpOwog
Ci0gICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnKTsKKyAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7
CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50
dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAn
YmVnaW4nKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKKyAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAw
LCAnbm9uZScsICdlbmQnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLmNhbGxBZnRlclNjcm9s
bGluZ0NvbXBsZXRlcyhjaGVja0ZvclNjcm9sbCk7CisgICAgICAgIH0KIAotICAgICAgICBzZXRU
aW1lb3V0KHNjcm9sbFRlc3QsIDEwMDApOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHZhciBtZXNz
YWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7Ci0gICAgICAg
IHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG1l
c3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBpcyBiZXR0ZXIgcnVuIHVuZGVyIER1bXBS
ZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0LCBwbGFjZSB0aGUgbW91c2UgcG9pbnRlcjxi
ci8+IgotICAgICAgICAgICAgKyAiYXQgdGhlIHRvcCBvZiB0aGUgcGFnZSwgYW5kIHRoZW4gdXNl
IHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1maW5nZXIgc3dpcGUgdG8gc2Nyb2xsIHRoZTxici8+
IgotICAgICAgICAgICAgKyAiZG93biBwYXN0IHRoZSBJRnJhbWUuPGJyLz48YnIvPiIKLSAgICAg
ICAgICAgICsgIllvdSBzaG91bGQgbm90IHNlZSB0aGUgcm93IG9mIEVORCBsYWJlbHMgaWYgdGhp
cyB0ZXN0IGlzIHN1Y2Nlc3NmdWwuPC9wPiI7Ci0gICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBl
bmRDaGlsZChtZXNzYWdlKTsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgorICAgICAgICBmdW5jdGlv
biBzZXR1cFRvcExldmVsKCkKKyAgICAgICAgeworICAgICAgICAgICAgZGVzY3JpcHRpb24oIlRl
c3RzIHRoYXQgaWZyYW1lIGRvZXNuJ3QgY29uc3VtZSB3aGVlbCBldmVudHMgd2hlbiBzY3JvbGwg
Iik7CisgICAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgICAgICAg
ICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAwKTsKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHZhciBtZXNzYWdlTG9jYXRp
b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7CisgICAgICAgICAgICB2YXIg
bWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICAgICAgbWVz
c2FnZS5pbm5lckhUTUwgPSAiPHA+VG8gbWFudWFsbHkgcnVuIHRoaXMgdGVzdCwgcGxhY2UgdGhl
IG1vdXNlIHBvaW50ZXIgIgorICAgICAgICAgICAgICAgICsgImF0IHRoZSB0b3Agb2YgdGhlIHBh
Z2UsIGFuZCB0aGVuIHVzZSB0aGUgbW91c2Ugd2hlZWwgb3IgYSB0d28tZmluZ2VyIHN3aXBlIHRv
IHNjcm9sbCB0aGUgIgorICAgICAgICAgICAgICAgICsgImRvd24gcGFzdCB0aGUgaWZyYW1lLjwv
cD4iCisgICAgICAgICAgICAgICAgKyAiPHA+WW91IHNob3VsZCBub3Qgc2VlIHRoZSByb3cgb2Yg
RU5EIGxhYmVscyBpZiB0aGlzIHRlc3QgaXMgc3VjY2Vzc2Z1bC48L3A+IjsKKyAgICAgICAgICAg
IG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZChtZXNzYWdlKTsKKyAgICAgICAgICAgIGZpbmlz
aEpTVGVzdCgpOworICAgICAgICB9CisgICAgICAgIAorICAgIDwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+CiA8ZGl2IGlkPSJwYXJlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweCI+CiAgICAgPGRp
diBpZD0ic291cmNlIiBzdHlsZT0iaGVpZ2h0OiAxMDBweCI+CiAgICAgICAgIFB1dCBtb3VzZSBo
ZXJlIGFuZCBmbGljayBkb3dud2FyZHMKICAgICA8L2Rpdj4KICAgICA8aWZyYW1lIGlkPSJ0YXJn
ZXQiIG5hbWU9InRhcmdldCIgc3R5bGU9ImJvcmRlcjpzb2xpZCAxcHggZ3JlZW47IGhlaWdodDog
NTAwcHg7IHdpZHRoOiA1MDBweDsiIAogICAgICBzcmM9ICJkYXRhOnRleHQvaHRtbCwKLSAgICAg
PGRpdiBpZD0nbm90VG9CZVNjcm9sbGVkJyBzdHlsZT0naGVpZ2h0OiAxMDAwcHg7IHdpZHRoOiAx
MDAwcHg7Jz4KKyAgICAgPGRpdiBzdHlsZT0naGVpZ2h0OiAxMDAwcHg7IHdpZHRoOiAxMDAwcHg7
Jz4KICAgICAgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1Ag
VE9QIFRPUDxici8+PGJyLz4KICAgICAgVGhpcyBzaG91bGQgc3RpbGwgYmUgdmlzaWJsZSBpbnNp
ZGUgdGhlIGZyYW1lIGFmdGVyIHlvdSBzY3JvbGwgZG93bgogICAgICA8YnIvPjxici8+PGJyLz48
YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJy
Lz48YnIvPjxici8+CkBAIC05MSw5ICs5MSw2IEBAIGZ1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7
CiAgICAgPC9pZnJhbWU+CiA8L2Rpdj4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlw
dD4KLWRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGlmcmFtZSBkb2Vzbid0IGNvbnN1bWUgd2hlZWwg
ZXZlbnRzIHdoZW4gc2Nyb2xsICIpOwotPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtaWZy
YW1lLXdlYmtpdDEtbGF0Y2hpbmctYnVnLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1pZnJhbWUtd2Via2l0MS1sYXRjaGluZy1idWctZXhw
ZWN0ZWQudHh0CmluZGV4IDlhZjEyMzJlYzk3NGIzNjQzNjE3ZDU5YjUzMDg0ZDk4YzNjZTZkZTMu
LjZlODg2Mzg3ZjQwNjgyODExOGY0YWVmOTAzZjExMjllNjkxNDA5ZmMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1pZnJhbWUtd2Via2l0MS1s
YXRjaGluZy1idWctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2xhdGNoaW5nL3Njcm9sbC1pZnJhbWUtd2Via2l0MS1sYXRjaGluZy1idWctZXhwZWN0ZWQudHh0
CkBAIC00LDEwICs0LDEwIEBAIFRlc3RzIHRoYXQgaWZyYW1lIGRvZXNuJ3QgcGFzcyB3aGVlbCBl
dmVudHMgdG8gbWFpbiBmcmFtZSB3aGVuIHNjcm9sbGluZyBhdCBib3R0CiBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCiAKIAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNU
IENPTVBMRVRFCiBpZnJhbWUgZGlzcGxheSBoZWlnaHQgPSAxNTAKIE1vdXNlIG1vdmVkIHRvICgy
OCwgMTE2KQogUEFTUyBpZnJhbWUgcmVjZWl2ZWQgd2hlZWwgZXZlbnRzLgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1pZnJhbWUtd2Via2l0MS1sYXRj
aGluZy1idWcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9s
bC1pZnJhbWUtd2Via2l0MS1sYXRjaGluZy1idWcuaHRtbAppbmRleCBiNmQ1MDFjMzUxZmUxOGFm
NDEwMjE2MzUxMmQ5NTdiNWI5YjNlMzI3Li44MzFiNDRmMzdmOGU3ZDBiYjIzZDg2MDllMzQzZGQw
OTFhZGYxNDlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGlu
Zy9zY3JvbGwtaWZyYW1lLXdlYmtpdDEtbGF0Y2hpbmctYnVnLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWlmcmFtZS13ZWJraXQxLWxhdGNoaW5n
LWJ1Zy5odG1sCkBAIC0xLDE4ICsxLDE2IEBACiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgotICAg
IDxoZWFkPgotICAgICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3Jn
L1RSL0RPTS1MZXZlbC0zLUV2ZW50cy8jZXZlbnRzLVdoZWVsRXZlbnQiPgotICAgICAgICA8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLSAg
ICA8L2hlYWQ+Ci0gICAgPGJvZHkgaWQ9InBhcmVudCIgc3R5bGU9ImhlaWdodDogMjAwMHB4Ij4K
LSAgICAgICAgPHNjcmlwdD4KKzxoZWFkPgorICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTMtRXZlbnRzLyNldmVudHMtV2hlZWxFdmVudCI+
CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAg
ICAgIHZhciBpZnJhbWVUYXJnZXQ7CiAgICAgICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZv
cmU7CiAgICAgICAgIHZhciBpZnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZTsKLSAgICAgICAgdmFy
IGNvbnRpbnVlQ291bnQgPSA1OwotCi0gICAgICAgIGZ1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkg
ewogCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkKKyAgICAgICAgewogICAgICAg
ICAgICAgLy8gVGhlIGlmcmFtZSBzaG91bGQgaGF2ZSBzY3JvbGxlZCwgYnV0IG5vdCB0aGUgbWFp
biBwYWdlLgogICAgICAgICAgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7CiAgICAgICAgICAgICB2YXIgaWZyYW1lU2Ny
b2xsUG9zaXRpb25BZnRlciA9IHdpbmRvdy5mcmFtZXNbJ3RhcmdldCddLmRvY3VtZW50LnNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wOwpAQCAtMjIsMjQgKzIwLDI2IEBACiAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiaWZyYW1lIGRpZCBub3QgcmVjZWl2ZSB3
aGVlbCBldmVudHMuIik7CiAKLSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
ICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlv
biBzY3JvbGxUZXN0KCkgewotICAgICAgICAgICAgLy8gU2VlIHdoZXJlIG91ciBpZnJhbWUgbGl2
ZXM6CisgICAgICAgIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKQorICAgICAgICB7CiAgICAgICAgICAg
ICBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcDsKIAogICAgICAgICAgICAgaWZyYW1lVGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3RhcmdldCcpOwogCi0gICAgICAgICAgICB2YXIgaWZyYW1lQm9keSA9IHdpbmRvdy5m
cmFtZXNbJ3RhcmdldCddLmRvY3VtZW50LmJvZHk7Ci0gICAgICAgICAgICBpZnJhbWVCb2R5LnNj
cm9sbFRvcCA9IGlmcmFtZUJvZHkuc2Nyb2xsSGVpZ2h0IC0gaWZyYW1lVGFyZ2V0LmNsaWVudEhl
aWdodCAtIDEwMDsKKyAgICAgICAgICAgIHZhciBpZnJhbWVTY3JvbGxpbmdFbGVtZW50ID0gd2lu
ZG93LmZyYW1lc1sndGFyZ2V0J10uZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudDsKKyAgICAgICAg
ICAgIGlmcmFtZVNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID0gaWZyYW1lU2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxIZWlnaHQgLSBpZnJhbWVUYXJnZXQuY2xpZW50SGVpZ2h0IC0gMTAwOwogCi0g
ICAgICAgICAgICBpZnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGlmcmFtZUJvZHkuc2Nyb2xs
VG9wOworICAgICAgICAgICAgaWZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBpZnJhbWVTY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKIAogICAgICAgICAgICAgLy8gU2Nyb2xsIHRoZSAjc291
cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgogICAgICAgICAgICAgdmFyIHN0YXJ0UG9z
WCA9IGlmcmFtZVRhcmdldC5vZmZzZXRMZWZ0ICsgMjA7CiAgICAgICAgICAgICBkZWJ1ZygiaWZy
YW1lIGRpc3BsYXkgaGVpZ2h0ID0gIiArIGlmcmFtZVRhcmdldC5jbGllbnRIZWlnaHQpOwogICAg
ICAgICAgICAgdmFyIHN0YXJ0UG9zWSA9IGlmcmFtZVRhcmdldC5vZmZzZXRUb3AgKyBpZnJhbWVU
YXJnZXQuY2xpZW50SGVpZ2h0IC0gNDI7IC8vIE9uZSB3aGVlbCB0dXJuIGJlZm9yZSBlbmQuCisK
KyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vbml0b3JXaGVlbEV2ZW50cygpOwogICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtl
IHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaWZyYW1lCiAgICAgICAgICAgICBkZWJ1Zygi
TW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAiICsgc3RhcnRQb3NZICsgIikiKTsK
ICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnKTsKQEAgLTQ5LDQ5ICs0OSw0OSBAQAogICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicpOwogICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250
aW51ZScpOwogICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcpOwotICAgICAgICAgICAgc2V0VGlt
ZW91dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLmNhbGxB
ZnRlclNjcm9sbGluZ0NvbXBsZXRlcyhjaGVja0ZvclNjcm9sbCk7CiAgICAgICAgIH0KIAotICAg
ICAgICBmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkgeworICAgICAgICBmdW5jdGlvbiBzZXR1cFRv
cExldmVsKCkKKyAgICAgICAgeworICAgICAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
aWZyYW1lIGRvZXNuJ3QgcGFzcyB3aGVlbCBldmVudHMgdG8gbWFpbiBmcmFtZSB3aGVuIHNjcm9s
bGluZyBhdCBib3R0b20iKTsKICAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsK
LSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQotICAgICAgICAg
ICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMTAwMCk7Ci0gICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgncGFyZW50Jyk7Ci0gICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgICAgICAgICBtZXNzYWdlLmlubmVySFRN
TCA9ICI8cD5UaGlzIHRlc3QgaXMgYmV0dGVyIHJ1biB1bmRlciBEdW1wUmVuZGVyVHJlZS4gVG8g
bWFudWFsbHkgdGVzdCBpdCwgcGxhY2UgdGhlIG1vdXNlIHBvaW50ZXI8YnIvPiIKLSAgICAgICAg
ICAgICAgICAgICAgKyAiaW5zaWRlIHRoZSBpZnJhbWUsIHRoZW4gdXNlIHRoZSBtb3VzZSB3aGVl
bCBvciBhIHR3by1maW5nZXIgc3dpcGUgdG8gc2Nyb2xsIHRoZSBpZnJhbWUgdG8gdGhlIGJvdHRv
bSAoYW5kIGJleW9uZCkuPGJyLz4iCi0gICAgICAgICAgICAgICAgICAgICsgIjxici8+PGJyLz4i
Ci0gICAgICAgICAgICAgICAgICAgICsgIlRoZSB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2Nyb2xsIGZh
ciBlbm91Z2ggdG8gc2VlIHRoZSByb3cgb2YgRU5EIGxhYmVscyBidXQgdGhlIG1haW4gcGFnZSBk
b2VzIG5vdCBzY3JvbGwuPC9wPiI7Ci0gICAgICAgICAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFw
cGVuZENoaWxkKG1lc3NhZ2UpOworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVz
dCwgMCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQorICAgICAgICAg
ICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQn
KTsKKyAgICAgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7CisgICAgICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UaGlzIHRlc3QgaXMgYmV0
dGVyIHJ1biB1bmRlciBEdW1wUmVuZGVyVHJlZS4gVG8gbWFudWFsbHkgdGVzdCBpdCwgcGxhY2Ug
dGhlIG1vdXNlIHBvaW50ZXIgIgorICAgICAgICAgICAgICAgICsgImluc2lkZSB0aGUgaWZyYW1l
LCB0aGVuIHVzZSB0aGUgbW91c2Ugd2hlZWwgb3IgYSB0d28tZmluZ2VyIHN3aXBlIHRvIHNjcm9s
bCB0aGUgaWZyYW1lIHRvIHRoZSBib3R0b20gKGFuZCBiZXlvbmQpLjwvcD4iCisgICAgICAgICAg
ICAgICAgKyAiPHA+VGhlIHRlc3QgcGFzc2VzIGlmIHlvdSBzY3JvbGwgZmFyIGVub3VnaCB0byBz
ZWUgdGhlIHJvdyBvZiBFTkQgbGFiZWxzIGJ1dCB0aGUgbWFpbiBwYWdlIGRvZXMgbm90IHNjcm9s
bC48L3A+IjsKKyAgICAgICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZChtZXNzYWdl
KTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICB9Ci0gICAgICAgIDwvc2Ny
aXB0PgotICAgICAgICA8aWZyYW1lIGlkPSJ0YXJnZXQiIG5hbWU9InRhcmdldCIgc3R5bGU9ImJv
cmRlcjpzb2xpZCAxcHggZ3JlZW47IGhlaWdodDogMTUwcHg7IHdpZHRoOiAzMDBweDsiIAotICAg
ICAgICAgICAgc3JjPSAiZGF0YTp0ZXh0L2h0bWwsCi0gICAgICAgICAgICAgICAgPGh0bWwgc3R5
bGU9J2hlaWdodDogMTAwJSc+Ci0gICAgICAgICAgICAgICAgICAgIDxib2R5IHN0eWxlPSdoZWln
aHQ6IDEwMCUnPgotICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0naGVpZ2h0OiAx
MDBweDsgd2lkdGg6IDIwMHB4Jz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0
eWxlPSdvdmVyZmxvdy15OiBhdXRvOyBvdmVyZmxvdy14OiBoaWRkZW47Jz4KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1Ag
VE9QIFRPUCBUT1AgVE9QPGJyLz48YnIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRo
aXMgc2hvdWxkIHN0aWxsIGJlIHZpc2libGUgaW5zaWRlIHRoZSBmcmFtZSBhZnRlciB5b3Ugc2Ny
b2xsIGRvd24KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIvPjxici8+PGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48
YnIvPjxici8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyLz48YnIvPjxici8+PGJy
Lz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+
PGJyLz48YnIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxici8+PGJyLz48YnIvPjxi
ci8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIv
Pjxici8+PGJyLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIHNob3VsZCBOT1Qg
YmUgdmlzaWJsZSBpbnNpZGUgdGhlIGZyYW1lIGFmdGVyIHlvdSBzY3JvbGwgZG93bjxici8+Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyLz4KLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICA8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IGlkPSJwYXJlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweCI+CisKKyAgICA8aWZy
YW1lIGlkPSJ0YXJnZXQiIG5hbWU9InRhcmdldCIgc3R5bGU9ImJvcmRlcjpzb2xpZCAxcHggZ3Jl
ZW47IGhlaWdodDogMTUwcHg7IHdpZHRoOiAzMDBweDsiIAorICAgICAgICBzcmM9ICJkYXRhOnRl
eHQvaHRtbCwKKyAgICAgICAgICAgIDxodG1sIHN0eWxlPSdoZWlnaHQ6IDEwMCUnPgorICAgICAg
ICAgICAgICAgIDxib2R5IHN0eWxlPSdoZWlnaHQ6IDEwMCUnPgorICAgICAgICAgICAgICAgICAg
ICA8ZGl2IHN0eWxlPSdoZWlnaHQ6IDEwMHB4OyB3aWR0aDogMjAwcHgnPgorICAgICAgICAgICAg
ICAgICAgICAgICAgPGRpdiBzdHlsZT0nb3ZlcmZsb3cteTogYXV0bzsgb3ZlcmZsb3cteDogaGlk
ZGVuOyc+CisgICAgICAgICAgICAgICAgICAgICAgICBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBU
T1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QPGJyLz48YnIvPgorICAgICAgICAgICAgICAg
ICAgICAgICAgVGhpcyBzaG91bGQgc3RpbGwgYmUgdmlzaWJsZSBpbnNpZGUgdGhlIGZyYW1lIGFm
dGVyIHlvdSBzY3JvbGwgZG93bgorICAgICAgICAgICAgICAgICAgICAgICAgPGJyLz48YnIvPjxi
ci8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPgorICAgICAgICAgICAgICAgICAgICAgICAgPGJyLz48YnIvPjxici8+
PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxi
ci8+PGJyLz48YnIvPgorICAgICAgICAgICAgICAgICAgICAgICAgPGJyLz48YnIvPjxici8+PGJy
Lz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+
PGJyLz48YnIvPgorICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBzaG91bGQgTk9UIGJlIHZp
c2libGUgaW5zaWRlIHRoZSBmcmFtZSBhZnRlciB5b3Ugc2Nyb2xsIGRvd248YnIvPgorICAgICAg
ICAgICAgICAgICAgICAgICAgPGJyLz4KKyAgICAgICAgICAgICAgICAgICAgICAgIEVORCBFTkQg
RU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORAogICAgICAgICAgICAg
ICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICAgICAgICAgIDwvYm9keT4KLSAgICAgICAg
ICAgICAgICA8L2h0bWw+IgotICAgICAgICAgICAgb25sb2FkPSJzZXR1cFRvcExldmVsKCk7Ij4K
LSAgICAgICAgPC9pZnJhbWU+Ci0gICAgICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotICAg
ICAgICA8c2NyaXB0PgotICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBpZnJhbWUgZG9l
c24ndCBwYXNzIHdoZWVsIGV2ZW50cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5nIGF0IGJv
dHRvbSIpOwotICAgICAgICA8L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotICAgIDwvYm9keT4KKyAgICAg
ICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICAgICAgPC9ib2R5PgorICAgICAgICAg
ICAgPC9odG1sPiIKKyAgICAgICAgb25sb2FkPSJzZXR1cFRvcExldmVsKCk7Ij4KKyAgICA8L2lm
cmFtZT4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CiA8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3Jv
bGwtbGF0Y2hlZC1uZXN0ZWQtZGl2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1sYXRjaGVkLW5lc3RlZC1kaXYtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGM1Y2QyZmQ3MmY5MDA0ODU0ZDdlMmQ2YjhlZTI4ZGRhYWVlNzRmZjYuLjMzNmRkYzllN2Y4
ZWIxNTVhMGI4YmJhMTBjM2MyOTRlZjUwNzc3OTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1sYXRjaGVkLW5lc3RlZC1kaXYtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1sYXRj
aGVkLW5lc3RlZC1kaXYtZXhwZWN0ZWQudHh0CkBAIC0xLDQ5ICsxLDYgQEAKIFB1dCBtb3VzZSBu
ZXh0IHRvIHRoZSB0YWJsZSBsYWJlbGVkICdTY3JvbGxhYmxlIFJlZ2lvbicgYW5kIGZsaWNrIGRv
d253YXJkLiBUaGUgc2Nyb2xsIG1vdmVtZW50IHNob3VsZCBjb21lIHRvIGEgaGFsdC4gVGhlbiBm
bGljayBhZ2Fpbi4gVGhlIG92ZXJhbGwgcGFnZSBzaG91bGQgc2Nyb2xsLgogU2Nyb2xsYWJsZSBS
ZWdpb24KIAotQ291bnQJREFUQQlSZXYgQ291bnQKLVRPUCBUT1AgVE9QIFRPUCBUT1AJVE9QIFRP
UCBUT1AgVE9QIFRPUAlUT1AgVE9QIFRPUCBUT1AgVE9QCi0xCTAuMTEwMAk0MAotMgkwLjExNTUJ
MzkKLTMJMC4yMjAwCTM4Ci00CTAuMjI1NQkzNwotNQkwLjMzMDAJMzYKLTYJMC4zMzU1CTM1Ci03
CTAuNDQwMAkzNAotOAkwLjQ0NTUJMzMKLTkJMC41NTAwCTMyCi0xMAkwLjU1NTUJMzEKLTExCTAu
NjYwMAkzMAotMTIJMC42NjU1CTI5Ci0xMwkwLjc3MDAJMjgKLTE0CTAuNzc1NQkyNwotMTUJMC44
ODAwCTI2Ci0xNgkwLjg4NTUJMjUKLTE3CTAuOTkwMAkyNAotMTgJMC45OTU1CTIzCi0xOQkwLjk5
OTkJMjIKLTIwCTEuMDAwMAkyMQotMjEJMS4wMDAwCTIwCi0yMgkwLjk5OTkJMTkKLTIzCTAuOTk1
NQkxOAotMjQJMC45OTAwCTE3Ci0yNQkwLjg4NTUJMTYKLTI2CTAuODgwMAkxNQotMjcJMC43NzU1
CTE0Ci0yOAkwLjc3MDAJMTMKLTI5CTAuNjY1NQkxMgotMzAJMC42NjAwCTExCi0zMQkwLjU1NTUJ
MTAKLTMyCTAuNTUwMAk5Ci0zMwkwLjQ0NTUJOAotMzQJMC40NDAwCTcKLTM1CTAuMzM1NQk2Ci0z
NgkwLjMzMDAJNQotMzcJMC4yMjU1CTQKLTM4CTAuMjIwMAkzCi0zOQkwLjExNTUJMgotNDAJMC4x
MTAwCTEKLUVORCBFTkQgRU5EIEVORCBFTkQJRU5EIEVORCBFTkQgRU5EIEVORAlFTkQgRU5EIEVO
RCBFTkQgRU5ECiBBIHNldCBvZiBpbmZvcm1hdGlvbiBhdCB0aGUgYm90dG9tIG9mIHRoZSB0YWJs
ZS4KIAogVGVzdHMgdGhhdCBhIHNjcm9sbGFibGUgZGl2IG5lc3RlZCBpbnNpZGUgYW5vdGhlciBz
Y3JvbGxhYmxlIGRpdiBwcm9wZXJseSBoYW5kbGVzIHdoZWVsIGV2ZW50cyB1bmRlciBzdWItcGl4
ZWwgY29uZGl0aW9ucy4KQEAgLTUxLDkgKzgsNiBAQCBUZXN0cyB0aGF0IGEgc2Nyb2xsYWJsZSBk
aXYgbmVzdGVkIGluc2lkZSBhbm90aGVyIHNjcm9sbGFibGUgZGl2IHByb3Blcmx5IGhhbmRsZQog
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKLQotVEVTVCBDT01QTEVURQogd3JhcHBlclRhcmdldCA9IFtvYmplY3QgSFRNTERpdkVs
ZW1lbnRdCiBGaXJzdCBzY3JvbGwgZXZlbnQ6CiBQQVNTIFBhZ2UgZGlkIG5vdCByZWNlaXZlIHdo
ZWVsIGV2ZW50cyBkdXJpbmcgdGhlIGZpcnN0IGdlc3R1cmUuCkBAIC02Myw0ICsxNyw3IEBAIFNl
Y29uZCBzY3JvbGwgZXZlbnQ6CiBQQVNTIFBhZ2UgcmVjZWl2ZWQgd2hlZWwgZXZlbnRzIGR1cmlu
ZyB0aGUgc2Vjb25kIGdlc3R1cmUuCiBQQVNTIFdyYXBwZXIgZGlkIG5vdCByZWNlaXZlIHdoZWVs
IGV2ZW50cyBkdXJpbmcgdGhlIHNlY29uZCBnZXN0dXJlLgogUEFTUyBkaXYgZGlkIG5vdCByZWNl
aXZlIHdoZWVsIGV2ZW50cyBkdXJpbmcgdGhlIHNlY29uZCBnZXN0dXJlLgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1sYXRjaGVkLW5lc3RlZC1kaXYu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1sYXRjaGVk
LW5lc3RlZC1kaXYuaHRtbAppbmRleCBkYmM4YmZlNDRkMDkyNTJiYjhmOWQ5NzUyMzA2NmQxNzIz
ZmYwZGIyLi4zNzdiODAyN2VhZjY4YmJjMDI2NGFmMjMzZjc5MDZjOTcwNmJhMmI0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtbGF0Y2hlZC1u
ZXN0ZWQtZGl2Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcv
c2Nyb2xsLWxhdGNoZWQtbmVzdGVkLWRpdi5odG1sCkBAIC01LDE1MyArNSwxMzEgQEAKIC5zY3Jv
bGxhYmxlX3JlZ2lvbiB7CiAgICAgd2lkdGg6IDY4MHB4OwogfQotCi0udGFibGUgdGQsIC50YWJs
ZSB0aCB7Ci0gICAgcGFkZGluZzogMnB4OwotfQotCi0udGFibGUgdGggewotICAgIGhlaWdodDog
MjBweDsKLSAgICB0ZXh0LWFsaWduOiBsZWZ0OwotICAgIGZvbnQtd2VpZ2h0OiBzdHJvbmc7Ci19
Ci0KLS50YWJsZSB0cjpudGgtY2hpbGQob2RkKSB7Ci0gICAgYmFja2dyb3VuZDogI2YzZjNmMzsK
LX0KLQotLnNjcm9sbGFibGVfc2VsZWN0IG9wdGlvbjpudGgtY2hpbGQob2RkKSB7Ci0gICAgYmFj
a2dyb3VuZDogI2YzZjNmMzsKKy5jb250ZW50cyB7CisgICAgaGVpZ2h0OiAxMDI0cHg7CisgICAg
YmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChzaWx2ZXIsIHdoaXRl
IDIwMHB4KTsKIH0KLQogPC9zdHlsZT4KIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWZ1bmN0aW9uIG9uTG9hZCgpIHsK
LSAgICBzZXR1cFRvcExldmVsKCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9h
ZD0ib25Mb2FkKCk7Ij4KLTxzY3JpcHQ+Ci0KLXZhciB3cmFwcGVyVGFyZ2V0OwotdmFyIGRpdlRh
cmdldDsKLXZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7Ci12YXIgd3JhcHBlclNjcm9sbFBv
c2l0aW9uQmVmb3JlOwotdmFyIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlOwotdmFyIGNvbnRpbnVl
Q291bnQgPSA1OwotCi1mdW5jdGlvbiBjaGVja0ZvclNlY29uZFNjcm9sbCgpIHsKLSAgICAvLyAn
cGFyZW50JyBzaG91bGQgaGF2ZSBzY3JvbGxlZCwgdGhlIGNvbnRlbnQgb2YgJ3RhcmdldCcgc2hv
dWxkCi0gICAgLy8gbm90IGhhdmUgc2Nyb2xsZWQsIGFuZCAnd3JhcHBlcicgc2hvdWxkIG5vdCBo
YXZlIHNjcm9sbGVkLgotICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50
LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOwotICAgIHZhciB3cmFwcGVyU2Nyb2xsUG9zaXRp
b25BZnRlciA9IHdyYXBwZXJUYXJnZXQuc2Nyb2xsVG9wOwotICAgIHZhciBkaXZTY3JvbGxQb3Np
dGlvbkFmdGVyID0gZGl2VGFyZ2V0LnNjcm9sbFRvcDsKLQotICAgIGRlYnVnKCJTZWNvbmQgc2Ny
b2xsIGV2ZW50OiIpOwotICAgIGlmIChwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gcGFnZVNj
cm9sbFBvc2l0aW9uQWZ0ZXIpCi0gICAgICAgIHRlc3RQYXNzZWQoIlBhZ2UgcmVjZWl2ZWQgd2hl
ZWwgZXZlbnRzIGR1cmluZyB0aGUgc2Vjb25kIGdlc3R1cmUuIik7Ci0gICAgZWxzZQotICAgICAg
ICB0ZXN0RmFpbGVkKCJQYWdlIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMgZHVyaW5nIHRo
ZSBzZWNvbmQgZ2VzdHVyZS4iKTsKLQotICAgIGlmICh3cmFwcGVyU2Nyb2xsUG9zaXRpb25CZWZv
cmUgIT0gd3JhcHBlclNjcm9sbFBvc2l0aW9uQWZ0ZXIpCi0gICAgICAgIHRlc3RGYWlsZWQoIldy
YXBwZXIgcmVjZWl2ZWQgd2hlZWwgZXZlbnRzIGR1cmluZyB0aGUgc2Vjb25kIGdlc3R1cmUuIik7
Ci0gICAgZWxzZQotICAgICAgICB0ZXN0UGFzc2VkKCJXcmFwcGVyIGRpZCBub3QgcmVjZWl2ZSB3
aGVlbCBldmVudHMgZHVyaW5nIHRoZSBzZWNvbmQgZ2VzdHVyZS4iKTsKLQotICAgIGlmIChkaXZT
Y3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBkaXZTY3JvbGxQb3NpdGlvbkFmdGVyKQotICAgICAgICB0
ZXN0RmFpbGVkKCJkaXYgcmVjZWl2ZWQgd2hlZWwgZXZlbnRzIGR1cmluZyB0aGUgc2Vjb25kIGdl
c3R1cmUuIik7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0UGFzc2VkKCJkaXYgZGlkIG5vdCByZWNl
aXZlIHdoZWVsIGV2ZW50cyBkdXJpbmcgdGhlIHNlY29uZCBnZXN0dXJlLiIpOwotCi0gICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7Ci19Ci0KLWZ1bmN0aW9uIGNoZWNrRm9yRmlyc3RTY3JvbGwo
KSB7Ci0gICAgLy8gJ3BhcmVudCcgc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkLCBhbmQgdGhlIGNv
bnRlbnQgb2YgJ3RhcmdldCcgc2hvdWxkCi0gICAgLy8gbm90IGhhdmUgbW92ZWQuIEhvd2V2ZXIs
ICd3cmFwcGVyJyBzaG91bGQgaGF2ZSBtb3ZlZC4KLSAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9u
QWZ0ZXIgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKLSAgICB2YXIgd3Jh
cHBlclNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSB3cmFwcGVyVGFyZ2V0LnNjcm9sbFRvcDsKLSAgICB2
YXIgZGl2U2Nyb2xsUG9zaXRpb25BZnRlciA9IGRpdlRhcmdldC5zY3JvbGxUb3A7Ci0KLSAgICBk
ZWJ1ZygiRmlyc3Qgc2Nyb2xsIGV2ZW50OiIpOwotICAgIGlmIChwYWdlU2Nyb2xsUG9zaXRpb25C
ZWZvcmUgIT0gcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpCi0gICAgICAgIHRlc3RGYWlsZWQoIlBh
Z2UgcmVjZWl2ZWQgd2hlZWwgZXZlbnRzIGR1cmluZyB0aGUgZmlyc3QgZ2VzdHVyZS4iKTsKLSAg
ICBlbHNlCi0gICAgICAgIHRlc3RQYXNzZWQoIlBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2
ZW50cyBkdXJpbmcgdGhlIGZpcnN0IGdlc3R1cmUuIik7Ci0KLSAgICBpZiAod3JhcHBlclNjcm9s
bFBvc2l0aW9uQmVmb3JlICE9IHdyYXBwZXJTY3JvbGxQb3NpdGlvbkFmdGVyKQotICAgICAgICB0
ZXN0UGFzc2VkKCJXcmFwcGVyIHJlY2VpdmVkIHdoZWVsIGV2ZW50cyBkdXJpbmcgdGhlIGZpcnN0
IGdlc3R1cmUuIik7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0RmFpbGVkKCJXcmFwcGVyIGRpZCBu
b3QgcmVjZWl2ZSB3aGVlbCBldmVudHMgZHVyaW5nIHRoZSBmaXJzdCBnZXN0dXJlLiIpOwotCi0g
ICAgaWYgKGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IGRpdlNjcm9sbFBvc2l0aW9uQWZ0ZXIp
Ci0gICAgICAgIHRlc3RGYWlsZWQoImRpdiByZWNlaXZlZCB3aGVlbCBldmVudHMgZHVyaW5nIHRo
ZSBmaXJzdCBnZXN0dXJlLiIpOwotICAgIGVsc2UKLSAgICAgICAgdGVzdFBhc3NlZCgiZGl2IGRp
ZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMgZHVyaW5nIHRoZSBmaXJzdCBnZXN0dXJlLiIpOwot
Ci0gICAgd3JhcHBlclNjcm9sbFBvc2l0aW9uQmVmb3JlID0gd3JhcHBlclRhcmdldC5zY3JvbGxU
b3A7Ci0KLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7
Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJyk7Ci0gICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0x
LCAnbm9uZScsICdiZWdpbicpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKLSAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25v
bmUnLCAnZW5kJyk7Ci0gICAgLy8gVGhlIHRpbWVvdXQgdXNlZCB0byBiZSBvbmx5IDEwMCwgYnV0
IHdoZW4gd2UgYWRkZWQgc3VwcG9ydCBmb3IgcnViYmVyLWJhbmRpbmcgaW4gb3ZlcmZsb3cKLSAg
ICAvLyBhcmVhcywgd2UgZm91bmQgd2UgaGFkIHRvIGluY3JlYXNlIHRoZSB0aW1lb3V0IHRvIGFs
bG93IHRoZSBydWJiZXItYmFuZCB0byBmaW5pc2guCi0gICAgc2V0VGltZW91dChjaGVja0ZvclNl
Y29uZFNjcm9sbCwgMTAwMCk7Ci19Ci0KLWZ1bmN0aW9uIHNjcm9sbFRlc3QoKSB7Ci0gICAgLy8g
U2VlIHdoZXJlIG91ciBJRnJhbWUgbGl2ZXM6Ci0gICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3Jl
ID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7Ci0KLSAgICBkaXZUYXJnZXQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7Ci0gICAgZGl2VGFyZ2V0LnNjcm9s
bFRvcCA9IGRpdlRhcmdldC5zY3JvbGxIZWlnaHQgLSBkaXZUYXJnZXQuY2xpZW50SGVpZ2h0IC0g
MTAwOwotCi0gICAgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkaXZUYXJnZXQuc2Nyb2xsVG9w
OwotCi0gICAgd3JhcHBlclRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3cmFwcGVy
Jyk7Ci0gICAgd3JhcHBlclNjcm9sbFBvc2l0aW9uQmVmb3JlID0gd3JhcHBlclRhcmdldC5zY3Jv
bGxUb3A7Ci0gICAgZGVidWcoIndyYXBwZXJUYXJnZXQgPSAiICsgd3JhcHBlclRhcmdldCk7Ci0K
LSAgICAvLyBNb3ZlIG1vdXNlIHRvIGEgcG9zaXRpb24gdG8gdGhlIHJpZ2h0IHNpZGUgb2YgdGhl
IHRhYmxlLCBhbmQgbmVhciB0aGUgYm90dG9tLgotICAgIHZhciBzdGFydFBvc1ggPSBkaXZUYXJn
ZXQub2Zmc2V0TGVmdCArIGRpdlRhcmdldC5jbGllbnRXaWR0aCArIDUwOwotICAgIHZhciBzdGFy
dFBvc1kgPSBNYXRoLnJvdW5kKGRpdlRhcmdldC5vZmZzZXRUb3ApIC0gNDI7IC8vIE9uZSB3aGVl
bCB0dXJuIGJlZm9yZSBlbmQuCi0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NY
LCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1l
Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIC0xLCAnYmVnYW4nLCAnbm9uZScpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOwotICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ2NoYW5nZWQnLCAnbm9uZScpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScpOwotICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtNSwgJ25v
bmUnLCAnYmVnaW4nKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEwLCAnbm9uZScsICdjb250aW51ZScpOwotICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScs
ICdlbmQnKTsKLSAgICAvLyBUaGUgdGltZW91dCB1c2VkIHRvIGJlIG9ubHkgMTAwLCBidXQgd2hl
biB3ZSBhZGRlZCBzdXBwb3J0IGZvciBydWJiZXItYmFuZGluZyBpbiBvdmVyZmxvdwotICAgIC8v
IGFyZWFzLCB3ZSBmb3VuZCB3ZSBoYWQgdG8gaW5jcmVhc2UgdGhlIHRpbWVvdXQgdG8gYWxsb3cg
dGhlIHJ1YmJlci1iYW5kIHRvIGZpbmlzaC4KLSAgICBzZXRUaW1lb3V0KGNoZWNrRm9yRmlyc3RT
Y3JvbGwsIDEwMDApOwotfQorICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgdmFyIHdy
YXBwZXJUYXJnZXQ7CisgICAgdmFyIGRpdlRhcmdldDsKKyAgICB2YXIgcGFnZVNjcm9sbFBvc2l0
aW9uQmVmb3JlOworICAgIHZhciB3cmFwcGVyU2Nyb2xsUG9zaXRpb25CZWZvcmU7CisgICAgdmFy
IGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlOworCisgICAgZnVuY3Rpb24gY2hlY2tGb3JTZWNvbmRT
Y3JvbGwoKQorICAgIHsKKyAgICAgICAgLy8gJ3BhcmVudCcgc2hvdWxkIGhhdmUgc2Nyb2xsZWQs
IHRoZSBjb250ZW50IG9mICd0YXJnZXQnIHNob3VsZAorICAgICAgICAvLyBub3QgaGF2ZSBzY3Jv
bGxlZCwgYW5kICd3cmFwcGVyJyBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQuCisgICAgICAgIHZh
ciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wOworICAgICAgICB2YXIgd3JhcHBlclNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSB3cmFwcGVy
VGFyZ2V0LnNjcm9sbFRvcDsKKyAgICAgICAgdmFyIGRpdlNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBk
aXZUYXJnZXQuc2Nyb2xsVG9wOworCisgICAgICAgIGRlYnVnKCJTZWNvbmQgc2Nyb2xsIGV2ZW50
OiIpOworICAgICAgICBpZiAocGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IHBhZ2VTY3JvbGxQ
b3NpdGlvbkFmdGVyKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiUGFnZSByZWNlaXZlZCB3aGVl
bCBldmVudHMgZHVyaW5nIHRoZSBzZWNvbmQgZ2VzdHVyZS4iKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzIGR1
cmluZyB0aGUgc2Vjb25kIGdlc3R1cmUuIik7CisKKyAgICAgICAgaWYgKHdyYXBwZXJTY3JvbGxQ
b3NpdGlvbkJlZm9yZSAhPSB3cmFwcGVyU2Nyb2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoIldyYXBwZXIgcmVjZWl2ZWQgd2hlZWwgZXZlbnRzIGR1cmluZyB0aGUgc2Vj
b25kIGdlc3R1cmUuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIldy
YXBwZXIgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cyBkdXJpbmcgdGhlIHNlY29uZCBnZXN0
dXJlLiIpOworCisgICAgICAgIGlmIChkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBkaXZTY3Jv
bGxQb3NpdGlvbkFmdGVyKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiZGl2IHJlY2VpdmVkIHdo
ZWVsIGV2ZW50cyBkdXJpbmcgdGhlIHNlY29uZCBnZXN0dXJlLiIpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJkaXYgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cyBk
dXJpbmcgdGhlIHNlY29uZCBnZXN0dXJlLiIpOworCisgICAgICAgIGZpbmlzaEpTVGVzdCgpOwor
ICAgIH0KIAotZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpIHsKKyAgICBmdW5jdGlvbiBjaGVja0Zv
ckZpcnN0U2Nyb2xsKCkKKyAgICB7CisgICAgICAgIC8vICdwYXJlbnQnIHNob3VsZCBub3QgaGF2
ZSBzY3JvbGxlZCwgYW5kIHRoZSBjb250ZW50IG9mICd0YXJnZXQnIHNob3VsZAorICAgICAgICAv
LyBub3QgaGF2ZSBtb3ZlZC4gSG93ZXZlciwgJ3dyYXBwZXInIHNob3VsZCBoYXZlIG1vdmVkLgor
ICAgICAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5zY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcDsKKyAgICAgICAgdmFyIHdyYXBwZXJTY3JvbGxQb3NpdGlvbkFmdGVy
ID0gd3JhcHBlclRhcmdldC5zY3JvbGxUb3A7CisgICAgICAgIHZhciBkaXZTY3JvbGxQb3NpdGlv
bkFmdGVyID0gZGl2VGFyZ2V0LnNjcm9sbFRvcDsKKworICAgICAgICBkZWJ1ZygiRmlyc3Qgc2Ny
b2xsIGV2ZW50OiIpOworICAgICAgICBpZiAocGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IHBh
Z2VTY3JvbGxQb3NpdGlvbkFmdGVyKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSByZWNl
aXZlZCB3aGVlbCBldmVudHMgZHVyaW5nIHRoZSBmaXJzdCBnZXN0dXJlLiIpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJQYWdlIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBl
dmVudHMgZHVyaW5nIHRoZSBmaXJzdCBnZXN0dXJlLiIpOworCisgICAgICAgIGlmICh3cmFwcGVy
U2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gd3JhcHBlclNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAg
ICAgICAgICB0ZXN0UGFzc2VkKCJXcmFwcGVyIHJlY2VpdmVkIHdoZWVsIGV2ZW50cyBkdXJpbmcg
dGhlIGZpcnN0IGdlc3R1cmUuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWls
ZWQoIldyYXBwZXIgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cyBkdXJpbmcgdGhlIGZpcnN0
IGdlc3R1cmUuIik7CisKKyAgICAgICAgaWYgKGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IGRp
dlNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkaXYgcmVjZWl2
ZWQgd2hlZWwgZXZlbnRzIGR1cmluZyB0aGUgZmlyc3QgZ2VzdHVyZS4iKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiZGl2IGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVu
dHMgZHVyaW5nIHRoZSBmaXJzdCBnZXN0dXJlLiIpOworCisgICAgICAgIHdyYXBwZXJTY3JvbGxQ
b3NpdGlvbkJlZm9yZSA9IHdyYXBwZXJUYXJnZXQuc2Nyb2xsVG9wOworCisgICAgICAgIGV2ZW50
U2VuZGVyLm1vbml0b3JXaGVlbEV2ZW50cygpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJyk7
CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25v
bmUnKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJyk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVn
aW4nKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOworICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAn
ZW5kJyk7CisgICAgICAgIGV2ZW50U2VuZGVyLmNhbGxBZnRlclNjcm9sbGluZ0NvbXBsZXRlcyhj
aGVja0ZvclNlY29uZFNjcm9sbCk7CisgICAgfQogCi0gICAgaWYgKHdpbmRvdy5ldmVudFNlbmRl
cikgewotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBmdW5jdGlvbiBz
Y3JvbGxUZXN0KCkKKyAgICB7CisgICAgICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRv
Y3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOworCisgICAgICAgIGRpdlRhcmdldCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKyAgICAgICAgZGl2VGFyZ2V0LnNj
cm9sbFRvcCA9IGRpdlRhcmdldC5zY3JvbGxIZWlnaHQgLSBkaXZUYXJnZXQuY2xpZW50SGVpZ2h0
IC0gMTAwOworCisgICAgICAgIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZGl2VGFyZ2V0LnNj
cm9sbFRvcDsKKworICAgICAgICB3cmFwcGVyVGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3dyYXBwZXInKTsKKyAgICAgICAgd3JhcHBlclNjcm9sbFBvc2l0aW9uQmVmb3JlID0gd3Jh
cHBlclRhcmdldC5zY3JvbGxUb3A7CisgICAgICAgIGRlYnVnKCJ3cmFwcGVyVGFyZ2V0ID0gIiAr
IHdyYXBwZXJUYXJnZXQpOworCisgICAgICAgIC8vIE1vdmUgbW91c2UgdG8gYSBwb3NpdGlvbiB0
byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgdGFibGUsIGFuZCBuZWFyIHRoZSBib3R0b20uCisgICAg
ICAgIHZhciBzdGFydFBvc1ggPSBkaXZUYXJnZXQub2Zmc2V0TGVmdCArIGRpdlRhcmdldC5jbGll
bnRXaWR0aCArIDUwOworICAgICAgICB2YXIgc3RhcnRQb3NZID0gTWF0aC5yb3VuZChkaXZUYXJn
ZXQub2Zmc2V0VG9wKSAtIDQyOyAvLyBPbmUgd2hlZWwgdHVybiBiZWZvcmUgZW5kLgorCisgICAg
ICAgIGV2ZW50U2VuZGVyLm1vbml0b3JXaGVlbEV2ZW50cygpOworICAgICAgICBldmVudFNlbmRl
ci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUg
anVzdCBvdXRzaWRlIHRoZSBpRnJhbWUKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScpOworICAg
ICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7
CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTUsICdub25lJywgJ2JlZ2luJyk7
CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAtMTAsICdub25lJywgJ2NvbnRpbnVlJyk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQn
KTsKKyAgICAgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVzKGNoZWNr
Rm9yRmlyc3RTY3JvbGwpOworICAgIH0KIAotICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3Qs
IDEwMDApOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7Ci0gICAgICAgIHZhciBtZXNzYWdlID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0g
IjxwPlRoaXMgdGVzdCBpcyBiZXR0ZXIgcnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBtYW51
YWxseSB0ZXN0IGl0LCBwbGFjZSB0aGUgbW91c2UgcG9pbnRlcjxici8+IgotICAgICAgICAgICAg
KyAiYXQgdGhlIHRvcCBvZiB0aGUgcGFnZSwgYW5kIHRoZW4gdXNlIHRoZSBtb3VzZSB3aGVlbCBv
ciBhIHR3by1maW5nZXIgc3dpcGUgdG8gc2Nyb2xsIHRoZTxici8+IgotICAgICAgICAgICAgKyAi
ZG93biBwYXN0IHRoZSBkaXYuPGJyLz48YnIvPiIKLSAgICAgICAgICAgICsgIllvdSBzaG91bGQg
bm90IHNlZSB0aGUgcm93IG9mIEVORCBsYWJlbHMgaWYgdGhpcyB0ZXN0IGlzIHN1Y2Nlc3NmdWwu
PC9wPiI7Ci0gICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZChtZXNzYWdlKTsKKyAg
ICBmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkKKyAgICB7CisgICAgICAgIGRlc2NyaXB0aW9uKCJU
ZXN0cyB0aGF0IGEgc2Nyb2xsYWJsZSBkaXYgbmVzdGVkIGluc2lkZSBhbm90aGVyIHNjcm9sbGFi
bGUgZGl2IHByb3Blcmx5IGhhbmRsZXMgd2hlZWwgZXZlbnRzIHVuZGVyIHN1Yi1waXhlbCBjb25k
aXRpb25zLiIpOworICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgICAg
ICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9Ci19CiAKKyAgICB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHsKKyAgICAgICAgc2V0dXBUb3BM
ZXZlbCgpOworICAgIH0sIGZhbHNlKTsKIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CiA8ZGl2
IGlkPSJwYXJlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweDsgd2lkdGg6IDgwMHB4OyI+CiAgICAg
PGRpdiBpZD0id3JhcHBlciIgc3R5bGU9J292ZXJmbG93LXk6IGF1dG87IG92ZXJmbG93LXg6IGhp
ZGRlbjsgbWF4LWhlaWdodDogNjAwcHg7Jz4KICAgICAgICAgPGRpdiBpZD0ic291cmNlIiBzdHls
ZT0iaGVpZ2h0OiAxMDBweDsgd2lkdGg6IDYwMHB4OyI+CkBAIC0xNjEsNTEgKzEzOSw4IEBAIGZ1
bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7CiAgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGVf
cmVnaW9uIj4KICAgICAgICAgICAgIDxoMz5TY3JvbGxhYmxlIFJlZ2lvbjwvaDM+CiAgICAgICAg
ICAgICA8ZGl2IGlkPSJ0YXJnZXQiIHN0eWxlPSdvdmVyZmxvdy15OiBhdXRvOyBvdmVyZmxvdy14
OiBoaWRkZW47IG1heC1oZWlnaHQ6IDQ4NS41NXB4Oyc+Ci0gICAgICAgICAgICAgICAgPHRhYmxl
IGNsYXNzPSJ0YWJsZSIgc3R5bGU9J3dpZHRoOiA5OSUnPgotICAgICAgICAgICAgICAgICAgICA8
dHI+PHRoPkNvdW50PC90aD48dGg+REFUQTwvdGg+PHRoPlJldiBDb3VudDwvdGg+PC90cj4KLSAg
ICAgICAgICAgICAgICAgICAgPHRyPjx0ZD5UT1AgVE9QIFRPUCBUT1AgVE9QPC90ZD48dGQ+VE9Q
IFRPUCBUT1AgVE9QIFRPUDwvdGQ+PHRkPlRPUCBUT1AgVE9QIFRPUCBUT1A8L3RkPjwvdHI+Ci0g
ICAgICAgICAgICAgICAgICAgIDx0cj48dGQ+MTwvdGQ+PHRkPjAuMTEwMDwvdGQ+PHRkPjQwPC90
ZD48L3RyPgotICAgICAgICAgICAgICAgICAgICA8dHI+PHRkPjI8L3RkPjx0ZD4wLjExNTU8L3Rk
Pjx0ZD4zOTwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICAgICAgPHRyPjx0ZD4zPC90ZD48dGQ+
MC4yMjAwPC90ZD48dGQ+Mzg8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgICAgIDx0cj48dGQ+
NDwvdGQ+PHRkPjAuMjI1NTwvdGQ+PHRkPjM3PC90ZD48L3RyPgotICAgICAgICAgICAgICAgICAg
ICA8dHI+PHRkPjU8L3RkPjx0ZD4wLjMzMDA8L3RkPjx0ZD4zNjwvdGQ+PC90cj4KLSAgICAgICAg
ICAgICAgICAgICAgPHRyPjx0ZD42PC90ZD48dGQ+MC4zMzU1PC90ZD48dGQ+MzU8L3RkPjwvdHI+
Ci0gICAgICAgICAgICAgICAgICAgIDx0cj48dGQ+NzwvdGQ+PHRkPjAuNDQwMDwvdGQ+PHRkPjM0
PC90ZD48L3RyPgotICAgICAgICAgICAgICAgICAgICA8dHI+PHRkPjg8L3RkPjx0ZD4wLjQ0NTU8
L3RkPjx0ZD4zMzwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICAgICAgPHRyPjx0ZD45PC90ZD48
dGQ+MC41NTAwPC90ZD48dGQ+MzI8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgICAgIDx0cj48
dGQ+MTA8L3RkPjx0ZD4wLjU1NTU8L3RkPjx0ZD4zMTwvdGQ+PC90cj4KLSAgICAgICAgICAgICAg
ICAgICAgPHRyPjx0ZD4xMTwvdGQ+PHRkPjAuNjYwMDwvdGQ+PHRkPjMwPC90ZD48L3RyPgotICAg
ICAgICAgICAgICAgICAgICA8dHI+PHRkPjEyPC90ZD48dGQ+MC42NjU1PC90ZD48dGQ+Mjk8L3Rk
PjwvdHI+Ci0gICAgICAgICAgICAgICAgICAgIDx0cj48dGQ+MTM8L3RkPjx0ZD4wLjc3MDA8L3Rk
Pjx0ZD4yODwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICAgICAgPHRyPjx0ZD4xNDwvdGQ+PHRk
PjAuNzc1NTwvdGQ+PHRkPjI3PC90ZD48L3RyPgotICAgICAgICAgICAgICAgICAgICA8dHI+PHRk
PjE1PC90ZD48dGQ+MC44ODAwPC90ZD48dGQ+MjY8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAg
ICAgIDx0cj48dGQ+MTY8L3RkPjx0ZD4wLjg4NTU8L3RkPjx0ZD4yNTwvdGQ+PC90cj4KLSAgICAg
ICAgICAgICAgICAgICAgPHRyPjx0ZD4xNzwvdGQ+PHRkPjAuOTkwMDwvdGQ+PHRkPjI0PC90ZD48
L3RyPgotICAgICAgICAgICAgICAgICAgICA8dHI+PHRkPjE4PC90ZD48dGQ+MC45OTU1PC90ZD48
dGQ+MjM8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgICAgIDx0cj48dGQ+MTk8L3RkPjx0ZD4w
Ljk5OTk8L3RkPjx0ZD4yMjwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICAgICAgPHRyPjx0ZD4y
MDwvdGQ+PHRkPjEuMDAwMDwvdGQ+PHRkPjIxPC90ZD48L3RyPgotICAgICAgICAgICAgICAgICAg
ICA8dHI+PHRkPjIxPC90ZD48dGQ+MS4wMDAwPC90ZD48dGQ+MjA8L3RkPjwvdHI+Ci0gICAgICAg
ICAgICAgICAgICAgIDx0cj48dGQ+MjI8L3RkPjx0ZD4wLjk5OTk8L3RkPjx0ZD4xOTwvdGQ+PC90
cj4KLSAgICAgICAgICAgICAgICAgICAgPHRyPjx0ZD4yMzwvdGQ+PHRkPjAuOTk1NTwvdGQ+PHRk
PjE4PC90ZD48L3RyPgotICAgICAgICAgICAgICAgICAgICA8dHI+PHRkPjI0PC90ZD48dGQ+MC45
OTAwPC90ZD48dGQ+MTc8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgICAgIDx0cj48dGQ+MjU8
L3RkPjx0ZD4wLjg4NTU8L3RkPjx0ZD4xNjwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICAgICAg
PHRyPjx0ZD4yNjwvdGQ+PHRkPjAuODgwMDwvdGQ+PHRkPjE1PC90ZD48L3RyPgotICAgICAgICAg
ICAgICAgICAgICA8dHI+PHRkPjI3PC90ZD48dGQ+MC43NzU1PC90ZD48dGQ+MTQ8L3RkPjwvdHI+
Ci0gICAgICAgICAgICAgICAgICAgIDx0cj48dGQ+Mjg8L3RkPjx0ZD4wLjc3MDA8L3RkPjx0ZD4x
MzwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICAgICAgPHRyPjx0ZD4yOTwvdGQ+PHRkPjAuNjY1
NTwvdGQ+PHRkPjEyPC90ZD48L3RyPgotICAgICAgICAgICAgICAgICAgICA8dHI+PHRkPjMwPC90
ZD48dGQ+MC42NjAwPC90ZD48dGQ+MTE8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgICAgIDx0
cj48dGQ+MzE8L3RkPjx0ZD4wLjU1NTU8L3RkPjx0ZD4xMDwvdGQ+PC90cj4KLSAgICAgICAgICAg
ICAgICAgICAgPHRyPjx0ZD4zMjwvdGQ+PHRkPjAuNTUwMDwvdGQ+PHRkPjk8L3RkPjwvdHI+Ci0g
ICAgICAgICAgICAgICAgICAgIDx0cj48dGQ+MzM8L3RkPjx0ZD4wLjQ0NTU8L3RkPjx0ZD44PC90
ZD48L3RyPgotICAgICAgICAgICAgICAgICAgICA8dHI+PHRkPjM0PC90ZD48dGQ+MC40NDAwPC90
ZD48dGQ+NzwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICAgICAgPHRyPjx0ZD4zNTwvdGQ+PHRk
PjAuMzM1NTwvdGQ+PHRkPjY8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgICAgIDx0cj48dGQ+
MzY8L3RkPjx0ZD4wLjMzMDA8L3RkPjx0ZD41PC90ZD48L3RyPgotICAgICAgICAgICAgICAgICAg
ICA8dHI+PHRkPjM3PC90ZD48dGQ+MC4yMjU1PC90ZD48dGQ+NDwvdGQ+PC90cj4KLSAgICAgICAg
ICAgICAgICAgICAgPHRyPjx0ZD4zODwvdGQ+PHRkPjAuMjIwMDwvdGQ+PHRkPjM8L3RkPjwvdHI+
Ci0gICAgICAgICAgICAgICAgICAgIDx0cj48dGQ+Mzk8L3RkPjx0ZD4wLjExNTU8L3RkPjx0ZD4y
PC90ZD48L3RyPgotICAgICAgICAgICAgICAgICAgICA8dHI+PHRkPjQwPC90ZD48dGQ+MC4xMTAw
PC90ZD48dGQ+MTwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICAgICAgPHRyPjx0ZD5FTkQgRU5E
IEVORCBFTkQgRU5EPC90ZD48dGQ+RU5EIEVORCBFTkQgRU5EIEVORDwvdGQ+PHRkPkVORCBFTkQg
RU5EIEVORCBFTkQ8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAg
ICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50cyI+CisgICAgICAgICAgICAgICAgPC9kaXY+CiAg
ICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgIDxkaXYgaWQ9ImJvdHRvbSIgc3R5bGU9Imhl
aWdodDogMTAwcHg7IHdpZHRoOiA2MDBweDsiPgogICAgICAgICAgICAgICAgIDxwPkEgc2V0IG9m
IGluZm9ybWF0aW9uIGF0IHRoZSBib3R0b20gb2YgdGhlIHRhYmxlLjwvcD4KQEAgLTIxNCw5ICsx
NDksNiBAQCBmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkgewogICAgIDwvZGl2PgogPC9kaXY+CiA8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdHMgdGhh
dCBhIHNjcm9sbGFibGUgZGl2IG5lc3RlZCBpbnNpZGUgYW5vdGhlciBzY3JvbGxhYmxlIGRpdiBw
cm9wZXJseSBoYW5kbGVzIHdoZWVsIGV2ZW50cyB1bmRlciBzdWItcGl4ZWwgY29uZGl0aW9ucy4i
KTsKLTwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLW5lc3RlZC1pZnJhbWUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLW5lc3RlZC1p
ZnJhbWUtZXhwZWN0ZWQudHh0CmluZGV4IDFiNmY2NjdlOGE1N2NiMmUzMjJjMzMzZmY5MzQ3MGJh
YTdkMGNkMzYuLjAwNjhiN2RjMjAzZmNhODg4MWIzODQwZWFjMzUyN2U5OTY3ZmNiYTYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1uZXN0ZWQt
aWZyYW1lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRj
aGluZy9zY3JvbGwtbmVzdGVkLWlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTUsMTAgKzUsMTAgQEAg
VGVzdHMgdGhhdCBpZnJhbWUgZG9lcyBzY3JvbGwgd2hlbiBpbm5lciBpZnJhbWUgaXMgTk9UIHNj
cm9sbGFibGUuCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCiBJRnJhbWUgZGlzcGxheSBoZWlnaHQg
PSAxMDAwCiBNb3VzZSBtb3ZlZCB0byAoMjgsIDg4KQogUEFTUyBpZnJhbWUgZGlkIHNjcm9sbC4K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtbmVzdGVk
LWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xs
LW5lc3RlZC1pZnJhbWUuaHRtbAppbmRleCBiY2U3MWU2NDVkY2YzMmFiZDBlYzQzY2EyOTkxNDBl
M2Y3MzBmMDY1Li4xYWVjOGNkNWJlOGY4N2ZhOWMzMDUwMjBjMDVkZWFkM2ZlNzAzZTQ0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtbmVzdGVk
LWlmcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Nj
cm9sbC1uZXN0ZWQtaWZyYW1lLmh0bWwKQEAgLTEsODIgKzEsODEgQEAKIDwhRE9DVFlQRSBodG1s
PgogPGh0bWw+CiA8aGVhZD4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5v
cmcvVFIvRE9NLUxldmVsLTMtRXZlbnRzLyNldmVudHMtV2hlZWxFdmVudCI+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KICAgICA8c3R5
bGU+CiAgICAgaWZyYW1lIHsKICAgICAgICAgd2lkdGg6IDgwMHB4OwogICAgICAgICBoZWlnaHQ6
IDEwMDBweDsKICAgICB9CiAgICAgPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdD4K
LQotdmFyIGlmcmFtZVRhcmdldDsKLXZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7Ci12YXIg
aUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmU7Ci12YXIgY29udGludWVDb3VudCA9IDU7Ci0KLWZ1
bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkgeworICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGpz
VGVzdElzQXN5bmMgPSB0cnVlOwogCi0gICAgLy8gVGhlIElGcmFtZSBzaG91bGQgbm90IGhhdmUg
c2Nyb2xsZWQgYXQgYWxsLgotICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3Vt
ZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOwotICAgIHZhciBpRnJhbWVTY3JvbGxQb3Np
dGlvbkFmdGVyID0gd2luZG93LmZyYW1lc1snc2Nyb2xsYWJsZV9pZnJhbWUnXS5kb2N1bWVudC5z
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKKyAgICAgICAgdmFyIGlmcmFtZVRhcmdldDsKKyAg
ICAgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZTsKKyAgICAgICAgdmFyIGlmcmFtZVNj
cm9sbFBvc2l0aW9uQmVmb3JlOwogCi0gICAgaWYgKGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3Jl
ICE9IGlGcmFtZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpCi0gICAgICAgIHRlc3RQYXNzZWQoImlmcmFt
ZSBkaWQgc2Nyb2xsLiIpOwotICAgIGVsc2UKLSAgICAgICAgdGVzdEZhaWxlZCgiaWZyYW1lIGRp
ZCBOT1Qgc2Nyb2xsLiIpOworICAgICAgICBmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIC8vIFRoZSBpZnJhbWUgc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVk
IGF0IGFsbC4KKyAgICAgICAgICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3Vt
ZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOworICAgICAgICAgICAgdmFyIGlmcmFtZVNj
cm9sbFBvc2l0aW9uQWZ0ZXIgPSB3aW5kb3cuZnJhbWVzWydzY3JvbGxhYmxlX2lmcmFtZSddLmRv
Y3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOwogCi0gICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7Ci19CisgICAgICAgICAgICBpZiAoaWZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUg
IT0gaWZyYW1lU2Nyb2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2Vk
KCJpZnJhbWUgZGlkIHNjcm9sbC4iKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJpZnJhbWUgZGlkIE5PVCBzY3JvbGwuIik7CiAKLWZ1bmN0aW9uIHNjcm9s
bFRlc3QoKSB7Ci0gICAgLy8gU2VlIHdoZXJlIG91ciBJRnJhbWUgbGl2ZXM6Ci0gICAgcGFnZVNj
cm9sbFBvc2l0aW9uQmVmb3JlID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7
CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQogCi0gICAgaWZyYW1lVGFy
Z2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Njcm9sbGFibGVfaWZyYW1lJyk7CisgICAg
ICAgIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBwYWdlU2Ny
b2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsK
IAotICAgIHZhciBpRnJhbWVTY3JvbGxpbmdFbGVtZW50ID0gd2luZG93LmZyYW1lc1snc2Nyb2xs
YWJsZV9pZnJhbWUnXS5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50OwotICAgIGlGcmFtZVNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wID0gaUZyYW1lU2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxIZWln
aHQgLSBpZnJhbWVUYXJnZXQuY2xpZW50SGVpZ2h0IC0gMTAwOworICAgICAgICAgICAgaWZyYW1l
VGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Njcm9sbGFibGVfaWZyYW1lJyk7CiAK
LSAgICBpRnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGlGcmFtZVNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wOworICAgICAgICAgICAgdmFyIGlmcmFtZVNjcm9sbGluZ0VsZW1lbnQgPSB3aW5k
b3cuZnJhbWVzWydzY3JvbGxhYmxlX2lmcmFtZSddLmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQ7
CisgICAgICAgICAgICBpZnJhbWVTY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA9IGlmcmFtZVNj
cm9sbGluZ0VsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gaWZyYW1lVGFyZ2V0LmNsaWVudEhlaWdodCAt
IDEwMDsKIAotICAgIC8vIFNjcm9sbCB0aGUgI3NvdXJjZSB1bnRpbCB3ZSByZWFjaCB0aGUgI3Rh
cmdldC4KLSAgICB2YXIgc3RhcnRQb3NYID0gaWZyYW1lVGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsK
LSAgICBkZWJ1ZygiSUZyYW1lIGRpc3BsYXkgaGVpZ2h0ID0gIiArIGlmcmFtZVRhcmdldC5jbGll
bnRIZWlnaHQpOwotICAgIHZhciBzdGFydFBvc1kgPSBpZnJhbWVUYXJnZXQub2Zmc2V0VG9wICsg
NjA7IC8vIE9uZSB3aGVlbCB0dXJuIGJlZm9yZSBlbmQuCi0gICAgZXZlbnRTZW5kZXIubW91c2VN
b3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0
c2lkZSB0aGUgaUZyYW1lCi0gICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NY
ICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScsIHRydWUp
OwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9u
ZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAn
YmVnaW4nLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0gICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdu
b25lJywgJ2VuZCcsIHRydWUpOwotICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDEwMCk7
Ci19CisgICAgICAgICAgICBpZnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGlmcmFtZVNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wOwogCi1mdW5jdGlvbiBzZXR1cFRvcExldmVsKCkgeworICAg
ICAgICAgICAgLy8gU2Nyb2xsIHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0
LgorICAgICAgICAgICAgdmFyIHN0YXJ0UG9zWCA9IGlmcmFtZVRhcmdldC5vZmZzZXRMZWZ0ICsg
MjA7CisgICAgICAgICAgICBkZWJ1ZygiSUZyYW1lIGRpc3BsYXkgaGVpZ2h0ID0gIiArIGlmcmFt
ZVRhcmdldC5jbGllbnRIZWlnaHQpOworICAgICAgICAgICAgdmFyIHN0YXJ0UG9zWSA9IGlmcmFt
ZVRhcmdldC5vZmZzZXRUb3AgKyA2MDsgLy8gT25lIHdoZWVsIHR1cm4gYmVmb3JlIGVuZC4KKyAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsg
Ly8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFtZQorICAgICAgICAgICAg
ZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSAr
ICIpIik7CiAKLSAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW9uaXRvcldoZWVs
RXZlbnRzKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7CisgICAgICAg
ICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQn
LCAnbm9uZScsIHRydWUpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJywgdHJ1ZSk7Cisg
ICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJywgdHJ1ZSk7CisgICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25l
JywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7
CisgICAgICAgICAgICBldmVudFNlbmRlci5jYWxsQWZ0ZXJTY3JvbGxpbmdDb21wbGV0ZXMoY2hl
Y2tGb3JTY3JvbGwpOworICAgICAgICB9CiAKLSAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0
LCAxMDAwKTsKLSAgICB9IGVsc2UgewotICAgICAgICB2YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudCcpOwotICAgICAgICB2YXIgbWVzc2FnZSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9
ICI8cD5UaGlzIHRlc3QgaXMgYmV0dGVyIHJ1biB1bmRlciBEdW1wUmVuZGVyVHJlZS4gVG8gbWFu
dWFsbHkgdGVzdCBpdCwgcGxhY2UgdGhlIG1vdXNlIHBvaW50ZXI8YnIvPiIKLSAgICAgICAgICAg
ICsgImluc2lkZSB0aGUgSUZyYW1lLCB0aGVuIHVzZSB0aGUgbW91c2Ugd2hlZWwgb3IgYSB0d28t
ZmluZ2VyIHN3aXBlIHRvIHNjcm9sbCB0aGUgSUZyYW1lIHRvIHRoZSBib3R0b20gKGFuZCBiZXlv
bmQpLjxici8+IgotICAgICAgICAgICAgKyAiPGJyLz48YnIvPiIKLSAgICAgICAgICAgICsgIlRo
ZSB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2Nyb2xsIGZhciBlbm91Z2ggdG8gc2VlIHRoZSByb3cgb2Yg
RU5EIGxhYmVscyBidXQgdGhlIG1haW4gcGFnZSBkb2VzIG5vdCBzY3JvbGwuPC9wPiI7Ci0gICAg
ICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZChtZXNzYWdlKTsKLSAgICB9Ci19Ci0KLTwv
c2NyaXB0PgorICAgICAgICBmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkKKyAgICAgICAgeworICAg
ICAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgaWZyYW1lIGRvZXMgc2Nyb2xsIHdoZW4g
aW5uZXIgaWZyYW1lIGlzIE5PVCBzY3JvbGxhYmxlLiIpOworICAgICAgICAgICAgaWYgKHdpbmRv
dy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwg
MTAwMCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQn
KTsKKyAgICAgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7CisgICAgICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UbyBtYW51YWxseSBydW4g
dGhpcyB0ZXN0LCBwbGFjZSB0aGUgbW91c2UgcG9pbnRlciAiCisgICAgICAgICAgICAgICAgKyAi
aW5zaWRlIHRoZSBpZnJhbWUsIHRoZW4gdXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1maW5n
ZXIgc3dpcGUgdG8gc2Nyb2xsIHRoZSBpZnJhbWUgdG8gdGhlIGJvdHRvbSAoYW5kIGJleW9uZCku
PC9wPiIKKyAgICAgICAgICAgICAgICArICI8cD5UaGUgdGVzdCBwYXNzZXMgaWYgeW91IHNjcm9s
bCBmYXIgZW5vdWdoIHRvIHNlZSB0aGUgcm93IG9mIEVORCBsYWJlbHMgYnV0IHRoZSBtYWluIHBh
Z2UgZG9lcyBub3Qgc2Nyb2xsLjwvcD4iOworICAgICAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFw
cGVuZENoaWxkKG1lc3NhZ2UpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAg
IH0gICAgICAgIAorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CiA8ZGl2IGlkPSJwYXJl
bnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweCI+CiAgICAgPGRpdiBpZD0ic291cmNlIiBzdHlsZT0i
aGVpZ2h0OiAyMHB4Ij4KICAgICAgICAgUHV0IG1vdXNlIGluc2lkZSB0aGUgaWZyYW1lIChiZWxv
dykgYW5kIGZsaWNrIGRvd253YXJkcwpAQCAtODUsOSArODQsNiBAQCBmdW5jdGlvbiBzZXR1cFRv
cExldmVsKCkgewogICAgIDwvaWZyYW1lPgogPC9kaXY+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBpZnJhbWUgZG9lcyBzY3JvbGwg
d2hlbiBpbm5lciBpZnJhbWUgaXMgTk9UIHNjcm9sbGFibGUuIik7Ci08L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwv
Ym9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xh
dGNoaW5nL3Njcm9sbC1zZWxlY3QtYm90dG9tLXRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLXNlbGVjdC1ib3R0b20tdGVzdC1leHBl
Y3RlZC50eHQKaW5kZXggMDZlOTYyZmY1NzhiNzBkNjRjNDZhNDUxNzhkZmJlYjMwNzY5YzZjOS4u
YjMzMWQwYjMwNjgyYjZiMTBmYjA3YzVlMDA0MzZjMGFiMzdkZTMyZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLXNlbGVjdC1ib3R0b20tdGVz
dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcv
c2Nyb2xsLXNlbGVjdC1ib3R0b20tdGVzdC1leHBlY3RlZC50eHQKQEAgLTcsMTAgKzcsMTAgQEAg
VGVzdHMgdGhhdCBhIHNlbGVjdCBkb2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRvIG1haW4gZnJh
bWUgd2hlbiBzY3JvbGxpbmcgYXQgYm8KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1Q
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKIGRpdiBkaXNw
bGF5IGhlaWdodCA9IDExMQogTW91c2UgbW92ZWQgdG8gKDMwLCAzNzgpCiBQQVNTIFBhZ2UgZGlk
IG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9sYXRjaGluZy9zY3JvbGwtc2VsZWN0LWJvdHRvbS10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtc2VsZWN0LWJvdHRvbS10ZXN0Lmh0bWwK
aW5kZXggNmUwZjIwNjNhNWNkMjdkMjM5ZWZjZGE2YmEzYzkyNDc0MjMwN2JhZS4uZWE3MTE0M2My
MmQxNTllNDJkOWM0YmVjZmFhMDI3MGVhMGU2NGY4OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLXNlbGVjdC1ib3R0b20tdGVzdC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1zZWxlY3QtYm90
dG9tLXRlc3QuaHRtbApAQCAtNSwxMDcgKzUsODggQEAKIC5zY3JvbGxhYmxlX3JlZ2lvbiB7CiAg
ICAgd2lkdGg6IDY4MHB4OwogfQotCi0udGFibGUgdGQsIC50YWJsZSB0aCB7Ci0gICAgcGFkZGlu
ZzogMnB4OwotfQotCi0udGFibGUgdGggewotICAgIGhlaWdodDogMjBweDsKLSAgICB0ZXh0LWFs
aWduOiBsZWZ0OwotICAgIGZvbnQtd2VpZ2h0OiBzdHJvbmc7Ci19Ci0KLS50YWJsZSB0cjpudGgt
Y2hpbGQob2RkKSB7Ci0gICAgYmFja2dyb3VuZDogI2YzZjNmMzsKLX0KLQogLnNjcm9sbGFibGVf
c2VsZWN0IG9wdGlvbjpudGgtY2hpbGQob2RkKSB7CiAgICAgYmFja2dyb3VuZDogI2YzZjNmMzsK
IH0KLQogPC9zdHlsZT4KIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWZ1bmN0aW9uIG9uTG9hZCgpIHsKLSAgICBzZXR1
cFRvcExldmVsKCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ib25Mb2Fk
KCk7Ij4KLTxzY3JpcHQ+CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgdmFyIGNsaWVu
dEluc2V0ID0gMTAwOwogCi12YXIgY2xpZW50SW5zZXQgPSAxMDA7CisgICAgdmFyIHNlbGVjdFRh
cmdldDsKKyAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlOworICAgIHZhciBzZWxlY3RT
Y3JvbGxQb3NpdGlvbkJlZm9yZTsKIAotdmFyIHNlbGVjdFRhcmdldDsKLXZhciBwYWdlU2Nyb2xs
UG9zaXRpb25CZWZvcmU7Ci12YXIgc2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmU7Ci12YXIgY29u
dGludWVDb3VudCA9IDU7CisgICAgZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKQorICAgIHsKKyAg
ICAgICAgLy8gVGhlIHBhZ2Ugc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFsbC4KKyAgICAg
ICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3A7CisgICAgICAgIHZhciBzZWxlY3RTY3JvbGxQb3NpdGlvbkFmdGVyID0gc2Vs
ZWN0VGFyZ2V0LnNjcm9sbFRvcDsKIAotZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7CisgICAg
ICAgIGlmIChwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gcGFnZVNjcm9sbFBvc2l0aW9uQWZ0
ZXIpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJQYWdlIHJlY2VpdmVkIHdoZWVsIGV2ZW50cy4i
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiUGFnZSBkaWQgbm90IHJl
Y2VpdmUgd2hlZWwgZXZlbnRzLiIpOwogCi0gICAgLy8gVGhlIHBhZ2Ugc2hvdWxkIG5vdCBoYXZl
IHNjcm9sbGVkIGF0IGFsbC4KLSAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1
bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKLSAgICB2YXIgc2VsZWN0U2Nyb2xsUG9z
aXRpb25BZnRlciA9IHNlbGVjdFRhcmdldC5zY3JvbGxUb3A7Ci0KLSAgICAvL2RlYnVnKCJQYWdl
IGJlZm9yZTogIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSArICIsIHNlbGVjdCBiZWZvcmU6
ICIgKyBzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZSk7Ci0gICAgLy9kZWJ1ZygiUGFnZSBhZnRl
cjogICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciArICIsIHNlbGVjdCBhZnRlcjogIiArIHNl
bGVjdFNjcm9sbFBvc2l0aW9uQWZ0ZXIpOwotCi0gICAgaWYgKHBhZ2VTY3JvbGxQb3NpdGlvbkJl
Zm9yZSAhPSBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlcikKLSAgICAgICAgdGVzdEZhaWxlZCgiUGFn
ZSByZWNlaXZlZCB3aGVlbCBldmVudHMuIik7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0UGFzc2Vk
KCJQYWdlIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7Ci0KLSAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKLX0KKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQogCi1mdW5j
dGlvbiBzY3JvbGxUZXN0KCkgewotICAgIC8vIFNlZSB3aGVyZSBvdXIgSUZyYW1lIGxpdmVzOgot
ICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wOworICAgIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKQorICAgIHsKKyAgICAgICAgcGFn
ZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3A7CiAKLSAgICBzZWxlY3RUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0
Jyk7Ci0gICAgc2VsZWN0VGFyZ2V0LnNjcm9sbFRvcCA9IHNlbGVjdFRhcmdldC5zY3JvbGxIZWln
aHQgLSBzZWxlY3RUYXJnZXQuY2xpZW50SGVpZ2h0IC0gMTAwOworICAgICAgICBzZWxlY3RUYXJn
ZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisgICAgICAgIHNlbGVjdFRh
cmdldC5zY3JvbGxUb3AgPSBzZWxlY3RUYXJnZXQuc2Nyb2xsSGVpZ2h0IC0gc2VsZWN0VGFyZ2V0
LmNsaWVudEhlaWdodCAtIDEwMDsKIAotICAgIHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlID0g
c2VsZWN0VGFyZ2V0LnNjcm9sbFRvcDsKKyAgICAgICAgc2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZv
cmUgPSBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9wOwogIAotICAgIC8vIFNjcm9sbCB0aGUgI3NvdXJj
ZSB1bnRpbCB3ZSByZWFjaCB0aGUgI3RhcmdldC4KLSAgICB2YXIgc3RhcnRQb3NYID0gc2VsZWN0
VGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKLSAgICBkZWJ1ZygiZGl2IGRpc3BsYXkgaGVpZ2h0ID0g
IiArIHNlbGVjdFRhcmdldC5jbGllbnRIZWlnaHQpOwotICAgIHZhciBzdGFydFBvc1kgPSBNYXRo
LnJvdW5kKHNlbGVjdFRhcmdldC5vZmZzZXRUb3ApICsgTWF0aC5yb3VuZChzZWxlY3RUYXJnZXQu
Y2xpZW50SGVpZ2h0KSArIGNsaWVudEluc2V0IC0gMjsgLy8gVmVyeSBuZWFyIHRvcCAoYWNjb3Vu
dGluZyBmb3IgdG9wIGNvbnRlbnQgaW5zZXQpLgotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsKLSAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBz
dGFydFBvc1ggKyAiLCAiICsgc3RhcnRQb3NZICsgIikiKTsKLSAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25l
JywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdl
ZCcsICdub25lJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJywgdHJ1ZSk7Ci0gICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAn
bm9uZScsICdiZWdpbicsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsK
LSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7Ci0gICAgc2V0VGltZW91dChjaGVja0ZvclNjcm9s
bCwgMTAwKTsKLX0KKyAgICAgICAgLy8gU2Nyb2xsIHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNo
IHRoZSAjdGFyZ2V0LgorICAgICAgICB2YXIgc3RhcnRQb3NYID0gc2VsZWN0VGFyZ2V0Lm9mZnNl
dExlZnQgKyAyMDsKKyAgICAgICAgZGVidWcoImRpdiBkaXNwbGF5IGhlaWdodCA9ICIgKyBzZWxl
Y3RUYXJnZXQuY2xpZW50SGVpZ2h0KTsKKyAgICAgICAgdmFyIHN0YXJ0UG9zWSA9IE1hdGgucm91
bmQoc2VsZWN0VGFyZ2V0Lm9mZnNldFRvcCkgKyBNYXRoLnJvdW5kKHNlbGVjdFRhcmdldC5jbGll
bnRIZWlnaHQpICsgY2xpZW50SW5zZXQgLSAyOyAvLyBWZXJ5IG5lYXIgdG9wIChhY2NvdW50aW5n
IGZvciB0b3AgY29udGVudCBpbnNldCkuCisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsKKyAgICAgICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgi
ICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7CisKKyAgICAgICAgZXZlbnRT
ZW5kZXIubW9uaXRvcldoZWVsRXZlbnRzKCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnLCB0
cnVlKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2No
YW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnLCB0cnVlKTsK
KyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicsIHRydWUpOworICAgICAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2Nv
bnRpbnVlJywgdHJ1ZSk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnLCB0cnVlKTsKKyAgICAgICAg
ZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVzKGNoZWNrRm9yU2Nyb2xsKTsK
KyAgICB9CiAKLWZ1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7CisgICAgZnVuY3Rpb24gc2V0dXBU
b3BMZXZlbCgpIAorICAgIHsKKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSBzZWxl
Y3QgZG9lc24ndCBwYXNzIHdoZWVsIGV2ZW50cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5n
IGF0IGJvdHRvbSIpOwogCi0gICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0VG9wQ29udGVudEluc2V0KGNsaWVudEluc2V0KTsKIAotICAgICAgICBz
ZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDEwMDApOwotICAgIH0gZWxzZSB7CisgICAgICAgIGlmICh3
aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwg
MCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCiAgICAgICAgIHZh
ciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7CiAg
ICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAg
ICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBpcyBiZXR0ZXIgcnVuIHVuZGVy
IER1bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0LCBwbGFjZSB0aGUgbW91c2UgcG9p
bnRlcjxici8+IgotICAgICAgICAgICAgKyAiaW5zaWRlIHRoZSBzZWxlY3QgYm94LCBhbmQgc2Ny
b2xsIG5lYXIgKGJ1dCBub3QgQVQpIHRoZSBib3R0b20gb2YgdGhlIHJhbmdlLiBVc2UgdGhlIG1v
dXNlIHdoZWVsIG9yIGEgdHdvLWZpbmdlcjxici8+IgotICAgICAgICAgICAgKyAic3dpcGUgdG8g
c2Nyb2xsIHRocm91Z2ggdGhlIHJlc3Qgb2YgdGhlIHNlbGVjdCBvcHRpb25zLjxici8+PGJyLz4i
Ci0gICAgICAgICAgICArICJZb3Ugc2hvdWxkIG5vdCBzZWUgdGhlIHBhZ2UgcG9zaXRpb24gY2hh
bmdlIGlmIHRoaXMgdGVzdCBpcyBzdWNjZXNzZnVsLjwvcD4iOworICAgICAgICBtZXNzYWdlLmlu
bmVySFRNTCA9ICI8cD5UbyBtYW51YWxseSBydW4gdGhpcyB0ZXN0LCBwbGFjZSB0aGUgbW91c2Ug
cG9pbnRlciAiCisgICAgICAgICAgICArICJpbnNpZGUgdGhlIHNlbGVjdCBib3gsIGFuZCBzY3Jv
bGwgbmVhciAoYnV0IG5vdCBBVCkgdGhlIGJvdHRvbSBvZiB0aGUgcmFuZ2UuIFVzZSB0aGUgbW91
c2Ugd2hlZWwgb3IgYSB0d28tZmluZ2VyICIKKyAgICAgICAgICAgICsgInN3aXBlIHRvIHNjcm9s
bCB0aHJvdWdoIHRoZSByZXN0IG9mIHRoZSBzZWxlY3Qgb3B0aW9ucy48L3A+IgorICAgICAgICAg
ICAgKyAiPHA+WW91IHNob3VsZCBub3Qgc2VlIHRoZSBwYWdlIHBvc2l0aW9uIGNoYW5nZSBpZiB0
aGlzIHRlc3QgaXMgc3VjY2Vzc2Z1bC48L3A+IjsKICAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFw
cGVuZENoaWxkKG1lc3NhZ2UpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9CiAKLSAg
ICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgd2luZG93LmludGVybmFscy5zZXRUb3BD
b250ZW50SW5zZXQoY2xpZW50SW5zZXQpOwotfQotCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ2xvYWQnLCAoKSA9PiB7CisgICAgICAgIHNldHVwVG9wTGV2ZWwoKTsKKyAgICB9LCBmYWxz
ZSk7CiA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgogPGRpdiBpZD0icGFyZW50IiBzdHlsZT0i
aGVpZ2h0OiAyMDAwcHg7IHdpZHRoOiAyMDAwcHg7Ij4KICAgICA8ZGl2IGlkPSJzb3VyY2UiIHN0
eWxlPSJoZWlnaHQ6IDEwMHB4OyB3aWR0aDogNTAwcHg7Ij4KICAgICAgICAgUHV0IG1vdXNlIGhl
cmUgYW5kIGZsaWNrIGRvd253YXJkcwpAQCAtMTM5LDkgKzEyMCw2IEBAIGZ1bmN0aW9uIHNldHVw
VG9wTGV2ZWwoKSB7CiAgICAgPC9kaXY+CiA8L2Rpdj4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEgc2VsZWN0IGRvZXNuJ3QgcGFz
cyB3aGVlbCBldmVudHMgdG8gbWFpbiBmcmFtZSB3aGVuIHNjcm9sbGluZyBhdCBib3R0b20iKTsK
LTwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwt
c2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dAppbmRleCA0MDlkMTAwZjg3NjZi
YTU5MTQ5MTcyY2VlMjUwMGNhZTY5MjlmNjZlLi45MjMxYzViN2M2NjdjNmYyMmVmMjVjZTg2ZDFj
ODhjNDE3ZWQ1MzQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRj
aGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQt
bWFpbmZyYW1lLWV4cGVjdGVkLnR4dApAQCAtNyw5ICs3LDkgQEAgVGVzdHMgdGhhdCBhIHNlbGVj
dCBkb2Vzbid0IGNvbnN1bWUgd2hlZWwgZXZlbnRzIHdoZW4gc2Nyb2xsIGlzIGxhdGNoZWQgdG8g
bWFpbgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK01vdXNlIG1vdmVkIHRvICgzMCwg
MTI3KQorUEFTUyBTZWxlY3QgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4KIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQotTW91c2UgbW92ZWQgdG8g
KDMwLCAxMjcpCi1QQVNTIFNlbGVjdCBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtc2Vs
ZWN0LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9s
YXRjaGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwKaW5kZXggMmMwMmM3
ZjJkNGJlNDVlOWI1MTM4YTRkZmYyNjU3MTA3NjU1YTkzZi4uMzFmNmNhNTc3ZTc4NGExODA3M2M5
OTI0NzdhODRmNDUwYzVjMjg0MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvbGF0Y2hpbmcvc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1zZWxlY3QtbGF0Y2hlZC1t
YWluZnJhbWUuaHRtbApAQCAtNiwyMCArNiw2IEBACiAgICAgd2lkdGg6IDY4MHB4OwogfQogCi0u
dGFibGUgdGQsIC50YWJsZSB0aCB7Ci0gICAgcGFkZGluZzogMnB4OwotfQotCi0udGFibGUgdGgg
ewotICAgIGhlaWdodDogMjBweDsKLSAgICB0ZXh0LWFsaWduOiBsZWZ0OwotICAgIGZvbnQtd2Vp
Z2h0OiBzdHJvbmc7Ci19Ci0KLS50YWJsZSB0cjpudGgtY2hpbGQob2RkKSB7Ci0gICAgYmFja2dy
b3VuZDogI2YzZjNmMzsKLX0KLQogLnNjcm9sbGFibGVfc2VsZWN0IG9wdGlvbjpudGgtY2hpbGQo
b2RkKSB7CiAgICAgYmFja2dyb3VuZDogI2YzZjNmMzsKIH0KQEAgLTI3LDc3ICsxMyw3NiBAQAog
PC9zdHlsZT4KIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdD4KLWZ1bmN0aW9uIG9uTG9hZCgpIHsKLSAgICBzZXR1cFRvcExl
dmVsKCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ib25Mb2FkKCk7Ij4K
LTxzY3JpcHQ+Ci0KLXZhciBzZWxlY3RUYXJnZXQ7Ci12YXIgcGFnZVNjcm9sbFBvc2l0aW9uQmVm
b3JlOwotdmFyIHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlOwotdmFyIGNvbnRpbnVlQ291bnQg
PSA1OwotCi1mdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKKyAgICBqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKIAotICAgIC8vIFRoZSBzZWxlY3Qgc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFs
bC4KLSAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5zY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcDsKLSAgICB2YXIgc2VsZWN0U2Nyb2xsUG9zaXRpb25BZnRlciA9IHNl
bGVjdFRhcmdldC5zY3JvbGxUb3A7CisgICAgdmFyIHNlbGVjdFRhcmdldDsKKyAgICB2YXIgcGFn
ZVNjcm9sbFBvc2l0aW9uQmVmb3JlOworICAgIHZhciBzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9y
ZTsKIAotICAgIC8vZGVidWcoIlBhZ2UgYmVmb3JlOiAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQmVm
b3JlICsgIiwgc2VsZWN0IGJlZm9yZTogIiArIHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlKTsK
LSAgICAvL2RlYnVnKCJQYWdlIGFmdGVyOiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyICsg
Iiwgc2VsZWN0IGFmdGVyOiAiICsgc2VsZWN0U2Nyb2xsUG9zaXRpb25BZnRlcik7CisgICAgZnVu
Y3Rpb24gY2hlY2tGb3JTY3JvbGwoKQorICAgIHsKKyAgICAgICAgLy8gVGhlIHNlbGVjdCBzaG91
bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgorICAgICAgICB2YXIgcGFnZVNjcm9sbFBvc2l0
aW9uQWZ0ZXIgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKKyAgICAgICAg
dmFyIHNlbGVjdFNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9wOwog
Ci0gICAgaWYgKHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IHNlbGVjdFNjcm9sbFBvc2l0
aW9uQWZ0ZXIpCi0gICAgICAgIHRlc3RGYWlsZWQoIlNlbGVjdCBjb25zdW1lZCB3aGVlbCBldmVu
dHMuIik7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0UGFzc2VkKCJTZWxlY3QgZGlkIG5vdCByZWNl
aXZlIHdoZWVsIGV2ZW50cy4iKTsKKyAgICAgICAgaWYgKHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVm
b3JlICE9IHNlbGVjdFNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJTZWxlY3QgY29uc3VtZWQgd2hlZWwgZXZlbnRzLiIpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJTZWxlY3QgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsK
IAotICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfQotCi1mdW5jdGlvbiBzY3JvbGxUZXN0
KCkgewotICAgIC8vIFNlZSB3aGVyZSBvdXIgSUZyYW1lIGxpdmVzOgotICAgIHBhZ2VTY3JvbGxQ
b3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOwotCi0g
ICAgc2VsZWN0VGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOwotCi0g
ICAgc2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9wOwot
Ci0gICAgLy8gU2Nyb2xsIHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0Lgot
ICAgIHZhciBzdGFydFBvc1ggPSBNYXRoLnJvdW5kKHNlbGVjdFRhcmdldC5vZmZzZXRMZWZ0KSAr
IDIwOwotICAgIHZhciBzdGFydFBvc1kgPSBNYXRoLnJvdW5kKHNlbGVjdFRhcmdldC5vZmZzZXRU
b3ApIC0gNDI7IC8vIFNsaWdodGx5IG1vcmUgdGhhbiBvbmUgd2hlZWwgc2Nyb2xsIGF3YXkgZnJv
bSB0aGUgSUZyYW1lCi0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFy
dFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1lCi0gICAg
ZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSAr
ICIpIik7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAn
bm9uZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOwotICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5k
ZWQnLCAnbm9uZScsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0cnVlKTsKLSAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEs
ICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIHRydWUpOwot
ICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGwsIDEwMCk7Ci19CisgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgIH0KIAotZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpIHsKKyAgICBmdW5jdGlv
biBzY3JvbGxUZXN0KCkKKyAgICB7CisgICAgICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9
IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOworCisgICAgICAgIHNlbGVjdFRh
cmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKworICAgICAgICBzZWxl
Y3RTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IHNlbGVjdFRhcmdldC5zY3JvbGxUb3A7CisKKyAgICAg
ICAgLy8gU2Nyb2xsIHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgorICAg
ICAgICB2YXIgc3RhcnRQb3NYID0gTWF0aC5yb3VuZChzZWxlY3RUYXJnZXQub2Zmc2V0TGVmdCkg
KyAyMDsKKyAgICAgICAgdmFyIHN0YXJ0UG9zWSA9IE1hdGgucm91bmQoc2VsZWN0VGFyZ2V0Lm9m
ZnNldFRvcCkgLSA0MjsgLy8gU2xpZ2h0bHkgbW9yZSB0aGFuIG9uZSB3aGVlbCBzY3JvbGwgYXdh
eSBmcm9tIHRoZSBpZnJhbWUKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQ
b3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZy
YW1lCisgICAgICAgIGRlYnVnKCJNb3VzZSBtb3ZlZCB0byAoIiArIHN0YXJ0UG9zWCArICIsICIg
KyBzdGFydFBvc1kgKyAiKSIpOworCisgICAgICAgIGV2ZW50U2VuZGVyLm1vbml0b3JXaGVlbEV2
ZW50cygpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7CisgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2No
YW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVl
KTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJywgdHJ1ZSk7CisgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAn
YmVnaW4nLCB0cnVlKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOworICAg
ICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7CisgICAgICAgIGV2ZW50U2VuZGVyLmNhbGxBZnRl
clNjcm9sbGluZ0NvbXBsZXRlcyhjaGVja0ZvclNjcm9sbCk7CisgICAgfQogCi0gICAgaWYgKHdp
bmRvdy5ldmVudFNlbmRlcikgewotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
KyAgICBmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkKKyAgICB7CisgICAgICAgIGRlc2NyaXB0aW9u
KCJUZXN0cyB0aGF0IGEgc2VsZWN0IGRvZXNuJ3QgY29uc3VtZSB3aGVlbCBldmVudHMgd2hlbiBz
Y3JvbGwgaXMgbGF0Y2hlZCB0byBtYWluIGZyYW1lLiIpOwogCi0gICAgICAgIHNldFRpbWVvdXQo
c2Nyb2xsVGVzdCwgMTAwMCk7Ci0gICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHdpbmRvdy5ldmVu
dFNlbmRlcikgeworICAgICAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAwKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgdmFyIG1lc3NhZ2VM
b2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKICAgICAgICAgdmFy
IG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgbWVzc2Fn
ZS5pbm5lckhUTUwgPSAiPHA+VGhpcyB0ZXN0IGlzIGJldHRlciBydW4gdW5kZXIgRHVtcFJlbmRl
clRyZWUuIFRvIG1hbnVhbGx5IHRlc3QgaXQsIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVyPGJyLz4i
Ci0gICAgICAgICAgICArICJhdCB0aGUgdG9wIG9mIHRoZSBwYWdlLCBhbmQgdGhlbiB1c2UgdGhl
IG1vdXNlIHdoZWVsIG9yIGEgdHdvLWZpbmdlciBzd2lwZSB0byBzY3JvbGwgZG93bjxici8+Igot
ICAgICAgICAgICAgKyAicGFzdCB0aGUgc2VsZWN0VGFyZ2V0Ljxici8+PGJyLz4iCi0gICAgICAg
ICAgICArICJZb3Ugc2hvdWxkIG5vdCBzZWUgdGhlICdjb250ZW50MjEnIGxhYmVsIGlmIHRoaXMg
dGVzdCBpcyBzdWNjZXNzZnVsLjwvcD4iOworICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9ICI8
cD5UbyBtYW51YWxseSBydW4gdGhpcyB0ZXN0LCBwbGFjZSB0aGUgbW91c2UgcG9pbnRlciAiCisg
ICAgICAgICAgICArICJhdCB0aGUgdG9wIG9mIHRoZSBwYWdlLCBhbmQgdGhlbiB1c2UgdGhlIG1v
dXNlIHdoZWVsIG9yIGEgdHdvLWZpbmdlciBzd2lwZSB0byBzY3JvbGwgZG93biAiCisgICAgICAg
ICAgICArICJwYXN0IHRoZSBzZWxlY3RUYXJnZXQuPC9wPiIKKyAgICAgICAgICAgICsgIjxwPllv
dSBzaG91bGQgbm90IHNlZSB0aGUgJ2NvbnRlbnQyMScgbGFiZWwgaWYgdGhpcyB0ZXN0IGlzIHN1
Y2Nlc3NmdWwuPC9wPiI7CiAgICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZChtZXNz
YWdlKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfQotfQogCi08L3NjcmlwdD4KKyAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHsKKyAgICAgICAgc2V0dXBU
b3BMZXZlbCgpOworICAgIH0sIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgogPGRpdiBpZD0icGFyZW50IiBzdHlsZT0iaGVpZ2h0OiAyMDAwcHg7IHdpZHRoOiAyMDAwcHg7
Ij4KICAgICA8ZGl2IGlkPSJzb3VyY2UiIHN0eWxlPSJoZWlnaHQ6IDEwMHB4OyB3aWR0aDogNTAw
cHg7Ij4KICAgICAgICAgUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcwpAQCAtMTMx
LDkgKzExNiw2IEBAIGZ1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7CiAgICAgPC9kaXY+CiA8L2Rp
dj4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0
cyB0aGF0IGEgc2VsZWN0IGRvZXNuJ3QgY29uc3VtZSB3aGVlbCBldmVudHMgd2hlbiBzY3JvbGwg
aXMgbGF0Y2hlZCB0byBtYWluIGZyYW1lLiIpOwotPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3Jv
bGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3QtZXhwZWN0ZWQu
dHh0CmluZGV4IDA2NWJkNjQyNmNmNmQxZTY1MTM4M2I5NGM3NGFmMmUwYTNlODZhM2IuLjU4NWQy
ZjMzOTkyNWI2OGYwMjYxYzBmNjIzYmRiNDg1MDBkNmJmYTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3Qt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Nj
cm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3QtZXhwZWN0ZWQudHh0CkBAIC03LDEwICs3LDEwIEBA
IFRlc3RzIHRoYXQgYSBzZWxlY3QgZG9lc24ndCBwYXNzIHdoZWVsIGV2ZW50cyB0byBtYWluIGZy
YW1lIHdoZW4gc2Nyb2xsaW5nIGF0IGJvCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAot
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCiBkaXYgZGlz
cGxheSBoZWlnaHQgPSAxMTEKIE1vdXNlIG1vdmVkIHRvICgzMCwgMjM4KQogUEFTUyBQYWdlIGRp
ZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVj
dC5odG1sCmluZGV4IDAyZDJmODBmZWFlNjAwMjk1OWExOTI1MjY5Njc3NzE1YWQ4OTYxZjUuLjdk
ZWUzNmYxMmE5NzcxNjc0ZWYyZGUzNjA2MDI2OWU5OWE1OTAxMmMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxl
Y3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwt
c2VsZWN0LWxhdGNoZWQtc2VsZWN0Lmh0bWwKQEAgLTIzLDg0ICsyMyw3OSBAQAogLnNjcm9sbGFi
bGVfc2VsZWN0IG9wdGlvbjpudGgtY2hpbGQob2RkKSB7CiAgICAgYmFja2dyb3VuZDogI2YzZjNm
MzsKIH0KLQogPC9zdHlsZT4KIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWZ1bmN0aW9uIG9uTG9hZCgpIHsKLSAgICBz
ZXR1cFRvcExldmVsKCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ib25M
b2FkKCk7Ij4KLTxzY3JpcHQ+Ci0KLXZhciBzZWxlY3RUYXJnZXQ7Ci12YXIgcGFnZVNjcm9sbFBv
c2l0aW9uQmVmb3JlOwotdmFyIHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlOwotdmFyIGNvbnRp
bnVlQ291bnQgPSA1OwotCi1mdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKKyAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKIAotICAgIC8vIFRoZSBwYWdlIHNob3VsZCBub3QgaGF2ZSBzY3JvbGxl
ZCBhdCBhbGwuCi0gICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQuc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7Ci0gICAgdmFyIHNlbGVjdFNjcm9sbFBvc2l0aW9uQWZ0
ZXIgPSBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9wOworICAgIHZhciBzZWxlY3RUYXJnZXQ7CisgICAg
dmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZTsKKyAgICB2YXIgc2VsZWN0U2Nyb2xsUG9zaXRp
b25CZWZvcmU7CiAKLSAgICAvL2RlYnVnKCJQYWdlIGJlZm9yZTogIiArIHBhZ2VTY3JvbGxQb3Np
dGlvbkJlZm9yZSArICIsIHNlbGVjdCBiZWZvcmU6ICIgKyBzZWxlY3RTY3JvbGxQb3NpdGlvbkJl
Zm9yZSk7Ci0gICAgLy9kZWJ1ZygiUGFnZSBhZnRlcjogICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25B
ZnRlciArICIsIHNlbGVjdCBhZnRlcjogIiArIHNlbGVjdFNjcm9sbFBvc2l0aW9uQWZ0ZXIpOwor
ICAgIGZ1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkKKyAgICB7CisgICAgICAgIC8vIFRoZSBwYWdl
IHNob3VsZCBub3QgaGF2ZSBzY3JvbGxlZCBhdCBhbGwuCisgICAgICAgIHZhciBwYWdlU2Nyb2xs
UG9zaXRpb25BZnRlciA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOworICAg
ICAgICB2YXIgc2VsZWN0U2Nyb2xsUG9zaXRpb25BZnRlciA9IHNlbGVjdFRhcmdldC5zY3JvbGxU
b3A7CiAKLSAgICBpZiAocGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IHBhZ2VTY3JvbGxQb3Np
dGlvbkFmdGVyKQotICAgICAgICB0ZXN0RmFpbGVkKCJQYWdlIHJlY2VpdmVkIHdoZWVsIGV2ZW50
cy4iKTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RQYXNzZWQoIlBhZ2UgZGlkIG5vdCByZWNlaXZl
IHdoZWVsIGV2ZW50cy4iKTsKKyAgICAgICAgaWYgKHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSAh
PSBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlBhZ2Ug
cmVjZWl2ZWQgd2hlZWwgZXZlbnRzLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0
UGFzc2VkKCJQYWdlIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7CiAKLSAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKLX0KLQotZnVuY3Rpb24gc2Nyb2xsVGVzdCgpIHsKLSAgICAv
LyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZlczoKLSAgICBwYWdlU2Nyb2xsUG9zaXRpb25CZWZv
cmUgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKLQotICAgIHNlbGVjdFRh
cmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKLSAgICBzZWxlY3RUYXJn
ZXQuc2Nyb2xsVG9wID0gc2VsZWN0VGFyZ2V0LnNjcm9sbEhlaWdodCAtIHNlbGVjdFRhcmdldC5j
bGllbnRIZWlnaHQgLSAxMDA7Ci0KLSAgICBzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IHNl
bGVjdFRhcmdldC5zY3JvbGxUb3A7Ci0KLSAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2UgdW50aWwg
d2UgcmVhY2ggdGhlICN0YXJnZXQuCi0gICAgdmFyIHN0YXJ0UG9zWCA9IE1hdGgucm91bmQoc2Vs
ZWN0VGFyZ2V0Lm9mZnNldExlZnQpICsgMjA7Ci0gICAgZGVidWcoImRpdiBkaXNwbGF5IGhlaWdo
dCA9ICIgKyBzZWxlY3RUYXJnZXQuY2xpZW50SGVpZ2h0KTsKLSAgICB2YXIgc3RhcnRQb3NZID0g
TWF0aC5yb3VuZChzZWxlY3RUYXJnZXQub2Zmc2V0VG9wKSArIE1hdGgucm91bmQoc2VsZWN0VGFy
Z2V0LmNsaWVudEhlaWdodCkgLSA0MjsgLy8gT25lIHdoZWVsIHR1cm4gYmVmb3JlIGVuZC4KLSAg
ICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ug
c3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpRnJhbWUKLSAgICBkZWJ1ZygiTW91c2UgbW92
ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAiICsgc3RhcnRQb3NZICsgIikiKTsKLSAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdi
ZWdhbicsICdub25lJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7Ci0g
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJywgdHJ1
ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGlu
dWUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7Ci0gICAgc2V0VGltZW91dChj
aGVja0ZvclNjcm9sbCwgMTAwKTsKLX0KKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQog
Ci1mdW5jdGlvbiBzZXR1cFRvcExldmVsKCkgeworICAgIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKQor
ICAgIHsKKyAgICAgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZG9jdW1lbnQuc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3A7CisKKyAgICAgICAgc2VsZWN0VGFyZ2V0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworICAgICAgICBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9w
ID0gc2VsZWN0VGFyZ2V0LnNjcm9sbEhlaWdodCAtIHNlbGVjdFRhcmdldC5jbGllbnRIZWlnaHQg
LSAxMDA7CisKKyAgICAgICAgc2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBzZWxlY3RUYXJn
ZXQuc2Nyb2xsVG9wOworCisgICAgICAgIC8vIFNjcm9sbCB0aGUgI3NvdXJjZSB1bnRpbCB3ZSBy
ZWFjaCB0aGUgI3RhcmdldC4KKyAgICAgICAgdmFyIHN0YXJ0UG9zWCA9IE1hdGgucm91bmQoc2Vs
ZWN0VGFyZ2V0Lm9mZnNldExlZnQpICsgMjA7CisgICAgICAgIGRlYnVnKCJkaXYgZGlzcGxheSBo
ZWlnaHQgPSAiICsgc2VsZWN0VGFyZ2V0LmNsaWVudEhlaWdodCk7CisgICAgICAgIHZhciBzdGFy
dFBvc1kgPSBNYXRoLnJvdW5kKHNlbGVjdFRhcmdldC5vZmZzZXRUb3ApICsgTWF0aC5yb3VuZChz
ZWxlY3RUYXJnZXQuY2xpZW50SGVpZ2h0KSAtIDQyOyAvLyBPbmUgd2hlZWwgdHVybiBiZWZvcmUg
ZW5kLgorICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9z
WSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpRnJhbWUKKyAgICAgICAg
ZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSAr
ICIpIik7CisKKyAgICAgICAgZXZlbnRTZW5kZXIubW9uaXRvcldoZWVsRXZlbnRzKCk7CisgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ2JlZ2FuJywgJ25vbmUnLCB0cnVlKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25l
JywgdHJ1ZSk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgICAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwg
J2VuZGVkJywgJ25vbmUnLCB0cnVlKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicsIHRydWUp
OworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScs
ICdlbmQnLCB0cnVlKTsKKyAgICAgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29t
cGxldGVzKGNoZWNrRm9yU2Nyb2xsKTsKKyAgICB9CiAKLSAgICBpZiAod2luZG93LmV2ZW50U2Vu
ZGVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKLSAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpIHsK
IAotICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDEwMDApOwotICAgIH0gZWxzZSB7Cisg
ICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQo
c2Nyb2xsVGVzdCwgMCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAg
CiAgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
cGFyZW50Jyk7CiAgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7Ci0gICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBpcyBiZXR0
ZXIgcnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0LCBwbGFjZSB0
aGUgbW91c2UgcG9pbnRlcjxici8+IgotICAgICAgICAgICAgKyAiaW5zaWRlIHRoZSBzZWxlY3Qg
Ym94LCBhbmQgc2Nyb2xsIG5lYXIgKGJ1dCBub3QgQVQpIHRoZSBib3R0b20gb2YgdGhlIHJhbmdl
LiBVc2UgdGhlIG1vdXNlIHdoZWVsIG9yIGEgdHdvLWZpbmdlcjxici8+IgotICAgICAgICAgICAg
KyAic3dpcGUgdG8gc2Nyb2xsIHRocm91Z2ggdGhlIHJlc3Qgb2YgdGhlIHNlbGVjdCBvcHRpb25z
Ljxici8+PGJyLz4iCi0gICAgICAgICAgICArICJZb3Ugc2hvdWxkIG5vdCBzZWUgdGhlIHBhZ2Ug
cG9zaXRpb24gY2hhbmdlIGlmIHRoaXMgdGVzdCBpcyBzdWNjZXNzZnVsLjwvcD4iOworICAgICAg
ICBtZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UbyBtYW51YWxseSB0ZXN0IGl0LCBwbGFjZSB0aGUg
bW91c2UgcG9pbnRlciAiCisgICAgICAgICAgICArICJpbnNpZGUgdGhlIHNlbGVjdCBib3gsIGFu
ZCBzY3JvbGwgbmVhciAoYnV0IG5vdCBBVCkgdGhlIGJvdHRvbSBvZiB0aGUgcmFuZ2UuIFVzZSB0
aGUgbW91c2Ugd2hlZWwgb3IgYSB0d28tZmluZ2VyICIKKyAgICAgICAgICAgICsgInN3aXBlIHRv
IHNjcm9sbCB0aHJvdWdoIHRoZSByZXN0IG9mIHRoZSBzZWxlY3Qgb3B0aW9ucy48L3A+IgorICAg
ICAgICAgICAgKyAiPHA+WW91IHNob3VsZCBub3Qgc2VlIHRoZSBwYWdlIHBvc2l0aW9uIGNoYW5n
ZSBpZiB0aGlzIHRlc3QgaXMgc3VjY2Vzc2Z1bC48L3A+IjsKICAgICAgICAgbWVzc2FnZUxvY2F0
aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9
Ci19CiAKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHsKKyAgICAg
ICAgc2V0dXBUb3BMZXZlbCgpOworICAgIH0sIGZhbHNlKTsKIDwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+CiA8ZGl2IGlkPSJwYXJlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweDsgd2lkdGg6IDIw
MDBweDsiPgogICAgIDxkaXYgaWQ9InNvdXJjZSIgc3R5bGU9ImhlaWdodDogMTAwcHg7IHdpZHRo
OiA1MDBweDsiPgogICAgICAgICBQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMjgx
NmNlYTMxYmQ2MzFjNGNjZTFhZmE1NWYyNWQ0YzY5OTQ5ODg2OS4uYTJhOTI2ODA1ZTA1MzM1ZjVm
NGE5ZGY3YjIyYmEyYWMzMWE4MjAwNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNzkzLDggKzc5Myw2IEBAIHdlYmtpdC5vcmcvYi8xODIx
NzYgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrCiAKIHdlYmtpdC5vcmcvYi8xODM4NjkgWyBIaWdoU2llcnJhKyBdIG1lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy9zZWVrLWJhY2t3YXJkLXN1cHBvcnQvc2Vlay1iYWNrd2FyZC1zdXBw
b3J0Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTgzODc5IFsgRGVidWcg
XSBmYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtZGl2LW5vLWxhdGNoaW5nLmh0bWwgWyBQ
YXNzIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvMTgzODYwIFsgU2llcnJhIFJlbGVhc2UgXSBo
dHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvdGhpcmQtcGFydHktcmVnaXN0cmF0aW9uLmh0bWwgWyBQ
YXNzIEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMTg0MjQ1IGh0dHAvdGVzdHMvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWNhY2hlLWFwaS5odHRwcy5odG1sIFsgUGFzcyBGYWlsdXJl
IF0KQEAgLTkxOCw4ICs5MTYsNiBAQCB3ZWJraXQub3JnL2IvMjA3MDAzIHRpbGVkLWRyYXdpbmcv
c2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1vdgogCiB3ZWJraXQu
b3JnL2IvMjA3MDYwIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBh
cGlzL3RpbWVycy90eXBlLWxvbmctc2V0aW50ZXJ2YWwuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAK
LXdlYmtpdC5vcmcvYi8yMDcwNjMgZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWRpdi13
aXRoLW5lc3RlZC1ub25zY3JvbGxhYmxlLWlmcmFtZS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KLQog
d2Via2l0Lm9yZy9iLzIwNzA3OCB3ZWJncHUvd2hsc2wvdGV4dHVyZXMtc2FtcGxlLWxldmVsLmh0
bWwgWyBQYXNzIEltYWdlT25seUZhaWx1cmUgQ3Jhc2ggXQogCiB3ZWJraXQub3JnL2IvMjA3MTE3
IHdlYmdwdS93aGxzbC9uZXN0ZWQtbG9vcC5odG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJlIF0K
QEAgLTk0Niw3ICs5NDIsNyBAQCB3ZWJraXQub3JnL2IvMjA3MjAyIHdlYmdwdS93aGxzbC90ZXh0
dXJlcy1zYW1wbGUtZ3JhZC5odG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdQogCiB3ZWJraXQub3Jn
L2IvMjA2NzE4IGluc3BlY3Rvci9jYW52YXMvc2hhZGVyUHJvZ3JhbS1hZGQtcmVtb3ZlLXdlYmds
Mi5odG1sIFsgUGFzcyBDcmFzaCBdCiAKLXdlYmtpdC5vcmcvYi8yMDcyMDkgIGluc3BlY3Rvci9o
ZWFwL2dldFByZXZpZXcuaHRtbCBbIFBhc3MgRmFpbHVyZSBUaW1lb3V0IF0KK3dlYmtpdC5vcmcv
Yi8yMDcyMDkgaW5zcGVjdG9yL2hlYXAvZ2V0UHJldmlldy5odG1sIFsgUGFzcyBGYWlsdXJlIFRp
bWVvdXQgXQogCiB3ZWJraXQub3JnL2IvMjA3MjIyIHdlYmdwdS93aGxzbC96ZXJvLWluaXRpYWxp
emUtdmFsdWVzLTIuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKQEAgLTk5NCw4ICs5
OTAsNiBAQCB3ZWJraXQub3JnL2IvMjA3NzAwIHdlYmdwdS93aGxzbC9yZXR1cm4tbG9jYWwtdmFy
aWFibGUuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbAogCiB3ZWJraXQub3JnL2IvMjA3NzI4IFsg
UmVsZWFzZSBdIGFjY2Vzc2liaWxpdHkvcHJlc3MtdGFyZ2V0cy1jZW50ZXItcG9pbnQuaHRtbCBb
IFBhc3MgRmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8yMDc3MzIgZmFzdC9zY3JvbGxpbmcvbGF0
Y2hpbmcvaWZyYW1lX2luX2lmcmFtZS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KLQogd2Via2l0Lm9y
Zy9iLzIwNjY5OSBodHRwL3Rlc3RzL21lZGlhL25vdy1wbGF5aW5nLWluZm8uaHRtbCBbIFBhc3Mg
RmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8yMDc3Nzkgd2ViZ3B1L3dobHNsL2RlcmVmZXJlbmNl
LXBvaW50ZXItc2hvdWxkLXR5cGUtY2hlY2suaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBd
CkBAIC0xMDcxLDQgKzEwNjUsNCBAQCB3ZWJraXQub3JnL2IvMjA5NDkwIGh0dHAvdGVzdHMvbWVk
aWEvdHJhY2staW4tYmFuZC1obHMtbWV0YWRhdGEuaHRtbCBbIFBhc3MgQ3JhcwogCiB3ZWJraXQu
b3JnL2IvMjA5NTAzIFsgRGVidWcgXSBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1hbmNob3Iv
b3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwgWyBQYXNzIENyYXNoIF0KIAotd2Vi
a2l0Lm9yZy9iLzIwOTU2NCBzdmcvYXMtaW1hZ2Uvc3ZnLWltYWdlLXdpdGgtZGF0YS11cmktYmFj
a2dyb3VuZC5odG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJlIF0KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCit3ZWJraXQub3JnL2IvMjA5NTY0IHN2Zy9hcy1pbWFnZS9zdmctaW1hZ2Utd2l0
aC1kYXRhLXVyaS1iYWNrZ3JvdW5kLmh0bWwgWyBQYXNzIEltYWdlT25seUZhaWx1cmUgXQo=
</data>
<flag name="review"
          id="410113"
          type_id="1"
          status="+"
          setter="zalan"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394677</attachid>
            <date>2020-03-26 16:47:47 -0700</date>
            <delta_ts>2020-03-26 23:16:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209629-20200326164746.patch</filename>
            <type>text/plain</type>
            <size>143572</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MDkyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDg3YWUzYWEzNzJlN2ViY2ViNWFl
YThjOTI1MTQwMzFiMDdmMzRkZC4uNmRlYzZjODJmNDllN2I3ZGY4OTM2MjM2ZjAzMjI5OTI3NTVl
MGIwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIwLTAzLTI2ICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENsZWFuIHVwIGZhc3Qvc2Nyb2xsaW5n
L2xhdGNoaW5nIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDk2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAg
ICAgICAgCisgICAgICAgIFRoZXNlIHRlc3RzIGhhZCBhIGJ1bmNoIG9mIGlzc3VlczoKKyAgICAg
ICAgICAgIC0gbWl4dHVyZSBvZiB3YWl0VW50aWxEb25lL2pzVGVzdElzQXN5bmMKKyAgICAgICAg
ICAgIC0gbm90IGFsbCB1c2VkIGV2ZW50U2VuZGVyLm1vbml0b3JXaGVlbEV2ZW50cworICAgICAg
ICAgICAgLSBzY3JpcHQgaW4gdGhlIGJvZHkgZm9yIG5vIHJlYXNvbgorICAgICAgICAgICAgLSBj
b21tZW50ZWQgb3V0IGNvZGUsIHVudXNlZCB2YXJpYWJsZXMKKyAgICAgICAgICAgIC0gY29uZnVz
aW5nIGNvbW1lbnRzCisgICAgICAgICAgICAtIGNvbnRyYWRpY3RvcnkgdGVzdCBjb250ZW50CisK
KyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9sYXRjaGluZy9pZnJhbWVfaW5faWZyYW1lLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9sYXRjaGluZy9pZnJhbWVfaW5faWZy
YW1lLmh0bWw6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvcmVzb3VyY2VzL2lu
bmVyX2NvbnRlbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9sYXRjaGluZy9yZXNv
dXJjZXMvc2Nyb2xsX25lc3RlZF9pZnJhbWVfdGVzdF9pbm5lci5odG1sOgorICAgICAgICAqIGZh
c3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1kaXYtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1k
aXYuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtZGl2LWxh
dGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9s
YXRjaGluZy9zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWw6CisgICAgICAgICogZmFz
dC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWRpdi1uby1sYXRjaGluZy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWRpdi1uby1sYXRjaGlu
Zy5odG1sOgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1kaXYtd2l0
aC1uZXN0ZWQtbm9uc2Nyb2xsYWJsZS1pZnJhbWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZh
c3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1kaXYtd2l0aC1uZXN0ZWQtbm9uc2Nyb2xsYWJs
ZS1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwt
aWZyYW1lLWZyYWdtZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9s
YXRjaGluZy9zY3JvbGwtaWZyYW1lLWZyYWdtZW50Lmh0bWw6CisgICAgICAgICogZmFzdC9zY3Jv
bGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWlmcmFtZS1pbi1vdmVyZmxvdy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWlmcmFtZS1pbi1vdmVyZmxv
dy5odG1sOgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1pZnJhbWUt
bGF0Y2hlZC1pZnJhbWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2xh
dGNoaW5nL3Njcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiBmYXN0
L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtaWZyYW1l
LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvbGF0Y2hp
bmcvc2Nyb2xsLWlmcmFtZS13ZWJraXQxLWxhdGNoaW5nLWJ1Zy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWlmcmFtZS13ZWJraXQxLWxhdGNo
aW5nLWJ1Zy5odG1sOgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1s
YXRjaGVkLW5lc3RlZC1kaXYtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5n
L2xhdGNoaW5nL3Njcm9sbC1sYXRjaGVkLW5lc3RlZC1kaXYuaHRtbDoKKyAgICAgICAgKiBmYXN0
L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtbmVzdGVkLWlmcmFtZS1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLW5lc3RlZC1pZnJhbWUuaHRt
bDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtc2VsZWN0LWJvdHRv
bS10ZXN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9sYXRjaGluZy9z
Y3JvbGwtc2VsZWN0LWJvdHRvbS10ZXN0Lmh0bWw6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcv
bGF0Y2hpbmcvc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5mcmFtZS1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1h
aW5mcmFtZS5odG1sOgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1z
ZWxlY3QtbGF0Y2hlZC1zZWxlY3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qvc2Nyb2xs
aW5nL2xhdGNoaW5nL3Njcm9sbC1zZWxlY3QtbGF0Y2hlZC1zZWxlY3QuaHRtbDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjAtMDMtMjYgIE1pY2hh
ZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVmYWN0b3IgWUFSUiBT
dGFjayBPdmVyZmxvdyBDaGVja3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2xhdGNoaW5nL2lmcmFtZV9pbl9pZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvaWZyYW1lX2luX2lmcmFtZS1leHBlY3RlZC50eHQKaW5k
ZXggYTNkYWUwNmVlNjVlODgyNmQ3M2E2YzhhZmRmYjNiNDMyY2MxYTNlOC4uMmYzZTMzOThhNzI1
NjRhOGFkNDM0ZWY4YmQ1YTU2ZTFjMDc3Y2UyYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvbGF0Y2hpbmcvaWZyYW1lX2luX2lmcmFtZS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvaWZyYW1lX2luX2lmcmFtZS1leHBl
Y3RlZC50eHQKQEAgLTUsOSArNSw2IEBAIFRlc3RzIHRoYXQgaWZyYW1lIGRvZXNuJ3QgcGFzcyB3
aGVlbCBldmVudHMgdG8gbWFpbiBmcmFtZSB3aGVuIHNjcm9sbGluZyBpbnNpZGUKIE9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0K
LVRFU1QgQ09NUExFVEUKIFBBU1MgUGFnZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLgog
UEFTUyBpZnJhbWUgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4KIFBBU1MgaWZyYW1lIHJl
Y2VpdmVkIHdoZWVsIGV2ZW50cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2xhdGNoaW5nL2lmcmFtZV9pbl9pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2xhdGNoaW5nL2lmcmFtZV9pbl9pZnJhbWUuaHRtbAppbmRleCA0OGJiOTE1ZmRmMmE4
NjQ5MDUxYzU1YjY0Nzc4NjFjZWJjNzk1MjQwLi4zYTAxNmJmMjQ2MGQ5ZDBmNDRiZWYwMjg3YTc3
ZGZlOGFmMzBmNzhhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRj
aGluZy9pZnJhbWVfaW5faWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvbGF0Y2hpbmcvaWZyYW1lX2luX2lmcmFtZS5odG1sCkBAIC0xLDExMSArMSwxMTEgQEAKIDwh
RE9DVFlQRSBodG1sPgogPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDx0aXRsZT5pRnJhbWUg
aW4gaUZyYW1lIFRlc3Q8L3RpdGxlPgotICAgICAgICA8c3R5bGU+Ci0gICAgICAgICogewotICAg
ICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKKzxoZWFkPgorICAgIDxzdHlsZT4KKyAg
ICAqIHsKKyAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKKyAgICB9CisKKyAgICAuY29u
dGFpbmVyIHsKKyAgICAgICAgd2lkdGg6MTAwJTsKKyAgICAgICAgb3ZlcmZsb3c6YXV0bzsKKyAg
ICAgICAgaGVpZ2h0OmF1dG87CisgICAgfQorCisgICAgLmlubmVyY29udGFpbmVyIHsKKyAgICAg
ICAgaGVpZ2h0OjEwMCU7CisgICAgICAgIHdpZHRoOjUwJTsKKyAgICB9CisgICAgPC9zdHlsZT4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAg
ICAgICB2YXIgaWZyYW1lVGFyZ2V0OworICAgICAgICB2YXIgaW5uZXJJRnJhbWVUYXJnZXQ7Cisg
ICAgICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7CisgICAgICAgIHZhciBpZnJhbWVT
Y3JvbGxQb3NpdGlvbkJlZm9yZTsKKworICAgICAgICBmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgp
CisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIFRoZSBpZnJhbWUgc2hvdWxkIG5vdCBoYXZlIHNj
cm9sbGVkIGF0IGFsbC4KKyAgICAgICAgICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9
IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOworICAgICAgICAgICAgdmFyIGlm
cmFtZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSB3aW5kb3cuZnJhbWVzWyd0YXJnZXQnXS5kb2N1bWVu
dC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKKyAgICAgICAgICAgIHZhciBpbm5lcklGcmFt
ZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBpZnJhbWVUYXJnZXQuY29udGVudFdpbmRvdy5mcmFtZXNb
J3RhcmdldCddLmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOworCisgICAgICAg
ICAgICBpZiAocGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IHBhZ2VTY3JvbGxQb3NpdGlvbkFm
dGVyKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlBhZ2UgcmVjZWl2ZWQgd2hlZWwgZXZl
bnRzLiIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlBh
Z2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsKKworICAgICAgICAgICAgaWYgKGlm
cmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IGlmcmFtZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiaWZyYW1lIHJlY2VpdmVkIHdoZWVsIGV2ZW50cy4i
KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJpZnJhbWUg
ZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsKKworICAgICAgICAgICAgaWYgKGlubmVy
SUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gaW5uZXJJRnJhbWVTY3JvbGxQb3NpdGlvbkFm
dGVyKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoImlmcmFtZSByZWNlaXZlZCB3aGVlbCBl
dmVudHMuIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
aWZyYW1lIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7CisKKyAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOwogICAgICAgICB9CiAKLSAgICAgICAgLmNvbnRhaW5lciB7Ci0gICAgICAg
ICAgICB3aWR0aDoxMDAlOwotICAgICAgICAgICAgb3ZlcmZsb3c6YXV0bzsKLSAgICAgICAgICAg
IGhlaWdodDphdXRvOworICAgICAgICBmdW5jdGlvbiBzY3JvbGxUZXN0KCkKKyAgICAgICAgewor
ICAgICAgICAgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZG9jdW1lbnQuc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3A7CisKKyAgICAgICAgICAgIGlmcmFtZVRhcmdldCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKworICAgICAgICAgICAgdmFyIGlmcmFtZVNjcm9s
bGluZ0VsZW1lbnQgPSB3aW5kb3cuZnJhbWVzWyd0YXJnZXQnXS5kb2N1bWVudC5zY3JvbGxpbmdF
bGVtZW50OworICAgICAgICAgICAgaWZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBpZnJhbWVT
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKKworICAgICAgICAgICAgaW5uZXJJRnJhbWVUYXJn
ZXQgPSBpZnJhbWVUYXJnZXQuY29udGVudFdpbmRvdy5mcmFtZXNbJ3RhcmdldCddLmRvY3VtZW50
LnNjcm9sbGluZ0VsZW1lbnQ7CisgICAgICAgICAgICBpbm5lcklGcmFtZVNjcm9sbFBvc2l0aW9u
QmVmb3JlID0gaW5uZXJJRnJhbWVUYXJnZXQuc2Nyb2xsVG9wOworCisgICAgICAgICAgICAvLyBT
Y3JvbGwgdGhlICNzb3VyY2UgdW50aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQuCisgICAgICAgICAg
ICB2YXIgc3RhcnRQb3NYID0gTWF0aC5yb3VuZChpZnJhbWVUYXJnZXQub2Zmc2V0TGVmdCkgKyAy
MDsKKyAgICAgICAgICAgIHZhciBzdGFydFBvc1kgPSBNYXRoLnJvdW5kKGlmcmFtZVRhcmdldC5v
ZmZzZXRUb3ApICsgODA7CisKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vbml0b3JXaGVlbEV2
ZW50cygpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBz
dGFydFBvc1kpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScpOworICAgICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0x
LCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsK
KyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdi
ZWdpbicpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOworICAgICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAs
ICdub25lJywgJ2VuZCcpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xs
aW5nQ29tcGxldGVzKGNoZWNrRm9yU2Nyb2xsKTsKICAgICAgICAgfQogCi0gICAgICAgIC5pbm5l
cmNvbnRhaW5lciB7Ci0gICAgICAgICAgICBoZWlnaHQ6MTAwJTsKLSAgICAgICAgICAgIHdpZHRo
OjUwJTsKKyAgICAgICAgZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgICAgICAgICAgZGVidWco
J1RoaXMgdGVzdCByZXF1aXJlcyBldmVudFNlbmRlcicpOworICAgICAgICAgICAgICAgIGZpbmlz
aEpTVGVzdCgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAwKTsKICAgICAgICAgfQotICAgICAgICA8
L3N0eWxlPgotICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KLSAgICA8L2hlYWQ+Ci0gICAgPGJvZHk+Ci08c2NyaXB0PgotCi12
YXIgaWZyYW1lVGFyZ2V0OwotdmFyIGlubmVySUZyYW1lVGFyZ2V0OwotdmFyIHBhZ2VTY3JvbGxQ
b3NpdGlvbkJlZm9yZTsKLXZhciBpRnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZTsKLXZhciBjb250
aW51ZUNvdW50ID0gNTsKLQotZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKQotewotICAgIC8vIFRo
ZSBJRnJhbWUgc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFsbC4KLSAgICB2YXIgcGFnZVNj
cm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsK
LSAgICB2YXIgaUZyYW1lU2Nyb2xsUG9zaXRpb25BZnRlciA9IHdpbmRvdy5mcmFtZXNbJ3Rhcmdl
dCddLmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOwotICAgIHZhciBpbm5lcklG
cmFtZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBpZnJhbWVUYXJnZXQuY29udGVudFdpbmRvdy5mcmFt
ZXNbJ3RhcmdldCddLmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOwotCi0gICAg
aWYgKHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlcikK
LSAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSByZWNlaXZlZCB3aGVlbCBldmVudHMuIik7Ci0gICAg
ZWxzZQotICAgICAgICB0ZXN0UGFzc2VkKCJQYWdlIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVu
dHMuIik7Ci0KLSAgICBpZiAoaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gaUZyYW1lU2Ny
b2xsUG9zaXRpb25BZnRlcikKLSAgICAgICAgdGVzdEZhaWxlZCgiaWZyYW1lIHJlY2VpdmVkIHdo
ZWVsIGV2ZW50cy4iKTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RQYXNzZWQoImlmcmFtZSBkaWQg
bm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLiIpOwotCi0gICAgaWYgKGlubmVySUZyYW1lU2Nyb2xs
UG9zaXRpb25CZWZvcmUgIT0gaW5uZXJJRnJhbWVTY3JvbGxQb3NpdGlvbkFmdGVyKQotICAgICAg
ICB0ZXN0UGFzc2VkKCJpZnJhbWUgcmVjZWl2ZWQgd2hlZWwgZXZlbnRzLiIpOwotICAgIGVsc2UK
LSAgICAgICAgdGVzdEZhaWxlZCgiaWZyYW1lIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMu
Iik7Ci0KLSAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
LX0KLQotZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCi17Ci0gICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVm
b3JlID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7Ci0KLSAgICBpZnJhbWVU
YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7Ci0KLSAgICB2YXIgaUZy
YW1lU2Nyb2xsaW5nRWxlbWVudCA9IHdpbmRvdy5mcmFtZXNbJ3RhcmdldCddLmRvY3VtZW50LnNj
cm9sbGluZ0VsZW1lbnQ7Ci0gICAgaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBpRnJhbWVT
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKLQotICAgIGlubmVySUZyYW1lVGFyZ2V0ID0gaWZy
YW1lVGFyZ2V0LmNvbnRlbnRXaW5kb3cuZnJhbWVzWyd0YXJnZXQnXS5kb2N1bWVudC5zY3JvbGxp
bmdFbGVtZW50OwotICAgIGlubmVySUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBpbm5lcklG
cmFtZVRhcmdldC5zY3JvbGxUb3A7Ci0KLSAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2UgdW50aWwg
d2UgcmVhY2ggdGhlICN0YXJnZXQuCi0gICAgdmFyIHN0YXJ0UG9zWCA9IE1hdGgucm91bmQoaWZy
YW1lVGFyZ2V0Lm9mZnNldExlZnQpICsgMjA7Ci0gICAgdmFyIHN0YXJ0UG9zWSA9IE1hdGgucm91
bmQoaWZyYW1lVGFyZ2V0Lm9mZnNldFRvcCkgKyA4MDsKLSAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScpOwotICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ2NoYW5nZWQnLCAnbm9uZScpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOwotICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAn
ZW5kZWQnLCAnbm9uZScpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nKTsKLSAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywg
J2NvbnRpbnVlJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcpOwotICAgIGV2ZW50U2VuZGVyLmNhbGxB
ZnRlclNjcm9sbGluZ0NvbXBsZXRlcyhjaGVja0ZvclNjcm9sbCk7Ci19Ci0KLWZ1bmN0aW9uIHNl
dHVwVG9wTGV2ZWwoKQotewotICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOwotCi0gICAgICAgIGV2ZW50U2VuZGVyLm1vbml0b3JXaGVlbEV2ZW50cygpOwotICAgICAg
ICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDApOwotICAgIH0KLX0KLTwvc2NyaXB0PgotICAgICAg
ICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgotICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5uZXJj
b250YWluZXIiPgotICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9IndpZHRoOjEwMCU7Ij4KLSAg
ICAgICAgICAgICAgICAgICAgPGRpdj5Jbm5lciBGcmFtZTo8L2Rpdj4KLSAgICAgICAgICAgICAg
ICAgICAgPGRpdiBzdHlsZT0iaGVpZ2h0OjkyJTsiPgotICAgICAgICAgICAgICAgICAgICAgICAg
PGlmcmFtZSBpZD0idGFyZ2V0IiBuYW1lPSJ0YXJnZXQiIHNyYz0icmVzb3VyY2VzL3Rlc3RDb250
ZW50Lmh0bWwiIG9ubG9hZD0ic2V0dXBUb3BMZXZlbCgpOyI+PC9pZnJhbWU+Ci0gICAgICAgICAg
ICAgICAgICAgIDwvZGl2PgorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW5uZXJjb250YWluZXIi
PgorICAgICAgICAgICAgPGRpdiBzdHlsZT0id2lkdGg6MTAwJTsiPgorICAgICAgICAgICAgICAg
IDxkaXY+SW5uZXIgRnJhbWU6PC9kaXY+CisgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iaGVp
Z2h0OjkyJTsiPgorICAgICAgICAgICAgICAgICAgICA8aWZyYW1lIGlkPSJ0YXJnZXQiIG5hbWU9
InRhcmdldCIgc3JjPSJyZXNvdXJjZXMvdGVzdENvbnRlbnQuaHRtbCIgb25sb2FkPSJzZXR1cFRv
cExldmVsKCk7Ij48L2lmcmFtZT4KICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAg
IDwvZGl2PgogICAgICAgICA8L2Rpdj4KLSAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Ci0gICAgICAgIDxzY3JpcHQ+Ci0gICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGlmcmFt
ZSBkb2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRvIG1haW4gZnJhbWUgd2hlbiBzY3JvbGxpbmcg
aW5zaWRlIGlmcmFtZSIpOwotICAgICAgICA8L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotICAgIDwvYm9k
eT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8c2NyaXB0
PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGlmcmFtZSBkb2Vzbid0IHBhc3Mgd2hlZWwg
ZXZlbnRzIHRvIG1haW4gZnJhbWUgd2hlbiBzY3JvbGxpbmcgaW5zaWRlIGlmcmFtZSIpOworICAg
IDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KIDwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9y
ZXNvdXJjZXMvaW5uZXJfY29udGVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
bGF0Y2hpbmcvcmVzb3VyY2VzL2lubmVyX2NvbnRlbnQuaHRtbAppbmRleCA1NDBkZDAxNWY3ZDJl
N2NjNTBhMWZjZjllMWE4NWJhMzYwOWRhMWUwLi5mY2RmNDRiZjBmZjliNTA4MWZkZmQ3OTdiNzU4
MGRiYmI5NDdkZGM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRj
aGluZy9yZXNvdXJjZXMvaW5uZXJfY29udGVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL2xhdGNoaW5nL3Jlc291cmNlcy9pbm5lcl9jb250ZW50Lmh0bWwKQEAgLTEsNyAr
MSw3IEBACiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sIGxhbmc9ImVuLVVTIj4KICAgICA8aGVhZD4K
LSAgICAgICAgPHRpdGxlPklubmVyIGlGcmFtZSBFeGFtcGxlPC90aXRsZT4KKyAgICAgICAgPHRp
dGxlPklubmVyIGlmcmFtZSBFeGFtcGxlPC90aXRsZT4KICAgICAgICAgPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgogICAgIDwvaGVhZD4KICAgICA8Ym9keSBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZl
OyBtaW4taGVpZ2h0OiAxMDAlOyB0b3A6IDBweDsiPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvcmVzb3VyY2VzL3Njcm9sbF9uZXN0ZWRfaWZyYW1lX3Rl
c3RfaW5uZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Jlc291
cmNlcy9zY3JvbGxfbmVzdGVkX2lmcmFtZV90ZXN0X2lubmVyLmh0bWwKaW5kZXggNWRhYWI5YTcy
YmYxODM4ZWYyMTA4OGEzZDIyM2FiZDc0OGU0YzRlNy4uODA0YjM1NTA1Y2UyMmQ3M2E3MTljM2Fh
NDI1N2U2ZGE2MTc0ZTFiOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
bGF0Y2hpbmcvcmVzb3VyY2VzL3Njcm9sbF9uZXN0ZWRfaWZyYW1lX3Rlc3RfaW5uZXIuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9yZXNvdXJjZXMvc2Nyb2xs
X25lc3RlZF9pZnJhbWVfdGVzdF9pbm5lci5odG1sCkBAIC0xLDkgKzEsNyBAQAogPCFET0NUWVBF
IGh0bWw+Ci0KIDxodG1sPgogPGhlYWQ+CiAgICAgPHN0eWxlPgotICAgICAgICAKICAgICAgICAg
Ym9keSB7CiAgICAgICAgICAgICBoZWlnaHQ6IDIwMDBweDsKICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWRpdi1sYXRjaGVk
LWRpdi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9z
Y3JvbGwtZGl2LWxhdGNoZWQtZGl2LWV4cGVjdGVkLnR4dAppbmRleCBjMWIxYzM1MDkyMTRhNjM4
NjkwODI1ODU0NjY0NjcyY2ViYzc2YTNkLi42NDM2YWY4ZDY3ZGY2Yzc4NWMzYzRlNDAzMGU4Yzcz
MTdlNmRlMzk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGlu
Zy9zY3JvbGwtZGl2LWxhdGNoZWQtZGl2LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtZGl2LWxhdGNoZWQtZGl2LWV4cGVjdGVkLnR4
dApAQCAtMSw1NiArMSwxMyBAQAotUHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcwot
U2Nyb2xsYWJsZSBSZWdpb24KLQotQ291bnQJREFUQQlSZXYgQ291bnQKLVRPUCBUT1AgVE9QIFRP
UCBUT1AJVE9QIFRPUCBUT1AgVE9QIFRPUAlUT1AgVE9QIFRPUCBUT1AgVE9QCi0xCTAuMTEwMAk0
MAotMgkwLjExNTUJMzkKLTMJMC4yMjAwCTM4Ci00CTAuMjI1NQkzNwotNQkwLjMzMDAJMzYKLTYJ
MC4zMzU1CTM1Ci03CTAuNDQwMAkzNAotOAkwLjQ0NTUJMzMKLTkJMC41NTAwCTMyCi0xMAkwLjU1
NTUJMzEKLTExCTAuNjYwMAkzMAotMTIJMC42NjU1CTI5Ci0xMwkwLjc3MDAJMjgKLTE0CTAuNzc1
NQkyNwotMTUJMC44ODAwCTI2Ci0xNgkwLjg4NTUJMjUKLTE3CTAuOTkwMAkyNAotMTgJMC45OTU1
CTIzCi0xOQkwLjk5OTkJMjIKLTIwCTEuMDAwMAkyMQotMjEJMS4wMDAwCTIwCi0yMgkwLjk5OTkJ
MTkKLTIzCTAuOTk1NQkxOAotMjQJMC45OTAwCTE3Ci0yNQkwLjg4NTUJMTYKLTI2CTAuODgwMAkx
NQotMjcJMC43NzU1CTE0Ci0yOAkwLjc3MDAJMTMKLTI5CTAuNjY1NQkxMgotMzAJMC42NjAwCTEx
Ci0zMQkwLjU1NTUJMTAKLTMyCTAuNTUwMAk5Ci0zMwkwLjQ0NTUJOAotMzQJMC40NDAwCTcKLTM1
CTAuMzM1NQk2Ci0zNgkwLjMzMDAJNQotMzcJMC4yMjU1CTQKLTM4CTAuMjIwMAkzCi0zOQkwLjEx
NTUJMgotNDAJMC4xMTAwCTEKLUVORCBFTkQgRU5EIEVORCBFTkQJRU5EIEVORCBFTkQgRU5EIEVO
RAlFTkQgRU5EIEVORCBFTkQgRU5ECiBUZXN0cyB0aGF0IGEgc2Nyb2xsYWJsZSBkaXYgZG9lc24n
dCBwYXNzIHdoZWVsIGV2ZW50cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5nIGF0IGJvdHRv
bQogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAorUEFTUyBQYWdlIGRpZCBub3QgcmVj
ZWl2ZSB3aGVlbCBldmVudHMuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRF
U1QgQ09NUExFVEUKLVBBU1MgUGFnZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLgorUHV0
IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcworU2Nyb2xsYWJsZSBSZWdpb24KIAorU2Ny
b2xsZWQgY29udGVudHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xh
dGNoaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1kaXYuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1kaXYuaHRtbAppbmRleCA2MTllMDkw
ZDFhNTFjYmNkYWY3MTU3ZDk3OWJmMmU4Mjc2M2Q4OTA2Li4wYTBhY2EwNjkwYzgyMjZhNThjYjgy
ZjNkOGJjMzI3ZDU5NmNmY2IzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9sYXRjaGluZy9zY3JvbGwtZGl2LWxhdGNoZWQtZGl2Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWRpdi1sYXRjaGVkLWRpdi5odG1sCkBAIC02
LDE1NSArNiw5NiBAQAogICAgIHdpZHRoOiA2ODBweDsKIH0KIAotLnRhYmxlIHRkLCAudGFibGUg
dGggewotICAgIHBhZGRpbmc6IDJweDsKKy5jb250ZW50cyB7CisgICAgaGVpZ2h0OiAxMDM2cHg7
CisgICAgd2lkdGg6IDEwMCU7CisgICAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVh
ci1ncmFkaWVudChzaWx2ZXIsIHdoaXRlIDIwMHB4KTsKIH0KLQotLnRhYmxlIHRoIHsKLSAgICBo
ZWlnaHQ6IDIwcHg7Ci0gICAgdGV4dC1hbGlnbjogbGVmdDsKLSAgICBmb250LXdlaWdodDogc3Ry
b25nOwotfQotCi0udGFibGUgdHI6bnRoLWNoaWxkKG9kZCkgewotICAgIGJhY2tncm91bmQ6ICNm
M2YzZjM7Ci19Ci0KLS5zY3JvbGxhYmxlX3NlbGVjdCBvcHRpb246bnRoLWNoaWxkKG9kZCkgewot
ICAgIGJhY2tncm91bmQ6ICNmM2YzZjM7Ci19Ci0KIDwvc3R5bGU+CiA8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1mdW5j
dGlvbiBvbkxvYWQoKSB7Ci0gICAgc2V0dXBUb3BMZXZlbCgpOwotfQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyI+Ci08c2NyaXB0PgorICAgIGpzVGVzdElzQXN5
bmMgPSB0cnVlOwogCi12YXIgZGl2VGFyZ2V0OwotdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9y
ZTsKLXZhciBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZTsKLXZhciBjb250aW51ZUNvdW50ID0gNTsK
KyAgICB2YXIgZGl2VGFyZ2V0OworICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7Cisg
ICAgdmFyIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlOwogCi1mdW5jdGlvbiBjaGVja0ZvclNjcm9s
bCgpCi17Ci0gICAgLy8gVGhlIGRpdiBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgot
ICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wOwotICAgIHZhciBkaXZTY3JvbGxQb3NpdGlvbkFmdGVyID0gZGl2VGFyZ2V0
LnNjcm9sbFRvcDsKKyAgICBmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpCisgICAgeworICAgICAg
ICAvLyBUaGUgZGl2IHNob3VsZCBub3QgaGF2ZSBzY3JvbGxlZCBhdCBhbGwuCisgICAgICAgIHZh
ciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Ny
b2xsVG9wOworICAgICAgICB2YXIgZGl2U2Nyb2xsUG9zaXRpb25BZnRlciA9IGRpdlRhcmdldC5z
Y3JvbGxUb3A7CiAKLSAgICBpZiAocGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IHBhZ2VTY3Jv
bGxQb3NpdGlvbkFmdGVyKQotICAgICAgICB0ZXN0RmFpbGVkKCJQYWdlIHJlY2VpdmVkIHdoZWVs
IGV2ZW50cy4iKTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RQYXNzZWQoIlBhZ2UgZGlkIG5vdCBy
ZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsKKyAgICAgICAgaWYgKHBhZ2VTY3JvbGxQb3NpdGlvbkJl
Zm9yZSAhPSBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
IlBhZ2UgcmVjZWl2ZWQgd2hlZWwgZXZlbnRzLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICB0ZXN0UGFzc2VkKCJQYWdlIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7CiAKLSAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0KLQotZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCi17
Ci0gICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxUb3A7Ci0KLSAgICBkaXZUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGFyZ2V0Jyk7Ci0gICAgZGl2VGFyZ2V0LnNjcm9sbFRvcCA9IGRpdlRhcmdldC5zY3JvbGxIZWln
aHQgLSBkaXZUYXJnZXQuY2xpZW50SGVpZ2h0IC0gMTAwOwotCi0gICAgZGl2U2Nyb2xsUG9zaXRp
b25CZWZvcmUgPSBkaXZUYXJnZXQuc2Nyb2xsVG9wOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICB9CiAKLSAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2UgdW50aWwgd2UgcmVhY2ggdGhlICN0
YXJnZXQuCi0gICAgdmFyIHN0YXJ0UG9zWCA9IE1hdGgucm91bmQoZGl2VGFyZ2V0Lm9mZnNldExl
ZnQpICsgMjA7Ci0gICAgdmFyIHN0YXJ0UG9zWSA9IE1hdGgucm91bmQoZGl2VGFyZ2V0Lm9mZnNl
dFRvcCkgKyAxMDA7IC8vIE9uZSB3aGVlbCB0dXJuIGJlZm9yZSBlbmQuCi0gICAgZXZlbnRTZW5k
ZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOwotICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25v
bmUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUn
KTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJyk7Ci0gICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0x
LCAnbm9uZScsICdjb250aW51ZScpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnKTsKLSAgICBzZXRUaW1l
b3V0KGNoZWNrRm9yU2Nyb2xsLCAxMDApOwotfQorICAgIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKQor
ICAgIHsKKyAgICAgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZG9jdW1lbnQuc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3A7CisKKyAgICAgICAgZGl2VGFyZ2V0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworICAgICAgICBkaXZUYXJnZXQuc2Nyb2xsVG9wID0gZGl2
VGFyZ2V0LnNjcm9sbEhlaWdodCAtIGRpdlRhcmdldC5jbGllbnRIZWlnaHQgLSAxMDA7CisKKyAg
ICAgICAgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkaXZUYXJnZXQuc2Nyb2xsVG9wOworCisg
ICAgICAgIC8vIFNjcm9sbCB0aGUgI3NvdXJjZSB1bnRpbCB3ZSByZWFjaCB0aGUgI3RhcmdldC4K
KyAgICAgICAgdmFyIHN0YXJ0UG9zWCA9IE1hdGgucm91bmQoZGl2VGFyZ2V0Lm9mZnNldExlZnQp
ICsgMjA7CisgICAgICAgIHZhciBzdGFydFBvc1kgPSBNYXRoLnJvdW5kKGRpdlRhcmdldC5vZmZz
ZXRUb3ApICsgMTAwOyAvLyBPbmUgd2hlZWwgdHVybiBiZWZvcmUgZW5kLgorCisgICAgICAgIGV2
ZW50U2VuZGVyLm1vbml0b3JXaGVlbEV2ZW50cygpOworICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUn
KTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAn
bm9uZScpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnKTsKKyAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdi
ZWdpbicpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7CisgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScs
ICdlbmQnKTsKKyAgICAgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVz
KGNoZWNrRm9yU2Nyb2xsKTsKKyAgICB9CiAKLWZ1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKQotewot
ICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIGZ1bmN0aW9u
IHNldHVwVG9wTGV2ZWwoKQorICAgIHsKKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
YSBzY3JvbGxhYmxlIGRpdiBkb2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRvIG1haW4gZnJhbWUg
d2hlbiBzY3JvbGxpbmcgYXQgYm90dG9tIik7CisgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5k
ZXIpIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMCk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KIAotICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDEw
MDApOwotICAgIH0gZWxzZSB7CiAgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7CiAgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxw
PlRoaXMgdGVzdCBpcyBiZXR0ZXIgcnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxs
eSB0ZXN0IGl0LCBwbGFjZSB0aGUgbW91c2UgcG9pbnRlcjxici8+IgotICAgICAgICAgICAgKyAi
YXQgdGhlIHRvcCBvZiB0aGUgcGFnZSwgYW5kIHRoZW4gdXNlIHRoZSBtb3VzZSB3aGVlbCBvciBh
IHR3by1maW5nZXIgc3dpcGUgdG8gc2Nyb2xsIHRoZTxici8+IgotICAgICAgICAgICAgKyAiZG93
biBwYXN0IHRoZSBkaXYuPGJyLz48YnIvPiIKLSAgICAgICAgICAgICsgIllvdSBzaG91bGQgbm90
IHNlZSB0aGUgcm93IG9mIEVORCBsYWJlbHMgaWYgdGhpcyB0ZXN0IGlzIHN1Y2Nlc3NmdWwuPC9w
PiI7CisgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRvIG1hbnVhbGx5IHJ1biB0aGlz
IHRlc3QsIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVyICIKKyAgICAgICAgICAgICsgImF0IHRoZSB0
b3Agb2YgdGhlIHBhZ2UsIGFuZCB0aGVuIHVzZSB0aGUgbW91c2Ugd2hlZWwgb3IgYSB0d28tZmlu
Z2VyIHN3aXBlIHRvIHNjcm9sbCB0aGUgIgorICAgICAgICAgICAgKyAiZG93biBwYXN0IHRoZSBk
aXYuPHA+IgorICAgICAgICAgICAgKyAiPHA+WW91IHNob3VsZCBub3Qgc2VlIHRoZSByb3cgb2Yg
RU5EIGxhYmVscyBpZiB0aGlzIHRlc3QgaXMgc3VjY2Vzc2Z1bC48L3A+IjsKICAgICAgICAgbWVz
c2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKICAgICB9Ci19CiAKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+
IHsKKyAgICAgICAgc2V0dXBUb3BMZXZlbCgpOworICAgIH0sIGZhbHNlKTsKIDwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+CiA8ZGl2IGlkPSJwYXJlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweDsg
d2lkdGg6IDIwMDBweDsiPgogICAgIDxkaXYgaWQ9InNvdXJjZSIgc3R5bGU9ImhlaWdodDogMTAw
cHg7IHdpZHRoOiA1MDBweDsiPgogICAgICAgICBQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93
bndhcmRzCiAgICAgPC9kaXY+CiAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZV9yZWdpb24iPgog
ICAgICAgICA8aDM+U2Nyb2xsYWJsZSBSZWdpb248L2gzPgotICAgICAgICA8ZGl2IGlkPSJ0YXJn
ZXQiIHN0eWxlPSdvdmVyZmxvdy15OiBhdXRvOyBvdmVyZmxvdy14OiBoaWRkZW47IG1heC1oZWln
aHQ6IDM1MHB4Oyc+Ci0gICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIiBzdHlsZT0nd2lk
dGg6IDk5JSc+Ci0gICAgICAgICAgICAgICAgPHRyPjx0aD5Db3VudDwvdGg+PHRoPkRBVEE8L3Ro
Pjx0aD5SZXYgQ291bnQ8L3RoPjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD5UT1AgVE9Q
IFRPUCBUT1AgVE9QPC90ZD48dGQ+VE9QIFRPUCBUT1AgVE9QIFRPUDwvdGQ+PHRkPlRPUCBUT1Ag
VE9QIFRPUCBUT1A8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD4xPC90ZD48dGQ+
MC4xMTAwPC90ZD48dGQ+NDA8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD4yPC90
ZD48dGQ+MC4xMTU1PC90ZD48dGQ+Mzk8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0
ZD4zPC90ZD48dGQ+MC4yMjAwPC90ZD48dGQ+Mzg8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAg
PHRyPjx0ZD40PC90ZD48dGQ+MC4yMjU1PC90ZD48dGQ+Mzc8L3RkPjwvdHI+Ci0gICAgICAgICAg
ICAgICAgPHRyPjx0ZD41PC90ZD48dGQ+MC4zMzAwPC90ZD48dGQ+MzY8L3RkPjwvdHI+Ci0gICAg
ICAgICAgICAgICAgPHRyPjx0ZD42PC90ZD48dGQ+MC4zMzU1PC90ZD48dGQ+MzU8L3RkPjwvdHI+
Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD43PC90ZD48dGQ+MC40NDAwPC90ZD48dGQ+MzQ8L3Rk
PjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD44PC90ZD48dGQ+MC40NDU1PC90ZD48dGQ+
MzM8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD45PC90ZD48dGQ+MC41NTAwPC90
ZD48dGQ+MzI8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD4xMDwvdGQ+PHRkPjAu
NTU1NTwvdGQ+PHRkPjMxPC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+MTE8L3Rk
Pjx0ZD4wLjY2MDA8L3RkPjx0ZD4zMDwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRk
PjEyPC90ZD48dGQ+MC42NjU1PC90ZD48dGQ+Mjk8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAg
PHRyPjx0ZD4xMzwvdGQ+PHRkPjAuNzcwMDwvdGQ+PHRkPjI4PC90ZD48L3RyPgotICAgICAgICAg
ICAgICAgIDx0cj48dGQ+MTQ8L3RkPjx0ZD4wLjc3NTU8L3RkPjx0ZD4yNzwvdGQ+PC90cj4KLSAg
ICAgICAgICAgICAgICA8dHI+PHRkPjE1PC90ZD48dGQ+MC44ODAwPC90ZD48dGQ+MjY8L3RkPjwv
dHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD4xNjwvdGQ+PHRkPjAuODg1NTwvdGQ+PHRkPjI1
PC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+MTc8L3RkPjx0ZD4wLjk5MDA8L3Rk
Pjx0ZD4yNDwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPjE4PC90ZD48dGQ+MC45
OTU1PC90ZD48dGQ+MjM8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD4xOTwvdGQ+
PHRkPjAuOTk5OTwvdGQ+PHRkPjIyPC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+
MjA8L3RkPjx0ZD4xLjAwMDA8L3RkPjx0ZD4yMTwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8
dHI+PHRkPjIxPC90ZD48dGQ+MS4wMDAwPC90ZD48dGQ+MjA8L3RkPjwvdHI+Ci0gICAgICAgICAg
ICAgICAgPHRyPjx0ZD4yMjwvdGQ+PHRkPjAuOTk5OTwvdGQ+PHRkPjE5PC90ZD48L3RyPgotICAg
ICAgICAgICAgICAgIDx0cj48dGQ+MjM8L3RkPjx0ZD4wLjk5NTU8L3RkPjx0ZD4xODwvdGQ+PC90
cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPjI0PC90ZD48dGQ+MC45OTAwPC90ZD48dGQ+MTc8
L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD4yNTwvdGQ+PHRkPjAuODg1NTwvdGQ+
PHRkPjE2PC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+MjY8L3RkPjx0ZD4wLjg4
MDA8L3RkPjx0ZD4xNTwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPjI3PC90ZD48
dGQ+MC43NzU1PC90ZD48dGQ+MTQ8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD4y
ODwvdGQ+PHRkPjAuNzcwMDwvdGQ+PHRkPjEzPC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0
cj48dGQ+Mjk8L3RkPjx0ZD4wLjY2NTU8L3RkPjx0ZD4xMjwvdGQ+PC90cj4KLSAgICAgICAgICAg
ICAgICA8dHI+PHRkPjMwPC90ZD48dGQ+MC42NjAwPC90ZD48dGQ+MTE8L3RkPjwvdHI+Ci0gICAg
ICAgICAgICAgICAgPHRyPjx0ZD4zMTwvdGQ+PHRkPjAuNTU1NTwvdGQ+PHRkPjEwPC90ZD48L3Ry
PgotICAgICAgICAgICAgICAgIDx0cj48dGQ+MzI8L3RkPjx0ZD4wLjU1MDA8L3RkPjx0ZD45PC90
ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+MzM8L3RkPjx0ZD4wLjQ0NTU8L3RkPjx0
ZD44PC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+MzQ8L3RkPjx0ZD4wLjQ0MDA8
L3RkPjx0ZD43PC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+MzU8L3RkPjx0ZD4w
LjMzNTU8L3RkPjx0ZD42PC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+MzY8L3Rk
Pjx0ZD4wLjMzMDA8L3RkPjx0ZD41PC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+
Mzc8L3RkPjx0ZD4wLjIyNTU8L3RkPjx0ZD40PC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0
cj48dGQ+Mzg8L3RkPjx0ZD4wLjIyMDA8L3RkPjx0ZD4zPC90ZD48L3RyPgotICAgICAgICAgICAg
ICAgIDx0cj48dGQ+Mzk8L3RkPjx0ZD4wLjExNTU8L3RkPjx0ZD4yPC90ZD48L3RyPgotICAgICAg
ICAgICAgICAgIDx0cj48dGQ+NDA8L3RkPjx0ZD4wLjExMDA8L3RkPjx0ZD4xPC90ZD48L3RyPgot
ICAgICAgICAgICAgICAgIDx0cj48dGQ+RU5EIEVORCBFTkQgRU5EIEVORDwvdGQ+PHRkPkVORCBF
TkQgRU5EIEVORCBFTkQ8L3RkPjx0ZD5FTkQgRU5EIEVORCBFTkQgRU5EPC90ZD48L3RyPgotICAg
ICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPGRpdiBpZD0idGFyZ2V0IiBzdHlsZT0ib3ZlcmZs
b3cteTogYXV0bzsgb3ZlcmZsb3cteDogaGlkZGVuOyBtYXgtaGVpZ2h0OiAzNTBweDsiPgorICAg
ICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudHMiPgorICAgICAgICAgICAgICAgIFNjcm9sbGVk
IGNvbnRlbnRzCisgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgPC9kaXY+CiAgICAgPC9kaXY+
CiA8L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9u
KCJUZXN0cyB0aGF0IGEgc2Nyb2xsYWJsZSBkaXYgZG9lc24ndCBwYXNzIHdoZWVsIGV2ZW50cyB0
byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5nIGF0IGJvdHRvbSIpOwotPC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8
L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9s
YXRjaGluZy9zY3JvbGwtZGl2LWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1tYWluZnJh
bWUtZXhwZWN0ZWQudHh0CmluZGV4IDY4OWEwYzVkMWQzZWVmZmNiNWViMGFkMDk4NGU3YmQ1ZDJj
ZjM3OGEuLmZmOTJmMmY3YzgzNWE4NDUxNDcxOGJmZDA2OGI4ZDQ4NmEyMjNjYTYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1kaXYtbGF0Y2hl
ZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2xhdGNoaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0x
LDU3ICsxLDE1IEBACiBQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCiBTY3JvbGxh
YmxlIFJlZ2lvbgogCi1Db3VudAlEQVRBCVJldiBDb3VudAotVE9QIFRPUCBUT1AgVE9QIFRPUAlU
T1AgVE9QIFRPUCBUT1AgVE9QCVRPUCBUT1AgVE9QIFRPUCBUT1AKLTEJMC4xMTAwCTQwCi0yCTAu
MTE1NQkzOQotMwkwLjIyMDAJMzgKLTQJMC4yMjU1CTM3Ci01CTAuMzMwMAkzNgotNgkwLjMzNTUJ
MzUKLTcJMC40NDAwCTM0Ci04CTAuNDQ1NQkzMwotOQkwLjU1MDAJMzIKLTEwCTAuNTU1NQkzMQot
MTEJMC42NjAwCTMwCi0xMgkwLjY2NTUJMjkKLTEzCTAuNzcwMAkyOAotMTQJMC43NzU1CTI3Ci0x
NQkwLjg4MDAJMjYKLTE2CTAuODg1NQkyNQotMTcJMC45OTAwCTI0Ci0xOAkwLjk5NTUJMjMKLTE5
CTAuOTk5OQkyMgotMjAJMS4wMDAwCTIxCi0yMQkxLjAwMDAJMjAKLTIyCTAuOTk5OQkxOQotMjMJ
MC45OTU1CTE4Ci0yNAkwLjk5MDAJMTcKLTI1CTAuODg1NQkxNgotMjYJMC44ODAwCTE1Ci0yNwkw
Ljc3NTUJMTQKLTI4CTAuNzcwMAkxMwotMjkJMC42NjU1CTEyCi0zMAkwLjY2MDAJMTEKLTMxCTAu
NTU1NQkxMAotMzIJMC41NTAwCTkKLTMzCTAuNDQ1NQk4Ci0zNAkwLjQ0MDAJNwotMzUJMC4zMzU1
CTYKLTM2CTAuMzMwMAk1Ci0zNwkwLjIyNTUJNAotMzgJMC4yMjAwCTMKLTM5CTAuMTE1NQkyCi00
MAkwLjExMDAJMQotRU5EIEVORCBFTkQgRU5EIEVORAlFTkQgRU5EIEVORCBFTkQgRU5ECUVORCBF
TkQgRU5EIEVORCBFTkQKK1Njcm9sbGVkIGNvbnRlbnRzCiBUZXN0cyB0aGF0IGEgc2Nyb2xsYWJs
ZSBkaXYgZG9lc24ndCBjb25zdW1lIHdoZWVsIGV2ZW50cyB3aGVuIHNjcm9sbCBpcyBsYXRjaGVk
IHRvIG1haW4gZnJhbWUuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCitNb3VzZSBt
b3ZlZCB0byAoMjgsIDEyNSkKK1BBU1MgU2Nyb2xsYWJsZSBkaXYgZGlkIG5vdCByZWNlaXZlIHdo
ZWVsIGV2ZW50cy4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01Q
TEVURQotTW91c2UgbW92ZWQgdG8gKDI4LCAxMjUpCi1QQVNTIFNjcm9sbGFibGUgZGl2IGRpZCBu
b3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1kaXYtbGF0Y2hlZC1tYWlu
ZnJhbWUuaHRtbAppbmRleCA0MGMxYWYzMTZhODQyZjczNzE4MzAyMTMyZTQ2NWIxMDc4NTg1NDNj
Li5hYmMyNzg0ZmNlNGJjY2JiZGFjZmUzNGQ2ZWI5ZjUzNTc5MzBlMzg1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtZGl2LWxhdGNoZWQtbWFp
bmZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Ny
b2xsLWRpdi1sYXRjaGVkLW1haW5mcmFtZS5odG1sCkBAIC02LDk4ICs2LDgzIEBACiAgICAgd2lk
dGg6IDY4MHB4OwogfQogCi0udGFibGUgdGQsIC50YWJsZSB0aCB7Ci0gICAgcGFkZGluZzogMnB4
OworLmNvbnRlbnRzIHsKKyAgICBoZWlnaHQ6IDEwMzZweDsKKyAgICB3aWR0aDogMTAwJTsKKyAg
ICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHNpbHZlciwgd2hp
dGUgMjAwcHgpOwogfQotCi0udGFibGUgdGggewotICAgIGhlaWdodDogMjBweDsKLSAgICB0ZXh0
LWFsaWduOiBsZWZ0OwotICAgIGZvbnQtd2VpZ2h0OiBzdHJvbmc7Ci19Ci0KLS50YWJsZSB0cjpu
dGgtY2hpbGQob2RkKSB7Ci0gICAgYmFja2dyb3VuZDogI2YzZjNmMzsKLX0KLQotLnNjcm9sbGFi
bGVfc2VsZWN0IG9wdGlvbjpudGgtY2hpbGQob2RkKSB7Ci0gICAgYmFja2dyb3VuZDogI2YzZjNm
MzsKLX0KLQogPC9zdHlsZT4KIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWZ1bmN0aW9uIG9uTG9hZCgpIHsKLSAgICBz
ZXR1cFRvcExldmVsKCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ib25M
b2FkKCk7Ij4KLTxzY3JpcHQ+Ci0KLXZhciBkaXZUYXJnZXQ7Ci12YXIgcGFnZVNjcm9sbFBvc2l0
aW9uQmVmb3JlOwotdmFyIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlOwotdmFyIGNvbnRpbnVlQ291
bnQgPSA1OwotCi1mdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKKyAgICBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKIAotICAgIC8vIFRoZSBkaXYgc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFs
bC4KLSAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5zY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcDsKLSAgICB2YXIgZGl2U2Nyb2xsUG9zaXRpb25BZnRlciA9IGRpdlRh
cmdldC5zY3JvbGxUb3A7CisgICAgdmFyIGRpdlRhcmdldDsKKyAgICB2YXIgcGFnZVNjcm9sbFBv
c2l0aW9uQmVmb3JlOworICAgIHZhciBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZTsKIAotICAgIC8v
ZGVidWcoIlBhZ2UgYmVmb3JlOiAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICsgIiwgZGl2
IGJlZm9yZTogIiArIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlKTsKLSAgICAvL2RlYnVnKCJQYWdl
IGFmdGVyOiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyICsgIiwgZGl2IGFmdGVyOiAiICsg
ZGl2U2Nyb2xsUG9zaXRpb25BZnRlcik7CisgICAgZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKQor
ICAgIHsKKyAgICAgICAgLy8gVGhlIGRpdiBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxs
LgorICAgICAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5zY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcDsKKyAgICAgICAgdmFyIGRpdlNjcm9sbFBvc2l0aW9uQWZ0ZXIg
PSBkaXZUYXJnZXQuc2Nyb2xsVG9wOwogCi0gICAgaWYgKGRpdlNjcm9sbFBvc2l0aW9uQmVmb3Jl
ICE9IGRpdlNjcm9sbFBvc2l0aW9uQWZ0ZXIpCi0gICAgICAgIHRlc3RGYWlsZWQoIlNjcm9sbGFi
bGUgZGl2IGNvbnN1bWVkIHdoZWVsIGV2ZW50cy4iKTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RQ
YXNzZWQoIlNjcm9sbGFibGUgZGl2IGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuIik7Cisg
ICAgICAgIGlmIChkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBkaXZTY3JvbGxQb3NpdGlvbkFm
dGVyKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiU2Nyb2xsYWJsZSBkaXYgY29uc3VtZWQgd2hl
ZWwgZXZlbnRzLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTY3Jv
bGxhYmxlIGRpdiBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLiIpOwogCi0gICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7Ci19Ci0KLWZ1bmN0aW9uIHNjcm9sbFRlc3QoKSB7Ci0gICAgLy8g
U2VlIHdoZXJlIG91ciBJRnJhbWUgbGl2ZXM6Ci0gICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3Jl
ID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7Ci0KLSAgICBkaXZUYXJnZXQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7Ci0KLSAgICBkaXZTY3JvbGxQb3Np
dGlvbkJlZm9yZSA9IGRpdlRhcmdldC5zY3JvbGxUb3A7Ci0KLSAgICAvLyBTY3JvbGwgdGhlICNz
b3VyY2UgdW50aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQuCi0gICAgdmFyIHN0YXJ0UG9zWCA9IE1h
dGgucm91bmQoZGl2VGFyZ2V0Lm9mZnNldExlZnQpICsgMjA7Ci0gICAgdmFyIHN0YXJ0UG9zWSA9
IE1hdGgucm91bmQoZGl2VGFyZ2V0Lm9mZnNldFRvcCkgLSA0MjsgLy8gU2xpZ2h0bHkgbW9yZSB0
aGFuIG9uZSB3aGVlbCBzY3JvbGwgYXdheSBmcm9tIHRoZSBJRnJhbWUKLSAgICBldmVudFNlbmRl
ci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUg
anVzdCBvdXRzaWRlIHRoZSBpRnJhbWUKLSAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBz
dGFydFBvc1ggKyAiLCAiICsgc3RhcnRQb3NZICsgIikiKTsKLSAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25l
Jyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7
Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIDAsICdlbmRlZCcsICdub25lJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicpOwotICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J25vbmUnLCAnY29udGludWUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJyk7Ci0gICAgc2V0VGltZW91
dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKLX0KKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAg
fQogCi1mdW5jdGlvbiBzZXR1cFRvcExldmVsKCkgeworICAgIGZ1bmN0aW9uIHNjcm9sbFRlc3Qo
KQorICAgIHsKKyAgICAgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZG9jdW1lbnQuc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7CisKKyAgICAgICAgZGl2VGFyZ2V0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworCisgICAgICAgIGRpdlNjcm9sbFBvc2l0aW9uQmVm
b3JlID0gZGl2VGFyZ2V0LnNjcm9sbFRvcDsKKworICAgICAgICAvLyBTY3JvbGwgdGhlICNzb3Vy
Y2UgdW50aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQuCisgICAgICAgIHZhciBzdGFydFBvc1ggPSBN
YXRoLnJvdW5kKGRpdlRhcmdldC5vZmZzZXRMZWZ0KSArIDIwOworICAgICAgICB2YXIgc3RhcnRQ
b3NZID0gTWF0aC5yb3VuZChkaXZUYXJnZXQub2Zmc2V0VG9wKSAtIDQyOyAvLyBTbGlnaHRseSBt
b3JlIHRoYW4gb25lIHdoZWVsIHNjcm9sbCBhd2F5IGZyb20gdGhlIGlmcmFtZQorCisgICAgICAg
IGV2ZW50U2VuZGVyLm1vbml0b3JXaGVlbEV2ZW50cygpOworICAgICAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVz
dCBvdXRzaWRlIHRoZSBpZnJhbWUKKyAgICAgICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsg
c3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7CisgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywg
J25vbmUnKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5n
ZWQnLCAnbm9uZScpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnKTsKKyAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9u
ZScsICdiZWdpbicpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7CisgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAn
bm9uZScsICdlbmQnKTsKKyAgICAgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29t
cGxldGVzKGNoZWNrRm9yU2Nyb2xsKTsKKyAgICB9CiAKLSAgICBpZiAod2luZG93LmV2ZW50U2Vu
ZGVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIGZ1bmN0aW9u
IHNldHVwVG9wTGV2ZWwoKQorICAgIHsKKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
YSBzY3JvbGxhYmxlIGRpdiBkb2Vzbid0IGNvbnN1bWUgd2hlZWwgZXZlbnRzIHdoZW4gc2Nyb2xs
IGlzIGxhdGNoZWQgdG8gbWFpbiBmcmFtZS4iKTsKKyAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNl
bmRlcikgeworICAgICAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAwKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQogCi0gICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwg
MTAwMCk7Ci0gICAgfSBlbHNlIHsKICAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKICAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgbWVzc2FnZS5pbm5lckhUTUwgPSAi
PHA+VGhpcyB0ZXN0IGlzIGJldHRlciBydW4gdW5kZXIgRHVtcFJlbmRlclRyZWUuIFRvIG1hbnVh
bGx5IHRlc3QgaXQsIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVyPGJyLz4iCi0gICAgICAgICAgICAr
ICJhdCB0aGUgdG9wIG9mIHRoZSBwYWdlLCBhbmQgdGhlbiB1c2UgdGhlIG1vdXNlIHdoZWVsIG9y
IGEgdHdvLWZpbmdlciBzd2lwZSB0byBzY3JvbGwgdGhlPGJyLz4iCi0gICAgICAgICAgICArICJk
b3duIHBhc3QgdGhlIGRpdi48YnIvPjxici8+IgotICAgICAgICAgICAgKyAiWW91IHNob3VsZCBu
b3Qgc2VlIHRoZSByb3cgb2YgRU5EIGxhYmVscyBpZiB0aGlzIHRlc3QgaXMgc3VjY2Vzc2Z1bC48
L3A+IjsKKyAgICAgICAgbWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+VG8gbWFudWFsbHkgcnVuIHRo
aXMgdGVzdCwgcGxhY2UgdGhlIG1vdXNlIHBvaW50ZXIgIgorICAgICAgICAgICAgKyAiYXQgdGhl
IHRvcCBvZiB0aGUgcGFnZSwgYW5kIHRoZW4gdXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1m
aW5nZXIgc3dpcGUgdG8gc2Nyb2xsIHRoZSAiCisgICAgICAgICAgICArICJkb3duIHBhc3QgdGhl
IGRpdi48cD4iCisgICAgICAgICAgICArICI8cD5UaGUgc2Nyb2xsYWJsZSBkaXYgc2hvdWxkIG5v
dCBzY3JvbGwuPC9wPiI7CiAgICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZChtZXNz
YWdlKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfQotfQogCisgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB7CisgICAgICAgIHNldHVwVG9wTGV2ZWwoKTsK
KyAgICB9LCBmYWxzZSk7CiA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgogPGRpdiBpZD0icGFy
ZW50IiBzdHlsZT0iaGVpZ2h0OiAyMDAwcHg7IHdpZHRoOiAyMDAwcHg7Ij4KICAgICA8ZGl2IGlk
PSJzb3VyY2UiIHN0eWxlPSJoZWlnaHQ6IDEwMHB4OyB3aWR0aDogNTAwcHg7Ij4KICAgICAgICAg
UHV0IG1vdXNlIGhlcmUgYW5kIGZsaWNrIGRvd253YXJkcwpAQCAtMTA1LDU4ICs5MCwxMyBAQCBm
dW5jdGlvbiBzZXR1cFRvcExldmVsKCkgewogICAgIDxkaXYgY2xhc3M9InNjcm9sbGFibGVfcmVn
aW9uIj4KICAgICAgICAgPGgzPlNjcm9sbGFibGUgUmVnaW9uPC9oMz4KICAgICAgICAgPGRpdiBp
ZD0idGFyZ2V0IiBzdHlsZT0nb3ZlcmZsb3cteTogYXV0bzsgb3ZlcmZsb3cteDogaGlkZGVuOyBt
YXgtaGVpZ2h0OiA0ODVweDsnPgotICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSIgc3R5
bGU9J3dpZHRoOiA5OSUnPgotICAgICAgICAgICAgICAgIDx0cj48dGg+Q291bnQ8L3RoPjx0aD5E
QVRBPC90aD48dGg+UmV2IENvdW50PC90aD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+
VE9QIFRPUCBUT1AgVE9QIFRPUDwvdGQ+PHRkPlRPUCBUT1AgVE9QIFRPUCBUT1A8L3RkPjx0ZD5U
T1AgVE9QIFRPUCBUT1AgVE9QPC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+MTwv
dGQ+PHRkPjAuMTEwMDwvdGQ+PHRkPjQwPC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48
dGQ+MjwvdGQ+PHRkPjAuMTE1NTwvdGQ+PHRkPjM5PC90ZD48L3RyPgotICAgICAgICAgICAgICAg
IDx0cj48dGQ+MzwvdGQ+PHRkPjAuMjIwMDwvdGQ+PHRkPjM4PC90ZD48L3RyPgotICAgICAgICAg
ICAgICAgIDx0cj48dGQ+NDwvdGQ+PHRkPjAuMjI1NTwvdGQ+PHRkPjM3PC90ZD48L3RyPgotICAg
ICAgICAgICAgICAgIDx0cj48dGQ+NTwvdGQ+PHRkPjAuMzMwMDwvdGQ+PHRkPjM2PC90ZD48L3Ry
PgotICAgICAgICAgICAgICAgIDx0cj48dGQ+NjwvdGQ+PHRkPjAuMzM1NTwvdGQ+PHRkPjM1PC90
ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+NzwvdGQ+PHRkPjAuNDQwMDwvdGQ+PHRk
PjM0PC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+ODwvdGQ+PHRkPjAuNDQ1NTwv
dGQ+PHRkPjMzPC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+OTwvdGQ+PHRkPjAu
NTUwMDwvdGQ+PHRkPjMyPC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+MTA8L3Rk
Pjx0ZD4wLjU1NTU8L3RkPjx0ZD4zMTwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRk
PjExPC90ZD48dGQ+MC42NjAwPC90ZD48dGQ+MzA8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAg
PHRyPjx0ZD4xMjwvdGQ+PHRkPjAuNjY1NTwvdGQ+PHRkPjI5PC90ZD48L3RyPgotICAgICAgICAg
ICAgICAgIDx0cj48dGQ+MTM8L3RkPjx0ZD4wLjc3MDA8L3RkPjx0ZD4yODwvdGQ+PC90cj4KLSAg
ICAgICAgICAgICAgICA8dHI+PHRkPjE0PC90ZD48dGQ+MC43NzU1PC90ZD48dGQ+Mjc8L3RkPjwv
dHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD4xNTwvdGQ+PHRkPjAuODgwMDwvdGQ+PHRkPjI2
PC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+MTY8L3RkPjx0ZD4wLjg4NTU8L3Rk
Pjx0ZD4yNTwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPjE3PC90ZD48dGQ+MC45
OTAwPC90ZD48dGQ+MjQ8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD4xODwvdGQ+
PHRkPjAuOTk1NTwvdGQ+PHRkPjIzPC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+
MTk8L3RkPjx0ZD4wLjk5OTk8L3RkPjx0ZD4yMjwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8
dHI+PHRkPjIwPC90ZD48dGQ+MS4wMDAwPC90ZD48dGQ+MjE8L3RkPjwvdHI+Ci0gICAgICAgICAg
ICAgICAgPHRyPjx0ZD4yMTwvdGQ+PHRkPjEuMDAwMDwvdGQ+PHRkPjIwPC90ZD48L3RyPgotICAg
ICAgICAgICAgICAgIDx0cj48dGQ+MjI8L3RkPjx0ZD4wLjk5OTk8L3RkPjx0ZD4xOTwvdGQ+PC90
cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPjIzPC90ZD48dGQ+MC45OTU1PC90ZD48dGQ+MTg8
L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD4yNDwvdGQ+PHRkPjAuOTkwMDwvdGQ+
PHRkPjE3PC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0cj48dGQ+MjU8L3RkPjx0ZD4wLjg4
NTU8L3RkPjx0ZD4xNjwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPjI2PC90ZD48
dGQ+MC44ODAwPC90ZD48dGQ+MTU8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgPHRyPjx0ZD4y
NzwvdGQ+PHRkPjAuNzc1NTwvdGQ+PHRkPjE0PC90ZD48L3RyPgotICAgICAgICAgICAgICAgIDx0
cj48dGQ+Mjg8L3RkPjx0ZD4wLjc3MDA8L3RkPjx0ZD4xMzwvdGQ+PC90cj4KLSAgICAgICAgICAg
ICAgICA8dHI+PHRkPjI5PC90ZD48dGQ+MC42NjU1PC90ZD48dGQ+MTI8L3RkPjwvdHI+Ci0gICAg
ICAgICAgICAgICAgPHRyPjx0ZD4zMDwvdGQ+PHRkPjAuNjYwMDwvdGQ+PHRkPjExPC90ZD48L3Ry
PgotICAgICAgICAgICAgICAgIDx0cj48dGQ+MzE8L3RkPjx0ZD4wLjU1NTU8L3RkPjx0ZD4xMDwv
dGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPjMyPC90ZD48dGQ+MC41NTAwPC90ZD48
dGQ+OTwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPjMzPC90ZD48dGQ+MC40NDU1
PC90ZD48dGQ+ODwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPjM0PC90ZD48dGQ+
MC40NDAwPC90ZD48dGQ+NzwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPjM1PC90
ZD48dGQ+MC4zMzU1PC90ZD48dGQ+NjwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRk
PjM2PC90ZD48dGQ+MC4zMzAwPC90ZD48dGQ+NTwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8
dHI+PHRkPjM3PC90ZD48dGQ+MC4yMjU1PC90ZD48dGQ+NDwvdGQ+PC90cj4KLSAgICAgICAgICAg
ICAgICA8dHI+PHRkPjM4PC90ZD48dGQ+MC4yMjAwPC90ZD48dGQ+MzwvdGQ+PC90cj4KLSAgICAg
ICAgICAgICAgICA8dHI+PHRkPjM5PC90ZD48dGQ+MC4xMTU1PC90ZD48dGQ+MjwvdGQ+PC90cj4K
LSAgICAgICAgICAgICAgICA8dHI+PHRkPjQwPC90ZD48dGQ+MC4xMTAwPC90ZD48dGQ+MTwvdGQ+
PC90cj4KLSAgICAgICAgICAgICAgICA8dHI+PHRkPkVORCBFTkQgRU5EIEVORCBFTkQ8L3RkPjx0
ZD5FTkQgRU5EIEVORCBFTkQgRU5EPC90ZD48dGQ+RU5EIEVORCBFTkQgRU5EIEVORDwvdGQ+PC90
cj4KLSAgICAgICAgICAgIDwvdGFibGU+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50
cyI+CisgICAgICAgICAgICAgICAgU2Nyb2xsZWQgY29udGVudHMKKyAgICAgICAgICAgIDwvZGl2
PgogICAgICAgICA8L2Rpdj4KICAgICA8L2Rpdj4KIDwvZGl2PgogPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSBzY3JvbGxhYmxlIGRp
diBkb2Vzbid0IGNvbnN1bWUgd2hlZWwgZXZlbnRzIHdoZW4gc2Nyb2xsIGlzIGxhdGNoZWQgdG8g
bWFpbiBmcmFtZS4iKTsKLTwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWRpdi1uby1sYXRj
aGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9z
Y3JvbGwtZGl2LW5vLWxhdGNoaW5nLWV4cGVjdGVkLnR4dAppbmRleCA3NzU1NmYyMGI3MjVhNDc4
NTU3MjBkODE1ZGQxN2E3YWIzNDQ3YTgxLi5lOGZmMzhjZmU2NDQ0ZTJkNzcxYjA0OWY4ZTU3NjUx
Yzc5YmM1ZDVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGlu
Zy9zY3JvbGwtZGl2LW5vLWxhdGNoaW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtZGl2LW5vLWxhdGNoaW5nLWV4cGVjdGVkLnR4
dApAQCAtNCw4ICs0LDggQEAgVGVzdHMgdGhhdCBzY3JvbGwgZXZlbnRzIG9mIHR5cGUgJ25vbmUn
IHdvcmsgcHJvcGVybHkuCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAorUEFTUyBQYWdl
IHJlY2VpdmVkIHdoZWVsIGV2ZW50cy4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
IAogVEVTVCBDT01QTEVURQotUEFTUyBQYWdlIHJlY2VpdmVkIHdoZWVsIGV2ZW50cy4KIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWRpdi1u
by1sYXRjaGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Ny
b2xsLWRpdi1uby1sYXRjaGluZy5odG1sCmluZGV4IDcyZmQ4MWU4MDZiYzlkZGVjMmRlMTBmZDE3
ODFmOWMxMjEyYTVmMDMuLmE0MTNkZjVmZGFkYTNhMDQ1MzhlZDc5MjYzOWVkMjVkOTMzM2QyNTgg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1k
aXYtbm8tbGF0Y2hpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRj
aGluZy9zY3JvbGwtZGl2LW5vLWxhdGNoaW5nLmh0bWwKQEAgLTIyLDczICsyMiw2MyBAQCBib2R5
IHsKIDwvc3R5bGU+CiA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1mdW5jdGlvbiBvbkxvYWQoKSB7Ci0gICAgc2V0dXBU
b3BMZXZlbCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9Im9uTG9hZCgp
OyI+Ci08c2NyaXB0PgorICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi12YXIgZGl2VGFyZ2V0
OwotdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZTsKLXZhciBkaXZTY3JvbGxQb3NpdGlvbkJl
Zm9yZTsKLXZhciBjb250aW51ZUNvdW50ID0gNTsKKyAgICB2YXIgZGl2VGFyZ2V0OworICAgIHZh
ciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7CisgICAgdmFyIGRpdlNjcm9sbFBvc2l0aW9uQmVm
b3JlOwogCi1mdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKLSAgICB2YXIgcGFnZVNjcm9sbFBv
c2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKLSAgICB2
YXIgZGl2U2Nyb2xsUG9zaXRpb25BZnRlciA9IGRpdlRhcmdldC5zY3JvbGxMZWZ0OworICAgIGZ1
bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkKKyAgICB7CisgICAgICAgIHZhciBwYWdlU2Nyb2xsUG9z
aXRpb25BZnRlciA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOworICAgICAg
ICB2YXIgZGl2U2Nyb2xsUG9zaXRpb25BZnRlciA9IGRpdlRhcmdldC5zY3JvbGxMZWZ0OwogCi0g
ICAgLy9kZWJ1ZygiUGFnZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgKyAi
LCBkaXYgYmVmb3JlOiAiICsgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUpOwotICAgIC8vZGVidWco
IlBhZ2UgYWZ0ZXI6ICAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgKyAiLCBkaXYgYWZ0ZXI6
ICIgKyBkaXZTY3JvbGxQb3NpdGlvbkFmdGVyKTsKLQotICAgIGlmIChwYWdlU2Nyb2xsUG9zaXRp
b25CZWZvcmUgIT0gcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpCi0gICAgICAgIHRlc3RQYXNzZWQo
IlBhZ2UgcmVjZWl2ZWQgd2hlZWwgZXZlbnRzLiIpOwotICAgIGVsc2UKLSAgICAgICAgdGVzdEZh
aWxlZCgiUGFnZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLiIpOwotCi0gICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7Ci19CisgICAgICAgIGlmIChwYWdlU2Nyb2xsUG9zaXRpb25CZWZv
cmUgIT0gcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJQ
YWdlIHJlY2VpdmVkIHdoZWVsIGV2ZW50cy4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
dGVzdEZhaWxlZCgiUGFnZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLiIpOwogCi1mdW5j
dGlvbiBzY3JvbGxUZXN0KCkgewotICAgIC8vIFNlZSB3aGVyZSBvdXIgSUZyYW1lIGxpdmVzOgot
ICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQu
c2Nyb2xsVG9wOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9CiAKLSAgICBkaXZUYXJn
ZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7CisgICAgZnVuY3Rpb24gc2Ny
b2xsVGVzdCgpCisgICAgeworICAgICAgICAvLyBTZWUgd2hlcmUgb3VyIGlmcmFtZSBsaXZlczoK
KyAgICAgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxl
bWVudC5zY3JvbGxUb3A7CiAKLSAgICBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRpdlRhcmdl
dC5zY3JvbGxMZWZ0OworICAgICAgICBkaXZUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgncGFyZW50Jyk7CiAKLSAgICB2YXIgc3RhcnRQb3NYID0gZGl2VGFyZ2V0Lm9mZnNldExlZnQg
KyAyMDsKLSAgICAvL2RlYnVnKCJkaXYgZGlzcGxheSBoZWlnaHQgPSAiICsgZGl2VGFyZ2V0LmNs
aWVudEhlaWdodCk7Ci0gICAgdmFyIHN0YXJ0UG9zWSA9IGRpdlRhcmdldC5vZmZzZXRUb3AgKyAo
ZGl2VGFyZ2V0LmNsaWVudEhlaWdodCAvIDIpOyAvLyBPbmUgd2hlZWwgdHVybiBiZWZvcmUgZW5k
LgotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8g
TWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFtZQotICAgIC8vZGVidWcoIk1v
dXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7Cisg
ICAgICAgIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZGl2VGFyZ2V0LnNjcm9sbExlZnQ7CiAK
LSAgICAvL2RlYnVnKCJQYWdlIGJlZm9yZTogIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSAr
ICIsIGRpdiBiZWZvcmU6ICIgKyBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZSk7Ci0gICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9u
ZScsICdub25lJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIDEsICdub25lJywgJ25vbmUnKTsKLSAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ25vbmUn
KTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgMSwgJ25vbmUnLCAnbm9uZScpOworICAgICAgICB2YXIgc3RhcnRQb3NYID0gZGl2VGFy
Z2V0Lm9mZnNldExlZnQgKyAyMDsKKyAgICAgICAgdmFyIHN0YXJ0UG9zWSA9IGRpdlRhcmdldC5v
ZmZzZXRUb3AgKyAoZGl2VGFyZ2V0LmNsaWVudEhlaWdodCAvIDIpOyAvLyBPbmUgd2hlZWwgdHVy
biBiZWZvcmUgZW5kLgorICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gs
IHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpRnJhbWUK
IAotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygtMSwgMCwgJ25vbmUnLCAnbm9uZScpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygtMSwgMCwgJ25vbmUnLCAnbm9uZScpOwotICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygtMSwgMCwg
J25vbmUnLCAnbm9uZScpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygtMSwgMCwgJ25vbmUnLCAnbm9uZScpOworICAgICAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25l
JywgJ25vbmUnKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIDEsICdub25lJywgJ25vbmUnKTsKKyAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScs
ICdub25lJyk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAxLCAnbm9uZScsICdub25lJyk7CiAKLSAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ25v
bmUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdub25lJywgJ25vbmUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ25vbmUnKTsKKyAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KC0xLCAwLCAnbm9uZScsICdub25lJyk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygtMSwgMCwgJ25vbmUnLCAnbm9uZScpOworICAg
ICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
LTEsIDAsICdub25lJywgJ25vbmUnKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKC0xLCAwLCAnbm9uZScsICdub25lJyk7CiAKLSAg
ICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCAxMDApOwotfQorICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywg
J25vbmUnKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdub25lJyk7CisgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAn
bm9uZScpOwogCi1mdW5jdGlvbiBzZXR1cFRvcExldmVsKCkgeworICAgICAgICBzZXRUaW1lb3V0
KGNoZWNrRm9yU2Nyb2xsLCAxMDApOworICAgIH0KIAotICAgIGlmICh3aW5kb3cuZXZlbnRTZW5k
ZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgZnVuY3Rpb24g
c2V0dXBUb3BMZXZlbCgpCisgICAgeworICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBz
Y3JvbGwgZXZlbnRzIG9mIHR5cGUgJ25vbmUnIHdvcmsgcHJvcGVybHkuIik7CisgICAgICAgIGlm
ICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVz
dCwgMCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAotICAgICAgICBzZXRUaW1l
b3V0KHNjcm9sbFRlc3QsIDEwMDApOwotICAgIH0gZWxzZSB7CiAgICAgICAgIHZhciBtZXNzYWdl
TG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7CiAgICAgICAgIHZh
ciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgIG1lc3Nh
Z2UuaW5uZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBpcyBiZXR0ZXIgcnVuIHVuZGVyIER1bXBSZW5k
ZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0LCBwbGFjZSB0aGUgbW91c2UgcG9pbnRlcjxici8+
IgpAQCAtOTYsMTAgKzg2LDE1IEBAIGZ1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7CiAgICAgICAg
ICAgICArICJtb3ZpbmcgdGhlIG1vdXNlIHdoZWVsIHRvIHNjcm9sbCBob3Jpem9udGFsbHksIHRo
ZW4gKDMpIHJlbGVhc2UgdGhlIHNoaWZ0IGtleSBhbmQgYXR0ZW1wdCB0byBzY3JvbGwgdmVydGlj
YWxseS48YnIvPjxici8+IgogICAgICAgICAgICAgKyAiVGhlIGZpbmFsIHNldCBvZiB2ZXJ0aWNh
bCBtb3ZlcyBzaG91bGQgbW9kaWZ5IHRoZSBwYXJlbnQgcGFnZSBzY3JvbGwgcG9zaXRpb24uPC9w
PiI7CiAgICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZChtZXNzYWdlKTsKKyAgICAg
ICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfQotfQogCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ2xvYWQnLCAoKSA9PiB7CisgICAgICAgIHNldHVwVG9wTGV2ZWwoKTsKKyAgICB9LCBmYWxz
ZSk7CiA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgogICAgIDxkaXYgaWQ9InBhcmVudCIgY2xh
c3M9InBvc3QiPgogICAgICAgICA8ZGl2IGlkPSJ0YXJnZXQiIGNsYXNzPSJjb250ZW50Ij4KICAg
ICAgICAgICAgIFRlc3QgcmVnaW9uLgpAQCAtMTA3LDkgKzEwMiw2IEBAIGZ1bmN0aW9uIHNldHVw
VG9wTGV2ZWwoKSB7CiAgICAgPC9kaXY+CiA8L2Rpdj4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHNjcm9sbCBldmVudHMgb2YgdHlw
ZSAnbm9uZScgd29yayBwcm9wZXJseS4iKTsKLTwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xs
LWRpdi13aXRoLW5lc3RlZC1ub25zY3JvbGxhYmxlLWlmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtZGl2LXdpdGgtbmVzdGVkLW5v
bnNjcm9sbGFibGUtaWZyYW1lLWV4cGVjdGVkLnR4dAppbmRleCA4ZDk4NTgxYTk4NmQwYWU1Y2U0
OGM1ZmVjMWU4YmMxZDIzZTYzNjMxLi5hMjQ4M2RmNWU2Yzc1ODRhYmJiODFkNTI2NGFlMTc4Zjhj
NzAyOTYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9z
Y3JvbGwtZGl2LXdpdGgtbmVzdGVkLW5vbnNjcm9sbGFibGUtaWZyYW1lLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtZGl2LXdpdGgt
bmVzdGVkLW5vbnNjcm9sbGFibGUtaWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtNSw5ICs1LDYgQEAg
VGVzdHMgdGhhdCBpZnJhbWUgZG9lcyBzY3JvbGwgd2hlbiBpbm5lciBpZnJhbWUgaXMgTk9UIHNj
cm9sbGFibGUuCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCiBQQVNTIGRpdiBkaWQgc2Nyb2xsLgog
UEFTUyBQYWdlIGRpZCBOT1Qgc2Nyb2xsLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xs
LWRpdi13aXRoLW5lc3RlZC1ub25zY3JvbGxhYmxlLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWRpdi13aXRoLW5lc3RlZC1ub25zY3JvbGxh
YmxlLWlmcmFtZS5odG1sCmluZGV4IDQ4MTA2NDkyYTBhMzFlMDA3YzE5Mzc2MmM4NzlkMjVjODk2
MDRiMDcuLjBmZDg3NjgxOTk3NzgzNzcyM2VkZGE1ZjBmNWFlOWNmMzk4ZjFiZjEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1kaXYtd2l0aC1u
ZXN0ZWQtbm9uc2Nyb2xsYWJsZS1pZnJhbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9sYXRjaGluZy9zY3JvbGwtZGl2LXdpdGgtbmVzdGVkLW5vbnNjcm9sbGFibGUtaWZy
YW1lLmh0bWwKQEAgLTEsMTE1ICsxLDEwNCBAQAogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxo
ZWFkPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2
ZWwtMy1FdmVudHMvI2V2ZW50cy1XaGVlbEV2ZW50Ij4KIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+CiA8c2Ny
aXB0PgorICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi12YXIgZGl2VGFyZ2V0OwotdmFyIHBh
Z2VTY3JvbGxQb3NpdGlvbkJlZm9yZTsKLXZhciBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZTsKLQot
ZnVuY3Rpb24gbG9jYXRpb25JbldpbmRvd0Nvb3JkaW5hdGVzKGVsZW1lbnQpCi17Ci0gICAgdmFy
IHBvc2l0aW9uID0ge307Ci0gICAgcG9zaXRpb24ueCA9IGVsZW1lbnQub2Zmc2V0TGVmdDsKLSAg
ICBwb3NpdGlvbi55ID0gZWxlbWVudC5vZmZzZXRUb3A7Ci0KLSAgICB3aGlsZSAoZWxlbWVudC5v
ZmZzZXRQYXJlbnQpIHsKLSAgICAgICAgcG9zaXRpb24ueCA9IHBvc2l0aW9uLnggKyBlbGVtZW50
Lm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0OwotICAgICAgICBwb3NpdGlvbi55ID0gcG9zaXRpb24u
eSArIGVsZW1lbnQub2Zmc2V0UGFyZW50Lm9mZnNldFRvcDsKLSAgICAgICAgaWYgKGVsZW1lbnQg
PT0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXSkKLSAgICAgICAgICAg
IGJyZWFrOworICAgIHZhciBkaXZUYXJnZXQ7CisgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkJl
Zm9yZTsKKyAgICB2YXIgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmU7CiAKLSAgICAgICAgZWxlbWVu
dCA9IGVsZW1lbnQub2Zmc2V0UGFyZW50OwotICAgIH0KLQotICAgIHJldHVybiBwb3NpdGlvbjsK
LX0KKyAgICBmdW5jdGlvbiBsb2NhdGlvbkluV2luZG93Q29vcmRpbmF0ZXMoZWxlbWVudCkKKyAg
ICB7CisgICAgICAgIHZhciBwb3NpdGlvbiA9IHt9OworICAgICAgICBwb3NpdGlvbi54ID0gZWxl
bWVudC5vZmZzZXRMZWZ0OworICAgICAgICBwb3NpdGlvbi55ID0gZWxlbWVudC5vZmZzZXRUb3A7
CiAKLWZ1bmN0aW9uIGZpbmlzaFRlc3QoKQotewotICAgIGZpbmlzaEpTVGVzdCgpOwotICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOyAgICAgICAgICAgIAotfQorICAgICAgICB3aGlsZSAoZWxl
bWVudC5vZmZzZXRQYXJlbnQpIHsKKyAgICAgICAgICAgIHBvc2l0aW9uLnggPSBwb3NpdGlvbi54
ICsgZWxlbWVudC5vZmZzZXRQYXJlbnQub2Zmc2V0TGVmdDsKKyAgICAgICAgICAgIHBvc2l0aW9u
LnkgPSBwb3NpdGlvbi55ICsgZWxlbWVudC5vZmZzZXRQYXJlbnQub2Zmc2V0VG9wOworICAgICAg
ICAgICAgaWYgKGVsZW1lbnQgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHki
KVswXSkKKyAgICAgICAgICAgICAgICBicmVhazsKIAotZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwo
KQotewotICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50LnNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wOwotICAgIHZhciBkaXZTY3JvbGxQb3NpdGlvbkFmdGVyID0gZGl2
VGFyZ2V0LnNjcm9sbFRvcDsKKyAgICAgICAgICAgIGVsZW1lbnQgPSBlbGVtZW50Lm9mZnNldFBh
cmVudDsKKyAgICAgICAgfQogCi0gICAgaWYgKGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IGRp
dlNjcm9sbFBvc2l0aW9uQWZ0ZXIpCi0gICAgICAgIHRlc3RQYXNzZWQoImRpdiBkaWQgc2Nyb2xs
LiIpOwotICAgIGVsc2UKLSAgICAgICAgdGVzdEZhaWxlZCgiZGl2IGRpZCBOT1Qgc2Nyb2xsLiIp
OworICAgICAgICByZXR1cm4gcG9zaXRpb247CisgICAgfQogCi0gICAgaWYgKHBhZ2VTY3JvbGxQ
b3NpdGlvbkJlZm9yZSA9PSBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlcikKLSAgICAgICAgdGVzdFBh
c3NlZCgiUGFnZSBkaWQgTk9UIHNjcm9sbC4iKTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RGYWls
ZWQoIlBhZ2UgRElEIHNjcm9sbC4iKTsKKyAgICBmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpCisg
ICAgeworICAgICAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5zY3Jv
bGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKKyAgICAgICAgdmFyIGRpdlNjcm9sbFBvc2l0aW9uQWZ0
ZXIgPSBkaXZUYXJnZXQuc2Nyb2xsVG9wOwogCi0gICAgZmluaXNoVGVzdCgpOwotfQorICAgICAg
ICBpZiAoZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gZGl2U2Nyb2xsUG9zaXRpb25BZnRlcikK
KyAgICAgICAgICAgIHRlc3RQYXNzZWQoImRpdiBkaWQgc2Nyb2xsLiIpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkaXYgZGlkIE5PVCBzY3JvbGwuIik7CiAKLWZ1bmN0
aW9uIHNjcm9sbFRlc3QoKQotewotICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3Vt
ZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOworICAgICAgICBpZiAocGFnZVNjcm9sbFBv
c2l0aW9uQmVmb3JlID09IHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyKQorICAgICAgICAgICAgdGVz
dFBhc3NlZCgiUGFnZSBkaWQgTk9UIHNjcm9sbC4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiUGFnZSBESUQgc2Nyb2xsLiIpOwogCi0gICAgZGl2VGFyZ2V0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Njcm9sbGFibGVfZGl2Jyk7CisgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgIH0KIAotICAgIHZhciB3aW5kb3dQb3NpdGlvbiA9IGxvY2F0aW9uSW5XaW5k
b3dDb29yZGluYXRlcyhkaXZUYXJnZXQpOworICAgIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKQorICAg
IHsKKyAgICAgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZG9jdW1lbnQuc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3A7CiAKLSAgICB2YXIgc3RhcnRQb3NYID0gd2luZG93UG9zaXRpb24u
eCArIDAuNSAqIGRpdlRhcmdldC5jbGllbnRXaWR0aDsKLSAgICB2YXIgc3RhcnRQb3NZID0gd2lu
ZG93UG9zaXRpb24ueSArIDAuNSAqIGRpdlRhcmdldC5jbGllbnRIZWlnaHQ7CisgICAgICAgIGRp
dlRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY3JvbGxhYmxlX2RpdicpOwogCi0g
ICAgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkaXZUYXJnZXQuc2Nyb2xsVG9wOworICAgICAg
ICB2YXIgd2luZG93UG9zaXRpb24gPSBsb2NhdGlvbkluV2luZG93Q29vcmRpbmF0ZXMoZGl2VGFy
Z2V0KTsKIAotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZ
KTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTEsICdiZWdhbicsICdub25lJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7Ci0g
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IC0xLCAnY2hhbmdlZCcsICdub25lJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJyk7Ci0gICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAn
bm9uZScsICdiZWdpbicpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKLSAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUn
LCAnZW5kJyk7Ci0gICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVzKGNo
ZWNrRm9yU2Nyb2xsKTsKLX0KKyAgICAgICAgdmFyIHN0YXJ0UG9zWCA9IHdpbmRvd1Bvc2l0aW9u
LnggKyAwLjUgKiBkaXZUYXJnZXQuY2xpZW50V2lkdGg7CisgICAgICAgIHZhciBzdGFydFBvc1kg
PSB3aW5kb3dQb3NpdGlvbi55ICsgMC41ICogZGl2VGFyZ2V0LmNsaWVudEhlaWdodDsKIAotZnVu
Y3Rpb24gc2V0dXBUb3BMZXZlbCgpCi17Ci0gICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewot
ICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLSAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CisgICAgICAgIGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZGl2VGFyZ2V0LnNj
cm9sbFRvcDsKIAogICAgICAgICBldmVudFNlbmRlci5tb25pdG9yV2hlZWxFdmVudHMoKTsKLSAg
ICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAwKTsKLSAgICB9IGVsc2UgeworICAgICAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7CisgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J2JlZ2FuJywgJ25vbmUnKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnKTsKKyAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IC0xLCAnbm9uZScsICdiZWdpbicpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7Cisg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAwLCAnbm9uZScsICdlbmQnKTsKKyAgICAgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Ny
b2xsaW5nQ29tcGxldGVzKGNoZWNrRm9yU2Nyb2xsKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBz
ZXR1cFRvcExldmVsKCkKKyAgICB7CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGlm
cmFtZSBkb2VzIHNjcm9sbCB3aGVuIGlubmVyIGlmcmFtZSBpcyBOT1Qgc2Nyb2xsYWJsZS4iKTsK
KyAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAgc2V0VGltZW91
dChzY3JvbGxUZXN0LCAwKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAg
ICAKICAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdwYXJlbnQnKTsKICAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKLSAgICAgICAgbWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+VGhpcyB0ZXN0IGlzIGJl
dHRlciBydW4gdW5kZXIgRHVtcFJlbmRlclRyZWUuIFRvIG1hbnVhbGx5IHRlc3QgaXQsIHBsYWNl
IHRoZSBtb3VzZSBwb2ludGVyPGJyLz4iCi0gICAgICAgICAgICArICJpbnNpZGUgdGhlIElGcmFt
ZSwgdGhlbiB1c2UgdGhlIG1vdXNlIHdoZWVsIG9yIGEgdHdvLWZpbmdlciBzd2lwZSB0byBzY3Jv
bGwgdGhlIElGcmFtZSB0byB0aGUgYm90dG9tIChhbmQgYmV5b25kKS48YnIvPiIKLSAgICAgICAg
ICAgICsgIjxici8+PGJyLz4iCi0gICAgICAgICAgICArICJUaGUgdGVzdCBwYXNzZXMgaWYgeW91
IHNjcm9sbCBmYXIgZW5vdWdoIHRvIHNlZSB0aGUgcm93IG9mIEVORCBsYWJlbHMgYnV0IHRoZSBt
YWluIHBhZ2UgZG9lcyBub3Qgc2Nyb2xsLjwvcD4iOworICAgICAgICBtZXNzYWdlLmlubmVySFRN
TCA9ICI8cD5UbyBtYW51YWxseSBydW4gdGhpcyB0ZXN0LCBwbGFjZSB0aGUgbW91c2UgcG9pbnRl
ciAiCisgICAgICAgICAgICArICJpbnNpZGUgdGhlIGlmcmFtZSwgdGhlbiB1c2UgdGhlIG1vdXNl
IHdoZWVsIG9yIGEgdHdvLWZpbmdlciBzd2lwZSB0byBzY3JvbGwgdGhlIGlmcmFtZSB0byB0aGUg
Ym90dG9tIChhbmQgYmV5b25kKS48L3A+IgorICAgICAgICAgICAgKyAiPHA+VGhlIHRlc3QgcGFz
c2VzIGlmIHlvdSBzY3JvbGwgdG8gdGhlIGJvdHRvbSBvZiB0aGUgaWZyYW1lIGJ1dCB0aGUgbWFp
biBwYWdlIGRvZXMgbm90IHNjcm9sbC48L3A+IjsKICAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFw
cGVuZENoaWxkKG1lc3NhZ2UpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9Ci19Ci0K
IDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CiA8ZGl2IGlkPSJwYXJlbnQiIHN0eWxlPSJoZWln
aHQ6IDIwMDBweCI+CiAgICAgPGRpdiBpZD0ic291cmNlIiBzdHlsZT0iaGVpZ2h0OiAyMHB4Ij4K
ICAgICAgICAgUHV0IG1vdXNlIGluc2lkZSB0aGUgaWZyYW1lIChiZWxvdykgYW5kIGZsaWNrIGRv
d253YXJkcwogICAgIDwvZGl2PgogICAgIDxkaXYgaWQ9InNjcm9sbGFibGVfZGl2IiBzdHlsZT0i
aGVpZ2h0OiA0MDBweDsgd2lkdGg6IDQzMHB4OyBvdmVyZmxvdy15OmF1dG87IHBhZGRpbmc6IDA7
Ij4KLSAgICAgICAgPGlmcmFtZSBpZD0ibm9uX3Njcm9sbGFibGVfaWZyYW1lIiBzcmM9InJlc291
cmNlcy9iYWNrZ3JvdW5kLmh0bWwiIHN0eWxlPSJoZWlnaHQ6IDIxMDBweDsgd2lkdGg6NDEwcHg7
IG92ZXJmbG93OmhpZGRlbjsgc2Nyb2xsaW5nOiBubyIgb25sb2FkPSJzZXR1cFRvcExldmVsKCk7
Ij4KKyAgICAgICAgPGlmcmFtZSBpZD0ibm9uX3Njcm9sbGFibGVfaWZyYW1lIiBzcmM9InJlc291
cmNlcy9iYWNrZ3JvdW5kLmh0bWwiIHNjcm9sbGluZz0ibm8iIHN0eWxlPSJoZWlnaHQ6IDIxMDBw
eDsgd2lkdGg6NDEwcHg7IiBvbmxvYWQ9InNldHVwVG9wTGV2ZWwoKTsiPgogICAgICAgICA8L2lm
cmFtZT4KICAgICA8L2Rpdj4KIDwvZGl2PgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2Ny
aXB0PgotZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgaWZyYW1lIGRvZXMgc2Nyb2xsIHdoZW4gaW5u
ZXIgaWZyYW1lIGlzIE5PVCBzY3JvbGxhYmxlLiIpOwotPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9z
Y3JvbGwtaWZyYW1lLWZyYWdtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1pZnJhbWUtZnJhZ21lbnQtZXhwZWN0ZWQudHh0CmluZGV4
IDg3ODg5Yzg1ZjBmODY4ODFlYzI2YzcwNWE4YTRlN2EyNmJlMDhjYTkuLjM5MTQyMjQ2MjRmM2E5
ZWVjNjIxZjhkMWU3OGZhMmZmZWFkNDY4OTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1pZnJhbWUtZnJhZ21lbnQtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1pZnJhbWUtZnJh
Z21lbnQtZXhwZWN0ZWQudHh0CkBAIC00LDEwICs0LDEwIEBAIFRlc3RzIHRoYXQgaWZyYW1lIGRv
ZXNuJ3QgcGFzcyB3aGVlbCBldmVudHMgdG8gbWFpbiBmcmFtZSB3aGVuIHNjcm9sbGluZyBhdCBi
b3R0CiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCiBJRnJhbWUgZGlzcGxheSBoZWlnaHQgPSA1MDAK
IE1vdXNlIG1vdmVkIHRvICgyOCwgNDY2KQogUEFTUyBJRnJhbWUgcmVjZWl2ZWQgd2hlZWwgZXZl
bnRzLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1p
ZnJhbWUtZnJhZ21lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5n
L3Njcm9sbC1pZnJhbWUtZnJhZ21lbnQuaHRtbAppbmRleCBjYTAwODYxOWQ0YjNkYzUwZmI0NzVi
M2Q1MTY5NTkwMWI2YTYyMDM4Li45ZTNlZmQ0MmNiNGEwMzA5ZmM0MThhYzgwOWRiMzgyYTRjNDk2
M2I3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3Jv
bGwtaWZyYW1lLWZyYWdtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
bGF0Y2hpbmcvc2Nyb2xsLWlmcmFtZS1mcmFnbWVudC5odG1sCkBAIC0xLDQ3ICsxLDQ4IEBACiA8
IURPQ1RZUEUgaHRtbD4KIDxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8bGluayByZWw9Imhl
bHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy8jZXZlbnRz
LVdoZWVsRXZlbnQiPgotICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLSAgICA8L2hlYWQ+Ci0gICAgPGJvZHk+Ci0gICAgICAg
IDxzY3JpcHQ+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKwogICAgICAgICB2YXIgaWZyYW1lVGFyZ2V0OwogICAgICAgICB2YXIgcGFn
ZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwotICAgICAgICB2YXIgaUZyYW1lU2Nyb2xsUG9zaXRpb25C
ZWZvcmU7Ci0gICAgICAgIHZhciBjb250aW51ZUNvdW50ID0gNTsKLQotICAgICAgICBmdW5jdGlv
biBjaGVja0ZvclNjcm9sbCgpIHsKKyAgICAgICAgdmFyIGlmcmFtZVNjcm9sbFBvc2l0aW9uQmVm
b3JlOwogCi0gICAgICAgICAgICAvLyBUaGUgSUZyYW1lIHNob3VsZCBoYXZlIHNjcm9sbGVkLCBi
dXQgbm90IHRoZSBtYWluIHBhZ2UuCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkK
KyAgICAgICAgeworICAgICAgICAgICAgLy8gVGhlIGlmcmFtZSBzaG91bGQgaGF2ZSBzY3JvbGxl
ZCwgYnV0IG5vdCB0aGUgbWFpbiBwYWdlLgogICAgICAgICAgICAgdmFyIHBhZ2VTY3JvbGxQb3Np
dGlvbkFmdGVyID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7Ci0gICAgICAg
ICAgICB2YXIgaUZyYW1lU2Nyb2xsUG9zaXRpb25BZnRlciA9IHdpbmRvdy5mcmFtZXNbJ3Rhcmdl
dCddLmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOworICAgICAgICAgICAgdmFy
IGlmcmFtZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSB3aW5kb3cuZnJhbWVzWyd0YXJnZXQnXS5kb2N1
bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKIAotICAgICAgICAgICAgaWYgKGlGcmFt
ZVNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IGlGcmFtZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAg
ICAgICAgICBpZiAoaWZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gaWZyYW1lU2Nyb2xsUG9z
aXRpb25BZnRlcikKICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJJRnJhbWUgcmVjZWl2ZWQg
d2hlZWwgZXZlbnRzLiIpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIklGcmFtZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLiIpOwogCi0gICAgICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgp
OwogICAgICAgICB9CiAKLSAgICAgICAgZnVuY3Rpb24gc2Nyb2xsVGVzdCgpIHsKLSAgICAgICAg
ICAgIC8vIFNlZSB3aGVyZSBvdXIgSUZyYW1lIGxpdmVzOgorICAgICAgICBmdW5jdGlvbiBzY3Jv
bGxUZXN0KCkKKyAgICAgICAgewogICAgICAgICAgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3Jl
ID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7CiAKICAgICAgICAgICAgIGlm
cmFtZVRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKIAotICAgICAg
ICAgICAgdmFyIGlGcmFtZUJvZHkgPSB3aW5kb3cuZnJhbWVzWyd0YXJnZXQnXS5kb2N1bWVudC5i
b2R5OwotICAgICAgICAgICAgaUZyYW1lQm9keS5zY3JvbGxUb3AgPSBpRnJhbWVCb2R5LnNjcm9s
bEhlaWdodCAtIGlmcmFtZVRhcmdldC5jbGllbnRIZWlnaHQgLSAxMDA7CisgICAgICAgICAgICB2
YXIgaWZyYW1lU2Nyb2xsaW5nRWxlbWVudCA9IHdpbmRvdy5mcmFtZXNbJ3RhcmdldCddLmRvY3Vt
ZW50LnNjcm9sbGluZ0VsZW1lbnQ7CisgICAgICAgICAgICBpZnJhbWVTY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcCA9IGlmcmFtZVNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gaWZyYW1l
VGFyZ2V0LmNsaWVudEhlaWdodCAtIDEwMDsKIAotICAgICAgICAgICAgaUZyYW1lU2Nyb2xsUG9z
aXRpb25CZWZvcmUgPSBpRnJhbWVCb2R5LnNjcm9sbFRvcDsKKyAgICAgICAgICAgIGlmcmFtZVNj
cm9sbFBvc2l0aW9uQmVmb3JlID0gaWZyYW1lU2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7CiAK
ICAgICAgICAgICAgIC8vIFNjcm9sbCB0aGUgI3NvdXJjZSB1bnRpbCB3ZSByZWFjaCB0aGUgI3Rh
cmdldC4KICAgICAgICAgICAgIHZhciBzdGFydFBvc1ggPSBpZnJhbWVUYXJnZXQub2Zmc2V0TGVm
dCArIDIwOwogICAgICAgICAgICAgZGVidWcoIklGcmFtZSBkaXNwbGF5IGhlaWdodCA9ICIgKyBp
ZnJhbWVUYXJnZXQuY2xpZW50SGVpZ2h0KTsKICAgICAgICAgICAgIHZhciBzdGFydFBvc1kgPSBp
ZnJhbWVUYXJnZXQub2Zmc2V0VG9wICsgaWZyYW1lVGFyZ2V0LmNsaWVudEhlaWdodCAtIDQyOyAv
LyBPbmUgd2hlZWwgdHVybiBiZWZvcmUgZW5kLgorCisgICAgICAgICAgICBldmVudFNlbmRlci5t
b25pdG9yV2hlZWxFdmVudHMoKTsKICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUg
dGhlIGlGcmFtZQogICAgICAgICAgICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQ
b3NYICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7CisKICAgICAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywg
J25vbmUnKTsKICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOwogICAgICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0x
LCAnY2hhbmdlZCcsICdub25lJyk7CkBAIC00OSw1MCArNTAsNTIgQEAKICAgICAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwg
J25vbmUnLCAnYmVnaW4nKTsKICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnKTsKICAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAwLCAnbm9uZScsICdlbmQnKTsKLSAgICAgICAgICAgIHNldFRpbWVvdXQoY2hlY2tG
b3JTY3JvbGwsIDEwMCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5jYWxsQWZ0ZXJTY3JvbGxp
bmdDb21wbGV0ZXMoY2hlY2tGb3JTY3JvbGwpOwogICAgICAgICB9CiAKLSAgICAgICAgZnVuY3Rp
b24gc2V0dXBUb3BMZXZlbCgpIHsKKyAgICAgICAgZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHNlZW1zIGxpa2UgYSBiYXNpYyBp
ZnJhbWUgbGF0Y2hpbmcgdGVzdCwgYnV0IHRoYXQgY29udHJhZGljdHMgd2l0aCB0aGUgdGVzdCBu
YW1lCisgICAgICAgICAgICAvLyBhbmQgdGhlIGlmcmFtZSBjb250ZW50cy4KKyAgICAgICAgICAg
IGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGlmcmFtZSBkb2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRz
IHRvIG1haW4gZnJhbWUgd2hlbiBzY3JvbGxpbmcgYXQgYm90dG9tIik7CiAgICAgICAgICAgICBp
ZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7Ci0KLSAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDEw
MDApOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICB2YXIgbWVzc2FnZUxv
Y2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudCcpOwotICAgICAgICAgICAg
ICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAg
ICAgICAgICAgbWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+VGhpcyB0ZXN0IGlzIGJldHRlciBydW4g
dW5kZXIgRHVtcFJlbmRlclRyZWUuIFRvIG1hbnVhbGx5IHRlc3QgaXQsIHBsYWNlIHRoZSBtb3Vz
ZSBwb2ludGVyPGJyLz4iCi0gICAgICAgICAgICAgICAgICAgICsgImluc2lkZSB0aGUgSUZyYW1l
LCB0aGVuIHVzZSB0aGUgbW91c2Ugd2hlZWwgb3IgYSB0d28tZmluZ2VyIHN3aXBlIHRvIHNjcm9s
bCB0aGUgSUZyYW1lIHRvIHRoZSBib3R0b20gKGFuZCBiZXlvbmQpLjxici8+IgotICAgICAgICAg
ICAgICAgICAgICArICI8YnIvPjxici8+IgotICAgICAgICAgICAgICAgICAgICArICJUaGUgdGVz
dCBwYXNzZXMgaWYgeW91IHNjcm9sbCBmYXIgZW5vdWdoIHRvIHNlZSB0aGUgcm93IG9mIEVORCBs
YWJlbHMgYnV0IHRoZSBtYWluIHBhZ2UgZG9lcyBub3Qgc2Nyb2xsLjwvcD4iOwotICAgICAgICAg
ICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZChtZXNzYWdlKTsKKyAgICAgICAgICAg
ICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDApOworICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICB2YXIgbWVzc2FnZSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICAgICAgbWVzc2FnZS5pbm5lckhUTUwg
PSAiPHA+VG8gbWFudWFsbHkgcnVuIHRoaXMgdGVzdCwgcGxhY2UgdGhlIG1vdXNlIHBvaW50ZXIg
IgorICAgICAgICAgICAgICAgICsgImluc2lkZSB0aGUgaWZyYW1lLCB0aGVuIHVzZSB0aGUgbW91
c2Ugd2hlZWwgb3IgYSB0d28tZmluZ2VyIHN3aXBlIHRvIHNjcm9sbCB0aGUgaWZyYW1lIHRvIHRo
ZSBib3R0b20gKGFuZCBiZXlvbmQpLjwvcD4iCisgICAgICAgICAgICAgICAgKyAiPHA+VGhlIHRl
c3QgcGFzc2VzIGlmIHlvdSBzY3JvbGwgZmFyIGVub3VnaCB0byBzZWUgdGhlIHJvdyBvZiBFTkQg
bGFiZWxzIGJ1dCB0aGUgbWFpbiBwYWdlIGRvZXMgbm90IHNjcm9sbC48L3A+IjsKKyAgICAgICAg
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKICAgICAgICAgfQotICAgICAgICA8L3NjcmlwdD4KLSAgICAgICAgPGlmcmFt
ZSBpZD0idGFyZ2V0IiBuYW1lPSJ0YXJnZXQiIHN0eWxlPSJib3JkZXI6c29saWQgMXB4IGdyZWVu
OyBoZWlnaHQ6IDUwMHB4OyB3aWR0aDogNTAwcHg7IiAKLSAgICAgICAgICAgIHNyYz0gImRhdGE6
dGV4dC9odG1sLAotICAgICAgICAgICAgICAgIDxodG1sPgotICAgICAgICAgICAgICAgICAgICA8
aGVhZD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxzdHlsZT5kaXYgeyB3aWR0aDogNDAwcHg7
IGhlaWdodDogMjAwcHg7IH0gPC9zdHlsZT4KLSAgICAgICAgICAgICAgICAgICAgPC9oZWFkPgot
ICAgICAgICAgICAgICAgICAgICA8Ym9keT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYg
aWQ9J25vdFRvQmVTY3JvbGxlZCcgc3R5bGU9J2hlaWdodDogMTAwMHB4OyB3aWR0aDogMTAwMHB4
Oyc+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1Ag
VE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUDxici8+PGJyLz4KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBUaGlzIHNob3VsZCBzdGlsbCBiZSB2aXNpYmxlIGluc2lkZSB0aGUgZnJh
bWUgYWZ0ZXIgeW91IHNjcm9sbCBkb3duCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJy
Lz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+
PGJyLz48YnIvPjxici8+PGJyLz48YnIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxi
ci8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPjxici8+PGJyLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJy
Lz48YnIvPjxici8+PGJyLz48YnIvPjxici8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
VGhpcyBzaG91bGQgTk9UIGJlIHZpc2libGUgaW5zaWRlIHRoZSBmcmFtZSBhZnRlciB5b3Ugc2Ny
b2xsIGRvd248YnIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxici8+Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQg
RU5EIEVORCBFTkQgRU5ECi0gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KLSAgICAgICAg
ICAgICAgICAgICAgPC9ib2R5PgotICAgICAgICAgICAgICAgIDwvaHRtbD4iCi0gICAgICAgICAg
ICBvbmxvYWQ9InNldHVwVG9wTGV2ZWwoKTsiPgotICAgICAgICA8L2lmcmFtZT4KLSAgICAgICAg
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0gICAgICAgIDxzY3JpcHQ+Ci0gICAgICAgIGRlc2Ny
aXB0aW9uKCJUZXN0cyB0aGF0IGlmcmFtZSBkb2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRvIG1h
aW4gZnJhbWUgd2hlbiBzY3JvbGxpbmcgYXQgYm90dG9tIik7Ci0gICAgICAgIDwvc2NyaXB0Pgot
ICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Ci0gICAgPC9ib2R5PgorICAgIAorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+CisgICAgPGlmcmFtZSBpZD0idGFyZ2V0IiBuYW1lPSJ0YXJnZXQiIHN0eWxlPSJib3JkZXI6
c29saWQgMXB4IGdyZWVuOyBoZWlnaHQ6IDUwMHB4OyB3aWR0aDogNTAwcHg7IiAKKyAgICAgICAg
c3JjPSAiZGF0YTp0ZXh0L2h0bWwsCisgICAgICAgICAgICA8aHRtbD4KKyAgICAgICAgICAgICAg
ICA8aGVhZD4KKyAgICAgICAgICAgICAgICAgICAgPHN0eWxlPmRpdiB7IHdpZHRoOiA0MDBweDsg
aGVpZ2h0OiAyMDBweDsgfSA8L3N0eWxlPgorICAgICAgICAgICAgICAgIDwvaGVhZD4KKyAgICAg
ICAgICAgICAgICA8Ym9keT4KKyAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0naGVpZ2h0
OiAxMDAwcHg7IHdpZHRoOiAxMDAwcHg7Jz4KKyAgICAgICAgICAgICAgICAgICAgICAgIFRPUCBU
T1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1A8YnIvPjxi
ci8+CisgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIHNob3VsZCBzdGlsbCBiZSB2aXNpYmxl
IGluc2lkZSB0aGUgZnJhbWUgYWZ0ZXIgeW91IHNjcm9sbCBkb3duCisgICAgICAgICAgICAgICAg
ICAgICAgICA8YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+CisgICAgICAgICAgICAgICAgICAg
ICAgICA8YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxi
ci8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+CisgICAgICAgICAgICAgICAgICAgICAg
ICA8YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+
PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+CisgICAgICAgICAgICAgICAgICAgICAgICBU
aGlzIHNob3VsZCBOT1QgYmUgdmlzaWJsZSBpbnNpZGUgdGhlIGZyYW1lIGFmdGVyIHlvdSBzY3Jv
bGwgZG93bjxici8+CisgICAgICAgICAgICAgICAgICAgICAgICA8YnIvPgorICAgICAgICAgICAg
ICAgICAgICAgICAgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBF
TkQgRU5ECisgICAgICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgICAgIDwvYm9k
eT4KKyAgICAgICAgICAgIDwvaHRtbD4iCisgICAgICAgIG9ubG9hZD0ic2V0dXBUb3BMZXZlbCgp
OyI+CisgICAgPC9pZnJhbWU+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
bGF0Y2hpbmcvc2Nyb2xsLWlmcmFtZS1pbi1vdmVyZmxvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtaWZyYW1lLWluLW92ZXJmbG93LWV4
cGVjdGVkLnR4dAppbmRleCBmNzA0MTk2NDQ1YTAyMjQ2MGUyZjU5ZWQ3N2Q0ZmQ2MTA3MGJlZmQ5
Li5lZDcwNjg4YzMzMDQ0NjUwNjA0MWY1YjJiYzE4ODRiNjUwM2JjMTU4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtaWZyYW1lLWluLW92ZXJm
bG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGlu
Zy9zY3JvbGwtaWZyYW1lLWluLW92ZXJmbG93LWV4cGVjdGVkLnR4dApAQCAtMSwyICsxLDUgQEAK
IFBBU1MgVGhlIGlmcmFtZSBzY3JvbGxlZCBidXQgdGhlIHdyYXBwZXIgZGlkIG5vdC4KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtaWZyYW1lLWluLW92
ZXJmbG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwt
aWZyYW1lLWluLW92ZXJmbG93Lmh0bWwKaW5kZXggZDI1NjY3YWI5ZDljZDRjZTY1NjIyZGY3ZjNl
ZTlmZjYzNTcyNTMzZC4uNDJkNzExNjUxODcwOTEyYjY0MDA2YjFlMzNjOTc5MTAxM2VkYzIxZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWlm
cmFtZS1pbi1vdmVyZmxvdy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xh
dGNoaW5nL3Njcm9sbC1pZnJhbWUtaW4tb3ZlcmZsb3cuaHRtbApAQCAtMjEsNyArMjEsNyBAQAog
ICAgIH0KICAgICA8L3N0eWxlPgogICAgIDxzY3JpcHQ+Ci0gICAgd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgZnVuY3Rpb24gY2hl
Y2tGb3JTY3JvbGwoKSB7CiAgICAgICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZnJhbWUiKTsKQEAgLTMxLDEwICszMSwxMiBAQAogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJUaGUgaWZyYW1lJ3Mgc2Nyb2xsIHBvc2l0aW9uIGlzOiAiICsgaWZy
YW1lLmNvbnRlbnRXaW5kb3cuc2Nyb2xsWSArICIsIGFuZCB0aGUgd3JhcHBlcidzIHNjcm9sbCBw
b3NpdGlvbiBpczogIiArIHdyYXBwZXIuc2Nyb2xsVG9wKTsKIAotICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfQogCi0gICAgZnVu
Y3Rpb24gc2Nyb2xsVGVzdCgpIHsKKyAgICBmdW5jdGlvbiBzY3JvbGxUZXN0KCkKKyAgICB7Cisg
ICAgICAgIGV2ZW50U2VuZGVyLm1vbml0b3JXaGVlbEV2ZW50cygpOwogICAgICAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbygyMDAsIDUwKTsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAiYmVnYW4iLCAibm9uZSIpOwog
ICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTEsICJjaGFuZ2VkIiwgIm5vbmUiKTsKQEAgLTU1LDE2ICs1NywxNiBAQAogCiAgICAg
ZnVuY3Rpb24gc2V0dXAoKSB7CiAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLm1vbml0b3JXaGVlbEV2ZW50cygpOwogICAgICAgICAgICAg
c2V0VGltZW91dChzY3JvbGxUZXN0LCAwKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
IHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAgICAg
ICBtZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UaGlzIHRlc3QgaXMgYmV0dGVyIHJ1biB1bmRlciBE
dW1wUmVuZGVyVHJlZS4gVG8gbWFudWFsbHkgdGVzdCBpdCwgcGxhY2UgdGhlIG1vdXNlIHBvaW50
ZXI8YnIvPiIKLSAgICAgICAgICAgICAgICArICJpbnNpZGUgdGhlIElGcmFtZSwgdGhlbiB1c2Ug
YSB0d28tZmluZ2VyIHN3aXBlIHRvIHNjcm9sbCB0aGUgaWZyYW1lIHRvIHRoZSBib3R0b20gKGFu
ZCBiZXlvbmQpLjxici8+IgotICAgICAgICAgICAgICAgICsgIjxici8+PGJyLz4iCi0gICAgICAg
ICAgICAgICAgKyAiVGhlIHRlc3QgcGFzc2VzIGlmIHRoZSBvdmVyZmxvdyBjb250YWluZXIgZG9l
cyBub3Qgc2Nyb2xsIGJ1dCB0aGUgaWZyYW1lIHNjcm9sbHMgdG8gdGhlIGJvdHRvbS48L3A+IjsK
LSAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZhciBtZXNzYWdlID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1M
ID0gIjxwPlRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVy
ICIKKyAgICAgICAgICAgICsgImluc2lkZSB0aGUgaWZyYW1lLCB0aGVuIHVzZSBhIHR3by1maW5n
ZXIgc3dpcGUgdG8gc2Nyb2xsIHRoZSBpZnJhbWUgdG8gdGhlIGJvdHRvbSAoYW5kIGJleW9uZCku
PC9wPiIKKyAgICAgICAgICAgICsgIjxwPlRoZSB0ZXN0IHBhc3NlcyBpZiB0aGUgb3ZlcmZsb3cg
Y29udGFpbmVyIGRvZXMgbm90IHNjcm9sbCBidXQgdGhlIGlmcmFtZSBzY3JvbGxzIHRvIHRoZSBi
b3R0b20uPC9wPiI7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobWVzc2FnZSk7
CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0KIAogICAgIDwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWlmcmFtZS1s
YXRjaGVkLWlmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9s
YXRjaGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLWV4cGVjdGVkLnR4dAppbmRleCA3
ZDE0ODczM2Q0NTc1ODM2ZmNmYjBiZDlmNzhiODIzNThmOWNjYTc3Li42YjQ4MjNmMWI0OTI5ZDdj
Y2VkZTljZDZjNTYyNDNkYTNiNWRjOWJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9sYXRjaGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtaWZyYW1l
LWxhdGNoZWQtaWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtNSwxMCArNSwxMCBAQCBUZXN0cyB0aGF0
IGlmcmFtZSBkb2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRvIG1haW4gZnJhbWUgd2hlbiBzY3Jv
bGxpbmcgYXQgYm90dAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQogSUZyYW1lIGRpc3BsYXkgaGVp
Z2h0ID0gNTAwCiBNb3VzZSBtb3ZlZCB0byAoMjgsIDU2NikKIFBBU1MgUGFnZSBkaWQgbm90IHJl
Y2VpdmUgd2hlZWwgZXZlbnRzLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xh
dGNoaW5nL3Njcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1pZnJhbWUtbGF0Y2hlZC1pZnJhbWUuaHRtbApp
bmRleCAxN2IzNWQ1NGQyNzQ0N2VkNmE2NzQ3YmU2NDVjNmJhNGQ4ZDZkNmI5Li43Y2UwNDgyMDAz
YjM1YzRmYmFkMzZhZDRiZmMzMzVmMmQyMzVjNDViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQtaWZyYW1lLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWlmcmFtZS1s
YXRjaGVkLWlmcmFtZS5odG1sCkBAIC0xLDg2ICsxLDg3IEBACiA8IURPQ1RZUEUgaHRtbD4KIDxo
dG1sPgogPGhlYWQ+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RS
L0RPTS1MZXZlbC0zLUV2ZW50cy8jZXZlbnRzLVdoZWVsRXZlbnQiPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxzY3JpcHQ+Ci0KLXZhciBpZnJhbWVUYXJnZXQ7Ci12YXIgcGFnZVNjcm9sbFBvc2l0aW9u
QmVmb3JlOwotdmFyIGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwotdmFyIGNvbnRpbnVlQ291
bnQgPSA1OworICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVl
OwogCi1mdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKKyAgICAgICAgdmFyIGlmcmFtZVRhcmdl
dDsKKyAgICAgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZTsKKyAgICAgICAgdmFyIGlm
cmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwogCi0gICAgLy8gVGhlIElGcmFtZSBzaG91bGQgbm90
IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgotICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9
IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOwotICAgIHZhciBpRnJhbWVTY3Jv
bGxQb3NpdGlvbkFmdGVyID0gd2luZG93LmZyYW1lc1sndGFyZ2V0J10uZG9jdW1lbnQuc2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxUb3A7CisgICAgICAgIGZ1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkK
KyAgICAgICAgeworICAgICAgICAgICAgLy8gVGhlIGlmcmFtZSBzaG91bGQgbm90IGhhdmUgc2Ny
b2xsZWQgYXQgYWxsLgorICAgICAgICAgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyID0g
ZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7CisgICAgICAgICAgICB2YXIgaWZy
YW1lU2Nyb2xsUG9zaXRpb25BZnRlciA9IHdpbmRvdy5mcmFtZXNbJ3RhcmdldCddLmRvY3VtZW50
LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOwogCi0gICAgLy9kZWJ1ZygiUGFnZSBiZWZvcmU6
ICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgKyAiLCBJRnJhbWUgYmVmb3JlOiAiICsgaUZy
YW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUpOwotICAgIC8vZGVidWcoIlBhZ2UgYWZ0ZXI6ICAiICsg
cGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgKyAiLCBJRnJhbWUgYWZ0ZXI6ICIgKyBpRnJhbWVTY3Jv
bGxQb3NpdGlvbkFmdGVyKTsKKyAgICAgICAgICAgIGlmIChwYWdlU2Nyb2xsUG9zaXRpb25CZWZv
cmUgIT0gcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiUGFnZSByZWNlaXZlZCB3aGVlbCBldmVudHMuIik7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgdGVzdFBhc3NlZCgiUGFnZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRz
LiIpOwogCi0gICAgaWYgKHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBwYWdlU2Nyb2xsUG9z
aXRpb25BZnRlcikKLSAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSByZWNlaXZlZCB3aGVlbCBldmVu
dHMuIik7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0UGFzc2VkKCJQYWdlIGRpZCBub3QgcmVjZWl2
ZSB3aGVlbCBldmVudHMuIik7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAg
fQogCi0gICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci19CisgICAgICAgIGZ1bmN0aW9uIHNj
cm9sbFRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBwYWdlU2Nyb2xsUG9zaXRpb25CZWZv
cmUgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKIAotZnVuY3Rpb24gc2Ny
b2xsVGVzdCgpIHsKLSAgICAvLyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZlczoKLSAgICBwYWdl
U2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRv
cDsKKyAgICAgICAgICAgIGlmcmFtZVRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
YXJnZXQnKTsKIAotICAgIGlmcmFtZVRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
YXJnZXQnKTsKKyAgICAgICAgICAgIHZhciBpZnJhbWVTY3JvbGxpbmdFbGVtZW50ID0gd2luZG93
LmZyYW1lc1sndGFyZ2V0J10uZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudDsKKyAgICAgICAgICAg
IGlmcmFtZVNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID0gaWZyYW1lU2Nyb2xsaW5nRWxlbWVu
dC5zY3JvbGxIZWlnaHQgLSBpZnJhbWVUYXJnZXQuY2xpZW50SGVpZ2h0IC0gMTAwOwogCi0gICAg
dmFyIGlGcmFtZUJvZHkgPSB3aW5kb3cuZnJhbWVzWyd0YXJnZXQnXS5kb2N1bWVudC5ib2R5Owot
ICAgIGlGcmFtZUJvZHkuc2Nyb2xsVG9wID0gaUZyYW1lQm9keS5zY3JvbGxIZWlnaHQgLSBpZnJh
bWVUYXJnZXQuY2xpZW50SGVpZ2h0IC0gMTAwOworICAgICAgICAgICAgaWZyYW1lU2Nyb2xsUG9z
aXRpb25CZWZvcmUgPSBpZnJhbWVTY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKIAotICAgIGlG
cmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gaUZyYW1lQm9keS5zY3JvbGxUb3A7CisgICAgICAg
ICAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2UgdW50aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQuCisg
ICAgICAgICAgICB2YXIgc3RhcnRQb3NYID0gaWZyYW1lVGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsK
KyAgICAgICAgICAgIGRlYnVnKCJJRnJhbWUgZGlzcGxheSBoZWlnaHQgPSAiICsgaWZyYW1lVGFy
Z2V0LmNsaWVudEhlaWdodCk7CisgICAgICAgICAgICB2YXIgc3RhcnRQb3NZID0gaWZyYW1lVGFy
Z2V0Lm9mZnNldFRvcCArIGlmcmFtZVRhcmdldC5jbGllbnRIZWlnaHQgLSA0MjsgLy8gT25lIHdo
ZWVsIHR1cm4gYmVmb3JlIGVuZC4KIAotICAgIC8vIFNjcm9sbCB0aGUgI3NvdXJjZSB1bnRpbCB3
ZSByZWFjaCB0aGUgI3RhcmdldC4KLSAgICB2YXIgc3RhcnRQb3NYID0gaWZyYW1lVGFyZ2V0Lm9m
ZnNldExlZnQgKyAyMDsKLSAgICBkZWJ1ZygiSUZyYW1lIGRpc3BsYXkgaGVpZ2h0ID0gIiArIGlm
cmFtZVRhcmdldC5jbGllbnRIZWlnaHQpOwotICAgIHZhciBzdGFydFBvc1kgPSBpZnJhbWVUYXJn
ZXQub2Zmc2V0VG9wICsgaWZyYW1lVGFyZ2V0LmNsaWVudEhlaWdodCAtIDQyOyAvLyBPbmUgd2hl
ZWwgdHVybiBiZWZvcmUgZW5kLgotICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9z
WCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFt
ZQotICAgIGRlYnVnKCJNb3VzZSBtb3ZlZCB0byAoIiArIHN0YXJ0UG9zWCArICIsICIgKyBzdGFy
dFBvc1kgKyAiKSIpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnKTsKLSAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywg
J25vbmUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50
dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKLSAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUn
KTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOwot
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAwLCAnbm9uZScsICdlbmQnKTsKLSAgICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCAxMDAp
OwotfQorICAgICAgICAgICAgZXZlbnRTZW5kZXIubW9uaXRvcldoZWVsRXZlbnRzKCk7CisgICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8v
IE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpRnJhbWUKIAotZnVuY3Rpb24gc2V0
dXBUb3BMZXZlbCgpIHsKKyAgICAgICAgICAgIGRlYnVnKCJNb3VzZSBtb3ZlZCB0byAoIiArIHN0
YXJ0UG9zWCArICIsICIgKyBzdGFydFBvc1kgKyAiKSIpOworICAgICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4n
LCAnbm9uZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgICAgICAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
LTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScpOwor
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdj
b250aW51ZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcpOworICAgICAgICAgICAgZXZl
bnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVzKGNoZWNrRm9yU2Nyb2xsKTsKKyAg
ICAgICAgfQogCi0gICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpIAor
ICAgICAgICB7CisgICAgICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBpZnJhbWUgZG9l
c24ndCBwYXNzIHdoZWVsIGV2ZW50cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5nIGF0IGJv
dHRvbSIpOworICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAg
ICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMCk7CisgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICB2YXIgbWVzc2FnZUxv
Y2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudCcpOworICAgICAgICAgICAg
dmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgICAg
IG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBpcyBiZXR0ZXIgcnVuIHVuZGVyIER1
bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0LCBwbGFjZSB0aGUgbW91c2UgcG9pbnRl
cjxici8+IgorICAgICAgICAgICAgICAgICsgImluc2lkZSB0aGUgaWZyYW1lLCB0aGVuIHVzZSB0
aGUgbW91c2Ugd2hlZWwgb3IgYSB0d28tZmluZ2VyIHN3aXBlIHRvIHNjcm9sbCB0aGUgaWZyYW1l
IHRvIHRoZSBib3R0b20gKGFuZCBiZXlvbmQpLjxici8+IgorICAgICAgICAgICAgICAgICsgIjxi
ci8+PGJyLz4iCisgICAgICAgICAgICAgICAgKyAiVGhlIHRlc3QgcGFzc2VzIGlmIHlvdSBzY3Jv
bGwgZmFyIGVub3VnaCB0byBzZWUgdGhlIHJvdyBvZiBFTkQgbGFiZWxzIGJ1dCB0aGUgbWFpbiBw
YWdlIGRvZXMgbm90IHNjcm9sbC48L3A+IjsKKyAgICAgICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5h
cHBlbmRDaGlsZChtZXNzYWdlKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAg
ICB9CisgICAgICAgIAorICAgIDwvc2NyaXB0PgogCi0gICAgICAgIHNldFRpbWVvdXQoc2Nyb2xs
VGVzdCwgMTAwMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKLSAgICAgICAgdmFyIG1lc3NhZ2Ug
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgbWVzc2FnZS5pbm5lckhU
TUwgPSAiPHA+VGhpcyB0ZXN0IGlzIGJldHRlciBydW4gdW5kZXIgRHVtcFJlbmRlclRyZWUuIFRv
IG1hbnVhbGx5IHRlc3QgaXQsIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVyPGJyLz4iCi0gICAgICAg
ICAgICArICJpbnNpZGUgdGhlIElGcmFtZSwgdGhlbiB1c2UgdGhlIG1vdXNlIHdoZWVsIG9yIGEg
dHdvLWZpbmdlciBzd2lwZSB0byBzY3JvbGwgdGhlIElGcmFtZSB0byB0aGUgYm90dG9tIChhbmQg
YmV5b25kKS48YnIvPiIKLSAgICAgICAgICAgICsgIjxici8+PGJyLz4iCi0gICAgICAgICAgICAr
ICJUaGUgdGVzdCBwYXNzZXMgaWYgeW91IHNjcm9sbCBmYXIgZW5vdWdoIHRvIHNlZSB0aGUgcm93
IG9mIEVORCBsYWJlbHMgYnV0IHRoZSBtYWluIHBhZ2UgZG9lcyBub3Qgc2Nyb2xsLjwvcD4iOwot
ICAgICAgICBtZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hpbGQobWVzc2FnZSk7Ci0gICAgfQotfQot
Ci08L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgogPGRpdiBpZD0icGFyZW50IiBzdHlsZT0iaGVp
Z2h0OiAyMDAwcHgiPgogICAgIDxkaXYgaWQ9InNvdXJjZSIgc3R5bGU9ImhlaWdodDogMTAwcHgi
PgogICAgICAgICBQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCiAgICAgPC9kaXY+
CiAgICAgPGlmcmFtZSBpZD0idGFyZ2V0IiBuYW1lPSJ0YXJnZXQiIHN0eWxlPSJib3JkZXI6c29s
aWQgMXB4IGdyZWVuOyBoZWlnaHQ6IDUwMHB4OyB3aWR0aDogNTAwcHg7IiAKICAgICAgc3JjPSAi
ZGF0YTp0ZXh0L2h0bWwsCi0gICAgIDxkaXYgaWQ9J25vdFRvQmVTY3JvbGxlZCcgc3R5bGU9J2hl
aWdodDogMTAwMHB4OyB3aWR0aDogMTAwMHB4Oyc+CisgICAgIDxkaXYgc3R5bGU9J2hlaWdodDog
MTAwMHB4OyB3aWR0aDogMTAwMHB4Oyc+CiAgICAgIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRP
UCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1A8YnIvPjxici8+CiAgICAgIFRoaXMgc2hvdWxk
IHN0aWxsIGJlIHZpc2libGUgaW5zaWRlIHRoZSBmcmFtZSBhZnRlciB5b3Ugc2Nyb2xsIGRvd24K
ICAgICAgPGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48
YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPgpAQCAtOTYsOSArOTcsNiBAQCBmdW5j
dGlvbiBzZXR1cFRvcExldmVsKCkgewogICAgIDwvaWZyYW1lPgogPC9kaXY+CiA8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBpZnJhbWUg
ZG9lc24ndCBwYXNzIHdoZWVsIGV2ZW50cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5nIGF0
IGJvdHRvbSIpOwotPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQt
bWFpbmZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNo
aW5nL3Njcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0CmluZGV4IDE5
YWEzYjliNjgxMDE3NGY4MTgzMzY5Nzc5NGNiZmUyM2ViNjE1NmMuLmIwMzU4ZWEyYmY0NmE3Yjk1
MjdmMTY1ZjMxOTgwYTU5OTFhMzQ5MmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1pZnJh
bWUtbGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC01LDkgKzUsOSBAQCBUZXN0cyB0
aGF0IGlmcmFtZSBkb2Vzbid0IGNvbnN1bWUgd2hlZWwgZXZlbnRzIHdoZW4gc2Nyb2xsCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAorTW91c2UgbW92ZWQgdG8gKDI4LCA2NikKK1BBU1Mg
SUZyYW1lIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuCiBQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKLU1vdXNlIG1vdmVkIHRvICgyOCwgNjYpCi1Q
QVNTIElGcmFtZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLgogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtaWZyYW1lLWxhdGNoZWQt
bWFpbmZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3Jv
bGwtaWZyYW1lLWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwKaW5kZXggMjJiMjIxZjBmZTEzMDNhNDM3
NjNjY2EzN2E4Yzc2NTA3YTI4NDRmMi4uYjBlMDEzMzk0MjYwZTcwODhlMmEyNmZjNjhiZGRlNTgy
YjdmNWIzMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcv
c2Nyb2xsLWlmcmFtZS1sYXRjaGVkLW1haW5mcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1pZnJhbWUtbGF0Y2hlZC1tYWluZnJhbWUuaHRt
bApAQCAtMSw4MSArMSw4MSBAQAogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgotPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVu
dHMvI2V2ZW50cy1XaGVlbEV2ZW50Ij4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0PgotCi12
YXIgaWZyYW1lVGFyZ2V0OwotdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZTsKLXZhciBpRnJh
bWVTY3JvbGxQb3NpdGlvbkJlZm9yZTsKLXZhciBjb250aW51ZUNvdW50ID0gNTsKLQotZnVuY3Rp
b24gY2hlY2tGb3JTY3JvbGwoKSB7CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAganNUZXN0
SXNBc3luYyA9IHRydWU7CiAKLSAgICAvLyBUaGUgSUZyYW1lIHNob3VsZCBub3QgaGF2ZSBzY3Jv
bGxlZCBhdCBhbGwuCi0gICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQu
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7Ci0gICAgdmFyIGlGcmFtZVNjcm9sbFBvc2l0aW9u
QWZ0ZXIgPSB3aW5kb3cuZnJhbWVzWyd0YXJnZXQnXS5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50
LnNjcm9sbFRvcDsKKyAgICAgICAgdmFyIGlmcmFtZVRhcmdldDsKKyAgICAgICAgdmFyIHBhZ2VT
Y3JvbGxQb3NpdGlvbkJlZm9yZTsKKyAgICAgICAgdmFyIGlmcmFtZVNjcm9sbFBvc2l0aW9uQmVm
b3JlOwogCi0gICAgLy9kZWJ1ZygiUGFnZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25C
ZWZvcmUgKyAiLCBJRnJhbWUgYmVmb3JlOiAiICsgaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUp
OwotICAgIC8vZGVidWcoIlBhZ2UgYWZ0ZXI6ICAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIg
KyAiLCBJRnJhbWUgYWZ0ZXI6ICIgKyBpRnJhbWVTY3JvbGxQb3NpdGlvbkFmdGVyKTsKKyAgICAg
ICAgZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBU
aGUgaWZyYW1lIHNob3VsZCBub3QgaGF2ZSBzY3JvbGxlZCBhdCBhbGwuCisgICAgICAgICAgICB2
YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcDsKKyAgICAgICAgICAgIHZhciBpZnJhbWVTY3JvbGxQb3NpdGlvbkFmdGVyID0gd2lu
ZG93LmZyYW1lc1sndGFyZ2V0J10uZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7
CiAKLSAgICBpZiAoaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gaUZyYW1lU2Nyb2xsUG9z
aXRpb25BZnRlcikKLSAgICAgICAgdGVzdEZhaWxlZCgiSUZyYW1lIGNvbnN1bWVkIHdoZWVsIGV2
ZW50cy4iKTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RQYXNzZWQoIklGcmFtZSBkaWQgbm90IHJl
Y2VpdmUgd2hlZWwgZXZlbnRzLiIpOworICAgICAgICAgICAgaWYgKGlmcmFtZVNjcm9sbFBvc2l0
aW9uQmVmb3JlICE9IGlmcmFtZVNjcm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiSUZyYW1lIGNvbnN1bWVkIHdoZWVsIGV2ZW50cy4iKTsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJJRnJhbWUgZGlkIG5vdCByZWNlaXZl
IHdoZWVsIGV2ZW50cy4iKTsKIAotICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfQorICAg
ICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KIAotZnVuY3Rpb24gc2Nyb2xsVGVz
dCgpIHsKLSAgICAvLyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZlczoKLSAgICBwYWdlU2Nyb2xs
UG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKLSAg
ICBpRnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IHdpbmRvdy5mcmFtZXNbJ3RhcmdldCddLmRv
Y3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOworICAgICAgICBmdW5jdGlvbiBzY3Jv
bGxUZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3Jl
ID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7CisgICAgICAgICAgICBpZnJh
bWVTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IHdpbmRvdy5mcmFtZXNbJ3RhcmdldCddLmRvY3VtZW50
LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOwogCi0gICAgaWZyYW1lVGFyZ2V0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworICAgICAgICAgICAgaWZyYW1lVGFyZ2V0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOwogCi0gICAgLy8gU2Nyb2xsIHRoZSAj
c291cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgotICAgIHZhciBzdGFydFBvc1ggPSBp
ZnJhbWVUYXJnZXQub2Zmc2V0TGVmdCArIDIwOwotICAgIHZhciBzdGFydFBvc1kgPSBpZnJhbWVU
YXJnZXQub2Zmc2V0VG9wIC0gNDI7IC8vIFNsaWdodGx5IG1vcmUgdGhhbiBvbmUgd2hlZWwgc2Ny
b2xsIGF3YXkgZnJvbSB0aGUgSUZyYW1lCi0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3Rh
cnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUg
aUZyYW1lCi0gICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiAr
IHN0YXJ0UG9zWSArICIpIik7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScpOwotICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5n
ZWQnLCAnbm9uZScpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOwotICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAn
bm9uZScpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVl
Jyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIDAsICdub25lJywgJ2VuZCcpOwotICAgIHNldFRpbWVvdXQoY2hlY2tGb3JTY3JvbGws
IDEwMCk7Ci19CisgICAgICAgICAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2UgdW50aWwgd2UgcmVh
Y2ggdGhlICN0YXJnZXQuCisgICAgICAgICAgICB2YXIgc3RhcnRQb3NYID0gaWZyYW1lVGFyZ2V0
Lm9mZnNldExlZnQgKyAyMDsKKyAgICAgICAgICAgIHZhciBzdGFydFBvc1kgPSBpZnJhbWVUYXJn
ZXQub2Zmc2V0VG9wIC0gNDI7IC8vIFNsaWdodGx5IG1vcmUgdGhhbiBvbmUgd2hlZWwgc2Nyb2xs
IGF3YXkgZnJvbSB0aGUgaWZyYW1lCiAKLWZ1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7CisgICAg
ICAgICAgICBldmVudFNlbmRlci5tb25pdG9yV2hlZWxFdmVudHMoKTsKKyAgICAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJl
IHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFtZQorICAgICAgICAgICAgZGVidWcoIk1vdXNl
IG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0YXJ0UG9zWSArICIpIik7CiAKLSAg
ICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScpOworICAgICAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAn
Y2hhbmdlZCcsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdp
bicpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOworICAgICAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdu
b25lJywgJ2VuZCcpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5n
Q29tcGxldGVzKGNoZWNrRm9yU2Nyb2xsKTsKKyAgICAgICAgfQogCi0gICAgICAgIHNldFRpbWVv
dXQoc2Nyb2xsVGVzdCwgMTAwMCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgdmFyIG1lc3NhZ2VM
b2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKLSAgICAgICAgdmFy
IG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgbWVzc2Fn
ZS5pbm5lckhUTUwgPSAiPHA+VGhpcyB0ZXN0IGlzIGJldHRlciBydW4gdW5kZXIgRHVtcFJlbmRl
clRyZWUuIFRvIG1hbnVhbGx5IHRlc3QgaXQsIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVyPGJyLz4i
Ci0gICAgICAgICAgICArICJhdCB0aGUgdG9wIG9mIHRoZSBwYWdlLCBhbmQgdGhlbiB1c2UgdGhl
IG1vdXNlIHdoZWVsIG9yIGEgdHdvLWZpbmdlciBzd2lwZSB0byBzY3JvbGwgdGhlPGJyLz4iCi0g
ICAgICAgICAgICArICJkb3duIHBhc3QgdGhlIElGcmFtZS48YnIvPjxici8+IgotICAgICAgICAg
ICAgKyAiWW91IHNob3VsZCBub3Qgc2VlIHRoZSByb3cgb2YgRU5EIGxhYmVscyBpZiB0aGlzIHRl
c3QgaXMgc3VjY2Vzc2Z1bC48L3A+IjsKLSAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVuZENo
aWxkKG1lc3NhZ2UpOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIHNl
dHVwVG9wTGV2ZWwoKQorICAgICAgICB7CisgICAgICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMg
dGhhdCBpZnJhbWUgZG9lc24ndCBjb25zdW1lIHdoZWVsIGV2ZW50cyB3aGVuIHNjcm9sbCAiKTsK
KyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgICAgICAgICBz
ZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDApOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKKyAgICAgICAgICAgIHZhciBtZXNz
YWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAgICBtZXNzYWdl
LmlubmVySFRNTCA9ICI8cD5UbyBtYW51YWxseSBydW4gdGhpcyB0ZXN0LCBwbGFjZSB0aGUgbW91
c2UgcG9pbnRlciAiCisgICAgICAgICAgICAgICAgKyAiYXQgdGhlIHRvcCBvZiB0aGUgcGFnZSwg
YW5kIHRoZW4gdXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1maW5nZXIgc3dpcGUgdG8gc2Ny
b2xsIHRoZSAiCisgICAgICAgICAgICAgICAgKyAiZG93biBwYXN0IHRoZSBpZnJhbWUuPC9wPiIK
KyAgICAgICAgICAgICAgICArICI8cD5Zb3Ugc2hvdWxkIG5vdCBzZWUgdGhlIHJvdyBvZiBFTkQg
bGFiZWxzIGlmIHRoaXMgdGVzdCBpcyBzdWNjZXNzZnVsLjwvcD4iOworICAgICAgICAgICAgbWVz
c2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgICAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KIDxkaXYgaWQ9InBhcmVudCIgc3R5bGU9ImhlaWdodDogMjAwMHB4Ij4KICAgICA8ZGl2IGlk
PSJzb3VyY2UiIHN0eWxlPSJoZWlnaHQ6IDEwMHB4Ij4KICAgICAgICAgUHV0IG1vdXNlIGhlcmUg
YW5kIGZsaWNrIGRvd253YXJkcwogICAgIDwvZGl2PgogICAgIDxpZnJhbWUgaWQ9InRhcmdldCIg
bmFtZT0idGFyZ2V0IiBzdHlsZT0iYm9yZGVyOnNvbGlkIDFweCBncmVlbjsgaGVpZ2h0OiA1MDBw
eDsgd2lkdGg6IDUwMHB4OyIgCiAgICAgIHNyYz0gImRhdGE6dGV4dC9odG1sLAotICAgICA8ZGl2
IGlkPSdub3RUb0JlU2Nyb2xsZWQnIHN0eWxlPSdoZWlnaHQ6IDEwMDBweDsgd2lkdGg6IDEwMDBw
eDsnPgorICAgICA8ZGl2IHN0eWxlPSdoZWlnaHQ6IDEwMDBweDsgd2lkdGg6IDEwMDBweDsnPgog
ICAgICBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1Ag
VE9QPGJyLz48YnIvPgogICAgICBUaGlzIHNob3VsZCBzdGlsbCBiZSB2aXNpYmxlIGluc2lkZSB0
aGUgZnJhbWUgYWZ0ZXIgeW91IHNjcm9sbCBkb3duCiAgICAgIDxici8+PGJyLz48YnIvPjxici8+
PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxi
ci8+PGJyLz4KQEAgLTkxLDkgKzkxLDYgQEAgZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpIHsKICAg
ICA8L2lmcmFtZT4KIDwvZGl2PgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0Pgot
ZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgaWZyYW1lIGRvZXNuJ3QgY29uc3VtZSB3aGVlbCBldmVu
dHMgd2hlbiBzY3JvbGwgIik7Ci08L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1pZnJhbWUt
d2Via2l0MS1sYXRjaGluZy1idWctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWlmcmFtZS13ZWJraXQxLWxhdGNoaW5nLWJ1Zy1leHBlY3Rl
ZC50eHQKaW5kZXggOWFmMTIzMmVjOTc0YjM2NDM2MTdkNTliNTMwODRkOThjM2NlNmRlMy4uNmU4
ODYzODdmNDA2ODI4MTE4ZjRhZWY5MDNmMTEyOWU2OTE0MDlmYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWlmcmFtZS13ZWJraXQxLWxhdGNo
aW5nLWJ1Zy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0
Y2hpbmcvc2Nyb2xsLWlmcmFtZS13ZWJraXQxLWxhdGNoaW5nLWJ1Zy1leHBlY3RlZC50eHQKQEAg
LTQsMTAgKzQsMTAgQEAgVGVzdHMgdGhhdCBpZnJhbWUgZG9lc24ndCBwYXNzIHdoZWVsIGV2ZW50
cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5nIGF0IGJvdHQKIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KIAogCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09N
UExFVEUKIGlmcmFtZSBkaXNwbGF5IGhlaWdodCA9IDE1MAogTW91c2UgbW92ZWQgdG8gKDI4LCAx
MTYpCiBQQVNTIGlmcmFtZSByZWNlaXZlZCB3aGVlbCBldmVudHMuCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWlmcmFtZS13ZWJraXQxLWxhdGNoaW5n
LWJ1Zy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWlm
cmFtZS13ZWJraXQxLWxhdGNoaW5nLWJ1Zy5odG1sCmluZGV4IGI2ZDUwMWMzNTFmZTE4YWY0MTAy
MTYzNTEyZDk1N2I1YjliM2UzMjcuLjgzMWI0NGYzN2Y4ZTdkMGJiMjNkODYwOWUzNDNkZDA5MWFk
ZjE0OWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Nj
cm9sbC1pZnJhbWUtd2Via2l0MS1sYXRjaGluZy1idWcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtaWZyYW1lLXdlYmtpdDEtbGF0Y2hpbmctYnVn
Lmh0bWwKQEAgLTEsMTggKzEsMTYgQEAKIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+Ci0gICAgPGhl
YWQ+Ci0gICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIv
RE9NLUxldmVsLTMtRXZlbnRzLyNldmVudHMtV2hlZWxFdmVudCI+Ci0gICAgICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotICAgIDwv
aGVhZD4KLSAgICA8Ym9keSBpZD0icGFyZW50IiBzdHlsZT0iaGVpZ2h0OiAyMDAwcHgiPgotICAg
ICAgICA8c2NyaXB0PgorPGhlYWQ+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8v
d3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVudHMvI2V2ZW50cy1XaGVlbEV2ZW50Ij4KKyAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0PgorICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICAgICAg
dmFyIGlmcmFtZVRhcmdldDsKICAgICAgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZTsK
ICAgICAgICAgdmFyIGlmcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlOwotICAgICAgICB2YXIgY29u
dGludWVDb3VudCA9IDU7Ci0KLSAgICAgICAgZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKSB7CiAK
KyAgICAgICAgZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKQorICAgICAgICB7CiAgICAgICAgICAg
ICAvLyBUaGUgaWZyYW1lIHNob3VsZCBoYXZlIHNjcm9sbGVkLCBidXQgbm90IHRoZSBtYWluIHBh
Z2UuCiAgICAgICAgICAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5z
Y3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKICAgICAgICAgICAgIHZhciBpZnJhbWVTY3JvbGxQ
b3NpdGlvbkFmdGVyID0gd2luZG93LmZyYW1lc1sndGFyZ2V0J10uZG9jdW1lbnQuc2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3A7CkBAIC0yMiwyNCArMjAsMjYgQEAKICAgICAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJpZnJhbWUgZGlkIG5vdCByZWNlaXZlIHdoZWVs
IGV2ZW50cy4iKTsKIAotICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgfQogCi0gICAgICAgIGZ1bmN0aW9uIHNj
cm9sbFRlc3QoKSB7Ci0gICAgICAgICAgICAvLyBTZWUgd2hlcmUgb3VyIGlmcmFtZSBsaXZlczoK
KyAgICAgICAgZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCisgICAgICAgIHsKICAgICAgICAgICAgIHBh
Z2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xs
VG9wOwogCiAgICAgICAgICAgICBpZnJhbWVUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGFyZ2V0Jyk7CiAKLSAgICAgICAgICAgIHZhciBpZnJhbWVCb2R5ID0gd2luZG93LmZyYW1l
c1sndGFyZ2V0J10uZG9jdW1lbnQuYm9keTsKLSAgICAgICAgICAgIGlmcmFtZUJvZHkuc2Nyb2xs
VG9wID0gaWZyYW1lQm9keS5zY3JvbGxIZWlnaHQgLSBpZnJhbWVUYXJnZXQuY2xpZW50SGVpZ2h0
IC0gMTAwOworICAgICAgICAgICAgdmFyIGlmcmFtZVNjcm9sbGluZ0VsZW1lbnQgPSB3aW5kb3cu
ZnJhbWVzWyd0YXJnZXQnXS5kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50OworICAgICAgICAgICAg
aWZyYW1lU2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPSBpZnJhbWVTY3JvbGxpbmdFbGVtZW50
LnNjcm9sbEhlaWdodCAtIGlmcmFtZVRhcmdldC5jbGllbnRIZWlnaHQgLSAxMDA7CiAKLSAgICAg
ICAgICAgIGlmcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gaWZyYW1lQm9keS5zY3JvbGxUb3A7
CisgICAgICAgICAgICBpZnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGlmcmFtZVNjcm9sbGlu
Z0VsZW1lbnQuc2Nyb2xsVG9wOwogCiAgICAgICAgICAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2Ug
dW50aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQuCiAgICAgICAgICAgICB2YXIgc3RhcnRQb3NYID0g
aWZyYW1lVGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKICAgICAgICAgICAgIGRlYnVnKCJpZnJhbWUg
ZGlzcGxheSBoZWlnaHQgPSAiICsgaWZyYW1lVGFyZ2V0LmNsaWVudEhlaWdodCk7CiAgICAgICAg
ICAgICB2YXIgc3RhcnRQb3NZID0gaWZyYW1lVGFyZ2V0Lm9mZnNldFRvcCArIGlmcmFtZVRhcmdl
dC5jbGllbnRIZWlnaHQgLSA0MjsgLy8gT25lIHdoZWVsIHR1cm4gYmVmb3JlIGVuZC4KKworICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW9uaXRvcldoZWVsRXZlbnRzKCk7CiAgICAgICAgICAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3Vy
ZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpZnJhbWUKICAgICAgICAgICAgIGRlYnVnKCJNb3Vz
ZSBtb3ZlZCB0byAoIiArIHN0YXJ0UG9zWCArICIsICIgKyBzdGFydFBvc1kgKyAiKSIpOwogICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScpOwpAQCAtNDksNDkgKzQ5LDQ5IEBACiAgICAgICAg
ICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgLTEsICdub25lJywgJ2JlZ2luJyk7CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVl
Jyk7CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJyk7Ci0gICAgICAgICAgICBzZXRUaW1lb3V0
KGNoZWNrRm9yU2Nyb2xsLCAxMDApOworICAgICAgICAgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVy
U2Nyb2xsaW5nQ29tcGxldGVzKGNoZWNrRm9yU2Nyb2xsKTsKICAgICAgICAgfQogCi0gICAgICAg
IGZ1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7CisgICAgICAgIGZ1bmN0aW9uIHNldHVwVG9wTGV2
ZWwoKQorICAgICAgICB7CisgICAgICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBpZnJh
bWUgZG9lc24ndCBwYXNzIHdoZWVsIGV2ZW50cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5n
IGF0IGJvdHRvbSIpOwogICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi0gICAgICAgICAgICAg
ICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAxMDAwKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdwYXJlbnQnKTsKLSAgICAgICAgICAgICAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICAgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0g
IjxwPlRoaXMgdGVzdCBpcyBiZXR0ZXIgcnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBtYW51
YWxseSB0ZXN0IGl0LCBwbGFjZSB0aGUgbW91c2UgcG9pbnRlcjxici8+IgotICAgICAgICAgICAg
ICAgICAgICArICJpbnNpZGUgdGhlIGlmcmFtZSwgdGhlbiB1c2UgdGhlIG1vdXNlIHdoZWVsIG9y
IGEgdHdvLWZpbmdlciBzd2lwZSB0byBzY3JvbGwgdGhlIGlmcmFtZSB0byB0aGUgYm90dG9tIChh
bmQgYmV5b25kKS48YnIvPiIKLSAgICAgICAgICAgICAgICAgICAgKyAiPGJyLz48YnIvPiIKLSAg
ICAgICAgICAgICAgICAgICAgKyAiVGhlIHRlc3QgcGFzc2VzIGlmIHlvdSBzY3JvbGwgZmFyIGVu
b3VnaCB0byBzZWUgdGhlIHJvdyBvZiBFTkQgbGFiZWxzIGJ1dCB0aGUgbWFpbiBwYWdlIGRvZXMg
bm90IHNjcm9sbC48L3A+IjsKLSAgICAgICAgICAgICAgICBtZXNzYWdlTG9jYXRpb24uYXBwZW5k
Q2hpbGQobWVzc2FnZSk7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAw
KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CisgICAgICAgICAgICB2
YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudCcpOwor
ICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
KyAgICAgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBpcyBiZXR0ZXIg
cnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0IGl0LCBwbGFjZSB0aGUg
bW91c2UgcG9pbnRlciAiCisgICAgICAgICAgICAgICAgKyAiaW5zaWRlIHRoZSBpZnJhbWUsIHRo
ZW4gdXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1maW5nZXIgc3dpcGUgdG8gc2Nyb2xsIHRo
ZSBpZnJhbWUgdG8gdGhlIGJvdHRvbSAoYW5kIGJleW9uZCkuPC9wPiIKKyAgICAgICAgICAgICAg
ICArICI8cD5UaGUgdGVzdCBwYXNzZXMgaWYgeW91IHNjcm9sbCBmYXIgZW5vdWdoIHRvIHNlZSB0
aGUgcm93IG9mIEVORCBsYWJlbHMgYnV0IHRoZSBtYWluIHBhZ2UgZG9lcyBub3Qgc2Nyb2xsLjwv
cD4iOworICAgICAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOwor
ICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgIH0KLSAgICAgICAgPC9zY3JpcHQ+
Ci0gICAgICAgIDxpZnJhbWUgaWQ9InRhcmdldCIgbmFtZT0idGFyZ2V0IiBzdHlsZT0iYm9yZGVy
OnNvbGlkIDFweCBncmVlbjsgaGVpZ2h0OiAxNTBweDsgd2lkdGg6IDMwMHB4OyIgCi0gICAgICAg
ICAgICBzcmM9ICJkYXRhOnRleHQvaHRtbCwKLSAgICAgICAgICAgICAgICA8aHRtbCBzdHlsZT0n
aGVpZ2h0OiAxMDAlJz4KLSAgICAgICAgICAgICAgICAgICAgPGJvZHkgc3R5bGU9J2hlaWdodDog
MTAwJSc+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSdoZWlnaHQ6IDEwMHB4
OyB3aWR0aDogMjAwcHgnPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9
J292ZXJmbG93LXk6IGF1dG87IG92ZXJmbG93LXg6IGhpZGRlbjsnPgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1Ag
VE9QIFRPUCBUT1A8YnIvPjxici8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBz
aG91bGQgc3RpbGwgYmUgdmlzaWJsZSBpbnNpZGUgdGhlIGZyYW1lIGFmdGVyIHlvdSBzY3JvbGwg
ZG93bgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxici8+PGJyLz48YnIvPjxici8+PGJy
Lz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+
PGJyLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIvPjxici8+PGJyLz48YnIvPjxi
ci8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIv
Pjxici8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyLz48YnIvPjxici8+PGJyLz48
YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJy
Lz48YnIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgc2hvdWxkIE5PVCBiZSB2
aXNpYmxlIGluc2lkZSB0aGUgZnJhbWUgYWZ0ZXIgeW91IHNjcm9sbCBkb3duPGJyLz4KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8YnIvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgorICAgIDwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgaWQ9InBhcmVudCIgc3R5bGU9ImhlaWdodDogMjAwMHB4Ij4KKworICAgIDxpZnJhbWUg
aWQ9InRhcmdldCIgbmFtZT0idGFyZ2V0IiBzdHlsZT0iYm9yZGVyOnNvbGlkIDFweCBncmVlbjsg
aGVpZ2h0OiAxNTBweDsgd2lkdGg6IDMwMHB4OyIgCisgICAgICAgIHNyYz0gImRhdGE6dGV4dC9o
dG1sLAorICAgICAgICAgICAgPGh0bWwgc3R5bGU9J2hlaWdodDogMTAwJSc+CisgICAgICAgICAg
ICAgICAgPGJvZHkgc3R5bGU9J2hlaWdodDogMTAwJSc+CisgICAgICAgICAgICAgICAgICAgIDxk
aXYgc3R5bGU9J2hlaWdodDogMTAwcHg7IHdpZHRoOiAyMDBweCc+CisgICAgICAgICAgICAgICAg
ICAgICAgICA8ZGl2IHN0eWxlPSdvdmVyZmxvdy15OiBhdXRvOyBvdmVyZmxvdy14OiBoaWRkZW47
Jz4KKyAgICAgICAgICAgICAgICAgICAgICAgIFRPUCBUT1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBU
T1AgVE9QIFRPUCBUT1AgVE9QIFRPUCBUT1A8YnIvPjxici8+CisgICAgICAgICAgICAgICAgICAg
ICAgICBUaGlzIHNob3VsZCBzdGlsbCBiZSB2aXNpYmxlIGluc2lkZSB0aGUgZnJhbWUgYWZ0ZXIg
eW91IHNjcm9sbCBkb3duCisgICAgICAgICAgICAgICAgICAgICAgICA8YnIvPjxici8+PGJyLz48
YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJy
Lz48YnIvPjxici8+CisgICAgICAgICAgICAgICAgICAgICAgICA8YnIvPjxici8+PGJyLz48YnIv
Pjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48
YnIvPjxici8+CisgICAgICAgICAgICAgICAgICAgICAgICA8YnIvPjxici8+PGJyLz48YnIvPjxi
ci8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIvPjxici8+PGJyLz48YnIv
Pjxici8+CisgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIHNob3VsZCBOT1QgYmUgdmlzaWJs
ZSBpbnNpZGUgdGhlIGZyYW1lIGFmdGVyIHlvdSBzY3JvbGwgZG93bjxici8+CisgICAgICAgICAg
ICAgICAgICAgICAgICA8YnIvPgorICAgICAgICAgICAgICAgICAgICAgICAgRU5EIEVORCBFTkQg
RU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5EIEVORCBFTkQgRU5ECiAgICAgICAgICAgICAgICAg
ICAgICAgICA8L2Rpdj4KLSAgICAgICAgICAgICAgICAgICAgPC9ib2R5PgotICAgICAgICAgICAg
ICAgIDwvaHRtbD4iCi0gICAgICAgICAgICBvbmxvYWQ9InNldHVwVG9wTGV2ZWwoKTsiPgotICAg
ICAgICA8L2lmcmFtZT4KLSAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0gICAgICAg
IDxzY3JpcHQ+Ci0gICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGlmcmFtZSBkb2Vzbid0
IHBhc3Mgd2hlZWwgZXZlbnRzIHRvIG1haW4gZnJhbWUgd2hlbiBzY3JvbGxpbmcgYXQgYm90dG9t
Iik7Ci0gICAgICAgIDwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0gICAgPC9ib2R5PgorICAgICAgICAg
ICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAgICA8L2JvZHk+CisgICAgICAgICAgICA8
L2h0bWw+IgorICAgICAgICBvbmxvYWQ9InNldHVwVG9wTGV2ZWwoKTsiPgorICAgIDwvaWZyYW1l
PgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KIDwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1s
YXRjaGVkLW5lc3RlZC1kaXYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvbGF0Y2hpbmcvc2Nyb2xsLWxhdGNoZWQtbmVzdGVkLWRpdi1leHBlY3RlZC50eHQKaW5kZXgg
YzVjZDJmZDcyZjkwMDQ4NTRkN2UyZDZiOGVlMjhkZGFhZWU3NGZmNi4uMzM2ZGRjOWU3ZjhlYjE1
NWEwYjhiYmExMGMzYzI5NGVmNTA3Nzc5MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWxhdGNoZWQtbmVzdGVkLWRpdi1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWxhdGNoZWQt
bmVzdGVkLWRpdi1leHBlY3RlZC50eHQKQEAgLTEsNDkgKzEsNiBAQAogUHV0IG1vdXNlIG5leHQg
dG8gdGhlIHRhYmxlIGxhYmVsZWQgJ1Njcm9sbGFibGUgUmVnaW9uJyBhbmQgZmxpY2sgZG93bndh
cmQuIFRoZSBzY3JvbGwgbW92ZW1lbnQgc2hvdWxkIGNvbWUgdG8gYSBoYWx0LiBUaGVuIGZsaWNr
IGFnYWluLiBUaGUgb3ZlcmFsbCBwYWdlIHNob3VsZCBzY3JvbGwuCiBTY3JvbGxhYmxlIFJlZ2lv
bgogCi1Db3VudAlEQVRBCVJldiBDb3VudAotVE9QIFRPUCBUT1AgVE9QIFRPUAlUT1AgVE9QIFRP
UCBUT1AgVE9QCVRPUCBUT1AgVE9QIFRPUCBUT1AKLTEJMC4xMTAwCTQwCi0yCTAuMTE1NQkzOQot
MwkwLjIyMDAJMzgKLTQJMC4yMjU1CTM3Ci01CTAuMzMwMAkzNgotNgkwLjMzNTUJMzUKLTcJMC40
NDAwCTM0Ci04CTAuNDQ1NQkzMwotOQkwLjU1MDAJMzIKLTEwCTAuNTU1NQkzMQotMTEJMC42NjAw
CTMwCi0xMgkwLjY2NTUJMjkKLTEzCTAuNzcwMAkyOAotMTQJMC43NzU1CTI3Ci0xNQkwLjg4MDAJ
MjYKLTE2CTAuODg1NQkyNQotMTcJMC45OTAwCTI0Ci0xOAkwLjk5NTUJMjMKLTE5CTAuOTk5OQky
MgotMjAJMS4wMDAwCTIxCi0yMQkxLjAwMDAJMjAKLTIyCTAuOTk5OQkxOQotMjMJMC45OTU1CTE4
Ci0yNAkwLjk5MDAJMTcKLTI1CTAuODg1NQkxNgotMjYJMC44ODAwCTE1Ci0yNwkwLjc3NTUJMTQK
LTI4CTAuNzcwMAkxMwotMjkJMC42NjU1CTEyCi0zMAkwLjY2MDAJMTEKLTMxCTAuNTU1NQkxMAot
MzIJMC41NTAwCTkKLTMzCTAuNDQ1NQk4Ci0zNAkwLjQ0MDAJNwotMzUJMC4zMzU1CTYKLTM2CTAu
MzMwMAk1Ci0zNwkwLjIyNTUJNAotMzgJMC4yMjAwCTMKLTM5CTAuMTE1NQkyCi00MAkwLjExMDAJ
MQotRU5EIEVORCBFTkQgRU5EIEVORAlFTkQgRU5EIEVORCBFTkQgRU5ECUVORCBFTkQgRU5EIEVO
RCBFTkQKIEEgc2V0IG9mIGluZm9ybWF0aW9uIGF0IHRoZSBib3R0b20gb2YgdGhlIHRhYmxlLgog
CiBUZXN0cyB0aGF0IGEgc2Nyb2xsYWJsZSBkaXYgbmVzdGVkIGluc2lkZSBhbm90aGVyIHNjcm9s
bGFibGUgZGl2IHByb3Blcmx5IGhhbmRsZXMgd2hlZWwgZXZlbnRzIHVuZGVyIHN1Yi1waXhlbCBj
b25kaXRpb25zLgpAQCAtNTEsOSArOCw2IEBAIFRlc3RzIHRoYXQgYSBzY3JvbGxhYmxlIGRpdiBu
ZXN0ZWQgaW5zaWRlIGFub3RoZXIgc2Nyb2xsYWJsZSBkaXYgcHJvcGVybHkgaGFuZGxlCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQotCi1URVNUIENPTVBMRVRFCiB3cmFwcGVyVGFyZ2V0ID0gW29iamVjdCBIVE1MRGl2RWxlbWVu
dF0KIEZpcnN0IHNjcm9sbCBldmVudDoKIFBBU1MgUGFnZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwg
ZXZlbnRzIGR1cmluZyB0aGUgZmlyc3QgZ2VzdHVyZS4KQEAgLTYzLDQgKzE3LDcgQEAgU2Vjb25k
IHNjcm9sbCBldmVudDoKIFBBU1MgUGFnZSByZWNlaXZlZCB3aGVlbCBldmVudHMgZHVyaW5nIHRo
ZSBzZWNvbmQgZ2VzdHVyZS4KIFBBU1MgV3JhcHBlciBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZl
bnRzIGR1cmluZyB0aGUgc2Vjb25kIGdlc3R1cmUuCiBQQVNTIGRpdiBkaWQgbm90IHJlY2VpdmUg
d2hlZWwgZXZlbnRzIGR1cmluZyB0aGUgc2Vjb25kIGdlc3R1cmUuCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWxhdGNoZWQtbmVzdGVkLWRpdi5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLWxhdGNoZWQtbmVz
dGVkLWRpdi5odG1sCmluZGV4IGRiYzhiZmU0NGQwOTI1MmJiOGY5ZDk3NTIzMDY2ZDE3MjNmZjBk
YjIuLjM3N2I4MDI3ZWFmNjhiYmMwMjY0YWYyMzNmNzkwNmM5NzA2YmEyYjQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1sYXRjaGVkLW5lc3Rl
ZC1kaXYuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3Jv
bGwtbGF0Y2hlZC1uZXN0ZWQtZGl2Lmh0bWwKQEAgLTUsMTUzICs1LDEzMSBAQAogLnNjcm9sbGFi
bGVfcmVnaW9uIHsKICAgICB3aWR0aDogNjgwcHg7CiB9Ci0KLS50YWJsZSB0ZCwgLnRhYmxlIHRo
IHsKLSAgICBwYWRkaW5nOiAycHg7Ci19Ci0KLS50YWJsZSB0aCB7Ci0gICAgaGVpZ2h0OiAyMHB4
OwotICAgIHRleHQtYWxpZ246IGxlZnQ7Ci0gICAgZm9udC13ZWlnaHQ6IHN0cm9uZzsKLX0KLQot
LnRhYmxlIHRyOm50aC1jaGlsZChvZGQpIHsKLSAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzOwotfQot
Ci0uc2Nyb2xsYWJsZV9zZWxlY3Qgb3B0aW9uOm50aC1jaGlsZChvZGQpIHsKLSAgICBiYWNrZ3Jv
dW5kOiAjZjNmM2YzOworLmNvbnRlbnRzIHsKKyAgICBoZWlnaHQ6IDEwMjRweDsKKyAgICBiYWNr
Z3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHNpbHZlciwgd2hpdGUgMjAw
cHgpOwogfQotCiA8L3N0eWxlPgogPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gb25Mb2FkKCkgewotICAg
IHNldHVwVG9wTGV2ZWwoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJv
bkxvYWQoKTsiPgotPHNjcmlwdD4KLQotdmFyIHdyYXBwZXJUYXJnZXQ7Ci12YXIgZGl2VGFyZ2V0
OwotdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZTsKLXZhciB3cmFwcGVyU2Nyb2xsUG9zaXRp
b25CZWZvcmU7Ci12YXIgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmU7Ci12YXIgY29udGludWVDb3Vu
dCA9IDU7Ci0KLWZ1bmN0aW9uIGNoZWNrRm9yU2Vjb25kU2Nyb2xsKCkgewotICAgIC8vICdwYXJl
bnQnIHNob3VsZCBoYXZlIHNjcm9sbGVkLCB0aGUgY29udGVudCBvZiAndGFyZ2V0JyBzaG91bGQK
LSAgICAvLyBub3QgaGF2ZSBzY3JvbGxlZCwgYW5kICd3cmFwcGVyJyBzaG91bGQgbm90IGhhdmUg
c2Nyb2xsZWQuCi0gICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQuc2Ny
b2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7Ci0gICAgdmFyIHdyYXBwZXJTY3JvbGxQb3NpdGlvbkFm
dGVyID0gd3JhcHBlclRhcmdldC5zY3JvbGxUb3A7Ci0gICAgdmFyIGRpdlNjcm9sbFBvc2l0aW9u
QWZ0ZXIgPSBkaXZUYXJnZXQuc2Nyb2xsVG9wOwotCi0gICAgZGVidWcoIlNlY29uZCBzY3JvbGwg
ZXZlbnQ6Iik7Ci0gICAgaWYgKHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBwYWdlU2Nyb2xs
UG9zaXRpb25BZnRlcikKLSAgICAgICAgdGVzdFBhc3NlZCgiUGFnZSByZWNlaXZlZCB3aGVlbCBl
dmVudHMgZHVyaW5nIHRoZSBzZWNvbmQgZ2VzdHVyZS4iKTsKLSAgICBlbHNlCi0gICAgICAgIHRl
c3RGYWlsZWQoIlBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cyBkdXJpbmcgdGhlIHNl
Y29uZCBnZXN0dXJlLiIpOwotCi0gICAgaWYgKHdyYXBwZXJTY3JvbGxQb3NpdGlvbkJlZm9yZSAh
PSB3cmFwcGVyU2Nyb2xsUG9zaXRpb25BZnRlcikKLSAgICAgICAgdGVzdEZhaWxlZCgiV3JhcHBl
ciByZWNlaXZlZCB3aGVlbCBldmVudHMgZHVyaW5nIHRoZSBzZWNvbmQgZ2VzdHVyZS4iKTsKLSAg
ICBlbHNlCi0gICAgICAgIHRlc3RQYXNzZWQoIldyYXBwZXIgZGlkIG5vdCByZWNlaXZlIHdoZWVs
IGV2ZW50cyBkdXJpbmcgdGhlIHNlY29uZCBnZXN0dXJlLiIpOwotCi0gICAgaWYgKGRpdlNjcm9s
bFBvc2l0aW9uQmVmb3JlICE9IGRpdlNjcm9sbFBvc2l0aW9uQWZ0ZXIpCi0gICAgICAgIHRlc3RG
YWlsZWQoImRpdiByZWNlaXZlZCB3aGVlbCBldmVudHMgZHVyaW5nIHRoZSBzZWNvbmQgZ2VzdHVy
ZS4iKTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RQYXNzZWQoImRpdiBkaWQgbm90IHJlY2VpdmUg
d2hlZWwgZXZlbnRzIGR1cmluZyB0aGUgc2Vjb25kIGdlc3R1cmUuIik7Ci0KLSAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKLX0KLQotZnVuY3Rpb24gY2hlY2tGb3JGaXJzdFNjcm9sbCgpIHsK
LSAgICAvLyAncGFyZW50JyBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQsIGFuZCB0aGUgY29udGVu
dCBvZiAndGFyZ2V0JyBzaG91bGQKLSAgICAvLyBub3QgaGF2ZSBtb3ZlZC4gSG93ZXZlciwgJ3dy
YXBwZXInIHNob3VsZCBoYXZlIG1vdmVkLgotICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRl
ciA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOwotICAgIHZhciB3cmFwcGVy
U2Nyb2xsUG9zaXRpb25BZnRlciA9IHdyYXBwZXJUYXJnZXQuc2Nyb2xsVG9wOwotICAgIHZhciBk
aXZTY3JvbGxQb3NpdGlvbkFmdGVyID0gZGl2VGFyZ2V0LnNjcm9sbFRvcDsKLQotICAgIGRlYnVn
KCJGaXJzdCBzY3JvbGwgZXZlbnQ6Iik7Ci0gICAgaWYgKHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9y
ZSAhPSBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlcikKLSAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSBy
ZWNlaXZlZCB3aGVlbCBldmVudHMgZHVyaW5nIHRoZSBmaXJzdCBnZXN0dXJlLiIpOwotICAgIGVs
c2UKLSAgICAgICAgdGVzdFBhc3NlZCgiUGFnZSBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRz
IGR1cmluZyB0aGUgZmlyc3QgZ2VzdHVyZS4iKTsKLQotICAgIGlmICh3cmFwcGVyU2Nyb2xsUG9z
aXRpb25CZWZvcmUgIT0gd3JhcHBlclNjcm9sbFBvc2l0aW9uQWZ0ZXIpCi0gICAgICAgIHRlc3RQ
YXNzZWQoIldyYXBwZXIgcmVjZWl2ZWQgd2hlZWwgZXZlbnRzIGR1cmluZyB0aGUgZmlyc3QgZ2Vz
dHVyZS4iKTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RGYWlsZWQoIldyYXBwZXIgZGlkIG5vdCBy
ZWNlaXZlIHdoZWVsIGV2ZW50cyBkdXJpbmcgdGhlIGZpcnN0IGdlc3R1cmUuIik7Ci0KLSAgICBp
ZiAoZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gZGl2U2Nyb2xsUG9zaXRpb25BZnRlcikKLSAg
ICAgICAgdGVzdEZhaWxlZCgiZGl2IHJlY2VpdmVkIHdoZWVsIGV2ZW50cyBkdXJpbmcgdGhlIGZp
cnN0IGdlc3R1cmUuIik7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0UGFzc2VkKCJkaXYgZGlkIG5v
dCByZWNlaXZlIHdoZWVsIGV2ZW50cyBkdXJpbmcgdGhlIGZpcnN0IGdlc3R1cmUuIik7Ci0KLSAg
ICB3cmFwcGVyU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSB3cmFwcGVyVGFyZ2V0LnNjcm9sbFRvcDsK
LQotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKLSAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
LTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnKTsKLSAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdu
b25lJywgJ2JlZ2luJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScpOwotICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScs
ICdlbmQnKTsKLSAgICAvLyBUaGUgdGltZW91dCB1c2VkIHRvIGJlIG9ubHkgMTAwLCBidXQgd2hl
biB3ZSBhZGRlZCBzdXBwb3J0IGZvciBydWJiZXItYmFuZGluZyBpbiBvdmVyZmxvdwotICAgIC8v
IGFyZWFzLCB3ZSBmb3VuZCB3ZSBoYWQgdG8gaW5jcmVhc2UgdGhlIHRpbWVvdXQgdG8gYWxsb3cg
dGhlIHJ1YmJlci1iYW5kIHRvIGZpbmlzaC4KLSAgICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Vjb25k
U2Nyb2xsLCAxMDAwKTsKLX0KLQotZnVuY3Rpb24gc2Nyb2xsVGVzdCgpIHsKLSAgICAvLyBTZWUg
d2hlcmUgb3VyIElGcmFtZSBsaXZlczoKLSAgICBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBk
b2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKLQotICAgIGRpdlRhcmdldCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKLSAgICBkaXZUYXJnZXQuc2Nyb2xsVG9w
ID0gZGl2VGFyZ2V0LnNjcm9sbEhlaWdodCAtIGRpdlRhcmdldC5jbGllbnRIZWlnaHQgLSAxMDA7
Ci0KLSAgICBkaXZTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IGRpdlRhcmdldC5zY3JvbGxUb3A7Ci0K
LSAgICB3cmFwcGVyVGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dyYXBwZXInKTsK
LSAgICB3cmFwcGVyU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSB3cmFwcGVyVGFyZ2V0LnNjcm9sbFRv
cDsKLSAgICBkZWJ1Zygid3JhcHBlclRhcmdldCA9ICIgKyB3cmFwcGVyVGFyZ2V0KTsKLQotICAg
IC8vIE1vdmUgbW91c2UgdG8gYSBwb3NpdGlvbiB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgdGFi
bGUsIGFuZCBuZWFyIHRoZSBib3R0b20uCi0gICAgdmFyIHN0YXJ0UG9zWCA9IGRpdlRhcmdldC5v
ZmZzZXRMZWZ0ICsgZGl2VGFyZ2V0LmNsaWVudFdpZHRoICsgNTA7Ci0gICAgdmFyIHN0YXJ0UG9z
WSA9IE1hdGgucm91bmQoZGl2VGFyZ2V0Lm9mZnNldFRvcCkgLSA0MjsgLy8gT25lIHdoZWVsIHR1
cm4gYmVmb3JlIGVuZC4KLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0
YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpRnJhbWUKLSAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
LTEsICdiZWdhbicsICdub25lJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7Ci0gICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAn
Y2hhbmdlZCcsICdub25lJyk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJyk7Ci0gICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC01LCAnbm9uZScs
ICdiZWdpbicpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMTAsICdub25lJywgJ2NvbnRpbnVlJyk7Ci0gICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2Vu
ZCcpOwotICAgIC8vIFRoZSB0aW1lb3V0IHVzZWQgdG8gYmUgb25seSAxMDAsIGJ1dCB3aGVuIHdl
IGFkZGVkIHN1cHBvcnQgZm9yIHJ1YmJlci1iYW5kaW5nIGluIG92ZXJmbG93Ci0gICAgLy8gYXJl
YXMsIHdlIGZvdW5kIHdlIGhhZCB0byBpbmNyZWFzZSB0aGUgdGltZW91dCB0byBhbGxvdyB0aGUg
cnViYmVyLWJhbmQgdG8gZmluaXNoLgotICAgIHNldFRpbWVvdXQoY2hlY2tGb3JGaXJzdFNjcm9s
bCwgMTAwMCk7Ci19CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICB2YXIgd3JhcHBl
clRhcmdldDsKKyAgICB2YXIgZGl2VGFyZ2V0OworICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25C
ZWZvcmU7CisgICAgdmFyIHdyYXBwZXJTY3JvbGxQb3NpdGlvbkJlZm9yZTsKKyAgICB2YXIgZGl2
U2Nyb2xsUG9zaXRpb25CZWZvcmU7CisKKyAgICBmdW5jdGlvbiBjaGVja0ZvclNlY29uZFNjcm9s
bCgpCisgICAgeworICAgICAgICAvLyAncGFyZW50JyBzaG91bGQgaGF2ZSBzY3JvbGxlZCwgdGhl
IGNvbnRlbnQgb2YgJ3RhcmdldCcgc2hvdWxkCisgICAgICAgIC8vIG5vdCBoYXZlIHNjcm9sbGVk
LCBhbmQgJ3dyYXBwZXInIHNob3VsZCBub3QgaGF2ZSBzY3JvbGxlZC4KKyAgICAgICAgdmFyIHBh
Z2VTY3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxU
b3A7CisgICAgICAgIHZhciB3cmFwcGVyU2Nyb2xsUG9zaXRpb25BZnRlciA9IHdyYXBwZXJUYXJn
ZXQuc2Nyb2xsVG9wOworICAgICAgICB2YXIgZGl2U2Nyb2xsUG9zaXRpb25BZnRlciA9IGRpdlRh
cmdldC5zY3JvbGxUb3A7CisKKyAgICAgICAgZGVidWcoIlNlY29uZCBzY3JvbGwgZXZlbnQ6Iik7
CisgICAgICAgIGlmIChwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gcGFnZVNjcm9sbFBvc2l0
aW9uQWZ0ZXIpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJQYWdlIHJlY2VpdmVkIHdoZWVsIGV2
ZW50cyBkdXJpbmcgdGhlIHNlY29uZCBnZXN0dXJlLiIpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJQYWdlIGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMgZHVyaW5n
IHRoZSBzZWNvbmQgZ2VzdHVyZS4iKTsKKworICAgICAgICBpZiAod3JhcHBlclNjcm9sbFBvc2l0
aW9uQmVmb3JlICE9IHdyYXBwZXJTY3JvbGxQb3NpdGlvbkFmdGVyKQorICAgICAgICAgICAgdGVz
dEZhaWxlZCgiV3JhcHBlciByZWNlaXZlZCB3aGVlbCBldmVudHMgZHVyaW5nIHRoZSBzZWNvbmQg
Z2VzdHVyZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdFBhc3NlZCgiV3JhcHBl
ciBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzIGR1cmluZyB0aGUgc2Vjb25kIGdlc3R1cmUu
Iik7CisKKyAgICAgICAgaWYgKGRpdlNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IGRpdlNjcm9sbFBv
c2l0aW9uQWZ0ZXIpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkaXYgcmVjZWl2ZWQgd2hlZWwg
ZXZlbnRzIGR1cmluZyB0aGUgc2Vjb25kIGdlc3R1cmUuIik7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHRlc3RQYXNzZWQoImRpdiBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzIGR1cmlu
ZyB0aGUgc2Vjb25kIGdlc3R1cmUuIik7CisKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAg
fQogCi1mdW5jdGlvbiBzZXR1cFRvcExldmVsKCkgeworICAgIGZ1bmN0aW9uIGNoZWNrRm9yRmly
c3RTY3JvbGwoKQorICAgIHsKKyAgICAgICAgLy8gJ3BhcmVudCcgc2hvdWxkIG5vdCBoYXZlIHNj
cm9sbGVkLCBhbmQgdGhlIGNvbnRlbnQgb2YgJ3RhcmdldCcgc2hvdWxkCisgICAgICAgIC8vIG5v
dCBoYXZlIG1vdmVkLiBIb3dldmVyLCAnd3JhcHBlcicgc2hvdWxkIGhhdmUgbW92ZWQuCisgICAg
ICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wOworICAgICAgICB2YXIgd3JhcHBlclNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSB3
cmFwcGVyVGFyZ2V0LnNjcm9sbFRvcDsKKyAgICAgICAgdmFyIGRpdlNjcm9sbFBvc2l0aW9uQWZ0
ZXIgPSBkaXZUYXJnZXQuc2Nyb2xsVG9wOworCisgICAgICAgIGRlYnVnKCJGaXJzdCBzY3JvbGwg
ZXZlbnQ6Iik7CisgICAgICAgIGlmIChwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gcGFnZVNj
cm9sbFBvc2l0aW9uQWZ0ZXIpCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJQYWdlIHJlY2VpdmVk
IHdoZWVsIGV2ZW50cyBkdXJpbmcgdGhlIGZpcnN0IGdlc3R1cmUuIik7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50
cyBkdXJpbmcgdGhlIGZpcnN0IGdlc3R1cmUuIik7CisKKyAgICAgICAgaWYgKHdyYXBwZXJTY3Jv
bGxQb3NpdGlvbkJlZm9yZSAhPSB3cmFwcGVyU2Nyb2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIldyYXBwZXIgcmVjZWl2ZWQgd2hlZWwgZXZlbnRzIGR1cmluZyB0aGUg
Zmlyc3QgZ2VzdHVyZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgi
V3JhcHBlciBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzIGR1cmluZyB0aGUgZmlyc3QgZ2Vz
dHVyZS4iKTsKKworICAgICAgICBpZiAoZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gZGl2U2Ny
b2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoImRpdiByZWNlaXZlZCB3
aGVlbCBldmVudHMgZHVyaW5nIHRoZSBmaXJzdCBnZXN0dXJlLiIpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJkaXYgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cyBk
dXJpbmcgdGhlIGZpcnN0IGdlc3R1cmUuIik7CisKKyAgICAgICAgd3JhcHBlclNjcm9sbFBvc2l0
aW9uQmVmb3JlID0gd3JhcHBlclRhcmdldC5zY3JvbGxUb3A7CisKKyAgICAgICAgZXZlbnRTZW5k
ZXIubW9uaXRvcldoZWVsRXZlbnRzKCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnKTsKKyAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScp
OworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicp
OworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJyk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQn
KTsKKyAgICAgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVzKGNoZWNr
Rm9yU2Vjb25kU2Nyb2xsKTsKKyAgICB9CiAKLSAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7
Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIGZ1bmN0aW9uIHNjcm9s
bFRlc3QoKQorICAgIHsKKyAgICAgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7CisKKyAgICAgICAgZGl2VGFyZ2V0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworICAgICAgICBkaXZUYXJnZXQuc2Nyb2xs
VG9wID0gZGl2VGFyZ2V0LnNjcm9sbEhlaWdodCAtIGRpdlRhcmdldC5jbGllbnRIZWlnaHQgLSAx
MDA7CisKKyAgICAgICAgZGl2U2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkaXZUYXJnZXQuc2Nyb2xs
VG9wOworCisgICAgICAgIHdyYXBwZXJUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
d3JhcHBlcicpOworICAgICAgICB3cmFwcGVyU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSB3cmFwcGVy
VGFyZ2V0LnNjcm9sbFRvcDsKKyAgICAgICAgZGVidWcoIndyYXBwZXJUYXJnZXQgPSAiICsgd3Jh
cHBlclRhcmdldCk7CisKKyAgICAgICAgLy8gTW92ZSBtb3VzZSB0byBhIHBvc2l0aW9uIHRvIHRo
ZSByaWdodCBzaWRlIG9mIHRoZSB0YWJsZSwgYW5kIG5lYXIgdGhlIGJvdHRvbS4KKyAgICAgICAg
dmFyIHN0YXJ0UG9zWCA9IGRpdlRhcmdldC5vZmZzZXRMZWZ0ICsgZGl2VGFyZ2V0LmNsaWVudFdp
ZHRoICsgNTA7CisgICAgICAgIHZhciBzdGFydFBvc1kgPSBNYXRoLnJvdW5kKGRpdlRhcmdldC5v
ZmZzZXRUb3ApIC0gNDI7IC8vIE9uZSB3aGVlbCB0dXJuIGJlZm9yZSBlbmQuCisKKyAgICAgICAg
ZXZlbnRTZW5kZXIubW9uaXRvcldoZWVsRXZlbnRzKCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0
IG91dHNpZGUgdGhlIGlGcmFtZQorICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJyk7CisgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIDAsICdlbmRlZCcsICdub25lJyk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtNSwgJ25vbmUnLCAnYmVnaW4nKTsKKyAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIC0xMCwgJ25vbmUnLCAnY29udGludWUnKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcpOwor
ICAgICAgICBldmVudFNlbmRlci5jYWxsQWZ0ZXJTY3JvbGxpbmdDb21wbGV0ZXMoY2hlY2tGb3JG
aXJzdFNjcm9sbCk7CisgICAgfQogCi0gICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMTAw
MCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKLSAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAgbWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+
VGhpcyB0ZXN0IGlzIGJldHRlciBydW4gdW5kZXIgRHVtcFJlbmRlclRyZWUuIFRvIG1hbnVhbGx5
IHRlc3QgaXQsIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVyPGJyLz4iCi0gICAgICAgICAgICArICJh
dCB0aGUgdG9wIG9mIHRoZSBwYWdlLCBhbmQgdGhlbiB1c2UgdGhlIG1vdXNlIHdoZWVsIG9yIGEg
dHdvLWZpbmdlciBzd2lwZSB0byBzY3JvbGwgdGhlPGJyLz4iCi0gICAgICAgICAgICArICJkb3du
IHBhc3QgdGhlIGRpdi48YnIvPjxici8+IgotICAgICAgICAgICAgKyAiWW91IHNob3VsZCBub3Qg
c2VlIHRoZSByb3cgb2YgRU5EIGxhYmVscyBpZiB0aGlzIHRlc3QgaXMgc3VjY2Vzc2Z1bC48L3A+
IjsKLSAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgIGZ1
bmN0aW9uIHNldHVwVG9wTGV2ZWwoKQorICAgIHsKKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3Rz
IHRoYXQgYSBzY3JvbGxhYmxlIGRpdiBuZXN0ZWQgaW5zaWRlIGFub3RoZXIgc2Nyb2xsYWJsZSBk
aXYgcHJvcGVybHkgaGFuZGxlcyB3aGVlbCBldmVudHMgdW5kZXIgc3ViLXBpeGVsIGNvbmRpdGlv
bnMuIik7CisgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgICAgIHNl
dFRpbWVvdXQoc2Nyb2xsVGVzdCwgMCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0KLX0KIAorICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4geworICAgICAgICBzZXR1cFRvcExldmVs
KCk7CisgICAgfSwgZmFsc2UpOwogPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KIDxkaXYgaWQ9
InBhcmVudCIgc3R5bGU9ImhlaWdodDogMjAwMHB4OyB3aWR0aDogODAwcHg7Ij4KICAgICA8ZGl2
IGlkPSJ3cmFwcGVyIiBzdHlsZT0nb3ZlcmZsb3cteTogYXV0bzsgb3ZlcmZsb3cteDogaGlkZGVu
OyBtYXgtaGVpZ2h0OiA2MDBweDsnPgogICAgICAgICA8ZGl2IGlkPSJzb3VyY2UiIHN0eWxlPSJo
ZWlnaHQ6IDEwMHB4OyB3aWR0aDogNjAwcHg7Ij4KQEAgLTE2MSw1MSArMTM5LDggQEAgZnVuY3Rp
b24gc2V0dXBUb3BMZXZlbCgpIHsKICAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsYWJsZV9yZWdp
b24iPgogICAgICAgICAgICAgPGgzPlNjcm9sbGFibGUgUmVnaW9uPC9oMz4KICAgICAgICAgICAg
IDxkaXYgaWQ9InRhcmdldCIgc3R5bGU9J292ZXJmbG93LXk6IGF1dG87IG92ZXJmbG93LXg6IGhp
ZGRlbjsgbWF4LWhlaWdodDogNDg1LjU1cHg7Jz4KLSAgICAgICAgICAgICAgICA8dGFibGUgY2xh
c3M9InRhYmxlIiBzdHlsZT0nd2lkdGg6IDk5JSc+Ci0gICAgICAgICAgICAgICAgICAgIDx0cj48
dGg+Q291bnQ8L3RoPjx0aD5EQVRBPC90aD48dGg+UmV2IENvdW50PC90aD48L3RyPgotICAgICAg
ICAgICAgICAgICAgICA8dHI+PHRkPlRPUCBUT1AgVE9QIFRPUCBUT1A8L3RkPjx0ZD5UT1AgVE9Q
IFRPUCBUT1AgVE9QPC90ZD48dGQ+VE9QIFRPUCBUT1AgVE9QIFRPUDwvdGQ+PC90cj4KLSAgICAg
ICAgICAgICAgICAgICAgPHRyPjx0ZD4xPC90ZD48dGQ+MC4xMTAwPC90ZD48dGQ+NDA8L3RkPjwv
dHI+Ci0gICAgICAgICAgICAgICAgICAgIDx0cj48dGQ+MjwvdGQ+PHRkPjAuMTE1NTwvdGQ+PHRk
PjM5PC90ZD48L3RyPgotICAgICAgICAgICAgICAgICAgICA8dHI+PHRkPjM8L3RkPjx0ZD4wLjIy
MDA8L3RkPjx0ZD4zODwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICAgICAgPHRyPjx0ZD40PC90
ZD48dGQ+MC4yMjU1PC90ZD48dGQ+Mzc8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgICAgIDx0
cj48dGQ+NTwvdGQ+PHRkPjAuMzMwMDwvdGQ+PHRkPjM2PC90ZD48L3RyPgotICAgICAgICAgICAg
ICAgICAgICA8dHI+PHRkPjY8L3RkPjx0ZD4wLjMzNTU8L3RkPjx0ZD4zNTwvdGQ+PC90cj4KLSAg
ICAgICAgICAgICAgICAgICAgPHRyPjx0ZD43PC90ZD48dGQ+MC40NDAwPC90ZD48dGQ+MzQ8L3Rk
PjwvdHI+Ci0gICAgICAgICAgICAgICAgICAgIDx0cj48dGQ+ODwvdGQ+PHRkPjAuNDQ1NTwvdGQ+
PHRkPjMzPC90ZD48L3RyPgotICAgICAgICAgICAgICAgICAgICA8dHI+PHRkPjk8L3RkPjx0ZD4w
LjU1MDA8L3RkPjx0ZD4zMjwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICAgICAgPHRyPjx0ZD4x
MDwvdGQ+PHRkPjAuNTU1NTwvdGQ+PHRkPjMxPC90ZD48L3RyPgotICAgICAgICAgICAgICAgICAg
ICA8dHI+PHRkPjExPC90ZD48dGQ+MC42NjAwPC90ZD48dGQ+MzA8L3RkPjwvdHI+Ci0gICAgICAg
ICAgICAgICAgICAgIDx0cj48dGQ+MTI8L3RkPjx0ZD4wLjY2NTU8L3RkPjx0ZD4yOTwvdGQ+PC90
cj4KLSAgICAgICAgICAgICAgICAgICAgPHRyPjx0ZD4xMzwvdGQ+PHRkPjAuNzcwMDwvdGQ+PHRk
PjI4PC90ZD48L3RyPgotICAgICAgICAgICAgICAgICAgICA8dHI+PHRkPjE0PC90ZD48dGQ+MC43
NzU1PC90ZD48dGQ+Mjc8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgICAgIDx0cj48dGQ+MTU8
L3RkPjx0ZD4wLjg4MDA8L3RkPjx0ZD4yNjwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICAgICAg
PHRyPjx0ZD4xNjwvdGQ+PHRkPjAuODg1NTwvdGQ+PHRkPjI1PC90ZD48L3RyPgotICAgICAgICAg
ICAgICAgICAgICA8dHI+PHRkPjE3PC90ZD48dGQ+MC45OTAwPC90ZD48dGQ+MjQ8L3RkPjwvdHI+
Ci0gICAgICAgICAgICAgICAgICAgIDx0cj48dGQ+MTg8L3RkPjx0ZD4wLjk5NTU8L3RkPjx0ZD4y
MzwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICAgICAgPHRyPjx0ZD4xOTwvdGQ+PHRkPjAuOTk5
OTwvdGQ+PHRkPjIyPC90ZD48L3RyPgotICAgICAgICAgICAgICAgICAgICA8dHI+PHRkPjIwPC90
ZD48dGQ+MS4wMDAwPC90ZD48dGQ+MjE8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgICAgIDx0
cj48dGQ+MjE8L3RkPjx0ZD4xLjAwMDA8L3RkPjx0ZD4yMDwvdGQ+PC90cj4KLSAgICAgICAgICAg
ICAgICAgICAgPHRyPjx0ZD4yMjwvdGQ+PHRkPjAuOTk5OTwvdGQ+PHRkPjE5PC90ZD48L3RyPgot
ICAgICAgICAgICAgICAgICAgICA8dHI+PHRkPjIzPC90ZD48dGQ+MC45OTU1PC90ZD48dGQ+MTg8
L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgICAgIDx0cj48dGQ+MjQ8L3RkPjx0ZD4wLjk5MDA8
L3RkPjx0ZD4xNzwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICAgICAgPHRyPjx0ZD4yNTwvdGQ+
PHRkPjAuODg1NTwvdGQ+PHRkPjE2PC90ZD48L3RyPgotICAgICAgICAgICAgICAgICAgICA8dHI+
PHRkPjI2PC90ZD48dGQ+MC44ODAwPC90ZD48dGQ+MTU8L3RkPjwvdHI+Ci0gICAgICAgICAgICAg
ICAgICAgIDx0cj48dGQ+Mjc8L3RkPjx0ZD4wLjc3NTU8L3RkPjx0ZD4xNDwvdGQ+PC90cj4KLSAg
ICAgICAgICAgICAgICAgICAgPHRyPjx0ZD4yODwvdGQ+PHRkPjAuNzcwMDwvdGQ+PHRkPjEzPC90
ZD48L3RyPgotICAgICAgICAgICAgICAgICAgICA8dHI+PHRkPjI5PC90ZD48dGQ+MC42NjU1PC90
ZD48dGQ+MTI8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgICAgIDx0cj48dGQ+MzA8L3RkPjx0
ZD4wLjY2MDA8L3RkPjx0ZD4xMTwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICAgICAgPHRyPjx0
ZD4zMTwvdGQ+PHRkPjAuNTU1NTwvdGQ+PHRkPjEwPC90ZD48L3RyPgotICAgICAgICAgICAgICAg
ICAgICA8dHI+PHRkPjMyPC90ZD48dGQ+MC41NTAwPC90ZD48dGQ+OTwvdGQ+PC90cj4KLSAgICAg
ICAgICAgICAgICAgICAgPHRyPjx0ZD4zMzwvdGQ+PHRkPjAuNDQ1NTwvdGQ+PHRkPjg8L3RkPjwv
dHI+Ci0gICAgICAgICAgICAgICAgICAgIDx0cj48dGQ+MzQ8L3RkPjx0ZD4wLjQ0MDA8L3RkPjx0
ZD43PC90ZD48L3RyPgotICAgICAgICAgICAgICAgICAgICA8dHI+PHRkPjM1PC90ZD48dGQ+MC4z
MzU1PC90ZD48dGQ+NjwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICAgICAgPHRyPjx0ZD4zNjwv
dGQ+PHRkPjAuMzMwMDwvdGQ+PHRkPjU8L3RkPjwvdHI+Ci0gICAgICAgICAgICAgICAgICAgIDx0
cj48dGQ+Mzc8L3RkPjx0ZD4wLjIyNTU8L3RkPjx0ZD40PC90ZD48L3RyPgotICAgICAgICAgICAg
ICAgICAgICA8dHI+PHRkPjM4PC90ZD48dGQ+MC4yMjAwPC90ZD48dGQ+MzwvdGQ+PC90cj4KLSAg
ICAgICAgICAgICAgICAgICAgPHRyPjx0ZD4zOTwvdGQ+PHRkPjAuMTE1NTwvdGQ+PHRkPjI8L3Rk
PjwvdHI+Ci0gICAgICAgICAgICAgICAgICAgIDx0cj48dGQ+NDA8L3RkPjx0ZD4wLjExMDA8L3Rk
Pjx0ZD4xPC90ZD48L3RyPgotICAgICAgICAgICAgICAgICAgICA8dHI+PHRkPkVORCBFTkQgRU5E
IEVORCBFTkQ8L3RkPjx0ZD5FTkQgRU5EIEVORCBFTkQgRU5EPC90ZD48dGQ+RU5EIEVORCBFTkQg
RU5EIEVORDwvdGQ+PC90cj4KLSAgICAgICAgICAgICAgICA8L3RhYmxlPgorICAgICAgICAgICAg
ICAgIDxkaXYgY2xhc3M9ImNvbnRlbnRzIj4KKyAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAg
ICAgICAgIDwvZGl2PgogICAgICAgICAgICAgPGRpdiBpZD0iYm90dG9tIiBzdHlsZT0iaGVpZ2h0
OiAxMDBweDsgd2lkdGg6IDYwMHB4OyI+CiAgICAgICAgICAgICAgICAgPHA+QSBzZXQgb2YgaW5m
b3JtYXRpb24gYXQgdGhlIGJvdHRvbSBvZiB0aGUgdGFibGUuPC9wPgpAQCAtMjE0LDkgKzE0OSw2
IEBAIGZ1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7CiAgICAgPC9kaXY+CiA8L2Rpdj4KIDxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEg
c2Nyb2xsYWJsZSBkaXYgbmVzdGVkIGluc2lkZSBhbm90aGVyIHNjcm9sbGFibGUgZGl2IHByb3Bl
cmx5IGhhbmRsZXMgd2hlZWwgZXZlbnRzIHVuZGVyIHN1Yi1waXhlbCBjb25kaXRpb25zLiIpOwot
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtbmVzdGVkLWlmcmFtZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtbmVzdGVkLWlmcmFt
ZS1leHBlY3RlZC50eHQKaW5kZXggMWI2ZjY2N2U4YTU3Y2IyZTMyMmMzMzNmZjkzNDcwYmFhN2Qw
Y2QzNi4uMDA2OGI3ZGMyMDNmY2E4ODgxYjM4NDBlYWMzNTI3ZTk5NjdmY2JhNiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLW5lc3RlZC1pZnJh
bWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5n
L3Njcm9sbC1uZXN0ZWQtaWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtNSwxMCArNSwxMCBAQCBUZXN0
cyB0aGF0IGlmcmFtZSBkb2VzIHNjcm9sbCB3aGVuIGlubmVyIGlmcmFtZSBpcyBOT1Qgc2Nyb2xs
YWJsZS4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKIElGcmFtZSBkaXNwbGF5IGhlaWdodCA9IDEw
MDAKIE1vdXNlIG1vdmVkIHRvICgyOCwgODgpCiBQQVNTIGlmcmFtZSBkaWQgc2Nyb2xsLgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1uZXN0ZWQtaWZy
YW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtbmVz
dGVkLWlmcmFtZS5odG1sCmluZGV4IGJjZTcxZTY0NWRjZjMyYWJkMGVjNDNjYTI5OTE0MGUzZjcz
MGYwNjUuLjFhZWM4Y2Q1YmU4Zjg3ZmE5YzMwNTAyMGMwNWRlYWQzZmU3MDNlNDQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1uZXN0ZWQtaWZy
YW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xs
LW5lc3RlZC1pZnJhbWUuaHRtbApAQCAtMSw4MiArMSw4MSBAQAogPCFET0NUWVBFIGh0bWw+CiA8
aHRtbD4KIDxoZWFkPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9U
Ui9ET00tTGV2ZWwtMy1FdmVudHMvI2V2ZW50cy1XaGVlbEV2ZW50Ij4KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogICAgIDxzdHlsZT4K
ICAgICBpZnJhbWUgewogICAgICAgICB3aWR0aDogODAwcHg7CiAgICAgICAgIGhlaWdodDogMTAw
MHB4OwogICAgIH0KICAgICA8L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0PgotCi12
YXIgaWZyYW1lVGFyZ2V0OwotdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZTsKLXZhciBpRnJh
bWVTY3JvbGxQb3NpdGlvbkJlZm9yZTsKLXZhciBjb250aW51ZUNvdW50ID0gNTsKLQotZnVuY3Rp
b24gY2hlY2tGb3JTY3JvbGwoKSB7CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAganNUZXN0
SXNBc3luYyA9IHRydWU7CiAKLSAgICAvLyBUaGUgSUZyYW1lIHNob3VsZCBub3QgaGF2ZSBzY3Jv
bGxlZCBhdCBhbGwuCi0gICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQu
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7Ci0gICAgdmFyIGlGcmFtZVNjcm9sbFBvc2l0aW9u
QWZ0ZXIgPSB3aW5kb3cuZnJhbWVzWydzY3JvbGxhYmxlX2lmcmFtZSddLmRvY3VtZW50LnNjcm9s
bGluZ0VsZW1lbnQuc2Nyb2xsVG9wOworICAgICAgICB2YXIgaWZyYW1lVGFyZ2V0OworICAgICAg
ICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlOworICAgICAgICB2YXIgaWZyYW1lU2Nyb2xs
UG9zaXRpb25CZWZvcmU7CiAKLSAgICBpZiAoaUZyYW1lU2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0g
aUZyYW1lU2Nyb2xsUG9zaXRpb25BZnRlcikKLSAgICAgICAgdGVzdFBhc3NlZCgiaWZyYW1lIGRp
ZCBzY3JvbGwuIik7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0RmFpbGVkKCJpZnJhbWUgZGlkIE5P
VCBzY3JvbGwuIik7CisgICAgICAgIGZ1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkKKyAgICAgICAg
eworICAgICAgICAgICAgLy8gVGhlIGlmcmFtZSBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQg
YWxsLgorICAgICAgICAgICAgdmFyIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyID0gZG9jdW1lbnQu
c2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7CisgICAgICAgICAgICB2YXIgaWZyYW1lU2Nyb2xs
UG9zaXRpb25BZnRlciA9IHdpbmRvdy5mcmFtZXNbJ3Njcm9sbGFibGVfaWZyYW1lJ10uZG9jdW1l
bnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7CiAKLSAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKLX0KKyAgICAgICAgICAgIGlmIChpZnJhbWVTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBp
ZnJhbWVTY3JvbGxQb3NpdGlvbkFmdGVyKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoImlm
cmFtZSBkaWQgc2Nyb2xsLiIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoImlmcmFtZSBkaWQgTk9UIHNjcm9sbC4iKTsKIAotZnVuY3Rpb24gc2Nyb2xsVGVz
dCgpIHsKLSAgICAvLyBTZWUgd2hlcmUgb3VyIElGcmFtZSBsaXZlczoKLSAgICBwYWdlU2Nyb2xs
UG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsKKyAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CiAKLSAgICBpZnJhbWVUYXJnZXQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Nyb2xsYWJsZV9pZnJhbWUnKTsKKyAgICAgICAg
ZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHBhZ2VTY3JvbGxQ
b3NpdGlvbkJlZm9yZSA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOwogCi0g
ICAgdmFyIGlGcmFtZVNjcm9sbGluZ0VsZW1lbnQgPSB3aW5kb3cuZnJhbWVzWydzY3JvbGxhYmxl
X2lmcmFtZSddLmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQ7Ci0gICAgaUZyYW1lU2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3AgPSBpRnJhbWVTY3JvbGxpbmdFbGVtZW50LnNjcm9sbEhlaWdodCAt
IGlmcmFtZVRhcmdldC5jbGllbnRIZWlnaHQgLSAxMDA7CisgICAgICAgICAgICBpZnJhbWVUYXJn
ZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Nyb2xsYWJsZV9pZnJhbWUnKTsKIAotICAg
IGlGcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gaUZyYW1lU2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3A7CisgICAgICAgICAgICB2YXIgaWZyYW1lU2Nyb2xsaW5nRWxlbWVudCA9IHdpbmRvdy5m
cmFtZXNbJ3Njcm9sbGFibGVfaWZyYW1lJ10uZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudDsKKyAg
ICAgICAgICAgIGlmcmFtZVNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wID0gaWZyYW1lU2Nyb2xs
aW5nRWxlbWVudC5zY3JvbGxIZWlnaHQgLSBpZnJhbWVUYXJnZXQuY2xpZW50SGVpZ2h0IC0gMTAw
OwogCi0gICAgLy8gU2Nyb2xsIHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0
LgotICAgIHZhciBzdGFydFBvc1ggPSBpZnJhbWVUYXJnZXQub2Zmc2V0TGVmdCArIDIwOwotICAg
IGRlYnVnKCJJRnJhbWUgZGlzcGxheSBoZWlnaHQgPSAiICsgaWZyYW1lVGFyZ2V0LmNsaWVudEhl
aWdodCk7Ci0gICAgdmFyIHN0YXJ0UG9zWSA9IGlmcmFtZVRhcmdldC5vZmZzZXRUb3AgKyA2MDsg
Ly8gT25lIHdoZWVsIHR1cm4gYmVmb3JlIGVuZC4KLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVU
byhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRl
IHRoZSBpRnJhbWUKLSAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAi
LCAiICsgc3RhcnRQb3NZICsgIikiKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7Ci0g
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywg
dHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdp
bicsIHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKLSAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUn
LCAnZW5kJywgdHJ1ZSk7Ci0gICAgc2V0VGltZW91dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKLX0K
KyAgICAgICAgICAgIGlmcmFtZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gaWZyYW1lU2Nyb2xsaW5n
RWxlbWVudC5zY3JvbGxUb3A7CiAKLWZ1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7CisgICAgICAg
ICAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2UgdW50aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQuCisg
ICAgICAgICAgICB2YXIgc3RhcnRQb3NYID0gaWZyYW1lVGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsK
KyAgICAgICAgICAgIGRlYnVnKCJJRnJhbWUgZGlzcGxheSBoZWlnaHQgPSAiICsgaWZyYW1lVGFy
Z2V0LmNsaWVudEhlaWdodCk7CisgICAgICAgICAgICB2YXIgc3RhcnRQb3NZID0gaWZyYW1lVGFy
Z2V0Lm9mZnNldFRvcCArIDYwOyAvLyBPbmUgd2hlZWwgdHVybiBiZWZvcmUgZW5kLgorICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOyAvLyBN
YWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1lCisgICAgICAgICAgICBkZWJ1
ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAiICsgc3RhcnRQb3NZICsgIiki
KTsKIAotICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb25pdG9yV2hlZWxFdmVu
dHMoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnLCB0cnVlKTsKKyAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdu
b25lJywgdHJ1ZSk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnLCB0cnVlKTsKKyAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgJ25vbmUnLCAnYmVnaW4nLCB0cnVlKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAn
Y29udGludWUnLCB0cnVlKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnLCB0cnVlKTsKKyAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLmNhbGxBZnRlclNjcm9sbGluZ0NvbXBsZXRlcyhjaGVja0Zv
clNjcm9sbCk7CisgICAgICAgIH0KIAotICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDEw
MDApOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgncGFyZW50Jyk7Ci0gICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxw
PlRoaXMgdGVzdCBpcyBiZXR0ZXIgcnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxs
eSB0ZXN0IGl0LCBwbGFjZSB0aGUgbW91c2UgcG9pbnRlcjxici8+IgotICAgICAgICAgICAgKyAi
aW5zaWRlIHRoZSBJRnJhbWUsIHRoZW4gdXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1maW5n
ZXIgc3dpcGUgdG8gc2Nyb2xsIHRoZSBJRnJhbWUgdG8gdGhlIGJvdHRvbSAoYW5kIGJleW9uZCku
PGJyLz4iCi0gICAgICAgICAgICArICI8YnIvPjxici8+IgotICAgICAgICAgICAgKyAiVGhlIHRl
c3QgcGFzc2VzIGlmIHlvdSBzY3JvbGwgZmFyIGVub3VnaCB0byBzZWUgdGhlIHJvdyBvZiBFTkQg
bGFiZWxzIGJ1dCB0aGUgbWFpbiBwYWdlIGRvZXMgbm90IHNjcm9sbC48L3A+IjsKLSAgICAgICAg
bWVzc2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOwotICAgIH0KLX0KLQotPC9zY3Jp
cHQ+CisgICAgICAgIGZ1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKQorICAgICAgICB7CisgICAgICAg
ICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBpZnJhbWUgZG9lcyBzY3JvbGwgd2hlbiBpbm5l
ciBpZnJhbWUgaXMgTk9UIHNjcm9sbGFibGUuIik7CisgICAgICAgICAgICBpZiAod2luZG93LmV2
ZW50U2VuZGVyKSB7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAxMDAw
KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2
YXIgbWVzc2FnZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudCcpOwor
ICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
KyAgICAgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRvIG1hbnVhbGx5IHJ1biB0aGlz
IHRlc3QsIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVyICIKKyAgICAgICAgICAgICAgICArICJpbnNp
ZGUgdGhlIGlmcmFtZSwgdGhlbiB1c2UgdGhlIG1vdXNlIHdoZWVsIG9yIGEgdHdvLWZpbmdlciBz
d2lwZSB0byBzY3JvbGwgdGhlIGlmcmFtZSB0byB0aGUgYm90dG9tIChhbmQgYmV5b25kKS48L3A+
IgorICAgICAgICAgICAgICAgICsgIjxwPlRoZSB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2Nyb2xsIGZh
ciBlbm91Z2ggdG8gc2VlIHRoZSByb3cgb2YgRU5EIGxhYmVscyBidXQgdGhlIG1haW4gcGFnZSBk
b2VzIG5vdCBzY3JvbGwuPC9wPiI7CisgICAgICAgICAgICBtZXNzYWdlTG9jYXRpb24uYXBwZW5k
Q2hpbGQobWVzc2FnZSk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSAg
ICAgICAgCisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KIDxkaXYgaWQ9InBhcmVudCIg
c3R5bGU9ImhlaWdodDogMjAwMHB4Ij4KICAgICA8ZGl2IGlkPSJzb3VyY2UiIHN0eWxlPSJoZWln
aHQ6IDIwcHgiPgogICAgICAgICBQdXQgbW91c2UgaW5zaWRlIHRoZSBpZnJhbWUgKGJlbG93KSBh
bmQgZmxpY2sgZG93bndhcmRzCkBAIC04NSw5ICs4NCw2IEBAIGZ1bmN0aW9uIHNldHVwVG9wTGV2
ZWwoKSB7CiAgICAgPC9pZnJhbWU+CiA8L2Rpdj4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgot
PHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGlmcmFtZSBkb2VzIHNjcm9sbCB3aGVu
IGlubmVyIGlmcmFtZSBpcyBOT1Qgc2Nyb2xsYWJsZS4iKTsKLTwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5
PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hp
bmcvc2Nyb2xsLXNlbGVjdC1ib3R0b20tdGVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtc2VsZWN0LWJvdHRvbS10ZXN0LWV4cGVjdGVk
LnR4dAppbmRleCAwNmU5NjJmZjU3OGI3MGQ2NGM0NmE0NTE3OGRmYmViMzA3NjljNmM5Li5iMzMx
ZDBiMzA2ODJiNmIxMGZiMDdjNWUwMDQzNmMwYWIzN2RlMzJlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtc2VsZWN0LWJvdHRvbS10ZXN0LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3Jv
bGwtc2VsZWN0LWJvdHRvbS10ZXN0LWV4cGVjdGVkLnR4dApAQCAtNywxMCArNywxMCBAQCBUZXN0
cyB0aGF0IGEgc2VsZWN0IGRvZXNuJ3QgcGFzcyB3aGVlbCBldmVudHMgdG8gbWFpbiBmcmFtZSB3
aGVuIHNjcm9sbGluZyBhdCBibwogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQogZGl2IGRpc3BsYXkg
aGVpZ2h0ID0gMTExCiBNb3VzZSBtb3ZlZCB0byAoMzAsIDM3OCkKIFBBU1MgUGFnZSBkaWQgbm90
IHJlY2VpdmUgd2hlZWwgZXZlbnRzLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2xhdGNoaW5nL3Njcm9sbC1zZWxlY3QtYm90dG9tLXRlc3QuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1zZWxlY3QtYm90dG9tLXRlc3QuaHRtbAppbmRl
eCA2ZTBmMjA2M2E1Y2QyN2QyMzllZmNkYTZiYTNjOTI0NzQyMzA3YmFlLi5lYTcxMTQzYzIyZDE1
OWU0MmQ5YzRiZWNmYWEwMjcwZWEwZTY0Zjg4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtc2VsZWN0LWJvdHRvbS10ZXN0Lmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLXNlbGVjdC1ib3R0b20t
dGVzdC5odG1sCkBAIC01LDEwNyArNSw4OCBAQAogLnNjcm9sbGFibGVfcmVnaW9uIHsKICAgICB3
aWR0aDogNjgwcHg7CiB9Ci0KLS50YWJsZSB0ZCwgLnRhYmxlIHRoIHsKLSAgICBwYWRkaW5nOiAy
cHg7Ci19Ci0KLS50YWJsZSB0aCB7Ci0gICAgaGVpZ2h0OiAyMHB4OwotICAgIHRleHQtYWxpZ246
IGxlZnQ7Ci0gICAgZm9udC13ZWlnaHQ6IHN0cm9uZzsKLX0KLQotLnRhYmxlIHRyOm50aC1jaGls
ZChvZGQpIHsKLSAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzOwotfQotCiAuc2Nyb2xsYWJsZV9zZWxl
Y3Qgb3B0aW9uOm50aC1jaGlsZChvZGQpIHsKICAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzOwogfQot
CiA8L3N0eWxlPgogPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gb25Mb2FkKCkgewotICAgIHNldHVwVG9w
TGV2ZWwoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJvbkxvYWQoKTsi
PgotPHNjcmlwdD4KKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICB2YXIgY2xpZW50SW5z
ZXQgPSAxMDA7CiAKLXZhciBjbGllbnRJbnNldCA9IDEwMDsKKyAgICB2YXIgc2VsZWN0VGFyZ2V0
OworICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7CisgICAgdmFyIHNlbGVjdFNjcm9s
bFBvc2l0aW9uQmVmb3JlOwogCi12YXIgc2VsZWN0VGFyZ2V0OwotdmFyIHBhZ2VTY3JvbGxQb3Np
dGlvbkJlZm9yZTsKLXZhciBzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZTsKLXZhciBjb250aW51
ZUNvdW50ID0gNTsKKyAgICBmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpCisgICAgeworICAgICAg
ICAvLyBUaGUgcGFnZSBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgorICAgICAgICB2
YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNj
cm9sbFRvcDsKKyAgICAgICAgdmFyIHNlbGVjdFNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBzZWxlY3RU
YXJnZXQuc2Nyb2xsVG9wOwogCi1mdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpIHsKKyAgICAgICAg
aWYgKHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSAhPSBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlcikK
KyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlBhZ2UgcmVjZWl2ZWQgd2hlZWwgZXZlbnRzLiIpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJQYWdlIGRpZCBub3QgcmVjZWl2
ZSB3aGVlbCBldmVudHMuIik7CiAKLSAgICAvLyBUaGUgcGFnZSBzaG91bGQgbm90IGhhdmUgc2Ny
b2xsZWQgYXQgYWxsLgotICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50
LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOwotICAgIHZhciBzZWxlY3RTY3JvbGxQb3NpdGlv
bkFmdGVyID0gc2VsZWN0VGFyZ2V0LnNjcm9sbFRvcDsKLQotICAgIC8vZGVidWcoIlBhZ2UgYmVm
b3JlOiAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICsgIiwgc2VsZWN0IGJlZm9yZTogIiAr
IHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlKTsKLSAgICAvL2RlYnVnKCJQYWdlIGFmdGVyOiAg
IiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyICsgIiwgc2VsZWN0IGFmdGVyOiAiICsgc2VsZWN0
U2Nyb2xsUG9zaXRpb25BZnRlcik7Ci0KLSAgICBpZiAocGFnZVNjcm9sbFBvc2l0aW9uQmVmb3Jl
ICE9IHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVyKQotICAgICAgICB0ZXN0RmFpbGVkKCJQYWdlIHJl
Y2VpdmVkIHdoZWVsIGV2ZW50cy4iKTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RQYXNzZWQoIlBh
Z2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsKLQotICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOwotfQorICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9CiAKLWZ1bmN0aW9u
IHNjcm9sbFRlc3QoKSB7Ci0gICAgLy8gU2VlIHdoZXJlIG91ciBJRnJhbWUgbGl2ZXM6Ci0gICAg
cGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3Jv
bGxUb3A7CisgICAgZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCisgICAgeworICAgICAgICBwYWdlU2Ny
b2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcDsK
IAotICAgIHNlbGVjdFRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsK
LSAgICBzZWxlY3RUYXJnZXQuc2Nyb2xsVG9wID0gc2VsZWN0VGFyZ2V0LnNjcm9sbEhlaWdodCAt
IHNlbGVjdFRhcmdldC5jbGllbnRIZWlnaHQgLSAxMDA7CisgICAgICAgIHNlbGVjdFRhcmdldCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKyAgICAgICAgc2VsZWN0VGFyZ2V0
LnNjcm9sbFRvcCA9IHNlbGVjdFRhcmdldC5zY3JvbGxIZWlnaHQgLSBzZWxlY3RUYXJnZXQuY2xp
ZW50SGVpZ2h0IC0gMTAwOwogCi0gICAgc2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBzZWxl
Y3RUYXJnZXQuc2Nyb2xsVG9wOworICAgICAgICBzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZSA9
IHNlbGVjdFRhcmdldC5zY3JvbGxUb3A7CiAgCi0gICAgLy8gU2Nyb2xsIHRoZSAjc291cmNlIHVu
dGlsIHdlIHJlYWNoIHRoZSAjdGFyZ2V0LgotICAgIHZhciBzdGFydFBvc1ggPSBzZWxlY3RUYXJn
ZXQub2Zmc2V0TGVmdCArIDIwOwotICAgIGRlYnVnKCJkaXYgZGlzcGxheSBoZWlnaHQgPSAiICsg
c2VsZWN0VGFyZ2V0LmNsaWVudEhlaWdodCk7Ci0gICAgdmFyIHN0YXJ0UG9zWSA9IE1hdGgucm91
bmQoc2VsZWN0VGFyZ2V0Lm9mZnNldFRvcCkgKyBNYXRoLnJvdW5kKHNlbGVjdFRhcmdldC5jbGll
bnRIZWlnaHQpICsgY2xpZW50SW5zZXQgLSAyOyAvLyBWZXJ5IG5lYXIgdG9wIChhY2NvdW50aW5n
IGZvciB0b3AgY29udGVudCBpbnNldCkuCi0gICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3Rh
cnRQb3NYLCBzdGFydFBvc1kpOwotICAgIGRlYnVnKCJNb3VzZSBtb3ZlZCB0byAoIiArIHN0YXJ0
UG9zWCArICIsICIgKyBzdGFydFBvc1kgKyAiKSIpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnLCB0
cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywg
J25vbmUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnLCB0cnVlKTsKLSAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25l
JywgJ2JlZ2luJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScsIHRydWUpOwotICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAw
LCAnbm9uZScsICdlbmQnLCB0cnVlKTsKLSAgICBzZXRUaW1lb3V0KGNoZWNrRm9yU2Nyb2xsLCAx
MDApOwotfQorICAgICAgICAvLyBTY3JvbGwgdGhlICNzb3VyY2UgdW50aWwgd2UgcmVhY2ggdGhl
ICN0YXJnZXQuCisgICAgICAgIHZhciBzdGFydFBvc1ggPSBzZWxlY3RUYXJnZXQub2Zmc2V0TGVm
dCArIDIwOworICAgICAgICBkZWJ1ZygiZGl2IGRpc3BsYXkgaGVpZ2h0ID0gIiArIHNlbGVjdFRh
cmdldC5jbGllbnRIZWlnaHQpOworICAgICAgICB2YXIgc3RhcnRQb3NZID0gTWF0aC5yb3VuZChz
ZWxlY3RUYXJnZXQub2Zmc2V0VG9wKSArIE1hdGgucm91bmQoc2VsZWN0VGFyZ2V0LmNsaWVudEhl
aWdodCkgKyBjbGllbnRJbnNldCAtIDI7IC8vIFZlcnkgbmVhciB0b3AgKGFjY291bnRpbmcgZm9y
IHRvcCBjb250ZW50IGluc2V0KS4KKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3Rh
cnRQb3NYLCBzdGFydFBvc1kpOworICAgICAgICBkZWJ1ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBz
dGFydFBvc1ggKyAiLCAiICsgc3RhcnRQb3NZICsgIikiKTsKKworICAgICAgICBldmVudFNlbmRl
ci5tb25pdG9yV2hlZWxFdmVudHMoKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScsIHRydWUp
OworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKKyAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdl
ZCcsICdub25lJywgdHJ1ZSk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScsIHRydWUpOworICAg
ICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgLTEsICdub25lJywgJ2JlZ2luJywgdHJ1ZSk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGlu
dWUnLCB0cnVlKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcsIHRydWUpOworICAgICAgICBldmVu
dFNlbmRlci5jYWxsQWZ0ZXJTY3JvbGxpbmdDb21wbGV0ZXMoY2hlY2tGb3JTY3JvbGwpOworICAg
IH0KIAotZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpIHsKKyAgICBmdW5jdGlvbiBzZXR1cFRvcExl
dmVsKCkgCisgICAgeworICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhIHNlbGVjdCBk
b2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRvIG1haW4gZnJhbWUgd2hlbiBzY3JvbGxpbmcgYXQg
Ym90dG9tIik7CiAKLSAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKLSAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgd2luZG93Lmlu
dGVybmFscy5zZXRUb3BDb250ZW50SW5zZXQoY2xpZW50SW5zZXQpOwogCi0gICAgICAgIHNldFRp
bWVvdXQoc2Nyb2xsVGVzdCwgMTAwMCk7Ci0gICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHdpbmRv
dy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAwKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgdmFyIG1l
c3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJlbnQnKTsKICAgICAg
ICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICAgICAg
bWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+VGhpcyB0ZXN0IGlzIGJldHRlciBydW4gdW5kZXIgRHVt
cFJlbmRlclRyZWUuIFRvIG1hbnVhbGx5IHRlc3QgaXQsIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVy
PGJyLz4iCi0gICAgICAgICAgICArICJpbnNpZGUgdGhlIHNlbGVjdCBib3gsIGFuZCBzY3JvbGwg
bmVhciAoYnV0IG5vdCBBVCkgdGhlIGJvdHRvbSBvZiB0aGUgcmFuZ2UuIFVzZSB0aGUgbW91c2Ug
d2hlZWwgb3IgYSB0d28tZmluZ2VyPGJyLz4iCi0gICAgICAgICAgICArICJzd2lwZSB0byBzY3Jv
bGwgdGhyb3VnaCB0aGUgcmVzdCBvZiB0aGUgc2VsZWN0IG9wdGlvbnMuPGJyLz48YnIvPiIKLSAg
ICAgICAgICAgICsgIllvdSBzaG91bGQgbm90IHNlZSB0aGUgcGFnZSBwb3NpdGlvbiBjaGFuZ2Ug
aWYgdGhpcyB0ZXN0IGlzIHN1Y2Nlc3NmdWwuPC9wPiI7CisgICAgICAgIG1lc3NhZ2UuaW5uZXJI
VE1MID0gIjxwPlRvIG1hbnVhbGx5IHJ1biB0aGlzIHRlc3QsIHBsYWNlIHRoZSBtb3VzZSBwb2lu
dGVyICIKKyAgICAgICAgICAgICsgImluc2lkZSB0aGUgc2VsZWN0IGJveCwgYW5kIHNjcm9sbCBu
ZWFyIChidXQgbm90IEFUKSB0aGUgYm90dG9tIG9mIHRoZSByYW5nZS4gVXNlIHRoZSBtb3VzZSB3
aGVlbCBvciBhIHR3by1maW5nZXIgIgorICAgICAgICAgICAgKyAic3dpcGUgdG8gc2Nyb2xsIHRo
cm91Z2ggdGhlIHJlc3Qgb2YgdGhlIHNlbGVjdCBvcHRpb25zLjwvcD4iCisgICAgICAgICAgICAr
ICI8cD5Zb3Ugc2hvdWxkIG5vdCBzZWUgdGhlIHBhZ2UgcG9zaXRpb24gY2hhbmdlIGlmIHRoaXMg
dGVzdCBpcyBzdWNjZXNzZnVsLjwvcD4iOwogICAgICAgICBtZXNzYWdlTG9jYXRpb24uYXBwZW5k
Q2hpbGQobWVzc2FnZSk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0KIAotICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFRvcENvbnRl
bnRJbnNldChjbGllbnRJbnNldCk7Ci19Ci0KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
bG9hZCcsICgpID0+IHsKKyAgICAgICAgc2V0dXBUb3BMZXZlbCgpOworICAgIH0sIGZhbHNlKTsK
IDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CiA8ZGl2IGlkPSJwYXJlbnQiIHN0eWxlPSJoZWln
aHQ6IDIwMDBweDsgd2lkdGg6IDIwMDBweDsiPgogICAgIDxkaXYgaWQ9InNvdXJjZSIgc3R5bGU9
ImhlaWdodDogMTAwcHg7IHdpZHRoOiA1MDBweDsiPgogICAgICAgICBQdXQgbW91c2UgaGVyZSBh
bmQgZmxpY2sgZG93bndhcmRzCkBAIC0xMzksOSArMTIwLDYgQEAgZnVuY3Rpb24gc2V0dXBUb3BM
ZXZlbCgpIHsKICAgICA8L2Rpdj4KIDwvZGl2PgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08
c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSBzZWxlY3QgZG9lc24ndCBwYXNzIHdo
ZWVsIGV2ZW50cyB0byBtYWluIGZyYW1lIHdoZW4gc2Nyb2xsaW5nIGF0IGJvdHRvbSIpOwotPC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1zZWxl
Y3QtbGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0CmluZGV4IDQwOWQxMDBmODc2NmJhNTkx
NDkxNzJjZWUyNTAwY2FlNjkyOWY2NmUuLjkyMzFjNWI3YzY2N2M2ZjIyZWYyNWNlODZkMWM4OGM0
MTdlZDUzNDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5n
L3Njcm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWluZnJhbWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWlu
ZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC03LDkgKzcsOSBAQCBUZXN0cyB0aGF0IGEgc2VsZWN0IGRv
ZXNuJ3QgY29uc3VtZSB3aGVlbCBldmVudHMgd2hlbiBzY3JvbGwgaXMgbGF0Y2hlZCB0byBtYWlu
CiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAorTW91c2UgbW92ZWQgdG8gKDMwLCAxMjcp
CitQQVNTIFNlbGVjdCBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLgogUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCi1Nb3VzZSBtb3ZlZCB0byAoMzAs
IDEyNykKLVBBU1MgU2VsZWN0IGRpZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMuCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1zZWxlY3Qt
bGF0Y2hlZC1tYWluZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNo
aW5nL3Njcm9sbC1zZWxlY3QtbGF0Y2hlZC1tYWluZnJhbWUuaHRtbAppbmRleCAyYzAyYzdmMmQ0
YmU0NWU5YjUxMzhhNGRmZjI2NTcxMDc2NTVhOTNmLi4zMWY2Y2E1NzdlNzg0YTE4MDczYzk5MjQ3
N2E4NGY0NTBjNWMyODQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9s
YXRjaGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQtbWFpbmZyYW1lLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLW1haW5m
cmFtZS5odG1sCkBAIC02LDIwICs2LDYgQEAKICAgICB3aWR0aDogNjgwcHg7CiB9CiAKLS50YWJs
ZSB0ZCwgLnRhYmxlIHRoIHsKLSAgICBwYWRkaW5nOiAycHg7Ci19Ci0KLS50YWJsZSB0aCB7Ci0g
ICAgaGVpZ2h0OiAyMHB4OwotICAgIHRleHQtYWxpZ246IGxlZnQ7Ci0gICAgZm9udC13ZWlnaHQ6
IHN0cm9uZzsKLX0KLQotLnRhYmxlIHRyOm50aC1jaGlsZChvZGQpIHsKLSAgICBiYWNrZ3JvdW5k
OiAjZjNmM2YzOwotfQotCiAuc2Nyb2xsYWJsZV9zZWxlY3Qgb3B0aW9uOm50aC1jaGlsZChvZGQp
IHsKICAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzOwogfQpAQCAtMjcsNzcgKzEzLDc2IEBACiA8L3N0
eWxlPgogPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gb25Mb2FkKCkgewotICAgIHNldHVwVG9wTGV2ZWwo
KTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiPgotPHNj
cmlwdD4KLQotdmFyIHNlbGVjdFRhcmdldDsKLXZhciBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmU7
Ci12YXIgc2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmU7Ci12YXIgY29udGludWVDb3VudCA9IDU7
Ci0KLWZ1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkgeworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVl
OwogCi0gICAgLy8gVGhlIHNlbGVjdCBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQgYXQgYWxsLgot
ICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25BZnRlciA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1l
bnQuc2Nyb2xsVG9wOwotICAgIHZhciBzZWxlY3RTY3JvbGxQb3NpdGlvbkFmdGVyID0gc2VsZWN0
VGFyZ2V0LnNjcm9sbFRvcDsKKyAgICB2YXIgc2VsZWN0VGFyZ2V0OworICAgIHZhciBwYWdlU2Ny
b2xsUG9zaXRpb25CZWZvcmU7CisgICAgdmFyIHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlOwog
Ci0gICAgLy9kZWJ1ZygiUGFnZSBiZWZvcmU6ICIgKyBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUg
KyAiLCBzZWxlY3QgYmVmb3JlOiAiICsgc2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmUpOwotICAg
IC8vZGVidWcoIlBhZ2UgYWZ0ZXI6ICAiICsgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgKyAiLCBz
ZWxlY3QgYWZ0ZXI6ICIgKyBzZWxlY3RTY3JvbGxQb3NpdGlvbkFmdGVyKTsKKyAgICBmdW5jdGlv
biBjaGVja0ZvclNjcm9sbCgpCisgICAgeworICAgICAgICAvLyBUaGUgc2VsZWN0IHNob3VsZCBu
b3QgaGF2ZSBzY3JvbGxlZCBhdCBhbGwuCisgICAgICAgIHZhciBwYWdlU2Nyb2xsUG9zaXRpb25B
ZnRlciA9IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOworICAgICAgICB2YXIg
c2VsZWN0U2Nyb2xsUG9zaXRpb25BZnRlciA9IHNlbGVjdFRhcmdldC5zY3JvbGxUb3A7CiAKLSAg
ICBpZiAoc2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gc2VsZWN0U2Nyb2xsUG9zaXRpb25B
ZnRlcikKLSAgICAgICAgdGVzdEZhaWxlZCgiU2VsZWN0IGNvbnN1bWVkIHdoZWVsIGV2ZW50cy4i
KTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RQYXNzZWQoIlNlbGVjdCBkaWQgbm90IHJlY2VpdmUg
d2hlZWwgZXZlbnRzLiIpOworICAgICAgICBpZiAoc2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmUg
IT0gc2VsZWN0U2Nyb2xsUG9zaXRpb25BZnRlcikKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlNl
bGVjdCBjb25zdW1lZCB3aGVlbCBldmVudHMuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHRlc3RQYXNzZWQoIlNlbGVjdCBkaWQgbm90IHJlY2VpdmUgd2hlZWwgZXZlbnRzLiIpOwogCi0g
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci19Ci0KLWZ1bmN0aW9uIHNjcm9sbFRlc3QoKSB7
Ci0gICAgLy8gU2VlIHdoZXJlIG91ciBJRnJhbWUgbGl2ZXM6Ci0gICAgcGFnZVNjcm9sbFBvc2l0
aW9uQmVmb3JlID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7Ci0KLSAgICBz
ZWxlY3RUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7Ci0KLSAgICBz
ZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IHNlbGVjdFRhcmdldC5zY3JvbGxUb3A7Ci0KLSAg
ICAvLyBTY3JvbGwgdGhlICNzb3VyY2UgdW50aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQuCi0gICAg
dmFyIHN0YXJ0UG9zWCA9IE1hdGgucm91bmQoc2VsZWN0VGFyZ2V0Lm9mZnNldExlZnQpICsgMjA7
Ci0gICAgdmFyIHN0YXJ0UG9zWSA9IE1hdGgucm91bmQoc2VsZWN0VGFyZ2V0Lm9mZnNldFRvcCkg
LSA0MjsgLy8gU2xpZ2h0bHkgbW9yZSB0aGFuIG9uZSB3aGVlbCBzY3JvbGwgYXdheSBmcm9tIHRo
ZSBJRnJhbWUKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9z
WSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpRnJhbWUKLSAgICBkZWJ1
ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAiICsgc3RhcnRQb3NZICsgIiki
KTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTEsICdiZWdhbicsICdub25lJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25l
JywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcs
ICdub25lJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdpbicsIHRydWUpOwotICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25v
bmUnLCAnY29udGludWUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJywgdHJ1ZSk7Ci0gICAg
c2V0VGltZW91dChjaGVja0ZvclNjcm9sbCwgMTAwKTsKLX0KKyAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgfQogCi1mdW5jdGlvbiBzZXR1cFRvcExldmVsKCkgeworICAgIGZ1bmN0aW9uIHNj
cm9sbFRlc3QoKQorICAgIHsKKyAgICAgICAgcGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlID0gZG9j
dW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7CisKKyAgICAgICAgc2VsZWN0VGFyZ2V0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworCisgICAgICAgIHNlbGVjdFNj
cm9sbFBvc2l0aW9uQmVmb3JlID0gc2VsZWN0VGFyZ2V0LnNjcm9sbFRvcDsKKworICAgICAgICAv
LyBTY3JvbGwgdGhlICNzb3VyY2UgdW50aWwgd2UgcmVhY2ggdGhlICN0YXJnZXQuCisgICAgICAg
IHZhciBzdGFydFBvc1ggPSBNYXRoLnJvdW5kKHNlbGVjdFRhcmdldC5vZmZzZXRMZWZ0KSArIDIw
OworICAgICAgICB2YXIgc3RhcnRQb3NZID0gTWF0aC5yb3VuZChzZWxlY3RUYXJnZXQub2Zmc2V0
VG9wKSAtIDQyOyAvLyBTbGlnaHRseSBtb3JlIHRoYW4gb25lIHdoZWVsIHNjcm9sbCBhd2F5IGZy
b20gdGhlIGlmcmFtZQorICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gs
IHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpRnJhbWUK
KyAgICAgICAgZGVidWcoIk1vdXNlIG1vdmVkIHRvICgiICsgc3RhcnRQb3NYICsgIiwgIiArIHN0
YXJ0UG9zWSArICIpIik7CisKKyAgICAgICAgZXZlbnRTZW5kZXIubW9uaXRvcldoZWVsRXZlbnRz
KCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnLCB0cnVlKTsKKyAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdl
ZCcsICdub25lJywgdHJ1ZSk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScsIHRydWUpOwor
ICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnLCB0cnVlKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdp
bicsIHRydWUpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2NvbnRpbnVlJywgdHJ1ZSk7CisgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAw
LCAnbm9uZScsICdlbmQnLCB0cnVlKTsKKyAgICAgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Ny
b2xsaW5nQ29tcGxldGVzKGNoZWNrRm9yU2Nyb2xsKTsKKyAgICB9CiAKLSAgICBpZiAod2luZG93
LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAg
IGZ1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKQorICAgIHsKKyAgICAgICAgZGVzY3JpcHRpb24oIlRl
c3RzIHRoYXQgYSBzZWxlY3QgZG9lc24ndCBjb25zdW1lIHdoZWVsIGV2ZW50cyB3aGVuIHNjcm9s
bCBpcyBsYXRjaGVkIHRvIG1haW4gZnJhbWUuIik7CiAKLSAgICAgICAgc2V0VGltZW91dChzY3Jv
bGxUZXN0LCAxMDAwKTsKLSAgICB9IGVsc2UgeworICAgICAgICBpZiAod2luZG93LmV2ZW50U2Vu
ZGVyKSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDApOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAogICAgICAgICB2YXIgbWVzc2FnZUxvY2F0
aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudCcpOwogICAgICAgICB2YXIgbWVz
c2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICBtZXNzYWdlLmlu
bmVySFRNTCA9ICI8cD5UaGlzIHRlc3QgaXMgYmV0dGVyIHJ1biB1bmRlciBEdW1wUmVuZGVyVHJl
ZS4gVG8gbWFudWFsbHkgdGVzdCBpdCwgcGxhY2UgdGhlIG1vdXNlIHBvaW50ZXI8YnIvPiIKLSAg
ICAgICAgICAgICsgImF0IHRoZSB0b3Agb2YgdGhlIHBhZ2UsIGFuZCB0aGVuIHVzZSB0aGUgbW91
c2Ugd2hlZWwgb3IgYSB0d28tZmluZ2VyIHN3aXBlIHRvIHNjcm9sbCBkb3duPGJyLz4iCi0gICAg
ICAgICAgICArICJwYXN0IHRoZSBzZWxlY3RUYXJnZXQuPGJyLz48YnIvPiIKLSAgICAgICAgICAg
ICsgIllvdSBzaG91bGQgbm90IHNlZSB0aGUgJ2NvbnRlbnQyMScgbGFiZWwgaWYgdGhpcyB0ZXN0
IGlzIHN1Y2Nlc3NmdWwuPC9wPiI7CisgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRv
IG1hbnVhbGx5IHJ1biB0aGlzIHRlc3QsIHBsYWNlIHRoZSBtb3VzZSBwb2ludGVyICIKKyAgICAg
ICAgICAgICsgImF0IHRoZSB0b3Agb2YgdGhlIHBhZ2UsIGFuZCB0aGVuIHVzZSB0aGUgbW91c2Ug
d2hlZWwgb3IgYSB0d28tZmluZ2VyIHN3aXBlIHRvIHNjcm9sbCBkb3duICIKKyAgICAgICAgICAg
ICsgInBhc3QgdGhlIHNlbGVjdFRhcmdldC48L3A+IgorICAgICAgICAgICAgKyAiPHA+WW91IHNo
b3VsZCBub3Qgc2VlIHRoZSAnY29udGVudDIxJyBsYWJlbCBpZiB0aGlzIHRlc3QgaXMgc3VjY2Vz
c2Z1bC48L3A+IjsKICAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2Up
OworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9Ci19CiAKLTwvc2NyaXB0PgorICAgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4geworICAgICAgICBzZXR1cFRvcExl
dmVsKCk7CisgICAgfSwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CiA8
ZGl2IGlkPSJwYXJlbnQiIHN0eWxlPSJoZWlnaHQ6IDIwMDBweDsgd2lkdGg6IDIwMDBweDsiPgog
ICAgIDxkaXYgaWQ9InNvdXJjZSIgc3R5bGU9ImhlaWdodDogMTAwcHg7IHdpZHRoOiA1MDBweDsi
PgogICAgICAgICBQdXQgbW91c2UgaGVyZSBhbmQgZmxpY2sgZG93bndhcmRzCkBAIC0xMzEsOSAr
MTE2LDYgQEAgZnVuY3Rpb24gc2V0dXBUb3BMZXZlbCgpIHsKICAgICA8L2Rpdj4KIDwvZGl2Pgog
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3RzIHRo
YXQgYSBzZWxlY3QgZG9lc24ndCBjb25zdW1lIHdoZWVsIGV2ZW50cyB3aGVuIHNjcm9sbCBpcyBs
YXRjaGVkIHRvIG1haW4gZnJhbWUuIik7Ci08L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1z
ZWxlY3QtbGF0Y2hlZC1zZWxlY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC1leHBlY3RlZC50eHQK
aW5kZXggMDY1YmQ2NDI2Y2Y2ZDFlNjUxMzgzYjk0Yzc0YWYyZTBhM2U4NmEzYi4uNTg1ZDJmMzM5
OTI1YjY4ZjAyNjFjMGY2MjNiZGI0ODUwMGQ2YmZhMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xs
LXNlbGVjdC1sYXRjaGVkLXNlbGVjdC1leHBlY3RlZC50eHQKQEAgLTcsMTAgKzcsMTAgQEAgVGVz
dHMgdGhhdCBhIHNlbGVjdCBkb2Vzbid0IHBhc3Mgd2hlZWwgZXZlbnRzIHRvIG1haW4gZnJhbWUg
d2hlbiBzY3JvbGxpbmcgYXQgYm8KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKIGRpdiBkaXNwbGF5
IGhlaWdodCA9IDExMQogTW91c2UgbW92ZWQgdG8gKDMwLCAyMzgpCiBQQVNTIFBhZ2UgZGlkIG5v
dCByZWNlaXZlIHdoZWVsIGV2ZW50cy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9sYXRjaGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtc2VsZWN0LWxhdGNoZWQtc2VsZWN0Lmh0
bWwKaW5kZXggMDJkMmY4MGZlYWU2MDAyOTU5YTE5MjUyNjk2Nzc3MTVhZDg5NjFmNS4uN2RlZTM2
ZjEyYTk3NzE2NzRlZjJkZTM2MDYwMjY5ZTk5YTU5MDEyYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvc2Nyb2xsLXNlbGVjdC1sYXRjaGVkLXNlbGVjdC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1zZWxl
Y3QtbGF0Y2hlZC1zZWxlY3QuaHRtbApAQCAtMjMsODQgKzIzLDc5IEBACiAuc2Nyb2xsYWJsZV9z
ZWxlY3Qgb3B0aW9uOm50aC1jaGlsZChvZGQpIHsKICAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzOwog
fQotCiA8L3N0eWxlPgogPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gb25Mb2FkKCkgewotICAgIHNldHVw
VG9wTGV2ZWwoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJvbkxvYWQo
KTsiPgotPHNjcmlwdD4KLQotdmFyIHNlbGVjdFRhcmdldDsKLXZhciBwYWdlU2Nyb2xsUG9zaXRp
b25CZWZvcmU7Ci12YXIgc2VsZWN0U2Nyb2xsUG9zaXRpb25CZWZvcmU7Ci12YXIgY29udGludWVD
b3VudCA9IDU7Ci0KLWZ1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkgeworICAgIGpzVGVzdElzQXN5
bmMgPSB0cnVlOwogCi0gICAgLy8gVGhlIHBhZ2Ugc2hvdWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0
IGFsbC4KLSAgICB2YXIgcGFnZVNjcm9sbFBvc2l0aW9uQWZ0ZXIgPSBkb2N1bWVudC5zY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcDsKLSAgICB2YXIgc2VsZWN0U2Nyb2xsUG9zaXRpb25BZnRlciA9
IHNlbGVjdFRhcmdldC5zY3JvbGxUb3A7CisgICAgdmFyIHNlbGVjdFRhcmdldDsKKyAgICB2YXIg
cGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlOworICAgIHZhciBzZWxlY3RTY3JvbGxQb3NpdGlvbkJl
Zm9yZTsKIAotICAgIC8vZGVidWcoIlBhZ2UgYmVmb3JlOiAiICsgcGFnZVNjcm9sbFBvc2l0aW9u
QmVmb3JlICsgIiwgc2VsZWN0IGJlZm9yZTogIiArIHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3Jl
KTsKLSAgICAvL2RlYnVnKCJQYWdlIGFmdGVyOiAgIiArIHBhZ2VTY3JvbGxQb3NpdGlvbkFmdGVy
ICsgIiwgc2VsZWN0IGFmdGVyOiAiICsgc2VsZWN0U2Nyb2xsUG9zaXRpb25BZnRlcik7CisgICAg
ZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKQorICAgIHsKKyAgICAgICAgLy8gVGhlIHBhZ2Ugc2hv
dWxkIG5vdCBoYXZlIHNjcm9sbGVkIGF0IGFsbC4KKyAgICAgICAgdmFyIHBhZ2VTY3JvbGxQb3Np
dGlvbkFmdGVyID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A7CisgICAgICAg
IHZhciBzZWxlY3RTY3JvbGxQb3NpdGlvbkFmdGVyID0gc2VsZWN0VGFyZ2V0LnNjcm9sbFRvcDsK
IAotICAgIGlmIChwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgIT0gcGFnZVNjcm9sbFBvc2l0aW9u
QWZ0ZXIpCi0gICAgICAgIHRlc3RGYWlsZWQoIlBhZ2UgcmVjZWl2ZWQgd2hlZWwgZXZlbnRzLiIp
OwotICAgIGVsc2UKLSAgICAgICAgdGVzdFBhc3NlZCgiUGFnZSBkaWQgbm90IHJlY2VpdmUgd2hl
ZWwgZXZlbnRzLiIpOworICAgICAgICBpZiAocGFnZVNjcm9sbFBvc2l0aW9uQmVmb3JlICE9IHBh
Z2VTY3JvbGxQb3NpdGlvbkFmdGVyKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSByZWNl
aXZlZCB3aGVlbCBldmVudHMuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RQYXNz
ZWQoIlBhZ2UgZGlkIG5vdCByZWNlaXZlIHdoZWVsIGV2ZW50cy4iKTsKIAotICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOwotfQotCi1mdW5jdGlvbiBzY3JvbGxUZXN0KCkgewotICAgIC8vIFNl
ZSB3aGVyZSBvdXIgSUZyYW1lIGxpdmVzOgotICAgIHBhZ2VTY3JvbGxQb3NpdGlvbkJlZm9yZSA9
IGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wOwotCi0gICAgc2VsZWN0VGFyZ2V0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOwotICAgIHNlbGVjdFRhcmdldC5z
Y3JvbGxUb3AgPSBzZWxlY3RUYXJnZXQuc2Nyb2xsSGVpZ2h0IC0gc2VsZWN0VGFyZ2V0LmNsaWVu
dEhlaWdodCAtIDEwMDsKLQotICAgIHNlbGVjdFNjcm9sbFBvc2l0aW9uQmVmb3JlID0gc2VsZWN0
VGFyZ2V0LnNjcm9sbFRvcDsKLQotICAgIC8vIFNjcm9sbCB0aGUgI3NvdXJjZSB1bnRpbCB3ZSBy
ZWFjaCB0aGUgI3RhcmdldC4KLSAgICB2YXIgc3RhcnRQb3NYID0gTWF0aC5yb3VuZChzZWxlY3RU
YXJnZXQub2Zmc2V0TGVmdCkgKyAyMDsKLSAgICBkZWJ1ZygiZGl2IGRpc3BsYXkgaGVpZ2h0ID0g
IiArIHNlbGVjdFRhcmdldC5jbGllbnRIZWlnaHQpOwotICAgIHZhciBzdGFydFBvc1kgPSBNYXRo
LnJvdW5kKHNlbGVjdFRhcmdldC5vZmZzZXRUb3ApICsgTWF0aC5yb3VuZChzZWxlY3RUYXJnZXQu
Y2xpZW50SGVpZ2h0KSAtIDQyOyAvLyBPbmUgd2hlZWwgdHVybiBiZWZvcmUgZW5kLgotICAgIGV2
ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJl
IHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFtZQotICAgIGRlYnVnKCJNb3VzZSBtb3ZlZCB0
byAoIiArIHN0YXJ0UG9zWCArICIsICIgKyBzdGFydFBvc1kgKyAiKSIpOwotICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2Fu
JywgJ25vbmUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKLSAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEs
ICdjaGFuZ2VkJywgJ25vbmUnLCB0cnVlKTsKLSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnLCB0cnVlKTsK
LSAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgLTEsICdub25lJywgJ2JlZ2luJywgdHJ1ZSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdjb250aW51ZScs
IHRydWUpOwotICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnLCB0cnVlKTsKLSAgICBzZXRUaW1lb3V0KGNoZWNr
Rm9yU2Nyb2xsLCAxMDApOwotfQorICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9CiAKLWZ1
bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSB7CisgICAgZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCisgICAg
eworICAgICAgICBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5zY3JvbGxpbmdF
bGVtZW50LnNjcm9sbFRvcDsKKworICAgICAgICBzZWxlY3RUYXJnZXQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGFyZ2V0Jyk7CisgICAgICAgIHNlbGVjdFRhcmdldC5zY3JvbGxUb3AgPSBz
ZWxlY3RUYXJnZXQuc2Nyb2xsSGVpZ2h0IC0gc2VsZWN0VGFyZ2V0LmNsaWVudEhlaWdodCAtIDEw
MDsKKworICAgICAgICBzZWxlY3RTY3JvbGxQb3NpdGlvbkJlZm9yZSA9IHNlbGVjdFRhcmdldC5z
Y3JvbGxUb3A7CisKKyAgICAgICAgLy8gU2Nyb2xsIHRoZSAjc291cmNlIHVudGlsIHdlIHJlYWNo
IHRoZSAjdGFyZ2V0LgorICAgICAgICB2YXIgc3RhcnRQb3NYID0gTWF0aC5yb3VuZChzZWxlY3RU
YXJnZXQub2Zmc2V0TGVmdCkgKyAyMDsKKyAgICAgICAgZGVidWcoImRpdiBkaXNwbGF5IGhlaWdo
dCA9ICIgKyBzZWxlY3RUYXJnZXQuY2xpZW50SGVpZ2h0KTsKKyAgICAgICAgdmFyIHN0YXJ0UG9z
WSA9IE1hdGgucm91bmQoc2VsZWN0VGFyZ2V0Lm9mZnNldFRvcCkgKyBNYXRoLnJvdW5kKHNlbGVj
dFRhcmdldC5jbGllbnRIZWlnaHQpIC0gNDI7IC8vIE9uZSB3aGVlbCB0dXJuIGJlZm9yZSBlbmQu
CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsg
Ly8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFtZQorICAgICAgICBkZWJ1
ZygiTW91c2UgbW92ZWQgdG8gKCIgKyBzdGFydFBvc1ggKyAiLCAiICsgc3RhcnRQb3NZICsgIiki
KTsKKworICAgICAgICBldmVudFNlbmRlci5tb25pdG9yV2hlZWxFdmVudHMoKTsKKyAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0x
LCAnYmVnYW4nLCAnbm9uZScsIHRydWUpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnLCB0
cnVlKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJywgdHJ1ZSk7CisgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5k
ZWQnLCAnbm9uZScsIHRydWUpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJywgdHJ1ZSk7Cisg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgJ25vbmUnLCAnY29udGludWUnLCB0cnVlKTsKKyAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2Vu
ZCcsIHRydWUpOworICAgICAgICBldmVudFNlbmRlci5jYWxsQWZ0ZXJTY3JvbGxpbmdDb21wbGV0
ZXMoY2hlY2tGb3JTY3JvbGwpOworICAgIH0KIAotICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIp
IHsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwotICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkgewogCi0g
ICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsVGVzdCwgMTAwMCk7Ci0gICAgfSBlbHNlIHsKKyAgICAg
ICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAgc2V0VGltZW91dChzY3Jv
bGxUZXN0LCAwKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKICAg
ICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJl
bnQnKTsKICAgICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKLSAgICAgICAgbWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+VGhpcyB0ZXN0IGlzIGJldHRlciBy
dW4gdW5kZXIgRHVtcFJlbmRlclRyZWUuIFRvIG1hbnVhbGx5IHRlc3QgaXQsIHBsYWNlIHRoZSBt
b3VzZSBwb2ludGVyPGJyLz4iCi0gICAgICAgICAgICArICJpbnNpZGUgdGhlIHNlbGVjdCBib3gs
IGFuZCBzY3JvbGwgbmVhciAoYnV0IG5vdCBBVCkgdGhlIGJvdHRvbSBvZiB0aGUgcmFuZ2UuIFVz
ZSB0aGUgbW91c2Ugd2hlZWwgb3IgYSB0d28tZmluZ2VyPGJyLz4iCi0gICAgICAgICAgICArICJz
d2lwZSB0byBzY3JvbGwgdGhyb3VnaCB0aGUgcmVzdCBvZiB0aGUgc2VsZWN0IG9wdGlvbnMuPGJy
Lz48YnIvPiIKLSAgICAgICAgICAgICsgIllvdSBzaG91bGQgbm90IHNlZSB0aGUgcGFnZSBwb3Np
dGlvbiBjaGFuZ2UgaWYgdGhpcyB0ZXN0IGlzIHN1Y2Nlc3NmdWwuPC9wPiI7CisgICAgICAgIG1l
c3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRvIG1hbnVhbGx5IHRlc3QgaXQsIHBsYWNlIHRoZSBtb3Vz
ZSBwb2ludGVyICIKKyAgICAgICAgICAgICsgImluc2lkZSB0aGUgc2VsZWN0IGJveCwgYW5kIHNj
cm9sbCBuZWFyIChidXQgbm90IEFUKSB0aGUgYm90dG9tIG9mIHRoZSByYW5nZS4gVXNlIHRoZSBt
b3VzZSB3aGVlbCBvciBhIHR3by1maW5nZXIgIgorICAgICAgICAgICAgKyAic3dpcGUgdG8gc2Ny
b2xsIHRocm91Z2ggdGhlIHJlc3Qgb2YgdGhlIHNlbGVjdCBvcHRpb25zLjwvcD4iCisgICAgICAg
ICAgICArICI8cD5Zb3Ugc2hvdWxkIG5vdCBzZWUgdGhlIHBhZ2UgcG9zaXRpb24gY2hhbmdlIGlm
IHRoaXMgdGVzdCBpcyBzdWNjZXNzZnVsLjwvcD4iOwogICAgICAgICBtZXNzYWdlTG9jYXRpb24u
YXBwZW5kQ2hpbGQobWVzc2FnZSk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0KLX0K
IAorICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4geworICAgICAgICBz
ZXR1cFRvcExldmVsKCk7CisgICAgfSwgZmFsc2UpOwogPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KIDxkaXYgaWQ9InBhcmVudCIgc3R5bGU9ImhlaWdodDogMjAwMHB4OyB3aWR0aDogMjAwMHB4
OyI+CiAgICAgPGRpdiBpZD0ic291cmNlIiBzdHlsZT0iaGVpZ2h0OiAxMDBweDsgd2lkdGg6IDUw
MHB4OyI+CiAgICAgICAgIFB1dCBtb3VzZSBoZXJlIGFuZCBmbGljayBkb3dud2FyZHMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5ZDdlMDRj
YTBhNzQxYzZjYWU4ZDZkMDRhMTM3ZTk0YzE0NzUxYzJkLi4wMzU5Nzg3YmE0MTNiZTViMTE1YTlh
MWRmOWEwMGQ2NjdjZDUxYjgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9U
ZXN0RXhwZWN0YXRpb25zCkBAIC03OTMsOCArNzkzLDYgQEAgd2Via2l0Lm9yZy9iLzE4MjE3NiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmsKIAogd2Via2l0Lm9yZy9iLzE4Mzg2OSBbIEhpZ2hTaWVycmErIF0gbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL3NlZWstYmFja3dhcmQtc3VwcG9ydC9zZWVrLWJhY2t3YXJkLXN1cHBvcnQu
aHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8xODM4NzkgWyBEZWJ1ZyBdIGZh
c3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1kaXYtbm8tbGF0Y2hpbmcuaHRtbCBbIFBhc3Mg
RmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi8xODM4NjAgWyBTaWVycmEgUmVsZWFzZSBdIGh0dHAv
d3B0L3NlcnZpY2Utd29ya2Vycy90aGlyZC1wYXJ0eS1yZWdpc3RyYXRpb24uaHRtbCBbIFBhc3Mg
RmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xODQyNDUgaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2Uvc2VydmljZS13b3JrZXItY2FjaGUtYXBpLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQpA
QCAtOTE4LDggKzkxNiw2IEBAIHdlYmtpdC5vcmcvYi8yMDcwMDMgdGlsZWQtZHJhd2luZy9zY3Jv
bGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW92CiAKIHdlYmtpdC5vcmcv
Yi8yMDcwNjAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMv
dGltZXJzL3R5cGUtbG9uZy1zZXRpbnRlcnZhbC5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAotd2Vi
a2l0Lm9yZy9iLzIwNzA2MyBmYXN0L3Njcm9sbGluZy9sYXRjaGluZy9zY3JvbGwtZGl2LXdpdGgt
bmVzdGVkLW5vbnNjcm9sbGFibGUtaWZyYW1lLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotCiB3ZWJr
aXQub3JnL2IvMjA3MDc4IHdlYmdwdS93aGxzbC90ZXh0dXJlcy1zYW1wbGUtbGV2ZWwuaHRtbCBb
IFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBDcmFzaCBdCiAKIHdlYmtpdC5vcmcvYi8yMDcxMTcgd2Vi
Z3B1L3dobHNsL25lc3RlZC1sb29wLmh0bWwgWyBQYXNzIEltYWdlT25seUZhaWx1cmUgXQpAQCAt
OTQ2LDcgKzk0Miw3IEBAIHdlYmtpdC5vcmcvYi8yMDcyMDIgd2ViZ3B1L3dobHNsL3RleHR1cmVz
LXNhbXBsZS1ncmFkLmh0bWwgWyBQYXNzIEltYWdlT25seUZhaWx1CiAKIHdlYmtpdC5vcmcvYi8y
MDY3MTggaW5zcGVjdG9yL2NhbnZhcy9zaGFkZXJQcm9ncmFtLWFkZC1yZW1vdmUtd2ViZ2wyLmh0
bWwgWyBQYXNzIENyYXNoIF0KIAotd2Via2l0Lm9yZy9iLzIwNzIwOSAgaW5zcGVjdG9yL2hlYXAv
Z2V0UHJldmlldy5odG1sIFsgUGFzcyBGYWlsdXJlIFRpbWVvdXQgXQord2Via2l0Lm9yZy9iLzIw
NzIwOSBpbnNwZWN0b3IvaGVhcC9nZXRQcmV2aWV3Lmh0bWwgWyBQYXNzIEZhaWx1cmUgVGltZW91
dCBdCiAKIHdlYmtpdC5vcmcvYi8yMDcyMjIgd2ViZ3B1L3dobHNsL3plcm8taW5pdGlhbGl6ZS12
YWx1ZXMtMi5odG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJlIF0KIApAQCAtOTk0LDggKzk5MCw2
IEBAIHdlYmtpdC5vcmcvYi8yMDc3MDAgd2ViZ3B1L3dobHNsL3JldHVybi1sb2NhbC12YXJpYWJs
ZS5odG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsCiAKIHdlYmtpdC5vcmcvYi8yMDc3MjggWyBSZWxl
YXNlIF0gYWNjZXNzaWJpbGl0eS9wcmVzcy10YXJnZXRzLWNlbnRlci1wb2ludC5odG1sIFsgUGFz
cyBGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzIwNzczMiBmYXN0L3Njcm9sbGluZy9sYXRjaGlu
Zy9pZnJhbWVfaW5faWZyYW1lLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2Iv
MjA2Njk5IGh0dHAvdGVzdHMvbWVkaWEvbm93LXBsYXlpbmctaW5mby5odG1sIFsgUGFzcyBGYWls
dXJlIF0KIAogd2Via2l0Lm9yZy9iLzIwNzc3OSB3ZWJncHUvd2hsc2wvZGVyZWZlcmVuY2UtcG9p
bnRlci1zaG91bGQtdHlwZS1jaGVjay5odG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJlIF0KQEAg
LTEwNzUsNCArMTA2OSw0IEBAIHdlYmtpdC5vcmcvYi8yMDk1NjQgc3ZnL2FzLWltYWdlL3N2Zy1p
bWFnZS13aXRoLWRhdGEtdXJpLWJhY2tncm91bmQuaHRtbCBbIFBhc3MKIAogd2Via2l0Lm9yZy9i
LzIwOTYyMiBodHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNlLXJlY29ubmVjdC1kdXJp
bmctbmF2aWdhdGUtY3Jhc2guaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8y
MDk2MjQgWyBSZWxlYXNlIF0gdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZml4ZWQvZm91ci1iYXJz
LXpvb21lZC5odG1sIFsgUGFzcyBGYWlsdXJlIF0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
Cit3ZWJraXQub3JnL2IvMjA5NjI0IFsgUmVsZWFzZSBdIHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5n
L2ZpeGVkL2ZvdXItYmFycy16b29tZWQuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCg==
</data>
<flag name="commit-queue"
          id="410149"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>