<?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>172398</bug_id>
          
          <creation_ts>2017-05-19 16:10:26 -0700</creation_ts>
          <short_desc>Many WebAudio js-tests use waitUntilDone</short_desc>
          <delta_ts>2017-05-22 13:49:17 -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>Tools / Tests</component>
          <version>Safari 9</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>168961</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jer.noble</cc>
    
    <cc>lforschler</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1310844</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-05-19 16:10:26 -0700</bug_when>
    <thetext>js-tests are incompatible with testRunner.waitUntilDone(), yet there are hundreds of tests that mix these techniques.

The common symptom is that TEST COMPLETE is printed before the test is complete. But there may be more, including flakiness. Some of these tests are malformed in other ways, such as using js-test-pre.js without js-test-post.js.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310845</commentid>
    <comment_count>1</comment_count>
      <attachid>310720</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-05-19 16:12:59 -0700</bug_when>
    <thetext>Created attachment 310720
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310856</commentid>
    <comment_count>2</comment_count>
      <attachid>310720</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-05-19 16:32:23 -0700</bug_when>
    <thetext>Comment on attachment 310720
proposed patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311547</commentid>
    <comment_count>3</comment_count>
      <attachid>310720</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-22 13:49:16 -0700</bug_when>
    <thetext>Comment on attachment 310720
proposed patch

Clearing flags on attachment: 310720

Committed r217243: &lt;http://trac.webkit.org/changeset/217243&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311548</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-22 13:49:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310720</attachid>
            <date>2017-05-19 16:12:59 -0700</date>
            <delta_ts>2017-05-22 13:49:16 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>js-test-webaudio.txt</filename>
            <type>text/plain</type>
            <size>78799</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIxNzE2NikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDk3IEBACisyMDE3LTA1LTE5ICBBbGV4ZXkgUHJvc2t1cnlh
a292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIE1hbnkgV2ViQXVkaW8ganMtdGVzdHMgdXNl
IHdhaXRVbnRpbERvbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3MjM5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIENvcnJlY3RlZCB0aGUgdXNlIG9mIGpzLXRlc3QgaGFybmVzcywgdXBkYXRlZCB0aGUg
dGVzdHMgdG8gdXNlIGpzLXRlc3QuanMgaW5zdGVhZAorICAgICAgICBvZiBqcy10ZXN0LXByZS5q
cyB3aGVyZSBwb3NzaWJsZS4KKworICAgICAgICAqIHJlc291cmNlcy9qcy10ZXN0LmpzOiAoc2hv
dWxkUmVqZWN0KTogQ29waWVkIHNvbWUgZnVuY2l0b25hbGl0eSBmb3JtIGpzLXRlc3QtcHJlLmpz
CisgICAgICAgIHRoYXQgd2Fzbid0IHByZXNlbnQgaGVyZS4KKworICAgICAgICAqIHdlYmF1ZGlv
L2FuYWx5c2VyLWV4Y2VwdGlvbi5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvYnVmZmVy
LW5ldXRlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9idWZmZXItbmV1
dGVyLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtY2hhbm5lbHMu
aHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1lbmRlZC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtZW5kZWQuaHRtbDoK
KyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1leGNlcHRpb24uaHRtbDoKKyAg
ICAgICAgKiB3ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1sb29wLWNvbXByZWhlbnNpdmUtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWxvb3AtY29t
cHJlaGVuc2l2ZS5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLW5l
Z2F0aXZlLXBsYXliYWNrcmF0ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViYXVkaW8vYXVk
aW9idWZmZXJzb3VyY2UtbmVnYXRpdmUtcGxheWJhY2tyYXRlLWludGVycG9sYXRlZC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtbmVnYXRpdmUtcGxh
eWJhY2tyYXRlLWludGVycG9sYXRlZC1sb29wLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWJh
dWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1uZWdhdGl2ZS1wbGF5YmFja3JhdGUtaW50ZXJwb2xhdGVk
LWxvb3AuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1uZWdhdGl2
ZS1wbGF5YmFja3JhdGUtaW50ZXJwb2xhdGVkLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVk
aW9idWZmZXJzb3VyY2UtbmVnYXRpdmUtcGxheWJhY2tyYXRlLWxvb3AtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLW5lZ2F0aXZlLXBsYXliYWNrcmF0
ZS1sb29wLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtbmVnYXRp
dmUtcGxheWJhY2tyYXRlLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9idWZmZXJzb3Vy
Y2UtcGxheWJhY2tTdGF0ZS5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvYnVmZmVyc291
cmNlLXN0YXJ0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb2J1ZmZlcnNv
dXJjZS1zdGFydC5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvY2hhbm5lbG1lcmdlci1i
YXNpYy5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvY2hhbm5lbG1lcmdlci1zdGVyZW8u
aHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb2NoYW5uZWxzcGxpdHRlci5odG1sOgorICAg
ICAgICAqIHdlYmF1ZGlvL2F1ZGlvY29udGV4dC1wcm9taXNlLXRocm93aW5nLmh0bWw6CisgICAg
ICAgICogd2ViYXVkaW8vYXVkaW9jb250ZXh0LXByb21pc2UuaHRtbDoKKyAgICAgICAgKiB3ZWJh
dWRpby9hdWRpb2NvbnRleHQtcmVzdHJpY3Rpb24tYXVkaW9idWZmZXJzb3VyY2Vub2RlLXN0YXJ0
Lmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9jb250ZXh0LXJlc3RyaWN0aW9uLmh0bWw6
CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9jb250ZXh0LXN0YXRlLWludGVycnVwdGVkLmh0bWw6
CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9jb250ZXh0LXN0YXRlLmh0bWw6CisgICAgICAgICog
d2ViYXVkaW8vYXVkaW9ub2RlLWNoYW5uZWwtcnVsZXMuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRp
by9hdWRpb25vZGUtY29ubmVjdC1vcmRlci5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlv
bm9kZS5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvcGFyYW0tY29ubmVjdC1hdWRpb3Jh
dGVzaWduYWwuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb3BhcmFtLXN1bW1pbmdqdW5j
dGlvbi5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvcHJvY2Vzc2luZ2V2ZW50Lmh0bWw6
CisgICAgICAgICogd2ViYXVkaW8vYXV0b21hdGljLXB1bGwtbm9kZS5odG1sOgorICAgICAgICAq
IHdlYmF1ZGlvL2JpcXVhZC1hbGxwYXNzLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYmlxdWFk
LWJhbmRwYXNzLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYmlxdWFkLWdldEZyZXF1ZW5jeVJl
c3BvbnNlLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYmlxdWFkLWhpZ2hwYXNzLmh0bWw6Cisg
ICAgICAgICogd2ViYXVkaW8vYmlxdWFkLWhpZ2hzaGVsZi5odG1sOgorICAgICAgICAqIHdlYmF1
ZGlvL2JpcXVhZC1sb3dwYXNzLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYmlxdWFkLWxvd3No
ZWxmLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYmlxdWFkLW5vdGNoLmh0bWw6CisgICAgICAg
ICogd2ViYXVkaW8vYmlxdWFkLXBlYWtpbmcuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9iaXF1
YWRmaWx0ZXJub2RlLWJhc2ljLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vY29udm9sdXRpb24t
bW9uby1tb25vLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vZGVjb2RlLWF1ZGlvLWRhdGEtYmFz
aWMuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9kZWNvZGUtYXVkaW8tZGF0YS10b28tc2hvcnQu
aHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9kZWxheW5vZGUtbWF4LWRlZmF1bHQtZGVsYXkuaHRt
bDoKKyAgICAgICAgKiB3ZWJhdWRpby9kZWxheW5vZGUtbWF4LW5vbmRlZmF1bHQtZGVsYXkuaHRt
bDoKKyAgICAgICAgKiB3ZWJhdWRpby9kZWxheW5vZGUtbWF4ZGVsYXkuaHRtbDoKKyAgICAgICAg
KiB3ZWJhdWRpby9kZWxheW5vZGUtbWF4ZGVsYXlsaW1pdC5odG1sOgorICAgICAgICAqIHdlYmF1
ZGlvL2RlbGF5bm9kZS1zY2hlZHVsaW5nLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vZGVsYXlu
b2RlLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vZGlzdGFuY2UtZXhwb25lbnRpYWwuaHRtbDoK
KyAgICAgICAgKiB3ZWJhdWRpby9kaXN0YW5jZS1pbnZlcnNlLmh0bWw6CisgICAgICAgICogd2Vi
YXVkaW8vZGlzdGFuY2UtbGluZWFyLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vZHluYW1pY3Nj
b21wcmVzc29yLWJhc2ljLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vamF2YXNjcmlwdGF1ZGlv
bm9kZS1kb3dubWl4OC0yY2hhbm5lbC1pbnB1dC5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2ph
dmFzY3JpcHRhdWRpb25vZGUtdXBtaXgyLThjaGFubmVsLWlucHV0Lmh0bWw6CisgICAgICAgICog
d2ViYXVkaW8vamF2YXNjcmlwdGF1ZGlvbm9kZS16ZXJvLWlucHV0LWNoYW5uZWxzLmh0bWw6Cisg
ICAgICAgICogd2ViYXVkaW8vamF2YXNjcmlwdGF1ZGlvbm9kZS5odG1sOgorICAgICAgICAqIHdl
YmF1ZGlvL21lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9kZS5odG1sOgorICAgICAgICAqIHdlYmF1
ZGlvL29zY2lsbGF0b3ItYmFzaWMuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9vc2NpbGxhdG9y
LWVuZGVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWJhdWRpby9vc2NpbGxhdG9yLWVuZGVk
Lmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vcGFnZS1jYW5zdGFydG1lZGlhLmh0bWw6CisgICAg
ICAgICogd2ViYXVkaW8vcGFubmVyLWVxdWFscG93ZXItc3RlcmVvLmh0bWw6CisgICAgICAgICog
d2ViYXVkaW8vcGFubmVyLWVxdWFscG93ZXIuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9wYW5u
ZXItbG9vcC5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL3Bhbm5lcm5vZGUtYmFzaWMuaHRtbDoK
KyAgICAgICAgKiB3ZWJhdWRpby9yZWFsdGltZWFuYWx5c2VyLWZmdC1zY2FsaW5nLmh0bWw6Cisg
ICAgICAgICogd2ViYXVkaW8vcmVhbHRpbWVhbmFseXNlci1mZnQtc2l6aW5nLmh0bWw6CisgICAg
ICAgICogd2ViYXVkaW8vcmVzb3VyY2VzL2F1ZGlvYnVmZmVyc291cmNlLXRlc3RpbmcuanM6Cisg
ICAgICAgIChjaGVja0FsbFRlc3RzKToKKyAgICAgICAgKiB3ZWJhdWRpby9zYW1wbGUtYWNjdXJh
dGUtc2NoZWR1bGluZy5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL3N0ZXJlbzJtb25vLWRvd24t
bWl4aW5nLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vdGVzdC1iYXNpYy5odG1sOgorICAgICAg
ICAqIHdlYmF1ZGlvL3dhdmVzaGFwZXIuaHRtbDoKKwogMjAxNy0wNS0xOSAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVSTFNlYXJjaFBhcmFtcyAvIEhlYWRlcnMg
b2JqZWN0cyBAQGl0ZXJhdG9yIGlzIG5vdCBhcyBwZXIgV2ViIElETCBzcGVjCkluZGV4OiBMYXlv
dXRUZXN0cy9yZXNvdXJjZXMvanMtdGVzdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9y
ZXNvdXJjZXMvanMtdGVzdC5qcwkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvcmVz
b3VyY2VzL2pzLXRlc3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTY0NSw2ICs2NDUsNDIgQEAgZnVu
Y3Rpb24gZXhwZWN0RXJyb3IoKQogICAgIGV4cGVjdGluZ0Vycm9yID0gdHJ1ZTsKIH0KIAorZnVu
Y3Rpb24gc2hvdWxkUmVqZWN0KF9hLCBfbWVzc2FnZSkKK3sKKyAgICB2YXIgX2V4Y2VwdGlvbjsK
KyAgICB2YXIgX2F2OworICAgIHRyeSB7CisgICAgICAgIF9hdiA9IHR5cGVvZiBfYSA9PSAiZnVu
Y3Rpb24iID8gX2EoKSA6IGV2YWwoX2EpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgdGVz
dEZhaWxlZCgoX21lc3NhZ2UgPyBfbWVzc2FnZSA6IF9hKSArICIgc2hvdWxkIG5vdCB0aHJvdyBl
eGNlcHRpb24uIFRocmV3IGV4Y2VwdGlvbiAiICsgZSArICIuIik7CisgICAgICAgIHJldHVybiBQ
cm9taXNlLnJlc29sdmUoKTsKKyAgICB9CisKKyAgICByZXR1cm4gX2F2LnRoZW4oZnVuY3Rpb24o
cmVzdWx0KSB7CisgICAgICAgIHRlc3RGYWlsZWQoKF9tZXNzYWdlID8gX21lc3NhZ2UgOiBfYSkg
KyAiIHNob3VsZCByZWplY3QgcHJvbWlzZS4gUmVzb2x2ZWQgd2l0aCAiICsgcmVzdWx0ICsgIi4i
KTsKKyAgICB9LCBmdW5jdGlvbihlcnJvcikgeworICAgICAgICB0ZXN0UGFzc2VkKChfbWVzc2Fn
ZSA/IF9tZXNzYWdlIDogX2EpICsgIiByZWplY3RlZCBwcm9taXNlICB3aXRoICIgKyBlcnJvciAr
ICIuIik7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93RXJyb3JOYW1lKF9hLCBf
bmFtZSkKK3sKKyAgICB2YXIgX2V4Y2VwdGlvbjsKKyAgICB0cnkgeworICAgICAgICB0eXBlb2Yg
X2EgPT0gImZ1bmN0aW9uIiA/IF9hKCkgOiBldmFsKF9hKTsKKyAgICB9IGNhdGNoIChlKSB7Cisg
ICAgICAgIF9leGNlcHRpb24gPSBlOworICAgIH0KKworICAgIGlmIChfZXhjZXB0aW9uKSB7Cisg
ICAgICAgIGlmIChfZXhjZXB0aW9uLm5hbWUgPT0gX25hbWUpCisgICAgICAgICAgICB0ZXN0UGFz
c2VkKF9hICsgIiB0aHJldyBleGNlcHRpb24gIiArIF9leGNlcHRpb24gKyAiLiIpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgdGhyb3cgYSAiICsg
X25hbWUgKyAiLiBUaHJldyBhICIgKyBfZXhjZXB0aW9uLm5hbWUgKyAiLiIpOworICAgIH0gZWxz
ZQorICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgdGhyb3cgYSAiICsgX25hbWUgKyAi
LiBEaWQgbm90IHRocm93LiIpOworfQorCiBmdW5jdGlvbiBzaG91bGRIYXZlSGFkRXJyb3IobWVz
c2FnZSkKIHsKICAgICBpZiAoZXhwZWN0aW5nRXJyb3IpIHsKSW5kZXg6IExheW91dFRlc3RzL3dl
YmF1ZGlvL2FuYWx5c2VyLWV4Y2VwdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3dlYmF1ZGlvL2FuYWx5c2VyLWV4Y2VwdGlvbi5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBM
YXlvdXRUZXN0cy93ZWJhdWRpby9hbmFseXNlci1leGNlcHRpb24uaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMiw3ICsyLDcgQEAKIAogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYXVkaW8tdGVz
dGluZy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvYnVmZmVyc291
cmNlLXRlc3RpbmcuanMiPjwvc2NyaXB0PgogPC9oZWFkPgpAQCAtMTgsMTEgKzE4LDYgQEAgZGVz
Y3JpcHRpb24oIlRlc3RzIHRoYXQgQW5hbHlzZXJOb2RlIHZhbAogdmFyIGFuYWx5c2VyOwogCiBm
dW5jdGlvbiBydW5UZXN0KCkgewotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7Ci0gICAgfQotCiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAg
dmFyIHNhbXBsZVJhdGUgPSA0NDEwMC4wOwpAQCAtNDcsNyArNDIsNSBAQCBmdW5jdGlvbiBydW5U
ZXN0KCkgewogcnVuVGVzdCgpOwogCiA8L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXItbmV1dGVyLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlci1uZXV0ZXItZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1
ZmZlci1uZXV0ZXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNiBAQAog
VGVzdHMgdGhhdCBuZXV0ZXJlZCBBdWRpb0J1ZmZlcnMgZG8gbm90IHByb2R1Y2UgZ2FyYmFnZQog
UEFTUyBPdXRwdXQgbWF0Y2hlcyBleHBlY3RhdGlvbnMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKIApJbmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8v
YXVkaW9idWZmZXItbmV1dGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVk
aW8vYXVkaW9idWZmZXItbmV1dGVyLmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRl
c3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyLW5ldXRlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDYgKzEsNiBAQAogPCFET0NUWVBFIGh0bWw+CiA8aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvYXVkaW8tdGVzdGluZy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNl
cy9hdWRpb2J1ZmZlcnNvdXJjZS10ZXN0aW5nLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgpA
QCAtMTIsMTAgKzEyLDcgQEAKIAogICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkKICAgICAgICAg
ewotICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKIAogICAgICAgICAgICAgdmFyIG51bWJlck9mRnJhbWVzID0gc2FtcGxlUmF0ZSAqIGxl
bmd0aEluU2Vjb25kczsKICAgICAgICAgICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1
ZGlvQ29udGV4dCgxLCBudW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSk7CkBAIC01OCwxNSArNTUs
MTEgQEAKICAgICAgICAgICAgICAgICBpZiAoZXhwZWN0ZWREYXRhW2ldICE9IHJlbmRlcmVkRGF0
YVtpXSkgewogICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCdleHBlY3RlZDogJyArIGV4
cGVjdGVkRGF0YVtpXSArICcgYWN0dWFsOiAnICsgcmVuZGVyZWREYXRhW2ldKTsKICAgICAgICAg
ICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAg
dGVzdFBhc3NlZCgnT3V0cHV0IG1hdGNoZXMgZXhwZWN0YXRpb25zLicpOwogICAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KIAogICAgIDwv
c2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtY2hh
bm5lbHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZl
cnNvdXJjZS1jaGFubmVscy5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy93
ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1jaGFubmVscy5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0yLDcgKzIsNyBAQAogCiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
cmVzb3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogCkBAIC0xNywx
MSArMTcsNiBAQCB2YXIgY29udGV4dDsKIHZhciBzb3VyY2U7CiAKIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICB9Ci0g
ICAgCiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAgIAogICAgIGNvbnRleHQg
PSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7CkBAIC03NSw3ICs3MCw1IEBAIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7CiBydW5UZXN0KCk7CiAKIDwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1lbmRlZC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2Ut
ZW5kZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy93ZWJh
dWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1lbmRlZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSw2IEBACiBUZXN0cyB0aGF0IEF1ZGlvQnVmZmVyU291cmNlTm9kZSBjYWxscyBp
dHMgb25lbmRlZCBFdmVudExpc3RlbmVyLgogUEFTUyBzb3VyY2Uub25lbmRlZCBjYWxsZWQuCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKIApJbmRleDog
TGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtZW5kZWQuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1lbmRlZC5odG1s
CShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNv
dXJjZS1lbmRlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogPCFET0NUWVBF
IGh0bWw+CiA8aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYXVkaW8tdGVzdGluZy5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpb2J1ZmZlcnNvdXJjZS10
ZXN0aW5nLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgpAQCAtOSwxMCArOSw3IEBACiAKICAg
ICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIAogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgICAgICAgICB2
YXIgc2FtcGxlUmF0ZSA9IDQ0MTAwLjA7CiAgICAgICAgICAgICB2YXIgbnVtYmVyT2ZGcmFtZXMg
PSAzMjsKQEAgLTIzLDggKzIwLDcgQEAKICAgICAgICAgICAgIHNvdXJjZS5vbmVuZGVkID0gZnVu
Y3Rpb24oKSAKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJzb3Vy
Y2Uub25lbmRlZCBjYWxsZWQuIik7Ci0gICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHNv
dXJjZS5zdGFydCgwKTsKICAgICAgICAgICAgIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKTsKSW5k
ZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWV4Y2VwdGlvbi5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWV4
Y2VwdGlvbi5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy93ZWJhdWRpby9h
dWRpb2J1ZmZlcnNvdXJjZS1leGNlcHRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiw3ICsy
LDcgQEAKIAogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYXVkaW8tdGVzdGluZy5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvYnVmZmVyc291cmNlLXRlc3Rpbmcu
anMiPjwvc2NyaXB0PgogPC9oZWFkPgpAQCAtMTgsMTEgKzE4LDYgQEAgZGVzY3JpcHRpb24oIlRl
c3RzIHRoYXQgQXVkaW9CdWZmZXJTb3VyYwogdmFyIGJ1ZmZlclNvdXJjZTsKIAogZnVuY3Rpb24g
cnVuVGVzdCgpIHsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwot
ICAgIH0KLQogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgIHZhciBzYW1w
bGVSYXRlID0gNDQxMDAuMDsKQEAgLTUwLDcgKzQ1LDUgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
IHJ1blRlc3QoKTsKIAogPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWxvb3AtY29tcHJlaGVuc2l2ZS1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3Vy
Y2UtbG9vcC1jb21wcmVoZW5zaXZlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE3MTI3KQorKysg
TGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtbG9vcC1jb21wcmVoZW5zaXZl
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTUsNCArMTUsNyBAQCBQQVNTIGlsbGVn
YWwgbG9vcDogbG9vcFN0YXJ0RnJhbWUgPiBsb29wCiBQQVNTIGlsbGVnYWwgbG9vcDogbG9vcFN0
YXJ0RnJhbWUgPT0gbG9vcEVuZEZyYW1lCiBQQVNTIGlsbGVnYWwgbG9vcDogbG9vcFN0YXJ0RnJh
bWUgPCAwCiBQQVNTIGlsbGVnYWwgbG9vcDogbG9vcEVuZEZyYW1lID4gYnVmZmVyTGVuZ3RoCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKIApJbmRleDog
TGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtbG9vcC1jb21wcmVoZW5zaXZl
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3Vy
Y2UtbG9vcC1jb21wcmVoZW5zaXZlLmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRl
c3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWxvb3AtY29tcHJlaGVuc2l2ZS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC00LDcgKzQsNyBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2F1ZGlvLXRlc3RpbmcuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9h
dWRpb2J1ZmZlcnNvdXJjZS10ZXN0aW5nLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIAogPGJvZHk+CkBAIC04OCwxMSAr
ODgsNiBAQCBmdW5jdGlvbiBydW5Mb29wVGVzdChjb250ZXh0LCB0ZXN0TnVtYmVyCiB9CiAKIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKLSAgICB9Ci0KICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKICAgICAv
LyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgpAQCAtMTA3LDEwICsxMDIsNyBAQCBmdW5j
dGlvbiBydW5UZXN0KCkgewogfQogCiBydW5UZXN0KCk7Ci1zdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOwogCiA8L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtbmVnYXRpdmUtcGxheWJhY2tyYXRlLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1u
ZWdhdGl2ZS1wbGF5YmFja3JhdGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTcxMjcpCisrKyBM
YXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1uZWdhdGl2ZS1wbGF5YmFja3Jh
dGUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDIgKzEsNSBAQAogUEFTUyBUZXN0
IHBsYXliYWNrIGF0IC0xIHBsYXliYWNrUmF0ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCiAKSW5kZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlv
YnVmZmVyc291cmNlLW5lZ2F0aXZlLXBsYXliYWNrcmF0ZS1pbnRlcnBvbGF0ZWQtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNl
LW5lZ2F0aXZlLXBsYXliYWNrcmF0ZS1pbnRlcnBvbGF0ZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1uZWdh
dGl2ZS1wbGF5YmFja3JhdGUtaW50ZXJwb2xhdGVkLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMSwyICsxLDUgQEAKIFBBU1MgVGVzdCBwbGF5YmFjayBhdCAtMC43NSBwbGF5YmFja1Jh
dGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQogCklu
ZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1uZWdhdGl2ZS1wbGF5
YmFja3JhdGUtaW50ZXJwb2xhdGVkLWxvb3AtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLW5lZ2F0aXZlLXBsYXliYWNrcmF0
ZS1pbnRlcnBvbGF0ZWQtbG9vcC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIxNzEyNykKKysrIExh
eW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLW5lZ2F0aXZlLXBsYXliYWNrcmF0
ZS1pbnRlcnBvbGF0ZWQtbG9vcC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMiAr
MSw1IEBACiBQQVNTIFRlc3QgbG9vcGluZyBwbGF5YmFjayBhdCAtMC43NSBwbGF5YmFja1JhdGUK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQogCkluZGV4
OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1uZWdhdGl2ZS1wbGF5YmFj
a3JhdGUtaW50ZXJwb2xhdGVkLWxvb3AuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93
ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1uZWdhdGl2ZS1wbGF5YmFja3JhdGUtaW50ZXJwb2xh
dGVkLWxvb3AuaHRtbAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8v
YXVkaW9idWZmZXJzb3VyY2UtbmVnYXRpdmUtcGxheWJhY2tyYXRlLWludGVycG9sYXRlZC1sb29w
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBACiA8aHRtbD4KIDxoZWFkPgogICAg
IDx0aXRsZT5hdWRpb2J1ZmZlcnNvdXJjZS1uZWdhdGl2ZS1wbGF5YmFja3JhdGUtaW50ZXJwb2xh
dGVkLWxvb3A8L3RpdGxlPgotICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpby10ZXN0aW5nLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvYnVmZmVyc291cmNl
LXRlc3RpbmcuanMiPjwvc2NyaXB0PgogCkBAIC0yNCwxMCArMjQsNyBAQAogICAgIH1dOwogCiAg
ICAgZnVuY3Rpb24gZ28oKSB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgICAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgfQorICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKIAogICAgICAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwg
cmVuZGVyRnJhbWVzLCBzYW1wbGVSYXRlKTsKIApJbmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8v
YXVkaW9idWZmZXJzb3VyY2UtbmVnYXRpdmUtcGxheWJhY2tyYXRlLWludGVycG9sYXRlZC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLW5l
Z2F0aXZlLXBsYXliYWNrcmF0ZS1pbnRlcnBvbGF0ZWQuaHRtbAkocmV2aXNpb24gMjE3MTI3KQor
KysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtbmVnYXRpdmUtcGxheWJh
Y2tyYXRlLWludGVycG9sYXRlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDcgKzIsNyBAQAog
PGh0bWw+CiA8aGVhZD4KICAgICA8dGl0bGU+YXVkaW9idWZmZXJzb3VyY2UtbmVnYXRpdmUtcGxh
eWJhY2tyYXRlLWludGVycG9sYXRlZDwvdGl0bGU+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1
ZGlvLXRlc3RpbmcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYXVk
aW9idWZmZXJzb3VyY2UtdGVzdGluZy5qcyI+PC9zY3JpcHQ+CiAKQEAgLTIxLDEwICsyMSw3IEBA
CiAgICAgfV07CiAKICAgICBmdW5jdGlvbiBnbygpIHsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgICAgICB9CisgICAgICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOwogCiAgICAgICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1
ZGlvQ29udGV4dCgxLCByZW5kZXJGcmFtZXMsIHNhbXBsZVJhdGUpOwogCkluZGV4OiBMYXlvdXRU
ZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1uZWdhdGl2ZS1wbGF5YmFja3JhdGUtbG9v
cC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9i
dWZmZXJzb3VyY2UtbmVnYXRpdmUtcGxheWJhY2tyYXRlLWxvb3AtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1u
ZWdhdGl2ZS1wbGF5YmFja3JhdGUtbG9vcC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTEsMiArMSw1IEBACiBQQVNTIFRlc3QgbG9vcGluZyBwbGF5YmFjayBhdCAtMSBwbGF5YmFja1Jh
dGUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQogCklu
ZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1uZWdhdGl2ZS1wbGF5
YmFja3JhdGUtbG9vcC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL2F1
ZGlvYnVmZmVyc291cmNlLW5lZ2F0aXZlLXBsYXliYWNrcmF0ZS1sb29wLmh0bWwJKHJldmlzaW9u
IDIxNzEyNykKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLW5lZ2F0
aXZlLXBsYXliYWNrcmF0ZS1sb29wLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBA
CiA8aHRtbD4KIDxoZWFkPgogICAgIDx0aXRsZT5hdWRpb2J1ZmZlcnNvdXJjZS1uZWdhdGl2ZS1w
bGF5YmFja3JhdGUtbG9vcDwvdGl0bGU+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvLXRl
c3RpbmcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYXVkaW9idWZm
ZXJzb3VyY2UtdGVzdGluZy5qcyI+PC9zY3JpcHQ+CiAKQEAgLTI0LDEwICsyNCw3IEBACiAgICAg
fV07CiAKICAgICBmdW5jdGlvbiBnbygpIHsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgICAgICB9CisgICAgICAgIGpzVGVzdElzQXN5
bmMgPSB0cnVlOwogCiAgICAgICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29u
dGV4dCgxLCByZW5kZXJGcmFtZXMsIHNhbXBsZVJhdGUpOwogCkluZGV4OiBMYXlvdXRUZXN0cy93
ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1uZWdhdGl2ZS1wbGF5YmFja3JhdGUuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1uZWdhdGl2
ZS1wbGF5YmFja3JhdGUuaHRtbAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtbmVnYXRpdmUtcGxheWJhY2tyYXRlLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTIsNyArMiw3IEBACiA8aHRtbD4KIDxoZWFkPgogICAgIDx0aXRsZT5hdWRp
b2J1ZmZlcnNvdXJjZS1uZWdhdGl2ZS1wbGF5YmFja3JhdGU8L3RpdGxlPgotICAgIDxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy9hdWRpby10ZXN0aW5nLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2F1ZGlvYnVmZmVyc291cmNlLXRlc3RpbmcuanMiPjwvc2NyaXB0PgogCkBAIC0y
MSwxMCArMjEsNyBAQAogICAgIH1dOwogCiAgICAgZnVuY3Rpb24gZ28oKSB7Ci0gICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgfQor
ICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgICAgICBjb250ZXh0ID0gbmV3IHdl
YmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgcmVuZGVyRnJhbWVzLCBzYW1wbGVSYXRlKTsKIApJ
bmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtcGxheWJhY2tTdGF0
ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291
cmNlLXBsYXliYWNrU3RhdGUuaHRtbAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMv
d2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtcGxheWJhY2tTdGF0ZS5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvYXVkaW8tdGVzdGluZy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiAKIDxib2R5PgpAQCAtOTcsMTEgKzk3LDYgQEAg
ZnVuY3Rpb24gY3JlYXRlVGVzdChzb3VyY2VMZW5ndGgsIG5vdGVGdQogCiBmdW5jdGlvbiBydW5U
ZXN0KCkKIHsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAg
IH0KLQogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgIC8vIENyZWF0ZSBv
ZmZsaW5lIGF1ZGlvIGNvbnRleHQsIHJlbmRlcmluZyBmb3IgcmVuZGVyVGltZSBzZWNvbmRzLgpA
QCAtMTU1LDEwICsxNTAsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkKIH0KICAgICAgIAogcnVuVGVz
dCgpOwotc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKICAgCiA8L3NjcmlwdD4KLQotPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5Pgog
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2Utc3Rh
cnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlv
YnVmZmVyc291cmNlLXN0YXJ0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5
b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2Utc3RhcnQtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC03LDQgKzcsNyBAQCBQQVNTIHN0YXJ0KHdoZW4sIDApOiBwbGF5IHdo
b2xlIGJ1ZmZlciBmCiBQQVNTIHN0YXJ0KHdoZW4sIDAsIDhfZnJhbWVzKTogcGxheSB3aG9sZSBi
dWZmZXIgZnJvbSBiZWdpbm5pbmcgdG8gZW5kIGV4cGxpY2l0bHkgZ2l2aW5nIG9mZnNldCBvZiAw
IGFuZCBkdXJhdGlvbiBvZiA4IGZyYW1lcwogUEFTUyBzdGFydCh3aGVuLCA0X2ZyYW1lcyk6IHBs
YXkgd2l0aCBleHBsaWNpdCBub24temVybyBvZmZzZXQKIFBBU1Mgc3RhcnQod2hlbiwgNF9mcmFt
ZXMsIDRfZnJhbWVzKTogcGxheSB3aXRoIGV4cGxpY2l0IG5vbi16ZXJvIG9mZnNldCBhbmQgZHVy
YXRpb24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQog
CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1zdGFydC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXN0
YXJ0Lmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlv
YnVmZmVyc291cmNlLXN0YXJ0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsNyArNCw3IEBACiA8
aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYXVkaW8tdGVzdGluZy5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvYnVmZmVyc291cmNlLXRlc3RpbmcuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogPC9o
ZWFkPgogCiA8Ym9keT4KQEAgLTcxLDExICs3MSw2IEBAIGZ1bmN0aW9uIHJ1bkxvb3BUZXN0KGNv
bnRleHQsIHRlc3ROdW1iZXIKIH0KIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIH0KLQogICAgIHdpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQu
CkBAIC05MCwxMCArODUsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogfQogCiBydW5UZXN0KCk7
Ci1zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogCiA8L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jaGFubmVsbWVyZ2VyLWJhc2ljLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jaGFubmVsbWVyZ2Vy
LWJhc2ljLmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL2F1
ZGlvY2hhbm5lbG1lcmdlci1iYXNpYy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDcgKzIsNyBA
QAogCiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpby10ZXN0aW5nLmpzIj48L3Njcmlw
dD4KIDwvaGVhZD4KIApAQCAtMTUsMTEgKzE1LDYgQEAKIGRlc2NyaXB0aW9uKCJCYXNpYyB0ZXN0
cyBmb3IgQXVkaW9DaGFubmVsTWVyZ2VyLiIpOwogCiBmdW5jdGlvbiBydW5UZXN0KCkgewotICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKLSAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgfQotCiAgICAgd2lu
ZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0
QXVkaW9Db250ZXh0KCk7CkBAIC02OCw3ICs2Myw1IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiBy
dW5UZXN0KCk7CiAKIDwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy93ZWJhdWRpby9hdWRpb2NoYW5uZWxtZXJnZXItc3RlcmVvLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jaGFubmVsbWVyZ2VyLXN0ZXJlby5odG1sCShyZXZp
c2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NoYW5uZWxtZXJnZXIt
c3RlcmVvLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3IEBAIFRlc3RzIHRoYXQgdGhh
dCB3ZSBjYW4gbWVyZ2UgdHdvIG1vbm8gc3QKIAogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9InJlc291cmNlcy9hdWRpby10ZXN0aW5nLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InJlc291cmNlcy9idWZmZXItbG9hZGVyLmpz
Ij48L3NjcmlwdD4KIDwvaGVhZD4KQEAgLTcwLDExICs3MCw2IEBAIGZ1bmN0aW9uIGNoZWNrUmVz
dWx0KGV2ZW50KSB7CiB9CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICB9Ci0gICAgCiAgICAgd2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOwogICAgICAgICAKICAgICAvLyBDcmVhdGUgc3RlcmVvIG9mZmxpbmUg
YXVkaW8gY29udGV4dC4KQEAgLTEwOSw3ICsxMDQsNSBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewog
cnVuVGVzdCgpOwogCiA8L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvd2ViYXVkaW8vYXVkaW9jaGFubmVsc3BsaXR0ZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy93ZWJhdWRpby9hdWRpb2NoYW5uZWxzcGxpdHRlci5odG1sCShyZXZpc2lvbiAyMTcx
MjcpCisrKyBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NoYW5uZWxzcGxpdHRlci5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC02LDcgKzYsNyBAQCBUZXN0cyB0aGF0IEF1ZGlvQ2hhbm5lbFNwbGl0
dGVyIHdvcmtzIGNvCiAKIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJy
ZXNvdXJjZXMvYXVkaW8tdGVzdGluZy5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiAKQEAgLTczLDEx
ICs3Myw2IEBAIGZ1bmN0aW9uIGNoZWNrUmVzdWx0KGV2ZW50KSB7CiB9CiAKIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAg
ICB9Ci0KICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKICAgICAvLyBDcmVhdGUg
c3RlcmVvIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KQEAgLTE2Miw3ICsxNTcsNSBAQCBmdW5jdGlv
biBydW5UZXN0KCkgewogcnVuVGVzdCgpOwogCiA8L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LXByb21pc2UtdGhyb3dpbmcu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NvbnRleHQtcHJv
bWlzZS10aHJvd2luZy5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy93ZWJh
dWRpby9hdWRpb2NvbnRleHQtcHJvbWlzZS10aHJvd2luZy5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0yLDcgKzIsNyBAQAogCiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpby10ZXN0aW5n
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZGVsYXktdGVzdGluZy5qcyI+
PC9zY3JpcHQ+CiA8L2hlYWQ+CkBAIC0xNiwxMSArMTYsNiBAQAogZGVzY3JpcHRpb24oIlRlc3Rz
IHRoYXQgQXVkaW9Db250ZXh0IHJlc3VtZS9zdXNwZW5kL2Nsb3NlIG1ldGhvZHMgcmVqZWN0IHBy
b21pc2VzIHdoZW4gY2FsbGVkIG9uIGFuIE9mZmxpbmVBdWRpb0NvbnRleHQuIik7CiAKIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKLSAgICB9Ci0gICAgCiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAgICAg
ICAKICAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHNh
bXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKQEAgLTYwLDcgKzU1
LDUgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKIHJ1blRlc3QoKTsKIAogPC9zY3JpcHQ+Ci0KLTxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9k
eT4KIDwvaHRtbD4gCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NvbnRleHQtcHJv
bWlzZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY29udGV4
dC1wcm9taXNlLmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL3dlYmF1ZGlv
L2F1ZGlvY29udGV4dC1wcm9taXNlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBA
CiAKIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+CiA8L2hlYWQ+CiAKIDxib2R5PgpAQCAtMTQsMTEgKzE0LDYgQEAKIGRlc2NyaXB0aW9u
KCJUZXN0cyB0aGF0IEF1ZGlvQ29udGV4dCBzdXNwZW5kIG1ldGhvZCByZXNvbHZlIHByb21pc2Vz
IGltbWVkaWF0ZWx5IHdoZW4gYWxyZWFkeSBzdXNwZW5kZWQuIik7CiAKIGZ1bmN0aW9uIHJ1blRl
c3QoKSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICB9
Ci0gICAgCiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgY29udGV4dCA9
IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKQEAgLTUxLDcgKzQ2LDUgQEAgZnVuY3Rpb24gcnVu
VGVzdCgpIHsKIHJ1blRlc3QoKTsKIAogPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY29udGV4dC1yZXN0cmljdGlvbi1hdWRpb2J1ZmZl
cnNvdXJjZW5vZGUtc3RhcnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRp
by9hdWRpb2NvbnRleHQtcmVzdHJpY3Rpb24tYXVkaW9idWZmZXJzb3VyY2Vub2RlLXN0YXJ0Lmh0
bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY29udGV4
dC1yZXN0cmljdGlvbi1hdWRpb2J1ZmZlcnNvdXJjZW5vZGUtc3RhcnQuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMiw3ICsyLDcgQEAKIAogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9InJlc291cmNlcy9hdWRpby10ZXN0aW5nLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIApA
QCAtMTgsMTEgKzE4LDYgQEAgdmFyIG5vZGUgPSBudWxsOwogdmFyIGNhbGxlZFJlc3VtZVdpdGhV
c2VyR2VzdHVyZSA9IGZhbHNlOwogCiBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgfQotCiAgICAgd2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOwogCiAgICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQo
KTsKQEAgLTYzLDcgKzU4LDUgQEAgZnVuY3Rpb24gbm9Vc2VyR2VzdHVyZVJlc3VtZVN1Y2NlZWRl
ZCgpIAogcnVuVGVzdCgpOwogCiA8L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LXJlc3RyaWN0aW9uLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LXJlc3RyaWN0aW9uLmh0bWwJ
KHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY29udGV4dC1y
ZXN0cmljdGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDcgKzIsNyBAQAogCiA8aHRtbD4K
IDxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVzb3VyY2VzL2F1ZGlvLXRlc3Rpbmcu
anMiPjwvc2NyaXB0PgogPC9oZWFkPgogCkBAIC0xOCwxMSArMTgsNiBAQCB2YXIgbm9kZSA9IG51
bGw7CiB2YXIgY2FsbGVkUmVzdW1lV2l0aFVzZXJHZXN0dXJlID0gZmFsc2U7CiAKIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
LSAgICB9Ci0KICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKICAgICBjb250ZXh0
ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgpOwpAQCAtNzksNyArNzQsNSBAQCBmdW5jdGlvbiBy
ZXN1bWVTdWNjZWVkZWQoKSB7CiBydW5UZXN0KCk7CiAKIDwvc2NyaXB0PgotCi08c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NvbnRleHQtc3RhdGUtaW50ZXJy
dXB0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NvbnRl
eHQtc3RhdGUtaW50ZXJydXB0ZWQuaHRtbAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVz
dHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LXN0YXRlLWludGVycnVwdGVkLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTIsNyArMiw3IEBACiAKIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJyZXNvdXJjZXMvYXVkaW8tdGVzdGluZy5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiAK
QEAgLTE3LDExICsxNyw2IEBAIHZhciBjb250ZXh0ID0gbnVsbDsKIHZhciBub2RlID0gbnVsbDsK
IAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwotICAgIH0KLSAgICAKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
CiAKICAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgpOwpAQCAtMTQ3LDcgKzE0
Miw1IEBAIGZ1bmN0aW9uIGZvdXJ0aEludGVycnVwdGlvbkVuZGVkKCkgewogcnVuVGVzdCgpOwog
CiA8L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8v
YXVkaW9jb250ZXh0LXN0YXRlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVk
aW8vYXVkaW9jb250ZXh0LXN0YXRlLmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRl
c3RzL3dlYmF1ZGlvL2F1ZGlvY29udGV4dC1zdGF0ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0y
LDcgKzIsNyBAQAogCiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVz
b3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogCkBAIC0xNywxMSAr
MTcsNiBAQCB2YXIgY29udGV4dCA9IG51bGw7CiB2YXIgbm9kZSA9IG51bGw7CiAKIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
LSAgICB9Ci0gICAgCiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgY29u
dGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKQEAgLTEyMiw3ICsxMTcsNSBAQCBmdW5j
dGlvbiBzdXNwZW5kRmFpbGVkQ29ycmVjdGx5KCkgewogcnVuVGVzdCgpOwogCiA8L3NjcmlwdD4K
LQotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgog
PC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9ub2RlLWNo
YW5uZWwtcnVsZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRp
b25vZGUtY2hhbm5lbC1ydWxlcy5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0
cy93ZWJhdWRpby9hdWRpb25vZGUtY2hhbm5lbC1ydWxlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0yLDcgKzIsNyBAQAogCiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
cmVzb3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogCkBAIC0yNzIs
MTEgKzI3Miw2IEBAIGZ1bmN0aW9uIGNoZWNrUmVzdWx0KGV2ZW50KSB7CiB9CiAKIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
LSAgICB9Ci0KICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKICAgICAvLyBDcmVh
dGUgOC1jaGFubmVsIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KQEAgLTMxMiw3ICszMDcsNSBAQCBm
dW5jdGlvbiBydW5UZXN0KCkgewogcnVuVGVzdCgpOwogCiA8L3NjcmlwdD4KLQotPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9ub2RlLWNvbm5lY3Qtb3JkZXIu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb25vZGUtY29ubmVj
dC1vcmRlci5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy93ZWJhdWRpby9h
dWRpb25vZGUtY29ubmVjdC1vcmRlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDcgKzIsNyBA
QAogCiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpby10ZXN0aW5nLmpzIj48L3Njcmlw
dD4KIDwvaGVhZD4KIApAQCAtMzIsMTEgKzMyLDYgQEAgZnVuY3Rpb24gY3JlYXRlU2luV2F2ZUJ1
ZmZlcihjb250ZXh0LCBsZQogfQogCiBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgfQotICAgIAogICAgIHdpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVk
aW8gY29udGV4dC4KQEAgLTY3LDcgKzYyLDUgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKIHJ1blRl
c3QoKTsKIAogPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3dl
YmF1ZGlvL2F1ZGlvbm9kZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlv
L2F1ZGlvbm9kZS5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy93ZWJhdWRp
by9hdWRpb25vZGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiw3ICsyLDcgQEAKIAogPGh0bWw+
CiA8aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InJlc291cmNlcy9hdWRpby10ZXN0aW5n
LmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIApAQCAtMTcsMTMgKzE3LDYgQEAgdmFyIGNvbnRleHQg
PSAwOwogdmFyIGNvbnRleHQyID0gMDsKIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0g
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIH0KLSAgICAKLSAgICB3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KICAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlv
Q29udGV4dCgpOwogICAgIHdpbmRvdy5hdWRpb05vZGUgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNv
dXJjZSgpOwogCkBAIC0xMDIsMTQgKzk1LDEwIEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAg
fSBjYXRjaChlKSB7CiAgICAgICAgIHRlc3RGYWlsZWQoImV4Y2VwdGlvbiBzaG91bGRuJ3QgYmUg
dGhyb3duIHdoZW4gdGVzdGluZyB3aGV0aGVyIGF1ZGlvIG5vZGUgaXMgYW4gZXZlbnQgdGFyZ2V0
Iik7CiAgICAgfQotCi0gICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIHJ1blRlc3QoKTsKIAogPC9z
Y3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlv
cGFyYW0tY29ubmVjdC1hdWRpb3JhdGVzaWduYWwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLWNvbm5lY3QtYXVkaW9yYXRlc2lnbmFsLmh0bWwJKHJl
dmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tY29ubmVj
dC1hdWRpb3JhdGVzaWduYWwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTIsNyArMTIsNyBAQCBU
aHVzIGl0J3MgZWFzeSB0byBjaGVjayB0aGF0IHRoZSByZXN1bHRhCiA8aHRtbD4KIDxoZWFkPgog
PHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpby10ZXN0aW5nLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIAogPC9oZWFkPgogPGJvZHk+
CkBAIC01OCwxMSArNTgsNiBAQCBmdW5jdGlvbiBjaGVja1Jlc3VsdChldmVudCkgewogfQogCiBm
dW5jdGlvbiBydW5UZXN0KCkgewotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7Ci0gICAgfQotCiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAg
dmFyIHNhbXBsZUZyYW1lTGVuZ3RoID0gc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vjb25kczsKQEAg
LTEwNiwxMCArMTAxLDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKIH0KIAogcnVuVGVzdCgpOwot
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIAogPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0KIDwvYm9keT4KIDwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tc3VtbWluZ2p1bmN0aW9uLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1zdW1taW5n
anVuY3Rpb24uaHRtbAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8v
YXVkaW9wYXJhbS1zdW1taW5nanVuY3Rpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOSw3ICs5
LDcgQEAgYW5kIHRoYXQgdGhlc2Ugc2lnbmFscyBhcmUgc3VtbWVkLCBhbG9uZwogPGhlYWQ+CiA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9InJlc291cmNlcy9taXgtdGVzdGluZy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiAKIDwvaGVhZD4KIDxib2R5PgpAQCAtNzEs
MTEgKzcxLDYgQEAgZnVuY3Rpb24gY2hlY2tSZXN1bHQoZXZlbnQpIHsKIH0KIAogZnVuY3Rpb24g
cnVuVGVzdCgpIHsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwot
ICAgIH0KLQogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgIHZhciBzYW1w
bGVGcmFtZUxlbmd0aCA9IHNhbXBsZVJhdGUgKiBsZW5ndGhJblNlY29uZHM7CkBAIC0xMjIsMTAg
KzExNyw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiB9CiAKIHJ1blRlc3QoKTsKLXN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CiAKIDwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotCiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3Byb2Nlc3NpbmdldmVudC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcHJvY2Vzc2luZ2V2ZW50Lmh0bWwJKHJldmlz
aW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcHJvY2Vzc2luZ2V2ZW50
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiA8IURPQ1RZUEUgaHRtbD4KIDxo
dG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJyZXNvdXJjZXMvYXVkaW8tdGVz
dGluZy5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiAKQEAgLTM5LDExICszOSw2IEBAIGZ1bmN0aW9u
IHByb2Nlc3NBdWRpb0RhdGEoZXZlbnQpIHsKIH0KIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIH0KLQogICAgIHdp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlv
IGNvbnRleHQuCkBAIC03Nyw3ICs3Miw1IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiBydW5UZXN0
KCk7CiAKIDwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJh
dWRpby9hdXRvbWF0aWMtcHVsbC1ub2RlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
d2ViYXVkaW8vYXV0b21hdGljLXB1bGwtbm9kZS5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBM
YXlvdXRUZXN0cy93ZWJhdWRpby9hdXRvbWF0aWMtcHVsbC1ub2RlLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTIsNyArMiw3IEBACiAKIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJyZXNvdXJjZXMvYXVkaW8tdGVzdGluZy5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiAKQEAg
LTExOCwxMSArMTE4LDYgQEAgZnVuY3Rpb24gdGVzdDMoKSB7CiB9CiAKIGZ1bmN0aW9uIHJ1blRl
c3QoKSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICB9
Ci0KICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKICAgICB0ZXN0MSgpOwpAQCAt
MTMxLDcgKzEyNiw1IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiBydW5UZXN0KCk7CiAKIDwvc2Ny
aXB0PgotCi08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQt
YWxscGFzcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1h
bGxwYXNzLmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL2Jp
cXVhZC1hbGxwYXNzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsNyArMyw3IEBACiA8aHRtbD4K
IDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpby10ZXN0aW5nLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvYmlxdWFkLXRlc3RpbmcuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogCkBA
IC0xNiwxMSArMTYsNiBAQAogZGVzY3JpcHRpb24oIlRlc3RzIEJpcXVhZCBhbGxwYXNzIGZpbHRl
ci4iKTsKIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOwotICAgIH0KLSAgICAKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCkBA
IC0zOCwxMCArMzMsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogfQogCiBydW5UZXN0KCk7Ci1z
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogCiA8L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWJhbmRwYXNzLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWJhbmRwYXNzLmh0bWwJKHJldmlzaW9u
IDIxNzEyNykKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1iYW5kcGFzcy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvYXVkaW8tdGVzdGluZy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2JpcXVh
ZC10ZXN0aW5nLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIApAQCAtMTYsMTEgKzE2LDYgQEAKIGRl
c2NyaXB0aW9uKCJUZXN0cyBCaXF1YWQgYmFuZHBhc3MgZmlsdGVyLiIpOwogCiBmdW5jdGlvbiBy
dW5UZXN0KCkgewotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0g
ICAgfQotICAgIAogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICAgICAgCiAg
ICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KQEAgLTQwLDEwICszNSw3IEBAIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7CiB9CiAKIHJ1blRlc3QoKTsKLXN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7CiAKIDwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy93
ZWJhdWRpby9iaXF1YWQtZ2V0RnJlcXVlbmN5UmVzcG9uc2UuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtZ2V0RnJlcXVlbmN5UmVzcG9uc2UuaHRtbAkocmV2
aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWdldEZyZXF1ZW5j
eVJlc3BvbnNlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsNyArMyw3IEBACiA8aGVhZD4KIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvYXVkaW8tdGVzdGluZy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2JpcXVhZC10ZXN0aW5nLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIAogPGJvZHk+CkBAIC0y
NzEsMTEgKzI3MSw2IEBAIGZ1bmN0aW9uIGNvbXBhcmVSZXNwb25zZXMoZmlsdGVyLCBmcmVxdWUK
IAogZnVuY3Rpb24gcnVuVGVzdCgpCiB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0g
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKLSAgICB9Ci0KICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAK
ICAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgpOwpAQCAtMzA1LDEwICszMDAs
NyBAQCBmdW5jdGlvbiBydW5UZXN0KCkKIH0KIAogcnVuVGVzdCgpOwotc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKIAogPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL3dlYmF1ZGlvL2JpcXVhZC1oaWdocGFzcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3dlYmF1ZGlvL2JpcXVhZC1oaWdocGFzcy5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBM
YXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtaGlnaHBhc3MuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMyw3ICszLDcgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1
ZGlvLXRlc3RpbmcuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9iaXF1YWQtdGVzdGluZy5qcyI+
PC9zY3JpcHQ+CiA8L2hlYWQ+CiAKQEAgLTE2LDExICsxNiw2IEBACiBkZXNjcmlwdGlvbigiVGVz
dHMgQmlxdWFkIGhpZ2hwYXNzIGZpbHRlci4iKTsKIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIH0KLSAgICAKICAg
ICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBv
ZmZsaW5lIGF1ZGlvIGNvbnRleHQuCkBAIC0zOSwxMCArMzQsNiBAQCBmdW5jdGlvbiBydW5UZXN0
KCkgewogfQogCiBydW5UZXN0KCk7Ci1zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotCiA8L3Nj
cmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFk
LWhpZ2hzaGVsZi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVh
ZC1oaWdoc2hlbGYuaHRtbAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvd2ViYXVk
aW8vYmlxdWFkLWhpZ2hzaGVsZi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQAog
PGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYXVkaW8tdGVzdGluZy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2JpcXVhZC10ZXN0aW5nLmpzIj48L3NjcmlwdD4KIDwvaGVh
ZD4KIApAQCAtMTYsMTEgKzE2LDYgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyBCaXF1YWQgaGlnaHNo
ZWxmIGZpbHRlci4iKTsKIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIH0KLSAgICAKICAgICB3aW5kb3cuanNUZXN0
SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNv
bnRleHQuCkBAIC0zOSwxMCArMzQsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogfQogCiBydW5U
ZXN0KCk7Ci1zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogCiA8L3NjcmlwdD4KLQotPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5Pgog
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWxvd3Bhc3MuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtbG93cGFzcy5odG1sCShy
ZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtbG93cGFzcy5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvYXVkaW8tdGVzdGluZy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L2JpcXVhZC10ZXN0aW5nLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIApAQCAtMTYsMTEgKzE2LDYg
QEAKIGRlc2NyaXB0aW9uKCJUZXN0cyBCaXF1YWQgbG93cGFzcyBmaWx0ZXIuIik7CiAKIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKLSAgICB9Ci0gICAgCiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAgICAg
ICAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgpAQCAtNDAsMTAgKzM1LDcg
QEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKIH0KIAogcnVuVGVzdCgpOwotc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKIAogPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL3dlYmF1ZGlvL2JpcXVhZC1sb3dzaGVsZi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3dlYmF1ZGlvL2JpcXVhZC1sb3dzaGVsZi5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBM
YXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtbG93c2hlbGYuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMyw3ICszLDcgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1
ZGlvLXRlc3RpbmcuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9iaXF1YWQtdGVzdGluZy5qcyI+
PC9zY3JpcHQ+CiA8L2hlYWQ+CiAKQEAgLTE2LDExICsxNiw2IEBACiBkZXNjcmlwdGlvbigiVGVz
dHMgQmlxdWFkIGxvd3NoZWxmIGZpbHRlci4iKTsKIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIH0KLSAgICAKICAg
ICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBv
ZmZsaW5lIGF1ZGlvIGNvbnRleHQuCkBAIC0zOSwxMCArMzQsNyBAQCBmdW5jdGlvbiBydW5UZXN0
KCkgewogfQogCiBydW5UZXN0KCk7Ci1zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogCiA8L3Nj
cmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFk
LW5vdGNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLW5v
dGNoLmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVh
ZC1ub3RjaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQAogPGh0bWw+CiA8aGVh
ZD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYXVkaW8tdGVzdGluZy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2JpcXVhZC10ZXN0aW5nLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIApAQCAtMTYs
MTEgKzE2LDYgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyBCaXF1YWQgbm90Y2ggZmlsdGVyLiIpOwog
CiBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7Ci0gICAgfQotICAgIAogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
ICAgICAgICAgCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KQEAgLTM5LDEw
ICszNCw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiB9CiAKIHJ1blRlc3QoKTsKLXN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CiAKIDwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtcGVha2luZy5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1wZWFraW5nLmh0bWwJKHJldmlzaW9uIDIxNzEyNykK
KysrIExheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1wZWFraW5nLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTMsNyArMyw3IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNl
cy9hdWRpby10ZXN0aW5nLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYmlxdWFkLXRlc3Rpbmcu
anMiPjwvc2NyaXB0PgogPC9oZWFkPgogCkBAIC0xNiwxMSArMTYsNiBAQAogZGVzY3JpcHRpb24o
IlRlc3RzIEJpcXVhZCBwZWFraW5nIGZpbHRlci4iKTsKIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsK
LSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIH0KLSAgICAK
ICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0
ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCkBAIC00MCwxMCArMzUsNyBAQCBmdW5jdGlvbiBydW5U
ZXN0KCkgewogfQogCiBydW5UZXN0KCk7Ci1zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogCiA8
L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlx
dWFkZmlsdGVybm9kZS1iYXNpYy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1
ZGlvL2JpcXVhZGZpbHRlcm5vZGUtYmFzaWMuaHRtbAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5
b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkZmlsdGVybm9kZS1iYXNpYy5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDcgKzEsNyBAQAogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJl
c291cmNlcy9hdWRpby10ZXN0aW5nLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIApAQCAtMTUsMTMg
KzE1LDYgQEAgZGVzY3JpcHRpb24oIkJhc2ljIHRlc3RzIGZvciBCaXF1YWRGaWx0ZQogdmFyIGNv
bnRleHQgPSAwOwogCiBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgfQotICAgIAotICAgIHdpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKLQogICAgIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7CiAg
ICAgdmFyIGZpbHRlciA9IGNvbnRleHQuY3JlYXRlQmlxdWFkRmlsdGVyKCk7CiAgICAKQEAgLTg0
LDE0ICs3NywxMCBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIC8vIENoZWNrIHRoYXQgd2Ug
ZG9uJ3QgdGhyb3cgYW4gZXhjZXB0aW9uIGZvciBpbGxlZ2FsIC50eXBlIHZhbHVlcyBhcyBwZXIg
V2ViSURMLgogICAgIHNob3VsZE5vdFRocm93RXhjZXB0aW9uKGZ1bmN0aW9uKCkgeyBmaWx0ZXIu
dHlwZSA9ICJ4eXoxMjM0OWpma3NkIjsgfSwgIlNldHRpbmcgLnR5cGUgdG8gaWxsZWdhbCBzdHJp
bmcgdmFsdWUiKTsKICAgICBzaG91bGROb3RUaHJvd0V4Y2VwdGlvbihmdW5jdGlvbigpIHsgZmls
dGVyLnR5cGUgPSBuZXcgRmxvYXQzMkFycmF5KDEpOyB9LCAiU2V0dGluZyAudHlwZSB0byBpbGxl
Z2FsIHR5cGUiKTsKLQotICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCiBydW5UZXN0KCk7CiAKIDwv
c2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9jb252
b2x1dGlvbi1tb25vLW1vbm8uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRp
by9jb252b2x1dGlvbi1tb25vLW1vbm8uaHRtbAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0
VGVzdHMvd2ViYXVkaW8vY29udm9sdXRpb24tbW9uby1tb25vLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTMsNyArMyw3IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0icmVzb3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291
cmNlcy9jb252b2x1dGlvbi10ZXN0aW5nLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIApAQCAtMjYs
MTEgKzI2LDYgQEAgZGVzY3JpcHRpb24oIlRlc3RzIENvbnZvbHZlck5vZGUgcHJvY2VzcwogLy8g
dGhlIHJlc3VsdCBzaG91bGQgYmUgZXhhY3RseSB6ZXJvIGJlY2F1c2UgdGhlIGlucHV0cyBhcmUg
ZXhhY3RseQogLy8gemVyby4KIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICB9Ci0gICAgCiAgICAgd2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOwogICAgICAgICAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBj
b250ZXh0LgpAQCAtNTYsMTAgKzUxLDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKIH0KIAogcnVu
VGVzdCgpOwotc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIAogPC9zY3JpcHQ+Ci0KLTxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4K
IDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL2RlY29kZS1hdWRpby1kYXRhLWJh
c2ljLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVjb2RlLWF1ZGlv
LWRhdGEtYmFzaWMuaHRtbAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvd2ViYXVk
aW8vZGVjb2RlLWF1ZGlvLWRhdGEtYmFzaWMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxNyAr
MSwxMiBAQAogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0icmVzb3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMiPjwvc2NyaXB0PgogPC9oZWFkPgog
PGJvZHk+CiA8c2NyaXB0PgogZGVzY3JpcHRpb24oIkJhc2ljIHRlc3RzIGZvciBkZWNvZGVBdWRp
b0RhdGEgZnVuY3Rpb24uIik7Ci0KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotfQog
ICAgIAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCkBAIC02MCw2ICs1NSw1IEBAIGZ1
bmN0aW9uIHJ1bkRlY29kZVRlc3QoaW5kZXgpIHsKIHJ1bkRlY29kZVRlc3QoMCk7CiAKIDwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVjb2RlLWF1
ZGlvLWRhdGEtdG9vLXNob3J0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVk
aW8vZGVjb2RlLWF1ZGlvLWRhdGEtdG9vLXNob3J0Lmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysr
IExheW91dFRlc3RzL3dlYmF1ZGlvL2RlY29kZS1hdWRpby1kYXRhLXRvby1zaG9ydC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDE4ICsxLDEzIEBACiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgog
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJyZXNvdXJjZXMvYXVkaW8tdGVzdGluZy5q
cyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KIDxzY3JpcHQ+CiBkZXNjcmlwdGlvbigiVGVz
dCB0aGF0IGRlY29kaW5nIGFuIGF1ZGlvIGZpbGUgd2hpY2ggaXMgdG9vIHNob3J0IGRvZXMgbm90
IGNhdXNlIGEgY3Jhc2guIik7CiAKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotfQot
CiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKIHZhciBjb250ZXh0ID0gbmV3IHdlYmtp
dEF1ZGlvQ29udGV4dCgpOwpAQCAtMjYsNiArMjEsNSBAQCByZXF1ZXN0Lm9ubG9hZCA9IGZ1bmN0
aW9uKCkgewogcmVxdWVzdC5zZW5kKCk7CiAKIDwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLW1heC1kZWZhdWx0LWRlbGF5Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLW1heC1kZWZhdWx0
LWRlbGF5Lmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL2Rl
bGF5bm9kZS1tYXgtZGVmYXVsdC1kZWxheS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDcgKzIs
NyBAQAogCiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpby10ZXN0aW5nLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZGVsYXktdGVzdGluZy5qcyI+PC9zY3JpcHQ+
CiA8L2hlYWQ+CkBAIC0xNiwxMSArMTYsNiBAQAogZGVzY3JpcHRpb24oIlRlc3RzIERlbGF5Tm9k
ZSB3aXRoIGRlbGF5IHNldCB0byBkZWZhdWx0IG1heGltdW0gZGVsYXkuIik7CiAKIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
LSAgICB9Ci0gICAgCiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAgICAgICAK
ICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgpAQCAtNDUsNyArNDAsNSBAQCBm
dW5jdGlvbiBydW5UZXN0KCkgewogcnVuVGVzdCgpOwogCiA8L3NjcmlwdD4KLQotPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLW1heC1ub25kZWZhdWx0
LWRlbGF5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2Rl
LW1heC1ub25kZWZhdWx0LWRlbGF5Lmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRl
c3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS1tYXgtbm9uZGVmYXVsdC1kZWxheS5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0yLDcgKzIsNyBAQAogCiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRp
by10ZXN0aW5nLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZGVsYXktdGVz
dGluZy5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CkBAIC0xNiwxMSArMTYsNiBAQAogZGVzY3JpcHRp
b24oIlRlc3RzIERlbGF5Tm9kZSB3aXRoIGRlbGF5IHNldCB0byBub24tZGVmYXVsdCBtYXhpbXVt
IGRlbGF5LiIpOwogCiBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgfQotICAgIAogICAgIHdpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4
dC4KQEAgLTQ2LDcgKzQxLDUgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKIHJ1blRlc3QoKTsKIAog
PC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL2Rl
bGF5bm9kZS1tYXhkZWxheS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlv
L2RlbGF5bm9kZS1tYXhkZWxheS5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0
cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4ZGVsYXkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiw3
ICsyLDcgQEAKIAogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYXVkaW8tdGVzdGluZy5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RlbGF5LXRlc3RpbmcuanMiPjwvc2Ny
aXB0PgogPC9oZWFkPgpAQCAtMTYsMTEgKzE2LDYgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyBiYXNp
YyBmdW5jdGlvbmFsaXR5IG9mIERlbGF5Tm9kZSB3aXRoIGEgbm9uLWRlZmF1bHQgbWF4IGRlbGF5
IHRpbWUuIik7CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICB9Ci0gICAgCiAgICAgd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOwogICAgICAgICAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0
LgpAQCAtNDgsNyArNDMsNSBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogcnVuVGVzdCgpOwogCiA8
L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVs
YXlub2RlLW1heGRlbGF5bGltaXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJh
dWRpby9kZWxheW5vZGUtbWF4ZGVsYXlsaW1pdC5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBM
YXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4ZGVsYXlsaW1pdC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0yLDcgKzIsNyBAQAogCiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRp
by10ZXN0aW5nLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZGVsYXktdGVz
dGluZy5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CkBAIC0xNiwxMSArMTYsNiBAQAogZGVzY3JpcHRp
b24oIlRlc3RzIGF0dHJpYnV0ZSBhbmQgbWF4aW11bSBhbGxvd2VkIGRlbGF5IG9mIERlbGF5Tm9k
ZS4iKTsKIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOwotICAgIH0KLSAgICAKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCkBA
IC01MSw3ICs0Niw1IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiBydW5UZXN0KCk7CiAKIDwvc2Ny
aXB0PgotCi08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5v
ZGUtc2NoZWR1bGluZy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL2Rl
bGF5bm9kZS1zY2hlZHVsaW5nLmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3Rz
L3dlYmF1ZGlvL2RlbGF5bm9kZS1zY2hlZHVsaW5nLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIs
NyArMiw3IEBACiAKIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9kZWxheS10ZXN0aW5nLmpzIj48L3Nj
cmlwdD4KIDwvaGVhZD4KQEAgLTE2LDExICsxNiw2IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhh
dCBEZWxheU5vZGUgZGVsYXlUaW1lIHBhcmFtZXRlciBjYW4gYmUgc2NoZWR1bGVkIGF0IGEgZ2l2
ZW4gdGltZS4iKTsKIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIH0KLSAgICAKICAgICB3aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRl
eHQuCkBAIC00Niw3ICs0MSw1IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiBydW5UZXN0KCk7CiAK
IDwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9k
ZWxheW5vZGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5v
ZGUuaHRtbAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlu
b2RlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBACiAKIDxodG1sPgogPGhlYWQ+
Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJl
c291cmNlcy9kZWxheS10ZXN0aW5nLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KQEAgLTE2LDExICsx
Niw2IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgYXR0cmlidXRlIGFuZCBiYXNpYyBmdW5jdGlvbmFs
aXR5IG9mIERlbGF5LiIpOwogCiBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgfQotICAgIAogICAgIHdpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8g
Y29udGV4dC4KQEAgLTU0LDcgKzQ5LDUgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKIHJ1blRlc3Qo
KTsKIAogPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3dlYmF1
ZGlvL2Rpc3RhbmNlLWV4cG9uZW50aWFsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
d2ViYXVkaW8vZGlzdGFuY2UtZXhwb25lbnRpYWwuaHRtbAkocmV2aXNpb24gMjE3MTI3KQorKysg
TGF5b3V0VGVzdHMvd2ViYXVkaW8vZGlzdGFuY2UtZXhwb25lbnRpYWwuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMiw3ICsyLDcgQEAKIDxodG1sPgogICA8aGVhZD4KICAgICA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy9kaXN0YW5jZS1tb2RlbC10ZXN0aW5nLmpzIj48L3NjcmlwdD4KICAgPC9oZWFkPgogCkBA
IC0xNCwxMSArMTQsNiBAQAogICAgICAgZGVzY3JpcHRpb24oIlRlc3QgZXhwb25lbnRpYWwgZGlz
dGFuY2UgbW9kZWwgb2YgQXVkaW9QYW5uZXJOb2RlLiIpOwogCiAgICAgICBmdW5jdGlvbiBydW5U
ZXN0KCkgewotICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7Ci0gICAgICAgICAgfQotCiAgICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOwogCiAgICAgICAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4K
QEAgLTMwLDEwICsyNSw3IEBACiAgICAgICB9CiAKICAgICAgIHJ1blRlc3QoKTsKLSAgICAgIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiAKICAgICA8L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogICA8L2JvZHk+CiA8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9kaXN0YW5jZS1pbnZlcnNlLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGlzdGFuY2UtaW52ZXJzZS5odG1sCShy
ZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy93ZWJhdWRpby9kaXN0YW5jZS1pbnZlcnNl
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBACiA8aHRtbD4KICAgPGhlYWQ+CiAg
ICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpby10ZXN0aW5nLmpzIj48L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvZGlzdGFuY2UtbW9kZWwtdGVzdGluZy5qcyI+PC9zY3JpcHQ+
CiAgIDwvaGVhZD4KIApAQCAtMTQsMTEgKzE0LDYgQEAKICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0
IGludmVyc2UgZGlzdGFuY2UgbW9kZWwgb2YgQXVkaW9QYW5uZXJOb2RlLiIpOwogCiAgICAgICBm
dW5jdGlvbiBydW5UZXN0KCkgewotICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewot
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgICAgICAgfQotCiAgICAgICAgICAgd2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgICAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVk
aW8gY29udGV4dC4KQEAgLTMwLDEwICsyNSw2IEBACiAgICAgICB9CiAKICAgICAgIHJ1blRlc3Qo
KTsKLSAgICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci0KICAgICA8L3NjcmlwdD4KLQot
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogICA8
L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9kaXN0YW5jZS1saW5l
YXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9kaXN0YW5jZS1saW5l
YXIuaHRtbAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGlzdGFu
Y2UtbGluZWFyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBACiA8aHRtbD4KICAg
PGhlYWQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpby10ZXN0aW5nLmpzIj48L3Nj
cmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZGlzdGFuY2UtbW9kZWwtdGVzdGluZy5qcyI+
PC9zY3JpcHQ+CiAgIDwvaGVhZD4KIApAQCAtMTQsMTEgKzE0LDYgQEAKICAgICAgIGRlc2NyaXB0
aW9uKCJUZXN0IGxpbmVhciBkaXN0YW5jZSBtb2RlbCBvZiBBdWRpb1Bhbm5lck5vZGUuIik7CiAK
ICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7Ci0gICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgICB9Ci0KICAgICAgICAg
ICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKICAgICAgICAgICAvLyBDcmVhdGUgb2Zm
bGluZSBhdWRpbyBjb250ZXh0LgpAQCAtMzAsMTAgKzI1LDcgQEAKICAgICAgIH0KIAogICAgICAg
cnVuVGVzdCgpOwotICAgICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIAogICAgIDwvc2Ny
aXB0PgotCi08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CiAgIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL2R5bmFt
aWNzY29tcHJlc3Nvci1iYXNpYy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1
ZGlvL2R5bmFtaWNzY29tcHJlc3Nvci1iYXNpYy5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBM
YXlvdXRUZXN0cy93ZWJhdWRpby9keW5hbWljc2NvbXByZXNzb3ItYmFzaWMuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMiw3ICsyLDcgQEAKIAogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9InJlc291cmNlcy9hdWRpby10ZXN0aW5nLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4K
IApAQCAtMTcsMTMgKzE3LDYgQEAgdmFyIGNvbnRleHQ7CiB2YXIgY29tcHJlc3NvcjsKIAogZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOwotICAgIH0KLSAgICAKLSAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KICAg
ICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgpOwogICAgIGNvbXByZXNzb3IgPSBj
b250ZXh0LmNyZWF0ZUR5bmFtaWNzQ29tcHJlc3NvcigpOwogCkBAIC01NiwxNCArNDksMTAgQEAg
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgdGVzdEZhaWxl
ZCgiRXhjZXB0aW9uIHRocm93biB3aGVuIGFjY2Vzc2luZyBEeW5hbWljc0NvbXByZXNzb3JOb2Rl
IGF0dHJpYnV0ZXMuIik7CiAgICAgfQotCi0gICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIHJ1blRl
c3QoKTsKIAogPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3dl
YmF1ZGlvL2phdmFzY3JpcHRhdWRpb25vZGUtZG93bm1peDgtMmNoYW5uZWwtaW5wdXQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9qYXZhc2NyaXB0YXVkaW9ub2RlLWRv
d25taXg4LTJjaGFubmVsLWlucHV0Lmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRl
c3RzL3dlYmF1ZGlvL2phdmFzY3JpcHRhdWRpb25vZGUtZG93bm1peDgtMmNoYW5uZWwtaW5wdXQu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiw3ICsyLDcgQEAKIAogPGh0bWw+CiA8aGVhZD4KLTxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvYXVkaW8tdGVzdGluZy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJyZXNvdXJjZXMvamF2YXNjcmlwdGF1ZGlvbm9kZS10ZXN0aW5nLmpz
Ij48L3NjcmlwdD4KIDwvaGVhZD4KQEAgLTIxLDExICsyMSw2IEBAIHZhciBpbnB1dENoYW5uZWxz
ID0gMjsKIHZhciBvdXRwdXRDaGFubmVscyA9IDY7CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0g
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICB9Ci0KICAgICB3
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKICAgICBydW5KU05vZGVUZXN0KCk7CkBAIC0z
NCw3ICsyOSw1IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiBydW5UZXN0KCk7CiAKIDwvc2NyaXB0
PgotCi08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9qYXZhc2NyaXB0
YXVkaW9ub2RlLXVwbWl4Mi04Y2hhbm5lbC1pbnB1dC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3dlYmF1ZGlvL2phdmFzY3JpcHRhdWRpb25vZGUtdXBtaXgyLThjaGFubmVsLWlucHV0
Lmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL2phdmFzY3Jp
cHRhdWRpb25vZGUtdXBtaXgyLThjaGFubmVsLWlucHV0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTIsNyArMiw3IEBACiAKIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvLXRlc3Rpbmcu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVzb3Vy
Y2VzL2phdmFzY3JpcHRhdWRpb25vZGUtdGVzdGluZy5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CkBA
IC0yMSwxMSArMjEsNiBAQCB2YXIgaW5wdXRDaGFubmVscyA9IDg7CiB2YXIgb3V0cHV0Q2hhbm5l
bHMgPSA2OwogCiBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgewotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7Ci0gICAgfQotCiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOwogCiAgICAgcnVuSlNOb2RlVGVzdCgpOwpAQCAtMzQsNyArMjksNSBAQCBmdW5jdGlvbiBy
dW5UZXN0KCkgewogcnVuVGVzdCgpOwogCiA8L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vamF2YXNjcmlwdGF1ZGlvbm9kZS16ZXJvLWlucHV0LWNo
YW5uZWxzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vamF2YXNjcmlw
dGF1ZGlvbm9kZS16ZXJvLWlucHV0LWNoYW5uZWxzLmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysr
IExheW91dFRlc3RzL3dlYmF1ZGlvL2phdmFzY3JpcHRhdWRpb25vZGUtemVyby1pbnB1dC1jaGFu
bmVscy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8aGVhZD4K
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYXVkaW8tdGVzdGluZy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiAKIDxib2R5
PgpAQCAtMjUsMTEgKzI1LDYgQEAgZnVuY3Rpb24gY2hlY2tSZXN1bHQoZSkKIAogZnVuY3Rpb24g
cnVuVGVzdCgpCiB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
LSAgICB9Ci0KICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKICAgICB2YXIgY29u
dGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHJlbmRlckxlbmd0aEluRnJh
bWVzLCBzYW1wbGVSYXRlKTsKQEAgLTYwLDkgKzU1LDYgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiB9
CiAKIHJ1blRlc3QoKTsKLXN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KLSAg
ICAKLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
IDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL2phdmFzY3JpcHRh
dWRpb25vZGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9qYXZhc2Ny
aXB0YXVkaW9ub2RlLmh0bWwJKHJldmlzaW9uIDIxNzEyNykKKysrIExheW91dFRlc3RzL3dlYmF1
ZGlvL2phdmFzY3JpcHRhdWRpb25vZGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcg
QEAKIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9InJlc291cmNlcy9hdWRpby10ZXN0aW5nLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIApAQCAt
NzYsMTEgKzc2LDYgQEAgZnVuY3Rpb24gZG9CdWZmZXJTaXplVGVzdChzaXplKSB7CiB9CiAKIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKLSAgICB9Ci0KICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKICAgICAv
LyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgpAQCAtMTU1LDcgKzE1MCw1IEBAIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7CiBydW5UZXN0KCk7CiAKIDwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9tZWRpYWVsZW1lbnRhdWRp
b3NvdXJjZW5vZGUuaHRtbAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvd2ViYXVk
aW8vbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIs
NyArMiw3IEBACiAKIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMi
Pjwvc2NyaXB0PgogPC9oZWFkPgogCkBAIC0xNiwxMSArMTYsNiBAQCBkZXNjcmlwdGlvbigiQmFz
aWMgdGVzdHMgZm9yIE1lZGlhRWxlbWVuCiB2YXIgY29udGV4dCA9IDA7CiAKIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAg
ICB9Ci0gICAgCiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgY29udGV4
dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKQEAgLTg3LDcgKzgyLDUgQEAgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKIHJ1blRlc3QoKTsKIAogPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL29zY2lsbGF0b3ItYmFzaWMuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9vc2NpbGxhdG9yLWJhc2ljLmh0bWwJKHJldmlzaW9u
IDIxNzEyNykKKysrIExheW91dFRlc3RzL3dlYmF1ZGlvL29zY2lsbGF0b3ItYmFzaWMuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtNiw3ICs2LDcgQEAgQ3JlYXRlIGFuIG9zY2lsbGF0b3Igb2YgZWFj
aCB0eXBlIGFuZCB2ZQogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9InJlc291cmNlcy9hdWRpby10ZXN0aW5nLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiAKIDxib2R5PgpAQCAtMjcsMTEgKzI3
LDYgQEAgdmFyIG9zY1R5cGVzID0gW3t0eXBlOiAic2luZSIsIG5hbWU6ICJTSQogCiBmdW5jdGlv
biBydW5UZXN0KCkgCiB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKLSAgICB9Ci0gICAgCiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAgICAg
ICAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgpAQCAtNzgsOCArNzMsNSBA
QCBydW5UZXN0KCk7CiBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogCiA8L3NjcmlwdD4KLQot
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotCiA8
L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9vc2NpbGxhdG9yLWVu
ZGVkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9vc2Np
bGxhdG9yLWVuZGVkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVz
dHMvd2ViYXVkaW8vb3NjaWxsYXRvci1lbmRlZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSw2IEBACiBUZXN0cyB0aGF0IE9zY2lsbGF0b3JOb2RlIGNhbGxzIGl0cyBvbmVu
ZGVkIEV2ZW50TGlzdGVuZXIuCiBQQVNTIG9zYy5vbmVuZGVkIGNhbGxlZC4KK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQogCkluZGV4OiBMYXlvdXRUZXN0
cy93ZWJhdWRpby9vc2NpbGxhdG9yLWVuZGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvd2ViYXVkaW8vb3NjaWxsYXRvci1lbmRlZC5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBM
YXlvdXRUZXN0cy93ZWJhdWRpby9vc2NpbGxhdG9yLWVuZGVkLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEsNiArMSw2IEBACiA8IURPQ1RZUEUgaHRtbD4KIDxoZWFkPgotICAgIDxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9InJl
c291cmNlcy9hdWRpby10ZXN0aW5nLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL2F1ZGlvYnVmZmVyc291cmNlLXRlc3RpbmcuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQ+CkBAIC05LDEwICs5LDcgQEAKIAogICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkKICAgICAg
ICAgewotICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKIAogICAgICAgICAgICAgdmFyIHNhbXBsZVJhdGUgPSA0NDEwMC4wOwogICAgICAg
ICAgICAgdmFyIGxlbmd0aEluU2Vjb25kcyA9IDAuMTsKQEAgLTI0LDkgKzIxLDYgQEAKICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJvc2Mub25lbmRlZCBjYWxsZWQu
Iik7CiAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgICAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKLQogICAgICAgICAgICAgfQogICAgICAgICAgICAgb3NjLnN0YXJ0KDApOwogICAg
ICAgICAgICAgb3NjLnN0b3AoMC4xKTsKSW5kZXg6IExheW91dFRlc3RzL3dlYmF1ZGlvL3BhZ2Ut
Y2Fuc3RhcnRtZWRpYS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL3Bh
Z2UtY2Fuc3RhcnRtZWRpYS5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy93
ZWJhdWRpby9wYWdlLWNhbnN0YXJ0bWVkaWEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiw3ICsy
LDcgQEAKIAogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KIDwvaGVhZD4KIAogPGJvZHk+CkBAIC0xNCwxMSArMTQsNiBAQAogZGVzY3Jp
cHRpb24oIlRlc3RzIHRoYXQgQXVkaW9Db250ZXh0IHJlc3VtZSBtZXRob2QgcmVzb2x2ZSBwcm9t
aXNlcyB3aGVuIG5vdGlmaWVkIGJ5IFBhZ2UgdGhhdCBpdCBjYW4gc3RhcnQgbWVkaWEgcGxheWJh
Y2suIik7CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKLSAgICB9Ci0KICAgICBpZiAod2luZG93LmludGVybmFscykKICAg
ICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldENhblN0YXJ0TWVkaWEoZmFsc2UpOwogCkBAIC00
OSw3ICs0NCw1IEBAIGZ1bmN0aW9uIHJlc3VtZVByb21pc2VSZWplY3RlZCgpIHsKIHJ1blRlc3Qo
KTsKIAogPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3dlYmF1
ZGlvL3Bhbm5lci1lcXVhbHBvd2VyLXN0ZXJlby5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3dlYmF1ZGlvL3Bhbm5lci1lcXVhbHBvd2VyLXN0ZXJlby5odG1sCShyZXZpc2lvbiAyMTcx
MjcpCisrKyBMYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dlci1zdGVyZW8uaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMiw3ICsyLDcgQEAKIDxodG1sPgogICA8aGVhZD4KICAgICA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMiPjwvc2NyaXB0PgotICAgIDxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9InJlc291cmNlcy9wYW5uZXItbW9kZWwtdGVzdGluZy5qcyI+PC9zY3JpcHQ+CiAgIDwv
aGVhZD4KIApAQCAtMjAsMTEgKzIwLDYgQEAKICAgICAgIC8vIHR1cm5pbmcgYXQgYSBkaWZmZXJl
bnQgdGltZSBhbmQgd2UgY2hlY2sgdGhhdCB0aGUgcmVuZGVyZWQKICAgICAgIC8vIGltcHVsc2Ug
aGFzIHRoZSBleHBlY3RlZCBnYWluLgogICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7Ci0gICAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwot
ICAgICAgICAgIH0KLQogICAgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAog
ICAgICAgICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCkBAIC0zNCwxMCArMjks
NyBAQAogICAgICAgfQogCiAgICAgICBydW5UZXN0KCk7Ci0gICAgICBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwogCiAgICAgPC9zY3JpcHQ+Ci0KLSAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiAgIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lci1lcXVhbHBvd2VyLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLWVxdWFscG93ZXIuaHRtbAkocmV2aXNpb24g
MjE3MTI3KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLWVxdWFscG93ZXIuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMiw3ICsyLDcgQEAKIDxodG1sPgogICA8aGVhZD4KICAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMiPjwvc2NyaXB0PgotICAgIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy9wYW5uZXItbW9kZWwtdGVzdGluZy5qcyI+PC9zY3JpcHQ+CiAgIDwvaGVh
ZD4KIApAQCAtMjAsMTEgKzIwLDYgQEAKICAgICAgIC8vIHR1cm5pbmcgYXQgYSBkaWZmZXJlbnQg
dGltZSBhbmQgd2UgY2hlY2sgdGhhdCB0aGUgcmVuZGVyZWQKICAgICAgIC8vIGltcHVsc2UgaGFz
IHRoZSBleHBlY3RlZCBnYWluLgogICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7Ci0gICAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAg
ICAgICAgIH0KLQogICAgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAg
ICAgICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCkBAIC0zNCwxMCArMjksNiBA
QAogICAgICAgfQogCiAgICAgICBydW5UZXN0KCk7Ci0gICAgICBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOwotCiAgICAgPC9zY3JpcHQ+Ci0KLSAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiAgIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lci1sb29wLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvd2ViYXVkaW8vcGFubmVyLWxvb3AuaHRtbAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5
b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLWxvb3AuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTgs
MTEgKzE4LDYgQEAKICAgICAgIC8vIENyZWF0ZSBhIHNpbXBsZSBmZWVkYmFjayBsb29wIGFuZCBt
YWtlIHN1cmUgdGhlIHBhbm5lciBub2RlIHByb2Nlc3NlcyBpdCBjb3JyZWN0bHkuCiAKICAgICAg
IGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
Ci0gICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICAgICAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgICB9Ci0KICAgICAgICAgICB3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKICAgICAgICAgICB2YXIgc2FtcGxlUmF0ZSA9IDQ0
MTAwOwpAQCAtNzcsNyArNzIsNiBAQAogICAgICAgfQogICAgICAgCiAgICAgICBydW5UZXN0KCk7
Ci0gICAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogICAgIDwvc2NyaXB0PgogICAgIAog
ICA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXJub2RlLWJhc2ljLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVybm9kZS1iYXNpYy5o
dG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXJub2Rl
LWJhc2ljLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiA8IURPQ1RZUEUgaHRt
bD4KIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMiPjwvc2NyaXB0
PgogPC9oZWFkPgogCkBAIC0xNSwxMSArMTUsNiBAQCBkZXNjcmlwdGlvbigiQmFzaWMgdGVzdHMg
Zm9yIFBhbm5lck5vZGUuCiB2YXIgY29udGV4dCA9IDA7CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7
Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICB9Ci0gICAg
CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgY29udGV4dCA9IG5ldyB3
ZWJraXRBdWRpb0NvbnRleHQoKTsKQEAgLTE2Myw3ICsxNTgsNSBAQCBmdW5jdGlvbiBydW5UZXN0
KCkgewogcnVuVGVzdCgpOwogCiA8L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvd2ViYXVkaW8vcmVhbHRpbWVhbmFseXNlci1mZnQtc2NhbGluZy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXItZmZ0LXNjYWxp
bmcuaHRtbAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVhbHRp
bWVhbmFseXNlci1mZnQtc2NhbGluZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04OCwxMSArODgs
NiBAQCBmdW5jdGlvbiBjaGVja1Jlc3VsdCgpIHsKIH0KIAogZnVuY3Rpb24gcnVuVGVzdHMoKSB7
Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICB9Ci0KICAg
ICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKICAgICBjb250ZXh0ID0gbmV3IHdlYmtp
dE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgMjA0OCwgc2FtcGxlUmF0ZSk7CkBAIC0xMTgsNyArMTEz
LDYgQEAgZnVuY3Rpb24gcnVuVGVzdHMoKSB7CiB9CiAKIHJ1blRlc3RzKCk7Ci1zdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwogICAgIDwvc2NyaXB0PgogICA8L2JvZHk+CiA8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9yZWFsdGltZWFuYWx5c2VyLWZmdC1zaXppbmcuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhdWRpby9yZWFsdGltZWFuYWx5c2VyLWZmdC1z
aXppbmcuaHRtbAkocmV2aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVh
bHRpbWVhbmFseXNlci1mZnQtc2l6aW5nLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3
IEBACiAKIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMiPjwvc2Ny
aXB0PgogPC9oZWFkPgogCkBAIC0xMywxMCArMTMsNyBAQAogPHNjcmlwdD4KIGRlc2NyaXB0aW9u
KCJUZXN0IHRoYXQgcmUtc2l6aW5nIHRoZSBGRlQgYXJyYXlzIGRvZXMgbm90IGZhaWwuIik7CiAK
LWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwot
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotfQoranNUZXN0SXNBc3luYyA9IHRydWU7
CiAKIHZhciBkb1Rlc3QgPSBmdW5jdGlvbihmZnRTaXplLCBpbGxlZ2FsKSB7CiAgICAgdmFyIGMg
PSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCAxMDAwLCA0NDEwMCk7CkBAIC00Niwx
MSArNDMsOCBAQCBmb3IgKHZhciBpID0gMjsgaSA8PSAweDIwMDAwOyBpICo9IDIpIHsKICAgICBk
b1Rlc3QoaSArIDEsIHRydWUpOwogfQogCi1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CiB0ZXN0UGFzc2VkKCJ3ZWJraXRBdWRpb0NvbnRleHQgc3Vy
dml2ZWQgbXVsdGlwbGUgaW52YWxpZCBGRlQgYXJyYXkgcmVzaXppbmdzLiIpOworZmluaXNoSlNU
ZXN0KCk7CiA8L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vc2FtcGxlLWFjY3VyYXRlLXNjaGVkdWxpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy93ZWJhdWRpby9zYW1wbGUtYWNjdXJhdGUtc2NoZWR1bGluZy5odG1sCShyZXZpc2lv
biAyMTcxMjcpCisrKyBMYXlvdXRUZXN0cy93ZWJhdWRpby9zYW1wbGUtYWNjdXJhdGUtc2NoZWR1
bGluZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQCBXZSB1c2UgYW4gaW1wdWxz
ZSBzbyB3ZSBjYW4gdGVsbCBleGFjdGx5CiAKIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJyZXNvdXJjZXMvYXVkaW8tdGVzdGluZy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJyZXNvdXJjZXMvYnVmZmVyLWxvYWRlci5qcyI+
PC9zY3JpcHQ+CiA8L2hlYWQ+CkBAIC0xMDUsMTEgKzEwNSw2IEBAIGZ1bmN0aW9uIGNoZWNrU2Ft
cGxlQWNjdXJhY3koZXZlbnQpIHsKIH0KIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0g
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIH0KLSAgICAKICAgICB3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5l
IGF1ZGlvIGNvbnRleHQuCkBAIC0xMjgsNyArMTIzLDUgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
IHJ1blRlc3QoKTsKIAogPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL3dlYmF1ZGlvL3N0ZXJlbzJtb25vLWRvd24tbWl4aW5nLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvd2ViYXVkaW8vc3RlcmVvMm1vbm8tZG93bi1taXhpbmcuaHRtbAkocmV2aXNp
b24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vc3RlcmVvMm1vbm8tZG93bi1taXhp
bmcuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiw3ICsyLDcgQEAKIAogPGh0bWw+CiA8aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvYXVkaW8tdGVzdGluZy5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiAKQEAgLTQy
LDExICs0Miw2IEBAIGZ1bmN0aW9uIHRlc3RGaW5pc2hlZCgpIHsKIH0KIAogZnVuY3Rpb24gcnVu
VGVzdCgpIHsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAg
IH0KLQogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgIC8vIENyZWF0ZSBv
ZmZsaW5lIGF1ZGlvIGNvbnRleHQsIHRoZSBkZXN0aW5hdGlvbiBpcyBtb25vLgpAQCAtNjksNyAr
NjQsNSBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogcnVuVGVzdCgpOwogCiA8L3NjcmlwdD4KLQot
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9i
b2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXVkaW8vdGVzdC1iYXNpYy5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmF1ZGlvL3Rlc3QtYmFzaWMuaHRtbAkocmV2
aXNpb24gMjE3MTI3KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vdGVzdC1iYXNpYy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC04LDcgKzgsNyBAQCBUaGUgbGVmdCBjaGFubmVsIHdpbGwgYmUgYSA4
ODBIeiB0b25lLCB3CiAKIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJy
ZXNvdXJjZXMvYXVkaW8tdGVzdGluZy5qcyI+PC9zY3JpcHQ+CiAKIDwvaGVhZD4KQEAgLTQ2LDE2
ICs0NiwxMSBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogCiAgICAgdmFyIGF1ZGlvRGF0YSA9IGNy
ZWF0ZUF1ZGlvRGF0YShhdWRpb0J1ZmZlcik7CiAgICAgdGVzdFJ1bm5lci5zZXRBdWRpb1Jlc3Vs
dChhdWRpb0RhdGEpOwotCi0gICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIHJ1blRl
c3QoKTsKIAogPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KLQogPGJvZHk+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy93ZWJhdWRpby93YXZlc2hhcGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvd2ViYXVkaW8vd2F2ZXNoYXBlci5odG1sCShyZXZpc2lvbiAyMTcxMjcpCisrKyBMYXlvdXRU
ZXN0cy93ZWJhdWRpby93YXZlc2hhcGVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3
IEBACiAKIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJyZXNvdXJjZXMv
YXVkaW8tdGVzdGluZy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJyZXNvdXJjZXMvYnVmZmVyLWxvYWRlci5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CkBA
IC05OSwxMSArOTksNiBAQCBmdW5jdGlvbiBjaGVja1NoYXBlZEN1cnZlKGV2ZW50KSB7CiB9CiAK
IGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKLSAgICB9Ci0gICAgCiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwog
ICAgICAgICAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgpAQCAtMTMyLDcg
KzEyNyw1IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiBydW5UZXN0KCk7CiAKIDwvc2NyaXB0Pgot
Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8
L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvYXVk
aW9idWZmZXJzb3VyY2UtdGVzdGluZy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJh
dWRpby9yZXNvdXJjZXMvYXVkaW9idWZmZXJzb3VyY2UtdGVzdGluZy5qcwkocmV2aXNpb24gMjE3
MTI3KQorKysgTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL2F1ZGlvYnVmZmVyc291cmNl
LXRlc3RpbmcuanMJKHdvcmtpbmcgY29weSkKQEAgLTU5LDYgKzU5LDUgQEAgZnVuY3Rpb24gY2hl
Y2tBbGxUZXN0cyhldmVudCkgewogICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdHMubGVuZ3Ro
OyArK2kpCiAgICAgICAgIGNoZWNrU2luZ2xlVGVzdChyZW5kZXJlZEJ1ZmZlciwgaSk7CiAKLSAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
CisgICAgZmluaXNoSlNUZXN0KCk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>